ವಿಕಿಸೋರ್ಸ್
knwikisource
https://kn.wikisource.org/wiki/%E0%B2%AE%E0%B3%81%E0%B2%96%E0%B3%8D%E0%B2%AF_%E0%B2%AA%E0%B3%81%E0%B2%9F
MediaWiki 1.44.0-wmf.2
first-letter
ಮೀಡಿಯ
ವಿಶೇಷ
ಚರ್ಚೆಪುಟ
ಸದಸ್ಯ
ಸದಸ್ಯರ ಚರ್ಚೆಪುಟ
ವಿಕಿಸೋರ್ಸ್
ವಿಕಿಸೋರ್ಸ್ ಚರ್ಚೆ
ಚಿತ್ರ
ಚಿತ್ರ ಚರ್ಚೆಪುಟ
ಮೀಡಿಯವಿಕಿ
ಮೀಡಿಯವಿಕಿ ಚರ್ಚೆಪುಟ
ಟೆಂಪ್ಲೇಟು
ಟೆಂಪ್ಲೇಟು ಚರ್ಚೆಪುಟ
ಸಹಾಯ
ಸಹಾಯ ಚರ್ಚೆಪುಟ
ವರ್ಗ
ವರ್ಗ ಚರ್ಚೆಪುಟ
ಸಂಪುಟ
ಸಂಪುಟ ಚರ್ಚೆ
ಕರ್ತೃ
ಕರ್ತೃ ಚರ್ಚೆ
ಪುಟ
ಪುಟ ಚರ್ಚೆ
ಪರಿವಿಡಿ
ಪರಿವಿಡಿ ಚರ್ಚೆ
TimedText
TimedText talk
ಮಾಡ್ಯೂಲ್
ಮಾಡ್ಯೂಲ್ ಚರ್ಚೆ
ಟೆಂಪ್ಲೇಟು:Header/doc
10
2217
276314
252648
2024-10-30T08:54:47Z
CalendulaAsteraceae
6870
/* Optional */
276314
wikitext
text/x-wiki
{{Documentation subpage}}
{{#ifeq:{{ROOTPAGENAME}}|Translation header|{{high-use|3919}}<!--https://petscan.wmflabs.org/?psid=27045436-->|{{high-use|416820}}<!--https://petscan.wmflabs.org/?psid=26937518-->}}
{{lua|Module:Header}}
{{#ifeq:{{ROOTPAGENAME}}|Translation header|{{uses TemplateStyles|Template:Header/styles.css|Template:Translation header/styles.css}}|{{uses TemplateStyles|Template:Header/styles.css}}}}
<!-- PLEASE ADD TEMPLATE CATEGORIES AT THE BOTTOM OF THIS PAGE AND INTERWIKIS IN WIKIDATA -->{{TOCright}}
This template can be preloaded via the [[Special:Preferences|Gadgets]], alternatively, one can preload [[Template:{{ROOTPAGENAME}}/preload]].
<section begin="Usage" />{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title =
| author =
| translator =
| section =
| previous =
| next =
| year =
| language =
| original =
| notes =
}}
</syntaxhighlight><!--
-->|<syntaxhighlight lang="wikitext">
{{header
| title =
| author =
| translator =
| section =
| previous =
| next =
| year =
| notes =
}}
</syntaxhighlight><!--
-->}}<section end="Usage" />
This template is meant to be used at the top of a work<ref group=notes>Certain projects have customised versions of {{tl|header}} that are used to present these works, eg. {{tl|DNB00}} is used for the project involved with [[Dictionary of National Biography]]. For these works it is permissible and recommended that these variations are used. New alternatives to {{tl|header}} should be discussed on the talk page, and consequentially listed on each project's pages.</ref> in the {{#switch:{{ROOTPAGENAME}}|Translation header='''Translation:'''|#default=main}} [[Help:Namespaces|namespace]] and its subsections. Fill in any relevant information, and leave unknown or inapplicable parameters empty. For easy use, see also the ''[[Help:Header preloading script gadget|header preloading script gadget]]'' in your preferences.
==Documentation==
===Parameters===
==== Standard ====
* {{parameter|title}} = title of the work, for subpage use [[#Relative links|relative links]] (mandatory)
* {{parameter|author}} = name of author (automatically wikilinks)
** use [[#author-display|{{parameter|author-display}}]] to change how {{parameter|author}} displays
** where control of linking is required use [[#author-nolink|{{parameter|author-nolink}}]], and leave the field empty
* {{parameter|section}} = name of subdivision of work, usually used on subpages, typically text without additional formatting
* {{parameter|previous}} = name of previous part of work; relative links on subpages, full links otherwise
* {{parameter|next}} = name of next part of work, relative links on subpages, full links otherwise
* {{parameter|notes}} = notes to explain the work, to add context, or to impart concise information that adds value to the reader; for example, use of {{tl|listen}}
====Optional====
* Parameters modifying {{parameter|author}}
** {{anchor|author-display}}{{parameter|author-display}}, used to change how {{parameter|author}} displays.
**: By default, <syntaxhighlight lang="wikitext" inline>| author = Winston Leonard Spencer Churchill</syntaxhighlight> will produce the link [[Author:Winston Leonard Spencer Churchill|Winston Leonard Spencer Churchill]], and <syntaxhighlight lang="wikitext" inline>| author = Winston Churchill (1871-1947)</syntaxhighlight> will produce the link [[Author:Winston Churchill (1871-1947)|Winston Churchill]], but <syntaxhighlight lang="wikitext" inline>| author = Winston Leonard Spencer Churchill | author-display = Winston Churchill</syntaxhighlight> will produce the link [[Author:Winston Leonard Spencer Churchill|Winston Churchill]].
** {{anchor+|author-nolink|{{parameter|author-nolink}}}}, which disables automatic linking of the author parameter if true.
**: <syntaxhighlight lang="wikitext" inline>| author = the [[Portal:United States Congress|United States Congress]] | author-nolink = true</syntaxhighlight> will display the author as "the [[Portal:United States Congress|United States Congress]]".
** {{parameter|section-author}} = name of the author of this section, if not the same as author the overall work; or synonym {{parameter|contributor}}.
** {{parameter|author2}}, {{parameter|author2-display}}, {{parameter|section-author2}}, {{parameter|section-author2-display}}, etc. for additional authors. For example, <syntaxhighlight lang="wikitext" inline>| author1 = Winston Churchill (1871-1947) | author2 = Winston Leonard Spencer Churchill | author2-display = Winston Churchill</syntaxhighlight> will display as "[[Author:Winston Churchill (1871-1947)|Winston Churchill]] and [[Author:Winston Leonard Spencer Churchill|Winston Churchill]]".
** {{anchor|override-author}}{{parameter|override-author}} = legacy parameter for unusual cases. When using this, please leave the author field empty. It is not possible to have more than one {{parameter|override-author}} parameter.
* All attribution parameters have the same behavior as author w.r.t. <code>-display</code>, <code>-nolink</code>, <code>section-</code> and additional values.
{{#invoke:Header/docdata|attrParamList}}
* {{parameter|year}} = year of publication, adds work to the category for the year, see [[:Category:Works by year]].
*:Enter "?" for a work with no known publication year, and leave blank if you simply don't have this information.
*:Do not use AD or CE for any Anno Domini/Current Era works (year 1 to the present). Use BCE (do not use BC) for all years before year 1; leave a space between the number and the letters (''e.g.'' <code>150 BCE</code>).
*:Approximate dates can be entered in one of the following ways:
*:#Decades, centuries or periods can be used instead of a year (''e.g.'' <code>1060s</code>, <code>11th century</code> or <code>Medieval</code>).
*:#To use a year in the circa format, enter it as "c/Y" (''e.g.'' <code>c/1066</code> or <code>c/150 BCE</code>). (The use of "ca" or "circa" instead of "c" will also be recognised.) This will display as, for example, "c. 1066".
*:#To use a approximate choice of two years, enter it as "Y/Y" (''e.g.'' <code>1066/1067</code>). This will display as it is written.
*: The behaviour of this parameter can be further modified by:
*:* {{parameter|noyear}} = will prevent the year being displayed in the header but will still add the work to the category for the year. For use in cases where the year is already included in the title of the work. Any use of this parameter, even without text, will work. Example: <code>| noyear = yes</code>. All pages with this parameter will be added to [[:Category:Pages with noyear]] for tracking its usage.
*:* {{parameter|noyearcat}} = will display the year but in the header but will not add the work to the category for the year. For use in cases where a specific subcategory exists for the type of work to avoid flooding the main category for the year. As above, any use of the parameter will trigger this action. Pages will be added to the tracking category [[:Category:Pages with noyearcat]].
*:* {{parameter|nolanguagecat}} = will prevent the header from categorizing by language. Pages will be added to the tracking category [[:Category:Pages with nolanguagecat]].
* {{parameter|edition}} <code>= true</code> to refer to further information on the work's talk page.
<!-- * {{parameter|categories}} = Forward-slash-separated list of categories; deprecated -->
* {{parameter|shortcut}} = The shortcut to this page, if it exists. This is normally reserved for very large reference works (''e.g.'' [[EB11]])
* {{parameter|cover}} = The image used as a cover for the book when exported. Do not include the "File:" prefix, e.g. <code>Foobar.jpg</code>. You can use a page of a multi-page file using <code>Foobar.djvu/7</code>.
* {{anchor+|defaultsort|{{parameter|sortkey}}, {{parameter|defaultsort}}}}: For sorting purposes the template will move the articles "a", "an" and "the" to the end of the title, on the root page and all its subpages; for example, [[The Times/1854/News/The Charge of the Light Brigade]] will be sorted as "Times, The/1854/News/Charge of the Light Brigade, The". To override this, set {{parameter|sortkey}} to the desired sort key, e.g. <code>sortkey = Charge of the Light Brigade, The</code>.
* {{parameter|language}} = ISO code of the language in which the work was originally written ([[Template:ISO 639 name/doc|find the ISO code here]]—be sure to use the first one listed); adds work to the category for the original language; see [[:Category:Translations]]. Use with {{tl|translation header}} and {{tl|translations}}.<!--
-->{{#ifeq:{{ROOTPAGENAME}}|Translation header|
* '''{{tl|Translation header}} only:'''
** {{parameter|original}} = name of the page that hosts the original language work (or chapter) on the [[:mul:|appropriate language Wikisource]]. A standard [[Help:Interlanguage links|interlanguage link]] to the original language work (or chapter) should also be present, though.<!--
-->}}
* {{parameter|nocat}} <code>= true</code> to turn off automatic categorization (except for tracking categories)
* See [[#Sister, related author, and portal wiki links|Sister, related author, and portal wiki links]]
** {{parameter|portal}}
** {{parameter|related-author}}
* Sister wiki links are now typically now provided through Wikidata linking, which manages link rot issues. So while the parameters are shown here for fullness of scope, such usage would be used to override automated linking rather than as a primary use.
====All parameters====
<section begin="Full" />{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext" highlight="9,20,23,25,28">
{{translation header
| title =
| author =
| author-display =
| section =
| previous =
| next =
| notes =
<!-- optional from here -->
| year =
| edition =
| translator =
| translator-display =
| related-author =
| portal =
| contributor =
| editor =
| cover =
| shortcut =
<!-- modifying "year" behaviour; use one of -->
| noyear =
| noyearcat =
<!-- modifying sorting behaviour -->
| sortkey =
<!-- translation header -->
| language =
| original =
<!-- provided through wikidata, can be used to override wikidata -->
| wikipedia =
| commons =
| commonscat =
| wikiquote =
| wikinews =
| wiktionary =
| wikibooks =
| wikiversity =
| wikispecies =
| wikivoyage =
| meta =
}}
</syntaxhighlight><!--
-->|<syntaxhighlight lang="wikitext" highlight="9,20,23,25">
{{header
| title =
| author =
| author-display =
| section =
| previous =
| next =
| notes =
<!-- optional from here -->
| year =
| edition =
| translator =
| translator-display =
| related-author =
| portal =
| contributor =
| editor =
| cover =
| shortcut =
<!-- modifying "year" behaviour; use one of -->
| noyear =
| noyearcat =
<!-- modifying sorting behaviour -->
| sortkey =
<!-- provided through wikidata, can be used to override wikidata -->
| wikipedia =
| commons =
| commonscat =
| wikiquote =
| wikinews =
| wiktionary =
| wikibooks =
| wikiversity =
| wikispecies =
| wikivoyage =
| meta =
}}
</syntaxhighlight><!--
-->}}<section end="Full" />
===Relative links===
With lengthy, multi-page works, using [[m:Help:Link#Subpage feature|relative links]] is highly recommended. This shortens the code and ensures that a work remains linked together even if it is moved or reorganised. The three formats are <nowiki>[[/subpage]]</nowiki> (subpage), <nowiki>[[../]]</nowiki> (parent), and <nowiki>[[../sibling]]</nowiki> (sibling)<ref>The specific form <nowiki>[[../sibling/]]</nowiki> can be used on a sibling to provide both a relative link, and the link label to a sibling page.</ref>; see the example usage below. Note that <nowiki>[[../]]</nowiki> will expand to the title of the parent page, which is ideal if the work is renamed at a later time.
This depends on a page conforming to the page title standards in the [[WS:STYLE|Style guide]], with works in the form <nowiki>[[Work title]]</nowiki> and <nowiki>[[Work title/Subpage]]</nowiki>.
{{smallrefs}}
===Chapter titles===
In general, include chapter titles in the "section" field, but avoid including them in the "previous" and "next" fields. For example:
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title = [[../|Aurora de Chile]]
| author = Camilo Henríquez
| translator =
| section = Issue 28. Thursday, August 20, 1812. Volume 1.
| previous = [[../27|Issue 27]]
| next = [[../29|Issue 29]]
| language = es
| original =
| year = 1812
| notes = Click on the section headers to go to each article's individual page.
}}
</syntaxhighlight>
{{translation header
| title = [[Translation:Aurora de Chile|Aurora de Chile]]
| author = Camilo Henríquez
| translator =
| section = Issue 28. Thursday, August 20, 1812. Volume 1.
| previous = [[Translation:Aurora de Chile/27|Issue 27]]
| next = [[Translation:Aurora de Chile/29|Issue 29]]
| language = es
| original =
| year = 1812
| notes = Click on the section headers to go to each article's individual page.
}}<!--
-->|<syntaxhighlight lang="wikitext">
{{header
| title = [[../|The Book of Scottish Song]]
| author =
| editor = Alexander Whitelaw
| translator =
| section = Jock o' Hazeldean
| contributor = Walter Scott
| previous = [[../Sing on, sing on/]]
| next = [[../The Laird o' Cockpen/]]
| year = 1843
| notes =
}}
</syntaxhighlight>
{{header
| title = [[The Book of Scottish Song|The Book of Scottish Song]]
| author =
| editor = Alexander Whitelaw
| translator =
| section = Jock o' Hazeldean
| contributor = Walter Scott
| previous = [[The Book of Scottish Song/Sing on, sing on|Sing on, sing on]]
| next = [[The Book of Scottish Song/The Laird o' Cockpen|The Laird o' Cockpen]]
| year = 1843
| notes =
}}
}}
}}
==Usage examples==
===Normal===
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = [[../]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[../Chapter 2/]]
| next = [[../Chapter 4/]]
| notes =
}}
</syntaxhighlight>
{{translation header
| title = [[Alice's Adventures in Wonderland (1866)|Alice's Adventures in Wonderland]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[Alice's Adventures in Wonderland (1866)/Chapter 2|Chapter 2]]
| next = [[Alice's Adventures in Wonderland (1866)/Chapter 4|Chapter 4]]
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = [[../]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[../Chapter 2/]]
| next = [[../Chapter 4/]]
| notes =
}}
</syntaxhighlight>
{{header
| title = [[Alice's Adventures in Wonderland (1866)|Alice's Adventures in Wonderland]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[Alice's Adventures in Wonderland (1866)/Chapter 2|Chapter 2]]
| next = [[Alice's Adventures in Wonderland (1866)/Chapter 4|Chapter 4]]
| notes =
}}
}}
}}
===No author link===
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
</syntaxhighlight>
{{translation header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
</syntaxhighlight>
{{header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
}}
}}
===Translation===
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title = Sleeping Beauty
| author =
| section =
| previous =
| next =
| translator = Hammurabi
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
</syntaxhighlight>
{{translation header
| title = Sleeping Beauty
| author =
| section =
| previous =
| next =
| translator = Hammurabi
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
{{translation header
| title = Sleeping Beauty
| author =
| section =
| previous =
| next =
| translator = Hammurabi
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Fables
| author = Jean de La Fontaine
| translator = Elizur Wright
| section =
| previous =
| next =
| notes =
}}
</syntaxhighlight>
{{header
| title = Fables
| author = Jean de La Fontaine
| translator = Elizur Wright
| section =
| previous =
| next =
| notes =
}}
}}
}}
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title = Sleeping Beauty
| author =
| section = Example
| previous =
| next =
| translator1 = Robert Burns (1759-1796)
| translator1-display = Robert Burns
| translator2 = Federico García Lorca
| section-translator = unknown
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
</syntaxhighlight>
{{translation header
| title = Sleeping Beauty
| author =
| section = Example
| previous =
| next =
| translator1 = Robert Burns (1759-1796)
| translator1-display = Robert Burns
| translator2 = Federico García Lorca
| section-translator = unknown
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Pantagruel
| author = François Rabelais
| translator1 = Thomas Urquhart
| translator2 = Peter Antony Motteux
| section-translator = unknown
| section = Example
| previous =
| next =
| notes =
}}
</syntaxhighlight>
{{header
| title = Pantagruel
| author = François Rabelais
| translator1 = Thomas Urquhart
| translator2 = Peter Antony Motteux
| section-translator = unknown
| section = Example
| previous =
| next =
| notes =
}}
}}
}}
==Categories==
<pre>
| categories = 1st category / 2nd category
</pre>
'''Note:''' that use of this methodology excludes further editing by use of the ''HotCat'' tool, so this form should only be used where the categories are unlikely to need to be altered
==Sister, related author, and portal wiki links==
You can link to Wikisource portals and other WMF projects using the optional wiki links parameters '''where required to override the data''' provided from Wikidata. These are:
*{{parameter|portal}}, {{parameter|related-author}}
* {{parameter|wikipedia}}, {{parameter|wikispecies}}, {{parameter|commons}}, {{parameter|commonscat}}, {{parameter|wikiquote}}, {{parameter|wikinews}}, {{parameter|wiktionary}}, {{parameter|wikibooks}}, {{parameter|wikiversity}}, {{parameter|meta}} are typically applied from Wikidata data through interwiki links, or through linking of {{property|P921}} so should only be used to override the default
For portal this would generally be added to the root page of a work, rather than added repeatedly for each subpage. Usage on a subpage would be useful where the subpage alone has a relationship with the specified portal, whereas the parent work does not have that relationship.
{{smaller|These links are generated using {{tl|plain sister}}}}
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
</syntaxhighlight>
{{translation header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
</syntaxhighlight>
{{header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
}}
}}
;List
* {{parameter|wikipedia}}
* {{parameter|commons}}
* {{parameter|commonscat}}
* {{parameter|wikiquote}}
* {{parameter|wikinews}}
* {{parameter|wiktionary}}
* {{parameter|wikibooks}}
* {{parameter|wikiversity}}
* {{parameter|wikispecies}}
* {{parameter|wikivoyage}}
* {{parameter|wikidata}}
* {{parameter|meta}}
==Shortcuts==
If a work has a shortcut, you can add it using the {{parameter|shortcut}} field. This should be in accordance with the [[WS:SHORT|shortcut guidelines]], and shortcuts should ''not'' be used for every work.
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
</syntaxhighlight>
{{translation header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
</syntaxhighlight>
{{header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
}}
}}
==Advanced manipulation==
===Alternative headers===
<references group=notes />
===JavaScript extraction===
The header values can be extracted using [[w:JavaScript|JavaScript]] by accessing the text values of their span wrappers:
{| class="wikitable"
! value
! wrapper id
|-
| title
| header-title-text
|-
| author
| header-author-text
|-
| translator
| header-translator-text
|-
| previous
| headerprevious
|-
| next
| headernext
|-
| notes
| ''none''
|}
== Microformat ==
{{UF-hcard-person}}
== Technical ==
This template delegates some logic to Lua modules and uses sub templates to divide up the structural code:
* [[Module:Header]] the main logic for parameter handling
== Tracking categories ==
This template uses categories to track maintenance tasks, errors, and feature usage, which are grouped in [[:Category:Header tracking categories]].
==See also==
* [[MediaWiki:Proofreadpage header template]] for the auto-generated header available with <code><nowiki><pages header=1/></nowiki></code>
* {{tl|textinfo}} for recording information on work's talk page
* {{#ifeq:{{ROOTPAGENAME}}|Translation header|{{tl|header}} for template header used in mainspace|{{tl|translation header}} for template header used in '''Translation:''' namespace}}
* {{tl|versions}} and {{tl|translations}} which also use {{ml|Header|header}}
* {{tl|author}} for template header used in Author: namespace
* {{tl|process header}} for template header used in Wikisource: namespace
* {{tl|portal header}} for template header used in Portal: namespace
* {{tl|RunningHeader}} for the headers to be used in source texts
* <span class="plainlinks">[{{fullurl:Special:WhatLinksHere|target=Template:{{ROOTPAGENAME}}&namespace=10}} Derived templates leveraging Template:{{ROOTPAGENAME}}]</span>
Templates called by this template:
* {{tl|plain sister}}
* {{tl|shortcut}}
<!-- categories -->
<includeonly>
[[Category:Header templates]]
[[Category:Templates emitting hCard microformats]]
[[Category:Exclude in print]]
{{#ifeq:{{ROOTPAGENAME}}|Translation header|[[Category:Translation templates]]}}
</includeonly>
gx3lliytjpbqzz3pm7nklylem48pc70
276315
276314
2024-11-11T08:44:32Z
~aanzx
6806
೧ revision imported from [[:en:Template:Header/doc]]
276314
wikitext
text/x-wiki
{{Documentation subpage}}
{{#ifeq:{{ROOTPAGENAME}}|Translation header|{{high-use|3919}}<!--https://petscan.wmflabs.org/?psid=27045436-->|{{high-use|416820}}<!--https://petscan.wmflabs.org/?psid=26937518-->}}
{{lua|Module:Header}}
{{#ifeq:{{ROOTPAGENAME}}|Translation header|{{uses TemplateStyles|Template:Header/styles.css|Template:Translation header/styles.css}}|{{uses TemplateStyles|Template:Header/styles.css}}}}
<!-- PLEASE ADD TEMPLATE CATEGORIES AT THE BOTTOM OF THIS PAGE AND INTERWIKIS IN WIKIDATA -->{{TOCright}}
This template can be preloaded via the [[Special:Preferences|Gadgets]], alternatively, one can preload [[Template:{{ROOTPAGENAME}}/preload]].
<section begin="Usage" />{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title =
| author =
| translator =
| section =
| previous =
| next =
| year =
| language =
| original =
| notes =
}}
</syntaxhighlight><!--
-->|<syntaxhighlight lang="wikitext">
{{header
| title =
| author =
| translator =
| section =
| previous =
| next =
| year =
| notes =
}}
</syntaxhighlight><!--
-->}}<section end="Usage" />
This template is meant to be used at the top of a work<ref group=notes>Certain projects have customised versions of {{tl|header}} that are used to present these works, eg. {{tl|DNB00}} is used for the project involved with [[Dictionary of National Biography]]. For these works it is permissible and recommended that these variations are used. New alternatives to {{tl|header}} should be discussed on the talk page, and consequentially listed on each project's pages.</ref> in the {{#switch:{{ROOTPAGENAME}}|Translation header='''Translation:'''|#default=main}} [[Help:Namespaces|namespace]] and its subsections. Fill in any relevant information, and leave unknown or inapplicable parameters empty. For easy use, see also the ''[[Help:Header preloading script gadget|header preloading script gadget]]'' in your preferences.
==Documentation==
===Parameters===
==== Standard ====
* {{parameter|title}} = title of the work, for subpage use [[#Relative links|relative links]] (mandatory)
* {{parameter|author}} = name of author (automatically wikilinks)
** use [[#author-display|{{parameter|author-display}}]] to change how {{parameter|author}} displays
** where control of linking is required use [[#author-nolink|{{parameter|author-nolink}}]], and leave the field empty
* {{parameter|section}} = name of subdivision of work, usually used on subpages, typically text without additional formatting
* {{parameter|previous}} = name of previous part of work; relative links on subpages, full links otherwise
* {{parameter|next}} = name of next part of work, relative links on subpages, full links otherwise
* {{parameter|notes}} = notes to explain the work, to add context, or to impart concise information that adds value to the reader; for example, use of {{tl|listen}}
====Optional====
* Parameters modifying {{parameter|author}}
** {{anchor|author-display}}{{parameter|author-display}}, used to change how {{parameter|author}} displays.
**: By default, <syntaxhighlight lang="wikitext" inline>| author = Winston Leonard Spencer Churchill</syntaxhighlight> will produce the link [[Author:Winston Leonard Spencer Churchill|Winston Leonard Spencer Churchill]], and <syntaxhighlight lang="wikitext" inline>| author = Winston Churchill (1871-1947)</syntaxhighlight> will produce the link [[Author:Winston Churchill (1871-1947)|Winston Churchill]], but <syntaxhighlight lang="wikitext" inline>| author = Winston Leonard Spencer Churchill | author-display = Winston Churchill</syntaxhighlight> will produce the link [[Author:Winston Leonard Spencer Churchill|Winston Churchill]].
** {{anchor+|author-nolink|{{parameter|author-nolink}}}}, which disables automatic linking of the author parameter if true.
**: <syntaxhighlight lang="wikitext" inline>| author = the [[Portal:United States Congress|United States Congress]] | author-nolink = true</syntaxhighlight> will display the author as "the [[Portal:United States Congress|United States Congress]]".
** {{parameter|section-author}} = name of the author of this section, if not the same as author the overall work; or synonym {{parameter|contributor}}.
** {{parameter|author2}}, {{parameter|author2-display}}, {{parameter|section-author2}}, {{parameter|section-author2-display}}, etc. for additional authors. For example, <syntaxhighlight lang="wikitext" inline>| author1 = Winston Churchill (1871-1947) | author2 = Winston Leonard Spencer Churchill | author2-display = Winston Churchill</syntaxhighlight> will display as "[[Author:Winston Churchill (1871-1947)|Winston Churchill]] and [[Author:Winston Leonard Spencer Churchill|Winston Churchill]]".
** {{anchor|override-author}}{{parameter|override-author}} = legacy parameter for unusual cases. When using this, please leave the author field empty. It is not possible to have more than one {{parameter|override-author}} parameter.
* All attribution parameters have the same behavior as author w.r.t. <code>-display</code>, <code>-nolink</code>, <code>section-</code> and additional values.
{{#invoke:Header/docdata|attrParamList}}
* {{parameter|year}} = year of publication, adds work to the category for the year, see [[:Category:Works by year]].
*:Enter "?" for a work with no known publication year, and leave blank if you simply don't have this information.
*:Do not use AD or CE for any Anno Domini/Current Era works (year 1 to the present). Use BCE (do not use BC) for all years before year 1; leave a space between the number and the letters (''e.g.'' <code>150 BCE</code>).
*:Approximate dates can be entered in one of the following ways:
*:#Decades, centuries or periods can be used instead of a year (''e.g.'' <code>1060s</code>, <code>11th century</code> or <code>Medieval</code>).
*:#To use a year in the circa format, enter it as "c/Y" (''e.g.'' <code>c/1066</code> or <code>c/150 BCE</code>). (The use of "ca" or "circa" instead of "c" will also be recognised.) This will display as, for example, "c. 1066".
*:#To use a approximate choice of two years, enter it as "Y/Y" (''e.g.'' <code>1066/1067</code>). This will display as it is written.
*: The behaviour of this parameter can be further modified by:
*:* {{parameter|noyear}} = will prevent the year being displayed in the header but will still add the work to the category for the year. For use in cases where the year is already included in the title of the work. Any use of this parameter, even without text, will work. Example: <code>| noyear = yes</code>. All pages with this parameter will be added to [[:Category:Pages with noyear]] for tracking its usage.
*:* {{parameter|noyearcat}} = will display the year but in the header but will not add the work to the category for the year. For use in cases where a specific subcategory exists for the type of work to avoid flooding the main category for the year. As above, any use of the parameter will trigger this action. Pages will be added to the tracking category [[:Category:Pages with noyearcat]].
*:* {{parameter|nolanguagecat}} = will prevent the header from categorizing by language. Pages will be added to the tracking category [[:Category:Pages with nolanguagecat]].
* {{parameter|edition}} <code>= true</code> to refer to further information on the work's talk page.
<!-- * {{parameter|categories}} = Forward-slash-separated list of categories; deprecated -->
* {{parameter|shortcut}} = The shortcut to this page, if it exists. This is normally reserved for very large reference works (''e.g.'' [[EB11]])
* {{parameter|cover}} = The image used as a cover for the book when exported. Do not include the "File:" prefix, e.g. <code>Foobar.jpg</code>. You can use a page of a multi-page file using <code>Foobar.djvu/7</code>.
* {{anchor+|defaultsort|{{parameter|sortkey}}, {{parameter|defaultsort}}}}: For sorting purposes the template will move the articles "a", "an" and "the" to the end of the title, on the root page and all its subpages; for example, [[The Times/1854/News/The Charge of the Light Brigade]] will be sorted as "Times, The/1854/News/Charge of the Light Brigade, The". To override this, set {{parameter|sortkey}} to the desired sort key, e.g. <code>sortkey = Charge of the Light Brigade, The</code>.
* {{parameter|language}} = ISO code of the language in which the work was originally written ([[Template:ISO 639 name/doc|find the ISO code here]]—be sure to use the first one listed); adds work to the category for the original language; see [[:Category:Translations]]. Use with {{tl|translation header}} and {{tl|translations}}.<!--
-->{{#ifeq:{{ROOTPAGENAME}}|Translation header|
* '''{{tl|Translation header}} only:'''
** {{parameter|original}} = name of the page that hosts the original language work (or chapter) on the [[:mul:|appropriate language Wikisource]]. A standard [[Help:Interlanguage links|interlanguage link]] to the original language work (or chapter) should also be present, though.<!--
-->}}
* {{parameter|nocat}} <code>= true</code> to turn off automatic categorization (except for tracking categories)
* See [[#Sister, related author, and portal wiki links|Sister, related author, and portal wiki links]]
** {{parameter|portal}}
** {{parameter|related-author}}
* Sister wiki links are now typically now provided through Wikidata linking, which manages link rot issues. So while the parameters are shown here for fullness of scope, such usage would be used to override automated linking rather than as a primary use.
====All parameters====
<section begin="Full" />{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext" highlight="9,20,23,25,28">
{{translation header
| title =
| author =
| author-display =
| section =
| previous =
| next =
| notes =
<!-- optional from here -->
| year =
| edition =
| translator =
| translator-display =
| related-author =
| portal =
| contributor =
| editor =
| cover =
| shortcut =
<!-- modifying "year" behaviour; use one of -->
| noyear =
| noyearcat =
<!-- modifying sorting behaviour -->
| sortkey =
<!-- translation header -->
| language =
| original =
<!-- provided through wikidata, can be used to override wikidata -->
| wikipedia =
| commons =
| commonscat =
| wikiquote =
| wikinews =
| wiktionary =
| wikibooks =
| wikiversity =
| wikispecies =
| wikivoyage =
| meta =
}}
</syntaxhighlight><!--
-->|<syntaxhighlight lang="wikitext" highlight="9,20,23,25">
{{header
| title =
| author =
| author-display =
| section =
| previous =
| next =
| notes =
<!-- optional from here -->
| year =
| edition =
| translator =
| translator-display =
| related-author =
| portal =
| contributor =
| editor =
| cover =
| shortcut =
<!-- modifying "year" behaviour; use one of -->
| noyear =
| noyearcat =
<!-- modifying sorting behaviour -->
| sortkey =
<!-- provided through wikidata, can be used to override wikidata -->
| wikipedia =
| commons =
| commonscat =
| wikiquote =
| wikinews =
| wiktionary =
| wikibooks =
| wikiversity =
| wikispecies =
| wikivoyage =
| meta =
}}
</syntaxhighlight><!--
-->}}<section end="Full" />
===Relative links===
With lengthy, multi-page works, using [[m:Help:Link#Subpage feature|relative links]] is highly recommended. This shortens the code and ensures that a work remains linked together even if it is moved or reorganised. The three formats are <nowiki>[[/subpage]]</nowiki> (subpage), <nowiki>[[../]]</nowiki> (parent), and <nowiki>[[../sibling]]</nowiki> (sibling)<ref>The specific form <nowiki>[[../sibling/]]</nowiki> can be used on a sibling to provide both a relative link, and the link label to a sibling page.</ref>; see the example usage below. Note that <nowiki>[[../]]</nowiki> will expand to the title of the parent page, which is ideal if the work is renamed at a later time.
This depends on a page conforming to the page title standards in the [[WS:STYLE|Style guide]], with works in the form <nowiki>[[Work title]]</nowiki> and <nowiki>[[Work title/Subpage]]</nowiki>.
{{smallrefs}}
===Chapter titles===
In general, include chapter titles in the "section" field, but avoid including them in the "previous" and "next" fields. For example:
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title = [[../|Aurora de Chile]]
| author = Camilo Henríquez
| translator =
| section = Issue 28. Thursday, August 20, 1812. Volume 1.
| previous = [[../27|Issue 27]]
| next = [[../29|Issue 29]]
| language = es
| original =
| year = 1812
| notes = Click on the section headers to go to each article's individual page.
}}
</syntaxhighlight>
{{translation header
| title = [[Translation:Aurora de Chile|Aurora de Chile]]
| author = Camilo Henríquez
| translator =
| section = Issue 28. Thursday, August 20, 1812. Volume 1.
| previous = [[Translation:Aurora de Chile/27|Issue 27]]
| next = [[Translation:Aurora de Chile/29|Issue 29]]
| language = es
| original =
| year = 1812
| notes = Click on the section headers to go to each article's individual page.
}}<!--
-->|<syntaxhighlight lang="wikitext">
{{header
| title = [[../|The Book of Scottish Song]]
| author =
| editor = Alexander Whitelaw
| translator =
| section = Jock o' Hazeldean
| contributor = Walter Scott
| previous = [[../Sing on, sing on/]]
| next = [[../The Laird o' Cockpen/]]
| year = 1843
| notes =
}}
</syntaxhighlight>
{{header
| title = [[The Book of Scottish Song|The Book of Scottish Song]]
| author =
| editor = Alexander Whitelaw
| translator =
| section = Jock o' Hazeldean
| contributor = Walter Scott
| previous = [[The Book of Scottish Song/Sing on, sing on|Sing on, sing on]]
| next = [[The Book of Scottish Song/The Laird o' Cockpen|The Laird o' Cockpen]]
| year = 1843
| notes =
}}
}}
}}
==Usage examples==
===Normal===
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = [[../]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[../Chapter 2/]]
| next = [[../Chapter 4/]]
| notes =
}}
</syntaxhighlight>
{{translation header
| title = [[Alice's Adventures in Wonderland (1866)|Alice's Adventures in Wonderland]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[Alice's Adventures in Wonderland (1866)/Chapter 2|Chapter 2]]
| next = [[Alice's Adventures in Wonderland (1866)/Chapter 4|Chapter 4]]
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = [[../]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[../Chapter 2/]]
| next = [[../Chapter 4/]]
| notes =
}}
</syntaxhighlight>
{{header
| title = [[Alice's Adventures in Wonderland (1866)|Alice's Adventures in Wonderland]]
| author = Lewis Carroll
| section = Chapter 3: A Caucus-Race and a Long Tale
| previous = [[Alice's Adventures in Wonderland (1866)/Chapter 2|Chapter 2]]
| next = [[Alice's Adventures in Wonderland (1866)/Chapter 4|Chapter 4]]
| notes =
}}
}}
}}
===No author link===
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
</syntaxhighlight>
{{translation header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
</syntaxhighlight>
{{header
| title = Peerage Act 1963
| author = the [[Portal:Parliament of the United Kingdom|Parliament of the United Kingdom]] | author-nolink = true
| section =
| previous =
| next =
| year = 1963 | noyear = true
| notes =
}}
}}
}}
===Translation===
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title = Sleeping Beauty
| author =
| section =
| previous =
| next =
| translator = Hammurabi
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
</syntaxhighlight>
{{translation header
| title = Sleeping Beauty
| author =
| section =
| previous =
| next =
| translator = Hammurabi
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
{{translation header
| title = Sleeping Beauty
| author =
| section =
| previous =
| next =
| translator = Hammurabi
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Fables
| author = Jean de La Fontaine
| translator = Elizur Wright
| section =
| previous =
| next =
| notes =
}}
</syntaxhighlight>
{{header
| title = Fables
| author = Jean de La Fontaine
| translator = Elizur Wright
| section =
| previous =
| next =
| notes =
}}
}}
}}
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<syntaxhighlight lang="wikitext">
{{translation header
| title = Sleeping Beauty
| author =
| section = Example
| previous =
| next =
| translator1 = Robert Burns (1759-1796)
| translator1-display = Robert Burns
| translator2 = Federico García Lorca
| section-translator = unknown
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
</syntaxhighlight>
{{translation header
| title = Sleeping Beauty
| author =
| section = Example
| previous =
| next =
| translator1 = Robert Burns (1759-1796)
| translator1-display = Robert Burns
| translator2 = Federico García Lorca
| section-translator = unknown
| year = 1900
| language = es
| original = La bella durmiente del bosque
| commonscat = La bella durmiente del bosque
| notes =
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Pantagruel
| author = François Rabelais
| translator1 = Thomas Urquhart
| translator2 = Peter Antony Motteux
| section-translator = unknown
| section = Example
| previous =
| next =
| notes =
}}
</syntaxhighlight>
{{header
| title = Pantagruel
| author = François Rabelais
| translator1 = Thomas Urquhart
| translator2 = Peter Antony Motteux
| section-translator = unknown
| section = Example
| previous =
| next =
| notes =
}}
}}
}}
==Categories==
<pre>
| categories = 1st category / 2nd category
</pre>
'''Note:''' that use of this methodology excludes further editing by use of the ''HotCat'' tool, so this form should only be used where the categories are unlikely to need to be altered
==Sister, related author, and portal wiki links==
You can link to Wikisource portals and other WMF projects using the optional wiki links parameters '''where required to override the data''' provided from Wikidata. These are:
*{{parameter|portal}}, {{parameter|related-author}}
* {{parameter|wikipedia}}, {{parameter|wikispecies}}, {{parameter|commons}}, {{parameter|commonscat}}, {{parameter|wikiquote}}, {{parameter|wikinews}}, {{parameter|wiktionary}}, {{parameter|wikibooks}}, {{parameter|wikiversity}}, {{parameter|meta}} are typically applied from Wikidata data through interwiki links, or through linking of {{property|P921}} so should only be used to override the default
For portal this would generally be added to the root page of a work, rather than added repeatedly for each subpage. Usage on a subpage would be useful where the subpage alone has a relationship with the specified portal, whereas the parent work does not have that relationship.
{{smaller|These links are generated using {{tl|plain sister}}}}
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
</syntaxhighlight>
{{translation header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
</syntaxhighlight>
{{header
| title = Kinematics of Machinery
| author = Franz Reuleaux
| section =
| previous =
| next =
| notes =
| portal1 = Technology
| portal2 = Germany
| wikipedia = Kinematics of Machinery
| related-author = Albert Einstein
}}
}}
}}
;List
* {{parameter|wikipedia}}
* {{parameter|commons}}
* {{parameter|commonscat}}
* {{parameter|wikiquote}}
* {{parameter|wikinews}}
* {{parameter|wiktionary}}
* {{parameter|wikibooks}}
* {{parameter|wikiversity}}
* {{parameter|wikispecies}}
* {{parameter|wikivoyage}}
* {{parameter|wikidata}}
* {{parameter|meta}}
==Shortcuts==
If a work has a shortcut, you can add it using the {{parameter|shortcut}} field. This should be in accordance with the [[WS:SHORT|shortcut guidelines]], and shortcuts should ''not'' be used for every work.
{{doc example|
{{#ifeq:{{ROOTPAGENAME}}|Translation header<!--
-->|<!--TODO: replace with translation header example--><syntaxhighlight lang="wikitext">
{{translation header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
</syntaxhighlight>
{{translation header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
|<syntaxhighlight lang="wikitext">
{{header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
</syntaxhighlight>
{{header
| title = 1911 Encyclopædia Britannica
| author =
| section =
| previous =
| next =
| notes =
| shortcut = [[EB1911]]
}}
}}
}}
==Advanced manipulation==
===Alternative headers===
<references group=notes />
===JavaScript extraction===
The header values can be extracted using [[w:JavaScript|JavaScript]] by accessing the text values of their span wrappers:
{| class="wikitable"
! value
! wrapper id
|-
| title
| header-title-text
|-
| author
| header-author-text
|-
| translator
| header-translator-text
|-
| previous
| headerprevious
|-
| next
| headernext
|-
| notes
| ''none''
|}
== Microformat ==
{{UF-hcard-person}}
== Technical ==
This template delegates some logic to Lua modules and uses sub templates to divide up the structural code:
* [[Module:Header]] the main logic for parameter handling
== Tracking categories ==
This template uses categories to track maintenance tasks, errors, and feature usage, which are grouped in [[:Category:Header tracking categories]].
==See also==
* [[MediaWiki:Proofreadpage header template]] for the auto-generated header available with <code><nowiki><pages header=1/></nowiki></code>
* {{tl|textinfo}} for recording information on work's talk page
* {{#ifeq:{{ROOTPAGENAME}}|Translation header|{{tl|header}} for template header used in mainspace|{{tl|translation header}} for template header used in '''Translation:''' namespace}}
* {{tl|versions}} and {{tl|translations}} which also use {{ml|Header|header}}
* {{tl|author}} for template header used in Author: namespace
* {{tl|process header}} for template header used in Wikisource: namespace
* {{tl|portal header}} for template header used in Portal: namespace
* {{tl|RunningHeader}} for the headers to be used in source texts
* <span class="plainlinks">[{{fullurl:Special:WhatLinksHere|target=Template:{{ROOTPAGENAME}}&namespace=10}} Derived templates leveraging Template:{{ROOTPAGENAME}}]</span>
Templates called by this template:
* {{tl|plain sister}}
* {{tl|shortcut}}
<!-- categories -->
<includeonly>
[[Category:Header templates]]
[[Category:Templates emitting hCard microformats]]
[[Category:Exclude in print]]
{{#ifeq:{{ROOTPAGENAME}}|Translation header|[[Category:Translation templates]]}}
</includeonly>
gx3lliytjpbqzz3pm7nklylem48pc70
ಟೆಂಪ್ಲೇಟು:Shortcut
10
11549
276310
257034
2024-09-26T20:37:52Z
ShakespeareFan00
7765
Delint - Does anything actually use the ID on this?
276310
wikitext
text/x-wiki
<templatestyles src="Shortcut/styles.css" /><includeonly><div <!--id="shortcut"--> class="wst-shortcut noprint"><div><div><div>
<span>[[Wikisource:Shortcut|Shortcut]]: </span><br>{{{1}}}
</div></div></div></div></includeonly><noinclude>{{documentation}}</noinclude>
a94qk2ipe5k7yerjm567nz7e8m1wsh8
276311
276310
2024-11-11T08:44:32Z
~aanzx
6806
೧ revision imported from [[:en:Template:Shortcut]]
276310
wikitext
text/x-wiki
<templatestyles src="Shortcut/styles.css" /><includeonly><div <!--id="shortcut"--> class="wst-shortcut noprint"><div><div><div>
<span>[[Wikisource:Shortcut|Shortcut]]: </span><br>{{{1}}}
</div></div></div></div></includeonly><noinclude>{{documentation}}</noinclude>
a94qk2ipe5k7yerjm567nz7e8m1wsh8
ಟೆಂಪ್ಲೇಟು:Anchor+
10
11692
276308
29197
2024-09-27T18:16:01Z
ShakespeareFan00
7765
276308
wikitext
text/x-wiki
<onlyinclude><templatestyles src="Template:Anchor/styles.css" /><span {{makeid|{{{a|{{{1|}}}}}}|blank=.}} title="Anchor:{{anchorencode:{{{a|{{{1|}}}}}}}}" class="wst-anchor {{{class|}}}">{{{label|{{{2|{{{1|}}}}}}}}}</span></onlyinclude>
{{documentation}}
kozg7x99wrpw6sc7xb6dw185f9vf1kg
276309
276308
2024-11-11T08:44:31Z
~aanzx
6806
೧ revision imported from [[:en:Template:Anchor+]]
276308
wikitext
text/x-wiki
<onlyinclude><templatestyles src="Template:Anchor/styles.css" /><span {{makeid|{{{a|{{{1|}}}}}}|blank=.}} title="Anchor:{{anchorencode:{{{a|{{{1|}}}}}}}}" class="wst-anchor {{{class|}}}">{{{label|{{{2|{{{1|}}}}}}}}}</span></onlyinclude>
{{documentation}}
kozg7x99wrpw6sc7xb6dw185f9vf1kg
ಟೆಂಪ್ಲೇಟು:Smallrefs
10
11821
276304
259796
2024-11-07T13:21:42Z
ShakespeareFan00
7765
259795
wikitext
text/x-wiki
<templatestyles src="Smallrefs/styles.css" /><!--
# classes:
# * prp-pages-output is added to classes to allow the scoped Index-specific TemplateStyles to also apply to these references
# * wst-smallrefs-ruled adds a "standard" top-rule
# add a blank line before the div to prevent merging with ends of tables, etc
-->
<div class="prp-pages-output"><!--
This extra div is needed because Index Styles are
over-specified with descendant selectors: .wst-smallrefs
has to be a descendant, not sibling, of .prp-pages-output
which in turn has to be a descendant of mw-parser-output.
It's a bad design, but that's where we're at.
--><div class="reflist wst-smallrefs {{#if:{{{rule|}}}|wst-smallrefs-ruled}} {{{class|}}}" style="{{#if:{{{fs|{{{1|}}}}}}|font-size:{{{fs|{{{1|83%}}}}}};}} {{#if:{{{lh|{{{2|}}}}}}|line-height:{{{lh|{{{2|1.25}}}}}};}} {{#if: {{{columns|}}}|column-count:{{{columns}}};}}">
{{#tag:references|{{{refs|{{{refx|}}}}}}|group={{{group|}}}}}
</div>
</div>{{#if:{{{fs|{{{1|}}}}}}|[[Category:Pages using smallrefs with font-size]]}}{{#if:{{{lh|{{{2|}}}}}}|[[Category:Pages using smallrefs with line-height]]}}<noinclude>
{{Documentation}}
</noinclude>
7qnvajtwo85yecoo2xogf67k2dh32qb
276305
276304
2024-11-11T08:44:30Z
~aanzx
6806
೧ revision imported from [[:en:Template:Smallrefs]]
259795
wikitext
text/x-wiki
<templatestyles src="Smallrefs/styles.css" /><!--
# classes:
# * prp-pages-output is added to classes to allow the scoped Index-specific TemplateStyles to also apply to these references
# * wst-smallrefs-ruled adds a "standard" top-rule
# add a blank line before the div to prevent merging with ends of tables, etc
-->
<div class="prp-pages-output"><!--
This extra div is needed because Index Styles are
over-specified with descendant selectors: .wst-smallrefs
has to be a descendant, not sibling, of .prp-pages-output
which in turn has to be a descendant of mw-parser-output.
It's a bad design, but that's where we're at.
--><div class="reflist wst-smallrefs {{#if:{{{rule|}}}|wst-smallrefs-ruled}} {{{class|}}}" style="{{#if:{{{fs|{{{1|}}}}}}|font-size:{{{fs|{{{1|83%}}}}}};}} {{#if:{{{lh|{{{2|}}}}}}|line-height:{{{lh|{{{2|1.25}}}}}};}} {{#if: {{{columns|}}}|column-count:{{{columns}}};}}">
{{#tag:references|{{{refs|{{{refx|}}}}}}|group={{{group|}}}}}
</div>
</div>{{#if:{{{fs|{{{1|}}}}}}|[[Category:Pages using smallrefs with font-size]]}}{{#if:{{{lh|{{{2|}}}}}}|[[Category:Pages using smallrefs with line-height]]}}<noinclude>
{{Documentation}}
</noinclude>
7qnvajtwo85yecoo2xogf67k2dh32qb
ಮಾಡ್ಯೂಲ್:Header
828
94311
276306
275772
2024-10-30T08:44:07Z
CalendulaAsteraceae
6870
streamline override checks
276306
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local ISO_639_language_name = require('Module:ISO 639').language_name
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttributions = require('Module:Header/attribution')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Works with non-existent author pages'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttributions.attr_data[param] or headerAttributions.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
--[=[
Construct the automatic categories for the header
]=]
local function language_category_name(cat_works_start, lang)
local cat_language_name = ISO_639_language_name(lang) or 'an undefined language'
if lang == 'el' then
cat_language_name = 'Modern Greek'
end
return cat_works_start .. ' ' .. cat_language_name
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Works using categories parameter')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Headers with numerical arguments')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = mw.text.split(k, '-', true)
contrib_type = string.gsub(contrib_type[2], '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Pages with contributor')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Works with unknown editors')
elseif editor == 'not mentioned' then
table.insert(categories, 'Works with unmentioned editors')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Translations without translator information specified')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Translations of anonymous works')
else
table.insert(categories, 'Anonymous texts')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 114) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 114) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.template_name == 'Translation header' then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, language_category_name(cat_works_start, lang))
end
end
if args['interwiki-prefix'] then
table.insert(categories, language_category_name(cat_works_start, args['interwiki-prefix']))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
return table.concat(category_links)
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):attr('id', 'header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttributions.construct_attributions(args)
local section = headerAttributions.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):attr('id', 'header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
local function get_languages(args, prefix)
prefix = (prefix and prefix .. '%-') or ''
-- language handling
local languages = {}
for k, v in pairs(args) do
local n
local nText = string.match(k, '^' .. prefix .. 'language%d*$')
if nText then
n = string.gsub(nText, 'language(%d*)$', '%1')
n = tonumber(n) or 1
languages[n] = v
end
end
languages = TableTools.compressSparseArray(languages)
if #languages == 0 then
return {}
end
local language_name
local language_names = {}
for i, lang in ipairs(languages) do
local name = ISO_639_language_name(lang)
if name then
table.insert(language_names, name)
end
end
if #language_names == 1 then
language_name = language_names[1]
elseif #language_names > 1 then
language_name = table.concat(language_names, ', ', 1, #language_names - 1) .. ' and ' .. language_names[#language_names]
end
return {
languages = languages,
language_name = language_name
}
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.nocat == true or nil
local language_res = get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original and (args['interwiki-prefix'] == 'ang' or args['interwiki-prefix'] == 'enm' or args['interwiki-prefix'] == 'sco') then
-- cycle to mul.ws and back around to en.ws
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':en:' .. args.original .. ']]'
elseif args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:' .. 'Headers with DefaultSort equal to page title' .. ']]'
args.diffsortcat = '[[Category:' .. 'Headers applying DefaultSort key' .. ']]'
args.post_notes = table.concat({
headerAttributions.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
return get_noexport_stylesheet('Header') .. construct_header(args)
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
mkfrrtcepivmyn4pqb8epmn6423l25a
276307
276306
2024-11-11T08:44:31Z
~aanzx
6806
೧ revision imported from [[:en:Module:Header]]
276306
Scribunto
text/plain
--[=[
This is a module to implement logic for [[Template:Header]] and [[Template:Translation header]]
TODO:
- centuries are defined as starting on XX01, but WS categorizes them as starting on XX00
-- check whether that's a considered policy choice
]=]
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local getArgs = require('Module:Arguments').getArgs
local TableTools = require('Module:TableTools')
local ISO_639_language_name = require('Module:ISO 639').language_name
local parent_links = require('Module:Auto parents')._parent_links
local construct_header = require('Module:Header structure').construct_header
local headerAttributions = require('Module:Header/attribution')
local construct_defaultsort = require('Module:Header/sort')._construct_defaultsort
local construct_year = require('Module:Header/year').construct_year
local current_title = mw.title.getCurrentTitle()
--[=[
Wrap stylesheet in noexport div
]=]
local function get_noexport_stylesheet(template)
return tostring(mw.html.create('div'):addClass('ws-noexport'):wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = template .. '/styles.css'})))
end
--[=[
Get badge if any
]=]
local function badge()
return require('Module:Edition').badge({args = {category = '1', indicator = '1'}})
end
--[=[
Detect explicit formatting in fields like 'section' and 'title'
]=]
local function explicit_formatting(str)
return str and (string.match(str, "\'\'\'?") or string.match(str, '<%s*/?%s*[iIbB]%s*>'))
-- add more cases here or come up with a less silly way to do things
end
local function check_non_existent_author_pages(args, categories, checkArgs)
-- check for cases that aren't supposed to produce a valid link
local param = checkArgs.param
local tracking_cat = checkArgs.tracking_cat or 'Works with non-existent author pages'
if not param or not args[param] or yesno(args[param .. '-nolink']) then
return
end
local lower_arg = string.lower(args[param])
local attr_data = headerAttributions.attr_data[param] or headerAttributions.attr_data[string.gsub(param, 'section%-', '')]
if attr_data and attr_data['special_cases'] and attr_data['special_cases'][lower_arg] then
return
end
-- check if page exists
local target = mw.title.makeTitle('Author', args[param])
-- expensive function!
if not target or not target.exists then
table.insert(categories, tracking_cat)
end
return
end
--[=[
Construct the automatic categories for the header
]=]
local function language_category_name(cat_works_start, lang)
local cat_language_name = ISO_639_language_name(lang) or 'an undefined language'
if lang == 'el' then
cat_language_name = 'Modern Greek'
end
return cat_works_start .. ' ' .. cat_language_name
end
local function construct_categories(args, argsWithBlanks)
local categories = {}
-- categorize subpages
local title = current_title
local parent_exists = false
while title.isSubpage and not parent_exists do
title = mw.title.new(title.baseText, title.nsText)
parent_exists = title.exists
end
if parent_exists and title:inNamespaces(0) then
table.insert(categories, 'Subpages')
elseif parent_exists then
table.insert(categories, title.nsText .. ' subpages')
end
-- add categories from the categories parameter
local manual_categories = (args.categories and mw.text.split(args.categories, '%s*/%s*', false)) or {}
local using_cat = false
for i, category in ipairs(manual_categories) do
local cat = mw.text.trim(category)
if cat ~= '' then
table.insert(categories, cat)
using_cat = true
end
end
if using_cat then
table.insert(categories, 'Works using categories parameter')
end
local known_override_types = {
['default'] = 'contributor type',
['author'] = 'author',
['translator'] = 'translator',
['section-author'] = 'contributor'
}
for k, v in pairs(argsWithBlanks) do
-- Check for numerical parameters (which shouldn't be used)
if type(k) == 'number' then
table.insert(categories, 'Headers with numerical arguments')
-- Check for 'override-' parameters
elseif string.match(k, '^override%-') then
local contrib_type = mw.text.split(k, '-', true)
contrib_type = string.gsub(contrib_type[2], '%d*$', '')
table.insert(categories, 'Pages with override ' .. (known_override_types[contrib_type] or known_override_types['default']))
end
end
-- check contributor parameters
if args['section-author'] then
table.insert(categories, 'Pages with contributor')
end
local editor = args['override-editor'] or args['editor']
if editor and not args['nocat'] then
editor = string.lower(editor)
if editor == 'unknown' or editor == '?' then
table.insert(categories, 'Works with unknown editors')
elseif editor == 'not mentioned' then
table.insert(categories, 'Works with unmentioned editors')
end
end
local translator = args['override-translator'] or args['translator']
if translator and not args['nocat'] then
translator = string.lower(translator)
if translator == 'unknown' or translator == 'not mentioned' or translator == '?' then
table.insert(categories, 'Translations without translator information specified')
end
end
local author = args['override-author'] or args['author']
if author and (string.lower(author) == 'unknown') and not args['nocat'] then
if args.template_name == 'Translation header' then
table.insert(categories, 'Translations of anonymous works')
else
table.insert(categories, 'Anonymous texts')
end
end
-- check for non-existent contributor pages
if current_title:inNamespaces(0, 114) or args.testing then
local params_to_check = {
{param = 'author'},
{param = 'editor'},
{param = 'translator'},
{param = 'composer', tracking_cat = 'Works with non-existent composer pages'},
{param = 'illustrator', tracking_cat = 'Works with non-existent illustrator pages'}
}
for k, v in pairs(params_to_check) do
check_non_existent_author_pages(args, categories, v)
check_non_existent_author_pages(args, categories, {param = 'section-' .. v.param, tracking_cat = v.tracking_cat})
end
end
if args['shortcut'] then
if current_title:inNamespaces(0) then
table.insert(categories, 'Mainspace pages with shortcuts')
elseif current_title:inNamespaces(114) then
table.insert(categories, 'Translation namespace pages with shortcuts')
end
end
if args['noyear'] then
table.insert(categories, 'Pages with noyear')
end
if args['noyearcat'] then
table.insert(categories, 'Pages with noyearcat')
end
if args['nolanguagecat'] then
table.insert(categories, 'Pages with nolanguagecat')
end
if args['cover'] then
table.insert(categories, 'Pages with an export cover')
end
-- sanity/maintenance checks on various parameters
-- allow-explicit-formatting parameter suppresses this check
-- used by, for example, [[Template:Versions]]
if not args['allow-explicit-formatting'] and (explicit_formatting(args['title']) or explicit_formatting(args['section'])) then
table.insert(categories, 'Pages with explicit formatting in header fields')
end
-- translation header categories
local isMainPage = ((current_title:inNamespaces(0, 114) and not current_title.isSubpage) or args['testing'])
if not args['nocat'] and isMainPage then
local cat_works_start = 'Works originally in'
local cat_translations_start = 'Translations'
if args.template_name == 'Translation header' then
cat_works_start = 'Wikisource translations of works in'
cat_translations_start = 'Wikisource translations'
end
if not args['nolanguagecat'] then
if args['languages'] then
for i, lang in ipairs(args['languages']) do
table.insert(categories, language_category_name(cat_works_start, lang))
end
end
if args['interwiki-prefix'] then
table.insert(categories, language_category_name(cat_works_start, args['interwiki-prefix']))
end
end
if not args['languages'] and args['language-required'] then
table.insert(categories, cat_translations_start .. ' with no original language')
end
if args.template_name == 'Translation header' and not args.original then
table.insert(categories, 'Wikisource translations with no original source')
end
end
-- detect inappropriate template use
--[=[
if (args['template-name'] ~= 'Translation header' and translator and string.lower(translator) == 'wikisource')
or (current_title:inNamespaces(114) and args['template-name'] ~= 'Translation header') then
-- tracking category for pages that should be using translation header?
end
if current_title:inNamespaces(0) and args['template-name'] == 'Translation header' then
-- tracking category for translation header in mainspace?
end
]=]
categories = TableTools.removeDuplicates(categories)
local category_links = {}
for k, v in pairs(categories) do
table.insert(category_links, '[[Category:' .. v .. ']]')
end
return table.concat(category_links)
end
--[=[
For debugging
]=]
--[=[
function p.construct_categories(args)
return construct_categories(args, args)
end
]=]
--[=[
Assemble the title
]=]
local function header_title(args)
local title = args.title or ''
local titleSpan = tostring(mw.html.create('span'):attr('id', 'header-title-text'):wikitext(title))
local year = construct_year(args)
local attr = headerAttributions.construct_attributions(args)
local section = headerAttributions.construct_section(args)
if attr ~= '' and title ~= '' then
attr = tostring(mw.html.create('br'):attr('id', 'header-title-break')) .. attr
end
return table.concat({titleSpan, year, attr, section})
end
local function get_languages(args, prefix)
prefix = (prefix and prefix .. '%-') or ''
-- language handling
local languages = {}
for k, v in pairs(args) do
local n
local nText = string.match(k, '^' .. prefix .. 'language%d*$')
if nText then
n = string.gsub(nText, 'language(%d*)$', '%1')
n = tonumber(n) or 1
languages[n] = v
end
end
languages = TableTools.compressSparseArray(languages)
if #languages == 0 then
return {}
end
local language_name
local language_names = {}
for i, lang in ipairs(languages) do
local name = ISO_639_language_name(lang)
if name then
table.insert(language_names, name)
end
end
if #language_names == 1 then
language_name = language_names[1]
elseif #language_names > 1 then
language_name = table.concat(language_names, ', ', 1, #language_names - 1) .. ' and ' .. language_names[#language_names]
end
return {
languages = languages,
language_name = language_name
}
end
--[=[
[[Template:Header]]
]=]
function p._header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
-- aliases
local dup_cat
local newArgs = {}
local aliases = {
['section-author'] = 'contributor',
['section-translator'] = 'contributing%-translator'
}
for k, v in pairs(args) do
local newkey = string.lower(string.gsub(string.gsub(tostring(k), '_', '-'), ' ', '-'))
for arg, alias in pairs(aliases) do
newkey = string.gsub(newkey, alias, arg)
end
if newkey ~= tostring(k) then
if argsWithBlanks[newkey] then
dup_cat = 'Pages using duplicate arguments in template calls'
end
if not args[newkey] then
newArgs[newkey] = newArgs[newkey] or v
end
end
if newkey == 'testing' or newkey == 'nocat' or newkey == 'nolanguagecat' or newkey == 'language-required' or string.match(newkey, '%-nolink$') then
newArgs[newkey] = newArgs[newkey] or yesno(v)
end
end
for k, v in pairs(newArgs) do
args[k] = v
argsWithBlanks[k] = v
end
if dup_cat then
table.insert(categories, dup_cat)
end
args.sortkey = args.defaultsort or args.sortkey
-- default values
args.template_name = args.template_name or 'Header'
if args.testing == nil then
args.testing = current_title.fullText == 'Template:Header/testcases' or current_title.fullText == 'Template:Translation header/testcases'
end
-- noyearcat has different behavior for nil and false
args.noyearcat = args.nocat == true or nil
local language_res = get_languages(args)
args.languages = language_res.languages
args.language_name = language_res.language_name
local section_language_res = get_languages(args, 'section')
args.section_languages = section_language_res.languages
args.section_language_name = section_language_res.language_name
if not args['interwiki-prefix'] and args['languages'] then
if #(args['languages']) > 1 then
args['interwiki-prefix'] = 'mul'
else
args['interwiki-prefix'] = args['languages'][1]
end
end
-- add values to argsWithBlanks
for k, v in pairs(args) do
if not argsWithBlanks[k] then
argsWithBlanks[k] = v
end
end
-- default values for title and section (allow override by setting to blank)
if not argsWithBlanks['title'] then
args['title'] = parent_links({})
argsWithBlanks['title'] = args['title']
end
if not argsWithBlanks['section'] and current_title.isSubpage then
args['section'] = current_title.subpageText
argsWithBlanks['section'] = args['section']
end
-- header args
args.pre_container = badge()
args.header_class = 'wst-header ws-header ws-noexport noprint dynlayout-exempt ' .. (args.header_class or '')
args.main_class = 'headertemplate'
-- title
args.main_title = header_title(args)
-- FIXME: just use Wikidata instead of interwiki links?
local interwiki = ''
if args.template_name == 'Translation header' and args['interwiki-prefix'] then
interwiki = tostring(mw.html.create('span'):addClass('interwiki-info'):attr('id', args['interwiki-prefix']):attr('title', '(original)'))
if args.original and (args['interwiki-prefix'] == 'ang' or args['interwiki-prefix'] == 'enm' or args['interwiki-prefix'] == 'sco') then
-- cycle to mul.ws and back around to en.ws
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':en:' .. args.original .. ']]'
elseif args.original then
-- general interwiki link
interwiki = interwiki .. '[[' .. args['interwiki-prefix'] .. ':' .. args.original .. ']]'
end
end
-- set defaultsort tracking categories
args.equalsortcat = '[[Category:' .. 'Headers with DefaultSort equal to page title' .. ']]'
args.diffsortcat = '[[Category:' .. 'Headers applying DefaultSort key' .. ']]'
args.post_notes = table.concat({
headerAttributions.construct_microformat(args),
construct_categories(args, argsWithBlanks),
construct_defaultsort(args),
interwiki
})
return get_noexport_stylesheet('Header') .. construct_header(args)
end
function p.header(frame)
return p._header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
--[=[
[[Template:Translation header]]
]=]
function p._translation_header(args, argsWithBlanks)
argsWithBlanks = argsWithBlanks or args
args.header_class = 'wst-translation-header'
args.template_name = 'Translation header'
args.notes_class = 'header-notes'
args['language-required'] = true
return get_noexport_stylesheet('Translation header') .. p._header(args, argsWithBlanks)
end
function p.translation_header(frame)
return p._translation_header(
getArgs(frame),
getArgs(frame, {removeBlanks = false})
)
end
return p
mkfrrtcepivmyn4pqb8epmn6423l25a
ಮಾಡ್ಯೂಲ್:Documentation/styles.css
828
95178
276322
273157
2024-11-07T13:27:42Z
Sjoerddebruin
7771
Dark mode styles via :W
276322
sanitized-css
text/css
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
color:inherit;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
@media screen {
html.skin-theme-clientpref-night .documentation,
html.skin-theme-clientpref-night .documentation-metadata {
background-color: #0b1e1c;
}
}
@media screen and ( prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .documentation,
html.skin-theme-clientpref-os .documentation-metadata {
background-color: #0b1e1c;
}
}
nequp42tnkqdlpdirqvbqiakbtqrx1f
276323
276322
2024-11-11T08:44:33Z
~aanzx
6806
೧ revision imported from [[:en:Module:Documentation/styles.css]]
276322
sanitized-css
text/css
.documentation,
.documentation-metadata {
border: 1px solid #a2a9b1;
background-color: #ecfcf4;
color:inherit;
clear: both;
}
.documentation {
margin: 1em 0 0 0;
padding: 1em;
}
.documentation-metadata {
margin: 0.2em 0; /* same margin left-right as .documentation */
font-style: italic;
padding: 0.4em 1em; /* same padding left-right as .documentation */
}
.documentation-startbox {
padding-bottom: 3px;
border-bottom: 1px solid #aaa;
margin-bottom: 1ex;
}
.documentation-heading {
font-weight: bold;
font-size: 125%;
}
.documentation-clear { /* Don't want things to stick out where they shouldn't. */
clear: both;
}
.documentation-toolbar {
font-style: normal;
font-size: 85%;
}
@media screen {
html.skin-theme-clientpref-night .documentation,
html.skin-theme-clientpref-night .documentation-metadata {
background-color: #0b1e1c;
}
}
@media screen and ( prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .documentation,
html.skin-theme-clientpref-os .documentation-metadata {
background-color: #0b1e1c;
}
}
nequp42tnkqdlpdirqvbqiakbtqrx1f
ಟೆಂಪ್ಲೇಟು:TOC right/styles.css
10
95254
276312
252642
2024-08-04T20:19:05Z
CalendulaAsteraceae
6870
276312
sanitized-css
text/css
.tocright {
float: right;
clear: right;
width: auto;
background: none;
padding: .5em 0 .8em 1.4em;
margin-bottom: .5em;
}
.tocright-clear-left {
clear: left;
}
.tocright-clear-both {
clear: both;
}
.tocright-clear-none {
clear: none;
}
/* on very small screens, don't allow a content "sliver" up the left side */
@media screen and ( max-width: 720px ) {
.tocright {
width: 100%;
}
}
8pdldcabbl3mdi2wgpqvne1s73zq9o4
276313
276312
2024-11-11T08:44:32Z
~aanzx
6806
೧ revision imported from [[:en:Template:TOC_right/styles.css]]
276312
sanitized-css
text/css
.tocright {
float: right;
clear: right;
width: auto;
background: none;
padding: .5em 0 .8em 1.4em;
margin-bottom: .5em;
}
.tocright-clear-left {
clear: left;
}
.tocright-clear-both {
clear: both;
}
.tocright-clear-none {
clear: none;
}
/* on very small screens, don't allow a content "sliver" up the left side */
@media screen and ( max-width: 720px ) {
.tocright {
width: 100%;
}
}
8pdldcabbl3mdi2wgpqvne1s73zq9o4
ಮಾಡ್ಯೂಲ್:Wikidata label
828
95261
276316
252662
2024-04-16T16:26:37Z
EncycloPetey
7766
Protected "[[Module:Wikidata label]]" ([Edit=Allow only autoconfirmed users] (indefinite) [Move=Allow only autoconfirmed users] (indefinite))
252661
Scribunto
text/plain
--[[
__ __ _ _ __ ___ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| |
| |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ |
| | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ |
|_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_|
This module is intended to be the engine behind "Template:Label".
This module was copied from Commons please ask for changes there.
Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing
at "Module:Wikidata label/testcases".
Authors and maintainers:
* User:Jarekt - original version
]]
require('strict') -- used for debugging purposes as it detects cases of unintended global variables
--=============================================
--=== Internal functions ======================
--=============================================
---------------------------------------------------------------------------
-- Normalize input arguments by converting them all to lower case and
-- replacing space with "_" in the argument name. Also empty strings are
-- converted to nils. Arguments are collected from arguments passed to the
-- module and if missing from the template that calls the module
local function getArgs(frame)
local function normalize_input_args(input_args, output_args)
for name, value in pairs( input_args ) do
value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string
if value ~= '' then -- nuke empty strings
if type(name)=='string' then
name = string.gsub( string.lower(name), ' ', '_')
end
output_args[name] = value
end
end
return output_args
end
local args = {}
args = normalize_input_args(frame:getParent().args, args)
args = normalize_input_args(frame.args, args)
return args
end
---------------------------------------------------------------------------
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to Module:Yesno but does not assume val is a string
local function yesno(val, default)
if type(val) == 'boolean' then
return val
elseif type(val) == 'number' then
if val == 1 then
return true
elseif val == 0 then
return false
end
elseif type(val) == 'string' then
val = mw.ustring.lower(val) -- put in lower case
if val == 'no' or val == 'n' or val == 'false' or val == '0' then
return false
elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then
return true
end
end
return default
end
-------------------------------------------------------------------------
-- get message in a given language
-- INPUTS:
-- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up
-- * lang - translate message to language "lang"
-- * default - string to return in case this module is moved to a project where this message is not set
-- OUTPUT:
-- * translated message
local function getMessage(msg, lang, default)
msg = mw.message.new(msg):inLanguage(lang):plain()
return (msg == nil and default) or msg
end
---------------------------------------------------------------------------
-- use different sitelink call depending if you already have an entity or not
-- INPUTS:
-- * item and entity - entity id and entity: if full entity already uploded than use that
-- otherwise use entity id to look up sitelink
-- * lang - language of the project
-- OUTPUT:
-- * sitelink
local function getSitelink(item, entity, lang)
if entity and entity.getSitelink then -- if we have entity then use it
return entity:getSitelink(lang .. 'wiki')
else -- if no entity then use different function
return mw.wikibase.getSitelink(item, lang .. 'wiki')
end
end
---------------------------------------------------------------------------
-- use different sitelink call depending if you already have an entity or not
-- INPUTS:
-- * item and entity - entity id and entity: if full entity already uploded than use that
-- otherwise use entity id to look up sitelink
-- * prop - property for which to return the best statment
-- OUTPUT:
-- * value of the best statment (only from the first one)
local function getBestStatementsValue(item, entity, prop)
local statments
if entity then
statments = entity:getBestStatements(prop)
else
statments = mw.wikibase.getBestStatements(item, prop)
end
for _, statment in ipairs(statments) do
if statment and statment.mainsnak.datavalue.value then
return statment.mainsnak.datavalue.value
end
end
end
---------------------------------------------------------------------------
-- change capitalization of the label
-- INPUTS:
-- * label - label string
-- * capitalization - capitalization to be applied: allowed values are "tc", "lc",
-- "uc", "lcfirst", and "ucfirst". Any other value will return original string
-- * lang - language of the label
-- OUTPUT:
-- * value of the best statment (only from the first one)
local function apply_capitalization(label, capitalization, lang)
capitalization = string.lower(capitalization or 'none')
if capitalization == 'none' then
return label
elseif capitalization == 'uc' then
return mw.language.new(lang):uc(label)
elseif capitalization == 'lc' then
return mw.language.new(lang):lc(label)
elseif capitalization == 'tc' then -- title case
local new_label = {}
for _, word in ipairs(mw.text.split(label, ' ')) do
table.insert(new_label, mw.language.new(lang):ucfirst(word))
end
return table.concat(new_label, ' ')
elseif capitalization == 'ucfirst' then
return mw.language.new(lang):ucfirst(label)
elseif capitalization == 'lcfirst' then
return mw.language.new(lang):lcfirst(label)
end
return label
end
--[[-------------------------------------------------------------------------
get link based on user preference
INPUTS:
* link_type - can be :
* "wikidata" - link to wikidata
* "wikipedia" - link to wikipedia (language dependent)
* "wikidata talk" - link to wikidata talk page
* "commons" - link to commons (try sitelink then commons category then commons gallery)
* "commonscat" - link to commons (try commons category then commons gallery)
* "-" - means no link
* item - entity ID (always provided)
* entity - whole entity. It can be nil if whole entity is not loaded
* langList - language fallback list for preferred language (required)
OUTPUT:
* link - link to the wikimedia page
]]
local function getLink(link_type, item, entity, langList)
local link, eLink
link_type = mw.ustring.lower(link_type or '')
local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M'
if item_type == 'M' then
eLink='c:Special:EntityPage/'..item
elseif item_type == 'Q' then
eLink='d:'..item -- wikibase entity page link
elseif item_type == 'P' then
eLink='d:Property:'..item -- wikibase entity page link
else
eLink='d:Special:EntityPage/'..item
end
if link_type == '-' then -- allow different link formats
link = '' -- no link
elseif link_type == 'wikidata' or item_type == 'M' then
link = eLink -- link to wikibase entity page
elseif link_type == 'wikidata talk' and item_type == 'P' then
link = 'd:Property talk:'.. item -- link to wikidata property talk page
elseif link_type == 'wikidata talk' then
link = 'd:Talk:'..item -- link to wikidata talk page
elseif link_type == 'commons' or link_type == 'commonscat' then
--[[
When link_type == 'commons' we try the following links (in specified order):
1) commons sitelink
2) P373 "Commons Category" claims
3) P935 "Commons Gallery" claims
Since most items have a commons sitelink we never have to look for claims
When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we
try the following links (in specified order):
1) commons sitelink, which is kept if it points to a category
2) P373 "Commons Category" claims
3) commons sitelink (which does not point to a category)
4) P935 "Commons Gallery" claims
Since most pages have a commons sitelink we never have to look for claims
]]
local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons
if sLink then
sLink = 'c:'..sLink
if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then
link = sLink
end
end
if not link then -- try linking to P373 "Commons Category"
local cat = getBestStatementsValue(item, entity, 'P373')
link = (cat ~= nil and 'c:Category:' .. cat) or nil
end
link = link or sLink
if not link then -- try linking to P935 "Commons Gallery"
link = getBestStatementsValue(item, entity, 'P935')
end
end
if not link then -- apply default "Wikipedia" link type
for _, language in ipairs(langList) do
local sitelink = getSitelink(item, entity, language)
if sitelink then
link = 'w:'.. language ..':'.. sitelink
break
end
end
end
return link or eLink -- no wiki sitelink, so link to wikidata
end
--=============================================
--=== External functions ======================
--=============================================
local p = {}
--======================================================================
--=== API functions for use from other Scribunto modules ===============
--======================================================================
--[[
_getLabel
This function returns a label translated to desired language, created based on wikidata
Inputs:
1: item - wikidata's item's q-id or entity class
2: lang - desired language of the label
3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link)
4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter),
"lcfirst" (lower case for the first letter), or 'none' (default)
Error Handling:
Bad q-id will result in displayed error
]]
function p._getLabel(item, lang, link_type, capitalization, show_id)
local entity, s, link, label, language, desc
-- clean up the input parameters
if type(item) ~= 'string' then -- "item" is not a q-id
entity = item -- "item" must be the entity
item = entity.id -- look-up q-id
elseif tonumber(item) then -- if it is just the number then add "Q" in front
item = 'Q'..item
end
item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize
if not lang then
label, lang = mw.wikibase.getLabelWithLang(item)
end
if not lang then -- if still no language
lang = mw.getCurrentFrame():callParserFunction("int","lang") -- get user's chosen language
label = nil
end
-- build language fallback list
lang = mw.ustring.lower(lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList, 1, lang)
-- get label (visible part of the link)
if not label then
for _, language in ipairs(langList) do -- loop over language fallback list looking for label in the specific language
if entity then
label = entity:getLabel(language)
else
label = mw.wikibase.getLabelByLang(item, language)
end
if label then break end -- label found and we are done
end
end
if label then -- wikitext-escape the label if we have one
label = mw.text.nowiki(label)
end
if not label then -- no labels found, so just show the q-id
label = item
elseif show_id then -- add id
show_id = yesno(show_id,false)
if show_id then
local wordsep = getMessage('Word-separator', lang, ' ')
local id = mw.message.new('parentheses', item):inLanguage(lang):plain()
id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set
label = label .. wordsep .. "<small>" .. id .. "</small>"
end
end
label = apply_capitalization(label, capitalization, lang)
-- look for description
if entity and entity.descriptions and lang then
for _, language in ipairs(langList) do
if entity.descriptions[language] then
desc = entity.descriptions[language].value
break
end
end
else
desc = mw.wikibase.getDescription(item)
end
if desc and link_type ~= '-' then -- wikitext-escape the description if we have one
desc = mw.text.nowiki(desc) -- add description as hover text
label = '<span title="' .. desc .. '">' .. label .. '</span>'
end
-- return the results
if link_type == '-' then
return label -- return just the label
else
link = getLink(link_type, item, entity, langList)
return '[[' .. link .. '|' .. label .. ']]' -- return link
end
end
--[[-------------------------------------------------------------------------------
_sitelinks
This function returns a table of sitelinks for a single project organized by language
Inputs:
1: item - wikidata's item's q-id or entity class
2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews",
"wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc.
Output:
Table of sitelinks with language fields
Output:
Table of sitelinks with language fields
See also
* [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis.
* [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps).
]]
function p._sitelinks(item, project)
local entity, sitelink
-- get entity
if type(item) == 'string' then -- "item" is a q-id
entity = mw.wikibase.getEntity(item)
else
entity = item -- "item" is the entity
end
-- convert from english project name to proproject code
local projLUT = {
wikipedia = 'wiki', commons = 'commonswiki',
foundation = 'foundationwiki', mediawiki = 'mediawikiwiki',
wikispecies = 'specieswiki', wikidata = 'wikidatawiki',
incubator = 'incubatorwiki', oldwikisource = 'sourceswiki',
}
local langLUT = {
-- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode:
foundation = '~', commons = '~', -- they will be skipped
incubator = '~', meta = '~',
mediawiki = '~', sources = '~',
species = '~', beta = '~',
-- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes:
-- See https://meta.wikimedia.org/wiki/Special_language_codes for details
als = 'gsw', bat_smg = 'sgs',
fiu_vro = 'vro', be_x_old = 'be-tarask',
roa_rup = 'rup', zh_classical = 'lzh',
zh_yue = 'yue', zh_min_nan = 'nan',
zh_wuu = 'wuu', no = 'nb',
}
project = project:lower()
project = projLUT[project] or project -- correct the project name
local n = project:len()
local linkTable = {}
if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks
for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks
local site = sitelink.site
local m = site:len() - n
local proj = site:sub(m +1) -- project part of the siteID
if proj == project then -- proj matches desired "project"
local lang = site:sub(1, m) -- language part of the siteID
lang = langLUT[lang] or lang:gsub('_','-')
if lang ~= '~' then -- proj matches desired "project"
linkTable[lang] = sitelink.title
end
end
end
end
return linkTable
end
--[[----------------------------------------------------------------
_aliases
This function returns a table of aliases for a single language
Inputs:
1: item - wikidata's item's q-id or entity class
2: lang - language code, like 'en' or 'de'
Output:
Table of aliases with language fields
]]
function p._aliases(item, lang)
local entity
if type(item) == 'string' then -- "item" is a q-id
entity = mw.wikibase.getEntity(item)
else
entity = item -- "item" is the entity
end
local aliasTable = {}
if entity and entity.aliases then -- See if there is an entity and that is has aliases
if entity.aliases[lang] then -- See if it has English Aliases
for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases
table.insert(aliasTable, alias.value) -- Create a table of English aliases
end
end
end
return aliasTable
end
--======================================================================
--=== Invoke functions for use from wikitext, e.g., templates ==========
---=====================================================================
--[[
getLabel
This function returns a label translated to desired language, created based on wikidata
Usage:
{{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}}
Parameters
1: wikidata's item's q-id (required)
2: language (optional; default {{int:lang}})
3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link)
4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst"
Error Handling:
Bad q-id will result in displayed error
]]
function p.getLabel(frame)
local args = getArgs(frame)
return p._getLabel(args.item, args.lang, args.link, args.capitalization, args.show_id)
end
--[[-------------------------------------------------------------------------------
sitelinks
This function returns a comma separated list of sitelinks for a single project organized by language
Its main purpose is to help with testing of _sitelinks function.
Usage:
{{#invoke:Wikidata label|sitelinks|item=Q...|project=..}}
Inputs:
1: item - wikidata's item's q-id or entity class
2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks",
"wikinews", "wikiversity", "wikivoyage", "wiktionary", etc.
Output:
comma separated list
]]
function p.sitelinks(frame)
local args = getArgs(frame)
local sitelinks = p._sitelinks(args.item, args.project)
local sitelinkList = {}
for lang, sitelink in pairs(sitelinks) do
table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink))
end
return table.concat(sitelinkList, ', ')
end
--[[----------------------------------------------------------------------------
aliases
This function returns a comma separated list of aliases for a single language
Its main purpose is to help with testing of _aliases function.
Usage:
{{#invoke:Wikidata label|aliases|item=Q...|lang=..}}
Inputs:
1: item - wikidata's item's q-id or entity class
2: lang - language code, like 'en' or 'de'
Output:
Comma separated list of aliases
]]
function p.aliases(frame)
local args = getArgs(frame)
return table.concat(p._aliases(args.item, args.lang), ', ')
end
return p
tubg9bh0033761yy22p4vw8xjare3q3
276317
276316
2024-11-11T08:44:33Z
~aanzx
6806
೧ revision imported from [[:en:Module:Wikidata_label]]
252661
Scribunto
text/plain
--[[
__ __ _ _ __ ___ _ _ _ _ _ _ _
| \/ | ___ __| |_ _| | ___ \ \ / (_) | _(_) __| | __ _| |_ __ _ | | __ _| |__ ___| |
| |\/| |/ _ \ / _` | | | | |/ _ (_) \ /\ / /| | |/ / |/ _` |/ _` | __/ _` | | |/ _` | '_ \ / _ \ |
| | | | (_) | (_| | |_| | | __/_ \ V V / | | <| | (_| | (_| | || (_| | | | (_| | |_) | __/ |
|_| |_|\___/ \__,_|\__,_|_|\___(_) \_/\_/ |_|_|\_\_|\__,_|\__,_|\__\__,_| |_|\__,_|_.__/ \___|_|
This module is intended to be the engine behind "Template:Label".
This module was copied from Commons please ask for changes there.
Please do not modify this code without applying the changes first at "Module:Wikidata label/sandbox" and testing
at "Module:Wikidata label/testcases".
Authors and maintainers:
* User:Jarekt - original version
]]
require('strict') -- used for debugging purposes as it detects cases of unintended global variables
--=============================================
--=== Internal functions ======================
--=============================================
---------------------------------------------------------------------------
-- Normalize input arguments by converting them all to lower case and
-- replacing space with "_" in the argument name. Also empty strings are
-- converted to nils. Arguments are collected from arguments passed to the
-- module and if missing from the template that calls the module
local function getArgs(frame)
local function normalize_input_args(input_args, output_args)
for name, value in pairs( input_args ) do
value = mw.text.trim(value) -- trim whitespaces from the beggining and the end of the string
if value ~= '' then -- nuke empty strings
if type(name)=='string' then
name = string.gsub( string.lower(name), ' ', '_')
end
output_args[name] = value
end
end
return output_args
end
local args = {}
args = normalize_input_args(frame:getParent().args, args)
args = normalize_input_args(frame.args, args)
return args
end
---------------------------------------------------------------------------
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to Module:Yesno but does not assume val is a string
local function yesno(val, default)
if type(val) == 'boolean' then
return val
elseif type(val) == 'number' then
if val == 1 then
return true
elseif val == 0 then
return false
end
elseif type(val) == 'string' then
val = mw.ustring.lower(val) -- put in lower case
if val == 'no' or val == 'n' or val == 'false' or val == '0' then
return false
elseif val == 'yes' or val == 'y' or val == 'true' or val == '1' then
return true
end
end
return default
end
-------------------------------------------------------------------------
-- get message in a given language
-- INPUTS:
-- * msg - name of a message. For it to work [[MediaWiki:msg]] page need to be set up
-- * lang - translate message to language "lang"
-- * default - string to return in case this module is moved to a project where this message is not set
-- OUTPUT:
-- * translated message
local function getMessage(msg, lang, default)
msg = mw.message.new(msg):inLanguage(lang):plain()
return (msg == nil and default) or msg
end
---------------------------------------------------------------------------
-- use different sitelink call depending if you already have an entity or not
-- INPUTS:
-- * item and entity - entity id and entity: if full entity already uploded than use that
-- otherwise use entity id to look up sitelink
-- * lang - language of the project
-- OUTPUT:
-- * sitelink
local function getSitelink(item, entity, lang)
if entity and entity.getSitelink then -- if we have entity then use it
return entity:getSitelink(lang .. 'wiki')
else -- if no entity then use different function
return mw.wikibase.getSitelink(item, lang .. 'wiki')
end
end
---------------------------------------------------------------------------
-- use different sitelink call depending if you already have an entity or not
-- INPUTS:
-- * item and entity - entity id and entity: if full entity already uploded than use that
-- otherwise use entity id to look up sitelink
-- * prop - property for which to return the best statment
-- OUTPUT:
-- * value of the best statment (only from the first one)
local function getBestStatementsValue(item, entity, prop)
local statments
if entity then
statments = entity:getBestStatements(prop)
else
statments = mw.wikibase.getBestStatements(item, prop)
end
for _, statment in ipairs(statments) do
if statment and statment.mainsnak.datavalue.value then
return statment.mainsnak.datavalue.value
end
end
end
---------------------------------------------------------------------------
-- change capitalization of the label
-- INPUTS:
-- * label - label string
-- * capitalization - capitalization to be applied: allowed values are "tc", "lc",
-- "uc", "lcfirst", and "ucfirst". Any other value will return original string
-- * lang - language of the label
-- OUTPUT:
-- * value of the best statment (only from the first one)
local function apply_capitalization(label, capitalization, lang)
capitalization = string.lower(capitalization or 'none')
if capitalization == 'none' then
return label
elseif capitalization == 'uc' then
return mw.language.new(lang):uc(label)
elseif capitalization == 'lc' then
return mw.language.new(lang):lc(label)
elseif capitalization == 'tc' then -- title case
local new_label = {}
for _, word in ipairs(mw.text.split(label, ' ')) do
table.insert(new_label, mw.language.new(lang):ucfirst(word))
end
return table.concat(new_label, ' ')
elseif capitalization == 'ucfirst' then
return mw.language.new(lang):ucfirst(label)
elseif capitalization == 'lcfirst' then
return mw.language.new(lang):lcfirst(label)
end
return label
end
--[[-------------------------------------------------------------------------
get link based on user preference
INPUTS:
* link_type - can be :
* "wikidata" - link to wikidata
* "wikipedia" - link to wikipedia (language dependent)
* "wikidata talk" - link to wikidata talk page
* "commons" - link to commons (try sitelink then commons category then commons gallery)
* "commonscat" - link to commons (try commons category then commons gallery)
* "-" - means no link
* item - entity ID (always provided)
* entity - whole entity. It can be nil if whole entity is not loaded
* langList - language fallback list for preferred language (required)
OUTPUT:
* link - link to the wikimedia page
]]
local function getLink(link_type, item, entity, langList)
local link, eLink
link_type = mw.ustring.lower(link_type or '')
local item_type = mw.ustring.sub(item, 1, 1) -- first letter prefix of item entity ID: 'Q', 'P' or 'M'
if item_type == 'M' then
eLink='c:Special:EntityPage/'..item
elseif item_type == 'Q' then
eLink='d:'..item -- wikibase entity page link
elseif item_type == 'P' then
eLink='d:Property:'..item -- wikibase entity page link
else
eLink='d:Special:EntityPage/'..item
end
if link_type == '-' then -- allow different link formats
link = '' -- no link
elseif link_type == 'wikidata' or item_type == 'M' then
link = eLink -- link to wikibase entity page
elseif link_type == 'wikidata talk' and item_type == 'P' then
link = 'd:Property talk:'.. item -- link to wikidata property talk page
elseif link_type == 'wikidata talk' then
link = 'd:Talk:'..item -- link to wikidata talk page
elseif link_type == 'commons' or link_type == 'commonscat' then
--[[
When link_type == 'commons' we try the following links (in specified order):
1) commons sitelink
2) P373 "Commons Category" claims
3) P935 "Commons Gallery" claims
Since most items have a commons sitelink we never have to look for claims
When link_type == 'commonscat' we try to maximize chances of commons link being a category, so we
try the following links (in specified order):
1) commons sitelink, which is kept if it points to a category
2) P373 "Commons Category" claims
3) commons sitelink (which does not point to a category)
4) P935 "Commons Gallery" claims
Since most pages have a commons sitelink we never have to look for claims
]]
local sLink = getSitelink(item, entity, 'commons') -- look for sitelink to commons
if sLink then
sLink = 'c:'..sLink
if (link_type == 'commons') or (link_type == 'commonscat' and mw.ustring.find(sLink, 'Category:')) then
link = sLink
end
end
if not link then -- try linking to P373 "Commons Category"
local cat = getBestStatementsValue(item, entity, 'P373')
link = (cat ~= nil and 'c:Category:' .. cat) or nil
end
link = link or sLink
if not link then -- try linking to P935 "Commons Gallery"
link = getBestStatementsValue(item, entity, 'P935')
end
end
if not link then -- apply default "Wikipedia" link type
for _, language in ipairs(langList) do
local sitelink = getSitelink(item, entity, language)
if sitelink then
link = 'w:'.. language ..':'.. sitelink
break
end
end
end
return link or eLink -- no wiki sitelink, so link to wikidata
end
--=============================================
--=== External functions ======================
--=============================================
local p = {}
--======================================================================
--=== API functions for use from other Scribunto modules ===============
--======================================================================
--[[
_getLabel
This function returns a label translated to desired language, created based on wikidata
Inputs:
1: item - wikidata's item's q-id or entity class
2: lang - desired language of the label
3: link_type - link style. Possible values (case-insensitive): "wikipedia", "wikidata", "Commons", or "-" (no link)
4: capitalization - can be "uc" (upper case), "lc" (lower case), "ucfirst" (upper case for the first letter),
"lcfirst" (lower case for the first letter), or 'none' (default)
Error Handling:
Bad q-id will result in displayed error
]]
function p._getLabel(item, lang, link_type, capitalization, show_id)
local entity, s, link, label, language, desc
-- clean up the input parameters
if type(item) ~= 'string' then -- "item" is not a q-id
entity = item -- "item" must be the entity
item = entity.id -- look-up q-id
elseif tonumber(item) then -- if it is just the number then add "Q" in front
item = 'Q'..item
end
item = mw.ustring.gsub(mw.ustring.upper(item), 'PROPERTY:P', 'P') -- make all the properties the same and capitalize
if not lang then
label, lang = mw.wikibase.getLabelWithLang(item)
end
if not lang then -- if still no language
lang = mw.getCurrentFrame():callParserFunction("int","lang") -- get user's chosen language
label = nil
end
-- build language fallback list
lang = mw.ustring.lower(lang)
local langList = mw.language.getFallbacksFor(lang)
table.insert(langList, 1, lang)
-- get label (visible part of the link)
if not label then
for _, language in ipairs(langList) do -- loop over language fallback list looking for label in the specific language
if entity then
label = entity:getLabel(language)
else
label = mw.wikibase.getLabelByLang(item, language)
end
if label then break end -- label found and we are done
end
end
if label then -- wikitext-escape the label if we have one
label = mw.text.nowiki(label)
end
if not label then -- no labels found, so just show the q-id
label = item
elseif show_id then -- add id
show_id = yesno(show_id,false)
if show_id then
local wordsep = getMessage('Word-separator', lang, ' ')
local id = mw.message.new('parentheses', item):inLanguage(lang):plain()
id = (id~=nil and id) or ('('..item..')') -- in case this module is moved to a project where {{int:parenthesis}} is not set
label = label .. wordsep .. "<small>" .. id .. "</small>"
end
end
label = apply_capitalization(label, capitalization, lang)
-- look for description
if entity and entity.descriptions and lang then
for _, language in ipairs(langList) do
if entity.descriptions[language] then
desc = entity.descriptions[language].value
break
end
end
else
desc = mw.wikibase.getDescription(item)
end
if desc and link_type ~= '-' then -- wikitext-escape the description if we have one
desc = mw.text.nowiki(desc) -- add description as hover text
label = '<span title="' .. desc .. '">' .. label .. '</span>'
end
-- return the results
if link_type == '-' then
return label -- return just the label
else
link = getLink(link_type, item, entity, langList)
return '[[' .. link .. '|' .. label .. ']]' -- return link
end
end
--[[-------------------------------------------------------------------------------
_sitelinks
This function returns a table of sitelinks for a single project organized by language
Inputs:
1: item - wikidata's item's q-id or entity class
2: project - (case-insensitive) one of: "wikipedia", "wikisource", "wikiquote", "wikibooks", "wikinews",
"wikiversity", "wikivoyage", "wiktionary", "commons", "mediawiki", "wikispecies", "wikidata", etc.
Output:
Table of sitelinks with language fields
Output:
Table of sitelinks with language fields
See also
* [https://foundation.wikimedia.org/wiki/Special:SiteMatrix] for the full list of supported interwikis.
* [https://dumps.wikimedia.org/backup-index.html] for the full list of sitecodes (used in database dumps).
]]
function p._sitelinks(item, project)
local entity, sitelink
-- get entity
if type(item) == 'string' then -- "item" is a q-id
entity = mw.wikibase.getEntity(item)
else
entity = item -- "item" is the entity
end
-- convert from english project name to proproject code
local projLUT = {
wikipedia = 'wiki', commons = 'commonswiki',
foundation = 'foundationwiki', mediawiki = 'mediawikiwiki',
wikispecies = 'specieswiki', wikidata = 'wikidatawiki',
incubator = 'incubatorwiki', oldwikisource = 'sourceswiki',
}
local langLUT = {
-- These are not language codes before the 'wiki' or 'wikiversity' suffix in a sitecode:
foundation = '~', commons = '~', -- they will be skipped
incubator = '~', meta = '~',
mediawiki = '~', sources = '~',
species = '~', beta = '~',
-- Legacy language codes used in sitecodes, remapped to standard Wikimedia language codes:
-- See https://meta.wikimedia.org/wiki/Special_language_codes for details
als = 'gsw', bat_smg = 'sgs',
fiu_vro = 'vro', be_x_old = 'be-tarask',
roa_rup = 'rup', zh_classical = 'lzh',
zh_yue = 'yue', zh_min_nan = 'nan',
zh_wuu = 'wuu', no = 'nb',
}
project = project:lower()
project = projLUT[project] or project -- correct the project name
local n = project:len()
local linkTable = {}
if entity and entity.sitelinks then -- See if entity exists, and that it has sitelinks
for _, sitelink in pairs(entity.sitelinks) do -- loop over all sitelinks
local site = sitelink.site
local m = site:len() - n
local proj = site:sub(m +1) -- project part of the siteID
if proj == project then -- proj matches desired "project"
local lang = site:sub(1, m) -- language part of the siteID
lang = langLUT[lang] or lang:gsub('_','-')
if lang ~= '~' then -- proj matches desired "project"
linkTable[lang] = sitelink.title
end
end
end
end
return linkTable
end
--[[----------------------------------------------------------------
_aliases
This function returns a table of aliases for a single language
Inputs:
1: item - wikidata's item's q-id or entity class
2: lang - language code, like 'en' or 'de'
Output:
Table of aliases with language fields
]]
function p._aliases(item, lang)
local entity
if type(item) == 'string' then -- "item" is a q-id
entity = mw.wikibase.getEntity(item)
else
entity = item -- "item" is the entity
end
local aliasTable = {}
if entity and entity.aliases then -- See if there is an entity and that is has aliases
if entity.aliases[lang] then -- See if it has English Aliases
for _, alias in pairs(entity.aliases[lang]) do -- Make a loop around the English aliases
table.insert(aliasTable, alias.value) -- Create a table of English aliases
end
end
end
return aliasTable
end
--======================================================================
--=== Invoke functions for use from wikitext, e.g., templates ==========
---=====================================================================
--[[
getLabel
This function returns a label translated to desired language, created based on wikidata
Usage:
{{#invoke:Wikidata label|getLabel|item=Q...|lang=..|link_style=..|capitalization=..}}
Parameters
1: wikidata's item's q-id (required)
2: language (optional; default {{int:lang}})
3: link_style: "wikipedia" (default), "Wikidata", "Commons", or "-" (no link)
4: capitalization - can be "uc", "lc", "tc", "ucfirst", "lcfirst"
Error Handling:
Bad q-id will result in displayed error
]]
function p.getLabel(frame)
local args = getArgs(frame)
return p._getLabel(args.item, args.lang, args.link, args.capitalization, args.show_id)
end
--[[-------------------------------------------------------------------------------
sitelinks
This function returns a comma separated list of sitelinks for a single project organized by language
Its main purpose is to help with testing of _sitelinks function.
Usage:
{{#invoke:Wikidata label|sitelinks|item=Q...|project=..}}
Inputs:
1: item - wikidata's item's q-id or entity class
2: project - "wikipedia" (or "wiki"), "wikisource", "wikiquote", "wikibooks",
"wikinews", "wikiversity", "wikivoyage", "wiktionary", etc.
Output:
comma separated list
]]
function p.sitelinks(frame)
local args = getArgs(frame)
local sitelinks = p._sitelinks(args.item, args.project)
local sitelinkList = {}
for lang, sitelink in pairs(sitelinks) do
table.insert(sitelinkList, (lang=='' and sitelink) or (lang .. ':' .. sitelink))
end
return table.concat(sitelinkList, ', ')
end
--[[----------------------------------------------------------------------------
aliases
This function returns a comma separated list of aliases for a single language
Its main purpose is to help with testing of _aliases function.
Usage:
{{#invoke:Wikidata label|aliases|item=Q...|lang=..}}
Inputs:
1: item - wikidata's item's q-id or entity class
2: lang - language code, like 'en' or 'de'
Output:
Comma separated list of aliases
]]
function p.aliases(frame)
local args = getArgs(frame)
return table.concat(p._aliases(args.item, args.lang), ', ')
end
return p
tubg9bh0033761yy22p4vw8xjare3q3
ಮಾಡ್ಯೂಲ್:Makeid
828
98853
276330
275664
2024-10-19T01:12:50Z
CalendulaAsteraceae
6870
move up check for blank ID
276330
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p._makeid(args)
local id_text = args[1]
if not id_text or id_text == '' then
return ''
end
local blank_values = {}
for k, v in pairs(args) do
if string.match(k, '^blank%d*$') then
blank_values[v] = true
end
end
if blank_values[id_text] then
return ''
else
return 'id=\"' .. mw.uri.anchorEncode(id_text) .. '\"'
end
end
function p.makeid(frame)
return p._makeid(getArgs(frame))
end
return p
hrgorewi10670e3soofoqxl17a7owpi
276331
276330
2024-11-11T08:44:34Z
~aanzx
6806
೧ revision imported from [[:en:Module:Makeid]]
276330
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
function p._makeid(args)
local id_text = args[1]
if not id_text or id_text == '' then
return ''
end
local blank_values = {}
for k, v in pairs(args) do
if string.match(k, '^blank%d*$') then
blank_values[v] = true
end
end
if blank_values[id_text] then
return ''
else
return 'id=\"' .. mw.uri.anchorEncode(id_text) .. '\"'
end
end
function p.makeid(frame)
return p._makeid(getArgs(frame))
end
return p
hrgorewi10670e3soofoqxl17a7owpi
ಮಾಡ್ಯೂಲ್:Header/year
828
98888
276320
275780
2024-10-30T07:03:08Z
CalendulaAsteraceae
6870
adjust how year span is formatted
276320
Scribunto
text/plain
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Construct the year span
--]=]
local function formatYear(year, precision)
if precision == 7 then
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
default = 'th'
}
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' century'
elseif precision == 8 then
return year .. 's'
else
return year
end
end
local function getYearFromSingleStatement(statement, args)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] then
return nil
end
local cats = {} -- tracking categories
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local precision = math.min(snak.datavalue.value.precision, 9)
local year
local bce = ''
local circa = ''
local start_times = {}
local end_times = {}
local start_years = {}
local end_years = {}
local start_year
local end_year
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in pairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
precision = precision - 1
circa = 'c. '
break
end
end
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
local startt = getYearFromSingleStatement({mainsnak = v}, {noprint = false})
if startt then
table.insert(start_times, startt)
end
end
for k, v in pairs(start_times) do
table.insert(start_years, v.year)
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years)
if #start_years > 1 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
start_year = start_years[1]
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
local endt = getYearFromSingleStatement({mainsnak = v}, {noprint = false})
if endt then
table.insert(end_times, endt)
end
end
for k, v in pairs(end_times) do
table.insert(end_years, v.year)
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years)
if #end_years > 1 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
end_year = end_years[1]
end
end
-- precision is less than a year
if precision < 9 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
-- precision is less than a century
if precision < 7 then
if args['noprint'] then
year = ''
else
year = string.gsub(string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>', ''), '</span>$', '')
end
return {year = year, printed_year = year, cats = table.concat(cats)}
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = ' BCE'
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
return {cats = table.concat(cats)}
end
-- approximate year, precision 8: year - year % 10 for decade
-- approximate decade, precision 7: year - year % 100 for century
if circa ~= '' then
year = year - (year % math.pow(10, 9 - precision))
end
year = formatYear(year, precision)
if start_year and start_year ~= year then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
local printed_year = circa .. year .. bce
if (start_year or end_year) and start_year ~= end_year then
printed_year = circa .. (start_year or '') .. '–' .. (end_year or '') .. bce
end
if start_year and end_year and start_year ~= end_year then
local start_decade = start_year - start_year % 10
local end_decade = end_year - end_year % 10
local start_century = start_year - start_year % 100
local end_century = end_year - end_year % 100
if start_decade == end_decade then
table.insert(cats, '[[Category:' .. start_decade .. 's' .. bce .. ' works' .. ']]')
elseif start_century == end_century then
table.insert(cats, '[[Category:' .. formatYear(end_year, 7) .. bce .. ' works' .. ']]')
end
else
table.insert(cats, '[[Category:' .. year .. bce .. ' works' .. ']]')
end
cats = TableTools.compressSparseArray(TableTools.removeDuplicates(cats))
return {year = year, printed_year = printed_year, circa = circa, bce = bce, cats = table.concat(cats)}
end
local function parse_wikidata_year_and_categorise(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
local cats = {}
for _, statement in pairs(statements) do
local year_data = getYearFromSingleStatement(statement, args)
if year_data then
table.insert(years, year_data.printed_year)
table.insert(cats, year_data.cats)
end
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
cats = TableTools.compressSparseArray(TableTools.removeDuplicates(cats))
if #years == 0 then
return nil
elseif #years > 1 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
return {year = table.concat(years, '/'), cats = table.concat(cats)}
end
local function parse_year_and_categorise(args)
if args['noprint'] and args['nocat'] then
return nil
end
local year = args['year']
-- Use Wikidata if year param is empty
if not year then
return parse_wikidata_year_and_categorise(args)
end
local cats = {}
local bce = ''
local circa = ''
-- Extract common era info to make it easier to process
if string.match(year, "BC[E]?$") then
bce = ' BCE'
year = string.gsub(year, '%s*BC[E]?', '')
-- Also tag it as a non-numeric year
table.insert(cats, '[[Category:' .. 'Works with non-numeric dates' .. ']]')
end
-- If the year provided is a plain year (all digits)
if tonumber(year) then
table.insert(cats, '[[Category:' .. year .. bce .. ' works]]')
return {year = year .. bce, cats = table.concat(cats)}
end
-- Add tracking category for all non-numeric dates
table.insert(cats, '[[Category:' .. 'Works with non-numeric dates' .. ']]')
-- Explicitly tagged as being of unknown date
if year == '?' or string.lower(year) == 'unknown' then
table.insert(cats, '[[Category:' .. 'Works of unknown date' .. ']]')
return {year = 'unknown', cats = table.concat(cats)}
end
-- Now figure out a complex date
-- Year ranges
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
-- Approximate years
-- Lua patterns can't do ^c(irca)?( |%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%s*%.') or string.match(year, '^c%s*/') then
circa = 'c. '
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%s*%.%s*', ''), '^c%s*/%s*', '')
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
-- circa a specific year
if tonumber(year) then
year = tonumber(year)
local decade = (year - year % 10) .. 's'
table.insert(cats, '[[Category:' .. decade .. bce .. ' works]]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
end
-- Check if it looks like a decade
if string.match(year, '^%d*0s$') then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
table.insert(cats, '[[Category:' .. year .. bce .. ' works]]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
-- Or a century
if string.match(year, '^%d+[a-z]* century$') then
year = string.gsub(year, '^(%d+)[a-z]* century$', '%1')
year = formatYear(100 * (tonumber(year) - 1), 7)
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
table.insert(cats, '[[Category:' .. year .. bce .. ' works]]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
-- Or a range of years
local start_year, end_year
if string.match(year, '^%d*–%d*$') then
start_year, end_year = string.match(year, '^(%d*)–(%d*)$')
elseif string.match(year, '^%d*/%d*$') then
start_year, end_year = string.match(year, '^(%d*)/(%d*)$')
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
if start_year or end_year then
start_year = tonumber(start_year)
end_year = tonumber(end_year)
if start_year and end_year and start_year == end_year and circa == '' then
table.insert(cats, '[[Category:' .. start_year .. bce .. ' works' .. ']]')
return {year = circa .. start_year .. bce, cats = table.concat(cats)}
elseif start_year and end_year then
local start_decade = start_year - start_year % 10
local end_decade = end_year - end_year % 10
local start_century = start_year - start_year % 100
local end_century = end_year - end_year % 100
if start_decade == end_decade then
table.insert(cats, '[[Category:' .. start_decade .. 's' .. bce .. ' works' .. ']]')
elseif start_century == end_century then
table.insert(cats, '[[Category:' .. formatYear(end_year, 7) .. bce .. ' works' .. ']]')
end
elseif end_year then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
-- check isn't redundant since the year might just be –
if start_year or end_year then
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
end
-- If we're here we didn't manage to parse it.
table.insert(cats, '[[Category:' .. 'Works with unrecognised dates' .. ']]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
function p.construct_year(args)
local year = mw.html.create('span'):attr('id', 'header-year-text')
local current_title = mw.title.getCurrentTitle()
local year_args = {
['year'] = args['year'],
noprint = yesno(args['noyear']) or false,
wikidata = args.wikidata
}
year_args['nocat'] = yesno(args['noyearcat'])
if year_args['nocat'] == nil then
year_args['nocat'] = (
not args.testing -- Testing pages always categorise
) and (
yesno(args['disambiguation']) -- Disambiguations never categorise
or not current_title:inNamespaces(0, 114) -- Only categorise in mainspace and Translation
or current_title.isSubpage -- Only categorise if this is a base page
)
end
local year_data = parse_year_and_categorise(year_args)
if year_data then
local cats = (not year_args['nocat'] and year_data.cats) or ''
if year_args['noprint'] or not year_data.year then
return cats
else
year:wikitext(year_data.year)
return ' (' .. tostring(year) .. ')' .. cats
end
else
return (year_args['nocat'] and '') or '[[Category:' .. 'Undated works' .. ']]'
end
end
return p
449ubkw330zwpe43l5phw105q9qoj8w
276321
276320
2024-11-11T08:44:33Z
~aanzx
6806
೧ revision imported from [[:en:Module:Header/year]]
276320
Scribunto
text/plain
require('strict')
local p = {} --p stands for package
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
--[=[
Construct the year span
--]=]
local function formatYear(year, precision)
if precision == 7 then
local suffixes = {
[1] = 'st',
[2] = 'nd',
[3] = 'rd',
default = 'th'
}
local century = (year - year % 100)/100 + 1
return century .. (suffixes[century] or suffixes['default']) .. ' century'
elseif precision == 8 then
return year .. 's'
else
return year
end
end
local function getYearFromSingleStatement(statement, args)
local snak = statement.mainsnak
if not snak or not snak.datavalue or not snak.datavalue.value or not snak['datavalue']['value']['time'] then
return nil
end
local cats = {} -- tracking categories
--[=[ Precision:
0 - billion years
1 - hundred million years,
2 - ten million years,
3 - million years,
4 - hundred thousand years,
5 - ten thousand years,
6 - millenia,
7 - centuries,
8 - decades,
9 - years,
10 - months,
11 - days
12 - hours
13 - minutes
14 - seconds
]=]
local precision = math.min(snak.datavalue.value.precision, 9)
local year
local bce = ''
local circa = ''
local start_times = {}
local end_times = {}
local start_years = {}
local end_years = {}
local start_year
local end_year
if statement.qualifiers then
-- Check if date is approximate
-- P1480 = sourcing circumstances, Q5727902 = circa
if statement.qualifiers.P1480 then
for _, qualifier in pairs(statement.qualifiers.P1480) do
if qualifier.datavalue and qualifier.datavalue.value.id == 'Q5727902' then
precision = precision - 1
circa = 'c. '
break
end
end
end
-- P580 = start time
if statement.qualifiers.P580 then
for k, v in pairs(statement.qualifiers.P580) do
local startt = getYearFromSingleStatement({mainsnak = v}, {noprint = false})
if startt then
table.insert(start_times, startt)
end
end
for k, v in pairs(start_times) do
table.insert(start_years, v.year)
end
start_years = TableTools.compressSparseArray(TableTools.removeDuplicates(start_years))
table.sort(start_years)
if #start_years > 1 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
start_year = start_years[1]
end
-- P582 = end time
if statement.qualifiers.P582 then
for k, v in pairs(statement.qualifiers.P582) do
local endt = getYearFromSingleStatement({mainsnak = v}, {noprint = false})
if endt then
table.insert(end_times, endt)
end
end
for k, v in pairs(end_times) do
table.insert(end_years, v.year)
end
end_years = TableTools.compressSparseArray(TableTools.removeDuplicates(end_years))
table.sort(end_years)
if #end_years > 1 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
end_year = end_years[1]
end
end
-- precision is less than a year
if precision < 9 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
-- precision is less than a century
if precision < 7 then
if args['noprint'] then
year = ''
else
year = string.gsub(string.gsub(mw.wikibase.formatValue(statement.mainsnak), '^<span>', ''), '</span>$', '')
end
return {year = year, printed_year = year, cats = table.concat(cats)}
end
-- extract the year from the timestamp
-- example timestamps: +2016-10-05T00:00:00Z, -1752-00-00T00:00:00Z
local split = mw.text.split(snak['datavalue']['value']['time'], '-', true)
if split[1] == '' then
year = tonumber(split[2])
bce = ' BCE'
else
year = tonumber(split[1])
end
-- malformed timestamp
if not year then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
return {cats = table.concat(cats)}
end
-- approximate year, precision 8: year - year % 10 for decade
-- approximate decade, precision 7: year - year % 100 for century
if circa ~= '' then
year = year - (year % math.pow(10, 9 - precision))
end
year = formatYear(year, precision)
if start_year and start_year ~= year then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
local printed_year = circa .. year .. bce
if (start_year or end_year) and start_year ~= end_year then
printed_year = circa .. (start_year or '') .. '–' .. (end_year or '') .. bce
end
if start_year and end_year and start_year ~= end_year then
local start_decade = start_year - start_year % 10
local end_decade = end_year - end_year % 10
local start_century = start_year - start_year % 100
local end_century = end_year - end_year % 100
if start_decade == end_decade then
table.insert(cats, '[[Category:' .. start_decade .. 's' .. bce .. ' works' .. ']]')
elseif start_century == end_century then
table.insert(cats, '[[Category:' .. formatYear(end_year, 7) .. bce .. ' works' .. ']]')
end
else
table.insert(cats, '[[Category:' .. year .. bce .. ' works' .. ']]')
end
cats = TableTools.compressSparseArray(TableTools.removeDuplicates(cats))
return {year = year, printed_year = printed_year, circa = circa, bce = bce, cats = table.concat(cats)}
end
local function parse_wikidata_year_and_categorise(args)
-- Fetch entity object for Wikidata item connected to the current page
-- Let manually-specified Wikidata ID override if given and valid
if not (args.wikidata and mw.wikibase.isValidEntityId(args.wikidata)) then
args.wikidata = mw.wikibase.getEntityIdForCurrentPage()
end
if not args.wikidata then
return nil
end
local item = mw.wikibase.getEntity(args.wikidata)
if not item then
return nil
end
local statements = item:getBestStatements('P577') -- publication date
if #statements == 0 then
return nil
end
local years = {}
local cats = {}
for _, statement in pairs(statements) do
local year_data = getYearFromSingleStatement(statement, args)
if year_data then
table.insert(years, year_data.printed_year)
table.insert(cats, year_data.cats)
end
end
years = TableTools.compressSparseArray(TableTools.removeDuplicates(years))
cats = TableTools.compressSparseArray(TableTools.removeDuplicates(cats))
if #years == 0 then
return nil
elseif #years > 1 then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
return {year = table.concat(years, '/'), cats = table.concat(cats)}
end
local function parse_year_and_categorise(args)
if args['noprint'] and args['nocat'] then
return nil
end
local year = args['year']
-- Use Wikidata if year param is empty
if not year then
return parse_wikidata_year_and_categorise(args)
end
local cats = {}
local bce = ''
local circa = ''
-- Extract common era info to make it easier to process
if string.match(year, "BC[E]?$") then
bce = ' BCE'
year = string.gsub(year, '%s*BC[E]?', '')
-- Also tag it as a non-numeric year
table.insert(cats, '[[Category:' .. 'Works with non-numeric dates' .. ']]')
end
-- If the year provided is a plain year (all digits)
if tonumber(year) then
table.insert(cats, '[[Category:' .. year .. bce .. ' works]]')
return {year = year .. bce, cats = table.concat(cats)}
end
-- Add tracking category for all non-numeric dates
table.insert(cats, '[[Category:' .. 'Works with non-numeric dates' .. ']]')
-- Explicitly tagged as being of unknown date
if year == '?' or string.lower(year) == 'unknown' then
table.insert(cats, '[[Category:' .. 'Works of unknown date' .. ']]')
return {year = 'unknown', cats = table.concat(cats)}
end
-- Now figure out a complex date
-- Year ranges
year = string.gsub(string.gsub(year, '%-', '–'), '—', '–')
-- Approximate years
-- Lua patterns can't do ^c(irca)?( |%.|/)* because they don't do alternation or apply quantifiers to groups
if string.match(year, '^circa') or string.match(year, '^c%s*%.') or string.match(year, '^c%s*/') then
circa = 'c. '
year = string.gsub(string.gsub(string.gsub(year, '^circa%s*', ''), '^c%s*%.%s*', ''), '^c%s*/%s*', '')
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
-- circa a specific year
if tonumber(year) then
year = tonumber(year)
local decade = (year - year % 10) .. 's'
table.insert(cats, '[[Category:' .. decade .. bce .. ' works]]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
end
-- Check if it looks like a decade
if string.match(year, '^%d*0s$') then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
table.insert(cats, '[[Category:' .. year .. bce .. ' works]]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
-- Or a century
if string.match(year, '^%d+[a-z]* century$') then
year = string.gsub(year, '^(%d+)[a-z]* century$', '%1')
year = formatYear(100 * (tonumber(year) - 1), 7)
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
table.insert(cats, '[[Category:' .. year .. bce .. ' works]]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
-- Or a range of years
local start_year, end_year
if string.match(year, '^%d*–%d*$') then
start_year, end_year = string.match(year, '^(%d*)–(%d*)$')
elseif string.match(year, '^%d*/%d*$') then
start_year, end_year = string.match(year, '^(%d*)/(%d*)$')
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
if start_year or end_year then
start_year = tonumber(start_year)
end_year = tonumber(end_year)
if start_year and end_year and start_year == end_year and circa == '' then
table.insert(cats, '[[Category:' .. start_year .. bce .. ' works' .. ']]')
return {year = circa .. start_year .. bce, cats = table.concat(cats)}
elseif start_year and end_year then
local start_decade = start_year - start_year % 10
local end_decade = end_year - end_year % 10
local start_century = start_year - start_year % 100
local end_century = end_year - end_year % 100
if start_decade == end_decade then
table.insert(cats, '[[Category:' .. start_decade .. 's' .. bce .. ' works' .. ']]')
elseif start_century == end_century then
table.insert(cats, '[[Category:' .. formatYear(end_year, 7) .. bce .. ' works' .. ']]')
end
elseif end_year then
table.insert(cats, '[[Category:' .. 'Works of uncertain date' .. ']]')
end
-- check isn't redundant since the year might just be –
if start_year or end_year then
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
end
-- If we're here we didn't manage to parse it.
table.insert(cats, '[[Category:' .. 'Works with unrecognised dates' .. ']]')
return {year = circa .. year .. bce, cats = table.concat(cats)}
end
function p.construct_year(args)
local year = mw.html.create('span'):attr('id', 'header-year-text')
local current_title = mw.title.getCurrentTitle()
local year_args = {
['year'] = args['year'],
noprint = yesno(args['noyear']) or false,
wikidata = args.wikidata
}
year_args['nocat'] = yesno(args['noyearcat'])
if year_args['nocat'] == nil then
year_args['nocat'] = (
not args.testing -- Testing pages always categorise
) and (
yesno(args['disambiguation']) -- Disambiguations never categorise
or not current_title:inNamespaces(0, 114) -- Only categorise in mainspace and Translation
or current_title.isSubpage -- Only categorise if this is a base page
)
end
local year_data = parse_year_and_categorise(year_args)
if year_data then
local cats = (not year_args['nocat'] and year_data.cats) or ''
if year_args['noprint'] or not year_data.year then
return cats
else
year:wikitext(year_data.year)
return ' (' .. tostring(year) .. ')' .. cats
end
else
return (year_args['nocat'] and '') or '[[Category:' .. 'Undated works' .. ']]'
end
end
return p
449ubkw330zwpe43l5phw105q9qoj8w
ಮಾಡ್ಯೂಲ್:Header/attribution
828
98889
276324
275786
2024-10-30T08:21:01Z
CalendulaAsteraceae
6870
fix bug in parameter processing
276324
Scribunto
text/plain
require('strict')
local p = {}
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
local contrib_types = require('Module:Header/attribution data')
p.attr_data = {}
for k, v in pairs(contrib_types) do
p.attr_data[v['param_name']] = v
end
local function get_attribution_params(args)
local all_contributors = {
title = {},
section = {}
}
for k, v in pairs(args) do
local base_param_name = string.gsub(string.gsub(k, '%-display$', ''), '%-nolink$', '')
local arg_param_name = string.gsub(base_param_name, '^override%-', '')
local param_name = string.gsub(arg_param_name, '%d*$', '')
local section_key
if string.match(arg_param_name, '^section%-') then
section_key = 'section'
param_name = string.gsub(param_name, '^section%-', '')
else
section_key = 'title'
end
if p['attr_data'][param_name] then
local param_name_pattern = '^' .. string.gsub(string.gsub(base_param_name, '%d*$', ''), '%-', '%%%-')
local nText = string.match(k, param_name_pattern .. '%d*$')
local nDisplay = string.match(k, param_name_pattern .. '%d*%-display$')
local nNoLink = string.match(k, param_name_pattern .. '%d*%-nolink$')
local n
local info
if nText then
n = string.gsub(nText, param_name_pattern .. '(%d*)$', '%1')
n = tonumber(n) or 1
info = 'text'
elseif nDisplay then
n = string.gsub(nDisplay, param_name_pattern .. '(%d*)%-display$', '%1')
n = tonumber(n) or 1
info = 'display'
elseif nNoLink then
n = string.gsub(nNoLink, param_name_pattern .. '(%d*)%-nolink$', '%1')
n = tonumber(n) or 1
info = 'nolink'
end
local index = p['attr_data'][param_name]['index']
all_contributors[section_key][index] = all_contributors[section_key][index] or {}
all_contributors[section_key][index]['param_name'] = all_contributors[section_key][index]['param_name'] or param_name
all_contributors[section_key][index]['arg_param_name'] = all_contributors[section_key][index]['arg_param_name'] or arg_param_name
all_contributors[section_key][index]['override'] = all_contributors[section_key][index]['override'] or args['override-' .. arg_param_name]
if n and not (args.template_name == 'Translation header' and arg_param_name == 'translator' and info == 'text' and string.lower(v) == 'wikisource') then
all_contributors[section_key][index]['values'] = all_contributors[section_key][index]['values'] or {}
all_contributors[section_key][index]['values'][n] = all_contributors[section_key][index]['values'][n] or {}
all_contributors[section_key][index]['values'][n][info] = all_contributors[section_key][index]['values'][n][info] or v
end
end
end
if args.template_name == 'Translation header' then
local index = p['attr_data']['translator']['index']
all_contributors['title'][index] = all_contributors['title'][index] or {}
all_contributors['title'][index]['param_name'] = all_contributors['title'][index]['param_name'] or 'translator'
all_contributors['title'][index]['arg_param_name'] = all_contributors['title'][index]['arg_param_name'] or 'translator'
all_contributors['title'][index]['override'] = all_contributors['title'][index]['override'] or nil
all_contributors['title'][index]['values'] = all_contributors['title'][index]['values'] or {}
table.insert(all_contributors['title'][index]['values'], {text = 'wikisource'})
end
local contributors = {
title = {},
section = {}
}
for section_key, section_values in pairs(all_contributors) do
for i, contrib in ipairs(TableTools.compressSparseArray(section_values)) do
local new_contrib = {}
for k, v in pairs(TableTools.shallowClone(contrib)) do
if k == 'values' then
new_contrib[k] = TableTools.compressSparseArray(v)
else
new_contrib[k] = v
end
end
table.insert(contributors[section_key], new_contrib)
end
end
return contributors
end
function p.get_attribution_params(args)
return get_attribution_params(args)
end
local function construct_attribution_span(args)
local aspan = mw.html.create('span')
:addClass('vcard')
:attr('id', 'header-' .. args.span_param_name .. '-text')
:tag('span'):addClass('fn'):wikitext(args.atext)
return tostring(mw.html.create('span')
:addClass('contributor-text')
:wikitext(args.prefix .. tostring(aspan))
)
end
local function construct_attribution(args)
local data = args.data
local param_name = data['param_name']
local span_param_name = param_name
local prefix = p['attr_data'][param_name]['prefix'] .. ' '
if data['arg_param_name'] == 'section-author' then
span_param_name = 'contributor'
end
if data['arg_param_name'] == 'author' and data['override'] then
prefix = '' -- legacy parameter
elseif param_name == 'translator' and args.languages then
prefix = 'translated from ' .. (args.language_name or 'unrecognized language') .. ' by '
end
-- override (legacy parameter)
local atext = data['override']
if atext then
if args.template_name == 'Translation header' and param_name == 'translator' then
atext = atext .. ' and ' .. p['attr_data']['translator']['special_cases']['wikisource']
end
return construct_attribution_span({span_param_name = span_param_name, prefix = prefix, atext = atext})
end
local contributors = {}
for i, contributor in ipairs(data['values']) do
local text = contributor['text']
local display = contributor['display']
local nolink = yesno(contributor['nolink']) or false
if nolink then
table.insert(contributors, display or text)
elseif text then
local special = false
for k, v in pairs(p['attr_data'][param_name]['special_cases']) do
if string.lower(text) == k then
special = true
if type(v) == 'function' then
display = v(display)
else
display = v
end
break
end
end
if not special then
if not display then
display = string.gsub(text, ' %(.*%)$', '')
end
display = '[[Author:' .. text .. '|' .. display .. ']]'
end
if display then
table.insert(contributors, display)
end
else
mw.logObject(contributor)
end
end
if #contributors == 0 then
return nil
elseif #contributors == 1 then
atext = contributors[1]
else
atext = table.concat(contributors, ', ', 1, #contributors - 1) .. ' and ' .. contributors[#contributors]
end
-- Temporary check for illustrator in subpages.
-- TODO: remove once
-- [[Special:PermanentLink/14324127#Replace illustrator header parameter with section illustrator in subpages of works]]
-- has been addressed.
local cat = ''
if param_name == 'illustrator' and mw.title.getCurrentTitle().isSubpage then
cat = '[[' .. 'Category:' .. 'Subpages using illustrator parameter' .. ']]'
end
local s = construct_attribution_span({span_param_name = span_param_name, prefix = prefix, atext = atext})
return s .. cat
end
function p.construct_attributions(args)
local attributions = {}
local a_args = TableTools.shallowClone(args)
local attr_params = get_attribution_params(args)['title']
for i, data in ipairs(attr_params) do
a_args['data'] = data
local atext = construct_attribution(a_args)
if atext then
table.insert(attributions, atext)
end
end
if #attributions == 0 then
return ''
end
return table.concat(attributions, ', ')
end
-- section
function p.construct_section(args)
local section_text = args['section']
if not section_text or section_text == '' then
return ''
end
local attributions = {}
local a_args = TableTools.shallowClone(args)
a_args.languages = a_args.section_languages or a_args.languages
a_args.language_name = a_args.section_language_name or a_args.language_name
local attr_params = get_attribution_params(args)['section']
for i, data in ipairs(attr_params) do
a_args['data'] = data
local atext = construct_attribution(a_args)
if atext then
table.insert(attributions, atext)
end
end
if #attributions > 0 then
local sep = ' '
if #attributions > 1 then
sep = '<br/>'
end
section_text = section_text .. sep .. table.concat(attributions, ', ')
end
return tostring(mw.html.create('div')
:addClass('header-section-text')
:wikitext(section_text)
)
end
--[=[
Construct the [[Help:Microformat]] for the page.
This is in the form:
<div id="ws-data" ...>
<span id="ws-title">Title here...</span>
...
<div>
]=]
function p.construct_microformat(args)
local mf_div = mw.html.create('div')
:addClass('ws-noexport')
:attr('id', 'ws-data')
:css({speak = 'none'})
-- override to show the microformat
if yesno(args['show-microformat']) then
mf_div:addClass('ws-data-show')
end
-- collect the MF values here
local mf = {};
-- page ID
mf['ws-article-id'] = mw.title.getCurrentTitle().id
-- title
if args['title'] then
mf['ws-title'] = args['title']
-- append section if there is one
if args['section'] then
mf['ws-title'] = mf['ws-title'] .. " — " .. args['section']
end
end
-- year
mf['ws-year'] = args['year']
-- cover
mf['ws-cover'] = args['cover']
-- use section values if available, otherwise use work values
local attr_params = get_attribution_params(args)
local joined_attr_params = {}
for i, section_key in ipairs({'section', 'title'}) do
for i, data in ipairs(attr_params[section_key]) do
local index = p['attr_data'][data['param_name']]['index']
joined_attr_params[index] = joined_attr_params[index] or data
end
end
joined_attr_params = TableTools.compressSparseArray(joined_attr_params)
for i, data in ipairs(joined_attr_params) do
local atext = data['override']
local ws_translator = args.template_name == 'Translation header' and data['param_name'] == 'translator'
if atext and ws_translator then
atext = atext .. ' and Wikisource'
elseif not atext then
local attr_text = {}
for i, values in ipairs(data['values']) do
local display = values['text']
local special = false
if values['text'] then
for k, v in pairs(p['attr_data'][data['param_name']]['special_cases']) do
if string.lower(values['text']) == k then
special = true
if k == 'anon' or k == 'anonymous' then
display = 'Anonymous'
elseif k == 'wikisource' then
display = 'Wikisource'
elseif type(v) == 'function' then
display = v(display)
else
display = v
end
break
end
end
else
mw.logObject(values)
end
table.insert(attr_text, display)
end
if #attr_text == 1 then
atext = attr_text[1]
elseif #attr_text > 1 then
atext = table.concat(attr_text, ', ', 1, #attr_text - 1) .. ' and ' .. attr_text[#attr_text]
end
end
if atext then
mf['ws-' .. data['param_name']] = atext
end
end
for k, v in pairs(mf) do
mf_div:tag('span'):attr('id', k):wikitext(v)
end
return tostring(mf_div)
end
return p
sdsvw7o2lqww54ombueecxb3eorxh18
276325
276324
2024-11-11T08:44:34Z
~aanzx
6806
೧ revision imported from [[:en:Module:Header/attribution]]
276324
Scribunto
text/plain
require('strict')
local p = {}
local yesno = require('Module:Yesno')
local TableTools = require('Module:TableTools')
local contrib_types = require('Module:Header/attribution data')
p.attr_data = {}
for k, v in pairs(contrib_types) do
p.attr_data[v['param_name']] = v
end
local function get_attribution_params(args)
local all_contributors = {
title = {},
section = {}
}
for k, v in pairs(args) do
local base_param_name = string.gsub(string.gsub(k, '%-display$', ''), '%-nolink$', '')
local arg_param_name = string.gsub(base_param_name, '^override%-', '')
local param_name = string.gsub(arg_param_name, '%d*$', '')
local section_key
if string.match(arg_param_name, '^section%-') then
section_key = 'section'
param_name = string.gsub(param_name, '^section%-', '')
else
section_key = 'title'
end
if p['attr_data'][param_name] then
local param_name_pattern = '^' .. string.gsub(string.gsub(base_param_name, '%d*$', ''), '%-', '%%%-')
local nText = string.match(k, param_name_pattern .. '%d*$')
local nDisplay = string.match(k, param_name_pattern .. '%d*%-display$')
local nNoLink = string.match(k, param_name_pattern .. '%d*%-nolink$')
local n
local info
if nText then
n = string.gsub(nText, param_name_pattern .. '(%d*)$', '%1')
n = tonumber(n) or 1
info = 'text'
elseif nDisplay then
n = string.gsub(nDisplay, param_name_pattern .. '(%d*)%-display$', '%1')
n = tonumber(n) or 1
info = 'display'
elseif nNoLink then
n = string.gsub(nNoLink, param_name_pattern .. '(%d*)%-nolink$', '%1')
n = tonumber(n) or 1
info = 'nolink'
end
local index = p['attr_data'][param_name]['index']
all_contributors[section_key][index] = all_contributors[section_key][index] or {}
all_contributors[section_key][index]['param_name'] = all_contributors[section_key][index]['param_name'] or param_name
all_contributors[section_key][index]['arg_param_name'] = all_contributors[section_key][index]['arg_param_name'] or arg_param_name
all_contributors[section_key][index]['override'] = all_contributors[section_key][index]['override'] or args['override-' .. arg_param_name]
if n and not (args.template_name == 'Translation header' and arg_param_name == 'translator' and info == 'text' and string.lower(v) == 'wikisource') then
all_contributors[section_key][index]['values'] = all_contributors[section_key][index]['values'] or {}
all_contributors[section_key][index]['values'][n] = all_contributors[section_key][index]['values'][n] or {}
all_contributors[section_key][index]['values'][n][info] = all_contributors[section_key][index]['values'][n][info] or v
end
end
end
if args.template_name == 'Translation header' then
local index = p['attr_data']['translator']['index']
all_contributors['title'][index] = all_contributors['title'][index] or {}
all_contributors['title'][index]['param_name'] = all_contributors['title'][index]['param_name'] or 'translator'
all_contributors['title'][index]['arg_param_name'] = all_contributors['title'][index]['arg_param_name'] or 'translator'
all_contributors['title'][index]['override'] = all_contributors['title'][index]['override'] or nil
all_contributors['title'][index]['values'] = all_contributors['title'][index]['values'] or {}
table.insert(all_contributors['title'][index]['values'], {text = 'wikisource'})
end
local contributors = {
title = {},
section = {}
}
for section_key, section_values in pairs(all_contributors) do
for i, contrib in ipairs(TableTools.compressSparseArray(section_values)) do
local new_contrib = {}
for k, v in pairs(TableTools.shallowClone(contrib)) do
if k == 'values' then
new_contrib[k] = TableTools.compressSparseArray(v)
else
new_contrib[k] = v
end
end
table.insert(contributors[section_key], new_contrib)
end
end
return contributors
end
function p.get_attribution_params(args)
return get_attribution_params(args)
end
local function construct_attribution_span(args)
local aspan = mw.html.create('span')
:addClass('vcard')
:attr('id', 'header-' .. args.span_param_name .. '-text')
:tag('span'):addClass('fn'):wikitext(args.atext)
return tostring(mw.html.create('span')
:addClass('contributor-text')
:wikitext(args.prefix .. tostring(aspan))
)
end
local function construct_attribution(args)
local data = args.data
local param_name = data['param_name']
local span_param_name = param_name
local prefix = p['attr_data'][param_name]['prefix'] .. ' '
if data['arg_param_name'] == 'section-author' then
span_param_name = 'contributor'
end
if data['arg_param_name'] == 'author' and data['override'] then
prefix = '' -- legacy parameter
elseif param_name == 'translator' and args.languages then
prefix = 'translated from ' .. (args.language_name or 'unrecognized language') .. ' by '
end
-- override (legacy parameter)
local atext = data['override']
if atext then
if args.template_name == 'Translation header' and param_name == 'translator' then
atext = atext .. ' and ' .. p['attr_data']['translator']['special_cases']['wikisource']
end
return construct_attribution_span({span_param_name = span_param_name, prefix = prefix, atext = atext})
end
local contributors = {}
for i, contributor in ipairs(data['values']) do
local text = contributor['text']
local display = contributor['display']
local nolink = yesno(contributor['nolink']) or false
if nolink then
table.insert(contributors, display or text)
elseif text then
local special = false
for k, v in pairs(p['attr_data'][param_name]['special_cases']) do
if string.lower(text) == k then
special = true
if type(v) == 'function' then
display = v(display)
else
display = v
end
break
end
end
if not special then
if not display then
display = string.gsub(text, ' %(.*%)$', '')
end
display = '[[Author:' .. text .. '|' .. display .. ']]'
end
if display then
table.insert(contributors, display)
end
else
mw.logObject(contributor)
end
end
if #contributors == 0 then
return nil
elseif #contributors == 1 then
atext = contributors[1]
else
atext = table.concat(contributors, ', ', 1, #contributors - 1) .. ' and ' .. contributors[#contributors]
end
-- Temporary check for illustrator in subpages.
-- TODO: remove once
-- [[Special:PermanentLink/14324127#Replace illustrator header parameter with section illustrator in subpages of works]]
-- has been addressed.
local cat = ''
if param_name == 'illustrator' and mw.title.getCurrentTitle().isSubpage then
cat = '[[' .. 'Category:' .. 'Subpages using illustrator parameter' .. ']]'
end
local s = construct_attribution_span({span_param_name = span_param_name, prefix = prefix, atext = atext})
return s .. cat
end
function p.construct_attributions(args)
local attributions = {}
local a_args = TableTools.shallowClone(args)
local attr_params = get_attribution_params(args)['title']
for i, data in ipairs(attr_params) do
a_args['data'] = data
local atext = construct_attribution(a_args)
if atext then
table.insert(attributions, atext)
end
end
if #attributions == 0 then
return ''
end
return table.concat(attributions, ', ')
end
-- section
function p.construct_section(args)
local section_text = args['section']
if not section_text or section_text == '' then
return ''
end
local attributions = {}
local a_args = TableTools.shallowClone(args)
a_args.languages = a_args.section_languages or a_args.languages
a_args.language_name = a_args.section_language_name or a_args.language_name
local attr_params = get_attribution_params(args)['section']
for i, data in ipairs(attr_params) do
a_args['data'] = data
local atext = construct_attribution(a_args)
if atext then
table.insert(attributions, atext)
end
end
if #attributions > 0 then
local sep = ' '
if #attributions > 1 then
sep = '<br/>'
end
section_text = section_text .. sep .. table.concat(attributions, ', ')
end
return tostring(mw.html.create('div')
:addClass('header-section-text')
:wikitext(section_text)
)
end
--[=[
Construct the [[Help:Microformat]] for the page.
This is in the form:
<div id="ws-data" ...>
<span id="ws-title">Title here...</span>
...
<div>
]=]
function p.construct_microformat(args)
local mf_div = mw.html.create('div')
:addClass('ws-noexport')
:attr('id', 'ws-data')
:css({speak = 'none'})
-- override to show the microformat
if yesno(args['show-microformat']) then
mf_div:addClass('ws-data-show')
end
-- collect the MF values here
local mf = {};
-- page ID
mf['ws-article-id'] = mw.title.getCurrentTitle().id
-- title
if args['title'] then
mf['ws-title'] = args['title']
-- append section if there is one
if args['section'] then
mf['ws-title'] = mf['ws-title'] .. " — " .. args['section']
end
end
-- year
mf['ws-year'] = args['year']
-- cover
mf['ws-cover'] = args['cover']
-- use section values if available, otherwise use work values
local attr_params = get_attribution_params(args)
local joined_attr_params = {}
for i, section_key in ipairs({'section', 'title'}) do
for i, data in ipairs(attr_params[section_key]) do
local index = p['attr_data'][data['param_name']]['index']
joined_attr_params[index] = joined_attr_params[index] or data
end
end
joined_attr_params = TableTools.compressSparseArray(joined_attr_params)
for i, data in ipairs(joined_attr_params) do
local atext = data['override']
local ws_translator = args.template_name == 'Translation header' and data['param_name'] == 'translator'
if atext and ws_translator then
atext = atext .. ' and Wikisource'
elseif not atext then
local attr_text = {}
for i, values in ipairs(data['values']) do
local display = values['text']
local special = false
if values['text'] then
for k, v in pairs(p['attr_data'][data['param_name']]['special_cases']) do
if string.lower(values['text']) == k then
special = true
if k == 'anon' or k == 'anonymous' then
display = 'Anonymous'
elseif k == 'wikisource' then
display = 'Wikisource'
elseif type(v) == 'function' then
display = v(display)
else
display = v
end
break
end
end
else
mw.logObject(values)
end
table.insert(attr_text, display)
end
if #attr_text == 1 then
atext = attr_text[1]
elseif #attr_text > 1 then
atext = table.concat(attr_text, ', ', 1, #attr_text - 1) .. ' and ' .. attr_text[#attr_text]
end
end
if atext then
mf['ws-' .. data['param_name']] = atext
end
end
for k, v in pairs(mf) do
mf_div:tag('span'):attr('id', k):wikitext(v)
end
return tostring(mf_div)
end
return p
sdsvw7o2lqww54ombueecxb3eorxh18
ಮಾಡ್ಯೂಲ್:Header/attribution data
828
98891
276328
275790
2024-10-30T09:03:21Z
CalendulaAsteraceae
6870
add "compiler"
276328
Scribunto
text/plain
local function anon(text)
text = text or 'Anonymous'
local cat = ''
if mw.title.getCurrentTitle():inNamespaces(0, 114) then
cat = '[[Category:' .. 'Works by unknown authors' .. ']]'
end
return '[[Portal:Anonymous texts|' .. text .. ']]' .. cat
end
local function anon_nocat(text)
return '[[Portal:Anonymous texts|' .. (text or 'Anonymous') .. ']]'
end
local contrib_types = {
{noun = 'author', prefix = 'by'},
{noun = 'attributed to', prefix = 'attributed to', special_cases = {}},
{noun = 'adapter', prefix = 'adapted by'},
{noun = 'abridger', prefix = 'abridged by'},
{noun = 'illustrator', prefix = 'illustrated by'},
{noun = 'director', prefix = 'directed by'},
{noun = 'lyricist', prefix = 'lyrics by'},
{noun = 'librettist', prefix = 'libretto by'},
{
noun = 'book by',
prefix = 'book by',
special_cases = {
['?'] = 'unknown author',
['unknown'] = 'unknown author',
['not mentioned'] = 'unknown author',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various authors'
}
},
{noun = 'composer', prefix = 'composed by'},
{noun = 'arranger', prefix = 'arranged by'},
{
noun = 'translator',
prefix = 'translated by',
special_cases = {
['?'] = 'unknown translator',
['unknown'] = 'unknown translator',
['not mentioned'] = 'unknown translator',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various translators',
['wikisource'] = '[[Wikisource:Translations|Wikisource]]'
}
},
{
noun = 'editor',
prefix = 'edited by',
special_cases = {
['?'] = 'unknown editor',
['unknown'] = 'unknown editor',
['not mentioned'] = 'unknown editor',
['anon'] = anon_nocat,
['anonymous'] = anon_nocat,
['various'] = 'various editors'
}
},
{noun = 'compiler', prefix = 'compiled by'}
}
for i = 1, #contrib_types do
local noun = contrib_types[i]['noun']
contrib_types[i]['param_name'] = contrib_types[i]['param_name'] or string.gsub(noun, ' ', '-')
contrib_types[i]['special_cases'] = contrib_types[i]['special_cases'] or {
['?'] = 'unknown ' .. noun,
['unknown'] = 'unknown ' .. noun,
['not mentioned'] = 'unknown ' .. noun,
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various ' .. noun .. 's'
}
contrib_types[i]['index'] = i
end
return contrib_types
ka2tp1bpgzhcxei1qgw6d41mcuywphw
276329
276328
2024-11-11T08:44:34Z
~aanzx
6806
೧ revision imported from [[:en:Module:Header/attribution_data]]
276328
Scribunto
text/plain
local function anon(text)
text = text or 'Anonymous'
local cat = ''
if mw.title.getCurrentTitle():inNamespaces(0, 114) then
cat = '[[Category:' .. 'Works by unknown authors' .. ']]'
end
return '[[Portal:Anonymous texts|' .. text .. ']]' .. cat
end
local function anon_nocat(text)
return '[[Portal:Anonymous texts|' .. (text or 'Anonymous') .. ']]'
end
local contrib_types = {
{noun = 'author', prefix = 'by'},
{noun = 'attributed to', prefix = 'attributed to', special_cases = {}},
{noun = 'adapter', prefix = 'adapted by'},
{noun = 'abridger', prefix = 'abridged by'},
{noun = 'illustrator', prefix = 'illustrated by'},
{noun = 'director', prefix = 'directed by'},
{noun = 'lyricist', prefix = 'lyrics by'},
{noun = 'librettist', prefix = 'libretto by'},
{
noun = 'book by',
prefix = 'book by',
special_cases = {
['?'] = 'unknown author',
['unknown'] = 'unknown author',
['not mentioned'] = 'unknown author',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various authors'
}
},
{noun = 'composer', prefix = 'composed by'},
{noun = 'arranger', prefix = 'arranged by'},
{
noun = 'translator',
prefix = 'translated by',
special_cases = {
['?'] = 'unknown translator',
['unknown'] = 'unknown translator',
['not mentioned'] = 'unknown translator',
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various translators',
['wikisource'] = '[[Wikisource:Translations|Wikisource]]'
}
},
{
noun = 'editor',
prefix = 'edited by',
special_cases = {
['?'] = 'unknown editor',
['unknown'] = 'unknown editor',
['not mentioned'] = 'unknown editor',
['anon'] = anon_nocat,
['anonymous'] = anon_nocat,
['various'] = 'various editors'
}
},
{noun = 'compiler', prefix = 'compiled by'}
}
for i = 1, #contrib_types do
local noun = contrib_types[i]['noun']
contrib_types[i]['param_name'] = contrib_types[i]['param_name'] or string.gsub(noun, ' ', '-')
contrib_types[i]['special_cases'] = contrib_types[i]['special_cases'] or {
['?'] = 'unknown ' .. noun,
['unknown'] = 'unknown ' .. noun,
['not mentioned'] = 'unknown ' .. noun,
['anon'] = anon,
['anonymous'] = anon,
['various'] = 'various ' .. noun .. 's'
}
contrib_types[i]['index'] = i
end
return contrib_types
ka2tp1bpgzhcxei1qgw6d41mcuywphw
ಮಾಡ್ಯೂಲ್:ISO 639/local
828
99128
276303
2024-11-11T08:34:47Z
~aanzx
6806
ಹೊಸ ಪುಟ: return { ["aaa"] = "Ghotuo", ["aab"] = "Alumu-Tesu", ["aac"] = "Ari", ["aad"] = "Amal", ["aaf"] = "Aranadan", ["aag"] = "Ambrak", ["aah"] = "Abuʼ", ["aai"] = "Arifama-Miniafia", ["aak"] = "Ankave", ["aal"] = "Afade", ["aam"] = "Aramanik", ["aan"] = "Anambé", ["aao"] = "Algerian Saharan Arabic", ["aap"] = "Pará Arára", ["aaq"] = "Eastern Abnaki", ["aar"] = "Afar", ["aas"] = "Aasáx", ["aat"] = "Arvanitika Albanian", ["aau"] = "Abau", ["aaw"] = "So...
276303
Scribunto
text/plain
return {
["aaa"] = "Ghotuo",
["aab"] = "Alumu-Tesu",
["aac"] = "Ari",
["aad"] = "Amal",
["aaf"] = "Aranadan",
["aag"] = "Ambrak",
["aah"] = "Abuʼ",
["aai"] = "Arifama-Miniafia",
["aak"] = "Ankave",
["aal"] = "Afade",
["aam"] = "Aramanik",
["aan"] = "Anambé",
["aao"] = "Algerian Saharan Arabic",
["aap"] = "Pará Arára",
["aaq"] = "Eastern Abnaki",
["aar"] = "Afar",
["aas"] = "Aasáx",
["aat"] = "Arvanitika Albanian",
["aau"] = "Abau",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aay"] = "Aariya",
["aaz"] = "Amarasi",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ambala Ayta",
["abd"] = "Camarines Norte Agta",
["abe"] = "Western Abnaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "Tajiki Arabic",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abk"] = "Abkhaz",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Abenlen Ayta",
["abq"] = "Abaza",
["abr"] = "Abron",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Baharna Arabic",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acc"] = "Cubulco Achí",
["acd"] = "Gikyode",
["acf"] = "Saint Lucian Creole French",
["ach"] = "Acoli",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acn"] = "Achang",
["acp"] = "Eastern Acipa",
["acq"] = "Ta'izzi-Adeni Arabic",
["acr"] = "Rabinal Achí",
["acs"] = "Acroá",
["act"] = "Achterhooks",
["acu"] = "Achuar-Shiwiar",
["acv"] = "Achumawi",
["acw"] = "Hijazi Arabic",
["acx"] = "Omani Arabic",
["acy"] = "Cypriot Arabic",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Adabe",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Dhofari Arabic",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo Adi",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Adamorobe Sign Language",
["adt"] = "Adynyamathanha",
["adu"] = "Aduge",
["adw"] = "Amundava",
["adx"] = "Amdo Tibetan",
["adz"] = "Adzera",
["ae"] = "Avestan",
["aea"] = "Areba",
["aec"] = "Saidi Arabic",
["aed"] = "Argentine Sign Language",
["aee"] = "Northeast Pashayi",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Armenian Sign Language",
["aeq"] = "Aer",
["aer"] = "Eastern Arrernte",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aex"] = "Amerax",
["aey"] = "Amele",
["aez"] = "Aeka",
["afa"] = "Afro-Asiatic languages",
["afb"] = "Gulf Arabic",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Afghan Sign Language",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afr"] = "Afrikaans",
["afs"] = "Afro-Seminole Creole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agi"] = "Agariya",
["agj"] = "Argobba",
["agk"] = "Isarog Agta",
["agl"] = "Fembe",
["agm"] = "Angaatiha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agp"] = "Paranan",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Central Cagayan Agta",
["agu"] = "Aguacateco",
["agv"] = "Remontado Agta",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Southern Alta",
["agz"] = "Mt. Iriga Agta",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahe"] = "Ahe",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagbamrin Aizi",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Mobumrin Aizi",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Aproumu Aizi",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtena",
["aia"] = "Arosi",
["aib"] = "Chinese Ainu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Antigua and Barbuda Creole English",
["aih"] = "Ai-Cham",
["aii"] = "Assyrian Neo-Aramaic",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["aiq"] = "Aimaq",
["air"] = "Airoran",
["ais"] = "Nataoran Amis",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aigon",
["aiy"] = "Ali",
["aiz"] = "Aari",
["aja"] = "Sudanese Aja",
["ajg"] = "Beninese Aja",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "South Levantine Arabic",
["ajt"] = "Judeo-Tunisian Arabic",
["aju"] = "Judeo-Moroccan Arabic",
["ajw"] = "Ajawa",
["ajz"] = "Amri",
["ak"] = "Akan",
["aka"] = "Akan",
["akb"] = "Batak Angkola",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Aka-Jeru",
["akk"] = "Akkadian",
["akl"] = "Aklanon",
["akm"] = "Aka-Bo",
["akn"] = "Amikoana",
["ako"] = "Akurio",
["akp"] = "Siwu",
["akq"] = "Ak",
["akr"] = "Araki",
["aks"] = "Akaselem",
["akt"] = "Akolet",
["aku"] = "Akum",
["akv"] = "Akhvakh",
["akw"] = "Akwa",
["akx"] = "Aka-Kede",
["aky"] = "Aka-Kol",
["akz"] = "Alabama",
["ala"] = "Alago",
["alb"] = "Albanian",
["alc"] = "Qawasqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg"] = "Algonquian languages",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alu"] = "Are'are",
["alw"] = "Alaba",
["alx"] = "Alatil",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["ama"] = "Amanayé",
["amb"] = "Ambo",
["amc"] = "Amahuaca",
["amd"] = "Amapá Creole",
["ame"] = "Yanesha'",
["amf"] = "Hamer-Banna",
["amg"] = "Amarag",
["amh"] = "Amharic",
["amj"] = "Amdang",
["amk"] = "Ambai",
["aml"] = "War",
["amm"] = "Papua New Guinean Ama",
["amn"] = "Amanab",
["amo"] = "Amo",
["amp"] = "Alamblak",
["amq"] = "Amahai",
["amr"] = "Amarakaeri",
["ams"] = "Southern Amami-Oshima",
["amt"] = "Amto",
["amu"] = "Guerrero Amuzgo",
["amv"] = "Ambelau",
["amw"] = "Western Neo-Aramaic",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["anh"] = "Nend",
["ani"] = "Andi",
["anj"] = "Anor",
["ank"] = "Goemai",
["anl"] = "Anu",
["anm"] = "Anal",
["ano"] = "Andoque",
["anq"] = "Indian Jarawa",
["anr"] = "Andh",
["ans"] = "Anserma",
["ant"] = "Antakarinya",
["anu"] = "Anuak",
["anv"] = "Denya",
["anw"] = "Anaang",
["anx"] = "Andra-Hus",
["any"] = "Anyin",
["anz"] = "Anem",
["aoa"] = "Angolar",
["aob"] = "Abom",
["aoc"] = "Pemon",
["aod"] = "Andarum",
["aoe"] = "Angal Enen",
["aof"] = "Bragat",
["aog"] = "Angoram",
["aoh"] = "Arma",
["aoi"] = "Anindilyakwa",
["aoj"] = "Mufian",
["aok"] = "Arhö",
["aol"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Bumbita Arapesh",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong",
["aou"] = "Gelao",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa"] = "Apache languages",
["apb"] = "Sa'a",
["apc"] = "North Levantine Arabic",
["apd"] = "Sudanese Arabic",
["ape"] = "Bukiyip",
["apf"] = "Pahanan Agta",
["apg"] = "Ampanang",
["aph"] = "Athpariya",
["api"] = "Apiacá",
["apj"] = "Jicarilla Apache",
["apk"] = "Kiowa Apache",
["apl"] = "Lipan Apache",
["apm"] = "Mescalero-Chiricahua Apache",
["apn"] = "Apinayé",
["apo"] = "Apalik",
["app"] = "Apma",
["apq"] = "A-Pucikwar",
["apr"] = "Arop-Lukep",
["aps"] = "Arop-Sissano",
["apt"] = "Apatani",
["apu"] = "Apurinã",
["apv"] = "Alapmunte",
["apw"] = "Western Apache",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Ampari Dogon",
["aqg"] = "Arigidi",
["aqm"] = "Atohwaim",
["aqn"] = "Northern Alta",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ara"] = "Arabic",
["arb"] = "Standard Arabic",
["ard"] = "Arabana",
["are"] = "Western Arrarnta",
["arf"] = "Arafundi",
["arg"] = "Aragonese",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arm"] = "Armenian",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arr"] = "Brazilian Karo",
["ars"] = "Najdi Arabic",
["art"] = "Artificial languages",
["art-x-sambahsa"] = "Sambahsa",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Arawak",
["arx"] = "Aruá",
["asa"] = "Tanzanian Asu",
["asb"] = "Assiniboine",
["asc"] = "Casuarina Coast Asmat",
["asd"] = "Asas",
["asf"] = "Australian Sign Language",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asm"] = "Assamese",
["asn"] = "Xingú Asuriní",
["aso"] = "Dano",
["asp"] = "Algerian Sign Language",
["asq"] = "Austrian Sign Language",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["asu"] = "Asuriní",
["asv"] = "Asoa",
["asw"] = "Australian Aborigines Sign Language",
["asx"] = "Muratayak",
["asy"] = "Yaosakor Asmat",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Ata Manobo",
["ate"] = "Atemble",
["atf"] = "Atuence",
["atg"] = "Ivbie North-Okpela-Arhe",
["ath"] = "Athapascan languages",
["ati"] = "Attié",
["atk"] = "Ati",
["atl"] = "Mt. Iraya Agta",
["atm"] = "Ata",
["atn"] = "Ashtiani",
["ato"] = "Atong",
["atp"] = "Pudtol Atta",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Atruahí",
["ats"] = "Gros Ventre",
["att"] = "Pamplona Atta",
["atu"] = "Reel",
["atv"] = "Northern Altai",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "Aneityum",
["atz"] = "Arta",
["aua"] = "Asumboa",
["aub"] = "Alugu",
["auc"] = "Waorani",
["aud"] = "Anuta",
["aue"] = "ǂKxʼaoǁʼae",
["aug"] = "Aguna",
["auh"] = "Aushi",
["aui"] = "Anuki",
["auj"] = "Awjilah",
["auk"] = "Heyo",
["aul"] = "Aulua",
["aum"] = "Nigerian Asu",
["aun"] = "Molmo One",
["auo"] = "Auyokawa",
["aup"] = "Makayam",
["auq"] = "Anus",
["aur"] = "Aruek",
["aus"] = "Australian languages",
["aut"] = "Austral",
["auu"] = "Auye",
["auv"] = "Auvergnat",
["auw"] = "Awyi",
["aux"] = "Aurá",
["auy"] = "Awiyaana",
["auz"] = "Uzbeki Arabic",
["ava"] = "Avaric",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["ave"] = "Avestan",
["avi"] = "Avikam",
["avl"] = "Eastern Egyptian Bedawi Arabic",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avo"] = "Agavotaguerra",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awb"] = "Awa",
["awc"] = "Western Acipa",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "South Awyu",
["awt"] = "Araweté",
["awu"] = "Central Awyu",
["awv"] = "Jair Awyu",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Edera Awyu",
["axb"] = "Abipon",
["axe"] = "Ayerrerenge",
["axg"] = "Mato Grosso Arára",
["axk"] = "Central African Yaka",
["axl"] = "Lower Southern Aranda",
["axm"] = "Middle Armenian",
["axx"] = "Xaragure",
["aya"] = "Awar",
["ayb"] = "Ayizo Gbe",
["ayc"] = "Southern Aymara",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Ginyanga",
["ayh"] = "Hadrami Arabic",
["ayi"] = "Yigha",
["ayk"] = "Akuku",
["ayl"] = "Libyan Arabic",
["aym"] = "Aymara",
["ayn"] = "Sanaani Arabic",
["ayo"] = "Ayoreo",
["ayp"] = "North Mesopotamian Arabic",
["ayq"] = "Papua New Guinean Ayi",
["ayr"] = "Central Aymara",
["ays"] = "Sorsogon Ayta",
["ayt"] = "Bataan Ayta",
["ayu"] = "Ayu",
["ayx"] = "Chinese Ayi",
["ayy"] = "Tayabas Ayta",
["ayz"] = "Mai Brat",
["aza"] = "Azha",
["azd"] = "Eastern Durango Nahuatl",
["aze"] = "Azerbaijani",
["azg"] = "San Pedro Amuzgos Amuzgo",
["azj"] = "North Azerbaijani",
["azm"] = "Ipalapa Amuzgo",
["azn"] = "Western Durango Nahuatl",
["azo"] = "Awing",
["azr"] = "Adzera",
["azt"] = "Faire Atta",
["azz"] = "Highland Puebla Nahuatl",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Badui",
["bad"] = "Banda languages",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Bahamas Creole English",
["bai"] = "Bamileke languages",
["baj"] = "Barakai",
["bak"] = "Bashkir",
["bal"] = "Baluchi",
["bam"] = "Bambara",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["baq"] = "Basque",
["bas"] = "Cameroonian Basa",
["bat"] = "Baltic languages",
["bau"] = "Nigerian Bada",
["bav"] = "Vengo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamun",
["bay"] = "Batuley",
["baz"] = "Tunen",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghɔmálá'",
["bbk"] = "Babanki",
["bbl"] = "Bats",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Northern Bobo Madaré",
["bbp"] = "West Central Banda",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Nigerian Kulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bbz"] = "Babalia Creole Arabic",
["bca"] = "Central Bai",
["bcb"] = "Bainouk-Samik",
["bcd"] = "North Babar",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Binari",
["bch"] = "Bariai",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcm"] = "Bannoni",
["bcn"] = "Nigerian Bali",
["bco"] = "Kaluli",
["bcp"] = "Congolese Bali",
["bcq"] = "Bench",
["bcr"] = "Babine",
["bcs"] = "Kohumono",
["bct"] = "Bendi",
["bcu"] = "Awad Bing",
["bcv"] = "Shoo-Minda-Nye",
["bcw"] = "Bana",
["bcx"] = "Pamona",
["bcy"] = "Bacama",
["bcz"] = "Bainouk-Gunyaamolo",
["bda"] = "Bayot",
["bdb"] = "Basap",
["bdc"] = "Emberá-Baudó",
["bdd"] = "Bunama",
["bde"] = "Bade",
["bdf"] = "Biage",
["bdg"] = "Bonggi",
["bdh"] = "Sudanese Baka",
["bdi"] = "Burun",
["bdj"] = "Bai",
["bdk"] = "Budukh",
["bdl"] = "Indonesian Bajau",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Bernde",
["bdp"] = "Bende",
["bdq"] = "Bahnar",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["bea"] = "Beaver",
["beb"] = "Bebele",
["bec"] = "Iceve-Maci",
["bed"] = "Bedoanas",
["bee"] = "Byangsi",
["bef"] = "Benabena",
["beg"] = "Belait",
["beh"] = "Biali",
["bei"] = "Bekati'",
["bej"] = "Beja",
["bek"] = "Bebeli",
["bel"] = "Belarusian",
["bem"] = "Zambian Bemba",
["ben"] = "Bengali",
["beo"] = "Beami",
["bep"] = "Besoa",
["beq"] = "Beembe",
["ber"] = "Berber languages",
["bes"] = "Besme",
["bet"] = "Guiberoua Béte",
["beu"] = "Blagar",
["bev"] = "Daloa Bété",
["bex"] = "Jur Modo",
["bey"] = "Papua New Guinean Beli",
["bez"] = "Tanzanian Bena",
["bfa"] = "Bari",
["bfb"] = "Pauri Bareli",
["bfc"] = "Northern Bai",
["bfd"] = "Bafut",
["bfe"] = "Betaf",
["bff"] = "Bofi",
["bfg"] = "Busang Kayan",
["bfh"] = "Blafe",
["bfi"] = "British Sign Language",
["bfj"] = "Bafanji",
["bfk"] = "Ban Khor Sign Language",
["bfl"] = "Banda-Ndélé",
["bfm"] = "Mmen",
["bfn"] = "Bunak",
["bfo"] = "Malba Birifor",
["bfp"] = "Beba",
["bfq"] = "Badaga",
["bfr"] = "Bazigar",
["bfs"] = "Southern Bai",
["bft"] = "Balti",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgh"] = "Bogan",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Laotian Bo",
["bgm"] = "Baga Mboteni",
["bgo"] = "Baga Koga",
["bgp"] = "Eastern Balochi",
["bgq"] = "Bagri",
["bgr"] = "Bawm Chin",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bha"] = "Bharia",
["bhb"] = "Bhili",
["bhc"] = "Biga",
["bhd"] = "Bhadrawahi",
["bhe"] = "Bhaya",
["bhf"] = "Odiai",
["bhg"] = "Binandere",
["bhh"] = "Bukharic",
["bhi"] = "Bhilali",
["bhj"] = "Bahing",
["bhk"] = "Albay Bicolano",
["bhl"] = "Bimin",
["bhm"] = "Bathari",
["bhn"] = "Bohtan Neo-Aramaic",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi South",
["bhr"] = "Bara Malagasy",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Indonesian Bada",
["bia"] = "Badimaya",
["bib"] = "Bissa",
["bic"] = "Bikaru",
["bid"] = "Bidiyo",
["bie"] = "Bepour",
["bif"] = "Biafada",
["big"] = "Biangai",
["bih"] = "Bihari",
["bii"] = "Bisu",
["bij"] = "Vaghat-Ya-Bijim-Legeri",
["bik"] = "Bikol",
["bil"] = "Bile",
["bim"] = "Bimoba",
["bin"] = "Bini",
["bio"] = "Nai",
["bip"] = "Bila",
["biq"] = "Bipi",
["bir"] = "Bisorio",
["bis"] = "Bislama",
["bit"] = "Berinomo",
["biu"] = "Biete",
["biv"] = "Southern Birifor",
["biw"] = "Cameroonian Kol",
["bix"] = "Bijori",
["biy"] = "Birhor",
["biz"] = "Baloi",
["bja"] = "Budza",
["bjb"] = "Banggarla",
["bjc"] = "Bariji",
["bjd"] = "Bandjigali",
["bje"] = "Biao-Jiao Mien",
["bjf"] = "Barzani Jewish Neo-Aramaic",
["bjg"] = "Bidyogo",
["bjh"] = "Bahinemo",
["bji"] = "Burji",
["bjj"] = "Kanauji",
["bjk"] = "Barok",
["bjl"] = "Papua New Guinean Bulu",
["bjm"] = "Bajelani",
["bjo"] = "Mid-Southern Banda",
["bjp"] = "Fanamaket",
["bjq"] = "Southern Betsimisaraka Malagasy",
["bjr"] = "Binumarien",
["bjs"] = "Bajan",
["bjt"] = "Balanta-Ganja",
["bju"] = "Busuu",
["bjv"] = "Bedjond",
["bjw"] = "Bakwé",
["bjx"] = "Banao Itneg",
["bjy"] = "Bayali",
["bjz"] = "Baruga",
["bka"] = "Kyak",
["bkb"] = "Finallig",
["bkc"] = "Cameroonian Baka",
["bkd"] = "Binukid",
["bke"] = "Bengkulu",
["bkf"] = "Beeke",
["bkg"] = "Buraka",
["bkh"] = "Bakoko",
["bki"] = "Baki",
["bkj"] = "Pande",
["bkk"] = "Brokskat",
["bkl"] = "Berik",
["bkm"] = "Cameroonian Kom",
["bkn"] = "Bukitan",
["bko"] = "Kwa'",
["bkp"] = "Congolese Boko",
["bkq"] = "Bakairí",
["bkr"] = "Bakumpai",
["bks"] = "Masbate Sorsogon",
["bkt"] = "Boloki",
["bku"] = "Buhid",
["bkv"] = "Bekwarra",
["bkw"] = "Bekwil",
["bkx"] = "Baikeno",
["bky"] = "Bokyi",
["bkz"] = "Bungku",
["bla"] = "Siksika",
["blb"] = "Bilua",
["blc"] = "Bella Coola",
["bld"] = "Bolango",
["ble"] = "Balanta-Kentohe",
["blf"] = "Buol",
["blg"] = "Balau",
["blh"] = "Kuwaa",
["bli"] = "Bolia",
["blj"] = "Bolongan",
["bll"] = "Biloxi",
["blm"] = "Sudanese Beli",
["bln"] = "Southern Catanduanes Bicolano",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "Tai Dam",
["blu"] = "Hmong Njua",
["blv"] = "Bolo",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bma"] = "Lame",
["bmb"] = "Bembe",
["bmc"] = "Biem",
["bmd"] = "Baga Manduri",
["bme"] = "Limassa",
["bmf"] = "Bom",
["bmg"] = "Bamwe",
["bmh"] = "Kein",
["bmi"] = "Bagirmi",
["bmj"] = "Bote-Majhi",
["bmk"] = "Ghayavi",
["bml"] = "Bomboli",
["bmm"] = "Northern Betsimisaraka Malagasy",
["bmn"] = "Papua New Guinean Bina",
["bmo"] = "Bambalang",
["bmp"] = "Bulgebi",
["bmq"] = "Bomu",
["bmr"] = "Muinane",
["bms"] = "Bilma Kanuri",
["bmt"] = "Biao Mon",
["bmu"] = "Burum-Mindik",
["bmv"] = "Bum",
["bmw"] = "Bomwali",
["bmx"] = "Baimak",
["bmy"] = "Congolese Bemba",
["bmz"] = "Baramu",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnc"] = "Central Bontoc",
["bnd"] = "Indonesian Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bnh"] = "Banawá",
["bni"] = "Bangi",
["bnj"] = "Eastern Tawbuid",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "Bantoanon",
["bnp"] = "Bola",
["bnq"] = "Bantik",
["bnr"] = "Butmas-Tur",
["bns"] = "Bundeli",
["bnt"] = "Bantu languages",
["bnu"] = "Bentong",
["bnv"] = "Edwas or Bonerif",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Bintulu",
["bnz"] = "Beezen",
["boa"] = "Bora",
["bob"] = "Boni",
["boc"] = "Bakung Kenyah",
["bod"] = "Tibetan",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "Boma",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "Bole",
["bom"] = "Berom",
["bon"] = "Bine",
["boo"] = "Tièma Cièwè Bozo",
["bop"] = "Bonkiman",
["boq"] = "Bogaya",
["bor"] = "Borôro",
["bos"] = "Bosnian",
["bot"] = "Bongo",
["bou"] = "Bondei",
["bov"] = "Tuwuli",
["bow"] = "Rema",
["box"] = "Buamu",
["boy"] = "Central African Bodo",
["boz"] = "Tiéyaxo Bozo",
["bpa"] = "Dakaka",
["bpb"] = "Barbacoas",
["bpd"] = "Banda-Banda",
["bpg"] = "Bonggo",
["bph"] = "Botlikh",
["bpi"] = "Bagupi",
["bpj"] = "Binji",
["bpk"] = "Orowe",
["bpl"] = "Broome Pearling Lugger Pidgin",
["bpm"] = "Biyom",
["bpn"] = "Dzao Min",
["bpo"] = "Anasi",
["bpp"] = "Kaure",
["bpq"] = "Banda Malay",
["bpr"] = "Koronadal Blaan",
["bps"] = "Sarangani Blaan",
["bpt"] = "Barrow Point",
["bpu"] = "Bongu",
["bpv"] = "Bian Marind",
["bpw"] = "Papua New Guinean Bo",
["bpx"] = "Palya Bareli",
["bpz"] = "Bilba",
["bqa"] = "Tchumbuli",
["bqb"] = "Bagusa",
["bqc"] = "Beninese Boko",
["bqd"] = "Bung",
["bqe"] = "Navarro-Labourdin Basque",
["bqf"] = "Baga Kaloum",
["bqg"] = "Bago-Kusuntu",
["bqh"] = "Baima",
["bqj"] = "Bandial",
["bqk"] = "Banda-Mbrès",
["bql"] = "Bilakura",
["bqm"] = "Wumboko",
["bqn"] = "Bulgarian Sign Language",
["bqo"] = "Balo",
["bqp"] = "Busa",
["bqq"] = "Biritai",
["bqr"] = "Burusu",
["bqs"] = "Bosngun",
["bqt"] = "Bamukumbit",
["bqu"] = "Boguru",
["bqv"] = "Begbere-Ejar",
["bqw"] = "Nigerian Buru",
["bqx"] = "Baangi",
["bqy"] = "Bali Sign Language",
["bqz"] = "Bakaka",
["bra"] = "Braj",
["brb"] = "Lave",
["brc"] = "Berbice Creole Dutch",
["brd"] = "Baraamu",
["bre"] = "Breton",
["brf"] = "Bera",
["brg"] = "Baure",
["bri"] = "Mokpwe",
["brj"] = "Bieria",
["brk"] = "Birked",
["brl"] = "Birwa",
["brm"] = "Barambu",
["brn"] = "Boruca",
["bro"] = "Brokkat",
["brp"] = "Barapasi",
["brq"] = "Breri",
["brr"] = "Birao",
["brs"] = "Baras",
["brt"] = "Bitare",
["bru"] = "Eastern Bru",
["brv"] = "Western Bru",
["brw"] = "Bellari",
["brx"] = "Indian Bodo",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Brunei Bisaya",
["bsc"] = "Bassari",
["bsd"] = "Sarawak Bisaya",
["bse"] = "Wushi",
["bsf"] = "Bauchi",
["bsg"] = "Bashkardi",
["bsh"] = "Kati",
["bsi"] = "Bassossi",
["bsj"] = "Bangwinji",
["bsk"] = "Burushaski",
["bsl"] = "Basa-Gumna",
["bsm"] = "Busami",
["bsn"] = "Barasana",
["bso"] = "Buso",
["bsp"] = "Baga Sitemu",
["bsq"] = "Bassa",
["bsr"] = "Bassa-Kontagora",
["bss"] = "Akoose",
["bst"] = "Basketo",
["bsu"] = "Bahonsuai",
["bsv"] = "Baga Sobané",
["bsw"] = "Baiso",
["bsx"] = "Yangkam",
["bsy"] = "Sabah Bisaya",
["bsz"] = "Souletin Basque",
["bta"] = "Bata",
["btb"] = "Cameroonian Beti",
["btc"] = "Cameroonian Bati",
["btd"] = "Batak Dairi",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Biatah",
["bti"] = "Burate",
["btj"] = "Bacanese Malay",
["btk"] = "Batak languages",
["btl"] = "Bhatola",
["btn"] = "Ratagnon",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Batak Simalungun",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Batak Karo",
["bty"] = "Bobot",
["btz"] = "Batak Alas-Kluet",
["bua"] = "Buriat",
["bub"] = "Bua",
["buc"] = "Bushi",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["buh"] = "Younuo Bunu",
["bui"] = "Bongili",
["buj"] = "Basa-Gurmana",
["buk"] = "Bugawac",
["bul"] = "Bulgarian",
["bum"] = "Cameroonian Bulu",
["bun"] = "Sherbro",
["buo"] = "Terei",
["bup"] = "Busoa",
["buq"] = "Brem",
["bur"] = "Burmese",
["bus"] = "Bokobaru",
["but"] = "Bungain",
["buu"] = "Budu",
["buv"] = "Bun",
["buw"] = "Bubi",
["bux"] = "Boghom",
["buy"] = "Bullom So",
["buz"] = "Bukwen",
["bva"] = "Barein",
["bvb"] = "Bube",
["bvc"] = "Baelelea",
["bvd"] = "Baeggu",
["bve"] = "Berau Malay",
["bvf"] = "Boor",
["bvg"] = "Bonkeng",
["bvh"] = "Bure",
["bvi"] = "Belanda Viri",
["bvj"] = "Baan",
["bvk"] = "Bukat",
["bvl"] = "Bolivian Sign Language",
["bvm"] = "Bamunka",
["bvn"] = "Buna",
["bvo"] = "Bolgo",
["bvp"] = "Bumang",
["bvq"] = "Birri",
["bvr"] = "Burarra",
["bvs"] = "Belgian Sign Language",
["bvt"] = "Indonesian Bati",
["bvu"] = "Bukit Malay",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Dibole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Bwe Karen",
["bwf"] = "Boselewa",
["bwg"] = "Barwe",
["bwh"] = "Bishuo",
["bwi"] = "Baniwa",
["bwj"] = "Láá Láá Bwamu",
["bwk"] = "Bauwaki",
["bwl"] = "Bwela",
["bwm"] = "Biwat",
["bwn"] = "Wunai Bunu",
["bwo"] = "Boro",
["bwp"] = "Mandobo Bawah",
["bwq"] = "Southern Bobo Madaré",
["bwr"] = "Bura-Pabir",
["bws"] = "Bomboma",
["bwt"] = "Bafaw-Balong",
["bwu"] = "Ghanaian Buli",
["bwv"] = "Bahau River Kenyah",
["bww"] = "Bwa",
["bwx"] = "Bu-Nao Bunu",
["bwy"] = "Cwi Bwamu",
["bwz"] = "Bwisi",
["bxa"] = "Bauro",
["bxb"] = "Belanda Bor",
["bxc"] = "Molengue",
["bxd"] = "Pela",
["bxe"] = "Birale",
["bxf"] = "Bilur",
["bxg"] = "Bangala",
["bxh"] = "Buhutu",
["bxi"] = "Pirlatapa",
["bxj"] = "Bayungu",
["bxk"] = "Bukusu",
["bxl"] = "Jalkunan",
["bxm"] = "Mongolia Buriat",
["bxn"] = "Burduna",
["bxo"] = "Barikanchi",
["bxp"] = "Bebil",
["bxq"] = "Beele",
["bxs"] = "Busam",
["bxt"] = "Buxinhua",
["bxu"] = "China Buriat",
["bxv"] = "Berakou",
["bxw"] = "Bankagooma",
["bxx"] = "Borna",
["bxz"] = "Binahari",
["bya"] = "Batak",
["byb"] = "Bikya",
["byc"] = "Ubaghara",
["byd"] = "Benyadu'",
["bye"] = "Pouye",
["byf"] = "Bete",
["byg"] = "Baygo",
["byh"] = "Bujhyal",
["byi"] = "Buyu",
["byj"] = "Nigerian Bina",
["byk"] = "Biao",
["byl"] = "Bayono",
["bym"] = "Bidyara",
["byn"] = "Bilin",
["byo"] = "Biyo",
["byp"] = "Bumaji",
["byq"] = "Basay",
["byr"] = "Baruya",
["bys"] = "Burak",
["byt"] = "Berti",
["byu"] = "Buyang",
["byv"] = "Medumba",
["byw"] = "Belhariya",
["byx"] = "Qaqet",
["byy"] = "Buya",
["byz"] = "Banaro",
["bza"] = "Bandi",
["bzb"] = "Andio",
["bzc"] = "Southern Betsimisaraka Malagasy",
["bzd"] = "Bribri",
["bze"] = "Jenaama Bozo",
["bzf"] = "Boikin",
["bzg"] = "Babuza",
["bzh"] = "Mapos Buang",
["bzi"] = "Bisu",
["bzj"] = "Belize Kriol English",
["bzk"] = "Nicaragua Creole English",
["bzl"] = "Sulawesi Boano",
["bzm"] = "Bolondo",
["bzn"] = "Maluku Boano",
["bzo"] = "Bozaba",
["bzp"] = "Kemberano",
["bzq"] = "Indonesian Buli",
["bzr"] = "Biri",
["bzs"] = "Brazilian Sign Language",
["bzt"] = "Brithenig",
["bzu"] = "Burmeso",
["bzv"] = "Bebe",
["bzw"] = "Nigerian Basa",
["bzx"] = "Hainyaxo Bozo",
["bzy"] = "Obanliku",
["bzz"] = "Evant",
["caa"] = "Chortí",
["cab"] = "Garifuna",
["cac"] = "San Sebastián Coatán Chuj",
["cad"] = "Caddo",
["cae"] = "Lehar",
["caf"] = "Southern Carrier",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["cai"] = "Central American Indian languages",
["caj"] = "Chané",
["cak"] = "Central Cakchiquel",
["cal"] = "Carolinian",
["cam"] = "Cemuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "Car Nicobarese",
["car"] = "Carib",
["cas"] = "Tsimané",
["cat"] = "Catalan",
["cau"] = "Caucasian languages",
["cav"] = "Cavineña",
["caw"] = "Callawalla",
["cax"] = "Chiquitano",
["cay"] = "Cayuga",
["caz"] = "Canichana",
["cbb"] = "Cabiyarí",
["cbc"] = "Carapana",
["cbd"] = "Carijona",
["cbe"] = "Chipiajes",
["cbg"] = "Chimila",
["cbh"] = "Cagua",
["cbi"] = "Chachi",
["cbj"] = "Ede Cabe",
["cbk"] = "Chavacano",
["cbl"] = "Bualkhaw Chin",
["cbm"] = "Yepocapa Southwestern Cakchiquel",
["cbn"] = "Nyahkur",
["cbo"] = "Izora",
["cbq"] = "Tsucuba Cuba",
["cbr"] = "Cashibo-Cacataibo",
["cbs"] = "Cashinahua",
["cbt"] = "Chayahuita",
["cbu"] = "Candoshi-Shapra",
["cbv"] = "Cacua",
["cbw"] = "Kinabalian",
["cby"] = "Carabayo",
["cca"] = "Cauca",
["ccc"] = "Chamicuro",
["ccd"] = "Cafundo Creole",
["cce"] = "Chopi",
["ccg"] = "Samba Daka",
["cch"] = "Atsam",
["ccj"] = "Kasanga",
["ccl"] = "Cutchi-Swahili",
["ccm"] = "Malaccan Creole Malay",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "Chakma",
["ccq"] = "Chaungtha",
["ccr"] = "Cacaopera",
["ccx"] = "Northern Zhuang",
["ccy"] = "Southern Zhuang",
["cda"] = "Choni",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdg"] = "Chamari",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Chadian Sign Language",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["cea"] = "Lower Chehalis",
["ceg"] = "Chamacoco",
["cek"] = "Eastern Khumi Chin",
["cel"] = "Celtic languages",
["cen"] = "Cen",
["ces"] = "Czech",
["cet"] = "Centúúm",
["cey"] = "Ekai Chin",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Falam Chin",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Chiga",
["cgk"] = "Chocangacakha",
["cha"] = "Chamorro",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxacan Chontal",
["che"] = "Chechen",
["chf"] = "Tabasco Chontal",
["chg"] = "Chagatai",
["chh"] = "Chinook",
["chi"] = "Chinese",
["chi-CN"] = "China Chinese",
["chi-HK"] = "Hong Kong Chinese",
["chi-TW"] = "Taiwanese Chinese",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuukese",
["chl"] = "Cahuilla",
["chm"] = "Russian Mari",
["chn"] = "Chinook jargon",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chs"] = "Chumash",
["cht"] = "Cholón",
["chu"] = "Old Church Slavonic",
["chv"] = "Chuvash",
["chw"] = "Chuwabu",
["chx"] = "Chantyal",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tiri",
["cit"] = "Chittagonian",
["ciw"] = "Chippewa",
["ciy"] = "Chaima",
["cja"] = "Western Cham",
["cje"] = "CHARu",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "Eastern Cham",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjr"] = "Chorotega",
["cjs"] = "Shor",
["cjv"] = "Chuave",
["cjy"] = "Jinyu Chinese",
["cka"] = "Khumi Awa Chin",
["ckc"] = "Northern Cakchiquel",
["ckd"] = "South Central Cakchiquel",
["cke"] = "Eastern Cakchiquel",
["ckf"] = "Southern Cakchiquel",
["ckh"] = "Chak",
["cki"] = "Santa María De Jesús Cakchiquel",
["ckj"] = "Santo Domingo Xenacoj Cakchiquel",
["ckk"] = "Acatenango Southwestern Cakchiquel",
["ckl"] = "Cibak",
["ckm"] = "Chakavian",
["ckn"] = "Kaang Chin",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "Chukot",
["cku"] = "Koasati",
["ckv"] = "Kavalan",
["ckw"] = "Western Cakchiquel",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Cauqué Mayan",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Laitu Chin",
["clk"] = "Idu-Mishmi",
["cll"] = "Chala",
["clm"] = "Klallam Clallam",
["clo"] = "Lowland Oaxacan Chontal",
["clt"] = "Lautu Chin",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Eastern Highland Chatino",
["cma"] = "Maa",
["cmc"] = "Chamic languages",
["cme"] = "Cerma",
["cmg"] = "Classical Mongolian",
["cmi"] = "Emberá-Chamí",
["cmk"] = "Chimakum",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "Mandarin Chinese",
["cmo"] = "Central Mnong",
["cmr"] = "Mro Chin",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chinbon Chin",
["cnc"] = "Côông",
["cng"] = "Northern Qiang",
["cnh"] = "Lai Chin",
["cni"] = "Asháninka",
["cnk"] = "Khumi Chin",
["cnl"] = "Lalana Chinantec",
["cnm"] = "Ixtatán Chuj",
["cno"] = "Con",
["cnp"] = "Northern Pinghua",
["cnr"] = "Montenegrin",
["cns"] = "Central Asmat",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Ngawn Chin",
["cnx"] = "Middle Cornish",
["coa"] = "Cocos Islands Malay",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama-Cocamilla",
["coe"] = "Koreguaje",
["cof"] = "Colorado",
["cog"] = "Chong",
["coh"] = "Chonyi",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "Coptic",
["coq"] = "Coquille",
["cor"] = "Cornish",
["cos"] = "Corsican",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "Cao Miao",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpe"] = "English based creoles and pidgins",
["cpf"] = "French-based creoles and pidgins",
["cpg"] = "Cappadocian Greek",
["cpi"] = "Chinese Pidgin English",
["cpn"] = "Cherepon",
["cpo"] = "Kpeego",
["cpp"] = "Portuguese-based creoles and pidgins",
["cpu"] = "Pichis Ashéninka",
["cpy"] = "South Ucayali Ashéninka",
["cqd"] = "Chuanqiandian Cluster Miao",
["cqu"] = "Chilean Quechua",
["cra"] = "Chara",
["crb"] = "Island Carib",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["cre"] = "Cree",
["crf"] = "Caramanta",
["crg"] = "Michif",
["cri"] = "Sãotomense",
["crj"] = "Southern East Cree",
["crk"] = "Plains Cree",
["crl"] = "Northern East Cree",
["crm"] = "Moose Cree",
["crn"] = "El Nayar Cora",
["cro"] = "Crow",
["crp"] = "Creoles and pidgins",
["crq"] = "Iyoʼwujwa Chorote",
["crr"] = "Carolina Algonquian",
["crs"] = "Seselwa Creole French",
["crt"] = "Iyoʼwujwa Chorote",
["cru"] = "Carútana",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["csa"] = "Chiltepec Chinantec",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuba Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Asho Chin",
["csi"] = "Coast Miwok",
["csj"] = "Songlai Chin",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Central Sierra Miwok",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapan Chinantec",
["csp"] = "Southern Pinghua",
["csq"] = "Croatia Sign Language",
["csr"] = "Costa Rican Sign Language",
["css"] = "Southern Ohlone",
["cst"] = "Northern Ohlone",
["csv"] = "Sumtu Chin",
["csw"] = "Swampy Cree",
["csy"] = "Siyin Chin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco",
["ctd"] = "Tedim Chin",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagonian",
["cth"] = "Thaiphum Chin",
["cti"] = "Tila Chol",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Western Highland Chatino",
["cts"] = "Northern Catanduanes Bicolano",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Tumbalá Chol",
["ctz"] = "Zacatepec Chatino",
["cua"] = "Cua",
["cub"] = "Cubeo",
["cuc"] = "Usila Chinantec",
["cug"] = "Cung",
["cuh"] = "Chuka",
["cui"] = "Cuiba",
["cuj"] = "Mashco Piro",
["cuk"] = "San Blas Kuna",
["cul"] = "Culina",
["cum"] = "Cumeral",
["cun"] = "Cunén Quiché",
["cuo"] = "Cumanagoto",
["cup"] = "Cupeño",
["cuq"] = "Cun",
["cur"] = "Chhulung",
["cus"] = "Cushitic languages",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cym"] = "Welsh",
["cyo"] = "Cuyonon",
["cze"] = "Czech",
["czh"] = "Huizhou Chinese",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "Min Zhong Chinese",
["czt"] = "Zotung Chin",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["daf"] = "Dan",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "Dakota",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dan"] = "Danish",
["dao"] = "Daai Chin",
["dap"] = "Nisi",
["daq"] = "Dandami Maria",
["dar"] = "Dargwa",
["das"] = "Daho-Doo",
["dat"] = "Darang Deng",
["dau"] = "Dar Sila Daju",
["dav"] = "Taita",
["daw"] = "Davawenyo",
["dax"] = "Dayi",
["day"] = "Land Dayak languages",
["daz"] = "Dao",
["dba"] = "Bangeri Me Dogon",
["dbb"] = "Deno",
["dbd"] = "Dadiya",
["dbe"] = "Dabe",
["dbf"] = "Edopi",
["dbg"] = "Dogul Dom Dogon",
["dbi"] = "Doka",
["dbj"] = "Ida'an",
["dbl"] = "Dyirbal",
["dbm"] = "Duguri",
["dbn"] = "Duriankere",
["dbo"] = "Dulbu",
["dbp"] = "Duwai",
["dbq"] = "Daba",
["dbr"] = "Dabarre",
["dbt"] = "Ben Tey Dogon",
["dbu"] = "Bondum Dom Dogon",
["dbv"] = "Dungu",
["dbw"] = "Bankan Tey Dogon",
["dby"] = "Dibiyaso",
["dcc"] = "Deccan",
["dcr"] = "Negerhollands",
["dda"] = "Dadi Dadi",
["ddd"] = "Dongotono",
["dde"] = "Doondo",
["ddg"] = "Fataluku",
["ddi"] = "Diodio",
["ddj"] = "Jaru",
["ddn"] = "Benin Dendi",
["ddo"] = "Tsez",
["ddr"] = "Dhudhuroa",
["dds"] = "Donno So Dogon",
["ddw"] = "Dawera-Daweloor",
["de-CH"] = "Swiss High German",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dek"] = "Dek",
["del"] = "Delaware",
["dem"] = "Dem",
["den"] = "Athapascan Slave",
["dep"] = "Pidgin Delaware",
["deq"] = "Central African Dendi",
["der"] = "Deori",
["des"] = "Desano",
["deu"] = "German",
["deu-CH"] = "Swiss High German",
["deu-at"] = "Austrian German",
["dev"] = "Domung",
["deva"] = "Devanāgarī",
["dez"] = "Dengese",
["dgb"] = "Bunoge Dogon",
["dgc"] = "Casiguran Dumagat Agta",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Northern Dagara",
["dgk"] = "Dagba",
["dgl"] = "Andaandi",
["dgn"] = "Dagoman",
["dgo"] = "Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ndrag'ngith",
["dgu"] = "Degaru",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["dha"] = "Dhanwar",
["dhd"] = "Dhundari",
["dhg"] = "Dhangu",
["dhi"] = "Dhimal",
["dhl"] = "Dhalandji",
["dhm"] = "Zemba",
["dhn"] = "Dhanki",
["dho"] = "Dhodia",
["dhr"] = "Dhargari",
["dhs"] = "Dhaiso",
["dhu"] = "Dhurga",
["dhv"] = "Dehu",
["dhw"] = "Nepali Dhanwar",
["dhx"] = "Dhungaloo",
["dia"] = "Dia",
["dib"] = "South Central Dinka",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dih"] = "Kumiai",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Southwestern Dinka",
["dil"] = "Dilling",
["dim"] = "Dime",
["dio"] = "Dibo",
["dip"] = "Northeastern Dinka",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["dit"] = "Dirari",
["diu"] = "Diriku",
["div"] = "Dhivehi",
["diw"] = "Northwestern Dinka",
["dix"] = "Dixon Reef",
["diy"] = "Diuwe",
["diz"] = "Ding",
["dja"] = "Djadjawurrung",
["djb"] = "Djinba",
["djc"] = "Dar Daju Daju",
["djd"] = "Djamindjung",
["dje"] = "Zarma",
["djf"] = "Djangun",
["dji"] = "Djinang",
["djj"] = "Djeebbana",
["djk"] = "Aukan",
["djl"] = "Djiwarli",
["djm"] = "Jamsay Dogon",
["djn"] = "Djauan",
["djo"] = "Djongkang",
["djr"] = "Djambarrpuyngu",
["dju"] = "Kapriman",
["djw"] = "Djawi",
["dka"] = "Dakpakha",
["dkk"] = "Dakka",
["dkl"] = "Kolum So Dogon",
["dkr"] = "Kuijau",
["dks"] = "Southeastern Dinka",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "Dalmatian",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Dimir",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "Upper Kinabatangan",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama",
["dmo"] = "Kemezung",
["dmr"] = "East Damar",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "Dungan",
["dni"] = "Lower Grand Valley Dani",
["dnj"] = "Dan",
["dnk"] = "Dengka",
["dnn"] = "Dzùùngoo",
["dno"] = "Northern Lendu Ndrulo",
["dnr"] = "Danaru",
["dnt"] = "Mid Grand Valley Dani",
["dnu"] = "Danau",
["dnv"] = "Danu",
["dnw"] = "Western Dani",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "Northern Dong",
["doe"] = "Doe",
["dof"] = "Domu",
["doh"] = "Dong",
["doi"] = "Dogri",
["dok"] = "Dondo",
["dol"] = "Doso",
["don"] = "Papua New Guinean Toura",
["doo"] = "Dongo",
["dop"] = "Lukpa",
["doq"] = "Dominican Sign Language",
["dor"] = "Dori'o",
["dos"] = "Dogosé",
["dot"] = "Dass",
["dov"] = "Dombe",
["dow"] = "Doyayo",
["dox"] = "Bussa",
["doy"] = "Dompo",
["doz"] = "Dorze",
["dpp"] = "Papar",
["dra"] = "Dravidian languages",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["dre"] = "Dolpo",
["drg"] = "Rungus",
["drh"] = "Darkhat",
["dri"] = "Cʼlela",
["drl"] = "Darling",
["drn"] = "West Damar",
["dro"] = "Daro-Matu",
["drq"] = "Dura",
["drr"] = "Dororo",
["drs"] = "Gedeo",
["drt"] = "Drents",
["dru"] = "Rukai",
["drw"] = "Darwazi",
["dry"] = "Darai",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya Oriya",
["dsq"] = "Dawsahak",
["dta"] = "Daur",
["dtb"] = "Labuk-Kinabatangan Kadazan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dtn"] = "Daatsʼiin",
["dto"] = "Tommo So Dogon",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["dud"] = "Hun-Saare",
["due"] = "Umiray Dumaget Agta",
["duf"] = "Dumbea",
["dug"] = "Duruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duj"] = "Dhuwal",
["duk"] = "Duduela",
["dul"] = "Alabat Island Agta",
["dum"] = "Middle Dutch",
["dun"] = "Dusun Deyah",
["duo"] = "Dupaninan Agta",
["dup"] = "Duanoʼ",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["dut"] = "Dutch",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duungooma",
["duy"] = "Dicamay Agta",
["duz"] = "Duli",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwk"] = "Dawik Kui",
["dwl"] = "Walo Kumbe Dogon",
["dwr"] = "Dawro",
["dws"] = "Dutton World Speedwords",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Villa Viciosa Agta",
["dyi"] = "Djimini Senoufo",
["dyk"] = "Land Dayak",
["dym"] = "Yanda Dom Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dza"] = "Duguza",
["dzd"] = "Daza",
["dze"] = "Djiwarli",
["dzg"] = "Dazaga",
["dzl"] = "Dzalakha",
["dzn"] = "Dzando",
["dzo"] = "Dzongkha",
["eaa"] = "Karenggapa",
["ebc"] = "Beginci",
["ebg"] = "Ebughu",
["ebk"] = "Eastern Bontok",
["ebo"] = "Teke-Ebo",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Ecuadorian Sign Language",
["ecy"] = "Eteocypriot",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["ega"] = "Ega",
["ego"] = "Eggon",
["egy"] = "Ancient Egyptian",
["ehu"] = "Ehueun",
["eip"] = "Eipomek",
["eit"] = "Eitiep",
["eiv"] = "Askopan",
["eja"] = "Ejamat",
["eka"] = "Ekajuk",
["ekc"] = "Eastern Karnic",
["eke"] = "Ekit",
["ekg"] = "Ekari",
["eki"] = "Eki",
["ekk"] = "Standard Estonian",
["ekl"] = "Kol",
["ekm"] = "Elip",
["eko"] = "Koti",
["ekp"] = "Ekpeye",
["ekr"] = "Yace",
["eky"] = "Eastern Kayah",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["ell"] = "Greek",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elp"] = "Elpaputih",
["elu"] = "Elu",
["elx"] = "Elamite",
["ema"] = "Emai-Iuleha-Ora",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Eastern Meohang",
["emi"] = "Mussau-Emira",
["emk"] = "Eastern Maninkakan",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emo"] = "Emok",
["emp"] = "Northern Emberá",
["ems"] = "Pacific Gulf Yupik",
["emu"] = "Eastern Muria",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Epigraphic Mayan",
["en-CA"] = "Canadian English",
["en-GB"] = "British English",
["en-US"] = "American English",
["en-us"] = "American English",
["ena"] = "Apali",
["enb"] = "Endo",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Forest Enets",
["eng"] = "English",
["eng-CA"] = "Canadian English",
["eng-GB"] = "British English",
["eng-US"] = "American English",
["eng-ca"] = "Canadian English",
["eng-gb"] = "British English",
["eng-us"] = "American English",
["enh"] = "Tundra Enets",
["eni"] = "Enim",
["enl"] = "Enlhet",
["enm"] = "Middle English",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emumu",
["enu"] = "Enu",
["env"] = "Edu State Enwan",
["enw"] = "Akwa Ibom State Enwan",
["enx"] = "Enxet",
["eot"] = "Côte d'Ivoire Beti",
["epi"] = "Epie",
["epo"] = "Esperanto",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "South Efate",
["ero"] = "Horpa",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["ese"] = "Ese Ejja",
["esg"] = "Aheri Gondi",
["esh"] = "Eshtehardi",
["esi"] = "North Alaskan Inupiatun",
["esk"] = "Northwest Alaska Inupiatun",
["esl"] = "Egypt Sign Language",
["esm"] = "Esuma",
["esn"] = "Salvadoran Sign Language",
["eso"] = "Estonian Sign Language",
["esq"] = "Esselen",
["ess"] = "Central Siberian Yupik",
["est"] = "Estonian",
["esu"] = "Central Yupik",
["esy"] = "Eskayan",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Ethiopian Sign Language",
["etn"] = "Vanuatu Eton",
["eto"] = "Cameroonian Eton",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "Etruscan",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eur"] = "Europanto",
["eus"] = "Basque",
["eve"] = "Even",
["evh"] = "Uvbie",
["evn"] = "Evenki",
["ewe"] = "Ewe",
["ewo"] = "Ewondo",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["faa"] = "Fasu",
["fab"] = "Fa d'Ambu",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Fali Of Baissa",
["fai"] = "Faiwol",
["faj"] = "Faita",
["fak"] = "Cameroonian Fang",
["fal"] = "South Fali",
["fam"] = "Fam",
["fan"] = "Fang",
["fao"] = "Faroese",
["fap"] = "Palor",
["far"] = "Fataleka",
["fas"] = "Persian",
["fau"] = "Fayu",
["fax"] = "Fala",
["fay"] = "Southwestern Fars",
["faz"] = "Northwestern Fars",
["fbl"] = "West Albay Bikol",
["fcs"] = "Quebec Sign Language",
["fer"] = "Feroge",
["ffi"] = "Foia Foia",
["ffm"] = "Maasina Fulfulde",
["fgr"] = "Fongoro",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fij"] = "Fijian",
["fil"] = "Filipino",
["fin"] = "Finnish",
["fip"] = "Fipa",
["fir"] = "Firan",
["fiu"] = "Finno-Ugric languages",
["fiw"] = "Fiwaga",
["fiz"] = "Izere",
["fkk"] = "Kirya-Konzəl",
["fkv"] = "Kven Finnish",
["fla"] = "Kalispel-Pend d'Oreille",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "North Fali",
["flm"] = "Falam Chin",
["fln"] = "Flinders Island",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Far Western Muria",
["fnb"] = "Fanbak",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Fernando Po Creole English",
["fqs"] = "Fas",
["fra"] = "French",
["frd"] = "Fordata",
["fre"] = "French",
["fri"] = "Western Frisian",
["frk"] = "Frankish",
["frm"] = "Middle French",
["fro"] = "Old French",
["frq"] = "Forak",
["frs"] = "Eastern Frisian",
["frt"] = "Fortsenal",
["fry"] = "Western Frisian",
["fse"] = "Finnish Sign Language",
["fsl"] = "French Sign Language",
["fss"] = "Finnish-Swedish Sign Language",
["fub"] = "Adamawa Fulfulde",
["fuc"] = "Pulaar",
["fud"] = "East Futuna",
["fue"] = "Borgu Fulfulde",
["fuf"] = "Pular",
["fuh"] = "Western Niger Fulfulde",
["fui"] = "Bagirmi Fulfulde",
["fuj"] = "Ko",
["ful"] = "Fula",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fuq"] = "Central-Eastern Niger Fulfulde",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuv"] = "Nigerian Fulfulde",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["gab"] = "Gabri",
["gac"] = "Mixed Great Andamanese",
["gad"] = "Gaddang",
["gae"] = "Guarequena",
["gaf"] = "Gende",
["gah"] = "Alekano",
["gai"] = "Borei",
["gaj"] = "Gadsup",
["gak"] = "Gamkonora",
["gal"] = "Galoli",
["gam"] = "Kandawo",
["gao"] = "Gants",
["gap"] = "Gal",
["gaq"] = "Gtaʼ",
["gar"] = "Galeya",
["gas"] = "Adiwasi Garasia",
["gat"] = "Kenati",
["gau"] = "Mudhili Gadaba",
["gav"] = "Gabutamon",
["gaw"] = "Nobonob",
["gax"] = "Borana-Arsi-Guji Oromo",
["gay"] = "Gayo",
["gaz"] = "West Central Oromo",
["gba"] = "Central African Gbaya",
["gbb"] = "Kaytetye",
["gbc"] = "Garawa",
["gbd"] = "Karadjeri",
["gbe"] = "Niksek",
["gbf"] = "Gaikundi",
["gbg"] = "Gbanziri",
["gbh"] = "Defi Gbe",
["gbi"] = "Galela",
["gbj"] = "Bodo Gadaba",
["gbk"] = "Gaddi",
["gbl"] = "Gamit",
["gbm"] = "Garhwali",
["gbn"] = "Mo'da",
["gbo"] = "Northern Grebo",
["gbp"] = "Gbaya-Bossangoa",
["gbq"] = "Gbaya-Bozoum",
["gbr"] = "Gbagyi",
["gbs"] = "Gbesi Gbe",
["gbu"] = "Gagadu",
["gbv"] = "Gbanu",
["gbw"] = "Gabi-Gabi",
["gbx"] = "Eastern Xwla Gbe",
["gby"] = "Gbari",
["gbz"] = "Zoroastrian Dari",
["gcc"] = "Mali",
["gcd"] = "Ganggalida",
["gce"] = "Galice",
["gcl"] = "Grenadian Creole English",
["gcn"] = "Gaina",
["gct"] = "Colonia Tovar German",
["gda"] = "Gade Lohar",
["gdb"] = "Pottangi Ollar Gadaba",
["gdc"] = "Gugu Badhun",
["gdd"] = "Gedaged",
["gde"] = "Gude",
["gdf"] = "Guduf-Gava",
["gdg"] = "Ga'dang",
["gdh"] = "Gadjerawang",
["gdi"] = "Gundi",
["gdj"] = "Gurdjar",
["gdk"] = "Gadang",
["gdl"] = "Dirasha",
["gdm"] = "Laal",
["gdn"] = "Umanakaina",
["gdo"] = "Ghodoberi",
["gdq"] = "Mehri",
["gdr"] = "Wipi",
["gds"] = "Ghandruk Sign Language",
["gdt"] = "Kungardutyi",
["gdu"] = "Gudu",
["gdx"] = "Godwari",
["gea"] = "Geruma",
["geb"] = "Kire",
["gec"] = "Gboloo Grebo",
["ged"] = "Gade",
["gef"] = "Gerai",
["geg"] = "Gengle",
["geh"] = "Hutterite German",
["gei"] = "Gebe",
["gej"] = "Gen",
["gek"] = "Yiwom",
["gel"] = "Kag-Fer-Jiir-Koor-Ror-Us-Zuksun",
["gem"] = "Germanic languages",
["gen"] = "Geman Deng",
["geo"] = "Georgian",
["geq"] = "Geme",
["ger"] = "German",
["ger-CH"] = "Swiss High German",
["ger-at"] = "Austrian German",
["ges"] = "Geser-Gorom",
["gev"] = "Eviya",
["gew"] = "Gera",
["gex"] = "Garre",
["gey"] = "Enya",
["gez"] = "Geez",
["gfk"] = "Patpatar",
["gft"] = "Gafat",
["gfx"] = "Mangetti Dune !Xung",
["gga"] = "Gao",
["ggb"] = "Gbii",
["ggd"] = "Gugadj",
["gge"] = "Guragone",
["ggg"] = "Gurgula",
["ggh"] = "Garreh-Ajuran",
["ggk"] = "Kungarakany",
["ggl"] = "Ganglau",
["ggm"] = "Gugu Mini",
["ggn"] = "Eastern Gurung",
["ggo"] = "Southern Gondi",
["ggr"] = "Aghu Tharnggalu",
["ggt"] = "Gitua",
["ggu"] = "Gagu",
["ggw"] = "Gogodala",
["gha"] = "Ghadamès",
["ghc"] = "Hiberno-Scottish Gaelic",
["ghe"] = "Southern Ghale",
["ghh"] = "Northern Ghale",
["ghk"] = "Geko Karen",
["ghl"] = "Ghulfan",
["ghn"] = "Ghanongga",
["gho"] = "Ghomara",
["ghr"] = "Ghera",
["ghs"] = "Guhu-Samane",
["ght"] = "Kutang Ghale",
["gia"] = "Kitja",
["gib"] = "Gibanawa",
["gic"] = "Gail",
["gid"] = "Gidar",
["gie"] = "Guébie Gaɓogbo",
["gig"] = "Goaria",
["gih"] = "Githabul",
["gil"] = "Gilbertese",
["gim"] = "Eastern Highlands Gimi",
["gin"] = "Hinukh",
["gio"] = "Gelao",
["gip"] = "West New British Gimi",
["giq"] = "Green Gelao",
["gir"] = "Red Gelao",
["gis"] = "North Giziga",
["git"] = "Gitxsan",
["giu"] = "Mulao",
["giw"] = "White Gelao",
["gix"] = "Gilima",
["giy"] = "Giyug",
["giz"] = "South Giziga",
["gji"] = "Geji",
["gjk"] = "Kachi Koli",
["gjm"] = "Gunditjmara",
["gjn"] = "Gonja",
["gjr"] = "Gurindji Kriol",
["gju"] = "Gujari",
["gka"] = "Guya",
["gkd"] = "Madang Province Magɨ",
["gke"] = "Ndai",
["gkn"] = "Gokana",
["gko"] = "Kok-Nar",
["gkp"] = "Guinea Kpelle",
["gku"] = "ǂUngkue",
["gla"] = "Scots Gaelic",
["glc"] = "Bon Gula",
["gle"] = "Irish",
["glg"] = "Galician",
["glh"] = "Northwest Pashayi",
["gli"] = "Guliguli",
["glj"] = "Gula Iro",
["gll"] = "Garlali",
["glo"] = "Galambu",
["glr"] = "Glaro-Twabo",
["glu"] = "Chadian Gula",
["glv"] = "Manx",
["glw"] = "Glavda",
["gly"] = "Gule",
["gma"] = "Gambera",
["gmb"] = "Gula'alaa",
["gmd"] = "Mághdì",
["gmg"] = "Magɨyi",
["gmh"] = "Middle High German",
["gml"] = "Middle Low German",
["gmm"] = "Gbaya-Mbodomo",
["gmn"] = "Gimnime",
["gmo"] = "Gamo-Gofa-Dawro",
["gmr"] = "Mirniny Mirning",
["gmu"] = "Gumalu",
["gmv"] = "Gamo",
["gmx"] = "Magoma",
["gmy"] = "Mycenaean Greek",
["gmz"] = "Mgbolizhia",
["gna"] = "Kaansa",
["gnb"] = "Gangte",
["gnc"] = "Guanche",
["gnd"] = "Zulgo-Gemzek",
["gne"] = "Ganang",
["gng"] = "Ngangam",
["gnh"] = "Lere",
["gni"] = "Gooniyandi",
["gnj"] = "Ngen",
["gnk"] = "G{{!}}{{!}}ana",
["gnl"] = "Gangulu",
["gnm"] = "Ginuman",
["gnn"] = "Gumatj",
["gno"] = "Northern Gondi",
["gnq"] = "Gana",
["gnr"] = "Gureng Gureng",
["gnt"] = "Guntai",
["gnu"] = "Gnau",
["gnw"] = "Western Bolivian Guaraní",
["gnz"] = "Ganzi",
["goa"] = "Guro",
["gob"] = "Playero",
["goc"] = "Gorakor",
["god"] = "Godié",
["goe"] = "Gongduk",
["gof"] = "Gofa",
["gog"] = "Gogo",
["goh"] = "Old High German",
["goi"] = "Gobasi",
["goj"] = "Gowlan",
["gok"] = "Gowli",
["gol"] = "Gola",
["gom-Latn"] = "Latin-script Goan Konkani",
["gon"] = "Gondi",
["goo"] = "Gone Dau",
["gop"] = "Yeretuar",
["goq"] = "Gorap",
["gos"] = "Gronings",
["gou"] = "Gavar",
["gow"] = "Gorowa",
["gox"] = "Gobu",
["goy"] = "Goundo",
["goz"] = "Gozarkhani",
["gpa"] = "Gupa-Abawa",
["gpn"] = "Taiap",
["gqa"] = "Ga",
["gqi"] = "Guiqiong",
["gqn"] = "Brazilian Guana",
["gqr"] = "Gor",
["gqu"] = "Qau",
["gra"] = "Rajput Garasia",
["grb"] = "Grebo",
["grc-koi"] = "Koine Greek",
["grd"] = "Guruntum-Mbaaru",
["gre"] = "Greek",
["grg"] = "Madi",
["grh"] = "Gbiri-Niragu",
["gri"] = "Ghari",
["grj"] = "Southern Grebo",
["grm"] = "Kota Marudu Talantang",
["grn"] = "Guaraní",
["gro"] = "Groma",
["grq"] = "Gorovu",
["grr"] = "Taznatit",
["grs"] = "Gresi",
["grt"] = "Garo",
["gru"] = "Kistane",
["grv"] = "Central Grebo",
["grw"] = "Gweda",
["grx"] = "Guriaso",
["gry"] = "Barclayville Grebo",
["grz"] = "Guramalum",
["gsc"] = "Gascon",
["gse"] = "Ghanaian Sign Language",
["gsg"] = "German Sign Language",
["gsl"] = "Gusilay",
["gsm"] = "Guatemalan Sign Language",
["gsn"] = "Gusan",
["gso"] = "Southwest Gbaya",
["gsp"] = "Wasembo",
["gss"] = "Greek Sign Language",
["gta"] = "Guató",
["gti"] = "Gbati-ri",
["gtu"] = "Aghu-Tharnggala",
["gua"] = "Shiki",
["gub"] = "Guajajára",
["gud"] = "Yocoboué Dida",
["gue"] = "Gurinji",
["guf"] = "Gupapuyngu",
["gug"] = "Paraguayan Guaraní",
["guh"] = "Guahibo",
["gui"] = "Eastern Bolivian Guaraní",
["guj"] = "Gujarati",
["guk"] = "Gumuz",
["gul"] = "Sea Island Creole English",
["gum"] = "Guambiano",
["gun"] = "Mbyá Guaraní",
["guo"] = "Guayabero",
["gup"] = "Gunwinggu",
["guq"] = "Aché",
["gus"] = "Guinean Sign Language",
["gut"] = "Maléku Jaíka",
["guu"] = "Yanomamö",
["guv"] = "Gey",
["gux"] = "Gourmanchéma",
["guz"] = "Gusii",
["gva"] = "Paraguayan Guana",
["gvc"] = "Guanano",
["gve"] = "Duwet",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião Do Jiparaná",
["gvp"] = "Pará Gavião",
["gvr"] = "Western Gurung",
["gvs"] = "Gumawana",
["gvy"] = "Guyani",
["gwa"] = "Mbato",
["gwb"] = "Gwa",
["gwc"] = "Kalami",
["gwd"] = "Gawwada",
["gwe"] = "Gweno",
["gwf"] = "Gowro",
["gwg"] = "Moo",
["gwi"] = "Gwich'in",
["gwj"] = "G{{!}}ui",
["gwm"] = "Awngthim",
["gwn"] = "Gwandara",
["gwr"] = "Gwere",
["gwt"] = "Gawar-Bati",
["gwu"] = "Guwamu",
["gww"] = "Kwini",
["gwx"] = "Gua",
["gxx"] = "Wè Southern",
["gya"] = "Northwest Gbaya",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Guyanese Creole English",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzi"] = "Gazi",
["gzn"] = "Gane",
["haa"] = "Han",
["hab"] = "Hanoi Sign Language",
["hac"] = "Gurani",
["had"] = "Hatam",
["hae"] = "Eastern Oromo",
["haf"] = "Haiphong Sign Language",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "Hajong",
["hal"] = "Halang",
["ham"] = "Hewa",
["han"] = "Hangaza",
["hans"] = "Simplified Chinese",
["hans-CN"] = "China Simplified Chinese",
["hans-HK"] = "Hong Kong Simplified Chinese",
["hans-TW"] = "Taiwanese Simplified Chinese",
["hant"] = "Traditional Chinese",
["hant-CN"] = "China Traditional Chinese",
["hant-HK"] = "Hong Kong Traditional Chinese",
["hant-TW"] = "Taiwanese Traditional Chinese",
["hao"] = "Hakö",
["hap"] = "Hupla",
["haq"] = "Ha",
["har"] = "Harari",
["has"] = "Haisla",
["hat"] = "Haitian Creole",
["hau"] = "Hausa",
["hav"] = "Havu",
["hax"] = "Southern Haida",
["hay"] = "Haya",
["haz"] = "Hazaragi",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbo"] = "Ancient Hebrew",
["hbs"] = "Serbo-Croatian",
["hbu"] = "Habu",
["hca"] = "Andaman Creole Hindi",
["hch"] = "Huichol",
["hdn"] = "Northern Haida",
["hds"] = "Honduras Sign Language",
["hdy"] = "Hadiyya",
["hea"] = "Northern Qiandong Hmong",
["heb"] = "Hebrew",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["her"] = "Herero",
["hgm"] = "Hai{{!}}{{!}}om",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hin"] = "Hindi",
["hio"] = "Tsoa",
["hir"] = "Himarimã",
["hit"] = "Hittite",
["hiw"] = "Hiw",
["hix"] = "Hixkaryána",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Hong Kong Sign Language",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hlu"] = "Hieroglyphic Luwian",
["hma"] = "Southern Mashan Hmong",
["hmb"] = "Humburi Senni Songhay",
["hmc"] = "Central Huishui Hmong",
["hmd"] = "Northeastern Dian Hmong",
["hme"] = "Eastern Huishui Hmong",
["hmf"] = "Hmong Don",
["hmg"] = "Southwestern Guiyang Hmong",
["hmh"] = "Southwestern Huishui Hmong",
["hmi"] = "Northern Huishui Hmong",
["hmj"] = "Chonganjiang Hmong",
["hmk"] = "Maek",
["hml"] = "Luopohe Hmong",
["hmm"] = "Central Mashan Hmong",
["hmn"] = "Hmong",
["hmo"] = "Hiri Motu",
["hmp"] = "Northern Mashan Hmong",
["hmq"] = "Eastern Qiandong Hmong",
["hmr"] = "Hmar",
["hms"] = "Southern Qiandong Hmong",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Western Mashan Hmong",
["hmy"] = "Southern Guiyang Hmong",
["hmz"] = "Hmong Shua",
["hna"] = "Cameroonian Mina",
["hnd"] = "Southern Hindko",
["hne"] = "Chhattisgarhi",
["hng"] = "Hungu",
["hnh"] = "Ani",
["hni"] = "Hani",
["hnj"] = "Hmong Njua",
["hnn"] = "Hanunoo",
["hns"] = "Caribbean Hindustani",
["hnu"] = "Hung",
["hoa"] = "Hoava",
["hob"] = "Madang Province Mari",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Harauti",
["hol"] = "Holu",
["hom"] = "Homa",
["hoo"] = "Holoholo",
["hop"] = "Hopi",
["hor"] = "Horo",
["hos"] = "Ho Chi Minh City Sign Language",
["hot"] = "Hote",
["hov"] = "Hovongan",
["how"] = "Honi",
["hoy"] = "Holiya",
["hoz"] = "Hozo",
["hpo"] = "Hpon",
["hps"] = "Hawaiian Pidgin Sign Language",
["hra"] = "Hrangkhol",
["hrc"] = "Niwer Mil",
["hre"] = "Hre",
["hrk"] = "Haruku",
["hrm"] = "Horned Miao",
["hro"] = "Haroi",
["hrp"] = "Nhirrpi",
["hrr"] = "Horuru",
["hrt"] = "Hértevin",
["hru"] = "Hruso",
["hrv"] = "Croatian",
["hrw"] = "Warwar Feni",
["hrz"] = "Harzani",
["hsf"] = "Southeastern Huastec",
["hsh"] = "Hungarian Sign Language",
["hsl"] = "Hausa Sign Language",
["hss"] = "Harsusi",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["htx"] = "Middle Hittite",
["hub"] = "Huambisa",
["huc"] = "ǂʼAmkoe",
["hud"] = "Huaulu",
["hue"] = "San Francisco Del Mar Huave",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Northern Guiyang Hmong",
["huk"] = "Hulung",
["hul"] = "Hula",
["hum"] = "Hungana",
["hun"] = "Hungarian",
["huo"] = "Hu",
["hup"] = "Hupa",
["huq"] = "Tsat",
["hur"] = "Halkomelem",
["hus"] = "Veracruz Huastec",
["hut"] = "Humla",
["huu"] = "Murui Huitoto",
["huv"] = "San Mateo Del Mar Huave",
["huw"] = "Hukumina",
["hux"] = "Nüpode Huitoto",
["huy"] = "Hulaulá",
["huz"] = "Hunzib",
["hva"] = "San Luís Potosí Huastec",
["hvc"] = "Langay",
["hve"] = "San Dionisio Del Mar Huave",
["hvk"] = "Haveke",
["hvn"] = "Sabu",
["hvv"] = "Santa María Del Mar Huave",
["hwa"] = "Wané",
["hwc"] = "Hawaiian Creole English",
["hwo"] = "Hwana",
["hya"] = "Hya",
["hye"] = "Armenian",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iap"] = "Iapama",
["iar"] = "Purari",
["iba"] = "Iban",
["ibb"] = "Ibibio",
["ibd"] = "Iwaidja",
["ibe"] = "Akpes",
["ibg"] = "Ibanag",
["ibh"] = "Bih",
["ibi"] = "Ibilo",
["ibl"] = "Ibaloi",
["ibm"] = "Agoi",
["ibn"] = "Ibino",
["ibo"] = "Igbo",
["ibr"] = "Ibuoro",
["ibu"] = "Ibu",
["iby"] = "Ibani",
["ica"] = "Ede Ica",
["ice"] = "Icelandic",
["ich"] = "Etkywan",
["icl"] = "Icelandic Sign Language",
["icr"] = "Islander Creole English",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portuguese",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["ido"] = "Ido",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["igb"] = "Ebira",
["ige"] = "Igede",
["igg"] = "Igana",
["igm"] = "Kanggape",
["ign"] = "Ignaciano",
["igo"] = "Isebe",
["igs"] = "Interglossa",
["igw"] = "Igwe",
["ihb"] = "Iha Based Pidgin",
["ihi"] = "Ihievbe",
["ihp"] = "Iha",
["ihw"] = "Bidhawal",
["iii"] = "Nuosu",
["iin"] = "Thiin",
["ijc"] = "Izon",
["ije"] = "Biseni",
["ijj"] = "Ede Ije",
["ijn"] = "Kalabari",
["ijo"] = "Ijo languages",
["ijs"] = "Southeast Ijo",
["ike"] = "Eastern Canadian Inuktitut",
["iki"] = "Iko",
["ikk"] = "Ika",
["ikl"] = "Ikulu",
["iko"] = "Olulumo-Ikom",
["ikp"] = "Ikpeshi",
["ikr"] = "Ikaranggal",
["iks"] = "Inuit Sign Language",
["ikt"] = "Western Canadian Inuktitut",
["iku"] = "Inuktitut",
["ikv"] = "Iku-Gora-Ankwa",
["ikw"] = "Ikwere",
["ikx"] = "Ik",
["ikz"] = "Ikizu",
["ila"] = "Ile Ape",
["ilb"] = "Ila",
["ile"] = "Interlingue",
["ilg"] = "Garig-Ilgar",
["ili"] = "Ili Turki",
["ilk"] = "Ilongot",
["ill"] = "Iranun",
["ilm"] = "Malaysian Iranun",
["ilp"] = "Filipino Iranun",
["ils"] = "International Sign",
["ilu"] = "Iliʼuun",
["ilv"] = "Ilue",
["ilw"] = "Talur",
["ima"] = "Mala Malasar",
["ime"] = "Imeraguen",
["imi"] = "Anamgura",
["iml"] = "Miluk",
["imn"] = "Imonda",
["imo"] = "Imbongu",
["imr"] = "Imroing",
["ims"] = "Marsian",
["imy"] = "Milyan",
["ina"] = "Interlingua",
["inb"] = "Inga",
["inc"] = "Indo-Aryan languages",
["ind"] = "Indonesian",
["ine"] = "Indo-European languages",
["ing"] = "Deg Xinag",
["inj"] = "Jungle Inga",
["inl"] = "Indonesian Sign Language",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "Indian Sign Language",
["int"] = "Intha",
["inz"] = "Ineseño",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Iowa-Oto",
["ipi"] = "Ipili",
["ipk"] = "Inupiaq",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira"] = "Iranian languages",
["ire"] = "Iresim",
["irh"] = "Irarutu",
["iri"] = "Irigwe",
["irk"] = "Iraqw",
["irn"] = "Irántxe",
["iro"] = "Iroquoian languages",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Italian Sign Language",
["isg"] = "Irish Sign Language",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["isl"] = "Icelandic",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Israeli Sign Language",
["ist"] = "Istriot",
["isu"] = "Menchum Division Isu",
["ita"] = "Italian",
["itb"] = "Binongan Itneg",
["itd"] = "Southern Tidung",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Italian",
["itl"] = "Itelmen",
["itm"] = "Itu Mbon Uzo",
["ito"] = "Itonama",
["itr"] = "Iteri",
["its"] = "Isekiri",
["itt"] = "Maeng Itneg",
["itu"] = "Itutang",
["itv"] = "Itawit",
["itw"] = "Ito",
["itx"] = "Itik",
["ity"] = "Moyadan Itneg",
["itz"] = "Itzá",
["ium"] = "Iu Mien",
["ivb"] = "Ibatan",
["ivv"] = "Ivatan",
["iwk"] = "I-Wak",
["iwm"] = "Iwam",
["iwo"] = "Iwur",
["iws"] = "Sepik Iwam",
["ixc"] = "Ixcatec",
["ixi"] = "Nebaj Ixil",
["ixj"] = "Chajul Ixil",
["ixl"] = "San Juan Cotzal Ixil",
["iya"] = "Iyayu",
["iyo"] = "Mesaka",
["iyx"] = "Congolese Yaka",
["izh"] = "Ingrian",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izii",
["ja-Hani"] = "Japanese",
["ja-Latn"] = "Japanese",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Eastern Jacalteco",
["jad"] = "Jahanka",
["jae"] = "Yabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jai"] = "Western Jacalteco",
["jaj"] = "Zazao",
["jak"] = "Jakun",
["jal"] = "Yalahatan",
["jan"] = "Jandai",
["jao"] = "Yanyuwa",
["jap"] = "Jaruára",
["jaq"] = "Yaqay",
["jar"] = "Nigerian Jarawa",
["jas"] = "New Caledonian Javanese",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jav"] = "Javanese",
["jax"] = "Jambi Malay",
["jay"] = "Jarnango",
["jaz"] = "Jawe",
["jbe"] = "Judeo-Berber",
["jbi"] = "Badjiri",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nafusi",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Jamaican Country Sign Language",
["jct"] = "Judeo-Crimean Tatar",
["jda"] = "Jad",
["jdg"] = "Jadgali",
["jdt"] = "Judeo-Tat",
["jeb"] = "Jebero",
["jee"] = "Jerung",
["jeg"] = "Jeng",
["jeh"] = "Jeh",
["jei"] = "Yei",
["jek"] = "Jeri Kuo",
["jel"] = "Yelmek",
["jen"] = "Dza",
["jer"] = "Jere",
["jet"] = "Manem",
["jeu"] = "Jonkor Bourmataguil",
["jgb"] = "Ngbee",
["jge"] = "Judeo-Georgian",
["jgk"] = "Gwak",
["jgo"] = "Ngomba",
["jhi"] = "Jehai",
["jhs"] = "Jhankot Sign Language",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Djingili",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Cameroonian Jimi",
["jio"] = "Jiamao",
["jiq"] = "Guanyinqiao",
["jit"] = "Jita",
["jiu"] = "Youle Jinuo",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jinuo",
["jje"] = "Jejueo",
["jjr"] = "Bankal",
["jka"] = "Kaera",
["jkm"] = "Mobwa Karen",
["jko"] = "Kubo",
["jkp"] = "Paku Karen",
["jkr"] = "Indian Koro",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Jamaican Sign Language",
["jma"] = "Dima",
["jmb"] = "Zumbun",
["jmc"] = "Machame",
["jmd"] = "Yamdena",
["jmi"] = "Nigerian Jimi",
["jml"] = "Jumli",
["jmn"] = "Makuri Naga",
["jmr"] = "Kamara",
["jms"] = "Nigerian Mashi",
["jmw"] = "Mouwase",
["jmx"] = "Western Juxtlahuaca Mixtec",
["jna"] = "Jangshung",
["jnd"] = "Jandavra",
["jng"] = "Yangman",
["jni"] = "Janji",
["jnj"] = "Yemsa",
["jnl"] = "Rawat",
["jns"] = "Jaunsari",
["job"] = "Joba",
["jod"] = "Wojenaka",
["jog"] = "Jogi",
["jor"] = "Jorá",
["jos"] = "Jordanian Sign Language",
["jow"] = "Jowulu",
["jpa"] = "Jewish Palestinian Aramaic",
["jpn"] = "Japanese",
["jpr"] = "Judeo-Persian",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrb"] = "Judeo-Arabic",
["jrr"] = "Jiru",
["jrt"] = "Jorto",
["jru"] = "Japrería",
["jsl"] = "Japanese Sign Language",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "Jurchen",
["jud"] = "Worodougou",
["juh"] = "Hõne",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Jumla Sign Language",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jvd"] = "Javindo",
["jvn"] = "Caribbean Javanese",
["jwi"] = "Jwira-Pepesa",
["jya"] = "Jiarong",
["jye"] = "Judeo-Yemeni Arabic",
["jyy"] = "Jaya",
["kac"] = "Jingpho",
["kad"] = "Kadara",
["kae"] = "Ketangalan",
["kaf"] = "Katso",
["kag"] = "Kajaman",
["kah"] = "Central African Kara",
["kaj"] = "Jju",
["kak"] = "Kayapa Kallahan",
["kal"] = "Kalaallisut",
["kam"] = "Kamba",
["kan"] = "Kannada",
["kao"] = "Xaasongaxango",
["kap"] = "Bezhta",
["kaq"] = "Capanahua",
["kar"] = "Karen languages",
["kas"] = "Kashmiri",
["kat"] = "Georgian",
["kau"] = "Kanuri",
["kav"] = "Katukína",
["kaw"] = "Kawi",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kaz"] = "Kazakh",
["kba"] = "Kalarko",
["kbb"] = "Kaxuiâna",
["kbc"] = "Kadiwéu",
["kbe"] = "Kanju",
["kbf"] = "Kakauhua",
["kbg"] = "Khamba",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbl"] = "Kanembu",
["kbm"] = "Iwal",
["kbn"] = "Central African Kare",
["kbo"] = "Keliko",
["kbq"] = "Kamano",
["kbr"] = "Kafa",
["kbs"] = "Kande",
["kbt"] = "Abadi",
["kbu"] = "Kabutra",
["kbv"] = "Indonesian Dera",
["kbw"] = "Kaiep",
["kbx"] = "Ap Ma",
["kby"] = "Manga Kanuri",
["kbz"] = "Duhwa",
["kca"] = "Khanty",
["kcb"] = "Kawacha",
["kcc"] = "Lubila",
["kcd"] = "Ngkâlmpw Kanum",
["kce"] = "Kaivi",
["kcf"] = "Ukaan",
["kch"] = "Vono",
["kci"] = "Kamantan",
["kcj"] = "Kobiana",
["kck"] = "Kalanga",
["kcl"] = "Papua New Guinean Kela",
["kcm"] = "Central African Gula",
["kcn"] = "Nubi",
["kco"] = "Kinalakna",
["kcp"] = "Kanga",
["kcq"] = "Kamo",
["kcr"] = "Katla",
["kcs"] = "Koenoem",
["kct"] = "Kaian",
["kcu"] = "Tanzanian Kami",
["kcv"] = "Kete",
["kcw"] = "Kabwari",
["kcx"] = "Kachama-Ganjule",
["kcy"] = "Korandje",
["kcz"] = "Konongo",
["kda"] = "Worimi",
["kdc"] = "Kutu",
["kdd"] = "Yankunytjatjara",
["kde"] = "Makonde",
["kdf"] = "Mamusi",
["kdg"] = "Seba",
["kdh"] = "Tem",
["kdi"] = "Kumam",
["kdj"] = "Karamojong",
["kdk"] = "Numee",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kds"] = "Lahu Shi",
["kdt"] = "Kuy",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Eastern Keres",
["kef"] = "Kpessi",
["keg"] = "Tese",
["keh"] = "Keak",
["kei"] = "Kei",
["kej"] = "Kadar",
["kek"] = "Kekchí",
["kel"] = "Congolese Kela",
["kem"] = "Kemak",
["ken"] = "Kenyang",
["keo"] = "Kakwa",
["kep"] = "Kaikadi",
["keq"] = "Kamar",
["ker"] = "Kera",
["kes"] = "Kugbo",
["ket"] = "Ket",
["keu"] = "Akebu",
["kev"] = "Kanikkaran",
["kew"] = "West Kewa",
["kex"] = "Kukna",
["key"] = "Kupia",
["kez"] = "Kukele",
["kfa"] = "Kodava",
["kfb"] = "Northwestern Kolami",
["kfc"] = "Konda-Dora",
["kfd"] = "Korra Koraga",
["kfe"] = "Indian Kota",
["kff"] = "Koya",
["kfg"] = "Kudiya",
["kfh"] = "Kurichiya",
["kfi"] = "Kurumba",
["kfj"] = "Kemiehua",
["kfk"] = "Kinnauri",
["kfl"] = "Kung",
["kfm"] = "Khunsari",
["kfn"] = "Kuk",
["kfo"] = "Côte d'Ivoire Koro",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "Kachchi",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumauni",
["kfz"] = "Koromfé",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgc"] = "Kasseng",
["kgd"] = "Kataang",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgh"] = "Upper Tanudan Kalinga",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgm"] = "Karipúna",
["kgn"] = "Karingani",
["kgo"] = "Krongo",
["kgp"] = "Kaingáng",
["kgq"] = "Kamoro",
["kgr"] = "Abun",
["kgs"] = "Kumbainggar",
["kgt"] = "Somyev",
["kgu"] = "Kobol",
["kgv"] = "Karas",
["kgw"] = "Karon Dori",
["kgx"] = "Kamaru",
["kgy"] = "Kyerung",
["kha"] = "Khasi",
["khb"] = "Lü",
["khc"] = "Tukang Besi North",
["khd"] = "Bädi Kanum",
["khe"] = "Korowai",
["khf"] = "Khuen",
["khg"] = "Khams Tibetan",
["khh"] = "Kehu",
["khi"] = "Khoisan languages",
["khj"] = "Kuturmi",
["khk"] = "Halh Mongolian",
["khl"] = "Lusi",
["khm"] = "Khmer",
["khn"] = "Khandesi",
["kho"] = "Khotanese",
["khp"] = "Kapori",
["khq"] = "Koyra Chiini Songhay",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "Khamti",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khx"] = "Kanu",
["khy"] = "Congolese Kele",
["khz"] = "Keapara",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Eastern Parbate",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kik"] = "Kikuyu",
["kil"] = "Kariya",
["kim"] = "Karagas",
["kin"] = "Kinyarwanda",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kir"] = "Kyrgyz",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Northeast Kiwai",
["kix"] = "Khiamniungan Naga",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kja"] = "Mlap",
["kjb"] = "Eastern Kanjobal",
["kjc"] = "Coastal Konjo",
["kjd"] = "Southern Kiwai",
["kje"] = "Kisar",
["kjf"] = "Khalaj",
["kjg"] = "Khmu",
["kji"] = "Zabana",
["kjj"] = "Khinalugh",
["kjk"] = "Highland Konjo",
["kjl"] = "Western Parbate",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjq"] = "Western Keres",
["kjr"] = "Kurudu",
["kjs"] = "East Kewa",
["kjt"] = "Phrae Pwo Karen",
["kju"] = "Kashaya",
["kjv"] = "Kajkavian",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Kalaktang Monpa",
["kkg"] = "Mabaka Valley Kalinga",
["kkh"] = "Khün",
["kki"] = "Kagulu",
["kkj"] = "Kako",
["kkk"] = "Kokota",
["kkl"] = "Kosarek Yale",
["kkm"] = "Kiong",
["kkn"] = "Kon Keu",
["kko"] = "Karko",
["kkp"] = "Gugubera",
["kkq"] = "Kaiku",
["kkr"] = "Kir-Balar",
["kks"] = "Giiwo",
["kkt"] = "Koi",
["kku"] = "Tumi",
["kkv"] = "Kangean",
["kkw"] = "Teke-Kukuya",
["kkx"] = "Kohin",
["kky"] = "Guguyimidjir",
["kkz"] = "Kaska",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Nepali Kulung",
["klf"] = "Kendeje",
["klg"] = "Tagakaulu Kalagan",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Turkic Khalaj",
["klk"] = "Nigerian Kono",
["kll"] = "Kagan Kalagan",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "Lindu",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "Southern Dong",
["kmd"] = "Madukayang Kalinga",
["kme"] = "Bakole",
["kmf"] = "Papua New Guinean Kare",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Nigerian Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Limos Kalinga",
["kml"] = "Lower Tanudan Kalinga",
["kmm"] = "Indian Kom",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "northern Kurdish",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Karipúna Creole French",
["kmw"] = "Congolese Komo",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Khorasani Turkish",
["kna"] = "Nigerian Dera",
["knb"] = "Lubuagan Kalinga",
["knc"] = "Central Kanuri",
["knd"] = "Konda",
["kne"] = "Kankanaey",
["knf"] = "Mankanya",
["kng"] = "Koongo",
["knh"] = "Kayan River Kenyah",
["kni"] = "Kanufi",
["knj"] = "Western Kanjobal",
["knk"] = "Kuranko",
["knl"] = "Keninjal",
["knm"] = "Kanamarí",
["knn"] = "Konkani",
["kno"] = "Sierra Leonean Kono",
["knp"] = "Kwanja",
["knq"] = "Kintaq",
["knr"] = "Kaningra",
["kns"] = "Kensiu",
["knt"] = "Panoan Katukína",
["knu"] = "Guinean Kono",
["knv"] = "Tabo",
["knw"] = "Kung-Ekoka",
["knx"] = "Kendayan",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko-Hang"] = "Korean",
["ko-Hang-KP"] = "Korean",
["ko-Hang-KR"] = "Korean",
["ko-Hani"] = "Korean",
["ko-Hant"] = "Korean",
["ko-Hant-KP"] = "Korean",
["ko-KP"] = "Korean",
["ko-Kana"] = "Korean",
["ko-Kang"] = "Korean",
["ko-Kore"] = "Korean",
["ko-Latn"] = "Korean",
["ko-hang"] = "Korean",
["koa"] = "Konomala",
["kob"] = "Kohoroxitari",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koj"] = "Sara Dunjo",
["kok"] = "Konkani",
["kol"] = "Papua New Guinean Kol",
["kom"] = "Komi",
["kon"] = "Kongo",
["koo"] = "Konjo",
["kop"] = "Kwato",
["koq"] = "Gabon Kota",
["kor"] = "Korean",
["kos"] = "Kosraean",
["kot"] = "Lagwan",
["kou"] = "Koke",
["kov"] = "Kudu-Camo",
["kow"] = "Kugama",
["kox"] = "Coxima",
["koy"] = "Koyukon",
["koz"] = "Korak",
["kp-Hanj"] = "Korean",
["kpa"] = "Kutto",
["kpb"] = "Mullu Kurumba",
["kpc"] = "Curripaco",
["kpd"] = "Koba",
["kpe"] = "Kpelle",
["kpf"] = "Komba",
["kpg"] = "Kapingamarangi",
["kph"] = "Kplang",
["kpi"] = "Kofei",
["kpj"] = "Karajá",
["kpk"] = "Kpan",
["kpl"] = "Kpala",
["kpm"] = "Koho",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpp"] = "Paku Karen",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Mountain Koiali",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "Kalagan",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Kotafon Gbe",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Eastern Krahn",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Northern Kissi",
["kqt"] = "Klias River Kadazan",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kra"] = "Kumhali",
["krb"] = "Karkin",
["krd"] = "Kairui-Midiki",
["kre"] = "Kreen-Akarore",
["krf"] = "Vanuatu Koro",
["krg"] = "North Korowai",
["krh"] = "Kurama",
["krk"] = "Kerek",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro"] = "Kru languages",
["krp"] = "Korop",
["krq"] = "Krui",
["krr"] = "Krung",
["krs"] = "Sudanese Gbaya",
["krt"] = "Tumari Kanuri",
["kru"] = "Kurukh",
["krv"] = "Kravet",
["krw"] = "Western Krahn",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Southern Kalinga",
["ksd"] = "Kuanua",
["kse"] = "Kuni",
["ksf"] = "Bafia",
["ksg"] = "Kusaghe",
["ksi"] = "Krisa",
["ksj"] = "Uare",
["ksk"] = "Kansa",
["ksl"] = "Kumalu",
["ksm"] = "Kumba",
["ksn"] = "Kasiguranin",
["kso"] = "Kofa",
["ksp"] = "Kaba",
["ksq"] = "Kwaami",
["ksr"] = "Borong",
["kss"] = "Southern Kisi",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Koraku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["kte"] = "Nubri",
["ktf"] = "Kwami",
["ktg"] = "Kalkutungu",
["kth"] = "Karanga",
["kti"] = "North Muyu",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Kota Marudu Tinagas",
["kts"] = "South Muyu",
["ktt"] = "Ketum",
["ktu"] = "Congolese Kituba",
["ktv"] = "Eastern Katu",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Bas-Uélé District Kango",
["ktz"] = "Ju{{!}}ʼhoan",
["kua"] = "Kwanyama",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "Western Katu",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro-Kalapálo",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuná",
["kur"] = "Kurdish",
["kut"] = "Kutenai",
["kuu"] = "Upper Kuskokwim",
["kuv"] = "Kur",
["kuw"] = "Kpagua",
["kux"] = "Kukatja",
["kuy"] = "Kuuku-Ya'u",
["kuz"] = "Kunza",
["kva"] = "Bagvalal",
["kvb"] = "Kubu",
["kvc"] = "Kove",
["kvd"] = "Indonesian Kui",
["kve"] = "Kalabakan",
["kvf"] = "Kabalai",
["kvg"] = "Kuni-Boazi",
["kvh"] = "Komodo",
["kvi"] = "Kwang",
["kvj"] = "Psikye",
["kvk"] = "Korean Sign Language",
["kvl"] = "Brek Karen",
["kvm"] = "Kendem",
["kvn"] = "Border Kuna",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Geba Karen",
["kvr"] = "Kerinci",
["kvs"] = "Kunggara",
["kvt"] = "Lahta Karen",
["kvu"] = "Yinbaw Karen",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Yintale Karen",
["kvz"] = "Tsakwambo",
["kwa"] = "Dâw",
["kwb"] = "Kwa",
["kwc"] = "Likwala",
["kwd"] = "Kwaio",
["kwe"] = "Kwerba",
["kwf"] = "Kwara'ae",
["kwg"] = "Kaba Deme",
["kwh"] = "Kowiai",
["kwi"] = "Awa-Cuaiquer",
["kwj"] = "Kwanga",
["kwk"] = "Kwakiutl",
["kwl"] = "Kofyar",
["kwm"] = "Kwambi",
["kwn"] = "Kwangali",
["kwo"] = "Kwomtari",
["kwp"] = "Kodia",
["kwq"] = "Kwak",
["kwr"] = "Kwer",
["kws"] = "Kwese",
["kwt"] = "Kwesten",
["kwu"] = "Kwakum",
["kwv"] = "Kaba Na",
["kww"] = "Kwinti",
["kwx"] = "Khirwar",
["kwy"] = "San Salvador Kongo",
["kwz"] = "Kwadi",
["kxa"] = "Kairiru",
["kxb"] = "Krobu",
["kxc"] = "Komso",
["kxd"] = "Brunei",
["kxe"] = "Kakihum",
["kxf"] = "Manumanaw Karen",
["kxg"] = "Katingan",
["kxh"] = "Ethiopian Karo",
["kxi"] = "Keningau Murut",
["kxj"] = "Kulfa",
["kxk"] = "Zayein Karen",
["kxl"] = "Nepali Kurux",
["kxm"] = "Northern Khmer",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Papua New Guinean Koro",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Indian Kui",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["kya"] = "Kwaya",
["kyb"] = "Butbut Kalinga",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "Karao",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Baram Kayan",
["kyt"] = "Kayagar",
["kyu"] = "Western Kayah",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Western Karaboro",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kze"] = "Kosena",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Kenuzi-Dongola",
["kzi"] = "Kelabit",
["kzj"] = "Coastal Kadazan",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Sugut Dusun",
["kzt"] = "Tambunan Dusun",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Karirí-Xocó",
["kzx"] = "Kamarian",
["kzy"] = "Tshopo District Kango",
["kzz"] = "Kalabra",
["laa"] = "Lapuyan Subanun",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lae"] = "Pattani",
["laf"] = "Lafofa",
["lag"] = "Langi",
["lah"] = "Lahnda",
["lai"] = "Lambya",
["laj"] = "Ugandan Lango",
["lak"] = "Nigerian Laka",
["lal"] = "Lalia",
["lam"] = "Lamba",
["lan"] = "Laru",
["lao"] = "Lao",
["lap"] = "Chadian Laka",
["laq"] = "Qabiao",
["lar"] = "Larteh",
["las"] = "Togo Lama",
["lat"] = "Latin",
["lau"] = "Laba",
["lav"] = "Latvian",
["law"] = "Lauje",
["lax"] = "Tiwa",
["lay"] = "Myanma Lama",
["laz"] = "Aribwatsa",
["lba"] = "Lui",
["lbb"] = "Label",
["lbc"] = "Lakkia",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "Ladakhi",
["lbk"] = "Central Bontok",
["lbl"] = "Libon Bikol",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Northern Lorung",
["lbs"] = "Libyan Sign Language",
["lbt"] = "Lachi",
["lbu"] = "Labu",
["lbv"] = "Lavatbura-Lamusong",
["lbw"] = "Tolaki",
["lbx"] = "Lawangan",
["lby"] = "Lamu-Lamu",
["lbz"] = "Lardil",
["lcc"] = "Legenyem",
["lcd"] = "Lola",
["lce"] = "Loncong",
["lcf"] = "Lubu",
["lch"] = "Luchazi",
["lcl"] = "Lisela",
["lcm"] = "Tungag",
["lcp"] = "Western Lawa",
["lcq"] = "Luhu",
["lcs"] = "Lisabata-Nuniali",
["lda"] = "Kla-Dan",
["ldb"] = "Idun",
["ldd"] = "Luri",
["ldg"] = "Lenyima",
["ldh"] = "Lamja-Dengsa-Tola",
["ldi"] = "Laari",
["ldj"] = "Lemoro",
["ldk"] = "Leelau",
["ldl"] = "Kaan",
["ldm"] = "Landoma",
["ldn"] = "Láadan",
["ldo"] = "Loo",
["ldp"] = "Tso",
["ldq"] = "Lufu",
["lea"] = "Lega-Shabunda",
["leb"] = "Lala-Bisa",
["lec"] = "Leco",
["led"] = "Lendu",
["lee"] = "Lyélé",
["lef"] = "Lelemi",
["leg"] = "Lengua",
["leh"] = "Lenje",
["lei"] = "Lemio",
["lej"] = "Lengola",
["lek"] = "Leipon",
["lel"] = "Congolese Lele",
["lem"] = "Nomaande",
["len"] = "Lenca",
["leo"] = "Cameroonian Leti",
["lep"] = "Lepcha",
["leq"] = "Lembena",
["ler"] = "Lenkau",
["les"] = "Lese",
["let"] = "Lesing-Gelimi",
["leu"] = "Papua New Guinean Kara",
["lev"] = "Lamma",
["lew"] = "Ledo Kaili",
["lex"] = "Luang",
["ley"] = "Lemolang",
["lfa"] = "Lefa",
["lga"] = "Lungga",
["lgb"] = "Laghu",
["lgg"] = "Lugbara",
["lgh"] = "Laghuu",
["lgi"] = "Lengilu",
["lgk"] = "Lingarak",
["lgl"] = "Wala",
["lgm"] = "Lega-Mwenga",
["lgn"] = "Opuuo",
["lgq"] = "Logba",
["lgr"] = "Lengo",
["lgt"] = "Pahi",
["lgu"] = "Longgu",
["lgz"] = "Ligenza",
["lha"] = "Vietnamese Laha",
["lhh"] = "Indonesian Laha",
["lhi"] = "Lahu Shi",
["lhl"] = "Lahul Lohar",
["lhm"] = "Lhomi",
["lhn"] = "Lahanan",
["lhp"] = "Lhokpu",
["lhs"] = "Mlahsö",
["lht"] = "Toga",
["lhu"] = "Lahu",
["lia"] = "West-Central Limba",
["lib"] = "Likum",
["lic"] = "Hlai",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "Limbu",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lim"] = "Limburgish",
["lin"] = "Lingala",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian English",
["lis"] = "Lisu",
["lit"] = "Lithuanian",
["liu"] = "Logorik",
["liw"] = "Lembak",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakona",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Guinean Lele",
["lle"] = "Papua New Guinean Lele",
["llf"] = "Hermit",
["llg"] = "Lole",
["llh"] = "Lamu",
["lli"] = "Teke-Laali",
["llj"] = "Ladji Ladji",
["llk"] = "Lelak",
["lll"] = "Lilau",
["llm"] = "Lasalimu",
["lln"] = "Chadian Lele",
["llo"] = "Khlor",
["llp"] = "North Efate",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "East Limba",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "South Lembata",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "West Lembata",
["lmk"] = "Lamkang",
["lml"] = "Hano",
["lmm"] = "Lamam",
["lmn"] = "Lambadi",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lms"] = "Limousin",
["lmt"] = "Lematang",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "Lamboya",
["lmz"] = "Lumbee",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnc"] = "Languedocien",
["lnd"] = "Lundayeh",
["lng"] = "Langobardic",
["lnh"] = "Lanoh",
["lni"] = "Lantanai",
["lnj"] = "Leningitij",
["lnl"] = "South Central Banda",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Sudanese Lango",
["lns"] = "Lamnso'",
["lnt"] = "Lintang",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lnz"] = "Lonzo",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "Berawan",
["loe"] = "Coastal Saluan",
["lof"] = "Logol",
["log"] = "Logo",
["loh"] = "Narim",
["loi"] = "Côte d'Ivoire Loma",
["loj"] = "Lou",
["lok"] = "Loko",
["lol"] = "Mongo",
["lom"] = "Liberian Loma",
["lon"] = "Malawi Lomwe",
["loo"] = "Lombo",
["lop"] = "Lopa",
["loq"] = "Lobala",
["lor"] = "Téén",
["los"] = "Loniu",
["lot"] = "Otuho",
["lou"] = "Louisiana Creole French",
["lov"] = "Lopi",
["low"] = "Tampias Lobu",
["lox"] = "Loun",
["loy"] = "Lowa",
["lpa"] = "Lelepa",
["lpe"] = "Lepki",
["lpn"] = "Long Phuri Naga",
["lpo"] = "Lipo",
["lpx"] = "Lopit",
["lra"] = "Lara'",
["lre"] = "Laurentian",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Lari",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Southern Lorung",
["lrt"] = "Larantuka Malay",
["lrv"] = "Larevat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsg"] = "Lyons Sign Language",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Latvian Sign Language",
["lsm"] = "Saamia",
["lsn"] = "Tibetan Sign Language",
["lso"] = "Laotian Sign Language",
["lsp"] = "Panamanian Sign Language",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Trinidad and Tobago Sign Language",
["lsv"] = "Sivia Sign Language",
["lsy"] = "Mauritian Sign Language",
["ltc"] = "Late Middle Chinese",
["lth"] = "Thur",
["lti"] = "Indonesian Leti",
["ltn"] = "Latundê",
["lto"] = "Tsotso",
["lts"] = "Tachoni",
["ltu"] = "Latu",
["ltz"] = "Luxembourgish",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["lub"] = "Luba-Katanga",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["lug"] = "Luganda",
["lui"] = "Luiseno",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumi",
["lur"] = "Laura",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luw"] = "Luo",
["luy"] = "Luyia",
["lva"] = "Maku'a",
["lvi"] = "Lavi",
["lvk"] = "Lavukaleve",
["lvs"] = "Standard Latvian",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "White Lachi",
["lwl"] = "Eastern Lawa",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "Lyngngam",
["lyn"] = "Luyana",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["maa"] = "San Jerónimo Tecóatl Mazatec",
["mab"] = "Yutanduchi Mixtec",
["mac"] = "Macedonian",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mah"] = "Marshallese",
["maj"] = "Jalapa De Díaz Mazatec",
["mak"] = "Makasar",
["mal"] = "Malayalam",
["mam"] = "Northern Mam",
["man"] = "Mandingo",
["mao"] = "Māori",
["map"] = "Austronesian languages",
["maq"] = "Chiquihuitlán Mazatec",
["mar"] = "Marathi",
["mas"] = "Masai",
["mat"] = "San Francisco Matlatzinca",
["mau"] = "Huautla Mazatec",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "North Moluccan Malay",
["may"] = "Malay",
["maz"] = "Mazahua Central",
["mba"] = "Higaonon",
["mbb"] = "Western Bukidnon Manobo",
["mbc"] = "Macushi",
["mbd"] = "Dibabawon Manobo",
["mbe"] = "Molale",
["mbf"] = "Baba Malay",
["mbg"] = "Northern Nambikuára",
["mbh"] = "Mangseng",
["mbi"] = "Ilianen Manobo",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Cameroonian Mbo",
["mbp"] = "Malayo",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Sarangani Manobo",
["mbt"] = "Matigsalug Manobo",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "East Sepik Province Mari",
["mby"] = "Memoni",
["mbz"] = "Amoltepec Mixtec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Itundujia Mixtec",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Maquiritari",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Malaccan Creole Portuguese",
["mcn"] = "Masana",
["mco"] = "Coatlán Mixe",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mct"] = "Mengisa",
["mcu"] = "Cameroonian Mambila",
["mcv"] = "Minanibai",
["mcw"] = "Chadian Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "South Watut",
["mcz"] = "Mawan",
["mda"] = "Nigerian Mada",
["mdb"] = "Morigi",
["mdc"] = "Papua New Guinean Male",
["mdd"] = "Mbum",
["mde"] = "Chadian Maba",
["mdg"] = "Massalat",
["mdh"] = "Maguindanao",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Maltese Sign Language",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdo"] = "Southwest Gbaya",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Papua New Guinean Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Santa Lucía Monteverde Mixtec",
["mdw"] = "Mbosi",
["mdx"] = "Dizi",
["mdy"] = "Ethiopian Male",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meg"] = "Mea",
["meh"] = "Southwestern Tlaxiaco Mixtec",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Melanau",
["mem"] = "Mangala",
["men"] = "Mende",
["meo"] = "Kedah Malay",
["mep"] = "Miriwung",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mann",
["mew"] = "Maaka",
["mey"] = "Hassaniyya",
["mez"] = "Menominee",
["mfa"] = "Pattani Malay",
["mfb"] = "Lom",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "Morisyen",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "North Mofu",
["mfl"] = "Putai",
["mfm"] = "Marghi South",
["mfn"] = "Cross River Mbembe",
["mfo"] = "Mbe",
["mfp"] = "Makassar Malay",
["mfq"] = "Moba",
["mfr"] = "Marithiel",
["mfs"] = "Mexican Sign Language",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mga"] = "Middle Irish",
["mgb"] = "Mararit",
["mgc"] = "Morokodo",
["mgd"] = "Moru",
["mge"] = "Mango",
["mgf"] = "Maklew",
["mgg"] = "Mpongmpong",
["mgh"] = "Makhuwa-Meetto",
["mgi"] = "Lijili",
["mgj"] = "Abureni",
["mgk"] = "Mawes",
["mgl"] = "Maleu-Kilenge",
["mgm"] = "Mambae",
["mgn"] = "Mbangi",
["mgo"] = "Meta'",
["mgp"] = "Eastern Magar",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Tanzanian Manda",
["mgt"] = "Mongol",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgx"] = "Omati",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mha"] = "Indian Manda",
["mhb"] = "Mahongwe",
["mhc"] = "Mocho",
["mhd"] = "Mbugu",
["mhe"] = "Besisi",
["mhf"] = "Mamaa",
["mhg"] = "Margu",
["mhh"] = "Maskoy Pidgin",
["mhi"] = "Ma'di",
["mhj"] = "Mogholi",
["mhk"] = "Mungaka",
["mhl"] = "Mauwake",
["mhm"] = "Makhuwa-Moniga",
["mhn"] = "Mócheno",
["mho"] = "Zambian Mashi",
["mhp"] = "Balinese Malay",
["mhq"] = "Mandan",
["mhs"] = "Indonesian Buru",
["mht"] = "Mandahuaca",
["mhu"] = "Digaro-Mishmi",
["mhv"] = "Arakanese",
["mhw"] = "Mbukushu",
["mhx"] = "Maru",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor Islands Mor",
["mia"] = "Miami",
["mib"] = "Atatláhuca Mixtec",
["mic"] = "Miꞌkmaq",
["mid"] = "Mandaic",
["mie"] = "Ocotepec Mixtec",
["mif"] = "Mofu-Gudur",
["mig"] = "San Miguel El Grande Mixtec",
["mih"] = "Chayuco Mixtec",
["mii"] = "Chigmecatitlán Mixtec",
["mij"] = "Abar",
["mik"] = "Mikasuki",
["mil"] = "Peñoles Mixtec",
["mim"] = "Alacatlatzala Mixtec",
["mio"] = "Pinotepa Nacional Mixtec",
["mip"] = "Apasco-Apoala Mixtec",
["miq"] = "Mískito",
["mir"] = "Isthmus Mixe",
["mis"] = "Uncoded languages",
["mit"] = "Southern Puebla Mixtec",
["miu"] = "Cacaloxtepec Mixtec",
["miv"] = "Mimi",
["miw"] = "Akoye",
["mix"] = "Mixtepec Mixtec",
["miy"] = "Ayutla Mixtec",
["miz"] = "Coatzospan Mixtec",
["mja"] = "Mahei",
["mjb"] = "Makalero",
["mjc"] = "San Juan Colorado Mixtec",
["mjd"] = "Northwest Maidu",
["mje"] = "Muskum",
["mjg"] = "Tu",
["mjh"] = "Nyasa Mwera",
["mji"] = "Kim Mun",
["mjj"] = "Mawak",
["mjk"] = "Matukar",
["mjl"] = "Mandeali",
["mjm"] = "Medebur",
["mjn"] = "Papua New Guinean Ma",
["mjo"] = "Malankuravan",
["mjp"] = "Malapandaram",
["mjq"] = "Malaryan",
["mjr"] = "Malavedan",
["mjs"] = "Miship",
["mjt"] = "Sauria Paharia",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Majhi",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mkd"] = "Macedonian",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Chinese Mak",
["mkh"] = "Mon-Khmer languages",
["mki"] = "Dhatki",
["mkj"] = "Mokilese",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Kupang Malay",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Bay Miwok",
["mkr"] = "Malas",
["mks"] = "Silacayoapan Mixtec",
["mkt"] = "Vamale",
["mku"] = "Konyanka Maninka",
["mkv"] = "Mafea",
["mkw"] = "Congolese Kituba",
["mkx"] = "Cinamiguin Manobo",
["mky"] = "East Makian",
["mkz"] = "Makasae",
["mla"] = "Malo",
["mlb"] = "Mbule",
["mlc"] = "Cao Lan",
["mld"] = "Malakhel",
["mle"] = "Manambu",
["mlf"] = "Mal",
["mlg"] = "Malagasy",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Malakote",
["mll"] = "Malua Bay",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Western Maninkakan",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlt"] = "Maltese",
["mlu"] = "To'abaita",
["mlv"] = "Motlav",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mly"] = "Malay",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Michoacán Mazahua",
["mmd"] = "Maonan",
["mme"] = "Mae",
["mmf"] = "Mundat",
["mmg"] = "North Ambrym",
["mmh"] = "Mehináku",
["mmi"] = "Musar",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Musak",
["mmr"] = "Western Xiangxi Hmong",
["mms"] = "Southern Mam",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Eastern Mnong",
["mnh"] = "Congolese Mono",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "Southern Mnong",
["mno"] = "Manobo languages",
["mnp"] = "Min Bei Chinese",
["mnq"] = "Minriq",
["mnr"] = "American Mono",
["mns"] = "Mansi",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennell-Belona",
["mnx"] = "Manikion",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["mob"] = "Moinba",
["moc"] = "Mocoví",
["mod"] = "Mobilian",
["moe"] = "Montagnais",
["mof"] = "Mohegan-Montauk-Narragansett",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mol"] = "Moldovan",
["mom"] = "Monimbo",
["mon"] = "Mongolian",
["moo"] = "Monom",
["mop"] = "Mopán Maya",
["moq"] = "Bomberai Peninsula Mor",
["mor"] = "Moro",
["mot"] = "Barí",
["mou"] = "Mogum",
["mov"] = "Mohave",
["mow"] = "Congolese Moi",
["mox"] = "Molima",
["moy"] = "Shekkacho",
["moz"] = "Mukulu",
["mpa"] = "Mpoto",
["mpb"] = "Mullukmulluk",
["mpc"] = "Mangarayi",
["mpd"] = "Machinere",
["mpe"] = "Majang",
["mpf"] = "Tajumulco Mam",
["mpg"] = "Marba",
["mph"] = "Maung",
["mpi"] = "Mpade",
["mpj"] = "Martu Wangka",
["mpk"] = "Chadian Mbara",
["mpl"] = "Middle Watut",
["mpm"] = "Yosondúa Mixtec",
["mpn"] = "Mindiri",
["mpo"] = "Miu",
["mpp"] = "Migabac",
["mpq"] = "Matís",
["mpr"] = "Vangunu",
["mps"] = "Dadibi",
["mpt"] = "Mian",
["mpu"] = "Makuráp",
["mpv"] = "Munkip",
["mpw"] = "Mapidian",
["mpx"] = "Misima-Paneati",
["mpy"] = "Mapia",
["mpz"] = "Mpi",
["mqa"] = "Indonesian Maba",
["mqb"] = "Mbuko",
["mqc"] = "Mangole",
["mqd"] = "Madang",
["mqe"] = "Matepi",
["mqf"] = "Momuna",
["mqg"] = "Kota Bangun Kutai Malay",
["mqh"] = "Tlazoyaltepec Mixtec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Rajah Kabunsuwan Manobo",
["mql"] = "Mbelime",
["mqm"] = "South Marquesan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "West Makian",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mra"] = "Mlabri",
["mrb"] = "Marino",
["mrc"] = "Maricopa",
["mrd"] = "Western Magar",
["mre"] = "Martha's Vineyard Sign Language",
["mrf"] = "Elseng",
["mrg"] = "Miri",
["mri"] = "Māori",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlockese",
["mrm"] = "Merlav",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "North Marquesan",
["mrr"] = "Indian Maria",
["mrs"] = "Maragus",
["mrt"] = "Marghi Central",
["mru"] = "Cameroonian Mono",
["mrv"] = "Mangareva",
["mrw"] = "Maranao",
["mrx"] = "Maremgi",
["mry"] = "Karaga Mandaya",
["mrz"] = "Marind",
["msa"] = "Malay",
["msb"] = "Masbatenyo",
["msc"] = "Sankaran Maninka",
["msd"] = "Yucatec Maya Sign Language",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msh"] = "Masikoro Malagasy",
["msi"] = "Sabah Malay",
["msj"] = "Congolese Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Agusan Manobo",
["msn"] = "Mosina",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Mongolian Sign Language",
["mss"] = "West Masela",
["mst"] = "Cataelano Mandaya",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mta"] = "Cotabato Manobo",
["mtb"] = "Anyin Morofo",
["mtc"] = "Munit",
["mtd"] = "Mualang",
["mte"] = "Solomon Islands Mono",
["mtf"] = "Murik",
["mtg"] = "Una",
["mth"] = "Munggui",
["mti"] = "Papua New Guinean Maiwa",
["mtj"] = "Moskona",
["mtk"] = "Mbe'",
["mtl"] = "Montol",
["mtm"] = "Mator",
["mtn"] = "Matagalpa",
["mto"] = "Totontepec Mixe",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "Muong",
["mtr"] = "Mewari",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Tututepec Mixtec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Tidaá Mixtec",
["mty"] = "Nabi",
["mtz"] = "Tacanec",
["mu"] = "Multiple languages",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Mednyj Aleut",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "Musi",
["muj"] = "Mabire",
["muk"] = "Mugom",
["mul"] = "Multiple languages",
["mum"] = "Maiwala",
["mun"] = "Munda languages",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Eastern Xiangxi Hmong",
["mur"] = "Murle",
["mut"] = "Western Muria",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["muw"] = "Mundari",
["mux"] = "Mbo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvc"] = "Central Mam",
["mvd"] = "Mamboru",
["mve"] = "Pakistani Marwari",
["mvf"] = "Peripheral Mongolian",
["mvg"] = "Yucuañe Mixtec",
["mvh"] = "Mire",
["mvi"] = "Miyako",
["mvj"] = "Todos Santos Cuchumatán Mam",
["mvk"] = "Mekmek",
["mvl"] = "Australian Mbara",
["mvm"] = "Muya",
["mvn"] = "Minaveha",
["mvo"] = "Marovo",
["mvp"] = "Duri",
["mvq"] = "Moere",
["mvr"] = "Marau",
["mvs"] = "Massep",
["mvt"] = "Mpotovoro",
["mvu"] = "Marfa",
["mvv"] = "Tagal Murut",
["mvw"] = "Machinga",
["mvx"] = "Meoswar",
["mvy"] = "Indus Kohistani",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwd"] = "Mudbura",
["mwe"] = "Chimwera Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwj"] = "Maligo",
["mwk"] = "Kita Maninkakan",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Central Maewo",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "Marwari",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "Hmong Daw",
["mwx"] = "Mediak",
["mwy"] = "Mosiro",
["mwz"] = "Moingi",
["mxa"] = "Northwest Oaxaca Mixtec",
["mxb"] = "Tezoatlán Mixtec",
["mxc"] = "Manyika",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarabic",
["mxj"] = "Miju-Mishmi",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Indonesian Moi",
["mxo"] = "Mbowe",
["mxp"] = "Tlahuitoltepec Mixe",
["mxq"] = "Juquila Mixe",
["mxr"] = "Murik Kayan",
["mxs"] = "Huitepec Mixtec",
["mxt"] = "Jamiltepec Mixtec",
["mxu"] = "Cameroonian Mada",
["mxv"] = "Metlatónoc Mixtec",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Southeastern Nochixtlán Mixtec",
["mxz"] = "Central Masela",
["mya"] = "Burmese",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["myd"] = "Maramba",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myi"] = "Indian Mina",
["myj"] = "Mangayat",
["myk"] = "Mamara Senoufo",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn"] = "Mayan languages",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myq"] = "Forest Maninka",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myt"] = "Sangab Mandaya",
["myu"] = "Mundurukú",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Classical Mandaic",
["mza"] = "Santa María Zacatepec Mixtec",
["mzb"] = "Tumzabt",
["mzc"] = "Madagascar Sign Language",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzf"] = "Aiku",
["mzg"] = "Monastic Sign Language",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Ixcatlán Mazatec",
["mzj"] = "Manya",
["mzk"] = "Nigeria Mambila",
["mzl"] = "Mazatlán Mixe",
["mzm"] = "Mumuye",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "Macanese",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Mozambican Sign Language",
["mzz"] = "Maiadomu",
["naa"] = "Namla",
["nab"] = "Southern Nambikuára",
["nac"] = "Narak",
["nad"] = "Nijadali",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Naga Pidgin",
["nai"] = "North American Indian languages",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Nangikurrunggurr",
["nao"] = "Naaba",
["nap-x-tara"] = "Tarantino",
["naq"] = "Namibian Nama",
["nar"] = "Iguta",
["nas"] = "Naasioi",
["nat"] = "Hungworo",
["nau"] = "Nauru",
["nav"] = "Navajo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Narrinyeri",
["naz"] = "Coatepec Nahuatl",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang Naga",
["nbd"] = "Ngbinda",
["nbe"] = "Konyak Naga",
["nbf"] = "Naxi",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Mao Naga",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbl"] = "Southern Ndebele",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana-Nunku-Gbantu-Numbu",
["nbs"] = "Namibian Sign Language",
["nbt"] = "Na",
["nbu"] = "Rongmei Naga",
["nbv"] = "Ngamambo",
["nbw"] = "Southern Ngbandi",
["nbx"] = "Ngura",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "Central Nicobarese",
["ncc"] = "Ponam",
["ncd"] = "Nachhiring",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Central Huasteca Nahuatl",
["nci"] = "Classical Nahuatl",
["ncj"] = "Northern Puebla Nahuatl",
["nck"] = "Nakara",
["ncl"] = "Michoacán Nahuatl",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncp"] = "Ndaktup",
["ncq"] = "Northern Katang",
["ncr"] = "Ncane",
["ncs"] = "Nicaraguan Sign Language",
["nct"] = "Chothe Naga",
["ncu"] = "Chumburung",
["ncx"] = "Central Puebla Nahuatl",
["ncz"] = "Natchez",
["nd"] = "Northern Ndebele",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["nde"] = "Northern Ndebele",
["ndf"] = "Nadruvian",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Samba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndo"] = "Ndonga",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["nea"] = "Eastern Ngad'a",
["neb"] = "Côte d'Ivoire Toura",
["nec"] = "Nedebang",
["ned"] = "Nde-Gbite",
["nee"] = "Kumak",
["nef"] = "Nefamese",
["neg"] = "Negidal",
["neh"] = "Nyenkha",
["nei"] = "Neo-Hittite",
["nej"] = "Neko",
["nek"] = "Neku",
["nem"] = "Nemi",
["nen"] = "Nengone",
["neo"] = "Ná-Meo",
["nep"] = "Nepali",
["neq"] = "North Central Mixe",
["ner"] = "Yahadian",
["nes"] = "Bhoti Kinnauri",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ndun",
["nfg"] = "Nyeng",
["nfk"] = "Shakara",
["nfl"] = "Ayiwo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["nga"] = "Ngbaka",
["ngb"] = "Northern Ngbandi",
["ngc"] = "Congolese Ngombe",
["ngd"] = "Central African Ngando",
["nge"] = "Ngemba",
["ngg"] = "Ngbaka Manza",
["ngh"] = "N{{!}}{{!}}ng",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Ngatik Men's Creole",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngurimi",
["ngr"] = "Nanggu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Guerrero Nahuatl",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Tabasco Nahuatl",
["nhd"] = "Chiripá",
["nhe"] = "Eastern Huasteca Nahuatl",
["nhf"] = "Nhuwala",
["nhg"] = "Tetelcingo Nahuatl",
["nhh"] = "Nahari",
["nhi"] = "Tenango Nahuatl",
["nhj"] = "Tlalitzlipa Nahuatl",
["nhk"] = "Isthmus-Cosoleacaque Nahuatl",
["nhm"] = "Morelos Nahuatl",
["nhn"] = "Central Nahuatl",
["nho"] = "Takuu",
["nhp"] = "Isthmus-Pajapan Nahuatl",
["nhq"] = "Huaxcaleca Nahuatl",
["nhr"] = "Naro",
["nhs"] = "Southeastern Puebla Nahuatl",
["nht"] = "Ometepec Nahuatl",
["nhu"] = "Noone",
["nhv"] = "Temascaltepec Nahuatl",
["nhw"] = "Western Huasteca Nahuatl",
["nhx"] = "Isthmus-Mecayapan Nahuatl",
["nhy"] = "Northern Oaxaca Nahuatl",
["nhz"] = "Santa María La Alta Nahuatl",
["nib"] = "Nakama",
["nic"] = "Niger-Kordofanian languages",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Southern Nicobarese",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte Naga",
["njd"] = "Ndonde Hamba",
["njh"] = "Lotha Naga",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami Naga",
["njn"] = "Liangmai Naga",
["njo"] = "Ao Naga",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Ndyuka-Trio Pidgin",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Khoibu Naga",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Inpui Naga",
["nkg"] = "Nekgini",
["nkh"] = "Khezha Naga",
["nki"] = "Thangal Naga",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "North Asmat",
["nkt"] = "Tanzanian Nyika",
["nku"] = "Bouna Kulango",
["nkv"] = "Malawian and Zambian Nyika",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nky"] = "Khiamniungan Naga",
["nkz"] = "Nkari",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nld"] = "Dutch",
["nle"] = "East Nyala",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Ninia Yali",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nln"] = "Durango Nahuatl",
["nlo"] = "Ngul",
["nlq"] = "Lao Naga",
["nlr"] = "Ngarla",
["nlu"] = "Nchumbulu",
["nlv"] = "Orizaba Nahuatl",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Maram Naga",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Mzieme Naga",
["nmf"] = "Tangkhul Naga",
["nmg"] = "Ngumba",
["nmh"] = "Monsang Naga",
["nmi"] = "Nyam",
["nmj"] = "Central African Ngombe",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "!Xóõ",
["nmo"] = "Moyon Naga",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Northeast Maidu",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmx"] = "Papua New Guinean Nama",
["nmy"] = "Namuyi",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "West Ambae",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Maring Naga",
["nnh"] = "Ngiemboon",
["nni"] = "North Nuaulu",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Northern Rengma Naga",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nno"] = "Norwegian Nynorsk",
["nnp"] = "Wancho Naga",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nns"] = "Ningye",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Australian Nugunu",
["nnw"] = "Southern Nuni",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["noa"] = "Woun Meu",
["nob"] = "Norwegian Bokmål",
["noc"] = "Nuk",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["nom"] = "Nocamán",
["non"] = "Old Norse",
["noo"] = "Nootka",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nor"] = "Norwegian",
["nos"] = "Eastern Nisu Yi",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo-Gongwang Naga",
["nph"] = "Phom Naga",
["npi"] = "Nepali",
["npl"] = "Southeastern Puebla Nahuatl",
["npn"] = "Mondropolon",
["npo"] = "Pochuri Naga",
["nps"] = "Nipsan",
["npu"] = "Puimei Naga",
["npx"] = "Noipx",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqq"] = "Kyan-Karyaw Naga",
["nqy"] = "Akyaung Ari Naga",
["nr"] = "Southern Ndebele",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Southern Rengma Naga",
["nrf"] = "Jèrriais or Guernésiais",
["nrg"] = "Narango",
["nri"] = "Chokri Naga",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrn"] = "Norn",
["nrp"] = "North Picene",
["nrr"] = "Norra",
["nrt"] = "Northern Kalapuya",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala",
["nsa"] = "Sangtam Naga",
["nsb"] = "Lower Nossob",
["nsc"] = "Nshi",
["nsd"] = "Southern Nisu",
["nse"] = "Nsenga",
["nsf"] = "Northwestern Nisu",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Nigerian Sign Language",
["nsk"] = "Naskapi",
["nsl"] = "Norwegian Sign Language",
["nsm"] = "Sumi Naga",
["nsn"] = "Nehan",
["nsp"] = "Nepalese Sign Language",
["nsq"] = "Northern Sierra Miwok",
["nsr"] = "Maritime Sign Language",
["nss"] = "Nali",
["nst"] = "Tase Naga",
["nsu"] = "Sierra Negra Nahuatl",
["nsv"] = "Southwestern Nisu",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Northern Tidung",
["nte"] = "Nathembo",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Northern Tepehuan",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Myanma Tangkhul Naga",
["nty"] = "Mantsi",
["ntz"] = "Natanzi",
["nua"] = "Yuaga",
["nub"] = "Nubian languages",
["nuc"] = "Nukuini",
["nud"] = "Ngala",
["nue"] = "Ngundu",
["nuf"] = "Nusu",
["nug"] = "Nungali",
["nuh"] = "Ndunda",
["nui"] = "Ngumbi",
["nuj"] = "Nyole",
["nuk"] = "Nuu-chah-nulth",
["nul"] = "Nusa Laut",
["num"] = "Niuafo'ou",
["nun"] = "Burmese Nung",
["nuo"] = "Nguôn",
["nup"] = "Nupe-Nupe-Tako",
["nuq"] = "Nukumanu",
["nur"] = "Nukuria",
["nus"] = "Nuer",
["nut"] = "Vietnamese Nung",
["nuu"] = "Ngbundu",
["nuv"] = "Northern Nuni",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Tlamacazapa Nahuatl",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "Classical Newari",
["nwe"] = "Ngwe",
["nwg"] = "Ngayawung",
["nwi"] = "Southwest Tanna",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "Middle Newar",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Congolese Ngando",
["nxe"] = "Nage",
["nxg"] = "Ngad'a",
["nxi"] = "Nindi",
["nxj"] = "Nyadu",
["nxk"] = "Koki Naga",
["nxl"] = "South Nuaulu",
["nxm"] = "Numidian",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxu"] = "Narau",
["nxx"] = "Nafri",
["nya"] = "Chichewa",
["nyb"] = "Nyangbo",
["nyc"] = "Nyanga-li",
["nyd"] = "Nyore",
["nye"] = "Nyengo",
["nyf"] = "Giryama",
["nyg"] = "Nyindu",
["nyh"] = "Nyigina",
["nyi"] = "Sudanese Ama",
["nyj"] = "Nyanga",
["nyk"] = "Nyaneka",
["nyl"] = "Nyeu",
["nym"] = "Nyamwezi",
["nyp"] = "Nyang'i",
["nyq"] = "Nayini",
["nyr"] = "Malawian Nyiha",
["nyt"] = "Nyawaygi",
["nyu"] = "Nyungwe",
["nyv"] = "Nyulnyul",
["nyw"] = "Nyaw",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Tigon Mbembe",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Zeme Naga",
["nzs"] = "New Zealand Sign Language",
["nzu"] = "Teke-Nzikou",
["nzy"] = "Nzakambay",
["nzz"] = "Nanga Dama Dogon",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oar"] = "Old Aramaic",
["oav"] = "Old Avar",
["obi"] = "Obispeño",
["obk"] = "Southern Bontok",
["obl"] = "Oblo",
["obm"] = "Moabite",
["obo"] = "Obo Manobo",
["obr"] = "Old Burmese",
["obt"] = "Old Breton",
["obu"] = "Obulom",
["oca"] = "Ocaina",
["occ"] = "Occidental",
["och"] = "Old Chinese",
["oci"] = "Occitan",
["oco"] = "Old Cornish",
["ocu"] = "Atzingo Matlatzinca",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "Old Dutch",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "Old Frisian",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "Old Georgian",
["ogg"] = "Ogbogolo",
["ogn"] = "Ogan",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["oht"] = "Old Hittite",
["ohu"] = "Old Hungarian",
["oia"] = "Oirata",
["oin"] = "Inebu One",
["oj"] = "Anishinaabe",
["ojc"] = "Central Anishinaabe",
["ojg"] = "Eastern Anishinaabe",
["oji"] = "Anishinaabe",
["ojp"] = "Old Japanese",
["ojs"] = "Severn Anishinaabe",
["ojv"] = "Ontong Java",
["ojw"] = "Western Anishinaabe",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Southwestern Edo Okpe",
["okg"] = "Koko Babangk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Old Kentish Sign Language",
["okm"] = "Middle Korean",
["okn"] = "Oki-No-Erabu",
["oko"] = "Old Korean",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Northwestern Edo Okpe",
["ola"] = "Walungge",
["old"] = "Mochi",
["oldwikisource"] = "Multiple languages",
["ole"] = "Olekha",
["olk"] = "Olkol",
["olm"] = "Oloma",
["olr"] = "Olrat",
["olt"] = "Old Lithuanian",
["olu"] = "Kuvale",
["oma"] = "Omaha-Ponca",
["omb"] = "East Ambae",
["omc"] = "Mochica",
["ome"] = "Omejes",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "Minoan",
["omo"] = "Utarmbung",
["omp"] = "Old Manipuri",
["omr"] = "Old Marathi",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omw"] = "South Tairora",
["omx"] = "Old Mon",
["ona"] = "Ona",
["onb"] = "Lingao",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "Northern One",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "Old Nubian",
["onx"] = "Onin Based Pidgin",
["ood"] = "Tohono O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["oos"] = "Old Ossetic",
["opa"] = "Okpamheri",
["ope"] = "Old Persian",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["ora"] = "Oroha",
["orc"] = "Orma",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["ori"] = "Oriya",
["ork"] = "Orokaiva",
["orm"] = "Oromo",
["orn"] = "Orang Kanaq",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ors"] = "Orang Seletar",
["ort"] = "Adivasi Oriya",
["oru"] = "Ormuri",
["orv"] = "Old Russian",
["orw"] = "Oro Win",
["orx"] = "Oro",
["ory"] = "Oriya",
["orz"] = "Ormu",
["osa"] = "Osage",
["osc"] = "Oscan",
["osi"] = "Osing",
["oso"] = "Ososo",
["osp"] = "Old Spanish",
["oss"] = "Ossetic",
["ost"] = "Osatu",
["osu"] = "Southern One",
["osx"] = "Old Saxon",
["ota"] = "Ottoman Turkish",
["otb"] = "Old Tibetan",
["otd"] = "Dohoi",
["ote"] = "Mezquital Otomi",
["oti"] = "Oti",
["otk"] = "Old Turkish",
["otl"] = "Tilapa Otomi",
["otm"] = "Eastern Highland Otomi",
["otn"] = "Tenango Otomi",
["oto"] = "Otomian languages",
["otq"] = "Querétaro Otomi",
["otr"] = "Otoro",
["ots"] = "Estado de México Otomi",
["ott"] = "Temoaya Otomi",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Texcatepec Otomi",
["oty"] = "Old Tamil",
["otz"] = "Ixtenco Otomi",
["oua"] = "Tagargrent",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "Old Uighur",
["oum"] = "Ouma",
["oun"] = "!O!ung",
["ovd"] = "Övdalian Elfdalian",
["owi"] = "Owiniga",
["owl"] = "Old Welsh",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["paa"] = "Papuan languages",
["pab"] = "Parecís",
["pac"] = "Pacoh",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pah"] = "Tenharim",
["pai"] = "Pe",
["paj"] = "Ipeka-Tapuia",
["pak"] = "Parakanã",
["pal"] = "Pahlavi",
["pan"] = "Punjabi",
["pao"] = "Northern Paiute",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pat"] = "Papitalai",
["pau"] = "Palauan",
["pav"] = "Pakaásnovos",
["paw"] = "Pawnee",
["pax"] = "Pankararé",
["pay"] = "Pech",
["paz"] = "Pankararú",
["pbb"] = "Páez",
["pbc"] = "Patamona",
["pbe"] = "Mezontla Popoloca",
["pbf"] = "Coyotepec Popoloca",
["pbg"] = "Paraujano",
["pbh"] = "Eñepa",
["pbi"] = "Parkwa",
["pbl"] = "Nigerian Mak",
["pbm"] = "Puebla Mazatec",
["pbn"] = "Kpasam",
["pbo"] = "Papel",
["pbp"] = "Badyara",
["pbr"] = "Pangwa",
["pbs"] = "Central Pame",
["pbt"] = "Southern Pashto",
["pbu"] = "Northern Pashto",
["pbv"] = "Pnar",
["pby"] = "Pyu",
["pbz"] = "Palu",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "Bouyei",
["pce"] = "Pale Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite Chin",
["pcl"] = "Pardhi",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcr"] = "Panang",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdi"] = "Pa Di",
["pdn"] = "Podena",
["pdo"] = "Padoe",
["pdu"] = "Kayan",
["pea"] = "Peranakan Indonesian",
["peb"] = "Eastern Pomo",
["pec"] = "Southern Pesisir",
["ped"] = "Papua New Guinean Mala",
["pee"] = "Taje",
["pef"] = "Northeastern Pomo",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Northern Pomo",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["pen"] = "Penesak",
["peo"] = "Old Persian",
["pep"] = "Kunja",
["peq"] = "Southern Pomo",
["per"] = "Persian",
["pes"] = "Western Farsi",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Eastern Penan",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Sudanese Creole Arabic",
["pgd"] = "Gāndhārī",
["pgg"] = "Pangwali",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgy"] = "Pongyong",
["pgz"] = "Papua New Guinean Sign Language",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phula",
["phi"] = "Philippine languages",
["phk"] = "Phake",
["phl"] = "Phalura",
["phm"] = "Phimbi",
["phn"] = "Phoenician",
["pho"] = "Phunoi",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "Phu Thai",
["phu"] = "Phuan",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pia"] = "Pima Bajo",
["pib"] = "Yine",
["pic"] = "Pinji",
["pid"] = "Piaroa",
["pie"] = "Piro",
["pif"] = "Pingelapese",
["pig"] = "Pisabo",
["pii"] = "Pini",
["pij"] = "Pijao",
["pil"] = "Yom",
["pim"] = "Powhatan",
["pin"] = "Piame",
["pio"] = "Piapoco",
["pip"] = "Pero",
["pir"] = "Piratapuyo",
["pis"] = "Pijin",
["pit"] = "Pitta Pitta",
["piu"] = "Pintupi-Luritja",
["piv"] = "Pileni",
["piw"] = "Pimbwe",
["pix"] = "Piu",
["piy"] = "Piya-Kwonci",
["piz"] = "Pije",
["pjt"] = "Pitjantjatjara",
["pka"] = "Ardhamāgadhī Prākrit",
["pkb"] = "Upper Pokomo",
["pkc"] = "Paekche",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "Pukapuka",
["pkr"] = "Attapady Kurumba",
["pks"] = "Pakistan Sign Language",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "Central Palawano",
["pld"] = "Polari",
["ple"] = "Palu'e",
["plg"] = "Pilagá",
["plh"] = "Paulohi",
["pli"] = "Pāli",
["plj"] = "Polci",
["plk"] = "Kohistani Shina",
["pll"] = "Shwe Palaung",
["plm"] = "Palembang",
["pln"] = "Palenquero",
["plo"] = "Oluta Popoluca",
["plp"] = "Palpa",
["plq"] = "Palaic",
["plr"] = "Palaka Senoufo",
["pls"] = "San Marcos Tlalcoyalco Popoloca",
["plt"] = "Plateau Malagasy",
["plu"] = "Palikúr",
["plv"] = "Southwest Palawano",
["plw"] = "Brooke's Point Palawano",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paama",
["pmb"] = "Pambia",
["pmc"] = "Palumata",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamei",
["pmf"] = "Pamona",
["pmh"] = "Māhārāṣṭri Prākrit",
["pmi"] = "Northern Pumi",
["pmj"] = "Southern Pumi",
["pmk"] = "Pamlico",
["pml"] = "Lingua Franca",
["pmm"] = "Pomo",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Northern Pame",
["pmr"] = "Paynamar",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Western Penan",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaka",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu 1",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Burkinabé Pana",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panytyima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Central African Pana",
["poa"] = "Eastern Pokomam",
["pob"] = "Western Pokomchí",
["poc"] = "Central Pokomam",
["pod"] = "Ponares",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Eastern Pokomchí",
["poi"] = "Highland Popoluca",
["poj"] = "Lower Pokomo",
["pok"] = "Pokangá",
["pol"] = "Polish",
["pom"] = "Southeastern Pomo",
["pon"] = "Pohnpeian",
["poo"] = "Central Pomo",
["pop"] = "Pwapwa",
["poq"] = "Texistepec Popoluca",
["por"] = "Portuguese",
["por-BR"] = "Brazilian Portuguese",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pou"] = "Southern Pokomam",
["pov"] = "Upper Guinea Crioulo",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabian",
["poy"] = "Pogolo",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "Pipil",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppp"] = "Pelende",
["ppq"] = "Pei",
["ppr"] = "Piru",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pare",
["ppu"] = "Papora",
["ppv"] = "Papavô",
["pqa"] = "Pa'a",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "Prakrit",
["prb"] = "Lua'",
["prc"] = "Parachi",
["prd"] = "Persian Dari",
["pre"] = "Principense",
["prf"] = "Paranan",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Peruvian Sign Language",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "Old Provençal",
["prog"] = "Programming",
["prp"] = "Persian",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prs"] = "Dari Persian",
["prt"] = "Phai",
["pru"] = "Puragi",
["prv"] = "Provençal",
["prw"] = "Parawen",
["prx"] = "Purik",
["pry"] = "Pray 3",
["prz"] = "Providencia Sign Language",
["psa"] = "Asue Awyu",
["psc"] = "Persian Sign Language",
["psd"] = "Plains Indian Sign Language",
["pse"] = "Central Malay",
["psg"] = "Penang Sign Language",
["psh"] = "Southwest Pashayi",
["psi"] = "Southeast Pashayi",
["psl"] = "Puerto Rican Sign Language",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Polish Sign Language",
["psp"] = "Philippine Sign Language",
["psq"] = "Pasi",
["psr"] = "Portuguese Sign Language",
["pss"] = "Kaulong",
["pst"] = "Central Pashto",
["psu"] = "Sauraseni Prākrit",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt-BR"] = "Brazilian Portuguese",
["pta"] = "Pai Tavytera",
["pth"] = "Pataxó-Hãhaãi",
["pti"] = "Pintiini",
["ptn"] = "Patani",
["pto"] = "Zo'é",
["ptp"] = "Patep",
["ptq"] = "Pattapu",
["ptr"] = "Piamatsina",
["ptt"] = "Enrekang",
["ptu"] = "Bambam",
["ptv"] = "Port Vato",
["ptw"] = "Pentlatch",
["pty"] = "Pathiya",
["pua"] = "Western Highland Purepecha",
["pub"] = "Purum",
["puc"] = "Punan Merap",
["pud"] = "Punan Aput",
["pue"] = "Puelche",
["puf"] = "Punan Merah",
["pug"] = "Phuie",
["pui"] = "Puinave",
["puj"] = "Punan Tubu",
["puk"] = "Pu Ko",
["pum"] = "Puma",
["pun"] = "Pubian",
["puo"] = "Puoc",
["pup"] = "Pulabu",
["puq"] = "Puquina",
["pur"] = "Puruborá",
["pus"] = "Pashto",
["put"] = "Putoh",
["puu"] = "Punu",
["puw"] = "Puluwatese",
["pux"] = "Puari",
["puy"] = "Purisimeño",
["puz"] = "Purum Naga",
["pwa"] = "Pawaia",
["pwb"] = "Panawa",
["pwg"] = "Gapapaiwa",
["pwi"] = "Patwin",
["pwm"] = "Molbog",
["pwo"] = "Pwo Western Karen",
["pwr"] = "Powari",
["pww"] = "Pwo Northern Karen",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Paraguayan Sign Language",
["pyu"] = "Puyuma",
["pyx"] = "Burmese Pyu",
["pyy"] = "Pyen",
["pzn"] = "Para Naga",
["qua"] = "Quapaw",
["qub"] = "Huallaga Huánuco Quechua",
["quc"] = "K'iche'",
["qud"] = "Calderón Highland Quichua",
["que"] = "Quechua",
["quf"] = "Lambayeque Quechua",
["quh"] = "South Bolivian Quechua",
["qui"] = "Quileute",
["quj"] = "Joyabaj Quiché",
["quk"] = "Chachapoyas Quechua",
["qul"] = "North Bolivian Quechua",
["qum"] = "Sipacapense",
["qun"] = "Quinault",
["qup"] = "Southern Pastaza Quechua",
["quq"] = "Quinqui",
["qur"] = "Yanahuanca Pasco Quechua",
["qus"] = "Santiago del Estero Quichua",
["qut"] = "West Central Quiché",
["quu"] = "Eastern Quiché",
["quv"] = "Sacapulteco",
["quw"] = "Tena Lowland Quichua",
["qux"] = "Yauyos Quechua",
["quy"] = "Ayacucho Quechua",
["quz"] = "Cusco Quechua",
["qva"] = "Ambo-Pasco Quechua",
["qvc"] = "Cajamarca Quechua",
["qve"] = "Eastern Apurímac Quechua",
["qvh"] = "Huamalíes-Dos de Mayo Huánuco Quechua",
["qvi"] = "Imbabura Highland Quichua",
["qvj"] = "Loja Highland Quichua",
["qvl"] = "Cajatambo North Lima Quechua",
["qvm"] = "Margos-Yarowilca-Lauricocha Quechua",
["qvn"] = "North Junín Quechua",
["qvo"] = "Napo Lowland Quechua",
["qvp"] = "Pacaraos Quechua",
["qvs"] = "San Martín Quechua",
["qvw"] = "Huaylla Wanca Quechua",
["qvy"] = "Queyu",
["qvz"] = "Northern Pastaza Quichua",
["qwa"] = "Corongo Ancash Quechua",
["qwc"] = "Classical Quechua",
["qwh"] = "Huaylas Ancash Quechua",
["qwm"] = "Russian Kuman",
["qws"] = "Sihuas Ancash Quechua",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxa"] = "Chiquián Ancash Quechua",
["qxc"] = "Chincha Quechua",
["qxh"] = "Panao Huánuco Quechua",
["qxi"] = "San Andrés Quiché",
["qxl"] = "Salasaca Highland Quichua",
["qxn"] = "Northern Conchucos Ancash Quechua",
["qxo"] = "Southern Conchucos Ancash Quechua",
["qxp"] = "Puno Quechua",
["qxq"] = "Qashqa'i",
["qxr"] = "Cañar Highland Quichua",
["qxs"] = "Southern Qiang",
["qxt"] = "Santa Ana de Tusi Pasco Quechua",
["qxu"] = "Arequipa-La Unión Quechua",
["qxw"] = "Jauja Wanca Quechua",
["qya"] = "Quenya",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Camling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["rae"] = "Ranau",
["raf"] = "Western Meohang",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["raj"] = "Rajasthani",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "Rapanui",
["raq"] = "Saam",
["rar"] = "Rarotongan",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "Rawang",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Northern Bontok",
["rbl"] = "Miraya Bikol",
["rbp"] = "Barababaraba",
["rcf"] = "Réunion Creole French",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Rejang Kayan",
["reg"] = "Tanzanian Kara",
["rei"] = "Reli",
["rej"] = "Rejang",
["rel"] = "Rendille",
["rem"] = "Remo",
["ren"] = "Rengao",
["rer"] = "Rer Bare",
["res"] = "Reshe",
["ret"] = "Retta",
["rey"] = "Reyesano",
["rga"] = "Roria",
["rge"] = "Romano-Greek",
["rgk"] = "Rangkas",
["rgr"] = "Resígaro",
["rgs"] = "Southern Roglai",
["rgu"] = "Ringgou",
["rhg"] = "Rohingya",
["rhp"] = "Yahang",
["ria"] = "Indian Riang",
["rie"] = "Rien",
["ril"] = "Myanma Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjb"] = "Rajbanshi",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "Rajbanshi",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rkm"] = "Marka",
["rkt"] = "Rangpuri",
["rkw"] = "Arakwal",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmd"] = "Traveller Danish",
["rme"] = "Angloromani",
["rmf"] = "Kalo Finnish Romani",
["rmg"] = "Traveller Norwegian",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Baltic Romani",
["rmm"] = "Roma",
["rmn"] = "Balkan Romani",
["rmo"] = "Sinte Romani",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rmr"] = "Caló",
["rms"] = "Romanian Sign Language",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Welsh Romani",
["rmx"] = "Romam",
["rmz"] = "Marma",
["rna"] = "Runa",
["rnd"] = "Ruund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnr"] = "Nari Nari",
["rnw"] = "Rungwa",
["roa"] = "Romance languages",
["roa-Tara"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Cacgia Roglai",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Northern Roglai",
["roh"] = "Romansh",
["rol"] = "Romblomanon",
["rom"] = "Romany",
["ron"] = "Romanian",
["roo"] = "Rotokas",
["rop"] = "Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Waima",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbian",
["rsi"] = "Rennellese Sign Language",
["rsl"] = "Russian Sign Language",
["rsm"] = "Miriwoong Sign Language",
["rtc"] = "Rungtu Chin",
["rth"] = "Ratahan",
["rtm"] = "Rotuman",
["rts"] = "Yurats",
["rtw"] = "Rathawi",
["rub"] = "Gungu",
["ruc"] = "Ruli",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["rum"] = "Romanian",
["run"] = "Rundi",
["ruo"] = "Istro Romanian",
["rus"] = "Russian",
["ruu"] = "Lanas Lobu",
["ruy"] = "Nigerian Mala",
["ruz"] = "Ruma",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Ugandan Amba",
["rwo"] = "Rawa",
["rwr"] = "Indian Marwari",
["rws"] = "Rawas",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "Northern Amami-Oshima",
["rys"] = "Yaeyama",
["rzh"] = "Razihi",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Mesquakie",
["sad"] = "Sandawe",
["sae"] = "Sabanês",
["saf"] = "Safaliba",
["sag"] = "Sango",
["sai"] = "South American Indian languages",
["saj"] = "Sahu",
["sak"] = "Sake",
["sal"] = "Salishan languages",
["sam"] = "Samaritan Aramaic",
["san"] = "Sanskrit",
["sao"] = "Sause",
["sap"] = "Sanapaná",
["saq"] = "Samburu",
["sar"] = "Saraveca",
["sas"] = "Sasak",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Papua New Guinean Kele",
["sbd"] = "Southern Samo",
["sbe"] = "Saliba",
["sbf"] = "Shabo",
["sbg"] = "Seget",
["sbh"] = "Sori-Harengan",
["sbi"] = "Seti",
["sbj"] = "Surbakhal",
["sbk"] = "Safwa",
["sbl"] = "Botolan Sambal",
["sbm"] = "Sagala",
["sbn"] = "Sindhi Bhil",
["sbo"] = "Sabüm",
["sbp"] = "Tanzanian Sangu",
["sbq"] = "Sileibi",
["sbr"] = "Sembakung Murut",
["sbs"] = "Subiya",
["sbt"] = "Kimki",
["sbu"] = "Stod Bhoti",
["sbv"] = "Sabine",
["sbw"] = "Simba",
["sbx"] = "Seberuang",
["sby"] = "Soli",
["sbz"] = "Sara Kaba",
["sca"] = "Sansu",
["scb"] = "Chut",
["scc"] = "Serbian",
["sce"] = "Dongxiang",
["scf"] = "San Miguel Creole French",
["scg"] = "Sanggau",
["sch"] = "Sakechep",
["sci"] = "Sri Lankan Creole Malay",
["sck"] = "Sadri",
["scl"] = "Shina",
["scp"] = "Helambu Sherpa",
["scq"] = "Sa'och",
["scr"] = "Croatian",
["scs"] = "North Slavey",
["sct"] = "Southern Katang",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdd"] = "Semendo",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdi"] = "Sindang Kelingi",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallurese Sardinian",
["sdo"] = "Bukar Sadong",
["sdp"] = "Sherdukpen",
["sdq"] = "Semandang",
["sdr"] = "Oraon Sadri",
["sds"] = "Sened",
["sdt"] = "Shuadit",
["sdu"] = "Sarudu",
["sdx"] = "Sibu",
["sdz"] = "Sallands",
["sea"] = "Semai",
["seb"] = "Shempire Senoufo",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel"] = "Selkup",
["sem"] = "Semitic languages",
["sen"] = "Nanerigé Sénoufo",
["seo"] = "Suarmin",
["sep"] = "Sìcìté Sénoufo",
["seq"] = "Senara Sénoufo",
["ser"] = "Serrano",
["set"] = "Sentani",
["seu"] = "Serui-Laut",
["sev"] = "Nyarafolo Senoufo",
["sew"] = "Sewa Bay",
["sey"] = "Secoya",
["sez"] = "Senthang Chin",
["sfb"] = "Langue des signes de Belgique Francophone",
["sfe"] = "Eastern Subanen",
["sfm"] = "Small Flowery Miao",
["sfs"] = "South African Sign Language",
["sfw"] = "Sehwi",
["sga"] = "Old Irish",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "Surigaonon",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgj"] = "Surgujia",
["sgk"] = "Sangkong",
["sgl"] = "Sanglechi-Ishkashimi",
["sgm"] = "Singa",
["sgn"] = "Sign languages",
["sgo"] = "Songa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sha"] = "Shall-Zwall",
["shb"] = "Ninam",
["shc"] = "Sonde",
["shd"] = "Kundal Shahi",
["she"] = "Sheko",
["shg"] = "Shua",
["shh"] = "Shoshoni",
["shj"] = "Shatt",
["shk"] = "Shilluk",
["shl"] = "Shendu",
["shm"] = "Shahrudi",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Chadian Arabic",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shz"] = "Syenara Senoufo",
["sia"] = "Akkala Sami",
["sib"] = "Sebob Kenyah",
["sic"] = "Malinguat",
["sid"] = "Sidamo",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Zire",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Papua New Guinean Mende",
["sin"] = "Sinhala",
["sio"] = "Siouan languages",
["sip"] = "Sikkimese",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit"] = "Sino-Tibetan languages",
["siu"] = "Sinagen",
["siv"] = "Sumariup",
["siw"] = "Siwai",
["six"] = "Sumau",
["siy"] = "Sivandi",
["siz"] = "Siwi",
["sja"] = "Epena",
["sjb"] = "Sajau Basap",
["sjg"] = "Assangori",
["sjk"] = "Kemi Sami",
["sjl"] = "Sajalong",
["sjm"] = "Mapun",
["sjn"] = "Sindarin",
["sjo"] = "Xibe",
["sjp"] = "Surajpuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja De Srair",
["sjt"] = "Ter Sami",
["sju"] = "Ume Sami",
["sjw"] = "Shawnee",
["ska"] = "Skagit",
["skb"] = "Saek",
["skc"] = "Sauk",
["skd"] = "Southern Sierra Miwok",
["ske"] = "Vanuatu Seke",
["skf"] = "Sakirabiá",
["skg"] = "Sakalava Malagasy",
["skh"] = "Sikule",
["ski"] = "Sika",
["skj"] = "Nepali Seke",
["skk"] = "Sok",
["skl"] = "Selako",
["skm"] = "Sakam",
["skn"] = "Kolibugan Subanon",
["sko"] = "Seko Tengah",
["skp"] = "Sekapan",
["skq"] = "Sininkere",
["sks"] = "Maia",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Skepi Creole Dutch",
["skx"] = "Seko Padang",
["sky"] = "Sikaiana",
["skz"] = "Sekar",
["sla"] = "Slavic languages",
["slb"] = "Kahumamahon Saluan",
["slc"] = "Sáliba",
["sld"] = "Sissala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Southern Puget Sound Salish",
["slj"] = "Salumá",
["slk"] = "Slovak",
["sll"] = "Salt-Yui",
["slm"] = "Pangutaran Sama",
["sln"] = "Salinan",
["slo"] = "Slovak",
["slp"] = "Lamaholot",
["slq"] = "Salchuq",
["slr"] = "Salar",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slv"] = "Slovenian",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["sme"] = "Northern Sámi",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi"] = "Sami languages",
["smj"] = "Lule Sami",
["smk"] = "Bolinao",
["sml"] = "Central Sama",
["smm"] = "Musasa",
["smo"] = "Samoan",
["smp"] = "Samaritan",
["smq"] = "Samo",
["smr"] = "Simeulue",
["smt"] = "Simte",
["smu"] = "Somray",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sna"] = "Shona",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["snd"] = "Sindhi",
["sne"] = "Jagoi",
["snf"] = "Noon",
["sng"] = "Congolese Sanga",
["snh"] = "Shinabo",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Southern Ma'di",
["snn"] = "Siona",
["sno"] = "Snohomish",
["snp"] = "Siane",
["snq"] = "Gabon Sangu",
["snr"] = "Sihan",
["sns"] = "South West Bay",
["snu"] = "Senggi",
["snv"] = "Sa'ban",
["snw"] = "Selee",
["snx"] = "Sam",
["sny"] = "Saniyo-Hiyewe",
["snz"] = "Sinsauru",
["soa"] = "Thai Song",
["sob"] = "Sobei",
["soc"] = "Congolese So",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdian",
["soh"] = "Aka",
["soi"] = "Sonha",
["soj"] = "Soi",
["sok"] = "Sokoro",
["sol"] = "Solos",
["som"] = "Somali",
["son"] = "Songhai languages",
["soo"] = "Songo",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seeku",
["sot"] = "Sotho",
["sou"] = "Southern Thai",
["sov"] = "Sonsorol",
["sow"] = "Sowanda",
["sox"] = "Cameroonian So",
["soy"] = "Miyobe",
["soz"] = "Temi",
["spa"] = "Spanish",
["spb"] = "Indonesian Sepa",
["spc"] = "Sapé",
["spd"] = "Saep",
["spe"] = "Papua New Guinean Sepa",
["spg"] = "Sian",
["spi"] = "Saponi",
["spk"] = "Sengo",
["spl"] = "Selepet",
["spm"] = "Sepen",
["spn"] = "Sanapaná",
["spo"] = "Spokane",
["spp"] = "Supyire Senoufo",
["spq"] = "Loreto-Ucayali Spanish",
["spr"] = "Saparua",
["sps"] = "Saposa",
["spt"] = "Spiti Bhoti",
["spu"] = "Sapuan",
["spv"] = "Sambalpuri",
["spx"] = "South Picene",
["spy"] = "Sabaot",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqi"] = "Albanian",
["sqk"] = "Albanian Sign Language",
["sqm"] = "Suma",
["sqn"] = "Susquehannock",
["sqo"] = "Sorkhei",
["sqq"] = "Sou",
["sqr"] = "Siculo Arabic",
["sqs"] = "Sri Lankan Sign Language",
["sqt"] = "Soqotri",
["squ"] = "Squamish",
["sra"] = "Saruga",
["srb"] = "Sora",
["src"] = "Logudorese Sardinian",
["srd"] = "Sardinian",
["sre"] = "Sara",
["srf"] = "Nafi",
["srg"] = "Sulod",
["srh"] = "Sarikoli",
["sri"] = "Siriano",
["srj"] = "Serawai",
["srk"] = "Serudung Murut",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srp"] = "Serbian",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Sarsi",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ssa"] = "Nilo-Saharan languages",
["ssb"] = "Southern Sama",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Shihhi Arabic",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Western Sisaala",
["ssm"] = "Semnam",
["ssn"] = "Sanye",
["sso"] = "Sissano",
["ssp"] = "Spanish Sign Language",
["ssq"] = "So'a",
["ssr"] = "Swiss-French Sign Language",
["sss"] = "Sô",
["sst"] = "Sinasina",
["ssu"] = "Susuami",
["ssv"] = "Shark Bay",
["ssw"] = "Swati",
["ssx"] = "Samberigi",
["ssy"] = "Saho",
["ssz"] = "Sengseng",
["sta"] = "Settla",
["stb"] = "Northern Subanen",
["stc"] = "Santa Cruz",
["std"] = "Sentinel",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stl"] = "Stellingwerfs",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Southeastern Tepehuan",
["str"] = "Straits Salish",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawalese",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Western Subanon",
["sue"] = "Suena",
["suf"] = "Tarpia",
["sug"] = "Suganga",
["suh"] = "Suba",
["sui"] = "Suki",
["suj"] = "Shubi",
["suk"] = "Sukuma",
["sul"] = "Surigaonon",
["sum"] = "Sumo-Mayangna",
["sun"] = "Sundanese",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suu"] = "Sungkai",
["suv"] = "Sulung",
["suw"] = "Sumbwa",
["sux"] = "Sumerian",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Vincentian Creole English",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svr"] = "Savara",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["swa"] = "Swahili",
["swb"] = "Comorian",
["swc"] = "Congo Swahili",
["swe"] = "Swedish",
["swf"] = "Sere",
["swg"] = "Swabian",
["swh"] = "Swahili",
["swi"] = "Sui",
["swj"] = "Sira",
["swk"] = "Malawi Sena",
["swl"] = "Swedish Sign Language",
["swm"] = "Samosa",
["swn"] = "Sawknah",
["swo"] = "Shanenawa",
["swp"] = "Suau",
["swq"] = "Sharwa",
["swr"] = "Saweru",
["sws"] = "Seluwasan",
["swt"] = "Sawila",
["swu"] = "Suwawa",
["swv"] = "Shekhawati",
["sww"] = "Sowa",
["swx"] = "Suruahá",
["swy"] = "Sarua",
["sxb"] = "Suba",
["sxc"] = "Sicanian",
["sxe"] = "Sighu",
["sxg"] = "Shixing",
["sxk"] = "Southern Kalapuya",
["sxl"] = "Selian",
["sxm"] = "Samre",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxu"] = "Upper Saxon",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Central Subanen",
["syc"] = "Classical Syriac",
["syi"] = "Seki",
["syk"] = "Sukur",
["sym"] = "Maya Samo",
["syn"] = "Senaya",
["syo"] = "Suoy",
["syr"] = "Syriac languages",
["sys"] = "Sinyar",
["syw"] = "Kagate",
["syx"] = "Samay",
["syy"] = "Al-Sayyid Bedouin Sign Language",
["sza"] = "Semelai",
["szb"] = "Ngalum",
["szc"] = "Semaq Beri",
["szd"] = "Seru",
["sze"] = "Seze",
["szg"] = "Sengele",
["szk"] = "Sizaki",
["szn"] = "Sula",
["szp"] = "Suabo",
["szs"] = "Solomon Islands Sign Language",
["szv"] = "Fako Division Isu",
["szw"] = "Sawai",
["taa"] = "Lower Tanana",
["tab"] = "Tabassaran",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariano",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tah"] = "Tahitian",
["tai"] = "Tai languages",
["taj"] = "Eastern Tamang",
["tak"] = "Tala",
["tal"] = "Tal",
["tam"] = "Tamil",
["tan"] = "Tangale",
["tao"] = "Yami",
["tap"] = "Taabwa",
["taq"] = "Tamasheq",
["tar"] = "Central Tarahumara",
["tas"] = "Tay Boi",
["tat"] = "Tatar",
["tau"] = "Upper Tanana",
["tav"] = "Tatuyo",
["taw"] = "Tai",
["tax"] = "Tamki",
["taz"] = "Tocho",
["tba"] = "Tubarão",
["tbb"] = "Tapeba",
["tbc"] = "Takia",
["tbd"] = "Kaki Ae",
["tbe"] = "Tanimbili",
["tbf"] = "Mandara",
["tbg"] = "North Tairora",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "Tboli",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo Tembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Southern Tutchone",
["tcf"] = "Malinaltepec Tlapanec",
["tcg"] = "Tamagario",
["tch"] = "Turks And Caicos Creole English",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Myanma Taman",
["tcm"] = "Tanahmerah",
["tcn"] = "Tichurong",
["tco"] = "Taungyo",
["tcp"] = "Tawr Chin",
["tcq"] = "Kaiy",
["tcs"] = "Torres Strait Creole",
["tct"] = "T'en",
["tcu"] = "Southeastern Tarahumara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "Toda",
["tcz"] = "Thado Chin",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Western Tamang",
["tdh"] = "Thulung",
["tdi"] = "Tomadino",
["tdj"] = "Tajio",
["tdk"] = "Tambas",
["tdl"] = "Sur",
["tdm"] = "Taruma",
["tdn"] = "Tondano",
["tdo"] = "Teme",
["tdq"] = "Tita",
["tdr"] = "Todrah",
["tds"] = "Doutai",
["tdt"] = "Tetun Dili",
["tdu"] = "Tempasuk Dusun",
["tdv"] = "Toro",
["tdx"] = "Tandroy-Mahafaly Malagasy",
["tdy"] = "Tadyawan",
["tea"] = "Temiar",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Huehuetla Tepehua",
["tef"] = "Teressa",
["teg"] = "Teke-Tege",
["teh"] = "Tehuelche",
["tei"] = "Torricelli",
["tek"] = "Ibali Teke",
["tel"] = "Telugu",
["tem"] = "Temne",
["ten"] = "Colombian Tama",
["teo"] = "Teso",
["tep"] = "Tepecano",
["teq"] = "Temein",
["ter"] = "Tereno",
["tes"] = "Tengger",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "American Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Tanaina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "Ternate",
["tga"] = "Sagalla",
["tgb"] = "Tebilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Eastern Gorkha Tamang",
["tgf"] = "Chalikha",
["tgg"] = "Tangga",
["tgh"] = "Tobagonian Creole English",
["tgi"] = "Lawunuia",
["tgj"] = "Tagin",
["tgk"] = "Tajik",
["tgl"] = "Tagalog",
["tgn"] = "Tandaganon",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Central Tagbanwa",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["tgz"] = "Tagalaka",
["tha"] = "Thai",
["thc"] = "Tai Hang Tong",
["thd"] = "Thayore",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Northern Tarahumara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "Aheu",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thv"] = "Tahaggart Tamahaq",
["thw"] = "Thudam",
["thx"] = "The",
["thy"] = "Tha",
["thz"] = "Tayart Tamajeq",
["tia"] = "Tidikelt Tamazight",
["tib"] = "Tibetan",
["tic"] = "Tira",
["tid"] = "Tidong",
["tie"] = "Tingal",
["tif"] = "Tifal",
["tig"] = "Tigre",
["tih"] = "Timugon Murut",
["tii"] = "Tiene",
["tij"] = "Tilung",
["tik"] = "Tikar",
["til"] = "Tillamook",
["tim"] = "Timbe",
["tin"] = "Tindi",
["tio"] = "Teop",
["tip"] = "Trimuris",
["tiq"] = "Tiéfo",
["tir"] = "Tigrinya",
["tis"] = "Masadiit Itneg",
["tit"] = "Tinigua",
["tiu"] = "Adasen Itneg",
["tiv"] = "Tiv",
["tiw"] = "Tiwi",
["tix"] = "Southern Tiwa",
["tiy"] = "Tiruray",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Northern Tujia",
["tjj"] = "Tjungundji",
["tjl"] = "Tai Laing",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjo"] = "Temacine Tamazight",
["tjp"] = "Tjupany",
["tjs"] = "Southern Tujia",
["tju"] = "Tjurruru",
["tjw"] = "Djabwurrung",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkg"] = "Tesaka Malagasy",
["tkk"] = "Takpa",
["tkl"] = "Tokelau",
["tkm"] = "Takelma",
["tkn"] = "Toku-No-Shima",
["tkp"] = "Tikopia",
["tkq"] = "Tee",
["tkr"] = "Tsakhur",
["tks"] = "Takestani",
["tkt"] = "Kathoriya Tharu",
["tku"] = "Upper Necaxa Totonac",
["tkv"] = "Mur Pano",
["tkw"] = "Teanu",
["tkx"] = "Tangko",
["tkz"] = "Takua",
["tla"] = "Southwestern Tepehuan",
["tlb"] = "Tobelo",
["tlc"] = "Yecuatla Totonac",
["tld"] = "Talaud",
["tle"] = "Southern Marakwet",
["tlf"] = "Telefol",
["tlg"] = "Tofanma",
["tlh"] = "Klingon",
["tli"] = "Tlingit",
["tlj"] = "Talinga-Bwisi",
["tlk"] = "Taloki",
["tll"] = "Tetela",
["tlm"] = "Tolomako",
["tln"] = "Talondo'",
["tlo"] = "Talodi",
["tlp"] = "Filomena Mata-Coahuitlán Totonac",
["tlq"] = "Tai Loi",
["tlr"] = "Talise",
["tls"] = "Tambotalo",
["tlt"] = "Teluti",
["tlu"] = "Tulehu",
["tlv"] = "Taliabu",
["tlw"] = "South Wemale",
["tlx"] = "Khehek",
["tlz"] = "Toala'",
["tma"] = "Chadian Tama",
["tmb"] = "Katbol",
["tmc"] = "Tumak",
["tmd"] = "Haruai",
["tme"] = "Tremembé",
["tmf"] = "Toba-Maskoy",
["tmg"] = "Ternateño",
["tmh"] = "Tamashek",
["tmi"] = "Tutuba",
["tmj"] = "Samarokena",
["tmk"] = "Northwestern Tamang",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Indonesian Taman",
["tmo"] = "Temoq",
["tmp"] = "Tai Mène",
["tmq"] = "Tumleo",
["tmr"] = "Talmudic Aramaic",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo Tembo",
["tmw"] = "Temuan",
["tmx"] = "Tomyang",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tna"] = "Tacana",
["tnb"] = "Western Tunebo",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tnf"] = "Tangshewi",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnj"] = "Tanjong",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "North Tanna",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "Taino",
["tnr"] = "Budik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tangchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Thai Tonga",
["tob"] = "Toba",
["toc"] = "Coyutla Totonac",
["tod"] = "Toma",
["toe"] = "Tomedes",
["tof"] = "Gizrra",
["tog"] = "Nyasan Tonga",
["toh"] = "Gitonga",
["toi"] = "Zambian Tonga",
["toj"] = "Tojolabal",
["tokipona"] = "Toki Pona",
["tol"] = "Tolowa",
["tom"] = "Tombulu",
["ton"] = "Tongan",
["too"] = "Xicotepec De Juárez Totonac",
["top"] = "Papantla Totonac",
["toq"] = "Toposa",
["tor"] = "Togbo-Vara Banda",
["tos"] = "Highland Totonac",
["tot"] = "Patla-Chicontla Totonac",
["tou"] = "Tho",
["tov"] = "Upper Taromi",
["tow"] = "Jemez",
["tox"] = "Tobian",
["toy"] = "Topoiyo",
["toz"] = "To",
["tpa"] = "Taupota",
["tpc"] = "Azoyú Tlapanec",
["tpe"] = "Tippera",
["tpf"] = "Tarpia",
["tpg"] = "Kula",
["tpj"] = "Tapieté",
["tpk"] = "Tupinikin",
["tpl"] = "Tlacoapa Tlapanec",
["tpm"] = "Tampulma",
["tpn"] = "Tupinambá",
["tpo"] = "Tai Pao",
["tpp"] = "Pisaflores Tepehua",
["tpq"] = "Tukpa",
["tpr"] = "Tuparí",
["tpt"] = "Tlachichilco Tepehua",
["tpu"] = "Tampuan",
["tpv"] = "Tanapag",
["tpw"] = "Tupí",
["tpx"] = "Acatepec Tlapanec",
["tpy"] = "Trumaí",
["tpz"] = "Tinputz",
["tqb"] = "Tembé",
["tql"] = "Lehali",
["tqm"] = "Turumsa",
["tqn"] = "Tenino",
["tqo"] = "Toaripi",
["tqp"] = "Tomoip",
["tqq"] = "Tunni",
["tqr"] = "Torona",
["tqt"] = "Ozumatlán Totonac",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "East Tarangan",
["trf"] = "Trinidadian Creole English",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao Naga",
["trp"] = "Kok Borok",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "Turung",
["trz"] = "Torá",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Tunisian Sign Language",
["tsf"] = "Southwestern Tamang",
["tsg"] = "Tausug",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsk"] = "Tseku",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Turkish Sign Language",
["tsn"] = "Tswana",
["tso"] = "Tsonga",
["tsp"] = "Northern Toussian",
["tsq"] = "Thai Sign Language",
["tsr"] = "Akei",
["tss"] = "Taiwan Sign Language",
["tst"] = "Tondi Songway Kiini",
["tsu"] = "Tsou",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Tebul Sign Language",
["tsz"] = "Purepecha",
["tta"] = "Tutelo",
["ttb"] = "Gaa",
["ttc"] = "Tektiteko",
["ttd"] = "Tauade",
["tte"] = "Bwanabwana",
["ttf"] = "Tuotomb",
["ttg"] = "Tutong 2",
["tth"] = "Upper Ta'oih",
["tti"] = "Tobati",
["ttk"] = "Totoro",
["ttl"] = "Totela",
["ttm"] = "Northern Tutchone",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttq"] = "Tawallammat Tamajaq",
["ttr"] = "Tera",
["tts"] = "Northeastern Thai",
["ttt"] = "Muslim Tat",
["ttu"] = "Torau",
["ttv"] = "Titan",
["ttw"] = "Tutoh Kenyah",
["ttx"] = "Tutong 1",
["tty"] = "Sikaritai",
["ttz"] = "Tsum",
["tua"] = "Wiarumus",
["tub"] = "Tübatulabal",
["tuc"] = "Mutu",
["tud"] = "Tuxá",
["tue"] = "Tuyuca",
["tuf"] = "Central Tunebo",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tuk"] = "Turkmen",
["tul"] = "Tula",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup"] = "Tupi languages",
["tuq"] = "Tedaga",
["tur"] = "Turkish",
["tus"] = "Tuscarora",
["tut"] = "Altaic languages",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tux"] = "Tuxináwa",
["tuy"] = "North Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Southeast Ambrym",
["tvl"] = "Tuvalu",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "Tidore",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Western Tawbuid",
["twc"] = "Teshenawa",
["twd"] = "Twents",
["twe"] = "Indonesian Tewa",
["twf"] = "Northern Tiwa",
["twg"] = "Tereweng",
["twh"] = "Tai Dón",
["twi"] = "Twi",
["twl"] = "Tawara",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Southwestern Tarahumara",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twx"] = "Tewe",
["twy"] = "Tawoyan",
["txa"] = "Tombonuwo",
["txb"] = "Tokharian B",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "Tangut",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "West Tarangan",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["txy"] = "Tanosy Malagasy",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "Tai Do",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Thaypan",
["tyr"] = "Tai Daeng",
["tys"] = "Tày Sa Pa",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyx"] = "Teke-Tyee",
["tyz"] = "Tày",
["tza"] = "Tanzanian Sign Language",
["tzb"] = "Bachajón Tzeltal",
["tzc"] = "Chamula Tzotzil",
["tze"] = "Chenalhó Tzotzil",
["tzh"] = "Oxchuc Tzeltal",
["tzj"] = "Eastern Tzutujil",
["tzl"] = "Talossan",
["tzn"] = "Tugun",
["tzo"] = "Venustiano Carranza Tzotzil",
["tzs"] = "San Andrés Larrainzar Tzotzil",
["tzt"] = "Western Tzutujil",
["tzu"] = "Huixtán Tzotzil",
["tzx"] = "Tabriak",
["tzz"] = "Zinacantán Tzotzil",
["uam"] = "Uamué",
["uan"] = "Kuan",
["uar"] = "Tairuma",
["uba"] = "Ubang",
["ubi"] = "Ubi",
["ubl"] = "Buhi'non Bikol",
["ubm"] = "Upper Baram Kenyah",
["ubr"] = "Ubir",
["ubu"] = "Umbu-Ungu",
["uby"] = "Ubykh",
["uda"] = "Uda",
["ude"] = "Udihe",
["udg"] = "Muduga",
["udi"] = "Udi",
["udj"] = "Ujir",
["udl"] = "Wuzlam",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["uga"] = "Ugaritic",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "Ugong",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uig"] = "Uyghur",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uka"] = "Kaburi",
["ukg"] = "Ukuriguma",
["ukh"] = "Ukhwejo",
["uki"] = "Kui",
["ukk"] = "Muak Sa-aak",
["ukl"] = "Ukrainian Sign Language",
["ukp"] = "Ukpe-Bayobiri",
["ukq"] = "Ukwa",
["ukr"] = "Ukrainian",
["uks"] = "Urubú-Kaapor Sign Language",
["uku"] = "Ukue",
["ukv"] = "Kuku",
["ukw"] = "Ukwuani-Aboh-Ndoni",
["uky"] = "Kuuk-Yak",
["ula"] = "Fungwa",
["ulb"] = "Ulukwumi",
["ulc"] = "Ulch",
["ule"] = "Lule",
["ulf"] = "Usku",
["uli"] = "Ulithian",
["ulk"] = "Meriam",
["ull"] = "Ullatan",
["ulm"] = "Ulumanda'",
["uln"] = "Unserdeutsch",
["ulu"] = "Uma' Lung",
["ulw"] = "Ulwa",
["uma"] = "Umatilla",
["umb"] = "Umbundu",
["umc"] = "Marrucinian",
["umd"] = "Umbindhamu",
["umg"] = "Umbuygamu",
["umi"] = "Ukit",
["umm"] = "Umon",
["umn"] = "Makyan Naga",
["umo"] = "Umotína",
["ump"] = "Umpila",
["umr"] = "Umbugarla",
["ums"] = "Pendau",
["umu"] = "Munsee",
["una"] = "North Watut",
["und"] = "Undetermined",
["une"] = "Uneme",
["ung"] = "Ngarinyin",
["unk"] = "Enawené-Nawé",
["unm"] = "Unami",
["unn"] = "Kurnai",
["unp"] = "Worora",
["unr"] = "Mundari",
["unu"] = "Unubahe",
["unx"] = "Munda",
["unz"] = "Unde Kaili",
["uok"] = "Uokha",
["upi"] = "Umeda",
["upv"] = "Uripiv-Wala-Rano-Atchin",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["urd"] = "Urdu",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urk"] = "Urak Lawoi'",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Papua New Guinean Ura",
["urp"] = "Uru-Pa-In",
["urr"] = "Lehalurup",
["urt"] = "Urat",
["uru"] = "Urumi",
["urv"] = "Uruava",
["urw"] = "Sop",
["urx"] = "Urimo",
["ury"] = "Orya",
["urz"] = "Uru-Eu-Wau-Wau",
["usa"] = "Usarufa",
["ush"] = "Ushojo",
["usi"] = "Usui",
["usk"] = "Usaghade",
["usp"] = "Uspanteco",
["uss"] = "us-Saare<!-- lowercase u is not a typo-->",
["usu"] = "Uya",
["uta"] = "Otank",
["ute"] = "Ute-Southern Paiute",
["uth"] = "ut-Hun<!-- lowercase u is not a typo-->",
["utp"] = "Solomon Islands Amba",
["utr"] = "Etulo",
["utu"] = "Utu",
["uum"] = "Urum",
["uun"] = "Kulon-Pazeh",
["uur"] = "Vanuatu Ura",
["uuu"] = "U",
["uve"] = "West Uvean",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uzb"] = "Uzbek",
["uzn"] = "Northern Uzbek",
["uzs"] = "Southern Uzbek",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vaf"] = "Vafsi",
["vag"] = "Vagla",
["vah"] = "Varhadi-Nagpuri",
["vai"] = "Vai",
["vaj"] = "Vasekela Bushman",
["val"] = "Vehes",
["vam"] = "Vanimo",
["van"] = "Valman",
["vao"] = "Vao",
["vap"] = "Vaiphei",
["var"] = "Huarijio",
["vas"] = "Vasavi",
["vau"] = "Vanuma",
["vav"] = "Varli",
["vay"] = "Wayu",
["vbb"] = "Southeast Babar",
["vbk"] = "Southwestern Bontok",
["ved"] = "Veddah",
["vel"] = "Veluws",
["vem"] = "Vemgo-Mabas",
["ven"] = "Venda",
["veo"] = "Ventureño",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Vlaamse Gebarentaal",
["vic"] = "Virgin Islands Creole English",
["vid"] = "Vidunda",
["vie"] = "Vietnamese",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vin"] = "Vinza",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Korlai Creole Portuguese",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vky"] = "Kayu Agung",
["vlp"] = "Valpei",
["vlr"] = "Vatrata",
["vma"] = "Martuyhunira",
["vmb"] = "Mbabaram",
["vmc"] = "Juxtlahuaca Mixtec",
["vmd"] = "Mudu Koraga",
["vme"] = "East Masela",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Ixtayutla Mixtec",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mitlatongo Mixtec",
["vmo"] = "Muko-Muko",
["vmp"] = "Soyaltepec Mazatec",
["vmq"] = "Soyaltepec Mixtec",
["vmr"] = "Marenje",
["vms"] = "Moksela",
["vmu"] = "Muluridyi",
["vmv"] = "Valley Maidu",
["vmx"] = "Tamazola Mixtec",
["vmy"] = "Ayautla Mazatec",
["vmz"] = "Mazatlán Mazatec",
["vnk"] = "Vano",
["vnm"] = "Vinmavis",
["vnp"] = "Vunapu",
["vol"] = "Volapük",
["vor"] = "Voro",
["vra"] = "Vera'a",
["vrs"] = "Varisi",
["vrt"] = "Burmbar",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Chinese Awa",
["waa"] = "Walla Walla",
["wab"] = "Wab",
["wac"] = "Wasco-Wishram",
["wad"] = "Wandamen",
["wae"] = "Walser",
["waf"] = "Wakoná",
["wag"] = "Wa'ema",
["wah"] = "Watubela",
["wai"] = "Wares",
["waj"] = "Waffa",
["wak"] = "Wakashan languages",
["wam"] = "Wampanoag",
["wan"] = "Wan",
["wao"] = "Wappo",
["wap"] = "Wapishana",
["waq"] = "Wageman",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Waurá",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "Warao",
["wbb"] = "Wabo",
["wbe"] = "Waritai",
["wbf"] = "Wara",
["wbh"] = "Wanda",
["wbi"] = "Wanji",
["wbj"] = "Alagwa",
["wbk"] = "Waigali",
["wbl"] = "Wakhi",
["wbm"] = "Wa",
["wbp"] = "Warlpiri",
["wbq"] = "Waddar",
["wbr"] = "Wagdi",
["wbs"] = "West Bengal Sign Language",
["wbt"] = "Wanman",
["wbv"] = "Wajarri",
["wbw"] = "Woi",
["wca"] = "Yanomámi",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdk"] = "Wadikali",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Western",
["wed"] = "Wedau",
["weg"] = "Wergaia",
["weh"] = "Weh",
["wei"] = "Were",
["wel"] = "Welsh",
["wem"] = "Weme Gbe",
["wen"] = "Sorbian languages",
["weo"] = "North Wemale",
["wep"] = "Westphalien",
["wer"] = "Weri",
["wes"] = "Cameroon Pidgin",
["wet"] = "Perai",
["weu"] = "Welaung",
["wew"] = "Wejewa",
["wfg"] = "Yafi",
["wga"] = "Wagaya",
["wgb"] = "Wagawaga",
["wgg"] = "Wangganguru",
["wgi"] = "Wahgi",
["wgo"] = "Waigeo",
["wgu"] = "Wirangu",
["wgw"] = "Wagawaga",
["wgy"] = "Warrgamay",
["wha"] = "Manusela",
["whg"] = "North Wahgi",
["whk"] = "Wahau Kenyah",
["whu"] = "Wahau Kayan",
["wib"] = "Southern Toussian",
["wic"] = "Wichita",
["wie"] = "Wik-Epa",
["wif"] = "Wik-Keyangan",
["wig"] = "Wik-Ngathana",
["wih"] = "Wik-Me'anha",
["wii"] = "Wiaki",
["wij"] = "Wik-Iiyanh",
["wik"] = "Wikalkan",
["wil"] = "Wilawila",
["wim"] = "Wik-Mungkan",
["win"] = "Ho-Chunk",
["wir"] = "Wiraféd",
["wit"] = "Wintu",
["wiu"] = "Wiru",
["wiv"] = "Muduapa",
["wiw"] = "Wirangu",
["wiy"] = "Wiyot",
["wja"] = "Waja",
["wji"] = "Warji",
["wka"] = "Kw'adza",
["wkb"] = "Kumbaran",
["wkd"] = "Wakde",
["wkl"] = "Kalanadi",
["wkr"] = "Keerray-Woorroong",
["wku"] = "Kunduvadi",
["wkw"] = "Wakawaka",
["wky"] = "Wangkayutyuru",
["wla"] = "Walio",
["wlc"] = "Mwali Comorian",
["wle"] = "Wolane",
["wlg"] = "Kunbarlang",
["wlh"] = "Welaun",
["wli"] = "Waioli",
["wlk"] = "Wailaki",
["wll"] = "Sudanese Wali",
["wlm"] = "Middle Welsh",
["wln"] = "Walloon",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wlu"] = "Wuliwuli",
["wlv"] = "Wichí Lhamtés Vejoz",
["wlw"] = "Walak",
["wlx"] = "Ghanaian Wali",
["wly"] = "Waling",
["wma"] = "Nigerian Mawa",
["wmb"] = "Wambaya",
["wmc"] = "Wamas",
["wmd"] = "Mamaindé",
["wme"] = "Wambule",
["wmh"] = "Waima'a",
["wmi"] = "Wamin",
["wmm"] = "Indonesian Maiwa",
["wmn"] = "Waamwang",
["wmo"] = "Wom",
["wms"] = "Wambon",
["wmt"] = "Walmajarri",
["wmw"] = "Mwani",
["wmx"] = "Womo",
["wnb"] = "Wanambre",
["wnc"] = "Wantoat",
["wnd"] = "Wandarang",
["wne"] = "Waneci",
["wng"] = "Wanggom",
["wni"] = "Ndzwani Comorian",
["wnk"] = "Wanukaka",
["wnm"] = "Wanggamala",
["wnn"] = "Wunumara",
["wno"] = "Wano",
["wnp"] = "Wanap",
["wnu"] = "Usan",
["wnw"] = "Wintu",
["wny"] = "Wanyi",
["woa"] = "Tyaraity",
["wob"] = "Wè Northern",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleaian",
["wof"] = "Gambian Wolof",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wol"] = "Wolof",
["wom"] = "Nigerian Wom",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["woy"] = "Weyto",
["wpc"] = "Maco",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrd"] = "Warduji",
["wre"] = "Ware",
["wrg"] = "Warungu",
["wrh"] = "Wiradhuri",
["wri"] = "Wariyangga",
["wrk"] = "Garrwa",
["wrl"] = "Warlmanpa",
["wrm"] = "Warumungu",
["wrn"] = "Warnang",
["wro"] = "Worrorra",
["wrp"] = "Waropen",
["wrr"] = "Wardaman",
["wrs"] = "Waris",
["wru"] = "Waru",
["wrv"] = "Waruna",
["wrw"] = "Gugu Warra",
["wrx"] = "Wae Rana",
["wry"] = "Merwari",
["wrz"] = "Australian Waray",
["wsa"] = "Warembori",
["wsg"] = "Adilabad Gondi",
["wsi"] = "Wusi",
["wsk"] = "Waskia",
["wsr"] = "Owenia",
["wss"] = "Wasa",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Dumpu",
["wth"] = "Wathawurrung",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwb"] = "Wakabunga",
["wwo"] = "Wetamut",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxianghua",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Wangaaybuwan-Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "Wymysorys",
["wyr"] = "Wayoró",
["wyy"] = "Western Fijian",
["xaa"] = "Andalusian Arabic",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xah"] = "Kahayan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Máku",
["xam"] = "{{!}}Xam",
["xan"] = "Xamtanga",
["xao"] = "Khao",
["xap"] = "Apalachee",
["xaq"] = "Aquitanian",
["xar"] = "Karami",
["xas"] = "Kamas",
["xat"] = "Katawixi",
["xau"] = "Kauwera",
["xav"] = "Xavánte",
["xaw"] = "Kawaiisu",
["xay"] = "Kayan Mahakam",
["xba"] = "Brazilian Kamba",
["xbb"] = "Lower Burdekin",
["xbc"] = "Bactrian",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "Middle Breton",
["xbn"] = "Kenaboi",
["xbo"] = "Bolgarian",
["xbp"] = "Bibbulman",
["xbr"] = "Kambera",
["xbw"] = "Kambiwá",
["xbx"] = "Kabixí",
["xby"] = "Batyala",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xcg"] = "Cisalpine Gaulish",
["xch"] = "Chemakum",
["xcl"] = "Classical Armenian",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Chorasmian",
["xcr"] = "Carian",
["xct"] = "Classical Tibetan",
["xcu"] = "Curonian",
["xcv"] = "Chuvantsy",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinyung",
["xdc"] = "Dacian",
["xdk"] = "Dharuk",
["xdm"] = "Edomite",
["xdo"] = "Kwandu",
["xdy"] = "Malayic Dayak",
["xeb"] = "Eblan",
["xed"] = "Hdi",
["xeg"] = "{{!}}{{!}}Xegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keuru",
["xfa"] = "Faliscan",
["xga"] = "Galatian",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindan",
["xgm"] = "Guwinmal",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xha"] = "Harami",
["xhc"] = "Hunnic",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xho"] = "Xhosa",
["xhr"] = "Hernican",
["xht"] = "Hattic",
["xhu"] = "Hurrian",
["xhv"] = "Khua",
["xia"] = "Xiandao",
["xib"] = "Iberian",
["xii"] = "Xiri",
["xil"] = "Illyrian",
["xin"] = "Xinca",
["xip"] = "Xipináwa",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Harappan",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xjt"] = "Jaitmatang",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Kho'ini",
["xkd"] = "Mendalam Kayan",
["xke"] = "Kereho-Uheng",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xkh"] = "Karahawyana",
["xki"] = "Kenyan Sign Language",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Kelinyau Kenyah",
["xkm"] = "Mahakam Kenyah",
["xkn"] = "Kayan River Kayan",
["xko"] = "Kiorr",
["xkp"] = "Kabatei",
["xkq"] = "Koroni",
["xkr"] = "Xakriabá",
["xks"] = "Kumbewaha",
["xkt"] = "Kantosi",
["xku"] = "Kaamba",
["xkv"] = "Kgalagadi",
["xkw"] = "Kembra",
["xkx"] = "Karore",
["xky"] = "Western Kenyah",
["xkz"] = "Kurtokha",
["xla"] = "Kamula",
["xlb"] = "Loup B",
["xlc"] = "Lycian",
["xld"] = "Lydian",
["xle"] = "Lemnian",
["xlg"] = "Ancient Ligurian",
["xli"] = "Liburnian",
["xln"] = "Alanic",
["xlo"] = "Loup A",
["xlp"] = "Lepontic",
["xls"] = "Lusitanian",
["xlu"] = "Cuneiform Luwian",
["xly"] = "Elymian",
["xma"] = "Mushungulu",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbedam",
["xme"] = "Median",
["xmg"] = "Mengaka",
["xmh"] = "Kuku-Muminh",
["xmi"] = "Miarrã",
["xmj"] = "Majera",
["xmk"] = "Ancient Macedonian",
["xml"] = "Malaysian Sign Language",
["xmm"] = "Manado Malay",
["xmn"] = "Manichaean Middle Persian",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroitic",
["xms"] = "Moroccan Sign Language",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmv"] = "Antankarana Malagasy",
["xmw"] = "Tsimihety Malagasy",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Ancient North Arabian",
["xnb"] = "Kanakanabu",
["xng"] = "Middle Mongolian",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnm"] = "Ngumbarl",
["xnn"] = "Northern Kankanay",
["xno"] = "Anglo-Norman",
["xnr"] = "Kangri",
["xns"] = "Kanashi",
["xnt"] = "Narragansett",
["xnu"] = "Nukunul",
["xny"] = "Nyiyaparli",
["xnz"] = "Kenzi",
["xoc"] = "O'chi'chi'",
["xod"] = "Kokoda",
["xog"] = "Soga",
["xoi"] = "Kominimung",
["xok"] = "Xokleng",
["xom"] = "Sudanese Komo",
["xon"] = "Konkomba",
["xoo"] = "Xukurú",
["xop"] = "Kopar",
["xor"] = "Korubo",
["xow"] = "Kowaki",
["xpa"] = "Pirriya",
["xpb"] = "Pyemmairrener Northeastern Tasmanian",
["xpc"] = "Pecheneg",
["xpd"] = "Oyster Bay Tasmanian",
["xpe"] = "Liberia Kpelle",
["xpf"] = "Southeast Tasmanian Nuenonne",
["xpg"] = "Phrygian",
["xph"] = "North Midlands Tasmanian",
["xpi"] = "Pictish",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina Pano",
["xpl"] = "Port Sorell Tasmanian",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "Parthian",
["xps"] = "Pisidian",
["xpt"] = "Punthamara",
["xpu"] = "Punic",
["xpv"] = "Northern Tasmanian",
["xpw"] = "Northwestern Tasmanian",
["xpx"] = "Southwestern Tasmanian",
["xpy"] = "Puyo",
["xpz"] = "Bruny Island Tasmanian",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Eastern Karaboro",
["xrd"] = "Gundungurra",
["xre"] = "Kreye",
["xrg"] = "Minang",
["xri"] = "Krikati-Timbira",
["xrm"] = "Armazic",
["xrn"] = "Arin",
["xrq"] = "Karranga",
["xrr"] = "Raetic",
["xrt"] = "Aranama-Tamique",
["xru"] = "Marriammu",
["xrw"] = "Karawa",
["xsa"] = "Sabaean",
["xsb"] = "Tinà Sambal",
["xsc"] = "Scythian",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsk"] = "Sakan",
["xsl"] = "South Slavey",
["xsm"] = "Kasem",
["xsn"] = "Nigerian Sanga",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "Sherpa",
["xss"] = "Assan",
["xst"] = "Silt'e",
["xsu"] = "Sanumá",
["xsv"] = "Sudovian",
["xta"] = "Alcozauca Mixtec",
["xtb"] = "Chazumba Mixtec",
["xtc"] = "Katcha-Kadugli-Miri",
["xtd"] = "Diuxi-Tilantongo Mixtec",
["xte"] = "Ketengban",
["xtg"] = "Transalpine Gaulish",
["xth"] = "Yitha Yitha",
["xti"] = "Sinicahua Mixtec",
["xtj"] = "San Juan Teita Mixtec",
["xtl"] = "Tijaltepec Mixtec",
["xtm"] = "Magdalena Peñasco Mixtec",
["xtn"] = "Northern Tlaxiaco Mixtec",
["xto"] = "Tokharian A",
["xtp"] = "San Miguel Piedras Mixtec",
["xtq"] = "Tumshuqese",
["xtr"] = "Early Tripuri",
["xts"] = "Sindihui Mixtec",
["xtt"] = "Tacahua Mixtec",
["xtu"] = "Cuyamecalco Mixtec",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Yoloxochitl Mixtec",
["xtz"] = "Tasmanian",
["xua"] = "Alu Kurumba",
["xub"] = "Betta Kurumba",
["xud"] = "Umiida",
["xuf"] = "Kunfal",
["xug"] = "Kunigami",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "Umbrian",
["xun"] = "Unggarranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Kxoe",
["xve"] = "Venetic",
["xvi"] = "Kamviri",
["xvn"] = "Vandalic",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Western Xwla Gbe",
["xwo"] = "Written Oirat",
["xwr"] = "Kwerba Mamberamo",
["xwt"] = "Wotjobaluk",
["xww"] = "Wemba Wemba",
["xxb"] = "Ghanaian Boro",
["xxk"] = "Ke'o",
["xxm"] = "Minkin",
["xxr"] = "Koropó",
["xxt"] = "Tambora",
["xya"] = "Yaygir",
["xyb"] = "Yandjibara",
["xyj"] = "Mayi-Yapi",
["xyk"] = "Mayi-Kulan",
["xyl"] = "Yalakalore",
["xyt"] = "Mayi-Thakurti",
["xyy"] = "Yorta Yorta",
["xzh"] = "Zhang-Zhung",
["xzm"] = "Zemgalian",
["xzp"] = "Ancient Zapotec",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Congolese Yaka",
["yag"] = "Yámana",
["yah"] = "Yazgulyam",
["yai"] = "Yagnobi",
["yaj"] = "Banda-Yangere",
["yak"] = "Yakima",
["yal"] = "Yalunka",
["yam"] = "Yamba",
["yan"] = "Mayangna",
["yao"] = "Yao",
["yap"] = "Yapese",
["yaq"] = "Yaqui",
["yar"] = "Yabarana",
["yas"] = "Cameroonian Nugunu",
["yat"] = "Yambeta",
["yau"] = "Yuwana",
["yav"] = "Yangben",
["yaw"] = "Yawalapití",
["yax"] = "Yauma",
["yay"] = "Agwagwune",
["yaz"] = "Lokaa",
["yba"] = "Yala",
["ybb"] = "Yemba",
["ybd"] = "Yangbye",
["ybe"] = "West Yugur",
["ybh"] = "Yakha",
["ybi"] = "Yamphu",
["ybj"] = "Hasha",
["ybk"] = "Bokha",
["ybl"] = "Yukuben",
["ybm"] = "Yaben",
["ybn"] = "Yabaâna",
["ybo"] = "Yabong",
["ybx"] = "Yawiyo",
["yby"] = "Yaweyuha",
["ych"] = "Chesu",
["ycl"] = "Central Yi",
["ycn"] = "Yucuna",
["ycp"] = "Chepya",
["yda"] = "Yanda",
["ydd"] = "Eastern Yiddish",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yds"] = "Yiddish Sign Language",
["ye"] = "Yeshivish",
["yea"] = "Ravula",
["yec"] = "Yeniche",
["yee"] = "Yimas",
["yei"] = "Yeni",
["yej"] = "Yevanic",
["yel"] = "Yela",
["yen"] = "Yendang",
["yer"] = "Tarok",
["yes"] = "Yeskwa",
["yet"] = "Yetfa",
["yeu"] = "Yerukula",
["yev"] = "Yapunda",
["yey"] = "Yeyi",
["yga"] = "Malyangapa",
["ygi"] = "Yiningayi",
["ygl"] = "Yangum Gel",
["ygm"] = "Yagomi",
["ygp"] = "Gepo",
["ygr"] = "Yagaria",
["ygs"] = "Yolŋu Sign Language",
["ygu"] = "Yugul",
["ygw"] = "Yagwoia",
["yha"] = "Baha Buyang",
["yhd"] = "Judeo-Iraqi Arabic",
["yhl"] = "Hlepho Phowa",
["yhs"] = "Yan-nhaŋu Sign Language",
["yia"] = "Yinggarda",
["yib"] = "Yinglish",
["yid"] = "Yiddish",
["yif"] = "Ache Yi",
["yig"] = "Wusa Yi",
["yih"] = "Western Yiddish",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo Yi",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yio"] = "Dayao Yi",
["yip"] = "Poluo Yi",
["yiq"] = "Miqie Yi",
["yir"] = "North Awyu",
["yis"] = "Yis",
["yit"] = "Eastern Lalu Yi",
["yiu"] = "Awu Yi",
["yiv"] = "Eshan-Xinping Yi",
["yix"] = "Axi Yi",
["yiy"] = "Yir Yoront",
["yiz"] = "Azhe Yi",
["yka"] = "Yakan",
["ykg"] = "Northern Yukaghir",
["yki"] = "Yoke",
["ykk"] = "Yakaikeke",
["ykl"] = "Khlula",
["ykm"] = "Yakamul",
["ykn"] = "Kua-nsi",
["yko"] = "Yasa",
["ykr"] = "Yekora",
["ykt"] = "Kathu",
["yku"] = "Kuamasi",
["yky"] = "Yakoma",
["yla"] = "Yaul",
["ylb"] = "Yaleba",
["yle"] = "Yele",
["ylg"] = "Yelogu",
["yli"] = "Angguruk Yali",
["yll"] = "Yil",
["ylm"] = "Limi Yi",
["yln"] = "Langnian Buyang",
["ylo"] = "Naluo Yi",
["ylr"] = "Yalarnnga",
["ylu"] = "Aribwaung",
["yly"] = "Nyâlayu",
["yma"] = "Yamphe",
["ymb"] = "Yambes",
["ymc"] = "Southern Muji",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili Yi",
["ymi"] = "Moji",
["ymj"] = "Muji Yi",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Yamna",
["ymo"] = "Yangum Mon",
["ymp"] = "Yamap",
["ymq"] = "Qila Muji",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymt"] = "Mator-Taygi-Karagas",
["ymx"] = "Northern Muji",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynh"] = "Yangho",
["ynk"] = "Naukan Yupik",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "Yong",
["ynq"] = "Yendang",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yob"] = "Yoba",
["yog"] = "Yogad",
["yoi"] = "Yonaguni",
["yok"] = "Yokuts",
["yol"] = "Yola",
["yom"] = "Yombe",
["yon"] = "Yonggom",
["yor"] = "Yoruba",
["yos"] = "Yos",
["yot"] = "Yotti",
["yox"] = "Yoron",
["yoy"] = "Yoy",
["ypa"] = "Phala",
["ypb"] = "Labo Phowa",
["ypg"] = "Phola",
["yph"] = "Phupha",
["ypk"] = "Yupik languages",
["ypl"] = "Pula Yi",
["ypm"] = "Phuma",
["ypn"] = "Ani Phowa",
["ypo"] = "Alo Phola",
["ypp"] = "Phupa",
["ypw"] = "Puwa Yi",
["ypz"] = "Phuza",
["yra"] = "Yerakai",
["yrb"] = "Yareba",
["yre"] = "Yaouré",
["yri"] = "Yarí",
["yrk"] = "Nenets",
["yrm"] = "Yirrk-Mel",
["yrn"] = "Yerong",
["yro"] = "Yaroamë",
["yrs"] = "Yarsun",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Yassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani Yi",
["yso"] = "Southeastern Lolo Yi",
["ysp"] = "Southern Lolopho Yi",
["ysr"] = "Sirenik Yupik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Tanglang",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Yucatán Maya",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yud"] = "Judeo-Tripolitanian Arabic",
["yuf"] = "Havasupai-Walapai-Yavapai",
["yug"] = "Yug",
["yui"] = "Yurutí",
["yuj"] = "Karkar-Yuri",
["yuk"] = "Yuki",
["yul"] = "Yulu",
["yum"] = "Quechan",
["yun"] = "Nigerian Bena",
["yup"] = "Yukpa",
["yuq"] = "Yuqui",
["yur"] = "Yurok",
["yus"] = "Chan Santa Cruz Maya",
["yut"] = "Yopno",
["yuu"] = "Yugh",
["yuw"] = "Morobe Province Yau",
["yux"] = "Southern Yukaghir",
["yuy"] = "East Yugur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Western Lalu Yi",
["ywm"] = "Wumeng Yi",
["ywn"] = "Yawanawa",
["ywq"] = "Wuding-Luquan Yi",
["ywr"] = "Yawuru",
["ywt"] = "Western Yi",
["ywu"] = "Wusa Yi",
["yww"] = "Yawarawarga",
["yxa"] = "Mayawali",
["yxg"] = "Yagara",
["yxl"] = "Yardliyawarra",
["yxm"] = "Yinwum",
["yxu"] = "Yuyu",
["yxy"] = "Yabula Yabula",
["yym"] = "Yuanjiang-Mojiang Yi",
["yyr"] = "Yir Yoront",
["yyu"] = "Sandaun Province Yau",
["yyz"] = "Ayizi",
["yzg"] = "E'ma Buyang",
["yzk"] = "Zokhuo",
["zaa"] = "Sierra de Juárez Zapotec",
["zab"] = "San Juan Guelavía Zapotec",
["zac"] = "Ocotlán Zapotec",
["zad"] = "Cajonos Zapotec",
["zae"] = "Yareni Zapotec",
["zaf"] = "Ayoquesco Zapotec",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Isthmus Zapotec",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Miahuatlán Zapotec",
["zao"] = "Ozolotepec Zapotec",
["zap"] = "Zapotec",
["zaq"] = "Aloápam Zapotec",
["zar"] = "Rincón Zapotec",
["zas"] = "Santo Domingo Albarradas Zapotec",
["zat"] = "Tabaa Zapotec",
["zau"] = "Zangskari",
["zav"] = "Yatzachi Zapotec",
["zaw"] = "Mitla Zapotec",
["zax"] = "Xadani Zapotec",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zba"] = "Balaibalan",
["zbc"] = "Central Berawan",
["zbe"] = "East Berawan",
["zbl"] = "Blissymbols",
["zbt"] = "Batui",
["zbw"] = "West Berawan",
["zca"] = "Coatecas Altas Zapotec",
["zch"] = "Central Hongshuihe Zhuang",
["zdj"] = "Ngazidja Comorian",
["zeg"] = "Zenag",
["zeh"] = "Eastern Hongshuihe Zhuang",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgb"] = "Guibei Zhuang",
["zgm"] = "Minz Zhuang",
["zgn"] = "Guibian Zhuang",
["zgr"] = "Magori",
["zh-CN"] = "China Chinese",
["zh-HK"] = "Hong Kong Chinese",
["zh-Hans"] = "Simplified Chinese",
["zh-Hans-CN"] = "China Simplified Chinese",
["zh-Hans-HK"] = "Hong Kong Simplified Chinese",
["zh-Hans-TW"] = "Taiwanese Simplified Chinese",
["zh-Hant"] = "Traditional Chinese",
["zh-Hant-CN"] = "China Traditional Chinese",
["zh-Hant-HK"] = "Hong Kong Traditional Chinese",
["zh-Hant-TW"] = "Taiwanese Traditional Chinese",
["zh-TW"] = "Taiwanese Chinese",
["zh-hans-CN"] = "China Simplified Chinese",
["zh-hans-HK"] = "Hong Kong Simplified Chinese",
["zh-hans-TW"] = "Taiwanese Simplified Chinese",
["zh-hant-CN"] = "China Traditional Chinese",
["zh-hant-HK"] = "Hong Kong Traditional Chinese",
["zh-hant-TW"] = "Taiwanese Traditional Chinese",
["zh-s"] = "Simplified Chinese",
["zh-s-CN"] = "China Simplified Chinese",
["zh-s-HK"] = "Hong Kong Simplified Chinese",
["zh-s-TW"] = "Taiwanese Simplified Chinese",
["zh-t"] = "Traditional Chinese",
["zh-t-CN"] = "China Traditional Chinese",
["zh-t-HK"] = "Hong Kong Traditional Chinese",
["zh-t-TW"] = "Taiwanese Traditional Chinese",
["zha"] = "Zhuang",
["zhb"] = "Zhaba",
["zhd"] = "Dai Zhuang",
["zhi"] = "Zhire",
["zhn"] = "Nong Zhuang",
["zho"] = "Chinese",
["zho-CN"] = "China Chinese",
["zho-HK"] = "Hong Kong Chinese",
["zho-TW"] = "Taiwanese Chinese",
["zhw"] = "Zhoa",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkd"] = "Kadu",
["zkg"] = "Koguryo",
["zkh"] = "Khorezmian",
["zkk"] = "Karankawa",
["zkn"] = "Kanan",
["zko"] = "Kott",
["zkp"] = "São Paulo Kaingáng",
["zkr"] = "Zakhring",
["zkt"] = "Kitan Khitan",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zlj"] = "Liujiang Zhuang",
["zlm"] = "Malay",
["zln"] = "Lianshan Zhuang",
["zlq"] = "Liuqian Zhuang",
["zma"] = "Australian Manda",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Negeri Sembilan Malay",
["zmj"] = "Maridjabin",
["zmk"] = "Mandandanyi",
["zml"] = "Madngele",
["zmm"] = "Marimanindji",
["zmn"] = "Mbangwe",
["zmo"] = "Molo",
["zmp"] = "Mpuono",
["zmq"] = "Mituku",
["zmr"] = "Maranunggu",
["zms"] = "Mbesa",
["zmt"] = "Maringarr",
["zmu"] = "Muruwari",
["zmv"] = "Mbariman-Gudhinma",
["zmw"] = "Congolese Mbo",
["zmx"] = "Bomitaba",
["zmy"] = "Mariyedi",
["zmz"] = "Mbandja",
["zna"] = "Zan Gula",
["znd"] = "Zande languages",
["zne"] = "Zande",
["zng"] = "Mang",
["znk"] = "Manangkari",
["zns"] = "Mangas",
["zoc"] = "Copainalá Zoque",
["zoh"] = "Chimalapa Zoque",
["zom"] = "Zou",
["zoo"] = "Asunción Mixtepec Zapotec",
["zoq"] = "Tabasco Zoque",
["zor"] = "Rayón Zoque",
["zos"] = "Francisco León Zoque",
["zpa"] = "Lachiguiri Zapotec",
["zpb"] = "Yautepec Zapotec",
["zpc"] = "Choapan Zapotec",
["zpd"] = "Southeastern Ixtlán Zapotec",
["zpe"] = "Petapa Zapotec",
["zpf"] = "San Pedro Quiatoni Zapotec",
["zpg"] = "Guevea De Humboldt Zapotec",
["zph"] = "Totomachapan Zapotec",
["zpi"] = "Santa María Quiegolani Zapotec",
["zpj"] = "Quiavicuzas Zapotec",
["zpk"] = "Tlacolulita Zapotec",
["zpl"] = "Lachixío Zapotec",
["zpm"] = "Mixtepec Zapotec",
["zpn"] = "Santa Inés Yatzechi Zapotec",
["zpo"] = "Amatlán Zapotec",
["zpp"] = "El Alto Zapotec",
["zpq"] = "Zoogocho Zapotec",
["zpr"] = "Santiago Xanica Zapotec",
["zps"] = "Coatlán Zapotec",
["zpt"] = "San Vicente Coatlán Zapotec",
["zpu"] = "Yalálag Zapotec",
["zpv"] = "Chichicapan Zapotec",
["zpw"] = "Zaniza Zapotec",
["zpx"] = "San Baltazar Loxicha Zapotec",
["zpy"] = "Mazaltepec Zapotec",
["zpz"] = "Texmelucan Zapotec",
["zqe"] = "Qiubei Zhuang",
["zra"] = "Korean Kara",
["zrg"] = "Mirgan",
["zrn"] = "Zirenkel",
["zro"] = "Záparo",
["zrp"] = "Zarphatic",
["zrs"] = "Mairasi",
["zsa"] = "Sarasira",
["zsk"] = "Kaskean",
["zsl"] = "Zambian Sign Language",
["zsm"] = "Standard Malay",
["zsr"] = "Southern Rincon Zapotec",
["zsu"] = "Sukurum",
["ztc"] = "Lachirioag Zapotec",
["zte"] = "Elotepec Zapotec",
["ztg"] = "Xanaguía Zapotec",
["ztl"] = "Santiago Lapaguía Zapotec",
["ztm"] = "San Agustín Mixtepec Zapotec",
["ztn"] = "Santa Catarina Albarradas Zapotec",
["ztp"] = "Loxicha Zapotec",
["ztq"] = "Quioquitani-Quierí Zapotec",
["zts"] = "Tilquiapan Zapotec",
["ztt"] = "Tejalapan Zapotec",
["ztu"] = "Güilá Zapotec",
["ztx"] = "Zaachila Zapotec",
["zty"] = "Yatee Zapotec",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zul"] = "Zulu",
["zum"] = "Kumzari",
["zun"] = "Zuni",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zxx"] = "No languages",
["zyb"] = "Yongbei Zhuang",
["zyg"] = "Yang Zhuang",
["zyj"] = "Youjiang Zhuang",
["zyn"] = "Yongnan Zhuang",
["zyp"] = "Zyphe",
["zza"] = "Zaza",
["zzj"] = "Zuojiang Zhuang"
}
fe5iwg2h4j8xmdfc9p2naucx0yhnvit
ಟೆಂಪ್ಲೇಟು:Anchor/styles.css
10
99129
276318
2024-07-06T14:06:21Z
ShakespeareFan00
7765
276318
sanitized-css
text/css
.wst-anchor:target {
background-color:rgba(100, 149, 237, 0.1);
color: #202122;
outline:1px solid cornflowerblue;
}
0n8xek5kfey4x5ufnr0q2tj4yrg3foy
276319
276318
2024-11-11T08:44:33Z
~aanzx
6806
೧ revision imported from [[:en:Template:Anchor/styles.css]]
276318
sanitized-css
text/css
.wst-anchor:target {
background-color:rgba(100, 149, 237, 0.1);
color: #202122;
outline:1px solid cornflowerblue;
}
0n8xek5kfey4x5ufnr0q2tj4yrg3foy
ಮಾಡ್ಯೂಲ್:Header/docdata
828
99130
276326
2024-03-04T19:19:37Z
CalendulaAsteraceae
6870
276326
Scribunto
text/plain
require('strict')
local p = {}
local attr_data = require('Module:Header/attribution').attr_data
function p.attrParamList()
local params = {}
-- formatting from [[Template:Parameter]]
for k, v in pairs(attr_data) do
params[v['index']] = '** <span class="wst-doc-parameter" style="background:#F0F0F0; color:#008740; font-weight:bold;">'
.. v['param_name'] .. '</span>'
end
return table.concat(params, '\n')
end
return p
lc350avmrbr6zltjxk80qpbwftmyf8t
276327
276326
2024-11-11T08:44:34Z
~aanzx
6806
೧ revision imported from [[:en:Module:Header/docdata]]
276326
Scribunto
text/plain
require('strict')
local p = {}
local attr_data = require('Module:Header/attribution').attr_data
function p.attrParamList()
local params = {}
-- formatting from [[Template:Parameter]]
for k, v in pairs(attr_data) do
params[v['index']] = '** <span class="wst-doc-parameter" style="background:#F0F0F0; color:#008740; font-weight:bold;">'
.. v['param_name'] .. '</span>'
end
return table.concat(params, '\n')
end
return p
lc350avmrbr6zltjxk80qpbwftmyf8t