fix(i18n): sync locale strings for model provider UI (#2911)

This commit is contained in:
LC
2026-05-21 15:55:37 +08:00
committed by GitHub
parent 30938df40b
commit f55d7a0598
3 changed files with 68 additions and 11 deletions
+1 -1
View File
@@ -274,7 +274,7 @@
"modelNameHint": "A short name used to identify this model in conversations.",
"modelId": "Model Identifier",
"modelIdPlaceholder": "e.g. gpt-4o or openai/gpt-4o",
"modelIdHint": "If Provider is not specified, values such as openai/gpt-4o are interpreted using the provider/model format. If Provider is specified, this field is treated as the canonical model ID and is not parsed for a provider prefix.",
"modelIdHint": "This field is treated as the canonical model ID for the selected provider. If the identifier itself contains a slash (for example openai/gpt-5.4), it is preserved as-is and not split again.",
"errorRequired": "This field is required.",
"errorDuplicateModelName": "Model alias already exists. Please use a different name.",
"saveError": "Failed to add model",
+61 -4
View File
@@ -253,7 +253,8 @@
"setting": "Definindo como padrão...",
"unavailable": "Não é possível definir um modelo indisponível como padrão",
"isDefault": "Já é o modelo padrão",
"isVirtual": "Não é possível definir um modelo virtual como padrão"
"isVirtual": "Não é possível definir um modelo virtual como padrão",
"unsupportedProvider": "Este provedor não pode ser usado como modelo de chat padrão."
},
"deleteDisabled": {
"isDefault": "Não é possível excluir o modelo padrão"
@@ -273,7 +274,7 @@
"modelNameHint": "Um nome curto usado para identificar este modelo nas conversas.",
"modelId": "Identificador do Modelo",
"modelIdPlaceholder": "ex: gpt-4o ou openai/gpt-4o",
"modelIdHint": "Se Provider não estiver especificado, valores como openai/gpt-4o são interpretados no formato provider/modelo. Se Provider estiver especificado, este campo é tratado como o ID canônico do modelo e não é parseado em busca de prefixo de provider.",
"modelIdHint": "Este campo é tratado como o ID canônico do modelo para o provedor selecionado. Se o próprio identificador contiver uma barra, como openai/gpt-5.4, ele será preservado como está e não será dividido novamente.",
"errorRequired": "Este campo é obrigatório.",
"errorDuplicateModelName": "Apelido de modelo já existe. Use um nome diferente.",
"saveError": "Falha ao adicionar modelo",
@@ -422,7 +423,8 @@
"maixcam": "MaixCam",
"matrix": "Matrix",
"irc": "IRC",
"weixin": "WeChat"
"weixin": "WeChat",
"mqtt": "MQTT"
},
"weixin": {
"bindTitle": "Vincular Conta do WeChat",
@@ -553,9 +555,33 @@
"channels": "Canais IRC para entrar.",
"requestCaps": "Lista de capabilities IRC requisitada na conexão.",
"maxBase64FileSizeMiB": "Tamanho máximo em MiB para converter arquivos locais em base64 antes do upload. 0 significa ilimitado. Aplica-se apenas a arquivos locais, não a uploads via URL.",
"genericField": "Usado para configurar {{field}}."
"genericField": "Usado para configurar {{field}}.",
"broker": "Endereço do broker MQTT.",
"mqttAgentId": "Identificador único desta instância, usado para montar o caminho do topic.",
"topicPrefix": "Prefixo do topic. O padrão é /picoclaw.",
"mqttUsername": "Nome de usuário de autenticação do broker (opcional).",
"mqttPassword": "Senha de autenticação do broker (opcional).",
"mqttClientId": "ID do cliente MQTT. Deixe em branco para gerar automaticamente.",
"keepAlive": "Intervalo de keepalive em segundos. O padrão é 60.",
"qos": "Nível de qualidade de serviço da mensagem: 0 = no máximo uma vez, 1 = pelo menos uma vez, 2 = exatamente uma vez."
}
},
"mqtt": {
"protocolTitle": "Referência do Protocolo",
"protocolDesc": "Os clientes enviam e recebem mensagens usando o seguinte formato de topic e payload.",
"uplink": "Uplink (Cliente → Agent)",
"downlink": "Downlink (Agent → Cliente)",
"topicParams": "Parâmetros do Topic",
"fieldText": "text",
"uplinkTextDesc": "Instrução em linguagem natural enviada pelo usuário (obrigatória).",
"downlinkTextDesc": "Texto de resposta do agente. No modo streaming, concatene várias mensagens na ordem para obter a resposta completa.",
"topicPrefixDesc": "Prefixo do topic, correspondente à configuração acima.",
"agentIdDesc": "Agent ID, correspondente à configuração acima.",
"clientIdDesc": "Identificador definido pelo cliente. Recomendação: gerar um UUID na primeira execução e persistir o valor para que o mesmo dispositivo sempre use o mesmo ID.",
"clientIdPlaceholder": "Gerado automaticamente se ficar em branco",
"secretSet": "Já configurado. Deixe em branco para manter sem alterações.",
"secretEmpty": "Não configurado"
},
"validation": {
"requiredField": "Este campo é obrigatório."
}
@@ -823,10 +849,41 @@
"evolution_cold_path_manual": "Desligado",
"evolution_cold_path_times": "Horários Agendados",
"evolution_cold_path_times_hint": "Horários para o processamento cold-path agendado. Insira um valor HH:MM por linha.",
"mcp_section_hint": "Configure servidores MCP sem editar manualmente o config.json.",
"mcp_enabled": "Habilitar MCP",
"mcp_enabled_hint": "Ativa ou desativa a integração com servidores MCP.",
"mcp_discovery_enabled": "Habilitar Descoberta MCP",
"mcp_discovery_enabled_hint": "Permite que as ferramentas de descoberta MCP pesquisem os servidores MCP registrados.",
"mcp_discovery_ttl": "TTL de desbloqueio das ferramentas descobertas",
"mcp_discovery_ttl_hint": "Quantos ciclos de TTL de execução de ferramenta as ferramentas descobertas permanecem disponíveis após a busca.",
"mcp_discovery_max_results": "Máx. de Resultados da Descoberta",
"mcp_discovery_max_results_hint": "Número máximo de correspondências MCP retornadas por consulta.",
"mcp_discovery_use_bm25": "Usar Ordenação BM25",
"mcp_discovery_use_bm25_hint": "Usa pontuação lexical BM25 nos resultados da descoberta MCP.",
"mcp_discovery_use_regex": "Habilitar Busca por Regex",
"mcp_discovery_use_regex_hint": "Permite correspondência baseada em regex na descoberta MCP.",
"mcp_servers": "Servidores MCP",
"mcp_servers_hint": "Adicione, edite ou remova servidores MCP.",
"mcp_server_new": "Novo servidor MCP",
"mcp_server_add": "Adicionar servidor",
"mcp_server_remove": "Remover",
"mcp_server_enabled": "Habilitado",
"mcp_server_discovery_mode": "Modo de descoberta",
"mcp_server_discovery_mode_inherit": "Seguir modo global de descoberta",
"mcp_server_discovery_mode_deferred": "Descoberta adiada",
"mcp_server_discovery_mode_eager": "Registro imediato",
"mcp_server_name_placeholder": "Nome do servidor (ex.: github)",
"mcp_server_url_placeholder": "URL do servidor (ex.: https://example.com/mcp)",
"mcp_server_command_placeholder": "Comando (ex.: npx)",
"mcp_server_env_file_placeholder": "Caminho do arquivo de ambiente (opcional)",
"mcp_server_args_placeholder": "Args, um por linha",
"mcp_server_env_placeholder": "Objeto JSON de variáveis de ambiente",
"mcp_server_headers_placeholder": "Objeto JSON de headers",
"sections": {
"agent": "Agente",
"runtime": "Runtime",
"evolution": "Evolução",
"mcp": "MCP",
"exec": "Execução de Comandos",
"cron": "Tarefas Agendadas",
"launcher": "Launcher",
+6 -6
View File
@@ -254,7 +254,7 @@
"unavailable": "无法将不可用的模型设为默认",
"isDefault": "该模型已是默认模型",
"isVirtual": "无法将虚拟模型设为默认",
"unsupportedProvider": "该 Provider 仅用于 ASR不能设为默认聊天模型"
"unsupportedProvider": "该服务商不能设为默认聊天模型"
},
"deleteDisabled": {
"isDefault": "无法删除默认模型"
@@ -263,8 +263,7 @@
"defaultOnSave": {
"label": "默认模型",
"description": "保存后自动将该模型设置为默认模型。",
"unsupportedProvider": "该 Provider 可以保存在 model_list 中,但不能作为默认聊天模型使用。",
"clearOnSave": "保存这个仅用于 ASR 的模型后,会清除当前的默认聊天模型设置。"
"unsupportedProvider": "该服务商可以保存在模型列表中,但不能作为默认聊天模型使用。"
},
"add": {
"button": "添加模型",
@@ -344,10 +343,12 @@
"retry": "重试",
"filterPlaceholder": "筛选模型...",
"found": "已找到 {{count}} 个模型",
"found_plural": "已找到 {{count}} 个模型",
"shown": "(显示 {{count}} 个)",
"selectAll": "全选",
"deselectAll": "取消全选",
"fill": "填充 {{count}} 个选中的模型",
"fill_plural": "填充 {{count}} 个选中的模型",
"failed": "获取模型失败"
},
"catalog": {
@@ -362,6 +363,7 @@
"delete": "删除目录",
"refresh": "从上游刷新",
"found": "共 {{count}} 个模型",
"found_plural": "共 {{count}} 个模型",
"selectAll": "全选",
"deselectAll": "取消全选",
"addSelected": "添加 {{count}} 个选中模型",
@@ -400,9 +402,7 @@
"searchProvider": "搜索服务商...",
"noProvider": "未找到服务商。",
"noCatalog": "Provider catalog 暂不可用。",
"local": "本地",
"custom": "自定义服务商...",
"customPlaceholder": "输入服务商名称..."
"local": "本地"
}
},
"channels": {