Skip to content

Add Vietnamese translation - #77

Merged
aghyad97 merged 3 commits into
mainfrom
i18n/vietnamese
Aug 2, 2026
Merged

Add Vietnamese translation#77
aghyad97 merged 3 commits into
mainfrom
i18n/vietnamese

Conversation

@aghyad97

@aghyad97 aghyad97 commented Aug 2, 2026

Copy link
Copy Markdown
Owner

Adds messages/vi.json — a complete Vietnamese translation of messages/en.json. One file, no other changes; locale registry wiring is handled separately.

Key parity: 4,577 / 4,577 leaf keys. Zero missing, zero extra, zero placeholder mismatches, zero type mismatches (verified with a full key-path diff against en.json).

Checks: bunx tsc --noEmit clean; bun run test 1282/1282 passing (unchanged from baseline).

Conventions used

  • tệp for "file" throughout (tập tin appears zero times).
  • Northern-standard register, impersonal phrasing (second-person pronouns avoided except where the English genuinely needs one), bare verb phrases for buttons.
  • hoá / xoá / khoá / huỷ / tuỳ tone-placement style, applied consistently.
  • bảng nhớ tạm for "clipboard" (normalized across the file).
  • Full diacritics: 4,294 of 4,577 strings carry diacritics. The 283 that do not are format lists (PNG, JPG, WebP), protocol tokens, city and country names, and canonical HTTP reason phrases.
  • No \u escapes — raw UTF-8 throughout.

What a native speaker should review

  • HTTP status codes: all 51 codes.*.text reason phrases were left in English (Not Found, Internal Server Error) since developers match on them; descriptions and use cases are translated. Confirm this is the desired split.
  • Trailing exclamation marks were removed from 57 toast strings that have them in English, to keep the register uniformly plain. Revert if the source punctuation should be preserved.
  • Number formatting was localized to the Vietnamese convention (10.000, 0,01) in a handful of strings, deviating from the English digits.
  • PomodoroTimer splits a sentence across five fragments (workFor / thenTake / shortBreakMin / sessions / longBreakMin). Vietnamese word order forced a different cut, so this needs eyeballing in the running UI.
  • HabitTracker weekday initials became T2T7 / CN (two characters instead of one) — check column widths.
  • Meme generator placeholder VĂN BẢN TRÊN / VĂN BẢN DƯỚI is longer than the English and renders as caps on the image; may need a font-size check.
  • TextCaseConverter case labels were made self-demonstrating in Vietnamese (IN HOA, in thường, xEn Kẽ) rather than left as English ASCII samples.
  • Terminology worth a second opinion: Media and Dev kept as loanwords in categoriesShort (Vietnamese equivalents are too long for nav chips); opacity rendered Độ mờ / Độ đục depending on whether it collides with blur in the same panel; rollover, dithering, inset, Chevron, Story left untranslated.
  • Privacy wording was deliberately kept at source strength — model-download strings preserve "tải xuống một lần từ CDN trong lần dùng đầu tiên, sau đó ... trên thiết bị", and the TOTP offline claim stays scoped to "khi trang này còn mở". These should not be flattened into blanket offline claims during any copy-editing pass.

@vercel

vercel Bot commented Aug 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
browserytools Ready Ready Preview Aug 2, 2026 10:05am

Request Review

@aghyad97
aghyad97 merged commit c885eab into main Aug 2, 2026
4 checks passed
@aghyad97
aghyad97 deleted the i18n/vietnamese branch August 2, 2026 10:08
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.

1 participant