How do I add a new language?
Panagiotis Kavrakis avatar
Written by Panagiotis Kavrakis
Updated over a week ago

Check for existing support

Transifex identifies more than 290+ languages and many more associated with a locale code. These languages adhere to the ISO 639-1 standard of language names and locales. You might fall back to 639-2 or 639-3 if your language is not covered in 639-1. For a complete list of supported languages, please take a look at our Languages page.

Suppose your language isn't on the Languages page, and your files appear in a shortened version like ‘xx_YY'. In that case, you can help us provide the necessary information so we can add your language to Transifex.

The short version

Check the Unicode standard for Language Plural Rules and make sure the rules for your language are correct. If so, let us know. Otherwise, try to find an authoritative source for the correct data and point us to that.


The long version

For every language Transifex supports, there's a set of information or rules that are followed by the system. Let's take, for example, Brazilian Portuguese:

  • name: Portuguese (Brazillian)

  • code: pt_BR

  • code_aliases: pt-br pt-BR

  • nplurals: 2

  • pluralequation: (n > 1)

  • rule_zero: -

  • rule_one: n is one

  • rule_two: -

  • rule_few: -

  • rule_many: -

  • rule_other: -

In detail:

  • name is the language name in the 'Language (Nationality)' format. You can omit the nationality for general languages like 'pt'.

  • code is ISO 639-1 language code. You might fall back to 639-2 or 639-3 if your language is not covered in 639-1.

  • code_aliases are aliases separated with spaces (e.g., pt-br pt-BR).

  • nplurals is the number of plurals allowed by the language. These are quite common in .po files.

  • pluralequation is an equation to distinguish the plural rules for the available nplurals. These are also quite common in .po files, too.

The rule fields MUST reflect the exact number of nplural set to the language. If your language has nplural = 2, then only 2 of the rule fields must be filled in.

The rule_other is considered the general rule. All languages must follow this rule — even those that do not have plurals (such as Japanese). The rule_other is considered a general fallback, like an ‘else' statement for all other possible rules. If there is a case that doesn't fit into the pluralequation, rule_other will be used.

Examples can be found here. We usually get rule information from unicode.org.

When we add support for a language, we follow the BCP47 standard. The multiple language locales are based on region subtags.


💡Tip

Looking for more help? Get support from our Transifex Community Forum!

Find answers or post to get help from Transifex Support and our Community.

Did this answer your question?