Dashboard i18n Lookup
Look up the official translation of a Zeabur platform UI term from the dashboard's i18n source files. This ensures documentation uses the exact same wording users see in the Zeabur dashboard.
Dashboard i18n Location
The dashboard i18n files are located relative to this docs project at:
../../dashboard/public/assets/locales/{locale}/
Resolved from the docs project root, this is a sibling dashboard repository.
Available Locales
| Locale | Language |
|---|---|
en-US |
English (source) |
zh-TW |
Traditional Chinese |
zh-CN |
Simplified Chinese |
ja-JP |
Japanese |
es-ES |
Spanish |
File Structure
Each locale directory contains multiple JSON files organized by feature area:
common.json— shared UI terms (buttons, navigation, project selector, region selector)service.json— service page UI (tabs like Networking, settings, deployments)servers.json— server management UI (install commands, server status)project.json/projects.json— project-level UIdeploy.json/deploy-template.json— deployment UIsettings.json— settings pageheader.json— header/navigation- And others (
account.json,checkout.json,modals.json, etc.)
The JSON files use nested keys with i18next-style interpolation ({{variable}}).
Instructions
Step 1: Verify Dashboard i18n Availability
Check if the dashboard locales directory exists:
ls ../../dashboard/public/assets/locales/en-US/ 2>/dev/null
If the directory does not exist: Print the following message and stop:
Dashboard i18n files not found at
../../dashboard/public/assets/locales/. Falling back to manual translation. Please translate UI terms based on context, the glossary at.claude/skills/translate/glossary.json, and common Zeabur terminology conventions.
Do NOT error out or block the user's workflow.
Step 2: Parse Arguments
Parse $ARGUMENTS into:
- search term: The English UI text or i18n key to look up (e.g.
"Networking","Create New Project","region-selector.select-region") - locale filter (optional): If a second argument matches a known locale, only show that locale's translation
Step 3: Search for the Term
If the search term looks like a dotted key (e.g.
service.networking.title):- Split into
<file>.<nested.key>and look up directly in the appropriate JSON file
- Split into
If the search term is plain English text (e.g.
"Networking","Create New Project"):- Search across all
en-US/*.jsonfiles for values matching the term (case-insensitive) - Use
grep -rito find occurrences - Once found, note the file and JSON key path
- Search across all
Step 4: Retrieve Translations
For each match found in en-US:
- Read the same JSON file in each target locale (or only the filtered locale)
- Navigate to the same key path
- Collect all translations
Step 5: Output Results
Print a formatted table:
Term: "Create New Project"
Source: common.json → project-selector.create-new-project
| Locale | Translation |
|--------|-------------|
| en-US | Create New Project |
| zh-TW | 建立新專案 |
| zh-CN | 创建新项目 |
| ja-JP | 新しいプロジェクトを作成 |
| es-ES | Crear nuevo proyecto |
If multiple matches are found, list all of them with their file paths and keys so the user can pick the correct one.
Common UI Terms Reference
When writing Wonder Mesh or server-related docs, the most relevant i18n files are:
common.json— "Create New Project", region/server selector labelsservers.json— "Install K3s", "View Install Command", server status termsservice.json— "Networking" tab, service page UI elementsproject.json— project-level actions and labels
Tips
- If a term is not found in the i18n files, it may be hardcoded in the dashboard source code rather than in the i18n system. In that case, note this and suggest checking the dashboard source.
- Some terms may appear in multiple files with slightly different translations depending on context. List all occurrences so the user can choose the contextually appropriate one.