From 36d6d4800210ebef4146a1a6e84629c9ef3da5fd Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 15 Jan 2026 16:42:15 +0800 Subject: [PATCH] feat(opencode): Phase 10 - Internationalization for OpenCode Update i18n translation files (zh.json, en.json, ja.json): - Add "opencode" to apps section: "OpenCode" - Add provider section keys: - addOpenCodeProvider: Add OpenCode Provider - addToConfig: Add (for additive mode button) - removeFromConfig: Remove - inConfig: Added - Add new "opencode" section with UI labels: - npmPackage: AI SDK Package - npmPackageHint: Package selection hint - baseUrl, baseUrlHint: Base URL configuration - models, modelsHint: Model configuration - addModel, modelId, modelName: Model editor labels - noModels: Empty state message - Add "opencode" to mcp.unifiedPanel.apps section - Add "opencode" to skills.apps section --- src/i18n/locales/en.json | 25 ++++++++++++++++++++++--- src/i18n/locales/ja.json | 25 ++++++++++++++++++++++--- src/i18n/locales/zh.json | 25 ++++++++++++++++++++++--- 3 files changed, 66 insertions(+), 9 deletions(-) diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index d8cc43e0b..62a73392c 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -84,6 +84,10 @@ "addClaudeProvider": "Add Claude Code Provider", "addCodexProvider": "Add Codex Provider", "addGeminiProvider": "Add Gemini Provider", + "addOpenCodeProvider": "Add OpenCode Provider", + "addToConfig": "Add", + "removeFromConfig": "Remove", + "inConfig": "Added", "addProviderHint": "Fill in the information to quickly switch providers in the list.", "editClaudeProvider": "Edit Claude Code Provider", "editCodexProvider": "Edit Codex Provider", @@ -304,7 +308,8 @@ "apps": { "claude": "Claude Code", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" }, "console": { "providerSwitchReceived": "Received provider switch event:", @@ -455,6 +460,18 @@ "configMergeFailed": "Config merge failed: {{error}}", "configReplaceFailed": "Config replace failed: {{error}}" }, + "opencode": { + "npmPackage": "AI SDK Package", + "npmPackageHint": "Select the npm package for communicating with the AI service", + "baseUrl": "Base URL", + "baseUrlHint": "Custom API endpoint URL", + "models": "Models", + "modelsHint": "Configure available models and their display names", + "addModel": "Add Model", + "modelId": "Model ID", + "modelName": "Display Name", + "noModels": "No models configured" + }, "providerPreset": { "label": "Provider Preset", "custom": "Custom Configuration", @@ -634,7 +651,8 @@ "apps": { "claude": "Claude", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" } }, "userLevelPath": "User-level MCP path", @@ -942,7 +960,8 @@ "apps": { "claude": "Claude", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" } }, "deeplink": { diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 9b726f5a7..8edd6fee7 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -84,6 +84,10 @@ "addClaudeProvider": "Claude Code プロバイダーを追加", "addCodexProvider": "Codex プロバイダーを追加", "addGeminiProvider": "Gemini プロバイダーを追加", + "addOpenCodeProvider": "OpenCode プロバイダーを追加", + "addToConfig": "追加", + "removeFromConfig": "削除", + "inConfig": "追加済み", "addProviderHint": "一覧にすばやく切り替えられるよう、ここに情報を入力してください。", "editClaudeProvider": "Claude Code プロバイダーを編集", "editCodexProvider": "Codex プロバイダーを編集", @@ -304,7 +308,8 @@ "apps": { "claude": "Claude Code", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" }, "console": { "providerSwitchReceived": "プロバイダー切り替えイベントを受信:", @@ -455,6 +460,18 @@ "configMergeFailed": "設定のマージに失敗しました: {{error}}", "configReplaceFailed": "設定の置換に失敗しました: {{error}}" }, + "opencode": { + "npmPackage": "AI SDK パッケージ", + "npmPackageHint": "AI サービスとの通信に使用する npm パッケージを選択", + "baseUrl": "Base URL", + "baseUrlHint": "カスタム API エンドポイント URL", + "models": "モデル設定", + "modelsHint": "利用可能なモデルとその表示名を設定", + "addModel": "モデルを追加", + "modelId": "モデル ID", + "modelName": "表示名", + "noModels": "モデルが設定されていません" + }, "providerPreset": { "label": "プロバイダータイプ", "custom": "カスタム設定", @@ -634,7 +651,8 @@ "apps": { "claude": "Claude", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" } }, "userLevelPath": "ユーザーレベルの MCP パス", @@ -942,7 +960,8 @@ "apps": { "claude": "Claude", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" } }, "deeplink": { diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 21d4d5806..5e8cadb77 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -84,6 +84,10 @@ "addClaudeProvider": "添加 Claude Code 供应商", "addCodexProvider": "添加 Codex 供应商", "addGeminiProvider": "添加 Gemini 供应商", + "addOpenCodeProvider": "添加 OpenCode 供应商", + "addToConfig": "添加", + "removeFromConfig": "移除", + "inConfig": "已添加", "addProviderHint": "填写信息后即可在列表中快速切换供应商。", "editClaudeProvider": "编辑 Claude Code 供应商", "editCodexProvider": "编辑 Codex 供应商", @@ -304,7 +308,8 @@ "apps": { "claude": "Claude Code", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" }, "console": { "providerSwitchReceived": "收到供应商切换事件:", @@ -455,6 +460,18 @@ "configMergeFailed": "配置合并失败: {{error}}", "configReplaceFailed": "配置替换失败: {{error}}" }, + "opencode": { + "npmPackage": "AI SDK 包", + "npmPackageHint": "选择用于与 AI 服务通信的 npm 包", + "baseUrl": "Base URL", + "baseUrlHint": "自定义 API 端点地址", + "models": "模型配置", + "modelsHint": "配置可用的模型及其显示名称", + "addModel": "添加模型", + "modelId": "模型 ID", + "modelName": "显示名称", + "noModels": "暂无模型配置" + }, "providerPreset": { "label": "预设供应商", "custom": "自定义配置", @@ -634,7 +651,8 @@ "apps": { "claude": "Claude", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" } }, "userLevelPath": "用户级 MCP 配置路径", @@ -942,7 +960,8 @@ "apps": { "claude": "Claude", "codex": "Codex", - "gemini": "Gemini" + "gemini": "Gemini", + "opencode": "OpenCode" } }, "deeplink": {