Um catálogo de strings do Xcode é um único arquivo que contém todos os idiomas do seu app. Para adicionar alemão, japonês e português, você preenche esse arquivo, e o Xcode cuida do resto.
Este guia é sobre Localizable.xcstrings e o aspecto que o diferencia de um trabalho de tradução comum: os plurais. Para conhecer outros formatos de app, veja como traduzir os arquivos de idioma do seu app.
O que é um catálogo de strings
Os catálogos de strings chegaram com o Xcode 15. Na sessão da WWDC23 da Apple, eles são apresentados como uma forma de gerenciar todas as suas strings em um só lugar. Após cada build, o Xcode identifica as strings localizáveis e as adiciona ao catálogo. Para incluir um idioma, basta clicar no botão de mais.
Por trás da interface, há um arquivo JSON chamado Localizable.xcstrings por padrão. Cada chave contém as traduções em todos os idiomas, além do comentário para os tradutores.
Qual opção você deve usar?
| Ideal para | Limitações | |
|---|---|---|
| AI Glot | Vários idiomas em um único trabalho, plurais tratados em cada idioma e um glossário que precisa ser respeitado | Desnecessário para dez strings |
| Exportar localizações do Xcode | Um catálogo de localização por idioma, para enviar a um tradutor, e depois importar as localizações | Prepara os arquivos, mas não os traduz. Você ainda precisa de um tradutor ou de uma ferramenta |
| Uma plataforma de gerenciamento de tradução (Crowdin, Lokalise, Phrase) | Uma equipe com revisores e integração com um repositório | Primeiro, você precisa configurar um projeto e conectar seu repositório |
| DeepL | Arquivos XLIFF, que estão na lista de formatos aceitos | .xcstrings não está na lista |
| ChatGPT, Claude ou outro assistente | Algumas strings | Um catálogo é um JSON aninhado com variações de plural. Por isso, um arquivo longo leva tempo, consome seu limite de uso e pode resultar em uma chave corrompida ou em uma forma plural ausente |
| Um freelancer ou uma agência | A página do seu app na App Store e o onboarding | Demorado e cobrado por palavra |
Contrate alguém para traduzir as cinco strings que vendem seu app. Use um mecanismo para traduzir as milhares de strings restantes.
Por que o AI Glot é ideal para um catálogo de strings
- As traduções vão para a chave e o idioma certos. O catálogo continua em um único arquivo.
- Os plurais são tratados em cada idioma. O russo precisa de quatro formas e o árabe, de seis. Cada forma é registrada com sua categoria.
- Os especificadores de formato são preservados.
%@,%de%1$@permanecem na string traduzida. - Os comentários para tradutores continuam vinculados às respectivas chaves.
- Você pode preencher apenas o que falta. As strings revisadas voltam sem alterações.
- Um plano antes de qualquer gasto.
O fluxo de um arquivo
- 1UploadLocalizable.xcstrings como estáAté 8 MB
- 2Diga o que você precisaIdiomas a adicionarGrátis
- 3Leia o planoChaves ausentes por idioma, custoGrátis
- 4AprovarA única etapa com custoConsome créditos
- 5BaixarO mesmo catálogo, preenchidoSubstituir o arquivo
Por que os plurais são importantes
O inglês tem duas formas de plural. Outros idiomas têm mais, e uma mensagem como “3 fotos” precisa usar a forma correta em cada idioma.
- um
- outro
- um
- poucos
- muitos
- outro
- zero
- um
- dois
- poucos
- muitos
- outro
Uma categoria que não existe no idioma de origem, mas é usada no idioma de destino, é adicionada. Assim, um catálogo em russo ganha as formas few e many. Sem isso, o app exibe uma forma incorreta para algumas quantidades.
O que verificar depois
Substituições e variações por dispositivo. Elas ainda não foram traduzidas e são mantidas como estão. O plano informa quantas são.
Lista de idiomas. Abra o catálogo no Xcode e confira se cada novo idioma está listado e se o progresso aparece como concluído.
Comprimento. Execute o app em um dos novos idiomas e abra as telas com as strings mais longas para verificar se algum texto ultrapassa os limites de um botão.
Como fazer, passo a passo
1. Experimente um arquivo grátis. O tradutor de String Catalog não exige cadastro e aceita arquivos de até 2 MB e 5,000 palavras.
2. Envie Localizable.xcstrings no app. Encontre o arquivo na pasta do projeto, dentro da pasta Resources se você manteve o local padrão da Apple.
3. Diga em uma frase o que você precisa.
Add German, Japanese and Portuguese.
Translate only the keys that have no translation in each language yet.
A frase define o que será traduzido em todo o catálogo. Uma regra de redação, como “mantenha cada especificador de formato exatamente como está” ou “use um registro informal”, deve ser inserida no segundo campo na etapa de aprovação, pois será aplicada a cada string durante a tradução.
4. Adicione um glossário com o nome do app, os nomes dos recursos e os termos que o app sempre usa da mesma forma. Veja como criar um.
5. Confira o plano e escolha um nível de qualidade.
Lite oferece cerca de três vezes mais palavras por crédito e é mais rápido: ideal para uma nova localidade que você pretende revisar. Standard é para as strings da página do seu app na App Store. No Standard, um crédito equivale a uma palavra.
6. Aprove e baixe, depois substitua o catálogo no seu projeto.
Um catálogo, vários idiomas
Os números são apenas um exemplo. Diferentemente da maioria dos formatos, um String Catalog reúne todos os idiomas, então você recebe um único arquivo, não um arquivo por idioma.
Três maneiras de usar
Pela linha de comando, execute novamente a cada lançamento, quando o Xcode tiver adicionado novas strings ao catálogo:
id=$(aiglot batches create Localizable.xcstrings \
--instruction "Add German, Japanese and Portuguese. Translate only the keys with no translation yet." \
--json | jq -r '.data.id')
aiglot batches get "$id" --json | jq '.data.plan'
aiglot batches approve "$id" --quality lite \
--instructions "Keep every format specifier exactly as written."
aiglot batches download "$id" --output Localizable.xcstrings
Com seu agente de IA: conecte o AI Glot como um servidor MCP. O agente pode ler seu projeto, sugerir termos para o glossário, executar a tarefa e devolver o catálogo ao local certo.
No app: envie, clique e baixe. Ideal para uma tarefa pontual.
Para integrar via API, consulte a documentação da API.
Em Preços, você encontra os valores para volumes maiores. Uma conta gratuita inclui créditos para processar um arquivo real.
Os limites mencionados aqui eram os vigentes na época em que este texto foi escrito: 8 MB por String Catalog e 2 MB e 5,000 palavras na ferramenta gratuita. A descrição de String Catalogs e Export Localizations vem da sessão WWDC23 da Apple. A lista da DeepL vem da documentação da própria empresa. Os nomes de arquivo e as contagens de strings nos diagramas são exemplos. Seu plano mostra os valores reais do seu arquivo e pode ser consultado gratuitamente.
