Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand All @@ -52,10 +53,10 @@ function Install(props: { api: TuiPluginApi }) {

return (
<props.api.ui.DialogPrompt
title="Install plugin"
title={t("tui.plugin.install.title")}
placeholder="npm package name"
busy={busy()}
busyText="Installing plugin..."
busyText={t("tui.plugin.install.busy")}
description={() => (
<box flexDirection="row" gap={1}>
<text fg={props.api.theme.current.textMuted}>scope:</text>
Expand All @@ -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
}
Expand All @@ -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)
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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<string | undefined>()
Expand Down Expand Up @@ -206,7 +208,7 @@ function View(props: { api: TuiPluginApi }) {

return (
<DialogSelect
title="Plugins"
title={t("tui.plugin.list.title")}
options={rows()}
current={cur()}
onMove={(item) => setCur(item.value)}
Expand Down
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -428,4 +428,12 @@ export const dict: Record<string, string> = {
"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.",
}
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Record<Keys, string>>
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Record<Keys, string>>
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Record<Keys, string>>
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/ru.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Record<Keys, string>>
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/zh.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Record<Keys, string>>
8 changes: 8 additions & 0 deletions packages/opencode/src/cli/cmd/tui/i18n/zht.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<Record<Keys, string>>