OpenBMB / OpenBMB/VoxCPM

Formalize i18n with a dedicated translation file and full English support

Open
#377 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
37.8k
Forks
4.3k
Avg merge
7m
Merged PRs (30d)
1

Description

The WebUI has a language Radio toggle (en/zh) that updates form labels, but Markdown headers, button text, placeholder text, info tooltips, and advanced option labels remain in the initial language. Translations are scattered inline throughout the 1400-line script with inconsistent patterns (ternary operators, separate dicts in change_language()).

Fix: Extract all 69 translatable strings into a dedicated i18n.py module with complete zh/en dictionaries. Use a t("key") lookup for widget creation and a simple STRINGS[lang]["key"] in change_language(). All UI elements now toggle consistently. Default language controllable via VOXCPM_LANG environment variable.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the WebUI's 1400-line script, especially the existing inline translations and change_language() logic, then review the proposed i18n.py structure. Extract all 69 strings into complete English and Chinese dictionaries, use the specified lookup patterns, and verify every UI element toggles consistently with VOXCPM_LANG controlling the default language.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
frontend, internationalization
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.