Skip to content

[BUG]: Vietnamese mistranslations in the app and ui locale dictionaries #55928

Open

Description

@dat-rd

The Vietnamese app locale has strings that machine translation got wrong, and a few that are inconsistent with the rest of the same dictionary.

Examples:

  • Custom was Phong tục (the word means customs/etiquette)
  • Advanced was Trình độ cao (the phrase means high level)
  • Shell was Vỏ bọc (the word means carapace/shell of a turtle)
  • Subagents appeared as both Chất phụ (secondary matter) and đại lý phụ (sub-agency)
  • one entry used tác tử for agent while the rest of the dictionary uses tác nhân
  • Search provider was Tìm kiếm nhà cung cấp, which reads as "search the provider" instead of "provider of search"
  • a mistranslation turned the command opencode pair into cặp opencode
  • the timeline preset descriptions referred to a "Used" group that does not exist in the English source

There is also no vi glossary, so every translator re-invents the same terms. The repo already documents a per-locale glossary convention in .opencode/glossary/README.md.

Activity

  1. opencode-agent commented on Oct 16, 2026

    @opencode-agent
    Contributor

    Thanks for the detailed report. I confirmed all of these in the dictionaries for v2.0.30 and on the latest dev (eeec76bb):

    • In packages/app/src/runtime/i18n/vi.ts:
      • settings.timeline.custom is "Phong tục" and settings.timeline.advanced is "Trình độ cao".
      • settings.timeline.category.shell is "Vỏ bọc" and settings.timeline.category.subagents is "Chất phụ".
      • The quiet preset description uses "đại lý phụ".
      • session.websearch.provider is "Tìm kiếm nhà cung cấp".
      • server.connect.scan.* turn the opencode pair command into "cặp opencode".
      • The detailed, compact and quiet timeline preset descriptions mention a "Đã sử dụng" group that isn't in the English source.
    • In packages/ui/src/i18n/vi.ts, ui.sessionTimeline.notice.agentChanged uses "tác tử", while the rest of the dictionaries use "tác nhân".
    • There is no .opencode/glossary/vi.md.

    The script below shows these strings for any git ref. Your PR #55925 addresses them; you may want to add Closes #55928 to its description so the two are linked.

    Reproduction script (check-vi.sh)
    #!/usr/bin/env bash
    # Usage: check-vi.sh <git-ref>  (run inside an opencode checkout)
    ref=${1:-HEAD}
    f=packages/app/src/runtime/i18n/vi.ts
    u=packages/ui/src/i18n/vi.ts
    echo "== $ref: $f"
    git show "$ref:$f" | grep -nE 'Phong tục|Trình độ cao|"Vỏ bọc"|Chất phụ|đại lý phụ|tác tử|session.websearch.provider|cặp opencode|Used|Đã dùng|Đã sử dụng'
    echo "== $ref: $u"
    git show "$ref:$u" | grep -nE 'Phong tục|Trình độ cao|Vỏ bọc|Chất phụ|đại lý phụ|tác tử|cặp opencode'
    echo "== $ref: vi glossary"
    git cat-file -e "$ref:.opencode/glossary/vi.md" 2>/dev/null && echo present || echo "missing .opencode/glossary/vi.md"

    Run it: bash check-vi.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions