This template is used to convert ISO 639 language codes into language names

  • Parameter 1 (compulsory) is the ISO 639-1 (two-letter) or ISO 639-2 (three letter) code for the language to output.
  • Parameter 2 (optional) is the two- or three-letter code for the language the result should be displayed in. If no valid parameter is given, the default is en

A list of language codes can be found at ISO 639-1 language matrix, List of ISO 639-1 codes, and List of ISO 639-2 codes.

Please note that this system requires a huge number of separate language names (~35,000) and so is currently very incomplete. If the required name has not already been defined for a particular language, the template will display an error (if no translations have been specified for the language, english translations will be returned). If you feel confident enough with a language that is not already defined, please take a few moments to create a new set of definitions for it.

  • {{language|en}} → [undefined] Error: {{Lang}}: no text (help)
  • {{language|fr}} → [undefined] Error: {{Lang}}: no text (help)
  • {{language|en|fr}}fr
  • {{language|fr|en}}en
  • {{language|fr|fr}}fr

Technical details

កែប្រែ

This template works by calling a subpage (list) with the relevant language code for the second parameter (the return language); this subpage contains a switch statement that converts the first parameter into the name in the appropriate language. See for instance {{language/en}}, which is called to translate codes into English.

Because some language codes are very uncommon, it is possible to split a language into two subpages, eg /fr and /fr+. The /fr page is called first, and should contain the more common languages. Less common languages should be added to the /fr+ page, which is called only if no translation is found in the main subpage; between them, the two pages should contain all the available translations.