From electowiki

This is the documentation page for Module:Lang

This module exists primarily to provide correct html markup for non-English language text where that text is used in the English Wikipedia. It has a secondary purpose of providing correct visual rendering for this non-English text. The module was developed to consolidate processing for {{lang}}, the {{lang-??}} (most), and {{transl}} templates into a single source and to use a clearly defined data set extracted from international standards.

The module does not require the myriad {{ISO 639 name ??}} templates, {{Language with name}}, {{Language with name and transliteration}}, and {{transl}}. It provides error checking and reporting to ensure that the html rendered is correct for browsers and screen readers.

Other templates that get language name support from this module are:

{{native name}}
{{link language}}

Data set

The data set is specified in Module:Language/name/data and its included data modules:

language tag-and-name data
Module:Language/data/iana languages – from IANA language-subtag-registry file
Module:Language/data/ISO 639-3 – from UTF-8 Complete Code Tables Set
Module:Language/data/wp languages – sourcing for the data in this module is unknown
language script data
Module:Language/data/iana scripts – from IANA language-subtag-registry file
language region data
Module:Language/data/iana regions – from IANA language-subtag-registry file
language variant data
Module:Language/data/iana variants – from IANA language-subtag-registry file
suppressed-script data
Module:Language/data/iana suppressed scripts – from IANA language-subtag-registry file

The data set also includes supplementary data modules:

override and other non-standard data
Module:Lang/data – For example, when IANA disagrees with ISO 639-3 or when the standard language name is cumbersome or contains information not suitable for use in article space, the override table can hold that language information
Module:Lang/ISO 639 synonyms – maps three character ISO 639-2, -2T, -3 codes to two character ISO 639-1 codes – from Codes for the Representation of Names of Languages
Module:Lang/name to tag – reversed language tag-and-name data so that the language name is the key and the language tag is the value

Error messages and categorization

Mainspace articles that have errors are placed in appropriate error categories:

Category:lang and lang-xx template errors
Category:transl template errors

Maintenance categories:

Category:Lang and lang-xx code promoted to ISO 639-1

See also

MOS on foreign words:

Wikipedia:Manual of Style/Text formatting § Foreign terms