Skip to content

feat(translation): add Vietnamese translation (vi.json)#563

Closed
luandnh wants to merge 1 commit into
fccview:developfrom
luandnh:translate-vi
Closed

feat(translation): add Vietnamese translation (vi.json)#563
luandnh wants to merge 1 commit into
fccview:developfrom
luandnh:translate-vi

Conversation

@luandnh

@luandnh luandnh commented Jul 18, 2026

Copy link
Copy Markdown

This PR adds the Vietnamese translation (vi.json) to Jotty, providing complete localization for all UI components, actions, settings, and features. All placeholders and ICU MessageFormat structures match the English source.

Summary by CodeRabbit

  • New Features
    • Added complete Vietnamese localization across the application.
    • Translated key UI areas including authentication (with MFA), notes, checklists, tasks, Kanban, settings, sharing, encryption/key management, and notifications.
    • Included support for pluralized messages, dynamic placeholders, and Vietnamese copy for offline/PWA install prompts, error states, audit log labels, help content, and not-found pages.

@luandnh

luandnh commented Jul 18, 2026

Copy link
Copy Markdown
Author

Added complete Vietnamese translation (vi.json). All placeholders and ICU MessageFormat plural expressions have been validated against the English base structure. Ready for review!

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: d06d9eaf-3b11-4493-9806-faafdb6af0f6

📥 Commits

Reviewing files that changed from the base of the PR and between 74eb132 and a0c39df.

📒 Files selected for processing (1)
  • app/_translations/vi.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • app/_translations/vi.json

📝 Walkthrough

Walkthrough

Adds a complete Vietnamese translation file with structured namespaces for shared UI, authentication, notes, tasks, settings, administration, editor controls, sharing, encryption, migration, audit logs, help, errors, PWA prompts, and notifications. Existing placeholders, pluralization strings, and template variables are represented in the localized messages.

Possibly related PRs

  • fccview/jotty#562: Adds or updates the same Vietnamese translation namespaces and localization keys.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding the Vietnamese vi.json translation file.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🧹 Nitpick comments (2)
app/_translations/vi.json (2)

840-845: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Do not translate syntax highlighting theme names.

Proper nouns denoting code block syntax themes (like Funky, Tomorrow, Coy) should remain untranslated, as developers recognize them by their original English names.

🎨 Proposed theme name fixes
-    "funky": "sôi nổi",
-    "okaidia": "Okaidia",
-    "tomorrow": "Ngày mai",
-    "twilight": "Chạng vạng",
-    "coy": "nhút nhát",
-    "solarizedLight": "Ánh sáng mặt trời",
+    "funky": "Funky",
+    "okaidia": "Okaidia",
+    "tomorrow": "Tomorrow",
+    "twilight": "Twilight",
+    "coy": "Coy",
+    "solarizedLight": "Solarized Light",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/_translations/vi.json` around lines 840 - 845, The syntax highlighting
theme values in the Vietnamese translation entries funky, tomorrow, coy, and
solarizedLight should remain unchanged as their original theme names. Replace
the translated values with the corresponding English names while preserving the
existing translation keys and JSON structure.

20-39: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Capitalize UI action strings.

Many generic UI strings (such as "ok", "previous", "update", "select") are translated with lowercase initials, which looks inconsistent next to correctly capitalized actions like "Tiếp theo" or "Xóa". Please convert them to Title Case or initial uppercase to maintain UI consistency with the English source.

💡 Sample diff for capitalization fixes
-    "ok": "được rồi",
+    "ok": "Được rồi",
     "back": "Quay lại",
     "next": "Tiếp theo",
-    "previous": "trước đó",
+    "previous": "Trước đó",
     "continue": "Tiếp tục",
     "submit": "Gửi",
     "create": "Tạo",
-    "update": "cập nhật",
+    "update": "Cập nhật",
     "upload": "Tải lên",
     "download": "Tải xuống",
     "export": "Xuất khẩu",
     "import": "Nhập khẩu",
     "copy": "Sao chép",
     "copied": "Đã sao chép vào bảng nhớ tạm",
     "copyFailed": "Không sao chép được vào bảng nhớ tạm",
     "paste": "Dán",
     "cut": "Cắt",
     "undo": "Hoàn tác",
     "redo": "Làm lại",
-    "select": "chọn",
+    "select": "Chọn",
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@app/_translations/vi.json` around lines 20 - 39, Capitalize the Vietnamese UI
action values in the translation entries shown, including “ok”, “previous”,
“update”, and “select”, using initial uppercase consistently with neighboring
action strings such as “Tiếp theo” and “Xóa”. Preserve the existing translations
and keys while changing only capitalization.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@app/_translations/vi.json`:
- Line 836: Update all Markdown-related Vietnamese translations in
app/_translations/vi.json: at lines 836 and 847 use “Markdown” instead of “Giảm
giá”; at line 792 use “cú pháp Markdown”; at lines 1215-1217 use “Markdown” for
both affected terms; at lines 1294-1299 use “Markdown thô” and “Trình soạn thảo
Markdown”; and at line 1646 use “Hướng dẫn Markdown”.
- Line 394: Keep the technical library name “Mermaid” untranslated in all
affected entries: update app/_translations/vi.json lines 394-394, 1238-1240,
1274-1274, and 1285-1285 by replacing each occurrence of “nàng tiên cá” with
“Mermaid” while preserving the surrounding Vietnamese text.
- Line 1655: Update the "unraid" translation entry in the Vietnamese
translations to preserve the product name exactly as “Unraid” instead of
translating it, leaving all other translation entries unchanged.
- Around line 590-596: Update the weekdaysSun translation in the Vietnamese
translations to “Chủ nhật” for the calendar header, and capitalize the
weekdaysTue value as “Thứ ba” to match the surrounding weekday labels.
- Around line 195-202: Update the color translations in the locale entries
around "orange": use a color term such as "Cam" or "Màu cam" instead of the
fruit-related "trái cam", and standardize capitalization across the adjacent
color labels so they follow one consistent casing style.
- Line 826: Update the dashCase translation in the Vietnamese translations to
use “Định dạng” instead of “Trường hợp”, while preserving the example and the
existing translation key.
- Around line 875-878: Update the Vietnamese values for destructiveAction,
secondaryAction, and ghostAction to the requested contextual UI translations:
“Hành động nguy hiểm”, “Hành động phụ”, and “Nút ẩn”, respectively; leave
primaryAction unchanged.
- Line 732: Update the vi.json “orphans” translation from the child-specific
“trẻ mồ côi” wording to a graph-appropriate label such as “Các mục mồ côi” or
“Mục không liên kết”.

---

Nitpick comments:
In `@app/_translations/vi.json`:
- Around line 840-845: The syntax highlighting theme values in the Vietnamese
translation entries funky, tomorrow, coy, and solarizedLight should remain
unchanged as their original theme names. Replace the translated values with the
corresponding English names while preserving the existing translation keys and
JSON structure.
- Around line 20-39: Capitalize the Vietnamese UI action values in the
translation entries shown, including “ok”, “previous”, “update”, and “select”,
using initial uppercase consistently with neighboring action strings such as
“Tiếp theo” and “Xóa”. Preserve the existing translations and keys while
changing only capitalization.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 40bf68c8-5cf2-482d-b69c-c6e001e5653b

📥 Commits

Reviewing files that changed from the base of the PR and between b40adaa and 74eb132.

📒 Files selected for processing (1)
  • app/_translations/vi.json

Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
Comment thread app/_translations/vi.json Outdated
@luandnh

luandnh commented Jul 18, 2026

Copy link
Copy Markdown
Author

Resolved all review comments: corrected Markdown/Mermaid/Unraid translations, standardized and capitalized color terms, capitalized navigation action labels, fixed weekdays capitalization, and resolved orphans graph label. The commit history has been squashed into a single clean commit. Ready for review!

@luandnh luandnh closed this Jul 18, 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.

1 participant