[READY] fix(i18n): Add more missed translations + fixes + cleanup#1381
[READY] fix(i18n): Add more missed translations + fixes + cleanup#1381src-opn merged 11 commits intodifferent-ai:devfrom
Conversation
|
@johnnyshields is attempting to deploy a commit to the Different AI Team on Vercel. A member of the Team first needs to authorize it. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
The following comment was made by an LLM, it may be inaccurate: |
|
@jcllobet ready for review. |
Resolve en.ts conflict — take upstream's cleaned toolbar_ready_to_install value (was a truncated JS template literal). Fix same in zh and pt-BR. Sort all locales. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Conflicts resolved, please merge. |
src-opn
left a comment
There was a problem hiding this comment.
stick with consistent translation function please
seeing big mixture of t("context_panel.preserving_entry") vs translate("context_panel.preserving_entry")
and additional const translate = (key: string, params?: Record<string, string | number>) => t(key, undefined, params);
massive number of line changes in files that didnt need it. ensure new lines are inserted correctly and not unnecessarily re-writing whole files
need verification screenshots
last few i18n PRs had broken issues or missing translations (settings page etc)
| // ==================== Dashboard ==================== | ||
| "dashboard.title": "Dashboard", | ||
| "dashboard.sessions": "Sessões", | ||
| "dashboard.commands": "Comandos", | ||
| "dashboard.skills": "Skills", | ||
| "dashboard.plugins": "Plugins", | ||
| "dashboard.mcps": "Apps", | ||
| "dashboard.settings": "Configurações", | ||
| "dashboard.home": "Home", | ||
| "dashboard.runs": "Execuções", | ||
| "dashboard.find_workspace": "Buscar workspace...", | ||
| "dashboard.workspaces": "Workspaces", | ||
| "dashboard.no_workspaces": "Nenhum workspace correspondente.", | ||
| "dashboard.new_workspace": "Novo Workspace...", | ||
| "dashboard.new_remote_workspace": "Adicionar Workspace Remoto...", | ||
| "dashboard.forget_workspace": "Esquecer workspace", | ||
| "dashboard.remote": "Remoto", | ||
| "dashboard.connection": "Conexão", | ||
| "dashboard.local_engine": "Engine Local", | ||
| "dashboard.client_mode": "Modo Cliente", | ||
| "dashboard.connected": "Conectado", | ||
| "dashboard.not_connected": "Não conectado", | ||
| "dashboard.stop_disconnect": "Parar e Desconectar", | ||
| "dashboard.disconnect": "Desconectar", | ||
| "dashboard.new_task": "Nova Tarefa", | ||
| "dashboard.new": "Novo", | ||
| "dashboard.busy": "Ocupado", | ||
| "dashboard.hero_title": "O que vamos fazer hoje?", | ||
| "dashboard.hero_description": "Descreva um resultado. O OpenWork vai executar e manter um histórico de auditoria.", | ||
| "dashboard.quick_start_commands": "Comandos de Início Rápido", | ||
| "dashboard.view_all": "Ver todos", | ||
| "dashboard.no_commands": "Nenhum comando ainda. Comandos iniciais aparecerão aqui.", | ||
| "dashboard.run_command": "Executar um comando salvo", |
There was a problem hiding this comment.
As explained in my original message above, I've run a one-time sort of the translation keys across all locales, which can be replicated by running scripts/i18n-audit.js --sort
Sorting helps reduce future conflicts/errors/confusion, by making the files canonical.
| // ==================== Dashboard ==================== | ||
| "dashboard.title": "ダッシュボード", | ||
| "dashboard.sessions": "セッション", | ||
| "dashboard.commands": "コマンド", | ||
| "dashboard.skills": "スキル", | ||
| "dashboard.plugins": "プラグイン", | ||
| "dashboard.mcps": "アプリ", | ||
| "dashboard.settings": "設定", | ||
| "dashboard.home": "ホーム", | ||
| "dashboard.runs": "実行", | ||
| "dashboard.find_workspace": "ワークスペースを検索…", | ||
| "dashboard.workspaces": "ワークスペース", | ||
| "dashboard.no_workspaces": "一致するワークスペースがありません。", | ||
| "dashboard.new_workspace": "新しいワークスペース…", | ||
| "dashboard.new_remote_workspace": "リモートワークスペースを追加…", | ||
| "dashboard.forget_workspace": "ワークスペースを削除", | ||
| "dashboard.remote": "リモート", | ||
| "dashboard.connection": "接続", | ||
| "dashboard.local_engine": "ローカルエンジン", | ||
| "dashboard.client_mode": "クライアントモード", | ||
| "dashboard.connected": "接続済み", | ||
| "dashboard.not_connected": "未接続", | ||
| "dashboard.stop_disconnect": "停止して切断", | ||
| "dashboard.disconnect": "切断", | ||
| "dashboard.new_task": "新しいタスク", | ||
| "dashboard.new": "新規", | ||
| "dashboard.busy": "ビジー", | ||
| "dashboard.hero_title": "今日は何をしましょうか?", | ||
| "dashboard.hero_description": "何でも依頼してください。OpenWorkが実行し、すべて記録に残します。", | ||
| "dashboard.quick_start_commands": "クイックスタートコマンド", | ||
| "dashboard.view_all": "すべて表示", |
There was a problem hiding this comment.
See comment above, it is because sort was applied.
|
@johnnyshields appreciate your efforts here |
|
@src-opn I've run extensive checks on the translations in the app, both manual/visual and also with a new script I added Re: If you want this to be broken into a few smaller PRs I'm happy to do so, but also it is safe to merge as-is--this is what I've tested, and the |
|
Only issues are related to |
898bbc3 to
d89a9e7
Compare
d89a9e7 to
b9ffdbd
Compare
b9ffdbd to
30d2e13
Compare
This PR does the following:
t(...)in the source code, but were only inen.ts.scripts/i18n-audit.mjswhich is useful to find missing keys, and well as having--pruneand--sortoptions.currentLocaleand useless helper functions.No EN text was changed, aside from a few bona-fide fixes.
After this is merged I will do one more PR where I clean-up pluralization support and I'll handle the Russian support PR.
By the way, please let me know you will accept a PR that uses
i18next, that will make things easier than rolling our own I18n, but adds a bit of bloat.