Traduz arquivos .strings do iOS
Um arquivo .strings é uma lista de linhas "key" = "value"; onde o valor contém especificadores de formato como %@. KAERIS traduz os valores e verifica se cada especificador ainda está presente.
KAERIS traduziu esta página e verificou cada linha traduzindo-a de volta. Um falante nativo ainda não revisou. Original em inglês
Como um arquivo .strings é construído
Um "key" = "value"; por linha, notas em /* … */. Valores escapam aspas e quebras de linha com uma barra invertida. Plurais não vivem aqui: Xcode usa .stringsdict ou um String Catalog para eles, e KAERIS lê .strings e .xcstrings.
/* Greeting on the home screen */ "welcome" = "Welcome back, %@!"; "items_count" = "%1$d of %2$d items synced"; "quote" = "Press \"Done\" to continue.";
O que observar nas traduções de .strings
%@ e especificadores posicionais
%@,%de%1$dsão placeholders. Em um idioma que reordena palavras, a forma posicional mantém os argumentos corretos; um especificador alterado ou ausente é sinalizado.Escapes
\"e\ndentro de um valor são lidos e gravados corretamente, então uma aspa em uma tradução não termina a string.Notas permanecem na origem
Comentários
/* … */não são levados para o arquivo traduzido, que recebe um comentário de idioma de uma linha. Mantenha o contexto para tradutores no arquivo de origem.Comprimento
Alemão e finlandês frequentemente ficam mais longos que o inglês. A verificação avisa quando uma tradução é muito mais longa que a origem, o que importa para botões.
Uma execução real: traduzido para Alemão e verificado
Uma execução real, 27 de outubro de 2026, nada editado manualmente: kaeris translate Localizable.strings --langs de com kaeris 0.2.35, 4 segundos, modelo openai/gpt-4.1-mini (o modelo de fallback do serviço respondeu a este trabalho). Abaixo, o arquivo alemão que ele escreveu e o que kaeris check diz sobre ele.
/* de */ "welcome" = "Willkommen zurück, %@!"; "items_count" = "%1$d von %2$d Elementen synchronisiert"; "quote" = "Drücken Sie \"Fertig\", um fortzufahren.";
$ kaeris check --source Localizable.strings --langs de ✓ de: complete & placeholder-safe ✓ all locales complete & placeholder-safe
O que o KAERIS faz com isso
Chaves e ordem mantidas
Cada chave é gravada de volta com seu valor traduzido.
Especificadores contados
Um
%@ou%1$dperdido ou alterado é encontrado sem um modelo.Verificação gratuita para este formato
A verificação gratuita em /check lê este formato e executa sem chave ou conta. O comando de terminal
kaeris checktambém o lê: ele aceita todos os 13 formatos desde kaeris 0.2.35, com as mesmas regras e nada enviado para lugar nenhum.
Execute em três etapas
Instale o CLI
Execute
pip install kaeris.Traduzir o arquivo
Execute
kaeris translate en.lproj/Localizable.strings --langs de,ja.Verificar o resultado
Faça o upload da origem e da tradução na página de verificação gratuita.
pip install kaeris kaeris translate en.lproj/Localizable.strings --langs de,ja --verify
Perguntas
Ele mantém %@ e %1$d?
Sim. Os especificadores são comparados com a origem após a tradução e um especificador perdido ou alterado é sinalizado. Na execução real acima, %@, %1$d e %2$d todos retornaram.
E os plurais?
.strings não tem sintaxe de plural. O Xcode mantém os plurais em .stringsdict ou em um Catálogo de Strings; o KAERIS lê o catálogo e expande os plurais por idioma, veja a página .xcstrings.
É gratuito?
Sim, sem conta: 10.000 caracteres por arquivo e até 8 idiomas por execução. Uma chave API gratuita eleva o limite para 50.000 caracteres. A licença vitalícia custa $79 uma vez, usando sua própria chave OpenRouter; planos mensais começam em $19. Preços
Posso rodar pelo terminal ou em CI?
Sim. pip install kaeris, então kaeris translate en.lproj/Localizable.strings --langs de,ja. Veja também iOS. O GitHub Action executa a mesma tradução em um pull request. Docs da CLI · GitHub Action
Continue
Referência do CLI · Referência de verificação · Traduzir no navegador · Verificação gratuita · Converter formatos · Pseudo-localização
Outros formatos: JSON · YAML · .po · ARB · XLIFF · .xcstrings · .properties · .resx · CSV · Markdown · Fluent · Android XML