Skip to content

feat(i18n): add Vietnamese locale - #17

Open
thaohienhomes wants to merge 1 commit into
thebuggeddev:mainfrom
thaohienhomes:add-vietnamese-locale
Open

feat(i18n): add Vietnamese locale#17
thaohienhomes wants to merge 1 commit into
thebuggeddev:mainfrom
thaohienhomes:add-vietnamese-locale

Conversation

@thaohienhomes

Copy link
Copy Markdown

Adds vi as a thirteenth locale — 231 UI strings, all nine organs, all
thirty-six hotspots. npm run i18n:audit passes with no errors.

One design decision worth flagging: Vietnamese gets its own ScriptGroup
rather than reusing latin. DM Sans ships no Vietnamese subset, so the tone
marks fall back to a system face mid-paragraph and the text visibly breaks
apart. The sans face for vi becomes Be Vietnam Pro, which is drawn for these
diacritics so the marks clear the ascenders; Cormorant Garamond stays as the
serif, with its vietnamese subset requested. Only vi loads that pair — the
twelve existing locales are untouched and download nothing extra.

Terminology follows Vietnamese medical usage (tâm nhĩ / tâm thất, van hai lá,
tá tràng, hỗng tràng, biểu bì / trung bì / hạ bì) rather than literal
translation. Numbers follow Vietnamese convention: comma for decimals, period
for thousands — 1,3–1,4 kg, 100.000 lần.

Related to #3, which asked for multilingual support before the i18n layer
landed — that request is now covered by app/i18n/, and this adds one more
language to it. You may want to close that issue.

Happy to adjust anything, or to drop the font change and let vi ride on
latin if you would rather keep the font list short — the tone marks will
degrade, but the PR would shrink to three files.

Adds `vi` as a thirteenth locale: 231 UI strings, all nine organs, and all
thirty-six hotspots.

Vietnamese gets its own `ScriptGroup` rather than reusing `latin`, because
DM Sans ships no Vietnamese subset — the tone marks fall back to a system face
mid-paragraph. The sans face becomes Be Vietnam Pro, drawn for these diacritics
so the marks clear the ascenders; Cormorant Garamond stays, with its
`vietnamese` subset requested. Only `vi` loads that pair, so the twelve existing
locales pay nothing.

Terminology follows Vietnamese medical usage (tâm nhĩ / tâm thất, van hai lá,
tá tràng, hỗng tràng, biểu bì / trung bì / hạ bì). Numbers follow Vietnamese
convention — comma for decimals, period for thousands: `1,3–1,4 kg`,
`100.000 lần`.

`npm run i18n:audit` passes with no errors.
@vercel

vercel Bot commented Aug 10, 2026

Copy link
Copy Markdown

@claude is attempting to deploy a commit to the thebuggeddev-9222's projects Team on Vercel.

A member of the Team first needs to authorize it.

@thaohienhomes thaohienhomes mentioned this pull request Aug 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants