feat: i18n 11 languages + website update + fix #139 #140 #141

i18n:
- Add 9 new locale files (ja/ko/de/es/fr/pt/ru/vi/zh-TW)
- Add multilingual README files for all 11 languages
- Add locale helper, index, and modular translation system
- Add translation generation scripts

Website (docs/index.html):
- Replace 公益AI接口 branding with 晴辰云AI接口
- Remove OpenClaw 独立安装包 promotion block
- Update SEO meta tags (description, keywords, OG, Twitter, JSON-LD)
- Add 11-language README links to footer
- Update 元宝派 link to new URL

Bug fixes:
- fix(cron): delivery format mode:'push' → mode:'announce', remove invalid 'to' field (fixes #141)
- fix(cron): allow single-channel users to select delivery channel
- fix(cron): preserve delivery field in job state for editing
- fix(models): add 'ollama' as recognized API type, prevent overwriting native ollama config (fixes #140)
- fix(models): skip /v1 append for ollama native API baseUrl
- fix(assistant): normalize 'google-generative-ai' consistently, add ollama hints
- fix(version): use CLI path classification for source detection on Windows (fixes #139)
- fix(version): default to 'official' instead of 'chinese' when source unknown
- fix(version): reorder npm global package check based on active CLI
This commit is contained in:
晴天
2026-03-24 22:31:11 +08:00
parent f8af3bea4a
commit 985d263dc6
261 changed files with 26760 additions and 175 deletions

View File

@@ -0,0 +1,24 @@
{
"title": "Sobre",
"desc": "Informações de versão e projeto do ClawPanel",
"subtitle": "Painel de gestão visual do OpenClaw",
"sectionCommunity": "Comunidade",
"sectionContribute": "Contribuir",
"sectionLinks": "Links",
"checkingUpdate": "Verificando atualizações...",
"official": "Oficial",
"notInstalled": "Não instalado",
"versionLabel": "Versão",
"recommended": "Recomendado",
"current": "Atual",
"upToDate": "Atualizado",
"checkUpdateFailed": "Falha ao verificar atualizações",
"joinDiscord": "Entrar no Discord",
"discordDesc": "Comunidade internacional",
"communityWelcome": "Bem-vindo à comunidade OpenClaw! Reporte problemas a qualquer momento, vamos juntos tornar os AI Agents melhores.",
"communityWelcomeIntl": "Welcome to the OpenClaw community! Share ideas, get help, and build amazing AI agents together.",
"submitIssue": "Enviar Issue",
"submitPR": "Enviar PR",
"officialWebsite": "Site oficial",
"openSourceRepo": "Repositório de código aberto"
}

View File

@@ -0,0 +1,23 @@
{
"title": "Gestão de Agentes",
"desc": "Criar e gerenciar OpenClaw Agents",
"addAgent": "+ Novo Agent",
"noAgents": "Sem Agentes",
"loadFailed": "Falha ao carregar",
"default": "Padrão",
"backup": "Backup",
"edit": "Editar",
"delete": "Excluir",
"notSet": "Não definido",
"addTitle": "Novo Agent",
"agentId": "Agent ID",
"agentName": "Nome",
"agentModel": "Modelo",
"created": "Agent criado",
"createFailed": "Falha ao criar",
"editTitle": "Editar Agent — {id}",
"updated": "Atualizado",
"updateFailed": "Falha ao atualizar",
"deleted": "Excluído",
"deleteFailed": "Falha ao excluir"
}

View File

@@ -0,0 +1,27 @@
{
"defaultName": "Assistente IA",
"welcomeText": "Olá! Sou o assistente IA. Como posso ajudar?",
"loading": "Carregando...",
"settings": "Configurações",
"settingsTitle": "Configurações do assistente",
"settingsSaved": "Configurações salvas",
"model": "Modelo",
"temperature": "Temperatura",
"testSuccess": "Conexão bem-sucedida",
"testFailed": "Conexão falhou",
"testing": "Testando...",
"testBtn": "Testar conexão",
"send": "Enviar",
"inputPlaceholder": "Descreva o problema...",
"stopped": "Parado",
"retry": "Tentar novamente",
"copyText": "Copiar texto",
"newSession": "Nova sessão",
"deleteSession": "Excluir sessão",
"noSessions": "Sem sessões",
"sessionList": "Lista de sessões",
"aiThinking": "Pensando...",
"confirmAllow": "Permitir execução",
"toolExecuting": "Executando...",
"toolDone": "Execução concluída"
}

View File

@@ -0,0 +1,32 @@
{
"title": "Canais",
"desc": "Gerenciar canais de mensagens e conexões de plataforma",
"addChannel": "+ Adicionar canal",
"noChannels": "Sem canais",
"channelName": "Nome do canal",
"platform": "Plataforma",
"status": "Status",
"connected": "Conectado",
"disconnected": "Desconectado",
"edit": "Editar",
"delete": "Excluir",
"save": "Salvar",
"saved": "Salvo",
"saveFailed": "Falha ao salvar",
"deleted": "Excluído",
"loadFailed": "Falha ao carregar",
"testConnection": "Testar conexão",
"testing": "Testando...",
"testSuccess": "Conexão bem-sucedida",
"testFailed": "Conexão falhou",
"bindAgent": "Vincular Agent",
"selectAgent": "Selecionar Agent",
"pairingTitle": "Pareamento",
"approve": "Aprovar",
"configTitle": "Configuração do canal",
"restartRequired": "É necessário reiniciar o Gateway",
"installPlugin": "Instalar plugin",
"installing": "Instalando...",
"installSuccess": "Instalado",
"installFailed": "Instalação falhou"
}

View File

@@ -0,0 +1,22 @@
{
"title": "Chat ao vivo",
"desc": "Conversar com o Agent em tempo real",
"selectAgent": "Selecionar Agent",
"connecting": "Conectando...",
"connected": "Conectado",
"disconnected": "Desconectado",
"send": "Enviar",
"inputPlaceholder": "Digite uma mensagem...",
"noMessages": "Sem mensagens",
"clearChat": "Limpar histórico",
"newSession": "Nova sessão",
"noSessions": "Sem sessões",
"copyMessage": "Copiar",
"thinking": "Pensando...",
"generating": "Gerando...",
"stop": "Parar",
"regenerate": "Regenerar",
"modelSelect": "Selecionar modelo",
"gatewayNotRunning": "Gateway não está em execução",
"startGateway": "Iniciar Gateway"
}

View File

@@ -0,0 +1,16 @@
{
"title": "Diagnóstico do sistema",
"desc": "Diagnóstico de conexão WebSocket e depuração de rede",
"wsStatus": "Status WebSocket",
"wsConnect": "Conectar",
"wsDisconnect": "Desconectar",
"wsConnected": "Conectado",
"wsDisconnected": "Não conectado",
"wsConnecting": "Conectando...",
"wsError": "Erro WebSocket",
"networkLogTitle": "Log de solicitações de rede",
"noRequests": "Sem solicitações",
"totalRequests": "Total de solicitações",
"fixStarting": "Iniciando reparo...",
"fixFailed": "Reparo falhou"
}

View File

@@ -0,0 +1,42 @@
{
"save": "Salvar",
"cancel": "Cancelar",
"confirm": "Confirmar",
"delete": "Excluir",
"edit": "Editar",
"add": "Adicionar",
"close": "Fechar",
"loading": "Carregando...",
"retry": "Tentar novamente",
"copy": "Copiar",
"copied": "Copiado",
"search": "Pesquisar",
"refresh": "Atualizar",
"back": "Voltar",
"submit": "Enviar",
"reset": "Redefinir",
"enabled": "Ativado",
"disabled": "Desativado",
"unknown": "Desconhecido",
"none": "Nenhum",
"yes": "Sim",
"no": "Não",
"online": "Online",
"offline": "Offline",
"running": "Em execução",
"stopped": "Parado",
"error": "Erro",
"success": "Sucesso",
"warning": "Aviso",
"info": "Informação",
"loadFailed": "Falha ao carregar",
"saveFailed": "Falha ao salvar",
"saveSuccess": "Salvo com sucesso",
"operationFailed": "Operação falhou",
"operationSuccess": "Operação bem-sucedida",
"noData": "Sem dados",
"unit": "",
"survivalRate": "Disponibilidade",
"settings": "Configurações",
"update": "Atualizar"
}

View File

@@ -0,0 +1,28 @@
{
"title": "Comunicação e Automação",
"desc": "Configurar canais de notificação e regras de automação",
"notifyTitle": "Canais de notificação",
"automationTitle": "Regras de automação",
"addChannel": "+ Adicionar canal",
"addRule": "+ Adicionar regra",
"noChannels": "Sem canais",
"noRules": "Sem regras",
"channelName": "Nome do canal",
"enabled": "Ativado",
"disabled": "Desativado",
"test": "Enviar teste",
"testing": "Testando...",
"testSuccess": "Teste bem-sucedido",
"testFailed": "Teste falhou",
"save": "Salvar",
"saved": "Salvo",
"saveFailed": "Falha ao salvar",
"delete": "Excluir",
"deleted": "Excluído",
"deleteFailed": "Falha ao excluir",
"loadFailed": "Falha ao carregar",
"trigger": "Gatilho",
"action": "Ação",
"selectAgent": "Selecionar Agent",
"approve": "Aprovar"
}

View File

@@ -0,0 +1,19 @@
{
"title": "Tarefas agendadas",
"desc": "Gerenciar tarefas agendadas do OpenClaw",
"addTask": "+ Adicionar tarefa",
"noTasks": "Sem tarefas",
"taskName": "Nome da tarefa",
"schedule": "Agendamento",
"status": "Status",
"active": "Ativa",
"inactive": "Inativa",
"edit": "Editar",
"delete": "Excluir",
"enable": "Ativar",
"disable": "Desativar",
"runNow": "Executar agora",
"created": "Tarefa criada",
"deleted": "Tarefa excluída",
"loadFailed": "Falha ao carregar"
}

View File

@@ -0,0 +1,32 @@
{
"title": "Painel",
"desc": "Visão geral do estado do OpenClaw",
"gateway": "Gateway",
"notStarted": "Não iniciado",
"versionLabel": "Versão",
"agentFleet": "Frota de Agentes",
"defaultAgent": "Padrão",
"modelPool": "Pool de modelos",
"baseServices": "Serviços base",
"controlUI": "Control UI",
"restartGw": "Reiniciar Gateway",
"checkUpdate": "Verificar atualizações",
"createBackup": "Criar backup",
"recentLogs": "Logs recentes",
"cliPath": "Caminho CLI",
"retry": "Tentar novamente",
"notSet": "Não definido",
"port": "Porta",
"startBtn": "Iniciar",
"stopBtn": "Parar",
"restartBtn": "Reiniciar",
"primaryModel": "Modelo principal",
"noLogs": "Sem logs",
"starting": "Iniciando...",
"stopping": "Parando...",
"restarting": "Reiniciando...",
"checking": "Verificando...",
"upToDate": "Atualizado",
"backingUp": "Fazendo backup...",
"backupFail": "Falha no backup"
}

View File

@@ -0,0 +1,18 @@
{
"title": "Ferramentas de extensão",
"desc": "Gerenciar cftunnel e ClawApp",
"cftunnelTitle": "cftunnel",
"clawappTitle": "ClawApp",
"installBtn": "Instalação rápida",
"status": "Status",
"running": "Em execução",
"stopped": "Parado",
"version": "Versão",
"startTunnel": "Iniciar túnel",
"stopTunnel": "Parar túnel",
"start": "Iniciar",
"stop": "Parar",
"installing": "Instalando...",
"installDone": "Instalação concluída",
"installFailed": "Instalação falhou"
}

View File

@@ -0,0 +1,17 @@
{
"title": "Gateway",
"desc": "Configurar e gerenciar Gateway",
"status": "Status",
"running": "Em execução",
"stopped": "Parado",
"port": "Porta",
"saveConfig": "Salvar configuração",
"saved": "Configuração do Gateway salva",
"saveFailed": "Falha ao salvar",
"restartRequired": "É necessário reiniciar o Gateway",
"restartNow": "Reiniciar agora",
"configLoadFail": "Falha ao carregar configuração",
"pairingTitle": "Pareamento de dispositivos",
"pairedDevices": "Dispositivos pareados",
"noPairedDevices": "Nenhum dispositivo pareado"
}

View File

@@ -0,0 +1,11 @@
{
"local": "Local",
"remote": "Remoto",
"docker": "Docker",
"addInstance": "Adicionar instância",
"addRemote": "Adicionar instância remota",
"nameLabel": "Nome",
"endpointLabel": "Endereço do painel",
"adding": "Adicionando...",
"current": "Atual"
}

View File

@@ -0,0 +1,17 @@
{
"title": "Logs",
"desc": "Ver logs do serviço OpenClaw",
"tabGateway": "Gateway",
"tabGatewayErr": "Erros Gateway",
"tabGuardian": "Guardian",
"tabBackup": "Backup",
"tabAudit": "Auditoria",
"searchPlaceholder": "Pesquisar...",
"refresh": "Atualizar",
"autoScroll": "Rolagem auto",
"loading": "Carregando...",
"empty": "Sem logs",
"loadFailed": "Falha ao carregar",
"noResults": "Sem resultados",
"searchFailed": "Pesquisa falhou"
}

View File

@@ -0,0 +1,17 @@
{
"title": "Memória",
"desc": "Gerenciar arquivos de memória do Agent",
"noFiles": "Sem arquivos",
"view": "Ver",
"download": "Baixar",
"delete": "Excluir",
"upload": "Enviar",
"uploading": "Enviando...",
"uploaded": "Enviado",
"uploadFailed": "Falha ao enviar",
"deleted": "Excluído",
"deleteFailed": "Falha ao excluir",
"loadFailed": "Falha ao carregar",
"selectAgent": "Selecionar Agent",
"searchPlaceholder": "Pesquisar..."
}

View File

@@ -0,0 +1,5 @@
{
"confirmTitle": "Confirmar",
"confirmOk": "OK",
"confirmCancel": "Cancelar"
}

View File

@@ -0,0 +1,21 @@
{
"title": "Configuração de modelos",
"desc": "Gerenciar provedores e modelos de IA",
"addProvider": "+ Adicionar provedor",
"noProviders": "Sem provedores",
"providerName": "Nome do provedor",
"baseUrl": "Base URL",
"apiKey": "API Key",
"models": "Modelos",
"addModel": "Adicionar modelo",
"saveProvider": "Salvar",
"testConnection": "Testar conexão",
"testing": "Testando...",
"testSuccess": "Conexão bem-sucedida",
"testFailed": "Conexão falhou",
"fetchModels": "Obter lista de modelos",
"primaryModel": "Modelo principal",
"enabled": "Ativado",
"disabled": "Desativado",
"loadFailed": "Falha ao carregar configuração"
}

View File

@@ -0,0 +1,8 @@
{
"title": "Segurança",
"desc": "Gerenciar configurações de segurança do OpenClaw",
"toolPermissions": "Permissões de ferramentas",
"savePermissions": "Salvar permissões",
"permSaved": "Permissões salvas",
"loadFailed": "Falha ao carregar configurações"
}

View File

@@ -0,0 +1,23 @@
{
"title": "Gestão de serviços",
"desc": "Iniciar, parar e monitorar serviços OpenClaw",
"gatewayTitle": "Serviço Gateway",
"guardianTitle": "Serviço Guardian",
"status": "Status",
"pid": "PID",
"uptime": "Tempo ativo",
"port": "Porta",
"host": "Host",
"start": "Iniciar",
"stop": "Parar",
"restart": "Reiniciar",
"forceKill": "Forçar encerramento",
"viewLogs": "Ver logs",
"starting": "Iniciando...",
"stopping": "Parando...",
"restarting": "Reiniciando...",
"loadFail": "Falha ao carregar status",
"healthCheck": "Verificação de saúde",
"healthOk": "Funcionando normalmente",
"healthFail": "Sem resposta"
}

View File

@@ -0,0 +1,13 @@
{
"title": "Configurações do painel",
"desc": "Gerenciar configurações de rede, proxy e fontes de download",
"networkProxy": "Proxy de rede",
"modelProxy": "Proxy de solicitações de modelo",
"npmRegistry": "npm Registry",
"language": "Idioma de exibição",
"languageHint": "Alterar o idioma da interface.",
"testProxy": "Testar conexão",
"clearProxy": "Desativar proxy",
"resetDefault": "Restaurar padrão",
"restarting": "Reiniciando..."
}

View File

@@ -0,0 +1,23 @@
{
"title": "Configuração inicial",
"desc": "Instalar e configurar OpenClaw",
"headerTitle": "Bem-vindo ao ClawPanel",
"recheck": "Verificar novamente",
"stepNode": "Ambiente Node.js",
"installed": "Instalado",
"downloadNode": "Baixar Node.js",
"stepGit": "Git",
"stepConfig": "Arquivo de configuração",
"saveBtn": "Salvar",
"resetDefaultBtn": "Restaurar padrão",
"aiAssistant": "Assistente IA",
"openAiAssistant": "Abrir assistente IA",
"nextStepsTitle": "Próximos passos",
"configModels": "Configurar modelos",
"gatewaySetup": "Configurar Gateway",
"messageChannels": "Canais",
"enterPanel": "Entrar no painel",
"installBtn": "Instalação rápida",
"installOpenclaw": "Instalar OpenClaw",
"installComplete": "Instalação concluída"
}

View File

@@ -0,0 +1,29 @@
{
"collapse": "Recolher",
"closeMenu": "Fechar menu",
"themeLight": "Claro",
"themeDark": "Escuro",
"sectionMonitor": "Monitoramento",
"sectionConfig": "Configuração",
"sectionData": "Dados",
"sectionExtension": "Extensões",
"dashboard": "Painel",
"assistant": "Assistente",
"chat": "Chat",
"services": "Serviços",
"logs": "Logs",
"models": "Modelos",
"agents": "Agentes",
"gateway": "Gateway",
"channels": "Canais",
"communication": "Comunicação",
"security": "Segurança",
"memory": "Memória",
"cron": "Tarefas",
"usage": "Uso",
"skills": "Skills",
"settings": "Configurações",
"chatDebug": "Diagnóstico",
"about": "Sobre",
"setup": "Configuração inicial"
}

View File

@@ -0,0 +1,19 @@
{
"title": "Skills",
"desc": "Gerenciar e instalar OpenClaw Skills",
"installed": "Instalados",
"available": "Disponíveis",
"noSkills": "Sem Skills",
"install": "Instalar",
"uninstall": "Desinstalar",
"update": "Atualizar",
"search": "Pesquisar Skills...",
"installing": "Instalando...",
"installSuccess": "Instalado",
"installFailed": "Falha ao instalar",
"loadFailed": "Falha ao carregar",
"noResults": "Sem resultados",
"refreshList": "Atualizar lista",
"checkUpdates": "Verificar atualizações",
"noUpdates": "Tudo atualizado"
}

View File

@@ -0,0 +1,4 @@
{
"copySuccess": "Copiado",
"copyFailed": "Falha ao copiar"
}

View File

@@ -0,0 +1,17 @@
{
"title": "Uso",
"desc": "Ver estatísticas de uso de modelos e tokens",
"totalTokens": "Total de tokens",
"totalRequests": "Total de solicitações",
"totalCost": "Custo total",
"today": "Hoje",
"week": "Esta semana",
"month": "Este mês",
"all": "Todos",
"noData": "Sem dados",
"model": "Modelo",
"tokens": "Tokens",
"loadFailed": "Falha ao carregar",
"chart": "Gráfico",
"table": "Tabela"
}