diff --git a/packages/opencode/src/cli/cmd/tui/feature-plugins/system/plugins.tsx b/packages/opencode/src/cli/cmd/tui/feature-plugins/system/plugins.tsx index b40b0f51..83d9e512 100644 --- a/packages/opencode/src/cli/cmd/tui/feature-plugins/system/plugins.tsx +++ b/packages/opencode/src/cli/cmd/tui/feature-plugins/system/plugins.tsx @@ -39,6 +39,7 @@ function meta(item: TuiPluginStatus, width: number) { } function Install(props: { api: TuiPluginApi }) { + const { t } = useLanguage() const [global, setGlobal] = createSignal(false) const [busy, setBusy] = createSignal(false) @@ -52,10 +53,10 @@ function Install(props: { api: TuiPluginApi }) { return ( ( scope: @@ -73,7 +74,7 @@ function Install(props: { api: TuiPluginApi }) { if (!mod) { props.api.ui.toast({ variant: "error", - message: "Plugin package name is required", + message: t("tui.plugin.install.name_required"), }) return } @@ -90,7 +91,7 @@ function Install(props: { api: TuiPluginApi }) { if (out.missing) { props.api.ui.toast({ variant: "info", - message: "Check npm registry/auth settings and try again.", + message: t("tui.plugin.install.check_npm"), }) } show(props.api) @@ -104,7 +105,7 @@ function Install(props: { api: TuiPluginApi }) { if (!out.tui) { props.api.ui.toast({ variant: "info", - message: "Package has no TUI target to load in this app.", + message: t("tui.plugin.install.no_tui_target"), }) show(props.api) return @@ -114,7 +115,7 @@ function Install(props: { api: TuiPluginApi }) { if (!ok) { props.api.ui.toast({ variant: "warning", - message: "Installed plugin, but runtime load failed. See console/logs; restart TUI to retry.", + message: t("tui.plugin.install.load_failed"), }) show(props.api) return @@ -154,6 +155,7 @@ function showInstall(api: TuiPluginApi) { } function View(props: { api: TuiPluginApi }) { + const { t } = useLanguage() const size = useTerminalDimensions() const [list, setList] = createSignal(props.api.plugins.list()) const [cur, setCur] = createSignal() @@ -206,7 +208,7 @@ function View(props: { api: TuiPluginApi }) { return ( setCur(item.value)} diff --git a/packages/opencode/src/cli/cmd/tui/i18n/en.ts b/packages/opencode/src/cli/cmd/tui/i18n/en.ts index 68c9eb2a..2e78c746 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/en.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/en.ts @@ -428,4 +428,12 @@ export const dict: Record = { "trust.dangerous.advice_root": "Unless you have a very specific reason, DO NOT trust the filesystem root.", "trust.dangerous.option.yes": "I understand the risks, trust for this session", "trust.dangerous.option.no": "Exit (recommended)", + + // Plugin install UI + "tui.plugin.install.title": "Install plugin", + "tui.plugin.install.busy": "Installing plugin...", + "tui.plugin.install.name_required": "Plugin package name is required", + "tui.plugin.install.check_npm": "Check npm registry/auth settings and try again.", + "tui.plugin.install.no_tui_target": "Package has no TUI target to load in this app.", + "tui.plugin.install.load_failed": "Installed plugin, but runtime load failed. See console/logs; restart TUI to retry.", } diff --git a/packages/opencode/src/cli/cmd/tui/i18n/es.ts b/packages/opencode/src/cli/cmd/tui/i18n/es.ts index 5160b363..279527d6 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/es.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/es.ts @@ -470,4 +470,12 @@ export const dict = { "tui.dialog.login.flow.waiting": "Esperando autorización del navegador...", "tui.dialog.login.flow.invalid_code": "Código inválido, intenta de nuevo", "tui.dialog.login.flow.copied": "Copiado", + + // Plugin install UI + "tui.plugin.install.title": "Instalar plugin", + "tui.plugin.install.busy": "Instalando plugin...", + "tui.plugin.install.name_required": "Se requiere el nombre del paquete del plugin", + "tui.plugin.install.check_npm": "Verifica la configuración del registro/autenticación de npm e inténtalo de nuevo.", + "tui.plugin.install.no_tui_target": "El paquete no tiene un objetivo TUI para cargar en esta aplicación.", + "tui.plugin.install.load_failed": "Plugin instalado, pero la carga en runtime falló. Ver consola/logs; reinicia TUI para reintentar.", } satisfies Partial> diff --git a/packages/opencode/src/cli/cmd/tui/i18n/fr.ts b/packages/opencode/src/cli/cmd/tui/i18n/fr.ts index 3f462f74..13e025a2 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/fr.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/fr.ts @@ -477,4 +477,12 @@ export const dict = { "trust.dangerous.advice_root": "Sauf raison très spécifique, NE faites PAS confiance à la racine du système de fichiers.", "trust.dangerous.option.yes": "Je comprends les risques, faire confiance pour cette session", "trust.dangerous.option.no": "Quitter (recommandé)", + + // Plugin install UI + "tui.plugin.install.title": "Installer un plugin", + "tui.plugin.install.busy": "Installation du plugin...", + "tui.plugin.install.name_required": "Le nom du paquet du plugin est requis", + "tui.plugin.install.check_npm": "Vérifiez les paramètres du registre/authentification npm et réessayez.", + "tui.plugin.install.no_tui_target": "Le paquet n'a pas de cible TUI à charger dans cette application.", + "tui.plugin.install.load_failed": "Plugin installé, mais le chargement en runtime a échoué. Consultez les logs ; redémarrez le TUI pour réessayer.", } satisfies Partial> diff --git a/packages/opencode/src/cli/cmd/tui/i18n/ja.ts b/packages/opencode/src/cli/cmd/tui/i18n/ja.ts index 6f79d969..b390fb9f 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/ja.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/ja.ts @@ -429,4 +429,12 @@ export const dict = { "trust.dangerous.advice_root": "明確な理由がない限り、ファイルシステムのルートを信頼しないでください。", "trust.dangerous.option.yes": "リスクを理解した上で、今回のみ信頼する", "trust.dangerous.option.no": "終了(推奨)", + + // Plugin install UI + "tui.plugin.install.title": "プラグインをインストール", + "tui.plugin.install.busy": "プラグインをインストール中...", + "tui.plugin.install.name_required": "プラグインパッケージ名が必要です", + "tui.plugin.install.check_npm": "npmレジストリ/認証設定を確認して再試行してください。", + "tui.plugin.install.no_tui_target": "このアプリで読み込めるTUIターゲットがありません。", + "tui.plugin.install.load_failed": "インストールされましたが、ランタイムの読み込みに失敗しました。ログを確認し、TUIを再起動してください。", } satisfies Partial> diff --git a/packages/opencode/src/cli/cmd/tui/i18n/ru.ts b/packages/opencode/src/cli/cmd/tui/i18n/ru.ts index ee774a06..4fc0282b 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/ru.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/ru.ts @@ -489,4 +489,12 @@ export const dict = { "trust.dangerous.advice_root": "Если нет весомой причины, НЕ доверяйте корню файловой системы.", "trust.dangerous.option.yes": "Я понимаю риски, доверять только в этой сессии", "trust.dangerous.option.no": "Выйти (рекомендуется)", + + // Plugin install UI + "tui.plugin.install.title": "Установить плагин", + "tui.plugin.install.busy": "Установка плагина...", + "tui.plugin.install.name_required": "Требуется имя пакета плагина", + "tui.plugin.install.check_npm": "Проверьте настройки реестра/аутентификации npm и попробуйте снова.", + "tui.plugin.install.no_tui_target": "Пакет не имеет TUI-цели для загрузки в этом приложении.", + "tui.plugin.install.load_failed": "Плагин установлен, но загрузка не удалась. См. логи; перезапустите TUI для повторной попытки.", } satisfies Partial> diff --git a/packages/opencode/src/cli/cmd/tui/i18n/zh.ts b/packages/opencode/src/cli/cmd/tui/i18n/zh.ts index cf12b5e0..e9add6a0 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/zh.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/zh.ts @@ -421,4 +421,12 @@ export const dict = { "trust.dangerous.advice_root": "除非有明确的理由,否则不要信任文件系统根目录。", "trust.dangerous.option.yes": "我了解风险,仅本次信任", "trust.dangerous.option.no": "退出(推荐)", + + // Plugin install UI + "tui.plugin.install.title": "安装插件", + "tui.plugin.install.busy": "正在安装插件...", + "tui.plugin.install.name_required": "请输入插件包名", + "tui.plugin.install.check_npm": "请检查 npm 注册表/认证设置后重试。", + "tui.plugin.install.no_tui_target": "该包没有可在此应用中加载的 TUI 目标。", + "tui.plugin.install.load_failed": "插件已安装,但运行时加载失败。请查看日志;重启 TUI 后重试。", } satisfies Partial> diff --git a/packages/opencode/src/cli/cmd/tui/i18n/zht.ts b/packages/opencode/src/cli/cmd/tui/i18n/zht.ts index fb097786..9ef30239 100644 --- a/packages/opencode/src/cli/cmd/tui/i18n/zht.ts +++ b/packages/opencode/src/cli/cmd/tui/i18n/zht.ts @@ -397,4 +397,12 @@ export const dict = { "tui.dialog.login.flow.waiting": "等待瀏覽器授權中...", "tui.dialog.login.flow.invalid_code": "Code 無效,請重試", "tui.dialog.login.flow.copied": "已複製", + + // Plugin install UI + "tui.plugin.install.title": "安裝外掛", + "tui.plugin.install.busy": "正在安裝外掛...", + "tui.plugin.install.name_required": "請輸入外掛套件名稱", + "tui.plugin.install.check_npm": "請檢查 npm 註冊表/認證設定後重試。", + "tui.plugin.install.no_tui_target": "該套件沒有可在此應用程式中載入的 TUI 目標。", + "tui.plugin.install.load_failed": "外掛已安裝,但執行時期載入失敗。請查看日誌;重啟 TUI 後重試。", } satisfies Partial>