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[edit source]

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[edit source]

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[edit source]

MOS on foreign words:

Wikipedia:Manual of Style/Text formatting § Foreign terms