A CLI do Lingo.dev traduz ficheiros de recursos nativos mobile — Xcode .strings, Android XML, Flutter ARB e React Native JSON — através de um motor de localização configurado. Cada plataforma tem um tipo de bucket específico que reconhece o formato do ficheiro, preserva a estrutura e trata os plurais de forma nativa.
Visão Geral das Plataformas#
| Plataforma | Formato nativo | Bucket da CLI | Caminho de ficheiro habitual |
|---|---|---|---|
| iOS (Xcode) | .strings | xcode-strings | [locale].lproj/Localizable.strings |
| iOS (Xcode) | .stringsdict | xcode-stringsdict | [locale].lproj/Localizable.stringsdict |
| iOS (Xcode) | .xcstrings | xcode-xcstrings | Localizable.xcstrings |
| Android | strings.xml | android | app/src/main/res/values-[locale]/strings.xml |
| Flutter | .arb | flutter | lib/l10n/app_[locale].arb |
| React Native | .json | json | src/locales/[locale].json |
Pré-requisitos#
Cada execução da CLI envia o conteúdo através de um motor de localização — a configuração que determina que modelo LLM, glossário, voz da marca e instruções são aplicados. Crie um no dashboard do Lingo.dev e gere uma API key.
Configure a Sua Plataforma#
O Xcode suporta três formatos de localização. Use o que melhor se adequa à configuração do seu projeto.
String Catalogs (.xcstrings) — o formato moderno do Xcode, introduzido no Xcode 15. Um único ficheiro JSON reúne todos os idiomas, e o Xcode atualiza-o automaticamente quando adiciona novas strings. A CLI altera este ficheiro diretamente — não é necessário qualquer marcador [locale].
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xcode-xcstrings": {
"include": ["MyApp/Localizable.xcstrings"]
}
}
}Ficheiros .strings legacy — um ficheiro por idioma em diretórios [locale].lproj/. Se o seu projeto também usar .stringsdict para plurais, adicione ambos os buckets.
{
"$schema": "https://lingo.dev/schema/i18n.json",
"version": "1.15",
"locale": {
"source": "en",
"targets": ["es", "fr", "de", "ja"]
},
"buckets": {
"xcode-strings": {
"include": ["MyApp/[locale].lproj/Localizable.strings"]
},
"xcode-stringsdict": {
"include": ["MyApp/[locale].lproj/Localizable.stringsdict"]
}
}
}Consulte a documentação de localização da Apple para configurar a infraestrutura de i18n do Xcode.
Executar Traduções#
Traduza todos os ficheiros de recursos com um único comando:
npx lingo.dev@latest runA CLI lê os ficheiros do idioma de origem, calcula o que mudou desde a última execução com base no lockfile, traduz apenas o delta e escreve os resultados nos ficheiros dos idiomas de destino.
Aponte para uma plataforma específica quando o seu projeto incluir vários tipos de recursos:
npx lingo.dev@latest run --bucket android
npx lingo.dev@latest run --bucket xcode-xcstringsPlurais e Convenções por Plataforma#
Cada plataforma mobile trata as formas de plural de forma diferente — o iOS usa .stringsdict ou regras de String Catalog, o Android usa elementos XML <plurals> e o Flutter usa ICU MessageFormat em ficheiros ARB. A CLI preserva a estrutura nativa de plurais de cada plataforma durante a tradução e gera as categorias de plural corretas para cada idioma de destino.
Notas para tradutores
As strings mobile são frequentemente curtas e dependem do contexto. Use notas para tradutores em ficheiros .xcstrings do Xcode para dar ao motor de localização contexto sobre onde uma string aparece — "rótulo de botão no fluxo de checkout" traduz-se de forma diferente de "item do menu de navegação".
