A language (or locale) on WebTranslateIt is defined by a set of parameters like the user’s language, country and any special variant preferences that the user wants to see in their user interface. Usually a language consists of at least a linguistic identifier and a regional identifier (for instance: English + United States will be “en-US”).

When creating a project in WebTranslateIt, you are required to choose a source language, as well as several target languages.

Languages and Files

Files are mapped to languages in the File Manager. For instance, when you add a language, WebTranslateIt automatically creates target files for each master file in the File Manager.

Furthermore, when you add a new master file in WebTranslateIt, target files are automatically created and mapped to existing languages.

Deleting a language deletes the related files in the File Manager.

Creating Languages

The language builder allows you to construct languages. To use it, start by typing the beginning of the language you want to use.

In the example above, I typed “az” and the language builder offers me a large choice of languages:

Language Name Language Code Script
Azerbaijani az Latin
Azerbaijani (Arabic) az-Arab Arabic
Azerbaijani (Cyrillic) az-Cyrl Cyrillic
Azerbaijani (Latin) az-Latn Latin
Azerbaijani, Azerbaijan az-AZ Latin
Azerbaijani, Azerbaijan (Arabic) az-AZ-Arab Arabic
Azerbaijani, Azerbaijan (Cyrillic) az-AZ-Cyrl Cyrillic
Azerbaijani, Azerbaijan (Latin) az-AZ-Latn Latin

WebTranslateIt knows relevant informations about each languages:

  • Which countries (or territories) use a language,
  • Which scripts a language is written in (for instance: Latin, Arabic, Cyrilic, …),
  • Which script is the official one or mostly used one.

If your language doesn’t provide an explicit script (like the language code az for instance) an implicit language is chosen for you: Latin in Azerbaijani’s case. If you’d rather use another script you can build a language with the correct script. The default language is the official or most important script for a language or for a language/country compound.

Hyphen and Underscore

Is is better to use a hyphen (or dash) rather than an underscore sign to separate the language code, the country code and the script code. RFC 3066 recommends using en-GB instead of en_GB:

Language tag syntax

The language tag is composed of one or more parts: A primary language
subtag and a (possibly empty) series of subsequent subtags.

The syntax of this tag in ABNF RFC 2234 is:

Language-Tag = Primary-subtag \*( "-" Subtag )

Primary-subtag = 1\*8ALPHA

Subtag = 1\*8(ALPHA / DIGIT)

The productions ALPHA and DIGIT are imported from RFC 2234; they
denote respectively the characters A to Z in upper or lower case and
the digits from 0 to 9. The character “-” is HYPHEN-MINUS (ABNF:

All tags are to be treated as case insensitive; there are
conventions defining the use of capitalization.
For instance, ISO 3166 recommends that
country codes are capitalized (MN Mongolia), while ISO 639
recommends that language codes are written in lower case (mn

However, even if using a hyphen (or dash) is better, some software use underscores (en_GB), so you can choose to use dashed language tags in your project settings.

This setting impacts the generated file names, the API URLs, and in some linguistic files the language code used.

Customizing Languages

Sometimes you’ll want to create your own language. For instance, if your development team writes an English copy that needs to be proofread, you might want to create a fake language “English by developers”. The copy in this language will, in turn, be modified and proofread by a professional proofreader before being translated into other languages.

Another reason could be that your app needs a specific custom language based on a very specific location.

In the Language Manager, start by choosing a base language. Then, click on “Create a specific language” to toggle additional options.

These additional options will be appended to the base language code and name.

  • Suffix code is a code that will be appended to the language code. For instance: dev.
  • Suffix description is the description of the suffix you add. For Instance by developers.

This will generate a new custom language with the code en_dev and name “English by developers”.