All posts

GuideWebsitesEN/VI

What a fast bilingual (EN/VI) website needs

Two real languages, one page each, light enough for a phone on a slow connection.

Hoàng Huy Đức · 1 min read

SLOW 3G/en//vi/Hello!ENXin chào!VIENVIhreflangENVI

A bilingual site is not one site with a translate button. It is two sites that share a design, and each one has to be fast and easy for a search engine to understand.

The short list

  1. InputOne job per pageEach page has one thing to do.
  2. AI stepAI drafts the translationA first pass, quickly.
  3. PersonA native reads itTone and terms checked by a person.
  4. RuleClean URLs and tagsOne URL per language, linked to each other.
  5. OutputLight pagesLoads fast on a phone.
Translation is a draft until a native speaker has read it.
  • One URL per language. For example /about/ and /vi/about/. Do not swap the language on the same address with a script.
  • Tell search engines how the pages pair up. Add reciprocal hreflang links (each page lists itself and its pair, plus an x-default), and a canonical link on each page pointing to itself.
  • Set the page language in the lang attribute, so screen readers and translators behave.
  • Translate the meta too. Title and description need their own Vietnamese, or the search result reads as English.

Vietnamese specifics

  • Use a font with the Vietnamese subset. A font without it swaps in another one for the accents, and the layout can jump.
  • Let text grow. Vietnamese can run longer than English; buttons and headings need room.
  • Give lines room. A generous line height keeps stacked accents from being clipped.
  • Write it, do not just translate it. Pick one voice (for example “bạn” for the reader) and keep it. A native read catches what a tool cannot.

Fast, on a phone

  • Ship pages that are mostly HTML. Static pages served from the edge are quick and easy to cache.
  • Size images properly and give them a width and height, so nothing shifts as they load.
  • Load only the fonts each language needs.
  • Put one clear action on the page: a button to book a call or send a message.

An example

This site, howangduc.com, is built with Astro and three.js and served by Cloudflare Workers. See the services for how a website project starts.