Definições de idioma

Para apresentar diferentes traduções corretamente, são necessárias informações sobre nome do idioma, direção de texto, definições plurais e código de idioma.

Analisando códigos de idioma

Ao analisar as traduções, o Weblate tenta mapear o código de idioma (geralmente o ISO 639-1) para qualquer objeto de idioma existente.

Você pode ajustar ainda mais esse mapeamento no nível do projeto por Aliases de idioma.

Se nenhuma correspondência exata for encontrada, uma tentativa será feita para melhor encaixá-la em um idioma existente. São testadas etapas a seguir:

  • Procuras sem diferenciar maiúsculo de minúsculo.

  • Normalizar sublinhados e traços.

  • Procurar aliases de idioma embutido.

  • Procurar por nome de idioma.

  • Ignorar o código de país padrão para o idioma dado – escolher cs em vez de cs_CZ.

Should that also fail, a new language definition will be created using the defaults (left to right text direction, one plural). The automatically created language with code xx_XX will be named as xx_XX (generated). You might want to change this in the admin interface later, (see Changing language definitions) and report it to the issue tracker (see Contribuindo para o Weblate), so that the proper definition can be added to the upcoming Weblate release.


In case you see something unwanted as a language, you might want to adjust Filtro de idioma to ignore such file when parsing translations.

Changing language definitions

You can change language definitions in the languages interface (/languages/ URL).

While editing, make sure all fields are correct (especially plurals and text direction), otherwise translators will be unable to properly edit those translations.

Built-in language definitions

Definitions for more than 550 languages are included in Weblate and the list is extended in every release. Whenever Weblate is upgraded (more specifically whenever weblate migrate is executed, see Generic upgrade instructions) the database of languages is updated to include all language definitions shipped in Weblate.

This feature can be disable using UPDATE_LANGUAGES. You can also enforce updating the database to match Weblate built-in data using setuplang.

Ambiguous language codes and macrolanguages

In many cases it is not a good idea to use macro language code for a translation. The typical problematic case might be Kurdish language, which might be written in Arabic or Latin script, depending on actual variant. To get correct behavior in Weblate, it is recommended to use individual language codes only and avoid macro languages.

Definições de idioma

Each language consists of following fields:

Código do idioma

Code identifying the language. Weblate prefers two letter codes as defined by ISO 639-1, but uses ISO 639-2 or ISO 639-3 codes for languages that do not have two letter code. It can also support extended codes as defined by BCP 47.

Nome do idioma

Visible name of the language. The language names included in Weblate are also being localized depending on user interface language.

Direção do texto

Determines whether language is written right to left or left to right. This property is autodetected correctly for most of the languages.

Plural number

Number of plurals used in the language.

Fórmula de plural

Gettext compatible plural formula used to determine which plural form is used for given count.

Adding new translations

Alterado na versão 2.18: In versions prior to 2.18 the behaviour of adding new translations was file format specific.

Weblate can automatically start new translation for all of the file formats.

Some formats expect to start with an empty file and only translated strings to be included (for example Android string resources), while others expect to have all keys present (for example GNU gettext). In some situations this really doesn’t depend on the format, but rather on the framework you use to handle the translation (for example with JSON files).

When you specify Modelo para novas traduções in Component configuration, Weblate will use this file to start new translations. Any exiting translations will be removed from the file when doing so.

When Modelo para novas traduções is empty and the file format supports it, an empty file is created where new strings will be added once they are translated.

The Estilo de código de idioma allows you to customize language code used in generated filenames:

Padrão baseado no formato de arquivo

Dependent on file format, for most of them POSIX is used.

Estilo POSIX usando sublinhado como um separador

Typically used by gettext and related tools, produces language codes like pt_BR.

Estilo POSIX usando sublinhado como separador, incluindo código de país

POSIX style language code including the country code even when not necessary (for example cs_CZ).

Estilo BCP usando hífen como um separador

Typically used on web platforms, produces language codes like pt-BR.

Estilo BCP usando hífen como separador, incluindo código de país

BCP style language code including the country code even when not necessary (for example cs-CZ).

Estilo Android

Only used in Android apps, produces language codes like pt-rBR.

Estilo Java

Used by Java—mostly BCP with legacy codes for Chinese.

Additionally, any mappings defined in Aliases de idioma are applied in reverse.


Weblate recognizes any of these when parsing translation files, the above settings only influences how new files are created.