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
4 changes: 2 additions & 2 deletions docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
| 文档 | 说明 |
| --- | --- |
| [`translation.md`](./translation.md) | 翻译 / 本地化指南(单一信息源):术语与修改规则、工作流、提取翻译提示词。**翻译前先读。** |
| [`translation.md` 术语规范表](./translation.md#各语言术语规范--per-locale-terminology) | 8 个语言地区的术语与界面文案规范 `terminology-<locale>.md`(en-US / zh-CN / zh-TW / ja-JP / ru-RU / de-DE / vi-VN / tr-TR)。 |
| [`translation.md` 术语规范表](./translation.md#各语言术语规范--per-locale-terminology) | 9 个语言地区的术语与界面文案规范 `terminology-<locale>.md`(en-US / zh-CN / zh-TW / ja-JP / ru-RU / de-DE / vi-VN / tr-TR / pt-BR)。 |

## 贡献指南 / Contributing

Expand All @@ -36,4 +36,4 @@
| [`README_zh-CN.md`](./README_zh-CN.md) | 简体中文 |
| [`README_zh-TW.md`](./README_zh-TW.md) | 繁體中文 |
| [`README_ja.md`](./README_ja.md) | 日本語 |
| [`README_RU.md`](./README_RU.md) | Русский |
| [`README_RU.md`](./README_RU.md) | Русский |
166 changes: 166 additions & 0 deletions docs/references/terminology-pt-BR.md

Large diffs are not rendered by default.

3 changes: 2 additions & 1 deletion docs/translation.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
| `de-DE` | Deutsch | [terminology-de-DE.md](./references/terminology-de-DE.md) |
| `vi-VN` | Tiếng Việt | [terminology-vi-VN.md](./references/terminology-vi-VN.md) |
| `tr-TR` | Türkçe | [terminology-tr-TR.md](./references/terminology-tr-TR.md) |
| `pt-BR` | Português (Brasil) | [terminology-pt-BR.md](./references/terminology-pt-BR.md) |

> `en-US` 是运行时的回退语言(fallback),也是新翻译的模板。其措辞应被刻意校准而非将含糊或不通顺的英文直接传播到其他 locale。

Expand Down Expand Up @@ -65,4 +66,4 @@
2. 使用目标语言的自然表达;对同一 ScriptCat 概念使用规范中的固定术语,不要基于相近措辞合并不同的脚本类型。
3. 对需结合语境的术语,先核对实际功能、控件类型与上下文文案再决定用词。
4. 保留 i18next 插值、程序标识符、HTML/React 标记、URL 与元数据标识符(`@match`、`@require` 等)。
5. 完成后复查本次修改,确认符合对应术语规范,并检查命名一致性、名词/动词混用等问题。
5. 完成后复查本次修改,确认符合对应术语规范,并检查命名一致性、名词/动词混用等问题。
2 changes: 2 additions & 0 deletions src/locales/locales.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import * as deDE from "./de-DE";
import * as viVN from "./vi-VN";
import * as ruRU from "./ru-RU";
import * as trTR from "./tr-TR";
import * as ptBR from "./pt-BR";
import { changeRelativeTimeLanguage } from "./relative-date";

export let localePath = "";
Expand Down Expand Up @@ -57,6 +58,7 @@ export function initLanguage(lng: string = "en-US"): void {
"vi-VN": { title: "Tiếng Việt", ...viVN },
"ru-RU": { title: "Русский", ...ruRU },
"tr-TR": { title: "Türkçe", ...trTR },
"pt-BR": { title: "Português (Brasil)", ...ptBR },
},
});

Expand Down
223 changes: 223 additions & 0 deletions src/locales/pt-BR/agent.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
{
"title": "Agente de IA",
"docs": "Documentação",
"chat": "Conversa",
"provider": "Serviço de modelo",
"mcp": "MCP",
"skills": "Skills",
"provider_title": "Serviço de modelo",
"provider_subtitle": "Gerencie provedores e conexões de modelos de IA",
"provider_select": "Provedor de IA",
"provider_api_base_url": "URL base da API",
"provider_api_key": "Chave da API",
"provider_model": "Modelo padrão",
"provider_test_connection": "Testar conexão",
"provider_test_success": "Conexão bem-sucedida",
"provider_test_failed": "Falha na conexão",
"provider_test_hint": "O teste envia uma requisição mínima para verificar a configuração",
"provider_docs": "Documentação",
"provider_count_hint": "O modelo padrão é usado para novas conversas",
"model_count": "{{count}} modelos",
"model_fetch": "Buscar modelos",
"model_name": "Nome",
"model_add": "Adicionar modelo",
"model_edit": "Editar",
"model_copy": "Copiar",
"model_delete": "Excluir",
"model_set_default": "Definir como padrão",
"model_default_label": "Padrão",
"model_max_tokens": "Máximo de tokens de saída",
"model_context_window": "Janela de contexto",
"model_no_models": "Nenhum modelo configurado",
"model_no_models_desc": "Adicione seu primeiro modelo para começar a usar o Agente de IA",
"model_capabilities": "Capacidades",
"model_supports_vision": "Entrada visual",
"model_supports_image_output": "Saída de imagem",
"skills_title": "Gerenciamento de Skills",
"skills_subtitle": "Gerencie pacotes de Skills do agente (prompts SKILL.md, scripts, referências)",
"skills_add": "Adicionar Skill",
"skills_empty": "Nenhuma Skill instalada",
"skills_empty_desc": "Faça upload de um ZIP ou importe sua primeira Skill de uma URL",
"skills_tools": "Ferramentas",
"skills_references": "Referências",
"skills_detail": "Detalhes da Skill",
"skills_install_url": "Importar da URL",
"skills_uninstall": "Desinstalar",
"skills_uninstall_confirm": "Tem certeza de que deseja desinstalar a Skill \"{{name}}\"?",
"skills_install_zip": "Fazer upload do ZIP",
"skills_prompt": "Prompt",
"skills_installed_at": "Instalado em",
"skills_refresh": "Recarregar",
"skills_refresh_success": "Recarregamento bem-sucedido",
"skills_tool_code": "Código da ferramenta",
"skills_click_to_view_code": "Clique no nome da ferramenta para ver o código",
"skills_config": "Configuração",
"skills_config_saved": "Configuração salva",
"skills_check_updates": "Verificar atualizações",
"skills_no_updates": "Todas as Skills estão atualizadas",
"skills_updates_available": "Atualizações disponíveis",
"skills_update": "Atualizar",
"skills_docs": "Documentação",
"skills_count": "{{count}} Skills instaladas",
"skills_update_count": "{{count}} atualizações disponíveis",
"skills_update_available": "Atualizar {{version}}",
"skills_references_short": "Refs",
"skills_configurable": "Configurável",
"skills_open_config": "Abrir configuração",
"skills_update_success": "Atualizado com sucesso",
"skills_url_placeholder": "Digite a URL do arquivo SKILL.cat.md",
"chat_new": "Nova conversa",
"chat_delete": "Excluir conversa",
"chat_delete_confirm": "Excluir esta conversa?",
"chat_no_conversations": "Nenhuma conversa",
"chat_search_placeholder": "Buscar conversas…",
"chat_search_no_results": "Nenhuma conversa correspondente",
"chat_export": "Exportar",
"chat_input_placeholder": "Digite uma mensagem...",
"chat_send": "Enviar",
"chat_stop": "Parar",
"chat_thinking": "Pensando",
"chat_tool_arguments": "Argumentos",
"chat_tool_result": "Resultado",
"chat_no_model": "Nenhum modelo configurado. Por favor, adicione um no serviço de modelo primeiro.",
"chat_model_select": "Selecionar modelo",
"chat_rename": "Renomear",
"chat_copy": "Copiar",
"chat_copy_success": "Copiado",
"chat_regenerate": "Gerar novamente",
"chat_streaming": "Gerando...",
"chat_loading_audio": "Carregando áudio...",
"chat_starting": "Iniciando...",
"chat_retrying": "Tentando novamente ({{attempt}}/{{max}})...",
"chat_attach_file": "Anexar arquivo",
"chat_welcome_hint": "Pergunte-me qualquer coisa sobre seus scripts",
"chat_welcome_start": "Crie uma conversa para começar",
"chat_first_token": "TTFT",
"chat_tools_count": "{{count}} chamadas de ferramenta",
"chat_tools_enabled": "Ferramentas ativadas",
"chat_tools_disabled": "Ferramentas desativadas",
"chat_tools_enabled_tip": "Ferramentas ativadas — clique para desativar.",
"chat_tools_disabled_tip": "Ferramentas desativadas — clique para ativar.",
"chat_background_enabled_tip": "Execução em segundo plano ATIVADA — a conversa continua em execução após fechar a página. Clique para desativar.",
"chat_background_disabled_tip": "Execução em segundo plano DESATIVADA — a conversa para quando a página é fechada. Clique para ativar.",
"chat_delete_round": "Excluir",
"chat_copy_message": "Copiar",
"chat_edit_message": "Editar",
"chat_save_and_send": "Salvar e enviar",
"chat_cancel_edit": "Cancelar",
"chat_message_queued": "Na fila",
"chat_cancel_message": "Cancelar envio",
"permission_title": "O script está solicitando o uso da conversa do Agente",
"permission_describe": "Este script solicita acesso à conversa do Agente, o que consumirá tokens da API. Conceda acesso apenas a scripts confiáveis.",
"permission_content": "Conversa do Agente",
"opfs": "OPFS",
"opfs_title": "Navegador de arquivos OPFS",
"opfs_empty": "Diretório vazio",
"opfs_name": "Nome",
"opfs_size": "Tamanho",
"opfs_type": "Tipo",
"opfs_modified": "Última modificação",
"opfs_delete_confirm": "Tem certeza de que deseja excluir?",
"opfs_delete_success": "Excluído",
"opfs_preview": "Visualizar",
"opfs_subtitle": "Origin Private File System · Armazenamento privado do Agente",
"opfs_refresh": "Atualizar",
"opfs_upload": "Fazer upload",
"opfs_actions": "Ações",
"opfs_item_count": "{{count}} itens",
"opfs_empty_desc": "Nenhum arquivo neste diretório ainda",
"opfs_upload_success": "Upload concluído",
"opfs_upload_failed": "Falha no upload",
"opfs_uploading": "Fazendo upload…",
"opfs_type_directory": "Pasta",
"opfs_type_image": "Imagem",
"opfs_type_text": "Texto",
"opfs_type_binary": "Binário",
"opfs_root": "Raiz",
"dom_permission_title": "O script solicita permissão para manipular o DOM",
"dom_permission_describe": "Este script solicita a capacidade de ler e manipular o DOM da página da web (clicar, preencher formulários, navegar, capturar tela, etc.). Conceda acesso apenas a scripts confiáveis.",
"dom_permission_content": "Operações do Agente no DOM",
"mcp_title": "Servidores MCP",
"mcp_subtitle": "Conecte servidores MCP para estender as ferramentas, recursos e prompts do agente",
"mcp_add_server": "Adicionar servidor",
"mcp_no_servers": "Nenhum servidor MCP configurado",
"mcp_no_servers_desc": "Adicione seu primeiro servidor MCP para conectar ferramentas e dados externos",
"mcp_status_connected": "Conectado",
"mcp_status_failed": "Falha na conexão",
"mcp_status_untested": "Não testado",
"mcp_has_key": "Chave secreta",
"mcp_headers_count": "{{count}} cabeçalho(s)",
"mcp_count_servers": "{{count}} servidores",
"mcp_count_connected": "{{count}} conectados",
"mcp_count_tools": "{{count}} ferramentas disponíveis",
"mcp_docs": "Documentação",
"mcp_test_connection": "Testar",
"mcp_optional": "opcional",
"mcp_custom_headers": "Cabeçalhos personalizados",
"mcp_enabled": "Ativado",
"mcp_detail": "Detalhes",
"mcp_tools": "Ferramentas",
"mcp_resources": "Recursos",
"mcp_prompts": "Prompts",
"mcp_no_tools": "Nenhuma ferramenta disponível",
"mcp_no_resources": "Nenhum recurso disponível",
"mcp_no_prompts": "Nenhum prompt disponível",
"mcp_loading": "Carregando...",
"tasks": "Tarefas",
"tasks_title": "Tarefas agendadas",
"tasks_subtitle": "Execute tarefas do agente automaticamente de acordo com uma expressão cron",
"tasks_docs": "Documentação",
"tasks_count_total": "{{count}} tarefas",
"tasks_count_enabled": "{{count}} ativadas",
"tasks_create": "Criar tarefa",
"tasks_edit": "Editar tarefa",
"tasks_mode": "Modo",
"tasks_mode_internal_short": "Interno",
"tasks_mode_event_short": "Evento",
"tasks_cron": "Expressão cron",
"tasks_next_run": "Próxima execução",
"tasks_run_now": "Executar agora",
"tasks_history": "Histórico",
"tasks_prompt": "Prompt",
"tasks_max_iterations": "Máximo de iterações",
"tasks_notify": "Notificar ao concluir",
"tasks_notify_desc": "Enviar uma notificação do navegador quando a tarefa for concluída",
"tasks_no_tasks": "Nenhuma tarefa agendada",
"tasks_no_tasks_desc": "Crie sua primeira tarefa agendada para executar o agente automaticamente",
"tasks_no_runs": "Nenhum histórico de execução ainda",
"tasks_clear_runs": "Limpar histórico",
"tasks_clear_runs_confirm": "Tem certeza de que deseja limpar o histórico de execução?",
"tasks_event_hint": "Quando acionado, o script que criou esta tarefa será notificado",
"tasks_event_trigger": "Gatilho de evento",
"tasks_model_select": "Selecionar modelo",
"tasks_skills_auto": "Carregar tudo automaticamente",
"tasks_run_status_success": "Sucesso",
"tasks_run_status_error": "Erro",
"tasks_run_status_running": "Em execução",
"tasks_run_duration": "Duração",
"tasks_run_usage": "Uso",
"tasks_run_time": "Hora",
"tasks_run_status": "Status",
"tasks_never_run": "Ainda não executada",
"settings": "Configurações",
"settings_title": "Configurações do agente",
"settings_subtitle": "Modelo, pesquisa e preferências gerais · as alterações são aplicadas instantaneamente",
"settings_cat_model": "Modelo",
"settings_cat_search": "Pesquisa",
"summary_model": "Modelo de resumo",
"summary_model_desc": "Modelo para sumarização, usa o modelo padrão se não estiver definido",
"summary_model_placeholder": "Usar modelo padrão",
"search_engine": "Mecanismo de pesquisa",
"search_engine_desc": "A fonte de busca usada pela ferramenta web_search.",
"search_engine_baidu": "Baidu",
"search_google_api_key": "Chave da API do Google",
"search_google_api_key_desc": "Usado para chamar a API JSON de Pesquisa Personalizada.",
"search_google_cse_id": "ID do mecanismo de pesquisa personalizada",
"search_google_cse_id_desc": "O parâmetro cx do Mecanismo de Pesquisa Programável.",
"settings_saved": "Configurações salvas",
"settings_save_failed": "Falha ao salvar as configurações",
"search_engine_tip_bing": "Mecanismo de pesquisa padrão com ampla cobertura global, sem necessidade de configuração extra.",
"search_engine_tip_duckduckgo": "Mecanismo de pesquisa focado em privacidade, não requer chave de API.",
"search_engine_tip_baidu": "Otimizado para conteúdo em chinês, melhores resultados para consultas em chinês.",
"search_engine_tip_google": "Resultados de pesquisa de alta qualidade, requer uma Chave de API do Google e um ID de Mecanismo de Pesquisa Personalizada."
}
97 changes: 97 additions & 0 deletions src/locales/pt-BR/common.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
{
"user_guide": "Guia do usuário",
"api_docs": "Documentação da API",
"development_guide": "Guia de desenvolvimento",
"script_gallery": "Galeria de scripts",
"community_forum": "Fórum da comunidade",
"external_links": "Links externos",
"no_data": "Sem dados",
"logs": "Logs",
"tools": "Ferramentas",
"settings": "Configurações",
"change_theme": "Mudar tema",
"hide_main_sidebar": "Recolher barra lateral",
"show_main_sidebar": "Expandir barra lateral",
"menu": "Menu",
"notifications": "Notificações",
"more_menu": "Mais opções",
"helpcenter": "Central de ajuda",
"save": "Salvar",
"save_success": "Salvo com sucesso",
"update": "Atualizar",
"check_update": "Verificar atualização",
"confirm_delete": "Confirmar exclusão",
"delete_success": "Exclusão bem-sucedida",
"enable": "Ativar",
"disable": "Desativar",
"name": "Nome",
"version": "Versão",
"source": "Origem",
"action": "Ação",
"export": "Exportar",
"delete": "Excluir",
"pin_to_top": "Fixar no topo",
"confirm": "Confirmar",
"close": "Fechar",
"key": "Chave",
"value": "Valor",
"add": "Adicionar",
"type": "Tipo",
"size": "Tamanho",
"download": "Baixar",
"edit_value": "Editar valor",
"add_value": "Adicionar valor",
"update_success": "Atualização bem-sucedida",
"add_success": "Adição bem-sucedida",
"clear": "Limpar",
"type_string": "String",
"type_number": "Número",
"type_boolean": "Booleano",
"type_object": "Objeto",
"confirm_delete_resource": "Tem certeza de que deseja excluir este recurso? Este recurso será recarregado na próxima inicialização.",
"confirm_clear_resource": "Tem certeza de que deseja limpar estes recursos? Os recursos serão recarregados na próxima inicialização.",
"yes": "Sim",
"no": "Não",
"confirm_delete_permission": "Tem certeza de que deseja excluir esta permissão?",
"reset": "Redefinir",
"run_once": "Executar uma vez",
"stop": "Parar",
"edit": "Editar",
"copy": "Copiar",
"exclude_on": "Restaurar a execução de $0",
"exclude_off": "Impedir a execução em $0",
"confirm_error": "Falha na confirmação",
"import": "Importar",
"error": "Erro",
"get_script": "Obter script",
"report_issue": "Reportar problema",
"project_docs": "Documentação do projeto",
"community": "Comunidade",
"domain": "Domínio",
"script_name": "Nome do script",
"skip": "Pular",
"next": "Próximo",
"back": "Voltar",
"auto": "Automático",
"collapse": "Recolher",
"expand": "Expandir",
"no_message_content": "Nenhum conteúdo de mensagem",
"loading": "Carregando...",
"no_scripts": "Nenhum script",
"no_subscribes": "Nenhuma assinatura",
"no_subscribes_hint": "Coleções de scripts assinados aparecerão aqui",
"clear_filter": "Limpar filtro",
"batch_selected": "{{count}} selecionados",
"stopped": "Parado",
"auth_type": "Tipo de autenticação",
"url": "URL",
"username": "Nome de usuário",
"password": "Senha",
"access_token_bearer": "Token de acesso (Bearer)",
"s3_bucket_name": "Nome do bucket",
"s3_region": "Região",
"s3_access_key_id": "ID da chave de acesso",
"s3_secret_access_key": "Chave de acesso secreta",
"s3_custom_endpoint": "Endpoint personalizado (opcional)",
"cancel": "Cancelar"
}
Loading