Template:ISO 639 name
| This template may be substituted. |
| This template is used on approximately 27,000 pages and changes may be widely noticed. Test changes in the template's /sandbox or /testcases subpages, or in your own user subpage. Consider discussing changes on the talk page before implementing them. |
| This template uses Lua: |
This template may be used to convert a language name (e.g. 'Spanish' or 'German') to an ISO 639 language code ('es' or 'de', respectively) and vice-versa, or to determine if a given code or language is valid in ISO 639.
Usage
{{ISO 639 name|ISO code}}{{ISO 639 name|fn=iso_639_code_to_name|ISO code}}{{Iso 639 name|fn=iso_639_name_to_code|Language name}}{{ISO 639 name|fn=iso_639|ISO code or language name|link=yes|hide-err=yes}}{{iso 639 name|fn=iso_639_code_exists|ISO code}}
Parameters
There is one required parameter and four optional parameters:
|1=– unnamed (positional) param: either an ISO 639 language code, or an ISO 639 language name (required)|fn=– function name: identifies what to do with the code or name in param 1 (convert it, check if it exists; etc.) (optional). These are the most commonly used values:iso_639_code_to_name– convert the ISO 639 code in param 1 to a language name. (This is the default if fn is omitted.)iso_639_name_to_code– convert the language name in param 1 to an ISO 639 codeiso_639_code_exists– return true if the value in param 1 is an ISO 639 code, otherwise emptyiso_639_name_exists– return true if the value in param 1 is an ISO 639 language name, otherwise emptyiso_639– try to convert the value in param 1 from a language name to an ISO 639 code, and if that fails then try the other way (code to language)
- (For more values of
|fn=, see § Additional function values below).
|link=yes– if a language name is returned, links it to the Wikipedia article about the language (optional, default=no)|label=any string– if a language name is returned, and linked with|link=yes, then you can alter the link text by setting this param|hide_err=yes– blocks the error message returned upon failure of any of the three conversion functions (iso_639_code_to_name,iso_639_name_to_code,iso_639) (optional; default=no)
Additional function values
The following function values are also available for parameter |fn=:
iso_639_code_1_to_name– same asiso_639_code_to_nameexcept constrained to the ISO 639-1 data tableiso_639_code_2_to_name– same asiso_639_code_to_nameexcept constrained to the ISO 639-2 data tableiso_639_code_2B_to_name– same asiso_639_code_to_nameexcept constrained to the ISO 639-2B data tableiso_639_code_3_to_name– same asiso_639_code_to_nameexcept constrained to the ISO 639-3 data tableiso_639_code_5_to_name– same asiso_639_code_to_nameexcept constrained to the ISO 639-5 data table
Language names and codes
For a list of language names and ISO-639 codes, see:
Examples
One parameter
{{ISO 639 name|en}}→ English{{ISO 639 name|fr}}→ French
With |fn=iso_639_name_to_code
{{ISO 639 name|English|fn=iso_639_name_to_code}}→ en{{ISO 639 name|French|fn=iso_639_name_to_code}}→ fr
Notes
The {{ISO 639 name}} template will trim extraneous IETF language tags to just the ISO 639 code. E.g.:
Sanskrit in Latin script, which IETF language tag is sa-Latn, renders as:
{{ISO 639 name|sa-Latn}}→ Sanskrit error: sa-Latn is an IETF tag (help)
The error message can be suppressed with |hide-err=yes:
{{ISO 639 name|sa-Latn|hide-err=yes}}→ Sanskrit
The rendered language name can be linked to the appropriate language article with |link=yes:
{{ISO 639 name|sa-Latn|hide-err=yes|link=yes}}→ Sanskrit
When linking, an alternate link label can be provided with |label=<label text>:
{{ISO 639 name|sa-Latn|hide-err=yes|link=yes|label=sa-Latn}}→ sa-Latn
The {{ISO 639 name link}} template is the same as {{ISO 639 name}} except that it presets |link=yes.
Both of these templates can be safely substituted.
Error messages
This template produces error messages. These messages are:
- <code> is an IETF tag – IETF language tags are not ISO 639 language codes. When these tags are encountered, the template attempts to render the correct language and also emits this error message
- ISO 639-<part> code is required – where <part> is 1, 2, 3, 5; template was called without the required language code
- <code> not found in ISO 639-<part> list – <code> not found after searching ISO 639-<part> data
The module that does the work for this template has other functionality not supported by this template. See Module:ISO 639 name. Error messages related to that other functionality are:
- language name required – module function
iso_639_name_to_code()only – this message emitted when a language name is not provided in the{{#invoke:}} - <part> not an ISO 639 part – module functions
iso_639_name_to_code()andiso_639()only – this message emitted when <part> is not one of 1, 2, 3, or 5 - language code or name required – module function
iso_639()only – this message emitted when a language name or a language code is not provided in the{{#invoke:}}