O que Roo-Code faz?
Fornece diretrizes abrangentes para tradução e localização de strings da extensão Roo Code. Use quando as tarefas envolverem i18n, tradução, localização, adição de novos idiomas ou atualização de arquivos de tradução existentes. Esta habilidade abrange tanto a extensão principal (src/i18n/locales/) quanto a interface WebView (webview-ui/src/i18n/locales/).
Visão Geral
Roo Code é uma extensão que requer suporte a múltiplos idiomas. Este documento descreve como:
- Traduzir strings existentes nos arquivos de localização
- Adicionar suporte a um novo idioma
- Atualizar arquivos de tradução
- Seguir as melhores práticas para formatação de strings
Estrutura de Localização
A extensão Roo Code usa dois sistemas de localização:
-
Extensão Principal:
src/i18n/locales/- Contém strings para comandos da extensão, notificações, configurações, etc.
- Arquivos JSON nomeados por código de idioma (ex.:
en.json,pt-BR.json,ja.json)
-
Interface WebView:
webview-ui/src/i18n/locales/- Contém strings para a interface de usuário, incluindo botões, labels, mensagens, etc.
- Arquivos JSON nomeados por código de idioma (ex.:
en.json,pt-BR.json,ja.json)
Adicionar um Novo Idioma
Para adicionar suporte a um novo idioma:
- Criar o arquivo de tradução no diretório apropriado (tanto
src/i18n/locales/quantowebview-ui/src/i18n/locales/) - Copiar a estrutura de
en.jsoncomo modelo base - Traduzir todas as strings para o novo idioma
- Atualizar
availableLocalesno arquivo de configuração (ex.:src/configuration/locale.tsou similar) - Adicionar ao mapa
translationsno arquivo de inicialização de i18n - Testar a localização executando a extensão no idioma alvo
Melhores Práticas
- Mantenha o formato das strings: Conserve placeholders como
{placeholder}e variáveis de interpolação - Use aspas escapadas: Em JSON, use
\"para aspas dentro de strings - Evite traduzir nomes técnicos: Mantenha nomes de comandos, nomes de arquivos e termos técnicos em inglês
- Consistência: Use terminologia consistente em toda a extensão
- Teste: Sempre teste a localização visualmente na interface do usuário
Strings Comuns
| Tipo | Exemplo | Descrição |
|---|---|---|
| Botão | "Cancel" | String de botão na interface WebView |
| Notificação | "Task completed" | Mensagem de notificação na extensão |
| Configuração | "Language" | Rótulo de configuração |
| Erro | "Invalid input" | Mensagem de erro |
Comandos para Teste
Para testar as traduções localmente:
# Construir a extensão
npm run build
# Executar em modo de desenvolvimento
npm run dev
Exemplo de Arquivo de Tradução
// src/i18n/locales/pt-BR.json
{
"extension.name": "Roo Code",
"extension.description": "Uma extensão poderosa para desenvolvimento",
"command.start": "Iniciar",
"command.stop": "Parar",
"notification.taskComplete": "Tarefa concluída com sucesso!",
"error.invalidInput": "Entrada inválida. Por favor, verifique os dados."
}
Vídeo de Demonstração
Para uma demonstração detalhada de como realizar localização, assista ao vídeo abaixo:
Observações Finais
- Sempre verifique se a string traduzida se encaixa no contexto da UI
- Para idiomas com caracteres especiais (como japonês, chinês, árabe), certifique-se de que a renderização esteja correta
- Contribua de volta com melhorias de tradução através de pull requests
