Começar com a internacionalização¶
Tem um projeto e quer traduzi-lo para vários idiomas? Este guia o ajudará a fazer isso. Várias situações típicas são apresentadas, mas a maioria dos exemplos são genéricos e podem ser aplicados a outros cenários também.
Antes de traduzir qualquer programa, deve perceber que os idiomas ao redor do mundo são realmente diferentes e não deve fazer nenhuma suposição com base na sua experiência. Para a maioria dos idiomas, parecerá estranho se tentar concatenar uma frase de segmentos traduzidos. Também deve lidar adequadamente com formas plurais porque muitos idiomas têm regras complexas para isso e a estrutura de internacionalização que acaba por utilizar deveria oferecer suporte para isto.
Por último, mas não menos importante, às vezes pode ser necessário adicionar algum contexto ao texto traduzido. Imagine que um tradutor receberia a cadeia Sun para traduzir. Sem contexto, a maioria das pessoas traduziria isso como a nossa estrela mais próxima, mas pode ser usado como uma abreviatura para domingo.
Escolher a estrutura de internacionalização¶
Escolha o que for padrão na sua plataforma, tente evitar reinventar a roda ao criar a sua própria estrutura para lidar com as traduções. O Weblate suporta a maioria das estruturas amplamente utilizadas, consulte Formatos de ficheiro de localização para mais informação (especialmente Capacidades dos tipos de tradução).
A nossa recomendação pessoal para algumas plataformas está na tabela a seguir. Isto baseia-se na nossa experiência, mas não pode abranger todos os casos de utilização, por isso, considere sempre o seu ambiente ao fazer a escolha.
Plataforma |
Formato Recomendado |
|---|---|
Android |
|
iOS |
|
Qt |
|
Python |
|
PHP |
|
C/C++ |
|
C# |
|
Perl |
|
Ruby |
|
Extensões da Web |
|
Java |
|
JavaScript |
O fluxo de trabalho mais detalhado para alguns formatos é descrito nos capítulos a seguir:
Veja também
Educating developers for proper internationalization¶
Internacionalização de software não se trata apenas e conseguir traduzir cadeias de carateres mas sim de tornar a aparência do software inteiro nativa para o utilizador de outro país. isto também inclui coisas como data ou formatação de números, exibição de moeda, ou introdução de texto na direção certa. A maior parte das estruturas de software têm um bom suporte para isto, por isso siga as instruções das mesmas para estas áreas todas.
A tradução de cadeias de carateres pode também não ser uma tarefa simples. Isto é especialmente verdade para cadeias de carateres como legendas ou rótulos de botões. Idiomas diferentes têm regras diferentes, e não é razoável esperar que a mesma cadeia de carateres seja traduzida da mesma maneira. Em várias situações pode não ser claro como traduzir, e é ainda mais desafiante distinguir se a palavra é um verbo ou um nome.
Todos os desenvolvedores devem perceber isto e identificar cadeias de carateres de forma única em diferentes escopos. Por exemplo, None que significa «nenhum utilizador» pode ser traduzido de forma diferente de None que significa «nenhum item». Utilize diferentes chave ou contextos para distinguir estes termos para tradutores. Pode fornecer contexto adicional no Weblate, como por exemplo Screenshots and visual context ou Explicação.
The technical side is only part of the work. Translators also notice the project workflow around strings, releases, and communication. A few practices make collaboration much easier:
Respond to translator questions and comments, and make sure the advertised contact channel is actually monitored.
Avoid unnecessary churn in source strings. Rewording or replacing existing strings without a user-visible reason creates avoidable translation work.
Add enough context for translators to understand short or ambiguous strings. Avoid concatenating sentences from fragments, use placeholders that can be reordered, and rely on built-in plural handling.
Ship translations regularly so completed work does not stay unused in Weblate for long periods.
Communicate workflow or policy changes, and keep contribution requirements realistic for smaller language teams.
If a project is no longer maintained, reflect that in the translation workflow instead of leaving components open indefinitely.
Weblate can help with some of these issues. In particular, regular automatic commits from Weblate make translation progress visible in the source code history and reduce the risk that finished work is forgotten before a release. See Tradução contínua for automation options.
Veja também