summaryrefslogtreecommitdiff
path: root/macros/generic
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-10-31 03:04:01 +0000
committerNorbert Preining <norbert@preining.info>2022-10-31 03:04:01 +0000
commitc7892fe1a11367872de6f3ee0fa074b39824e59c (patch)
tree4879018aece4cb9f7549756ccadbb1808296d19d /macros/generic
parentb2c88e6cbb5203ec5d33819454f1499cada7e336 (diff)
CTAN sync 202210310303
Diffstat (limited to 'macros/generic')
-rw-r--r--macros/generic/tracklang/CHANGES6
-rw-r--r--macros/generic/tracklang/README6
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals-babel.pdfbin14855 -> 15690 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdfbin3820 -> 3823 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals-de-poly.tex1
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals-de.pdfbin13625 -> 14463 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals-poly.pdfbin3556 -> 3560 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdfbin7547 -> 0 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals.pdfbin12656 -> 13489 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals2-de.pdfbin13625 -> 14463 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals2-de2.pdfbin13625 -> 14463 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals2-de3.pdfbin13607 -> 14444 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals2-de4.pdfbin3820 -> 3823 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals2-poly.pdfbin3560 -> 3559 bytes
-rw-r--r--macros/generic/tracklang/samples/animals/sample-animals2.pdfbin12656 -> 13489 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions.pdfbin13161 -> 13996 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions2-manx.pdfbin21945 -> 23587 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions2-map.pdfbin26000 -> 27666 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions2-map2.pdfbin25852 -> 27515 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions2-map3.pdfbin24924 -> 26590 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdfbin25468 -> 27134 bytes
-rw-r--r--macros/generic/tracklang/samples/regions/sample-regions2.pdfbin14716 -> 15551 bytes
-rw-r--r--macros/generic/tracklang/samples/sample-tracklang.pdfbin19552 -> 20388 bytes
-rw-r--r--macros/generic/tracklang/samples/sample-tracklang2.pdfbin19802 -> 20747 bytes
-rw-r--r--macros/generic/tracklang/samples/sample-tracklang3.pdfbin19814 -> 20758 bytes
-rw-r--r--macros/generic/tracklang/samples/sample-tracklang4.pdfbin6202 -> 6869 bytes
-rw-r--r--macros/generic/tracklang/samples/sample-tracklang5.pdfbin16914 -> 17857 bytes
-rw-r--r--macros/generic/tracklang/samples/sample-tracklang6.pdfbin19897 -> 19898 bytes
-rw-r--r--macros/generic/tracklang/tracklang-code.pdfbin0 -> 629107 bytes
-rw-r--r--macros/generic/tracklang/tracklang-manual.html6522
-rw-r--r--macros/generic/tracklang/tracklang-manual.pdfbin0 -> 764697 bytes
-rw-r--r--macros/generic/tracklang/tracklang-manual.tex5641
-rw-r--r--macros/generic/tracklang/tracklang.dtx3682
-rw-r--r--macros/generic/tracklang/tracklang.ins4
-rw-r--r--macros/generic/tracklang/tracklang.pdfbin742279 -> 0 bytes
35 files changed, 12307 insertions, 3555 deletions
diff --git a/macros/generic/tracklang/CHANGES b/macros/generic/tracklang/CHANGES
index 8725ee915d..a873a80927 100644
--- a/macros/generic/tracklang/CHANGES
+++ b/macros/generic/tracklang/CHANGES
@@ -1,3 +1,9 @@
+v1.6 (2022-10-29);
+
+ * Replaced \x with \@tracklang@x
+
+ * Added check for polyglossia's \xpg@bcp@loaded and \mainbabelname
+
v1.5 (2020-06-30):
* Removed redundant code and added debug message to
diff --git a/macros/generic/tracklang/README b/macros/generic/tracklang/README
index caac438bc4..be053cda76 100644
--- a/macros/generic/tracklang/README
+++ b/macros/generic/tracklang/README
@@ -1,6 +1,6 @@
-Generic TeX Bundle : tracklang v1.5
+Generic TeX Bundle : tracklang v1.6
-Last Modified : 2020-06-30
+Last Modified : 2022-10-29
Author : Nicola Talbot (dickimaw-books.com/contact)
@@ -9,7 +9,7 @@ Licence:
This material is subject to the LaTeX Project Public License.
See http://www.ctan.org/license/lppl1.3 for the details of that license.
-Copyright 2014-2020 Nicola Talbot
+Copyright 2014-2022 Nicola Talbot
Description:
diff --git a/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf b/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf
index 35cb126385..eaae49c629 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals-babel.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf
index 73ce65645d..978dca7662 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals-de-poly.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals-de-poly.tex b/macros/generic/tracklang/samples/animals/sample-animals-de-poly.tex
index bb96c76cd4..1d8335e411 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals-de-poly.tex
+++ b/macros/generic/tracklang/samples/animals/sample-animals-de-poly.tex
@@ -3,6 +3,7 @@
\usepackage{polyglossia}
\setmainlanguage{german}
+\setotherlanguage[variant=uk]{english}
\usepackage{animals}
diff --git a/macros/generic/tracklang/samples/animals/sample-animals-de.pdf b/macros/generic/tracklang/samples/animals/sample-animals-de.pdf
index 6ee9ea4efa..2b8babf868 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals-de.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals-de.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf
index 19144645ce..ab30068b06 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals-poly.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf
deleted file mode 100644
index 7e746cba6a..0000000000
--- a/macros/generic/tracklang/samples/animals/sample-animals-sr-poly.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals.pdf b/macros/generic/tracklang/samples/animals/sample-animals.pdf
index 89632f165a..a041ee1c86 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf
index 5f22dca624..fe493b0128 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals2-de.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf
index b2277b8b98..f49bedd70e 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals2-de2.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf
index 069a48e10c..ca3fd6436c 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals2-de3.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf
index ce6a514e5c..147cebfa75 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals2-de4.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf b/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf
index 8809c66b85..34a77bb8af 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals2-poly.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/animals/sample-animals2.pdf b/macros/generic/tracklang/samples/animals/sample-animals2.pdf
index fbd7a234d6..3569a4e0a7 100644
--- a/macros/generic/tracklang/samples/animals/sample-animals2.pdf
+++ b/macros/generic/tracklang/samples/animals/sample-animals2.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions.pdf b/macros/generic/tracklang/samples/regions/sample-regions.pdf
index fab8f6977b..1ce67099c9 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf
index 93f3428fb3..30857213d9 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions2-manx.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf
index db87696734..5584b2cbbb 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions2-map.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf
index 4784228ed8..0f1bbdee0f 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions2-map2.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf
index 90546af2b0..033e92230f 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions2-map3.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf b/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf
index 167a38fcf7..317868d773 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions2-nomap.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/regions/sample-regions2.pdf b/macros/generic/tracklang/samples/regions/sample-regions2.pdf
index d7393715ff..beff20b615 100644
--- a/macros/generic/tracklang/samples/regions/sample-regions2.pdf
+++ b/macros/generic/tracklang/samples/regions/sample-regions2.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/sample-tracklang.pdf b/macros/generic/tracklang/samples/sample-tracklang.pdf
index 6d5a7dbf53..673ab5eca0 100644
--- a/macros/generic/tracklang/samples/sample-tracklang.pdf
+++ b/macros/generic/tracklang/samples/sample-tracklang.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/sample-tracklang2.pdf b/macros/generic/tracklang/samples/sample-tracklang2.pdf
index d2f16a3e3e..a30b727c2f 100644
--- a/macros/generic/tracklang/samples/sample-tracklang2.pdf
+++ b/macros/generic/tracklang/samples/sample-tracklang2.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/sample-tracklang3.pdf b/macros/generic/tracklang/samples/sample-tracklang3.pdf
index 8966ec23fa..bf447bd2c1 100644
--- a/macros/generic/tracklang/samples/sample-tracklang3.pdf
+++ b/macros/generic/tracklang/samples/sample-tracklang3.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/sample-tracklang4.pdf b/macros/generic/tracklang/samples/sample-tracklang4.pdf
index b65563f2fd..814a359e94 100644
--- a/macros/generic/tracklang/samples/sample-tracklang4.pdf
+++ b/macros/generic/tracklang/samples/sample-tracklang4.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/sample-tracklang5.pdf b/macros/generic/tracklang/samples/sample-tracklang5.pdf
index 3446d96ec5..eb7216d024 100644
--- a/macros/generic/tracklang/samples/sample-tracklang5.pdf
+++ b/macros/generic/tracklang/samples/sample-tracklang5.pdf
Binary files differ
diff --git a/macros/generic/tracklang/samples/sample-tracklang6.pdf b/macros/generic/tracklang/samples/sample-tracklang6.pdf
index 1f3cce82ec..f99105384c 100644
--- a/macros/generic/tracklang/samples/sample-tracklang6.pdf
+++ b/macros/generic/tracklang/samples/sample-tracklang6.pdf
Binary files differ
diff --git a/macros/generic/tracklang/tracklang-code.pdf b/macros/generic/tracklang/tracklang-code.pdf
new file mode 100644
index 0000000000..919ae64212
--- /dev/null
+++ b/macros/generic/tracklang/tracklang-code.pdf
Binary files differ
diff --git a/macros/generic/tracklang/tracklang-manual.html b/macros/generic/tracklang/tracklang-manual.html
new file mode 100644
index 0000000000..e45ec14494
--- /dev/null
+++ b/macros/generic/tracklang/tracklang-manual.html
@@ -0,0 +1,6522 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<meta name="generator" content="TeX Parser Library">
+ <title>tracklang.sty v1.6:
+tracking language options</title>
+<style type="text/css">
+#main {margin-left: 5%; margin-right: 15%}
+div.tomain {position: absolute; left: 0pt; width: 5%; text-align: right; font-size: x-small;}
+div.tomain a {text-decoration: none;}
+div.labellink {display: inline; font-size: x-small; margin-left: 1em; margin-right: 1em;}
+div.marginleft {position: absolute; left: 0pt; width: 5%;}
+div.marginright {position: absolute; right: 0pt; width: 15%;}
+div.displaymath { display: block; text-align: center; }
+span.eqno { float: right; }
+div.table { display: block; text-align: center; }
+table.tabular-cm
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: center;
+ vertical-align: middle;
+}
+table.tabular-cb
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: center;
+ vertical-align: bottom;
+}
+table.tabular-ct
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: center;
+ vertical-align: top;
+}
+table.tabular-lm
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: left;
+ vertical-align: middle;
+}
+table.tabular-lb
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: left;
+ vertical-align: bottom;
+}
+table.tabular-lt
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: left;
+ vertical-align: top;
+}
+table.tabular-rm
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: right;
+ vertical-align: middle;
+}
+table.tabular-rb
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: right;
+ vertical-align: bottom;
+}
+table.tabular-rt
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: right;
+ vertical-align: top;
+}
+table.tabular-m
+{
+ display: inline-table;
+ border-collapse: collapse;
+ vertical-align: middle;
+}
+table.tabular-b
+{
+ display: inline-table;
+ border-collapse: collapse;
+ vertical-align: bottom;
+}
+table.tabular-t
+{
+ display: inline-table;
+ border-collapse: collapse;
+ vertical-align: top;
+}
+table.tabular-l
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: left;
+}
+table.tabular-c
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: center;
+}
+table.tabular-r
+{
+ display: inline-table;
+ border-collapse: collapse;
+ align: right;
+}
+pre { white-space: pre-wrap; }
+div.figure { display: block; text-align: center; }
+div.caption { display: block; text-align: center; }
+div.marginpar { float: right; }
+div.abstract { display: block; margin-right: 4em; margin-left: 4em;}
+div.title { display: block; text-align: center; font-size: x-large;}
+div.author { display: block; text-align: center; font-size: large;}
+div.date { display: block; text-align: center; font-size: medium;}
+div.bibliography { display: block; margin-left: 4em; }
+div.bibitem { display: inline; float: left; text-indent: -3em; }
+span.numberline { display: inline-block; width: 3em; }
+.toc-subsection span.numberline { display: inline-block; width: 3em; }
+.toc-subsubsection span.numberline { display: inline-block; width: 4em; }
+.toc-paragraph span.numberline { display: inline-block; width: 5em; }
+.toc-subparagraph span.numberline { display: inline-block; width: 6em; }
+nav ul { list-style-type: none; }
+.toc-part { padding-left: 0em; padding-bottom: 1ex; padding-top: 1ex; font-weight: bold; font-size: large;}
+.toc-chapter { padding-left: 0em; padding-bottom: .25ex; padding-top: .25ex; font-weight: bold; }
+.toc-section { padding-left: .5em; }
+.toc-subsection { padding-left: 1.5em; }
+.toc-subsubsection { padding-left: 2em; }
+.toc-paragraph { padding-left: 2.5em; }
+.toc-subparagraph { padding-left: 3em; }
+.part { font-size: x-large; font-weight: bold; }
+div.bigskip { padding-left: 0pt; padding-right: 0pt; padding-top: 0pt; padding-bottom: 2ex;}
+div.medskip { padding-left: 0pt; padding-right: 0pt; padding-top: 0pt; padding-bottom: 1ex;}
+div.smallskip { padding-left: 0pt; padding-right: 0pt; padding-top: 0pt; padding-bottom: .5ex;}
+span.quad { padding-left: 0pt; padding-right: 1em; padding-top: 0pt; padding-bottom: 0pt;}
+span.qquad { padding-left: 0pt; padding-right: 2em; padding-top: 0pt; padding-bottom: 0pt;}
+.displaylist { display: block; list-style-type: none; }
+.inlinelist { display: inline; }
+dl.inlinetitle dt { display: inline-block; margin-left: 0; margin-right: 1em;}
+dl.inlinetitle dd { display: inline; margin: 0; }
+dl.inlinetitle dd::after { display: block; content: ''; }
+dl.inlineblock dt { display: inline-block; margin-left: 0; margin-right: 1em;}
+dl.inlineblock dd { display: inline; margin: 0; }
+dl.inlineblock dd::after { display: block; content: ''; }
+.clearfix::after { content: ""; clear: both; display: table; }
+span.inlineitem { margin-right: .5em; margin-left: .5em; }
+span.numitem { float: left; margin-left: -3em; text-align: right; min-width: 2.5em; }
+span.bulletitem { float: left; margin-left: -1em; }
+span.descitem { font: normal; font-weight: bold; }
+div.indexspace { min-height: 2ex; }
+.cell-noborder-nosep-r {border-top: none; border-right: none; border-left: none; padding-left: 0px; padding-right: 0px; text-align: right; }
+.cell-noborder-bothsep-l {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; padding-right: 6.000000pt; text-align: left; }
+.cell-noborder-bothsep-r {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; padding-right: 6.000000pt; text-align: right; }
+.cell-noborder-bothsep-halfwidth {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; width: 50.000000%; padding-right: 6.000000pt; text-align: left; }
+.cell-noborder-nosep-l {border-top: none; border-right: none; border-left: none; padding-left: 0px; padding-right: 0px; text-align: left; }
+.cell-noborder-rightsep-l {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; padding-right: 0px; text-align: left; }
+.cell-noborder-leftsep-r {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; padding-right: 0px; text-align: right; }
+.cell-noborder-bothsep-c {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; padding-right: 6.000000pt; text-align: center; }
+.cell-noborder-bothsep-eightypc {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; width: 80.000000%; padding-right: 6.000000pt; text-align: left; }
+.cell-noborder-rightsep-c {border-top: none; border-right: none; border-left: none; padding-left: 0px; padding-right: 6.000000pt; text-align: center; }
+.cell-noborder-bothsep-threequarterwidth {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; width: 75.000000%; padding-right: 6.000000pt; text-align: left; }
+.cell-noborder-rightsep-r {border-top: none; border-right: none; border-left: none; padding-left: 0px; padding-right: 6.000000pt; text-align: right; }
+.cell-noborder-bothsep-quarterwidth {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; width: 25.000000%; padding-right: 6.000000pt; text-align: left; }
+.cell-noborder-rightsep-c {border-top: none; border-right: none; border-left: none; padding-left: 6.000000pt; padding-right: 0px; text-align: center; }
+.cell-noborder-rightsep-l {border-top: none; border-right: none; border-left: none; padding-left: 0px; padding-right: 6.000000pt; text-align: left; }
+.cell-noborder-nosep-c {border-top: none; border-right: none; border-left: none; padding-left: 0px; padding-right: 0px; text-align: center; }
+span.mbox {border-style: none; }
+span.frame {border-style: solid; border-width: 1.000000pt; padding: 0.000000pt; }
+span.boxed {text-align: center; vertical-align: middle; border-style: solid; border-width: 2.000000pt; padding: 0.000000pt; width: 1.000000em; height: 1.000000em; display: inline-block; }
+span.circled {text-align: center; vertical-align: middle; border-style: solid; border-width: 2.000000pt; padding: 1.000000pt; border-radius: 5000.000000%;width: 1.000000em; height: 1.000000em; display: inline-block; }
+span.overlapped {text-align: center; border-style: none; padding: 0.000000pt; width: 1.000000em; height: 1.000000em; display: inline-block; }
+span.overlapper {text-align: center; border-style: none; padding: 0.000000pt; margin-left: -1.000000em; width: 1.000000em; height: 1.000000em; display: inline-block; }
+span.overlappertop {text-align: center; vertical-align: top; border-style: none; padding: 0.000000pt; margin-left: -1.000000em; width: 1.000000em; height: 1.000000em; display: inline-block; }
+span.partialoverlapper {text-align: center; border-style: none; padding: 0.000000pt; margin-left: -0.750000em; width: 1.000000em; height: 1.000000em; display: inline-block; }
+span.quarterleft {text-align: center; vertical-align: middle; border-style: none; padding: 0.000000pt; transform: rotate(-90.000000deg); -ms-transform: rotate(-90.000000deg); -webkit-transform: rotate(-90.000000deg); display: inline-block; }
+span.quarterright {text-align: center; vertical-align: middle; border-style: none; padding: 0.000000pt; transform: rotate(90.000000deg); -ms-transform: rotate(90.000000deg); -webkit-transform: rotate(90.000000deg); display: inline-block; }
+span.eighthleft {text-align: center; vertical-align: middle; border-style: none; padding: 0.000000pt; transform: rotate(-45.000000deg); -ms-transform: rotate(-45.000000deg); -webkit-transform: rotate(-45.000000deg); display: inline-block; }
+span.eighthright {text-align: center; vertical-align: middle; border-style: none; padding: 0.000000pt; transform: rotate(45.000000deg); -ms-transform: rotate(45.000000deg); -webkit-transform: rotate(45.000000deg); display: inline-block; }
+span.halfturn {text-align: center; vertical-align: middle; border-style: none; padding: 0.000000pt; transform: rotate(180.000000deg); -ms-transform: rotate(180.000000deg); -webkit-transform: rotate(180.000000deg); display: inline-block; }
+span.fwsdisabledicon {border-style: none; color: gray; }
+span.fwsactiveicon {border-style: none; color: green; }
+table.glossary-ruled { border-top: solid 2px; border-bottom: solid 2px; border-collapse: collapse; }
+tr.glossary-ruled { border-bottom: solid 1px; }
+.cell-left-border { border-left: solid 1px; }
+table.glossary-ruled td { vertical-align: text-top; }
+table.glossary td { vertical-align: text-top; }
+div.glossary-children{ padding-left: 1em; }
+span.glsshowtargetfonttext {font-family: monospace; font-size: x-small; border-style: none; }
+dfn { font-style: normal; font-weight: bold; } a { text-decoration: none; } a:hover { text-decoration: underline; } div.tablefns { border-top: solid; } div.example { border-bottom: solid silver; padding: 20px; } div.example div.title { font-weight: bold; font-size: large; }
+div.sidenote {font-size: x-small; float: right; border-style: none; }
+span.advantage {border-style: none; color: green; }
+span.disadvantage {border-style: none; color: red; }
+strong.strong {font-weight: bold; border-style: none; }
+em.booktitle {font-style: italic; font-variant: normal; border-style: none; }
+code.code {font-family: monospace; border-style: none; }
+code.cmd {font-family: monospace; border-style: none; }
+span.cmdfmt {font-family: monospace; border-style: none; }
+span.comment {border-style: none; color: rgb(94,94,94); }
+code.csfmt {font-family: monospace; border-style: none; color: rgb(84,111,26); }
+span.csfmtfont {font-family: monospace; border-style: none; }
+span.csfmtcolourfont {font-family: monospace; border-style: none; color: rgb(84,111,26); }
+span.appfmt {font-family: monospace; border-style: none; }
+span.styfmt {font-family: monospace; border-style: none; }
+span.clsfmt {font-family: monospace; border-style: none; }
+span.envfmt {font-family: monospace; border-style: none; }
+span.optfmt {font-family: monospace; border-style: none; }
+span.csoptfmt {font-family: monospace; border-style: none; color: rgb(104,34,139); }
+span.styoptfmt {font-family: monospace; border-style: none; color: rgb(104,34,139); }
+span.clsoptfmt {font-family: monospace; border-style: none; }
+span.ctrfmt {font-family: monospace; border-style: none; }
+span.filefmt {font-family: monospace; border-style: none; }
+span.extfmt {font-family: monospace; border-style: none; }
+span.deprecatedorbannedfmt {border-style: none; color: rgb(204,0,0); }
+span.summarylocfmt {font-style: italic; font-variant: normal; border-style: none; }
+span.menufmt {font-family: monospace; border-style: none; }
+code.cbeg {font-family: monospace; border-style: none; }
+code.cend {font-family: monospace; border-style: none; }
+span.termslocfmt {font-style: italic; font-variant: normal; border-style: none; }
+span.crossreftag {font-style: italic; font-variant: normal; border-style: none; }
+div.crossref {border-style: none; margin-left: 1.000000em; }
+span.longargfmt {font-family: monospace; border-style: none; }
+span.shortargfmt {font-family: monospace; border-style: none; }
+span.qt {border-style: none; }
+code.qtt {font-family: monospace; border-style: none; }
+em.metainner {font-style: italic; font-variant: normal; border-style: none; }
+span.meta {font-family: serif; border-style: none; color: black; }
+em.initvalnotefmtinner {font-style: italic; font-variant: normal; border-style: none; }
+span.initvalnotefmt {font-family: serif; border-style: none; color: black; }
+span.summarytag {font-style: italic; font-variant: normal; border-style: none; }
+div.importanttitle {text-align: right; border-style: none; color: red; }
+div.important {border-style: solid; border-color: red; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(255,235,235); }
+div.warningtitle {text-align: right; border-style: none; color: red; }
+div.warning {border-style: solid; border-color: red; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(255,235,235); }
+div.informationtitle {text-align: right; border-style: none; color: rgb(0,128,128); }
+div.information {border-style: solid; border-color: rgb(0,128,128); border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(240,255,255); }
+div.pinnedboxtitle {text-align: right; border-style: none; color: black; }
+div.pinnedbox {border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(255,255,191); }
+div.terminaltitle {text-align: right; border-style: none; color: black; }
+pre.terminal {font-family: monospace; border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(250,250,250); }
+div.transcripttitle {text-align: right; border-style: none; color: black; }
+pre.transcript {font-family: monospace; border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(250,250,250); }
+div.ctrboxtitle {text-align: right; border-style: none; color: black; }
+div.ctrbox {border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(255,255,191); }
+div.codeboxtitle {text-align: right; border-style: none; color: black; }
+pre.codebox {font-family: monospace; border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(250,250,250); }
+div.resultboxtitle {text-align: right; border-style: none; color: black; }
+div.resultbox {border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; }
+div.badcodeboxtitle {text-align: right; border-style: none; color: black; }
+pre.badcodebox {font-family: monospace; border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(250,250,250); }
+div.unicodeboxtitle {text-align: right; border-style: none; color: black; }
+pre.unicodebox {font-family: monospace; border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(250,250,250); }
+pre.compactcodebox {font-family: monospace; border-style: solid; border-color: black; border-width: 1.000000pt; padding: 2.000000pt; background-color: rgb(250,250,250); }
+pre.sidebysidecode {font-family: monospace; font-size: small; vertical-align: top; border-style: solid; border-color: black; border-width: 1.000000pt; padding: 2.000000pt; margin-right: 3.000000%; margin-top: 0.000000pt; background-color: rgb(250,250,250); width: 47.000000%; display: inline-block; }
+div.sidebysideresult {vertical-align: top; border-style: solid; border-color: black; border-width: 1.000000pt; padding: 2.000000pt; margin-top: 0.000000pt; width: 47.000000%; display: inline-block; }
+div.defnbox {border-style: solid; border-color: black; border-width: 1.000000pt; padding: 2.000000pt; background-color: rgb(255,255,191); }
+div.optionsummarybox {border-style: solid; border-color: black; border-width: 1.000000pt; padding: 2.000000pt; background-color: rgb(255,255,191); }
+div.optionvaluesummarybox {border-style: none; margin-left: 40.000000pt; }
+span.floatrightbox {float: right; border-style: none; }
+div.noteBox {border-style: none; }
+div.settingsboxtitle {text-align: right; border-style: none; color: black; }
+div.settingsbox {border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(255,255,227); }
+div.optionvalueboxtitle {text-align: right; border-style: none; color: black; }
+div.optionvaluebox {border-style: solid; border-color: black; border-width: 2.000000pt; padding: 2.000000pt; background-color: rgb(255,255,245); }
+div.nlctuserguideidx0 {border-style: none; margin-left: 0.000000pt; }
+div.nlctuserguideidx1 {border-style: none; margin-left: 20.000000pt; }
+div.nlctuserguideidx2 {border-style: none; margin-left: 40.000000pt; }
+div.nlctusernavbox {border-style: none; }
+div.abstractheader {font-weight: bold; text-align: center; border-style: none; }
+div.filedef {font-family: monospace; text-align: left; border-style: none; }
+div.tablefn {font-size: x-small; border-style: none; }
+div.tablefns {text-align: left; border-style: none; width: 80.000000%; }
+code.envvarfmt {font-family: monospace; border-style: none; color: rgb(54,100,139); }
+code.langtagfmt {font-family: monospace; border-style: none; color: rgb(82,139,139); }
+</style>
+</head>
+<body>
+<div id="main">
+ <header><div class="title">tracklang.sty v1.6: tracking language options</div><!-- end of title --><div class="author">Nicola L.C. Talbot<br>
+ Dickimaw Books<br>
+ <a href="https://www.dickimaw-books.com/">dickimaw-books.com</a></div><!-- end of author --><div class="date">2022-10-29 </div><!-- end of date --></header><p>
+<p>
+
+<div class="abstract"><div class="abstractheader">Abstract</div><!-- end of abstractheader -->
+ The <a id="wrglossary.1"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package is provided for package developers who want a simple interface to find out which languages the user has requested through packages such as <a id="wrglossary.2"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> and <a id="wrglossary.3"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a>. <span style="font-style: italic; font-variant: normal; ">This package doesn’t provide any translations.</span> Its purpose is simply to track which languages have been requested by the user. Generic TeX code is in <a id="wrglossary.4"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> for non-LaTeX users.<p>
+If the <a id="wrglossary.5"></a><a href="#glo:dual.shellescape">shell escape</a> is enabled or <a id="wrglossary.6"></a><a href="#glo:directlua"><code class="csfmt">\directlua</code></a> is available, this package may also be used to query the <a id="wrglossary.7"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> or <a id="wrglossary.8"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> environment variable (see §<a href="#sec:langsty">6</a>). Windows users, who don’t have the locale stored in environment variables, can use <a id="wrglossary.9"></a><a href="#glo:app.texosquery"><span class="appfmt">texosquery</span></a> in combination with <a id="wrglossary.10"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>. (Similarly if <a id="wrglossary.11"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> or <a id="wrglossary.12"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> don’t contain sufficient information.) In order to use <a id="wrglossary.13"></a><a href="#glo:app.texosquery"><span class="appfmt">texosquery</span></a> through the restricted <a id="wrglossary.14"></a><a href="#glo:dual.shellescape">shell escape</a>, you must have at least Java 8 and set up <a id="wrglossary.15"></a><a href="#glo:file.texosquery.cfg"><span class="filefmt">texosquery.cfg</span></a> appropriately. (See the <a id="wrglossary.16"></a><a href="#glo:app.texosquery"><span class="appfmt">texosquery</span></a> manual for further details.) </div><!-- end of abstract -->
+<p>
+The fundamental aim of this generic package is to be able to effectively say: <blockquote> The user (that is, the <span style="font-style: italic; font-variant: normal; ">document</span> author) wants to use dialects <code class="langtagfmt">xx-XX</code>, <code class="langtagfmt">yy-YY-Scrp</code>, etc in their document. Any packages used by their document that provide multilingual or region-dependent support should do whatever is required to activate the settings for those languages and regions (or warn the user that there’s no support). </blockquote> Naturally, this is only of use if the locale-sensitive packages use <a id="wrglossary.17"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> to pick up this information, which is entirely up to the package authors, but at the moment there’s no standard method for packages to detect the required language and region. The aim of <a id="wrglossary.18"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> is to provide that method. In particular, the emphasis is on using <a id="wrglossary.19"></a><a href="#glo:ISO">ISO</a> language and region codes rather than hard-coding the various language labels used by different language packages.<p>
+Related articles: <a href="https://tug.org/TUGboat/tb2016-3/http://www.tug.org/TUGboat/tb37-3/tb117talbot.pdf"><span class="qt">“Localisation of TeX documents: <span class="styfmt">tracklang</span>.”</span> <span style="font-style: italic; font-variant: normal; ">TUGboat</span>, Volume 37 (2016), No. 3</a>, <a href="https://www.dickimaw-books.com/latex/tracklang">Localisation with <span class="filefmt">tracklang.tex</span></a>, and <a href="https://www.dickimaw-books.com/faqs.php?category=tracklang"><span class="styfmt">tracklang</span> FAQ</a>.<p>
+<nav class="toc">
+<section id="toc"><!-- start of section toc --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->Contents<div class="labellink"><a href="#toc">[link]</a></div></h1><!-- end of chapter header -->
+
+<ul>
+<li class="toc-part"><a href="#part.I"><span class="numberline">I</span>User Guide</a></li><!-- end of toc-part -->
+
+<li class="toc-chapter"><a href="#sec:intro"><span class="numberline">1</span>Introduction</a></li><!-- end of toc-chapter -->
+
+<li class="toc-chapter"><a href="#sec:summary"><span class="numberline">2</span>Summary of Use</a></li><!-- end of toc-chapter -->
+
+<ul>
+<li class="toc-section"><a href="#sec:summary-doc"><span class="numberline">2.1</span>Document Level</a></li><!-- end of toc-section -->
+
+<ul>
+<li class="toc-subsection"><a href="#sec:tex"><span class="numberline">2.1.1</span>Generic TeX</a></li><!-- end of toc-subsection -->
+
+<li class="toc-subsection"><a href="#sec:latex"><span class="numberline">2.1.2</span>LaTeX</a></li><!-- end of toc-subsection -->
+</ul>
+<li class="toc-section"><a href="#sec:summary-localepkg"><span class="numberline">2.2</span>Locale-Sensitive Packages</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:summary-langpkg"><span class="numberline">2.3</span>Language Packages</a></li><!-- end of toc-section -->
+</ul>
+<li class="toc-chapter"><a href="#sec:generic"><span class="numberline">3</span>Generic Use</a></li><!-- end of toc-chapter -->
+
+<li class="toc-chapter"><a href="#sec:supplpkgs"><span class="numberline">4</span>Supplementary Packages</a></li><!-- end of toc-chapter -->
+
+<li class="toc-chapter"><a href="#sec:user"><span class="numberline">5</span>Detecting the User’s Requested Languages</a></li><!-- end of toc-chapter -->
+
+<ul>
+<li class="toc-section"><a href="#sec:examples"><span class="numberline">5.1</span>Examples</a></li><!-- end of toc-section -->
+
+<ul>
+<li class="toc-subsection"><a href="#sec:animals"><span class="numberline">5.1.1</span><span style="font-family: monospace; ">animals.sty</span></a></li><!-- end of toc-subsection -->
+
+<li class="toc-subsection"><a href="#sec:regions"><span class="numberline">5.1.2</span><span style="font-family: monospace; ">regions.sty</span></a></li><!-- end of toc-subsection -->
+</ul></ul>
+<li class="toc-chapter"><a href="#sec:langsty"><span class="numberline">6</span>Adding Support for Language Tracking</a></li><!-- end of toc-chapter -->
+
+<ul>
+<li class="toc-section"><a href="#sec:initnewlang"><span class="numberline">6.1</span>Initialising a New Language or Dialect</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:selectlanguage"><span class="numberline">6.2</span>Switching Language or Dialect</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:newscripts"><span class="numberline">6.3</span>Defining New Scripts</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:newregions"><span class="numberline">6.4</span>Defining New Regions</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:newlanguages"><span class="numberline">6.5</span>Defining a New Language</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:definelabels"><span class="numberline">6.6</span>Defining New <span style="font-family: sans-serif; ">tracklang</span> Labels</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#sec:examplenewlang"><span class="numberline">6.7</span>Example (<span style="font-family: monospace; ">alien.sty</span>)</a></li><!-- end of toc-section -->
+</ul>
+<li class="toc-part"><a href="#part.II"><span class="numberline">II</span>Summaries</a></li><!-- end of toc-part -->
+
+<li class="toc-chapter"><a href="#sec:regscriptmappings"><span class="numberline">A</span>Region and Script Mappings</a></li><!-- end of toc-chapter -->
+
+<li class="toc-chapter"><a href="#symbols">Symbols</a></li><!-- end of toc-chapter -->
+
+<li class="toc-chapter"><a href="#glossary">Glossary</a></li><!-- end of toc-chapter -->
+
+<li class="toc-chapter"><a href="#cmdsummary">Command Summary</a></li><!-- end of toc-chapter -->
+
+<ul>
+<li class="toc-section"><a href="#summary.index@">Command Summary: @</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index6553600">Command Summary: A</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index6684672">Command Summary: C</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index6881280">Command Summary: F</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index6946816">Command Summary: G</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index7077888">Command Summary: I</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index7733248">Command Summary: S</a></li><!-- end of toc-section -->
+
+<li class="toc-section"><a href="#summary.index7798784">Command Summary: T</a></li><!-- end of toc-section -->
+</ul>
+<li class="toc-chapter"><a href="#index">Index</a></li><!-- end of toc-chapter -->
+ </ul></nav><!-- end of toc -->
+</section><!-- end of section toc -->
+
+<section id="chapter*.2"><!-- start of section chapter*.2 --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->List of Tables<div class="labellink"><a href="#chapter*.2">[link]</a></div></h1><!-- end of chapter header -->
+<div class="lot">
+<div class="toc-table"><a href="#tab:isoopts"><span class="numberline">1.1</span>Predefined ISO Language-Region Dialects</a></div><!-- end of toc-table -->
+
+<div class="toc-table"><a href="#tab:rootlangopts"><span class="numberline">1.2</span>Predefined Root Languages</a></div><!-- end of toc-table -->
+
+<div class="toc-table"><a href="#tab:nonisoopts"><span class="numberline">1.3</span>Predefined Non-ISO Dialects</a></div><!-- end of toc-table -->
+
+<div class="toc-table"><a href="#tab:regionmappings"><span class="numberline">A.1</span>Region Mappings</a></div><!-- end of toc-table -->
+
+<div class="toc-table"><a href="#tab:scriptmappings"><span class="numberline">A.2</span>Script Mappings</a></div><!-- end of toc-table -->
+ </div><!-- end of lot --><p>
+
+</section><!-- end of section chapter*.2 -->
+
+<section id="part.I"><!-- start of section part.I --><div class="tomain"><a href="#main">[top]</a></div>
+<div class="part"><!-- start of part header -->I. User Guide<div class="labellink"><a href="#part.I">[link]</a></div></div><!-- end of part header -->
+<p>
+
+</section><!-- end of section part.I -->
+
+<section id="sec:intro"><!-- start of section sec:intro --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->1. Introduction<div class="labellink"><a href="#sec:intro">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+When I’m developing a package that provides multilingual support (for example, <a id="wrglossary.20"></a><a href="#glo:pkg.glossaries"><span class="styfmt">glossaries</span></a>) it’s cumbersome trying to work out if the user has requested translations for fixed text. This usually involves checking if <a id="wrglossary.21"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> or <a id="wrglossary.22"></a><a href="#glo:pkg.translator"><span class="styfmt">translator</span></a> or <a id="wrglossary.23"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> has been loaded and, if so, what language settings have been used. The result can be a tangled mass of conditional code. The alternative is to tell users to add the language as a document class option, which they may or may not want to do, or to tell them to supply the language settings to every package they load that provides multilingual support, which users are even less likely to want to do.<p>
+The <a id="wrglossary.24"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package tries to neaten this up by working out as much of this information as possible for you and providing a command that iterates through the loaded languages. This way, you can just iterate through the list of tracked languages and, for each language, either define the translations or warn the user that there’s no translation for that language.<p>
+This package works best with <a id="wrglossary.25"></a><a href="#glo:pkg.ngerman"><span class="styfmt">ngerman</span></a> and <a id="wrglossary.26"></a><a href="#glo:pkg.german"><span class="styfmt">german</span></a> (since it’s a simple test to determine if they have been loaded) and recent versions of <a id="wrglossary.27"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> (which conveniently provides <a id="wrglossary.28"></a><a href="#glo:xpg@bcp@loaded"><code class="csfmt">\xpg@bcp@loaded</code></a>) or when the language options are specified in the document class option list. It works fairly well with <a id="wrglossary.29"></a><a href="#glo:pkg.translator"><span class="styfmt">translator</span></a> but will additionally assume the root language was also requested when a dialect is specified. So, for example, <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\usepackage</code>[<a id="wrglossary.30"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{translator}
+<code class="cmd">\usepackage</code>{tracklang}
+</pre> is equivalent to <pre class="compactcodebox"><code class="cmd">\usepackage</code>[<a id="wrglossary.31"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{translator}
+<code class="cmd">\usepackage</code>[<a id="wrglossary.32"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a>,<a id="wrglossary.33"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{tracklang}
+</pre> This means that <a id="wrglossary.34"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a> will iterate through the list <span class="qt">“<a id="wrglossary.35"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a>,<a id="wrglossary.36"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>”</span> instead of just <span class="qt">“<a id="wrglossary.37"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>”</span>, which can result in some redundancy.<p>
+Unfortunately I can’t find any way of detecting a list of languages loaded through <a id="wrglossary.38"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span>’s</a> new <a id="wrglossary.39"></a><a href="#glo:babelprovide"><code class="csfmt">\babelprovide</code></a> command. As far as I can tell, the only stored list is in <a id="wrglossary.40"></a><a href="#glo:bbl@loaded"><code class="csfmt">\bbl@loaded</code></a> which only contains the languages loaded through package options.<p>
+If the <a id="wrglossary.41"></a><a href="#glo:pkg.ngerman"><span class="styfmt">ngerman</span></a> package has been loaded, <a id="wrglossary.42"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> effectively does: <pre class="compactcodebox"><a id="wrglossary.43"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<a id="wrglossary.44"></a><a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>}
+</pre> Similarly, if the <a id="wrglossary.45"></a><a href="#glo:pkg.german"><span class="styfmt">german</span></a> package has been loaded, <a id="wrglossary.46"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> effectively does <pre class="compactcodebox"><a id="wrglossary.47"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<a id="wrglossary.48"></a><a href="#glo:opt.german"><span class="optfmt">german</span></a>}
+</pre><p>
+If any document class or package options are passed to <a id="wrglossary.49"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>, then <a id="wrglossary.50"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> won’t bother checking for <a id="wrglossary.51"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a>, <a id="wrglossary.52"></a><a href="#glo:pkg.translator"><span class="styfmt">translator</span></a>, <a id="wrglossary.53"></a><a href="#glo:pkg.ngerman"><span class="styfmt">ngerman</span></a>, <a id="wrglossary.54"></a><a href="#glo:pkg.german"><span class="styfmt">german</span></a> or <a id="wrglossary.55"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a>. So, if the above example is changed to: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.56"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{article}
+<code class="cmd">\usepackage</code>{translator}
+<code class="cmd">\usepackage</code>{tracklang}
+</pre> then the dialect list will just consist of <span class="qt">“<a id="wrglossary.57"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>”</span> rather than <span class="qt">“<a id="wrglossary.58"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a>,<a id="wrglossary.59"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>”</span>. This does, however, mean that if the user mixes class and package options, only the class options will be detected. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.60"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{article}
+<code class="cmd">\usepackage</code>[<a id="wrglossary.61"></a><a href="#glo:opt.french"><span class="optfmt">french</span></a>]{babel}
+<code class="cmd">\usepackage</code>{tracklang}
+</pre> In this case, only the <a id="wrglossary.62"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a> option will be detected. The user can therefore use the document class option (or <a id="wrglossary.63"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package option) to override the dialect and set the country code (where provided). For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.64"></a><a href="#glo:opt.es-MX"><span class="optfmt">es-MX</span></a>]{article}
+<code class="cmd">\usepackage</code>[<a id="wrglossary.65"></a><a href="#glo:opt.spanish"><span class="optfmt">spanish</span></a>]{babel}
+<code class="cmd">\usepackage</code>{tracklang}
+</pre> This sets the dialect to <a id="wrglossary.66"></a><a href="#glo:opt.mexicanspanish"><span class="optfmt">mexicanspanish</span></a> and the root language to <a id="wrglossary.67"></a><a href="#glo:opt.spanish"><span class="optfmt">spanish</span></a>. <p>
+Predefined dialects are listed in Tables <a href="#tab:isoopts">1.1</a>, <a href="#tab:rootlangopts">1.2</a> & <a href="#tab:nonisoopts">1.3</a>. These may be passed in the document class options or used in <a id="wrglossary.68"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>, as illustrated above. <p>
+§<a href="#sec:summary">2</a> provides brief examples of use for those who want a general overview before reading the more detailed sections. §<a href="#sec:generic">3</a> describes generic commands for identifying the document languages. §<a href="#sec:user">5</a> is for package writers who want to add multilingual support to their package and need to know which settings the user has requested through language packages like <a id="wrglossary.69"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a>. §<a href="#sec:langsty">6</a> is for developers of language definition packages who want to help other package writers to detect what languages have been requested.<p>
+
+<table class="glossary-ruled">
+<caption id="tab:isoopts">Table&nbsp;1: Predefined <a href="#glo:ISO">ISO</a> Language-Region Dialects. (<a href="#glo:ISO">ISO</a> tag or dialect label may be used as a package option or with <a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>)</caption>
+<tr class="glossary-ruled">
+<th class="glossary-name cell-noborder-bothsep-l">ISO Tag</th>
+<th class="glossary-other cell-noborder-bothsep-l">Dialect Label</th>
+<th class="glossary-name cell-noborder-bothsep-l cell-left-border">ISO Tag</th>
+<th class="glossary-other cell-noborder-bothsep-l">Dialect Label</th></tr>
+
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.cy-GB"><span class="optfmt">cy-GB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">GBwelsh</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.de-AT"><span class="optfmt">de-AT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">austrian</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.de-AT-1996"><span class="optfmt">de-AT-1996</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">naustrian</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.de-BE"><span class="optfmt">de-BE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">belgiangerman</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.de-CH"><span class="optfmt">de-CH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">swissgerman</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.de-CH-1996"><span class="optfmt">de-CH-1996</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">nswissgerman</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.de-DE"><span class="optfmt">de-DE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">germanDE</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.de-DE-1996"><span class="optfmt">de-DE-1996</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">ngermanDE</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.en-AU"><span class="optfmt">en-AU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">australian</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.en-CA"><span class="optfmt">en-CA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">canadian</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.en-GB"><span class="optfmt">en-GB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">british</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.en-GG"><span class="optfmt">en-GG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">guernseyenglish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.en-IE"><span class="optfmt">en-IE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">IEenglish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.en-IM"><span class="optfmt">en-IM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">isleofmanenglish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.en-JE"><span class="optfmt">en-JE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">jerseyenglish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.en-MT"><span class="optfmt">en-MT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">maltaenglish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.en-NZ"><span class="optfmt">en-NZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">newzealand</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.en-US"><span class="optfmt">en-US</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">american</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-AR"><span class="optfmt">es-AR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">argentinespanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-BO"><span class="optfmt">es-BO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">bolivianspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-CL"><span class="optfmt">es-CL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">chilianspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-CO"><span class="optfmt">es-CO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">columbianspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-CR"><span class="optfmt">es-CR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">costaricanspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-CU"><span class="optfmt">es-CU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">cubanspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-DO"><span class="optfmt">es-DO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">dominicanspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-EC"><span class="optfmt">es-EC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">ecudorianspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-ES"><span class="optfmt">es-ES</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">spainspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-GT"><span class="optfmt">es-GT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">guatemalanspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-HN"><span class="optfmt">es-HN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">honduranspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-MX"><span class="optfmt">es-MX</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">mexicanspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-NI"><span class="optfmt">es-NI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">nicaraguanspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-PA"><span class="optfmt">es-PA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">panamaspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-PE"><span class="optfmt">es-PE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">peruvianspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-PR"><span class="optfmt">es-PR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">puertoricospanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-PY"><span class="optfmt">es-PY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">paraguayspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-SV"><span class="optfmt">es-SV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">elsalvadorspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.es-UY"><span class="optfmt">es-UY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">uruguayspanish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.es-VE"><span class="optfmt">es-VE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">venezuelanspanish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.fr-BE"><span class="optfmt">fr-BE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">belgique</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.fr-CA"><span class="optfmt">fr-CA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">canadien</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.fr-CH"><span class="optfmt">fr-CH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">swissfrench</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.fr-FR"><span class="optfmt">fr-FR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">france</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.fr-GG"><span class="optfmt">fr-GG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">guernseyfrench</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.fr-JE"><span class="optfmt">fr-JE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">jerseyfrench</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ga-GB"><span class="optfmt">ga-GB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">GBirish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.ga-IE"><span class="optfmt">ga-IE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">IEirish</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.gd-GB"><span class="optfmt">gd-GB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">GBscottish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.hr-HR"><span class="optfmt">hr-HR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">croatia</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.hu-HU"><span class="optfmt">hu-HU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">hungarian</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.id-IN"><span class="optfmt">id-IN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">bahasa</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.it-CH"><span class="optfmt">it-CH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">swissitalian</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.it-HR"><span class="optfmt">it-HR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">istriacountyitalian</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.it-IT"><span class="optfmt">it-IT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">italy</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.it-SI"><span class="optfmt">it-SI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">sloveneistriaitalian</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.it-SM"><span class="optfmt">it-SM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">sanmarino</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.it-VA"><span class="optfmt">it-VA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">vatican</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ms-MY"><span class="optfmt">ms-MY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">malay</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.mt-MT"><span class="optfmt">mt-MT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">maltamaltese</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nl-BE"><span class="optfmt">nl-BE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">flemish</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.nl-NL"><span class="optfmt">nl-NL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">netherlands</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.pt-BR"><span class="optfmt">pt-BR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">brazilian</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.pt-PT"><span class="optfmt">pt-PT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">portugal</span></tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.rm-CH"><span class="optfmt">rm-CH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">swissromansh</span>
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.sl-SI"><span class="optfmt">sl-SI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l"><span class="optfmt">slovenia</span></tr><tr><td colspan="4" class="glossary-postamble">Other combinations need to be set with <a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> or <a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a></td></tr></table>
+<p>
+
+<table class="glossary">
+<caption id="tab:rootlangopts">Table&nbsp;2: Predefined Root Languages. (<sup><span title="dagger marker" class="icon">†</span></sup>Has an associated territory.) The corresponding tag obtained with <code class="code"><a href="#glo:GetTrackedLanguageTag"><code class="csfmt">\GetTrackedLanguageTag</code></a>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code> is shown in parentheses</caption>
+
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.abkhaz"><span class="optfmt">abkhaz</span></dfn> (<span class="optfmt">ab</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.afar"><span class="optfmt">afar</span></dfn> (<span class="optfmt">aa</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.afrikaans"><span class="optfmt">afrikaans</span></dfn> (<span class="optfmt">af</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.akan"><span class="optfmt">akan</span></dfn> (<span class="optfmt">ak</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.albanian"><span class="optfmt">albanian</span></dfn> (<span class="optfmt">sq</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.amharic"><span class="optfmt">amharic</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">am-ET</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.anglosaxon"><span class="optfmt">anglosaxon</span></dfn> (<span class="optfmt">ang</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.apache"><span class="optfmt">apache</span></dfn> (<span class="optfmt">apa</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.arabic"><span class="optfmt">arabic</span></dfn> (<span class="optfmt">ar</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.aragonese"><span class="optfmt">aragonese</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">an-ES</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.armenian"><span class="optfmt">armenian</span></dfn> (<span class="optfmt">hy</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.assamese"><span class="optfmt">assamese</span></dfn> (<span class="optfmt">as</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.asturian"><span class="optfmt">asturian</span></dfn> (<span class="optfmt">ast</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.avaric"><span class="optfmt">avaric</span></dfn> (<span class="optfmt">av</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.avestan"><span class="optfmt">avestan</span></dfn> (<span class="optfmt">ae</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.aymara"><span class="optfmt">aymara</span></dfn> (<span class="optfmt">ay</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.azerbaijani"><span class="optfmt">azerbaijani</span></dfn> (<span class="optfmt">az</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bahasai"><span class="optfmt">bahasai</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">id-IN</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bahasam"><span class="optfmt">bahasam</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ms-MY</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bambara"><span class="optfmt">bambara</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">bm-ML</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bashkir"><span class="optfmt">bashkir</span></dfn> (<span class="optfmt">ba</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.basque"><span class="optfmt">basque</span></dfn> (<span class="optfmt">eu</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.belarusian"><span class="optfmt">belarusian</span></dfn> (<span class="optfmt">be</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bengali"><span class="optfmt">bengali</span></dfn> (<span class="optfmt">bn</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.berber"><span class="optfmt">berber</span></dfn> (<span class="optfmt">ber</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bihari"><span class="optfmt">bihari</span></dfn> (<span class="optfmt">bh</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bislama"><span class="optfmt">bislama</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">bi-VU</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bokmal"><span class="optfmt">bokmal</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">nb-NO</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bosnian"><span class="optfmt">bosnian</span></dfn> (<span class="optfmt">bs</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.breton"><span class="optfmt">breton</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">br-FR</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bulgarian"><span class="optfmt">bulgarian</span></dfn> (<span class="optfmt">bg</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.burmese"><span class="optfmt">burmese</span></dfn> (<span class="optfmt">my</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.catalan"><span class="optfmt">catalan</span></dfn> (<span class="optfmt">ca</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.chamorro"><span class="optfmt">chamorro</span></dfn> (<span class="optfmt">ch</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.chechen"><span class="optfmt">chechen</span></dfn> (<span class="optfmt">ce</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.chichewa"><span class="optfmt">chichewa</span></dfn> (<span class="optfmt">ny</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.chinese"><span class="optfmt">chinese</span></dfn> (<span class="optfmt">zh</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.churchslavonic"><span class="optfmt">churchslavonic</span></dfn> (<span class="optfmt">cu</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.chuvash"><span class="optfmt">chuvash</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">cv-RU</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.coptic"><span class="optfmt">coptic</span></dfn> (<span class="optfmt">cop</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.cornish"><span class="optfmt">cornish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">kw-GB</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.corsican"><span class="optfmt">corsican</span></dfn> (<span class="optfmt">co</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.cree"><span class="optfmt">cree</span></dfn> (<span class="optfmt">cr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.croatian"><span class="optfmt">croatian</span></dfn> (<span class="optfmt">hr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.czech"><span class="optfmt">czech</span></dfn> (<span class="optfmt">cs</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.danish"><span class="optfmt">danish</span></dfn> (<span class="optfmt">da</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.divehi"><span class="optfmt">divehi</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">dv-MV</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.dutch"><span class="optfmt">dutch</span></dfn> (<span class="optfmt">nl</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.dzongkha"><span class="optfmt">dzongkha</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">dz-BT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.easternpunjabi"><span class="optfmt">easternpunjabi</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">pa-IN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.english"><span class="optfmt">english</span></dfn> (<span class="optfmt">en</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.esperanto"><span class="optfmt">esperanto</span></dfn> (<span class="optfmt">eo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.estonian"><span class="optfmt">estonian</span></dfn> (<span class="optfmt">et</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ewe"><span class="optfmt">ewe</span></dfn> (<span class="optfmt">ee</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.faroese"><span class="optfmt">faroese</span></dfn> (<span class="optfmt">fo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.farsi"><span class="optfmt">farsi</span></dfn> (<span class="optfmt">fa</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.fijian"><span class="optfmt">fijian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fj-FJ</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.finnish"><span class="optfmt">finnish</span></dfn> (<span class="optfmt">fi</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.french"><span class="optfmt">french</span></dfn> (<span class="optfmt">fr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.friulan"><span class="optfmt">friulan</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fur-IT</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.fula"><span class="optfmt">fula</span></dfn> (<span class="optfmt">ff</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.galician"><span class="optfmt">galician</span></dfn> (<span class="optfmt">gl</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ganda"><span class="optfmt">ganda</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">lg-UG</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.georgian"><span class="optfmt">georgian</span></dfn> (<span class="optfmt">ka</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.german"><span class="optfmt">german</span></dfn> (<span class="optfmt">de</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.greek"><span class="optfmt">greek</span></dfn> (<span class="optfmt">el</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.guarani"><span class="optfmt">guarani</span></dfn> (<span class="optfmt">gn</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.gujarati"><span class="optfmt">gujarati</span></dfn> (<span class="optfmt">gu</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.haitian"><span class="optfmt">haitian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ht-HT</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.hausa"><span class="optfmt">hausa</span></dfn> (<span class="optfmt">ha</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.hebrew"><span class="optfmt">hebrew</span></dfn> (<span class="optfmt">he</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.herero"><span class="optfmt">herero</span></dfn> (<span class="optfmt">hz</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.hindi"><span class="optfmt">hindi</span></dfn> (<span class="optfmt">hi</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.hirimotu"><span class="optfmt">hirimotu</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ho-PG</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.icelandic"><span class="optfmt">icelandic</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">is-IS</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ido"><span class="optfmt">ido</span></dfn> (<span class="optfmt">io</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.igbo"><span class="optfmt">igbo</span></dfn> (<span class="optfmt">ig</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.interlingua"><span class="optfmt">interlingua</span></dfn> (<span class="optfmt">ia</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.interlingue"><span class="optfmt">interlingue</span></dfn> (<span class="optfmt">ie</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.inuktitut"><span class="optfmt">inuktitut</span></dfn> (<span class="optfmt">iu</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.inupiaq"><span class="optfmt">inupiaq</span></dfn> (<span class="optfmt">ik</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.irish"><span class="optfmt">irish</span></dfn> (<span class="optfmt">ga</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.italian"><span class="optfmt">italian</span></dfn> (<span class="optfmt">it</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.japanese"><span class="optfmt">japanese</span></dfn> (<span class="optfmt">ja</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.javanese"><span class="optfmt">javanese</span></dfn> (<span class="optfmt">jv</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kalaallisut"><span class="optfmt">kalaallisut</span></dfn> (<span class="optfmt">kl</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kannada"><span class="optfmt">kannada</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">kn-IN</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kanuri"><span class="optfmt">kanuri</span></dfn> (<span class="optfmt">kr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kashmiri"><span class="optfmt">kashmiri</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ks-IN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kazakh"><span class="optfmt">kazakh</span></dfn> (<span class="optfmt">kk</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.khmer"><span class="optfmt">khmer</span></dfn> (<span class="optfmt">km</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kikuyu"><span class="optfmt">kikuyu</span></dfn> (<span class="optfmt">ki</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kinyarwanda"><span class="optfmt">kinyarwanda</span></dfn> (<span class="optfmt">rw</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kirundi"><span class="optfmt">kirundi</span></dfn> (<span class="optfmt">rn</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.komi"><span class="optfmt">komi</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">kv-RU</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kongo"><span class="optfmt">kongo</span></dfn> (<span class="optfmt">kg</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.korean"><span class="optfmt">korean</span></dfn> (<span class="optfmt">ko</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kurdish"><span class="optfmt">kurdish</span></dfn> (<span class="optfmt">ku</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kwanyama"><span class="optfmt">kwanyama</span></dfn> (<span class="optfmt">kj</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kyrgyz"><span class="optfmt">kyrgyz</span></dfn> (<span class="optfmt">ky</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.lao"><span class="optfmt">lao</span></dfn> (<span class="optfmt">lo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.latin"><span class="optfmt">latin</span></dfn> (<span class="optfmt">la</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.latvian"><span class="optfmt">latvian</span></dfn> (<span class="optfmt">lv</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.limburgish"><span class="optfmt">limburgish</span></dfn> (<span class="optfmt">li</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.lingala"><span class="optfmt">lingala</span></dfn> (<span class="optfmt">ln</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.lithuanian"><span class="optfmt">lithuanian</span></dfn> (<span class="optfmt">lt</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.lsorbian"><span class="optfmt">lsorbian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">dsb-DE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.lubakatanga"><span class="optfmt">lubakatanga</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">lu-CD</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.luxembourgish"><span class="optfmt">luxembourgish</span></dfn> (<span class="optfmt">lb</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.macedonian"><span class="optfmt">macedonian</span></dfn> (<span class="optfmt">mk</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.magyar"><span class="optfmt">magyar</span></dfn> (<span class="optfmt">hu</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.malagasy"><span class="optfmt">malagasy</span></dfn> (<span class="optfmt">mg</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.malayalam"><span class="optfmt">malayalam</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ml-IN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.maltese"><span class="optfmt">maltese</span></dfn> (<span class="optfmt">mt</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.manx"><span class="optfmt">manx</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">gv-IM</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.maori"><span class="optfmt">maori</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">mi-NZ</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.marathi"><span class="optfmt">marathi</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">mr-IN</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.marshallese"><span class="optfmt">marshallese</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">mh-MH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.mongolian"><span class="optfmt">mongolian</span></dfn> (<span class="optfmt">mn</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nauruan"><span class="optfmt">nauruan</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">na-NR</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.navajo"><span class="optfmt">navajo</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">nv-US</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ndonga"><span class="optfmt">ndonga</span></dfn> (<span class="optfmt">ng</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nepali"><span class="optfmt">nepali</span></dfn> (<span class="optfmt">ne</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nko"><span class="optfmt">nko</span></dfn> (<span class="optfmt">nqo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.norsk"><span class="optfmt">norsk</span></dfn> (<span class="optfmt">no</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.northernndebele"><span class="optfmt">northernndebele</span></dfn> (<span class="optfmt">nd</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.northernsotho"><span class="optfmt">northernsotho</span></dfn> (<span class="optfmt">nso</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nuosu"><span class="optfmt">nuosu</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ii-CN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nynorsk"><span class="optfmt">nynorsk</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">nn-NO</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.occitan"><span class="optfmt">occitan</span></dfn> (<span class="optfmt">oc</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ojibwe"><span class="optfmt">ojibwe</span></dfn> (<span class="optfmt">oj</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.oriya"><span class="optfmt">oriya</span></dfn> (<span class="optfmt">or</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.oromo"><span class="optfmt">oromo</span></dfn> (<span class="optfmt">om</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ossetian"><span class="optfmt">ossetian</span></dfn> (<span class="optfmt">os</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.pali"><span class="optfmt">pali</span></dfn> (<span class="optfmt">pi</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.pashto"><span class="optfmt">pashto</span></dfn> (<span class="optfmt">ps</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.piedmontese"><span class="optfmt">piedmontese</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">pms-IT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.polish"><span class="optfmt">polish</span></dfn> (<span class="optfmt">pl</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.portuges"><span class="optfmt">portuges</span></dfn> (<span class="optfmt">pt</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.quechua"><span class="optfmt">quechua</span></dfn> (<span class="optfmt">qu</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.romanian"><span class="optfmt">romanian</span></dfn> (<span class="optfmt">ro</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.romansh"><span class="optfmt">romansh</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">rm-CH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.russian"><span class="optfmt">russian</span></dfn> (<span class="optfmt">ru</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.samin"><span class="optfmt">samin</span></dfn> (<span class="optfmt">se</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.samoan"><span class="optfmt">samoan</span></dfn> (<span class="optfmt">sm</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sango"><span class="optfmt">sango</span></dfn> (<span class="optfmt">sg</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sanskrit"><span class="optfmt">sanskrit</span></dfn> (<span class="optfmt">sa</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sardinian"><span class="optfmt">sardinian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">sc-IT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.scottish"><span class="optfmt">scottish</span></dfn> (<span class="optfmt">gd</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.serbian"><span class="optfmt">serbian</span></dfn> (<span class="optfmt">sr</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.shona"><span class="optfmt">shona</span></dfn> (<span class="optfmt">sn</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sindhi"><span class="optfmt">sindhi</span></dfn> (<span class="optfmt">sd</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sinhalese"><span class="optfmt">sinhalese</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">si-LK</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.slovak"><span class="optfmt">slovak</span></dfn> (<span class="optfmt">sk</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.slovene"><span class="optfmt">slovene</span></dfn> (<span class="optfmt">sl</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.somali"><span class="optfmt">somali</span></dfn> (<span class="optfmt">so</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.southernndebele"><span class="optfmt">southernndebele</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">nr-ZA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.southernsotho"><span class="optfmt">southernsotho</span></dfn> (<span class="optfmt">st</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.spanish"><span class="optfmt">spanish</span></dfn> (<span class="optfmt">es</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sudanese"><span class="optfmt">sudanese</span></dfn> (<span class="optfmt">su</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swahili"><span class="optfmt">swahili</span></dfn> (<span class="optfmt">sw</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swati"><span class="optfmt">swati</span></dfn> (<span class="optfmt">ss</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swedish"><span class="optfmt">swedish</span></dfn> (<span class="optfmt">sv</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.syriac"><span class="optfmt">syriac</span></dfn> (<span class="optfmt">syr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tagalog"><span class="optfmt">tagalog</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">tl-PH</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tahitian"><span class="optfmt">tahitian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ty-PF</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tai"><span class="optfmt">tai</span></dfn> (<span class="optfmt">tai</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tajik"><span class="optfmt">tajik</span></dfn> (<span class="optfmt">tg</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tamil"><span class="optfmt">tamil</span></dfn> (<span class="optfmt">ta</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tatar"><span class="optfmt">tatar</span></dfn> (<span class="optfmt">tt</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.telugu"><span class="optfmt">telugu</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">te-IN</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.thai"><span class="optfmt">thai</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">th-TH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tibetan"><span class="optfmt">tibetan</span></dfn> (<span class="optfmt">bo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tigrinya"><span class="optfmt">tigrinya</span></dfn> (<span class="optfmt">ti</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tonga"><span class="optfmt">tonga</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">to-TO</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tsonga"><span class="optfmt">tsonga</span></dfn> (<span class="optfmt">ts</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.tswana"><span class="optfmt">tswana</span></dfn> (<span class="optfmt">tn</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.turkish"><span class="optfmt">turkish</span></dfn> (<span class="optfmt">tr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.turkmen"><span class="optfmt">turkmen</span></dfn> (<span class="optfmt">tk</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.twi"><span class="optfmt">twi</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">tw-GH</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ukrainian"><span class="optfmt">ukrainian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">uk-UA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.undetermined"><span class="optfmt">undetermined</span></dfn> (<span class="optfmt">und</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.urdu"><span class="optfmt">urdu</span></dfn> (<span class="optfmt">ur</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.usorbian"><span class="optfmt">usorbian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">hsb-DE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.uyghur"><span class="optfmt">uyghur</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ug-CN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.uzbek"><span class="optfmt">uzbek</span></dfn> (<span class="optfmt">uz</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.venda"><span class="optfmt">venda</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ve-ZA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.vietnamese"><span class="optfmt">vietnamese</span></dfn> (<span class="optfmt">vi</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.volapuk"><span class="optfmt">volapuk</span></dfn> (<span class="optfmt">vo</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.walloon"><span class="optfmt">walloon</span></dfn> (<span class="optfmt">wa</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.welsh"><span class="optfmt">welsh</span></dfn> (<span class="optfmt">cy</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.westernfrisian"><span class="optfmt">westernfrisian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fy-NL</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.wolof"><span class="optfmt">wolof</span></dfn> (<span class="optfmt">wo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.xhosa"><span class="optfmt">xhosa</span></dfn> (<span class="optfmt">xh</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.yiddish"><span class="optfmt">yiddish</span></dfn> (<span class="optfmt">yi</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.yoruba"><span class="optfmt">yoruba</span></dfn> (<span class="optfmt">yo</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.zhuang"><span class="optfmt">zhuang</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">za-CN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.zulu"><span class="optfmt">zulu</span></dfn> (<span class="optfmt">zu</span>)</tr></table>
+<p>
+
+<table class="glossary">
+<caption id="tab:nonisoopts">Table&nbsp;3: Predefined Non-ISO Dialects. (<sup><span title="dagger marker" class="icon">†</span></sup>Has an associated territory.) The corresponding language tag obtained with <code class="code"><a href="#glo:GetTrackedLanguageTag"><code class="csfmt">\GetTrackedLanguageTag</code></a>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code> is shown in parentheses. If the dialect has a corresponding mapping for the closest matching non-root language <a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a> or <a href="#glo:datedialect"><code class="csfmt">\date<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a>, this is also included after the tag following a slash.</caption>
+
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.acadian"><span class="optfmt">acadian</span></dfn> (<span class="optfmt">fr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.american"><span class="optfmt">american</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-US</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.argentinespanish"><span class="optfmt">argentinespanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-AR</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.australian"><span class="optfmt">australian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-AU</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.austrian"><span class="optfmt">austrian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-AT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bahasa"><span class="optfmt">bahasa</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">id-IN</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.belgiangerman"><span class="optfmt">belgiangerman</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-BE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.belgique"><span class="optfmt">belgique</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fr-BE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.bolivianspanish"><span class="optfmt">bolivianspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-BO</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.brazil"><span class="optfmt">brazil</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">pt-BR</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.brazilian"><span class="optfmt">brazilian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">pt-BR</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.british"><span class="optfmt">british</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-GB</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.canadian"><span class="optfmt">canadian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-CA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.canadien"><span class="optfmt">canadien</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fr-CA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.chilianspanish"><span class="optfmt">chilianspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-CL</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.columbianspanish"><span class="optfmt">columbianspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-CO</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.costaricanspanish"><span class="optfmt">costaricanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-CR</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.croatia"><span class="optfmt">croatia</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">hr-HR</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.cubanspanish"><span class="optfmt">cubanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-CU</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.cymraeg"><span class="optfmt">cymraeg</span></dfn> (<span class="optfmt">cy</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.deutsch"><span class="optfmt">deutsch</span></dfn> (<span class="optfmt">de</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.dominicanspanish"><span class="optfmt">dominicanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-DO</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ecudorianspanish"><span class="optfmt">ecudorianspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-EC</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.elsalvadorspanish"><span class="optfmt">elsalvadorspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-SV</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.flemish"><span class="optfmt">flemish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">nl-BE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.francais"><span class="optfmt">francais</span></dfn> (<span class="optfmt">fr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.france"><span class="optfmt">france</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fr-FR</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.frenchb"><span class="optfmt">frenchb</span></dfn> (<span class="optfmt">fr</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.friulano"><span class="optfmt">friulano</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fur-IT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.friulian"><span class="optfmt">friulian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fur-IT</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.furlan"><span class="optfmt">furlan</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fur-IT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.gaeilge"><span class="optfmt">gaeilge</span></dfn> (<span class="optfmt">ga</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.gaelic"><span class="optfmt">gaelic</span></dfn> (<span class="optfmt">gd</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.galicien"><span class="optfmt">galicien</span></dfn> (<span class="optfmt">gl</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GBirish"><span class="optfmt">GBirish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ga-GB</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GBscottish"><span class="optfmt">GBscottish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">gd-GB</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GBwelsh"><span class="optfmt">GBwelsh</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">cy-GB</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.germanb"><span class="optfmt">germanb</span></dfn> (<span class="optfmt">de</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.germanDE"><span class="optfmt">germanDE</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-DE</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.guatemalanspanish"><span class="optfmt">guatemalanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-GT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.guernseyenglish"><span class="optfmt">guernseyenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-GG</span> / <a href="#glo:opt.british"><span class="optfmt">british</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.guernseyfrench"><span class="optfmt">guernseyfrench</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fr-GG</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.honduranspanish"><span class="optfmt">honduranspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-HN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.hungarian"><span class="optfmt">hungarian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">hu-HU</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.IEenglish"><span class="optfmt">IEenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-IE</span> / <a href="#glo:opt.british"><span class="optfmt">british</span></a>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.IEirish"><span class="optfmt">IEirish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ga-IE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.indon"><span class="optfmt">indon</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">id-IN</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.indonesian"><span class="optfmt">indonesian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">id-IN</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.isleofmanenglish"><span class="optfmt">isleofmanenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-IM</span> / <a href="#glo:opt.british"><span class="optfmt">british</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.istriacountycroatian"><span class="optfmt">istriacountycroatian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">hr-HR</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.istriacountyitalian"><span class="optfmt">istriacountyitalian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">it-HR</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.italy"><span class="optfmt">italy</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">it-IT</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.jerseyenglish"><span class="optfmt">jerseyenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-JE</span> / <a href="#glo:opt.british"><span class="optfmt">british</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.jerseyfrench"><span class="optfmt">jerseyfrench</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fr-JE</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.kurmanji"><span class="optfmt">kurmanji</span></dfn> (<span class="optfmt">ku</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.latein"><span class="optfmt">latein</span></dfn> (<span class="optfmt">la</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.lowersorbian"><span class="optfmt">lowersorbian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">dsb-DE</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.malay"><span class="optfmt">malay</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ms-MY</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.maltaenglish"><span class="optfmt">maltaenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-MT</span> / <a href="#glo:opt.british"><span class="optfmt">british</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.maltamaltese"><span class="optfmt">maltamaltese</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">mt-MT</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.mexicanspanish"><span class="optfmt">mexicanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-MX</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.meyalu"><span class="optfmt">meyalu</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">ms-MY</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.naustrian"><span class="optfmt">naustrian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-AT-1996</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nbelgiangerman"><span class="optfmt">nbelgiangerman</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-BE-1996</span> / <a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.netherlands"><span class="optfmt">netherlands</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">nl-NL</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.newzealand"><span class="optfmt">newzealand</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-NZ</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ngerman"><span class="optfmt">ngerman</span></dfn> (<span class="optfmt">de-1996</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ngermanb"><span class="optfmt">ngermanb</span></dfn> (<span class="optfmt">de-1996</span> / <a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ngermanDE"><span class="optfmt">ngermanDE</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-DE-1996</span> / <a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nicaraguanspanish"><span class="optfmt">nicaraguanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-NI</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nil"><span class="optfmt">nil</span></dfn> (<span class="optfmt">und</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.norwegian"><span class="optfmt">norwegian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">no-NO</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.nswissgerman"><span class="optfmt">nswissgerman</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-CH-1996</span> / <a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.panamaspanish"><span class="optfmt">panamaspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-PA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.paraguayspanish"><span class="optfmt">paraguayspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-PY</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.persian"><span class="optfmt">persian</span></dfn> (<span class="optfmt">fa</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.peruvianspanish"><span class="optfmt">peruvianspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-PE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.piemonteis"><span class="optfmt">piemonteis</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">pms-IT</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.polutoniko"><span class="optfmt">polutoniko</span></dfn> (<span class="optfmt">el</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.polutonikogreek"><span class="optfmt">polutonikogreek</span></dfn> (<span class="optfmt">el</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.portugal"><span class="optfmt">portugal</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">pt-PT</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.portuguese"><span class="optfmt">portuguese</span></dfn> (<span class="optfmt">pt</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.puertoricospanish"><span class="optfmt">puertoricospanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-PR</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.romanche"><span class="optfmt">romanche</span></dfn> (<span class="optfmt">rm-CH</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.romansch"><span class="optfmt">romansch</span></dfn> (<span class="optfmt">rm-CH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.rumantsch"><span class="optfmt">rumantsch</span></dfn> (<span class="optfmt">rm-CH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.russianb"><span class="optfmt">russianb</span></dfn> (<span class="optfmt">ru</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sanmarino"><span class="optfmt">sanmarino</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">it-SM</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.serbianc"><span class="optfmt">serbianc</span></dfn> (<span class="optfmt">sr-Cyrl</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.serbianl"><span class="optfmt">serbianl</span></dfn> (<span class="optfmt">sr-Latn</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sloveneistriaitalian"><span class="optfmt">sloveneistriaitalian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">it-SI</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.sloveneistriaslovenian"><span class="optfmt">sloveneistriaslovenian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">sl-SI</span> / <a href="#glo:opt.slovenian"><span class="optfmt">slovenian</span></a>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.slovenia"><span class="optfmt">slovenia</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">sl-SI</span> / <a href="#glo:opt.slovenian"><span class="optfmt">slovenian</span></a>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.slovenian"><span class="optfmt">slovenian</span></dfn> (<span class="optfmt">sl</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.spainspanish"><span class="optfmt">spainspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-ES</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swissfrench"><span class="optfmt">swissfrench</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">fr-CH</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swissgerman"><span class="optfmt">swissgerman</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">de-CH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swissitalian"><span class="optfmt">swissitalian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">it-CH</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.swissromansh"><span class="optfmt">swissromansh</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">rm-CH</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.UKenglish"><span class="optfmt">UKenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-GB</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ukraine"><span class="optfmt">ukraine</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">uk-UA</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ukraineb"><span class="optfmt">ukraineb</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">uk-UA</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.uppersorbian"><span class="optfmt">uppersorbian</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">hsb-DE</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.uruguayspanish"><span class="optfmt">uruguayspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-UY</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.USenglish"><span class="optfmt">USenglish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">en-US</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.valencian"><span class="optfmt">valencian</span></dfn> (<span class="optfmt">ca</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.valencien"><span class="optfmt">valencien</span></dfn> (<span class="optfmt">ca</span>)
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.vatican"><span class="optfmt">vatican</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">it-VA</span>)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.venezuelanspanish"><span class="optfmt">venezuelanspanish</span><sup><span title="dagger marker" class="icon">†</span></sup></dfn> (<span class="optfmt">es-VE</span>)<td colspan="1"></td><td colspan="1"></td></tr></table>
+<p>
+
+</section><!-- end of section sec:intro -->
+
+<section id="sec:summary"><!-- start of section sec:summary --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->2. Summary of Use<div class="labellink"><a href="#sec:summary">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+There are three levels of use:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span>document level (code used by document authors);<p>
+<li><span class="numitem">2.</span>locale-sensitive package level (code for package authors who need to know what languages or locale the document is using, such as <a id="wrglossary.70"></a><a href="#glo:pkg.glossaries"><span class="styfmt">glossaries</span></a> to translate commands like <code class="cmd">\descriptionname</code> or <a id="wrglossary.71"></a><a href="#glo:pkg.datetime2"><span class="styfmt">datetime2</span></a> to provide localised formats or time zone information);<p>
+<li><span class="numitem">3.</span>language set-up level (code for packages that set up the document languages, such as <a id="wrglossary.72"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> or <a id="wrglossary.73"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a>).
+</ol>
+<p>
+
+</section><!-- end of section sec:summary -->
+
+<section id="sec:summary-doc"><!-- start of section sec:summary-doc --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->2.1. Document Level<div class="labellink"><a href="#sec:summary-doc">[link]</a></div></h2><!-- end of section header -->
+<p>
+Document level use can be divided into generic TeX use (§<a href="#sec:tex">2.1.1</a>) and LaTeX-specific use (§<a href="#sec:latex">2.1.2</a>).<p>
+
+</section><!-- end of section sec:summary-doc -->
+
+<section id="sec:tex"><!-- start of section sec:tex --><div class="tomain"><a href="#main">[top]</a></div>
+<h3><!-- start of subsection header -->2.1.1. Generic TeX<div class="labellink"><a href="#sec:tex">[link]</a></div></h3><!-- end of subsection header -->
+<p>
+This section is for generic TeX use. The <a id="wrglossary.74"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> files are loaded with <a id="wrglossary.75"></a><a href="#glo:input"><code class="csfmt">\input</code></a>. See §<a href="#sec:latex">2.1.2</a> for LaTeX use.<p>
+A Unix-like user wants the locale information picked up from the locale environment variable (the <a id="wrglossary.76"></a><a href="#glo:ext.tex"><span class="extfmt">tex</span></a> extension may be omitted): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.77"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.78"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> <span class="comment">% v1.3</span>
+<a id="wrglossary.79"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre><p>
+A Windows user wants the locale information picked up from the operating system (again the <a id="wrglossary.80"></a><a href="#glo:ext.tex"><span class="extfmt">tex</span></a> extension may be omitted): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.81"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.82"></a><a href="#glo:file.texosquery.tex"><span class="filefmt">texosquery.tex</span></a>
+<a id="wrglossary.83"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.84"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> <span class="comment">% v1.3</span>
+<a id="wrglossary.85"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre> Or (<a id="wrglossary.86"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a> v1.2) <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.87"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.88"></a><a href="#glo:file.texosquery.tex"><span class="filefmt">texosquery.tex</span></a> <span class="comment">% v1.2</span>
+<a id="wrglossary.89"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.90"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> <span class="comment">% v1.3</span>
+
+<a id="wrglossary.91"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a>{<code class="cmd">\langtag</code>}
+<a id="wrglossary.92"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\langtag</code>}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre> A Unix-like user who may or may not have <a id="wrglossary.93"></a><a href="#glo:app.texosquery"><span class="appfmt">texosquery</span></a> setup to run in the <a id="wrglossary.94"></a><a href="#glo:dual.shellescape">shell escape</a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.95"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.96"></a><a href="#glo:file.texosquery.tex"><span class="filefmt">texosquery.tex</span></a>
+<a id="wrglossary.97"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.98"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> <span class="comment">% v1.3</span>
+
+<code class="cmd">\ifx</code><a id="wrglossary.99"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a><code class="cmd">\undefined</code>
+ <a id="wrglossary.100"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+<code class="cmd">\else</code>
+ <a id="wrglossary.101"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a>{<code class="cmd">\langtag</code>}
+ <a id="wrglossary.102"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\langtag</code>}
+<code class="cmd">\fi</code>
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre><p>
+A user is writing in Italy in Armenian with a Latin <a id="wrglossary.103"></a><a href="#glo:idx.script">script</a> (<a id="wrglossary.104"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>) and the arevela <a id="wrglossary.105"></a><a href="#glo:idx.variant">variant</a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.106"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.107"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> <span class="comment">% v1.3</span>
+<a id="wrglossary.108"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{hy-Latn-IT-arevela}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre><p>
+A user is writing in English in the UK: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.109"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.110"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a>
+<a id="wrglossary.111"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{british}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre><p>
+Find out information about the current language (supplied in <a id="wrglossary.112"></a><a href="#glo:languagename"><code class="csfmt">\languagename</code></a>): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.113"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{<a id="wrglossary.114"></a><a href="#glo:languagename"><code class="csfmt">\languagename</code></a>}
+Dialect: <a id="wrglossary.115"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a>.
+Language: <a id="wrglossary.116"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>.
+ISO Code: <a id="wrglossary.117"></a><a href="#glo:CurrentTrackedIsoCode"><code class="csfmt">\CurrentTrackedIsoCode</code></a>.
+Region: <a id="wrglossary.118"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a>.
+Modifier: <a id="wrglossary.119"></a><a href="#glo:CurrentTrackedDialectModifier"><code class="csfmt">\CurrentTrackedDialectModifier</code></a>.
+Variant: <a id="wrglossary.120"></a><a href="#glo:CurrentTrackedDialectVariant"><code class="csfmt">\CurrentTrackedDialectVariant</code></a>.
+Script: <a id="wrglossary.121"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>.
+Sub-Lang: <a id="wrglossary.122"></a><a href="#glo:CurrentTrackedDialectSubLang"><code class="csfmt">\CurrentTrackedDialectSubLang</code></a>.
+Additional: <a id="wrglossary.123"></a><a href="#glo:CurrentTrackedDialectAdditional"><code class="csfmt">\CurrentTrackedDialectAdditional</code></a>.
+Language Tag: <a id="wrglossary.124"></a><a href="#glo:CurrentTrackedLanguageTag"><code class="csfmt">\CurrentTrackedLanguageTag</code></a>.
+</pre> Additional information about the <a id="wrglossary.125"></a><a href="#glo:idx.script">script</a> can be obtained by also loading <a id="wrglossary.126"></a><a href="#glo:pkg.tracklang-scripts"><span class="styfmt">tracklang-scripts</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.127"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.128"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a>
+</pre> The name, numeric code and direction can now be obtained: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div>Name: <a id="wrglossary.129"></a><a href="#glo:TrackLangScriptAlphaToName"><code class="csfmt">\TrackLangScriptAlphaToName</code></a>{<a id="wrglossary.130"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>}.
+Numeric:
+<a id="wrglossary.131"></a><a href="#glo:TrackLangScriptAlphaToNumeric"><code class="csfmt">\TrackLangScriptAlphaToNumeric</code></a>{<a id="wrglossary.132"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>}.
+Direction:
+<a id="wrglossary.133"></a><a href="#glo:TrackLangScriptAlphaToDir"><code class="csfmt">\TrackLangScriptAlphaToDir</code></a>{<a id="wrglossary.134"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>}.
+</pre> Test for a specific <a id="wrglossary.135"></a><a href="#glo:idx.script">script</a> (in this case <a id="wrglossary.136"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div>Latin?
+<code class="cmd">\ifx</code><a id="wrglossary.137"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a><a id="wrglossary.138"></a><a href="#glo:TrackLangScriptCode"><code class="csfmt">\TrackLangScriptLatn</code></a>
+ Yes
+<code class="cmd">\else</code>
+ No
+<code class="cmd">\fi</code>
+</pre><p>
+
+</section><!-- end of section sec:tex -->
+
+<section id="sec:latex"><!-- start of section sec:latex --><div class="tomain"><a href="#main">[top]</a></div>
+<h3><!-- start of subsection header -->2.1.2. LaTeX<div class="labellink"><a href="#sec:latex">[link]</a></div></h3><!-- end of subsection header -->
+<p>
+This section is for LaTeX use. See §<a href="#sec:tex">2.1.1</a> for generic TeX use.<p>
+With newer versions of <a id="wrglossary.139"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a>, where <a id="wrglossary.140"></a><a href="#glo:xpg@bcp@loaded"><code class="csfmt">\xpg@bcp@loaded</code></a> is defined, you just need to make sure the languages are set before <a id="wrglossary.141"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> is loaded: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+<code class="cmd">\usepackage</code>{polyglossia}
+<code class="cmd">\setmainlanguage</code>[variant=uk]{english}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre> For older versions of <a id="wrglossary.142"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> where the regional information is required, use recognised class options: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.143"></a><a href="#glo:opt.en-GB"><span class="optfmt">en-GB</span></a>]{article}
+<code class="cmd">\usepackage</code>{polyglossia}
+<code class="cmd">\setmainlanguage</code>[variant=uk]{english}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre><p>
+For <a id="wrglossary.144"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> users where the supplied <a id="wrglossary.145"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> dialect label is sufficient, and is passed either through the document class or package options, there’s no need to do anything special: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.146"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>,<a id="wrglossary.147"></a><a href="#glo:opt.canadien"><span class="optfmt">canadien</span></a>]{article}
+<code class="cmd">\usepackage</code>[T1]{fontenc}
+<code class="cmd">\usepackage</code>{babel}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre> If the region is important but there’s no <a id="wrglossary.148"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> dialect that represents it, there are several options. The first method is to use the class options recognised by <a id="wrglossary.149"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> and the root language labels when loading <a id="wrglossary.150"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.151"></a><a href="#glo:opt.en-IE"><span class="optfmt">en-IE</span></a>,<a id="wrglossary.152"></a><a href="#glo:opt.ga-IE"><span class="optfmt">ga-IE</span></a>]{article}
+<code class="cmd">\usepackage</code>[english,irish]{babel}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre><p>
+Another method with <a id="wrglossary.153"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> is to use <a id="wrglossary.154"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> and map the new dialect label to the nearest matching <a id="wrglossary.155"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+
+<code class="cmd">\usepackage</code>{tracklang}<span class="comment">% v1.3</span>
+<a id="wrglossary.156"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<a id="wrglossary.157"></a><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span></a>}
+<a id="wrglossary.158"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.159"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>}{<a id="wrglossary.160"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a>}
+
+<code class="cmd">\usepackage</code>[UKenglish]{babel}
+<span class="comment">% load packages that use tracklang for localisation</span>
+</pre> This ensures that the <a id="wrglossary.161"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsUKenglish</code></a> hook is detected by the localisation packages. This mapping isn’t needed for <a id="wrglossary.162"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> as the caption hooks use the root language label. This mapping also isn’t needed if <a id="wrglossary.163"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a> is used instead of <a id="wrglossary.164"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a> since the <a id="wrglossary.165"></a><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span></a> (<a id="wrglossary.166"></a><a href="#glo:opt.maltaenglish"><span class="optfmt">maltaenglish</span></a>) predefined dialect automatically sets up a mapping to <a id="wrglossary.167"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>. (The default mappings are shown in Table <a href="#tab:nonisoopts">1.3</a>.)<p>
+There’s no support for <a id="wrglossary.168"></a><a href="#glo:babelprovide"><code class="csfmt">\babelprovide</code></a>. If you are using <a id="wrglossary.169"></a><a href="#glo:babelprovide"><code class="csfmt">\babelprovide</code></a>, you will need to use the class option or <a id="wrglossary.170"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> as above.<p>
+
+</section><!-- end of section sec:latex -->
+
+<section id="sec:summary-localepkg"><!-- start of section sec:summary-localepkg --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->2.2. Locale-Sensitive Packages<div class="labellink"><a href="#sec:summary-localepkg">[link]</a></div></h2><!-- end of section header -->
+<p>
+Let’s suppose you are developing a package called <span class="filefmt">mypackage.sty</span> or <span class="filefmt">mypackage.tex</span> and you want to find out what languages the document author has requested. (See also: <a href="https://www.dickimaw-books.com/latex/tracklang/otherpkg.shtml">Using <span class="filefmt">tracklang.tex</span> in Packages with Localisation Features</a>.)<p>
+Generic TeX use (the <a id="wrglossary.171"></a><a href="#glo:ext.tex"><span class="extfmt">tex</span></a> extension may be omitted): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.172"></a><a href="#glo:input"><code class="csfmt">\input</code></a> <a id="wrglossary.173"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a>
+</pre> (Most of the commands used in this section require at least <a id="wrglossary.174"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> version 1.3 but 1.4 is better if you want to include the <a id="wrglossary.175"></a><a href="#glo:idx.script">script</a> tag in the <a id="wrglossary.176"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a> files.) Note that <a id="wrglossary.177"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> has a check to determine if it’s already been loaded, so you don’t need to worry about that.<p>
+LaTeX use: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.178"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a>{tracklang}[2019/11/30]<span class="comment">% at least v1.4</span>
+</pre> This will picked up any language options supplied in the document class options and will also detect if <a id="wrglossary.179"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> or <a id="wrglossary.180"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> have been loaded.<p>
+(LaTeX) If you want to allow the user to set the locale in the package options: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.181"></a><a href="#glo:DeclareOption"><code class="csfmt">\DeclareOption</code></a>*{<a id="wrglossary.182"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\CurrentOption</code>}}
+</pre> This means the user can do, say, <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\usepackage</code>[hy-Latn-IT-arevela]{mypackage}
+</pre> With at least version 1.4, it’s better to use <a id="wrglossary.183"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.184"></a><a href="#glo:DeclareOption"><code class="csfmt">\DeclareOption</code></a>*{<span class="comment">% </span>
+ <a id="wrglossary.185"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a>{<code class="cmd">\CurrentOption</code>}<span class="comment">% </span>
+ {<span class="comment">% successful</span>
+ <code class="cmd">\PackageInfo</code>{mypackage}{Tracking language `<code class="cmd">\CurrentOption</code>'}<span class="comment">% </span>
+ }<span class="comment">% </span>
+ {<span class="comment">% failed</span>
+ <code class="cmd">\PackageError</code>{mypackage}<span class="comment">% </span>
+ {Unknown language specification `<code class="cmd">\CurrentOption</code>'}<span class="comment">% </span>
+ {You need to supply either a known dialect label
+ or a valid language tag}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+</pre><p>
+<div class="information"><div class="informationtitle"><a href="#glo:sym.information"><span title="Information" class="icon">🛈</span></a></div><!-- end of informationtitle -->
+The rest of the example package in this section uses generic code. If you are using LaTeX, it’s better to replace <code class="cmd">\def</code> and <code class="cmd">\ifx</code> with more appropriate LaTeX commands. </div><!-- end of information -->
+<p>
+If you want to fetch the locale information from the operating system when the user hasn’t requested a language: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.186"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{}
+{<span class="comment">% fetch locale information from the operating system</span>
+ <code class="cmd">\ifx</code><a id="wrglossary.187"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a><code class="cmd">\undefined</code>
+ <span class="comment">% texosquery v1.2 not available</span>
+ <a id="wrglossary.188"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+ <code class="cmd">\else</code>
+ <span class="comment">% texosquery v1.2 available</span>
+ <a id="wrglossary.189"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a>{<code class="cmd">\langtag</code>}
+ <a id="wrglossary.190"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\langtag</code>}
+ <code class="cmd">\fi</code>
+}
+</pre><p>
+Set up the defaults if necessary: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\def</code><code class="cmd">\fooname</code>{Foo}
+<code class="cmd">\def</code><code class="cmd">\barname</code>{Bar}
+</pre><p>
+Now load the resource files: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.191"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.192"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\thisdialect</code>}{<span class="comment">% </span>
+ <a id="wrglossary.193"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{mypackage}{<code class="cmd">\thisdialect</code>}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{}<span class="comment">% no tracked languages, default already set up</span>
+</pre><p>
+Each resource file has the naming scheme <a id="wrglossary.194"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="filefmt">.ldf</span></a><a id="wrglossary.195"></a>. In this example, the <span class="meta">〈<em class="metainner">prefix</em>〉</span> is <span class="filefmt">mypackage</span>. The <span class="meta">〈<em class="metainner">localeid</em>〉</span> part may be the language or dialect label (for example, <a id="wrglossary.196"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a> or <a id="wrglossary.197"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>) or a combination of the <a id="wrglossary.198"></a><a href="#glo:ISO">ISO</a> language and region codes (for example, <a id="wrglossary.199"></a><a href="#glo:opt.en-GB"><span class="optfmt">en-GB</span></a> or <a id="wrglossary.200"></a><a href="#glo:opt.english"><span class="optfmt">en</span></a> or <span class="optfmt">GB</span>). As from version 1.4, <span class="meta">〈<em class="metainner">localeid</em>〉</span> may also include the <a id="wrglossary.201"></a><a href="#glo:idx.script">script</a> or <a id="wrglossary.202"></a><a href="#glo:idx.variant">variant</a>. (See the definition of <a id="wrglossary.203"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a> <a href="#pg:filesearch">below</a> for further details.)<p>
+The simplest scheme is to use the root language label (not the dialect label) for the base language settings and use the <a id="wrglossary.204"></a><a href="#glo:ISO">ISO</a> codes for regional support.<p>
+For example, the file <a id="wrglossary.205"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-english.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% identify this file:</span>
+<a id="wrglossary.206"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{english}[2016/10/06 v1.0]
+
+<a id="wrglossary.207"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\fooname</code>{Foo}<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\barname</code>{Bar}<span class="comment">% </span>
+}
+</pre> This sets up appropriate the <a id="wrglossary.208"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a> hook (if it’s found). For other hooks, such as <a id="wrglossary.209"></a><a href="#glo:datedialect"><code class="csfmt">\date<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a>, use <a id="wrglossary.210"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a> or <a id="wrglossary.211"></a><a href="#glo:TrackLangRedefHook"><code class="csfmt">\TrackLangRedefHook</code></a> instead.<p>
+With pre-v1.4 versions of <a id="wrglossary.212"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>, the <a id="wrglossary.213"></a><a href="#glo:idx.script">script</a> isn’t included in the file search. If it’s needed then either require at least v1.4 or have a base <a id="wrglossary.214"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a> file that tries to load a version for the particular <a id="wrglossary.215"></a><a href="#glo:idx.script">script</a> (which can be accessed with <a id="wrglossary.216"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>). Here’s an example for a language with different writing systems. The resource file for Serbian <a id="wrglossary.217"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-serbian.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% identify file:</span>
+<a id="wrglossary.218"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{serbian}[2016/10/06 v1.0]
+
+<a id="wrglossary.219"></a><a href="#glo:TrackLangRequestResource"><code class="csfmt">\TrackLangRequestResource</code></a>{serbian-<a id="wrglossary.220"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>}
+{}<span class="comment">% file not found, do something sensible here</span>
+</pre> The file <a id="wrglossary.221"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-serbian-Latn.ldf</span></a> sets up the Latin <a id="wrglossary.222"></a><a href="#glo:idx.script">script</a> (<a id="wrglossary.223"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.224"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{serbian-Latn}[2016/10/06 v1.0]
+
+<a id="wrglossary.225"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\fooname</code>{...}<span class="comment">% provide appropriate Latin translations</span>
+ <code class="cmd">\def</code><code class="cmd">\barname</code>{...}<span class="comment">% </span>
+}
+</pre> The file <a id="wrglossary.226"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-serbian-Cyrl.ldf</span></a> sets up the Cyrillic <a id="wrglossary.227"></a><a href="#glo:idx.script">script</a> (<a id="wrglossary.228"></a><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span></a>): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.229"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{serbian-Cyrl}[2016/10/06 v1.0]
+
+<a id="wrglossary.230"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\fooname</code>{...}<span class="comment">% provide appropriate Cyrillic translations</span>
+ <code class="cmd">\def</code><code class="cmd">\barname</code>{...}<span class="comment">% </span>
+}
+</pre> With v1.4+ you just need <a id="wrglossary.231"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-sr-Latn.ldf</span></a> and <a id="wrglossary.232"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-sr-Cyrl.ldf</span></a> for the regionless versions.<p>
+
+</section><!-- end of section sec:summary-localepkg -->
+
+<section id="sec:summary-langpkg"><!-- start of section sec:summary-langpkg --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->2.3. Language Packages<div class="labellink"><a href="#sec:summary-langpkg">[link]</a></div></h2><!-- end of section header -->
+<p>
+Let’s suppose now you’re the developer of a package that sets up the language, hyphenation patterns and so on. It would be really helpful to the locale-sensitive packages in §<a href="#sec:summary-localepkg">2.2</a> to know what languages the document author has requested. You can use the <a id="wrglossary.233"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package to identify this information by tracking the requested localisation, so that other packages can have a consistent way of querying it. (See also: <a href="https://www.dickimaw-books.com/latex/tracklang/langpkg.shtml">Integrating <span class="filefmt">tracklang.tex</span> into Language Packages</a>.)<p>
+Generic use: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.234"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+</pre> Alternative LaTeX use: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.235"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a>{tracklang}[2019/11/30]<span class="comment">% v1.4</span>
+</pre> Unlike <a id="wrglossary.236"></a><a href="#glo:input"><code class="csfmt">\input</code></a>, <a id="wrglossary.237"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a> will allow <a id="wrglossary.238"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> to pick up the document class options, but using <a id="wrglossary.239"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a> will also trigger the tests for known language packages. (If you want to find out if <a id="wrglossary.240"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> has already been loaded and locales have already been tracked, you can use the same code as in the previous section.)<p>
+When a user requests a particular language through your package, the simplest way of letting <a id="wrglossary.241"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> know about it is to use <a id="wrglossary.242"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a> or <a id="wrglossary.243"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>. For example, if the user requests <a id="wrglossary.244"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>, that’s a predefined dialect so you can just do: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.245"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<a id="wrglossary.246"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>}
+</pre> Alternatively <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.247"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<a id="wrglossary.248"></a><a href="#glo:opt.en-GB"><span class="optfmt">en-GB</span></a>}
+</pre> If your package uses caption hooks, then you can set up a mapping between <a id="wrglossary.249"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>’s internal dialect label and your caption label. For example, let’s suppose the closest match to English used in Malta (<a id="wrglossary.250"></a><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span></a>) is the dialect <a id="wrglossary.251"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a> (for example, the date format is similar between GB and MT): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.252"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<a id="wrglossary.253"></a><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span></a>}
+<a id="wrglossary.254"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.255"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>}{<a id="wrglossary.256"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a>}
+<code class="cmd">\def</code><a id="wrglossary.257"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsUKenglish</code></a>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\contentsname</code>{Contents}<span class="comment">% </span>
+ <span class="comment">% ...</span>
+}
+</pre> (The predefined <a id="wrglossary.258"></a><a href="#glo:opt.maltaenglish"><span class="optfmt">maltaenglish</span></a> option provided by <a id="wrglossary.259"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> automatically sets the mapping to <a id="wrglossary.260"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>, but the above method will change that mapping to <a id="wrglossary.261"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a>.)<p>
+This now means that <a id="wrglossary.262"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a> and <a id="wrglossary.263"></a><a href="#glo:TrackLangRedefHook"><code class="csfmt">\TrackLangRedefHook</code></a> commands can find your language hooks. You don’t need the map if your dialect label is the same as <a id="wrglossary.264"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>’s root language label for that locale. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.265"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<a id="wrglossary.266"></a><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span></a>}
+<code class="cmd">\def</code><a id="wrglossary.267"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsenglish</code></a>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\contentsname</code>{Contents}<span class="comment">% </span>
+ <span class="comment">% ...</span>
+}
+</pre><p>
+When the user switches language through commands like <a id="wrglossary.268"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a> it would be useful to also use <code class="code"><a id="wrglossary.269"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code> to make it easier for the document author or locale-sensitive packages to pick up the current locale. The <span class="meta">〈<em class="metainner">dialect</em>〉</span> argument may be <a id="wrglossary.270"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>’s internal dialect label or the dialect label you assigned with <a id="wrglossary.271"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>. It may also be the root language label, in which case <a id="wrglossary.272"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will search for the last dialect to be tracked with that language. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\def</code><a id="wrglossary.273"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>#1{<span class="comment">% </span>
+ <a id="wrglossary.274"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{#1}<span class="comment">% </span>
+ <span class="comment">% set up hyphenation patterns etc</span>
+}
+</pre> See the example in §<a href="#sec:summary-doc">2.1</a> or the example in <a href="https://www.dickimaw-books.com/latex/tracklang/langpkg.shtml">Integrating <span class="filefmt">tracklang.tex</span> into Language Packages</a>.<p>
+
+</section><!-- end of section sec:summary-langpkg -->
+
+<section id="sec:generic"><!-- start of section sec:generic --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->3. Generic Use<div class="labellink"><a href="#sec:generic">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+For plain TeX you can input <a id="wrglossary.275"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.276"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+</pre> or for TeX formats that have an argument form for <a id="wrglossary.277"></a><a href="#glo:input"><code class="csfmt">\input</code></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.278"></a><a href="#glo:input"><code class="csfmt">\input</code></a>{tracklang}
+</pre> As from version 1.3, you don’t need to change the category code of <a id="wrglossary.279"></a><a href="#glo:idx.atletter"><code class="code">@</code></a> before loading <a id="wrglossary.280"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> as it will automatically be changed to 11 and switched back at the end (if required).<p>
+The LaTeX package <a id="wrglossary.281"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> inputs the generic TeX code in <a id="wrglossary.282"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a>, but before it does so it defines <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.283"></a><code class="code"><dfn id="glo:@tracklang@declareoption"><code class="csfmt">\@tracklang@declareoption</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ to <pre class="compactcodebox"><a id="wrglossary.284"></a><a href="#glo:DeclareOption"><code class="csfmt">\DeclareOption</code></a>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<a id="wrglossary.285"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}}
+</pre> If <a id="wrglossary.286"></a><a href="#glo:@tracklang@declareoption"><code class="csfmt">\@tracklang@declareoption</code></a> isn’t defined when <a id="wrglossary.287"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> is input, it will be defined to ignore its argument.<p>
+This means that all the predefined languages and dialects (Tables <a href="#tab:isoopts">1.1</a>, <a href="#tab:rootlangopts">1.2</a> & <a href="#tab:nonisoopts">1.3</a>) automatically become package options, so the <a id="wrglossary.288"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> package can pick up document class options and add them to <a id="wrglossary.289"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>’s internal list of tracked document languages.<p>
+If you’re not using LaTeX, this option isn’t available although you can redefine <a id="wrglossary.290"></a><a href="#glo:@tracklang@declareoption"><code class="csfmt">\@tracklang@declareoption</code></a> to use something analogous to <a id="wrglossary.291"></a><a href="#glo:DeclareOption"><code class="csfmt">\DeclareOption</code></a>, if appropriate. Otherwise, the document languages need to be explicitly identified (using any of the following commands) so that <a id="wrglossary.292"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> knows about them.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.293"></a><code class="code"><dfn id="glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></dfn>{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This will add the predefined dialect and its associated <a id="wrglossary.294"></a><a href="#glo:ISO">ISO</a> codes to the list of tracked document languages. The <span class="meta">〈<em class="metainner">dialect label</em>〉</span> may be any of those listed in Tables <a href="#tab:isoopts">1.1</a>, <a href="#tab:rootlangopts">1.2</a> & <a href="#tab:nonisoopts">1.3</a>.<p>
+For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.295"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+<a id="wrglossary.296"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<a id="wrglossary.297"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>}
+</pre> is the Plain TeX alternative to: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.298"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{article}
+<code class="cmd">\usepackage</code>{tracklang}
+</pre><p>
+Note that it’s impractical to define every possible language and region combination as it would significantly slow the time taken to load <a id="wrglossary.299"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> so, after version 1.3, I don’t intend adding any new predefined dialects. As from version 1.3, if you want to track a dialect that’s not predefined by <a id="wrglossary.300"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>, then you can use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.301"></a><code class="code"><dfn id="glo:TrackLocale"><code class="csfmt">\TrackLocale</code></dfn>{<span class="meta">〈<em class="metainner">locale</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If <span class="meta">〈<em class="metainner">locale</em>〉</span> is a recognised dialect, this is equivalent to using <a id="wrglossary.302"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>, otherwise <span class="meta">〈<em class="metainner">locale</em>〉</span> needs to be in one the following formats:
+<ul class="displaylist">
+ <li><span class="bulletitem">•</span><span class="meta">〈<em class="metainner"><a id="wrglossary.303"></a><a href="#glo:ISO">ISO</a> lang</em>〉</span> <li><span class="bulletitem">•</span><span class="meta">〈<em class="metainner"><a id="wrglossary.304"></a><a href="#glo:ISO">ISO</a> lang</em>〉</span><a id="wrglossary.305"></a><a href="#glo:idx.atmod"><code class="code">@</code></a><span class="meta">〈<em class="metainner">modifier</em>〉</span> <li><span class="bulletitem">•</span><span class="meta">〈<em class="metainner"><a id="wrglossary.306"></a><a href="#glo:ISO">ISO</a> lang</em>〉</span><a id="wrglossary.307"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a><span class="meta">〈<em class="metainner"><a id="wrglossary.308"></a><a href="#glo:ISO">ISO</a> country</em>〉</span> <li><span class="bulletitem">•</span><span class="meta">〈<em class="metainner"><a id="wrglossary.309"></a><a href="#glo:ISO">ISO</a> lang</em>〉</span><a id="wrglossary.310"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a><span class="meta">〈<em class="metainner"><a id="wrglossary.311"></a><a href="#glo:ISO">ISO</a> country</em>〉</span><a id="wrglossary.312"></a><a href="#glo:idx.atmod"><code class="code">@</code></a><span class="meta">〈<em class="metainner">modifier</em>〉</span>
+</ul>
+ where <span class="meta">〈<em class="metainner"><a id="wrglossary.313"></a><a href="#glo:ISO">ISO</a> lang</em>〉</span> is the <a id="wrglossary.314"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> or <a id="wrglossary.315"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> code identifying the language (lower case), <span class="meta">〈<em class="metainner"><a id="wrglossary.316"></a><a href="#glo:ISO">ISO</a> country</em>〉</span> is the <a id="wrglossary.317"></a><a href="#glo:idx.3166-1"><span class="mbox">3166-1</span></a> <a id="wrglossary.318"></a><a href="#glo:ISO">ISO</a> code identifying the <a id="wrglossary.319"></a><a href="#glo:idx.territory">territory</a> (upper case) and <span class="meta">〈<em class="metainner">modifier</em>〉</span> is the <a id="wrglossary.320"></a><a href="#glo:idx.modifier">modifier</a> or <a id="wrglossary.321"></a><a href="#glo:idx.variant">variant</a>. The hyphen (<a id="wrglossary.322"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>) may be replaced by an underscore character (<a id="wrglossary.323"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a>). <a id="wrglossary.324"></a><a href="#glo:idx.code-set">Code-set</a> information in the form <code class="code"><a id="wrglossary.325"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a><span class="meta">〈<em class="metainner">codeset</em>〉</span></code> may optionally appear before the <a id="wrglossary.326"></a><a href="#glo:idx.modifier">modifier</a>. For example, <code class="code">de<a id="wrglossary.327"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>DE<a id="wrglossary.328"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8<a id="wrglossary.329"></a><a href="#glo:idx.atmod"><code class="code">@</code></a>new</code> (<a id="wrglossary.330"></a><a href="#glo:idx.modifier">modifier</a> is <span class="optfmt">new</span>) or <code class="code">en<a id="wrglossary.331"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>GB<a id="wrglossary.332"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8</code> (<a id="wrglossary.333"></a><a href="#glo:idx.modifier">modifier</a> is missing). The <a id="wrglossary.334"></a><a href="#glo:idx.code-set">code-set</a> will be ignored if present, but it won’t interfere with the parsing.<p>
+For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.335"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>{de<a id="wrglossary.336"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>NA<a id="wrglossary.337"></a><a href="#glo:idx.atmod"><code class="code">@</code></a>new}
+</pre> indicates German in Namibia using the new spelling.<p>
+<div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+If a language has different <a id="wrglossary.338"></a><a href="#glo:idx.639-2T">ISO <span class="mbox">639-2</span> (T)</a> and <a id="wrglossary.339"></a><a href="#glo:idx.639-2B"><span class="mbox">639-2</span> (B)</a> codes, then the <span class="qt">“T”</span> form should be used. (So for the above example, <code class="code">deu</code> may be used instead of <code class="code">de</code>, but <code class="code">ger</code> won’t be recognised.) </div><!-- end of important -->
+<p>
+Alternatively, you can use <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.340"></a><code class="code"><dfn id="glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">tag</em>〉</span> is a regular, well-formed language tag or a recognised dialect label. (Irregular grandfather tags aren’t recognised.) This command will fully expand <span class="meta">〈<em class="metainner">tag</em>〉</span>. A warning is issued if the tag is empty.<p>
+If you want to first check that <span class="meta">〈<em class="metainner">tag</em>〉</span> includes a valid language code, then you can instead use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.341"></a><code class="code"><dfn id="glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">success code</em>〉</span>}{<span class="meta">〈<em class="metainner">fail code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This will only track <span class="meta">〈<em class="metainner">tag</em>〉</span> (and then do <span class="meta">〈<em class="metainner">success code</em>〉</span>) if <span class="meta">〈<em class="metainner">tag</em>〉</span> starts with a valid language code (or is a predefined dialect) otherwise it will do <span class="meta">〈<em class="metainner">fail code</em>〉</span>. Both <a id="wrglossary.342"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> and <a id="wrglossary.343"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a> will check if <span class="meta">〈<em class="metainner">tag</em>〉</span> is a predefined option. (This saves parsing the tag if it’s recognised.)<p>
+For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.344"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{hy-Latn-IT-arevela}
+Latn-ME: <a id="wrglossary.345"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a>{Latn-ME}{success}{fail}.
+brazilian: <a id="wrglossary.346"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a>{brazilian}{success}{fail}.
+</pre> This will track <span class="optfmt">hy-Latn-IT-arevela</span> and <a id="wrglossary.347"></a><a href="#glo:opt.brazilian"><span class="optfmt">brazilian</span></a> (<span class="optfmt">pt-BR</span>) but not <span class="optfmt">Latn-ME</span> (because it doesn’t contain a valid language code) even though it’s a valid <a id="wrglossary.348"></a><a href="#glo:idx.script">script</a> and country code. The above is just for illustrative purposes. Typically the language tracking isn’t performed within the document text.<p>
+The <a id="wrglossary.349"></a><a href="#glo:pkg.datetime2"><span class="styfmt">datetime2</span></a> package assumes that any unknown package option is a language identifier. It could simply do: <pre class="compactcodebox"><a id="wrglossary.350"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\CurrentOption</code>}
+</pre> but users can make mistakes sometimes and this won’t provide any helpful information if they, for example, misspelt a package option or forgot the <span class="qt">“<span class="meta">〈<em class="metainner">key</em>〉</span>=”</span> part of a <span class="meta">〈<em class="metainner">key</em>〉</span>=<span class="meta">〈<em class="metainner">value</em>〉</span> setting. Instead (as from v1.5.5) <a id="wrglossary.351"></a><a href="#glo:pkg.datetime2"><span class="styfmt">datetime2</span></a> now does: <pre class="compactcodebox"><a id="wrglossary.352"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a>{<code class="cmd">\CurrentOption</code>}
+{...}<span class="comment">% known language</span>
+{<code class="cmd">\PackageError</code>{...}{...}{...}}
+</pre> This will now give the user some guidance. <p>
+If <span class="meta">〈<em class="metainner">tag</em>〉</span> contains a sub-language tag, this will be set as the <a id="wrglossary.353"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a> code for the <span style="font-style: italic; font-variant: normal; ">dialect</span> label. Note that this is different to the root language codes which are set using the language label. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.354"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{zh-cmn-Hans-CN}
+</pre> creates a new dialect with the label <code class="code">zhcmnHansCN</code>. The root language <a id="wrglossary.355"></a><a href="#glo:opt.chinese"><span class="optfmt">chinese</span></a> has the <a id="wrglossary.356"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> code <span class="optfmt">zh</span> and the dialect <code class="code">zhcmnHansCN</code> has the <a id="wrglossary.357"></a><a href="#glo:idx.639-3">ISO <span class="mbox">639-3</span></a> code <span class="optfmt">cmn</span>. <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div>ISO 639-1: <a id="wrglossary.358"></a><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a>{639-1}{chinese}.
+ISO 639-3: <a id="wrglossary.359"></a><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a>{639-3}{zhcmnHansCN}.
+</pre><p>
+Version 1.2 of <a id="wrglossary.360"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a> provides the command <a id="wrglossary.361"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a>, which may be used to fetch the operating system’s regional information as a language tag. These commands can be used as follows: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.362"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang <span class="comment">% v1.3</span>
+<a id="wrglossary.363"></a><a href="#glo:input"><code class="csfmt">\input</code></a> texosquery <span class="comment">% v1.2</span>
+
+<a id="wrglossary.364"></a><a href="#glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></a>{<code class="cmd">\langtag</code>}
+<a id="wrglossary.365"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\langtag</code>}
+</pre> (If the <a id="wrglossary.366"></a><a href="#glo:dual.shellescape">shell escape</a> is disabled, <code class="cmd">\langtag</code> will be empty, which will trigger a warning but no errors.)<p>
+Some of the predefined root language options listed in Table <a href="#tab:rootlangopts">1.2</a> have an associated region (denoted by <sup><span title="dagger marker" class="icon">†</span></sup>). If <a id="wrglossary.367"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> is used with just the language <a id="wrglossary.368"></a><a href="#glo:ISO">ISO</a> code, no region is tracked for that language. For example <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.369"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>{<a id="wrglossary.370"></a><a href="#glo:opt.manx"><span class="optfmt">manx</span></a>}
+</pre> will track the <span class="optfmt">IM</span> (Isle of Man) <a id="wrglossary.371"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> code but <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.372"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>{gv}
+</pre> won’t track the region. Similarly for <a id="wrglossary.373"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>.<p>
+(New to version 1.3.) There’s a similar command to <a id="wrglossary.374"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> that doesn’t take an argument: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.375"></a><code class="code"><dfn id="glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></dfn></code></div><!-- end of pinnedbox -->
+ If the <a id="wrglossary.376"></a><a href="#glo:dual.shellescape">shell escape</a> has been enabled or <a id="wrglossary.377"></a><a href="#glo:directlua"><code class="csfmt">\directlua</code></a> is available, this will try to get the language information from the system environment variables <a id="wrglossary.378"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> or <a id="wrglossary.379"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> and, if successful, track that.<p>
+Since <a id="wrglossary.380"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> is neither able to look up the <a id="wrglossary.381"></a><a href="#glo:POSIX">POSIX</a> locale tables nor interpret file locales, if the result is <code class="code">C</code> or <code class="code">POSIX</code> or starts with a forward slash <code class="code">/</code> then the locale value is treated as empty.<p>
+<div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+Not all operating systems use environment variables for the system locale information. For example, Windows stores the locale information in the registry. In which case, consider using <a id="wrglossary.382"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a>. </div><!-- end of important -->
+<p>
+If the operating system locale can’t be obtained from environment variables, then <a id="wrglossary.383"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will use <a id="wrglossary.384"></a><a href="#glo:TeXOSQueryLocale"><code class="csfmt">\TeXOSQueryLocale</code></a> as a fallback if <a id="wrglossary.385"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a> has been loaded. Since <a id="wrglossary.386"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a> requires both the <a id="wrglossary.387"></a><a href="#glo:dual.shellescape">shell escape</a> and the Java runtime environment, <a id="wrglossary.388"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> doesn’t automatically load it.<p>
+Plain TeX example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.389"></a><a href="#glo:input"><code class="csfmt">\input</code></a> texosquery
+<a id="wrglossary.390"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+<a id="wrglossary.391"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre> Document build: <pre class="terminal"><div class="terminaltitle"><a href="#glo:sym.terminal"><span title="Terminal" class="icon">〉_</span></a></div><a id="wrglossary.392"></a><a href="#glo:app.etex"><span class="appfmt">etex</span></a> <a id="wrglossary.393"></a><a href="#glo:switch.shell-escape"><span class="longargfmt">--shell-escape</span></a> <span class="meta">〈<em class="metainner">filename</em>〉</span>
+</pre><p>
+LaTeX example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\usepackage</code>{texosquery}
+<code class="cmd">\usepackage</code>{tracklang}
+<a id="wrglossary.394"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre> Document build: <pre class="terminal"><div class="terminaltitle"><a href="#glo:sym.terminal"><span title="Terminal" class="icon">〉_</span></a></div><a id="wrglossary.395"></a><a href="#glo:app.pdflatex"><span class="appfmt">pdflatex</span></a> <a id="wrglossary.396"></a><a href="#glo:switch.shell-escape"><span class="longargfmt">--shell-escape</span></a> <span class="meta">〈<em class="metainner">filename</em>〉</span>
+</pre><p>
+If the locale can’t be determined, there will be warning messages. These can be suppressed using <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.397"></a><code class="code"><dfn id="glo:TrackLangShowWarningsfalse"><code class="csfmt">\TrackLangShowWarningsfalse</code></dfn></code></div><!-- end of pinnedbox -->
+ or switched back on again using <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.398"></a><code class="code"><dfn id="glo:TrackLangShowWarningstrue"><code class="csfmt">\TrackLangShowWarningstrue</code></dfn></code></div><!-- end of pinnedbox -->
+<p>
+For example, I have the environment variable <a id="wrglossary.399"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> set to <code class="code">en<a id="wrglossary.400"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a>GB<a id="wrglossary.401"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8</code> on my Linux system so instead of <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.402"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<a id="wrglossary.403"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>}
+</pre> I can use <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.404"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre><p>
+With LaTeX documents I can do <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+<code class="cmd">\usepackage</code>{tracklang}
+<a id="wrglossary.405"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre> However, this only helps subsequently loaded packages that use <a id="wrglossary.406"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> to determine the required regional settings. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+<code class="cmd">\usepackage</code>{tracklang}
+<a id="wrglossary.407"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+<code class="cmd">\usepackage</code>[useregional]{datetime2}
+</pre> In my case, with the <a id="wrglossary.408"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> environment variable set to <code class="code">en<a id="wrglossary.409"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a>GB<a id="wrglossary.410"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8</code> and the <a id="wrglossary.411"></a><a href="#glo:dual.shellescape">shell escape</a> enabled, this automatically switches on the <a id="wrglossary.412"></a><a href="#glo:opt.en-GB"><span class="optfmt">en-GB</span></a> date style. Naturally this doesn’t help locale-sensitive packages that don’t use <a id="wrglossary.413"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>.<p>
+The <a id="wrglossary.414"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> command also incidentally sets <a id="wrglossary.415"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> to the value of the environment variable or empty if the query was unsuccessful (for example, the <a id="wrglossary.416"></a><a href="#glo:dual.shellescape">shell escape</a> is unavailable).<p>
+If the command: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.417"></a><code class="code"><dfn id="glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></dfn></code><p>
+<div class="noteBox">user defined</div><!-- end of noteBox -->
+</div><!-- end of pinnedbox -->
+ is already defined before <a id="wrglossary.418"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> is used, then the environment variable won’t be queried and the value of <a id="wrglossary.419"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> will be parsed instead.<p>
+<div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+The parser which splits the locale string into its component parts first tries splitting on the underscore <a id="wrglossary.420"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a> with its usual category code 8, then tries splitting on a hyphen <a id="wrglossary.421"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a> with category code 12, and then tries splitting on the underscore <a id="wrglossary.422"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a> with category code 12. </div><!-- end of important -->
+<p>
+For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\def</code><a id="wrglossary.423"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>{en-GB}
+<a id="wrglossary.424"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre> This doesn’t perform a <a id="wrglossary.425"></a><a href="#glo:dual.shellescape">shell escape</a> since <a id="wrglossary.426"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> is already defined. In this case, you may just as well use: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.427"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>{en-GB}
+</pre> (unless you happen to additionally require the component commands that are set by <a id="wrglossary.428"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>, see below.)<p>
+If the <a id="wrglossary.429"></a><a href="#glo:dual.shellescape">shell escape</a> is unavailable (for example, your TeX installation prohibits it), you can set this value when you invoke TeX. For example, if the document file is called <span class="filefmt">myDoc.tex</span> (and it’s in Plain TeX): <pre class="terminal"><div class="terminaltitle"><a href="#glo:sym.terminal"><span title="Terminal" class="icon">〉_</span></a></div><a id="wrglossary.430"></a><a href="#glo:app.tex"><span class="appfmt">tex</span></a> "<a id="wrglossary.431"></a><a href="#glo:idx.escbsl"><code class="code">\\</code></a>def<a id="wrglossary.432"></a><a href="#glo:idx.escbsl"><code class="code">\\</code></a><a id="wrglossary.433"></a><a href="#glo:TrackLangEnv"><span class="csfmtfont">TrackLangEnv</span></a>{<a id="wrglossary.434"></a><a href="#glo:idx.dollarenv"><code class="code">$</code></a><a id="wrglossary.435"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a>}<a id="wrglossary.436"></a><a href="#glo:idx.escbsl"><code class="code">\\</code></a><a id="wrglossary.437"></a><a href="#glo:input"><span class="csfmtfont">input</span></a> myDoc"
+</pre><p>
+The <a id="wrglossary.438"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> command also happens to store the component parts of the environment variable value in the following commands. (These aren’t provided by <a id="wrglossary.439"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>.) If the information is unavailable, the relevant commands will be set to empty.<p>
+The language code is stored in: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.440"></a><code class="code"><dfn id="glo:TrackLangEnvLang"><code class="csfmt">\TrackLangEnvLang</code></dfn></code></div><!-- end of pinnedbox -->
+<p>
+The <a id="wrglossary.441"></a><a href="#glo:idx.territory">territory</a> (if present) is stored in: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.442"></a><code class="code"><dfn id="glo:TrackLangEnvTerritory"><code class="csfmt">\TrackLangEnvTerritory</code></dfn></code></div><!-- end of pinnedbox -->
+<p>
+The <a id="wrglossary.443"></a><a href="#glo:idx.code-set">code-set</a> (if present) is stored in: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.444"></a><code class="code"><dfn id="glo:TrackLangEnvCodeSet"><code class="csfmt">\TrackLangEnvCodeSet</code></dfn></code></div><!-- end of pinnedbox -->
+<p>
+The <a id="wrglossary.445"></a><a href="#glo:idx.modifier">modifier</a> (if present) is stored in: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.446"></a><code class="code"><dfn id="glo:TrackLangEnvModifier"><code class="csfmt">\TrackLangEnvModifier</code></dfn></code></div><!-- end of pinnedbox -->
+<p>
+If you want to query the language environment, but don’t want to track the result, you can just use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.447"></a><code class="code"><dfn id="glo:TrackLangQueryEnv"><code class="csfmt">\TrackLangQueryEnv</code></dfn></code></div><!-- end of pinnedbox -->
+ This only tries to fetch the value of the language environment variable (and use <a id="wrglossary.448"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a> as a fallback, if it has been loaded). It doesn’t try to parse the result. The result is stored in <a id="wrglossary.449"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> (empty if unsuccessful). Unlike <a id="wrglossary.450"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>, this doesn’t check if <a id="wrglossary.451"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> already exists. A warning will occur if the shell escape is unavailable. For systems that store the locale information in environment variables, this is more efficient than using <a id="wrglossary.452"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a>’s <a id="wrglossary.453"></a><a href="#glo:TeXOSQueryLocale"><code class="csfmt">\TeXOSQueryLocale</code></a> command (which is what’s used as the fallback).<p>
+The above queries <a id="wrglossary.454"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> and, if that is unsuccessful, then queries <a id="wrglossary.455"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> (before optionally falling back on <a id="wrglossary.456"></a><a href="#glo:pkg.texosquery"><span class="styfmt">texosquery</span></a>). If you want another environment variable tried after <a id="wrglossary.457"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> and before <a id="wrglossary.458"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a>, you can instead use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.459"></a><code class="code"><dfn id="glo:TrackLangQueryOtherEnv"><code class="csfmt">\TrackLangQueryOtherEnv</code></dfn>{<span class="meta">〈<em class="metainner">env-name</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ For example, to also query <a id="wrglossary.460"></a><a href="#glo:opt.envvar.LCMONETARY"><code class="envvarfmt">LC_MONETARY</code></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.461"></a><a href="#glo:TrackLangQueryOtherEnv"><code class="csfmt">\TrackLangQueryOtherEnv</code></a>{<a id="wrglossary.462"></a><a href="#glo:opt.envvar.LCMONETARY"><code class="envvarfmt">LC_MONETARY</code></a>}
+</pre><p>
+Since this sets <a id="wrglossary.463"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>, you can use it before <a id="wrglossary.464"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.465"></a><a href="#glo:TrackLangQueryOtherEnv"><code class="csfmt">\TrackLangQueryOtherEnv</code></a>{<a id="wrglossary.466"></a><a href="#glo:opt.envvar.LCMONETARY"><code class="envvarfmt">LC_MONETARY</code></a>}
+<a id="wrglossary.467"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre> Remember that if you only want to do the <a id="wrglossary.468"></a><a href="#glo:dual.shellescape">shell escape</a> if <a id="wrglossary.469"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> hasn’t already been defined, you can test for this first: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\ifx</code><a id="wrglossary.470"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a><code class="cmd">\undefined</code>
+ <a id="wrglossary.471"></a><a href="#glo:TrackLangQueryOtherEnv"><code class="csfmt">\TrackLangQueryOtherEnv</code></a>{<a id="wrglossary.472"></a><a href="#glo:opt.envvar.LCMONETARY"><code class="envvarfmt">LC_MONETARY</code></a>}
+<code class="cmd">\fi</code>
+<a id="wrglossary.473"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+</pre><p>
+It’s also possible to just parse the value of <a id="wrglossary.474"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> without tracking the result using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.475"></a><code class="code"><dfn id="glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></dfn></code></div><!-- end of pinnedbox -->
+ This is like <a id="wrglossary.476"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> but assumes that <a id="wrglossary.477"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> has already been set and doesn’t track the result. The component parts are stored as for <a id="wrglossary.478"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>.<p>
+Example (Plain TeX): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.479"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+
+<code class="cmd">\def</code><a id="wrglossary.480"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>{fr<a id="wrglossary.481"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>BE<a id="wrglossary.482"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8<a id="wrglossary.483"></a><a href="#glo:idx.atmod"><code class="code">@</code></a>euro}
+
+<a id="wrglossary.484"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a>
+
+Language: <a id="wrglossary.485"></a><a href="#glo:TrackLangEnvLang"><code class="csfmt">\TrackLangEnvLang</code></a>.
+Territory: <a id="wrglossary.486"></a><a href="#glo:TrackLangEnvTerritory"><code class="csfmt">\TrackLangEnvTerritory</code></a>.
+Codeset: <a id="wrglossary.487"></a><a href="#glo:TrackLangEnvCodeSet"><code class="csfmt">\TrackLangEnvCodeSet</code></a>.
+Modifier: <a id="wrglossary.488"></a><a href="#glo:TrackLangEnvModifier"><code class="csfmt">\TrackLangEnvModifier</code></a>.
+Any tracked languages? <a id="wrglossary.489"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>{Yes}{No}.
+</pre> This produces: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Language: fr. Territory: BE. Codeset: utf8. Modifier: euro. Any tracked languages? No. </div><!-- end of resultbox -->
+<p>
+Compare this with: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.490"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+
+<code class="cmd">\def</code><a id="wrglossary.491"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>{fr<a id="wrglossary.492"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>BE<a id="wrglossary.493"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8<a id="wrglossary.494"></a><a href="#glo:idx.atmod"><code class="code">@</code></a>euro}
+
+<a id="wrglossary.495"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+
+Language: <a id="wrglossary.496"></a><a href="#glo:TrackLangEnvLang"><code class="csfmt">\TrackLangEnvLang</code></a>.
+Territory: <a id="wrglossary.497"></a><a href="#glo:TrackLangEnvTerritory"><code class="csfmt">\TrackLangEnvTerritory</code></a>.
+Codeset: <a id="wrglossary.498"></a><a href="#glo:TrackLangEnvCodeSet"><code class="csfmt">\TrackLangEnvCodeSet</code></a>.
+Modifier: <a id="wrglossary.499"></a><a href="#glo:TrackLangEnvModifier"><code class="csfmt">\TrackLangEnvModifier</code></a>.
+Any tracked languages? <a id="wrglossary.500"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>{Yes}{No}.
+Tracked dialect(s):<span class="comment">% </span>
+<a id="wrglossary.501"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\thisdialect</code>}{<code class="cmd">\space</code><code class="cmd">\thisdialect</code>}.
+</pre> This produces:<p>
+<div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Language: fr. Territory: BE. Codeset: utf8. Modifier: euro. Any tracked languages? Yes. Tracked dialect(s): belgique. </div><!-- end of resultbox -->
+<p>
+If <a id="wrglossary.502"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> doesn’t recognise the given language and territory combination, it will define a new dialect and add that.<p>
+For example, <a id="wrglossary.503"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> doesn’t recognise <code class="code">en-BE</code>, so the sample document below defines a new dialect labelled <code class="code">enBEeuro</code>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.504"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+
+<code class="cmd">\def</code><a id="wrglossary.505"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>{en<a id="wrglossary.506"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>BE<a id="wrglossary.507"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a>utf8<a id="wrglossary.508"></a><a href="#glo:idx.atmod"><code class="code">@</code></a>euro}
+
+<a id="wrglossary.509"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+
+Language: <a id="wrglossary.510"></a><a href="#glo:TrackLangEnvLang"><code class="csfmt">\TrackLangEnvLang</code></a>.
+Territory: <a id="wrglossary.511"></a><a href="#glo:TrackLangEnvTerritory"><code class="csfmt">\TrackLangEnvTerritory</code></a>.
+Codeset: <a id="wrglossary.512"></a><a href="#glo:TrackLangEnvCodeSet"><code class="csfmt">\TrackLangEnvCodeSet</code></a>.
+Modifier: <a id="wrglossary.513"></a><a href="#glo:TrackLangEnvModifier"><code class="csfmt">\TrackLangEnvModifier</code></a>.
+Any tracked languages? <a id="wrglossary.514"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>{Yes}{No}.
+Tracked dialect(s):<span class="comment">% </span>
+<a id="wrglossary.515"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\thisdialect</code>}{<code class="cmd">\space</code><code class="cmd">\thisdialect</code>}.
+</pre> This now produces: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Language: en. Territory: BE. Codeset: utf8. Modifier: euro. Any tracked languages? Yes. Tracked dialect(s): enBEeuro. </div><!-- end of resultbox -->
+<p>
+
+</section><!-- end of section sec:generic -->
+
+<section id="sec:supplpkgs"><!-- start of section sec:supplpkgs --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->4. Supplementary Packages<div class="labellink"><a href="#sec:supplpkgs">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+In addition to the main <a id="wrglossary.516"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> file and <a id="wrglossary.517"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> LaTeX wrapper, the <a id="wrglossary.518"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package also provides supplementary files for region and script mappings.<p>
+<div class="filedef"><a id="wrglossary.519"></a><dfn id="glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></dfn></div><!-- end of filedef -->
+ This file is only loaded if a mapping is required between numeric and alphabetic <a id="wrglossary.520"></a><a href="#glo:idx.territory">region</a> codes. If <a id="wrglossary.521"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> encounters a numeric <a id="wrglossary.522"></a><a href="#glo:idx.territory">region</a> code, it will automatically input <a id="wrglossary.523"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a>, if it hasn’t already been input. This file provides the following commands.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.524"></a><code class="code"><dfn id="glo:TrackLangAlphaIIToNumericRegion"><code class="csfmt">\TrackLangAlphaIIToNumericRegion</code></dfn>{<span class="meta">〈<em class="metainner">alpha-2 code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the numeric code corresponding to the given alpha-2 code or empty if no mapping has been supplied.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.525"></a><code class="code"><dfn id="glo:TrackLangNumericToAlphaIIRegion"><code class="csfmt">\TrackLangNumericToAlphaIIRegion</code></dfn>{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the alpha-2 code corresponding to the given numeric code or empty if no mapping has been supplied.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.526"></a><code class="code"><dfn id="glo:TrackLangIfKnownAlphaIIRegion"><code class="csfmt">\TrackLangIfKnownAlphaIIRegion</code></dfn>{<span class="meta">〈<em class="metainner">alpha-2 code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s an alpha-2 to numeric <a id="wrglossary.527"></a><a href="#glo:idx.territory">region</a> code mapping, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.528"></a><code class="code"><dfn id="glo:TrackLangIfKnownNumericRegion"><code class="csfmt">\TrackLangIfKnownNumericRegion</code></dfn>{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a numeric to alpha-2 <a id="wrglossary.529"></a><a href="#glo:idx.territory">region</a> code mapping, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.530"></a><code class="code"><dfn id="glo:TrackLangAlphaIIIToNumericRegion"><code class="csfmt">\TrackLangAlphaIIIToNumericRegion</code></dfn>{<span class="meta">〈<em class="metainner">alpha-3 code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the numeric code corresponding to the given alpha-3 code or empty if no mapping has been supplied.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.531"></a><code class="code"><dfn id="glo:TrackLangNumericToAlphaIIIRegion"><code class="csfmt">\TrackLangNumericToAlphaIIIRegion</code></dfn>{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the alpha-3 code corresponding to the given numeric code or empty if no mapping has been supplied.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.532"></a><code class="code"><dfn id="glo:TrackLangIfKnownAlphaIIIRegion"><code class="csfmt">\TrackLangIfKnownAlphaIIIRegion</code></dfn>{<span class="meta">〈<em class="metainner">alpha-3 code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s an alpha-3 to numeric <a id="wrglossary.533"></a><a href="#glo:idx.territory">region</a> code mapping, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+Mappings are established with: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.534"></a><code class="code"><dfn id="glo:TrackLangRegionMap"><code class="csfmt">\TrackLangRegionMap</code></dfn>{<span class="meta">〈<em class="metainner">numeric</em>〉</span>}{<span class="meta">〈<em class="metainner">alpha-2</em>〉</span>}{<span class="meta">〈<em class="metainner">alpha-3</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Predefined mappings are listed in Table <a href="#tab:regionmappings">A.1</a>.<p>
+When <a id="wrglossary.535"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> is input, it can load additional files that provide supplementary mappings.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.536"></a><code class="code"><dfn id="glo:TrackLangAddExtraRegionFile"><code class="csfmt">\TrackLangAddExtraRegionFile</code></dfn>{<span class="meta">〈<em class="metainner">file</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This command adds the supplied <span class="meta">〈<em class="metainner">file</em>〉</span> to the list of extra region code files that should be input by <a id="wrglossary.537"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a>, unless <a id="wrglossary.538"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> has already been input, in which case <span class="meta">〈<em class="metainner">file</em>〉</span> will be input straight away.<p>
+<div class="filedef"><a id="wrglossary.539"></a><dfn id="glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></dfn></div><!-- end of filedef -->
+ The <a id="wrglossary.540"></a><a href="#glo:pkg.tracklang-scripts"><span class="styfmt">tracklang-scripts</span></a> package provides information about <a id="wrglossary.541"></a><a href="#glo:idx.15924">ISO 15924</a> scripts. The file isn’t automatically loaded. If you want to use any of the commands provided in it you need to input it.<p>
+Plain TeX: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.542"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang-scripts
+</pre> There’s a simple wrapper package <a id="wrglossary.543"></a><a href="#glo:pkg.tracklang-scripts"><span class="filefmt">tracklang-scripts.sty</span></a> for LaTeX users: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\usepackage</code>{tracklang-scripts}
+</pre><p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.544"></a><code class="code"><dfn id="glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></dfn>{<span class="meta">〈<em class="metainner">letter code</em>〉</span>}{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">script name</em>〉</span>}{<span class="meta">〈<em class="metainner">direction</em>〉</span>}{<span class="meta">〈<em class="metainner">parent script</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Defines a mapping. The first argument is the four letter alpha code, such as <a id="wrglossary.545"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a> or <a id="wrglossary.546"></a><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span></a>. The second argument is the numeric code. The third argument is the script’s name, for example <span class="qt">“Imperial Aramaic”</span>. The fourth argument is the direction, which may be one of: <span class="optfmt">LR</span> (left-to-right), <span class="optfmt">RL</span> (right-to-left), <span class="optfmt">TB</span> (top-to-bottom), <span class="optfmt">varies</span> or <span class="optfmt">inherited</span>. The <span class="meta">〈<em class="metainner">parent</em>〉</span> argument is for the parent writing system, which may be left blank (currently unsupported).<p>
+This command defines: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.547"></a><code class="code"><dfn id="glo:TrackLangScriptCode"><code class="csfmt">\TrackLangScript<span class="meta">〈<em class="metainner">Code</em>〉</span></code></dfn></code></div><!-- end of pinnedbox -->
+ which expands to <span class="meta">〈<em class="metainner">Code</em>〉</span> for use with <a id="wrglossary.548"></a><a href="#glo:IfTrackedDialectIsScriptCs"><code class="csfmt">\IfTrackedDialectIsScriptCs</code></a>.<p>
+See Table <a href="#tab:scriptmappings">A.2</a> for a summary of all the mappings that are provided by the file <a id="wrglossary.549"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a>.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.550"></a><code class="code"><dfn id="glo:TrackLangScriptAlphaToNumeric"><code class="csfmt">\TrackLangScriptAlphaToNumeric</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the numeric code corresponding to the given alpha code or empty if no mapping.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.551"></a><code class="code"><dfn id="glo:TrackLangScriptIfKnownAlpha"><code class="csfmt">\TrackLangScriptIfKnownAlpha</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there is a known alpha to numeric mapping or <span class="meta">〈<em class="metainner">false</em>〉</span> otherwise.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.552"></a><code class="code"><dfn id="glo:TrackLangScriptNumericToAlpha"><code class="csfmt">\TrackLangScriptNumericToAlpha</code></dfn>{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the alpha code corresponding to the given numeric code or empty if no mapping.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.553"></a><code class="code"><dfn id="glo:TrackLangScriptIfKnownNumeric"><code class="csfmt">\TrackLangScriptIfKnownNumeric</code></dfn>{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there is a known numeric to alpha mapping or <span class="meta">〈<em class="metainner">false</em>〉</span> otherwise.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.554"></a><code class="code"><dfn id="glo:TrackLangScriptAlphaToName"><code class="csfmt">\TrackLangScriptAlphaToName</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the name corresponding to the given alpha code or empty if no mapping.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.555"></a><code class="code"><dfn id="glo:TrackLangScriptAlphaToDir"><code class="csfmt">\TrackLangScriptAlphaToDir</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the direction corresponding to the given alpha code or empty if no mapping.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.556"></a><code class="code"><dfn id="glo:TrackLangScriptSetParent"><code class="csfmt">\TrackLangScriptSetParent</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">parent alpha code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Sets the parent for the given alpha code.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.557"></a><code class="code"><dfn id="glo:TrackLangScriptGetParent"><code class="csfmt">\TrackLangScriptGetParent</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to the parent for the given alpha code or empty if no mapping.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.558"></a><code class="code"><dfn id="glo:TrackLangScriptIfHasParent"><code class="csfmt">\TrackLangScriptIfHasParent</code></dfn>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if the given alpha code has a parent or to <span class="meta">〈<em class="metainner">false</em>〉</span> otherwise. Note that if a parent is explicitly set to empty with <a id="wrglossary.559"></a><a href="#glo:TrackLangScriptSetParent"><code class="csfmt">\TrackLangScriptSetParent</code></a> then it will be considered defined, but if the <span class="meta">〈<em class="metainner">parent</em>〉</span> argument was empty in <a id="wrglossary.560"></a><a href="#glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></a>, then it will be undefined.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.561"></a><code class="code"><dfn id="glo:TrackLangAddExtraScriptFile"><code class="csfmt">\TrackLangAddExtraScriptFile</code></dfn>{<span class="meta">〈<em class="metainner">file</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This command adds <span class="meta">〈<em class="metainner">file</em>〉</span> to the list of extra script files that should be input by <a id="wrglossary.562"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a>, unless <a id="wrglossary.563"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> has already been input, in which case <span class="meta">〈<em class="metainner">file</em>〉</span> will be input straight away.<p>
+
+</section><!-- end of section sec:supplpkgs -->
+
+<section id="sec:user"><!-- start of section sec:user --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->5. Detecting the User’s Requested Languages<div class="labellink"><a href="#sec:user">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+The <a id="wrglossary.564"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package tries to track the loaded languages and the option names used to identify those languages. For want of a better term, the language option names are referred to as dialects even if they’re only a synonym for the language rather than an actual dialect. For example, if the user has requested <a id="wrglossary.565"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>, the <span style="font-style: italic; font-variant: normal; ">root language</span> label is <a id="wrglossary.566"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a> and the dialect is <a id="wrglossary.567"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>, whereas if the user requested <a id="wrglossary.568"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a>, the root language label is <a id="wrglossary.569"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a> and the dialect is <a id="wrglossary.570"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a>. The exceptions to this are the <a id="wrglossary.571"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package options that have been specified in the form <span class="meta">〈<em class="metainner">iso lang</em>〉</span>-<span class="meta">〈<em class="metainner">iso country</em>〉</span> (listed in Table <a href="#tab:rootlangopts">1.2</a>). For example, the package option <a id="wrglossary.572"></a><a href="#glo:opt.british"><span class="optfmt">en-GB</span></a> behaves as though the user requested the package option <a id="wrglossary.573"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>.<p>
+If <a id="wrglossary.574"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> or <a id="wrglossary.575"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> are used and the locale isn’t recognised a new dialect is created with the label formed from the <a id="wrglossary.576"></a><a href="#glo:ISO">ISO</a> codes (and <a id="wrglossary.577"></a><a href="#glo:idx.modifier">modifier</a>, if present). Similarly for <a id="wrglossary.578"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> a new dialect is created with a label that’s essentially the language tag without the hyphen separators. For example, <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.579"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>{xx<a id="wrglossary.580"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>YY}
+</pre> will add a new dialect with the label <code class="code">xxYY</code>, <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.581"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>{xx<a id="wrglossary.582"></a><a href="#glo:idx.hyphensep"><code class="code">-</code></a>YY<a id="wrglossary.583"></a><a href="#glo:idx.atmod"><code class="code">@</code></a>mod}
+</pre> will add a new dialect with the label <code class="code">xxYYmod</code> and <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.584"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{xx-Latn-YY}
+</pre> will add a new dialect with the label <code class="code">xxLatnYY</code>.<p>
+<div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+If <a id="wrglossary.585"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> or <a id="wrglossary.586"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> find a <a id="wrglossary.587"></a><a href="#glo:idx.modifier">modifier</a>, the value will be sanitized to allow it to be used as a label. If the modifier is set explicitly using <a id="wrglossary.588"></a><a href="#glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></a>, no sanitization is performed. </div><!-- end of important -->
+<p>
+In addition to the root language label and the dialect identifier, many of the language options also have corresponding <a id="wrglossary.589"></a><a href="#glo:ISO">ISO</a> codes. In most cases there is an <a id="wrglossary.590"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> or an <a id="wrglossary.591"></a><a href="#glo:idx.639-2">ISO <span class="mbox">639-2</span></a> code (or both), and in some cases there is an <a id="wrglossary.592"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> code identifying the dialect <a id="wrglossary.593"></a><a href="#glo:idx.territory">region</a>. Where a language has different <a id="wrglossary.594"></a><a href="#glo:idx.639-2T">ISO <span class="mbox">639-2</span> (T)</a> and <a id="wrglossary.595"></a><a href="#glo:idx.639-2B"><span class="mbox">639-2</span> (B)</a> codes, the <span class="qt">“T”</span> version is assumed.<p>
+When the <a id="wrglossary.596"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> LaTeX package is loaded, it first attempts to find the language options through the package options supplied to <a id="wrglossary.597"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>. This means that any languages that have been supplied in the document class options should get identified (provided that the document class has used the standard option declaration mechanism). If no languages have been supplied in this way, <a id="wrglossary.598"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> then attempts to identify language settings in the following order:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span>if <a id="wrglossary.599"></a><a href="#glo:bbl@loaded"><code class="csfmt">\bbl@loaded</code></a> is defined (<a id="wrglossary.600"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a>), <a id="wrglossary.601"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will iterate over each label in that command definition;<p>
+<li><span class="numitem">2.</span>if <a id="wrglossary.602"></a><a href="#glo:trans@languages"><code class="csfmt">\trans@languages</code></a> is defined (<a id="wrglossary.603"></a><a href="#glo:pkg.translator"><span class="styfmt">translator</span></a>), <a id="wrglossary.604"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will iterate over each label in that command definition;<p>
+<li><span class="numitem">3.</span>if <a id="wrglossary.605"></a><a href="#glo:pkg.ngerman"><span class="styfmt">ngerman</span></a> has been loaded, the <a id="wrglossary.606"></a><a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a> dialect will be tracked;<p>
+<li><span class="numitem">4.</span>if <a id="wrglossary.607"></a><a href="#glo:pkg.german"><span class="styfmt">german</span></a> has been loaded, the <a id="wrglossary.608"></a><a href="#glo:opt.german"><span class="optfmt">german</span></a> root language will be tracked;<p>
+<li><span class="numitem">5.</span>if <a id="wrglossary.609"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> has been loaded:<p>
+
+<ol class="displaylist">
+ <li><span class="numitem">(a)</span>if <a id="wrglossary.610"></a><a href="#glo:xpg@bcp@loaded"><code class="csfmt">\xpg@bcp@loaded</code></a> has been defined, <a id="wrglossary.611"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will iterate over the <a id="wrglossary.612"></a><a href="#glo:idx.BCP47">BCP 47</a> tags in that command definition;<p>
+<li><span class="numitem">(b)</span>if <a id="wrglossary.613"></a><a href="#glo:xpg@loaded"><code class="csfmt">\xpg@loaded</code></a> has been defined, <a id="wrglossary.614"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will iterate over each language label in that command definition;<p>
+<li><span class="numitem">(c)</span><a id="wrglossary.615"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> will iterate over all <a id="wrglossary.616"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> options and test if the root language has been loaded.
+</ol>
+<p>
+
+</ol>
+ Note that this references internal commands provided by other packages. Of these, only the <a id="wrglossary.617"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> commands are documented in the package manual, and so are the only ones that can be relied on.<p>
+Each identified language and dialect is added to the <span style="font-style: italic; font-variant: normal; ">tracked language</span> and <span style="font-style: italic; font-variant: normal; ">tracked dialect</span> lists. Note that the tracked language and tracked dialect are labels rather than proper nouns. If a dialect label is identical to its root language label, the label will appear in both lists.<p>
+You can check whether or not any languages have been detected using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.618"></a><code class="code"><dfn id="glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></dfn>{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This will do <span class="meta">〈<em class="metainner">true</em>〉</span> if one or more languages have been tracked otherwise it will do <span class="meta">〈<em class="metainner">false</em>〉</span>. (Each detected dialect will automatically have the root language label added to the tracked language list, if it’s not already present.)<p>
+If you want to find out if any of the tracked dialects matches a particular language tag, you can use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.619"></a><code class="code"><dfn id="glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">cs</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If successful, the supplied control sequence <span class="meta">〈<em class="metainner">cs</em>〉</span> is set to the dialect label, otherwise <span class="meta">〈<em class="metainner">cs</em>〉</span> is set to empty. The test is for an exact match on the root language, <a id="wrglossary.620"></a><a href="#glo:idx.script">script</a>, sub-language, <a id="wrglossary.621"></a><a href="#glo:idx.variant">variant</a> and <a id="wrglossary.622"></a><a href="#glo:idx.territory">region</a>. The control sequence <span class="meta">〈<em class="metainner">cs</em>〉</span> will be empty if none of the tracked dialects matches all five of those elements. (If the script isn’t given explicitly, the default for that language is assumed.) In the event that <span class="meta">〈<em class="metainner">cs</em>〉</span> is empty, you can now (as from v1.3.6) get the closest match with: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.623"></a><code class="code"><dfn id="glo:TrackedDialectClosestSubMatch"><code class="csfmt">\TrackedDialectClosestSubMatch</code></dfn></code></div><!-- end of pinnedbox -->
+ (which is set by <a id="wrglossary.624"></a><a href="#glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></a>). This will be empty if no tracked dialects match on the root language or if there’s a tracked dialect label that exactly matches the label formed by concatenating the language code, sub-language, <a id="wrglossary.625"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.626"></a><a href="#glo:idx.territory">region</a>, <a id="wrglossary.627"></a><a href="#glo:idx.modifier">modifier</a> and <a id="wrglossary.628"></a><a href="#glo:idx.variant">variant</a>.<p>
+For example (Plain TeX): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.629"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+<a id="wrglossary.630"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{en-826}
+Has en-Latn-GB been tracked?
+<a id="wrglossary.631"></a><a href="#glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></a>{en-Latn-GB}{<code class="cmd">\thisdialect</code>}<span class="comment">% </span>
+<code class="cmd">\ifx</code><code class="cmd">\thisdialect</code><code class="cmd">\empty</code>
+ No!
+<code class="cmd">\else</code>
+ Yes! Dialect label: <code class="cmd">\thisdialect</code>.
+<code class="cmd">\fi</code>
+<code class="cmd">\bye</code>
+</pre> This matches because the <a id="wrglossary.632"></a><a href="#glo:idx.territory">territory</a> code <a id="wrglossary.633"></a><a href="#glo:opt.GB">826</a> is recognised as equivalent to the code <a id="wrglossary.634"></a><a href="#glo:opt.GB"><span class="optfmt">GB</span></a>, and the default <a id="wrglossary.635"></a><a href="#glo:idx.script">script</a> for <a id="wrglossary.636"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a> is <a id="wrglossary.637"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>. In this case, the dialect label is <a id="wrglossary.638"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>. Note that this doesn’t require the use of <a id="wrglossary.639"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> to track the dialect. It also works if the dialect has been tracked using other commands, such as <a id="wrglossary.640"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>.<p>
+Here’s an example that doesn’t have an exact match, but does have a partial match: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.641"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+<a id="wrglossary.642"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{de-CH-1996}
+Has de-DE-1996 been tracked?
+<a id="wrglossary.643"></a><a href="#glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></a>{de-DE-1996}{<code class="cmd">\thisdialect</code>}<span class="comment">% </span>
+<code class="cmd">\ifx</code><code class="cmd">\thisdialect</code><code class="cmd">\empty</code>
+ No!
+ <code class="cmd">\ifx</code><a id="wrglossary.644"></a><a href="#glo:TrackedDialectClosestSubMatch"><code class="csfmt">\TrackedDialectClosestSubMatch</code></a><code class="cmd">\empty</code>
+ No match on root language.
+ <code class="cmd">\else</code>
+ Closest match: <a id="wrglossary.645"></a><a href="#glo:TrackedDialectClosestSubMatch"><code class="csfmt">\TrackedDialectClosestSubMatch</code></a>.
+ <code class="cmd">\fi</code>
+<code class="cmd">\else</code>
+ Yes! Dialect label: <code class="cmd">\thisdialect</code>.
+<code class="cmd">\fi</code>
+<code class="cmd">\bye</code>
+</pre> In this case the result is: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Has de-DE-1996 been tracked? No! Closest match: nswissgerman. </div><!-- end of resultbox -->
+<p>
+You can iterate through each tracked dialect using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.646"></a><code class="code"><dfn id="glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></dfn>{<span class="meta">〈<em class="metainner">cs</em>〉</span>}{<span class="meta">〈<em class="metainner">body</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ At the start of each iteration, this sets the control sequence <span class="meta">〈<em class="metainner">cs</em>〉</span> to the tracked dialect and does <span class="meta">〈<em class="metainner">body</em>〉</span>.<p>
+You can iterate through each tracked language using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.647"></a><code class="code"><dfn id="glo:ForEachTrackedLanguage"><code class="csfmt">\ForEachTrackedLanguage</code></dfn>{<span class="meta">〈<em class="metainner">cs</em>〉</span>}{<span class="meta">〈<em class="metainner">body</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ At the start of each iteration, this sets the control sequence <span class="meta">〈<em class="metainner">cs</em>〉</span> to the tracked language and does <span class="meta">〈<em class="metainner">body</em>〉</span>.<p>
+The above for-loops use the same internal mechanism as LaTeX’s <a id="wrglossary.648"></a><a href="#glo:@for"><code class="csfmt">\@for</code></a> loop. Since this isn’t defined by TeX, a similar command (<a id="wrglossary.649"></a><dfn id="glo:@tracklang@for"><code class="csfmt">\@tracklang@for</code></dfn>) will be defined that works in the same way.<p>
+The provided control sequence <span class="meta">〈<em class="metainner">cs</em>〉</span> is updated at the start of each iteration to the current element. The loop is terminated when this control sequence is set to <a id="wrglossary.650"></a><a href="#glo:@nil"><code class="csfmt">\@nil</code></a>. This special control sequence should never been used as it’s just a marker and isn’t actually defined. If you get an error message stating that <a id="wrglossary.651"></a><a href="#glo:@nil"><code class="csfmt">\@nil</code></a> is undefined, then it’s most likely due to a loop control sequence being used outside the loop. This can occur if the loop contains code that isn’t expanded until later. For example, if the loop code includes <a id="wrglossary.652"></a><a href="#glo:AtBeginDocument"><code class="csfmt">\AtBeginDocument</code></a>, you need to ensure that the loop control sequence is expanded before being added to the hook.<p>
+You can test if a root language has been detected using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.653"></a><code class="code"><dfn id="glo:IfTrackedLanguage"><code class="csfmt">\IfTrackedLanguage</code></dfn>{<span class="meta">〈<em class="metainner">language-label</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">language-label</em>〉</span> is the language label. If true, this does <span class="meta">〈<em class="metainner">true</em>〉</span> otherwise it does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+You can test if a particular dialect has been detected using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.654"></a><code class="code"><dfn id="glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></dfn>{<span class="meta">〈<em class="metainner">dialect-label</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect-label</em>〉</span> is the dialect label. If the root language was explicitly specified, then it will also be detected as a dialect.<p>
+For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.655"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>,<a id="wrglossary.656"></a><a href="#glo:opt.dutch"><span class="optfmt">dutch</span></a>]{article}
+
+<code class="cmd">\usepackage</code>{tracklang}
+
+<code class="cbeg">\begin{document}</code>
+``english'' <a id="wrglossary.657"></a><a href="#glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></a>{english}{has}{hasn't} been specified.
+
+``british'' <a id="wrglossary.658"></a><a href="#glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></a>{british}{has}{hasn't} been specified.
+
+``flemish'' <a id="wrglossary.659"></a><a href="#glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></a>{flemish}{has}{hasn't} been specified.
+
+``dutch'' <a id="wrglossary.660"></a><a href="#glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></a>{dutch}{has}{hasn't} been specified.
+
+``english'' or an English variant
+<a id="wrglossary.661"></a><a href="#glo:IfTrackedLanguage"><code class="csfmt">\IfTrackedLanguage</code></a>{english}{has}{hasn't} been specified.
+<code class="cend">\end{document}</code>
+</pre> This produces: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+“english’’ hasn’t been specified.<p>
+“british’’ has been specified.<p>
+“flemish’’ hasn’t been specified.<p>
+“dutch’’ has been specified.<p>
+“english’’ or an English variant has been specified. </div><!-- end of resultbox -->
+<p>
+You can find the root language label for a given tracked dialect using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.662"></a><code class="code"><dfn id="glo:TrackedLanguageFromDialect"><code class="csfmt">\TrackedLanguageFromDialect</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If <span class="meta">〈<em class="metainner">dialect</em>〉</span> hasn’t been defined this does nothing otherwise it expands to the root language label.<p>
+You can find the tracked dialects from a given root language using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.663"></a><code class="code"><dfn id="glo:TrackedDialectsFromLanguage"><code class="csfmt">\TrackedDialectsFromLanguage</code></dfn>{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This will expand to a comma-separated list of dialect labels if the root language label has been defined, otherwise it does nothing.<p>
+You can test if a language or dialect has a corresponding <a id="wrglossary.664"></a><a href="#glo:ISO">ISO</a> code using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.665"></a><code class="code"><dfn id="glo:IfTrackedLanguageHasIsoCode"><code class="csfmt">\IfTrackedLanguageHasIsoCode</code></dfn>{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">label</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">code type</em>〉</span> is the type of <a id="wrglossary.666"></a><a href="#glo:ISO">ISO</a> code (for example, <a id="wrglossary.667"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> for root languages or <a id="wrglossary.668"></a><a href="#glo:idx.3166-1"><span class="mbox">3166-1</span></a> for regional dialects), and <span class="meta">〈<em class="metainner">label</em>〉</span> is the language or dialect label. Note that the <a id="wrglossary.669"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a> may be set for the dialect rather than root language for sub-languages parsed using <a id="wrglossary.670"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>.<p>
+Alternatively, you can test if a particular <a id="wrglossary.671"></a><a href="#glo:ISO">ISO</a> code has been defined using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.672"></a><code class="code"><dfn id="glo:IfTrackedIsoCode"><code class="csfmt">\IfTrackedIsoCode</code></dfn>{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">code type</em>〉</span> is again the type of <a id="wrglossary.673"></a><a href="#glo:ISO">ISO</a> code (for example, <a id="wrglossary.674"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> or <a id="wrglossary.675"></a><a href="#glo:idx.3166-1"><span class="mbox">3166-1</span></a>), and <span class="meta">〈<em class="metainner">code</em>〉</span> is the particular code (for example, <a id="wrglossary.676"></a><a href="#glo:opt.english"><span class="optfmt">en</span></a> for <a id="wrglossary.677"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> or <a id="wrglossary.678"></a><a href="#glo:opt.GB"><span class="optfmt">GB</span></a> for <a id="wrglossary.679"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a>).<p>
+You can fetch the language (or dialect) label associated with a given <a id="wrglossary.680"></a><a href="#glo:ISO">ISO</a> code using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.681"></a><code class="code"><dfn id="glo:TrackedLanguageFromIsoCode"><code class="csfmt">\TrackedLanguageFromIsoCode</code></dfn>{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This does nothing if the given <span class="meta">〈<em class="metainner">code</em>〉</span> for the given <a id="wrglossary.682"></a><a href="#glo:ISO">ISO</a> <span class="meta">〈<em class="metainner">code type</em>〉</span> has not been defined, otherwise it expands a comma-separated list of language or dialect labels.<p>
+You can fetch the <a id="wrglossary.683"></a><a href="#glo:ISO">ISO</a> code for a given code type using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.684"></a><code class="code"><dfn id="glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></dfn>{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">label</em>〉</span> is the language or dialect label and <span class="meta">〈<em class="metainner">code type</em>〉</span> is the <a id="wrglossary.685"></a><a href="#glo:ISO">ISO</a> code type (for example, <a id="wrglossary.686"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> or <a id="wrglossary.687"></a><a href="#glo:idx.3166-1"><span class="mbox">3166-1</span></a>). Unlike <a id="wrglossary.688"></a><a href="#glo:TrackedLanguageFromIsoCode"><code class="csfmt">\TrackedLanguageFromIsoCode</code></a>, this command only expands to a single label rather than a comma-separated list.<p>
+The above commands do nothing in the event of an unknown code or code type, so if you accidentally get the wrong code type, you won’t get an error. If you’re unsure of the code type, you can use the following commands: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.689"></a><code class="code"><dfn id="glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></dfn></code></div><!-- end of pinnedbox -->
+ This expands to <a id="wrglossary.690"></a><a href="#glo:idx.3166-1"><span class="mbox">3166-1</span></a> and is used for the two-letter country codes.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.691"></a><code class="code"><dfn id="glo:TwoLetterIsoLanguageCode"><code class="csfmt">\TwoLetterIsoLanguageCode</code></dfn></code></div><!-- end of pinnedbox -->
+ This expands to <a id="wrglossary.692"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> and is used for the two-letter root language codes.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.693"></a><code class="code"><dfn id="glo:ThreeLetterIsoLanguageCode"><code class="csfmt">\ThreeLetterIsoLanguageCode</code></dfn></code></div><!-- end of pinnedbox -->
+ This expands to <a id="wrglossary.694"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> and is used for the three-letter root language codes.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.695"></a><code class="code"><dfn id="glo:ThreeLetterExtIsoLanguageCode"><code class="csfmt">\ThreeLetterExtIsoLanguageCode</code></dfn></code></div><!-- end of pinnedbox -->
+ This expands to <a id="wrglossary.696"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a>. This code is only used for a root language if there’s no <a id="wrglossary.697"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> or <a id="wrglossary.698"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> code. It may also be used for a dialect if a sub-language part has been set in the language tag parsed by <a id="wrglossary.699"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>.<p>
+The <code class="cmd">\Get…</code> commands below are designed to be expandable. If the supplied <span class="meta">〈<em class="metainner">dialect</em>〉</span> is unrecognised they expand to empty. Remember that the dialect must first be identified as a tracked language for it to be recognised.<p>
+As from v1.3, the language tag for a given dialect can be obtained using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.700"></a><code class="code"><dfn id="glo:GetTrackedLanguageTag"><code class="csfmt">\GetTrackedLanguageTag</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the label identifying the dialect. Uses the <a id="wrglossary.701"></a><a href="#glo:opt.undetermined"><span class="optfmt">und</span></a> (undetermined) code for unknown languages.<p>
+As from v1.3, each tracked dialect may also have an associated modifier, which can be fetched using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.702"></a><code class="code"><dfn id="glo:GetTrackedDialectModifier"><code class="csfmt">\GetTrackedDialectModifier</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the label identifying the dialect. This value is typically obtained by parsing a <a id="wrglossary.703"></a><a href="#glo:POSIX">POSIX</a> locale identifier with <a id="wrglossary.704"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> or <a id="wrglossary.705"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> but may be set explicitly. (See §<a href="#sec:langsty">6</a> for setting this value. Likewise for the following commands.)<p>
+You can test if a dialect has an associated <a id="wrglossary.706"></a><a href="#glo:idx.modifier">modifier</a> using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.707"></a><code class="code"><dfn id="glo:IfHasTrackedDialectModifier"><code class="csfmt">\IfHasTrackedDialectModifier</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If the dialect has an associated <a id="wrglossary.708"></a><a href="#glo:idx.modifier">modifier</a> this does <span class="meta">〈<em class="metainner">true</em>〉</span> otherwise it does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.709"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>,<a id="wrglossary.710"></a><a href="#glo:opt.francais"><span class="optfmt">francais</span></a>,<a id="wrglossary.711"></a><a href="#glo:opt.american"><span class="optfmt">american</span></a>,<a id="wrglossary.712"></a><a href="#glo:opt.canadian"><span class="optfmt">canadian</span></a>,<a id="wrglossary.713"></a><a href="#glo:opt.canadien"><span class="optfmt">canadien</span></a>,<a id="wrglossary.714"></a><a href="#glo:opt.dutch"><span class="optfmt">dutch</span></a>]{article}
+
+<code class="cmd">\usepackage</code>{tracklang}
+
+<code class="cbeg">\begin{document}</code>
+Languages:
+<a id="wrglossary.715"></a><a href="#glo:ForEachTrackedLanguage"><code class="csfmt">\ForEachTrackedLanguage</code></a>{<code class="cmd">\ThisLanguage</code>}{<code class="cmd">\ThisLanguage</code><code class="cmd">\space</code>
+(ISO <a id="wrglossary.716"></a><a href="#glo:TwoLetterIsoLanguageCode"><code class="csfmt">\TwoLetterIsoLanguageCode</code></a>:
+``<a id="wrglossary.717"></a><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a>{<a id="wrglossary.718"></a><a href="#glo:TwoLetterIsoLanguageCode"><code class="csfmt">\TwoLetterIsoLanguageCode</code></a>}{<code class="cmd">\ThisLanguage</code>}''). }
+
+Dialects:
+<a id="wrglossary.719"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\ThisDialect</code>}{<code class="cmd">\ThisDialect</code><code class="cmd">\space</code>
+(<a id="wrglossary.720"></a><a href="#glo:IfTrackedLanguageHasIsoCode"><code class="csfmt">\IfTrackedLanguageHasIsoCode</code></a>{<a id="wrglossary.721"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a>}{<code class="cmd">\ThisDialect</code>}<span class="comment">% </span>
+ {ISO <a id="wrglossary.722"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a>:
+ ``<a id="wrglossary.723"></a><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a>{<a id="wrglossary.724"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a>}{<code class="cmd">\ThisDialect</code>}''} {no specific region};
+root: <a id="wrglossary.725"></a><a href="#glo:TrackedLanguageFromDialect"><code class="csfmt">\TrackedLanguageFromDialect</code></a>{<code class="cmd">\ThisDialect</code>}). }
+
+Language for ISO <a id="wrglossary.726"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a><code class="cmd">\ </code>``GB'':
+<a id="wrglossary.727"></a><a href="#glo:TrackedLanguageFromIsoCode"><code class="csfmt">\TrackedLanguageFromIsoCode</code></a>{<a id="wrglossary.728"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a>}{GB}.
+
+Language for ISO <a id="wrglossary.729"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a><code class="cmd">\ </code>``CA'':
+<a id="wrglossary.730"></a><a href="#glo:TrackedLanguageFromIsoCode"><code class="csfmt">\TrackedLanguageFromIsoCode</code></a>{<a id="wrglossary.731"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a>}{CA}.
+
+Country ISO <a id="wrglossary.732"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a><code class="cmd">\ </code>code for ``canadian'':
+<a id="wrglossary.733"></a><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a>{<a id="wrglossary.734"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a>}{canadian}.
+<code class="cend">\end{document}</code>
+</pre> This produces: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Languages: english (ISO 639-1: “en’’). french (ISO 639-1: “fr’’). dutch (ISO 639-1: “nl’’).<p>
+Dialects: american (ISO 3166-1: “US’’; root: english). british (ISO 3166-1: “GB’’; root: english). canadian (ISO 3166-1: “CA’’; root: english). canadien (ISO 3166-1: “CA’’; root: french). dutch (no specific region; root: dutch). francais (no specific region; root: french).<p>
+Language for ISO 3166-1 “GB’’: british.<p>
+Language for ISO 3166-1 “CA’’: canadian,canadien.<p>
+Country ISO 3166-1 code for “canadian’’: CA. </div><!-- end of resultbox -->
+<p>
+As from v1.3, each tracked dialect may also have an associated variant, which can be fetched using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.735"></a><code class="code"><dfn id="glo:GetTrackedDialectVariant"><code class="csfmt">\GetTrackedDialectVariant</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the label identifying the dialect. This value is typically obtained by parsing a language tag with <a id="wrglossary.736"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> but may be set explicitly.<p>
+You can test if a dialect has an associated variant using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.737"></a><code class="code"><dfn id="glo:IfHasTrackedDialectVariant"><code class="csfmt">\IfHasTrackedDialectVariant</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+<p>
+As from v1.3, each tracked dialect may also have an associated script, which can be fetched using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.738"></a><code class="code"><dfn id="glo:GetTrackedDialectScript"><code class="csfmt">\GetTrackedDialectScript</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the label identifying the dialect.<p>
+You can test if a dialect has an associated script using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.739"></a><code class="code"><dfn id="glo:IfHasTrackedDialectScript"><code class="csfmt">\IfHasTrackedDialectScript</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If the dialect has an associated script this does <span class="meta">〈<em class="metainner">true</em>〉</span> otherwise it does <span class="meta">〈<em class="metainner">false</em>〉</span>. This information is provided for language packages that need to know what script is required, but there’s no guarantee that the script will actually be set in the document. Similarly for all the other attributes described here.<p>
+Note that the script should be a recognised four-letter <a id="wrglossary.740"></a><a href="#glo:idx.15924">ISO 15924</a> code, such as <a id="wrglossary.741"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a> or <a id="wrglossary.742"></a><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span></a>. If a dialect doesn’t have an associated script then the default for the root language should be assumed. For example, <a id="wrglossary.743"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a> for English dialects or <a id="wrglossary.744"></a><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span></a> for Russian dialects. The default script for known languages can be obtained using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.745"></a><code class="code"><dfn id="glo:TrackLangGetDefaultScript"><code class="csfmt">\TrackLangGetDefaultScript</code></dfn>{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ Most root languages have a default script, but there are a few without one as it may depend on region, politics or ideology.<p>
+There’s a convenient expandable command for testing the script: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.746"></a><code class="code"><dfn id="glo:IfTrackedDialectIsScriptCs"><code class="csfmt">\IfTrackedDialectIsScriptCs</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">cs</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This tests if the given tracked dialect has an associated script and compares the value with the replacement text of <span class="meta">〈<em class="metainner">cs</em>〉</span>. If the dialect hasn’t been explicitly assigned a script, then test is performed against the default script for the root language.<p>
+The supplementary package <a id="wrglossary.747"></a><a href="#glo:pkg.tracklang-scripts"><span class="styfmt">tracklang-scripts</span></a> provides some additional commands relating to writing systems, including commands in the form <a id="wrglossary.748"></a><a href="#glo:TrackLangScriptCode"><code class="csfmt">\TrackLangScript<span class="meta">〈<em class="metainner">Code</em>〉</span></code></a> where <span class="meta">〈<em class="metainner">Code</em>〉</span> is the <a id="wrglossary.749"></a><a href="#glo:idx.15924">ISO 15924</a> four-letter code. If the dialect doesn’t have an associated script, <span class="meta">〈<em class="metainner">false</em>〉</span> is done. This package isn’t loaded automatically, so you’ll need to explicitly load it. The generic code is in <a id="wrglossary.750"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.751"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang-scripts
+</pre> There’s a convenient LaTeX wrapper <a id="wrglossary.752"></a><a href="#glo:pkg.tracklang-scripts"><span class="filefmt">tracklang-scripts.sty</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\usepackage</code>{tracklang-scripts}
+</pre> See §<a href="#sec:supplpkgs">4</a> for further details of that package.<p>
+For example, the following defines a command to check if the given dialect should use a Latin <a id="wrglossary.753"></a><a href="#glo:idx.script">script</a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.754"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang-scripts
+<code class="cmd">\def</code><code class="cmd">\islatin</code>#1#2#3{<span class="comment">% </span>
+ <a id="wrglossary.755"></a><a href="#glo:IfTrackedDialectIsScriptCs"><code class="csfmt">\IfTrackedDialectIsScriptCs</code></a>{#1}{<a id="wrglossary.756"></a><a href="#glo:TrackLangScriptCode"><code class="csfmt">\TrackLangScriptLatn</code></a>}{#2}{#3}<span class="comment">% </span>
+}
+</pre><p>
+<div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+Note that the <a id="wrglossary.757"></a><a href="#glo:idx.script">script</a> value doesn’t mean that the document is actually using that script. It means that this is the user’s <span style="font-style: italic; font-variant: normal; ">desired</span> script, but whether that <a id="wrglossary.758"></a><a href="#glo:idx.script">script</a> is actually set relies on the appropriate settings in the relevant language package (such as <a id="wrglossary.759"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span>’s</a> <span class="optfmt">script</span> key). </div><!-- end of important -->
+<p>
+As from v1.3, each tracked dialect may also have a sub-language identifier (for example, <span class="optfmt">arevela</span>), which can be fetched using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.760"></a><code class="code"><dfn id="glo:GetTrackedDialectSubLang"><code class="csfmt">\GetTrackedDialectSubLang</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the label identifying the dialect.<p>
+You can test if a dialect has an associated sub-tag using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.761"></a><code class="code"><dfn id="glo:IfHasTrackedDialectSubLang"><code class="csfmt">\IfHasTrackedDialectSubLang</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If the dialect has an associated sub-tag this does <span class="meta">〈<em class="metainner">true</em>〉</span> otherwise it does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+As from v1.3, each tracked dialect may also have additional information, which can be fetched using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.762"></a><code class="code"><dfn id="glo:GetTrackedDialectAdditional"><code class="csfmt">\GetTrackedDialectAdditional</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the label identifying the dialect.<p>
+You can test if a dialect has additional information using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.763"></a><code class="code"><dfn id="glo:IfHasTrackedDialectAdditional"><code class="csfmt">\IfHasTrackedDialectAdditional</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If the dialect has additional information this does <span class="meta">〈<em class="metainner">true</em>〉</span> otherwise it does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+Most packages that implement multilingual support have a set of language definition files for each supported language or dialect. It may be that only the root language is needed, if there are no variations between that language’s dialect (for the purposes of that package), or it may be that separate definition files are required for each dialect. However it can be awkward trying to map the requested dialect or language label to the file name. Should, say, the file containing the French code be called <span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-french-</span><span class="meta">〈<em class="metainner">suffix</em>〉</span><span class="filefmt"></span> or <span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-frenchb-</span><span class="meta">〈<em class="metainner">suffix</em>〉</span><span class="filefmt"></span> or <span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-francais-</span><span class="meta">〈<em class="metainner">suffix</em>〉</span><span class="filefmt"></span>? Should, say, the file containing the British English code be called <span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-british-</span><span class="meta">〈<em class="metainner">suffix</em>〉</span><span class="filefmt"></span> or <span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-UKenglish-</span><span class="meta">〈<em class="metainner">suffix</em>〉</span><span class="filefmt"></span>? If you want to modularise the language support for your package so that each language module has a different maintainer will the maintainers know what tag to use for their language?<p>
+<a id="pg:filesearch"></a>To help with this, <a id="wrglossary.764"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> provides: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.765"></a><code class="code"><dfn id="glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">prefix</em>〉</span>}{<span class="meta">〈<em class="metainner">suffix</em>〉</span>}{<span class="meta">〈<em class="metainner">true code</em>〉</span>}{<span class="meta">〈<em class="metainner">false code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This attempts to find the file called <span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="meta">〈<em class="metainner">suffix</em>〉</span> where <span class="meta">〈<em class="metainner">localeid</em>〉</span> is determined from <span class="meta">〈<em class="metainner">dialect</em>〉</span> (see below). If the file is found then <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.766"></a><code class="code"><dfn id="glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></dfn></code></div><!-- end of pinnedbox -->
+ is set to <span class="meta">〈<em class="metainner">localeid</em>〉</span> and <span class="meta">〈<em class="metainner">true code</em>〉</span> is done, otherwise <span class="meta">〈<em class="metainner">false code</em>〉</span> is done. If this command is empty, then the dialect hasn’t been detected. If the dialect has been detected, but no file can be found, then <a id="wrglossary.767"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a> is set to the final attempt at determining <span class="meta">〈<em class="metainner">localeid</em>〉</span>.<p>
+There’s a convenient shortcut command new to version 1.3: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.768"></a><code class="code"><dfn id="glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></dfn>[<span class="meta">〈<em class="metainner">load code</em>〉</span>]{<span class="meta">〈<em class="metainner">pkgname</em>〉</span>}{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ which uses <a id="wrglossary.769"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a> to input the resource file if found. The prefix is given by <span class="meta">〈<em class="metainner">pkgname</em>〉</span><code class="code">-</code> and the suffix is <code class="code">.<a id="wrglossary.770"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a></code>. A warning is issued if no resource file is found. Note that while it makes sense for <span class="meta">〈<em class="metainner">pkgname</em>〉</span> to be the same as the base name of the package that uses these resource files, they don’t have to be the same. This command additionally defines: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.771"></a><code class="code"><dfn id="glo:TrackLangRequireDialectPrefix"><code class="csfmt">\TrackLangRequireDialectPrefix</code></dfn></code></div><!-- end of pinnedbox -->
+ to <span class="meta">〈<em class="metainner">pkgname</em>〉</span>, which allows the prefix to be picked up by resource file commands, such as <a id="wrglossary.772"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a> and <a id="wrglossary.773"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>. (See below.)<p>
+The optional argument <span class="meta">〈<em class="metainner">load code</em>〉</span> is the code that actually inputs the required file. This defaults to <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.774"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.775"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}
+</pre><p>
+The <a id="wrglossary.776"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a> command sets up the current tracked dialect with: <pre class="compactcodebox"><a id="wrglossary.777"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{dialect}
+</pre> which enables the following commands that may be used within <span class="meta">〈<em class="metainner">true code</em>〉</span> or <span class="meta">〈<em class="metainner">false code</em>〉</span>: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.778"></a><code class="code"><dfn id="glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></dfn></code></div><!-- end of pinnedbox -->
+ Expands to the dialect label.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.779"></a><code class="code"><dfn id="glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></dfn></code></div><!-- end of pinnedbox -->
+ If the dialect hasn’t been detected, this command will be empty, otherwise it will expand to the root language label (which may be the same as the dialect label).<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.780"></a><code class="code"><dfn id="glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></dfn></code></div><!-- end of pinnedbox -->
+ If the dialect hasn’t been detected, this command will be empty. If the dialect has been assigned an <a id="wrglossary.781"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> code, <a id="wrglossary.782"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a> will expand to that code, otherwise it will be empty.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.783"></a><code class="code"><dfn id="glo:CurrentTrackedIsoCode"><code class="csfmt">\CurrentTrackedIsoCode</code></dfn></code></div><!-- end of pinnedbox -->
+ If the dialect hasn’t been detected, this command will be empty. Otherwise it may be empty or it may expand to the <a id="wrglossary.784"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> or <a id="wrglossary.785"></a><a href="#glo:idx.639-2">ISO <span class="mbox">639-2</span></a> or <a id="wrglossary.786"></a><a href="#glo:idx.639-3">ISO <span class="mbox">639-3</span></a> code.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.787"></a><code class="code"><dfn id="glo:CurrentTrackedDialectModifier"><code class="csfmt">\CurrentTrackedDialectModifier</code></dfn></code></div><!-- end of pinnedbox -->
+ The dialect’s modifier or empty if not set. (This is set but not used in the set of possible <span class="meta">〈<em class="metainner">localeid</em>〉</span> values.)<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.788"></a><code class="code"><dfn id="glo:CurrentTrackedDialectVariant"><code class="csfmt">\CurrentTrackedDialectVariant</code></dfn></code></div><!-- end of pinnedbox -->
+ The dialect’s variant or empty if not set.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.789"></a><code class="code"><dfn id="glo:CurrentTrackedDialectSubLang"><code class="csfmt">\CurrentTrackedDialectSubLang</code></dfn></code></div><!-- end of pinnedbox -->
+ The dialect’s sub-language code or empty if not set.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.790"></a><code class="code"><dfn id="glo:CurrentTrackedDialectAdditional"><code class="csfmt">\CurrentTrackedDialectAdditional</code></dfn></code></div><!-- end of pinnedbox -->
+ The dialect’s additional information or empty if not set.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.791"></a><code class="code"><dfn id="glo:CurrentTrackedLanguageTag"><code class="csfmt">\CurrentTrackedLanguageTag</code></dfn></code></div><!-- end of pinnedbox -->
+ The dialect’s language tag. Take care not to confuse this with <a id="wrglossary.792"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>.<p>
+<div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.793"></a><code class="code"><dfn id="glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></dfn></code></div><!-- end of pinnedbox -->
+ The dialect’s script. If the dialect doesn’t have the script set, the default script for the language is used instead.<p>
+<a id="wrglossary.794"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a> behaves as follows:
+<ul class="displaylist">
+ <li><span class="bulletitem">•</span>If no dialect with the given label has been detected, the condition evaluates to <span style="font-style: italic; font-variant: normal; ">false</span> and <a id="wrglossary.795"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a> is empty.<p>
+<li><span class="bulletitem">•</span>If a dialect with the given label has been detected, then:
+<ul class="displaylist">
+ <li><span class="bulletitem">&#x2013;</span>For each possible <span class="meta">〈<em class="metainner">localeid</em>〉</span> in an ordered set of tags determined by the dialect label (see below), the first file matching <span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="meta">〈<em class="metainner">suffix</em>〉</span> that’s found on TeX’s path results in the condition evaluating to <span style="font-style: italic; font-variant: normal; ">true</span> and <a id="wrglossary.796"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a> is set to the current <span class="meta">〈<em class="metainner">localeid</em>〉</span> in the set. The rest of the set of possible values of <span class="meta">〈<em class="metainner">localeid</em>〉</span> is skipped.<p>
+<li><span class="bulletitem">&#x2013;</span>If no file matching <span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="meta">〈<em class="metainner">suffix</em>〉</span> is found on TeX’s path, then the condition evaluates to <span style="font-style: italic; font-variant: normal; ">false</span> and <a id="wrglossary.797"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a> is set to the final <span class="meta">〈<em class="metainner">localeid</em>〉</span> in the set (the language label).
+</ul>
+
+</ul>
+<p>
+The ordered set of possible values of <span class="meta">〈<em class="metainner">localeid</em>〉</span> is determined from the given dialect. <div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+The ordering has changed in version 1.4, which now also includes the <a id="wrglossary.798"></a><a href="#glo:idx.script">script</a> and <a id="wrglossary.799"></a><a href="#glo:idx.variant">variant</a>. This new ordering should typically make the more common combinations closer to the start of the search. </div><!-- end of important -->
+ The possible values of <span class="meta">〈<em class="metainner">localeid</em>〉</span> are listed below in the order of priority used by <a id="wrglossary.800"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a>. Note that the set may contain repetitions (for example, if the dialect label is the same as the root language label). If an item contains an element that hasn’t been set (such as the <a id="wrglossary.801"></a><a href="#glo:idx.639-3">ISO <span class="mbox">639-3</span></a> code or a sub-language <span class="meta">〈<em class="metainner">sublang</em>〉</span> or <a id="wrglossary.802"></a><a href="#glo:idx.variant">variant</a>) then that item is skipped.
+<ol class="displaylist">
+ <li><span class="numitem">1.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just the value of <a id="wrglossary.803"></a><a href="#glo:CurrentTrackedLanguageTag"><code class="csfmt">\CurrentTrackedLanguageTag</code></a>.<p>
+<li><span class="numitem">2.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just the dialect label.<p>
+<li><span class="numitem">3.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">4.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">5.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span> (if there’s no script or if the script is the default for the given language). <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span> (if there’s no script or if the script is the default for the given language).<p>
+<li><span class="numitem">6.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span>.<p>
+<li><span class="numitem">7.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span>.<p>
+<li><span class="numitem">8.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span>.<p>
+<li><span class="numitem">9.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span>.<p>
+<li><span class="numitem">10.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">11.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">12.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><code class="code">region</code> (if there’s no script or if the script is the default for the given language). <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span> (if there’s no script or if the script is the default for the given language).<p>
+<li><span class="numitem">13.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span>.<p>
+<li><span class="numitem">14.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span>.<p>
+<li><span class="numitem">15.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span>. <li><span class="numitem">16.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span>.<p>
+<li><span class="numitem">17.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">18.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">19.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span> (if there’s no script or if the script is the default for the given language). <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">region</em>〉</span> (if there’s no script or if the script is the default for the given language).<p>
+<li><span class="numitem">20.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span>.<p>
+<li><span class="numitem">21.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">script</em>〉</span>.<p>
+<li><span class="numitem">22.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span>.<p>
+<li><span class="numitem">23.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span>.<p>
+<li><span class="numitem">24.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just <span class="meta">〈<em class="metainner">region</em>〉</span>.<p>
+<li><span class="numitem">25.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">variant</em>〉</span> or <span class="meta">〈<em class="metainner">ISO 639-1</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">variant</em>〉</span> if <span class="meta">〈<em class="metainner">sublang</em>〉</span> is missing.<p>
+<li><span class="numitem">26.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">variant</em>〉</span> or <span class="meta">〈<em class="metainner">ISO 639-2</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">variant</em>〉</span> if <span class="meta">〈<em class="metainner">sublang</em>〉</span> is missing.<p>
+<li><span class="numitem">27.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">sublang</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">variant</em>〉</span> or <span class="meta">〈<em class="metainner">ISO 639-3</em>〉</span><code class="code">-</code><span class="meta">〈<em class="metainner">variant</em>〉</span> if <span class="meta">〈<em class="metainner">sublang</em>〉</span> is missing.<p>
+<li><span class="numitem">28.</span><span class="meta">〈<em class="metainner">localeid</em>〉</span> is just the value of <a id="wrglossary.804"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a> (the root language label).
+</ol>
+<p>
+For example (pre v1.3): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.805"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.806"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\ThisDialect</code>}<span class="comment">% </span>
+ {<span class="comment">% try to load the language file for this dialect</span>
+ <a id="wrglossary.807"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a>{<code class="cmd">\ThisDialect</code>}<span class="comment">% </span>
+ {mypackage-}<span class="comment">% file prefix</span>
+ {.ldf}<span class="comment">% file suffix</span>
+ {<a id="wrglossary.808"></a><a href="#glo:input"><code class="csfmt">\input</code></a> mypackage-<a id="wrglossary.809"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>.ldf}<span class="comment">% file found</span>
+ {<span class="comment">% file not found</span>
+ <code class="cmd">\PackageWarning</code>{mypackage}{No support for language
+ `<code class="cmd">\ThisDialect</code>'}<span class="comment">% </span>
+ }<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no languages detected so use defaults</span>
+}
+</pre> With version 1.3 onwards, this can be written more concisely as: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.810"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.811"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\ThisDialect</code>}<span class="comment">% </span>
+ {<span class="comment">% try to load the language file for this dialect</span>
+ <a id="wrglossary.812"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{mypackage}{<code class="cmd">\ThisDialect</code>}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no languages detected so use defaults</span>
+}
+</pre> which additionally enables the <a id="wrglossary.813"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> version 1.3 commands described below, such as <a id="wrglossary.814"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>.<p>
+<a id="pg.britishfilesearch"></a>If, for example, <code class="cmd">\ThisDialect</code> is <a id="wrglossary.815"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>, then the file search will be in the order:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span><a id="wrglossary.816"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-GB.ldf</span></a> (language tag) <li><span class="numitem">2.</span><a id="wrglossary.817"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-british.ldf</span></a> (dialect label)<p>
+<li><span class="numitem">3.</span><a id="wrglossary.818"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-Latn-GB.ldf</span></a> (<a id="wrglossary.819"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.820"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.821"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">4.</span><a id="wrglossary.822"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-GB.ldf</span></a> (<a id="wrglossary.823"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.824"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">5.</span><a id="wrglossary.825"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-Latn.ldf</span></a> (<a id="wrglossary.826"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.827"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">6.</span><a id="wrglossary.828"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en.ldf</span></a> (<a id="wrglossary.829"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code)<p>
+<li><span class="numitem">7.</span><a id="wrglossary.830"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng-Latn-GB.ldf</span></a> (<a id="wrglossary.831"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.832"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.833"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">8.</span><a id="wrglossary.834"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng-GB.ldf</span></a> (<a id="wrglossary.835"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.836"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">9.</span><a id="wrglossary.837"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng-Latn.ldf</span></a> (<a id="wrglossary.838"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.839"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">10.</span><a id="wrglossary.840"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng.ldf</span></a> (<a id="wrglossary.841"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code)<p>
+<li><span class="numitem">11.</span><a id="wrglossary.842"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-GB.ldf</span></a> (<a id="wrglossary.843"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">12.</span><a id="wrglossary.844"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-english.ldf</span></a> (language label)
+</ol>
+<p>
+If, for example, <code class="cmd">\ThisDialect</code> is <a id="wrglossary.845"></a><a href="#glo:opt.naustrian"><span class="optfmt">naustrian</span></a>, then the file search will be in the order:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span><a id="wrglossary.846"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-de-AT-1996.ldf</span></a> (language tag) <li><span class="numitem">2.</span><a id="wrglossary.847"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-naustrian.ldf</span></a> (dialect label)<p>
+<li><span class="numitem">3.</span><a id="wrglossary.848"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-de-Latn-AT.ldf</span></a> (<a id="wrglossary.849"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.850"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.851"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">4.</span><a id="wrglossary.852"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-de-AT.ldf</span></a> (<a id="wrglossary.853"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.854"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">5.</span><a id="wrglossary.855"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-de-Latn.ldf</span></a> (<a id="wrglossary.856"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.857"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">6.</span><a id="wrglossary.858"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-de.ldf</span></a> (<a id="wrglossary.859"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code)<p>
+<li><span class="numitem">7.</span><a id="wrglossary.860"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-deu-Latn-AT.ldf</span></a> (<a id="wrglossary.861"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.862"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.863"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">8.</span><a id="wrglossary.864"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-deu-AT.ldf</span></a> (<a id="wrglossary.865"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.866"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">9.</span><a id="wrglossary.867"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-deu-Latn.ldf</span></a> (<a id="wrglossary.868"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.869"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">10.</span><a id="wrglossary.870"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-deu.ldf</span></a> (<a id="wrglossary.871"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code)<p>
+<li><span class="numitem">11.</span><a id="wrglossary.872"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-AT.ldf</span></a> (<a id="wrglossary.873"></a><a href="#glo:idx.territory">region</a>)<p>
+<li><span class="numitem">12.</span><a id="wrglossary.874"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-de-1996.ldf</span></a> (<a id="wrglossary.875"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.876"></a><a href="#glo:idx.variant">variant</a>) <li><span class="numitem">13.</span><a id="wrglossary.877"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-deu-1996.ldf</span></a> (<a id="wrglossary.878"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.879"></a><a href="#glo:idx.variant">variant</a>)<p>
+<li><span class="numitem">14.</span><a id="wrglossary.880"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-german.ldf</span></a> (language label)
+</ol>
+<p>
+If, for example, <code class="cmd">\ThisDialect</code> is <a id="wrglossary.881"></a><a href="#glo:opt.francais"><span class="optfmt">francais</span></a>, then the file search will be in the order:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span><a id="wrglossary.882"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fr.ldf</span></a> (language tag) <li><span class="numitem">2.</span><a id="wrglossary.883"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-francais.ldf</span></a> (dialect label) <li><span class="numitem">3.</span><a id="wrglossary.884"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fr-Latn.ldf</span></a> (<a id="wrglossary.885"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.886"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">4.</span><a id="wrglossary.887"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fr.ldf</span></a> (<a id="wrglossary.888"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code) <li><span class="numitem">5.</span><a id="wrglossary.889"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fra-Latn.ldf</span></a> (<a id="wrglossary.890"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.891"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">6.</span><a id="wrglossary.892"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fra.ldf</span></a> (<a id="wrglossary.893"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code) <li><span class="numitem">7.</span><a id="wrglossary.894"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-french.ldf</span></a> (language)
+</ol>
+ This is because the predefined <a id="wrglossary.895"></a><a href="#glo:opt.francais"><span class="optfmt">francais</span></a> option has no region assigned to it. Be careful if the dialect label is the actual root language. For example, if <code class="cmd">\ThisDialect</code> is <a id="wrglossary.896"></a><a href="#glo:opt.french"><span class="optfmt">french</span></a>, then the file search will be in the order:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span><a id="wrglossary.897"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fr.ldf</span></a> (language tag) <li><span class="numitem">2.</span><a id="wrglossary.898"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-french.ldf</span></a> (dialect label) <li><span class="numitem">3.</span><a id="wrglossary.899"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fr-Latn.ldf</span></a> (<a id="wrglossary.900"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.901"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">4.</span><a id="wrglossary.902"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fr.ldf</span></a> (<a id="wrglossary.903"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code) <li><span class="numitem">5.</span><a id="wrglossary.904"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fra-Latn.ldf</span></a> (<a id="wrglossary.905"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.906"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">6.</span><a id="wrglossary.907"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-fra.ldf</span></a> (<a id="wrglossary.908"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code) <li><span class="numitem">7.</span><a id="wrglossary.909"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-french.ldf</span></a> (language)
+</ol>
+ Note that the last try will always fail in this case since if the file exists, it will be found on the second try.<p>
+If the dialect label is identical to the root language label then it means that all associated information is the default for that language. For example, in the above case of <a id="wrglossary.910"></a><a href="#glo:opt.french"><span class="optfmt">french</span></a>, the script is <a id="wrglossary.911"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a> and the region is unspecified. The root language label can therefore be used as the fallback in the event of no other match but for the specific case where the dialect is identical to the root language then all unnecessary file name checks can be skipped.<p>
+If you’re only providing support for the root languages (pre v1.3): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.912"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.913"></a><a href="#glo:ForEachTrackedLanguage"><code class="csfmt">\ForEachTrackedLanguage</code></a>{<code class="cmd">\ThisLanguage</code>}<span class="comment">% </span>
+ {<span class="comment">% try to load the language file for this root language</span>
+ <a id="wrglossary.914"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a>{<code class="cmd">\ThisLanguage</code>}<span class="comment">% </span>
+ {mypackage-}<span class="comment">% file prefix</span>
+ {.ldf}<span class="comment">% file suffix</span>
+ {<a id="wrglossary.915"></a><a href="#glo:input"><code class="csfmt">\input</code></a> mypackage-<a id="wrglossary.916"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>.ldf}<span class="comment">% file found</span>
+ {<span class="comment">% file not found</span>
+ <code class="cmd">\PackageWarning</code>{mypackage}{No support for language
+ `<code class="cmd">\ThisLanguage</code>'}<span class="comment">% </span>
+ }<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no languages detected so use defaults</span>
+}
+</pre> With version 1.3 onwards, this can be written more concisely as: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.917"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.918"></a><a href="#glo:ForEachTrackedLanguage"><code class="csfmt">\ForEachTrackedLanguage</code></a>{<code class="cmd">\ThisLanguage</code>}<span class="comment">% </span>
+ {<span class="comment">% try to load the language file for this root language</span>
+ <a id="wrglossary.919"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{mypackage}{<code class="cmd">\ThisLanguage</code>}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no languages detected so use defaults</span>
+}
+</pre> which additionally enables the commands described below. Note that in this case, if more than one dialect for the same language has been tracked, only the hooks for the last dialect for that language will be adjusted, so it’s usually best to iterate over the dialects.<p>
+The following <code class="cmd">\TrackLang…Resource…</code> commands may only be used in resource files that are loaded using <a id="wrglossary.920"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>. An error will occur if the file is input through some other method.<p>
+Within the resource file <a id="wrglossary.921"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt"></span><span class="meta">〈<em class="metainner">pkgname</em>〉</span><span class="filefmt">-</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="filefmt">.ldf</span></a>, you can identify the file using (new to version 1.3): <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.922"></a><code class="code"><dfn id="glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">version info</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">tag</em>〉</span> is the locale identifier.<p>
+If <a id="wrglossary.923"></a><a href="#glo:ProvidesFile"><code class="csfmt">\ProvidesFile</code></a> is defined (through the LaTeX kernel) this is used, otherwise a simplified generic alternative is used that’s suitable for other TeX formats.<p>
+The resource file can load another resource file <a id="wrglossary.924"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt"></span><span class="meta">〈<em class="metainner">pkgname</em>〉</span><span class="filefmt">-</span><span class="meta">〈<em class="metainner">tag</em>〉</span><span class="filefmt">.ldf</span></a>, using (new to version 1.3): <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.925"></a><code class="code"><dfn id="glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ For example, the dialect file <a id="wrglossary.926"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">foo-en-GB.ldf</span></a> might need to load the root language resource file <a id="wrglossary.927"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">foo-english.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% (In file <a id="wrglossary.928"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">foo-en-GB.ldf</span></a>)</span>
+<span class="comment">% Declare this regional file:</span>
+<a id="wrglossary.929"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{en-GB}
+<span class="comment">% load root language file <a id="wrglossary.930"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">foo-english.ldf</span></a>:</span>
+<a id="wrglossary.931"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{english}
+</pre> If <a id="wrglossary.932"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">foo-english.ldf</span></a> is also identified with <a id="wrglossary.933"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>, this will ensure that it’s only loaded once.<p>
+If you require the resource file and want to perform <span class="meta">〈<em class="metainner">code1</em>〉</span> if it’s loaded at this point or <span class="meta">〈<em class="metainner">code2</em>〉</span> if it’s already been loaded then you can use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.934"></a><code class="code"><dfn id="glo:TrackLangRequireResourceOrDo"><code class="csfmt">\TrackLangRequireResourceOrDo</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">code1</em>〉</span>}{<span class="meta">〈<em class="metainner">code2</em>〉</span>}</code></div><!-- end of pinnedbox -->
+<p>
+If you want to load a resource file if it exists (without an error if it doesn’t exist), then you can use <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.935"></a><code class="code"><dfn id="glo:TrackLangRequestResource"><code class="csfmt">\TrackLangRequestResource</code></dfn>{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">not found code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ If the file doesn’t exist, <span class="meta">〈<em class="metainner">not found code</em>〉</span> is done.<p>
+<div class="important"><div class="importanttitle"><a href="#glo:sym.important"><span title="Important" class="icon">ℹ</span></a></div><!-- end of importanttitle -->
+Note that these <code class="cmd">\…Resource…</code> commands are only permitted within the resource files. They are internally enabled through <a id="wrglossary.936"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>. </div><!-- end of important -->
+<p>
+The above restriction on the resource files loaded through <a id="wrglossary.937"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>, and the fact that it internally uses <a id="wrglossary.938"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a>, means that commands like <a id="wrglossary.939"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a> or <a id="wrglossary.940"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a> may be used in those files. This means that the name of the captions hook can be obtained through them. (Remember that the file <a id="wrglossary.941"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">foo-en-GB.ldf</span></a> might have been loaded with, say, the <a id="wrglossary.942"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a> dialect or with the synonymous <a id="wrglossary.943"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a> dialect or with a dialect label that doesn’t have a corresponding caption hook, such as <span class="optfmt">enGBLatn</span>.)<p>
+The <a id="wrglossary.944"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> package has language caption hooks in the form <a id="wrglossary.945"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">language</em>〉</span></code></a> (where <span class="meta">〈<em class="metainner">language</em>〉</span> is the root language label) whereas <a id="wrglossary.946"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> has dialect captions hooks in the form <a id="wrglossary.947"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a> (where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the dialect label). This leads to a rather cumbersome set of conditionals: <pre class="compactcodebox"><code class="cmd">\ifcsundef</code>{captions<a id="wrglossary.948"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}
+{<span class="comment">% </span>
+ <code class="cmd">\ifcsundef</code>{captions<a id="wrglossary.949"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a>}<span class="comment">% </span>
+ {}<span class="comment">% </span>
+ {<span class="comment">% </span>
+ <code class="cmd">\csgappto</code>{captions<a id="wrglossary.950"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a>}{<span class="comment">% </span>
+ <span class="comment">% code to append to hook</span>
+ }<span class="comment">% </span>
+ }<span class="comment">% </span>
+}<span class="comment">% </span>
+{<span class="comment">% </span>
+ <code class="cmd">\csgappto</code>{captions<a id="wrglossary.951"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}{<span class="comment">% </span>
+ <span class="comment">% code to append to hook</span>
+ }<span class="comment">% </span>
+}
+<span class="comment">% do code now to initialise</span>
+</pre> Note that the above has been simplified through the use of <a id="wrglossary.952"></a><a href="#glo:pkg.etoolbox"><span class="styfmt">etoolbox</span></a> commands, which isn’t suitable for generic use. It also doesn’t query the mapping from <a id="wrglossary.953"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span>’s</a> dialect label to the closest matching <a id="wrglossary.954"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> dialect label.<p>
+Instead, <a id="wrglossary.955"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> provides a command to perform this set of conditionals using generic code: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.956"></a><code class="code"><dfn id="glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></dfn>{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">type</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">code</em>〉</span> is the code to append to the <span class="meta">〈<em class="metainner">type</em>〉</span> hook. This always performs <span class="meta">〈<em class="metainner">code</em>〉</span> after testing for the hook in case the hook is undefined or has already been called (for example, <a id="wrglossary.957"></a><a href="#glo:pkg.ngerman"><span class="styfmt">ngerman</span></a> uses <a id="wrglossary.958"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsngerman</code></a> when the package is loaded, not at the start of the document).<p>
+Note that this command is enabled through <a id="wrglossary.959"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a> so should only be used inside resource files.<p>
+Since <span class="optfmt">captions</span> is a commonly used hook type, there’s a shortcut command provided: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.960"></a><code class="code"><dfn id="glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></dfn>{<span class="meta">〈<em class="metainner">code</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This is equivalent to <pre class="compactcodebox"><a id="wrglossary.961"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a>{<span class="meta">〈<em class="metainner">code</em>〉</span>}{captions}
+</pre><p>
+There may be some hooks, such as <a id="wrglossary.962"></a><a href="#glo:datedialect"><code class="csfmt">\date<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a>, that need redefining rather than appending to, so there’s an analogous command: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.963"></a><code class="code"><dfn id="glo:TrackLangRedefHook"><code class="csfmt">\TrackLangRedefHook</code></dfn>{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">type</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ which will redefined the hook to do <span class="meta">〈<em class="metainner">code</em>〉</span>.<p>
+Note that no expansion is performed on <span class="meta">〈<em class="metainner">code</em>〉</span> when appending or redefining a hook.<p>
+
+</section><!-- end of section sec:user -->
+
+<section id="sec:examples"><!-- start of section sec:examples --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->5.1. Examples<div class="labellink"><a href="#sec:examples">[link]</a></div></h2><!-- end of section header -->
+<p>
+The examples in this section illustrate the above commands.<p>
+
+</section><!-- end of section sec:examples -->
+
+<section id="sec:animals"><!-- start of section sec:animals --><div class="tomain"><a href="#main">[top]</a></div>
+<h3><!-- start of subsection header -->5.1.1. <span class="filefmt">animals.sty</span><div class="labellink"><a href="#sec:animals">[link]</a></div></h3><!-- end of subsection header -->
+<p>
+This example is for a trivial package called <a id="wrglossary.964"></a><a href="#glo:file.animals.sty"><span class="filefmt">animals.sty</span></a> that defines three textual commands: <code class="cmd">\catname</code>, <code class="cmd">\dogname</code> and <code class="cmd">\ladybirdname</code>. The default values are: <span class="qt">“cat”</span>, <span class="qt">“dog”</span> and <span class="qt">“bishy-barney-bee”</span>.<sup><a id="fnback-footnote.1"></a><a href="#footnote.1">1</a></sup> The supported languages are defined in files <a id="wrglossary.965"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="filefmt">.ldf</span></a>.<p>
+Here’s the code for <a id="wrglossary.966"></a><a href="#glo:file.animals.sty"><span class="filefmt">animals.sty</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% Example package animals.sty</span>
+<code class="cmd">\NeedsTeXFormat</code>{LaTeX2e}
+<code class="cmd">\ProvidesPackage</code>{animals}
+
+<code class="cmd">\RequirePackage</code>{tracklang}[2019/11/30]<span class="comment">% v1.4</span>
+
+<span class="comment">% Any undeclared options are language settings:</span>
+
+<code class="cmd">\DeclareOption</code>*{<span class="comment">% </span>
+ <a id="wrglossary.967"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a>{<code class="cmd">\CurrentOption</code>}<span class="comment">% </span>
+ {<span class="comment">% successful</span>
+ <code class="cmd">\PackageInfo</code>{animals}{Tracking language `<code class="cmd">\CurrentOption</code>'}<span class="comment">% </span>
+ }<span class="comment">% </span>
+ {<span class="comment">% failed</span>
+ <code class="cmd">\PackageError</code>{animals}<span class="comment">% </span>
+ {Unknown language specification `<code class="cmd">\CurrentOption</code>'}<span class="comment">% </span>
+ {You need to supply either a known dialect label
+ or a valid language tag}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+
+<code class="cmd">\ProcessOptions</code>
+
+<span class="comment">% Default definitions</span>
+<code class="cmd">\newcommand</code><code class="cmd">\catname</code>{cat}
+<code class="cmd">\newcommand</code><code class="cmd">\dogname</code>{dog}
+<code class="cmd">\newcommand</code><code class="cmd">\ladybirdname</code>{bishy-barney-bee}
+
+<a id="wrglossary.968"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.969"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\this@dialect</code>}{<span class="comment">% </span>
+ <a id="wrglossary.970"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{animals}{<code class="cmd">\this@dialect</code>}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no tracked languages, default already set up</span>
+}
+
+<code class="cmd">\endinput</code>
+</pre> Here’s a Plain TeX version that picks up the language from the locale environment variable: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.971"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+
+<a id="wrglossary.972"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a>
+
+<span class="comment">% Default definitions</span>
+<code class="cmd">\def</code><code class="cmd">\catname</code>{cat}
+<code class="cmd">\def</code><code class="cmd">\dogname</code>{dog}
+<code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{bishy-barney-bee}
+
+<a id="wrglossary.973"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.974"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\thisdialect</code>}{<span class="comment">% </span>
+ <a id="wrglossary.975"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{animals}{<code class="cmd">\thisdialect</code>}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no tracked languages, default already set up</span>
+}
+</pre> In the event that a user or supplementary package for some reason wants to load a resource file for a language that hasn’t been tracked, it might be worth providing a command for this purpose: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\newcommand</code>*{<code class="cmd">\RequireAnimalsDialect</code>}[1]{<span class="comment">% </span>
+ <a id="wrglossary.976"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{animals}{#1}<span class="comment">% </span>
+}
+</pre> The loop can then be changed to: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.977"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\this@dialect</code>}{<span class="comment">% </span>
+ <code class="cmd">\RequireAnimalsDialect</code><code class="cmd">\this@dialect</code>
+}<span class="comment">% </span>
+</pre><p>
+The <a id="wrglossary.978"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-english.ldf</span></a> file valid for both the Plain TeX and LaTeX formats contains: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.979"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{english}
+
+<code class="cmd">\def</code><code class="cmd">\englishanimals</code>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\catname</code>{cat}<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\dogname</code>{dog}<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{bishy-barney-bee}<span class="comment">% </span>
+}
+
+<a id="wrglossary.980"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\englishanimals</code>}
+</pre> The <a id="wrglossary.981"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-en-GB.ldf</span></a> file contains: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.982"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{en-GB}
+<a id="wrglossary.983"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{english}
+
+<code class="cmd">\def</code><code class="cmd">\enGBanimals</code>{<span class="comment">% </span>
+ <code class="cmd">\englishanimals</code>
+ <code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{ladybird}<span class="comment">% </span>
+}
+<a id="wrglossary.984"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\enGBanimals</code>}
+</pre> The <a id="wrglossary.985"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-en-US.ldf</span></a> file contains: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.986"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{en-US}
+<a id="wrglossary.987"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{english}
+
+<code class="cmd">\def</code><code class="cmd">\enUSanimals</code>{<span class="comment">% </span>
+ <code class="cmd">\englishanimals</code>
+ <code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{ladybug}<span class="comment">% </span>
+}
+<a id="wrglossary.988"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\enUSanimals</code>}
+</pre> Here’s a German version in the file <a id="wrglossary.989"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-german.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.990"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{german}
+
+<code class="cmd">\def</code><code class="cmd">\germananimals</code>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\catname</code>{Katze}<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\dogname</code>{Hund}<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{Marienk<code class="cmd">\"</code>afer}<span class="comment">% </span>
+}
+
+<a id="wrglossary.991"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\germananimals</code>}
+</pre><p>
+This means that if <a id="wrglossary.992"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> or <a id="wrglossary.993"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> are loaded, the redefinitions are automatically performed whenever the language is changed, but if there’s no caption mechanism the user can switch the fixed names using the <code class="cmd">\…animals</code> commands.<p>
+Here’s an example LaTeX document that doesn’t have any caption hooks: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.994"></a><a href="#glo:opt.english"><span class="optfmt">english</span></a>,<a id="wrglossary.995"></a><a href="#glo:opt.german"><span class="optfmt">german</span></a>]{article}
+
+<code class="cmd">\usepackage</code>{animals}
+
+<code class="cbeg">\begin{document}</code>
+<code class="cmd">\englishanimals</code>
+
+<code class="cmd">\catname</code>.
+<code class="cmd">\dogname</code>.
+<code class="cmd">\ladybirdname</code>.
+
+<code class="cmd">\germananimals</code>
+
+<code class="cmd">\catname</code>.
+<code class="cmd">\dogname</code>.
+<code class="cmd">\ladybirdname</code>.
+<code class="cend">\end{document}</code>
+</pre> Here’s a <a id="wrglossary.996"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> example document: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.997"></a><a href="#glo:opt.american"><span class="optfmt">american</span></a>,<a id="wrglossary.998"></a><a href="#glo:opt.german"><span class="optfmt">german</span></a>,<a id="wrglossary.999"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>]{article}
+
+<code class="cmd">\usepackage</code>{babel}
+<code class="cmd">\usepackage</code>{animals}
+
+<code class="cbeg">\begin{document}</code>
+<code class="cmd">\selectlanguage</code>{american}
+
+<code class="cmd">\catname</code>.
+<code class="cmd">\dogname</code>.
+<code class="cmd">\ladybirdname</code>.
+
+<code class="cmd">\selectlanguage</code>{german}
+
+<code class="cmd">\catname</code>.
+<code class="cmd">\dogname</code>.
+<code class="cmd">\ladybirdname</code>.
+
+<code class="cmd">\selectlanguage</code>{british}
+
+<code class="cmd">\catname</code>.
+<code class="cmd">\dogname</code>.
+<code class="cmd">\ladybirdname</code>.
+<code class="cend">\end{document}</code>
+</pre><p>
+There is some redundancy with the above resource files. Consider the <a id="wrglossary.1000"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> example above. The <a id="wrglossary.1001"></a><a href="#glo:opt.american"><span class="optfmt">american</span></a> dialect is the first option, so in that case <a id="wrglossary.1002"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-en-US.ldf</span></a> is loaded followed by <a id="wrglossary.1003"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-english.ldf</span></a>. This means that the <a id="wrglossary.1004"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsamerican</code></a> hook now includes <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\englishanimals</code>
+<code class="cmd">\enUSanimals</code>
+</pre> Since <code class="cmd">\enUSanimals</code> includes <code class="cmd">\englishanimals</code>, there is redundant code. However, when the <a id="wrglossary.1005"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a> dialect is processed, this loads the file <a id="wrglossary.1006"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-en-GB.ldf</span></a> but not the file <a id="wrglossary.1007"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-english.ldf</span></a> (since it’s already been loaded). This means that <a id="wrglossary.1008"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsbritish</code></a> contains <code class="cmd">\enGBanimals</code> but not <code class="cmd">\englishanimals</code>.<p>
+If this redundancy is an issue (for example, there are so many redefinitions needed that it significantly slows the document build process), then it can be addressed with the following modifications. The <a id="wrglossary.1009"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-en-GB.ldf</span></a> file is now: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1010"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{en-GB}
+
+<code class="cmd">\def</code><code class="cmd">\enGBanimals</code>{<span class="comment">% </span>
+ <code class="cmd">\englishanimals</code>
+ <code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{ladybird}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1011"></a><a href="#glo:TrackLangRequireResourceOrDo"><code class="csfmt">\TrackLangRequireResourceOrDo</code></a>{english}<span class="comment">% </span>
+{
+ <a id="wrglossary.1012"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<span class="comment">% </span>
+ <code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{ladybird}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{
+ <a id="wrglossary.1013"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\enGBanimals</code>}
+}
+</pre> The <a id="wrglossary.1014"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">animals-en-US.ldf</span></a> file is now: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1015"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{en-US}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\enUSanimals</code>}{<span class="comment">% </span>
+ <code class="cmd">\englishanimals</code>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\ladybirdname</code>}{ladybug}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1016"></a><a href="#glo:TrackLangRequireResourceOrDo"><code class="csfmt">\TrackLangRequireResourceOrDo</code></a>{english}
+{
+ <a id="wrglossary.1017"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\ladybirdname</code>}{ladybird}<span class="comment">% </span>
+ }<span class="comment">% </span>
+}
+{
+ <a id="wrglossary.1018"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\enUSanimals</code>}
+}
+</pre> This means that the document that has the dialects listed in the order <a id="wrglossary.1019"></a><a href="#glo:opt.american"><span class="optfmt">american</span></a>, <a id="wrglossary.1020"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a> now has <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\englishanimals</code>
+<code class="cmd">\def</code><code class="cmd">\ladybirdname</code>{ladybird}
+</pre> in the <a id="wrglossary.1021"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsbritish</code></a> hook and just <code class="cmd">\enUSanimals</code> in the <a id="wrglossary.1022"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsamerican</code></a> hook, which has removed most of the redundancy.<p>
+Note that <a id="wrglossary.1023"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a> has a <a id="wrglossary.1024"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsenglish</code></a> hook but not <a id="wrglossary.1025"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsamerican</code></a> or <a id="wrglossary.1026"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsbritish</code></a>, so this code doesn’t allow for switching between variants of the same language with <a id="wrglossary.1027"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a>.<p>
+
+</section><!-- end of section sec:animals -->
+
+<section id="sec:regions"><!-- start of section sec:regions --><div class="tomain"><a href="#main">[top]</a></div>
+<h3><!-- start of subsection header -->5.1.2. <span class="filefmt">regions.sty</span><div class="labellink"><a href="#sec:regions">[link]</a></div></h3><!-- end of subsection header -->
+<p>
+<a id="wrglossary.1028"></a><a href="#pg.britishfilesearch">Earlier</a>, I mentioned the search order for <a id="wrglossary.1029"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a> where if, for example, the dialect is <a id="wrglossary.1030"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>, the file search (v1.4+) will be:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span><a id="wrglossary.1031"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-GB.ldf</span></a> (language tag) <li><span class="numitem">2.</span><a id="wrglossary.1032"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-british.ldf</span></a> (dialect label)<p>
+<li><span class="numitem">3.</span><a id="wrglossary.1033"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-Latn-GB.ldf</span></a> (<a id="wrglossary.1034"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.1035"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.1036"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">4.</span><a id="wrglossary.1037"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-GB.ldf</span></a> (<a id="wrglossary.1038"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.1039"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">5.</span><a id="wrglossary.1040"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en-Latn.ldf</span></a> (<a id="wrglossary.1041"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code, <a id="wrglossary.1042"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">6.</span><a id="wrglossary.1043"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-en.ldf</span></a> (<a id="wrglossary.1044"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> language code)<p>
+<li><span class="numitem">7.</span><a id="wrglossary.1045"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng-Latn-GB.ldf</span></a> (<a id="wrglossary.1046"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.1047"></a><a href="#glo:idx.script">script</a>, <a id="wrglossary.1048"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">8.</span><a id="wrglossary.1049"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng-GB.ldf</span></a> (<a id="wrglossary.1050"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.1051"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">9.</span><a id="wrglossary.1052"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng-Latn.ldf</span></a> (<a id="wrglossary.1053"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code, <a id="wrglossary.1054"></a><a href="#glo:idx.script">script</a>) <li><span class="numitem">10.</span><a id="wrglossary.1055"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-eng.ldf</span></a> (<a id="wrglossary.1056"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> language code)<p>
+<li><span class="numitem">11.</span><a id="wrglossary.1057"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-GB.ldf</span></a> (<a id="wrglossary.1058"></a><a href="#glo:idx.territory">region</a>) <li><span class="numitem">12.</span><a id="wrglossary.1059"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-english.ldf</span></a> (language label)
+</ol>
+ You may have wondered why <a id="wrglossary.1060"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">mypackage-GB.ldf</span></a> is included in the search given that some countries have multiple official languages, which means that the country code on its own may not indicate the language.<p>
+The reason for including just the country code as the <span class="meta">〈<em class="metainner">localeid</em>〉</span> in the file search is to allow for region rather than language dependent settings. For example, suppose I want to write a package that needs to know whether to use imperial or metric measurements in the document, but I also want to provide multilingual support. The language alone won’t tell me whether to use imperial or metric (for example, the US uses imperial and the UK uses metric for most product attributes). I could provide <a id="wrglossary.1061"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a> files for every language and region combination, but this would result in a lot redundancy.<p>
+<a id="wrglossary.1062"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a> has an optional argument for adjusting the way the resource files are loaded. Suppose I have <a id="wrglossary.1063"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="filefmt">.ldf</span></a> resource files, then <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1064"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{regions}{<code class="cmd">\this@dialect</code>}
+</pre> loads the resource file for the dialect given by <code class="cmd">\this@dialect</code> using: <pre class="compactcodebox"><a id="wrglossary.1065"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1066"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}
+</pre> I can use the optional argument to also load the resource file for the root language as well: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% custom file loader for regions.sty</span>
+<code class="cmd">\newcommand</code>*{<code class="cmd">\RequireRegionsDialect</code>}[1]{<span class="comment">% </span>
+ <a id="wrglossary.1067"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>
+ [<a id="wrglossary.1068"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1069"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}<span class="comment">% </span>
+ <a id="wrglossary.1070"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1071"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}<span class="comment">% </span>
+ ]<span class="comment">% </span>
+ {regions}{#1}<span class="comment">% </span>
+}
+</pre> Now the dialect <a id="wrglossary.1072"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a> can load both <a id="wrglossary.1073"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-GB.ldf</span></a> and <a id="wrglossary.1074"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-english.ldf</span></a>.<p>
+The example package (<a id="wrglossary.1075"></a><a href="#glo:file.regions.sty"><span class="filefmt">regions.sty</span></a>) below illustrates this. <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% Example package regions.sty</span>
+<code class="cmd">\NeedsTeXFormat</code>{LaTeX2e}
+<code class="cmd">\ProvidesPackage</code>{regions}
+
+<a id="wrglossary.1076"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a>{tracklang}[2016/10/07]<span class="comment">% v1.3+</span>
+
+<code class="cmd">\DeclareOption</code>*{<a id="wrglossary.1077"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{<code class="cmd">\CurrentOption</code>}}
+<code class="cmd">\ProcessOptions</code>
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\weightunit</code>}{kg}
+<code class="cmd">\newcommand</code>*{<code class="cmd">\lengthunit</code>}{mm}
+<code class="cmd">\newcommand</code>*{<code class="cmd">\currencyunit</code>}{EUR}
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\unitname</code>}{units}
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\RequireRegionsDialect</code>}[1]{<span class="comment">% </span>
+ <a id="wrglossary.1078"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>
+ [<a id="wrglossary.1079"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1080"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}<span class="comment">% </span>
+ <a id="wrglossary.1081"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1082"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}<span class="comment">% </span>
+ ]<span class="comment">% </span>
+ {regions}{#1}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1083"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.1084"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\this@dialect</code>}{<span class="comment">% </span>
+ <code class="cmd">\RequireRegionsDialect</code><code class="cmd">\this@dialect</code>
+ }<span class="comment">% </span>
+}
+{<span class="comment">% no tracked languages, default already set up</span>
+}
+
+<code class="cmd">\endinput</code>
+</pre> There are separate <a id="wrglossary.1085"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a> files for region and language. First are the regions.<p>
+
+<ul class="displaylist">
+ <li><span class="bulletitem">•</span><a id="wrglossary.1086"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-BE.ldf</span></a> (Belgium): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1087"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{BE}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\BEunits</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\weightunit</code>}{kg}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\lengthunit</code>}{mm}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\currencyunit</code>}{EUR}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1088"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\BEunits</code>}
+</pre><p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1089"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-CA.ldf</span></a> (Canada): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1090"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{CA}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\CAunits</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\weightunit</code>}{kg}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\lengthunit</code>}{mm}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\currencyunit</code>}{CAD}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1091"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\CAunits</code>}
+</pre><p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1092"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-GB.ldf</span></a> (Great Britain): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1093"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{GB}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\GBunits</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\weightunit</code>}{kg}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\lengthunit</code>}{mm}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\currencyunit</code>}{GBP}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1094"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\GBunits</code>}
+</pre><p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1095"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-US.ldf</span></a> (USA): <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1096"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{US}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\USunits</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\weightunit</code>}{lb}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\lengthunit</code>}{in}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\currencyunit</code>}{USD}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1097"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\USunits</code>}
+</pre>
+</ul>
+ Now the language files:<p>
+
+<ul class="displaylist">
+ <li><span class="bulletitem">•</span><a id="wrglossary.1098"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-dutch.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1099"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{dutch}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\dutchnames</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\unitname</code>}{meeteenheden}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1100"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\dutchnames</code>}
+</pre><p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1101"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-english.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1102"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{english}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\englishnames</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\unitname</code>}{units}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1103"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\englishnames</code>}
+</pre><p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1104"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-french.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\TrackLangProvidesResource</code>{french}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\frenchnames</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\unitname</code>}{unit<code class="cmd">\'</code>es}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1105"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\frenchnames</code>}
+</pre><p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1106"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-german.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1107"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{french}
+
+<code class="cmd">\providecommand</code>*{<code class="cmd">\germannames</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\unitname</code>}{Ma<code class="cmd">\ss</code> einheiten}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1108"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\germannames</code>}
+</pre>
+</ul>
+<p>
+Here’s an example document that uses this package: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>[<a id="wrglossary.1109"></a><a href="#glo:opt.canadien"><span class="optfmt">canadien</span></a>]{article}
+
+<code class="cmd">\usepackage</code>{regions}
+
+<code class="cbeg">\begin{document}</code>
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<code class="cend">\end{document}</code>
+</pre><p>
+This works because the <span class="meta">〈<em class="metainner">localeid</em>〉</span> search looks for the country code before the root language label. However, this will fail if the dialect label is the same as a root language label that has an associated territory, marked with <sup><span title="dagger marker" class="icon">†</span></sup> in Table <a href="#tab:rootlangopts">1.2</a>, as then it will be picked up before the country code.<p>
+In the above example, <a id="wrglossary.1110"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-CA.ldf</span></a> is matched rather than <a id="wrglossary.1111"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-french.ldf</span></a>, so <a id="wrglossary.1112"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-CA.ldf</span></a> is loaded by <pre class="compactcodebox"><a id="wrglossary.1113"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1114"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}
+</pre> After this, the language file <a id="wrglossary.1115"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-french.ldf</span></a> is then loaded: <pre class="compactcodebox"><a id="wrglossary.1116"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1117"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}
+</pre><p>
+This assumes that there’s a country code <a id="wrglossary.1118"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a> file available. This example needs a little modification to use default units in case the region is missing: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><span class="comment">% Modified example package regions.sty</span>
+<code class="cmd">\NeedsTeXFormat</code>{LaTeX2e}
+<code class="cmd">\ProvidesPackage</code>{regions}
+
+<span class="comment">% Pass all options to <a id="wrglossary.1119"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a>:</span>
+<code class="cmd">\DeclareOption</code>*{<code class="cmd">\PassOptionsToPackage</code>{<code class="cmd">\CurrentOption</code>}{tracklang}}
+<code class="cmd">\ProcessOptions</code>
+
+<a id="wrglossary.1120"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a>{tracklang}
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\weightunit</code>}{kg}
+<code class="cmd">\newcommand</code>*{<code class="cmd">\lengthunit</code>}{mm}
+<code class="cmd">\newcommand</code>*{<code class="cmd">\currencyunit</code>}{EUR}
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\unitname</code>}{units}
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\defaultunits</code>}{<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\weightunit</code>}{kg}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\lengthunit</code>}{mm}<span class="comment">% </span>
+ <code class="cmd">\renewcommand</code>*{<code class="cmd">\currencyunit</code>}{EUR}<span class="comment">% </span>
+}
+
+<code class="cmd">\newcommand</code>*{<code class="cmd">\RequireRegionsDialect</code>}[1]{<span class="comment">% </span>
+ <a id="wrglossary.1121"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>
+ [<a id="wrglossary.1122"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1123"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}<span class="comment">% </span>
+ <code class="cmd">\ifx</code><a id="wrglossary.1124"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a><a id="wrglossary.1125"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>
+ <a id="wrglossary.1126"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\defaultunits</code>}<span class="comment">% </span>
+ <code class="cmd">\else</code>
+ <a id="wrglossary.1127"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1128"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}<span class="comment">% </span>
+ <code class="cmd">\fi</code>
+ ]<span class="comment">% </span>
+ {regions}{#1}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1129"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{<span class="comment">% </span>
+ <a id="wrglossary.1130"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\this@dialect</code>}<span class="comment">% </span>
+ <code class="cmd">\RequireRegionsDialect</code><code class="cmd">\this@dialect</code>
+ <span class="comment">% </span>
+}
+{<span class="comment">% no tracked languages, default already set up</span>
+}
+
+<code class="cmd">\endinput</code>
+</pre> Note that we still have a problem for dialect labels that are identical to root language labels with an associated territory (such as <a id="wrglossary.1131"></a><a href="#glo:opt.manx"><span class="optfmt">manx</span></a>). This case can be checked with the following adjustment: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\newcommand</code>*{<code class="cmd">\RequireRegionsDialect</code>}[1]{<span class="comment">% </span>
+ <a id="wrglossary.1132"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>
+ [<a id="wrglossary.1133"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1134"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}<span class="comment">% </span>
+ <code class="cmd">\ifx</code><a id="wrglossary.1135"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a><a id="wrglossary.1136"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>
+ <code class="cmd">\ifx</code><a id="wrglossary.1137"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a><code class="cmd">\empty</code>
+ <a id="wrglossary.1138"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>{<code class="cmd">\defaultunits</code>}<span class="comment">% </span>
+ <code class="cmd">\else</code>
+ <a id="wrglossary.1139"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1140"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a>}<span class="comment">% </span>
+ <code class="cmd">\fi</code>
+ <code class="cmd">\else</code>
+ <a id="wrglossary.1141"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1142"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a>}<span class="comment">% </span>
+ <code class="cmd">\fi</code>
+ ]<span class="comment">% </span>
+ {regions}{#1}<span class="comment">% </span>
+}
+</pre> In the case where both the dialect and root language label are <a id="wrglossary.1143"></a><a href="#glo:opt.manx"><span class="optfmt">manx</span></a> with the resource files <a id="wrglossary.1144"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-manx.ldf</span></a> and <a id="wrglossary.1145"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-IM.ldf</span></a>, then <a id="wrglossary.1146"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a> will be <a id="wrglossary.1147"></a><a href="#glo:opt.manx"><span class="optfmt">manx</span></a> (the dialect label) so <a id="wrglossary.1148"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-manx.ldf</span></a> will be loaded with: <pre class="compactcodebox"><a id="wrglossary.1149"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1150"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a>}
+</pre> In this case <a id="wrglossary.1151"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a> is <code class="code">IM</code> (that is, it’s not empty) so then <a id="wrglossary.1152"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">regions-IM.ldf</span></a> will be loaded with: <pre class="compactcodebox"><a id="wrglossary.1153"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{<a id="wrglossary.1154"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a>}
+</pre><p>
+Here’s another document that sets up dialects with <a id="wrglossary.1155"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> labels that aren’t recognised by <a id="wrglossary.1156"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a>. This means that there’s no corresponding <a id="wrglossary.1157"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a> hook for either the dialect label or the root language label, so mappings need to be defined from the <a id="wrglossary.1158"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label to the matching <a id="wrglossary.1159"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> dialect label.<p>
+<pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+
+<code class="cmd">\usepackage</code>{tracklang}
+
+<a id="wrglossary.1160"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{de-US-1996}
+<a id="wrglossary.1161"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.1162"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>}{ngerman}
+
+<a id="wrglossary.1163"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{en-MT}
+<a id="wrglossary.1164"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.1165"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>}{UKenglish}
+
+<code class="cmd">\usepackage</code>[main=ngerman,UKenglish]{babel}
+<code class="cmd">\usepackage</code>{regions}
+
+<code class="cbeg">\begin{document}</code>
+<a id="wrglossary.1166"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>{ngerman}
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<a id="wrglossary.1167"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>{UKenglish}
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<code class="cend">\end{document}</code>
+</pre> This produces: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Maßeinheiten: lb, in, USD.<p>
+units: kg, mm, EUR. </div><!-- end of resultbox -->
+ Compare this with: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+
+<code class="cmd">\usepackage</code>[main=ngerman,UKenglish]{babel}
+<code class="cmd">\usepackage</code>{regions}
+
+<code class="cbeg">\begin{document}</code>
+<a id="wrglossary.1168"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>{ngerman}
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<a id="wrglossary.1169"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>{UKenglish}
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<code class="cend">\end{document}</code>
+</pre> which produces: <div class="resultbox"><div class="resultboxtitle"><a href="#glo:sym.result"><span title="Result" class="icon">🖺</span></a></div><!-- end of resultboxtitle -->
+Maßeinheiten: kg, mm, EUR.<p>
+units: kg, mm, GBP. </div><!-- end of resultbox -->
+<p>
+Note that these mappings aren’t needed if <a id="wrglossary.1170"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> is loaded with the root language labels instead. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\documentclass</code>{article}
+
+<code class="cmd">\usepackage</code>{tracklang}
+
+<a id="wrglossary.1171"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{de-US-1996}
+<a id="wrglossary.1172"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.1173"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>}{ngerman}
+
+<a id="wrglossary.1174"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{en-MT}
+
+<code class="cmd">\usepackage</code>[main=ngerman,english]{babel}
+<code class="cmd">\usepackage</code>{regions}
+
+<code class="cbeg">\begin{document}</code>
+<a id="wrglossary.1175"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>{ngerman}
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<a id="wrglossary.1176"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>{english}
+
+<code class="cmd">\unitname</code>: <code class="cmd">\weightunit</code>, <code class="cmd">\lengthunit</code>, <code class="cmd">\currencyunit</code>.
+
+<code class="cend">\end{document}</code>
+</pre> No mapping is required for the <a id="wrglossary.1177"></a><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span></a> locale as it can pick up <a id="wrglossary.1178"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsenglish</code></a> when <a id="wrglossary.1179"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a> (used by <a id="wrglossary.1180"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a>) queries the root language label after failing to find the language hook from the dialect label.<p>
+Some of the predefined <a id="wrglossary.1181"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialects come with a mapping to the closest matching <a id="wrglossary.1182"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> dialect label. For example, the option <a id="wrglossary.1183"></a><a href="#glo:opt.ngermanDE"><span class="optfmt">ngermanDE</span></a> listed in Table <a href="#tab:nonisoopts">1.3</a> automatically provides a mapping to <a id="wrglossary.1184"></a><a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>. Since a <a id="wrglossary.1185"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label can only map to one <a id="wrglossary.1186"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> label, this can be problematic for synonymous labels such as <a id="wrglossary.1187"></a><a href="#glo:opt.british"><span class="optfmt">british</span></a>/<a id="wrglossary.1188"></a><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span></a> or <a id="wrglossary.1189"></a><a href="#glo:opt.american"><span class="optfmt">american</span></a>/<a id="wrglossary.1190"></a><a href="#glo:opt.USenglish"><span class="optfmt">USenglish</span></a>. The default mappings used by <a id="wrglossary.1191"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> are shown in Table <a href="#tab:nonisoopts">1.3</a>.<p>
+
+</section><!-- end of section sec:regions -->
+
+<section id="sec:langsty"><!-- start of section sec:langsty --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->6. Adding Support for Language Tracking<div class="labellink"><a href="#sec:langsty">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+If you are writing a package that <span style="font-style: italic; font-variant: normal; ">sets up</span> the document languages (rather than a package that provides multilingual support if the user has already loaded a language package) then you can load <a id="wrglossary.1192"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> and use the commands below to help other packages track your provided languages. (See also: <a href="https://www.dickimaw-books.com/latex/tracklang/langpkg.shtml">Integrating <span class="filefmt">tracklang.tex</span> into Language Packages</a>.)<p>
+The <a id="wrglossary.1193"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> package can be loaded using <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1194"></a><a href="#glo:input"><code class="csfmt">\input</code></a> tracklang
+</pre> or (LaTeX only) <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1195"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a>{tracklang}
+</pre><p>
+When using LaTeX, there’s a difference between the two. The first case prevents <a id="wrglossary.1196"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> from picking up the document class options but skips the check for known language packages. This check is redundant since your package is the language package, so you need to decide whether or not to allow the user to set up the localisation information through the document class options.<p>
+There’s a hook that, if defined, is performed by <a id="wrglossary.1197"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> after the package options have been loaded but before known language packages are checked: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1198"></a><code class="code"><dfn id="glo:@tracklang@prelangpkgcheck@hook"><code class="csfmt">\@tracklang@prelangpkgcheck@hook</code></dfn></code></div><!-- end of pinnedbox -->
+<p>
+If you prefer <a id="wrglossary.1199"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a> over <a id="wrglossary.1200"></a><a href="#glo:input"><code class="csfmt">\input</code></a> but you want to make <a id="wrglossary.1201"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> skip the check for known language packages then (as from v1.3.8) define the pre-language package check hook as follows: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\providecommand</code><a id="wrglossary.1202"></a><a href="#glo:@tracklang@prelangpkgcheck@hook"><code class="csfmt">\@tracklang@prelangpkgcheck@hook</code></a>{<code class="cmd">\endinput</code>}
+<a id="wrglossary.1203"></a><a href="#glo:RequirePackage"><code class="csfmt">\RequirePackage</code></a>{tracklang}[2019/10/06]<span class="comment">% v1.3.8+</span>
+</pre> This will still pick up languages supplied through the document class options.<p>
+If you just use <a id="wrglossary.1204"></a><a href="#glo:input"><code class="csfmt">\input</code></a>, there’s a test at the start of <a id="wrglossary.1205"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> to determine if it’s already been loaded, so you don’t need to worry if the document has already input it.<p>
+To integrate <a id="wrglossary.1206"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> into your language package, you need to consider the following steps:
+<ol class="displaylist">
+ <li><span class="numitem">1.</span>Does <a id="wrglossary.1207"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> define your supported <a id="wrglossary.1208"></a><a href="#glo:idx.15924">ISO 15924</a> language scripts in the <a id="wrglossary.1209"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> file?<p>
+If yes, then skip this step. Otherwise create a file with the relevant <a id="wrglossary.1210"></a><a href="#glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></a> command for each unknown script and identify this new file with <a id="wrglossary.1211"></a><a href="#glo:TrackLangAddExtraScriptFile"><code class="csfmt">\TrackLangAddExtraScriptFile</code></a> (see §<a href="#sec:newscripts">6.3</a>). This usually won’t be necessary unless you have a custom script or a child script (a script that’s a sub-category of another script).<p>
+<li><span class="numitem">2.</span>Does <a id="wrglossary.1212"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> recognise the root language?<p>
+If yes, then skip this step.<p>
+If your package is setting up a language that <a id="wrglossary.1213"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> doesn’t recognise then you will need to define the root language using <a id="wrglossary.1214"></a><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a> (see §<a href="#sec:newlanguages">6.5</a>).<p>
+This usually won’t be the case as <a id="wrglossary.1215"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> should support all languages that have an official <a id="wrglossary.1216"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> alpha-2 code.<p>
+If you simply have a different label from <a id="wrglossary.1217"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> identifying the root language, then you can just set up your label as a dialect using <a id="wrglossary.1218"></a><a href="#glo:TrackLangProvidePredefinedDialect"><code class="csfmt">\TrackLangProvidePredefinedDialect</code></a>.<p>
+<li><span class="numitem">3.</span>Does <a id="wrglossary.1219"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> define the relevant <a id="wrglossary.1220"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> region codes in the <a id="wrglossary.1221"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> file?<p>
+If yes, then skip this step. Otherwise create a file with the relevant <a id="wrglossary.1222"></a><a href="#glo:TrackLangRegionMap"><code class="csfmt">\TrackLangRegionMap</code></a> command for each new region and identify this new file with <a id="wrglossary.1223"></a><a href="#glo:TrackLangAddExtraRegionFile"><code class="csfmt">\TrackLangAddExtraRegionFile</code></a> (see §<a href="#sec:newregions">6.4</a>). This usually won’t be necessary as <a id="wrglossary.1224"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> should recognise all countries that have an alpha-2 region code, but you may require it if you need a broader region, such as EU.<p>
+<li><span class="numitem">4.</span>Do you want to define some convenient dialect labels that can be used with <a id="wrglossary.1225"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>?<p>
+If no, then skip this step. Otherwise you can use <a id="wrglossary.1226"></a><a href="#glo:TrackLangProvidePredefinedLanguage"><code class="csfmt">\TrackLangProvidePredefinedLanguage</code></a> for root languages and <a id="wrglossary.1227"></a><a href="#glo:TrackLangProvidePredefinedDialect"><code class="csfmt">\TrackLangProvidePredefinedDialect</code></a> for dialects with additional information, such as a region, sub-language or script (see §<a href="#sec:definelabels">6.6</a>).<p>
+<li><span class="numitem">5.</span>In your language initialisation code, add the <a id="wrglossary.1228"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> code to track the particular dialect (for example, use <a id="wrglossary.1229"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a> for recognised dialect labels or use the <code class="csfmt">\AddTracked<span class="meta">〈<em class="metainner">Xxx</em>〉</span></code> set of commands). See §<a href="#sec:initnewlang">6.1</a>.<p>
+<li><span class="numitem">6.</span>In your language selection code (such as <a id="wrglossary.1230"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>), add <a id="wrglossary.1231"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{<span class="meta">〈<em class="metainner">label</em>〉</span>} to allow the document author to easily query the current localisation settings (such as the region). See §<a href="#sec:selectlanguage">6.2</a>.
+</ol>
+<p>
+
+</section><!-- end of section sec:langsty -->
+
+<section id="sec:initnewlang"><!-- start of section sec:initnewlang --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.1. Initialising a New Language or Dialect<div class="labellink"><a href="#sec:initnewlang">[link]</a></div></h2><!-- end of section header -->
+<p>
+When the user requests a particular dialect through your language package, you can notify <a id="wrglossary.1232"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> of this choice using <pre class="compactcodebox"><a id="wrglossary.1233"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}
+</pre> provided the dialect label is recognised by <a id="wrglossary.1234"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> (all those listed in Tables <a href="#tab:isoopts">1.1</a>, <a href="#tab:rootlangopts">1.2</a> & <a href="#tab:nonisoopts">1.3</a>).<p>
+If there’s no matching dialect predefined by <a id="wrglossary.1235"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>, you can just use <a id="wrglossary.1236"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> or <a id="wrglossary.1237"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> (described in §<a href="#sec:generic">3</a>) with the appropriate <a id="wrglossary.1238"></a><a href="#glo:ISO">ISO</a> codes <span style="font-style: italic; font-variant: normal; ">if you’re not providing caption hooks</span>.<p>
+If you are providing a captions hook mechanism in the form <a id="wrglossary.1239"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a>, then if <span class="meta">〈<em class="metainner">dialect</em>〉</span> doesn’t match the corresponding <a id="wrglossary.1240"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label, you can provide a mapping using <a id="wrglossary.1241"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>, described below.<p>
+
+</section><!-- end of section sec:initnewlang -->
+
+<section id="sec:selectlanguage"><!-- start of section sec:selectlanguage --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.2. Switching Language or Dialect<div class="labellink"><a href="#sec:selectlanguage">[link]</a></div></h2><!-- end of section header -->
+<p>
+When the document author switches to a different language or dialect, the current localisation information can be set with: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1242"></a><code class="code"><dfn id="glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> may the <a id="wrglossary.1243"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label, or the mapped label previously set through <a id="wrglossary.1244"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>, described below, or the language label (in which case the last dialect to be tracked with that root language will be assumed).<p>
+This will make the following commands available which may be of use to other packages:
+<ul class="displaylist">
+ <li><span class="bulletitem">•</span><a id="wrglossary.1245"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a> The dialect label recognised by <a id="wrglossary.1246"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> (which may not be the same as <span class="meta">〈<em class="metainner">dialect</em>〉</span>).<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1247"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a> The root language label used by <a id="wrglossary.1248"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1249"></a><a href="#glo:CurrentTrackedDialectModifier"><code class="csfmt">\CurrentTrackedDialectModifier</code></a> The dialect modifier.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1250"></a><a href="#glo:CurrentTrackedDialectVariant"><code class="csfmt">\CurrentTrackedDialectVariant</code></a> The dialect variant.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1251"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a> The dialect script. Note that if <a id="wrglossary.1252"></a><a href="#glo:pkg.tracklang-scripts"><span class="styfmt">tracklang-scripts</span></a> is also loaded, this allows the script direction to be accessed using <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1253"></a><a href="#glo:TrackLangScriptAlphaToDir"><code class="csfmt">\TrackLangScriptAlphaToDir</code></a>{<a id="wrglossary.1254"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a>}
+</pre> See §<a href="#sec:supplpkgs">4</a> for further details.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1255"></a><a href="#glo:CurrentTrackedDialectSubLang"><code class="csfmt">\CurrentTrackedDialectSubLang</code></a> The dialect sub-language code.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1256"></a><a href="#glo:GetTrackedDialectAdditional"><code class="csfmt">\GetTrackedDialectAdditional</code></a> The dialect’s additional information.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1257"></a><a href="#glo:CurrentTrackedIsoCode"><code class="csfmt">\CurrentTrackedIsoCode</code></a> The dialect’s root language <a id="wrglossary.1258"></a><a href="#glo:ISO">ISO</a> code. (The first found in the sequence <a id="wrglossary.1259"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a>, <a id="wrglossary.1260"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a>, <a id="wrglossary.1261"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a>.)<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1262"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a> The dialect’s <a id="wrglossary.1263"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> region code.<p>
+<li><span class="bulletitem">•</span><a id="wrglossary.1264"></a><a href="#glo:CurrentTrackedLanguageTag"><code class="csfmt">\CurrentTrackedLanguageTag</code></a> The dialect’s language tag.<p>
+
+</ul>
+ (Without this automated use of <a id="wrglossary.1265"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>, the same information can be picked up using commands like <a id="wrglossary.1266"></a><a href="#glo:GetTrackedDialectScript"><code class="csfmt">\GetTrackedDialectScript</code></a>, but that’s less convenient, especially if <a id="wrglossary.1267"></a><a href="#glo:languagename"><code class="csfmt">\languagename</code></a> needs to be converted to <span class="meta">〈<em class="metainner">dialect</em>〉</span>. See the accompanying sample file <span class="filefmt">sample-setlang.tex</span> for an example.)<p>
+
+</section><!-- end of section sec:selectlanguage -->
+
+<section id="sec:newscripts"><!-- start of section sec:newscripts --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.3. Defining New Scripts<div class="labellink"><a href="#sec:newscripts">[link]</a></div></h2><!-- end of section header -->
+<p>
+The <a id="wrglossary.1268"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> file isn’t automatically loaded, but if it is then, as from v1.4, it contains a hook at the end of the file that can be used to load additional files that define supplementary scripts. This entails creating a file called, say, <span class="filefmt">mypackage-scripts.tex</span> that contains: <pre class="compactcodebox"><a id="wrglossary.1269"></a><a href="#glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></a>{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">name</em>〉</span>}{<span class="meta">〈<em class="metainner">direction</em>〉</span>}{<span class="meta">〈<em class="metainner">parent script</em>〉</span>}
+</pre> The first argument <span class="meta">〈<em class="metainner">alpha code</em>〉</span> is the four-letter ISO 15924 code (such as <a id="wrglossary.1270"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>), the second argument is the numeric code (such as 215), the third argument <span class="meta">〈<em class="metainner">name</em>〉</span> is the name of the script (such as <span class="optfmt">Latin</span>), the fourth argument is the direction (such as <span class="optfmt">LR</span> for left-to-right) and the final argument is the parent script (leave blank if there’s no parent). Note that this command will override any previous mapping for those codes. No check is performed to determine if they have already been defined.<p>
+The supplementary file should be identified with: <pre class="compactcodebox"><a id="wrglossary.1271"></a><a href="#glo:TrackLangAddExtraScriptFile"><code class="csfmt">\TrackLangAddExtraScriptFile</code></a>{<span class="meta">〈<em class="metainner">filename</em>〉</span>}
+</pre><p>
+Additional information can be found in §<a href="#sec:supplpkgs">4</a>.<p>
+
+</section><!-- end of section sec:newscripts -->
+
+<section id="sec:newregions"><!-- start of section sec:newregions --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.4. Defining New Regions<div class="labellink"><a href="#sec:newregions">[link]</a></div></h2><!-- end of section header -->
+<p>
+The <a id="wrglossary.1272"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> file isn’t automatically loaded, but if it is then, as from v1.4, it contains a hook at the end of the file that can be used to load additional files that define supplementary regions. This entails creating a file called, say, <span class="filefmt">mypackage-regions.tex</span> that contains: <pre class="compactcodebox"><a id="wrglossary.1273"></a><a href="#glo:TrackLangRegionMap"><code class="csfmt">\TrackLangRegionMap</code></a>{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">alpha-2 code</em>〉</span>}{<span class="meta">〈<em class="metainner">alpha-3 code</em>〉</span>}
+</pre> where the first argument is the numeric region code (such as 826), the second argument is the alpha-2 region code (such as <code class="code">GB</code>) and the third argument is the alpha-3 region code (such as <code class="code">GBR</code>). Note that this command will override any previous mapping for those codes. No check is performed to determine if they have already been defined.<p>
+The supplementary file should be identified with: <pre class="compactcodebox"><a id="wrglossary.1274"></a><a href="#glo:TrackLangAddExtraRegionFile"><code class="csfmt">\TrackLangAddExtraRegionFile</code></a>{<span class="meta">〈<em class="metainner">filename</em>〉</span>}
+</pre><p>
+Additional information can be found in §<a href="#sec:supplpkgs">4</a>.<p>
+
+</section><!-- end of section sec:newregions -->
+
+<section id="sec:newlanguages"><!-- start of section sec:newlanguages --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.5. Defining a New Language<div class="labellink"><a href="#sec:newlanguages">[link]</a></div></h2><!-- end of section header -->
+<p>
+(New to version 1.3.) If the root language isn’t recognised by <a id="wrglossary.1275"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> (not listed in Table <a href="#tab:rootlangopts">1.2</a>), then it can be defined (but not tracked at this point) using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1276"></a><code class="code"><dfn id="glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></dfn>{<span class="meta">〈<em class="metainner">language label</em>〉</span>}{<span class="meta">〈<em class="metainner">639-1 code</em>〉</span>}{<span class="meta">〈<em class="metainner">639-2 (T)</em>〉</span>}{<span class="meta">〈<em class="metainner">639-2 (B)</em>〉</span>}{<span class="meta">〈<em class="metainner">639-3</em>〉</span>}{<span class="meta">〈<em class="metainner">3166-1</em>〉</span>}{<span class="meta">〈<em class="metainner">default script</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">language label</em>〉</span> is the root language label, <span class="meta">〈<em class="metainner">639-1 code</em>〉</span> is the <a id="wrglossary.1277"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> code for that language (may be empty if there isn’t one), <span class="meta">〈<em class="metainner">639-2 (T)</em>〉</span> is the <a id="wrglossary.1278"></a><a href="#glo:idx.639-2T">ISO <span class="mbox">639-2</span> (T)</a> code for that language (may be empty if there isn’t one), <span class="meta">〈<em class="metainner">639-2 (B)</em>〉</span> is the <a id="wrglossary.1279"></a><a href="#glo:idx.639-2B">ISO <span class="mbox">639-2</span> (B)</a> code for that language (may be empty if it’s the same as <span class="meta">〈<em class="metainner">639-2 (T)</em>〉</span>), <span class="meta">〈<em class="metainner">639-3</em>〉</span> is the <a id="wrglossary.1280"></a><a href="#glo:idx.639-3">ISO <span class="mbox">639-3</span></a> code for that language (empty if the same as the <a id="wrglossary.1281"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> code), <span class="meta">〈<em class="metainner">3166-1</em>〉</span> is the territory <a id="wrglossary.1282"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> code for languages that are only spoken in one territory (should be empty if the language is spoken in multiple territories), and <span class="meta">〈<em class="metainner">default script</em>〉</span> is the default script (empty if disputed or varies according to region).<p>
+You can then track this language using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1283"></a><code class="code"><dfn id="glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></dfn>{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ for dialects (where <span class="meta">〈<em class="metainner">dialect label</em>〉</span> is the dialect label and <span class="meta">〈<em class="metainner">root language label</em>〉</span> is the root language label) or, if no regional variant is needed, you can instead use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1284"></a><code class="code"><dfn id="glo:AddTrackedLanguage"><code class="csfmt">\AddTrackedLanguage</code></dfn>{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ This is equivalent to <pre class="compactcodebox"><a id="wrglossary.1285"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}
+</pre> Note that <a id="wrglossary.1286"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a> defines: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1287"></a><code class="code"><dfn id="glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></dfn></code></div><!-- end of pinnedbox -->
+ to the dialect label, which makes it easier to reference the last dialect to be tracked.<p>
+
+</section><!-- end of section sec:newlanguages -->
+
+<section id="sec:definelabels"><!-- start of section sec:definelabels --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.6. Defining New <span class="styfmt">tracklang</span> Labels<div class="labellink"><a href="#sec:definelabels">[link]</a></div></h2><!-- end of section header -->
+<p>
+A dialect label may be predefined with associated information that allows that particular combination to be easily tracked with <a id="wrglossary.1288"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>. In the case of a dialect label that only requires the information provided in <a id="wrglossary.1289"></a><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a> you can use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1290"></a><code class="code"><dfn id="glo:TrackLangProvidePredefinedLanguage"><code class="csfmt">\TrackLangProvidePredefinedLanguage</code></dfn>{<span class="meta">〈<em class="metainner">language label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">language label</em>〉</span> corresponds to the language label used in <a id="wrglossary.1291"></a><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a>. This allows <pre class="compactcodebox"><a id="wrglossary.1292"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{<span class="meta">〈<em class="metainner">label</em>〉</span>}
+</pre> to not only track the root language but also the associated ISO codes.<p>
+If the dialect label doesn’t match the root language label then use: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1293"></a><code class="code"><dfn id="glo:TrackLangProvidePredefinedDialect"><code class="csfmt">\TrackLangProvidePredefinedDialect</code></dfn>{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}{<span class="meta">〈<em class="metainner">3166-1 code</em>〉</span>}{<span class="meta">〈<em class="metainner">modifier</em>〉</span>}{<span class="meta">〈<em class="metainner">variant</em>〉</span>}{<span class="meta">〈<em class="metainner">map</em>〉</span>}{<span class="meta">〈<em class="metainner">script</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect label</em>〉</span> is the new <a id="wrglossary.1294"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label, {root language label} is the <a id="wrglossary.1295"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> root language label, <span class="meta">〈<em class="metainner">region</em>〉</span> is the <a id="wrglossary.1296"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> region code (may be empty), <span class="meta">〈<em class="metainner">modifier</em>〉</span> is the <a id="wrglossary.1297"></a><a href="#glo:idx.modifier">modifier</a> (may be empty), <span class="meta">〈<em class="metainner">variant</em>〉</span> is the <a id="wrglossary.1298"></a><a href="#glo:idx.variant">variant</a> information (may be empty), <span class="meta">〈<em class="metainner">map</em>〉</span> is your package’s language label that corresponds to the <a id="wrglossary.1299"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label supplied in the first argument (may be empty if identical), and <span class="meta">〈<em class="metainner">script</em>〉</span> is the <a id="wrglossary.1300"></a><a href="#glo:idx.15924">ISO 15924</a> alpha-4 script code (may be empty if it’s the same as the default script for the root language).<p>
+For compatibility with pre version 1.3, if the dialect isn’t predefined by <a id="wrglossary.1301"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>, then you can use: <pre class="compactcodebox"><a id="wrglossary.1302"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{dialect}{root language label}
+</pre> where <span class="meta">〈<em class="metainner">root language label</em>〉</span> is the label for the dialect’s root language (Table <a href="#tab:rootlangopts">1.2</a>) and <span class="meta">〈<em class="metainner">dialect</em>〉</span> matches the captions hook. If the dialect is already in the tracked dialect list, it won’t be added again. If the root language is already in the tracked language list, it won’t be added again. As from version 1.3 this additionally defines <a id="wrglossary.1303"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a> to <span class="meta">〈<em class="metainner">dialect</em>〉</span> for convenient reference if required. Note that <a id="wrglossary.1304"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a> is internally used by commands like <a id="wrglossary.1305"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>, <a id="wrglossary.1306"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a> and <a id="wrglossary.1307"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>.<p>
+(New to version 1.3.) Many of the <a id="wrglossary.1308"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect labels don’t have a corresponding match in various language packages. For example, <a id="wrglossary.1309"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> provides <a id="wrglossary.1310"></a><a href="#glo:opt.ngermanDE"><span class="optfmt">ngermanDE</span></a> but the closest match in <a id="wrglossary.1311"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> is <a id="wrglossary.1312"></a><a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>. This means that the caption hook <a id="wrglossary.1313"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsngerman</code></a> can’t be accessed through: <pre class="compactcodebox"><code class="cmd">\csname</code> captions<a id="wrglossary.1314"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a><code class="cmd">\endcsname</code>
+</pre> in the resource files. In this case, a mapping may be defined between the <a id="wrglossary.1315"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label and the closest matching label used by the language hooks. This is done through <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1316"></a><code class="code"><dfn id="glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></dfn>{<span class="meta">〈<em class="metainner">tracklang-label</em>〉</span>}{<span class="meta">〈<em class="metainner">hook-label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">tracklang-label</em>〉</span> is the <a id="wrglossary.1317"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> label and <span class="meta">〈<em class="metainner">hook-label</em>〉</span> is the language hook label. For example: <pre class="compactcodebox"><a id="wrglossary.1318"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a>{de-AR-1996}
+<a id="wrglossary.1319"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.1320"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>}{ngerman}
+</pre> Since <a id="wrglossary.1321"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> internally uses <a id="wrglossary.1322"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a> the dialect label created by <a id="wrglossary.1323"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> can be accessed using <a id="wrglossary.1324"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a>. This means that <a id="wrglossary.1325"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a> can now find the <a id="wrglossary.1326"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsngerman</code></a> hook even though the <a id="wrglossary.1327"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label isn’t <a id="wrglossary.1328"></a><a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span></a>.<p>
+(New to version 1.3.) If the root language label is recognised by <a id="wrglossary.1329"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a>, you can add the <a id="wrglossary.1330"></a><a href="#glo:ISO">ISO</a> codes using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1331"></a><code class="code"><dfn id="glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></dfn>{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code></div><!-- end of pinnedbox -->
+<p>
+As from v1.3, you can also provide a modifier for a given dialect using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1332"></a><code class="code"><dfn id="glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the dialect label and <span class="meta">〈<em class="metainner">value</em>〉</span> is the modifier value. For example: <pre class="compactcodebox"><a id="wrglossary.1333"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{oldgerman}{<a id="wrglossary.1334"></a><a href="#glo:opt.german"><span class="optfmt">german</span></a>}
+<a id="wrglossary.1335"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a>{german}
+<a id="wrglossary.1336"></a><a href="#glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></a>{oldgerman}{old}
+</pre><p>
+Note that no sanitization is performed on <span class="meta">〈<em class="metainner">value</em>〉</span> when the modifier is set explicitly through <a id="wrglossary.1337"></a><a href="#glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></a>, since it’s assumed that any package that specifically sets the modifier in this way is using a sensible labelling system. If the modifier is obtained through commands like <a id="wrglossary.1338"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a>, then the modifier is sanitized as the value may have been obtained from the operating system and there’s no guarantee that it won’t contain problematic characters.<p>
+The <a id="wrglossary.1339"></a><a href="#glo:idx.modifier">modifier</a> is typically obtained by parsing locale information in <a id="wrglossary.1340"></a><a href="#glo:POSIX">POSIX</a> format. <pre class="compactcodebox"><span class="meta">〈<em class="metainner">language</em>〉</span>[<a id="wrglossary.1341"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a><span class="meta">〈<em class="metainner">territory</em>〉</span>][<a id="wrglossary.1342"></a><a href="#glo:idx.dotsep"><code class="code">.</code></a><span class="meta">〈<em class="metainner">codeset</em>〉</span>][<a id="wrglossary.1343"></a><a href="#glo:idx.atmod"><code class="code">@</code></a><span class="meta">〈<em class="metainner">modifier</em>〉</span>]
+</pre> whereas the <a id="wrglossary.1344"></a><a href="#glo:idx.variant">variant</a> is typically obtained by parsing the language tag.<p>
+The information provided in the commands below (such as the script) are typically obtained by parsing the language tag. For example, with Serbian in the Latin alphabet the modifier would be <span class="optfmt">latin</span> whereas the script would be <a id="wrglossary.1345"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1346"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{serbianlatin}{<a id="wrglossary.1347"></a><a href="#glo:opt.serbian"><span class="optfmt">serbian</span></a>}
+<a id="wrglossary.1348"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a>{<a id="wrglossary.1349"></a><a href="#glo:opt.serbian"><span class="optfmt">serbian</span></a>}
+<a id="wrglossary.1350"></a><a href="#glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></a>{serbianlatin}{latin}
+<a id="wrglossary.1351"></a><a href="#glo:SetTrackedDialectScript"><code class="csfmt">\SetTrackedDialectScript</code></a>{serbianlatin}{<a id="wrglossary.1352"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>}
+</pre><p>
+As from v1.3, you can provide a script (for example, <a id="wrglossary.1353"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a> or <a id="wrglossary.1354"></a><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span></a>) using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1355"></a><code class="code"><dfn id="glo:SetTrackedDialectScript"><code class="csfmt">\SetTrackedDialectScript</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the dialect label and <span class="meta">〈<em class="metainner">value</em>〉</span> is the <a id="wrglossary.1356"></a><a href="#glo:idx.15924">ISO 15924</a> alpha-4 script identifier. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1357"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{serbiancyrl}{<a id="wrglossary.1358"></a><a href="#glo:opt.serbian"><span class="optfmt">serbian</span></a>}
+<a id="wrglossary.1359"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a>{serbian}
+<a id="wrglossary.1360"></a><a href="#glo:SetTrackedDialectScript"><code class="csfmt">\SetTrackedDialectScript</code></a>{serbiancyrl}{<a id="wrglossary.1361"></a><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span></a>}
+</pre><p>
+As from v1.3, you can provide a variant for a given dialect using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1362"></a><code class="code"><dfn id="glo:SetTrackedDialectVariant"><code class="csfmt">\SetTrackedDialectVariant</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1363"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{german1901}{german}
+<a id="wrglossary.1364"></a><a href="#glo:SetTrackedDialectVariant"><code class="csfmt">\SetTrackedDialectVariant</code></a>{german1901}{1901}
+</pre><p>
+As from v1.3, you can also provide a sub-language using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1365"></a><code class="code"><dfn id="glo:SetTrackedDialectSubLang"><code class="csfmt">\SetTrackedDialectSubLang</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the dialect label and <span class="meta">〈<em class="metainner">value</em>〉</span> is the code. For example: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1366"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{mandarin}{<a id="wrglossary.1367"></a><a href="#glo:opt.chinese"><span class="optfmt">chinese</span></a>}
+<a id="wrglossary.1368"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a>{<a id="wrglossary.1369"></a><a href="#glo:opt.chinese"><span class="optfmt">chinese</span></a>}
+<a id="wrglossary.1370"></a><a href="#glo:SetTrackedDialectSubLang"><code class="csfmt">\SetTrackedDialectSubLang</code></a>{mandarin}{cmn}
+<a id="wrglossary.1371"></a><a href="#glo:AddTrackedIsoLanguage"><code class="csfmt">\AddTrackedIsoLanguage</code></a>{639-3}{cmn}{mandarin}
+</pre><p>
+As from v1.3, you can also provide additional information using: <div class="pinnedbox"><div class="pinnedboxtitle"><a href="#glo:sym.definition"><span title="Definition" class="icon">📌</span></a></div><!-- end of pinnedboxtitle -->
+<a id="wrglossary.1372"></a><code class="code"><dfn id="glo:SetTrackedDialectAdditional"><code class="csfmt">\SetTrackedDialectAdditional</code></dfn>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code></div><!-- end of pinnedbox -->
+ where <span class="meta">〈<em class="metainner">dialect</em>〉</span> is the dialect label and <span class="meta">〈<em class="metainner">value</em>〉</span> is the additional information.<p>
+
+</section><!-- end of section sec:definelabels -->
+
+<section id="sec:examplenewlang"><!-- start of section sec:examplenewlang --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->6.7. Example (<span class="filefmt">alien.sty</span>)<div class="labellink"><a href="#sec:examplenewlang">[link]</a></div></h2><!-- end of section header -->
+<p>
+Suppose I want to create a language package <a id="wrglossary.1373"></a><a href="#glo:file.alien.sty"><span class="filefmt">alien.sty</span></a> that defines the <span class="optfmt">martian</span> language with regional dialects <span class="optfmt">lowermartian</span> and <span class="optfmt">uppermartian</span>. First, let’s suppose that <a id="wrglossary.1374"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> recognises the root language <span class="optfmt">martian</span>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\ProvidesPackage</code>{alien}
+
+<a id="wrglossary.1375"></a><a href="#glo:input"><code class="csfmt">\input</code></a>tracklang<span class="comment">% v1.3</span>
+
+<code class="cmd">\DeclareOption</code>{martian}{<span class="comment">% </span>
+ <a id="wrglossary.1376"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>{martian}
+}
+<code class="cmd">\DeclareOption</code>{lowermartian}{<span class="comment">% </span>
+ <a id="wrglossary.1377"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{lowermartian}{martian}
+ <a id="wrglossary.1378"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a>{martian}
+ <a id="wrglossary.1379"></a><a href="#glo:AddTrackedIsoLanguage"><code class="csfmt">\AddTrackedIsoLanguage</code></a>{3166-1}{YY}{lowermartian}
+ <span class="comment">% other attributes such as</span>
+ <span class="comment">% <a id="wrglossary.1380"></a><a href="#glo:SetTrackedDialectVariant"><code class="csfmt">\SetTrackedDialectVariant</code></a>{lowermartian}{...}</span>
+}
+<code class="cmd">\DeclareOption</code>{uppermartian}{<span class="comment">% </span>
+ <a id="wrglossary.1381"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{uppermartian}{martian}
+ <a id="wrglossary.1382"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a>{martian}
+ <a id="wrglossary.1383"></a><a href="#glo:AddTrackedIsoLanguage"><code class="csfmt">\AddTrackedIsoLanguage</code></a>{3166-1}{XX}{uppermartian}
+ <span class="comment">% other attributes such as</span>
+ <span class="comment">% <a id="wrglossary.1384"></a><a href="#glo:SetTrackedDialectVariant"><code class="csfmt">\SetTrackedDialectVariant</code></a>{uppermartian}{...}</span>
+}
+
+<code class="cmd">\ProcessOptions</code>
+
+<code class="cmd">\newcommand</code>*{<a id="wrglossary.1385"></a><a href="#glo:selectlanguage"><code class="csfmt">\selectlanguage</code></a>}[1]{<span class="comment">% </span>
+ <code class="cmd">\def</code><a id="wrglossary.1386"></a><a href="#glo:languagename"><code class="csfmt">\languagename</code></a>{#1}<span class="comment">% </span>
+ <span class="comment">% other stuff</span>
+ <a id="wrglossary.1387"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{#1}<span class="comment">% </span>
+}
+
+<a id="wrglossary.1388"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a>
+{
+ <a id="wrglossary.1389"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a>{<code class="cmd">\thisdialect</code>}
+ {<span class="comment">% </span>
+ <a id="wrglossary.1390"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>{alien}{<code class="cmd">\thisdialect</code>}
+ }
+}
+</pre> The caption commands and language set up are in the files <a id="wrglossary.1391"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">alien-</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="filefmt">.ldf</span></a> as in the examples from §<a href="#sec:examples">5.1</a>. This allows for the user having already loaded <a id="wrglossary.1392"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> before <a id="wrglossary.1393"></a><a href="#glo:file.alien.sty"><span class="styfmt">alien</span></a> and used <a id="wrglossary.1394"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> to pick up the locale from the operating system’s environment variables. (For example, they may have <a id="wrglossary.1395"></a><a href="#glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></a> set to <code class="code">xx<a id="wrglossary.1396"></a><a href="#glo:idx.underscoresep"><code class="code">_</code></a>YY</code>.)<p>
+The resource files may need to set the mapping between the <a id="wrglossary.1397"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label and the <a id="wrglossary.1398"></a><a href="#glo:file.alien.sty"><span class="styfmt">alien</span></a> dialect label. For example, in <a id="wrglossary.1399"></a><a href="#glo:file.prefix-localeid.ldf"><span class="filefmt">alien-xx-YY.ldf</span></a>: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><a id="wrglossary.1400"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a>{xx-YY}
+
+<a id="wrglossary.1401"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a>{martian}<span class="comment">% load common elements</span>
+
+<code class="cmd">\newcommand</code>{<a id="wrglossary.1402"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionslowermartian</code></a>}{<span class="comment">% </span>
+ <a id="wrglossary.1403"></a><a href="#glo:captionsdialect"><code class="csfmt">\captionsmartian</code></a>
+ <code class="cmd">\def</code><code class="cmd">\contentsname</code>{X'flurp}<span class="comment">% regional variation</span>
+}
+
+<a id="wrglossary.1404"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a>{<a id="wrglossary.1405"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a>}{lowermartian}
+</pre><p>
+Now let’s consider the case where <a id="wrglossary.1406"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> doesn’t know about the <span class="optfmt">martian</span> language. In this case the user can’t track the dialect until the root language has been defined, so the user can’t use <a id="wrglossary.1407"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a> before using the <a id="wrglossary.1408"></a><a href="#glo:file.alien.sty"><span class="styfmt">alien</span></a> package.<p>
+With <a id="wrglossary.1409"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> v1.3. The new root language can be defined with a minor adjustment to the above code: <pre class="codebox"><div class="codeboxtitle"><a href="#glo:sym.code"><span title="Input" class="icon">🖹</span></a></div><code class="cmd">\ProvidesPackage</code>{alien}
+
+<a id="wrglossary.1410"></a><a href="#glo:input"><code class="csfmt">\input</code></a>{tracklang}<span class="comment">% needs v1.3</span>
+
+<a id="wrglossary.1411"></a><a href="#glo:TrackLangIfKnownLang"><code class="csfmt">\TrackLangIfKnownLang</code></a>{martian}
+{}<span class="comment">% tracklang already knows about the martian language</span>
+{
+ <span class="comment">% tracklang doesn't known about the martian language, so define it</span>
+ <span class="comment">% with <a id="wrglossary.1412"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> (xx) and <a id="wrglossary.1413"></a><a href="#glo:idx.639-2">ISO <span class="mbox">639-2</span></a> (xxx) codes:</span>
+ <a id="wrglossary.1414"></a><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a>{martian}{xx}{xxx}{}{}{}{<a id="wrglossary.1415"></a><a href="#glo:opt.Latn"><span class="optfmt">Latn</span></a>}
+}
+</pre> The rest is as before.<p>
+Now other package writers who want to provide support for the Martian dialects can easily detect which language options the user requested through my package, <span style="font-style: italic; font-variant: normal; ">without needing to know anything about my <a id="wrglossary.1416"></a><a href="#glo:file.alien.sty"><span class="styfmt">alien</span></a> package</span>.<p>
+
+</section><!-- end of section sec:examplenewlang -->
+
+<section id="part.II"><!-- start of section part.II --><div class="tomain"><a href="#main">[top]</a></div>
+<div class="part"><!-- start of part header -->II. Summaries<div class="labellink"><a href="#part.II">[link]</a></div></div><!-- end of part header -->
+<p>
+<p>
+
+</section><!-- end of section part.II -->
+
+<section id="sec:regscriptmappings"><!-- start of section sec:regscriptmappings --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->A. Region and Script Mappings<div class="labellink"><a href="#sec:regscriptmappings">[link]</a></div></h1><!-- end of chapter header -->
+<p>
+Region mappings are listed in Table <a href="#tab:regionmappings">A.1</a>, and script mappings are listed in Table <a href="#tab:scriptmappings">A.2</a>.<p>
+
+<table class="glossary-ruled">
+<caption id="tab:regionmappings">Table&nbsp;4: Region Mappings</caption>
+<tr class="glossary-ruled">
+<th class="glossary-name cell-noborder-bothsep-l">Alpha-2</th>
+<th class="glossary-other cell-noborder-bothsep-l">Alpha-3</th>
+<th class="glossary-desc cell-noborder-bothsep-l">Numeric</th>
+<th class="glossary-name cell-noborder-bothsep-l cell-left-border">Alpha-2</th>
+<th class="glossary-other cell-noborder-bothsep-l">Alpha-3</th>
+<th class="glossary-desc cell-noborder-bothsep-l">Numeric</th></tr>
+
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AD"><span class="optfmt">AD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AND</td>
+<td class="glossary-desc cell-noborder-bothsep-l">020
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AE"><span class="optfmt">AE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ARE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">784</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AF"><span class="optfmt">AF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AFG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">004
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AG"><span class="optfmt">AG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ATG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">028</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AI"><span class="optfmt">AI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AIA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">660
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AL"><span class="optfmt">AL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ALB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">008</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AM"><span class="optfmt">AM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ARM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">051
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AO"><span class="optfmt">AO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AGO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">024</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AQ"><span class="optfmt">AQ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ATA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">010
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AR"><span class="optfmt">AR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ARG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">032</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AS"><span class="optfmt">AS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ASM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">016
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AT"><span class="optfmt">AT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AUT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">040</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AU"><span class="optfmt">AU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AUS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">036
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AW"><span class="optfmt">AW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ABW</td>
+<td class="glossary-desc cell-noborder-bothsep-l">533</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.AX"><span class="optfmt">AX</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ALA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">248
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.AZ"><span class="optfmt">AZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">AZE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">031</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BA"><span class="optfmt">BA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BIH</td>
+<td class="glossary-desc cell-noborder-bothsep-l">070
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BB"><span class="optfmt">BB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BRB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">052</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BD"><span class="optfmt">BD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BGD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">050
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BE"><span class="optfmt">BE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BEL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">056</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BF"><span class="optfmt">BF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BFA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">854
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BG"><span class="optfmt">BG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BGR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">100</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BH"><span class="optfmt">BH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BHR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">048
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BI"><span class="optfmt">BI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BDI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">108</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BJ"><span class="optfmt">BJ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BEN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">204
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BL"><span class="optfmt">BL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BLM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">652</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BM"><span class="optfmt">BM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BMU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">060
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BN"><span class="optfmt">BN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BRN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">096</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BO"><span class="optfmt">BO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BOL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">068
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BQ"><span class="optfmt">BQ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BES</td>
+<td class="glossary-desc cell-noborder-bothsep-l">535</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BR"><span class="optfmt">BR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BRA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">076
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BS"><span class="optfmt">BS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BHS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">044</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BT"><span class="optfmt">BT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BTN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">064
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BV"><span class="optfmt">BV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BVT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">074</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BW"><span class="optfmt">BW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BWA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">072
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.BY"><span class="optfmt">BY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BLR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">112</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.BZ"><span class="optfmt">BZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">BLZ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">084
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CA"><span class="optfmt">CA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CAN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">124</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CC"><span class="optfmt">CC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CCK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">166
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CD"><span class="optfmt">CD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">COD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">180</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CF"><span class="optfmt">CF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CAF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">140
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CG"><span class="optfmt">CG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">COG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">178</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CH"><span class="optfmt">CH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CHE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">756
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CI"><span class="optfmt">CI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CIV</td>
+<td class="glossary-desc cell-noborder-bothsep-l">384</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CK"><span class="optfmt">CK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">COK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">184
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CL"><span class="optfmt">CL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CHL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">152</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CM"><span class="optfmt">CM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CMR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">120
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CN"><span class="optfmt">CN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CHN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">156</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CO"><span class="optfmt">CO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">COL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">170
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CR"><span class="optfmt">CR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CRI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">188</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CU"><span class="optfmt">CU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CUB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">192
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CV"><span class="optfmt">CV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CPV</td>
+<td class="glossary-desc cell-noborder-bothsep-l">132</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CW"><span class="optfmt">CW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CUW</td>
+<td class="glossary-desc cell-noborder-bothsep-l">531
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CX"><span class="optfmt">CX</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CXR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">162</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.CY"><span class="optfmt">CY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CYP</td>
+<td class="glossary-desc cell-noborder-bothsep-l">196
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.CZ"><span class="optfmt">CZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CZE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">203</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.DE"><span class="optfmt">DE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">DEU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">276
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.DJ"><span class="optfmt">DJ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">DJI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">262</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.DK"><span class="optfmt">DK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">DNK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">208
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.DM"><span class="optfmt">DM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">DMA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">212</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.DO"><span class="optfmt">DO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">DOM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">214
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.DZ"><span class="optfmt">DZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">DZA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">012</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.EC"><span class="optfmt">EC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ECU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">218
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.EE"><span class="optfmt">EE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">EST</td>
+<td class="glossary-desc cell-noborder-bothsep-l">233</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.EG"><span class="optfmt">EG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">EGY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">818
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.EH"><span class="optfmt">EH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ESH</td>
+<td class="glossary-desc cell-noborder-bothsep-l">732</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ER"><span class="optfmt">ER</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ERI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">232
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.ES"><span class="optfmt">ES</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ESP</td>
+<td class="glossary-desc cell-noborder-bothsep-l">724</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ET"><span class="optfmt">ET</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ETH</td>
+<td class="glossary-desc cell-noborder-bothsep-l">231
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.FI"><span class="optfmt">FI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">FIN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">246</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.FJ"><span class="optfmt">FJ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">FJI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">242
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.FK"><span class="optfmt">FK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">FLK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">238</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.FM"><span class="optfmt">FM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">FSM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">583
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.FO"><span class="optfmt">FO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">FRO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">234</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.FR"><span class="optfmt">FR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">FRA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">250
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GA"><span class="optfmt">GA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GAB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">266</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GB"><span class="optfmt">GB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GBR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">826
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GD"><span class="optfmt">GD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GRD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">308</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GE"><span class="optfmt">GE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GEO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">268
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GF"><span class="optfmt">GF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GUF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">254</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GG"><span class="optfmt">GG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GGY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">831
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GH"><span class="optfmt">GH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GHA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">288</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GI"><span class="optfmt">GI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GIB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">292
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GL"><span class="optfmt">GL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GRL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">304</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GM"><span class="optfmt">GM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GMB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">270
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GN"><span class="optfmt">GN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GIN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">324</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GP"><span class="optfmt">GP</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GLP</td>
+<td class="glossary-desc cell-noborder-bothsep-l">312
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GQ"><span class="optfmt">GQ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GNQ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">226</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GR"><span class="optfmt">GR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GRC</td>
+<td class="glossary-desc cell-noborder-bothsep-l">300
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GS"><span class="optfmt">GS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SGS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">239</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GT"><span class="optfmt">GT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GTM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">320
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GU"><span class="optfmt">GU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GUM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">316</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.GW"><span class="optfmt">GW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GNB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">624
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.GY"><span class="optfmt">GY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">GUY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">328</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.HK"><span class="optfmt">HK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">HKG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">344
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.HM"><span class="optfmt">HM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">HMD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">334</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.HN"><span class="optfmt">HN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">HND</td>
+<td class="glossary-desc cell-noborder-bothsep-l">340
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.HR"><span class="optfmt">HR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">HRV</td>
+<td class="glossary-desc cell-noborder-bothsep-l">191</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.HT"><span class="optfmt">HT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">HTI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">332
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.HU"><span class="optfmt">HU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">HUN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">348</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ID"><span class="optfmt">ID</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IDN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">360
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.IE"><span class="optfmt">IE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IRL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">372</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.IL"><span class="optfmt">IL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ISR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">376
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.IM"><span class="optfmt">IM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IMN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">833</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.IN"><span class="optfmt">IN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IND</td>
+<td class="glossary-desc cell-noborder-bothsep-l">356
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.IO"><span class="optfmt">IO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IOT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">086</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.IQ"><span class="optfmt">IQ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IRQ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">368
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.IR"><span class="optfmt">IR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">IRN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">364</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.IS"><span class="optfmt">IS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ISL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">352
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.IT"><span class="optfmt">IT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ITA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">380</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.JE"><span class="optfmt">JE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">JEY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">832
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.JM"><span class="optfmt">JM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">JAM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">388</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.JO"><span class="optfmt">JO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">JOR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">400
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.JP"><span class="optfmt">JP</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">JPN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">392</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.KE"><span class="optfmt">KE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KEN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">404
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.KG"><span class="optfmt">KG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KGZ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">417</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.KH"><span class="optfmt">KH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KHM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">116
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.KI"><span class="optfmt">KI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KIR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">296</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.KM"><span class="optfmt">KM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">COM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">174
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.KN"><span class="optfmt">KN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KNA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">659</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.KP"><span class="optfmt">KP</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PRK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">408
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.KR"><span class="optfmt">KR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KOR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">410</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.KW"><span class="optfmt">KW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KWT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">414
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.KY"><span class="optfmt">KY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">CYM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">136</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.KZ"><span class="optfmt">KZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">KAZ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">398
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.LA"><span class="optfmt">LA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LAO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">418</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.LB"><span class="optfmt">LB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LBN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">422
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.LC"><span class="optfmt">LC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LCA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">662</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.LI"><span class="optfmt">LI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LIE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">438
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.LK"><span class="optfmt">LK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LKA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">144</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.LR"><span class="optfmt">LR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LBR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">430
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.LS"><span class="optfmt">LS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LSO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">426</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.LT"><span class="optfmt">LT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LTU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">440
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.LU"><span class="optfmt">LU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LUX</td>
+<td class="glossary-desc cell-noborder-bothsep-l">442</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.LV"><span class="optfmt">LV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LVA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">428
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.LY"><span class="optfmt">LY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">LBY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">434</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MA"><span class="optfmt">MA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MAR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">504
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MC"><span class="optfmt">MC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MCO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">492</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MD"><span class="optfmt">MD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MDA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">498
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.ME"><span class="optfmt">ME</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MNE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">499</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MF"><span class="optfmt">MF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MAF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">663
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MG"><span class="optfmt">MG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MDG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">450</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MH"><span class="optfmt">MH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MHL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">584
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MK"><span class="optfmt">MK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MKD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">807</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ML"><span class="optfmt">ML</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MLI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">466
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MM"><span class="optfmt">MM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MMR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">104</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MN"><span class="optfmt">MN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MNG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">496
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MO"><span class="optfmt">MO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MAC</td>
+<td class="glossary-desc cell-noborder-bothsep-l">446</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MP"><span class="optfmt">MP</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MNP</td>
+<td class="glossary-desc cell-noborder-bothsep-l">580
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MQ"><span class="optfmt">MQ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MTQ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">474</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MR"><span class="optfmt">MR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MRT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">478
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MS"><span class="optfmt">MS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MSR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">500</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MT"><span class="optfmt">MT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MLT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">470
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MU"><span class="optfmt">MU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MUS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">480</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MV"><span class="optfmt">MV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MDV</td>
+<td class="glossary-desc cell-noborder-bothsep-l">462
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MW"><span class="optfmt">MW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MWI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">454</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MX"><span class="optfmt">MX</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MEX</td>
+<td class="glossary-desc cell-noborder-bothsep-l">484
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.MY"><span class="optfmt">MY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MYS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">458</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.MZ"><span class="optfmt">MZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MOZ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">508
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.NA"><span class="optfmt">NA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NAM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">516</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.NC"><span class="optfmt">NC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NCL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">540
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.NE"><span class="optfmt">NE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NER</td>
+<td class="glossary-desc cell-noborder-bothsep-l">562</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.NF"><span class="optfmt">NF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NFK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">574
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.NG"><span class="optfmt">NG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NGA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">566</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.NI"><span class="optfmt">NI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NIC</td>
+<td class="glossary-desc cell-noborder-bothsep-l">558
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.NL"><span class="optfmt">NL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NLD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">528</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.NO"><span class="optfmt">NO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NOR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">578
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.NP"><span class="optfmt">NP</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NPL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">524</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.NR"><span class="optfmt">NR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NRU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">520
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.NU"><span class="optfmt">NU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NIU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">570</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.NZ"><span class="optfmt">NZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">NZL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">554
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.OM"><span class="optfmt">OM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">OMN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">512</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PA"><span class="optfmt">PA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PAN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">591
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PE"><span class="optfmt">PE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PER</td>
+<td class="glossary-desc cell-noborder-bothsep-l">604</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PF"><span class="optfmt">PF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PYF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">258
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PG"><span class="optfmt">PG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PNG</td>
+<td class="glossary-desc cell-noborder-bothsep-l">598</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PH"><span class="optfmt">PH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PHL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">608
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PK"><span class="optfmt">PK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PAK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">586</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PL"><span class="optfmt">PL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">POL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">616
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PM"><span class="optfmt">PM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SPM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">666</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PN"><span class="optfmt">PN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PCN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">612
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PR"><span class="optfmt">PR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PRI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">630</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PS"><span class="optfmt">PS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PSE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">275
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PT"><span class="optfmt">PT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PRT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">620</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.PW"><span class="optfmt">PW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PLW</td>
+<td class="glossary-desc cell-noborder-bothsep-l">585
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.PY"><span class="optfmt">PY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">PRY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">600</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.QA"><span class="optfmt">QA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">QAT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">634
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.RE"><span class="optfmt">RE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">REU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">638</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.RO"><span class="optfmt">RO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ROU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">642
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.RS"><span class="optfmt">RS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SRB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">688</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.RU"><span class="optfmt">RU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">RUS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">643
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.RW"><span class="optfmt">RW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">RWA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">646</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SA"><span class="optfmt">SA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SAU</td>
+<td class="glossary-desc cell-noborder-bothsep-l">682
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SB"><span class="optfmt">SB</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SLB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">090</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SC"><span class="optfmt">SC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SYC</td>
+<td class="glossary-desc cell-noborder-bothsep-l">690
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SD"><span class="optfmt">SD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SDN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">729</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SE"><span class="optfmt">SE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SWE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">752
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SG"><span class="optfmt">SG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SGP</td>
+<td class="glossary-desc cell-noborder-bothsep-l">702</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SH"><span class="optfmt">SH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SHN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">654
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SI"><span class="optfmt">SI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SVN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">705</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SJ"><span class="optfmt">SJ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SJM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">744
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SK"><span class="optfmt">SK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SVK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">703</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SL"><span class="optfmt">SL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SLE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">694
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SM"><span class="optfmt">SM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SMR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">674</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SN"><span class="optfmt">SN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SEN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">686
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SO"><span class="optfmt">SO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SOM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">706</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SR"><span class="optfmt">SR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SUR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">740
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SS"><span class="optfmt">SS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SSD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">728</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ST"><span class="optfmt">ST</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">STP</td>
+<td class="glossary-desc cell-noborder-bothsep-l">678
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SV"><span class="optfmt">SV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SLV</td>
+<td class="glossary-desc cell-noborder-bothsep-l">222</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SX"><span class="optfmt">SX</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SXM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">534
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.SY"><span class="optfmt">SY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SYR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">760</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.SZ"><span class="optfmt">SZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">SWZ</td>
+<td class="glossary-desc cell-noborder-bothsep-l">748
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TC"><span class="optfmt">TC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TCA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">796</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TD"><span class="optfmt">TD</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TCD</td>
+<td class="glossary-desc cell-noborder-bothsep-l">148
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TF"><span class="optfmt">TF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ATF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">260</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TG"><span class="optfmt">TG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TGO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">768
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TH"><span class="optfmt">TH</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">THA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">764</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TJ"><span class="optfmt">TJ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TJK</td>
+<td class="glossary-desc cell-noborder-bothsep-l">762
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TK"><span class="optfmt">TK</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TKL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">772</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TL"><span class="optfmt">TL</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TLS</td>
+<td class="glossary-desc cell-noborder-bothsep-l">626
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TM"><span class="optfmt">TM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TKM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">795</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TN"><span class="optfmt">TN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TUN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">788
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TO"><span class="optfmt">TO</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TON</td>
+<td class="glossary-desc cell-noborder-bothsep-l">776</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TR"><span class="optfmt">TR</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TUR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">792
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TT"><span class="optfmt">TT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TTO</td>
+<td class="glossary-desc cell-noborder-bothsep-l">780</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TV"><span class="optfmt">TV</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TUV</td>
+<td class="glossary-desc cell-noborder-bothsep-l">798
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.TW"><span class="optfmt">TW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TWN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">158</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.TZ"><span class="optfmt">TZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">TZA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">834
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.UA"><span class="optfmt">UA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">UKR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">804</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.UG"><span class="optfmt">UG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">UGA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">800
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.UM"><span class="optfmt">UM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">UMI</td>
+<td class="glossary-desc cell-noborder-bothsep-l">581</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.US"><span class="optfmt">US</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">USA</td>
+<td class="glossary-desc cell-noborder-bothsep-l">840
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.UY"><span class="optfmt">UY</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">URY</td>
+<td class="glossary-desc cell-noborder-bothsep-l">858</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.UZ"><span class="optfmt">UZ</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">UZB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">860
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.VA"><span class="optfmt">VA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VAT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">336</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.VC"><span class="optfmt">VC</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VCT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">670
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.VE"><span class="optfmt">VE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VEN</td>
+<td class="glossary-desc cell-noborder-bothsep-l">862</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.VG"><span class="optfmt">VG</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VGB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">092
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.VI"><span class="optfmt">VI</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VIR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">850</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.VN"><span class="optfmt">VN</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VNM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">704
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.VU"><span class="optfmt">VU</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">VUT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">548</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.WF"><span class="optfmt">WF</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">WLF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">876
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.WS"><span class="optfmt">WS</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">WSM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">882</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.YE"><span class="optfmt">YE</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">YEM</td>
+<td class="glossary-desc cell-noborder-bothsep-l">887
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.YT"><span class="optfmt">YT</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">MYT</td>
+<td class="glossary-desc cell-noborder-bothsep-l">175</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ZA"><span class="optfmt">ZA</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ZAF</td>
+<td class="glossary-desc cell-noborder-bothsep-l">710
+<td class="glossary-name cell-noborder-bothsep-l cell-left-border"><dfn id="glo:opt.ZM"><span class="optfmt">ZM</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ZMB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">894</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.ZW"><span class="optfmt">ZW</span></dfn></td>
+<td class="glossary-other cell-noborder-bothsep-l">ZWE</td>
+<td class="glossary-desc cell-noborder-bothsep-l">716<td colspan="3" class="cell-left-border"></td></tr></table>
+<p>
+
+<table class="glossary-ruled">
+<caption id="tab:scriptmappings">Table&nbsp;5: Script Mappings</caption>
+<tr class="glossary-ruled">
+<th class="glossary-name cell-noborder-bothsep-l">Alpha-2</th>
+<th class="glossary-symbol cell-noborder-bothsep-c">Numeric</th>
+<th class="glossary-other cell-noborder-bothsep-l">Direction</th>
+<th class="glossary-desc cell-noborder-bothsep-l">Description</th></tr>
+
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Adlm"><span class="optfmt">Adlm</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">166</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Adlam.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Afak"><span class="optfmt">Afak</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">439</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Afaka.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Aghb"><span class="optfmt">Aghb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">239</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Caucasian Albanian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Ahom"><span class="optfmt">Ahom</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">338</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Ahom, Tai Ahom.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Arab"><span class="optfmt">Arab</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">160</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Arabic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Aran"><span class="optfmt">Aran</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">161</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Arabic (Nastaliq variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Armi"><span class="optfmt">Armi</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">124</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Imperial Aramaic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Armn"><span class="optfmt">Armn</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">230</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Armenian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Avst"><span class="optfmt">Avst</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">134</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Avestan.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Bali"><span class="optfmt">Bali</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">360</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Balinese.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Bamu"><span class="optfmt">Bamu</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">435</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Bamum.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Bass"><span class="optfmt">Bass</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">259</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Bassa Vah.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Batk"><span class="optfmt">Batk</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">365</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Batak.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Beng"><span class="optfmt">Beng</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">334</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Bhaiksuki.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Blis"><span class="optfmt">Blis</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">550</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Blissymbols.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Bopo"><span class="optfmt">Bopo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">285</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Bopomofo.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Brah"><span class="optfmt">Brah</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">300</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Brahmi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Brai"><span class="optfmt">Brai</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">570</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Braille.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Bugi"><span class="optfmt">Bugi</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">367</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Buginese.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Buhd"><span class="optfmt">Buhd</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">372</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Buhid.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cakm"><span class="optfmt">Cakm</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">349</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Chakma.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cans"><span class="optfmt">Cans</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">440</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Unified Canadian Aboriginal Syllabics.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cari"><span class="optfmt">Cari</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">201</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Carian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cham"><span class="optfmt">Cham</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">358</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cham.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cher"><span class="optfmt">Cher</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">445</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cherokee.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cirt"><span class="optfmt">Cirt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">291</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cirth.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Copt"><span class="optfmt">Copt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">204</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Coptic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cprt"><span class="optfmt">Cprt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">403</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cypriot.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cyrl"><span class="optfmt">Cyrl</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">220</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cyrillic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Cyrs"><span class="optfmt">Cyrs</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">221</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cyrillic (Old Church Slavonic variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Deva"><span class="optfmt">Deva</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">315</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Devanagari (Nagari).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Dsrt"><span class="optfmt">Dsrt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">250</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Deseret (Mormon).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Dupl"><span class="optfmt">Dupl</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">755</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Duployan shorthand, Duployan stenography.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Egyd"><span class="optfmt">Egyd</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">070</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Egyptian demotic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Egyh"><span class="optfmt">Egyh</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">060</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Egyptian hieratic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Egyp"><span class="optfmt">Egyp</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">050</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Egyptian hieroglyphs.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Elba"><span class="optfmt">Elba</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">226</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Elbasan.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Ethi"><span class="optfmt">Ethi</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">430</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Ethiopic (Ge’ez).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Geok"><span class="optfmt">Geok</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">241</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Khutsuri (Asomtavruli and Nuskhuri).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Geor"><span class="optfmt">Geor</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">240</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Georgian (Mkhedruli).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Glag"><span class="optfmt">Glag</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">225</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Glagolitic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Goth"><span class="optfmt">Goth</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">206</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Gothic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Gran"><span class="optfmt">Gran</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">343</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Grantha.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Grek"><span class="optfmt">Grek</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">200</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Greek.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Gujr"><span class="optfmt">Gujr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">320</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Gujarati.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Guru"><span class="optfmt">Guru</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">310</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Gurmukhi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hanb"><span class="optfmt">Hanb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">503</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Han with Bopomofo (alias for Han + Bopomofo).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hang"><span class="optfmt">Hang</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">286</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Hangul.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hani"><span class="optfmt">Hani</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">500</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Han (Hanzi, Kanji, Hanja).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hano"><span class="optfmt">Hano</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">371</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Hanunoo.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hans"><span class="optfmt">Hans</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">501</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Han (Simplified variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hant"><span class="optfmt">Hant</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">502</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Han (Traditional variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hatr"><span class="optfmt">Hatr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">127</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Hatran.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hebr"><span class="optfmt">Hebr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">125</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Hebrew.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hira"><span class="optfmt">Hira</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">410</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Hiragana.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hluw"><span class="optfmt">Hluw</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">080</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hmng"><span class="optfmt">Hmng</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">450</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Pahawh Hmong.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hrkt"><span class="optfmt">Hrkt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">412</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Japanese syllabaries (alias for Hiragana + Katakana).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Hung"><span class="optfmt">Hung</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">176</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old Hungarian (Hungarian Runic).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Inds"><span class="optfmt">Inds</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">610</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Indus (Harappan).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Ital"><span class="optfmt">Ital</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">210</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old Italic (Etruscan, Oscan, etc.)</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Jamo"><span class="optfmt">Jamo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">284</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Jamo (alias for Jamo subset of Hangul).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Java"><span class="optfmt">Java</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">361</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Javanese.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Jpan"><span class="optfmt">Jpan</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">413</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Japanese (alias for Han + Hiragana + Katakana).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Jurc"><span class="optfmt">Jurc</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">510</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Jurchen.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kali"><span class="optfmt">Kali</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">357</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Kayah Li.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kana"><span class="optfmt">Kana</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">411</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Katakana.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Khar"><span class="optfmt">Khar</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">305</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Kharoshthi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Khmr"><span class="optfmt">Khmr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">355</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Khmer.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Khoj"><span class="optfmt">Khoj</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">322</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Khojki.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kitl"><span class="optfmt">Kitl</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">505</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Khitan large script.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kits"><span class="optfmt">Kits</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">288</td>
+<td class="glossary-other cell-noborder-bothsep-l">TB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Khitan small script.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Knda"><span class="optfmt">Knda</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">345</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Kannada.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kore"><span class="optfmt">Kore</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">287</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Korean (alias for Hangul + Han).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kpel"><span class="optfmt">Kpel</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">436</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Kpelle.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Kthi"><span class="optfmt">Kthi</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">317</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Kaithi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Lana"><span class="optfmt">Lana</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">351</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tai Tham (Lanna).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Laoo"><span class="optfmt">Laoo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">356</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Lao.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Latf"><span class="optfmt">Latf</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">217</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Latin (Fraktur variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Latg"><span class="optfmt">Latg</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">216</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Latin (Gaelic variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Latn"><span class="optfmt">Latn</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">215</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Latin.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Leke"><span class="optfmt">Leke</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">364</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Leke.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Lepc"><span class="optfmt">Lepc</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">335</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Lepcha.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Limb"><span class="optfmt">Limb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">336</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Limbu.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Lina"><span class="optfmt">Lina</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">400</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Linear A.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Linb"><span class="optfmt">Linb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">401</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Linear B.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Lisu"><span class="optfmt">Lisu</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">399</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Lisu (Fraser).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Loma"><span class="optfmt">Loma</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">437</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Loma.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Lyci"><span class="optfmt">Lyci</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">202</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Lycian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Lydi"><span class="optfmt">Lydi</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">116</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Lydian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mahj"><span class="optfmt">Mahj</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">314</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mahajani.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mand"><span class="optfmt">Mand</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">140</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mandaic, Mandaean.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mani"><span class="optfmt">Mani</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">139</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Manichaean.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Marc"><span class="optfmt">Marc</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">332</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Marchen.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Maya"><span class="optfmt">Maya</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">090</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mayan hieroglyphs.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mend"><span class="optfmt">Mend</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">438</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mende Kikakui.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Merc"><span class="optfmt">Merc</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">101</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Meroitic Cursive.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mero"><span class="optfmt">Mero</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">100</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Meroitic Hieroglyphs.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mlym"><span class="optfmt">Mlym</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">347</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Malayalam.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Modi"><span class="optfmt">Modi</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">324</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Modi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mong"><span class="optfmt">Mong</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">145</td>
+<td class="glossary-other cell-noborder-bothsep-l">TB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mongolian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Moon"><span class="optfmt">Moon</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">218</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Moon (Moon code, Moon script, Moon type).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mroo"><span class="optfmt">Mroo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">199</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mro, Mru.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mtei"><span class="optfmt">Mtei</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">337</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Meitei Mayek (Meithei, Meetei).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mult"><span class="optfmt">Mult</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">323</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Multani.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Mymr"><span class="optfmt">Mymr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">350</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Myanmar (Burmese).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Narb"><span class="optfmt">Narb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">106</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old North Arabian (Ancient North Arabian).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Nbat"><span class="optfmt">Nbat</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">159</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Nabataean.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Newa"><span class="optfmt">Newa</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">333</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Newa, Newar, Newari.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Nkgb"><span class="optfmt">Nkgb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">420</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Nakhi Geba.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Nkoo"><span class="optfmt">Nkoo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">165</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">N’Ko.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Nshu"><span class="optfmt">Nshu</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">499</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Nushu.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Ogam"><span class="optfmt">Ogam</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">212</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Ogham.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Olck"><span class="optfmt">Olck</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">261</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Ol Chiki.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Orkh"><span class="optfmt">Orkh</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">175</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old Turkic, Orkhon Runic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Orya"><span class="optfmt">Orya</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">327</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Oriya.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Osge"><span class="optfmt">Osge</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">219</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Osage.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Osma"><span class="optfmt">Osma</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">260</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Osmanya.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Palm"><span class="optfmt">Palm</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">126</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Palmyrene.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Pauc"><span class="optfmt">Pauc</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">263</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Pau Cin Hau.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Perm"><span class="optfmt">Perm</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">227</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old Permic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Phag"><span class="optfmt">Phag</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">331</td>
+<td class="glossary-other cell-noborder-bothsep-l">TB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Phags-pa.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Phli"><span class="optfmt">Phli</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">131</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Inscriptional Pahlavi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Phlp"><span class="optfmt">Phlp</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">132</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Psalter Pahlavi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Phlv"><span class="optfmt">Phlv</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">133</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Book Pahlavi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Phnx"><span class="optfmt">Phnx</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">115</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Phoenician.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Piqd"><span class="optfmt">Piqd</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">293</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Klingon (KLI plqaD).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Plrd"><span class="optfmt">Plrd</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">282</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Miao (Pollard).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Prti"><span class="optfmt">Prti</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">130</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Inscriptional Parthian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Qaaa"><span class="optfmt">Qaaa</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">900</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Reserved for private use (start).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Qaai"><span class="optfmt">Qaai</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">908</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Private use.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Qabx"><span class="optfmt">Qabx</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">949</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Reserved for private use (end).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Rjng"><span class="optfmt">Rjng</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">363</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Rejang (Redjang, Kaganga).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Roro"><span class="optfmt">Roro</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">620</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Rongorongo.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Runr"><span class="optfmt">Runr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">211</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Runic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Samr"><span class="optfmt">Samr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">123</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Samaritan.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sara"><span class="optfmt">Sara</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">292</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Sarati.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sarb"><span class="optfmt">Sarb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">105</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old South Arabian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Saur"><span class="optfmt">Saur</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">344</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Saurashtra.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sgnw"><span class="optfmt">Sgnw</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">095</td>
+<td class="glossary-other cell-noborder-bothsep-l">TB</td>
+<td class="glossary-desc cell-noborder-bothsep-l">SignWriting.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Shaw"><span class="optfmt">Shaw</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">281</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Shavian (Shaw).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Shrd"><span class="optfmt">Shrd</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">319</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Sharada.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sidd"><span class="optfmt">Sidd</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">302</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Siddham.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sind"><span class="optfmt">Sind</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">318</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Khudawadi, Sindhi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sinh"><span class="optfmt">Sinh</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">348</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Sinhala.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sora"><span class="optfmt">Sora</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">398</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Sora Sompeng.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sund"><span class="optfmt">Sund</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">362</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Sundanese.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Sylo"><span class="optfmt">Sylo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">316</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Syloti Nagri.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Syrc"><span class="optfmt">Syrc</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">135</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Syriac.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Syre"><span class="optfmt">Syre</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">138</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Syriac (Estrangelo variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Syrj"><span class="optfmt">Syrj</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">137</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Syriac (Western variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Syrn"><span class="optfmt">Syrn</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">136</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Syriac (Eastern variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tagb"><span class="optfmt">Tagb</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">373</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tagbanwa.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Takr"><span class="optfmt">Takr</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">321</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Takri.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tale"><span class="optfmt">Tale</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">353</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tai Le.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Talu"><span class="optfmt">Talu</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">354</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">New Tai Lue.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Taml"><span class="optfmt">Taml</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">346</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tamil.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tang"><span class="optfmt">Tang</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">520</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tangut.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tavt"><span class="optfmt">Tavt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">359</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tai Viet.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Telu"><span class="optfmt">Telu</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">340</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Telugu.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Teng"><span class="optfmt">Teng</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">290</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tengwar.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tfng"><span class="optfmt">Tfng</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">120</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tifinagh (Berber).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tglg"><span class="optfmt">Tglg</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">370</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tagalog (Baybayin, Alibata).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Thaa"><span class="optfmt">Thaa</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">170</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Thaana.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Thai"><span class="optfmt">Thai</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">352</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Thai.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tibt"><span class="optfmt">Tibt</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">330</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tibetan.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Tirh"><span class="optfmt">Tirh</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">326</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Tirhuta.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Ugar"><span class="optfmt">Ugar</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">040</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Ugaritic.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Vaii"><span class="optfmt">Vaii</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">470</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Vai.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Visp"><span class="optfmt">Visp</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">280</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Visible Speech.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Wara"><span class="optfmt">Wara</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">262</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Warang Citi (Varang Kshiti).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Wole"><span class="optfmt">Wole</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">480</td>
+<td class="glossary-other cell-noborder-bothsep-l">RL</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Woleai.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Xpeo"><span class="optfmt">Xpeo</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">030</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Old Persian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Xsux"><span class="optfmt">Xsux</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">020</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Cuneiform, Sumero-Akkadian.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Yiii"><span class="optfmt">Yiii</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">460</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Yi.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zinh"><span class="optfmt">Zinh</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">994</td>
+<td class="glossary-other cell-noborder-bothsep-l">inherited</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Inherited script.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zmth"><span class="optfmt">Zmth</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">995</td>
+<td class="glossary-other cell-noborder-bothsep-l">LR</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Mathematical notation.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zsye"><span class="optfmt">Zsye</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">993</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Symbols (emoji variant).</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zsym"><span class="optfmt">Zsym</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">996</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Symbols.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zxxx"><span class="optfmt">Zxxx</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">997</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Unwritten documents.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zyyy"><span class="optfmt">Zyyy</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">998</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Undetermined script.</tr>
+<tr>
+<td class="glossary-name cell-noborder-bothsep-l"><dfn id="glo:opt.Zzzz"><span class="optfmt">Zzzz</span></dfn></td>
+<td class="glossary-symbol cell-noborder-bothsep-c">999</td>
+<td class="glossary-other cell-noborder-bothsep-l">varies</td>
+<td class="glossary-desc cell-noborder-bothsep-l">Uncoded script.</tr></table>
+<p>
+
+</section><!-- end of section sec:regscriptmappings -->
+
+<section id="symbols"><!-- start of section symbols --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->Symbols<div class="labellink"><a href="#symbols">[link]</a></div></h1><!-- end of chapter header -->
+
+<dl class="inlineblock">
+<dt><dfn id="glo:sym.definition">📌</dfn></dt>
+<dd>The syntax and usage of a command, environment or option etc.</dd>
+<dt><dfn id="glo:sym.important">ℹ</dfn></dt>
+<dd>An important message.</dd>
+<dt><dfn id="glo:sym.information">🛈</dfn></dt>
+<dd>Prominent information.</dd>
+<dt><dfn id="glo:sym.code">🖹</dfn></dt>
+<dd>LaTeX code to insert into your document.</dd>
+<dt><dfn id="glo:sym.result">🖺</dfn></dt>
+<dd>How the example code should appear in the PDF.</dd>
+<dt><dfn id="glo:sym.terminal">〉_</dfn></dt>
+<dd>A command-line application invocation that needs to be entered into a <a href="https://www.dickimaw-books.com/latex/novices/html/terminal.html">terminal or command prompt</a>.</dd>
+
+</dl>
+
+</section><!-- end of section symbols -->
+
+<section id="glossary"><!-- start of section glossary --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->Glossary<div class="labellink"><a href="#glossary">[link]</a></div></h1><!-- end of chapter header -->
+
+<dl>
+<dt><a id="wrglossary.1417"></a><dfn id="glo:dual.cli">Command-line interface (CLI)</dfn></dt>
+<dd>An application that doesn’t have a graphical user interface. That is, an application that doesn’t have any windows, buttons or menus and can be run in <a href="https://www.dickimaw-books.com/latex/novices/html/terminal.html">a command prompt or terminal</a>.</dd>
+<dt><a id="wrglossary.1418"></a><dfn id="glo:dual.shellescape">Shell escape</dfn></dt>
+<dd>TeX has the ability to run <a id="wrglossary.1419"></a><a href="#glo:dual.cli">CLI</a> applications while it’s typesetting a document. Whilst this is a convenient way of using tools to help build the document, it’s a security risk. To help protect users from arbitrary―and potentially dangerous―code from begin executed, TeX has a restricted mode, where only trusted applications are allowed to run. This is usually the default mode, but your TeX installation may be set up so that the shell escape is disabled by default. The unrestricted mode allows you to run any application from the shell escape. Take care about enabling this option. If you receive a document or package from an untrusted source, first run TeX with the shell escape disabled or in restricted mode and search the <a id="wrglossary.1420"></a><a href="#glo:ext.log"><span class="extfmt">log</span></a> file for <span class="qt">“runsystem”</span> before using the unrestricted mode. Note that LuaLaTeX additionally requires the <a id="wrglossary.1421"></a><a href="#glo:pkg.shellesc"><span class="styfmt">shellesc</span></a> package.</dd>
+
+</dl>
+
+</section><!-- end of section glossary -->
+
+<section id="cmdsummary"><!-- start of section cmdsummary --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->Command Summary<div class="labellink"><a href="#cmdsummary">[link]</a></div></h1><!-- end of chapter header -->
+
+</section><!-- end of section cmdsummary -->
+
+<section id="summary.index@"><!-- start of section summary.index@ --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->@<div class="labellink"><a href="#summary.index@">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1422"></a><a href="#glo:@tracklang@declareoption"><code class="csfmt">\@tracklang@declareoption</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1423"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> v1.1+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Provided by <a id="wrglossary.1424"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> to declare <span class="meta">〈<em class="metainner">dialect</em>〉</span> as a package option that tracks <span class="meta">〈<em class="metainner">dialect</em>〉</span>. Provided by <a id="wrglossary.1425"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a>, if not already defined, to ignore its argument. <a href="#sec:generic">§3</a>; <a href="#wrglossary.283">19</a><p>
+<div class="defnbox"><a id="wrglossary.1426"></a><a href="#glo:@tracklang@for"><code class="csfmt">\@tracklang@for</code></a><code class="code"><span class="meta">〈<em class="metainner">cs</em>〉</span>:=<span class="meta">〈<em class="metainner">list</em>〉</span><span class="cmdfmt">\do</span>{<span class="meta">〈<em class="metainner">body</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1427"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+As LaTeX’s <a id="wrglossary.1428"></a><a href="#glo:@for"><code class="csfmt">\@for</code></a>. <a href="#sec:user">§5</a>; <a href="#wrglossary.649">37</a><p>
+<div class="defnbox"><a id="wrglossary.1429"></a><a href="#glo:@tracklang@prelangpkgcheck@hook"><code class="csfmt">\@tracklang@prelangpkgcheck@hook</code></a></div><!-- end of defnbox -->
+<p>
+If defined before <a id="wrglossary.1430"></a><a href="#glo:pkg.tracklang"><span class="filefmt">tracklang.sty</span></a> v1.3.8+ is loaded, this command will be done after package options have been processed but before the check for language packages, such as <a id="wrglossary.1431"></a><a href="#glo:pkg.babel"><span class="styfmt">babel</span></a> and <a id="wrglossary.1432"></a><a href="#glo:pkg.polyglossia"><span class="styfmt">polyglossia</span></a>. <a href="#sec:langsty">§6</a>; <a href="#wrglossary.1198">71</a><p>
+
+</section><!-- end of section summary.index@ -->
+
+<section id="summary.index6553600"><!-- start of section summary.index6553600 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->A<div class="labellink"><a href="#summary.index6553600">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1433"></a><dfn id="glo:AddTrackedCountryIsoCode"><code class="csfmt">\AddTrackedCountryIsoCode</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1434"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Adds the <a id="wrglossary.1435"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> code.<p>
+<div class="defnbox"><a id="wrglossary.1436"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1437"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Tracks a dialect. This command defines <a id="wrglossary.1438"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a> to provide a convenient way to reference the last dialect to be tracked. <a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1283">75</a><p>
+<div class="defnbox"><a id="wrglossary.1439"></a><dfn id="glo:AddTrackedIsoLanguage"><code class="csfmt">\AddTrackedIsoLanguage</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1440"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Adds a mapping between the given <a id="wrglossary.1441"></a><a href="#glo:ISO">ISO</a> code and language name.<p>
+<div class="defnbox"><a id="wrglossary.1442"></a><a href="#glo:AddTrackedLanguage"><code class="csfmt">\AddTrackedLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1443"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Shortcut for <code class="code"><a id="wrglossary.1444"></a><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a>{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code>. <a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1284">75</a><p>
+<div class="defnbox"><a id="wrglossary.1445"></a><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a><code class="code">{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1446"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Adds the <a id="wrglossary.1447"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a>, <a id="wrglossary.1448"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> and <a id="wrglossary.1449"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a> codes, which must have previously been declared using <a id="wrglossary.1450"></a><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1331">77</a><p>
+<div class="defnbox"><a id="wrglossary.1451"></a><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a><code class="code">{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1452"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there are any tracked languages, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.618">35</a><p>
+
+</section><!-- end of section summary.index6553600 -->
+
+<section id="summary.index6684672"><!-- start of section summary.index6684672 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->C<div class="labellink"><a href="#summary.index6684672">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1453"></a><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a><span class="floatrightbox"><a id="wrglossary.1454"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1455"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the dialect label, which may be the supplied <span class="meta">〈<em class="metainner">dialect</em>〉</span> label or the mapped label or, if <span class="meta">〈<em class="metainner">dialect</em>〉</span> is a root language label, the last tracked dialect for the given root language. <a href="#sec:user">§5</a>; <a href="#wrglossary.778">46</a><p>
+<div class="defnbox"><a id="wrglossary.1456"></a><a href="#glo:CurrentTrackedDialectAdditional"><code class="csfmt">\CurrentTrackedDialectAdditional</code></a><span class="floatrightbox"><a id="wrglossary.1457"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1458"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the additional part associated with the dialect (may be empty). <a href="#sec:user">§5</a>; <a href="#wrglossary.790">46</a><p>
+<div class="defnbox"><a id="wrglossary.1459"></a><a href="#glo:CurrentTrackedDialectModifier"><code class="csfmt">\CurrentTrackedDialectModifier</code></a><span class="floatrightbox"><a id="wrglossary.1460"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1461"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the associated modifier (may be empty). <a href="#sec:user">§5</a>; <a href="#wrglossary.787">46</a><p>
+<div class="defnbox"><a id="wrglossary.1462"></a><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a><span class="floatrightbox"><a id="wrglossary.1463"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1464"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the script associated with the dialect, or to the default script for the language. <a href="#sec:user">§5</a>; <a href="#wrglossary.793">47</a><p>
+<div class="defnbox"><a id="wrglossary.1465"></a><a href="#glo:CurrentTrackedDialectSubLang"><code class="csfmt">\CurrentTrackedDialectSubLang</code></a><span class="floatrightbox"><a id="wrglossary.1466"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1467"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the sub language associated with the dialect (may be empty). <a href="#sec:user">§5</a>; <a href="#wrglossary.789">46</a><p>
+<div class="defnbox"><a id="wrglossary.1468"></a><a href="#glo:CurrentTrackedDialectVariant"><code class="csfmt">\CurrentTrackedDialectVariant</code></a><span class="floatrightbox"><a id="wrglossary.1469"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1470"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the associated variant (may be empty). <a href="#sec:user">§5</a>; <a href="#wrglossary.788">46</a><p>
+<div class="defnbox"><a id="wrglossary.1471"></a><a href="#glo:CurrentTrackedIsoCode"><code class="csfmt">\CurrentTrackedIsoCode</code></a><span class="floatrightbox"><a id="wrglossary.1472"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1473"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the <a id="wrglossary.1474"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> or <a id="wrglossary.1475"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> or <a id="wrglossary.1476"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a> language code (may be empty). <a href="#sec:user">§5</a>; <a href="#wrglossary.783">46</a><p>
+<div class="defnbox"><a id="wrglossary.1477"></a><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a><span class="floatrightbox"><a id="wrglossary.1478"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1479"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the associated root language label. <a href="#sec:user">§5</a>; <a href="#wrglossary.779">46</a><p>
+<div class="defnbox"><a id="wrglossary.1480"></a><a href="#glo:CurrentTrackedLanguageTag"><code class="csfmt">\CurrentTrackedLanguageTag</code></a><span class="floatrightbox"><a id="wrglossary.1481"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1482"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the language tag that identifies the dialect or <a id="wrglossary.1483"></a><a href="#glo:opt.undetermined"><span class="optfmt">und</span></a> if no match. <a href="#sec:user">§5</a>; <a href="#wrglossary.791">47</a><p>
+<div class="defnbox"><a id="wrglossary.1484"></a><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a><span class="floatrightbox"><a id="wrglossary.1485"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1486"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a> to the <a id="wrglossary.1487"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> region code associated with the dialect (may be empty). <a href="#sec:user">§5</a>; <a href="#wrglossary.780">46</a><p>
+<div class="defnbox"><a id="wrglossary.1488"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a><span class="floatrightbox"><a id="wrglossary.1489"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the current tracked tag. <a href="#sec:user">§5</a>; <a href="#wrglossary.766">45</a><p>
+
+</section><!-- end of section summary.index6684672 -->
+
+<section id="summary.index6881280"><!-- start of section summary.index6881280 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->F<div class="labellink"><a href="#summary.index6881280">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1490"></a><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">cs</em>〉</span>}{<span class="meta">〈<em class="metainner">body</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1491"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Iterates through the list of tracked dialects. On each iteration <span class="meta">〈<em class="metainner">cs</em>〉</span> is set to the dialect tag and <span class="meta">〈<em class="metainner">body</em>〉</span> is performed. <a href="#sec:user">§5</a>; <a href="#wrglossary.646">37</a><p>
+<div class="defnbox"><a id="wrglossary.1492"></a><a href="#glo:ForEachTrackedLanguage"><code class="csfmt">\ForEachTrackedLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">cs</em>〉</span>}{<span class="meta">〈<em class="metainner">body</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1493"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Iterates through the list of tracked languages. On each iteration <span class="meta">〈<em class="metainner">cs</em>〉</span> is set to the language tag and <span class="meta">〈<em class="metainner">body</em>〉</span> is performed. <a href="#sec:user">§5</a>; <a href="#wrglossary.647">37</a><p>
+
+</section><!-- end of section summary.index6881280 -->
+
+<section id="summary.index6946816"><!-- start of section summary.index6946816 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->G<div class="labellink"><a href="#summary.index6946816">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1494"></a><a href="#glo:GetTrackedDialectAdditional"><code class="csfmt">\GetTrackedDialectAdditional</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1495"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the extra information for <span class="meta">〈<em class="metainner">dialect</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.762">44</a><p>
+<div class="defnbox"><a id="wrglossary.1496"></a><a href="#glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">cs</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1497"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Finds the tracked dialect that matches the given language tag and stores the dialect label in <span class="meta">〈<em class="metainner">cs</em>〉</span>. If no match found, <span class="meta">〈<em class="metainner">cs</em>〉</span> will be empty. <a href="#sec:user">§5</a>; <a href="#wrglossary.619">36</a><p>
+<div class="defnbox"><a id="wrglossary.1498"></a><a href="#glo:GetTrackedDialectModifier"><code class="csfmt">\GetTrackedDialectModifier</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1499"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the modifier for the given dialect. <a href="#sec:user">§5</a>; <a href="#wrglossary.702">40</a><p>
+<div class="defnbox"><a id="wrglossary.1500"></a><a href="#glo:GetTrackedDialectScript"><code class="csfmt">\GetTrackedDialectScript</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1501"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the script for <span class="meta">〈<em class="metainner">dialect</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.738">42</a><p>
+<div class="defnbox"><a id="wrglossary.1502"></a><a href="#glo:GetTrackedDialectSubLang"><code class="csfmt">\GetTrackedDialectSubLang</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1503"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the sub-language for <span class="meta">〈<em class="metainner">dialect</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.760">44</a><p>
+<div class="defnbox"><a id="wrglossary.1504"></a><a href="#glo:GetTrackedDialectVariant"><code class="csfmt">\GetTrackedDialectVariant</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1505"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the modifier for <span class="meta">〈<em class="metainner">dialect</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.735">42</a><p>
+<div class="defnbox"><a id="wrglossary.1506"></a><a href="#glo:GetTrackedLanguageTag"><code class="csfmt">\GetTrackedLanguageTag</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1507"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Gets the language tag for <span class="meta">〈<em class="metainner">dialect</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.700">40</a><p>
+
+</section><!-- end of section summary.index6946816 -->
+
+<section id="summary.index7077888"><!-- start of section summary.index7077888 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->I<div class="labellink"><a href="#summary.index7077888">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1508"></a><a href="#glo:IfHasTrackedDialectAdditional"><code class="csfmt">\IfHasTrackedDialectAdditional</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1509"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s extra information for <span class="meta">〈<em class="metainner">dialect</em>〉</span>, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.763">44</a><p>
+<div class="defnbox"><a id="wrglossary.1510"></a><a href="#glo:IfHasTrackedDialectModifier"><code class="csfmt">\IfHasTrackedDialectModifier</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1511"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a modifier for the given dialect, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.707">41</a><p>
+<div class="defnbox"><a id="wrglossary.1512"></a><a href="#glo:IfHasTrackedDialectScript"><code class="csfmt">\IfHasTrackedDialectScript</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1513"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a script for <span class="meta">〈<em class="metainner">dialect</em>〉</span>, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.739">42</a><p>
+<div class="defnbox"><a id="wrglossary.1514"></a><a href="#glo:IfHasTrackedDialectSubLang"><code class="csfmt">\IfHasTrackedDialectSubLang</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1515"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a sub-language for <span class="meta">〈<em class="metainner">dialect</em>〉</span>, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.761">44</a><p>
+<div class="defnbox"><a id="wrglossary.1516"></a><a href="#glo:IfHasTrackedDialectVariant"><code class="csfmt">\IfHasTrackedDialectVariant</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1517"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a modifier for <span class="meta">〈<em class="metainner">dialect</em>〉</span>, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.737">42</a><p>
+<div class="defnbox"><a id="wrglossary.1518"></a><a href="#glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect-label</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1519"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the dialect identified by <span class="meta">〈<em class="metainner">dialect-label</em>〉</span> has been tracked, otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.654">38</a><p>
+<div class="defnbox"><a id="wrglossary.1520"></a><a href="#glo:IfTrackedDialectIsScriptCs"><code class="csfmt">\IfTrackedDialectIsScriptCs</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">cs</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1521"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+If the given tracked dialect has an associated script and that script code matches the replacement text for the control sequence <span class="meta">〈<em class="metainner">cs</em>〉</span> then do <span class="meta">〈<em class="metainner">true</em>〉</span> otherwise to <span class="meta">〈<em class="metainner">false</em>〉</span>. If the tracked dialect doesn’t have an associated script then the default script for the root language is tested. <a href="#sec:user">§5</a>; <a href="#wrglossary.746">43</a><p>
+<div class="defnbox"><a id="wrglossary.1522"></a><a href="#glo:IfTrackedIsoCode"><code class="csfmt">\IfTrackedIsoCode</code></a><code class="code">{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1523"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the given <a id="wrglossary.1524"></a><a href="#glo:ISO">ISO</a> code has been defined otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.672">39</a><p>
+<div class="defnbox"><a id="wrglossary.1525"></a><a href="#glo:IfTrackedLanguage"><code class="csfmt">\IfTrackedLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">language-label</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1526"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the language identified by <span class="meta">〈<em class="metainner">language-label</em>〉</span> has been tracked, otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.653">38</a><p>
+<div class="defnbox"><a id="wrglossary.1527"></a><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">prefix</em>〉</span>}{<span class="meta">〈<em class="metainner">suffix</em>〉</span>}{<span class="meta">〈<em class="metainner">true code</em>〉</span>}{<span class="meta">〈<em class="metainner">false code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1528"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <code class="code"><a id="wrglossary.1529"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a>{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code> and if the dialect is recognised, then determines if the file <span class="filefmt"><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="meta">〈<em class="metainner">tag</em>〉</span><span class="meta">〈<em class="metainner">suffix</em>〉</span></span> exists. If it does, <a id="wrglossary.1530"></a><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a> is set to <span class="meta">〈<em class="metainner">tag</em>〉</span> and <span class="meta">〈<em class="metainner">true</em>〉</span> is done, otherwise <span class="meta">〈<em class="metainner">false</em>〉</span> is done. <a href="#sec:user">§5</a>; <a href="#wrglossary.765">45</a><p>
+<div class="defnbox"><a id="wrglossary.1531"></a><a href="#glo:IfTrackedLanguageHasIsoCode"><code class="csfmt">\IfTrackedLanguageHasIsoCode</code></a><code class="code">{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">label</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1532"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the given language or dialect has a corresponding <a id="wrglossary.1533"></a><a href="#glo:ISO">ISO</a> code of the given type, otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.665">39</a><p>
+<div class="defnbox"><a id="wrglossary.1534"></a><dfn id="glo:ifTrackLangShowInfo"><code class="csfmt">\ifTrackLangShowInfo</code></dfn><code class="code"> <span class="meta">〈<em class="metainner">true</em>〉</span><code class="csfmt">\else</code> <span class="meta">〈<em class="metainner">false</em>〉</span><code class="csfmt">\fi</code></code><span class="floatrightbox"><span class="summarytag">initial: </span><code class="cmd">\iftrue</code>; <a id="wrglossary.1535"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Conditional that indicates whether or not to show information messages.<p>
+<div class="defnbox"><a id="wrglossary.1536"></a><dfn id="glo:ifTrackLangShowVerbose"><code class="csfmt">\ifTrackLangShowVerbose</code></dfn><code class="code"> <span class="meta">〈<em class="metainner">true</em>〉</span><code class="csfmt">\else</code> <span class="meta">〈<em class="metainner">false</em>〉</span><code class="csfmt">\fi</code></code><span class="floatrightbox"><span class="summarytag">initial: </span><code class="cmd">\iffalse</code>; <a id="wrglossary.1537"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.4+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Conditional that indicates whether or not to show verbose messages.<p>
+<div class="defnbox"><a id="wrglossary.1538"></a><dfn id="glo:ifTrackLangShowWarnings"><code class="csfmt">\ifTrackLangShowWarnings</code></dfn><code class="code"> <span class="meta">〈<em class="metainner">true</em>〉</span><code class="csfmt">\else</code> <span class="meta">〈<em class="metainner">false</em>〉</span><code class="csfmt">\fi</code></code><span class="floatrightbox"><span class="summarytag">initial: </span><code class="cmd">\iftrue</code>; <a id="wrglossary.1539"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Conditional that indicates whether or not to show warnings.<p>
+
+</section><!-- end of section summary.index7077888 -->
+
+<section id="summary.index7733248"><!-- start of section summary.index7733248 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->S<div class="labellink"><a href="#summary.index7733248">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1540"></a><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1541"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the current tracked dialect. <a href="#sec:selectlanguage">§6.2</a>; <a href="#wrglossary.1242">73</a><p>
+<div class="defnbox"><a id="wrglossary.1542"></a><a href="#glo:SetTrackedDialectAdditional"><code class="csfmt">\SetTrackedDialectAdditional</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1543"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the extra information for <span class="meta">〈<em class="metainner">dialect</em>〉</span> to <span class="meta">〈<em class="metainner">value</em>〉</span>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1372">79</a><p>
+<div class="defnbox"><a id="wrglossary.1544"></a><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a><code class="code">{<span class="meta">〈<em class="metainner">tracklang-label</em>〉</span>}{<span class="meta">〈<em class="metainner">hook-label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1545"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defines a mapping between a <a id="wrglossary.1546"></a><a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a> dialect label and the corresponding dialect label used by a language hook, such as <a id="wrglossary.1547"></a><a href="#glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></a>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1316">77</a><p>
+<div class="defnbox"><a id="wrglossary.1548"></a><a href="#glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1549"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the modifier for the given <span class="meta">〈<em class="metainner">dialect</em>〉</span> to <span class="meta">〈<em class="metainner">value</em>〉</span>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1332">77</a><p>
+<div class="defnbox"><a id="wrglossary.1550"></a><a href="#glo:SetTrackedDialectScript"><code class="csfmt">\SetTrackedDialectScript</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1551"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the script for <span class="meta">〈<em class="metainner">dialect</em>〉</span> to <span class="meta">〈<em class="metainner">value</em>〉</span>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1355">78</a><p>
+<div class="defnbox"><a id="wrglossary.1552"></a><a href="#glo:SetTrackedDialectSubLang"><code class="csfmt">\SetTrackedDialectSubLang</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1553"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the sub-language for <span class="meta">〈<em class="metainner">dialect</em>〉</span> to <span class="meta">〈<em class="metainner">value</em>〉</span>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1365">79</a><p>
+<div class="defnbox"><a id="wrglossary.1554"></a><a href="#glo:SetTrackedDialectVariant"><code class="csfmt">\SetTrackedDialectVariant</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">value</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1555"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the modifier for <span class="meta">〈<em class="metainner">dialect</em>〉</span> to <span class="meta">〈<em class="metainner">value</em>〉</span>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1362">78</a><p>
+
+</section><!-- end of section summary.index7733248 -->
+
+<section id="summary.index7798784"><!-- start of section summary.index7798784 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->T<div class="labellink"><a href="#summary.index7798784">[link]</a></div></h2><!-- end of section header -->
+<div class="defnbox"><a id="wrglossary.1556"></a><a href="#glo:ThreeLetterExtIsoLanguageCode"><code class="csfmt">\ThreeLetterExtIsoLanguageCode</code></a><span class="floatrightbox"><a id="wrglossary.1557"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <a id="wrglossary.1558"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a> (should not be redefined). <a href="#sec:user">§5</a>; <a href="#wrglossary.695">40</a><p>
+<div class="defnbox"><a id="wrglossary.1559"></a><a href="#glo:ThreeLetterIsoLanguageCode"><code class="csfmt">\ThreeLetterIsoLanguageCode</code></a><span class="floatrightbox"><a id="wrglossary.1560"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <a id="wrglossary.1561"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> (should not be redefined). <a href="#sec:user">§5</a>; <a href="#wrglossary.693">40</a><p>
+<div class="defnbox"><a id="wrglossary.1562"></a><a href="#glo:TrackedDialectClosestSubMatch"><code class="csfmt">\TrackedDialectClosestSubMatch</code></a><span class="floatrightbox"><a id="wrglossary.1563"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3.6+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1564"></a><a href="#glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></a> to the closest match. <a href="#sec:user">§5</a>; <a href="#wrglossary.623">36</a><p>
+<div class="defnbox"><a id="wrglossary.1565"></a><a href="#glo:TrackedDialectsFromLanguage"><code class="csfmt">\TrackedDialectsFromLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1566"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to a comma-separated list of the tracked dialects with the given language. <a href="#sec:user">§5</a>; <a href="#wrglossary.663">39</a><p>
+<div class="defnbox"><a id="wrglossary.1567"></a><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1568"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the code associated with the given language or dialect identified by <span class="meta">〈<em class="metainner">label</em>〉</span>. <a href="#sec:user">§5</a>; <a href="#wrglossary.684">39</a><p>
+<div class="defnbox"><a id="wrglossary.1569"></a><a href="#glo:TrackedLanguageFromDialect"><code class="csfmt">\TrackedLanguageFromDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1570"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the language from the given dialect. <a href="#sec:user">§5</a>; <a href="#wrglossary.662">39</a><p>
+<div class="defnbox"><a id="wrglossary.1571"></a><a href="#glo:TrackedLanguageFromIsoCode"><code class="csfmt">\TrackedLanguageFromIsoCode</code></a><code class="code">{<span class="meta">〈<em class="metainner">code type</em>〉</span>}{<span class="meta">〈<em class="metainner">code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1572"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to a comma-separated list of language or dialect labels associated with the given code. <a href="#sec:user">§5</a>; <a href="#wrglossary.681">39</a><p>
+<div class="defnbox"><a id="wrglossary.1573"></a><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">success code</em>〉</span>}{<span class="meta">〈<em class="metainner">fail code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1574"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3.9+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+As <a id="wrglossary.1575"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a> but does <span class="meta">〈<em class="metainner">fail code</em>〉</span> if the tag doesn’t contain a valid language code. If successful, does <span class="meta">〈<em class="metainner">success code</em>〉</span> after tracking the language. <a href="#sec:generic">§3</a>; <a href="#wrglossary.341">21</a><p>
+<div class="defnbox"><a id="wrglossary.1576"></a><a href="#glo:TrackLangAddExtraRegionFile"><code class="csfmt">\TrackLangAddExtraRegionFile</code></a><code class="code">{<span class="meta">〈<em class="metainner">file</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1577"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.4+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Adds <span class="meta">〈<em class="metainner">file</em>〉</span> to the list of extra region code files that should be input by <a id="wrglossary.1578"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.536">31</a><p>
+<div class="defnbox"><a id="wrglossary.1579"></a><a href="#glo:TrackLangAddExtraScriptFile"><code class="csfmt">\TrackLangAddExtraScriptFile</code></a><code class="code">{<span class="meta">〈<em class="metainner">file</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1580"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.4+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Adds <span class="meta">〈<em class="metainner">file</em>〉</span> to the list of files that should be input by <a id="wrglossary.1581"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.561">33</a><p>
+<div class="defnbox"><a id="wrglossary.1582"></a><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a><code class="code">{<span class="meta">〈<em class="metainner">code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1583"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+A shortcut that just does <code class="code"><a id="wrglossary.1584"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a>{<span class="meta">〈<em class="metainner">code</em>〉</span>}{captions}</code>. <a href="#sec:user">§5</a>; <a href="#wrglossary.960">54</a><p>
+<div class="defnbox"><a id="wrglossary.1585"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a><code class="code">{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">type</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1586"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+For use within resource files, this can be used to add <span class="meta">〈<em class="metainner">code</em>〉</span> to the appropriate hook. <a href="#sec:user">§5</a>; <a href="#wrglossary.956">54</a><p>
+<div class="defnbox"><a id="wrglossary.1587"></a><a href="#glo:TrackLangAlphaIIIToNumericRegion"><code class="csfmt">\TrackLangAlphaIIIToNumericRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha-3 code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1588"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the numeric code corresponding to the given alpha-3 code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.530">30</a><p>
+<div class="defnbox"><a id="wrglossary.1589"></a><a href="#glo:TrackLangAlphaIIToNumericRegion"><code class="csfmt">\TrackLangAlphaIIToNumericRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha-2 code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1590"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the numeric code corresponding to the given alpha-2 code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.524">30</a><p>
+<div class="defnbox"><a id="wrglossary.1591"></a><dfn id="glo:TrackLangDeclareDialectOption"><code class="csfmt">\TrackLangDeclareDialectOption</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}{<span class="meta">〈<em class="metainner">root language</em>〉</span>}{<span class="meta">〈<em class="metainner">3166-1 code</em>〉</span>}{<span class="meta">〈<em class="metainner">modifier</em>〉</span>}{<span class="meta">〈<em class="metainner">variant</em>〉</span>}{<span class="meta">〈<em class="metainner">map</em>〉</span>}{<span class="meta">〈<em class="metainner">script</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1592"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defines a predefined dialect label that can be used by <a id="wrglossary.1593"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>.<p>
+<div class="defnbox"><a id="wrglossary.1594"></a><dfn id="glo:TrackLangDeclareLanguageOption"><code class="csfmt">\TrackLangDeclareLanguageOption</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language name</em>〉</span>}{<span class="meta">〈<em class="metainner">639-1 code</em>〉</span>}{<span class="meta">〈<em class="metainner">639-2 (T)</em>〉</span>}{<span class="meta">〈<em class="metainner">639-2 (B)</em>〉</span>}{<span class="meta">〈<em class="metainner">639-3</em>〉</span>}{<span class="meta">〈<em class="metainner">3166-1</em>〉</span>}{<span class="meta">〈<em class="metainner">default script</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1595"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defines a new root language that’s declared as an option.<p>
+<div class="defnbox"><a id="wrglossary.1596"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a><p>
+<div class="noteBox">(user defined)</div><!-- end of noteBox -->
+</div><!-- end of defnbox -->
+<p>
+May be defined using the same format as <a id="wrglossary.1597"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> before using <a id="wrglossary.1598"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a> to skip the environment variable query. <a href="#sec:generic">§3</a>; <a href="#wrglossary.417">25</a><p>
+<div class="defnbox"><a id="wrglossary.1599"></a><a href="#glo:TrackLangEnvCodeSet"><code class="csfmt">\TrackLangEnvCodeSet</code></a><span class="floatrightbox"><a id="wrglossary.1600"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Set by <a id="wrglossary.1601"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a> to the <a id="wrglossary.1602"></a><a href="#glo:idx.code-set">code-set</a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.444">26</a><p>
+<div class="defnbox"><a id="wrglossary.1603"></a><a href="#glo:TrackLangEnvLang"><code class="csfmt">\TrackLangEnvLang</code></a><span class="floatrightbox"><a id="wrglossary.1604"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Set by <a id="wrglossary.1605"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a> to the language code. <a href="#sec:generic">§3</a>; <a href="#wrglossary.440">26</a><p>
+<div class="defnbox"><a id="wrglossary.1606"></a><a href="#glo:TrackLangEnvModifier"><code class="csfmt">\TrackLangEnvModifier</code></a><span class="floatrightbox"><a id="wrglossary.1607"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Set by <a id="wrglossary.1608"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a> to the <a id="wrglossary.1609"></a><a href="#glo:idx.modifier">modifier</a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.446">26</a><p>
+<div class="defnbox"><a id="wrglossary.1610"></a><a href="#glo:TrackLangEnvTerritory"><code class="csfmt">\TrackLangEnvTerritory</code></a><span class="floatrightbox"><a id="wrglossary.1611"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Set by <a id="wrglossary.1612"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a> to the <a id="wrglossary.1613"></a><a href="#glo:idx.territory">territory</a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.442">26</a><p>
+<div class="defnbox"><a id="wrglossary.1614"></a><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a><span class="floatrightbox"><a id="wrglossary.1615"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Queries environment variable if <a id="wrglossary.1616"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> not already set, parses <a id="wrglossary.1617"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a> if it has been set, and adds the dialect if it’s recognised. <a href="#sec:generic">§3</a>; <a href="#wrglossary.375">23</a><p>
+<div class="defnbox"><a id="wrglossary.1618"></a><a href="#glo:TrackLangGetDefaultScript"><code class="csfmt">\TrackLangGetDefaultScript</code></a><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1619"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the default script for the given language. <a href="#sec:user">§5</a>; <a href="#wrglossary.745">43</a><p>
+<div class="defnbox"><a id="wrglossary.1620"></a><dfn id="glo:TrackLangGetKnownCountry"><code class="csfmt">\TrackLangGetKnownCountry</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1621"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the <a id="wrglossary.1622"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> country code for the given language.<p>
+<div class="defnbox"><a id="wrglossary.1623"></a><dfn id="glo:TrackLangGetKnownIsoThreeLetterLang"><code class="csfmt">\TrackLangGetKnownIsoThreeLetterLang</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1624"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the <a id="wrglossary.1625"></a><a href="#glo:idx.639-2">ISO <span class="mbox">639-2</span></a> language code associated with <span class="meta">〈<em class="metainner">language</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1626"></a><dfn id="glo:TrackLangGetKnownIsoThreeLetterLangB"><code class="csfmt">\TrackLangGetKnownIsoThreeLetterLangB</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1627"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the <a id="wrglossary.1628"></a><a href="#glo:idx.639-2B">ISO <span class="mbox">639-2</span> (B)</a> language code associated with <span class="meta">〈<em class="metainner">language</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1629"></a><dfn id="glo:TrackLangGetKnownIsoTwoLetterLang"><code class="csfmt">\TrackLangGetKnownIsoTwoLetterLang</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1630"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the <a id="wrglossary.1631"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> language code associated with <span class="meta">〈<em class="metainner">language</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1632"></a><dfn id="glo:TrackLangGetKnownLangFromIso"><code class="csfmt">\TrackLangGetKnownLangFromIso</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">ISO code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1633"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the root language label from the given <a id="wrglossary.1634"></a><a href="#glo:ISO">ISO</a> code (<a id="wrglossary.1635"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> or <a id="wrglossary.1636"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> or <a id="wrglossary.1637"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a>).<p>
+<div class="defnbox"><a id="wrglossary.1638"></a><dfn id="glo:TrackLangIfAlphaNumericChar"><code class="csfmt">\TrackLangIfAlphaNumericChar</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1639"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the argument is a single alphanumeric character otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1640"></a><dfn id="glo:TrackLangIfHasDefaultScript"><code class="csfmt">\TrackLangIfHasDefaultScript</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1641"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the given language has a default script (but is not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1642"></a><dfn id="glo:TrackLangIfHasKnownCountry"><code class="csfmt">\TrackLangIfHasKnownCountry</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1643"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the given language has an <a id="wrglossary.1644"></a><a href="#glo:idx.3166-1">ISO <span class="mbox">3166-1</span></a> country code (but is not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1645"></a><a href="#glo:TrackLangIfKnownAlphaIIIRegion"><code class="csfmt">\TrackLangIfKnownAlphaIIIRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha-3 code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1646"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a known mapping for the given <span class="meta">〈<em class="metainner">alpha-3 code</em>〉</span>, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.532">31</a><p>
+<div class="defnbox"><a id="wrglossary.1647"></a><a href="#glo:TrackLangIfKnownAlphaIIRegion"><code class="csfmt">\TrackLangIfKnownAlphaIIRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha-2 code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1648"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a known mapping for the given alpha-2 <a id="wrglossary.1649"></a><a href="#glo:idx.territory">region</a> code, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.526">30</a><p>
+<div class="defnbox"><a id="wrglossary.1650"></a><dfn id="glo:TrackLangIfKnownIsoThreeLetterLang"><code class="csfmt">\TrackLangIfKnownIsoThreeLetterLang</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1651"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if <span class="meta">〈<em class="metainner">language</em>〉</span> has an <a id="wrglossary.1652"></a><a href="#glo:idx.639-2">ISO <span class="mbox">639-2</span></a> code (but is not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1653"></a><dfn id="glo:TrackLangIfKnownIsoThreeLetterLangB"><code class="csfmt">\TrackLangIfKnownIsoThreeLetterLangB</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1654"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if <span class="meta">〈<em class="metainner">language</em>〉</span> has an <a id="wrglossary.1655"></a><a href="#glo:idx.639-2B">ISO <span class="mbox">639-2</span> (B)</a> code (but is not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1656"></a><dfn id="glo:TrackLangIfKnownIsoTwoLetterLang"><code class="csfmt">\TrackLangIfKnownIsoTwoLetterLang</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1657"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if <span class="meta">〈<em class="metainner">language</em>〉</span> has an <a id="wrglossary.1658"></a><a href="#glo:idx.639-1">ISO <span class="mbox">639-1</span></a> code (but is not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1659"></a><dfn id="glo:TrackLangIfKnownLang"><code class="csfmt">\TrackLangIfKnownLang</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">language</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1660"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if <span class="meta">〈<em class="metainner">language</em>〉</span> is known (but not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1661"></a><dfn id="glo:TrackLangIfKnownLangFromIso"><code class="csfmt">\TrackLangIfKnownLangFromIso</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">ISO code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1662"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the given language code (<a id="wrglossary.1663"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> or <a id="wrglossary.1664"></a><a href="#glo:idx.639-2"><span class="mbox">639-2</span></a> or <a id="wrglossary.1665"></a><a href="#glo:idx.639-3"><span class="mbox">639-3</span></a>) is recognised (but not necessarily tracked), otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1666"></a><a href="#glo:TrackLangIfKnownNumericRegion"><code class="csfmt">\TrackLangIfKnownNumericRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1667"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a known mapping for the given numeric <a id="wrglossary.1668"></a><a href="#glo:idx.territory">region</a> code, otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.528">30</a><p>
+<div class="defnbox"><a id="wrglossary.1669"></a><dfn id="glo:TrackLangIfLanguageTag"><code class="csfmt">\TrackLangIfLanguageTag</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1670"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the argument is a language tag otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1671"></a><dfn id="glo:TrackLangIfRegionTag"><code class="csfmt">\TrackLangIfRegionTag</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1672"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the argument is a region tag otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1673"></a><dfn id="glo:TrackLangIfScriptTag"><code class="csfmt">\TrackLangIfScriptTag</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1674"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the argument is a script tag otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1675"></a><dfn id="glo:TrackLangIfVariantTag"><code class="csfmt">\TrackLangIfVariantTag</code></dfn><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1676"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Does <span class="meta">〈<em class="metainner">true</em>〉</span> if the argument is a variant tag otherwise does <span class="meta">〈<em class="metainner">false</em>〉</span>.<p>
+<div class="defnbox"><a id="wrglossary.1677"></a><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a><span class="floatrightbox"><a id="wrglossary.1678"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the label of the last tracked dialect. <a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1287">76</a><p>
+<div class="defnbox"><a id="wrglossary.1679"></a><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">language label</em>〉</span>}{<span class="meta">〈<em class="metainner">639-1 code</em>〉</span>}{<span class="meta">〈<em class="metainner">639-2 (T)</em>〉</span>}{<span class="meta">〈<em class="metainner">639-2 (B)</em>〉</span>}{<span class="meta">〈<em class="metainner">639-3</em>〉</span>}{<span class="meta">〈<em class="metainner">3166-1</em>〉</span>}{<span class="meta">〈<em class="metainner">default script</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1680"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Identifies a new language that may be tracked. Apart from <span class="meta">〈<em class="metainner">language label</em>〉</span>, the other arguments may be empty if the information is unavailable. <a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1276">75</a><p>
+<div class="defnbox"><a id="wrglossary.1681"></a><a href="#glo:TrackLangNumericToAlphaIIIRegion"><code class="csfmt">\TrackLangNumericToAlphaIIIRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1682"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the alpha-3 code corresponding to the given numeric code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.531">31</a><p>
+<div class="defnbox"><a id="wrglossary.1683"></a><a href="#glo:TrackLangNumericToAlphaIIRegion"><code class="csfmt">\TrackLangNumericToAlphaIIRegion</code></a><code class="code">{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1684"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the alpha-2 code corresponding to the given numeric code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.525">30</a><p>
+<div class="defnbox"><a id="wrglossary.1685"></a><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a><span class="floatrightbox"><a id="wrglossary.1686"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Attempts to obtain locale information from the expansion of <a id="wrglossary.1687"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.475">27</a><p>
+<div class="defnbox"><a id="wrglossary.1688"></a><a href="#glo:TrackLangProvidePredefinedDialect"><code class="csfmt">\TrackLangProvidePredefinedDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}{<span class="meta">〈<em class="metainner">root language label</em>〉</span>}{<span class="meta">〈<em class="metainner">3166-1 code</em>〉</span>}{<span class="meta">〈<em class="metainner">modifier</em>〉</span>}{<span class="meta">〈<em class="metainner">variant</em>〉</span>}{<span class="meta">〈<em class="metainner">map</em>〉</span>}{<span class="meta">〈<em class="metainner">script</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1689"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.4+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defines a predefined dialect label that can be used by <a id="wrglossary.1690"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1293">76</a><p>
+<div class="defnbox"><a id="wrglossary.1691"></a><a href="#glo:TrackLangProvidePredefinedLanguage"><code class="csfmt">\TrackLangProvidePredefinedLanguage</code></a><code class="code">{<span class="meta">〈<em class="metainner">language label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1692"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.4+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets up a language label for use with <a id="wrglossary.1693"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a>. <a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1290">76</a><p>
+<div class="defnbox"><a id="wrglossary.1694"></a><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">version info</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1695"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Analogous to <a id="wrglossary.1696"></a><a href="#glo:ProvidesFile"><code class="csfmt">\ProvidesFile</code></a>. <a href="#sec:user">§5</a>; <a href="#wrglossary.922">52</a><p>
+<div class="defnbox"><a id="wrglossary.1697"></a><a href="#glo:TrackLangQueryEnv"><code class="csfmt">\TrackLangQueryEnv</code></a><span class="floatrightbox"><a id="wrglossary.1698"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Attempts to obtain locale information from the <a id="wrglossary.1699"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> environment variable via the <a id="wrglossary.1700"></a><a href="#glo:dual.shellescape">shell escape</a> or, with LuaTeX, <a id="wrglossary.1701"></a><a href="#glo:directlua"><code class="csfmt">\directlua</code></a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.447">26</a><p>
+<div class="defnbox"><a id="wrglossary.1702"></a><a href="#glo:TrackLangQueryOtherEnv"><code class="csfmt">\TrackLangQueryOtherEnv</code></a><code class="code">{<span class="meta">〈<em class="metainner">env-name</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1703"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Attempts to obtain locale information from the <a id="wrglossary.1704"></a><a href="#glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></a> environment variable and then by the <span class="meta">〈<em class="metainner">env-name</em>〉</span> environment variable via the <a id="wrglossary.1705"></a><a href="#glo:dual.shellescape">shell escape</a> or, with LuaTeX, <a id="wrglossary.1706"></a><a href="#glo:directlua"><code class="csfmt">\directlua</code></a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.459">26</a><p>
+<div class="defnbox"><a id="wrglossary.1707"></a><a href="#glo:TrackLangRedefHook"><code class="csfmt">\TrackLangRedefHook</code></a><code class="code">{<span class="meta">〈<em class="metainner">code</em>〉</span>}{<span class="meta">〈<em class="metainner">type</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1708"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.4+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Similar to <a id="wrglossary.1709"></a><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a> but redefines the hook rather than appending to it. <a href="#sec:user">§5</a>; <a href="#wrglossary.963">55</a><p>
+<div class="defnbox"><a id="wrglossary.1710"></a><a href="#glo:TrackLangRegionMap"><code class="csfmt">\TrackLangRegionMap</code></a><code class="code">{<span class="meta">〈<em class="metainner">numeric</em>〉</span>}{<span class="meta">〈<em class="metainner">alpha-2</em>〉</span>}{<span class="meta">〈<em class="metainner">alpha-3</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1711"></a><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Establishes a mapping between a numeric <a id="wrglossary.1712"></a><a href="#glo:idx.territory">region</a> code and alpha-2 and alpha-3 codes. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.534">31</a><p>
+<div class="defnbox"><a id="wrglossary.1713"></a><a href="#glo:TrackLangRequestResource"><code class="csfmt">\TrackLangRequestResource</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">not found code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1714"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+As <a id="wrglossary.1715"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a> but does <span class="meta">〈<em class="metainner">not found code</em>〉</span> if the file doesn’t exist. <a href="#sec:user">§5</a>; <a href="#wrglossary.935">53</a><p>
+<div class="defnbox"><a id="wrglossary.1716"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a><code class="code">[<span class="meta">〈<em class="metainner">load code</em>〉</span>]{<span class="meta">〈<em class="metainner">pkgname</em>〉</span>}{<span class="meta">〈<em class="metainner">dialect</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1717"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Loads the dialect for the given package. <a href="#sec:user">§5</a>; <a href="#wrglossary.768">45</a><p>
+<div class="defnbox"><a id="wrglossary.1718"></a><a href="#glo:TrackLangRequireDialectPrefix"><code class="csfmt">\TrackLangRequireDialectPrefix</code></a><span class="floatrightbox"><a id="wrglossary.1719"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defined by <a id="wrglossary.1720"></a><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a>. <a href="#sec:user">§5</a>; <a href="#wrglossary.771">45</a><p>
+<div class="defnbox"><a id="wrglossary.1721"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1722"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Loads the appropriate <a id="wrglossary.1723"></a><a href="#glo:ext.ldf"><span class="extfmt">ldf</span></a> file if it hasn’t already been loaded. <a href="#sec:user">§5</a>; <a href="#wrglossary.925">53</a><p>
+<div class="defnbox"><a id="wrglossary.1724"></a><a href="#glo:TrackLangRequireResourceOrDo"><code class="csfmt">\TrackLangRequireResourceOrDo</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}{<span class="meta">〈<em class="metainner">code1</em>〉</span>}{<span class="meta">〈<em class="metainner">code2</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1725"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+As <a id="wrglossary.1726"></a><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a> but does <span class="meta">〈<em class="metainner">code1</em>〉</span> if the file is now loaded or <span class="meta">〈<em class="metainner">code2</em>〉</span> if the file has already been loaded. <a href="#sec:user">§5</a>; <a href="#wrglossary.934">53</a><p>
+<div class="defnbox"><a id="wrglossary.1727"></a><a href="#glo:TrackLangScriptAlphaToDir"><code class="csfmt">\TrackLangScriptAlphaToDir</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1728"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the direction associated with the given alpha script code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.555">33</a><p>
+<div class="defnbox"><a id="wrglossary.1729"></a><a href="#glo:TrackLangScriptAlphaToName"><code class="csfmt">\TrackLangScriptAlphaToName</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1730"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the name associated with the given alpha script code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.554">32</a><p>
+<div class="defnbox"><a id="wrglossary.1731"></a><a href="#glo:TrackLangScriptAlphaToNumeric"><code class="csfmt">\TrackLangScriptAlphaToNumeric</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1732"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the numeric script code corresponding to the given alpha code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.550">32</a><p>
+<div class="defnbox"><a id="wrglossary.1733"></a><a href="#glo:TrackLangScriptCode"><code class="csfmt">\TrackLangScript<span class="meta">〈<em class="metainner">Code</em>〉</span></code></a><span class="floatrightbox"><a id="wrglossary.1734"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Set by <a id="wrglossary.1735"></a><a href="#glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></a> to the associated alpha code <span class="meta">〈<em class="metainner">Code</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.547">32</a><p>
+<div class="defnbox"><a id="wrglossary.1736"></a><a href="#glo:TrackLangScriptGetParent"><code class="csfmt">\TrackLangScriptGetParent</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1737"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the parent of the given alpha script code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.557">33</a><p>
+<div class="defnbox"><a id="wrglossary.1738"></a><a href="#glo:TrackLangScriptIfHasParent"><code class="csfmt">\TrackLangScriptIfHasParent</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1739"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if the given alpha script code has a parent otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.558">33</a><p>
+<div class="defnbox"><a id="wrglossary.1740"></a><a href="#glo:TrackLangScriptIfKnownAlpha"><code class="csfmt">\TrackLangScriptIfKnownAlpha</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1741"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a known mapping for the given alpha script code otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.551">32</a><p>
+<div class="defnbox"><a id="wrglossary.1742"></a><a href="#glo:TrackLangScriptIfKnownNumeric"><code class="csfmt">\TrackLangScriptIfKnownNumeric</code></a><code class="code">{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">true</em>〉</span>}{<span class="meta">〈<em class="metainner">false</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1743"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <span class="meta">〈<em class="metainner">true</em>〉</span> if there’s a known mapping for the given numeric script code otherwise expands to <span class="meta">〈<em class="metainner">false</em>〉</span>. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.553">32</a><p>
+<div class="defnbox"><a id="wrglossary.1744"></a><a href="#glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></a><code class="code">{<span class="meta">〈<em class="metainner">letter code</em>〉</span>}{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}{<span class="meta">〈<em class="metainner">script name</em>〉</span>}{<span class="meta">〈<em class="metainner">direction</em>〉</span>}{<span class="meta">〈<em class="metainner">parent script</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1745"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Defines a mapping between an alpha code and a numeric code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.544">32</a><p>
+<div class="defnbox"><a id="wrglossary.1746"></a><a href="#glo:TrackLangScriptNumericToAlpha"><code class="csfmt">\TrackLangScriptNumericToAlpha</code></a><code class="code">{<span class="meta">〈<em class="metainner">numeric code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1747"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to the alpha script code corresponding to the given numeric code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.552">32</a><p>
+<div class="defnbox"><a id="wrglossary.1748"></a><a href="#glo:TrackLangScriptSetParent"><code class="csfmt">\TrackLangScriptSetParent</code></a><code class="code">{<span class="meta">〈<em class="metainner">alpha code</em>〉</span>}{<span class="meta">〈<em class="metainner">parent alpha code</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1749"></a><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets the parent for the given alpha script code. <a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.556">33</a><p>
+<div class="defnbox"><a id="wrglossary.1750"></a><a href="#glo:TrackLangShowWarningsfalse"><code class="csfmt">\TrackLangShowWarningsfalse</code></a><span class="floatrightbox"><a id="wrglossary.1751"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets <a id="wrglossary.1752"></a><a href="#glo:ifTrackLangShowWarnings"><code class="csfmt">\ifTrackLangShowWarnings</code></a> to false. <a href="#sec:generic">§3</a>; <a href="#wrglossary.397">24</a><p>
+<div class="defnbox"><a id="wrglossary.1753"></a><a href="#glo:TrackLangShowWarningstrue"><code class="csfmt">\TrackLangShowWarningstrue</code></a><span class="floatrightbox"><a id="wrglossary.1754"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Sets <a id="wrglossary.1755"></a><a href="#glo:ifTrackLangShowWarnings"><code class="csfmt">\ifTrackLangShowWarnings</code></a> to true. <a href="#sec:generic">§3</a>; <a href="#wrglossary.398">24</a><p>
+<div class="defnbox"><a id="wrglossary.1756"></a><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a><code class="code">{<span class="meta">〈<em class="metainner">tag</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1757"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Parse <span class="meta">〈<em class="metainner">tag</em>〉</span>, which should be a regular, well-formed RFC 5646 language tag (not an irregular grandfather tag) and track the dialect. <a href="#sec:generic">§3</a>; <a href="#wrglossary.340">21</a><p>
+<div class="defnbox"><a id="wrglossary.1758"></a><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a><code class="code">{<span class="meta">〈<em class="metainner">locale</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1759"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.3+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Tracks the dialect identified by the given <span class="meta">〈<em class="metainner">locale</em>〉</span>, which may either be a predefined language/dialect or in the same format as <a id="wrglossary.1760"></a><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a>. <a href="#sec:generic">§3</a>; <a href="#wrglossary.301">20</a><p>
+<div class="defnbox"><a id="wrglossary.1761"></a><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a><code class="code">{<span class="meta">〈<em class="metainner">dialect label</em>〉</span>}</code><span class="floatrightbox"><a id="wrglossary.1762"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Tracks a predefined language or dialect. <a href="#sec:generic">§3</a>; <a href="#wrglossary.293">19</a><p>
+<div class="defnbox"><a id="wrglossary.1763"></a><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a><span class="floatrightbox"><a id="wrglossary.1764"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <a id="wrglossary.1765"></a><a href="#glo:idx.3166-1"><span class="mbox">3166-1</span></a> (should not be redefined). <a href="#sec:user">§5</a>; <a href="#wrglossary.689">40</a><p>
+<div class="defnbox"><a id="wrglossary.1766"></a><a href="#glo:TwoLetterIsoLanguageCode"><code class="csfmt">\TwoLetterIsoLanguageCode</code></a><span class="floatrightbox"><a id="wrglossary.1767"></a><a href="#glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></a> v1.0+</span><span class="clearfix"></span></div><!-- end of defnbox -->
+<p>
+Expands to <a id="wrglossary.1768"></a><a href="#glo:idx.639-1"><span class="mbox">639-1</span></a> (should not be redefined). <a href="#sec:user">§5</a>; <a href="#wrglossary.691">40</a><p>
+<p>
+
+</section><!-- end of section summary.index7798784 -->
+
+<section id="index"><!-- start of section index --><div class="tomain"><a href="#main">[top]</a></div>
+<h1><!-- start of chapter header -->Index<div class="labellink"><a href="#index">[link]</a></div></h1><!-- end of chapter header -->
+<div class="nlctusernavbox"><a href="#indexglssymbols">Symbols</a> <a href="#index@">@</a> <a href="#index6553600">A</a> <a href="#index6619136">B</a> <a href="#index6684672">C</a> <a href="#index6750208">D</a> <a href="#index6815744">E</a> <a href="#index6881280">F</a> <a href="#index6946816">G</a> <a href="#index7012352">H</a> <a href="#index7077888">I</a> <a href="#index7143424">J</a> <a href="#index7208960">K</a> <a href="#index7274496">L</a> <a href="#index7340032">M</a> <a href="#index7405568">N</a> <a href="#index7471104">O</a> <a href="#index7536640">P</a> <a href="#index7602176">Q</a> <a href="#index7667712">R</a> <a href="#index7733248">S</a> <a href="#index7798784">T</a> <a href="#index7864320">U</a> <a href="#index7929856">V</a> <a href="#index7995392">W</a> <a href="#index8060928">X</a> <a href="#index8126464">Y</a> <a href="#index8192000">Z</a></div><!-- end of nlctusernavbox -->
+
+</section><!-- end of section index -->
+
+<section id="indexglssymbols"><!-- start of section indexglssymbols --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->Symbols<div class="labellink"><a href="#indexglssymbols">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.underscoresep"><code class="code">_</code> (separator)</dfn><span class="qquad"></span><a href="#wrglossary.323">20</a>, <a href="#wrglossary.400">24</a>, <a href="#wrglossary.420">25</a>, <a href="#wrglossary.1341">78</a>, <a href="#wrglossary.1396">80</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.dotsep"><code class="code">.</code> (code-set)</dfn><span class="qquad"></span><a href="#wrglossary.325">20</a>, <a href="#wrglossary.401">24</a>, <a href="#wrglossary.1342">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.escbsl"><code class="code">\\</code> (escaped backslash)</dfn><span class="qquad"></span><a href="#wrglossary.431">25</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.dollarenv"><code class="code">$</code> (environment variable)</dfn><span class="qquad"></span><a href="#wrglossary.434">25</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.hyphensep"><code class="code">-</code> (separator)</dfn><span class="qquad"></span><a href="#wrglossary.307">20</a>, <a href="#wrglossary.421">25</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:switch.shell-escape"><span class="longargfmt">--shell-escape</span></dfn><span class="qquad"></span><a href="#wrglossary.393">23</a>, <a href="#wrglossary.396">24</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section indexglssymbols -->
+
+<section id="index@"><!-- start of section index@ --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->@<div class="labellink"><a href="#index@">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.atletter"><code class="code">@</code> (catcode 11)</dfn><span class="qquad"></span><a href="#wrglossary.279">19</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.atmod"><code class="code">@</code> (modifier)</dfn><span class="qquad"></span><a href="#wrglossary.305">20</a>, <a href="#wrglossary.1343">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:@for"><code class="csfmt">\@for</code></dfn><span class="qquad"></span><a href="#wrglossary.648">37</a>, <a href="#wrglossary.1428">94</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:@nil"><code class="csfmt">\@nil</code></dfn><span class="qquad"></span><a href="#wrglossary.650">37</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:@tracklang@declareoption"><code class="csfmt">\@tracklang@declareoption</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.283">19</a>, <span class="summarylocfmt"><a href="#wrglossary.1422">94</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:@tracklang@for"><code class="csfmt">\@tracklang@for</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.649">37</a>, <span class="summarylocfmt"><a href="#wrglossary.1426">94</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:@tracklang@prelangpkgcheck@hook"><code class="csfmt">\@tracklang@prelangpkgcheck@hook</code></a><span class="qquad"></span><a href="#sec:langsty">§6</a>; <a href="#wrglossary.1198">71</a>, <span class="summarylocfmt"><a href="#wrglossary.1429">94</a></span></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index@ -->
+
+<section id="index6553600"><!-- start of section index6553600 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->A<div class="labellink"><a href="#index6553600">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.aa"><span class="optfmt">aa</span> (<a id="wrglossary.1769"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.afar"><span class="optfmt">afar</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ab"><span class="optfmt">ab</span> (<a id="wrglossary.1770"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.abkhaz"><span class="optfmt">abkhaz</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.abkhaz"><span class="optfmt">abkhaz</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.acadian"><span class="optfmt">acadian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AD"><span class="optfmt">AD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:AddTrackedCountryIsoCode"><code class="csfmt">\AddTrackedCountryIsoCode</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1433">94</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:AddTrackedDialect"><code class="csfmt">\AddTrackedDialect</code></a><span class="qquad"></span><a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1283">75</a>–<a href="#wrglossary.1363">79</a>, <span class="summarylocfmt"><a href="#wrglossary.1436">94</a></span>, <a href="#wrglossary.1444">95</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:AddTrackedIsoLanguage"><code class="csfmt">\AddTrackedIsoLanguage</code></a><span class="qquad"></span><a href="#wrglossary.1371">79</a>, <span class="summarylocfmt"><a href="#wrglossary.1439">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:AddTrackedLanguage"><code class="csfmt">\AddTrackedLanguage</code></a><span class="qquad"></span><a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1284">75</a>, <span class="summarylocfmt"><a href="#wrglossary.1442">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:AddTrackedLanguageIsoCodes"><code class="csfmt">\AddTrackedLanguageIsoCodes</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1331">77</a>–<a href="#wrglossary.1368">79</a>, <span class="summarylocfmt"><a href="#wrglossary.1445">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Adlm"><span class="optfmt">Adlm</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AE"><span class="optfmt">AE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ae"><span class="optfmt">ae</span> (<a id="wrglossary.1771"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.avestan"><span class="optfmt">avestan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AF"><span class="optfmt">AF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.af"><span class="optfmt">af</span> (<a id="wrglossary.1772"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.afrikaans"><span class="optfmt">afrikaans</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Afak"><span class="optfmt">Afak</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.afar"><span class="optfmt">afar</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.afrikaans"><span class="optfmt">afrikaans</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AG"><span class="optfmt">AG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Aghb"><span class="optfmt">Aghb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Ahom"><span class="optfmt">Ahom</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AI"><span class="optfmt">AI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ak"><span class="optfmt">ak</span> (<a id="wrglossary.1773"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.akan"><span class="optfmt">akan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.akan"><span class="optfmt">akan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AL"><span class="optfmt">AL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.albanian"><span class="optfmt">albanian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.alien.sty"><span class="filefmt">alien.sty</span></dfn><span class="qquad"></span><a href="#wrglossary.1373">79</a>–<a href="#wrglossary.1408">81</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.alien"><span class="styfmt">alien</span> package</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:file.alien.sty"><span class="filefmt">alien.sty</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AM"><span class="optfmt">AM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.am"><span class="optfmt">am</span> (<a id="wrglossary.1774"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.amharic"><span class="optfmt">amharic</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.american"><span class="optfmt">american</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.1001">59</a>, <a href="#wrglossary.1019">60</a>, <a href="#wrglossary.1189">70</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.amharic"><span class="optfmt">amharic</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.an"><span class="optfmt">an</span> (<a id="wrglossary.1775"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.aragonese"><span class="optfmt">aragonese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ang"><span class="optfmt">ang</span> (<a id="wrglossary.1776"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.anglosaxon"><span class="optfmt">anglosaxon</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.anglosaxon"><span class="optfmt">anglosaxon</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.animals.sty"><span class="filefmt">animals.sty</span></dfn><span class="qquad"></span><a href="#wrglossary.964">55</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:AnyTrackedLanguages"><code class="csfmt">\AnyTrackedLanguages</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.186">14</a>, <a href="#wrglossary.191">15</a>, <a href="#wrglossary.618">35</a>, <span class="summarylocfmt"><a href="#wrglossary.1451">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AO"><span class="optfmt">AO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.apa"><span class="optfmt">apa</span> (<a id="wrglossary.1777"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.apache"><span class="optfmt">apache</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.apache"><span class="optfmt">apache</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AQ"><span class="optfmt">AQ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AR"><span class="optfmt">AR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ar"><span class="optfmt">ar</span> (<a id="wrglossary.1778"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.arabic"><span class="optfmt">arabic</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Arab"><span class="optfmt">Arab</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.arabic"><span class="optfmt">arabic</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.aragonese"><span class="optfmt">aragonese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Aran"><span class="optfmt">Aran</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.argentinespanish"><span class="optfmt">argentinespanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.armenian"><span class="optfmt">armenian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Armi"><span class="optfmt">Armi</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Armn"><span class="optfmt">Armn</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AS"><span class="optfmt">AS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.as"><span class="optfmt">as</span> (<a id="wrglossary.1779"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.assamese"><span class="optfmt">assamese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.assamese"><span class="optfmt">assamese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ast"><span class="optfmt">ast</span> (<a id="wrglossary.1780"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.asturian"><span class="optfmt">asturian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.asturian"><span class="optfmt">asturian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AT"><span class="optfmt">AT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:AtBeginDocument"><code class="csfmt">\AtBeginDocument</code></dfn><span class="qquad"></span><a href="#wrglossary.652">37</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AU"><span class="optfmt">AU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.australian"><span class="optfmt">australian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.austrian"><span class="optfmt">austrian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.av"><span class="optfmt">av</span> (<a id="wrglossary.1781"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.avaric"><span class="optfmt">avaric</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.avaric"><span class="optfmt">avaric</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.avestan"><span class="optfmt">avestan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Avst"><span class="optfmt">Avst</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AW"><span class="optfmt">AW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AX"><span class="optfmt">AX</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ay"><span class="optfmt">ay</span> (<a id="wrglossary.1782"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.aymara"><span class="optfmt">aymara</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.aymara"><span class="optfmt">aymara</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.AZ"><span class="optfmt">AZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.az"><span class="optfmt">az</span> (<a id="wrglossary.1783"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.azerbaijani"><span class="optfmt">azerbaijani</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.azerbaijani"><span class="optfmt">azerbaijani</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6553600 -->
+
+<section id="index6619136"><!-- start of section index6619136 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->B<div class="labellink"><a href="#index6619136">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BA"><span class="optfmt">BA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ba"><span class="optfmt">ba</span> (<a id="wrglossary.1784"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bashkir"><span class="optfmt">bashkir</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.babel"><span class="styfmt">babel</span> package</dfn><span class="qquad"></span><a href="#wrglossary.2">a</a>, <a href="#wrglossary.21">2</a>, <a href="#wrglossary.51">3</a>, <a href="#wrglossary.72">9</a>, <a href="#wrglossary.144">12</a>, <a href="#wrglossary.179">13</a>, <a href="#wrglossary.600">35</a>, <a href="#wrglossary.946">53</a>, <a href="#wrglossary.954">54</a>, <a href="#wrglossary.992">58</a>, <a href="#wrglossary.996">59</a>, <a href="#wrglossary.1156">68</a>–<a href="#wrglossary.1182">70</a>, <a href="#wrglossary.1311">77</a>, <a href="#wrglossary.1431">94</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:babelprovide"><code class="csfmt">\babelprovide</code></dfn><span class="qquad"></span><a href="#wrglossary.39">2</a>, <a href="#wrglossary.168">13</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bahasa"><span class="optfmt">bahasa</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bahasai"><span class="optfmt">bahasai</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bahasam"><span class="optfmt">bahasam</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Bali"><span class="optfmt">Bali</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bambara"><span class="optfmt">bambara</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Bamu"><span class="optfmt">Bamu</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bashkir"><span class="optfmt">bashkir</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.basque"><span class="optfmt">basque</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Bass"><span class="optfmt">Bass</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Batk"><span class="optfmt">Batk</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BB"><span class="optfmt">BB</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:bbl@loaded"><code class="csfmt">\bbl@loaded</code></dfn><span class="qquad"></span><a href="#wrglossary.40">2</a>, <a href="#wrglossary.599">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.BCP47">BCP 47</dfn><span class="qquad"></span><a href="#wrglossary.612">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BD"><span class="optfmt">BD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BE"><span class="optfmt">BE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.be"><span class="optfmt">be</span> (<a id="wrglossary.1785"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.belarusian"><span class="optfmt">belarusian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.belarusian"><span class="optfmt">belarusian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.belgiangerman"><span class="optfmt">belgiangerman</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.belgique"><span class="optfmt">belgique</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Beng"><span class="optfmt">Beng</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bengali"><span class="optfmt">bengali</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ber"><span class="optfmt">ber</span> (<a id="wrglossary.1786"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.berber"><span class="optfmt">berber</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.berber"><span class="optfmt">berber</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BF"><span class="optfmt">BF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BG"><span class="optfmt">BG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bg"><span class="optfmt">bg</span> (<a id="wrglossary.1787"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bulgarian"><span class="optfmt">bulgarian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BH"><span class="optfmt">BH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bh"><span class="optfmt">bh</span> (<a id="wrglossary.1788"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bihari"><span class="optfmt">bihari</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BI"><span class="optfmt">BI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bi"><span class="optfmt">bi</span> (<a id="wrglossary.1789"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bislama"><span class="optfmt">bislama</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bihari"><span class="optfmt">bihari</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bislama"><span class="optfmt">bislama</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BJ"><span class="optfmt">BJ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BL"><span class="optfmt">BL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Blis"><span class="optfmt">Blis</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BM"><span class="optfmt">BM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bm"><span class="optfmt">bm</span> (<a id="wrglossary.1790"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bambara"><span class="optfmt">bambara</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BN"><span class="optfmt">BN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bn"><span class="optfmt">bn</span> (<a id="wrglossary.1791"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bengali"><span class="optfmt">bengali</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BO"><span class="optfmt">BO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bo"><span class="optfmt">bo</span> (<a id="wrglossary.1792"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tibetan"><span class="optfmt">tibetan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bokmal"><span class="optfmt">bokmal</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bolivianspanish"><span class="optfmt">bolivianspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Bopo"><span class="optfmt">Bopo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bosnian"><span class="optfmt">bosnian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BQ"><span class="optfmt">BQ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BR"><span class="optfmt">BR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.br"><span class="optfmt">br</span> (<a id="wrglossary.1793"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.breton"><span class="optfmt">breton</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Brah"><span class="optfmt">Brah</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Brai"><span class="optfmt">Brai</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.brazil"><span class="optfmt">brazil</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.brazilian"><span class="optfmt">brazilian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.347">21</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.breton"><span class="optfmt">breton</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.british"><span class="optfmt">british</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.36">2</a>, <a href="#wrglossary.57">3</a>, <a href="#wrglossary.146">12</a>, <a href="#wrglossary.163">13</a>, <a href="#wrglossary.197">15</a>, <a href="#wrglossary.244">17</a>, <a href="#wrglossary.565">34</a>, <a href="#wrglossary.638">36</a>, <a href="#wrglossary.815">49</a>, <a href="#wrglossary.942">53</a>, <a href="#wrglossary.1005">59</a>–<a href="#wrglossary.1072">62</a>, <a href="#wrglossary.1187">70</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BS"><span class="optfmt">BS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.bs"><span class="optfmt">bs</span> (<a id="wrglossary.1794"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bosnian"><span class="optfmt">bosnian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BT"><span class="optfmt">BT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Bugi"><span class="optfmt">Bugi</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Buhd"><span class="optfmt">Buhd</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.bulgarian"><span class="optfmt">bulgarian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.burmese"><span class="optfmt">burmese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BV"><span class="optfmt">BV</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BW"><span class="optfmt">BW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BY"><span class="optfmt">BY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.BZ"><span class="optfmt">BZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6619136 -->
+
+<section id="index6684672"><!-- start of section index6684672 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->C<div class="labellink"><a href="#index6684672">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CA"><span class="optfmt">CA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ca"><span class="optfmt">ca</span> (<a id="wrglossary.1795"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.catalan"><span class="optfmt">catalan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cakm"><span class="optfmt">Cakm</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.canadian"><span class="optfmt">canadian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.canadien"><span class="optfmt">canadien</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.147">12</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cans"><span class="optfmt">Cans</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:captionsdialect"><code class="csfmt">\captions<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></dfn><span class="qquad"></span><a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.155">12</a>, <a href="#wrglossary.161">13</a>, <a href="#wrglossary.208">15</a>, <a href="#wrglossary.945">53</a>, <a href="#wrglossary.947">54</a>, <a href="#wrglossary.1004">59</a>, <a href="#wrglossary.1021">61</a>, <a href="#wrglossary.1157">68</a>, <a href="#wrglossary.1178">70</a>, <a href="#wrglossary.1239">73</a>, <a href="#wrglossary.1313">77</a>, <a href="#wrglossary.1402">80</a>, <a href="#wrglossary.1403">81</a>, <a href="#wrglossary.1547">101</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cari"><span class="optfmt">Cari</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.catalan"><span class="optfmt">catalan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CC"><span class="optfmt">CC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CD"><span class="optfmt">CD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ce"><span class="optfmt">ce</span> (<a id="wrglossary.1796"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.chechen"><span class="optfmt">chechen</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CF"><span class="optfmt">CF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CG"><span class="optfmt">CG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CH"><span class="optfmt">CH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ch"><span class="optfmt">ch</span> (<a id="wrglossary.1797"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.chamorro"><span class="optfmt">chamorro</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cham"><span class="optfmt">Cham</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.chamorro"><span class="optfmt">chamorro</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.chechen"><span class="optfmt">chechen</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cher"><span class="optfmt">Cher</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.chichewa"><span class="optfmt">chichewa</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.chilianspanish"><span class="optfmt">chilianspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.chinese"><span class="optfmt">chinese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.355">22</a>, <a href="#wrglossary.1367">79</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.churchslavonic"><span class="optfmt">churchslavonic</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.chuvash"><span class="optfmt">chuvash</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CI"><span class="optfmt">CI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cirt"><span class="optfmt">Cirt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CK"><span class="optfmt">CK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CL"><span class="optfmt">CL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:cli">CLI</dfn><span class="qquad"></span><span class="termslocfmt"><a href="#wrglossary.1417">93</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CM"><span class="optfmt">CM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CN"><span class="optfmt">CN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CO"><span class="optfmt">CO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.co"><span class="optfmt">co</span> (<a id="wrglossary.1798"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.corsican"><span class="optfmt">corsican</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.code-set">code-set</dfn><span class="qquad"></span><a href="#wrglossary.324">20</a>, <a href="#wrglossary.443">26</a>, <a href="#wrglossary.1602">104</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.columbianspanish"><span class="optfmt">columbianspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.cop"><span class="optfmt">cop</span> (<a id="wrglossary.1799"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.coptic"><span class="optfmt">coptic</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Copt"><span class="optfmt">Copt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.coptic"><span class="optfmt">coptic</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.cornish"><span class="optfmt">cornish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.corsican"><span class="optfmt">corsican</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.costaricanspanish"><span class="optfmt">costaricanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cprt"><span class="optfmt">Cprt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CR"><span class="optfmt">CR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.cr"><span class="optfmt">cr</span> (<a id="wrglossary.1800"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.cree"><span class="optfmt">cree</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.cree"><span class="optfmt">cree</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.croatia"><span class="optfmt">croatia</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.croatian"><span class="optfmt">croatian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.cs"><span class="optfmt">cs</span> (<a id="wrglossary.1801"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.czech"><span class="optfmt">czech</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CU"><span class="optfmt">CU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.cu"><span class="optfmt">cu</span> (<a id="wrglossary.1802"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.churchslavonic"><span class="optfmt">churchslavonic</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.cubanspanish"><span class="optfmt">cubanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedDialect"><code class="csfmt">\CurrentTrackedDialect</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.115">10</a>, <a href="#wrglossary.778">46</a>, <a href="#wrglossary.940">53</a>, <a href="#wrglossary.1245">73</a>, <a href="#wrglossary.1405">81</a>, <span class="summarylocfmt"><a href="#wrglossary.1453">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedDialectAdditional"><code class="csfmt">\CurrentTrackedDialectAdditional</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.123">11</a>, <a href="#wrglossary.790">46</a>, <span class="summarylocfmt"><a href="#wrglossary.1456">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedDialectModifier"><code class="csfmt">\CurrentTrackedDialectModifier</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.119">11</a>, <a href="#wrglossary.787">46</a>, <a href="#wrglossary.1249">73</a>, <span class="summarylocfmt"><a href="#wrglossary.1459">95</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedDialectScript"><code class="csfmt">\CurrentTrackedDialectScript</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.121">11</a>, <a href="#wrglossary.216">15</a>, <a href="#wrglossary.793">47</a>, <a href="#wrglossary.1251">73</a>, <span class="summarylocfmt"><a href="#wrglossary.1462">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedDialectSubLang"><code class="csfmt">\CurrentTrackedDialectSubLang</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.122">11</a>, <a href="#wrglossary.789">46</a>, <a href="#wrglossary.1255">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1465">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedDialectVariant"><code class="csfmt">\CurrentTrackedDialectVariant</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.120">11</a>, <a href="#wrglossary.788">46</a>, <a href="#wrglossary.1250">73</a>, <span class="summarylocfmt"><a href="#wrglossary.1468">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedIsoCode"><code class="csfmt">\CurrentTrackedIsoCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.117">11</a>, <a href="#wrglossary.783">46</a>, <a href="#wrglossary.1257">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1471">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedLanguage"><code class="csfmt">\CurrentTrackedLanguage</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.116">11</a>, <a href="#wrglossary.779">46</a>, <a href="#wrglossary.804">49</a>, <a href="#wrglossary.939">53</a>, <a href="#wrglossary.1247">73</a>, <span class="summarylocfmt"><a href="#wrglossary.1477">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedLanguageTag"><code class="csfmt">\CurrentTrackedLanguageTag</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.124">11</a>, <a href="#wrglossary.791">47</a>, <a href="#wrglossary.1264">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1480">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedRegion"><code class="csfmt">\CurrentTrackedRegion</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.118">11</a>, <a href="#wrglossary.780">46</a>, <a href="#wrglossary.1151">68</a>, <a href="#wrglossary.1262">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1484">96</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:CurrentTrackedTag"><code class="csfmt">\CurrentTrackedTag</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.766">45</a>, <a href="#wrglossary.792">47</a>, <a href="#wrglossary.1146">68</a>, <span class="summarylocfmt"><a href="#wrglossary.1488">97</a></span>, <a href="#wrglossary.1530">100</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CV"><span class="optfmt">CV</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.cv"><span class="optfmt">cv</span> (<a id="wrglossary.1803"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.chuvash"><span class="optfmt">chuvash</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CW"><span class="optfmt">CW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CX"><span class="optfmt">CX</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.cy-GB"><span class="optfmt">cy-GB</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CY"><span class="optfmt">CY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.cy"><span class="optfmt">cy</span> (<a id="wrglossary.1804"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.welsh"><span class="optfmt">welsh</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.cymraeg"><span class="optfmt">cymraeg</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cyrl"><span class="optfmt">Cyrl</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a>; <a href="#wrglossary.228">16</a>, <a href="#wrglossary.546">32</a>, <a href="#wrglossary.742">42</a>, <a href="#wrglossary.1354">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Cyrs"><span class="optfmt">Cyrs</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.CZ"><span class="optfmt">CZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.czech"><span class="optfmt">czech</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6684672 -->
+
+<section id="index6750208"><!-- start of section index6750208 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->D<div class="labellink"><a href="#index6750208">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.da"><span class="optfmt">da</span> (<a id="wrglossary.1805"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.danish"><span class="optfmt">danish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.danish"><span class="optfmt">danish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:datedialect"><code class="csfmt">\date<span class="meta">〈<em class="metainner">dialect</em>〉</span></code></dfn><span class="qquad"></span><a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.209">15</a>, <a href="#wrglossary.962">55</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.datetime2"><span class="styfmt">datetime2</span> package</dfn><span class="qquad"></span><a href="#wrglossary.71">9</a>, <a href="#wrglossary.349">21</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-AT"><span class="optfmt">de-AT</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-AT-1996"><span class="optfmt">de-AT-1996</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-BE"><span class="optfmt">de-BE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-CH"><span class="optfmt">de-CH</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-CH-1996"><span class="optfmt">de-CH-1996</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-DE"><span class="optfmt">de-DE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.de-DE-1996"><span class="optfmt">de-DE-1996</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.DE"><span class="optfmt">DE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.de"><span class="optfmt">de</span> (<a id="wrglossary.1806"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.german"><span class="optfmt">german</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:DeclareOption"><code class="csfmt">\DeclareOption</code></dfn><span class="qquad"></span><a href="#wrglossary.181">13</a>, <a href="#wrglossary.284">19</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.deutsch"><span class="optfmt">deutsch</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Deva"><span class="optfmt">Deva</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:directlua"><code class="csfmt">\directlua</code></dfn><span class="qquad"></span><a href="#wrglossary.6">a</a>, <a href="#wrglossary.377">23</a>, <a href="#wrglossary.1701">109</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.divehi"><span class="optfmt">divehi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.DJ"><span class="optfmt">DJ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.DK"><span class="optfmt">DK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.DM"><span class="optfmt">DM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.DO"><span class="optfmt">DO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.dominicanspanish"><span class="optfmt">dominicanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.dsb"><span class="optfmt">dsb</span> (<a id="wrglossary.1807"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.lsorbian"><span class="optfmt">lsorbian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Dsrt"><span class="optfmt">Dsrt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Dupl"><span class="optfmt">Dupl</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.dutch"><span class="optfmt">dutch</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.dv"><span class="optfmt">dv</span> (<a id="wrglossary.1808"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.divehi"><span class="optfmt">divehi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.DZ"><span class="optfmt">DZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.dz"><span class="optfmt">dz</span> (<a id="wrglossary.1809"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.dzongkha"><span class="optfmt">dzongkha</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.dzongkha"><span class="optfmt">dzongkha</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6750208 -->
+
+<section id="index6815744"><!-- start of section index6815744 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->E<div class="labellink"><a href="#index6815744">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.easternpunjabi"><span class="optfmt">easternpunjabi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.EC"><span class="optfmt">EC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ecudorianspanish"><span class="optfmt">ecudorianspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.EE"><span class="optfmt">EE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ee"><span class="optfmt">ee</span> (<a id="wrglossary.1810"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ewe"><span class="optfmt">ewe</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.EG"><span class="optfmt">EG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Egyd"><span class="optfmt">Egyd</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Egyh"><span class="optfmt">Egyh</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Egyp"><span class="optfmt">Egyp</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.EH"><span class="optfmt">EH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.el"><span class="optfmt">el</span> (<a id="wrglossary.1811"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.greek"><span class="optfmt">greek</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Elba"><span class="optfmt">Elba</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.elsalvadorspanish"><span class="optfmt">elsalvadorspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-AU"><span class="optfmt">en-AU</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-CA"><span class="optfmt">en-CA</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-GB"><span class="optfmt">en-GB</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.143">12</a>, <a href="#wrglossary.199">15</a>, <a href="#wrglossary.412">24</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-GG"><span class="optfmt">en-GG</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-IE"><span class="optfmt">en-IE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.151">12</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-IM"><span class="optfmt">en-IM</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-JE"><span class="optfmt">en-JE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-MT"><span class="optfmt">en-MT</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.157">12</a>, <a href="#wrglossary.165">13</a>, <a href="#wrglossary.250">17</a>, <a href="#wrglossary.1177">70</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-NZ"><span class="optfmt">en-NZ</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.en-US"><span class="optfmt">en-US</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.en"><span class="optfmt">en</span> (<a id="wrglossary.1812"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.english"><span class="optfmt">english</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.english"><span class="optfmt">english</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.35">2</a>, <a href="#wrglossary.58">3</a>, <a href="#wrglossary.196">15</a>, <a href="#wrglossary.566">34</a>, <a href="#wrglossary.636">36</a>, <a href="#wrglossary.676">39</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.envvar">environment variables</dfn></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx1"><dfn id="glo:opt.envvar.LANG"><code class="envvarfmt">LANG</code></dfn><span class="qquad"></span><a href="#wrglossary.8">a</a>, <a href="#wrglossary.379">23</a>–<a href="#wrglossary.455">26</a>, <a href="#wrglossary.1395">80</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx1"><dfn id="glo:opt.envvar.LCALL"><code class="envvarfmt">LC_ALL</code></dfn><span class="qquad"></span><a href="#wrglossary.7">a</a>, <a href="#wrglossary.378">23</a>, <a href="#wrglossary.454">26</a>, <a href="#wrglossary.1597">104</a>, <a href="#wrglossary.1699">109</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx1"><dfn id="glo:opt.envvar.LCMONETARY"><code class="envvarfmt">LC_MONETARY</code></dfn><span class="qquad"></span><a href="#wrglossary.460">26</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.eo"><span class="optfmt">eo</span> (<a id="wrglossary.1813"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.esperanto"><span class="optfmt">esperanto</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ER"><span class="optfmt">ER</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-AR"><span class="optfmt">es-AR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-BO"><span class="optfmt">es-BO</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-CL"><span class="optfmt">es-CL</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-CO"><span class="optfmt">es-CO</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-CR"><span class="optfmt">es-CR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-CU"><span class="optfmt">es-CU</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-DO"><span class="optfmt">es-DO</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-EC"><span class="optfmt">es-EC</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-ES"><span class="optfmt">es-ES</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-GT"><span class="optfmt">es-GT</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-HN"><span class="optfmt">es-HN</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-MX"><span class="optfmt">es-MX</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-NI"><span class="optfmt">es-NI</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-PA"><span class="optfmt">es-PA</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-PE"><span class="optfmt">es-PE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-PR"><span class="optfmt">es-PR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-PY"><span class="optfmt">es-PY</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-SV"><span class="optfmt">es-SV</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-UY"><span class="optfmt">es-UY</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.es-VE"><span class="optfmt">es-VE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ES"><span class="optfmt">ES</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.es"><span class="optfmt">es</span> (<a id="wrglossary.1814"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.spanish"><span class="optfmt">spanish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.esperanto"><span class="optfmt">esperanto</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.estonian"><span class="optfmt">estonian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ET"><span class="optfmt">ET</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.et"><span class="optfmt">et</span> (<a id="wrglossary.1815"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.estonian"><span class="optfmt">estonian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:app.etex"><span class="appfmt">etex</span> (application)</dfn><span class="qquad"></span><a href="#wrglossary.392">23</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Ethi"><span class="optfmt">Ethi</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.etoolbox"><span class="styfmt">etoolbox</span> package</dfn><span class="qquad"></span><a href="#wrglossary.952">54</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.eu"><span class="optfmt">eu</span> (<a id="wrglossary.1816"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.basque"><span class="optfmt">basque</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ewe"><span class="optfmt">ewe</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6815744 -->
+
+<section id="index6881280"><!-- start of section index6881280 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->F<div class="labellink"><a href="#index6881280">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fa"><span class="optfmt">fa</span> (<a id="wrglossary.1817"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.farsi"><span class="optfmt">farsi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.faroese"><span class="optfmt">faroese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.farsi"><span class="optfmt">farsi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ff"><span class="optfmt">ff</span> (<a id="wrglossary.1818"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.fula"><span class="optfmt">fula</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.FI"><span class="optfmt">FI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fi"><span class="optfmt">fi</span> (<a id="wrglossary.1819"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.finnish"><span class="optfmt">finnish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fijian"><span class="optfmt">fijian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:fileformat">file formats</dfn></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx1"><dfn id="glo:ext.ldf"><span class="extfmt">ldf</span></dfn><span class="qquad"></span><a href="#wrglossary.176">13</a>, <a href="#wrglossary.195">15</a>, <a href="#wrglossary.770">45</a>, <a href="#wrglossary.1061">62</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx1"><dfn id="glo:ext.log"><span class="extfmt">log</span></dfn><span class="qquad"></span><a href="#wrglossary.1420">93</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx1"><dfn id="glo:ext.tex"><span class="extfmt">tex</span></dfn><span class="qquad"></span><a href="#wrglossary.76">9</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.finnish"><span class="optfmt">finnish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.FJ"><span class="optfmt">FJ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fj"><span class="optfmt">fj</span> (<a id="wrglossary.1820"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.fijian"><span class="optfmt">fijian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.FK"><span class="optfmt">FK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.flemish"><span class="optfmt">flemish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.FM"><span class="optfmt">FM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.FO"><span class="optfmt">FO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fo"><span class="optfmt">fo</span> (<a id="wrglossary.1821"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.faroese"><span class="optfmt">faroese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ForEachTrackedDialect"><code class="csfmt">\ForEachTrackedDialect</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.34">2</a>, <a href="#wrglossary.192">15</a>, <a href="#wrglossary.646">37</a>, <span class="summarylocfmt"><a href="#wrglossary.1490">97</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ForEachTrackedLanguage"><code class="csfmt">\ForEachTrackedLanguage</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.647">37</a>, <span class="summarylocfmt"><a href="#wrglossary.1492">97</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fr-BE"><span class="optfmt">fr-BE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fr-CA"><span class="optfmt">fr-CA</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fr-CH"><span class="optfmt">fr-CH</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fr-FR"><span class="optfmt">fr-FR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fr-GG"><span class="optfmt">fr-GG</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fr-JE"><span class="optfmt">fr-JE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.FR"><span class="optfmt">FR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fr"><span class="optfmt">fr</span> (<a id="wrglossary.1822"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.french"><span class="optfmt">french</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.francais"><span class="optfmt">francais</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.881">51</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.france"><span class="optfmt">france</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.french"><span class="optfmt">french</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.896">51</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.frenchb"><span class="optfmt">frenchb</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.friulan"><span class="optfmt">friulan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.friulano"><span class="optfmt">friulano</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.friulian"><span class="optfmt">friulian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.fula"><span class="optfmt">fula</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fur"><span class="optfmt">fur</span> (<a id="wrglossary.1823"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.friulan"><span class="optfmt">friulan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.furlan"><span class="optfmt">furlan</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.fy"><span class="optfmt">fy</span> (<a id="wrglossary.1824"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.westernfrisian"><span class="optfmt">westernfrisian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6881280 -->
+
+<section id="index6946816"><!-- start of section index6946816 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->G<div class="labellink"><a href="#index6946816">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ga-GB"><span class="optfmt">ga-GB</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ga-IE"><span class="optfmt">ga-IE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.152">12</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GA"><span class="optfmt">GA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ga"><span class="optfmt">ga</span> (<a id="wrglossary.1825"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.irish"><span class="optfmt">irish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.gaeilge"><span class="optfmt">gaeilge</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.gaelic"><span class="optfmt">gaelic</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.galician"><span class="optfmt">galician</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.galicien"><span class="optfmt">galicien</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ganda"><span class="optfmt">ganda</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GB"><span class="optfmt">GB</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a>; <a href="#wrglossary.633">36</a>, <a href="#wrglossary.678">39</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GBirish"><span class="optfmt">GBirish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GBscottish"><span class="optfmt">GBscottish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GBwelsh"><span class="optfmt">GBwelsh</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.gd-GB"><span class="optfmt">gd-GB</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GD"><span class="optfmt">GD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.gd"><span class="optfmt">gd</span> (<a id="wrglossary.1826"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.scottish"><span class="optfmt">scottish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GE"><span class="optfmt">GE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Geok"><span class="optfmt">Geok</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Geor"><span class="optfmt">Geor</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.georgian"><span class="optfmt">georgian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.german"><span class="optfmt">german</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.608">35</a>, <a href="#wrglossary.1334">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.german"><span class="styfmt">german</span> package</dfn><span class="qquad"></span><a href="#wrglossary.26">2</a>, <a href="#wrglossary.54">3</a>, <a href="#wrglossary.607">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.germanb"><span class="optfmt">germanb</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.germanDE"><span class="optfmt">germanDE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedDialectAdditional"><code class="csfmt">\GetTrackedDialectAdditional</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.762">44</a>, <a href="#wrglossary.1256">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1494">97</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedDialectFromLanguageTag"><code class="csfmt">\GetTrackedDialectFromLanguageTag</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.619">36</a>, <span class="summarylocfmt"><a href="#wrglossary.1496">97</a></span>, <a href="#wrglossary.1564">102</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedDialectModifier"><code class="csfmt">\GetTrackedDialectModifier</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.702">40</a>, <span class="summarylocfmt"><a href="#wrglossary.1498">97</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedDialectScript"><code class="csfmt">\GetTrackedDialectScript</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.738">42</a>, <a href="#wrglossary.1266">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1500">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedDialectSubLang"><code class="csfmt">\GetTrackedDialectSubLang</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.760">44</a>, <span class="summarylocfmt"><a href="#wrglossary.1502">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedDialectVariant"><code class="csfmt">\GetTrackedDialectVariant</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.735">42</a>, <span class="summarylocfmt"><a href="#wrglossary.1504">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:GetTrackedLanguageTag"><code class="csfmt">\GetTrackedLanguageTag</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#tab:rootlangopts">Table 1.2</a>, <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.700">40</a>, <span class="summarylocfmt"><a href="#wrglossary.1506">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GF"><span class="optfmt">GF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GG"><span class="optfmt">GG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GH"><span class="optfmt">GH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GI"><span class="optfmt">GI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GL"><span class="optfmt">GL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.gl"><span class="optfmt">gl</span> (<a id="wrglossary.1827"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.galician"><span class="optfmt">galician</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Glag"><span class="optfmt">Glag</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.glossaries"><span class="styfmt">glossaries</span> package</dfn><span class="qquad"></span><a href="#wrglossary.20">2</a>, <a href="#wrglossary.70">9</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GM"><span class="optfmt">GM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GN"><span class="optfmt">GN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.gn"><span class="optfmt">gn</span> (<a id="wrglossary.1828"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.guarani"><span class="optfmt">guarani</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Goth"><span class="optfmt">Goth</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GP"><span class="optfmt">GP</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GQ"><span class="optfmt">GQ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GR"><span class="optfmt">GR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Gran"><span class="optfmt">Gran</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.greek"><span class="optfmt">greek</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Grek"><span class="optfmt">Grek</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GS"><span class="optfmt">GS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GT"><span class="optfmt">GT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GU"><span class="optfmt">GU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.gu"><span class="optfmt">gu</span> (<a id="wrglossary.1829"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.gujarati"><span class="optfmt">gujarati</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.guarani"><span class="optfmt">guarani</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.guatemalanspanish"><span class="optfmt">guatemalanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.guernseyenglish"><span class="optfmt">guernseyenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.guernseyfrench"><span class="optfmt">guernseyfrench</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.gujarati"><span class="optfmt">gujarati</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Gujr"><span class="optfmt">Gujr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Guru"><span class="optfmt">Guru</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.gv"><span class="optfmt">gv</span> (<a id="wrglossary.1830"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.manx"><span class="optfmt">manx</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GW"><span class="optfmt">GW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.GY"><span class="optfmt">GY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index6946816 -->
+
+<section id="index7012352"><!-- start of section index7012352 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->H<div class="labellink"><a href="#index7012352">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ha"><span class="optfmt">ha</span> (<a id="wrglossary.1831"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.hausa"><span class="optfmt">hausa</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.haitian"><span class="optfmt">haitian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hanb"><span class="optfmt">Hanb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hang"><span class="optfmt">Hang</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hani"><span class="optfmt">Hani</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hano"><span class="optfmt">Hano</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hans"><span class="optfmt">Hans</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hant"><span class="optfmt">Hant</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hatr"><span class="optfmt">Hatr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hausa"><span class="optfmt">hausa</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.he"><span class="optfmt">he</span> (<a id="wrglossary.1832"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.hebrew"><span class="optfmt">hebrew</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hebr"><span class="optfmt">Hebr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hebrew"><span class="optfmt">hebrew</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.herero"><span class="optfmt">herero</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.hi"><span class="optfmt">hi</span> (<a id="wrglossary.1833"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.hindi"><span class="optfmt">hindi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hindi"><span class="optfmt">hindi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hira"><span class="optfmt">Hira</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hirimotu"><span class="optfmt">hirimotu</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.HK"><span class="optfmt">HK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hluw"><span class="optfmt">Hluw</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.HM"><span class="optfmt">HM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hmng"><span class="optfmt">Hmng</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.HN"><span class="optfmt">HN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ho"><span class="optfmt">ho</span> (<a id="wrglossary.1834"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.hirimotu"><span class="optfmt">hirimotu</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.honduranspanish"><span class="optfmt">honduranspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hr-HR"><span class="optfmt">hr-HR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.HR"><span class="optfmt">HR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.hr"><span class="optfmt">hr</span> (<a id="wrglossary.1835"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.croatian"><span class="optfmt">croatian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hrkt"><span class="optfmt">Hrkt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.hsb"><span class="optfmt">hsb</span> (<a id="wrglossary.1836"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.usorbian"><span class="optfmt">usorbian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.HT"><span class="optfmt">HT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ht"><span class="optfmt">ht</span> (<a id="wrglossary.1837"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.haitian"><span class="optfmt">haitian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hu-HU"><span class="optfmt">hu-HU</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.HU"><span class="optfmt">HU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.hu"><span class="optfmt">hu</span> (<a id="wrglossary.1838"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.magyar"><span class="optfmt">magyar</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Hung"><span class="optfmt">Hung</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.hungarian"><span class="optfmt">hungarian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.hy"><span class="optfmt">hy</span> (<a id="wrglossary.1839"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.armenian"><span class="optfmt">armenian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.hz"><span class="optfmt">hz</span> (<a id="wrglossary.1840"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.herero"><span class="optfmt">herero</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7012352 -->
+
+<section id="index7077888"><!-- start of section index7077888 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->I<div class="labellink"><a href="#index7077888">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ia"><span class="optfmt">ia</span> (<a id="wrglossary.1841"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.interlingua"><span class="optfmt">interlingua</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.icelandic"><span class="optfmt">icelandic</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.id-IN"><span class="optfmt">id-IN</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ID"><span class="optfmt">ID</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.id"><span class="optfmt">id</span> (<a id="wrglossary.1842"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bahasai"><span class="optfmt">bahasai</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ido"><span class="optfmt">ido</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IE"><span class="optfmt">IE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ie"><span class="optfmt">ie</span> (<a id="wrglossary.1843"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.interlingue"><span class="optfmt">interlingue</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IEenglish"><span class="optfmt">IEenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IEirish"><span class="optfmt">IEirish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfHasTrackedDialectAdditional"><code class="csfmt">\IfHasTrackedDialectAdditional</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.763">44</a>, <span class="summarylocfmt"><a href="#wrglossary.1508">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfHasTrackedDialectModifier"><code class="csfmt">\IfHasTrackedDialectModifier</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.707">41</a>, <span class="summarylocfmt"><a href="#wrglossary.1510">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfHasTrackedDialectScript"><code class="csfmt">\IfHasTrackedDialectScript</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.739">42</a>, <span class="summarylocfmt"><a href="#wrglossary.1512">98</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfHasTrackedDialectSubLang"><code class="csfmt">\IfHasTrackedDialectSubLang</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.761">44</a>, <span class="summarylocfmt"><a href="#wrglossary.1514">99</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfHasTrackedDialectVariant"><code class="csfmt">\IfHasTrackedDialectVariant</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.737">42</a>, <span class="summarylocfmt"><a href="#wrglossary.1516">99</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfTrackedDialect"><code class="csfmt">\IfTrackedDialect</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.654">38</a>, <span class="summarylocfmt"><a href="#wrglossary.1518">99</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfTrackedDialectIsScriptCs"><code class="csfmt">\IfTrackedDialectIsScriptCs</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.548">32</a>, <a href="#wrglossary.746">43</a>, <span class="summarylocfmt"><a href="#wrglossary.1520">99</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfTrackedIsoCode"><code class="csfmt">\IfTrackedIsoCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.672">39</a>, <span class="summarylocfmt"><a href="#wrglossary.1522">99</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfTrackedLanguage"><code class="csfmt">\IfTrackedLanguage</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.653">38</a>, <span class="summarylocfmt"><a href="#wrglossary.1525">99</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfTrackedLanguageFileExists"><code class="csfmt">\IfTrackedLanguageFileExists</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.203">15</a>, <a href="#wrglossary.765">45</a>, <a href="#wrglossary.794">47</a>, <a href="#wrglossary.938">53</a>, <a href="#wrglossary.1029">61</a>, <span class="summarylocfmt"><a href="#wrglossary.1527">100</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:IfTrackedLanguageHasIsoCode"><code class="csfmt">\IfTrackedLanguageHasIsoCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.665">39</a>, <span class="summarylocfmt"><a href="#wrglossary.1531">100</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ifTrackLangShowInfo"><code class="csfmt">\ifTrackLangShowInfo</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1534">100</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ifTrackLangShowVerbose"><code class="csfmt">\ifTrackLangShowVerbose</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1536">100</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ifTrackLangShowWarnings"><code class="csfmt">\ifTrackLangShowWarnings</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1538">100</a></span>, <a href="#wrglossary.1752">112</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ig"><span class="optfmt">ig</span> (<a id="wrglossary.1844"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.igbo"><span class="optfmt">igbo</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.igbo"><span class="optfmt">igbo</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ii"><span class="optfmt">ii</span> (<a id="wrglossary.1845"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.nuosu"><span class="optfmt">nuosu</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ik"><span class="optfmt">ik</span> (<a id="wrglossary.1846"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.inupiaq"><span class="optfmt">inupiaq</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IL"><span class="optfmt">IL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IM"><span class="optfmt">IM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IN"><span class="optfmt">IN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.indon"><span class="optfmt">indon</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.indonesian"><span class="optfmt">indonesian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Inds"><span class="optfmt">Inds</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:input"><code class="csfmt">\input</code></dfn><span class="qquad"></span><a href="#wrglossary.75">9</a>–<a href="#wrglossary.127">11</a>, <a href="#wrglossary.172">13</a>, <a href="#wrglossary.236">17</a>, <a href="#wrglossary.277">19</a>, <a href="#wrglossary.437">25</a>, <a href="#wrglossary.1200">71</a>, <a href="#wrglossary.1204">72</a>, <a href="#wrglossary.1410">81</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.interlingua"><span class="optfmt">interlingua</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.interlingue"><span class="optfmt">interlingue</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.inuktitut"><span class="optfmt">inuktitut</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.inupiaq"><span class="optfmt">inupiaq</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IO"><span class="optfmt">IO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.io"><span class="optfmt">io</span> (<a id="wrglossary.1847"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ido"><span class="optfmt">ido</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IQ"><span class="optfmt">IQ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IR"><span class="optfmt">IR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.irish"><span class="optfmt">irish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IS"><span class="optfmt">IS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.is"><span class="optfmt">is</span> (<a id="wrglossary.1848"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.icelandic"><span class="optfmt">icelandic</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.isleofmanenglish"><span class="optfmt">isleofmanenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:ISO">ISO (International Organization for Standardization)</dfn><span class="qquad"></span><a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.19">b</a>, <a href="#wrglossary.204">15</a>, <a href="#wrglossary.664">39</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.15924">ISO 15924</dfn><span class="qquad"></span><a href="#wrglossary.541">31</a>, <a href="#wrglossary.740">42</a>, <a href="#wrglossary.749">43</a>, <a href="#wrglossary.1208">72</a>, <a href="#wrglossary.1300">76</a>, <a href="#wrglossary.1356">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.3166-1">ISO <span class="mbox">3166-1</span></dfn><span class="qquad"></span><a href="#wrglossary.317">20</a>, <a href="#wrglossary.371">22</a>, <a href="#wrglossary.592">35</a>, <a href="#wrglossary.668">39</a>, <a href="#wrglossary.690">40</a>, <a href="#wrglossary.781">46</a>, <a href="#wrglossary.1220">72</a>, <a href="#wrglossary.1263">74</a>–<a href="#wrglossary.1296">76</a>, <a href="#wrglossary.1435">94</a>, <a href="#wrglossary.1487">97</a>, <a href="#wrglossary.1622">105</a>, <a href="#wrglossary.1644">106</a>, <a href="#wrglossary.1765">113</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.639-1">ISO <span class="mbox">639-1</span></dfn><span class="qquad"></span><a href="#wrglossary.314">20</a>, <a href="#wrglossary.356">22</a>, <a href="#wrglossary.590">34</a>, <a href="#wrglossary.667">39</a>, <a href="#wrglossary.692">40</a>, <a href="#wrglossary.784">46</a>, <a href="#wrglossary.819">50</a>, <a href="#wrglossary.885">51</a>, <a href="#wrglossary.1034">61</a>, <a href="#wrglossary.1216">72</a>, <a href="#wrglossary.1259">74</a>, <a href="#wrglossary.1277">75</a>, <a href="#wrglossary.1412">81</a>, <a href="#wrglossary.1447">95</a>, <a href="#wrglossary.1474">96</a>, <a href="#wrglossary.1631">105</a>, <a href="#wrglossary.1658">107</a>, <a href="#wrglossary.1768">113</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.639-2">ISO <span class="mbox">639-2</span></dfn><span class="qquad"></span><a href="#wrglossary.315">20</a>, <a href="#wrglossary.591">34</a>, <a href="#wrglossary.694">40</a>, <a href="#wrglossary.785">46</a>, <a href="#wrglossary.831">50</a>, <a href="#wrglossary.890">51</a>, <a href="#wrglossary.1046">61</a>, <a href="#wrglossary.1260">74</a>, <a href="#wrglossary.1281">75</a>, <a href="#wrglossary.1413">81</a>, <a href="#wrglossary.1448">95</a>, <a href="#wrglossary.1475">96</a>, <a href="#wrglossary.1561">102</a>, <a href="#wrglossary.1625">105</a>–<a href="#wrglossary.1664">107</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx1"><dfn id="glo:idx.639-2B">ISO <span class="mbox">639-2</span> (B)</dfn><span class="qquad"></span><a href="#wrglossary.339">21</a>, <a href="#wrglossary.595">35</a>, <a href="#wrglossary.1279">75</a>, <a href="#wrglossary.1628">105</a>, <a href="#wrglossary.1655">106</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx1"><dfn id="glo:idx.639-2T">ISO <span class="mbox">639-2</span> (T)</dfn><span class="qquad"></span><a href="#wrglossary.338">21</a>, <a href="#wrglossary.594">35</a>, <a href="#wrglossary.1278">75</a></div><!-- end of nlctuserguideidx1 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.639-3">ISO <span class="mbox">639-3</span></dfn><span class="qquad"></span><a href="#wrglossary.353">22</a>, <a href="#wrglossary.669">39</a>, <a href="#wrglossary.696">40</a>, <a href="#wrglossary.786">46</a>, <a href="#wrglossary.801">47</a>, <a href="#wrglossary.1261">74</a>, <a href="#wrglossary.1280">75</a>, <a href="#wrglossary.1449">95</a>, <a href="#wrglossary.1476">96</a>, <a href="#wrglossary.1558">101</a>, <a href="#wrglossary.1637">105</a>, <a href="#wrglossary.1665">107</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.istriacountycroatian"><span class="optfmt">istriacountycroatian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.istriacountyitalian"><span class="optfmt">istriacountyitalian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.it-CH"><span class="optfmt">it-CH</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.it-HR"><span class="optfmt">it-HR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.it-IT"><span class="optfmt">it-IT</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.it-SI"><span class="optfmt">it-SI</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.it-SM"><span class="optfmt">it-SM</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.it-VA"><span class="optfmt">it-VA</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.IT"><span class="optfmt">IT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.it"><span class="optfmt">it</span> (<a id="wrglossary.1849"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.italian"><span class="optfmt">italian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Ital"><span class="optfmt">Ital</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.italian"><span class="optfmt">italian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.italy"><span class="optfmt">italy</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.iu"><span class="optfmt">iu</span> (<a id="wrglossary.1850"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.inuktitut"><span class="optfmt">inuktitut</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7077888 -->
+
+<section id="index7143424"><!-- start of section index7143424 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->J<div class="labellink"><a href="#index7143424">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ja"><span class="optfmt">ja</span> (<a id="wrglossary.1851"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.japanese"><span class="optfmt">japanese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Jamo"><span class="optfmt">Jamo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.japanese"><span class="optfmt">japanese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Java"><span class="optfmt">Java</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.javanese"><span class="optfmt">javanese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.JE"><span class="optfmt">JE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.jerseyenglish"><span class="optfmt">jerseyenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.jerseyfrench"><span class="optfmt">jerseyfrench</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.JM"><span class="optfmt">JM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.JO"><span class="optfmt">JO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.JP"><span class="optfmt">JP</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Jpan"><span class="optfmt">Jpan</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Jurc"><span class="optfmt">Jurc</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.jv"><span class="optfmt">jv</span> (<a id="wrglossary.1852"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.javanese"><span class="optfmt">javanese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7143424 -->
+
+<section id="index7208960"><!-- start of section index7208960 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->K<div class="labellink"><a href="#index7208960">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ka"><span class="optfmt">ka</span> (<a id="wrglossary.1853"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.georgian"><span class="optfmt">georgian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kalaallisut"><span class="optfmt">kalaallisut</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kali"><span class="optfmt">Kali</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kana"><span class="optfmt">Kana</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kannada"><span class="optfmt">kannada</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kanuri"><span class="optfmt">kanuri</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kashmiri"><span class="optfmt">kashmiri</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kazakh"><span class="optfmt">kazakh</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KE"><span class="optfmt">KE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KG"><span class="optfmt">KG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kg"><span class="optfmt">kg</span> (<a id="wrglossary.1854"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kongo"><span class="optfmt">kongo</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KH"><span class="optfmt">KH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Khar"><span class="optfmt">Khar</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.khmer"><span class="optfmt">khmer</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Khmr"><span class="optfmt">Khmr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Khoj"><span class="optfmt">Khoj</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KI"><span class="optfmt">KI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ki"><span class="optfmt">ki</span> (<a id="wrglossary.1855"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kikuyu"><span class="optfmt">kikuyu</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kikuyu"><span class="optfmt">kikuyu</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kinyarwanda"><span class="optfmt">kinyarwanda</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kirundi"><span class="optfmt">kirundi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kitl"><span class="optfmt">Kitl</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kits"><span class="optfmt">Kits</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kj"><span class="optfmt">kj</span> (<a id="wrglossary.1856"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kwanyama"><span class="optfmt">kwanyama</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kk"><span class="optfmt">kk</span> (<a id="wrglossary.1857"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kazakh"><span class="optfmt">kazakh</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kl"><span class="optfmt">kl</span> (<a id="wrglossary.1858"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kalaallisut"><span class="optfmt">kalaallisut</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KM"><span class="optfmt">KM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.km"><span class="optfmt">km</span> (<a id="wrglossary.1859"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.khmer"><span class="optfmt">khmer</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KN"><span class="optfmt">KN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kn"><span class="optfmt">kn</span> (<a id="wrglossary.1860"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kannada"><span class="optfmt">kannada</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Knda"><span class="optfmt">Knda</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ko"><span class="optfmt">ko</span> (<a id="wrglossary.1861"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.korean"><span class="optfmt">korean</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.komi"><span class="optfmt">komi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kongo"><span class="optfmt">kongo</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kore"><span class="optfmt">Kore</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.korean"><span class="optfmt">korean</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KP"><span class="optfmt">KP</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kpel"><span class="optfmt">Kpel</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:app.kpsewhich"><span class="appfmt">kpsewhich</span> (application)</dfn></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KR"><span class="optfmt">KR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kr"><span class="optfmt">kr</span> (<a id="wrglossary.1862"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kanuri"><span class="optfmt">kanuri</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ks"><span class="optfmt">ks</span> (<a id="wrglossary.1863"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kashmiri"><span class="optfmt">kashmiri</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Kthi"><span class="optfmt">Kthi</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ku"><span class="optfmt">ku</span> (<a id="wrglossary.1864"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kurdish"><span class="optfmt">kurdish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kurdish"><span class="optfmt">kurdish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kurmanji"><span class="optfmt">kurmanji</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kv"><span class="optfmt">kv</span> (<a id="wrglossary.1865"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.komi"><span class="optfmt">komi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KW"><span class="optfmt">KW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.kw"><span class="optfmt">kw</span> (<a id="wrglossary.1866"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.cornish"><span class="optfmt">cornish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kwanyama"><span class="optfmt">kwanyama</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KY"><span class="optfmt">KY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ky"><span class="optfmt">ky</span> (<a id="wrglossary.1867"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kyrgyz"><span class="optfmt">kyrgyz</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.kyrgyz"><span class="optfmt">kyrgyz</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.KZ"><span class="optfmt">KZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7208960 -->
+
+<section id="index7274496"><!-- start of section index7274496 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->L<div class="labellink"><a href="#index7274496">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LA"><span class="optfmt">LA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.la"><span class="optfmt">la</span> (<a id="wrglossary.1868"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.latin"><span class="optfmt">latin</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Lana"><span class="optfmt">Lana</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:languagename"><code class="csfmt">\languagename</code></dfn><span class="qquad"></span><a href="#wrglossary.112">10</a>, <a href="#wrglossary.1267">74</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.lao"><span class="optfmt">lao</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Laoo"><span class="optfmt">Laoo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.latein"><span class="optfmt">latein</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Latf"><span class="optfmt">Latf</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Latg"><span class="optfmt">Latg</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.latin"><span class="optfmt">latin</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Latn"><span class="optfmt">Latn</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a>; <a href="#wrglossary.104">10</a>, <a href="#wrglossary.136">11</a>, <a href="#wrglossary.223">16</a>, <a href="#wrglossary.545">32</a>, <a href="#wrglossary.637">36</a>, <a href="#wrglossary.741">42</a>, <a href="#wrglossary.911">51</a>, <a href="#wrglossary.1270">74</a>, <a href="#wrglossary.1345">78</a>, <a href="#wrglossary.1415">81</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.latvian"><span class="optfmt">latvian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LB"><span class="optfmt">LB</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.lb"><span class="optfmt">lb</span> (<a id="wrglossary.1869"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.luxembourgish"><span class="optfmt">luxembourgish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LC"><span class="optfmt">LC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Leke"><span class="optfmt">Leke</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Lepc"><span class="optfmt">Lepc</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.lg"><span class="optfmt">lg</span> (<a id="wrglossary.1870"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ganda"><span class="optfmt">ganda</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LI"><span class="optfmt">LI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.li"><span class="optfmt">li</span> (<a id="wrglossary.1871"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.limburgish"><span class="optfmt">limburgish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Limb"><span class="optfmt">Limb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.limburgish"><span class="optfmt">limburgish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Lina"><span class="optfmt">Lina</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Linb"><span class="optfmt">Linb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.lingala"><span class="optfmt">lingala</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Lisu"><span class="optfmt">Lisu</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.lithuanian"><span class="optfmt">lithuanian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LK"><span class="optfmt">LK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ln"><span class="optfmt">ln</span> (<a id="wrglossary.1872"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.lingala"><span class="optfmt">lingala</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.lo"><span class="optfmt">lo</span> (<a id="wrglossary.1873"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.lao"><span class="optfmt">lao</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Loma"><span class="optfmt">Loma</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.lowersorbian"><span class="optfmt">lowersorbian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LR"><span class="optfmt">LR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LS"><span class="optfmt">LS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.lsorbian"><span class="optfmt">lsorbian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LT"><span class="optfmt">LT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.lt"><span class="optfmt">lt</span> (<a id="wrglossary.1874"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.lithuanian"><span class="optfmt">lithuanian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LU"><span class="optfmt">LU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.lu"><span class="optfmt">lu</span> (<a id="wrglossary.1875"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.lubakatanga"><span class="optfmt">lubakatanga</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.lubakatanga"><span class="optfmt">lubakatanga</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.luxembourgish"><span class="optfmt">luxembourgish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LV"><span class="optfmt">LV</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.lv"><span class="optfmt">lv</span> (<a id="wrglossary.1876"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.latvian"><span class="optfmt">latvian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.LY"><span class="optfmt">LY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Lyci"><span class="optfmt">Lyci</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Lydi"><span class="optfmt">Lydi</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7274496 -->
+
+<section id="index7340032"><!-- start of section index7340032 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->M<div class="labellink"><a href="#index7340032">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MA"><span class="optfmt">MA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.macedonian"><span class="optfmt">macedonian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.magyar"><span class="optfmt">magyar</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mahj"><span class="optfmt">Mahj</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.malagasy"><span class="optfmt">malagasy</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.malay"><span class="optfmt">malay</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.malayalam"><span class="optfmt">malayalam</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.maltaenglish"><span class="optfmt">maltaenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.166">13</a>, <a href="#wrglossary.258">17</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.maltamaltese"><span class="optfmt">maltamaltese</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.maltese"><span class="optfmt">maltese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mand"><span class="optfmt">Mand</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mani"><span class="optfmt">Mani</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.manx"><span class="optfmt">manx</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.1131">67</a>, <a href="#wrglossary.1143">68</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.maori"><span class="optfmt">maori</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.marathi"><span class="optfmt">marathi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Marc"><span class="optfmt">Marc</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.marshallese"><span class="optfmt">marshallese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Maya"><span class="optfmt">Maya</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MC"><span class="optfmt">MC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MD"><span class="optfmt">MD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ME"><span class="optfmt">ME</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mend"><span class="optfmt">Mend</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Merc"><span class="optfmt">Merc</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mero"><span class="optfmt">Mero</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.mexicanspanish"><span class="optfmt">mexicanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.66">3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.meyalu"><span class="optfmt">meyalu</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MF"><span class="optfmt">MF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MG"><span class="optfmt">MG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mg"><span class="optfmt">mg</span> (<a id="wrglossary.1877"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.malagasy"><span class="optfmt">malagasy</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MH"><span class="optfmt">MH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mh"><span class="optfmt">mh</span> (<a id="wrglossary.1878"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.marshallese"><span class="optfmt">marshallese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mi"><span class="optfmt">mi</span> (<a id="wrglossary.1879"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.maori"><span class="optfmt">maori</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MK"><span class="optfmt">MK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mk"><span class="optfmt">mk</span> (<a id="wrglossary.1880"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.macedonian"><span class="optfmt">macedonian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ML"><span class="optfmt">ML</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ml"><span class="optfmt">ml</span> (<a id="wrglossary.1881"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.malayalam"><span class="optfmt">malayalam</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mlym"><span class="optfmt">Mlym</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MM"><span class="optfmt">MM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MN"><span class="optfmt">MN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mn"><span class="optfmt">mn</span> (<a id="wrglossary.1882"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.mongolian"><span class="optfmt">mongolian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MO"><span class="optfmt">MO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Modi"><span class="optfmt">Modi</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.modifier">modifier</dfn><span class="qquad"></span><a href="#wrglossary.320">20</a>, <a href="#wrglossary.445">26</a>, <a href="#wrglossary.577">34</a>, <a href="#wrglossary.627">36</a>, <a href="#wrglossary.706">41</a>, <a href="#wrglossary.1297">76</a>, <a href="#wrglossary.1339">78</a>, <a href="#wrglossary.1609">104</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mong"><span class="optfmt">Mong</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.mongolian"><span class="optfmt">mongolian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Moon"><span class="optfmt">Moon</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MP"><span class="optfmt">MP</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MQ"><span class="optfmt">MQ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MR"><span class="optfmt">MR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mr"><span class="optfmt">mr</span> (<a id="wrglossary.1883"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.marathi"><span class="optfmt">marathi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mroo"><span class="optfmt">Mroo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ms-MY"><span class="optfmt">ms-MY</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MS"><span class="optfmt">MS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ms"><span class="optfmt">ms</span> (<a id="wrglossary.1884"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bahasam"><span class="optfmt">bahasam</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.mt-MT"><span class="optfmt">mt-MT</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MT"><span class="optfmt">MT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.mt"><span class="optfmt">mt</span> (<a id="wrglossary.1885"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.maltese"><span class="optfmt">maltese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mtei"><span class="optfmt">Mtei</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MU"><span class="optfmt">MU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mult"><span class="optfmt">Mult</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MV"><span class="optfmt">MV</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MW"><span class="optfmt">MW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MX"><span class="optfmt">MX</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MY"><span class="optfmt">MY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.my"><span class="optfmt">my</span> (<a id="wrglossary.1886"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.burmese"><span class="optfmt">burmese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Mymr"><span class="optfmt">Mymr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.MZ"><span class="optfmt">MZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7340032 -->
+
+<section id="index7405568"><!-- start of section index7405568 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->N<div class="labellink"><a href="#index7405568">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NA"><span class="optfmt">NA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.na"><span class="optfmt">na</span> (<a id="wrglossary.1887"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.nauruan"><span class="optfmt">nauruan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Narb"><span class="optfmt">Narb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nauruan"><span class="optfmt">nauruan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.naustrian"><span class="optfmt">naustrian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.845">50</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.navajo"><span class="optfmt">navajo</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nb"><span class="optfmt">nb</span> (<a id="wrglossary.1888"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.bokmal"><span class="optfmt">bokmal</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Nbat"><span class="optfmt">Nbat</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nbelgiangerman"><span class="optfmt">nbelgiangerman</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NC"><span class="optfmt">NC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nd"><span class="optfmt">nd</span> (<a id="wrglossary.1889"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.northernndebele"><span class="optfmt">northernndebele</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ndonga"><span class="optfmt">ndonga</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NE"><span class="optfmt">NE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ne"><span class="optfmt">ne</span> (<a id="wrglossary.1890"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.nepali"><span class="optfmt">nepali</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nepali"><span class="optfmt">nepali</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.netherlands"><span class="optfmt">netherlands</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Newa"><span class="optfmt">Newa</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.newzealand"><span class="optfmt">newzealand</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NF"><span class="optfmt">NF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NG"><span class="optfmt">NG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ng"><span class="optfmt">ng</span> (<a id="wrglossary.1891"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ndonga"><span class="optfmt">ndonga</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ngerman"><span class="optfmt">ngerman</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.606">35</a>, <a href="#wrglossary.1184">70</a>, <a href="#wrglossary.1312">77</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.ngerman"><span class="styfmt">ngerman</span> package</dfn><span class="qquad"></span><a href="#wrglossary.25">2</a>, <a href="#wrglossary.53">3</a>, <a href="#wrglossary.605">35</a>, <a href="#wrglossary.957">54</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ngermanb"><span class="optfmt">ngermanb</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ngermanDE"><span class="optfmt">ngermanDE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.1183">70</a>, <a href="#wrglossary.1310">77</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NI"><span class="optfmt">NI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nicaraguanspanish"><span class="optfmt">nicaraguanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nil"><span class="optfmt">nil</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Nkgb"><span class="optfmt">Nkgb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nko"><span class="optfmt">nko</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Nkoo"><span class="optfmt">Nkoo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nl-BE"><span class="optfmt">nl-BE</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nl-NL"><span class="optfmt">nl-NL</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NL"><span class="optfmt">NL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nl"><span class="optfmt">nl</span> (<a id="wrglossary.1892"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.dutch"><span class="optfmt">dutch</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nn"><span class="optfmt">nn</span> (<a id="wrglossary.1893"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.nynorsk"><span class="optfmt">nynorsk</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NO"><span class="optfmt">NO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.no"><span class="optfmt">no</span> (<a id="wrglossary.1894"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.norsk"><span class="optfmt">norsk</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.norsk"><span class="optfmt">norsk</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.northernndebele"><span class="optfmt">northernndebele</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.northernsotho"><span class="optfmt">northernsotho</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.norwegian"><span class="optfmt">norwegian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NP"><span class="optfmt">NP</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nqo"><span class="optfmt">nqo</span> (<a id="wrglossary.1895"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.nko"><span class="optfmt">nko</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NR"><span class="optfmt">NR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nr"><span class="optfmt">nr</span> (<a id="wrglossary.1896"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.southernndebele"><span class="optfmt">southernndebele</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Nshu"><span class="optfmt">Nshu</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nso"><span class="optfmt">nso</span> (<a id="wrglossary.1897"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.northernsotho"><span class="optfmt">northernsotho</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nswissgerman"><span class="optfmt">nswissgerman</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NU"><span class="optfmt">NU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nuosu"><span class="optfmt">nuosu</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.nv"><span class="optfmt">nv</span> (<a id="wrglossary.1898"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.navajo"><span class="optfmt">navajo</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ny"><span class="optfmt">ny</span> (<a id="wrglossary.1899"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.chichewa"><span class="optfmt">chichewa</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.nynorsk"><span class="optfmt">nynorsk</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.NZ"><span class="optfmt">NZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7405568 -->
+
+<section id="index7471104"><!-- start of section index7471104 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->O<div class="labellink"><a href="#index7471104">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.oc"><span class="optfmt">oc</span> (<a id="wrglossary.1900"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.occitan"><span class="optfmt">occitan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.occitan"><span class="optfmt">occitan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Ogam"><span class="optfmt">Ogam</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.oj"><span class="optfmt">oj</span> (<a id="wrglossary.1901"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ojibwe"><span class="optfmt">ojibwe</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ojibwe"><span class="optfmt">ojibwe</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Olck"><span class="optfmt">Olck</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.OM"><span class="optfmt">OM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.om"><span class="optfmt">om</span> (<a id="wrglossary.1902"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.oromo"><span class="optfmt">oromo</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.or"><span class="optfmt">or</span> (<a id="wrglossary.1903"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.oriya"><span class="optfmt">oriya</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.oriya"><span class="optfmt">oriya</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Orkh"><span class="optfmt">Orkh</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.oromo"><span class="optfmt">oromo</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Orya"><span class="optfmt">Orya</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.os"><span class="optfmt">os</span> (<a id="wrglossary.1904"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ossetian"><span class="optfmt">ossetian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Osge"><span class="optfmt">Osge</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Osma"><span class="optfmt">Osma</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ossetian"><span class="optfmt">ossetian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7471104 -->
+
+<section id="index7536640"><!-- start of section index7536640 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->P<div class="labellink"><a href="#index7536640">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PA"><span class="optfmt">PA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.pa"><span class="optfmt">pa</span> (<a id="wrglossary.1905"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.easternpunjabi"><span class="optfmt">easternpunjabi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.pali"><span class="optfmt">pali</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Palm"><span class="optfmt">Palm</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.panamaspanish"><span class="optfmt">panamaspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.paraguayspanish"><span class="optfmt">paraguayspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.pashto"><span class="optfmt">pashto</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Pauc"><span class="optfmt">Pauc</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:app.pdflatex"><span class="appfmt">pdflatex</span> (application)</dfn><span class="qquad"></span><a href="#wrglossary.395">24</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PE"><span class="optfmt">PE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Perm"><span class="optfmt">Perm</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.persian"><span class="optfmt">persian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.peruvianspanish"><span class="optfmt">peruvianspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PF"><span class="optfmt">PF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PG"><span class="optfmt">PG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PH"><span class="optfmt">PH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Phag"><span class="optfmt">Phag</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Phli"><span class="optfmt">Phli</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Phlp"><span class="optfmt">Phlp</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Phlv"><span class="optfmt">Phlv</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Phnx"><span class="optfmt">Phnx</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.pi"><span class="optfmt">pi</span> (<a id="wrglossary.1906"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.pali"><span class="optfmt">pali</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.piedmontese"><span class="optfmt">piedmontese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.piemonteis"><span class="optfmt">piemonteis</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Piqd"><span class="optfmt">Piqd</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PK"><span class="optfmt">PK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PL"><span class="optfmt">PL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.pl"><span class="optfmt">pl</span> (<a id="wrglossary.1907"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.polish"><span class="optfmt">polish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Plrd"><span class="optfmt">Plrd</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PM"><span class="optfmt">PM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.pms"><span class="optfmt">pms</span> (<a id="wrglossary.1908"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.piedmontese"><span class="optfmt">piedmontese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PN"><span class="optfmt">PN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.polish"><span class="optfmt">polish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.polutoniko"><span class="optfmt">polutoniko</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.polutonikogreek"><span class="optfmt">polutonikogreek</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.polyglossia"><span class="styfmt">polyglossia</span> package</dfn><span class="qquad"></span><a href="#wrglossary.3">a</a>, <a href="#wrglossary.23">2</a>, <a href="#wrglossary.55">3</a>, <a href="#wrglossary.73">9</a>, <a href="#wrglossary.139">11</a>–<a href="#wrglossary.162">13</a>, <a href="#wrglossary.609">35</a>, <a href="#wrglossary.759">44</a>, <a href="#wrglossary.944">53</a>, <a href="#wrglossary.993">58</a>, <a href="#wrglossary.1023">61</a>, <a href="#wrglossary.1432">94</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.portugal"><span class="optfmt">portugal</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.portuges"><span class="optfmt">portuges</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.portuguese"><span class="optfmt">portuguese</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:POSIX">POSIX (Portable Operating System Interface)</dfn><span class="qquad"></span><a href="#wrglossary.381">23</a>, <a href="#wrglossary.703">40</a>, <a href="#wrglossary.1340">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PR"><span class="optfmt">PR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.prefix-localeid.ldf"><span class="filefmt"></span><span class="meta">〈<em class="metainner">prefix</em>〉</span><span class="filefmt">-</span><span class="meta">〈<em class="metainner">localeid</em>〉</span><span class="filefmt">.ldf</span></dfn><span class="qquad"></span><a href="#wrglossary.194">15</a>, <a href="#wrglossary.221">16</a>, <a href="#wrglossary.816">49</a>–<a href="#wrglossary.926">53</a>, <a href="#wrglossary.965">55</a>, <a href="#wrglossary.978">57</a>–<a href="#wrglossary.1110">66</a>, <a href="#wrglossary.1144">68</a>, <a href="#wrglossary.1391">80</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:ProvidesFile"><code class="csfmt">\ProvidesFile</code></dfn><span class="qquad"></span><a href="#wrglossary.923">52</a>, <a href="#wrglossary.1696">109</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Prti"><span class="optfmt">Prti</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PS"><span class="optfmt">PS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ps"><span class="optfmt">ps</span> (<a id="wrglossary.1909"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.pashto"><span class="optfmt">pashto</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.pt-BR"><span class="optfmt">pt-BR</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.pt-PT"><span class="optfmt">pt-PT</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PT"><span class="optfmt">PT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.pt"><span class="optfmt">pt</span> (<a id="wrglossary.1910"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.portuges"><span class="optfmt">portuges</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.puertoricospanish"><span class="optfmt">puertoricospanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PW"><span class="optfmt">PW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.PY"><span class="optfmt">PY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7536640 -->
+
+<section id="index7602176"><!-- start of section index7602176 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->Q<div class="labellink"><a href="#index7602176">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.QA"><span class="optfmt">QA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Qaaa"><span class="optfmt">Qaaa</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Qaai"><span class="optfmt">Qaai</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Qabx"><span class="optfmt">Qabx</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.qu"><span class="optfmt">qu</span> (<a id="wrglossary.1911"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.quechua"><span class="optfmt">quechua</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.quechua"><span class="optfmt">quechua</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7602176 -->
+
+<section id="index7667712"><!-- start of section index7667712 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->R<div class="labellink"><a href="#index7667712">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.RE"><span class="optfmt">RE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.region">region</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:idx.territory">territory</a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.regions.sty"><span class="filefmt">regions.sty</span></dfn><span class="qquad"></span><a href="#wrglossary.1028">61</a>, <a href="#wrglossary.1075">62</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:RequirePackage"><code class="csfmt">\RequirePackage</code></dfn><span class="qquad"></span><a href="#wrglossary.178">13</a>, <a href="#wrglossary.237">17</a>, <a href="#wrglossary.1199">71</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Rjng"><span class="optfmt">Rjng</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.rm-CH"><span class="optfmt">rm-CH</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.rm"><span class="optfmt">rm</span> (<a id="wrglossary.1912"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.romansh"><span class="optfmt">romansh</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.rn"><span class="optfmt">rn</span> (<a id="wrglossary.1913"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kirundi"><span class="optfmt">kirundi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.RO"><span class="optfmt">RO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ro"><span class="optfmt">ro</span> (<a id="wrglossary.1914"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.romanian"><span class="optfmt">romanian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.romanche"><span class="optfmt">romanche</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.romanian"><span class="optfmt">romanian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.romansch"><span class="optfmt">romansch</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.romansh"><span class="optfmt">romansh</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Roro"><span class="optfmt">Roro</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.RS"><span class="optfmt">RS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.RU"><span class="optfmt">RU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ru"><span class="optfmt">ru</span> (<a id="wrglossary.1915"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.russian"><span class="optfmt">russian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.rumantsch"><span class="optfmt">rumantsch</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Runr"><span class="optfmt">Runr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.russian"><span class="optfmt">russian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.russianb"><span class="optfmt">russianb</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.RW"><span class="optfmt">RW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.rw"><span class="optfmt">rw</span> (<a id="wrglossary.1916"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.kinyarwanda"><span class="optfmt">kinyarwanda</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7667712 -->
+
+<section id="index7733248"><!-- start of section index7733248 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->S<div class="labellink"><a href="#index7733248">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SA"><span class="optfmt">SA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sa"><span class="optfmt">sa</span> (<a id="wrglossary.1917"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.sanskrit"><span class="optfmt">sanskrit</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.samin"><span class="optfmt">samin</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.samoan"><span class="optfmt">samoan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Samr"><span class="optfmt">Samr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sango"><span class="optfmt">sango</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sanmarino"><span class="optfmt">sanmarino</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sanskrit"><span class="optfmt">sanskrit</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sara"><span class="optfmt">Sara</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sarb"><span class="optfmt">Sarb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sardinian"><span class="optfmt">sardinian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Saur"><span class="optfmt">Saur</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SB"><span class="optfmt">SB</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SC"><span class="optfmt">SC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sc"><span class="optfmt">sc</span> (<a id="wrglossary.1918"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.sardinian"><span class="optfmt">sardinian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.scottish"><span class="optfmt">scottish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.script">script</dfn><span class="qquad"></span><a href="#wrglossary.103">10</a>, <a href="#wrglossary.125">11</a>, <a href="#wrglossary.175">13</a>, <a href="#wrglossary.201">15</a>, <a href="#wrglossary.222">16</a>, <a href="#wrglossary.348">21</a>, <a href="#wrglossary.620">36</a>, <a href="#wrglossary.753">43</a>, <a href="#wrglossary.798">47</a>, <a href="#wrglossary.820">50</a>, <a href="#wrglossary.886">51</a>, <a href="#wrglossary.1035">61</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SD"><span class="optfmt">SD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sd"><span class="optfmt">sd</span> (<a id="wrglossary.1919"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.sindhi"><span class="optfmt">sindhi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SE"><span class="optfmt">SE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.se"><span class="optfmt">se</span> (<a id="wrglossary.1920"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.samin"><span class="optfmt">samin</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:selectlanguage"><code class="csfmt">\selectlanguage</code></dfn><span class="qquad"></span><a href="#wrglossary.268">17</a>, <a href="#wrglossary.1230">72</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.serbian"><span class="optfmt">serbian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.1347">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.serbianc"><span class="optfmt">serbianc</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.serbianl"><span class="optfmt">serbianl</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetCurrentTrackedDialect"><code class="csfmt">\SetCurrentTrackedDialect</code></a><span class="qquad"></span><a href="#sec:selectlanguage">§6.2</a>; <a href="#wrglossary.113">10</a>, <a href="#wrglossary.269">18</a>, <a href="#wrglossary.777">45</a>, <a href="#wrglossary.1231">72</a>–<a href="#wrglossary.1265">74</a>, <a href="#wrglossary.1455">95</a>–<a href="#wrglossary.1486">97</a>, <span class="summarylocfmt"><a href="#wrglossary.1540">100</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetTrackedDialectAdditional"><code class="csfmt">\SetTrackedDialectAdditional</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1372">79</a>, <span class="summarylocfmt"><a href="#wrglossary.1542">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetTrackedDialectLabelMap"><code class="csfmt">\SetTrackedDialectLabelMap</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.158">12</a>, <a href="#wrglossary.271">18</a>, <a href="#wrglossary.1241">73</a>, <a href="#wrglossary.1316">77</a>, <a href="#wrglossary.1404">81</a>, <span class="summarylocfmt"><a href="#wrglossary.1544">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetTrackedDialectModifier"><code class="csfmt">\SetTrackedDialectModifier</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.588">34</a>, <a href="#wrglossary.1332">77</a>, <a href="#wrglossary.1336">78</a>, <span class="summarylocfmt"><a href="#wrglossary.1548">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetTrackedDialectScript"><code class="csfmt">\SetTrackedDialectScript</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1355">78</a>, <span class="summarylocfmt"><a href="#wrglossary.1550">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetTrackedDialectSubLang"><code class="csfmt">\SetTrackedDialectSubLang</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1365">79</a>, <span class="summarylocfmt"><a href="#wrglossary.1552">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:SetTrackedDialectVariant"><code class="csfmt">\SetTrackedDialectVariant</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1362">78</a>, <a href="#wrglossary.1364">79</a>, <span class="summarylocfmt"><a href="#wrglossary.1554">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SG"><span class="optfmt">SG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sg"><span class="optfmt">sg</span> (<a id="wrglossary.1921"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.sango"><span class="optfmt">sango</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sgnw"><span class="optfmt">Sgnw</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SH"><span class="optfmt">SH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Shaw"><span class="optfmt">Shaw</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:shellescape">shell escape</dfn><span class="qquad"></span><a href="#wrglossary.5">a</a>, <a href="#wrglossary.94">10</a>, <a href="#wrglossary.366">22</a>–<a href="#wrglossary.416">25</a>, <a href="#wrglossary.468">27</a>, <span class="termslocfmt"><a href="#wrglossary.1418">93</a></span>, <a href="#wrglossary.1700">109</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.shellesc"><span class="styfmt">shellesc</span> package</dfn><span class="qquad"></span><a href="#wrglossary.1421">93</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.shona"><span class="optfmt">shona</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Shrd"><span class="optfmt">Shrd</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SI"><span class="optfmt">SI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.si"><span class="optfmt">si</span> (<a id="wrglossary.1922"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.sinhalese"><span class="optfmt">sinhalese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sidd"><span class="optfmt">Sidd</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sind"><span class="optfmt">Sind</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sindhi"><span class="optfmt">sindhi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sinh"><span class="optfmt">Sinh</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sinhalese"><span class="optfmt">sinhalese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SJ"><span class="optfmt">SJ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SK"><span class="optfmt">SK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sk"><span class="optfmt">sk</span> (<a id="wrglossary.1923"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.slovak"><span class="optfmt">slovak</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sl-SI"><span class="optfmt">sl-SI</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:isoopts">Table 1.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SL"><span class="optfmt">SL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sl"><span class="optfmt">sl</span> (<a id="wrglossary.1924"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.slovene"><span class="optfmt">slovene</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.slovak"><span class="optfmt">slovak</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.slovene"><span class="optfmt">slovene</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sloveneistriaitalian"><span class="optfmt">sloveneistriaitalian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sloveneistriaslovenian"><span class="optfmt">sloveneistriaslovenian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.slovenia"><span class="optfmt">slovenia</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.slovenian"><span class="optfmt">slovenian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SM"><span class="optfmt">SM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sm"><span class="optfmt">sm</span> (<a id="wrglossary.1925"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.samoan"><span class="optfmt">samoan</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SN"><span class="optfmt">SN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sn"><span class="optfmt">sn</span> (<a id="wrglossary.1926"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.shona"><span class="optfmt">shona</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SO"><span class="optfmt">SO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.so"><span class="optfmt">so</span> (<a id="wrglossary.1927"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.somali"><span class="optfmt">somali</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.somali"><span class="optfmt">somali</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sora"><span class="optfmt">Sora</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.southernndebele"><span class="optfmt">southernndebele</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.southernsotho"><span class="optfmt">southernsotho</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.spainspanish"><span class="optfmt">spainspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.spanish"><span class="optfmt">spanish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.67">3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sq"><span class="optfmt">sq</span> (<a id="wrglossary.1928"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.albanian"><span class="optfmt">albanian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SR"><span class="optfmt">SR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sr"><span class="optfmt">sr</span> (<a id="wrglossary.1929"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.serbian"><span class="optfmt">serbian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SS"><span class="optfmt">SS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ss"><span class="optfmt">ss</span> (<a id="wrglossary.1930"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.swati"><span class="optfmt">swati</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ST"><span class="optfmt">ST</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.st"><span class="optfmt">st</span> (<a id="wrglossary.1931"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.southernsotho"><span class="optfmt">southernsotho</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.su"><span class="optfmt">su</span> (<a id="wrglossary.1932"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.sudanese"><span class="optfmt">sudanese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.sudanese"><span class="optfmt">sudanese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sund"><span class="optfmt">Sund</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SV"><span class="optfmt">SV</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sv"><span class="optfmt">sv</span> (<a id="wrglossary.1933"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.swedish"><span class="optfmt">swedish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.sw"><span class="optfmt">sw</span> (<a id="wrglossary.1934"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.swahili"><span class="optfmt">swahili</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swahili"><span class="optfmt">swahili</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swati"><span class="optfmt">swati</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swedish"><span class="optfmt">swedish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swissfrench"><span class="optfmt">swissfrench</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swissgerman"><span class="optfmt">swissgerman</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swissitalian"><span class="optfmt">swissitalian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.swissromansh"><span class="optfmt">swissromansh</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SX"><span class="optfmt">SX</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SY"><span class="optfmt">SY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Sylo"><span class="optfmt">Sylo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.syr"><span class="optfmt">syr</span> (<a id="wrglossary.1935"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.syriac"><span class="optfmt">syriac</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Syrc"><span class="optfmt">Syrc</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Syre"><span class="optfmt">Syre</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.syriac"><span class="optfmt">syriac</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Syrj"><span class="optfmt">Syrj</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Syrn"><span class="optfmt">Syrn</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.SZ"><span class="optfmt">SZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7733248 -->
+
+<section id="index7798784"><!-- start of section index7798784 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->T<div class="labellink"><a href="#index7798784">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ta"><span class="optfmt">ta</span> (<a id="wrglossary.1936"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tamil"><span class="optfmt">tamil</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tagalog"><span class="optfmt">tagalog</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tagb"><span class="optfmt">Tagb</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tahitian"><span class="optfmt">tahitian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tai"><span class="optfmt">tai</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tajik"><span class="optfmt">tajik</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Takr"><span class="optfmt">Takr</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tale"><span class="optfmt">Tale</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Talu"><span class="optfmt">Talu</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tamil"><span class="optfmt">tamil</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Taml"><span class="optfmt">Taml</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tang"><span class="optfmt">Tang</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tatar"><span class="optfmt">tatar</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tavt"><span class="optfmt">Tavt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TC"><span class="optfmt">TC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TD"><span class="optfmt">TD</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.te"><span class="optfmt">te</span> (<a id="wrglossary.1937"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.telugu"><span class="optfmt">telugu</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Telu"><span class="optfmt">Telu</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.telugu"><span class="optfmt">telugu</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Teng"><span class="optfmt">Teng</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.territory">territory</dfn><span class="qquad"></span><a href="#wrglossary.319">20</a>, <a href="#wrglossary.441">26</a>, <a href="#wrglossary.520">30</a>, <a href="#wrglossary.533">31</a>, <a href="#wrglossary.593">35</a>, <a href="#wrglossary.632">36</a>, <a href="#wrglossary.821">50</a>, <a href="#wrglossary.1036">61</a>, <a href="#wrglossary.1613">104</a>, <a href="#wrglossary.1649">106</a>, <a href="#wrglossary.1668">107</a>, <a href="#wrglossary.1712">109</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:app.tex"><span class="appfmt">tex</span> (application)</dfn><span class="qquad"></span><a href="#wrglossary.430">25</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.texosquery.cfg"><span class="filefmt">texosquery.cfg</span></dfn><span class="qquad"></span><a href="#wrglossary.15">a</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.texosquery.tex"><span class="filefmt">texosquery.tex</span></dfn><span class="qquad"></span><a href="#wrglossary.82">9</a>, <a href="#wrglossary.88">10</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:app.texosquery"><span class="appfmt">texosquery</span> (application)</dfn><span class="qquad"></span><a href="#wrglossary.9">a</a>, <a href="#wrglossary.93">10</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.texosquery"><span class="styfmt">texosquery</span> package</dfn><span class="qquad"></span><a href="#wrglossary.86">10</a>, <a href="#wrglossary.360">22</a>, <a href="#wrglossary.382">23</a>, <a href="#wrglossary.448">26</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:TeXOSQueryLangTag"><code class="csfmt">\TeXOSQueryLangTag</code></dfn><span class="qquad"></span><a href="#wrglossary.91">10</a>, <a href="#wrglossary.187">14</a>, <a href="#wrglossary.361">22</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:TeXOSQueryLocale"><code class="csfmt">\TeXOSQueryLocale</code></dfn><span class="qquad"></span><a href="#wrglossary.384">23</a>, <a href="#wrglossary.453">26</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TF"><span class="optfmt">TF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tfng"><span class="optfmt">Tfng</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TG"><span class="optfmt">TG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tg"><span class="optfmt">tg</span> (<a id="wrglossary.1938"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tajik"><span class="optfmt">tajik</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tglg"><span class="optfmt">Tglg</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TH"><span class="optfmt">TH</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.th"><span class="optfmt">th</span> (<a id="wrglossary.1939"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.thai"><span class="optfmt">thai</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Thaa"><span class="optfmt">Thaa</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Thai"><span class="optfmt">Thai</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.thai"><span class="optfmt">thai</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ThreeLetterExtIsoLanguageCode"><code class="csfmt">\ThreeLetterExtIsoLanguageCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.695">40</a>, <span class="summarylocfmt"><a href="#wrglossary.1556">101</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:ThreeLetterIsoLanguageCode"><code class="csfmt">\ThreeLetterIsoLanguageCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.693">40</a>, <span class="summarylocfmt"><a href="#wrglossary.1559">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ti"><span class="optfmt">ti</span> (<a id="wrglossary.1940"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tigrinya"><span class="optfmt">tigrinya</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tibetan"><span class="optfmt">tibetan</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tibt"><span class="optfmt">Tibt</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tigrinya"><span class="optfmt">tigrinya</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Tirh"><span class="optfmt">Tirh</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TJ"><span class="optfmt">TJ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TK"><span class="optfmt">TK</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tk"><span class="optfmt">tk</span> (<a id="wrglossary.1941"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.turkmen"><span class="optfmt">turkmen</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TL"><span class="optfmt">TL</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tl"><span class="optfmt">tl</span> (<a id="wrglossary.1942"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tagalog"><span class="optfmt">tagalog</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TM"><span class="optfmt">TM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TN"><span class="optfmt">TN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tn"><span class="optfmt">tn</span> (<a id="wrglossary.1943"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tswana"><span class="optfmt">tswana</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TO"><span class="optfmt">TO</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.to"><span class="optfmt">to</span> (<a id="wrglossary.1944"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tonga"><span class="optfmt">tonga</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tonga"><span class="optfmt">tonga</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TR"><span class="optfmt">TR</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tr"><span class="optfmt">tr</span> (<a id="wrglossary.1945"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.turkish"><span class="optfmt">turkish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackedDialectClosestSubMatch"><code class="csfmt">\TrackedDialectClosestSubMatch</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.623">36</a>, <span class="summarylocfmt"><a href="#wrglossary.1562">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackedDialectsFromLanguage"><code class="csfmt">\TrackedDialectsFromLanguage</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.663">39</a>, <span class="summarylocfmt"><a href="#wrglossary.1565">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackedIsoCodeFromLanguage"><code class="csfmt">\TrackedIsoCodeFromLanguage</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.684">39</a>, <span class="summarylocfmt"><a href="#wrglossary.1567">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackedLanguageFromDialect"><code class="csfmt">\TrackedLanguageFromDialect</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.662">39</a>, <span class="summarylocfmt"><a href="#wrglossary.1569">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackedLanguageFromIsoCode"><code class="csfmt">\TrackedLanguageFromIsoCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.681">39</a>, <span class="summarylocfmt"><a href="#wrglossary.1571">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackIfKnownLanguage"><code class="csfmt">\TrackIfKnownLanguage</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.183">14</a>, <a href="#wrglossary.341">21</a>, <span class="summarylocfmt"><a href="#wrglossary.1573">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.tracklang.sty"><span class="filefmt">tracklang.sty</span></dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:pkg.tracklang"><span class="styfmt">tracklang</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.tracklang.tex"><span class="filefmt">tracklang.tex</span></dfn><span class="qquad"></span><a href="#wrglossary.4">a</a>, <a href="#wrglossary.78">9</a>, <a href="#wrglossary.90">10</a>, <a href="#wrglossary.173">13</a>, <a href="#wrglossary.275">19</a>, <a href="#wrglossary.516">30</a>, <a href="#wrglossary.1205">72</a>, <a href="#wrglossary.1425">94</a>–<a href="#wrglossary.1714">110</a>, <a href="#wrglossary.1751">112</a>, <a href="#wrglossary.1764">113</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:file.tracklang-region-codes.tex"><span class="filefmt">tracklang-region-codes.tex</span></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.519">30</a>, <a href="#wrglossary.535">31</a>, <a href="#wrglossary.1221">72</a>, <a href="#wrglossary.1272">74</a>, <a href="#wrglossary.1578">103</a>, <a href="#wrglossary.1646">106</a>–<a href="#wrglossary.1711">109</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:file.tracklang-scripts.sty"><span class="filefmt">tracklang-scripts.sty</span></dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:pkg.tracklang-scripts"><span class="styfmt">tracklang-scripts</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:file.tracklang-scripts.tex"><span class="filefmt">tracklang-scripts.tex</span></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.128">11</a>, <a href="#wrglossary.539">31</a>–<a href="#wrglossary.562">33</a>, <a href="#wrglossary.750">43</a>, <a href="#wrglossary.1209">72</a>, <a href="#wrglossary.1268">74</a>, <a href="#wrglossary.1581">103</a>, <a href="#wrglossary.1728">110</a>–<a href="#wrglossary.1747">112</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.tracklang-scripts"><span class="styfmt">tracklang-scripts</span> package</dfn><span class="qquad"></span><a href="#wrglossary.126">11</a>, <a href="#wrglossary.540">31</a>, <a href="#wrglossary.747">43</a>, <a href="#wrglossary.1252">73</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.tracklang"><span class="styfmt">tracklang</span> package</dfn><span class="qquad"></span><a href="#wrglossary.1">a</a>, <a href="#wrglossary.74">9</a>, <a href="#wrglossary.281">19</a>, <a href="#wrglossary.517">30</a>, <a href="#wrglossary.596">35</a>, <a href="#wrglossary.1197">71</a>, <a href="#wrglossary.1424">94</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangAddExtraRegionFile"><code class="csfmt">\TrackLangAddExtraRegionFile</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.536">31</a>, <a href="#wrglossary.1223">72</a>, <a href="#wrglossary.1274">75</a>, <span class="summarylocfmt"><a href="#wrglossary.1576">102</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangAddExtraScriptFile"><code class="csfmt">\TrackLangAddExtraScriptFile</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.561">33</a>, <a href="#wrglossary.1211">72</a>, <a href="#wrglossary.1271">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1579">103</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangAddToCaptions"><code class="csfmt">\TrackLangAddToCaptions</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.207">15</a>, <a href="#wrglossary.225">16</a>, <a href="#wrglossary.960">54</a>, <a href="#wrglossary.1180">70</a>, <a href="#wrglossary.1325">77</a>, <span class="summarylocfmt"><a href="#wrglossary.1582">103</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangAddToHook"><code class="csfmt">\TrackLangAddToHook</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.210">15</a>, <a href="#wrglossary.262">17</a>, <a href="#wrglossary.956">54</a>, <a href="#wrglossary.1179">70</a>, <span class="summarylocfmt"><a href="#wrglossary.1585">103</a></span>, <a href="#wrglossary.1709">109</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangAlphaIIIToNumericRegion"><code class="csfmt">\TrackLangAlphaIIIToNumericRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.530">30</a>, <span class="summarylocfmt"><a href="#wrglossary.1587">103</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangAlphaIIToNumericRegion"><code class="csfmt">\TrackLangAlphaIIToNumericRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.524">30</a>, <span class="summarylocfmt"><a href="#wrglossary.1589">103</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangDeclareDialectOption"><code class="csfmt">\TrackLangDeclareDialectOption</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1591">103</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangDeclareLanguageOption"><code class="csfmt">\TrackLangDeclareLanguageOption</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1594">104</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangEnv"><code class="csfmt">\TrackLangEnv</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.417">25</a>–<a href="#wrglossary.463">27</a>, <span class="summarylocfmt"><a href="#wrglossary.1596">104</a></span>, <a href="#wrglossary.1687">108</a>, <a href="#wrglossary.1760">112</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangEnvCodeSet"><code class="csfmt">\TrackLangEnvCodeSet</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.444">26</a>, <span class="summarylocfmt"><a href="#wrglossary.1599">104</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangEnvLang"><code class="csfmt">\TrackLangEnvLang</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.440">26</a>, <span class="summarylocfmt"><a href="#wrglossary.1603">104</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangEnvModifier"><code class="csfmt">\TrackLangEnvModifier</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.446">26</a>, <span class="summarylocfmt"><a href="#wrglossary.1606">104</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangEnvTerritory"><code class="csfmt">\TrackLangEnvTerritory</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.442">26</a>, <span class="summarylocfmt"><a href="#wrglossary.1610">104</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangFromEnv"><code class="csfmt">\TrackLangFromEnv</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.79">9</a>, <a href="#wrglossary.100">10</a>, <a href="#wrglossary.188">14</a>, <a href="#wrglossary.375">23</a>, <a href="#wrglossary.414">25</a>–<a href="#wrglossary.502">28</a>, <a href="#wrglossary.575">34</a>, <a href="#wrglossary.705">40</a>, <a href="#wrglossary.1394">80</a>, <a href="#wrglossary.1407">81</a>, <span class="summarylocfmt"><a href="#wrglossary.1614">104</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangGetDefaultScript"><code class="csfmt">\TrackLangGetDefaultScript</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.745">43</a>, <span class="summarylocfmt"><a href="#wrglossary.1618">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangGetKnownCountry"><code class="csfmt">\TrackLangGetKnownCountry</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1620">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangGetKnownIsoThreeLetterLang"><code class="csfmt">\TrackLangGetKnownIsoThreeLetterLang</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1623">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangGetKnownIsoThreeLetterLangB"><code class="csfmt">\TrackLangGetKnownIsoThreeLetterLangB</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1626">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangGetKnownIsoTwoLetterLang"><code class="csfmt">\TrackLangGetKnownIsoTwoLetterLang</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1629">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangGetKnownLangFromIso"><code class="csfmt">\TrackLangGetKnownLangFromIso</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1632">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfAlphaNumericChar"><code class="csfmt">\TrackLangIfAlphaNumericChar</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1638">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfHasDefaultScript"><code class="csfmt">\TrackLangIfHasDefaultScript</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1640">105</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfHasKnownCountry"><code class="csfmt">\TrackLangIfHasKnownCountry</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1642">106</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownAlphaIIIRegion"><code class="csfmt">\TrackLangIfKnownAlphaIIIRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.532">31</a>, <span class="summarylocfmt"><a href="#wrglossary.1645">106</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownAlphaIIRegion"><code class="csfmt">\TrackLangIfKnownAlphaIIRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.526">30</a>, <span class="summarylocfmt"><a href="#wrglossary.1647">106</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownIsoThreeLetterLang"><code class="csfmt">\TrackLangIfKnownIsoThreeLetterLang</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1650">106</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownIsoThreeLetterLangB"><code class="csfmt">\TrackLangIfKnownIsoThreeLetterLangB</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1653">106</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownIsoTwoLetterLang"><code class="csfmt">\TrackLangIfKnownIsoTwoLetterLang</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1656">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownLang"><code class="csfmt">\TrackLangIfKnownLang</code></a><span class="qquad"></span><a href="#wrglossary.1411">81</a>, <span class="summarylocfmt"><a href="#wrglossary.1659">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownLangFromIso"><code class="csfmt">\TrackLangIfKnownLangFromIso</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1661">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfKnownNumericRegion"><code class="csfmt">\TrackLangIfKnownNumericRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.528">30</a>, <span class="summarylocfmt"><a href="#wrglossary.1666">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfLanguageTag"><code class="csfmt">\TrackLangIfLanguageTag</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1669">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfRegionTag"><code class="csfmt">\TrackLangIfRegionTag</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1671">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfScriptTag"><code class="csfmt">\TrackLangIfScriptTag</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1673">107</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangIfVariantTag"><code class="csfmt">\TrackLangIfVariantTag</code></a><span class="qquad"></span><span class="summarylocfmt"><a href="#wrglossary.1675">108</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangLastTrackedDialect"><code class="csfmt">\TrackLangLastTrackedDialect</code></a><span class="qquad"></span><a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.159">12</a>, <a href="#wrglossary.1287">76</a>, <a href="#wrglossary.1303">77</a>, <a href="#wrglossary.1438">94</a>, <span class="summarylocfmt"><a href="#wrglossary.1677">108</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangNewLanguage"><code class="csfmt">\TrackLangNewLanguage</code></a><span class="qquad"></span><a href="#sec:newlanguages">§6.5</a>; <a href="#wrglossary.1214">72</a>, <a href="#wrglossary.1276">75</a>, <a href="#wrglossary.1289">76</a>, <a href="#wrglossary.1414">81</a>, <a href="#wrglossary.1450">95</a>, <span class="summarylocfmt"><a href="#wrglossary.1679">108</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangNumericToAlphaIIIRegion"><code class="csfmt">\TrackLangNumericToAlphaIIIRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.531">31</a>, <span class="summarylocfmt"><a href="#wrglossary.1681">108</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangNumericToAlphaIIRegion"><code class="csfmt">\TrackLangNumericToAlphaIIRegion</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.525">30</a>, <span class="summarylocfmt"><a href="#wrglossary.1683">108</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangParseFromEnv"><code class="csfmt">\TrackLangParseFromEnv</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.475">27</a>, <a href="#wrglossary.1598">104</a>, <span class="summarylocfmt"><a href="#wrglossary.1685">108</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangProvidePredefinedDialect"><code class="csfmt">\TrackLangProvidePredefinedDialect</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1218">72</a>, <a href="#wrglossary.1293">76</a>, <span class="summarylocfmt"><a href="#wrglossary.1688">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangProvidePredefinedLanguage"><code class="csfmt">\TrackLangProvidePredefinedLanguage</code></a><span class="qquad"></span><a href="#sec:definelabels">§6.6</a>; <a href="#wrglossary.1226">72</a>, <a href="#wrglossary.1290">76</a>, <span class="summarylocfmt"><a href="#wrglossary.1691">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangProvidesResource"><code class="csfmt">\TrackLangProvidesResource</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.206">15</a>, <a href="#wrglossary.224">16</a>, <a href="#wrglossary.772">45</a>, <a href="#wrglossary.922">52</a>, <a href="#wrglossary.933">53</a>, <a href="#wrglossary.1400">80</a>, <span class="summarylocfmt"><a href="#wrglossary.1694">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangQueryEnv"><code class="csfmt">\TrackLangQueryEnv</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.447">26</a>, <span class="summarylocfmt"><a href="#wrglossary.1697">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangQueryOtherEnv"><code class="csfmt">\TrackLangQueryOtherEnv</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.459">26</a>, <span class="summarylocfmt"><a href="#wrglossary.1702">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRedefHook"><code class="csfmt">\TrackLangRedefHook</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.211">15</a>, <a href="#wrglossary.263">17</a>, <a href="#wrglossary.963">55</a>, <span class="summarylocfmt"><a href="#wrglossary.1707">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRegionMap"><code class="csfmt">\TrackLangRegionMap</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.534">31</a>, <a href="#wrglossary.1222">72</a>, <a href="#wrglossary.1273">75</a>, <span class="summarylocfmt"><a href="#wrglossary.1710">109</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRequestResource"><code class="csfmt">\TrackLangRequestResource</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.219">15</a>, <a href="#wrglossary.935">53</a>, <span class="summarylocfmt"><a href="#wrglossary.1713">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRequireDialect"><code class="csfmt">\TrackLangRequireDialect</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.193">15</a>, <a href="#wrglossary.768">45</a>, <a href="#wrglossary.920">52</a>–<a href="#wrglossary.959">54</a>, <a href="#wrglossary.1062">62</a>, <span class="summarylocfmt"><a href="#wrglossary.1716">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRequireDialectPrefix"><code class="csfmt">\TrackLangRequireDialectPrefix</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.771">45</a>, <span class="summarylocfmt"><a href="#wrglossary.1718">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRequireResource"><code class="csfmt">\TrackLangRequireResource</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.773">45</a>, <a href="#wrglossary.814">49</a>, <a href="#wrglossary.925">53</a>, <a href="#wrglossary.1401">80</a>, <span class="summarylocfmt"><a href="#wrglossary.1721">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangRequireResourceOrDo"><code class="csfmt">\TrackLangRequireResourceOrDo</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.934">53</a>, <span class="summarylocfmt"><a href="#wrglossary.1724">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptAlphaToDir"><code class="csfmt">\TrackLangScriptAlphaToDir</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.133">11</a>, <a href="#wrglossary.555">33</a>, <span class="summarylocfmt"><a href="#wrglossary.1727">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptAlphaToName"><code class="csfmt">\TrackLangScriptAlphaToName</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.129">11</a>, <a href="#wrglossary.554">32</a>, <span class="summarylocfmt"><a href="#wrglossary.1729">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptAlphaToNumeric"><code class="csfmt">\TrackLangScriptAlphaToNumeric</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.131">11</a>, <a href="#wrglossary.550">32</a>, <span class="summarylocfmt"><a href="#wrglossary.1731">110</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptCode"><code class="csfmt">\TrackLangScript<span class="meta">〈<em class="metainner">Code</em>〉</span></code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.138">11</a>, <a href="#wrglossary.547">32</a>, <a href="#wrglossary.748">43</a>, <span class="summarylocfmt"><a href="#wrglossary.1733">111</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptGetParent"><code class="csfmt">\TrackLangScriptGetParent</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.557">33</a>, <span class="summarylocfmt"><a href="#wrglossary.1736">111</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptIfHasParent"><code class="csfmt">\TrackLangScriptIfHasParent</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.558">33</a>, <span class="summarylocfmt"><a href="#wrglossary.1738">111</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptIfKnownAlpha"><code class="csfmt">\TrackLangScriptIfKnownAlpha</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.551">32</a>, <span class="summarylocfmt"><a href="#wrglossary.1740">111</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptIfKnownNumeric"><code class="csfmt">\TrackLangScriptIfKnownNumeric</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.553">32</a>, <span class="summarylocfmt"><a href="#wrglossary.1742">111</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptMap"><code class="csfmt">\TrackLangScriptMap</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.544">32</a>, <a href="#wrglossary.560">33</a>, <a href="#wrglossary.1210">72</a>, <a href="#wrglossary.1269">74</a>, <span class="summarylocfmt"><a href="#wrglossary.1744">111</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptNumericToAlpha"><code class="csfmt">\TrackLangScriptNumericToAlpha</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.552">32</a>, <span class="summarylocfmt"><a href="#wrglossary.1746">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangScriptSetParent"><code class="csfmt">\TrackLangScriptSetParent</code></a><span class="qquad"></span><a href="#sec:supplpkgs">§4</a>; <a href="#wrglossary.556">33</a>, <span class="summarylocfmt"><a href="#wrglossary.1748">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangShowWarningsfalse"><code class="csfmt">\TrackLangShowWarningsfalse</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.397">24</a>, <span class="summarylocfmt"><a href="#wrglossary.1750">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLangShowWarningstrue"><code class="csfmt">\TrackLangShowWarningstrue</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#wrglossary.398">24</a>, <span class="summarylocfmt"><a href="#wrglossary.1753">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLanguageTag"><code class="csfmt">\TrackLanguageTag</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.92">10</a>, <a href="#wrglossary.154">12</a>–<a href="#wrglossary.190">14</a>, <a href="#wrglossary.243">17</a>, <a href="#wrglossary.340">21</a>, <a href="#wrglossary.373">23</a>, <a href="#wrglossary.521">30</a>, <a href="#wrglossary.578">34</a>, <a href="#wrglossary.639">36</a>, <a href="#wrglossary.670">39</a>, <a href="#wrglossary.699">40</a>, <a href="#wrglossary.736">42</a>, <a href="#wrglossary.1237">73</a>, <a href="#wrglossary.1307">77</a>, <a href="#wrglossary.1575">102</a>, <span class="summarylocfmt"><a href="#wrglossary.1756">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackLocale"><code class="csfmt">\TrackLocale</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.301">20</a>, <a href="#wrglossary.367">22</a>, <a href="#wrglossary.374">23</a>, <a href="#wrglossary.439">25</a>, <a href="#wrglossary.574">34</a>, <a href="#wrglossary.640">36</a>, <a href="#wrglossary.704">40</a>, <a href="#wrglossary.1236">73</a>, <a href="#wrglossary.1306">77</a>, <a href="#wrglossary.1338">78</a>, <span class="summarylocfmt"><a href="#wrglossary.1758">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TrackPredefinedDialect"><code class="csfmt">\TrackPredefinedDialect</code></a><span class="qquad"></span><a href="#sec:generic">§3</a>; <a href="#tab:isoopts">Table 1.1</a>; <a href="#wrglossary.68">3</a>, <a href="#wrglossary.111">10</a>, <a href="#wrglossary.242">17</a>, <a href="#wrglossary.293">19</a>, <a href="#wrglossary.302">20</a>, <a href="#wrglossary.1225">72</a>, <a href="#wrglossary.1233">73</a>, <a href="#wrglossary.1288">76</a>, <a href="#wrglossary.1305">77</a>, <a href="#wrglossary.1593">103</a>, <a href="#wrglossary.1690">109</a>, <span class="summarylocfmt"><a href="#wrglossary.1761">112</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:trans@languages"><code class="csfmt">\trans@languages</code></dfn><span class="qquad"></span><a href="#wrglossary.602">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:pkg.translator"><span class="styfmt">translator</span> package</dfn><span class="qquad"></span><a href="#wrglossary.22">2</a>, <a href="#wrglossary.52">3</a>, <a href="#wrglossary.603">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ts"><span class="optfmt">ts</span> (<a id="wrglossary.1946"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tsonga"><span class="optfmt">tsonga</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tsonga"><span class="optfmt">tsonga</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.tswana"><span class="optfmt">tswana</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TT"><span class="optfmt">TT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tt"><span class="optfmt">tt</span> (<a id="wrglossary.1947"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tatar"><span class="optfmt">tatar</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.turkish"><span class="optfmt">turkish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.turkmen"><span class="optfmt">turkmen</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TV"><span class="optfmt">TV</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TW"><span class="optfmt">TW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.tw"><span class="optfmt">tw</span> (<a id="wrglossary.1948"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.twi"><span class="optfmt">twi</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.twi"><span class="optfmt">twi</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TwoLetterIsoCountryCode"><code class="csfmt">\TwoLetterIsoCountryCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.689">40</a>, <span class="summarylocfmt"><a href="#wrglossary.1763">113</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:TwoLetterIsoLanguageCode"><code class="csfmt">\TwoLetterIsoLanguageCode</code></a><span class="qquad"></span><a href="#sec:user">§5</a>; <a href="#wrglossary.691">40</a>, <span class="summarylocfmt"><a href="#wrglossary.1766">113</a></span></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ty"><span class="optfmt">ty</span> (<a id="wrglossary.1949"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.tahitian"><span class="optfmt">tahitian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.TZ"><span class="optfmt">TZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7798784 -->
+
+<section id="index7864320"><!-- start of section index7864320 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->U<div class="labellink"><a href="#index7864320">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.UA"><span class="optfmt">UA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.UG"><span class="optfmt">UG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ug"><span class="optfmt">ug</span> (<a id="wrglossary.1950"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.uyghur"><span class="optfmt">uyghur</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Ugar"><span class="optfmt">Ugar</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.uk"><span class="optfmt">uk</span> (<a id="wrglossary.1951"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.ukrainian"><span class="optfmt">ukrainian</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.UKenglish"><span class="optfmt">UKenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.160">12</a>, <a href="#wrglossary.164">13</a>, <a href="#wrglossary.251">17</a>, <a href="#wrglossary.568">34</a>, <a href="#wrglossary.943">53</a>, <a href="#wrglossary.1188">70</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ukraine"><span class="optfmt">ukraine</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ukraineb"><span class="optfmt">ukraineb</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ukrainian"><span class="optfmt">ukrainian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.UM"><span class="optfmt">UM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.und"><span class="optfmt">und</span> (<a id="wrglossary.1952"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.undetermined"><span class="optfmt">undetermined</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.undetermined"><span class="optfmt">undetermined</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a>; <a href="#wrglossary.701">40</a>, <a href="#wrglossary.1483">96</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.uppersorbian"><span class="optfmt">uppersorbian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ur"><span class="optfmt">ur</span> (<a id="wrglossary.1953"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.urdu"><span class="optfmt">urdu</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.urdu"><span class="optfmt">urdu</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.uruguayspanish"><span class="optfmt">uruguayspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.US"><span class="optfmt">US</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.USenglish"><span class="optfmt">USenglish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a>; <a href="#wrglossary.1190">70</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.usorbian"><span class="optfmt">usorbian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.UY"><span class="optfmt">UY</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.uyghur"><span class="optfmt">uyghur</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.UZ"><span class="optfmt">UZ</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.uz"><span class="optfmt">uz</span> (<a id="wrglossary.1954"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.uzbek"><span class="optfmt">uzbek</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.uzbek"><span class="optfmt">uzbek</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7864320 -->
+
+<section id="index7929856"><!-- start of section index7929856 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->V<div class="labellink"><a href="#index7929856">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VA"><span class="optfmt">VA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Vaii"><span class="optfmt">Vaii</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.valencian"><span class="optfmt">valencian</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.valencien"><span class="optfmt">valencien</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:idx.variant">variant</dfn><span class="qquad"></span><a href="#wrglossary.105">10</a>, <a href="#wrglossary.202">15</a>, <a href="#wrglossary.321">20</a>, <a href="#wrglossary.621">36</a>, <a href="#wrglossary.799">47</a>, <a href="#wrglossary.876">50</a>, <a href="#wrglossary.1298">76</a>, <a href="#wrglossary.1344">78</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.vatican"><span class="optfmt">vatican</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VC"><span class="optfmt">VC</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VE"><span class="optfmt">VE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.ve"><span class="optfmt">ve</span> (<a id="wrglossary.1955"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.venda"><span class="optfmt">venda</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.venda"><span class="optfmt">venda</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.venezuelanspanish"><span class="optfmt">venezuelanspanish</span> (option)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:nonisoopts">Table 1.3</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VG"><span class="optfmt">VG</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VI"><span class="optfmt">VI</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.vi"><span class="optfmt">vi</span> (<a id="wrglossary.1956"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.vietnamese"><span class="optfmt">vietnamese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.vietnamese"><span class="optfmt">vietnamese</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Visp"><span class="optfmt">Visp</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VN"><span class="optfmt">VN</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.vo"><span class="optfmt">vo</span> (<a id="wrglossary.1957"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.volapuk"><span class="optfmt">volapuk</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.volapuk"><span class="optfmt">volapuk</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.VU"><span class="optfmt">VU</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7929856 -->
+
+<section id="index7995392"><!-- start of section index7995392 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->W<div class="labellink"><a href="#index7995392">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.wa"><span class="optfmt">wa</span> (<a id="wrglossary.1958"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.walloon"><span class="optfmt">walloon</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.walloon"><span class="optfmt">walloon</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Wara"><span class="optfmt">Wara</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.welsh"><span class="optfmt">welsh</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.westernfrisian"><span class="optfmt">westernfrisian</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.WF"><span class="optfmt">WF</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.wo"><span class="optfmt">wo</span> (<a id="wrglossary.1959"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.wolof"><span class="optfmt">wolof</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Wole"><span class="optfmt">Wole</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.wolof"><span class="optfmt">wolof</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.WS"><span class="optfmt">WS</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index7995392 -->
+
+<section id="index8060928"><!-- start of section index8060928 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->X<div class="labellink"><a href="#index8060928">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.xh"><span class="optfmt">xh</span> (<a id="wrglossary.1960"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.xhosa"><span class="optfmt">xhosa</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.xhosa"><span class="optfmt">xhosa</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Xpeo"><span class="optfmt">Xpeo</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:xpg@bcp@loaded"><code class="csfmt">\xpg@bcp@loaded</code></dfn><span class="qquad"></span><a href="#wrglossary.28">2</a>, <a href="#wrglossary.140">11</a>, <a href="#wrglossary.610">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:xpg@loaded"><code class="csfmt">\xpg@loaded</code></dfn><span class="qquad"></span><a href="#wrglossary.613">35</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Xsux"><span class="optfmt">Xsux</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index8060928 -->
+
+<section id="index8126464"><!-- start of section index8126464 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->Y<div class="labellink"><a href="#index8126464">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.YE"><span class="optfmt">YE</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.yi"><span class="optfmt">yi</span> (<a id="wrglossary.1961"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.yiddish"><span class="optfmt">yiddish</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.yiddish"><span class="optfmt">yiddish</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Yiii"><span class="optfmt">Yiii</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.yo"><span class="optfmt">yo</span> (<a id="wrglossary.1962"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.yoruba"><span class="optfmt">yoruba</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.yoruba"><span class="optfmt">yoruba</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.YT"><span class="optfmt">YT</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+
+</section><!-- end of section index8126464 -->
+
+<section id="index8192000"><!-- start of section index8192000 --><div class="tomain"><a href="#main">[top]</a></div>
+<h2><!-- start of section header -->Z<div class="labellink"><a href="#index8192000">[link]</a></div></h2><!-- end of section header -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ZA"><span class="optfmt">ZA</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.za"><span class="optfmt">za</span> (<a id="wrglossary.1963"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.zhuang"><span class="optfmt">zhuang</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.zh"><span class="optfmt">zh</span> (<a id="wrglossary.1964"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.chinese"><span class="optfmt">chinese</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.zhuang"><span class="optfmt">zhuang</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zinh"><span class="optfmt">Zinh</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ZM"><span class="optfmt">ZM</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zmth"><span class="optfmt">Zmth</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zsye"><span class="optfmt">Zsye</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zsym"><span class="optfmt">Zsym</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><dfn id="glo:opt.zu"><span class="optfmt">zu</span> (<a id="wrglossary.1965"></a><a href="#glo:ISO">ISO</a> code)</dfn><span class="qquad"></span><div class="crossref"><span class="crossreftag">see</span> <a href="#glo:opt.zulu"><span class="optfmt">zulu</span></a></div><!-- end of crossref -->
+</div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.zulu"><span class="optfmt">zulu</span> (root language)</a><span class="qquad"></span><a href="#sec:intro">§1</a>; <a href="#tab:rootlangopts">Table 1.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.ZW"><span class="optfmt">ZW</span> (region)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:regionmappings">Table A.1</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zxxx"><span class="optfmt">Zxxx</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zyyy"><span class="optfmt">Zyyy</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<div class="nlctuserguideidx0"><a href="#glo:opt.Zzzz"><span class="optfmt">Zzzz</span> (script)</a><span class="qquad"></span><a href="#sec:regscriptmappings">§A</a>; <a href="#tab:scriptmappings">Table A.2</a></div><!-- end of nlctuserguideidx0 -->
+<p>
+
+</section><!-- end of section index8192000 -->
+<p><hr><p>
+<sup><a id="footnote.1"></a><a href="#fnback-footnote.1">1</a></sup>Thass Broad Norfolk, my bewties <code class="code">:-P</code></div><!-- end of main -->
+</body>
+</html>
diff --git a/macros/generic/tracklang/tracklang-manual.pdf b/macros/generic/tracklang/tracklang-manual.pdf
new file mode 100644
index 0000000000..0677e13b85
--- /dev/null
+++ b/macros/generic/tracklang/tracklang-manual.pdf
Binary files differ
diff --git a/macros/generic/tracklang/tracklang-manual.tex b/macros/generic/tracklang/tracklang-manual.tex
new file mode 100644
index 0000000000..a141ea906b
--- /dev/null
+++ b/macros/generic/tracklang/tracklang-manual.tex
@@ -0,0 +1,5641 @@
+% arara: lualatex
+% arara: bib2gls: { group: on, options: [ "--replace-quotes" ] }
+% arara: lualatex
+% arara: bib2gls: { group: on, options: [ "--replace-quotes" ] } if found ("log", "Glossary entry `sym.")
+% arara: lualatex
+% arara: lualatex if found ("log", "Rerun to")
+
+% This document requires glossaries v4.51, glossaries-extra v1.50
+% and nlctuserguide.sty v1.09. If they haven't already
+% been uploaded to CTAN, they will be in a few days.
+
+\documentclass[titlepage=false,oneside,
+ fontsize=12pt,captions=tableheading]{scrbook}
+
+\usepackage
+ [
+ floats,
+ %debug=showwrgloss
+ ]
+ {nlctuserguide}
+
+\usepackage{glossary-table}
+
+\glsxtrnewgls{opt.envvar.}{\envvar}
+\defsemanticcmd[style2]{\envvarfmt}{\texttt}{}
+\defsemanticcmd[style1]{\langtagfmt}{\texttt}{}
+
+\glsaddstoragekey{dialect}{}{\dialect}
+\glsaddstoragekey{isotag}{}{\isotag}
+\glsaddstoragekey{langtag}{}{\langtag}
+\glsxtrprovidestoragekey{tags}{}{}
+\glsxtrprovidestoragekey{region}{}{}
+\glsaddstoragekey{numeric}{}{\numerictag}
+\glsxtrprovidestoragekey{alpha3}{}{}
+
+\newcommand{\optisotag}[1]{\isotag{opt.#1}}
+\newcommand{\iso}[1]{\glslink{opt.#1}{\optfmt{\optisotag{#1}}}}
+\newcommand{\numericcode}[1]{\glslink{opt.#1}{\glsxtrusefield{opt.#1}{numeric}}}
+
+\newcommand{\tklscript}[1]{\glslink{TrackLangScriptCode}{\csfmt{TrackLangScript#1}}}
+\newcommand{\tklcaptions}[1]{\glslink{captionsdialect}{\csfmt{captions#1}}}
+\newcommand{\tkldate}[1]{\glslink{datedialect}{\csfmt{date#1}}}
+
+\newcommand{\ldf}[2]{%
+ \glslink{file.prefix-localeid.ldf}{\filefmt{#1\dhyphen #2.ldf}}}
+\newcommand{\localefile}[1]{%
+ \glslink{file.prefix-localeid.ldf}{\metafilefmt{#1\dhyphen}{localeid}{.ldf}}}
+\newcommand{\localemetafile}[1]{%
+ \glslink{file.prefix-localeid.ldf}{\metametafilefmt{}{#1}{\dhyphen}{localeid}{.ldf}}}
+\newcommand{\localemetametafile}[2]{%
+ \glslink{file.prefix-localeid.ldf}{\metametafilefmt{}{#1}{\dhyphen}{#2}{.ldf}}}
+
+\newcommand{\fnregion}{\fnsym*{2}}
+
+\renewcommand{\filetag}[1]{}
+
+\renewcommand{\nlctuserguidecustomentryaliases}{%
+ isolangregion=index,
+ rootlang=index,
+ noniso=index,
+ isocode=index,
+ region=index,
+ script=index
+}
+
+\nlctuserguidegls[selection=all]
+{
+ \def\genvvar#1#2{%
+ \glsbibwriteentry{option}{opt.envvar.#1}{%
+ \field{name}{\envvarfmt{#1}}\parent{idx.envvar}#2}}%
+ \gidxpl{envvar}{\field{text}{environment variable}}
+ % predefined ISO language-region tags
+ % \gisolangtag{xx}{XX}{dialect}{options}
+ \def\gisolangtag#1#2#3#4{%
+ \glsbibwriteentry{isolangregion}{opt.#1-#2}{%
+ \name{\optfmt{#1-#2}}%
+ \field{langtag}{#1}\field{region}{#2}%
+ \field{isotag}{#1-#2}%
+ \field{dialect}{#3}#4}%
+ }%
+ % \gisolangtagwithvar{xx}{XX}{variant}{dialect}{options}
+ \def\gisolangtagwithvar#1#2#3#4#5{%
+ \glsbibwriteentry{isolangregion}{opt.#1-#2-#3}{%
+ \name{\optfmt{#1-#2-#3}}%
+ \field{langtag}{#1}\field{region}{#2}%
+ \field{isotag}{#1-#2-#3}%
+ \field{dialect}{#4}#5}%
+ }%
+ % predefined root language labels
+ % \grootlangtag{language}{iso tag}{options}
+ \def\grootlangtag#1#2#3{%
+ \glsbibwriteentry{rootlang}{opt.#1}{%
+ \name{\optfmt{#1}}%
+ \field{dialect}{#1}%
+ \field{langtag}{#2}%
+ \field{isotag}{#2}#3}%
+ \glsbibwriteentry{isocode}{opt.#2}{\name{\optfmt{#2}}\field{alias}{opt.#1}}%
+ }%
+ % \grootlangsametag{language}{options}
+ \def\grootlangsametag#1#2{%
+ \glsbibwriteentry{rootlang}{opt.#1}{%
+ \name{\optfmt{#1}}%
+ \field{dialect}{#1}%
+ \field{langtag}{#1}%
+ \field{isotag}{#1}#2}%
+ }%
+ % \grootlangtagwithreg{language}{lang}{region}{options}
+ \def\grootlangtagwithreg#1#2#3#4{%
+ \glsbibwriteentry{rootlang}{opt.#1}{%
+ \field{name}{\optfmt{#1}\fnregion}
+ \field{text}{\optfmt{#1}}
+ \field{region}{#3}
+ \field{dialect}{#1}%
+ \field{langtag}{#2}
+ \field{isotag}{#2-#3}#4}%
+ \glsbibwriteentry{isocode}{opt.#2}{\name{\optfmt{#2}}\field{alias}{opt.#1}}%
+ }
+ % predefined non-iso dialects
+ % \gdialecttag{dialect}{tag}{options}
+ \def\gdialecttag#1#2#3{%
+ \glsbibwriteentry{noniso}{opt.#1}{%
+ \name{\optfmt{#1}}%
+ \field{dialect}{#1}%
+ \field{isotag}{\optisotag{#2}}%
+ \field{tags}{\optfmt{\optisotag{#2}}}#3}%
+ }%
+ % \gdialecttagsuppl{dialect}{tag}{suppl}{options}
+ \def\gdialecttagsuppl#1#2#3#4{%
+ \glsbibwriteentry{noniso}{opt.#1}{%
+ \name{\optfmt{#1}}%
+ \field{dialect}{#1}%
+ \field{isotag}{\optisotag{#2}-#3}%
+ \field{tags}{\optfmt{\optisotag{#2}-#3}}#4}%
+ }%
+ % \gdialecttagwithmap{dialect}{tag}{mapped}{options}
+ \def\gdialecttagwithmap#1#2#3#4{%
+ \glsbibwriteentry{noniso}{opt.#1}{%
+ \field{dialect}{#1}%
+ \field{isotag}{\optisotag{#2}}%
+ \field{tags}{\optfmt{\optisotag{#2}} / \optfmt{#3}}#4}%
+ }%
+ % \gdialecttagsupplwithmap{dialect}{tag}{suppl}{mapped}{options}
+ \def\gdialecttagsupplwithmap#1#2#3#4#5{%
+ \glsbibwriteentry{noniso}{opt.#1}{%
+ \name{\optfmt{#1}}%
+ \field{dialect}{#1}%
+ \field{isotag}{\optisotag{#2}-#3}%
+ \field{tags}{\optfmt{\optisotag{#2}-#3} / \opt{#4}}#5}%
+ }%
+ % \gdialecttagwithreg{dialect}{lang}{region}{options}
+ \def\gdialecttagwithreg#1#2#3#4{%
+ \glsbibwriteentry{noniso}{opt.#1}{%
+ \field{name}{\optfmt{#1}\fnregion }
+ \field{text}{\optfmt{#1}}
+ \field{region}{#3}
+ \field{dialect}{#1}%
+ \field{isotag}{\langtag{opt.#2}-#3}%
+ \field{tags}{\optfmt{\langtag{opt.#2}-#3}}#4
+ }%
+ }%
+ % \gdialecttagwithmapandreg{dialect}{tag}{region}{mapped}{options}
+ \def\gdialecttagwithmapandreg#1#2#3#4#5{%
+ \glsbibwriteentry{noniso}{opt.#1}{%
+ \field{name}{\optfmt{#1}\fnregion }
+ \field{text}{\optfmt{#1}}
+ \field{region}{#3}
+ \field{dialect}{#1}%
+ \field{isotag}{\optisotag{#2}-#3}%
+ \field{tags}{\optfmt{\langtag{opt.#2}-#3} / \opt{#4}}#5}%
+ }%
+ % \gregion{numeric}{2-alpha}{3-alpha}{options}
+ \def\gregion#1#2#3#4{%
+ \glsbibwriteentry{region}{opt.#2}{%
+ \field{name}{\optfmt{#2}}
+ \field{numeric}{#1}\field{alpha3}{#3}
+ #4}%
+ }%
+ % \gscript{alpha}{numeric}{name}{direction}{parent}{options}
+ \def\gscript#1#2#3#4#5#6{%
+ \glsbibwriteentry{script}{opt.#1}{%
+ \field{name}{\optfmt{#1}}
+ \field{numeric}{#2}\field{user2}{#4}\field{description}{#3}
+ #6}%
+ }%
+ % COMMANDS
+ % \AnyTrackedLanguages
+ \gcmd{Any\-Track\-ed\-Lan\-guages}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there are any tracked languages,
+ otherwise expands to \meta{false}}
+ }
+ % \IfTrackedLanguage
+ \gcmd{If\-Track\-ed\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{language-label}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the language identified by
+ \meta{language-label} has been tracked,
+ otherwise does \meta{false}}
+ }
+ % \IfTrackedDialect
+ \gcmd{If\-Track\-ed\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{dialect-label}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the dialect identified by
+ \meta{dialect-label} has been tracked,
+ otherwise does \meta{false}}
+ }
+ % \IfTrackedLanguageFileExists
+ \gcmd{If\-Track\-ed\-Lan\-guage\-File\-Exists}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{dialect}\margm{prefix}\margm{suffix}\margm{true
+code}\margm{false code}}
+ \desc{does \code{\gls{SetCurrentTrackedDialect}\margm{dialect}}
+ and if the dialect is recognised, then determines if the file
+ \filefmt{\meta{prefix}\meta{tag}\meta{suffix}} exists. If it does,
+ \gls{CurrentTrackedTag} is set to \meta{tag} and \meta{true} is
+ done, otherwise \meta{false} is done}
+ }
+ % \CurrentTrackedTag
+ \gcmd{Current\-Track\-ed\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \desc{expands to the current tracked tag}
+ }
+ % \ifTrackLangShowWarnings
+ \gcond{if\-Track\-Lang\-Show\-Warnings}
+ {
+ \initval{\cmd{iftrue}}
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{conditional that indicates whether or not to show warnings}
+ }
+ % \TrackLangShowWarningsfalse
+ \gcmd{Track\-Lang\-Show\-Warnings\-false}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{sets \gls{ifTrackLangShowWarnings} to false}
+ }
+ % \TrackLangShowWarningstrue
+ \gcmd{Track\-Lang\-Show\-Warnings\-true}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{sets \gls{ifTrackLangShowWarnings} to true}
+ }
+ % \ifTrackLangShowInfo
+ \gcond{if\-Track\-Lang\-Show\-Info}
+ {
+ \initval{\cmd{iftrue}}
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{conditional that indicates whether or not to show
+information messages}
+ }
+ % \ifTrackLangShowVerbose
+ \gcond{if\-Track\-Lang\-Show\-Verbose}
+ {
+ \initval{\cmd{iffalse}}
+ \providedby{\file{tracklang.tex} v1.4+}
+ \desc{conditional that indicates whether or not to show
+verbose messages}
+ }
+ % \TrackLangQueryEnv
+ \gcmd{Track\-Lang\-Query\-Env}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{attempts to obtain locale information from the
+ \envvar{LCALL} environment variable via the \idx{shellescape}
+ or, with \LuaTeX, \gls{directlua}}
+ }
+ % \TrackLangQueryOtherEnv
+ \gcmd{Track\-Lang\-Query\-Other\-Env}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{env-name}}
+ \desc{attempts to obtain locale information from the
+ \envvar{LCALL} environment variable and then by the
+ \meta{env-name} environment variable via the \idx{shellescape}
+ or, with \LuaTeX, \gls{directlua}}
+ }
+ % \TrackLangParseFromEnv
+ \gcmd{Track\-Lang\-Parse\-From\-Env}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{attempts to obtain locale information from the
+ expansion of \gls{TrackLangEnv}}
+ }
+ % \TrackLangEnv
+ \gcmd{Track\-Lang\-Env}
+ {
+ \note{user defined}
+ \desc{may be defined using the same format as \envvar{LCALL}
+ before using \gls{TrackLangParseFromEnv} to skip the environment
+ variable query}
+ }
+ % \TrackLangEnvLang
+ \gcmd{Track\-Lang\-Env\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{set by \gls{TrackLangParseFromEnv} to the language code}
+ }
+ % \TrackLangEnvTerritory
+ \gcmd{Track\-Lang\-Env\-Territory}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{set by \gls{TrackLangParseFromEnv} to the \idx{territory}}
+ }
+ % \TrackLangEnvCodeSet
+ \gcmd{Track\-Lang\-Env\-Code\-Set}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{set by \gls{TrackLangParseFromEnv} to the \idx{code-set}}
+ }
+ % \TrackLangEnvModifier
+ \gcmd{Track\-Lang\-Env\-Modifier}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{set by \gls{TrackLangParseFromEnv} to the \idx{modifier}}
+ }
+ % \ForEachTrackedLanguage
+ \gcmd{For\-Each\-Track\-ed\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{cs}\margm{body}}
+ \desc{iterates through the list of tracked languages. On each
+ iteration \meta{cs} is set to the language tag and \meta{body} is
+ performed}
+ }
+ % \ForEachTrackedDialect
+ \gcmd{For\-Each\-Track\-ed\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{cs}\margm{body}}
+ \desc{iterates through the list of tracked dialects. On each
+ iteration \meta{cs} is set to the dialect tag and \meta{body} is
+ performed}
+ }
+ % \TrackLangNewLanguage
+ \gcmd{Track\-Lang\-New\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language label}\margm{639-1 code}\margm{639-2 (T)}%
+ \margm{639-2 (B)}\margm{639-3}\margm{3166-1}\margm{default script}}
+ \desc{identifies a new language that may be tracked. Apart from
+ \meta{language label}, the other arguments may be empty if
+ the information is unavailable}
+ }
+ % \TrackLangIfKnownLang
+ \gcmd{Track\-Lang\-If\-Known\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}\margm{true}\margm{false}}
+ \desc{does \meta{true} if \meta{language} is known
+ (but not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \TrackLangIfKnownIsoTwoLetterLang
+ \gcmd{Track\-Lang\-If\-Known\-Iso\-Two\-Letter\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}\margm{true}\margm{false}}
+ \desc{does \meta{true} if \meta{language} has an \idxn{639-1} code
+ (but is not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \TrackLangGetKnownIsoTwoLetterLang
+ \gcmd{Track\-Lang\-Get\-Known\-Iso\-Two\-Letter\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}}
+ \desc{expands to the \idxn{639-1} language code associated with
+ \meta{language}}
+ }
+ % \TrackLangIfKnownIsoThreeLetterLang
+ \gcmd{Track\-Lang\-If\-Known\-Iso\-Three\-Letter\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}\margm{true}\margm{false}}
+ \desc{does \meta{true} if \meta{language} has an \idxn{639-2} code
+ (but is not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \TrackLangGetKnownIsoThreeLetterLang
+ \gcmd{Track\-Lang\-Get\-Known\-Iso\-Three\-Letter\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}}
+ \desc{expands to the \idxn{639-2} language code associated with
+ \meta{language}}
+ }
+ % \TrackLangIfKnownIsoThreeLetterLangB
+ \gcmd{Track\-Lang\-If\-Known\-Iso\-Three\-Letter\-LangB}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}\margm{true}\margm{false}}
+ \desc{does \meta{true} if \meta{language} has an \idxn{639-2B} code
+ (but is not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \TrackLangGetKnownIsoThreeLetterLangB
+ \gcmd{Track\-Lang\-Get\-Known\-Iso\-Three\-Letter\-LangB}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}}
+ \desc{expands to the \idxn{639-2B} language code associated with
+ \meta{language}}
+ }
+ % \IfTrackedLanguageHasIsoCode
+ \gcmd{If\-Track\-ed\-Lan\-guage\-Has\-Iso\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{code type}\margm{label}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the given language or dialect has a
+ corresponding \idx{ISO} code of the given type, otherwise does
+ \meta{false}}
+ }
+ % \IfTrackedIsoCode
+ \gcmd{If\-Track\-ed\-Iso\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{code type}\margm{code}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the given \idx{ISO} code has been defined
+ otherwise does \meta{false}}
+ }
+ % \TrackLangIfKnownLangFromIso
+ \gcmd{Track\-Lang\-If\-Known\-Lang\-From\-Iso}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{ISO code}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the given language code (\idx{639-1} or
+ \idx{639-2} or \idx{639-3}) is
+ recognised (but not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \TrackLangGetKnownLangFromIso
+ \gcmd{Track\-Lang\-Get\-Known\-Lang\-From\-Iso}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{ISO code}}
+ \desc{expands to the root language label from the
+ given \idx{ISO} code (\idx{639-1} or \idx{639-2} or \idx{639-3})}
+ }
+ % \TrackLangIfHasKnownCountry
+ \gcmd{Track\-Lang\-If\-Has\-Known\-Coun\-try}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the given language has an \idxn{3166-1}
+ country code (but is not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \TrackLangGetKnownCountry
+ \gcmd{Track\-Lang\-Get\-Known\-Coun\-try}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}}
+ \desc{expands to the \idxn{3166-1} country code for the given language}
+ }
+ % \TrackLangGetDefaultScript
+ \gcmd{Track\-Lang\-Get\-Default\-Script}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}}
+ \desc{expands to the default script for the given language}
+ }
+ % \TrackLangIfHasDefaultScript
+ \gcmd{Track\-Lang\-If\-Has\-Default\-Script}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the given language has a default
+ script (but is not necessarily tracked), otherwise does \meta{false}}
+ }
+ % \AddTrackedDialect
+ \gcmd{Add\-Track\-ed\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{dialect label}\margm{root language label}}
+ \desc{tracks a dialect. This command defines
+\gls{TrackLangLastTrackedDialect} to provide a convenient way to
+reference the last dialect to be tracked}
+ }
+ % \AddTrackedLanguage
+ \gcmd{Add\-Track\-ed\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{root language label}}
+ \desc{shortcut for \code{\gls{AddTrackedDialect}\margm{root language
+label}\margm{root language label}}}
+ }
+ % \AddTrackedIsoLanguage
+ \gcmd{Add\-Track\-ed\-Iso\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{code type}\margm{code}\margm{language}}
+ \desc{adds a mapping between the given \idx{ISO} code and language name}
+ }
+ % \TrackedLanguageFromIsoCode
+ \gcmd{Tracked\-Lan\-guage\-From\-Iso\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{code type}\margm{code}}
+ \desc{expands to a comma-separated list of language or
+ dialect labels associated with the given code}
+ }
+ % \TrackedIsoCodeFromLanguage
+ \gcmd{Track\-ed\-Iso\-Code\-From\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{code type}\margm{label}}
+ \desc{expands to the code associated with the given language or
+dialect identified by \meta{label}}
+ }
+ % \TrackedLanguageFromDialect
+ \gcmd{Track\-ed\-Lan\-guage\-From\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{dialect}}
+ \desc{expands to the language from the given dialect}
+ }
+ % \TrackedDialectsFromLanguage
+ \gcmd{Tracked\-Di\-alects\-From\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{root language label}}
+ \desc{expands to a comma-separated list of the tracked dialects with the given language}
+ }
+ % \TwoLetterIsoCountryCode
+ \gcmd{Two\-Letter\-Iso\-Coun\-try\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \desc{expands to \idx{3166-1} (should not be redefined)}
+ }
+ % \TwoLetterIsoLanguageCode
+ \gcmd{Two\-Letter\-Iso\-Lan\-guage\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \desc{expands to \idx{639-1} (should not be redefined)}
+ }
+ % \ThreeLetterIsoLanguageCode
+ \gcmd{Three\-Letter\-Iso\-Lan\-guage\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \desc{expands to \idx{639-2} (should not be redefined)}
+ }
+ % \ThreeLetterExtIsoLanguageCode
+ \gcmd{Three\-Letter\-Ext\-Iso\-Lan\-guage\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{expands to \idx{639-3} (should not be redefined)}
+ }
+ % \SetTrackedDialectModifier
+ \gcmd{Set\-Track\-ed\-Di\-alect\-Mod\-i\-fier}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{value}}
+ \desc{sets the modifier for the given \meta{dialect} to
+\meta{value}}
+ }
+ % \GetTrackedDialectModifier
+ \gcmd{Get\-Track\-ed\-Di\-alect\-Mod\-i\-fier}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{expands to the modifier for the given dialect}
+ }
+ % \IfHasTrackedDialectModifier
+ \gcmd{If\-Has\-Track\-ed\-Di\-alect\-Mod\-i\-fier}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a modifier for the given
+dialect, otherwise expands to \meta{false}}
+ }
+ % \SetTrackedDialectScript
+ \gcmd{Set\-Track\-ed\-Di\-alect\-Script}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{value}}
+ \desc{sets the script for \meta{dialect} to \meta{value}}
+ }
+ % \GetTrackedDialectScript
+ \gcmd{Get\-Track\-ed\-Di\-alect\-Script}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{expands to the script for \meta{dialect}}
+ }
+ % \IfHasTrackedDialectScript
+ \gcmd{If\-Has\-Track\-ed\-Di\-alect\-Script}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a script for
+ \meta{dialect}, otherwise expands to \meta{false}}
+ }
+ % \IfTrackedDialectIsScriptCs
+ \gcmd{If\-Track\-ed\-Di\-alect\-Is\-Script\-Cs}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{cs}\margm{true}\margm{false}}
+ \desc{if the given tracked dialect has an associated script and that
+ script code matches the replacement text for the control sequence
+ \meta{cs} then do \meta{true} otherwise to \meta{false}. If the
+ tracked dialect doesn't have an associated script then the default
+ script for the root language is tested}
+ }
+ % \SetTrackedDialectVariant
+ \gcmd{Set\-Track\-ed\-Di\-alect\-Vari\-ant}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{value}}
+ \desc{sets the modifier for \meta{dialect} to \meta{value}}
+ }
+ % \GetTrackedDialectVariant
+ \gcmd{Get\-Track\-ed\-Di\-alect\-Vari\-ant}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{expands to the modifier for \meta{dialect}}
+ }
+ % \IfHasTrackedDialectVariant
+ \gcmd{If\-Has\-Track\-ed\-Di\-alect\-Vari\-ant}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a modifier for
+ \meta{dialect}, otherwise expands to \meta{false}}
+ }
+ % \SetTrackedDialectSubLang
+ \gcmd{Set\-Track\-ed\-Di\-alect\-Sub\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{value}}
+ \desc{sets the sub-language for \meta{dialect} to \meta{value}}
+ }
+ % \GetTrackedDialectSubLang
+ \gcmd{Get\-Track\-ed\-Di\-alect\-Sub\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{expands to the sub-language for \meta{dialect}}
+ }
+ % \IfHasTrackedDialectSubLang
+ \gcmd{If\-Has\-Track\-ed\-Di\-alect\-Sub\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a sub-language for
+ \meta{dialect}, otherwise expands to \meta{false}}
+ }
+ % \SetTrackedDialectAdditional
+ \gcmd{Set\-Track\-ed\-Di\-alect\-Ad\-di\-tional}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{value}}
+ \desc{sets the extra information for \meta{dialect} to \meta{value}}
+ }
+ % \GetTrackedDialectAdditional
+ \gcmd{Get\-Track\-ed\-Di\-alect\-Ad\-di\-tional}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{expands to the extra information for \meta{dialect}}
+ }
+ % \IfHasTrackedDialectAdditional
+ \gcmd{If\-Has\-Track\-ed\-Di\-alect\-Ad\-di\-tional}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's extra information for
+ \meta{dialect}, otherwise expands to \meta{false}}
+ }
+ % \GetTrackedLanguageTag
+ \gcmd{Get\-Track\-ed\-Lan\-guage\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{gets the language tag for \meta{dialect}}
+ }
+ % \SetCurrentTrackedDialect
+ \gcmd{Set\-Current\-Track\-ed\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}}
+ \desc{sets the current tracked dialect}
+ }
+ % \CurrentTrackedDialect
+ \gcmd{Current\-Track\-ed\-Dialect}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ dialect label, which may be the supplied \meta{dialect} label
+ or the mapped label or, if \meta{dialect} is a root language label,
+ the last tracked dialect for the given root language}
+ }
+ % \CurrentTrackedLanguage
+ \gcmd{Current\-Track\-ed\-Language}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ associated root language label}
+ }
+ % \CurrentTrackedDialectModifier
+ \gcmd{Current\-Track\-ed\-Di\-alect\-Modifier}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ associated modifier (may be empty)}
+ }
+ % \CurrentTrackedDialectVariant
+ \gcmd{Current\-Track\-ed\-Di\-alect\-Variant}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ associated variant (may be empty)}
+ }
+ % \CurrentTrackedDialectScript
+ \gcmd{Current\-Track\-ed\-Di\-alect\-Script}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ script associated with the dialect, or to the default script for the language}
+ }
+ % \CurrentTrackedDialectSubLang
+ \gcmd{Current\-Track\-ed\-Di\-alect\-Sub\-Lang}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the sub
+ language associated with the dialect (may be empty)}
+ }
+ % \CurrentTrackedDialectAdditional
+ \gcmd{Current\-Track\-ed\-Di\-alect\-Ad\-di\-tional}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ additional part associated with the dialect (may be empty)}
+ }
+ % \CurrentTrackedLanguageTag
+ \gcmd{Current\-Track\-ed\-Lan\-guage\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the language
+ tag that identifies the dialect or \iso{undetermined} if no match}
+ }
+ % \CurrentTrackedRegion
+ \gcmd{Current\-Track\-ed\-Region}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ \idxn{3166-1} region code associated with the dialect (may be empty)}
+ }
+ % \CurrentTrackedIsoCode
+ \gcmd{Current\-Track\-ed\-Iso\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{SetCurrentTrackedDialect} to the
+ \idxn{639-1} or \idx{639-2} or \idx{639-3} language code (may be empty)}
+ }
+ % \AddTrackedLanguageIsoCodes
+ \gcmd{Add\-Track\-ed\-Lan\-guage\-Iso\-Codes}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{root language label}}
+ \desc{adds the \idxn{639-1}, \idx{639-2} and \idx{639-3} codes, which must have
+ previously been declared using \gls{TrackLangNewLanguage}}
+ }
+ % \AddTrackedCountryIsoCode
+ \gcmd{Add\-Track\-ed\-Coun\-try\-Iso\-Code}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language}}
+ \desc{adds the \idxn{3166-1} code}
+ }
+ % \GetTrackedDialectFromLanguageTag
+ \gcmd{Get\-Track\-ed\-Di\-alect\-From\-Lan\-guage\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{cs}}
+ \desc{finds the tracked dialect that matches the given language
+ tag and stores the dialect label in \meta{cs}. If no match found,
+ \meta{cs} will be empty}
+ }
+ % \TrackedDialectClosestSubMatch
+ \gcmd{Track\-ed\-Dialect\-Closest\-Sub\-Match}
+ {
+ \providedby{\file{tracklang.tex} v1.3.6+}
+ \desc{defined by \gls{GetTrackedDialectFromLanguageTag} to the
+ closest match}
+ }
+ % \TrackPredefinedDialect
+ \gcmd{Track\-Pre\-de\-fined\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\margm{dialect label}}
+ \desc{tracks a predefined language or dialect}
+ }
+ % \TrackLangIfAlphaNumericChar
+ \gcmd{Track\-Lang\-If\-Alpha\-Numeric\-Char}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the argument is a single alphanumeric character
+ otherwise does \meta{false}}
+ }
+ % \TrackLangIfLanguageTag
+ \gcmd{Track\-Lang\-If\-Lan\-guage\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the argument is a language tag
+ otherwise does \meta{false}}
+ }
+ % \TrackLangIfRegionTag
+ \gcmd{Track\-Lang\-If\-Region\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the argument is a region tag
+ otherwise does \meta{false}}
+ }
+ % \TrackLangIfScriptTag
+ \gcmd{Track\-Lang\-If\-Script\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the argument is a script tag
+ otherwise does \meta{false}}
+ }
+ % \TrackLangIfVariantTag
+ \gcmd{Track\-Lang\-If\-Vari\-ant\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{true}\margm{false}}
+ \desc{does \meta{true} if the argument is a variant tag
+ otherwise does \meta{false}}
+ }
+ % \TrackLanguageTag
+ \gcmd{Track\-Lan\-guage\-Tag}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}}
+ \desc{parse \meta{tag}, which should be a regular, well-formed
+ RFC 5646 language tag (not an irregular grandfather tag) and track the dialect}
+ }
+ % \TrackIfKnownLanguage
+ \gcmd{Track\-If\-Known\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.3.9+}
+ \syntax{\margm{tag}\margm{success code}\margm{fail code}}
+ \desc{as \gls{TrackLanguageTag} but does \meta{fail code}
+ if the tag doesn't contain a valid language code. If successful, does
+ \meta{success code} after tracking the language}
+ }
+ % \TrackLangAddExtraRegionFile
+ \gcmd{Track\-Lang\-Add\-Extra\-Region\-File}
+ {
+ \providedby{\file{tracklang.tex} v1.4+}
+ \syntax{\margm{file}}
+ \desc{adds \meta{file} to the list of extra region code files that should
+ be input by \file{tracklang-region-codes.tex}}
+ }
+ % \TrackLangAddExtraScriptFile
+ \gcmd{Track\-Lang\-Add\-Extra\-Script\-File}
+ {
+ \providedby{\file{tracklang.tex} v1.4+}
+ \syntax{\margm{file}}
+ \desc{adds \meta{file} to the list of files that should
+ be input by \file{tracklang-scripts.tex}}
+ }
+ % \TrackLangFromEnv
+ \gcmd{Track\-Lang\-From\-Env}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{queries environment variable if \gls{TrackLangEnv} not
+ already set, parses \gls{TrackLangEnv} if it has been set, and
+ adds the dialect if it's recognised}
+ }
+ % \TrackLocale
+ \gcmd{Track\-Locale}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{locale}}
+ \desc{tracks the dialect identified by the given \meta{locale}, which
+ may either be a predefined language\slash dialect or in the same format as
+ \gls{TrackLangEnv}}
+ }
+ % \TrackLangProvidePredefinedLanguage
+ \gcmd{Track\-Lang\-Provide\-Pre\-de\-fined\-Lan\-guage}
+ {
+ \providedby{\file{tracklang.tex} v1.4+}
+ \syntax{\margm{language label}}
+ \desc{sets up a language label for use with \gls{TrackPredefinedDialect}}
+ }
+ % \TrackLangDeclareLanguageOption
+ \gcmd{Track\-Lang\-Declare\-Lan\-guage\-Op\-tion}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{language name}\margm{639-1 code}\margm{639-2 (T)}\margm{639-2
+(B)}\margm{639-3}\margm{3166-1}\margm{default script}}
+ \desc{defines a new root language that's declared as an option}
+ }
+ % \TrackLangProvidePredefinedDialect
+ \gcmd{Track\-Lang\-Provide\-Pre\-de\-fined\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.4+}
+ \syntax{\margm{dialect label}\margm{root
+language label}\margm{3166-1 code}\margm{modifier}\margm{variant}\margm{map}\margm{script}}
+ \desc{defines a predefined dialect label that can be used
+by \gls{TrackPredefinedDialect}}
+ }
+ % \TrackLangDeclareDialectOption
+ \gcmd{Track\-Lang\-Declare\-Di\-alect\-Op\-tion}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{dialect}\margm{root
+language}\margm{3166-1
+code}\margm{modifier}\margm{variant}\margm{map}\margm{script}}
+ \desc{defines a predefined dialect label that can be used
+by \gls{TrackPredefinedDialect}}
+ }
+ % \TrackLangProvidesResource
+ \gcmd{Track\-Lang\-Provides\-Resource}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{version info}}
+ \desc{analogous to \gls{ProvidesFile}}
+ }
+ % \TrackLangAddToHook
+ \gcmd{Track\-Lang\-Add\-To\-Hook}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{code}\margm{type}}
+ \desc{for use within resource files, this can be used to add
+\meta{code} to the appropriate hook}
+ }
+ % \TrackLangAddToCaptions
+ \gcmd{Track\-Lang\-Add\-To\-Captions}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{code}}
+ \desc{a shortcut that just does
+ \code{\gls{TrackLangAddToHook}\margm{code}\marg{captions}}}
+ }
+ % \TrackLangRedefHook
+ \gcmd{Track\-Lang\-Re\-def\-Hook}
+ {
+ \providedby{\file{tracklang.tex} v1.4+}
+ \syntax{\margm{code}\margm{type}}
+ \desc{similar to \gls{TrackLangAddToHook} but redefines the hook
+ rather than appending to it}
+ }
+ % \TrackLangRequireResource
+ \gcmd{Track\-Lang\-Require\-Resource}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}}
+ \desc{loads the appropriate \ext{ldf} file if it hasn't already
+been loaded}
+ }
+ % \TrackLangRequireResourceOrDo
+ \gcmd{Track\-Lang\-Require\-Resource\-Or\-Do}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{code1}\margm{code2}}
+ \desc{as \gls{TrackLangRequireResource} but does \meta{code1}
+ if the file is now loaded or \meta{code2}
+ if the file has already been loaded}
+ }
+ % \TrackLangRequestResource
+ \gcmd{Track\-Lang\-Request\-Resource}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tag}\margm{not found code}}
+ \desc{as \gls{TrackLangRequireResource} but does \meta{not found code}
+if the file doesn't exist}
+ }
+ % \TrackLangRequireDialect
+ \gcmd{Track\-Lang\-Require\-Di\-alect}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\oargm{load code}\margm{pkgname}\margm{dialect}}
+ \desc{loads the dialect for the given package}
+ }
+ % \TrackLangRequireDialectPrefix
+ \gcmd{Track\-Lang\-Require\-Di\-alect\-Prefix}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{defined by \gls{TrackLangRequireDialect}}
+ }
+ % \SetTrackedDialectLabelMap
+ \gcmd{Set\-Track\-ed\-Di\-alect\-Label\-Map}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \syntax{\margm{tracklang-label}\margm{hook-label}}
+ \desc{defines a mapping between a \sty{tracklang} dialect label
+ and the corresponding dialect label used by a language hook, such as
+ \gls{captionsdialect}}
+ }
+ % \TrackLangLastTrackedDialect
+ \gcmd{Track\-Lang\-Last\-Track\-ed\-Dialect}
+ {
+ \providedby{\file{tracklang.tex} v1.3+}
+ \desc{expands to the label of the last tracked dialect}
+ }
+ % COMMANDS: INTERNAL
+ % \@tracklang@declareoption
+ \gcmd{@track\-lang\-@\-declare\-option}
+ {
+ \providedby{\sty{tracklang} v1.1+}
+ \syntax{\margm{dialect}}
+ \desc{provided by \file{tracklang.sty} to declare \meta{dialect}
+ as a package option that tracks \meta{dialect}. Provided by
+ \file{tracklang.tex}, if not already defined, to ignore its argument}
+ }
+ % \@tracklang@for
+ \gcmd{@track\-lang\-@\-for}
+ {
+ \providedby{\file{tracklang.tex} v1.0+}
+ \syntax{\meta{cs}:=\meta{list}\cmd{do}\margm{body}}
+ \desc{as \LaTeX's \gls{@for}}
+ }
+ % \@tracklang@prelangpkgcheck@hook
+ \gcmd{@track\-lang\-@\-pre\-lang\-pkg\-check\-@\-hook}
+ {
+ \desc{if defined before \file{tracklang.sty} v1.3.8+ is loaded, this
+ command will be done after package options have been processed but
+ before the check for language packages, such as \sty{babel} and
+ \sty{polyglossia}}
+ }
+ % COMMANDS: tracklang-region-codes.tex
+ % \TrackLangAlphaIIToNumericRegion
+ \gcmd{Track\-Lang\-Alpha\-II\-To\-Numeric\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{alpha-2 code}}
+ \desc{expands to the numeric code corresponding to the given
+alpha-2 code}
+ }
+ % \TrackLangNumericToAlphaIIRegion
+ \gcmd{Track\-Lang\-Numeric\-To\-Alpha\-II\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{numeric code}}
+ \desc{expands to the alpha-2 code corresponding to the given
+numeric code}
+ }
+ % \TrackLangIfKnownAlphaIIRegion
+ \gcmd{Track\-Lang\-If\-Known\-Alpha\-II\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{alpha-2 code}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a known mapping for the
+given alpha-2 \idx{region} code, otherwise expands to \meta{false}}
+ }
+ % \TrackLangIfKnownNumericRegion
+ \gcmd{Track\-Lang\-If\-Known\-Numeric\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{numeric code}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a known mapping for the
+given numeric \idx{region} code, otherwise expands to \meta{false}}
+ }
+ % \TrackLangAlphaIIIToNumericRegion
+ \gcmd{Track\-Lang\-Alpha\-III\-To\-Numeric\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{alpha-3 code}}
+ \desc{expands to the numeric code corresponding to the given
+alpha-3 code}
+ }
+ % \TrackLangNumericToAlphaIIIRegion
+ \gcmd{Track\-Lang\-Numeric\-To\-Alpha\-III\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{numeric code}}
+ \desc{expands to the alpha-3 code corresponding to the given
+numeric code}
+ }
+ % \TrackLangIfKnownAlphaIIIRegion
+ \gcmd{Track\-Lang\-If\-Known\-Alpha\-III\-Region}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{alpha-3 code}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a known mapping for the
+given \meta{alpha-3 code}, otherwise expands to \meta{false}}
+ }
+ % \TrackLangRegionMap
+ \gcmd{Track\-Lang\-Region\-Map}
+ {
+ \providedby{\file{tracklang-region-codes.tex} v1.3+}
+ \syntax{\margm{numeric}\margm{alpha-2}\margm{alpha-3}}
+ \desc{establishes a mapping between a numeric \idx{region} code
+ and alpha-2 and alpha-3 codes}
+ }
+ % COMMANDS: tracklang-scripts.tex
+ % \TrackLangScriptMap
+ \gcmd{Track\-Lang\-Script\-Map}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{letter code}\margm{numeric code}\margm{script name}\margm{direction}\margm{parent script}}
+ \desc{defines a mapping between an alpha code and a numeric code}
+ }
+ % \TrackLangScriptAlphaToNumeric
+ \gcmd{Track\-Lang\-Script\-Alpha\-To\-Numeric}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}}
+ \desc{expands to the numeric script code corresponding to the given alpha code}
+ }
+ % \TrackLangScriptIfKnownAlpha
+ \gcmd{Track\-Lang\-Script\-If\-Known\-Alpha}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a known mapping for the
+ given alpha script code otherwise expands to \meta{false}}
+ }
+ % \TrackLangScriptNumericToAlpha
+ \gcmd{Track\-Lang\-Script\-Numeric\-To\-Alpha}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{numeric code}}
+ \desc{expands to the alpha script code corresponding to the
+ given numeric code}
+ }
+ % \TrackLangScriptIfKnownNumeric
+ \gcmd{Track\-Lang\-Script\-If\-Known\-Numeric}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{numeric code}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if there's a known mapping for the
+ given numeric script code otherwise expands to \meta{false}}
+ }
+ % \TrackLangScriptAlphaToName
+ \gcmd{Track\-Lang\-Script\-Alpha\-To\-Name}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}}
+ \desc{expands to the name associated with the given alpha script
+ code}
+ }
+ % \TrackLangScriptAlphaToDir
+ \gcmd{Track\-Lang\-Script\-Alpha\-To\-Dir}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}}
+ \desc{expands to the direction associated with the given alpha script
+ code}
+ }
+ % \TrackLangScriptSetParent
+ \gcmd{Track\-Lang\-Script\-Set\-Parent}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}\margm{parent alpha code}}
+ \desc{sets the parent for the given alpha script code}
+ }
+ % \TrackLangScriptGetParent
+ \gcmd{Track\-Lang\-Script\-Get\-Parent}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}}
+ \desc{expands to the parent of the given alpha script code}
+ }
+ % \TrackLangScriptIfHasParent
+ \gcmd{Track\-Lang\-Script\-If\-Has\-Parent}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \syntax{\margm{alpha code}\margm{true}\margm{false}}
+ \desc{expands to \meta{true} if the given alpha script code has
+ a parent otherwise expands to \meta{false}}
+ }
+ % \TrackLangScript<Code>
+ \gcmdmeta{Track\-Lang\-Script}{Code}{}
+ {
+ \providedby{\file{tracklang-scripts.tex} v1.3+}
+ \desc{set by \gls{TrackLangScriptMap} to the associated alpha code \meta{Code}}
+ }
+ % FILES
+ \gfile{track\-lang.tex}{}% tracklang.tex
+ \gfile{track\-lang.sty}% tracklang.sty
+ {\field{alias}{pkg.tracklang}}%
+ \gfile{track\-lang\dhyphen scripts.sty}% tracklang-scripts.sty
+ {\field{alias}{pkg.tracklang-scripts}}%
+ \gfile{tracklang\dhyphen region\dhyphen codes.tex}{}% tracklang-region-codes.tex
+ \gfile{tracklang\dhyphen scripts.tex}{}% tracklang-scripts.tex
+ \gfile{tex\-os\-query.tex}{}% texosquery.tex
+ \gfile{tex\-os\-query.cfg}{}% texosquery.cfg
+ \gfilemetameta{}{prefix}{\dhyphen}{localeid}{.ldf}{} % <prefix>-<localeid>.ldf
+ % FILE EXTENSIONS
+ \gext{tex}{}% .tex
+ \gext{ldf}{}% .ldf
+ \gext{log}{}% .log
+ % PACKAGES
+ \gpkg{track\-lang}{\common}% tracklang
+ \gpkg{track\-lang\dhyphen scripts}{}% tracklang-scripts
+ \gpkg{tex\-os\-query}{}% texosquery
+ \gpkg{poly\-glossia}{}% polyglossia.sty
+ \gpkg{babel}{}% babel.sty
+ \gpkg{translator}{}% translator.sty
+ \gpkg{shell\-esc}{}% shellesc.sty
+ \gpkg{ngerman}{}% ngerman.sty
+ \gpkg{german}{}% german.sty
+ \gpkg{glossaries}{}% glossaries.sty
+ \gpkg{etool\-box}{}% etoolbox.sty
+ \gpkg{date\-time2}{}% datetime2.sty
+ % Example packages
+ \gfile{animals.sty}{}% animals.sty
+ \gfile{regions.sty}{}% regions.sty
+ \gfile{alien.sty}{}% alien.sty
+ \gpkg{alien}{\field{alias}{file.alien.sty}}
+ % environment variables
+ \genvvar{LC\dsb ALL}{}% LC_ALL
+ \genvvar{LANG}{}% LANG
+ \genvvar{LC\dsb MONETARY}{}% LC_MONETARY
+ % TERMS
+ \gterm{shellescape}
+ {
+ \name{shell escape}
+ \desc{\TeX\ has the ability to run \idx{cli} applications while
+ it's typesetting a document. Whilst this is a convenient way
+ of using tools to help build the document, it's a security
+ risk. To help protect users from arbitrary\dash and
+ potentially dangerous\dash code from begin executed, \TeX\ has
+ a restricted mode, where only trusted applications are allowed to
+ run. This is usually the default mode, but your \TeX\
+ installation may be set up so that the shell escape is disabled by
+ default. The unrestricted mode allows you to run any
+ application from the shell escape. Take care about
+ enabling this option. If you receive a document or package
+ from an untrusted source, first run \TeX\ with the shell escape
+ disabled or in restricted mode and search the \ext+{log} file for
+ \qt{runsystem} before using the unrestricted mode. Note that
+ \LuaLaTeX\ additionally requires the \sty{shellesc} package}
+ }
+ \gtermacr{cli}{CLI}{command-line interface}%
+ {%
+ \desc{an application that doesn't have a graphical user
+ interface. That is, an application that doesn't have any windows,
+ buttons or menus and can be run in
+ \dickimawhref{latex/novices/html/terminal.html}{a command
+ prompt or terminal}}%
+ }%
+ % INDEX ONLY
+ % COMMANDS - GENERAL
+ \gcmd{direct\-lua}{}% \directlua
+ \gcmd{babel\-provide}{}% \babelprovide
+ \gcmd{bbl\-@\-loaded}{}% \bbl@loaded
+ \gcmd{select\-language}{}% \selectlanguage
+ \gcmd{input}{}% \input
+ \gcmd{Require\-Package}{}% \RequirePackage
+ \gcmd{Declare\-Option}{}% \DeclareOption
+ \gcmdmeta{captions}{dialect}{}{}% \captions<dialect>
+ \gcmdmeta{date}{dialect}{}{}% \date<dialect>
+ \gcmd{Provides\-File}{}% \ProvidesFile
+ \gcmd{xpg\-@\-bcp\-@\-loaded}{}% \xpg@bcp@loaded
+ \gcmd{xpg\-@\-loaded}{}% \xpg@loaded
+ \gcmd{trans\-@\-languages}{}% \trans@languages
+ \gcmd{lan\-guage\-name}{}% \languagename
+ \gcmd{TeX\-OS\-Query\-Lang\-Tag}{}% \TeXOSQueryLangTag
+ \gcmd{TeX\-OS\-Query\-Locale}{}% \TeXOSQueryLocale
+ \gcmd{@for}{}
+ \gcmd{@nil}{}
+ \gcmd{At\-Begin\-Doc\-u\-ment}{}% \AtBeginDocument
+ % APPLICATIONS
+ \gapp{tex\-os\-query}{}% texosquery
+ \gapp{kpse\-which}{}% kpsewhich
+ \gapp{etex}{}% etex
+ \gapp{tex}{}% tex
+ \gapp{pdflatex}{}% pdflatex
+ % PUNCTUATION
+ \gpunc{atletter}% @ as a letter
+ {\name{\code{@} (catcode 11)}\field{text}{\code{@}}}%
+ \gpunc{atmod}% @ separates modifier
+ {\name{\code{@} (modifier)}\field{text}{\code{@}}}%
+ \gpunc{hyphensep}% - in tag
+ {\name{\code{-} (separator)}\field{text}{\code{-}}}%
+ \gpunc{underscoresep}% _ in tag
+ {\name{\code{\_} (separator)}\field{text}{\code{\_}}}%
+ \gpunc{dotsep}% . separates code-set
+ {\name{\code{.}\ (code-set)}\field{text}{\code{.}}}%
+ \gpunc{dollarenv}% ${ENV VAR}
+ {\name{\code{\$} (environment variable)}\field{text}{\code{\$}}}
+ \gpunc{escbsl}% \\
+ {\name{\code{\glsbackslash\glsbackslash} (escaped backslash)}
+ \field{text}{\code{\glsbackslash\glsbackslash}}
+ }
+ % INDEX ONLY TERMS
+ \gidx{code-set}{}
+ \gidx{modifier}{}
+ \gidx{variant}{}
+ \gidx{territory}{}
+ \gidx{region}{\field{alias}{idx.territory}}
+ \gidx{script}{}
+ \gidx{BCP47}{\name{BCP~47}}
+ % ISO CODES
+ \gidx{639-1}{\name{ISO \mbox{639-1}}\field{text}{\mbox{639-1}}}
+ \gidx{639-2}{\name{ISO \mbox{639-2}}\field{text}{\mbox{639-2}}}
+ \gidx{639-2B}{\parent{idx.639-2}%
+ \name{ISO \mbox{639-2} (B)}%
+ \field{text}{\mbox{639-2} (B)}}
+ \gidx{639-2T}{\parent{idx.639-2}%
+ \name{ISO \mbox{639-2} (T)}%
+ \field{text}{\mbox{639-2} (T)}}
+ \gidx{639-3}{\name{ISO \mbox{639-3}}\field{text}{\mbox{639-3}}}
+ \gidx{3166-1}{\name{ISO \mbox{3166-1}}\field{text}{\mbox{3166-1}}}
+ \gidx{15924}{\name{ISO 15924}\field{text}{15924}}
+ % ABBREVIATIONS
+ \gacr{ISO}{ISO}{International Organization for Standardization}{\common}
+ \gacr{POSIX}{POSIX}{Portable Operating System Interface}{}
+ % SWITCHES
+ \glongswitchpunc{shell\dhyphen escape}{}
+ % PREDEFINED ISO LANGUAGE-REGION TAGS
+ \gisolangtag{en}{US}{american}{}
+ \gisolangtag{en}{GB}{british}{}
+ \gisolangtag{en}{AU}{australian}{}
+ \gisolangtag{en}{NZ}{newzealand}{}
+ \gisolangtag{en}{CA}{canadian}{}
+ \gisolangtag{fr}{CA}{canadien}{}
+ \gisolangtag{fr}{BE}{belgique}{}
+ \gisolangtag{pt}{BR}{brazilian}{}
+ \gisolangtag{it}{HR}{istriacountyitalian}{}
+ \gisolangtag{nl}{BE}{flemish}{}
+ \gisolangtag{fr}{FR}{france}{}
+ \gisolangtag{de}{DE}{germanDE}{}
+ \gisolangtag{de}{BE}{belgiangerman}{}
+ \gisolangtag{en}{GG}{guernseyenglish}{}
+ \gisolangtag{fr}{GG}{guernseyfrench}{}
+ \gisolangtag{it}{IT}{italy}{}
+ \gisolangtag{mt}{MT}{maltamaltese}{}
+ \gisolangtag{en}{MT}{maltaenglish}{}
+ \gisolangtag{en}{IM}{isleofmanenglish}{}
+ \gisolangtag{en}{JE}{jerseyenglish}{}
+ \gisolangtag{fr}{JE}{jerseyfrench}{}
+ \gisolangtag{nl}{NL}{netherlands}{}
+ \gisolangtag{pt}{PT}{portugal}{}
+ \gisolangtag{it}{SM}{sanmarino}{}
+ \gisolangtag{sl}{SI}{slovenia}{}
+ \gisolangtag{it}{SI}{sloveneistriaitalian}{}
+ \gisolangtag{es}{ES}{spainspanish}{}
+ \gisolangtag{es}{AR}{argentinespanish}{}
+ \gisolangtag{es}{BO}{bolivianspanish}{}
+ \gisolangtag{es}{CL}{chilianspanish}{}
+ \gisolangtag{es}{CO}{columbianspanish}{}
+ \gisolangtag{es}{CR}{costaricanspanish}{}
+ \gisolangtag{es}{CU}{cubanspanish}{}
+ \gisolangtag{es}{DO}{dominicanspanish}{}
+ \gisolangtag{es}{EC}{ecudorianspanish}{}
+ \gisolangtag{es}{SV}{elsalvadorspanish}{}
+ \gisolangtag{es}{GT}{guatemalanspanish}{}
+ \gisolangtag{es}{HN}{honduranspanish}{}
+ \gisolangtag{es}{MX}{mexicanspanish}{}
+ \gisolangtag{es}{NI}{nicaraguanspanish}{}
+ \gisolangtag{es}{PA}{panamaspanish}{}
+ \gisolangtag{es}{PY}{paraguayspanish}{}
+ \gisolangtag{es}{PE}{peruvianspanish}{}
+ \gisolangtag{es}{PR}{puertoricospanish}{}
+ \gisolangtag{es}{UY}{uruguayspanish}{}
+ \gisolangtag{es}{VE}{venezuelanspanish}{}
+ \gisolangtag{de}{CH}{swissgerman}{}
+ \gisolangtag{fr}{CH}{swissfrench}{}
+ \gisolangtag{it}{CH}{swissitalian}{}
+ \gisolangtag{rm}{CH}{swissromansh}{}
+ \gisolangtag{it}{VA}{vatican}{}
+ \gisolangtag{ga}{IE}{IEirish}{}
+ \gisolangtag{ga}{GB}{GBirish}{}
+ \gisolangtag{en}{IE}{IEenglish}{}
+ \gisolangtagwithvar{de}{AT}{1996}{naustrian}{}
+ \gisolangtag{de}{AT}{austrian}{}
+ \gisolangtag{id}{IN}{bahasa}{}
+ \gisolangtag{ms}{MY}{malay}{}
+ \gisolangtag{hr}{HR}{croatia}{}
+ \gisolangtagwithvar{de}{DE}{1996}{ngermanDE}{}
+ \gisolangtagwithvar{de}{CH}{1996}{nswissgerman}{}
+ \gisolangtag{hu}{HU}{hungarian}{}
+ \gisolangtag{gd}{GB}{GBscottish}{}
+ \gisolangtag{cy}{GB}{GBwelsh}{}
+ % PREDEFINED ROOT LANGUAGE TAGS
+ \grootlangtag{abkhaz}{ab}{}
+ \grootlangtag{afar}{aa}{}
+ \grootlangtag{afrikaans}{af}{}
+ \grootlangtag{akan}{ak}{}
+ \grootlangtag{albanian}{sq}{}
+ \grootlangtagwithreg{amharic}{am}{ET}{}
+ \grootlangtag{anglosaxon}{ang}{}
+ \grootlangtag{apache}{apa}{}
+ \grootlangtag{arabic}{ar}{}
+ \grootlangtagwithreg{aragonese}{an}{ES}{}
+ \grootlangtag{armenian}{hy}{}
+ \grootlangtag{assamese}{as}{}
+ \grootlangtag{asturian}{ast}{}
+ \grootlangtag{avaric}{av}{}
+ \grootlangtag{avestan}{ae}{}
+ \grootlangtag{aymara}{ay}{}
+ \grootlangtag{azerbaijani}{az}{}
+ \grootlangtagwithreg{bahasai}{id}{IN}{}
+ \grootlangtagwithreg{bahasam}{ms}{MY}{}
+ \grootlangtagwithreg{bambara}{bm}{ML}{}
+ \grootlangtag{bashkir}{ba}{}
+ \grootlangtag{basque}{eu}{}
+ \grootlangtag{belarusian}{be}{}
+ \grootlangtag{bengali}{bn}{}
+ \grootlangtag{berber}{ber}{}
+ \grootlangtag{bihari}{bh}{}
+ \grootlangtagwithreg{bislama}{bi}{VU}{}
+ \grootlangtagwithreg{bokmal}{nb}{NO}{}
+ \grootlangtag{bosnian}{bs}{}
+ \grootlangtagwithreg{breton}{br}{FR}{}
+ \grootlangtag{bulgarian}{bg}{}
+ \grootlangtag{burmese}{my}{}
+ \grootlangtag{catalan}{ca}{}
+ \grootlangtag{chamorro}{ch}{}
+ \grootlangtag{chechen}{ce}{}
+ \grootlangtag{chichewa}{ny}{}
+ \grootlangtag{chinese}{zh}{}
+ \grootlangtag{churchslavonic}{cu}{}
+ \grootlangtagwithreg{chuvash}{cv}{RU}{}
+ \grootlangtag{coptic}{cop}{}
+ \grootlangtagwithreg{cornish}{kw}{GB}{}
+ \grootlangtag{corsican}{co}{}
+ \grootlangtag{cree}{cr}{}
+ \grootlangtag{croatian}{hr}{}
+ \grootlangtag{czech}{cs}{}
+ \grootlangtag{danish}{da}{}
+ \grootlangtagwithreg{divehi}{dv}{MV}{}
+ \grootlangtag{dutch}{nl}{}
+ \grootlangtagwithreg{dzongkha}{dz}{BT}{}
+ \grootlangtagwithreg{easternpunjabi}{pa}{IN}{}
+ \grootlangtag{english}{en}{}
+ \grootlangtag{esperanto}{eo}{}
+ \grootlangtag{estonian}{et}{}
+ \grootlangtag{ewe}{ee}{}
+ \grootlangtag{faroese}{fo}{}
+ \grootlangtag{farsi}{fa}{}
+ \grootlangtagwithreg{fijian}{fj}{FJ}{}
+ \grootlangtag{finnish}{fi}{}
+ \grootlangtag{french}{fr}{}
+ \grootlangtagwithreg{friulan}{fur}{IT}{}
+ \grootlangtag{fula}{ff}{}
+ \grootlangtag{galician}{gl}{}
+ \grootlangtagwithreg{ganda}{lg}{UG}{}
+ \grootlangtag{georgian}{ka}{}
+ \grootlangtag{german}{de}{}
+ \grootlangtag{greek}{el}{}
+ \grootlangtag{guarani}{gn}{}
+ \grootlangtag{gujarati}{gu}{}
+ \grootlangtagwithreg{haitian}{ht}{HT}{}
+ \grootlangtag{hausa}{ha}{}
+ \grootlangtag{hebrew}{he}{}
+ \grootlangtag{herero}{hz}{}
+ \grootlangtag{hindi}{hi}{}
+ \grootlangtagwithreg{hirimotu}{ho}{PG}{}
+ \grootlangtagwithreg{icelandic}{is}{IS}{}
+ \grootlangtag{ido}{io}{}
+ \grootlangtag{igbo}{ig}{}
+ \grootlangtag{interlingua}{ia}{}
+ \grootlangtag{interlingue}{ie}{}
+ \grootlangtag{inuktitut}{iu}{}
+ \grootlangtag{inupiaq}{ik}{}
+ \grootlangtag{irish}{ga}{}
+ \grootlangtag{italian}{it}{}
+ \grootlangtag{japanese}{ja}{}
+ \grootlangtag{javanese}{jv}{}
+ \grootlangtag{kalaallisut}{kl}{}
+ \grootlangtagwithreg{kannada}{kn}{IN}{}
+ \grootlangtag{kanuri}{kr}{}
+ \grootlangtagwithreg{kashmiri}{ks}{IN}{}
+ \grootlangtag{kazakh}{kk}{}
+ \grootlangtag{khmer}{km}{}
+ \grootlangtag{kikuyu}{ki}{}
+ \grootlangtag{kinyarwanda}{rw}{}
+ \grootlangtag{kirundi}{rn}{}
+ \grootlangtagwithreg{komi}{kv}{RU}{}
+ \grootlangtag{kongo}{kg}{}
+ \grootlangtag{korean}{ko}{}
+ \grootlangtag{kurdish}{ku}{}
+ \grootlangtag{kwanyama}{kj}{}
+ \grootlangtag{kyrgyz}{ky}{}
+ \grootlangtag{lao}{lo}{}
+ \grootlangtag{latin}{la}{}
+ \grootlangtag{latvian}{lv}{}
+ \grootlangtag{limburgish}{li}{}
+ \grootlangtag{lingala}{ln}{}
+ \grootlangtag{lithuanian}{lt}{}
+ \grootlangtagwithreg{lsorbian}{dsb}{DE}{}
+ \grootlangtagwithreg{lubakatanga}{lu}{CD}{}
+ \grootlangtag{luxembourgish}{lb}{}
+ \grootlangtag{macedonian}{mk}{}
+ \grootlangtag{magyar}{hu}{}
+ \grootlangtag{malagasy}{mg}{}
+ \grootlangtagwithreg{malayalam}{ml}{IN}{}
+ \grootlangtag{maltese}{mt}{}
+ \grootlangtagwithreg{manx}{gv}{IM}{}
+ \grootlangtagwithreg{maori}{mi}{NZ}{}
+ \grootlangtagwithreg{marathi}{mr}{IN}{}
+ \grootlangtagwithreg{marshallese}{mh}{MH}{}
+ \grootlangtag{mongolian}{mn}{}
+ \grootlangtagwithreg{nauruan}{na}{NR}{}
+ \grootlangtagwithreg{navajo}{nv}{US}{}
+ \grootlangtag{ndonga}{ng}{}
+ \grootlangtag{nepali}{ne}{}
+ \grootlangtag{nko}{nqo}{}
+ \grootlangtag{northernndebele}{nd}{}
+ \grootlangtagwithreg{nynorsk}{nn}{NO}{}
+ \grootlangtag{norsk}{no}{}
+ \grootlangtag{northernsotho}{nso}{}
+ \grootlangtagwithreg{nuosu}{ii}{CN}{}
+ \grootlangtag{occitan}{oc}{}
+ \grootlangtag{ojibwe}{oj}{}
+ \grootlangtag{oromo}{om}{}
+ \grootlangtag{oriya}{or}{}
+ \grootlangtag{ossetian}{os}{}
+ \grootlangtag{pali}{pi}{}
+ \grootlangtag{pashto}{ps}{}
+ \grootlangtagwithreg{piedmontese}{pms}{IT}{}
+ \grootlangtag{polish}{pl}{}
+ \grootlangtag{portuges}{pt}{}
+ \grootlangtag{quechua}{qu}{}
+ \grootlangtag{romanian}{ro}{}
+ \grootlangtagwithreg{romansh}{rm}{CH}{}
+ \grootlangtag{russian}{ru}{}
+ \grootlangtag{samin}{se}{}
+ \grootlangtag{sanskrit}{sa}{}
+ \grootlangtag{samoan}{sm}{}
+ \grootlangtag{sango}{sg}{}
+ \grootlangtagwithreg{sardinian}{sc}{IT}{}
+ \grootlangtag{scottish}{gd}{}
+ \grootlangtag{serbian}{sr}{}
+ \grootlangtag{shona}{sn}{}
+ \grootlangtag{sindhi}{sd}{}
+ \grootlangtagwithreg{sinhalese}{si}{LK}{}
+ \grootlangtag{slovak}{sk}{}
+ \grootlangtag{slovene}{sl}{}
+ \grootlangtag{somali}{so}{}
+ \grootlangtagwithreg{southernndebele}{nr}{ZA}{}
+ \grootlangtag{southernsotho}{st}{}
+ \grootlangtag{spanish}{es}{}
+ \grootlangtag{sudanese}{su}{}
+ \grootlangtag{swahili}{sw}{}
+ \grootlangtag{swati}{ss}{}
+ \grootlangtag{swedish}{sv}{}
+ \grootlangtag{syriac}{syr}{}
+ \grootlangtagwithreg{tagalog}{tl}{PH}{}
+ \grootlangtagwithreg{tahitian}{ty}{PF}{}
+ \grootlangsametag{tai}{}
+ \grootlangtag{tajik}{tg}{}
+ \grootlangtag{tamil}{ta}{}
+ \grootlangtag{tatar}{tt}{}
+ \grootlangtagwithreg{telugu}{te}{IN}{}
+ \grootlangtagwithreg{thai}{th}{TH}{}
+ \grootlangtag{tibetan}{bo}{}
+ \grootlangtag{tigrinya}{ti}{}
+ \grootlangtagwithreg{tonga}{to}{TO}{}
+ \grootlangtag{tsonga}{ts}{}
+ \grootlangtag{tswana}{tn}{}
+ \grootlangtag{turkish}{tr}{}
+ \grootlangtag{turkmen}{tk}{}
+ \grootlangtagwithreg{twi}{tw}{GH}{}
+ \grootlangtagwithreg{ukrainian}{uk}{UA}{}
+ \grootlangtag{undetermined}{und}{}
+ \grootlangtag{urdu}{ur}{}
+ \grootlangtagwithreg{usorbian}{hsb}{DE}{}
+ \grootlangtagwithreg{uyghur}{ug}{CN}{}
+ \grootlangtag{uzbek}{uz}{}
+ \grootlangtagwithreg{venda}{ve}{ZA}{}
+ \grootlangtag{vietnamese}{vi}{}
+ \grootlangtag{volapuk}{vo}{}
+ \grootlangtag{walloon}{wa}{}
+ \grootlangtag{welsh}{cy}{}
+ \grootlangtagwithreg{westernfrisian}{fy}{NL}{}
+ \grootlangtag{wolof}{wo}{}
+ \grootlangtag{xhosa}{xh}{}
+ \grootlangtag{yiddish}{yi}{}
+ \grootlangtag{yoruba}{yo}{}
+ \grootlangtagwithreg{zhuang}{za}{CN}{}
+ \grootlangtag{zulu}{zu}{}
+ % PREDEFINED NON-ISO DIALECTS
+ \gdialecttag{acadian}{french}{}
+ \gdialecttagwithreg{american}{english}{US}{}
+ \gdialecttagwithreg{australian}{english}{AU}{}
+ \gdialecttagwithreg{austrian}{german}{AT}{}
+ \gdialecttagwithreg{naustrian}{german}{AT-1996}{}
+ \gdialecttagwithreg{bahasa}{bahasai}{IN}{}
+ \gdialecttagwithreg{brazil}{portuges}{BR}{}
+ \gdialecttagwithreg{brazilian}{portuges}{BR}{}
+ \gdialecttagwithreg{british}{english}{GB}{}
+ \gdialecttagwithreg{canadian}{english}{CA}{}
+ \gdialecttagwithreg{canadien}{french}{CA}{}
+ \gdialecttagwithreg{croatia}{croatian}{HR}{}
+ \gdialecttagwithreg{istriacountycroatian}{croatian}{HR}{}
+ \gdialecttagwithreg{istriacountyitalian}{italian}{HR}{}
+ \gdialecttagwithreg{netherlands}{dutch}{NL}{}
+ \gdialecttag{persian}{farsi}{}
+ \gdialecttagwithreg{flemish}{dutch}{BE}{}
+ \gdialecttag{francais}{french}{}
+ \gdialecttag{frenchb}{french}{}
+ \gdialecttagwithreg{france}{french}{FR}{}
+ \gdialecttagwithreg{belgique}{french}{BE}{}
+ \gdialecttagwithreg{belgiangerman}{german}{BE}{}
+ \gdialecttagwithmapandreg{nbelgiangerman}{german}{BE-1996}{ngerman}{}
+ \gdialecttagwithreg{friulian}{friulan}{IT}{}
+ \gdialecttagwithreg{friulano}{friulan}{IT}{}
+ \gdialecttagwithreg{furlan}{friulan}{IT}{}
+ \gdialecttag{kurmanji}{kurdish}{}
+ \gdialecttag{galicien}{galician}{}
+ \gdialecttag{deutsch}{german}{}
+ \gdialecttagsuppl{ngerman}{german}{1996}{}
+ \gdialecttagsupplwithmap{ngermanb}{german}{1996}{ngerman}{}
+ \gdialecttag{germanb}{german}{}
+ \gdialecttagwithmapandreg{ngermanDE}{german}{DE-1996}{ngerman}{}
+ \gdialecttagwithreg{germanDE}{german}{DE}{}
+ \gdialecttagwithreg{hungarian}{magyar}{HU}{}
+ \gdialecttagwithreg{indon}{bahasai}{IN}{}
+ \gdialecttagwithreg{indonesian}{bahasai}{IN}{}
+ \gdialecttag{gaeilge}{irish}{}
+ \gdialecttagwithreg{IEirish}{irish}{IE}{}
+ \gdialecttagwithreg{GBirish}{irish}{GB}{}
+ \gdialecttagwithmapandreg{IEenglish}{english}{IE}{british}{}
+ \gdialecttagwithreg{italy}{italian}{IT}{}
+ \gdialecttagwithreg{vatican}{italian}{VA}{}
+ \gdialecttagwithreg{sanmarino}{italian}{SM}{}
+ \gdialecttagwithreg{sloveneistriaitalian}{italian}{SI}{}
+ \gdialecttagwithmapandreg{jerseyenglish}{english}{JE}{british}{}
+ \gdialecttagwithreg{jerseyfrench}{french}{JE}{}
+ \gdialecttagwithmapandreg{guernseyenglish}{english}{GG}{british}{}
+ \gdialecttagwithreg{guernseyfrench}{french}{GG}{}
+ \gdialecttag{latein}{latin}{}
+ \gdialecttagwithreg{lowersorbian}{lsorbian}{DE}{}
+ \gdialecttagwithreg{malay}{bahasam}{MY}{}
+ \gdialecttagwithreg{meyalu}{bahasam}{MY}{}
+ \gdialecttagwithreg{maltamaltese}{maltese}{MT}{}
+ \gdialecttagwithmapandreg{maltaenglish}{english}{MT}{british}{}
+ \gdialecttagwithreg{newzealand}{english}{NZ}{}
+ \gdialecttagwithmapandreg{isleofmanenglish}{english}{IM}{british}{}
+ \gdialecttagwithreg{norwegian}{norsk}{NO}{}
+ \gdialecttagwithreg{piemonteis}{piedmontese}{IT}{}
+ \gdialecttag{polutonikogreek}{greek}{}
+ \gdialecttag{polutoniko}{greek}{}
+ \gdialecttag{portuguese}{portuges}{}
+ \gdialecttagwithreg{portugal}{portuges}{PT}{}
+ \gdialecttag{romansch}{romansh}{}
+ \gdialecttag{rumantsch}{romansh}{}
+ \gdialecttag{romanche}{romansh}{}
+ \gdialecttag{russianb}{russian}{}
+ \gdialecttag{gaelic}{scottish}{}
+ \gdialecttagwithreg{GBscottish}{scottish}{GB}{}
+ \gdialecttagsuppl{serbianc}{serbian}{Cyrl}{}
+ \gdialecttagsuppl{serbianl}{serbian}{Latn}{}
+ \gdialecttag{slovenian}{slovene}{}
+ \gdialecttagwithmapandreg{slovenia}{slovene}{SI}{slovenian}{}
+ \gdialecttagwithmapandreg{sloveneistriaslovenian}{slovene}{SI}{slovenian}{}
+ \gdialecttagwithreg{spainspanish}{spanish}{ES}{}
+ \gdialecttagwithreg{argentinespanish}{spanish}{AR}{}
+ \gdialecttagwithreg{bolivianspanish}{spanish}{BO}{}
+ \gdialecttagwithreg{chilianspanish}{spanish}{CL}{}
+ \gdialecttagwithreg{columbianspanish}{spanish}{CO}{}
+ \gdialecttagwithreg{costaricanspanish}{spanish}{CR}{}
+ \gdialecttagwithreg{cubanspanish}{spanish}{CU}{}
+ \gdialecttagwithreg{dominicanspanish}{spanish}{DO}{}
+ \gdialecttagwithreg{ecudorianspanish}{spanish}{EC}{}
+ \gdialecttagwithreg{elsalvadorspanish}{spanish}{SV}{}
+ \gdialecttagwithreg{guatemalanspanish}{spanish}{GT}{}
+ \gdialecttagwithreg{honduranspanish}{spanish}{HN}{}
+ \gdialecttagwithreg{mexicanspanish}{spanish}{MX}{}
+ \gdialecttagwithreg{nicaraguanspanish}{spanish}{NI}{}
+ \gdialecttagwithreg{panamaspanish}{spanish}{PA}{}
+ \gdialecttagwithreg{paraguayspanish}{spanish}{PY}{}
+ \gdialecttagwithreg{peruvianspanish}{spanish}{PE}{}
+ \gdialecttagwithreg{puertoricospanish}{spanish}{PR}{}
+ \gdialecttagwithreg{uruguayspanish}{spanish}{UY}{}
+ \gdialecttagwithreg{venezuelanspanish}{spanish}{VE}{}
+ \gdialecttagwithreg{swissgerman}{german}{CH}{}
+ \gdialecttagwithmapandreg{nswissgerman}{german}{CH-1996}{ngerman}{}
+ \gdialecttagwithreg{swissfrench}{french}{CH}{}
+ \gdialecttagwithreg{swissitalian}{italian}{CH}{}
+ \gdialecttagwithreg{swissromansh}{romansh}{CH}{}
+ \gdialecttagwithreg{UKenglish}{english}{GB}{}
+ \gdialecttagwithreg{ukraineb}{ukrainian}{UA}{}
+ \gdialecttagwithreg{ukraine}{ukrainian}{UA}{}
+ \gdialecttagwithreg{uppersorbian}{usorbian}{DE}{}
+ \gdialecttagwithreg{USenglish}{english}{US}{}
+ \gdialecttag{valencian}{catalan}{}
+ \gdialecttag{valencien}{catalan}{}
+ \gdialecttag{cymraeg}{welsh}{}
+ \gdialecttagwithreg{GBwelsh}{welsh}{GB}{}
+ \gdialecttag{nil}{undetermined}{}
+ % PREDEFINED REGIONS
+ \gregion{004}{AF}{AFG}{}%
+ \gregion{248}{AX}{ALA}{}%
+ \gregion{008}{AL}{ALB}{}%
+ \gregion{012}{DZ}{DZA}{}%
+ \gregion{016}{AS}{ASM}{}%
+ \gregion{020}{AD}{AND}{}%
+ \gregion{024}{AO}{AGO}{}%
+ \gregion{660}{AI}{AIA}{}%
+ \gregion{010}{AQ}{ATA}{}%
+ \gregion{028}{AG}{ATG}{}%
+ \gregion{032}{AR}{ARG}{}%
+ \gregion{051}{AM}{ARM}{}%
+ \gregion{533}{AW}{ABW}{}%
+ \gregion{036}{AU}{AUS}{}%
+ \gregion{040}{AT}{AUT}{}%
+ \gregion{031}{AZ}{AZE}{}%
+ \gregion{044}{BS}{BHS}{}%
+ \gregion{048}{BH}{BHR}{}%
+ \gregion{050}{BD}{BGD}{}%
+ \gregion{052}{BB}{BRB}{}%
+ \gregion{112}{BY}{BLR}{}%
+ \gregion{056}{BE}{BEL}{}%
+ \gregion{084}{BZ}{BLZ}{}%
+ \gregion{204}{BJ}{BEN}{}%
+ \gregion{060}{BM}{BMU}{}%
+ \gregion{064}{BT}{BTN}{}%
+ \gregion{068}{BO}{BOL}{}%
+ \gregion{535}{BQ}{BES}{}%
+ \gregion{070}{BA}{BIH}{}%
+ \gregion{072}{BW}{BWA}{}%
+ \gregion{074}{BV}{BVT}{}%
+ \gregion{076}{BR}{BRA}{}%
+ \gregion{086}{IO}{IOT}{}%
+ \gregion{096}{BN}{BRN}{}%
+ \gregion{100}{BG}{BGR}{}%
+ \gregion{854}{BF}{BFA}{}%
+ \gregion{108}{BI}{BDI}{}%
+ \gregion{132}{CV}{CPV}{}%
+ \gregion{116}{KH}{KHM}{}%
+ \gregion{120}{CM}{CMR}{}%
+ \gregion{124}{CA}{CAN}{}%
+ \gregion{136}{KY}{CYM}{}%
+ \gregion{140}{CF}{CAF}{}%
+ \gregion{148}{TD}{TCD}{}%
+ \gregion{152}{CL}{CHL}{}%
+ \gregion{156}{CN}{CHN}{}%
+ \gregion{162}{CX}{CXR}{}%
+ \gregion{166}{CC}{CCK}{}%
+ \gregion{170}{CO}{COL}{}%
+ \gregion{174}{KM}{COM}{}%
+ \gregion{180}{CD}{COD}{}%
+ \gregion{178}{CG}{COG}{}%
+ \gregion{184}{CK}{COK}{}%
+ \gregion{188}{CR}{CRI}{}%
+ \gregion{384}{CI}{CIV}{}%
+ \gregion{191}{HR}{HRV}{}%
+ \gregion{192}{CU}{CUB}{}%
+ \gregion{531}{CW}{CUW}{}%
+ \gregion{196}{CY}{CYP}{}%
+ \gregion{203}{CZ}{CZE}{}%
+ \gregion{208}{DK}{DNK}{}%
+ \gregion{262}{DJ}{DJI}{}%
+ \gregion{212}{DM}{DMA}{}%
+ \gregion{214}{DO}{DOM}{}%
+ \gregion{218}{EC}{ECU}{}%
+ \gregion{818}{EG}{EGY}{}%
+ \gregion{222}{SV}{SLV}{}%
+ \gregion{226}{GQ}{GNQ}{}%
+ \gregion{232}{ER}{ERI}{}%
+ \gregion{233}{EE}{EST}{}%
+ \gregion{231}{ET}{ETH}{}%
+ \gregion{238}{FK}{FLK}{}%
+ \gregion{234}{FO}{FRO}{}%
+ \gregion{242}{FJ}{FJI}{}%
+ \gregion{246}{FI}{FIN}{}%
+ \gregion{250}{FR}{FRA}{}%
+ \gregion{254}{GF}{GUF}{}%
+ \gregion{258}{PF}{PYF}{}%
+ \gregion{260}{TF}{ATF}{}%
+ \gregion{266}{GA}{GAB}{}%
+ \gregion{270}{GM}{GMB}{}%
+ \gregion{268}{GE}{GEO}{}%
+ \gregion{276}{DE}{DEU}{}%
+ \gregion{288}{GH}{GHA}{}%
+ \gregion{292}{GI}{GIB}{}%
+ \gregion{300}{GR}{GRC}{}%
+ \gregion{304}{GL}{GRL}{}%
+ \gregion{308}{GD}{GRD}{}%
+ \gregion{312}{GP}{GLP}{}%
+ \gregion{316}{GU}{GUM}{}%
+ \gregion{320}{GT}{GTM}{}%
+ \gregion{831}{GG}{GGY}{}%
+ \gregion{324}{GN}{GIN}{}%
+ \gregion{624}{GW}{GNB}{}%
+ \gregion{328}{GY}{GUY}{}%
+ \gregion{332}{HT}{HTI}{}%
+ \gregion{334}{HM}{HMD}{}%
+ \gregion{336}{VA}{VAT}{}%
+ \gregion{340}{HN}{HND}{}%
+ \gregion{344}{HK}{HKG}{}%
+ \gregion{348}{HU}{HUN}{}%
+ \gregion{352}{IS}{ISL}{}%
+ \gregion{356}{IN}{IND}{}%
+ \gregion{360}{ID}{IDN}{}%
+ \gregion{364}{IR}{IRN}{}%
+ \gregion{368}{IQ}{IRQ}{}%
+ \gregion{372}{IE}{IRL}{}%
+ \gregion{833}{IM}{IMN}{}%
+ \gregion{376}{IL}{ISR}{}%
+ \gregion{380}{IT}{ITA}{}%
+ \gregion{388}{JM}{JAM}{}%
+ \gregion{392}{JP}{JPN}{}%
+ \gregion{832}{JE}{JEY}{}%
+ \gregion{400}{JO}{JOR}{}%
+ \gregion{398}{KZ}{KAZ}{}%
+ \gregion{404}{KE}{KEN}{}%
+ \gregion{296}{KI}{KIR}{}%
+ \gregion{408}{KP}{PRK}{}%
+ \gregion{410}{KR}{KOR}{}%
+ \gregion{414}{KW}{KWT}{}%
+ \gregion{417}{KG}{KGZ}{}%
+ \gregion{418}{LA}{LAO}{}%
+ \gregion{428}{LV}{LVA}{}%
+ \gregion{422}{LB}{LBN}{}%
+ \gregion{426}{LS}{LSO}{}%
+ \gregion{430}{LR}{LBR}{}%
+ \gregion{434}{LY}{LBY}{}%
+ \gregion{438}{LI}{LIE}{}%
+ \gregion{440}{LT}{LTU}{}%
+ \gregion{442}{LU}{LUX}{}%
+ \gregion{446}{MO}{MAC}{}%
+ \gregion{807}{MK}{MKD}{}%
+ \gregion{450}{MG}{MDG}{}%
+ \gregion{454}{MW}{MWI}{}%
+ \gregion{458}{MY}{MYS}{}%
+ \gregion{462}{MV}{MDV}{}%
+ \gregion{466}{ML}{MLI}{}%
+ \gregion{470}{MT}{MLT}{}%
+ \gregion{584}{MH}{MHL}{}%
+ \gregion{474}{MQ}{MTQ}{}%
+ \gregion{478}{MR}{MRT}{}%
+ \gregion{480}{MU}{MUS}{}%
+ \gregion{175}{YT}{MYT}{}%
+ \gregion{484}{MX}{MEX}{}%
+ \gregion{583}{FM}{FSM}{}%
+ \gregion{498}{MD}{MDA}{}%
+ \gregion{492}{MC}{MCO}{}%
+ \gregion{496}{MN}{MNG}{}%
+ \gregion{499}{ME}{MNE}{}%
+ \gregion{500}{MS}{MSR}{}%
+ \gregion{504}{MA}{MAR}{}%
+ \gregion{508}{MZ}{MOZ}{}%
+ \gregion{104}{MM}{MMR}{}%
+ \gregion{516}{NA}{NAM}{}%
+ \gregion{520}{NR}{NRU}{}%
+ \gregion{524}{NP}{NPL}{}%
+ \gregion{528}{NL}{NLD}{}%
+ \gregion{540}{NC}{NCL}{}%
+ \gregion{554}{NZ}{NZL}{}%
+ \gregion{558}{NI}{NIC}{}%
+ \gregion{562}{NE}{NER}{}%
+ \gregion{566}{NG}{NGA}{}%
+ \gregion{570}{NU}{NIU}{}%
+ \gregion{574}{NF}{NFK}{}%
+ \gregion{580}{MP}{MNP}{}%
+ \gregion{578}{NO}{NOR}{}%
+ \gregion{512}{OM}{OMN}{}%
+ \gregion{586}{PK}{PAK}{}%
+ \gregion{585}{PW}{PLW}{}%
+ \gregion{275}{PS}{PSE}{}%
+ \gregion{591}{PA}{PAN}{}%
+ \gregion{598}{PG}{PNG}{}%
+ \gregion{600}{PY}{PRY}{}%
+ \gregion{604}{PE}{PER}{}%
+ \gregion{608}{PH}{PHL}{}%
+ \gregion{612}{PN}{PCN}{}%
+ \gregion{616}{PL}{POL}{}%
+ \gregion{620}{PT}{PRT}{}%
+ \gregion{630}{PR}{PRI}{}%
+ \gregion{634}{QA}{QAT}{}%
+ \gregion{638}{RE}{REU}{}%
+ \gregion{642}{RO}{ROU}{}%
+ \gregion{643}{RU}{RUS}{}%
+ \gregion{646}{RW}{RWA}{}%
+ \gregion{652}{BL}{BLM}{}%
+ \gregion{654}{SH}{SHN}{}%
+ \gregion{659}{KN}{KNA}{}%
+ \gregion{662}{LC}{LCA}{}%
+ \gregion{663}{MF}{MAF}{}%
+ \gregion{666}{PM}{SPM}{}%
+ \gregion{670}{VC}{VCT}{}%
+ \gregion{882}{WS}{WSM}{}%
+ \gregion{674}{SM}{SMR}{}%
+ \gregion{678}{ST}{STP}{}%
+ \gregion{682}{SA}{SAU}{}%
+ \gregion{686}{SN}{SEN}{}%
+ \gregion{688}{RS}{SRB}{}%
+ \gregion{690}{SC}{SYC}{}%
+ \gregion{694}{SL}{SLE}{}%
+ \gregion{702}{SG}{SGP}{}%
+ \gregion{534}{SX}{SXM}{}%
+ \gregion{703}{SK}{SVK}{}%
+ \gregion{705}{SI}{SVN}{}%
+ \gregion{090}{SB}{SLB}{}%
+ \gregion{706}{SO}{SOM}{}%
+ \gregion{710}{ZA}{ZAF}{}%
+ \gregion{239}{GS}{SGS}{}%
+ \gregion{728}{SS}{SSD}{}%
+ \gregion{724}{ES}{ESP}{}%
+ \gregion{144}{LK}{LKA}{}%
+ \gregion{729}{SD}{SDN}{}%
+ \gregion{740}{SR}{SUR}{}%
+ \gregion{744}{SJ}{SJM}{}%
+ \gregion{748}{SZ}{SWZ}{}%
+ \gregion{752}{SE}{SWE}{}%
+ \gregion{756}{CH}{CHE}{}%
+ \gregion{760}{SY}{SYR}{}%
+ \gregion{158}{TW}{TWN}{}%
+ \gregion{762}{TJ}{TJK}{}%
+ \gregion{834}{TZ}{TZA}{}%
+ \gregion{764}{TH}{THA}{}%
+ \gregion{626}{TL}{TLS}{}%
+ \gregion{768}{TG}{TGO}{}%
+ \gregion{772}{TK}{TKL}{}%
+ \gregion{776}{TO}{TON}{}%
+ \gregion{780}{TT}{TTO}{}%
+ \gregion{788}{TN}{TUN}{}%
+ \gregion{792}{TR}{TUR}{}%
+ \gregion{795}{TM}{TKM}{}%
+ \gregion{796}{TC}{TCA}{}%
+ \gregion{798}{TV}{TUV}{}%
+ \gregion{800}{UG}{UGA}{}%
+ \gregion{804}{UA}{UKR}{}%
+ \gregion{784}{AE}{ARE}{}%
+ \gregion{826}{GB}{GBR}{}%
+ \gregion{581}{UM}{UMI}{}%
+ \gregion{840}{US}{USA}{}%
+ \gregion{858}{UY}{URY}{}%
+ \gregion{860}{UZ}{UZB}{}%
+ \gregion{548}{VU}{VUT}{}%
+ \gregion{862}{VE}{VEN}{}%
+ \gregion{704}{VN}{VNM}{}%
+ \gregion{092}{VG}{VGB}{}%
+ \gregion{850}{VI}{VIR}{}%
+ \gregion{876}{WF}{WLF}{}%
+ \gregion{732}{EH}{ESH}{}%
+ \gregion{887}{YE}{YEM}{}%
+ \gregion{894}{ZM}{ZMB}{}%
+ \gregion{716}{ZW}{ZWE}{}%
+ % PREDEFINED SCRIPTS
+ \gscript{Adlm}{166}{Adlam}{RL}{}{}
+ \gscript{Afak}{439}{Afaka}{varies}{}{}
+ \gscript{Aghb}{239}{Caucasian Albanian}{LR}{}{}
+ \gscript{Ahom}{338}{Ahom, Tai Ahom}{LR}{}{}
+ \gscript{Arab}{160}{Arabic}{RL}{}{}
+ \gscript{Aran}{161}{Arabic (Nastaliq variant)}{RL}{}{}
+ \gscript{Armi}{124}{Imperial Aramaic}{RL}{}{}
+ \gscript{Armn}{230}{Armenian}{LR}{}{}
+ \gscript{Avst}{134}{Avestan}{RL}{}{}
+ \gscript{Bali}{360}{Balinese}{LR}{}{}
+ \gscript{Bamu}{435}{Bamum}{LR}{}{}
+ \gscript{Bass}{259}{Bassa Vah}{LR}{}{}
+ \gscript{Batk}{365}{Batak}{LR}{}{}
+ \gscript{Beng}{334}{Bhaiksuki}{LR}{}{}
+ \gscript{Blis}{550}{Blissymbols}{varies}{}{}
+ \gscript{Bopo}{285}{Bopomofo}{LR}{}{}
+ \gscript{Brah}{300}{Brahmi}{LR}{}{}
+ \gscript{Brai}{570}{Braille}{LR}{}{}
+ \gscript{Bugi}{367}{Buginese}{LR}{}{}
+ \gscript{Buhd}{372}{Buhid}{LR}{}{}
+ \gscript{Cakm}{349}{Chakma}{LR}{}{}
+ \gscript{Cans}{440}{Unified Canadian Aboriginal Syllabics}{LR}{}{}
+ \gscript{Cari}{201}{Carian}{LR}{}{}
+ \gscript{Cham}{358}{Cham}{LR}{}{}
+ \gscript{Cher}{445}{Cherokee}{LR}{}{}
+ \gscript{Cirt}{291}{Cirth}{varies}{}{}
+ \gscript{Copt}{204}{Coptic}{LR}{}{}
+ \gscript{Cprt}{403}{Cypriot}{RL}{}{}
+ \gscript{Cyrl}{220}{Cyrillic}{LR}{}{}
+ \gscript{Cyrs}{221}{Cyrillic (Old Church Slavonic variant)}{varies}{}{}
+ \gscript{Deva}{315}{Devanagari (Nagari)}{LR}{}{}
+ \gscript{Dsrt}{250}{Deseret (Mormon)}{LR}{}{}
+ \gscript{Dupl}{755}{Duployan shorthand, Duployan stenography}{LR}{}{}
+ \gscript{Egyd}{070}{Egyptian demotic}{RL}{}{}
+ \gscript{Egyh}{060}{Egyptian hieratic}{RL}{}{}
+ \gscript{Egyp}{050}{Egyptian hieroglyphs}{LR}{}{}
+ \gscript{Elba}{226}{Elbasan}{LR}{}{}
+ \gscript{Ethi}{430}{Ethiopic (Ge'ez)}{LR}{}{}
+ \gscript{Geok}{241}{Khutsuri (Asomtavruli and Nuskhuri)}{LR}{}{}
+ \gscript{Geor}{240}{Georgian (Mkhedruli)}{LR}{}{}
+ \gscript{Glag}{225}{Glagolitic}{LR}{}{}
+ \gscript{Goth}{206}{Gothic}{LR}{}{}
+ \gscript{Gran}{343}{Grantha}{LR}{}{}
+ \gscript{Grek}{200}{Greek}{LR}{}{}
+ \gscript{Gujr}{320}{Gujarati}{LR}{}{}
+ \gscript{Guru}{310}{Gurmukhi}{LR}{}{}
+ \gscript{Hanb}{503}{Han with Bopomofo (alias for Han + Bopomofo)}{LR}{}{}
+ \gscript{Hang}{286}{Hangul}{LR}{}{}
+ \gscript{Hani}{500}{Han (Hanzi, Kanji, Hanja)}{LR}{}{}
+ \gscript{Hano}{371}{Hanunoo}{LR}{}{}
+ \gscript{Hans}{501}{Han (Simplified variant)}{varies}{}{}
+ \gscript{Hant}{502}{Han (Traditional variant)}{varies}{}{}
+ \gscript{Hatr}{127}{Hatran}{RL}{}{}
+ \gscript{Hebr}{125}{Hebrew}{RL}{}{}
+ \gscript{Hira}{410}{Hiragana}{LR}{}{}
+ \gscript{Hluw}{080}{Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)}{LR}{}{}
+ \gscript{Hmng}{450}{Pahawh Hmong}{LR}{}{}
+ \gscript{Hrkt}{412}{Japanese syllabaries (alias for Hiragana + Katakana)}{varies}{}{}
+ \gscript{Hung}{176}{Old Hungarian (Hungarian Runic)}{RL}{}{}
+ \gscript{Inds}{610}{Indus (Harappan)}{RL}{}{}
+ \gscript{Ital}{210}{Old Italic (Etruscan, Oscan, etc.)}{LR}{}{}
+ \gscript{Jamo}{284}{Jamo (alias for Jamo subset of Hangul)}{LR}{}{}
+ \gscript{Java}{361}{Javanese}{LR}{}{}
+ \gscript{Jpan}{413}{Japanese (alias for Han + Hiragana + Katakana)}{varies}{}{}
+ \gscript{Jurc}{510}{Jurchen}{LR}{}{}
+ \gscript{Kali}{357}{Kayah Li}{LR}{}{}
+ \gscript{Kana}{411}{Katakana}{LR}{}{}
+ \gscript{Khar}{305}{Kharoshthi}{RL}{}{}
+ \gscript{Khmr}{355}{Khmer}{LR}{}{}
+ \gscript{Khoj}{322}{Khojki}{LR}{}{}
+ \gscript{Kitl}{505}{Khitan large script}{LR}{}{}
+ \gscript{Kits}{288}{Khitan small script}{TB}{}{}
+ \gscript{Knda}{345}{Kannada}{LR}{}{}
+ \gscript{Kore}{287}{Korean (alias for Hangul + Han)}{LR}{}{}
+ \gscript{Kpel}{436}{Kpelle}{LR}{}{}
+ \gscript{Kthi}{317}{Kaithi}{LR}{}{}
+ \gscript{Lana}{351}{Tai Tham (Lanna)}{LR}{}{}
+ \gscript{Laoo}{356}{Lao}{LR}{}{}
+ \gscript{Latf}{217}{Latin (Fraktur variant)}{varies}{}{}
+ \gscript{Latg}{216}{Latin (Gaelic variant)}{LR}{}{}
+ \gscript{Latn}{215}{Latin}{LR}{}{}
+ \gscript{Leke}{364}{Leke}{LR}{}{}
+ \gscript{Lepc}{335}{Lepcha}{LR}{}{}
+ \gscript{Limb}{336}{Limbu}{LR}{}{}
+ \gscript{Lina}{400}{Linear A}{LR}{}{}
+ \gscript{Linb}{401}{Linear B}{LR}{}{}
+ \gscript{Lisu}{399}{Lisu (Fraser)}{LR}{}{}
+ \gscript{Loma}{437}{Loma}{LR}{}{}
+ \gscript{Lyci}{202}{Lycian}{LR}{}{}
+ \gscript{Lydi}{116}{Lydian}{RL}{}{}
+ \gscript{Mahj}{314}{Mahajani}{LR}{}{}
+ \gscript{Mand}{140}{Mandaic, Mandaean}{RL}{}{}
+ \gscript{Mani}{139}{Manichaean}{RL}{}{}
+ \gscript{Marc}{332}{Marchen}{LR}{}{}
+ \gscript{Maya}{090}{Mayan hieroglyphs}{varies}{}{}
+ \gscript{Mend}{438}{Mende Kikakui}{RL}{}{}
+ \gscript{Merc}{101}{Meroitic Cursive}{RL}{}{}
+ \gscript{Mero}{100}{Meroitic Hieroglyphs}{RL}{}{}
+ \gscript{Mlym}{347}{Malayalam}{LR}{}{}
+ \gscript{Modi}{324}{Modi}{LR}{}{}
+ \gscript{Mong}{145}{Mongolian}{TB}{}{}
+ \gscript{Moon}{218}{Moon (Moon code, Moon script, Moon type)}{varies}{}{}
+ \gscript{Mroo}{199}{Mro, Mru}{LR}{}{}
+ \gscript{Mtei}{337}{Meitei Mayek (Meithei, Meetei)}{LR}{}{}
+ \gscript{Mult}{323}{Multani}{LR}{}{}
+ \gscript{Mymr}{350}{Myanmar (Burmese)}{LR}{}{}
+ \gscript{Narb}{106}{Old North Arabian (Ancient North Arabian)}{RL}{}{}
+ \gscript{Nbat}{159}{Nabataean}{RL}{}{}
+ \gscript{Newa}{333}{Newa, Newar, Newari}{LR}{}{}
+ \gscript{Nkgb}{420}{Nakhi Geba}{LR}{}{}
+ \gscript{Nkoo}{165}{N'Ko}{RL}{}{}
+ \gscript{Nshu}{499}{Nushu}{LR}{}{}
+ \gscript{Ogam}{212}{Ogham}{varies}{}{}
+ \gscript{Olck}{261}{Ol Chiki}{LR}{}{}
+ \gscript{Orkh}{175}{Old Turkic, Orkhon Runic}{RL}{}{}
+ \gscript{Orya}{327}{Oriya}{LR}{}{}
+ \gscript{Osge}{219}{Osage}{LR}{}{}
+ \gscript{Osma}{260}{Osmanya}{LR}{}{}
+ \gscript{Palm}{126}{Palmyrene}{RL}{}{}
+ \gscript{Pauc}{263}{Pau Cin Hau}{LR}{}{}
+ \gscript{Perm}{227}{Old Permic}{LR}{}{}
+ \gscript{Phag}{331}{Phags-pa}{TB}{}{}
+ \gscript{Phli}{131}{Inscriptional Pahlavi}{RL}{}{}
+ \gscript{Phlp}{132}{Psalter Pahlavi}{RL}{}{}
+ \gscript{Phlv}{133}{Book Pahlavi}{RL}{}{}
+ \gscript{Phnx}{115}{Phoenician}{RL}{}{}
+ \gscript{Piqd}{293}{Klingon (KLI plqaD)}{LR}{}{}
+ \gscript{Plrd}{282}{Miao (Pollard)}{LR}{}{}
+ \gscript{Prti}{130}{Inscriptional Parthian}{RL}{}{}
+ \gscript{Qaaa}{900}{Reserved for private use (start)}{varies}{}{}
+ \gscript{Qaai}{908}{Private use}{varies}{}{}
+ \gscript{Qabx}{949}{Reserved for private use (end)}{varies}{}{}
+ \gscript{Rjng}{363}{Rejang (Redjang, Kaganga)}{LR}{}{}
+ \gscript{Roro}{620}{Rongorongo}{varies}{}{}
+ \gscript{Runr}{211}{Runic}{LR}{}{}
+ \gscript{Samr}{123}{Samaritan}{RL}{}{}
+ \gscript{Sara}{292}{Sarati}{varies}{}{}
+ \gscript{Sarb}{105}{Old South Arabian}{RL}{}{}
+ \gscript{Saur}{344}{Saurashtra}{LR}{}{}
+ \gscript{Sgnw}{095}{SignWriting}{TB}{}{}
+ \gscript{Shaw}{281}{Shavian (Shaw)}{LR}{}{}
+ \gscript{Shrd}{319}{Sharada}{LR}{}{}
+ \gscript{Sidd}{302}{Siddham}{LR}{}{}
+ \gscript{Sind}{318}{Khudawadi, Sindhi}{LR}{}{}
+ \gscript{Sinh}{348}{Sinhala}{LR}{}{}
+ \gscript{Sora}{398}{Sora Sompeng}{LR}{}{}
+ \gscript{Sund}{362}{Sundanese}{LR}{}{}
+ \gscript{Sylo}{316}{Syloti Nagri}{LR}{}{}
+ \gscript{Syrc}{135}{Syriac}{RL}{}{}
+ \gscript{Syre}{138}{Syriac (Estrangelo variant)}{RL}{}{}
+ \gscript{Syrj}{137}{Syriac (Western variant)}{RL}{}{}
+ \gscript{Syrn}{136}{Syriac (Eastern variant)}{RL}{}{}
+ \gscript{Tagb}{373}{Tagbanwa}{LR}{}{}
+ \gscript{Takr}{321}{Takri}{LR}{}{}
+ \gscript{Tale}{353}{Tai Le}{LR}{}{}
+ \gscript{Talu}{354}{New Tai Lue}{LR}{}{}
+ \gscript{Taml}{346}{Tamil}{LR}{}{}
+ \gscript{Tang}{520}{Tangut}{LR}{}{}
+ \gscript{Tavt}{359}{Tai Viet}{LR}{}{}
+ \gscript{Telu}{340}{Telugu}{LR}{}{}
+ \gscript{Teng}{290}{Tengwar}{LR}{}{}
+ \gscript{Tfng}{120}{Tifinagh (Berber)}{LR}{}{}
+ \gscript{Tglg}{370}{Tagalog (Baybayin, Alibata)}{LR}{}{}
+ \gscript{Thaa}{170}{Thaana}{RL}{}{}
+ \gscript{Thai}{352}{Thai}{LR}{}{}
+ \gscript{Tibt}{330}{Tibetan}{LR}{}{}
+ \gscript{Tirh}{326}{Tirhuta}{LR}{}{}
+ \gscript{Ugar}{040}{Ugaritic}{LR}{}{}
+ \gscript{Vaii}{470}{Vai}{LR}{}{}
+ \gscript{Visp}{280}{Visible Speech}{LR}{}{}
+ \gscript{Wara}{262}{Warang Citi (Varang Kshiti)}{LR}{}{}
+ \gscript{Wole}{480}{Woleai}{RL}{}{}
+ \gscript{Xpeo}{030}{Old Persian}{LR}{}{}
+ \gscript{Xsux}{020}{Cuneiform, Sumero-Akkadian}{LR}{}{}
+ \gscript{Yiii}{460}{Yi}{LR}{}{}
+ \gscript{Zinh}{994}{Inherited script}{inherited}{}{}
+ \gscript{Zmth}{995}{Mathematical notation}{LR}{}{}
+ \gscript{Zsym}{996}{Symbols}{varies}{}{}
+ \gscript{Zsye}{993}{Symbols (emoji variant)}{varies}{}{}
+ \gscript{Zxxx}{997}{Unwritten documents}{varies}{}{}
+ \gscript{Zyyy}{998}{Undetermined script}{varies}{}{}
+ \gscript{Zzzz}{999}{Uncoded script}{varies}{}{}
+}
+
+\title{tracklang.sty v1.6:
+tracking language options}
+\author{Nicola L.C. Talbot\\[10pt]
+Dickimaw Books\\
+\href{https://www.dickimaw-books.com/}{\nolinkurl{dickimaw-books.com}}}
+\date{2022-10-29
+}
+
+\newcommand{\refoptstables}{\tablesref{tab:isoopts,tab:rootlangopts,tab:nonisoopts}}
+
+\begin{document}
+\maketitle
+
+\htmlavailable
+
+\begin{abstract}
+The \sty+{tracklang} package is provided for package developers
+who want a simple interface to find out which languages the user has
+requested through packages such as \sty{babel} and
+\sty{polyglossia}. \emph{This package doesn't provide any
+translations.}
+Its purpose is simply to track which languages have been requested by the
+user. Generic \TeX\ code is in \file{tracklang.tex} for
+non-\LaTeX\ users.
+
+If the \idx{shellescape} is enabled or \gls{directlua} is available,
+this package may also be used to query the \envvar{LCALL}
+or \envvar{LANG} environment variable (see
+\sectionref{sec:langsty}). Windows users, who don't have the locale
+stored in environment variables, can use \app{texosquery}
+in combination with \sty{tracklang}. (Similarly if \envvar{LCALL}
+or \envvar{LANG} don't contain sufficient information.) In order to
+use \app{texosquery} through the restricted \idx{shellescape}, you must
+have at least Java~8 and set up \file{texosquery.cfg}
+appropriately. (See the \app{texosquery} manual for further details.)
+\end{abstract}
+
+The fundamental aim of this generic package is to be able to
+effectively say:
+\begin{quote}
+The user (that is, the \emph{document} author) wants to use
+dialects \langtagfmt{xx-XX}, \langtagfmt{yy-YY-Scrp}, etc in their
+document. Any packages used by their document that provide
+multilingual or region-dependent support should do whatever is
+required to activate the settings for those languages and regions
+(or warn the user that there's no support).
+\end{quote}
+Naturally, this is only of use if the locale-sensitive packages use
+\sty{tracklang} to pick up this information, which is entirely up
+to the package authors, but at the moment there's no standard method
+for packages to detect the required language and region. The aim of
+\sty{tracklang} is to provide that method. In particular, the
+emphasis is on using \idx+{ISO} language and region codes rather than
+hard-coding the various language labels used by different language
+packages.
+
+Related articles:
+\tugboat{Localisation of \TeX\ documents: \styfmt{tracklang}.}
+{2016}{37}{3}{http://www.tug.org/TUGboat/tb37-3/tb117talbot.pdf},
+\dickimawhref{latex/tracklang}{Localisation with \filefmt{tracklang.tex}},
+and \faqspkg{tracklang}.
+
+\frontmatter
+\tableofcontents
+\listoftables
+
+\mainmatter
+\part{User Guide}
+
+\chapter{Introduction}
+\label{sec:intro}
+
+When I'm developing a package that provides multilingual support
+(for example, \sty{glossaries}) it's cumbersome trying to work out
+if the user has requested translations for fixed text. This usually
+involves checking if \sty{babel} or \sty{translator} or
+\sty{polyglossia} has been loaded and, if so, what language settings
+have been used. The result can be a tangled mass of conditional
+code. The alternative is to tell users to add the language as
+a~document class option, which they may or may not want to do, or to
+tell them to supply the language settings to every package they load
+that provides multilingual support, which users are even less likely
+to want to do.
+
+The \sty{tracklang} package tries to neaten this up by working out
+as much of this information as possible for you and providing a
+command that iterates through the loaded languages. This way, you
+can just iterate through the list of tracked languages and, for each
+language, either define the translations or warn the user that
+there's no translation for that language.
+
+This package works best with \sty{ngerman} and \sty{german} (since
+it's a simple test to determine if they have been loaded) and recent versions
+of \sty{polyglossia} (which conveniently provides \gls{xpg@bcp@loaded}) or
+when the language options are specified
+in the document class option list. It works fairly well with
+\sty{translator} but will additionally assume the root language was
+also requested when a dialect is specified. So, for example,
+\begin{codebox}
+\cmd{usepackage}[\opt{british}]\marg{translator}
+\cmd{usepackage}\marg{tracklang}
+\end{codebox}
+is equivalent to
+\begin{compactcodebox}
+\cmd{usepackage}[\opt{british}]\marg{translator}
+\cmd{usepackage}[\opt{english},\opt{british}]\marg{tracklang}
+\end{compactcodebox}
+This means that \gls{ForEachTrackedDialect} will iterate
+through the list \qt{\opt{english},\opt{british}} instead of just
+\qt{\opt{british}}, which can result in some redundancy.
+
+Unfortunately I can't find any way of detecting a list of languages loaded
+through \sty{babel}['s] new \gls{babelprovide} command. As far as I
+can tell, the only stored list is in \gls{bbl@loaded} which only
+contains the languages loaded through package options.
+
+If the \sty{ngerman} package has been loaded, \sty{tracklang}
+effectively does:
+\begin{compactcodebox}
+\gls{TrackPredefinedDialect}\marg{\opt{ngerman}}
+\end{compactcodebox}
+Similarly, if the \sty{german} package has been loaded,
+\sty{tracklang} effectively does
+\begin{compactcodebox}
+\gls{TrackPredefinedDialect}\marg{\opt{german}}
+\end{compactcodebox}
+
+If any document class or package options are passed to
+\sty{tracklang}, then \sty{tracklang} won't bother checking
+for \sty{babel}, \sty{translator}, \sty{ngerman}, \sty{german} or
+\sty{polyglossia}. So, if the above example is changed to:
+\begin{codebox}
+\cmd{documentclass}[\opt{british}]\marg{article}
+\cmd{usepackage}\marg{translator}
+\cmd{usepackage}\marg{tracklang}
+\end{codebox}
+then the dialect list will just consist of \qt{\opt{british}} rather than
+\qt{\opt{english},\opt{british}}. This does, however, mean that if the user mixes
+class and package options, only the class options will be detected.
+For example:
+\begin{codebox}
+\cmd{documentclass}[\opt{british}]\marg{article}
+\cmd{usepackage}[\opt{french}]\marg{babel}
+\cmd{usepackage}\marg{tracklang}
+\end{codebox}
+In this case, only the \opt{british} option will be detected. The user
+can therefore use the document class option (or \sty{tracklang}
+package option) to override the dialect and set the country code
+(where provided). For example:
+\begin{codebox}
+\cmd{documentclass}[\opt{es-MX}]\marg{article}
+\cmd{usepackage}[\opt{spanish}]\marg{babel}
+\cmd{usepackage}\marg{tracklang}
+\end{codebox}
+This sets the dialect to \opt{mexicanspanish} and the root language to
+\opt{spanish}.
+
+Predefined dialects are listed in \refoptstables. These may be
+passed in the document class options or
+used in \gls{TrackPredefinedDialect}, as illustrated above.
+
+\Sectionref{sec:summary} provides brief examples of use for those
+who want a general overview before reading the more detailed
+sections.
+\Sectionref{sec:generic} describes generic commands for
+identifying the document languages.
+\Sectionref{sec:user} is for package writers who want to
+add multilingual support to their package and need to know which
+settings the user has requested through language packages like
+\sty{babel}. \Sectionref{sec:langsty} is for
+developers of language definition packages who want to help other
+package writers to detect what languages have been requested.
+
+\printunsrttable
+[
+ type=index,
+ block-style=name-other,
+ other=dialect,
+ toctitle={Predefined ISO Language-Region Dialects},
+ title={Predefined \idx+{ISO} Language-Region Dialects. (\idx{ISO} tag or
+ dialect label may be used as a
+ package option or with \gls{TrackPredefinedDialect})},
+ label={tab:isoopts},
+ postamble={Other combinations need to be set with \gls{TrackLocale}
+ or \gls{TrackLanguageTag}},
+ init={%
+ \renewcommand{\glstableNameTarget}[1]{\inlineglsdef[optdef]{##1}}%
+ \let\glstableOtherFmt\optfmt
+ \renewcommand{\glstablenameheader}{ISO Tag}%
+ \renewcommand{\glstableotherheader}{Dialect Label}%
+ \renewcommand{\glstableiffilter}[3]{\glsifcategory{##1}{isolangregion}{##3}{##2}}%
+ }
+]
+
+\printunsrttable
+[
+ type=index,
+ header=false,rules=false,blocksep={},clearpage,
+ block-style=name,blocks=3,
+ other=isotag,
+ toctitle={Predefined Root Languages},
+ title={Predefined Root Languages. (\fnregion Has an associated
+ territory.) The corresponding tag obtained with
+ \code{\gls{GetTrackedLanguageTag}\margm{dialect}} is shown in
+ parentheses},
+ label={tab:rootlangopts},
+ init={\let\glstableOtherFmt\optfmt
+ \renewcommand{\glstableNameTarget}[1]{\inlineglsdef[optdef]{##1}}%
+ \renewcommand{\glstableiffilter}[3]{\glsifcategory{##1}{rootlang}{##3}{##2}}%
+ }
+]
+
+\printunsrttable
+[
+ type=index,
+ block-style=name,rules=false,header=false,blocksep={},clearpage,
+ other=tags,par=ragged,
+ toctitle={Predefined Non-ISO Dialects},
+ title={Predefined Non-ISO Dialects. (\fnregion Has an
+ associated territory.) The corresponding
+language tag obtained with
+\code{\gls{GetTrackedLanguageTag}\margm{dialect}}
+is shown in parentheses. If the dialect has a corresponding mapping
+for the closest matching non-root language \gls{captionsdialect} or
+\gls{datedialect}, this is also included after the tag following a
+slash.},
+ label={tab:nonisoopts},
+ init={%
+ \renewcommand{\glstableiffilter}[3]{\glsifcategory{##1}{noniso}{##3}{##2}}%
+ \renewcommand{\glstableNameTarget}[1]{\inlineglsdef[optdef]{##1}}%
+ }
+]
+
+\chapter{Summary of Use}
+\label{sec:summary}
+
+There are three levels of use:
+\begin{enumerate}
+\item document level (code used by document authors);
+
+\item locale-sensitive package level
+(code for package authors who need to
+know what languages or locale the document is
+using, such as \sty{glossaries} to translate commands like
+\cmd{descriptionname} or \sty{datetime2} to provide localised
+formats or time zone information);
+
+\item language set-up level (code for packages that set up
+the document languages, such as \sty{babel} or \sty{polyglossia}).
+\end{enumerate}
+
+\section{Document Level}
+\label{sec:summary-doc}
+
+Document level use can be divided into generic \TeX\ use
+(\sectionref{sec:tex}) and \LaTeX-specific use (\sectionref{sec:latex}).
+
+\subsection{Generic \texorpdfstring{\TeX}{TeX}}
+\label{sec:tex}
+
+This section is for generic \TeX\ use. The \sty+{tracklang} files are
+loaded with \gls{input}. See \sectionref{sec:latex} for \LaTeX\ use.
+
+A Unix-like user wants the locale information picked up from the
+locale environment variable (the \ext+{tex} extension may be omitted):
+\begin{codebox*}
+\gls{input} \file{tracklang.tex} \comment{v1.3}
+\gls{TrackLangFromEnv}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+
+A Windows user wants the locale information picked up from the
+operating system (again the \ext{tex} extension may be omitted):
+\begin{codebox*}
+\gls{input} \file{texosquery.tex}
+\gls{input} \file{tracklang.tex} \comment{v1.3}
+\gls{TrackLangFromEnv}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+Or (\sty{texosquery} v1.2)
+\begin{codebox*}
+\gls{input} \file{texosquery.tex} \comment{v1.2}
+\gls{input} \file{tracklang.tex} \comment{v1.3}
+\codepar
+\gls{TeXOSQueryLangTag}\marg{\cmd{langtag}}
+\gls{TrackLanguageTag}\marg{\cmd{langtag}}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+A Unix-like user who may or may not have \app{texosquery} setup to run in the
+\idx{shellescape}:
+\begin{codebox*}
+\gls{input} \file{texosquery.tex}
+\gls{input} \file{tracklang.tex} \comment{v1.3}
+\codepar
+\cmd{ifx}\gls{TeXOSQueryLangTag}\cmd{undefined}
+ \gls{TrackLangFromEnv}
+\cmd{else}
+ \gls{TeXOSQueryLangTag}\marg{\cmd{langtag}}
+ \gls{TrackLanguageTag}\marg{\cmd{langtag}}
+\cmd{fi}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+
+A user is writing in Italy in Armenian with a Latin
+\idx{script} (\opt{Latn}) and the arevela \idx{variant}:
+\begin{codebox*}
+\gls{input} \file{tracklang.tex} \comment{v1.3}
+\gls{TrackLanguageTag}\marg{hy-Latn-IT-arevela}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+
+A user is writing in English in the UK:
+\begin{codebox*}
+\gls{input} \file{tracklang.tex}
+\gls{TrackPredefinedDialect}\marg{british}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+
+Find out information about the current language (supplied
+in \gls{languagename}):
+\begin{codebox*}
+\gls{SetCurrentTrackedDialect}\marg{\gls{languagename}}
+Dialect: \gls{CurrentTrackedDialect}.
+Language: \gls{CurrentTrackedLanguage}.
+ISO Code: \gls{CurrentTrackedIsoCode}.
+Region: \gls{CurrentTrackedRegion}.
+Modifier: \gls{CurrentTrackedDialectModifier}.
+Variant: \gls{CurrentTrackedDialectVariant}.
+Script: \gls{CurrentTrackedDialectScript}.
+Sub-Lang: \gls{CurrentTrackedDialectSubLang}.
+Additional: \gls{CurrentTrackedDialectAdditional}.
+Language Tag: \gls{CurrentTrackedLanguageTag}.
+\end{codebox*}
+Additional information about the \idx{script} can be obtained by
+also loading \sty{tracklang-scripts}:
+\begin{codebox*}
+\gls{input} \file{tracklang-scripts.tex}
+\end{codebox*}
+The name, numeric code and direction can now be obtained:
+\begin{codebox*}
+Name: \gls{TrackLangScriptAlphaToName}\marg{\gls{CurrentTrackedDialectScript}}.
+Numeric:
+\gls{TrackLangScriptAlphaToNumeric}\marg{\gls{CurrentTrackedDialectScript}}.
+Direction:
+\gls{TrackLangScriptAlphaToDir}\marg{\gls{CurrentTrackedDialectScript}}.
+\end{codebox*}
+Test for a specific \idx{script} (in this case \opt{Latn}):
+\begin{codebox*}
+Latin?
+\cmd{ifx}\gls{CurrentTrackedDialectScript}\tklscript{Latn}
+ Yes
+\cmd{else}
+ No
+\cmd{fi}
+\end{codebox*}
+
+\subsection{\texorpdfstring{\LaTeX}{LaTeX}}
+\label{sec:latex}
+
+This section is for \LaTeX\ use. See \sectionref{sec:tex} for generic \TeX\ use.
+
+With newer versions of \sty{polyglossia}, where \gls{xpg@bcp@loaded}
+is defined, you just need to make sure the languages are set before
+\sty{tracklang} is loaded:
+\begin{codebox*}
+\cmd{documentclass}\marg{article}
+\cmd{usepackage}\marg{polyglossia}
+\cmd{setmainlanguage}[variant=uk]\marg{english}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+For older versions of \sty{polyglossia} where the regional
+information is required, use recognised class options:
+\begin{codebox*}
+\cmd{documentclass}[\opt{en-GB}]\marg{article}
+\cmd{usepackage}\marg{polyglossia}
+\cmd{setmainlanguage}[variant=uk]\marg{english}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+
+For \sty{babel} users where the supplied \sty{babel} dialect
+label is sufficient, and is passed either through the document class
+or package options, there's no need to do anything special:
+\begin{codebox*}
+\cmd{documentclass}[\opt{british},\opt{canadien}]\marg{article}
+\cmd{usepackage}[T1]\marg{fontenc}
+\cmd{usepackage}\marg{babel}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+If the region is important but there's no \sty{babel} dialect that
+represents it, there are several options.
+The first method is to use the class options recognised by \sty{tracklang}
+and the root language labels when loading \sty{babel}:
+\begin{codebox*}
+\cmd{documentclass}[\opt{en-IE},\opt{ga-IE}]\marg{article}
+\cmd{usepackage}[english,irish]\marg{babel}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+
+Another method with \sty{babel} is to use \gls{TrackLanguageTag} and map the new
+dialect label to the nearest matching \gls{captionsdialect}:
+\begin{codebox*}
+\cmd{documentclass}\marg{article}
+\codepar
+\cmd{usepackage}\marg{tracklang}\comment{v1.3}
+\gls{TrackLanguageTag}\marg{\opt{en-MT}}
+\gls{SetTrackedDialectLabelMap}\marg{\gls{TrackLangLastTrackedDialect}}\marg{\opt{UKenglish}}
+\codepar
+\cmd{usepackage}[UKenglish]\marg{babel}
+\comment{load packages that use tracklang for localisation}
+\end{codebox*}
+This ensures that the \tklcaptions{UKenglish} hook is detected
+by the localisation packages. This mapping isn't needed
+for \sty{polyglossia} as the caption hooks use the root language
+label. This mapping also isn't needed if \opt{british} is used
+instead of \opt{UKenglish} since the \opt{en-MT}
+(\opt{maltaenglish})
+predefined dialect automatically sets up a mapping to
+\opt{british}. (The default mappings are shown in
+\tableref{tab:nonisoopts}.)
+
+There's no support for \gls{babelprovide}. If you are using
+\gls{babelprovide}, you will need to use the class option or
+\gls{TrackLanguageTag} as above.
+
+\section{Locale-Sensitive Packages}
+\label{sec:summary-localepkg}
+
+Let's suppose you are developing a package called
+\filefmt{mypackage.sty} or \filefmt{mypackage.tex} and you want
+to find out what languages the document author has requested. (See also:
+\dickimawhref{latex/tracklang/otherpkg.shtml}{Using
+\filefmt{tracklang.tex} in Packages with Localisation Features}.)
+
+Generic \TeX\ use (the \ext{tex} extension may be omitted):
+\begin{codebox*}
+\gls{input} \file{tracklang.tex}
+\end{codebox*}
+(Most of the commands used in this section require at least
+\sty{tracklang} version 1.3 but 1.4 is better if you want to
+include the \idx{script} tag in the \ext+{ldf} files.)
+Note that \file{tracklang.tex} has a check to determine if
+it's already been loaded, so you don't need to worry about that.
+
+\LaTeX\ use:
+\begin{codebox*}
+\gls{RequirePackage}\marg{tracklang}[2019/11/30]\comment{at least v1.4}
+\end{codebox*}
+This will picked up any language options supplied in the document
+class options and will also detect if \sty{babel} or
+\sty{polyglossia} have been loaded.
+
+(\LaTeX) If you want to allow the user to set the locale in the
+package options:
+\begin{codebox*}
+\gls{DeclareOption}*\marg{\gls{TrackLanguageTag}\marg{\cmd{CurrentOption}}}
+\end{codebox*}
+This means the user can do, say,
+\begin{codebox}
+\cmd{usepackage}[hy-Latn-IT-arevela]\marg{mypackage}
+\end{codebox}
+With at least version 1.4, it's better to use \gls{TrackIfKnownLanguage}:
+\begin{codebox}
+\gls{DeclareOption}*\marg{\comment{}
+ \gls{TrackIfKnownLanguage}\marg{\cmd{CurrentOption}}\comment{}
+ \marg{\comment{successful}
+ \cmd{PackageInfo}\marg{mypackage}\marg{Tracking language `\cmd{CurrentOption}'}\comment{}
+ }\comment{}
+ \marg{\comment{failed}
+ \cmd{PackageError}\marg{mypackage}\comment{}
+ \marg{Unknown language specification `\cmd{CurrentOption}'}\comment{}
+ \marg{You need to supply either a known dialect label
+ or a valid language tag}\comment{}
+ }\comment{}
+}
+\end{codebox}
+
+\begin{information}
+The rest of the example package in this section uses generic code.
+If you are using \LaTeX, it's better to replace \cmd{def} and
+\cmd{ifx} with more appropriate \LaTeX\ commands.
+\end{information}
+
+If you want to fetch the locale information from the operating
+system when the user hasn't requested a language:
+\begin{codebox*}
+\gls{AnyTrackedLanguages}
+\marg{}
+\marg{\comment{fetch locale information from the operating system}
+ \cmd{ifx}\gls{TeXOSQueryLangTag}\cmd{undefined}
+ \comment{texosquery v1.2 not available}
+ \gls{TrackLangFromEnv}
+ \cmd{else}
+ \comment{texosquery v1.2 available}
+ \gls{TeXOSQueryLangTag}\marg{\cmd{langtag}}
+ \gls{TrackLanguageTag}\marg{\cmd{langtag}}
+ \cmd{fi}
+}
+\end{codebox*}
+
+Set up the defaults if necessary:
+\begin{codebox}
+\cmd{def}\cmd{fooname}\marg{Foo}
+\cmd{def}\cmd{barname}\marg{Bar}
+\end{codebox}
+
+Now load the resource files:
+\begin{codebox*}
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{thisdialect}}\marg{\comment{}
+ \gls{TrackLangRequireDialect}\marg{mypackage}\marg{\cmd{thisdialect}}\comment{}
+ }\comment{}
+}
+\marg{}\comment{no tracked languages, default already set up}
+\end{codebox*}
+
+Each resource file has the naming scheme \file{prefix-localeid.ldf}\glsadd{ext.ldf}.
+In this example, the \meta{prefix} is \filefmt{mypackage}. The
+\meta{localeid} part may be the language or dialect label (for
+example, \opt{english} or \opt{british}) or a combination of the
+\idx{ISO} language and region codes (for example, \opt{en-GB} or
+\iso{english} or \optfmt{GB}). As from version 1.4, \meta{localeid}
+may also include the \idx{script} or \idx{variant}. (See the definition of
+\gls{IfTrackedLanguageFileExists} \pref{pg:filesearch} for further
+details.)
+
+The simplest scheme is to use the root language label (not the
+dialect label) for the base language settings and use the \idx+{ISO}
+codes for regional support.
+
+For example, the file \ldf{mypackage}{english}:
+\begin{codebox*}
+\comment{identify this file:}
+\gls{TrackLangProvidesResource}\marg{english}[2016/10/06 v1.0]
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\comment{}
+ \cmd{def}\cmd{fooname}\marg{Foo}\comment{}
+ \cmd{def}\cmd{barname}\marg{Bar}\comment{}
+}
+\end{codebox*}
+This sets up appropriate the \gls{captionsdialect} hook (if it's
+found). For other hooks, such as \gls{datedialect}, use
+\gls{TrackLangAddToHook} or \gls{TrackLangRedefHook} instead.
+
+With pre-v1.4 versions of \sty{tracklang}, the \idx{script} isn't included
+in the file search. If it's needed then either require at least v1.4
+or have a base \ext{ldf} file that tries to load a version for the
+particular \idx{script} (which can be accessed with
+\gls{CurrentTrackedDialectScript}).
+Here's an example for a language with different writing systems.
+The resource file for Serbian \ldf{mypackage}{serbian}:
+\begin{codebox*}
+\comment{identify file:}
+\gls{TrackLangProvidesResource}\marg{serbian}[2016/10/06 v1.0]
+\codepar
+\gls{TrackLangRequestResource}\marg{serbian-\gls{CurrentTrackedDialectScript}}
+\marg{}\comment{file not found, do something sensible here}
+\end{codebox*}
+The file \ldf{mypackage}{serbian-Latn} sets up
+the Latin \idx{script} (\opt{Latn}):
+\begin{codebox*}
+\gls{TrackLangProvidesResource}\marg{serbian-Latn}[2016/10/06 v1.0]
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\comment{}
+ \cmd{def}\cmd{fooname}\marg{...}\comment{provide appropriate Latin translations}
+ \cmd{def}\cmd{barname}\marg{...}\comment{}
+}
+\end{codebox*}
+The file \ldf{mypackage}{serbian-Cyrl} sets up
+the Cyrillic \idx{script} (\opt{Cyrl}):
+\begin{codebox*}
+\gls{TrackLangProvidesResource}\marg{serbian-Cyrl}[2016/10/06 v1.0]
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\comment{}
+ \cmd{def}\cmd{fooname}\marg{...}\comment{provide appropriate Cyrillic translations}
+ \cmd{def}\cmd{barname}\marg{...}\comment{}
+}
+\end{codebox*}
+With v1.4+ you just need \ldf{mypackage}{sr-Latn} and
+\ldf{mypackage}{sr-Cyrl} for the regionless versions.
+
+\section{Language Packages}
+\label{sec:summary-langpkg}
+
+Let's suppose now you're the developer of a package that
+sets up the language, hyphenation patterns and so on.
+It would be really helpful to the locale-sensitive packages
+in \sectionref{sec:summary-localepkg} to know what languages
+the document author has requested. You can use the
+\sty{tracklang} package to identify this information
+by tracking the requested localisation, so that other packages
+can have a consistent way of querying it. (See also:
+\dickimawhref{latex/tracklang/langpkg.shtml}{Integrating
+\filefmt{tracklang.tex} into Language Packages}.)
+
+Generic use:
+\begin{codebox}
+\gls{input} tracklang
+\end{codebox}
+Alternative \LaTeX\ use:
+\begin{codebox}
+\gls{RequirePackage}\marg{tracklang}[2019/11/30]\comment{v1.4}
+\end{codebox}
+Unlike \gls{input}, \gls{RequirePackage} will allow \sty{tracklang}
+to pick up the document class options, but using \gls{RequirePackage}
+will also trigger the tests for known language packages.
+(If you want to find out if \sty{tracklang} has already been
+loaded and locales have already been tracked, you can use the
+same code as in the previous section.)
+
+When a user requests a particular language through your package,
+the simplest way of letting \sty{tracklang} know about it
+is to use \gls{TrackPredefinedDialect} or \gls{TrackLanguageTag}.
+For example, if the user requests \opt{british}, that's a
+predefined dialect so you can just do:
+\begin{codebox}
+\gls{TrackPredefinedDialect}\marg{\opt{british}}
+\end{codebox}
+Alternatively
+\begin{codebox}
+\gls{TrackLanguageTag}\marg{\opt{en-GB}}
+\end{codebox}
+If your package uses caption hooks, then you can set up
+a mapping between \sty{tracklang}'s internal dialect label
+and your caption label. For example, let's suppose the
+closest match to English used in Malta (\opt{en-MT}) is the
+dialect \opt{UKenglish} (for example, the date format is
+similar between GB and MT):
+\begin{codebox}
+\gls{TrackLanguageTag}\marg{\opt{en-MT}}
+\gls{SetTrackedDialectLabelMap}\marg{\gls{TrackLangLastTrackedDialect}}\marg{\opt{UKenglish}}
+\cmd{def}\tklcaptions{UKenglish}\marg{\comment{}
+ \cmd{def}\cmd{contentsname}\marg{Contents}\comment{}
+ \comment{...}
+}
+\end{codebox}
+(The predefined \opt{maltaenglish} option provided by
+\sty{tracklang} automatically sets the mapping to
+\opt{british}, but the above method will change that mapping
+to \opt{UKenglish}.)
+
+This now means that \gls{TrackLangAddToHook} and \gls{TrackLangRedefHook} commands can
+find your language hooks. You don't need the map if your dialect
+label is the same as \sty{tracklang}'s root language label
+for that locale. For example:
+\begin{codebox}
+\gls{TrackLanguageTag}\marg{\opt{en-MT}}
+\cmd{def}\tklcaptions{english}\marg{\comment{}
+ \cmd{def}\cmd{contentsname}\marg{Contents}\comment{}
+ \comment{...}
+}
+\end{codebox}
+
+When the user switches language through commands like
+\gls{selectlanguage} it would be useful to also use
+\code{\gls{SetCurrentTrackedDialect}\margm{dialect}} to make it easier
+for the document author or locale-sensitive packages to pick
+up the current locale. The \meta{dialect} argument may be
+\sty{tracklang}'s internal dialect label or the dialect
+label you assigned with \gls{SetTrackedDialectLabelMap}. It
+may also be the root language label, in which case
+\sty{tracklang} will search for the last dialect to be
+tracked with that language. For example:
+\begin{codebox}
+\cmd{def}\gls{selectlanguage}\#1\marg{\comment{}
+ \gls{SetCurrentTrackedDialect}\marg{\#1}\comment{}
+ \comment{set up hyphenation patterns etc}
+}
+\end{codebox}
+See the example in \sectionref{sec:summary-doc} or the example in
+\dickimawhref{latex/tracklang/langpkg.shtml}{Integrating
+\filefmt{tracklang.tex} into Language Packages}.
+
+\chapter{Generic Use}
+\label{sec:generic}
+
+For plain \TeX\ you can input \file{tracklang.tex}:
+\begin{codebox}
+\gls{input} tracklang
+\end{codebox}
+or for \TeX\ formats that have an argument form for \gls{input}:
+\begin{codebox}
+\gls{input}\marg{tracklang}
+\end{codebox}
+As from version 1.3, you don't need to change the category
+code of \idx{atletter} before loading \file{tracklang.tex}
+as it will automatically be changed to 11 and switched
+back at the end (if required).
+
+The \LaTeX\ package \file{tracklang.sty}
+inputs the generic \TeX\ code in \file{tracklang.tex}, but before
+it does so it defines
+\cmddef{@tracklang@declareoption}
+to
+\begin{compactcodebox*}
+\gls{DeclareOption}\margm{dialect}\marg{\gls{TrackPredefinedDialect}\margm{dialect}}
+\end{compactcodebox*}
+If \gls{@tracklang@declareoption} isn't defined when
+\file{tracklang.tex} is input, it will be defined to ignore its
+argument.
+
+This means that all the predefined languages and dialects
+(\refoptstables) automatically become package options, so
+the \file{tracklang.sty} package can pick up document class
+options and add them to \sty{tracklang}'s internal list of tracked
+document languages.
+
+If you're not using \LaTeX, this option isn't available
+although you can redefine
+\gls{@tracklang@declareoption}
+to use something analogous to \gls{DeclareOption}, if appropriate.
+Otherwise, the document languages need
+to be explicitly identified (using any of the following commands)
+so that \sty{tracklang} knows about them.
+
+\cmddef{TrackPredefinedDialect}
+This will add the predefined dialect and its associated \idx{ISO} codes to the list
+of tracked document languages. The \meta{dialect label} may be any
+of those listed in \refoptstables.
+
+For example:
+\begin{codebox}
+\gls{input} tracklang
+\gls{TrackPredefinedDialect}\marg{\opt{british}}
+\end{codebox}
+is the Plain \TeX\ alternative to:
+\begin{codebox}
+\cmd{documentclass}[\opt{british}]\marg{article}
+\cmd{usepackage}\marg{tracklang}
+\end{codebox}
+
+Note that it's impractical to define every possible language
+and region combination as it would significantly slow the
+time taken to load \sty{tracklang} so, after version~1.3,
+I don't intend adding any new predefined dialects. As from version
+1.3, if you want to track a dialect that's not predefined by
+\sty{tracklang}, then you can use:
+\cmddef{TrackLocale}
+If \meta{locale} is a recognised dialect, this is equivalent to
+using \gls{TrackPredefinedDialect}, otherwise \meta{locale}
+needs to be in one the following formats:
+\begin{itemize}
+\item \meta{\idx{ISO} lang}
+\item \meta{\idx{ISO} lang}\idx{atmod}\meta{modifier}
+\item \meta{\idx{ISO} lang}\idx{hyphensep}\meta{\idx{ISO} country}
+\item \meta{\idx{ISO} lang}\idx{hyphensep}\meta{\idx{ISO} country}\idx{atmod}\meta{modifier}
+\end{itemize}
+where \meta{\idx{ISO} lang} is the \idxn{639-1} or \idx{639-2} code identifying
+the language (lower case), \meta{\idx{ISO} country} is the \idx{3166-1}
+\idx{ISO} code identifying the \idx{territory} (upper case) and
+\meta{modifier} is the \idx{modifier} or \idx{variant}. The hyphen
+(\idx{hyphensep}) may be replaced by an underscore character
+(\idx{underscoresep}). \Idx{code-set} information in the
+form \code{\idx{dotsep}\meta{codeset}} may optionally appear before the
+\idx{modifier}. For example,
+\code{de\idx{hyphensep}DE\idx{dotsep}utf8\idx{atmod}new} (\idx{modifier} is
+\optfmt{new}) or \code{en\idx{hyphensep}GB\idx{dotsep}utf8} (\idx{modifier} is missing).
+The \idx{code-set} will be ignored if present, but it won't interfere
+with the parsing.
+
+For example:
+\begin{codebox}
+\gls{TrackLocale}\marg{de\idx{hyphensep}NA\idx{atmod}new}
+\end{codebox}
+indicates German in Namibia using the new spelling.
+
+\begin{important}
+If a language has different \idxn{639-2T} and \idx{639-2B} codes, then
+the \qt{T} form should be used. (So for the above example,
+\code{deu} may be used instead of \code{de}, but \code{ger}
+won't be recognised.)
+\end{important}
+
+Alternatively, you can use
+\cmddef{TrackLanguageTag}
+where \meta{tag} is a regular, well-formed language tag or a recognised dialect
+label. (Irregular grandfather tags aren't recognised.)
+This command will fully expand \meta{tag}.
+A warning is issued if the tag is empty.
+
+If you want to first check that \meta{tag} includes a valid language
+code, then you can instead use:
+\cmddef{TrackIfKnownLanguage}
+This will only track \meta{tag} (and then do \meta{success code}) if
+\meta{tag} starts with a valid language code (or is a predefined
+dialect) otherwise it will do \meta{fail code}. Both
+\gls{TrackLanguageTag} and \gls{TrackIfKnownLanguage} will check if
+\meta{tag} is a predefined option. (This saves parsing the tag if
+it's recognised.)
+
+For example:
+\begin{codebox}
+\gls{TrackLanguageTag}\marg{hy-Latn-IT-arevela}
+Latn-ME: \gls{TrackIfKnownLanguage}\marg{Latn-ME}\marg{success}\marg{fail}.
+brazilian: \gls{TrackIfKnownLanguage}\marg{brazilian}\marg{success}\marg{fail}.
+\end{codebox}
+This will track \optfmt{hy-Latn-IT-arevela} and \opt{brazilian}
+(\optfmt{pt-BR}) but not \optfmt{Latn-ME} (because it doesn't contain a
+valid language code) even though it's a valid \idx{script} and country
+code. The above is just for illustrative purposes. Typically the
+language tracking isn't performed within the document text.
+
+The \sty{datetime2} package assumes that any unknown package option is a
+language identifier. It could simply do:
+\begin{compactcodebox}
+\gls{TrackLanguageTag}\marg{\cmd{CurrentOption}}
+\end{compactcodebox}
+but users can make mistakes sometimes and this won't provide any
+helpful information if they, for example, misspelt a package option
+or forgot the \qt{\meta{key}=} part of a \keyval\
+setting. Instead (as from v1.5.5) \sty{datetime2} now does:
+\begin{compactcodebox}
+\gls{TrackIfKnownLanguage}\marg{\cmd{CurrentOption}}
+\marg{...}\comment{known language}
+\marg{\cmd{PackageError}\marg{...}\marg{...}\marg{...}}
+\end{compactcodebox}
+This will now give the user some guidance.
+
+If \meta{tag} contains a sub-language tag, this will be set
+as the \idx{639-3} code for the \emph{dialect} label. Note that this is
+different to the root language codes which are set using the
+language label. For example:
+\begin{codebox}
+\gls{TrackLanguageTag}\marg{zh-cmn-Hans-CN}
+\end{codebox}
+creates a new dialect with the label \code{zh\-cmn\-Hans\-CN}.
+The root language \opt{chinese} has the \idx{639-1} code
+\optfmt{zh} and the dialect \code{zh\-cmn\-Hans\-CN} has the
+\idxn{639-3} code \optfmt{cmn}.
+\begin{codebox}
+ISO 639-1: \gls{TrackedIsoCodeFromLanguage}\marg{639-1}\marg{chinese}.
+ISO 639-3: \gls{TrackedIsoCodeFromLanguage}\marg{639-3}\marg{zhcmnHansCN}.
+\end{codebox}
+
+Version 1.2 of \sty{texosquery} provides the command \gls{TeXOSQueryLangTag},
+which may be used to fetch the operating system's regional
+information as a language tag. These commands can be used as
+follows:
+\begin{codebox}
+\gls{input} tracklang \comment{v1.3}
+\gls{input} texosquery \comment{v1.2}
+\codepar
+\gls{TeXOSQueryLangTag}\marg{\cmd{langtag}}
+\gls{TrackLanguageTag}\marg{\cmd{langtag}}
+\end{codebox}
+(If the \idx{shellescape} is disabled, \cmd{langtag} will be empty, which
+will trigger a~warning but no errors.)
+
+Some of the predefined root language options listed
+in \tableref{tab:rootlangopts} have an associated region
+(denoted by \fnregion).
+If \gls{TrackLocale} is used with just the language \idx{ISO} code,
+no region is tracked for that language. For example
+\begin{codebox}
+\gls{TrackLocale}\marg{\opt{manx}}
+\end{codebox}
+will track the \optfmt{IM} (Isle of Man) \idxn{3166-1} code but
+\begin{codebox}
+\gls{TrackLocale}\marg{gv}
+\end{codebox}
+won't track the region.
+Similarly for \gls{TrackLanguageTag}.
+
+(New to version 1.3.)
+There's a similar command to \gls{TrackLocale} that doesn't take an argument:
+\cmddef{TrackLangFromEnv}
+If the \idx{shellescape} has been enabled or \gls{directlua} is
+available, this will try to get the language information from the
+system environment variables \envvar{LCALL} or \envvar{LANG} and, if
+successful, track that.
+
+Since \sty{tracklang} is neither able to look up the \idx{POSIX} locale
+tables nor interpret file locales, if the result is \code{C} or
+\code{POSIX} or starts with a forward slash \code{/} then
+the locale value is treated as empty.
+
+\begin{important}
+Not all operating systems use environment variables for
+the system locale information. For example, Windows stores the
+locale information in the registry. In which case, consider
+using \sty{texosquery}.
+\end{important}
+
+If the operating system locale can't be obtained from environment variables, then
+\sty{tracklang} will use \gls{TeXOSQueryLocale} as a fallback if
+\sty{texosquery} has been loaded. Since \sty{texosquery} requires
+both the \idx{shellescape} and the Java runtime environment,
+\sty{tracklang} doesn't automatically load it.
+
+Plain \TeX\ example:
+\begin{codebox}
+\gls{input} texosquery
+\gls{input} tracklang
+\gls{TrackLangFromEnv}
+\end{codebox}
+Document build:
+\begin{terminal}
+\app{etex} \switch{shell-escape} \meta{filename}
+\end{terminal}
+
+\LaTeX\ example:
+\begin{codebox}
+\cmd{usepackage}\marg{texosquery}
+\cmd{usepackage}\marg{tracklang}
+\gls{TrackLangFromEnv}
+\end{codebox}
+Document build:
+\begin{terminal}
+\app{pdflatex} \switch{shell-escape} \meta{filename}
+\end{terminal}
+
+If the locale can't be determined, there will be warning messages.
+These can be suppressed using
+\cmddef{TrackLangShowWarningsfalse}
+or switched back on again using
+\cmddef{TrackLangShowWarningstrue}
+
+For example, I have the environment variable \envvar{LANG} set to
+\code{en\idx{underscoresep}GB\idx{dotsep}utf8} on my Linux system so instead of
+\begin{codebox}
+\gls{TrackPredefinedDialect}\marg{\opt{british}}
+\end{codebox}
+I can use
+\begin{codebox}
+\gls{TrackLangFromEnv}
+\end{codebox}
+
+With \LaTeX\ documents I can do
+\begin{codebox}
+\cmd{documentclass}\marg{article}
+\cmd{usepackage}\marg{tracklang}
+\gls{TrackLangFromEnv}
+\end{codebox}
+However, this only helps subsequently loaded packages that
+use \sty{tracklang} to determine the required regional
+settings. For example:
+\begin{codebox}
+\cmd{documentclass}\marg{article}
+\cmd{usepackage}\marg{tracklang}
+\gls{TrackLangFromEnv}
+\cmd{usepackage}[useregional]\marg{datetime2}
+\end{codebox}
+In my case, with the \envvar{LANG} environment variable set to
+\code{en\idx{underscoresep}GB\idx{dotsep}utf8} and the
+\idx{shellescape} enabled, this automatically switches on the
+\opt{en-GB} date style.
+Naturally this doesn't help locale-sensitive packages that don't use
+\sty{tracklang}.
+
+The \gls{TrackLangFromEnv} command also incidentally sets
+\gls{TrackLangEnv}
+to the value of the environment variable or empty if the
+query was unsuccessful (for example, the \idx{shellescape} is
+unavailable).
+
+If the command:
+\cmddef{TrackLangEnv}
+is already defined before \gls{TrackLangFromEnv} is used, then the
+environment variable won't be queried and the value of
+\gls{TrackLangEnv} will be parsed instead.
+
+\begin{important}
+The parser which splits the locale string into
+its component parts first tries splitting on the underscore
+\idx{underscoresep} with its usual category code~8, then tries splitting
+on a hyphen \idx{hyphensep} with category code~12, and then tries
+splitting on the underscore \idx{underscoresep} with category code~12.
+\end{important}
+
+For example:
+\begin{codebox}
+\cmd{def}\gls{TrackLangEnv}\marg{en-GB}
+\gls{TrackLangFromEnv}
+\end{codebox}
+This doesn't perform a \idx{shellescape} since \gls{TrackLangEnv}
+is already defined. In this case, you may just as well use:
+\begin{codebox}
+\gls{TrackLocale}\marg{en-GB}
+\end{codebox}
+(unless you happen to additionally require the component
+commands that are set by \gls{TrackLangFromEnv}, see below.)
+
+If the \idx{shellescape} is unavailable
+(for example, your \TeX\ installation prohibits it), you
+can set this value when you invoke \TeX. For example,
+if the document file is called \filefmt{myDoc.tex} (and it's
+in Plain \TeX):
+\begin{terminal}
+\app{tex} "\idx{escbsl}def\idx{escbsl}\glscsname{TrackLangEnv}\marg{\idx{dollarenv}\envvar{LANG}}\idx{escbsl}\glscsname{input} myDoc"
+\end{terminal}
+
+The \gls{TrackLangFromEnv} command also happens to store the
+component parts of the environment variable value in the
+following commands. (These aren't provided by \gls{TrackLocale}.)
+If the information is unavailable, the relevant commands will be set
+to empty.
+
+The language code is stored in:
+\cmddef{TrackLangEnvLang}
+
+The \idx{territory} (if present) is stored in:
+\cmddef{TrackLangEnvTerritory}
+
+The \idx{code-set} (if present) is stored in:
+\cmddef{TrackLangEnvCodeSet}
+
+The \idx{modifier} (if present) is stored in:
+\cmddef{TrackLangEnvModifier}
+
+If you want to query the language environment, but don't
+want to track the result, you can just use:
+\cmddef{TrackLangQueryEnv}
+This only tries to fetch the value of the
+language environment variable (and use \sty{texosquery} as
+a fallback, if it has been loaded). It doesn't try to parse the
+result. The result is stored in \gls{TrackLangEnv} (empty if
+unsuccessful). Unlike \gls{TrackLangFromEnv}, this doesn't check if
+\gls{TrackLangEnv} already exists. A warning will occur if the shell
+escape is unavailable. For systems that store the locale information in
+environment variables, this is more efficient than using
+\sty{texosquery}'s \gls{TeXOSQueryLocale} command (which is what's
+used as the fallback).
+
+The above queries \envvar{LCALL} and, if that is unsuccessful,
+then queries \envvar{LANG} (before optionally falling back on
+\sty{texosquery}). If you want another environment
+variable tried after \envvar{LCALL} and before \envvar{LANG},
+you can instead use:
+\cmddef{TrackLangQueryOtherEnv}
+For example, to also query \envvar{LCMONETARY}:
+\begin{codebox}
+\gls{TrackLangQueryOtherEnv}\marg{\envvar{LCMONETARY}}
+\end{codebox}
+
+Since this sets \gls{TrackLangEnv}, you can use it before
+\gls{TrackLangFromEnv}. For example:
+\begin{codebox}
+\gls{TrackLangQueryOtherEnv}\marg{\envvar{LCMONETARY}}
+\gls{TrackLangFromEnv}
+\end{codebox}
+Remember that if you only want to do the \idx{shellescape} if
+\gls{TrackLangEnv} hasn't already been defined, you can test for this
+first:
+\begin{codebox}
+\cmd{ifx}\gls{TrackLangEnv}\cmd{undefined}
+ \gls{TrackLangQueryOtherEnv}\marg{\envvar{LCMONETARY}}
+\cmd{fi}
+\gls{TrackLangFromEnv}
+\end{codebox}
+
+It's also possible to just parse the value of \gls{TrackLangEnv}
+without tracking the result using:
+\cmddef{TrackLangParseFromEnv}
+This is like \gls{TrackLangFromEnv} but assumes that
+\gls{TrackLangEnv} has already been set and doesn't track the
+result. The component parts are stored as for \gls{TrackLangFromEnv}.
+
+Example (Plain \TeX):
+\begin{codebox}
+\gls{input} tracklang
+\codepar
+\cmd{def}\gls{TrackLangEnv}\marg{fr\idx{hyphensep}BE\idx{dotsep}utf8\idx{atmod}euro}
+\codepar
+\gls{TrackLangParseFromEnv}
+\codepar
+Language: \gls{TrackLangEnvLang}.
+Territory: \gls{TrackLangEnvTerritory}.
+Codeset: \gls{TrackLangEnvCodeSet}.
+Modifier: \gls{TrackLangEnvModifier}.
+Any tracked languages? \gls{AnyTrackedLanguages}\marg{Yes}\marg{No}.
+\end{codebox}
+This produces:
+\begin{resultbox}
+Language: fr. Territory: BE. Codeset: utf8. Modifier: euro.
+Any tracked languages? No.
+\end{resultbox}
+
+Compare this with:
+\begin{codebox}
+\gls{input} tracklang
+\codepar
+\cmd{def}\gls{TrackLangEnv}\marg{fr\idx{hyphensep}BE\idx{dotsep}utf8\idx{atmod}euro}
+\codepar
+\gls{TrackLangFromEnv}
+\codepar
+Language: \gls{TrackLangEnvLang}.
+Territory: \gls{TrackLangEnvTerritory}.
+Codeset: \gls{TrackLangEnvCodeSet}.
+Modifier: \gls{TrackLangEnvModifier}.
+Any tracked languages? \gls{AnyTrackedLanguages}\marg{Yes}\marg{No}.
+Tracked dialect(s):\comment{}
+\gls{ForEachTrackedDialect}\marg{\cmd{thisdialect}}\marg{\cmd{space}\cmd{thisdialect}}.
+\end{codebox}
+This produces:
+
+\begin{resultbox}
+Language: fr. Territory: BE. Codeset: utf8. Modifier: euro.
+Any tracked languages? Yes.
+Tracked dialect(s): belgique.
+\end{resultbox}
+
+If \gls{TrackLangFromEnv} doesn't recognise the given language and
+territory combination, it will define a new dialect and add that.
+
+For example, \sty{tracklang} doesn't recognise \code{en-BE}, so
+the sample document below defines a new dialect labelled
+\code{enBEeuro}:
+\begin{codebox}
+\gls{input} tracklang
+\codepar
+\cmd{def}\gls{TrackLangEnv}\marg{en\idx{hyphensep}BE\idx{dotsep}utf8\idx{atmod}euro}
+\codepar
+\gls{TrackLangFromEnv}
+\codepar
+Language: \gls{TrackLangEnvLang}.
+Territory: \gls{TrackLangEnvTerritory}.
+Codeset: \gls{TrackLangEnvCodeSet}.
+Modifier: \gls{TrackLangEnvModifier}.
+Any tracked languages? \gls{AnyTrackedLanguages}\marg{Yes}\marg{No}.
+Tracked dialect(s):\comment{}
+\gls{ForEachTrackedDialect}\marg{\cmd{thisdialect}}\marg{\cmd{space}\cmd{thisdialect}}.
+\end{codebox}
+This now produces:
+\begin{resultbox}
+Language: en. Territory: BE. Codeset: utf8. Modifier: euro.
+Any tracked languages? Yes.
+Tracked dialect(s): enBEeuro.
+\end{resultbox}
+
+\chapter{Supplementary Packages}
+\label{sec:supplpkgs}
+
+In addition to the main \file{tracklang.tex} file and
+\file{tracklang.sty} \LaTeX\ wrapper, the \sty{tracklang} package
+also provides supplementary files for region and script mappings.
+
+\filedef{tracklang-region-codes.tex}
+This file is only loaded if a mapping is required between numeric
+and alphabetic \idx{region} codes. If \gls{TrackLanguageTag}
+encounters a numeric \idx{region} code, it will automatically input
+\file{tracklang-region-codes.tex}, if it hasn't already been input.
+This file provides the following commands.
+
+\cmddef{TrackLangAlphaIIToNumericRegion}
+Expands to the numeric code corresponding to the given alpha-2 code or
+empty if no mapping has been supplied.
+
+\cmddef{TrackLangNumericToAlphaIIRegion}
+Expands to the alpha-2 code corresponding to the given numeric code or
+empty if no mapping has been supplied.
+
+\cmddef{TrackLangIfKnownAlphaIIRegion}
+Expands to \meta{true} if there's an alpha-2 to numeric \idx{region}
+code mapping, otherwise expands to \meta{false}.
+
+\cmddef{TrackLangIfKnownNumericRegion}
+Expands to \meta{true} if there's a numeric to alpha-2 \idx{region}
+code mapping, otherwise expands to \meta{false}.
+
+\cmddef{TrackLangAlphaIIIToNumericRegion}
+Expands to the numeric code corresponding to the given alpha-3 code or
+empty if no mapping has been supplied.
+
+\cmddef{TrackLangNumericToAlphaIIIRegion}
+Expands to the alpha-3 code corresponding to the given numeric code or
+empty if no mapping has been supplied.
+
+\cmddef{TrackLangIfKnownAlphaIIIRegion}
+Expands to \meta{true} if there's an alpha-3 to numeric \idx{region}
+code mapping, otherwise expands to \meta{false}.
+
+Mappings are established with:
+\cmddef{TrackLangRegionMap}
+Predefined mappings are listed in \tableref{tab:regionmappings}.
+
+When \file{tracklang-region-codes.tex} is input, it can load
+additional files that provide supplementary mappings.
+
+\cmddef{TrackLangAddExtraRegionFile}
+This command adds the supplied \meta{file} to the list of extra
+region code files that should be input by
+\file{tracklang-region-codes.tex}, unless
+\file{tracklang-region-codes.tex} has already been input, in which
+case \meta{file} will be input straight away.
+
+\filedef{tracklang-scripts.tex}
+The \sty{tracklang-scripts} package provides information about
+\idxn{15924} scripts. The file isn't automatically loaded. If
+you want to use any of the commands provided in it you need to input
+it.
+
+Plain \TeX:
+\begin{codebox}
+\gls{input} tracklang-scripts
+\end{codebox}
+There's a simple wrapper package \file{tracklang-scripts.sty} for
+\LaTeX\ users:
+\begin{codebox}
+\cmd{usepackage}\marg{tracklang-scripts}
+\end{codebox}
+
+\cmddef{TrackLangScriptMap}
+Defines a mapping. The first argument is the four letter alpha code,
+such as \opt{Latn} or \opt{Cyrl}. The second argument is the numeric
+code. The third argument is the script's name, for example
+\qt{Imperial Aramaic}. The fourth argument is the direction, which
+may be one of: \optfmt{LR} (left-to-right), \optfmt{RL} (right-to-left),
+\optfmt{TB} (top-to-bottom), \optfmt{varies} or \optfmt{inherited}.
+The \meta{parent} argument is for the parent writing system, which
+may be left blank (currently unsupported).
+
+This command defines:
+\cmddef{TrackLangScriptCode}
+which expands to \meta{Code} for use with \gls{IfTrackedDialectIsScriptCs}.
+
+See \tableref{tab:scriptmappings} for a summary of all the mappings
+that are provided by the file \file{tracklang-scripts.tex}.
+
+\cmddef{TrackLangScriptAlphaToNumeric}
+Expands to the numeric code corresponding to the given alpha code or
+empty if no mapping.
+
+\cmddef{TrackLangScriptIfKnownAlpha}
+Expands to \meta{true} if there is a known alpha to numeric mapping
+or \meta{false} otherwise.
+
+\cmddef{TrackLangScriptNumericToAlpha}
+Expands to the alpha code corresponding to the given numeric code or
+empty if no mapping.
+
+\cmddef{TrackLangScriptIfKnownNumeric}
+Expands to \meta{true} if there is a known numeric to alpha mapping
+or \meta{false} otherwise.
+
+\cmddef{TrackLangScriptAlphaToName}
+Expands to the name corresponding to the given alpha code or
+empty if no mapping.
+
+\cmddef{TrackLangScriptAlphaToDir}
+Expands to the direction corresponding to the given alpha code or
+empty if no mapping.
+
+\cmddef{TrackLangScriptSetParent}
+Sets the parent for the given alpha code.
+
+\cmddef{TrackLangScriptGetParent}
+Expands to the parent for the given alpha code or empty if no
+mapping.
+
+\cmddef{TrackLangScriptIfHasParent}
+Expands to \meta{true} if the given alpha code has a parent
+or to \meta{false} otherwise. Note that if a parent is explicitly
+set to empty with \gls{TrackLangScriptSetParent} then it will be
+considered defined, but if the \meta{parent} argument was empty in
+\gls{TrackLangScriptMap}, then it will be undefined.
+
+\cmddef{TrackLangAddExtraScriptFile}
+This command adds \meta{file} to the list of extra script files that should
+be input by \file{tracklang-scripts.tex}, unless
+\file{tracklang-scripts.tex} has already been input, in which
+case \meta{file} will be input straight away.
+
+
+\chapter{Detecting the User's Requested Languages}
+\label{sec:user}
+
+The \sty{tracklang} package tries to track the loaded languages and
+the option names used to identify those languages. For want of a better
+term, the language option names are referred to as dialects even if
+they're only a synonym for the language rather than an actual
+dialect. For example, if the user
+has requested \opt{british}, the \emph{root language} label is
+\opt{english} and the dialect is \opt{british}, whereas if the
+user requested \opt{UKenglish}, the root language label is
+\opt{english} and the dialect is \opt{UKenglish}. The
+exceptions to this are the \sty{tracklang} package options that have been
+specified in the form \meta{iso lang}-\meta{iso country} (listed
+in \tableref{tab:rootlangopts}). For
+example, the package option \iso{british} behaves as though the
+user requested the package option \opt{british}.
+
+If \gls{TrackLocale} or \gls{TrackLangFromEnv} are used and the locale
+isn't recognised a new dialect is created with the label formed from
+the \idx{ISO} codes (and \idx{modifier}, if present).
+Similarly for \gls{TrackLanguageTag} a new
+dialect is created with a label that's essentially the language tag
+without the hyphen separators. For example,
+\begin{codebox}
+\gls{TrackLocale}\marg{xx\idx{hyphensep}YY}
+\end{codebox}
+will add a new dialect with the label \code{xxYY},
+\begin{codebox}
+\gls{TrackLocale}\marg{xx\idx{hyphensep}YY\idx{atmod}mod}
+\end{codebox}
+will add a new dialect with the label \code{xxYYmod} and
+\begin{codebox}
+\gls{TrackLanguageTag}\marg{xx-Latn-YY}
+\end{codebox}
+will add a new dialect with the label \code{xxLatnYY}.
+
+\begin{important}
+If \gls{TrackLocale} or \gls{TrackLangFromEnv} find a \idx{modifier}, the
+value will be sanitized to allow it to be used as a label. If the
+modifier is set explicitly using \gls{SetTrackedDialectModifier},
+no sanitization is performed.
+\end{important}
+
+In addition to the root language label and the dialect identifier,
+many of the language options also have corresponding \idx{ISO} codes. In
+most cases there is an \idxn{639-1} or an \idxn{639-2} code (or both), and in some
+cases there is an \idxn{3166-1} code identifying the dialect \idx{region}.
+Where a language has different \idxn{639-2T} and \idx{639-2B} codes,
+the \qt{T} version is assumed.
+
+When the \file{tracklang.sty} \LaTeX\ package is loaded, it first attempts to find the
+language options through the package options supplied to
+\sty{tracklang}. This means that any languages that have been
+supplied in the document class options should get identified
+(provided that the document class has used the standard option
+declaration mechanism). If no languages have been supplied in this
+way, \file{tracklang.sty} then attempts to identify language settings in
+the following order:
+\begin{enumerate}
+\item if \gls{bbl@loaded} is defined (\sty{babel}), \sty{tracklang}
+will iterate over each label in that command definition;
+
+\item if \gls{trans@languages} is defined (\sty{translator}),
+\sty{tracklang} will iterate over each label in that command
+definition;
+
+\item if \sty{ngerman} has been loaded, the \opt{ngerman} dialect
+will be tracked;
+
+\item if \sty{german} has been loaded, the \opt{german} root
+language will be tracked;
+
+\item if \sty{polyglossia} has been loaded:
+
+ \begin{enumerate}
+ \item if \gls{xpg@bcp@loaded} has been defined, \sty{tracklang}
+will iterate over the \idx{BCP47} tags in that command definition;
+
+ \item if \gls{xpg@loaded} has been defined, \sty{tracklang} will
+iterate over each language label in that command definition;
+
+ \item \sty{tracklang} will iterate over all \sty{tracklang} options
+and test if the root language has been loaded.
+ \end{enumerate}
+
+\end{enumerate}
+Note that this references internal commands provided by other
+packages. Of these, only the \sty{polyglossia} commands are
+documented in the package manual, and so are the only ones that can
+be relied on.
+
+Each identified language and dialect is added to the \emph{tracked
+language} and \emph{tracked dialect} lists. Note that the tracked
+language and tracked dialect are labels rather than proper nouns.
+If a~dialect label is identical to its root language label, the
+label will appear in both lists.
+
+You can check whether or not any languages have been detected using:
+\cmddef{AnyTrackedLanguages}
+This will do \meta{true} if one or more languages have been
+tracked otherwise it will do \meta{false}. (Each detected
+dialect will automatically have the root language label added
+to the tracked language list, if it's not already present.)
+
+If you want to find out if any of the tracked dialects
+matches a particular language tag, you can use:
+\cmddef{GetTrackedDialectFromLanguageTag}
+If successful, the supplied control sequence \meta{cs} is set to the
+dialect label, otherwise \meta{cs} is set to empty. The test is for an exact
+match on the root language, \idx{script}, sub-language, \idx{variant} and
+\idx{region}. The control sequence \meta{cs} will be empty if none of the
+tracked dialects matches all five of those elements. (If the script
+isn't given explicitly, the default for that language is assumed.)
+In the event that \meta{cs} is empty, you can now (as from v1.3.6)
+get the closest match with:
+\cmddef{TrackedDialectClosestSubMatch}
+(which is set by \gls{GetTrackedDialectFromLanguageTag}).
+This will be empty if no tracked dialects match on the root
+language or if there's a tracked dialect label that exactly matches
+the label formed by concatenating the language code, sub-language,
+\idx{script}, \idx{region}, \idx{modifier} and \idx{variant}.
+
+For example (Plain \TeX):
+\begin{codebox}
+\gls{input} tracklang
+\gls{TrackLanguageTag}\marg{en-826}
+Has en-Latn-GB been tracked?
+\gls{GetTrackedDialectFromLanguageTag}\marg{en-Latn-GB}\marg{\cmd{thisdialect}}\comment{}
+\cmd{ifx}\cmd{thisdialect}\cmd{empty}
+ No!
+\cmd{else}
+ Yes! Dialect label: \cmd{thisdialect}.
+\cmd{fi}
+\cmd{bye}
+\end{codebox}
+This matches because the \idx{territory} code \numericcode{GB} is recognised as
+equivalent to the code \opt{GB}, and the default \idx{script} for
+\opt{english} is \opt{Latn}. In this case, the dialect
+label is \opt{british}. Note that this doesn't require
+the use of \gls{TrackLanguageTag} to track the dialect.
+It also works if the dialect has been tracked using other commands,
+such as \gls{TrackLocale}.
+
+Here's an example that doesn't have an exact match, but does have a
+partial match:
+\begin{codebox}
+\gls{input} tracklang
+\gls{TrackLanguageTag}\marg{de-CH-1996}
+Has de-DE-1996 been tracked?
+\gls{GetTrackedDialectFromLanguageTag}\marg{de-DE-1996}\marg{\cmd{thisdialect}}\comment{}
+\cmd{ifx}\cmd{thisdialect}\cmd{empty}
+ No!
+ \cmd{ifx}\gls{TrackedDialectClosestSubMatch}\cmd{empty}
+ No match on root language.
+ \cmd{else}
+ Closest match: \gls{TrackedDialectClosestSubMatch}.
+ \cmd{fi}
+\cmd{else}
+ Yes! Dialect label: \cmd{thisdialect}.
+\cmd{fi}
+\cmd{bye}
+\end{codebox}
+In this case the result is:
+\begin{resultbox}
+Has de-DE-1996 been tracked? No! Closest match: nswissgerman.
+\end{resultbox}
+
+You can iterate through each tracked dialect using:
+\cmddef{ForEachTrackedDialect}
+At the start of each iteration, this sets the control sequence
+\meta{cs} to the tracked dialect and does \meta{body}.
+
+You can iterate through each tracked language using:
+\cmddef{ForEachTrackedLanguage}
+At the start of each iteration, this sets the control sequence \meta{cs} to the
+tracked language and does \meta{body}.
+
+The above for-loops use the same internal mechanism as \LaTeX's
+\gls{@for} loop. Since this isn't defined by \TeX, a similar command
+(\inlineglsdef{@tracklang@for}) will be defined that works in the same way.
+
+The provided control sequence \meta{cs} is updated at the
+start of each iteration to the current element. The loop is
+terminated when this control sequence is set to \gls{@nil}. This
+special control sequence should never been used as it's just a
+marker and isn't actually defined. If you get an error message
+stating that \gls{@nil} is undefined, then it's most likely due to a
+loop control sequence being used outside the loop. This can occur if
+the loop contains code that isn't expanded until later. For example,
+if the loop code includes \gls{AtBeginDocument}, you need to ensure
+that the loop control sequence is expanded before being added to the
+hook.
+
+You can test if a root language has been detected using:
+\cmddef{IfTrackedLanguage}
+where \meta{language-label} is the language label. If
+true, this does \meta{true} otherwise it does \meta{false}.
+
+You can test if a particular dialect has been detected using:
+\cmddef{IfTrackedDialect}
+where \meta{dialect-label} is the dialect label. If the root
+language was explicitly specified, then it will also be detected as
+a dialect.
+
+For example:
+\begin{codebox}
+\cmd{documentclass}[\opt{british},\opt{dutch}]\marg{article}
+\codepar
+\cmd{usepackage}\marg{tracklang}
+\codepar
+\cbeg{document}
+``english'' \gls{IfTrackedDialect}\marg{english}\marg{has}\marg{hasn't} been specified.
+\codepar
+``british'' \gls{IfTrackedDialect}\marg{british}\marg{has}\marg{hasn't} been specified.
+\codepar
+``flemish'' \gls{IfTrackedDialect}\marg{flemish}\marg{has}\marg{hasn't} been specified.
+\codepar
+``dutch'' \gls{IfTrackedDialect}\marg{dutch}\marg{has}\marg{hasn't} been specified.
+\codepar
+``english'' or an English variant
+\gls{IfTrackedLanguage}\marg{english}\marg{has}\marg{hasn't} been specified.
+\cend{document}
+\end{codebox}
+This produces:
+\begin{resultbox}
+``english'' hasn't been specified.
+
+``british'' has been specified.
+
+``flemish'' hasn't been specified.
+
+``dutch'' has been specified.
+
+``english'' or an English variant has been specified.
+\end{resultbox}
+
+You can find the root language label for a given tracked dialect
+using:
+\cmddef{TrackedLanguageFromDialect}
+If \meta{dialect} hasn't been defined this does nothing otherwise it
+expands to the root language label.
+
+You can find the tracked dialects from a given root language
+using:
+\cmddef{TrackedDialectsFromLanguage}
+This will expand to a~comma-separated list of dialect labels
+if the root language label has been defined, otherwise it
+does nothing.
+
+You can test if a language or dialect has a corresponding \idx+{ISO} code using:
+\cmddef{IfTrackedLanguageHasIsoCode}
+where \meta{code type} is the type of \idx{ISO} code (for example,
+\idx{639-1} for root languages or \idx{3166-1} for regional
+dialects), and \meta{label} is the language or dialect label.
+Note that the \idx{639-3} may be set for the dialect
+rather than root language for sub-languages parsed using
+\gls{TrackLanguageTag}.
+
+Alternatively, you can test if a particular \idx{ISO} code has been
+defined using:
+\cmddef{IfTrackedIsoCode}
+where \meta{code type} is again the type of \idx{ISO} code (for example,
+\idx{639-1} or \idx{3166-1}), and \meta{code} is the
+particular code (for example, \opt{en} for \idxn{639-1} or
+\opt{GB} for \idxn{3166-1}).
+
+You can fetch the language (or dialect) label associated with a
+given \idx{ISO} code using:
+\cmddef{TrackedLanguageFromIsoCode}
+This does nothing if the given \meta{code} for the given \idx{ISO}
+\meta{code type} has not been defined, otherwise it expands
+a~comma-separated list of language or dialect labels.
+
+You can fetch the \idx{ISO} code for a given code type using:
+\cmddef{TrackedIsoCodeFromLanguage}
+where \meta{label} is the language or dialect label and \meta{code
+type} is the \idx{ISO} code type (for example, \idx{639-1} or
+\idx{3166-1}). Unlike \gls{TrackedLanguageFromIsoCode}, this
+command only expands to a single label rather than a~comma-separated
+list.
+
+The above commands do nothing in the event of an unknown code or
+code type,
+so if you accidentally get the wrong code type, you won't get an error.
+If you're unsure of the code type, you can use the following commands:
+\cmddef{TwoLetterIsoCountryCode}
+This expands to \idx{3166-1} and is used for the two-letter country codes.
+
+\cmddef{TwoLetterIsoLanguageCode}
+This expands to \idx{639-1} and is used for the two-letter root language codes.
+
+\cmddef{ThreeLetterIsoLanguageCode}
+This expands to \idx{639-2} and is used for the three-letter root language
+codes.
+
+\cmddef{ThreeLetterExtIsoLanguageCode}
+This expands to \idx{639-3}. This code is only used for a root language if
+there's no \idx{639-1} or \idx{639-2} code. It may also be used for a
+dialect if a sub-language part has been set in the language
+tag parsed by \gls{TrackLanguageTag}.
+
+The \cmd{Get\ldots} commands below are designed to be expandable.
+If the supplied \meta{dialect} is unrecognised they expand to empty.
+Remember that the dialect must first be identified as a tracked
+language for it to be recognised.
+
+As from v1.3, the language tag for a given dialect can be obtained
+using:
+\cmddef{GetTrackedLanguageTag}
+where \meta{dialect} is the label identifying the dialect.
+Uses the \opt{und} (undetermined) code for unknown languages.
+
+As from v1.3, each tracked dialect may also have an associated
+modifier, which can be fetched using:
+\cmddef{GetTrackedDialectModifier}
+where \meta{dialect} is the label identifying the dialect.
+This value is typically obtained by parsing a \idx{POSIX} locale identifier
+with \gls{TrackLocale} or \gls{TrackLangFromEnv} but may be set explicitly.
+(See \sectionref{sec:langsty} for setting this value. Likewise for
+the following commands.)
+
+You can test if a dialect has an associated \idx{modifier} using:
+\cmddef{IfHasTrackedDialectModifier}
+If the dialect has an associated \idx{modifier} this does \meta{true}
+otherwise it does \meta{false}.
+
+For example:
+\begin{codebox}
+\cmd{documentclass}[\opt{british},\opt{francais},\opt{american},\opt{canadian},\opt{canadien},\opt{dutch}]\marg{article}
+\codepar
+\cmd{usepackage}\marg{tracklang}
+\codepar
+\cbeg{document}
+Languages:
+\gls{ForEachTrackedLanguage}\marg{\cmd{ThisLanguage}}\marg{\cmd{ThisLanguage}\cmd{space}
+(ISO \gls{TwoLetterIsoLanguageCode}:
+``\gls{TrackedIsoCodeFromLanguage}\marg{\gls{TwoLetterIsoLanguageCode}}\marg{\cmd{ThisLanguage}}''). }
+\codepar
+Dialects:
+\gls{ForEachTrackedDialect}\marg{\cmd{ThisDialect}}\marg{\cmd{ThisDialect}\cmd{space}
+(\gls{IfTrackedLanguageHasIsoCode}\marg{\gls{TwoLetterIsoCountryCode}}\marg{\cmd{ThisDialect}}\comment{}
+ \marg{ISO \gls{TwoLetterIsoCountryCode}:
+ ``\gls{TrackedIsoCodeFromLanguage}\marg{\gls{TwoLetterIsoCountryCode}}\marg{\cmd{ThisDialect}}''}%
+ \marg{no specific region};
+root: \gls{TrackedLanguageFromDialect}\marg{\cmd{ThisDialect}}). }
+\codepar
+Language for ISO \gls{TwoLetterIsoCountryCode}\cmd{ }``GB'':
+\gls{TrackedLanguageFromIsoCode}\marg{\gls{TwoLetterIsoCountryCode}}\marg{GB}.
+\codepar
+Language for ISO \gls{TwoLetterIsoCountryCode}\cmd{ }``CA'':
+\gls{TrackedLanguageFromIsoCode}\marg{\gls{TwoLetterIsoCountryCode}}\marg{CA}.
+\codepar
+Country ISO \gls{TwoLetterIsoCountryCode}\cmd{ }code for ``canadian'':
+\gls{TrackedIsoCodeFromLanguage}\marg{\gls{TwoLetterIsoCountryCode}}\marg{canadian}.
+\cend{document}
+\end{codebox}
+This produces:
+\begin{resultbox}
+Languages: english (ISO 639-1: ``en''). french (ISO 639-1: ``fr'').
+dutch (ISO 639-1: ``nl'').
+
+Dialects: american (ISO 3166-1: ``US''; root: english).
+british (ISO 3166-1: ``GB''; root: english).
+canadian (ISO 3166-1: ``CA''; root: english).
+canadien (ISO 3166-1: ``CA''; root: french).
+dutch (no specific region; root: dutch).
+francais (no specific region; root: french).
+
+Language for ISO 3166-1 ``GB'': british.
+
+Language for ISO 3166-1 ``CA'': canadian,canadien.
+
+Country ISO 3166-1 code for ``canadian'': CA.
+\end{resultbox}
+
+As from v1.3, each tracked dialect may also have an associated
+variant, which can be fetched using:
+\cmddef{GetTrackedDialectVariant}
+where \meta{dialect} is the label identifying the dialect.
+This value is typically obtained by parsing a language tag
+with \gls{TrackLanguageTag} but may be set explicitly.
+
+You can test if a dialect has an associated variant using:
+\cmddef{IfHasTrackedDialectVariant}
+
+As from v1.3, each tracked dialect may also have an associated
+script, which can be fetched using:
+\cmddef{GetTrackedDialectScript}
+where \meta{dialect} is the label identifying the dialect.
+
+You can test if a dialect has an associated script using:
+\cmddef{IfHasTrackedDialectScript}
+If the dialect has an associated script this does \meta{true}
+otherwise it does \meta{false}. This information is provided
+for language packages that need to know what script is required,
+but there's no guarantee that the script will actually be set
+in the document. Similarly for all the other attributes described
+here.
+
+Note that the script should be a recognised four-letter \idxn{15924}
+code, such as \opt{Latn} or \opt{Cyrl}. If a~dialect
+doesn't have an associated script then the default for the root
+language should be assumed. For example, \opt{Latn} for English dialects or
+\opt{Cyrl} for Russian dialects. The default script for
+known languages can be obtained using:
+\cmddef{TrackLangGetDefaultScript}
+Most root languages have a default script, but there
+are a few without one as it may depend on region, politics
+or ideology.
+
+There's a convenient expandable command for testing the script:
+\cmddef{IfTrackedDialectIsScriptCs}
+This tests if the given tracked dialect has an associated script and
+compares the value with the replacement text of \meta{cs}.
+If the dialect hasn't been explicitly assigned a script,
+then test is performed against the default script for the root
+language.
+
+The supplementary package \sty{tracklang-scripts} provides some
+additional commands relating to writing systems, including commands
+in the form \gls{TrackLangScriptCode} where
+\meta{Code} is the \idxn{15924} four-letter code. If the dialect
+doesn't have an associated script, \meta{false} is done.
+This package isn't
+loaded automatically, so you'll need to explicitly load it. The
+generic code is in \file{tracklang-scripts.tex}:
+\begin{codebox}
+\gls{input} tracklang-scripts
+\end{codebox}
+There's a convenient \LaTeX\ wrapper \file{tracklang-scripts.sty}:
+\begin{codebox}
+\cmd{usepackage}\marg{tracklang-scripts}
+\end{codebox}
+See \sectionref{sec:supplpkgs} for further details of
+that package.
+
+For example, the following defines a command to check if
+the given dialect should use a Latin \idx{script}:
+\begin{codebox}
+\gls{input} tracklang-scripts
+\cmd{def}\cmd{islatin}\#1\#2\#3\marg{\comment{}
+ \gls{IfTrackedDialectIsScriptCs}\marg{\#1}\marg{\tklscript{Latn}}\marg{\#2}\marg{\#3}\comment{}
+}
+\end{codebox}
+
+\begin{important}
+Note that the \idx{script} value doesn't mean that the document is
+actually using that script. It means that this is the user's
+\emph{desired} script, but whether that \idx{script} is actually set relies
+on the appropriate settings in the relevant language package (such
+as \sty{polyglossia}['s] \optfmt{script} key).
+\end{important}
+
+As from v1.3, each tracked dialect may also have a sub-language
+identifier (for example, \optfmt{arevela}), which can be fetched
+using:
+\cmddef{GetTrackedDialectSubLang}
+where \meta{dialect} is the label identifying the dialect.
+
+You can test if a dialect has an associated sub-tag using:
+\cmddef{IfHasTrackedDialectSubLang}
+If the dialect has an associated sub-tag this does \meta{true}
+otherwise it does \meta{false}.
+
+As from v1.3, each tracked dialect may also have additional
+information, which can be fetched using:
+\cmddef{GetTrackedDialectAdditional}
+where \meta{dialect} is the label identifying the dialect.
+
+You can test if a dialect has additional information using:
+\cmddef{IfHasTrackedDialectAdditional}
+If the dialect has additional information this does \meta{true}
+otherwise it does \meta{false}.
+
+Most packages that implement multilingual support have a~set of
+language definition files for each supported language or dialect.
+It may be that only the root language is needed, if there are no
+variations between that language's dialect (for the purposes of that
+package), or it may be that separate definition files are required
+for each dialect. However it can be awkward trying to map the
+requested dialect or language label to the file name. Should, say,
+the file containing the French code be called
+\metametafilefmt{}{prefix}{\dhyphen french\dhyphen }{suffix}{} or
+\metametafilefmt{}{prefix}{\dhyphen frenchb\dhyphen }{suffix}{} or
+\metametafilefmt{}{prefix}{\dhyphen francais\dhyphen}{suffix}{}?
+Should, say, the file containing the British English code be called
+\metametafilefmt{}{prefix}{\dhyphen british\dhyphen }{suffix}{} or
+\metametafilefmt{}{prefix}{\dhyphen UKenglish\dhyphen }{suffix}{}?
+If you want to modularise the language support for your package so
+that each language module has a different maintainer will the
+maintainers know what tag to use for their language?
+
+\label{pg:filesearch}To help with this, \sty{tracklang} provides:
+\cmddef{IfTrackedLanguageFileExists}
+This attempts to find the file called
+\meta{prefix}\meta{localeid}\meta{suffix} where \meta{localeid} is determined
+from \meta{dialect} (see below). If the file is found then
+\cmddef{CurrentTrackedTag}
+is set to \meta{localeid} and \meta{true code} is done, otherwise
+\meta{false code} is done. If this command
+is empty, then the dialect hasn't been detected. If the dialect
+has been detected, but no file can be found, then
+\gls{CurrentTrackedTag} is set to the final attempt at determining
+\meta{localeid}.
+
+There's a convenient shortcut command new to version 1.3:
+\cmddef{TrackLangRequireDialect}
+which uses \gls{IfTrackedLanguageFileExists} to input the resource
+file if found. The prefix is given by \meta{pkgname}\code{-} and
+the suffix is \code{.\ext+{ldf}}. A warning is issued if no resource file
+is found. Note that while it makes sense for \meta{pkgname}
+to be the same as the base name of the package that uses these
+resource files, they don't have to be the same. This command
+additionally defines:
+\cmddef{TrackLangRequireDialectPrefix}
+to \meta{pkgname}, which allows the prefix to be picked up by
+resource file commands, such as \gls{TrackLangProvidesResource}
+and \gls{TrackLangRequireResource}. (See below.)
+
+The optional argument \meta{load code} is the code that actually
+inputs the required file. This defaults to
+\begin{codebox}
+\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}
+\end{codebox}
+
+The \gls{IfTrackedLanguageFileExists} command sets up the current
+tracked dialect with:
+\begin{compactcodebox*}
+\gls{SetCurrentTrackedDialect}\marg{dialect}
+\end{compactcodebox*}
+which enables the following commands that may be used within
+\meta{true code} or \meta{false code}:
+\cmddef{CurrentTrackedDialect}
+Expands to the dialect label.
+
+\cmddef{CurrentTrackedLanguage}
+If the dialect hasn't been detected, this command will be empty,
+otherwise it will expand to the root language label (which may
+be the same as the dialect label).
+
+\cmddef{CurrentTrackedRegion}
+If the dialect hasn't been detected, this command will be empty.
+If the dialect has been assigned an \idxn{3166-1} code,
+\gls{CurrentTrackedRegion} will expand to that code, otherwise it
+will be empty.
+
+\cmddef{CurrentTrackedIsoCode}
+If the dialect hasn't been detected, this command will be empty.
+Otherwise it may be empty or it may expand to the
+\idxn{639-1} or \idxn{639-2} or \idxn{639-3} code.
+
+\cmddef{CurrentTrackedDialectModifier}
+The dialect's modifier or empty if not set. (This is set but not
+used in the set of possible \meta{localeid} values.)
+
+\cmddef{CurrentTrackedDialectVariant}
+The dialect's variant or empty if not set.
+
+\cmddef{CurrentTrackedDialectSubLang}
+The dialect's sub-language code or empty if not set.
+
+\cmddef{CurrentTrackedDialectAdditional}
+The dialect's additional information or empty if not set.
+
+\cmddef{CurrentTrackedLanguageTag}
+The dialect's language tag. Take care not to confuse this
+with \gls{CurrentTrackedTag}.
+
+\cmddef{CurrentTrackedDialectScript}
+The dialect's script. If the dialect doesn't have the script set,
+the default script for the language is used instead.
+
+\gls{IfTrackedLanguageFileExists} behaves as follows:
+\begin{itemize}
+ \item If no dialect with the given label has been
+ detected, the condition evaluates to \emph{false} and
+ \gls{CurrentTrackedTag} is empty.
+
+ \item If a dialect with the given label has been detected, then:
+ \begin{itemize}
+ \item For each possible \meta{localeid} in an ordered set of tags determined by
+ the dialect label (see below), the first file matching
+ \meta{prefix}\meta{localeid}\meta{suffix} that's found on
+ \TeX's path results in the condition evaluating to \emph{true} and
+ \gls{CurrentTrackedTag} is set to the current \meta{localeid} in the
+ set. The rest of the set of possible values of \meta{localeid} is skipped.
+
+ \item If no file matching \meta{prefix}\meta{localeid}\meta{suffix} is
+ found on \TeX's path, then the condition evaluates to \emph{false}
+ and \gls{CurrentTrackedTag} is set to the final \meta{localeid} in the
+ set (the language label).
+ \end{itemize}
+\end{itemize}
+
+The ordered set of possible values of \meta{localeid} is determined from
+the given dialect.
+\begin{important}
+The ordering has changed in version 1.4, which now also includes the
+\idx{script} and \idx{variant}. This new ordering should typically make the more
+common combinations closer to the start of the search.
+\end{important}
+The possible values of \meta{localeid} are listed below in the order of priority used
+by \gls{IfTrackedLanguageFileExists}. Note that the set may contain
+repetitions (for example, if the dialect label is the same as the
+root language label). If an item contains an element that hasn't
+been set (such as the \idxn{639-3} code or a sub-language
+\meta{sublang} or \idx{variant}) then
+that item is skipped.
+\begin{enumerate}
+\item \meta{localeid} is just the value of \gls{CurrentTrackedLanguageTag}.
+
+\item \meta{localeid} is just the dialect label.
+
+\item \meta{localeid} is
+\meta{ISO~639-1}\code{-}\meta{sublang}\code{-}\meta{script}\code{-}\meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-1}\code{-}\meta{script}\code{-}\meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-1}\code{-}\meta{sublang}\code{-}\meta{region} (if there's no script or if
+the script is the default for the given language).
+\meta{ISO~639-1}\code{-}\meta{region} (if there's no script or if
+the script is the default for the given language).
+
+\item \meta{localeid} is
+\meta{ISO~639-1}\code{-}\meta{sublang}\code{-}\meta{script}.
+
+\item \meta{localeid} is
+\meta{ISO~639-1}\code{-}\meta{script}.
+
+\item \meta{localeid} is \meta{ISO~639-1}\code{-}\meta{sublang}.
+
+\item \meta{localeid} is just \meta{ISO~639-1}.
+
+\item \meta{localeid} is
+\meta{ISO~639-2}\code{-}\meta{sublang}\code{-}\meta{script}\code{-}\meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-2}\code{-}\meta{script}\code{-}\meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-2}\code{-}\meta{sublang}\code{-}\code{region} (if there's no script or if
+the script is the default for the given language).
+\meta{ISO~639-2}\code{-}\meta{region} (if there's no script or if
+the script is the default for the given language).
+
+\item \meta{localeid} is
+\meta{ISO~639-2}\code{-}\meta{sublang}\code{-}\meta{script}.
+
+\item \meta{localeid} is
+\meta{ISO~639-2}\code{-}\meta{script}.
+
+\item \meta{localeid} is \meta{ISO~639-2}\code{-}\meta{sublang}.
+\item \meta{localeid} is just \meta{ISO~639-2}.
+
+\item \meta{localeid} is
+\meta{ISO~639-3}\code{-}\meta{sublang}\code{-}\meta{script}\code{-}\meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-3}\code{-}\meta{script}\code{-}\meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-3}\code{-}\meta{sublang}\code{-}\meta{region} (if there's no script or if
+the script is the default for the given language).
+\meta{ISO~639-3}\code{-}\meta{region} (if there's no script or if
+the script is the default for the given language).
+
+\item \meta{localeid} is
+\meta{ISO~639-3}\code{-}\meta{sublang}\code{-}\meta{script}.
+
+\item \meta{localeid} is
+\meta{ISO~639-3}\code{-}\meta{script}.
+
+\item \meta{localeid} is \meta{ISO~639-3}\code{-}\meta{sublang}.
+
+\item \meta{localeid} is just \meta{ISO~639-3}.
+
+\item \meta{localeid} is just \meta{region}.
+
+\item \meta{localeid} is
+\meta{ISO~639-1}\code{-}\meta{sublang}\code{-}\meta{variant}
+or \meta{ISO~639-1}\code{-}\meta{variant} if \meta{sublang} is missing.
+
+\item \meta{localeid} is
+\meta{ISO~639-2}\code{-}\meta{sublang}\code{-}\meta{variant}
+or \meta{ISO~639-2}\code{-}\meta{variant} if \meta{sublang} is missing.
+
+\item \meta{localeid} is
+\meta{ISO~639-3}\code{-}\meta{sublang}\code{-}\meta{variant}
+or \meta{ISO~639-3}\code{-}\meta{variant} if \meta{sublang} is missing.
+
+\item \meta{localeid} is just the value of \gls{CurrentTrackedLanguage}
+(the root language label).
+\end{enumerate}
+
+For example (pre v1.3):
+\begin{codebox}
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{ThisDialect}}\comment{}
+ \marg{\comment{try to load the language file for this dialect}
+ \gls{IfTrackedLanguageFileExists}\marg{\cmd{ThisDialect}}\comment{}
+ \marg{mypackage-}\comment{file prefix}
+ \marg{.ldf}\comment{file suffix}
+ \marg{\gls{input} mypackage-\gls{CurrentTrackedTag}.ldf}\comment{file found}
+ \marg{\comment{file not found}
+ \cmd{PackageWarning}\marg{mypackage}\marg{No support for language
+ `\cmd{ThisDialect}'}\comment{}
+ }\comment{}
+ }\comment{}
+}
+\marg{\comment{no languages detected so use defaults}
+}
+\end{codebox}
+With version 1.3 onwards, this can be written more concisely as:
+\begin{codebox}
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{ThisDialect}}\comment{}
+ \marg{\comment{try to load the language file for this dialect}
+ \gls{TrackLangRequireDialect}\marg{mypackage}\marg{\cmd{ThisDialect}}\comment{}
+ }\comment{}
+}
+\marg{\comment{no languages detected so use defaults}
+}
+\end{codebox}
+which additionally enables the \sty{tracklang} version 1.3 commands described below,
+such as \gls{TrackLangRequireResource}.
+
+\plabel{pg.britishfilesearch}%
+If, for example, \cmd{ThisDialect} is \opt{british}, then the file search will
+be in the order:
+\begin{enumerate}
+\item \ldf{mypackage}{en-GB} (language tag)
+\item \ldf{mypackage}{british} (dialect label)
+
+\item \ldf{mypackage}{en-Latn-GB} (\idx{639-1} language code,
+\idx{script}, \idx{region})
+\item \ldf{mypackage}{en-GB} (\idx{639-1} language code,
+\idx{region})
+\item \ldf{mypackage}{en-Latn} (\idx{639-1} language code,
+\idx{script})
+\item \ldf{mypackage}{en} (\idx{639-1} language code)
+
+\item \ldf{mypackage}{eng-Latn-GB} (\idx{639-2} language
+code, \idx{script}, \idx{region})
+\item \ldf{mypackage}{eng-GB} (\idx{639-2} language code,
+\idx{region})
+\item \ldf{mypackage}{eng-Latn} (\idx{639-2} language code,
+\idx{script})
+\item \ldf{mypackage}{eng} (\idx{639-2} language code)
+
+\item \ldf{mypackage}{GB} (\idx{region})
+\item \ldf{mypackage}{english} (language label)
+\end{enumerate}
+
+If, for example, \cmd{ThisDialect} is \opt{naustrian}, then the file search will
+be in the order:
+\begin{enumerate}
+\item \ldf{mypackage}{de-AT-1996} (language tag)
+\item \ldf{mypackage}{naustrian} (dialect label)
+
+\item \ldf{mypackage}{de-Latn-AT} (\idx{639-1} language code,
+\idx{script}, \idx{region})
+\item \ldf{mypackage}{de-AT} (\idx{639-1} language code,
+\idx{region})
+\item \ldf{mypackage}{de-Latn} (\idx{639-1} language code,
+\idx{script})
+\item \ldf{mypackage}{de} (\idx{639-1} language code)
+
+\item \ldf{mypackage}{deu-Latn-AT} (\idx{639-2} language
+code, \idx{script}, \idx{region})
+\item \ldf{mypackage}{deu-AT} (\idx{639-2} language code,
+\idx{region})
+\item \ldf{mypackage}{deu-Latn} (\idx{639-2} language code,
+\idx{script})
+\item \ldf{mypackage}{deu} (\idx{639-2} language code)
+
+\item \ldf{mypackage}{AT} (\idx{region})
+
+\item \ldf{mypackage}{de-1996} (\idx{639-1} language code,
+\idx{variant})
+\item \ldf{mypackage}{deu-1996} (\idx{639-2} language code,
+\idx{variant})
+
+\item \ldf{mypackage}{german} (language label)
+\end{enumerate}
+
+If, for example, \cmd{ThisDialect} is \opt{francais}, then the file search will
+be in the order:
+\begin{enumerate}
+\item \ldf{mypackage}{fr} (language tag)
+\item \ldf{mypackage}{francais} (dialect label)
+\item \ldf{mypackage}{fr-Latn} (\idx{639-1} language code,
+\idx{script})
+\item \ldf{mypackage}{fr} (\idx{639-1} language code)
+\item \ldf{mypackage}{fra-Latn} (\idx{639-2} language code,
+\idx{script})
+\item \ldf{mypackage}{fra} (\idx{639-2} language code)
+\item \ldf{mypackage}{french} (language)
+\end{enumerate}
+This is because the predefined \opt{francais} option has no
+region assigned to it. Be careful if the dialect label is the actual
+root language. For example, if \cmd{ThisDialect} is \opt{french},
+then the file search will be in the order:
+\begin{enumerate}
+\item \ldf{mypackage}{fr} (language tag)
+\item \ldf{mypackage}{french} (dialect label)
+\item \ldf{mypackage}{fr-Latn} (\idx{639-1} language code,
+\idx{script})
+\item \ldf{mypackage}{fr} (\idx{639-1} language code)
+\item \ldf{mypackage}{fra-Latn} (\idx{639-2} language code,
+\idx{script})
+\item \ldf{mypackage}{fra} (\idx{639-2} language code)
+\item \ldf{mypackage}{french} (language)
+\end{enumerate}
+Note that the last try will always fail in this case since if the
+file exists, it will be found on the second try.
+
+If the dialect label is identical to the root language label then it
+means that all associated information is the default
+for that language. For example, in the above case of \opt{french},
+the script is \opt{Latn} and the region is unspecified. The root
+language label can therefore be used as the fallback in the event of
+no other match but for the specific case where the dialect is
+identical to the root language then all unnecessary file name checks
+can be skipped.
+
+If you're only providing support for the root languages (pre v1.3):
+\begin{codebox}
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedLanguage}\marg{\cmd{ThisLanguage}}\comment{}
+ \marg{\comment{try to load the language file for this root language}
+ \gls{IfTrackedLanguageFileExists}\marg{\cmd{ThisLanguage}}\comment{}
+ \marg{mypackage-}\comment{file prefix}
+ \marg{.ldf}\comment{file suffix}
+ \marg{\gls{input} mypackage-\gls{CurrentTrackedTag}.ldf}\comment{file found}
+ \marg{\comment{file not found}
+ \cmd{PackageWarning}\marg{mypackage}\marg{No support for language
+ `\cmd{ThisLanguage}'}\comment{}
+ }\comment{}
+ }\comment{}
+}
+\marg{\comment{no languages detected so use defaults}
+}
+\end{codebox}
+With version 1.3 onwards, this can be written more concisely as:
+\begin{codebox}
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedLanguage}\marg{\cmd{ThisLanguage}}\comment{}
+ \marg{\comment{try to load the language file for this root language}
+ \gls{TrackLangRequireDialect}\marg{mypackage}\marg{\cmd{ThisLanguage}}\comment{}
+ }\comment{}
+}
+\marg{\comment{no languages detected so use defaults}
+}
+\end{codebox}
+which additionally enables the commands described below.
+Note that in this case, if more than one dialect for the same
+language has been tracked, only the hooks for the last dialect for
+that language will be adjusted, so it's usually best to iterate over
+the dialects.
+
+The following \cmd{TrackLang\ldots Resource\ldots} commands may
+only be used in resource files that are loaded using
+\gls{TrackLangRequireDialect}. An error will occur if the file is
+input through some other method.
+
+Within the resource file \localemetafile{pkgname},
+you can identify the file using (new to version 1.3):
+\cmddef{TrackLangProvidesResource}
+where \meta{tag} is the locale identifier.
+
+If \gls{ProvidesFile} is defined (through the \LaTeX\ kernel) this is
+used, otherwise a simplified generic alternative is used that's
+suitable for other \TeX\ formats.
+
+The resource file can load another resource file
+\localemetametafile{pkgname}{tag},
+using (new to version 1.3):
+\cmddef{TrackLangRequireResource}
+For example, the dialect file \ldf{foo}{en-GB} might need to
+load the root language resource file \ldf{foo}{english}:
+\begin{codebox}
+\comment{(In file \ldf{foo}{en-GB})}
+\comment{Declare this regional file:}
+\gls{TrackLangProvidesResource}\marg{en-GB}
+\comment{load root language file \ldf{foo}{english}:}
+\gls{TrackLangRequireResource}\marg{english}
+\end{codebox}
+If \ldf{foo}{english} is also identified with
+\gls{TrackLangProvidesResource}, this will ensure that it's only
+loaded once.
+
+If you require the resource file and want to perform
+\meta{code1} if it's loaded at this point or \meta{code2} if it's
+already been loaded then you can use:
+\cmddef{TrackLangRequireResourceOrDo}
+
+If you want to load a resource file if it exists (without an
+error if it doesn't exist), then you can use
+\cmddef{TrackLangRequestResource}
+If the file doesn't exist, \meta{not found code} is done.
+
+\begin{important}
+Note that these \cmd{\ldots Resource\ldots} commands are only
+permitted within the resource files. They are internally enabled
+through \gls{TrackLangRequireDialect}.
+\end{important}
+
+The above restriction on the resource files loaded through
+\gls{TrackLangRequireDialect}, and the fact that it internally uses
+\gls{IfTrackedLanguageFileExists}, means that commands like
+\gls{CurrentTrackedLanguage} or \gls{CurrentTrackedDialect} may be
+used in those files. This means that the name of the captions hook
+can be obtained through them. (Remember that the file
+\ldf{foo}{en-GB} might have been loaded with, say, the
+\opt{british} dialect or with the synonymous \opt{UKenglish}
+dialect or with a dialect label that doesn't have a corresponding
+caption hook, such as \optfmt{enGBLatn}.)
+
+The \sty{polyglossia} package has language caption hooks in the form
+\tklcaptions{\meta{language}} (where \meta{language} is the root language
+label) whereas \sty{babel} has dialect captions hooks
+in the form \gls{captionsdialect} (where \meta{dialect} is the
+dialect label). This leads to a rather
+cumbersome set of conditionals:
+\begin{compactcodebox}
+\cmd{ifcsundef}\marg{captions\gls{CurrentTrackedLanguage}}
+\marg{\comment{}
+ \cmd{ifcsundef}\marg{captions\gls{CurrentTrackedDialect}}\comment{}
+ \marg{}\comment{}
+ \marg{\comment{}
+ \cmd{csgappto}\marg{captions\gls{CurrentTrackedDialect}}\marg{\comment{}
+ \comment{code to append to hook}
+ }\comment{}
+ }\comment{}
+}\comment{}
+\marg{\comment{}
+ \cmd{csgappto}\marg{captions\gls{CurrentTrackedLanguage}}\marg{\comment{}
+ \comment{code to append to hook}
+ }\comment{}
+}
+\comment{do code now to initialise}
+\end{compactcodebox}
+Note that the above has been simplified through the use of
+\sty{etoolbox} commands, which isn't suitable for generic use.
+It also doesn't query the mapping from \sty{tracklang}['s] dialect
+label to the closest matching \sty{babel} dialect label.
+
+Instead, \sty{tracklang} provides a command
+to perform this set of conditionals using generic code:
+\cmddef{TrackLangAddToHook}
+where \meta{code} is the code to append to the \meta{type} hook.
+This always performs \meta{code} after testing for the hook in case
+the hook is undefined or has already been called (for example, \sty{ngerman} uses
+\tklcaptions{ngerman} when the package is loaded, not at the start of
+the document).
+
+Note that this command is enabled through
+\gls{TrackLangRequireDialect} so should only be used inside resource
+files.
+
+Since \optfmt{captions} is a commonly used hook type, there's
+a~shortcut command provided:
+\cmddef{TrackLangAddToCaptions}
+This is equivalent to
+\begin{compactcodebox}
+\gls{TrackLangAddToHook}\margm{code}\marg{captions}
+\end{compactcodebox}
+
+There may be some hooks, such as \gls{datedialect}, that need
+redefining rather than appending to, so there's an
+analogous command:
+\cmddef{TrackLangRedefHook}
+which will redefined the hook to do \meta{code}.
+
+Note that no expansion is performed on \meta{code} when appending or
+redefining a hook.
+
+\section{Examples}
+\label{sec:examples}
+
+The examples in this section illustrate the above commands.
+
+\subsection{\filefmt{animals.sty}}
+\label{sec:animals}
+
+This example is for a trivial package called \file{animals.sty}
+that defines three textual commands: \cmd{catname}, \cmd{dogname}
+and \cmd{ladybirdname}. The default values are: \qt{cat}, \qt{dog} and
+\qt{bishy-barney-bee}.\footnote{Thass Broad Norfolk, my bewties
+\code{:-P}}
+The supported languages are defined in files
+\localefile{animals}.
+
+Here's the code for \file{animals.sty}:
+\begin{codebox}
+\comment{Example package animals.sty}
+\cmd{NeedsTeXFormat}\marg{LaTeX2e}
+\cmd{ProvidesPackage}\marg{animals}
+\codepar
+\cmd{RequirePackage}\marg{tracklang}[2019/11/30]\comment{v1.4}
+\codepar
+\comment{Any undeclared options are language settings:}
+\codepar
+\cmd{DeclareOption}*\marg{\comment{}
+ \gls{TrackIfKnownLanguage}\marg{\cmd{CurrentOption}}\comment{}
+ \marg{\comment{successful}
+ \cmd{PackageInfo}\marg{animals}\marg{Tracking language `\cmd{CurrentOption}'}\comment{}
+ }\comment{}
+ \marg{\comment{failed}
+ \cmd{PackageError}\marg{animals}\comment{}
+ \marg{Unknown language specification `\cmd{CurrentOption}'}\comment{}
+ \marg{You need to supply either a known dialect label
+ or a valid language tag}\comment{}
+ }\comment{}
+}
+\codepar
+\cmd{ProcessOptions}
+\codepar
+\comment{Default definitions}
+\cmd{newcommand}\cmd{catname}\marg{cat}
+\cmd{newcommand}\cmd{dogname}\marg{dog}
+\cmd{newcommand}\cmd{ladybirdname}\marg{bishy-barney-bee}
+\codepar
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{this@dialect}}\marg{\comment{}
+ \gls{TrackLangRequireDialect}\marg{animals}\marg{\cmd{this@dialect}}\comment{}
+ }\comment{}
+}
+\marg{\comment{no tracked languages, default already set up}
+}
+\codepar
+\cmd{endinput}
+\end{codebox}
+Here's a Plain \TeX\ version that picks up the language from the
+locale environment variable:
+\begin{codebox}
+\gls{input} tracklang
+\codepar
+\gls{TrackLangFromEnv}
+\codepar
+\comment{Default definitions}
+\cmd{def}\cmd{catname}\marg{cat}
+\cmd{def}\cmd{dogname}\marg{dog}
+\cmd{def}\cmd{ladybirdname}\marg{bishy-barney-bee}
+\codepar
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{thisdialect}}\marg{\comment{}
+ \gls{TrackLangRequireDialect}\marg{animals}\marg{\cmd{thisdialect}}\comment{}
+ }\comment{}
+}
+\marg{\comment{no tracked languages, default already set up}
+}
+\end{codebox}
+In the event that a user or supplementary package for some
+reason wants to load a resource
+file for a language that hasn't been tracked, it might be worth
+providing a command for this purpose:
+\begin{codebox}
+\cmd{newcommand}*\marg{\cmd{RequireAnimalsDialect}}[1]\marg{\comment{}
+ \gls{TrackLangRequireDialect}\marg{animals}\marg{\#1}\comment{}
+}
+\end{codebox}
+The loop can then be changed to:
+\begin{codebox}
+\gls{ForEachTrackedDialect}\marg{\cmd{this@dialect}}\marg{\comment{}
+ \cmd{RequireAnimalsDialect}\cmd{this@dialect}
+}\comment{}
+\end{codebox}
+
+The \ldf{animals}{english} file valid for both the Plain \TeX\
+and \LaTeX\ formats contains:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{english}
+\codepar
+\cmd{def}\cmd{englishanimals}\marg{\comment{}
+ \cmd{def}\cmd{catname}\marg{cat}\comment{}
+ \cmd{def}\cmd{dogname}\marg{dog}\comment{}
+ \cmd{def}\cmd{ladybirdname}\marg{bishy-barney-bee}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{englishanimals}}
+\end{codebox}
+The \ldf{animals}{en-GB} file contains:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{en-GB}
+\gls{TrackLangRequireResource}\marg{english}
+\codepar
+\cmd{def}\cmd{enGBanimals}\marg{\comment{}
+ \cmd{englishanimals}
+ \cmd{def}\cmd{ladybirdname}\marg{ladybird}\comment{}
+}
+\gls{TrackLangAddToCaptions}\marg{\cmd{enGBanimals}}
+\end{codebox}
+The \ldf{animals}{en-US} file contains:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{en-US}
+\gls{TrackLangRequireResource}\marg{english}
+\codepar
+\cmd{def}\cmd{enUSanimals}\marg{\comment{}
+ \cmd{englishanimals}
+ \cmd{def}\cmd{ladybirdname}\marg{ladybug}\comment{}
+}
+\gls{TrackLangAddToCaptions}\marg{\cmd{enUSanimals}}
+\end{codebox}
+Here's a German version in the file \ldf{animals}{german}:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{german}
+\codepar
+\cmd{def}\cmd{germananimals}\marg{\comment{}
+ \cmd{def}\cmd{catname}\marg{Katze}\comment{}
+ \cmd{def}\cmd{dogname}\marg{Hund}\comment{}
+ \cmd{def}\cmd{ladybirdname}\marg{Marienk\cmd{"}afer}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{germananimals}}
+\end{codebox}
+
+This means that if \sty{babel} or \sty{polyglossia} are loaded, the
+redefinitions are automatically performed whenever the language is
+changed, but if there's no caption mechanism the user can switch
+the fixed names using the \cmd{\ldots animals} commands.
+
+Here's an example \LaTeX\ document that doesn't have any caption
+hooks:
+\begin{codebox}
+\cmd{documentclass}[\opt{english},\opt{german}]\marg{article}
+\codepar
+\cmd{usepackage}\marg{animals}
+\codepar
+\cbeg{document}
+\cmd{englishanimals}
+\codepar
+\cmd{catname}.
+\cmd{dogname}.
+\cmd{ladybirdname}.
+\codepar
+\cmd{germananimals}
+\codepar
+\cmd{catname}.
+\cmd{dogname}.
+\cmd{ladybirdname}.
+\cend{document}
+\end{codebox}
+Here's a \sty{babel} example document:
+\begin{codebox}
+\cmd{documentclass}[\opt{american},\opt{german},\opt{british}]\marg{article}
+\codepar
+\cmd{usepackage}\marg{babel}
+\cmd{usepackage}\marg{animals}
+\codepar
+\cbeg{document}
+\cmd{selectlanguage}\marg{american}
+\codepar
+\cmd{catname}.
+\cmd{dogname}.
+\cmd{ladybirdname}.
+\codepar
+\cmd{selectlanguage}\marg{german}
+\codepar
+\cmd{catname}.
+\cmd{dogname}.
+\cmd{ladybirdname}.
+\codepar
+\cmd{selectlanguage}\marg{british}
+\codepar
+\cmd{catname}.
+\cmd{dogname}.
+\cmd{ladybirdname}.
+\cend{document}
+\end{codebox}
+
+There is some redundancy with the above resource files. Consider the
+\sty{babel} example above. The \opt{american} dialect is the
+first option, so in that case \ldf{animals}{en-US} is loaded
+followed by \ldf{animals}{english}. This means that the
+\tklcaptions{american} hook now includes
+\begin{codebox}
+\cmd{englishanimals}
+\cmd{enUSanimals}
+\end{codebox}
+Since \cmd{enUSanimals} includes \cmd{englishanimals}, there is
+redundant code. However, when the \opt{british} dialect is
+processed, this loads the file \ldf{animals}{en-GB} but not
+the file \ldf{animals}{english} (since it's already been loaded). This
+means that \tklcaptions{british} contains \cmd{enGBanimals} but not
+\cmd{englishanimals}.
+
+If this redundancy is an issue (for example, there are so many
+redefinitions needed that it significantly slows the document build
+process), then it can be addressed with the following modifications.
+The \ldf{animals}{en-GB} file is now:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{en-GB}
+\codepar
+\cmd{def}\cmd{enGBanimals}\marg{\comment{}
+ \cmd{englishanimals}
+ \cmd{def}\cmd{ladybirdname}\marg{ladybird}\comment{}
+}
+\codepar
+\gls{TrackLangRequireResourceOrDo}\marg{english}\comment{}
+\marg{
+ \gls{TrackLangAddToCaptions}\marg{\comment{}
+ \cmd{def}\cmd{ladybirdname}\marg{ladybird}\comment{}
+ }\comment{}
+}
+\marg{
+ \gls{TrackLangAddToCaptions}\marg{\cmd{enGBanimals}}
+}
+\end{codebox}
+The \ldf{animals}{en-US} file is now:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{en-US}
+\codepar
+\cmd{providecommand}*\marg{\cmd{enUSanimals}}\marg{\comment{}
+ \cmd{englishanimals}
+ \cmd{renewcommand}*\marg{\cmd{ladybirdname}}\marg{ladybug}\comment{}
+}
+\codepar
+\gls{TrackLangRequireResourceOrDo}\marg{english}
+\marg{
+ \gls{TrackLangAddToCaptions}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{ladybirdname}}\marg{ladybird}\comment{}
+ }\comment{}
+}
+\marg{
+ \gls{TrackLangAddToCaptions}\marg{\cmd{enUSanimals}}
+}
+\end{codebox}
+This means that the document that has the dialects listed in the
+order \opt{american}, \opt{british} now has
+\begin{codebox}
+\cmd{englishanimals}
+\cmd{def}\cmd{ladybirdname}\marg{ladybird}
+\end{codebox}
+in the \tklcaptions{british} hook and just \cmd{enUSanimals} in the
+\tklcaptions{american} hook, which has removed most of the redundancy.
+
+Note that \sty{polyglossia} has a \tklcaptions{english} hook but not
+\tklcaptions{american} or \tklcaptions{british}, so this code doesn't
+allow for switching between variants of the same language with
+\sty{polyglossia}.
+
+\subsection{\filefmt{regions.sty}}
+\label{sec:regions}
+
+\glsadd{file.regions.sty}%
+\phyperref{Earlier}{pg.britishfilesearch}, I~mentioned the search order for
+\gls{IfTrackedLanguageFileExists} where if, for example, the dialect
+is \opt{british}, the file search (v1.4+) will be:
+\begin{enumerate}
+\item \ldf{mypackage}{en-GB} (language tag)
+\item \ldf{mypackage}{british} (dialect label)
+
+\item \ldf{mypackage}{en-Latn-GB} (\idx{639-1} language code,
+\idx{script}, \idx{region})
+\item \ldf{mypackage}{en-GB} (\idx{639-1} language code,
+\idx{region})
+\item \ldf{mypackage}{en-Latn} (\idx{639-1} language code,
+\idx{script})
+\item \ldf{mypackage}{en} (\idx{639-1} language code)
+
+\item \ldf{mypackage}{eng-Latn-GB} (\idx{639-2} language
+code, \idx{script}, \idx{region})
+\item \ldf{mypackage}{eng-GB} (\idx{639-2} language code,
+\idx{region})
+\item \ldf{mypackage}{eng-Latn} (\idx{639-2} language code,
+\idx{script})
+\item \ldf{mypackage}{eng} (\idx{639-2} language code)
+
+\item \ldf{mypackage}{GB} (\idx{region})
+\item \ldf{mypackage}{english} (language label)
+\end{enumerate}
+You may have wondered why
+\ldf{mypackage}{GB} is included in the search given that some
+countries have multiple official languages, which means that the country code on its
+own may not indicate the language.
+
+The reason for including just the country code as the \meta{localeid} in the
+file search is to allow for region rather than language dependent
+settings. For example, suppose I~want to write a package that needs
+to know whether to use imperial or metric measurements in the
+document, but I also want to provide multilingual support. The
+language alone won't tell me whether to use imperial or metric (for
+example, the US uses imperial and the UK uses metric for most
+product attributes). I could provide \ext+{ldf} files for every
+language and region combination, but this would result in a lot
+redundancy.
+
+\gls{TrackLangRequireDialect} has an optional argument for adjusting
+the way the resource files are loaded. Suppose I have
+\localefile{regions} resource files, then
+\begin{codebox}
+\gls{TrackLangRequireDialect}\marg{regions}\marg{\cmd{this@dialect}}
+\end{codebox}
+loads the resource file for the dialect given by \cmd{this@dialect}
+using:
+\begin{compactcodebox}
+\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}
+\end{compactcodebox}
+I can use the optional argument to also load the resource file for the
+root language as well:
+\begin{codebox}%
+\comment{custom file loader for regions.sty}
+\cmd{newcommand}*\marg{\cmd{RequireRegionsDialect}}[1]\marg{\comment{}
+ \gls{TrackLangRequireDialect}
+ \oarg{\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}\comment{}
+ \gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedLanguage}}\comment{}
+ }\comment{}
+ \marg{regions}\marg{\#1}\comment{}
+}
+\end{codebox}
+Now the dialect \opt{british} can load both
+\ldf{regions}{GB} and \ldf{regions}{english}.
+
+The example package (\file{regions.sty}) below illustrates this.
+\begin{codebox}
+\comment{Example package regions.sty}
+\cmd{NeedsTeXFormat}\marg{LaTeX2e}
+\cmd{ProvidesPackage}\marg{regions}
+\codepar
+\gls{RequirePackage}\marg{tracklang}[2016/10/07]\comment{v1.3+}
+\codepar
+\cmd{DeclareOption}*\marg{\gls{TrackLanguageTag}\marg{\cmd{CurrentOption}}}
+\cmd{ProcessOptions}
+\codepar
+\cmd{newcommand}*\marg{\cmd{weightunit}}\marg{kg}
+\cmd{newcommand}*\marg{\cmd{lengthunit}}\marg{mm}
+\cmd{newcommand}*\marg{\cmd{currencyunit}}\marg{EUR}
+\codepar
+\cmd{newcommand}*\marg{\cmd{unitname}}\marg{units}
+\codepar
+\cmd{newcommand}*\marg{\cmd{RequireRegionsDialect}}[1]\marg{\comment{}
+ \gls{TrackLangRequireDialect}
+ \oarg{\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}\comment{}
+ \gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedLanguage}}\comment{}
+ }\comment{}
+ \marg{regions}\marg{\#1}\comment{}
+}
+\codepar
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{this@dialect}}\marg{\comment{}
+ \cmd{RequireRegionsDialect}\cmd{this@dialect}
+ }\comment{}
+}
+\marg{\comment{no tracked languages, default already set up}
+}
+\codepar
+\cmd{endinput}
+\end{codebox}
+There are separate \ext{ldf} files for region and language.
+First are the regions.
+
+\begin{itemize}
+\item \ldf{regions}{BE} (Belgium):
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{BE}
+\codepar
+\cmd{providecommand}*\marg{\cmd{BEunits}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{weightunit}}\marg{kg}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{lengthunit}}\marg{mm}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{currencyunit}}\marg{EUR}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{BEunits}}
+\end{codebox}
+
+\item \ldf{regions}{CA} (Canada):
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{CA}
+\codepar
+\cmd{providecommand}*\marg{\cmd{CAunits}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{weightunit}}\marg{kg}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{lengthunit}}\marg{mm}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{currencyunit}}\marg{CAD}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{CAunits}}
+\end{codebox}
+
+\item \ldf{regions}{GB} (Great Britain):
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{GB}
+\codepar
+\cmd{providecommand}*\marg{\cmd{GBunits}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{weightunit}}\marg{kg}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{lengthunit}}\marg{mm}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{currencyunit}}\marg{GBP}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{GBunits}}
+\end{codebox}
+
+\item \ldf{regions}{US} (USA):
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{US}
+\codepar
+\cmd{providecommand}*\marg{\cmd{USunits}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{weightunit}}\marg{lb}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{lengthunit}}\marg{in}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{currencyunit}}\marg{USD}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{USunits}}
+\end{codebox}
+\end{itemize}
+Now the language files:
+
+\begin{itemize}
+\item \ldf{regions}{dutch}:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{dutch}
+\codepar
+\cmd{providecommand}*\marg{\cmd{dutchnames}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{unitname}}\marg{meeteenheden}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{dutchnames}}
+\end{codebox}
+
+\item \ldf{regions}{english}:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{english}
+\codepar
+\cmd{providecommand}*\marg{\cmd{englishnames}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{unitname}}\marg{units}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{englishnames}}
+\end{codebox}
+
+\item \ldf{regions}{french}:
+\begin{codebox}
+\cmd{TrackLangProvidesResource}\marg{french}
+\codepar
+\cmd{providecommand}*\marg{\cmd{frenchnames}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{unitname}}\marg{unit\cmd{'}es}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{frenchnames}}
+\end{codebox}
+
+\item \ldf{regions}{german}:
+\begin{codebox}
+\gls{TrackLangProvidesResource}\marg{french}
+\codepar
+\cmd{providecommand}*\marg{\cmd{germannames}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{unitname}}\marg{Ma\cmd{ss} einheiten}\comment{}
+}
+\codepar
+\gls{TrackLangAddToCaptions}\marg{\cmd{germannames}}
+\end{codebox}
+\end{itemize}
+
+Here's an example document that uses this package:
+\begin{codebox}
+\cmd{documentclass}[\opt{canadien}]\marg{article}
+\codepar
+\cmd{usepackage}\marg{regions}
+\codepar
+\cbeg{document}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\cend{document}
+\end{codebox}
+
+This works because the \meta{localeid} search looks for the
+country code before the root language label. However, this will fail if
+the dialect label is the same as a root language label that has an
+associated territory, marked with \fnregion\ in
+\tableref{tab:rootlangopts}, as then it will be picked up before the
+country code.
+
+In the above example,
+\ldf{regions}{CA} is matched rather than
+\ldf{regions}{french}, so \ldf{regions}{CA} is loaded by
+\begin{compactcodebox}
+\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}
+\end{compactcodebox}
+After this, the language file \ldf{regions}{french} is then loaded:
+\begin{compactcodebox}
+\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedLanguage}}
+\end{compactcodebox}
+
+This assumes that there's a country code \ext{ldf} file
+available. This example needs a little modification to use default
+units in case the region is missing:
+\begin{codebox}
+\comment{Modified example package regions.sty}
+\cmd{NeedsTeXFormat}\marg{LaTeX2e}
+\cmd{ProvidesPackage}\marg{regions}
+\codepar
+\comment{Pass all options to \file{tracklang.sty}:}
+\cmd{DeclareOption}*\marg{\cmd{PassOptionsToPackage}\marg{\cmd{CurrentOption}}\marg{tracklang}}
+\cmd{ProcessOptions}
+\codepar
+\gls{RequirePackage}\marg{tracklang}
+\codepar
+\cmd{newcommand}*\marg{\cmd{weightunit}}\marg{kg}
+\cmd{newcommand}*\marg{\cmd{lengthunit}}\marg{mm}
+\cmd{newcommand}*\marg{\cmd{currencyunit}}\marg{EUR}
+\codepar
+\cmd{newcommand}*\marg{\cmd{unitname}}\marg{units}
+\codepar
+\cmd{newcommand}*\marg{\cmd{defaultunits}}\marg{\comment{}
+ \cmd{renewcommand}*\marg{\cmd{weightunit}}\marg{kg}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{lengthunit}}\marg{mm}\comment{}
+ \cmd{renewcommand}*\marg{\cmd{currencyunit}}\marg{EUR}\comment{}
+}
+\codepar
+\cmd{newcommand}*\marg{\cmd{RequireRegionsDialect}}[1]\marg{\comment{}
+ \gls{TrackLangRequireDialect}
+ \oarg{\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}\comment{}
+ \cmd{ifx}\gls{CurrentTrackedTag}\gls{CurrentTrackedLanguage}
+ \gls{TrackLangAddToCaptions}\marg{\cmd{defaultunits}}\comment{}
+ \cmd{else}
+ \gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedLanguage}}\comment{}
+ \cmd{fi}
+ }\comment{}
+ \marg{regions}\marg{\#1}\comment{}
+}
+\codepar
+\gls{AnyTrackedLanguages}
+\marg{\comment{}
+ \gls{ForEachTrackedDialect}\marg{\cmd{this@dialect}}{\comment{}
+ \cmd{RequireRegionsDialect}\cmd{this@dialect}
+ }\comment{}
+}
+\marg{\comment{no tracked languages, default already set up}
+}
+\codepar
+\cmd{endinput}
+\end{codebox}
+Note that we still have a problem for dialect labels that are
+identical to root language labels with an associated territory (such
+as \opt{manx}). This case can be checked with the following
+adjustment:
+\begin{codebox}
+\cmd{newcommand}*\marg{\cmd{RequireRegionsDialect}}[1]\marg{\comment{}
+ \gls{TrackLangRequireDialect}
+ \oarg{\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}\comment{}
+ \cmd{ifx}\gls{CurrentTrackedTag}\gls{CurrentTrackedLanguage}
+ \cmd{ifx}\gls{CurrentTrackedRegion}\cmd{empty}
+ \gls{TrackLangAddToCaptions}\marg{\cmd{defaultunits}}\comment{}
+ \cmd{else}
+ \gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedRegion}}\comment{}
+ \cmd{fi}
+ \cmd{else}
+ \gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedLanguage}}\comment{}
+ \cmd{fi}
+ }\comment{}
+ \marg{regions}\marg{\#1}\comment{}
+}
+\end{codebox}
+In the case where both the dialect and root language label are
+\opt{manx} with the resource files \ldf{regions}{manx}
+and \ldf{regions}{IM}, then \gls{CurrentTrackedTag} will be
+\opt{manx} (the dialect label) so \ldf{regions}{manx} will
+be loaded with:
+\begin{compactcodebox}
+\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedTag}}
+\end{compactcodebox}
+In this case \gls{CurrentTrackedRegion} is \code{IM} (that is, it's
+not empty) so then \ldf{regions}{IM} will be loaded with:
+\begin{compactcodebox}
+\gls{TrackLangRequireResource}\marg{\gls{CurrentTrackedRegion}}
+\end{compactcodebox}
+
+Here's another document that sets up dialects with
+\sty{tracklang} labels that aren't recognised by \sty{babel}.
+This means that there's no corresponding \gls{captionsdialect} hook
+for either the dialect label or the root language label,
+so mappings need to be defined from the \sty{tracklang} dialect
+label to the matching \sty{babel} dialect label.
+
+\begin{codebox}
+\cmd{documentclass}\marg{article}
+\codepar
+\cmd{usepackage}\marg{tracklang}
+\codepar
+\gls{TrackLanguageTag}\marg{de-US-1996}
+\gls{SetTrackedDialectLabelMap}\marg{\gls{TrackLangLastTrackedDialect}}\marg{ngerman}
+\codepar
+\gls{TrackLanguageTag}\marg{en-MT}
+\gls{SetTrackedDialectLabelMap}\marg{\gls{TrackLangLastTrackedDialect}}\marg{UKenglish}
+\codepar
+\cmd{usepackage}[main=ngerman,UKenglish]\marg{babel}
+\cmd{usepackage}\marg{regions}
+\codepar
+\cbeg{document}
+\gls{selectlanguage}\marg{ngerman}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\gls{selectlanguage}\marg{UKenglish}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\cend{document}
+\end{codebox}
+This produces:
+\begin{resultbox}
+Ma\ss einheiten: lb, in, USD.
+
+units: kg, mm, EUR.
+\end{resultbox}
+Compare this with:
+\begin{codebox}
+\cmd{documentclass}\marg{article}
+\codepar
+\cmd{usepackage}[main=ngerman,UKenglish]\marg{babel}
+\cmd{usepackage}\marg{regions}
+\codepar
+\cbeg{document}
+\gls{selectlanguage}\marg{ngerman}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\gls{selectlanguage}\marg{UKenglish}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\cend{document}
+\end{codebox}
+which produces:
+\begin{resultbox}
+Ma\ss einheiten: kg, mm, EUR.
+
+units: kg, mm, GBP.
+\end{resultbox}
+
+Note that these mappings aren't needed if \sty{babel}
+is loaded with the root language labels instead. For example:
+\begin{codebox}
+\cmd{documentclass}\marg{article}
+\codepar
+\cmd{usepackage}\marg{tracklang}
+\codepar
+\gls{TrackLanguageTag}\marg{de-US-1996}
+\gls{SetTrackedDialectLabelMap}\marg{\gls{TrackLangLastTrackedDialect}}\marg{ngerman}
+\codepar
+\gls{TrackLanguageTag}\marg{en-MT}
+\codepar
+\cmd{usepackage}[main=ngerman,english]\marg{babel}
+\cmd{usepackage}\marg{regions}
+\codepar
+\cbeg{document}
+\gls{selectlanguage}\marg{ngerman}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\gls{selectlanguage}\marg{english}
+\codepar
+\cmd{unitname}: \cmd{weightunit}, \cmd{lengthunit}, \cmd{currencyunit}.
+\codepar
+\cend{document}
+\end{codebox}
+No mapping is required for the \opt{en-MT} locale as
+it can pick up \tklcaptions{english} when \gls{TrackLangAddToHook}
+(used by \gls{TrackLangAddToCaptions})
+queries the root language label after failing to find the
+language hook from the dialect label.
+
+Some of the predefined \sty{tracklang} dialects come with
+a mapping to the closest matching \sty{babel} dialect label.
+For example, the option \opt{ngermanDE} listed in
+\tableref{tab:nonisoopts} automatically provides a mapping
+to \opt{ngerman}. Since a \sty{tracklang} dialect label
+can only map to one \sty{babel} label, this can be problematic
+for synonymous labels such as
+\opt{british}\slash\opt{UKenglish} or
+\opt{american}\slash\opt{USenglish}. The default mappings used
+by \sty{tracklang} are shown in \tableref{tab:nonisoopts}.
+
+\chapter{Adding Support for Language Tracking}
+\label{sec:langsty}
+
+If you are writing a package that \emph{sets up} the document languages (rather
+than a package that provides multilingual support if the user has
+already loaded a language package) then you can load \sty{tracklang}
+and use the commands below to help other packages track your
+provided languages. (See also:
+\dickimawhref{latex/tracklang/langpkg.shtml}{Integrating
+\filefmt{tracklang.tex} into Language Packages}.)
+
+The \sty{tracklang} package can be loaded using
+\begin{codebox}
+\gls{input} tracklang
+\end{codebox}
+or (\LaTeX\ only)
+\begin{codebox}
+\gls{RequirePackage}\marg{tracklang}
+\end{codebox}
+
+When using \LaTeX, there's a difference between the two.
+The first case prevents \sty{tracklang} from picking up
+the document class options but skips the check for known
+language packages. This check is redundant since your package is
+the language package, so you need to decide whether or
+not to allow the user to set up the localisation information
+through the document class options.
+
+There's a hook that, if defined, is performed by
+\file{tracklang.sty} after the package options have been loaded but
+before known language packages are checked:
+\cmddef{@tracklang@prelangpkgcheck@hook}
+
+If you prefer \gls{RequirePackage} over \gls{input} but you want to make
+\file{tracklang.sty} skip the check for known
+language packages then (as from v1.3.8) define the pre-language
+package check hook as follows:
+\begin{codebox}
+\cmd{providecommand}\gls{@tracklang@prelangpkgcheck@hook}\marg{\cmd{endinput}}
+\gls{RequirePackage}\marg{tracklang}[2019/10/06]\comment{v1.3.8+}
+\end{codebox}
+This will still pick up languages supplied through the
+document class options.
+
+If you just use \gls{input}, there's a test at the start of
+\file{tracklang.tex} to determine if it's already been loaded, so
+you don't need to worry if the document has already input it.
+
+To integrate \sty{tracklang} into your language package, you need
+to consider the following steps:
+\begin{enumerate}
+\item Does \sty{tracklang} define your supported \idxn{15924} language
+scripts in the \file{tracklang-scripts.tex} file?
+
+If yes, then skip this step. Otherwise create a file with the
+relevant \gls{TrackLangScriptMap} command for each unknown script and identify
+this new file with \gls{TrackLangAddExtraScriptFile} (see
+\sectionref{sec:newscripts}). This usually
+won't be necessary unless you have a custom script or a child script
+(a script that's a sub-category of another script).
+
+\item Does \sty{tracklang} recognise the root language?
+
+If yes, then skip this step.
+
+If your package is setting up a language that \sty{tracklang}
+doesn't recognise then you will need to define the root language
+using \gls{TrackLangNewLanguage} (see \sectionref{sec:newlanguages}).
+
+This usually won't be the case as \sty{tracklang} should support all
+languages that have an official \idxn{639-1} alpha-2 code.
+
+If you simply have a different label from \sty{tracklang}
+identifying the root language, then you can just set up your label
+as a dialect using \gls{TrackLangProvidePredefinedDialect}.
+
+\item Does \sty{tracklang} define the relevant \idxn{3166-1} region codes
+in the \file{tracklang-region-codes.tex} file?
+
+If yes, then skip this step. Otherwise create a file with the
+relevant \gls{TrackLangRegionMap} command for each new region and
+identify this new file with \gls{TrackLangAddExtraRegionFile} (see
+\sectionref{sec:newregions}). This usually won't be necessary as
+\sty{tracklang} should recognise all countries that have an alpha-2
+region code, but you may require it if you need a broader region,
+such as EU.
+
+\item Do you want to define some convenient dialect labels that can
+be used with \gls{TrackPredefinedDialect}?
+
+If no, then skip this step. Otherwise you can use
+\gls{TrackLangProvidePredefinedLanguage} for root languages
+and \gls{TrackLangProvidePredefinedDialect} for dialects with
+additional information, such as a region, sub-language or script
+(see \sectionref{sec:definelabels}).
+
+\item In your language initialisation code, add the \sty{tracklang}
+code to track the particular dialect (for example, use
+\gls{TrackPredefinedDialect} for recognised dialect labels or
+use the \csmetafmt{AddTracked}{Xxx}{} set of commands). See
+\sectionref{sec:initnewlang}.
+
+\item In your language selection code (such as \gls{selectlanguage}), add
+\gls{SetCurrentTrackedDialect}\margm{label} to allow the document
+author to easily query the current localisation settings (such as
+the region). See \sectionref{sec:selectlanguage}.
+\end{enumerate}
+
+\section{Initialising a New Language or Dialect}
+\label{sec:initnewlang}
+
+When the user requests a particular dialect through your language
+package, you can notify \sty{tracklang} of this choice using
+\begin{compactcodebox*}
+\gls{TrackPredefinedDialect}\margm{dialect label}
+\end{compactcodebox*}
+provided the dialect label is recognised by \sty{tracklang} (all those
+listed in \refoptstables).
+
+If there's no matching dialect predefined by \sty{tracklang}, you
+can just use \gls{TrackLocale} or \gls{TrackLanguageTag}
+(described in \sectionref{sec:generic})
+with the appropriate \idx{ISO} codes \emph{if you're not providing caption
+hooks}.
+
+If you are providing a captions hook mechanism
+in the form \gls{captionsdialect}, then if \meta{dialect}
+doesn't match the corresponding \sty{tracklang} dialect label,
+you can provide a mapping using
+\gls{SetTrackedDialectLabelMap}, described below.
+
+\section{Switching Language or Dialect}
+\label{sec:selectlanguage}
+
+When the document author switches to a different language or
+dialect, the current localisation information can be set with:
+\cmddef{SetCurrentTrackedDialect}
+where \meta{dialect} may the \sty{tracklang} dialect label,
+or the mapped label previously set through \gls{SetTrackedDialectLabelMap},
+described below, or the language label (in which case the
+last dialect to be tracked with that root language will
+be assumed).
+
+This will make the following commands available which may be
+of use to other packages:
+\begin{itemize}
+\item\gls{CurrentTrackedDialect} The dialect label recognised
+by \sty{tracklang} (which may not be the same as \meta{dialect}).
+
+\item\gls{CurrentTrackedLanguage}
+The root language label used by \sty{tracklang}.
+
+\item\gls{CurrentTrackedDialectModifier} The dialect modifier.
+
+\item\gls{CurrentTrackedDialectVariant} The dialect variant.
+
+\item\gls{CurrentTrackedDialectScript} The dialect script.
+Note that if \sty{tracklang-scripts} is also loaded, this allows the
+script direction to be accessed using
+\begin{codebox}
+\gls{TrackLangScriptAlphaToDir}\marg{\gls{CurrentTrackedDialectScript}}
+\end{codebox}
+See \sectionref{sec:supplpkgs} for further details.
+
+\item\gls{CurrentTrackedDialectSubLang} The dialect sub-language
+code.
+
+\item\gls{GetTrackedDialectAdditional} The dialect's additional
+information.
+
+\item\gls{CurrentTrackedIsoCode} The dialect's root language
+\idx{ISO} code. (The first found in the sequence \idx{639-1},
+\idx{639-2}, \idx{639-3}.)
+
+\item\gls{CurrentTrackedRegion} The dialect's \idxn{3166-1} region
+code.
+
+\item\gls{CurrentTrackedLanguageTag} The dialect's language tag.
+
+\end{itemize}
+(Without this automated use of \gls{SetCurrentTrackedDialect},
+the same information can be picked up using commands
+like \gls{GetTrackedDialectScript}, but that's less convenient,
+especially if \gls{languagename} needs to be converted
+to \meta{dialect}. See the accompanying sample file
+\filefmt{sample-setlang.tex} for an example.)
+
+\section{Defining New Scripts}
+\label{sec:newscripts}
+
+The \file{tracklang-scripts.tex} file isn't automatically loaded,
+but if it is then, as from v1.4, it contains a hook at the end of
+the file that can be used to load additional files that define
+supplementary scripts. This entails creating a file called, say,
+\filefmt{mypackage-scripts.tex} that contains:
+\begin{compactcodebox*}
+\gls{TrackLangScriptMap}\margm{alpha code}\margm{numeric code}\margm{name}\margm{direction}\margm{parent script}
+\end{compactcodebox*}
+The first argument \meta{alpha code} is the four-letter ISO~15924 code (such as
+\opt{Latn}), the second argument is the numeric code (such as
+215), the third argument \meta{name} is the name of the script (such
+as \optfmt{Latin}), the fourth argument is the direction (such as
+\optfmt{LR} for left-to-right) and the final argument is the parent
+script (leave blank if there's no parent). Note that this command will override any previous
+mapping for those codes. No check is performed to determine if they
+have already been defined.
+
+The supplementary file should be identified with:
+\begin{compactcodebox*}
+\gls{TrackLangAddExtraScriptFile}\margm{filename}
+\end{compactcodebox*}
+
+Additional information can be found in \sectionref{sec:supplpkgs}.
+
+\section{Defining New Regions}
+\label{sec:newregions}
+
+The \file{tracklang-region-codes.tex} file isn't automatically loaded,
+but if it is then, as from v1.4, it contains a hook at the end of
+the file that can be used to load additional files that define
+supplementary regions. This entails creating a file called, say,
+\filefmt{mypackage-regions.tex} that contains:
+\begin{compactcodebox*}
+\gls{TrackLangRegionMap}\margm{numeric code}\margm{alpha-2
+code}\margm{alpha-3 code}
+\end{compactcodebox*}
+where the first argument is the numeric region code (such as 826),
+the second argument is the alpha-2 region code (such as \code{GB})
+and the third argument is the alpha-3 region code (such as
+\code{GBR}). Note that this command will override any previous
+mapping for those codes. No check is performed to determine if they
+have already been defined.
+
+The supplementary file should be identified with:
+\begin{compactcodebox*}
+\gls{TrackLangAddExtraRegionFile}\margm{filename}
+\end{compactcodebox*}
+
+Additional information can be found in \sectionref{sec:supplpkgs}.
+
+\section{Defining a New Language}
+\label{sec:newlanguages}
+
+(New to version 1.3.)
+If the root language isn't recognised by \sty{tracklang}
+(not listed in \tableref{tab:rootlangopts}), then
+it can be defined (but not tracked at this point) using:
+\cmddef{TrackLangNewLanguage}
+where \meta{language label} is the root language label,
+\meta{639-1 code} is the \idxn{639-1} code for that language (may be
+empty if there isn't one), \meta{639-2 (T)} is the \idxn{639-2T}
+code for that language (may be empty if there isn't one),
+\meta{639-2 (B)} is the \idxn{639-2B} code for that language (may be
+empty if it's the same as \meta{639-2 (T)}), \meta{639-3} is the
+\idxn{639-3} code for that language (empty if the same as the
+\idx{639-2} code), \meta{3166-1} is the territory \idxn{3166-1} code for
+languages that are only spoken in one territory (should be empty if
+the language is spoken in multiple territories), and \meta{default
+script} is the default script (empty if disputed or varies according
+to region).
+
+You can then track this language using:
+\cmddef{AddTrackedDialect}
+for dialects (where \meta{dialect label} is the dialect label and
+\meta{root language label} is the root language label) or, if
+no regional variant is needed, you can instead use:
+\cmddef{AddTrackedLanguage}
+This is equivalent to
+\begin{compactcodebox}
+\gls{AddTrackedDialect}\margm{root language label}\margm{root language label}
+\end{compactcodebox}
+Note that \gls{AddTrackedDialect} defines:
+\cmddef{TrackLangLastTrackedDialect}
+to the dialect label, which makes it easier to reference the last
+dialect to be tracked.
+
+\section{Defining New \styfmt{tracklang} Labels}
+\label{sec:definelabels}
+
+A dialect label may be predefined with associated information that
+allows that particular combination to be easily tracked with
+\gls{TrackPredefinedDialect}. In the case of a dialect label that
+only requires the information provided in \gls{TrackLangNewLanguage}
+you can use:
+\cmddef{TrackLangProvidePredefinedLanguage}
+where \meta{language label} corresponds to the language label used in
+\gls{TrackLangNewLanguage}. This allows
+\begin{compactcodebox*}
+\gls{TrackPredefinedDialect}\margm{label}
+\end{compactcodebox*}
+to not only track the root language but also the associated ISO codes.
+
+If the dialect label doesn't match the root language label then use:
+\cmddef{TrackLangProvidePredefinedDialect}
+where \meta{dialect label} is the new \sty{tracklang} dialect label,
+\marg{root language label} is the \sty{tracklang} root language label,
+\meta{region} is the \idxn{3166-1} region code (may be empty),
+\meta{modifier} is the \idx{modifier} (may be empty), \meta{variant}
+is the \idx{variant} information (may be empty), \meta{map} is your
+package's language label that corresponds to the \sty{tracklang}
+dialect label supplied in the first argument (may be empty if
+identical), and \meta{script} is the \idxn{15924} alpha-4 script code
+(may be empty if it's the same as the default script for the root
+language).
+
+For compatibility with pre version 1.3,
+if the dialect isn't predefined by
+\sty{tracklang}, then you can use:
+\begin{compactcodebox*}
+\gls{AddTrackedDialect}\marg{dialect}\marg{root language label}
+\end{compactcodebox*}
+where \meta{root language label} is the label for the dialect's root
+language (\tableref{tab:rootlangopts}) and \meta{dialect} matches
+the captions hook. If the dialect is already in the tracked dialect
+list, it won't be added again. If the root language is already in
+the tracked language list, it won't be added again. As from version
+1.3 this additionally defines
+\gls{TrackLangLastTrackedDialect}
+to \meta{dialect} for convenient reference if required.
+Note that \gls{AddTrackedDialect} is internally used by commands like
+\gls{TrackPredefinedDialect}, \gls{TrackLocale} and
+\gls{TrackLanguageTag}.
+
+(New to version 1.3.) Many of the \sty{tracklang} dialect
+labels don't have a corresponding match in various language packages. For
+example, \sty{tracklang} provides \opt{ngermanDE} but the
+closest match in \sty{babel} is \opt{ngerman}. This means that
+the caption hook \tklcaptions{ngerman} can't be accessed
+through:
+\begin{compactcodebox}
+\cmd{csname} captions\gls{CurrentTrackedDialect}\cmd{endcsname}
+\end{compactcodebox}
+in the resource files. In this case, a mapping may be defined
+between the \sty{tracklang} dialect label and the closest
+matching label used by the language hooks. This is done through
+\cmddef{SetTrackedDialectLabelMap}
+where \meta{tracklang-label} is the \sty{tracklang} label and
+\meta{hook-label} is the language hook label. For example:
+\begin{compactcodebox*}
+\gls{TrackLanguageTag}\marg{de-AR-1996}
+\gls{SetTrackedDialectLabelMap}\marg{\gls{TrackLangLastTrackedDialect}}\marg{ngerman}
+\end{compactcodebox*}
+Since \gls{TrackLanguageTag} internally uses \gls{AddTrackedDialect}
+the dialect label created by \sty{tracklang} can be accessed
+using \gls{TrackLangLastTrackedDialect}. This means that
+\gls{TrackLangAddToCaptions} can now find the \tklcaptions{ngerman}
+hook even though the \sty{tracklang} dialect label isn't \opt{ngerman}.
+
+(New to version 1.3.)
+If the root language label is recognised by \sty{tracklang}, you
+can add the \idx{ISO} codes using:
+\cmddef{AddTrackedLanguageIsoCodes}
+
+As from v1.3, you can also provide a modifier for a given
+dialect using:
+\cmddef{SetTrackedDialectModifier}
+where \meta{dialect} is the dialect label and \meta{value}
+is the modifier value. For example:
+\begin{compactcodebox*}
+\gls{AddTrackedDialect}\marg{oldgerman}\marg{\opt{german}}
+\gls{AddTrackedLanguageIsoCodes}\marg{german}
+\gls{SetTrackedDialectModifier}\marg{oldgerman}\marg{old}
+\end{compactcodebox*}
+
+Note that no sanitization is performed on \meta{value} when the
+modifier is set explicitly through \gls{SetTrackedDialectModifier},
+since it's assumed that any package that specifically sets the
+modifier in this way is using a sensible labelling system. If the
+modifier is obtained through commands like \gls{TrackLocale}, then
+the modifier is sanitized as the value may have been obtained from
+the operating system and there's no guarantee that it won't contain
+problematic characters.
+
+The \idx{modifier} is typically obtained by parsing locale information in
+\idx{POSIX} format.
+\begin{compactcodebox*}
+\meta{language}[\idx{underscoresep}\meta{territory}][\idx{dotsep}\meta{codeset}][\idx{atmod}\meta{modifier}]
+\end{compactcodebox*}
+whereas the \idx{variant} is typically obtained by parsing the language
+tag.
+
+The information provided in the commands below (such as the script)
+are typically obtained by parsing the language tag. For example,
+with Serbian in the Latin alphabet the modifier would be \optfmt{latin}
+whereas the script would be \opt{Latn}:
+\begin{codebox*}
+\gls{AddTrackedDialect}\marg{serbianlatin}\marg{\opt{serbian}}
+\gls{AddTrackedLanguageIsoCodes}\marg{\opt{serbian}}
+\gls{SetTrackedDialectModifier}\marg{serbianlatin}\marg{latin}
+\gls{SetTrackedDialectScript}\marg{serbianlatin}\marg{\opt{Latn}}
+\end{codebox*}
+
+As from v1.3, you can provide a script (for example,
+\opt{Latn} or \opt{Cyrl}) using:
+\cmddef{SetTrackedDialectScript}
+where \meta{dialect} is the dialect label and \meta{value} is the
+\idxn{15924} alpha-4 script identifier. For example:
+\begin{codebox*}
+\gls{AddTrackedDialect}\marg{serbiancyrl}\marg{\opt{serbian}}
+\gls{AddTrackedLanguageIsoCodes}\marg{serbian}
+\gls{SetTrackedDialectScript}\marg{serbiancyrl}\marg{\opt{Cyrl}}
+\end{codebox*}
+
+As from v1.3, you can provide a variant for a given
+dialect using:
+\cmddef{SetTrackedDialectVariant}
+For example:
+\begin{codebox*}
+\gls{AddTrackedDialect}\marg{german1901}\marg{german}
+\gls{SetTrackedDialectVariant}\marg{german1901}\marg{1901}
+\end{codebox*}
+
+As from v1.3, you can also provide a sub-language using:
+\cmddef{SetTrackedDialectSubLang}
+where \meta{dialect} is the dialect label and \meta{value} is the
+code. For example:
+\begin{codebox*}
+\gls{AddTrackedDialect}\marg{mandarin}\marg{\opt{chinese}}
+\gls{AddTrackedLanguageIsoCodes}\marg{\opt{chinese}}
+\gls{SetTrackedDialectSubLang}\marg{mandarin}\marg{cmn}
+\gls{AddTrackedIsoLanguage}\marg{639-3}\marg{cmn}\marg{mandarin}
+\end{codebox*}
+
+As from v1.3, you can also provide additional information using:
+\cmddef{SetTrackedDialectAdditional}
+where \meta{dialect} is the dialect label and \meta{value} is the
+additional information.
+
+\section{Example (\filefmt{alien.sty})}
+\label{sec:examplenewlang}
+
+Suppose I want to create a language package \file{alien.sty} that defines the
+\optfmt{martian} language with regional dialects
+\optfmt{lowermartian} and \optfmt{uppermartian}. First, let's
+suppose that \sty{tracklang} recognises the root language
+\optfmt{martian}:
+\begin{codebox}
+\cmd{ProvidesPackage}\marg{alien}
+\codepar
+\gls{input}{tracklang}\comment{v1.3}
+\codepar
+\cmd{DeclareOption}\marg{martian}\marg{\comment{}
+ \gls{TrackPredefinedDialect}\marg{martian}
+}
+\cmd{DeclareOption}\marg{lowermartian}\marg{\comment{}
+ \gls{AddTrackedDialect}\marg{lowermartian}\marg{martian}
+ \gls{AddTrackedLanguageIsoCodes}\marg{martian}
+ \gls{AddTrackedIsoLanguage}\marg{3166-1}\marg{YY}\marg{lowermartian}
+ \comment{other attributes such as}
+ \comment{\gls{SetTrackedDialectVariant}\marg{lowermartian}\marg{...}}
+}
+\cmd{DeclareOption}\marg{uppermartian}\marg{\comment{}
+ \gls{AddTrackedDialect}\marg{uppermartian}\marg{martian}
+ \gls{AddTrackedLanguageIsoCodes}\marg{martian}
+ \gls{AddTrackedIsoLanguage}\marg{3166-1}\marg{XX}\marg{uppermartian}
+ \comment{other attributes such as}
+ \comment{\gls{SetTrackedDialectVariant}\marg{uppermartian}\marg{...}}
+}
+\codepar
+\cmd{ProcessOptions}
+\codepar
+\cmd{newcommand}*\marg{\gls{selectlanguage}}[1]\marg{\comment{}
+ \cmd{def}\gls{languagename}\marg{\#1}\comment{}
+ \comment{other stuff}
+ \gls{SetCurrentTrackedDialect}\marg{\#1}\comment{}
+}
+\codepar
+\gls{AnyTrackedLanguages}
+\marg{
+ \gls{ForEachTrackedDialect}\marg{\cmd{thisdialect}}
+ \marg{\comment{}
+ \gls{TrackLangRequireDialect}\marg{alien}\marg{\cmd{thisdialect}}
+ }
+}
+\end{codebox}
+The caption commands and language set up are in the files
+\localefile{alien} as in the examples from
+\sectionref{sec:examples}. This allows for the user having already
+loaded \sty{tracklang} before \sty{alien} and used \gls{TrackLangFromEnv} to pick up
+the locale from the operating system's environment variables.
+(For example, they may have \envvar{LANG} set to
+\code{xx\idx{underscoresep}YY}.)
+
+The resource files may need to set the mapping between the
+\sty{tracklang} dialect label and the \sty{alien} dialect
+label. For example, in \ldf{alien}{xx-YY}:
+\begin{codebox*}
+\gls{TrackLangProvidesResource}\marg{xx-YY}
+\codepar
+\gls{TrackLangRequireResource}\marg{martian}\comment{load common elements}
+\codepar
+\cmd{newcommand}\marg{\tklcaptions{lowermartian}}\marg{\comment{}
+ \tklcaptions{martian}
+ \cmd{def}\cmd{contentsname}\marg{X'flurp}\comment{regional variation}
+}
+\codepar
+\gls{SetTrackedDialectLabelMap}\marg{\gls{CurrentTrackedDialect}}\marg{lowermartian}
+\end{codebox*}
+
+Now let's consider the case where \sty{tracklang} doesn't know
+about the \optfmt{martian} language. In this case the user can't
+track the dialect until the root language has been defined, so the
+user can't use \gls{TrackLangFromEnv} before using the \sty{alien}
+package.
+
+With \sty{tracklang} v1.3. The new root language can be defined
+with a minor adjustment to the above code:
+\begin{codebox*}
+\cmd{ProvidesPackage}\marg{alien}
+\codepar
+\gls{input}\marg{tracklang}\comment{needs v1.3}
+\codepar
+\gls{TrackLangIfKnownLang}\marg{martian}
+\marg{}\comment{tracklang already knows about the martian language}
+\marg{
+ \comment{tracklang doesn't known about the martian language, so define it}
+ \comment{with \idxn{639-1} (xx) and \idxn{639-2} (xxx) codes:}
+ \gls{TrackLangNewLanguage}\marg{martian}\marg{xx}\marg{xxx}\marg{}\marg{}\marg{}\marg{\opt{Latn}}
+}
+\end{codebox*}
+The rest is as before.
+
+Now other package writers who want to provide support
+for the Martian dialects can easily detect which language options
+the user requested through my package, \emph{without needing to know
+anything about my \sty{alien} package}.
+
+\part{Summaries}
+\appendix
+
+\chapter{Region and Script Mappings}
+\label{sec:regscriptmappings}
+
+Region mappings are listed in \tableref{tab:regionmappings}, and
+script mappings are listed in \tableref{tab:scriptmappings}.
+
+\printunsrttable[type=index,
+ title={Region Mappings},other={alpha3},blocks=2,
+ block-style={name-other-desc},label={tab:regionmappings},
+ init={%
+ \renewcommand{\glstableNameTarget}[1]{\inlineglsdef[optdef]{##1}}%
+ \renewcommand{\glstableiffilter}[3]{\glsifcategory{##1}{region}{##3}{##2}}%
+ \renewcommand{\glstablenameheader}{Alpha-2}%
+ \renewcommand{\glstableotherheader}{Alpha-3}%
+ \renewcommand{\glstabledescheader}{Numeric}%
+ \renewcommand{\glstableDesc}{\numerictag}%
+}
+]
+
+\printunsrttable[type=index,clearpage,par=ragged,
+ title={Script Mappings},other=userii,blocks=1,
+ block-style={name-symbol-other-desc},label={tab:scriptmappings},
+ init={%
+ \renewcommand{\glstableNameTarget}[1]{\inlineglsdef[optdef]{##1}}%
+ \renewcommand{\glstableiffilter}[3]{\glsifcategory{##1}{script}{##3}{##2}}%
+ \renewcommand{\glstablenameheader}{Alpha-2}%
+ \renewcommand{\glstablesymbolheader}{Numeric}%
+ \renewcommand{\glstableSymbol}{\numerictag}%
+ \renewcommand{\glstableotherheader}{Direction}%
+}
+]
+
+\backmatter
+\printterms
+\printsummary
+
+\renewcommand{\fnregion}{}%
+\glsdefpostname{isolangregion}{ (option)}%
+\glsdefpostname{rootlang}{ (root language)}%
+\glsdefpostname{isocode}{ (\idx{ISO} code)}%
+\glsdefpostname{noniso}{ (option)}%
+\glsdefpostname{region}{ (region)}%
+\glsdefpostname{script}{ (script)}%
+\glsdefpostname{application}{ (application)}%
+\printuserguideindex
+
+\end{document}
diff --git a/macros/generic/tracklang/tracklang.dtx b/macros/generic/tracklang/tracklang.dtx
index 22dd36860e..a36ec15205 100644
--- a/macros/generic/tracklang/tracklang.dtx
+++ b/macros/generic/tracklang/tracklang.dtx
@@ -1,16 +1,16 @@
%\iffalse
% tracklang.dtx generated using makedtx version 1.2 (c) Nicola Talbot
% Command line args:
+% -doc "tracklang-codedoc.tex"
+% -author "Nicola Talbot"
+% -codetitle "Main Package Code"
% -src "tracklang.sty\Z=>tracklang.sty"
% -src "tracklang.tex\Z=>tracklang.tex"
% -src "tracklang-region-codes.tex\Z=>tracklang-region-codes.tex"
% -src "tracklang-scripts.sty\Z=>tracklang-scripts.sty"
% -src "tracklang-scripts.tex\Z=>tracklang-scripts.tex"
-% -author "Nicola Talbot"
-% -doc "tracklang-manual.tex"
-% -section "chapter"
% tracklang
-% Created on 2020/6/30 11:55
+% Created on 2022/10/29 18:01
%\fi
%\iffalse
%<*package>
@@ -33,242 +33,53 @@
%\fi
% \iffalse
% Doc-Source file to use with LaTeX2e
-% Copyright (C) 2020 Nicola Talbot, all rights reserved.
+% Copyright (C) 2022 Nicola Talbot, all rights reserved.
% \fi
% \iffalse
%<*driver>
-\documentclass[report,inlinetitle]{nlctdoc}
-
-\DeleteShortVerb{|}
+\iffalse
+tracklang-codedoc.tex is a stub file used by makedtx to create
+tracklang.dtx
+\fi
-\usepackage[a4paper,marginpar=2in,marginparsep=10pt,
- left=2in,right=.5in]{geometry}
-\usepackage{graphicx}
-\usepackage[utf8]{inputenc}
-\usepackage[T1]{fontenc}
-\usepackage{tracklang}
-\usepackage{etoolbox}
-\usepackage{longtable}
-\usepackage{datatool-base}[2016/07/20]
-\let\orgtheindex\theindex
-\let\orgendtheindex\endtheindex
-\usepackage{imakeidx}
-\usepackage[colorlinks,
- bookmarks,
- hyperindex=false,
- pdfauthor={Nicola L.C. Talbot},
- pdftitle={tracklang: tracking language options}]{hyperref}
+\documentclass{article}
+\usepackage{doc}
-\CheckSum{6210}
+\CheckSum{6236}
-\appto\MacroFont{\scriptsize}
-\renewcommand*{\usage}[1]{\textit{\hyperpage{#1}}}
-\renewcommand*{\main}[1]{\underline{\hyperpage{#1}}}
+\RecordChanges
\PageIndex
+\SetupDoc{reportchangedates}
\setcounter{IndexColumns}{2}
-\newcommand*{\PrintCodeIndex}{%
- \bgroup
- \let\theindex\orgtheindex
- \let\endtheindex\orgendtheindex
- \PrintIndex
- \egroup
-}
-\IndexPrologue{%
-\clearpage\phantomsection
-\addcontentsline{toc}{chapter}{Code Index}%
-\chapter*{Code Index}\markboth{Code Index}{Code Index}%
-}
-
-\makeindex[name=user,title=Main Index,intoc]
-\renewcommand{\iapp}[1]{\index[user]{#1@\appfmt{#1}|hyperpage}}
-\renewcommand{\iterm}[1]{\index[user]{#1|hyperpage}}
-\renewcommand{\ics}[1]{\cs{#1}\index[user]{#1@\protect\cs{#1}|hyperpage}}
-\renewcommand*{\ipkgopt}[2][]{%
- \ifstrempty{#1}%
- {\index[user]{package options:!#2@\pkgoptfmt{#2}|hyperpage}}%
- {\index[user]{package options:!#2@\pkgoptfmt{#2}!#1@\pkgoptfmt{#1}|hyperpage}}%
-}
-\renewcommand*{\pkgopt}[2][]{%
- \pkgoptfmt{#2}\ifstrempty{#1}%
- {\index[user]{package options:!#2@\pkgoptfmt{#2}|hyperpage}}%
- {\index[user]{package options:!#2@\pkgoptfmt{#2}!#1@\pkgoptfmt{#1}|hyperpage}}%
-}
-\renewcommand*{\isty}[1]{%
- \index[user]{#1 package@\styfmt{#1} package|hyperpage}}
-
-\newcommand*{\envvar}[1]{%
- \texttt{#1}%
- \index[user]{#1@\texttt{#1}}}
-
-\newcommand*{\isopkgopts}{}
-\newcommand*{\nonisopkgopts}{}
-\newcommand*{\rootlangopts}{}
-
-\makeatletter
-\renewcommand*{\changes@}[3]{%
- \protected@edef\@tempa{\noexpand\glossary{#1 (#2)\levelchar
- \ifx\saved@macroname\@empty
- \space
- \actualchar
- \generalname
- \else
- \expandafter\@gobble
- \saved@macroname
- \actualchar
- \string\verb\quotechar*%
- \verbatimchar\saved@macroname
- \verbatimchar
- \fi
- :\levelchar #3\encapchar hyperpage}}%
- \@tempa\endgroup\@esphack}
-
-
-\ifdim\overfullrule=0pt\relax % final mode
- \typeout{Sorting available options. This may take a while.}%
- \newcommand{\addopt}[3]{%
- \expandafter\dtlinsertinto\expandafter{#1}{#2}{#3}%
- }%
-\else
- \newcommand{\addopt}[3]{%
- \ifdefempty{#2}{\edef#2{#1}}{\eappto{#2}{,#1}}
- }
-\fi
-
-\@for\thisdialect:=\@tracklang@declaredoptions\do{%
- \ifdefempty\thisdialect
- {}%
- {%
- \typeout{\thisdialect}%
- \ifnum\pdfmatch {[a-z]{2,3}-[A-Z]{2}}{\thisdialect}=1\relax
- \addopt{\thisdialect}{\isopkgopts}{\dtlcompare}%
- \else
- \TrackLangIfKnownLang{\thisdialect}
- {%
- \addopt{\thisdialect}{\rootlangopts}{\dtlcompare}%
- }%
- {%
- \addopt{\thisdialect}{\nonisopkgopts}{\dtlicompare}%
- }%
- \fi
- }%
-}
-
-\newcommand*{\isopkgoptstab}{\begin{table}[p]
-\caption[Predefined ISO Language-Region Dialects]%
-{Predefined ISO Language-Region Dialects. (May be used as a package
-option or with \cs{TrackPredefinedDialect}.)}\label{tab:isoopts}
-\medskip
-\centering
-\begin{tabular}{llll}%
-}
-
-\newcommand*{\fnregion}{\textsuperscript{\textdagger}}
-
-\newcommand*{\rootlangoptstab}{\begin{longtable}{lll}
-\caption[Predefined Root Languages]{Predefined Root Languages.
-(\fnregion Has an associated territory.)
-The corresponding
-language tag obtained with \cs{GetTrackedLanguageTag}\marg{dialect}
-is shown in parentheses.}\label{tab:rootlangopts}\\\endfirsthead
-\caption[]{Predefined Root Languages Continued.}\\\endhead
-}
-
-\newcommand*{\nonisopkgoptstab}{\begin{longtable}{ll}
-\caption[Predefined Non-ISO Dialects]{Predefined Non-ISO Dialects.
-(\fnregion Has an associated territory.)
-The corresponding
-language tag obtained with \cs{GetTrackedLanguageTag}\marg{dialect}
-is shown in parentheses. If the dialect has a corresponding mapping
-for the closest matching non-root language \cs{caption\ldots} or
-\cs{date\ldots}, this is also include after the tag following a
-slash.}%
-\label{tab:nonisoopts}\\\endfirsthead
-\caption[]{Predefined Non-ISO Dialects Continued}\\\endhead
-}
-
-\newcount\tmpctr
-
-\@for\thisdialect:=\isopkgopts\do{%
- \advance\tmpctr by 1\relax
- \eappto\isopkgoptstab{\noexpand\pkgoptfmt{\thisdialect}&}%
- {%locally track this dialect to pick up information
- \TrackPredefinedDialect\thisdialect
- \xappto\isopkgoptstab{\space
- {\noexpand\small(\noexpand\texttt{%
- \csname @tracklang@dialect\endcsname})}}%
- }%
- \ifnum\tmpctr>1
- \tmpctr = 0\relax
- \appto\isopkgoptstab{\\}%
- \else
- \appto\isopkgoptstab{&}%
- \fi
-}
-
-\appto\isopkgoptstab{\end{tabular}\par
-\medskip
-Other combinations need to be set with \cs{TrackLocale} or
-\cs{TrackLanguageTag}.
-\end{table}}
-
-\tmpctr=0\relax
-
-\@for\thisdialect:=\nonisopkgopts\do{%
- \advance\tmpctr by 1\relax
- \eappto\nonisopkgoptstab{\noexpand\pkgoptfmt{\thisdialect}}%
- {%locally track this dialect to pick up information
- \TrackPredefinedDialect\thisdialect
- \IfTrackedLanguageHasIsoCode{3166-1}{\thisdialect}%
- {\gappto\nonisopkgoptstab{\fnregion}}%
- {}%
- \IfTrackedDialectHasMapping\thisdialect
- {\def\nonisopkgmap{ /
- \noexpand\texttt{\GetTrackedDialectToMapping\thisdialect}}}%
- {\def\nonisopkgmap{}}%
- \xappto\nonisopkgoptstab{\space
- {\noexpand\small(\noexpand\texttt{\GetTrackedLanguageTag\thisdialect}%
- \nonisopkgmap)}}%
- }%
- \ifnum\tmpctr>1
- \tmpctr = 0\relax
- \appto\nonisopkgoptstab{\\}%
- \else
- \appto\nonisopkgoptstab{&}%
- \fi
-}
-
-\appto\nonisopkgoptstab{\end{longtable}}
+\usepackage[T1]{fontenc}
+\usepackage{tcolorbox}
-\tmpctr=0\relax
+\definecolor{defbackground}{rgb}{1,1,0.75}
-\@for\thisdialect:=\rootlangopts\do{%
- \advance\tmpctr by 1\relax
- \eappto\rootlangoptstab{\noexpand\pkgoptfmt{\thisdialect}}%
- \TrackLangIfHasKnownCountry{\thisdialect}%
- {%
- \appto\rootlangoptstab{\fnregion}%
- }%
- {}%
- {%locally track this language to pick up information
- \TrackPredefinedDialect\thisdialect
- \xappto\rootlangoptstab{\space
- {\noexpand\small(\noexpand\texttt{\GetTrackedLanguageTag\thisdialect})}}%
- }%
- \ifnum\tmpctr>2
- \tmpctr = 0\relax
- \appto\rootlangoptstab{\\}%
- \else
- \appto\rootlangoptstab{&}%
- \fi
+\newtcolorbox{definition}{halign=flush left,
+ colframe=black,colback=defbackground,
+ fontupper=\ttfamily,
+ before upper={\frenchspacing\obeylines},
+ after={\par\noindent\ignorespacesafterend}
}
-\appto\rootlangoptstab{\end{longtable}}
+\NewDocElement{Option}{option}
-\makeatother
+\providecommand{\sty}[1]{\styfmt{#1}}
+\providecommand{\styfmt}[1]{\textsf{#1}}
+\providecommand{\pkgoptfmt}[1]{\textsf{#1}}
+\providecommand{\envvar}[1]{\texttt{#1}}
+\providecommand{\app}[1]{\texttt{#1}}
+\providecommand{\qt}[1]{``#1''}
+\providecommand{\sectionref}[1]{\S\ref{#1}}
-\newcommand*{\refoptstables}{tables~\ref{tab:isoopts}, \ref{tab:rootlangopts}
-and~\ref{tab:nonisoopts}}
+\providecommand\marg[1]{%
+ \texorpdfstring{\allowbreak{\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+ {\{#1\}}}
+\providecommand\oarg[1]{%
+ \texorpdfstring{\allowbreak{\ttfamily[}\meta{#1}{\ttfamily]}}
+ {[#1]}}
\begin{document}
\DocInput{tracklang.dtx}
@@ -276,3301 +87,26 @@ and~\ref{tab:nonisoopts}}
%</driver>
%\fi
%
-%\MakeShortVerb{"}
-%
-%\title{tracklang v1.5:
-%tracking language options}
-%\author{Nicola L. C. Talbot\\\url{http://www.dickimaw-books.com/}}
-%
-%\date{2020-06-30}
-%\maketitle
-%
-%\begin{abstract}
-%The \styfmt{tracklang} package is provided for package developers
-%who want a simple interface to find out which languages the user has
-%requested through packages such as \sty{babel} and
-%\sty{polyglossia}. \emph{This package doesn't provide any
-%translations.}
-%Its purpose is simply to track which languages have been requested by the
-%user. Generic \TeX\ code is in \texttt{tracklang.tex} for
-%non-\LaTeX\ users.
-%
-%If the shell escape is enabled or \ics{directlua} is available,
-%this package may also be used to query the \envvar{LC\_ALL}
-%or \envvar{LANG} environment variable (see
-%\sectionref{sec:langsty}). Windows users, who don't have the locale
-%stored in environment variables, can use \app{texosquery}
-%in combination with \styfmt{tracklang}. (Similarly if \envvar{LC\_ALL}
-%or \envvar{LANG} don't contain sufficient information.) In order to
-%use \app{texosquery} through the restricted shell escape, you must
-%have at least Java~8 and set up \texttt{texosquery.cfg}
-%appropriately. (See the \app{texosquery} manual for further details.)
-%\end{abstract}
-%
-%The fundamental aim of this generic package is to be able to
-%effectively say:
-%\begin{quote}
-%The user (that is, the \emph{document} author) wants to use
-%dialects \texttt{xx-XX}, \texttt{yy-YY-Scrp}, etc in their
-%document. Any packages used by their document that provide
-%multilingual or region-dependent support should do whatever is
-%required to activate the settings for those languages and regions
-%(or warn the user that there's no support).
-%\end{quote}
-%Naturally, this is only of use if the locale-sensitive packages use
-%\styfmt{tracklang} to pick up this information, which is entirely up
-%to the package authors, but at the moment there's no standard method
-%for packages to detect the required language and region. The aim of
-%\styfmt{tracklang} is to provide that method. In particular, the
-%emphasis is on using ISO language and region codes rather than
-%hard-coding the various language labels used by different language
-%packages.
-%
-%Related articles: \qt{Localisation of \TeX\ documents:
-%\styfmt{tracklang}.} TUGBoat, Volume~37 (2016), No.~3
-%(\url{http://www.tug.org/TUGboat/tb37-3/tb117talbot.pdf}),
-%\href{https://www.dickimaw-books.com/latex/tracklang}{Localisation
-%with \texttt{tracklang.tex}},
-%and
-%\href{https://www.dickimaw-books.com/faq.php?action=view&category=tracklang}{\texttt{tracklang}
-%FAQ}.
-%
-%\clearpage
-%\tableofcontents
-%\clearpage\phantomsection
-%\pdfbookmark{Tables}{lot}%
-%\listoftables
-%
-%\chapter{Introduction}
-%\label{sec:intro}
-%
-%When I'm developing a package that provides multilingual support
-%(for example, \styfmt{glossaries}) it's cumbersome trying to work out
-%if the user has requested translations for fixed text. This usually
-%involves checking if \sty{babel} or \sty{ngerman} or
-%\sty{translator} or \sty{polyglossia} has been loaded and, if so,
-%what language settings have been used. The result can be a tangled
-%mass of conditional code. The alternative is to tell users to add
-%the language as a~document class option, which they may or may not
-%want to do, or to tell them to supply the language settings to every
-%package they load that provides multilingual support, which users
-%are even less likely to want to do.
-%
-%The \styfmt{tracklang} package tries to neaten this up by working out
-%as much of this information as possible for you and providing a
-%command that iterates through the loaded languages. This way, you
-%can just iterate through the list of tracked languages and, for each
-%language, either define the translations or warn the user that
-%there's no translation for that language.
-%
-%This package works best with \sty{ngerman} or with recent versions
-%of \sty{babel} or when the language options are specified
-%in the document class option list. It works fairly well with
-%\sty{translator} but will additionally assume the root language was
-%also requested when a dialect is specified. So, for example,
-%\begin{verbatim}
-%\usepackage[british]{translator}
-%\usepackage{tracklang}
-%\end{verbatim}
-%is equivalent to
-%\begin{verbatim}
-%\usepackage[british]{translator}
-%\usepackage[english,british]{tracklang}
-%\end{verbatim}
-%This means that \ics{ForEachTrackedDialect} will iterate
-%through the list \qt{english,british} instead of just
-%\qt{british}, which can result in some redundancy.
-%
-%Unfortunately I can't work out how to pick up the language variant
-%or script from \sty{polyglossia}, so only the root languages are detected,
-%which is suboptimal but at least provides some information.
-%(\sty{polyglossia} now provides \cs{xpg@loaded}, which
-%\sty{tracklang} uses to track the root languages, but the language variant
-%command \cs{xpg@loaded} only seems to be set when the language
-%changes, which doesn't occur until the start of the \env{document}
-%environment.)
-%
-%I also can't find any way of detecting a list of languages loaded
-%through \sty{babel}'s new \ics{babelprovide} command. As far as I
-%can tell, the only stored list is in \cs{bbl@loaded} which only
-%contains the languages loaded through package options.
-%
-%If the \sty{ngerman} package has been loaded, \styfmt{tracklang}
-%effectively does
-%\begin{verbatim}
-%\TrackPredefinedDialect{ngerman}
-%\end{verbatim}
-%Similarly, if the \sty{german} package has been loaded,
-%\styfmt{tracklang} effectively does
-%\begin{verbatim}
-%\TrackPredefinedDialect{german}
-%\end{verbatim}
-%
-%If any document class or package options are passed to
-%\styfmt{tracklang}, then \styfmt{tracklang} won't bother checking
-%for \sty{babel}, \sty{translator}, \sty{ngerman}, \sty{german} or
-%\sty{polyglossia}. So, if the above example is changed to:
-%\begin{verbatim}
-%\documentclass[british]{article}
-%\usepackage{translator}
-%\usepackage{tracklang}
-%\end{verbatim}
-%then the dialect list will just consist of \qt{british} rather than
-%\qt{english,british}. This does, however, mean that if the user mixes
-%class and package options, only the class options will be detected.
-%For example:
-%\begin{verbatim}
-%\documentclass[british]{article}
-%\usepackage[french]{babel}
-%\usepackage{tracklang}
-%\end{verbatim}
-%In this case, only the \qt{british} option will be detected. The user
-%can therefore use the document class option (or \styfmt{tracklang}
-%package option) to override the dialect and set the country code
-%(where provided). For example:
-%\begin{verbatim}
-%\documentclass[es-MX]{article}
-%\usepackage[spanish]{babel}
-%\usepackage{tracklang}
-%\end{verbatim}
-%This sets the dialect to \qt{mexicanspanish} and the root language to
-%\qt{spanish}.
-%
-%Predefined dialects are listed in \refoptstables. These may be
-%passed in the document class options or
-%used in \ics{TrackPredefinedDialect}, as illustrated above.
-%
-%\sectionref{sec:summary} provides brief examples of use for those
-%who want a general overview before reading the more detailed
-%sections.
-%\sectionref{sec:generic} describes generic commands for
-%identifying the document languages.
-%\sectionref{sec:user} is for package writers who want to
-%add multilingual support to their package and need to know which
-%settings the user has requested through language packages like
-%\sty{babel}. \sectionref{sec:langsty} is for
-%developers of language definition packages who want to help other
-%package writers to detect what languages have been requested.
-%
-%\isopkgoptstab
-%
-%\clearpage
-%
-%\rootlangoptstab
-%
-%\clearpage
-%
-%\nonisopkgoptstab
-%
-%\chapter{Summary of Use}
-%\label{sec:summary}
-%
-%There are three levels of use:
-%\begin{enumerate}
-%\item document level (code used by document authors);
-%\item locale-sensitive package level
-%(code for package authors who need to
-%know what languages or locale the document is
-%using, such as \styfmt{glossaries} to translate commands like
-%\cs{descriptionname} or \styfmt{datetime2} to provide localised
-%formats or time zone information);
-%\item language set-up level (code for packages that set up
-%the document languages, such as \sty{babel} or \sty{polyglossia}).
-%\end{enumerate}
-%
-%\section{Document Level}
-%\label{sec:summary-doc}
-%
-%\subsection{Generic \texorpdfstring{\TeX}{TeX}}
-%Unix user wants the locale information picked up from the
-%locale environment variable:
-%\begin{verbatim}
-%\input tracklang % v1.3
-%\TrackLangFromEnv
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%
-%Windows user wants the locale information picked up from the
-%operating system:
-%\begin{verbatim}
-%\input texosquery
-%\input tracklang % v1.3
-%\TrackLangFromEnv
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%Or (\sty{texosquery} v1.2)
-%\begin{verbatim}
-%\input texosquery % v1.2
-%\input tracklang % v1.3
-%
-%\TeXOSQueryLangTag{\langtag}
-%\TrackLanguageTag{\langtag}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%Linux user who may or may not have \app{texosquery} setup to run in the
-%shell escape:
-%\begin{verbatim}
-%\input texosquery
-%\input tracklang % v1.3
-%
-%\ifx\TeXOSQueryLangTag\undefined
-% \TrackLangFromEnv
-%\else
-% \TeXOSQueryLangTag{\langtag}
-% \TrackLanguageTag{\langtag}
-%\fi
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%
-%User is writing in Italy in Armenian with a Latin
-%script and the arevela variant:
-%\begin{verbatim}
-%\input tracklang % v1.3
-%\TrackLanguageTag{hy-Latn-IT-arevela}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%
-%User is writing in English in the UK:
-%\begin{verbatim}
-%\input tracklang
-%\TrackPredefinedDialect{british}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%
-%Find out information about the current language (supplied
-%in \cs{languagename}):
-%\begin{verbatim}
-%\SetCurrentTrackedDialect{\languagename}
-%Dialect: \CurrentTrackedDialect.
-%Language: \CurrentTrackedLanguage.
-%ISO Code: \CurrentTrackedIsoCode.
-%Region: \CurrentTrackedRegion.
-%Modifier: \CurrentTrackedDialectModifier.
-%Variant: \CurrentTrackedDialectVariant.
-%Script: \CurrentTrackedDialectScript.
-%Sub-Lang: \CurrentTrackedDialectSubLang.
-%Additional: \CurrentTrackedDialectAdditional.
-%Language Tag: \CurrentTrackedLanguageTag.
-%\end{verbatim}
-%Additional information about the script can be obtained by
-%also loading \sty{tracklang-scripts}:
-%\begin{verbatim}
-%\input tracklang-scripts
-%\end{verbatim}
-%The name, numeric code and direction can now be obtained:
-%\begin{verbatim}
-%Name: \TrackLangScriptAlphaToName{\CurrentTrackedDialectScript}.
-%Numeric: \TrackLangScriptAlphaToNumeric{\CurrentTrackedDialectScript}.
-%Dir: \TrackLangScriptAlphaToDir{\CurrentTrackedDialectScript}.
-%\end{verbatim}
-%Test for a specific script:
-%\begin{verbatim}
-%Latin?
-%\ifx\CurrentTrackedDialectScript\TrackLangScriptLatn
-% Yes
-%\else
-% No
-%\fi
-%\end{verbatim}
-%
-%\subsection{\texorpdfstring{\LaTeX}{LaTeX}}
-%
-%For \sty{babel} users where the supplied \sty{babel} dialect
-%label is sufficient, there's no need to do anything special:
-%\begin{verbatim}
-%\documentclass[british,canadien]{article}
-%\usepackage[T1]{fontenc}
-%\usepackage{babel}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%If the region is important but there's no \sty{babel} dialect
-%that represents it, there are several options.
-%
-%Use the class options recognised by \styfmt{tracklang}
-%and the root language labels when loading \sty{babel}:
-%\begin{verbatim}
-%\documentclass[en-IE,ga-IE]{article}
-%\usepackage[english,irish]{babel}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%
-%This method is needed for \sty{polyglossia} where the regional
-%information is required. For example
-%\begin{verbatim}
-%\documentclass[en-GB]{article}
-%\usepackage{polyglossia}
-%\setmainlanguage[variant=uk]{english}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%
-%Another method with \sty{babel} is to
-%use \cs{TrackLanguageTag} and map the new dialect label to
-%\sty{babel}'s nearest matching label:
-%\begin{verbatim}
-%\documentclass{article}
-%
-%\usepackage{tracklang}% v1.3
-%\TrackLanguageTag{en-MT}
-%\SetTrackedDialectLabelMap{\TrackLangLastTrackedDialect}{UKenglish}
-%
-%\usepackage[UKenglish]{babel}
-%% load packages that use tracklang for localisation
-%\end{verbatim}
-%This ensures that the \cs{captionsUKenglish} hook is detected
-%by the localisation packages. This mapping isn't needed
-%for \sty{polyglossia} as the caption hooks use the root language
-%label. This mapping also isn't needed if \texttt{british} is used
-%instead of \texttt{UKenglish} since the \pkgopt{en-MT}
-%(\pkgopt{maltaenglish})
-%predefined dialect automatically sets up a mapping to
-%\texttt{british}. (The default mappings are shown in
-%\tableref{tab:nonisoopts}.)
-%
-%\section{Locale-Sensitive Packages}
-%\label{sec:summary-localepkg}
-%
-%Let's suppose you are developing a package called
-%\texttt{mypackage.sty} or \texttt{mypackage.tex} and you want
-%to find out what languages the document author has requested. (See also:
-%\href{https://www.dickimaw-books.com/latex/tracklang/otherpkg.shtml}{Using
-%\texttt{tracklang.tex} in Packages with Localisation Features}.)
-%
-%Generic use:
-%\begin{verbatim}
-%\input tracklang
-%\end{verbatim}
-%(Most of the commands used in this section require at least
-%\styfmt{tracklang} version 1.3 but 1.4 is better if you want to
-%include the script tag in the ldf files.)
-%Note that \texttt{tracklang.tex} has a check to determine if
-%it's already been loaded, so you don't need to worry about that.
-%
-%\LaTeX\ use:
-%\begin{verbatim}
-%\RequirePackage{tracklang}[2019/11/30]% at least v1.4
-%\end{verbatim}
-%This will picked up any language options supplied in the document
-%class options and will also detect if \sty{babel} or
-%\sty{polyglossia} have been loaded.
-%
-%(\LaTeX) If you want to allow the user to set the locale in the
-%package options:
-%\begin{verbatim}
-%\DeclareOption*{\TrackLanguageTag{\CurrentOption}}
-%\end{verbatim}
-%This means the user can do, say,
-%\begin{verbatim}
-%\usepackage[hy-Latn-IT-arevela]{mypackage}
-%\end{verbatim}
-%With at least version 1.4, it's better to use \ics{TrackIfKnownLanguage}:
-%\begin{verbatim}
-%\DeclareOption*{%
-% \TrackIfKnownLanguage{\CurrentOption}%
-% {\PackageInfo{mypackage}{Tracking language `\CurrentOption'}}% successful
-% {% failed
-% \PackageError{mypackage}%
-% {Unknown language specification `\CurrentOption'}%
-% {You need to supply either a known dialect label or a valid language tag}%
-% }%
-%}
-%\end{verbatim}
-%
-%The rest of the example package in this section uses generic code.
-%
-%If you want to fetch the locale information from the operating
-%system when the user hasn't requested a language:
-%\begin{verbatim}
-%\AnyTrackedLanguages
-%{}
-%{% fetch locale information from the operating system
-% \ifx\TeXOSQueryLangTag\undefined
-% % texosquery v1.2 not available
-% \TrackLangFromEnv
-% \else
-% % texosquery v1.2 available
-% \TeXOSQueryLangTag{\langtag}
-% \TrackLanguageTag{\langtag}
-% \fi
-%}
-%\end{verbatim}
-%
-%Set up the defaults if necessary:
-%\begin{verbatim}
-%\def\fooname{Foo}
-%\def\barname{Bar}
-%\end{verbatim}
-%
-%Now load the resource files:
-%\begin{verbatim}
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedDialect{\thisdialect}{%
-% \TrackLangRequireDialect{mypackage}{\thisdialect}%
-% }%
-%}
-%{}% no tracked languages, default already set up
-%\end{verbatim}
-%
-%Each resource file has the naming scheme \meta{prefix}\texttt{-}
-%\meta{localeid}\texttt{.ldf}. In this example, the \meta{prefix} is
-%\texttt{mypackage}. The \meta{localeid} part may be the language or dialect label
-%(for example, \texttt{english} or \texttt{british}) or a combination of the ISO
-%language and region codes (for example, \texttt{en-GB} or
-%\texttt{en} or \texttt{GB}). As from version 1.4, \meta{localeid} may
-%also include the script or variant. (See the definition of
-%\ics{IfTrackedLanguageFileExists} on page~\pageref{pg:filesearch}
-%for further details.)
-%
-%The simplest scheme is to use the root language label (not the
-%dialect label) for the base language settings and use the ISO
-%codes for regional support.
-%
-%For example, the file \texttt{mypackage-english.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{english}[2016/10/06 v1.0]% identify this file
-%
-%\TrackLangAddToCaptions{%
-% \def\fooname{Foo}%
-% \def\barname{Bar}%
-%}
-%\end{verbatim}
-%This sets up appropriate the \cs{captions\ldots} hook (if it's
-%found). For other hooks, such as \cs{date\ldots}, use
-%\ics{TrackLangAddToHook}\marg{code}\marg{hook type} instead.
-%
-%With pre-v1.4 versions of \sty{tracklang}, the script isn't included
-%in the file search. If it's needed then either require at least v1.4
-%or have a base ldf file that tries to load a version for the
-%particular script (which can be accessed with
-%\cs{CurrentTrackedScript}).
-%Here's an example for a language with different writing systems.
-%The resource file for Serbian \texttt{mypackage-serbian.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{serbian}[2016/10/06 v1.0]% identify file
-%
-%\TrackLangRequestResource{serbian-\CurrentTrackedScript}
-%{}% file not found, do something sensible here
-%\end{verbatim}
-%The file \texttt{mypackage-serbian-Latn.ldf} sets up
-%the Latin script:
-%\begin{verbatim}
-%\TrackLangProvidesResource{serbian-Latn}[2016/10/06 v1.0]
-%
-%\TrackLangAddToCaptions{%
-% \def\fooname{...}% provide appropriate Latin translations
-% \def\barname{...}%
-%}
-%\end{verbatim}
-%The file \texttt{mypackage-serbian-Cyrl.ldf} sets up
-%the Cyrllic script:
-%\begin{verbatim}
-%\TrackLangProvidesResource{serbian-Cyrl}[2016/10/06 v1.0]
-%
-%\TrackLangAddToCaptions{%
-% \def\fooname{...}% provide appropriate Cyrllic translations
-% \def\barname{...}%
-%}
-%\end{verbatim}
-%
-%With v1.4+ you would just need \texttt{mypackage-sr-Latn.ldf},
-%\texttt{mypackage-sr-Cyrl.ldf} for the regionless versions.
-%
-%\section{Language Packages}
-%\label{sec:summary-langpkg}
-%
-%Let's suppose now you're the developer of a package that
-%sets up the language, hyphenation patterns and so on.
-%It would be really helpful to the locale-sensitive packages
-%in \sectionref{sec:summary-localepkg} to know what languages
-%the document author has requested. You can use the
-%\styfmt{tracklang} package to identify this information
-%by tracking the requested localisation, so that other packages
-%can have a consistent way of querying it. (See also:
-%\href{https://www.dickimaw-books.com/latex/tracklang/langpkg.shtml}{Integrating
-%\texttt{tracklang.tex} into Language Packages}.)
-%
-%Generic use:
-%\begin{verbatim}
-%\input tracklang
-%\end{verbatim}
-%Alternative \LaTeX\ use:
-%\begin{verbatim}
-%\RequirePackage{tracklang}[2019/11/30] % v1.4
-%\end{verbatim}
-%Unlike \cs{input}, \cs{RequirePackage} will allow \styfmt{tracklang}
-%to pick up the document class options, but using \cs{RequirePackage}
-%will also trigger the tests for known language packages.
-%(If you want to find out if \styfmt{tracklang} has already been
-%loaded and locales have already been tracked, you can use the
-%same code as in the previous section.)
-%
-%When a user requests a particular language through your package,
-%the simplest way of letting \styfmt{tracklang} know about it
-%is to use \cs{TrackPredefinedDialect} or \cs{TrackLanguageTag}.
-%For example, if the user requests \texttt{british}, that's a
-%predefined dialect so you can just do:
-%\begin{verbatim}
-%\TrackPredefinedDialect{british}
-%\end{verbatim}
-%Alternatively
-%\begin{verbatim}
-%\TrackLanguageTag{en-GB}
-%\end{verbatim}
-%If your package uses caption hooks, then you can set up
-%a mapping between \styfmt{tracklang}'s internal dialect label
-%and your caption label. For example, let's suppose the
-%closest match to English used in Malta (\texttt{en-MT}) is the
-%dialect \texttt{UKenglish} (for example, the date format is
-%similar between GB and MT):
-%\begin{verbatim}
-%\TrackLanguageTag{en-MT}
-%\SetTrackedDialectLabelMap{\TrackLangLastTrackedDialect}{UKenglish}
-%\def\captionsUKenglish{%
-% \def\contentsname{Contents}%
-% %...
-%}
-%\end{verbatim}
-%(The predefined \pkgopt{maltaenglish} option provided by
-%\styfmt{tracklang} automatically sets the mapping to
-%\texttt{british}, but the above method will change that mapping
-%to \texttt{UKenglish}.)
-%
-%This now means that \cs{TrackLangAddToHook} and \cs{TrackLangRedefHook} commands can
-%find your language hooks. You don't need the map if your dialect
-%label is the same as \styfmt{tracklang}'s root language label
-%for that locale. For example:
-%\begin{verbatim}
-%\TrackLanguageTag{en-MT}
-%\def\captionsenglish{%
-% \def\contentsname{Contents}%
-% %...
-%}
-%\end{verbatim}
-%
-%When the user switches language through commands like
-%\ics{selectlanguage} it would be useful to also use
-%\ics{SetCurrentTrackedDialect}\marg{dialect} to make it easier
-%for the document author or locale-sensitive packages to pick
-%up the current locale. The \meta{dialect} argument may be
-%\styfmt{tracklang}'s internal dialect label or the dialect
-%label you assigned with \cs{SetTrackedDialectLabelMap}. It
-%may also be the root language label, in which case
-%\styfmt{tracklang} will search for the last dialect to be
-%tracked with that language. For example:
-%\begin{verbatim}
-%\def\selectlanguage#1{%
-% \SetCurrentTrackedDialect{#1}%
-% % set up hyphenation patterns etc
-%}
-%\end{verbatim}
-%See the example in \sectionref{sec:summary-doc} or the example in
-%\href{https://www.dickimaw-books.com/latex/tracklang/langpkg.shtml}{Integrating
-%\texttt{tracklang.tex} into Language Packages}.
-%
-%\chapter{Generic Use}
-%\label{sec:generic}
-%
-%For plain \TeX\ you can input \texttt{tracklang.tex}:
-%\begin{verbatim}
-%\input tracklang
-%\end{verbatim}
-%or for \TeX\ formats that have an argument form for \ics{input}:
-%\begin{verbatim}
-%\input{tracklang}
-%\end{verbatim}
-%As from version 1.3, you don't need to change the category
-%code of \texttt{@} before loading \texttt{tracklang.tex}
-%as it will automatically be changed to 11 and switched
-%back at the end (if required).
-%
-%The \LaTeX\ package \texttt{tracklang.sty}
-%inputs the generic \TeX\ code in \texttt{tracklang.tex}, but before
-%it does so it defines
-%\begin{definition}
-%\cs{@tracklang@declareoption}\marg{name}
-%\end{definition}
-%to
-%\begin{definition}
-%\cs{DeclareOption}\marg{name}\{\cs{TrackPredefinedDialect}\marg{name}\}
-%\end{definition}
-%
-%This means that all the predefined languages and dialects
-%(\refoptstables) automatically become package options, so
-%the \styfmt{tracklang} package can pick up document class
-%options and add them to \styfmt{tracklang}'s internal list of tracked
-%document languages.
-%
-%If you're not using \LaTeX, this option isn't available
-%(although you could redefine the internal command
-%\cs{@tracklang@declareoption}
-%to use something analogous to \cs{DeclareOption}).
-%Instead, the document languages need
-%to be explicitly identified (using any of the following commands)
-%so that \styfmt{tracklang} knows about them.
-%
-%\begin{definition}[\DescribeMacro\TrackPredefinedDialect]
-%\ics{TrackPredefinedDialect}\marg{dialect label}
-%\end{definition}
-%This will add the predefined dialect and its associated ISO codes to the list
-%of tracked document languages. The \meta{dialect label} may be any
-%of those listed in \refoptstables.
-%(See also \sectionref{sec:predefinedlang} and \sectionref{sec:predefined}.)
-%
-%For example:
-%\begin{verbatim}
-%\input tracklang
-%\TrackPredefinedDialect{british}
-%\end{verbatim}
-%is the Plain \TeX\ alternative to
-%\begin{verbatim}
-%\documentclass[british]{article}
-%\usepackage{tracklang}
-%\end{verbatim}
-%
-%Note that it's impractical to define every possible language
-%and region combination as it would significantly slow the
-%time taken to load \styfmt{tracklang} so, after version~1.3,
-%I don't intend adding any new predefined dialects. As from version
-%1.3, if you want to track a dialect that's not predefined by
-%\styfmt{tracklang}, then you can use:
-%\begin{definition}[\DescribeMacro\TrackLocale]
-%\cs{TrackLocale}\marg{locale}
-%\end{definition}
-%If \meta{locale} is a recognised dialect, this is equivalent to
-%using \cs{TrackPredefinedDialect}, otherwise \meta{locale}
-%needs to be in one the following formats:
-%\begin{itemize}
-%\item \meta{ISO lang}
-%\item \meta{ISO lang}\texttt{@}\meta{modifier}
-%\item \meta{ISO lang}\texttt{-}\meta{ISO country}
-%\item \meta{ISO lang}\texttt{-}\meta{ISO country}\texttt{@}\meta{modifier}
-%\end{itemize}
-%where \meta{ISO lang} is the ISO~639-1 or 639-2 code identifying
-%the language (lower case), \meta{ISO country} is the 3166-1
-%ISO code identifying the territory (upper case) and
-%\meta{modifier} is the modifier or variant. The hyphen may be
-%replaced by an underscore character. Code set information in the
-%form \texttt{.}\meta{codeset} may optionally appear before the
-%modifier. For example, \texttt{de-DE.utf8@new} (modifier is
-%\texttt{new}) or \texttt{en-GB.utf8} (modifier is missing).
-%The codeset will be ignored if present, but it won't interfere
-%with the parsing.
-%
-%For example:
-%\begin{verbatim}
-%\TrackLocale{de-NA@new}
-%\end{verbatim}
-%indicates German in Namibia using the new spelling.
-%
-%\begin{important}
-%If a language has different \qt{T} and \qt{B} ISO~639-2 codes, then
-%the \qt{T} form should be used. (So for the above example,
-%\texttt{deu} may be used instead of \texttt{de}, but \texttt{ger}
-%won't be recognised.)
-%\end{important}
-%
-%Alternatively, you can use
-%\begin{definition}[\DescribeMacro\TrackLanguageTag]
-%\cs{TrackLanguageTag}\marg{tag}
-%\end{definition}
-%where \meta{tag} is a regular, well-formed language tag or a recognised dialect
-%label. (Irregular grandfather tags aren't recognised.)
-%This command will fully expand \meta{tag}.
-%A warning is issued if the tag is empty.
-%
-%If you want to first check that \meta{tag} includes a valid language
-%code, then you can instead use:
-%\begin{definition}[\DescribeMacro\TrackIfKnownLanguage]
-%\cs{TrackIfKnownLanguage}\marg{tag}\marg{success code}\marg{fail code}
-%\end{definition}
-%This will only track \meta{tag} (and then do \meta{success code}) if
-%\meta{tag} starts with a valid language code (or is a predefined
-%dialect) otherwise it will do \meta{fail code}. Both
-%\cs{TrackLanguageTag} and \cs{TrackIfKnownLanguage} will check if
-%\meta{tag} is a predefined option. (This saves parsing the tag if
-%it's recognised.)
-%
-%For example:
-%\begin{verbatim}
-%\TrackLanguageTag{hy-Latn-IT-arevela}
-%Latn-ME: \TrackIfKnownLanguage{Latn-ME}{success}{fail}.
-%brazilian: \TrackIfKnownLanguage{brazilian}{success}{fail}.
-%\end{verbatim}
-%This will track hy-Latn-IT-arevela and brazilian (pt-BR) but not
-%Latn-ME (because it doesn't contain a valid language code) even
-%though it's a valid script and country code. The above is just for
-%illustrative purposes. Typically the language tracking isn't
-%performed within the document text.
-%
-%The \sty{datetime2} package assumes that any unknown package option is a
-%language identifier. It could simply do:
-%\begin{verbatim}
-%\TrackLanguageTag{\CurrentOption}
-%\end{verbatim}
-%but users can make mistakes sometimes and this won't provide any
-%helpful information if they, for example, misspelt a package option
-%or forgot the ``\meta{key}='' part of a \meta{key}=\meta{value}
-%setting. Instead (as from v1.5.5) it does:
-%\begin{verbatim}
-%\TrackIfKnownLanguage{\CurrentOption}{...}{\PackageError{...}{...}{...}}
-%\end{verbatim}
-%This will now give the user some guidance.
-%
-%If \meta{tag} contains a sub-language tag, this will be set
-%as the 639-3 code for the \emph{dialect} label. Note that this is
-%different to the root language codes which are set using the
-%language label. For example
-%\begin{verbatim}
-%\TrackLanguageTag{zh-cmn-Hans-CN}
-%\end{verbatim}
-%creates a new dialect with the label \texttt{zhcmnHansCN}.
-%The root language \texttt{chinese} has the ISO 639-1 code
-%\texttt{zh} and the dialect \texttt{zhcmnHansCN} has the
-%ISO 639-3 code \texttt{cmn}.
-%\begin{verbatim}
-%ISO 639-1: \TrackedIsoCodeFromLanguage{639-1}{chinese}.
-%ISO 639-3: \TrackedIsoCodeFromLanguage{639-3}{zhcmnHansCN}.
-%\end{verbatim}
-%
-%Version 1.2 of \sty{texosquery} provides the command \ics{TeXOSQueryLangTag},
-%which may be used to fetch the operating system's regional
-%information as a language tag. These commands can be used as
-%follows:
-%\begin{verbatim}
-%\input tracklang % v1.3
-%\input texosquery % v1.2
-%
-%\TeXOSQueryLangTag{\langtag}
-%\TrackLanguageTag{\langtag}
-%\end{verbatim}
-%(If the shell escape is disabled, \cs{langtag} will be empty, which
-%will trigger a~warning but no errors.)
-%
-%Some of the predefined root language options listed
-%in \tableref{tab:rootlangopts} have an associated region
-%(denoted by \fnregion).
-%If \cs{TrackLocale} is used with just the language ISO code,
-%no region is tracked for that language. For example
-%\begin{verbatim}
-%\TrackLocale{manx}
-%\end{verbatim}
-%will track the \qt{IM} ISO~3166-1 code but
-%\begin{verbatim}
-%\TrackLocale{gv}
-%\end{verbatim}
-%won't track the region.
-%Similarly for \cs{TrackLanguageTag}.
-%
-%(New to version 1.3.)
-%There's a similar command to \cs{TrackLocale} that doesn't take an argument:
-%\begin{definition}[\DescribeMacro\TrackLangFromEnv]
-%\cs{TrackLangFromEnv}
-%\end{definition}
-%If the shell escape has been enabled or
-%\ics{directlua} is available, this will try to get the language
-%information from the system environment variables
-%\envvar{LC\_ALL} or \envvar{LANG}
-%and, if successful, track that.
-%
-%Since \styfmt{tracklang} is neither able to look up the POSIX locale
-%tables nor interpret file locales, if the result is \texttt{C} or
-%\texttt{POSIX} or starts with a forward slash \texttt{/} then
-%the locale value is treated as empty.
-%
-%\begin{important}
-%Not all operating systems use environment variables for
-%the system locale information. For example, Windows stores the
-%locale information in the registry. In which case, consider
-%using \styfmt{texosquery}.
-%\end{important}
-%
-%If the operating system locale can't be obtained from environment variables, then
-%\styfmt{tracklang} will use \ics{TeXOSQueryLocale} as a fallback if
-%\styfmt{texosquery} has been loaded. Since \sty{texosquery} requires
-%both the shell escape and the Java runtime environment,
-%\styfmt{tracklang} doesn't automatically load it.
-%
-%Plain \TeX\ example:
-%\begin{verbatim}
-%\input texosquery
-%\input tracklang
-%\TrackLangFromEnv
-%\end{verbatim}
-%with \texttt{etex -{}-shell-escape }\meta{filename}
-%
-%\LaTeX\ example:
-%\begin{verbatim}
-%\usepackage{texosquery}
-%\usepackage{tracklang}
-%\TrackLangFromEnv
-%\end{verbatim}
-%with \texttt{latex -{}-shell-escape }\meta{filename}
-%
-%If the locale can't be determined, there will be warning messages.
-%These can be suppressed using
-%\begin{definition}[\DescribeMacro\TrackLangShowWarningsfalse]
-%\cs{TrackLangShowWarningsfalse}
-%\end{definition}
-%or switched back on again using
-%\begin{definition}[\DescribeMacro\TrackLangShowWarningstrue]
-%\cs{TrackLangShowWarningstrue}
-%\end{definition}
-%
-%For example, I have the environment variable \envvar{LANG} set to
-%\texttt{en\_GB.utf8} on my Linux system so instead of
-%\begin{verbatim}
-%\TrackPredefinedDialect{british}
-%\end{verbatim}
-%I can use
-%\begin{verbatim}
-%\TrackLangFromEnv
-%\end{verbatim}
-%
-%With \LaTeX\ documents I can do
-%\begin{verbatim}
-%\documentclass{article}
-%\usepackage{tracklang}
-%\TrackLangFromEnv
-%\end{verbatim}
-%However, this only helps subsequently loaded packages that
-%use \styfmt{tracklang} to determine the required regional
-%settings. For example:
-%\begin{verbatim}
-%\documentclass{article}
-%\usepackage{tracklang}
-%\TrackLangFromEnv
-%\usepackage[useregional]{datetime2}
-%\end{verbatim}
-%In my case, with \envvar{LANG} set to \texttt{en\_GB.utf8} and
-%shell escape enabled, this automatically switches on the
-%\texttt{en-GB} date style.
-%Naturally this doesn't help locale-sensitive packages that don't use
-%\styfmt{tracklang}.
-%
-%The \cs{TrackLangFromEnv} command also incidentally sets
-%\begin{definition}[\DescribeMacro\TrackLangEnv]
-%\cs{TrackLangEnv}
-%\end{definition}
-%to the value of the environment variable or empty if the
-%query was unsuccessful (for example, the shell escape is
-%unavailable).
-%
-%If \cs{TrackLangEnv} is already defined before
-%\cs{TrackLangFromEnv} is used, then the environment variable
-%won't be queried and the value of \cs{TrackLangEnv} will be
-%parsed instead.
-%
-%\begin{important}
-%The parser which splits the locale string into
-%its component parts first tries splitting on the underscore
-%\texttt{\_} with its usual category code~8, then tries splitting
-%on a hyphen \texttt{-} with category code~12, and then tries
-%splitting on the underscore \texttt{\_} with category code~12.
-%\end{important}
-%
-%For example:
-%\begin{verbatim}
-%\def\TrackLangEnv{en-GB}
-%\TrackLangFromEnv
-%\end{verbatim}
-%This doesn't perform a shell escape since \cs{TrackLangEnv}
-%is already defined. In this case, you may just as well use
-%\begin{verbatim}
-%\TrackLocale{en-GB}
-%\end{verbatim}
-%(unless you happen to additionally require the component
-%commands that are set by \cs{TrackLangFromEnv}, see below.)
-%
-%If the shell escape is unavailable
-%(for example, your \TeX\ installation prohibits it), you
-%can set this value when you invoke \TeX. For example,
-%if the document file is called \texttt{myDoc.tex} (and it's
-%in Plain \TeX):
-%\begin{verbatim}
-%tex "\\def\TrackLangEnv{$LANG}\\input myDoc"
-%\end{verbatim}
-%
-%The \cs{TrackLangFromEnv} command also happens to store the
-%component parts of the environment variable value in the
-%following commands. (These aren't provided by
-%\cs{TrackLocale}.)
-%
-%The language code is stored in:
-%\begin{definition}[\DescribeMacro\TrackLangEnvLang]
-%\cs{TrackLangEnvLang}
-%\end{definition}
-%
-%The territory (if present) is stored in:
-%\begin{definition}[\DescribeMacro\TrackLangEnvTerritory]
-%\cs{TrackLangEnvTerritory}
-%\end{definition}
-%(Defined to empty if not present.)
-%
-%The codeset (if present) is stored in:
-%\begin{definition}[\DescribeMacro\TrackLangEnvCodeSet]
-%\cs{TrackLangEnvCodeSet}
-%\end{definition}
-%(Defined to empty if not present.)
-%
-%The modifier (if present) is stored in:
-%\begin{definition}[\DescribeMacro\TrackLangEnvModifier]
-%\cs{TrackLangEnvModifier}
-%\end{definition}
-%(Defined to empty if not present.)
-%
-%If you want to query the language environment, but don't
-%want to track the result, you can just use:
-%\begin{definition}[\DescribeMacro\TrackLangQueryEnv]
-%\cs{TrackLangQueryEnv}
-%\end{definition}
-%This only tries to fetch the value of the
-%language environment variable (and use \sty{texosquery} as
-%a fallback, if it has been loaded). It doesn't try to parse the
-%result. The result is stored in \cs{TrackLangEnv} (empty if
-%unsuccessful). Unlike \cs{TrackLangFromEnv}, this doesn't check if
-%\cs{TrackLangEnv} already exists. A warning will occur if the shell
-%escape is unavailable. For systems that store the locale information in
-%environment variables, this is more efficient than using
-%\sty{texosquery}'s \cs{TeXOSQueryLocale} command (which is what's
-%used as the fallback).
-%
-%The above queries \envvar{LC\_ALL} and, if that is unsuccessful,
-%then queries \envvar{LANG} (before optionally falling back on
-%\sty{texosquery}). If you want another environment
-%variable tried after \envvar{LC\_ALL} and before \envvar{LANG},
-%you can instead use:
-%\begin{definition}[\DescribeMacro\TrackLangQueryOtherEnv]
-%\cs{TrackLangQueryOtherEnv}\marg{name}
-%\end{definition}
-%For example, to also query \envvar{LC\_MONETARY}:
-%\begin{verbatim}
-%\TrackLangQueryOtherEnv{LC_MONETARY}
-%\end{verbatim}
-%
-%Since this sets \cs{TrackLangEnv}, you can use it before
-%\cs{TrackLangFromEnv}. For example:
-%\begin{verbatim}
-%\TrackLangQueryOtherEnv{LC_MONETARY}
-%\TrackLangFromEnv
-%\end{verbatim}
-%Remember that if you only want to do the shell escape if
-%\cs{TrackLangEnv} hasn't already been defined, you can test for this
-%first:
-%\begin{verbatim}
-%\ifx\TrackLangEnv\undefined
-% \TrackLangQueryOtherEnv{LC_MONETARY}
-%\fi
-%\TrackLangFromEnv
-%\end{verbatim}
-%
-%It's also possible to just parse the value of \cs{TrackLangEnv}
-%without tracking the result using:
-%\begin{definition}[\DescribeMacro\TrackLangParseFromEnv]
-%\cs{TrackLangParseFromEnv}
-%\end{definition}
-%This is like \cs{TrackLangFromEnv} but assumes that
-%\cs{TrackLangEnv} has already been set and doesn't track the
-%result. The component parts are stored as for \cs{TrackLangFromEnv}.
-%
-%Example (Plain \TeX):
-%\begin{verbatim}
-%\input tracklang
-%
-%\def\TrackLangEnv{fr-BE.utf8@euro}
-%
-%\TrackLangParseFromEnv
-%
-%Language: \TrackLangEnvLang.
-%Territory: \TrackLangEnvTerritory.
-%Codeset: \TrackLangEnvCodeSet.
-%Modifier: \TrackLangEnvModifier.
-%Any tracked languages? \AnyTrackedLanguages{Yes}{No}.
-%
-%\end{verbatim}
-%This produces:
-%
-%\medskip
-%
-%Language: fr. Territory: BE. Codeset: utf8. Modifier: euro.
-%Any tracked languages? No.
-%
-%\medskip
-%
-%Compare this with:
-%\begin{verbatim}
-%\input tracklang
-%
-%\def\TrackLangEnv{fr-BE.utf8@euro}
-%
-%\TrackLangFromEnv
-%
-%Language: \TrackLangEnvLang.
-%Territory: \TrackLangEnvTerritory.
-%Codeset: \TrackLangEnvCodeSet.
-%Modifier: \TrackLangEnvModifier.
-%Any tracked languages? \AnyTrackedLanguages{Yes}{No}.
-%Tracked dialect(s):%
-%\ForEachTrackedDialect{\thisdialect}{\space\thisdialect}.
-%\end{verbatim}
-%This produces:
-%
-%\medskip
-%
-%Language: fr. Territory: BE. Codeset: utf8. Modifier: euro.
-%Any tracked languages? Yes.
-%Tracked dialect(s): belgique.
-%
-%\medskip
-%
-%If \cs{TrackLangFromEnv} doesn't recognise the given language and
-%territory combination, it will define a new dialect and add that.
-%
-%For example, \styfmt{tracklang} doesn't recognise \texttt{en-BE}, so
-%the sample document below defines a new dialect labelled
-%\texttt{enBEeuro}:
-%\begin{verbatim}
-%\input tracklang
-%
-%\def\TrackLangEnv{en-BE.utf8@euro}
-%
-%\TrackLangFromEnv
-%
-%Language: \TrackLangEnvLang.
-%Territory: \TrackLangEnvTerritory.
-%Codeset: \TrackLangEnvCodeSet.
-%Modifier: \TrackLangEnvModifier.
-%Any tracked languages? \AnyTrackedLanguages{Yes}{No}.
-%Tracked dialect(s):%
-%\ForEachTrackedDialect{\thisdialect}{\space\thisdialect}.
-%\end{verbatim}
-%This now produces:
-%\medskip
-%
-%Language: en. Territory: BE. Codeset: utf8. Modifier: euro.
-%Any tracked languages? Yes.
-%Tracked dialect(s): enBEeuro.
-%
-%\chapter{Detecting the User's Requested Languages}
-%\label{sec:user}
-%
-%The \styfmt{tracklang} package tries to track the loaded languages and
-%the option names used to identify those languages. For want of a better
-%term, the language option names are referred to as dialects even if
-%they're only a synonym for the language rather than an actual
-%dialect. For example, if the user
-%has requested \texttt{british}, the \emph{root language} label is
-%\texttt{english} and the dialect is \texttt{british}, whereas if the
-%user requested \texttt{UKenglish}, the root language label is
-%\texttt{english} and the dialect is \texttt{UKenglish}. The
-%exceptions to this are the \styfmt{tracklang} package options that have been
-%specified in the form \meta{iso lang}-\meta{iso country} (listed
-%in \tableref{tab:rootlangopts}). For
-%example, the package option \texttt{en-GB} behaves as though the
-%user requested the package option \texttt{british}.
-%
-%If \cs{TrackLocale} or \cs{TrackLangFromEnv} are used and the locale
-%isn't recognised a new dialect is created with the label formed from
-%the ISO codes (and modifier, if present).
-%Similarly for \cs{TrackLanguageTag} a new
-%dialect is created with a label that's essentially the language tag
-%without the hyphen separators. For example,
-%\begin{verbatim}
-%\TrackLocale{xx-YY}
-%\end{verbatim}
-%will add a new dialect with the label \texttt{xxYY},
-%\begin{verbatim}
-%\TrackLocale{xx-YY@mod}
-%\end{verbatim}
-%will add a new dialect with the label \texttt{xxYYmod} and
-%\begin{verbatim}
-%\TrackLanguageTag{xx-Latn-YY}
-%\end{verbatim}
-%will add a new dialect with the label \texttt{xxLatnYY}.
-%
-%\begin{important}
-%If \cs{TrackLocale} or \cs{TrackLangFromEnv} find a modifier, the
-%value will be sanitized to allow it to be used as a label. If the
-%modifier is set explicitly using \cs{SetTrackedDialectModifier},
-%no sanitization is performed.
-%\end{important}
-%
-%In addition to the root language label and the dialect identifier,
-%many of the language options also have corresponding ISO codes. In
-%most cases there is an ISO~639-1 or an ISO~639-2 code (or both), and in some
-%cases there is an ISO~3166-1 code identifying the dialect region.
-%Where a language has both a \qt{T} and a \qt{B} ISO~639-2
-%code, the \qt{T} version is assumed.
-%
-%When the \styfmt{tracklang} \LaTeX\ package is loaded, it first attempts to find the
-%language options through the package options supplied to
-%\styfmt{tracklang}. This means that any languages that have been
-%supplied in the document class options should get identified
-%(provided that the document class has used the standard option
-%declaration mechanism). If no languages have been supplied in this
-%way, \styfmt{tracklang} then attempts to identify any \sty{babel}
-%language options and failing that it will try the \sty{translator}
-%language options. It will then check if \sty{ngerman} or
-%\sty{polyglossia} have been loaded.
-%
-%Each identified language and dialect is added to the \emph{tracked
-%language} and \emph{tracked dialect} lists. Note that the tracked
-%language and tracked dialect are labels rather than proper nouns.
-%If a~dialect label is identical to its root language label, the
-%label will appear in both lists.
-%
-%You can check whether or not any languages have been detected using:
-%\begin{definition}[\DescribeMacro\AnyTrackedLanguages]
-%\cs{AnyTrackedLanguages}\marg{true part}\marg{false part}
-%\end{definition}
-%This will do \meta{true part} if one or more languages have been
-%detected otherwise it will do \meta{false part}. (Each detected
-%dialect will automatically have the root language label added
-%to the tracked language list, if it's not already present.)
-%
-%If you want to find out if any of the tracked dialects
-%matches a particular language tag, you can use:
-%\begin{definition}[\DescribeMacro\GetTrackedDialectFromLanguageTag]
-%\ics{GetTrackedDialectFromLanguageTag}\marg{tag}\marg{cs}
-%\end{definition}
-%If successful, the supplied control sequence \meta{cs} is set to the
-%dialect label, otherwise \meta{cs} is set to empty. The test is for an exact
-%match on the root language, script, sub-language, variant and
-%region. The control sequence \meta{cs} will be empty if none of the
-%tracked dialects matches all five of those elements. (If the script
-%isn't given explicitly, the default for that language is assumed.)
-%In the event that \meta{cs} is empty, you can now (as from v1.3.6)
-%get the closest match with
-%\begin{definition}[\DescribeMacro\TrackedDialectClosestSubMatch]
-%\ics{TrackedDialectClosestSubMatch}
-%\end{definition}
-%(which is set by \cs{GetTrackedDialectFromLanguageTag}).
-%This will be empty if no tracked dialects match on the root
-%language or if there's a tracked dialect label that exactly matches
-%the label formed by concatenating the language code, sub-language,
-%script, region, modifier and variant.
-%
-%For example (Plain \TeX):
-%\begin{verbatim}
-%\input tracklang
-%\TrackLanguageTag{en-826}
-%Has en-Latn-GB been tracked?
-%\GetTrackedDialectFromLanguageTag{en-Latn-GB}{\thisdialect}%
-%\ifx\thisdialect\empty
-% No!
-%\else
-% Yes! Dialect label: \thisdialect.
-%\fi
-%\bye
-%\end{verbatim}
-%This matches because the territory code 826 is recognised as
-%equivalent to the code GB, and the default script for
-%\texttt{english} is \texttt{Latn}. In this case, the dialect
-%label is \texttt{british}. Note that this doesn't require
-%the use of \cs{TrackLanguageTag} to track the dialect.
-%It also works if the dialect has been tracked using other commands,
-%such as \cs{TrackLocale}.
-%
-%Here's an example that doesn't have an exact match, but does have a
-%partial match:
-%\begin{verbatim}
-%\input tracklang
-%\TrackLanguageTag{de-CH-1996}
-%Has de-DE-1996 been tracked?
-%\GetTrackedDialectFromLanguageTag{de-DE-1996}{\thisdialect}%
-%\ifx\thisdialect\empty
-% No!
-% \ifx\TrackedDialectClosestSubMatch\empty
-% No match on root language.
-% \else
-% Closest match: \TrackedDialectClosestSubMatch.
-% \fi
-%\else
-% Yes! Dialect label: \thisdialect.
-%\fi
-%\bye
-%\end{verbatim}
-%In this case the result is:
-%\begin{quote}
-%Has de-DE-1996 been tracked? No! Closest match: nswissgerman.
-%\end{quote}
-%
-%You can iterate through each tracked dialect using:
-%\begin{definition}[\DescribeMacro\ForEachTrackedDialect]
-%\cs{ForEachTrackedDialect}\marg{cs}\marg{code}
-%\end{definition}
-%At the start of each iteration, this sets the control sequence
-%\meta{cs} to the tracked dialect and does \meta{code}.
-%
-%You can iterate through each tracked language using:
-%\begin{definition}[\DescribeMacro\ForEachTrackedLanguage]
-%\cs{ForEachTrackedLanguage}\marg{cs}\marg{code}
-%\end{definition}
-%At the start of each iteration, this sets the control sequence \meta{cs} to the
-%tracked language and does \meta{code}.
-%
-%The above for-loops use the same internal mechanism as \LaTeX's
-%\cs{@for} loop. The provided control sequence \meta{cs} is updated at the
-%start of each iteration to the current element. The loop is
-%terminated when this control sequence is set to \cs{@nil}. This
-%special control sequence should never been used as it's just a
-%marker and isn't actually defined. If you get an error message
-%stating that \cs{@nil} is undefined, then it's most likely due to a
-%loop control sequence being used outside the loop. This can occur if
-%the loop contains code that isn't expanded until later. For example,
-%if the loop code includes \cs{AtBeginDocument}, you need to ensure
-%that the loop control sequence is expanded before being added to the
-%hook.
-%
-%You can test if a root language has been detected using:
-%\begin{definition}[\DescribeMacro\IfTrackedLanguage]
-%\cs{IfTrackedLanguage}\marg{label}\marg{true part}\marg{false part}
-%\end{definition}
-%where \meta{label} is the language label. If
-%true, this does \meta{true part} otherwise it does \meta{false
-%part}.
-%
-%You can test if a particular dialect has been detected using:
-%\begin{definition}[\DescribeMacro\IfTrackedDialect]
-%\cs{IfTrackedDialect}\marg{label}\marg{true part}\marg{false part}
-%\end{definition}
-%where \meta{label} is the dialect label. If the root language was explicitly specified, then it will
-%also be detected as a dialect.
-%
-%For example:
-%\begin{verbatim}
-%\documentclass[british,dutch]{article}
-%
-%\usepackage{tracklang}
-%
-%\begin{document}
-%``english'' \IfTrackedDialect{english}{has}{hasn't} been specified.
-%
-%``british'' \IfTrackedDialect{british}{has}{hasn't} been specified.
-%
-%``flemish'' \IfTrackedDialect{flemish}{has}{hasn't} been specified.
-%
-%``dutch'' \IfTrackedDialect{dutch}{has}{hasn't} been specified.
-%
-%``english'' or an English variant
-%\IfTrackedLanguage{english}{has}{hasn't} been specified.
-%
-%\end{document}
-%\end{verbatim}
-%This produces:
-%\begin{quote}
-%``english'' hasn't been specified.
-%
-%``british'' has been specified.
-%
-%``flemish'' hasn't been specified.
-%
-%``dutch'' has been specified.
-%
-%``english'' or an English variant has been specified.
-%\end{quote}
-%
-%You can find the root language label for a given tracked dialect
-%using:
-%\begin{definition}[\DescribeMacro\TrackedLanguageFromDialect]
-%\cs{TrackedLanguageFromDialect}\marg{dialect}
-%\end{definition}
-%If \meta{dialect} hasn't been defined this does nothing otherwise it
-%expands to the root language label.
-%
-%You can find the tracked dialects from a given root language
-%using:
-%\begin{definition}[\DescribeMacro\TrackedDialectsFromLanguage]
-%\cs{TrackedDialectsFromLanguage}\marg{root language label}
-%\end{definition}
-%This will expand to a~comma-separated list of dialect labels
-%if the root language label has been defined, otherwise it
-%does nothing.
-%
-%
-%You can test if a language or dialect has a corresponding ISO code using:
-%\begin{definition}[\DescribeMacro\IfTrackedLanguageHasIsoCode]
-%\cs{IfTrackedLanguageHasIsoCode}\marg{code
-%type}\marg{label}\marg{true part}\marg{false part}
-%\end{definition}
-%where \meta{code type} is the type of ISO code (for example,
-%\texttt{639-1} for root languages or \texttt{3166-1} for regional
-%dialects), and \meta{label} is the language or dialect label.
-%Note that the \texttt{639-3} may be set for the dialect
-%rather than root language for sub-languages parsed using
-%\ics{TrackLanguageTag}.
-%
-%Alternatively, you can test if a particular ISO code has been
-%defined using:
-%\begin{definition}[\DescribeMacro\IfTrackedIsoCode]
-%\cs{IfTrackedIsoCode}\marg{code type}\marg{code}\marg{true
-%part}\marg{false part}
-%\end{definition}
-%where \meta{code type} is again the type of ISO code (for example,
-%\texttt{639-1} or \texttt{3166-1}), and \meta{code} is the
-%particular code (for example, \texttt{en} for ISO 639-1 or
-%\texttt{GB} for ISO 3166-1).
-%
-%You can fetch the language (or dialect) label associated with a
-%given ISO code using:
-%\begin{definition}[\DescribeMacro\TrackedLanguageFromIsoCode]
-%\cs{TrackedLanguageFromIsoCode}\marg{code type}\marg{code}
-%\end{definition}
-%This does nothing if the given \meta{code} for the given ISO
-%\meta{code type} has not been defined, otherwise it expands
-%a~comma-separated list of language or dialect labels.
-%
-%You can fetch the ISO code for a given code type using:
-%\begin{definition}[\DescribeMacro\TrackedIsoCodeFromLanguage]
-%\cs{TrackedIsoCodeFromLanguage}\marg{code type}\marg{label}
-%\end{definition}
-%where \meta{label} is the language or dialect label and \meta{code
-%type} is the ISO code type (for example, \texttt{639-1} or
-%\texttt{3166-1}). Unlike \ics{TrackedLanguageFromIsoCode}, this
-%command only expands to a single label rather than a~comma-separated
-%list.
-%
-%The above commands do nothing in the event of an unknown code or
-%code type,
-%so if you accidentally get the wrong code type, you won't get an error.
-%If you're unsure of the code type, you can use the following commands:
-%\begin{definition}[\DescribeMacro\TwoLetterIsoCountryCode]
-%\cs{TwoLetterIsoCountryCode}
-%\end{definition}
-%This expands to 3166-1 and is used for the two-letter country codes.
-%
-%\begin{definition}[\DescribeMacro\TwoLetterIsoLanguageCode]
-%\cs{TwoLetterIsoLanguageCode}
-%\end{definition}
-%This expands to 639-1 and is used for the two-letter root language codes.
-%
-%\begin{definition}[\DescribeMacro\ThreeLetterIsoLanguageCode]
-%\cs{ThreeLetterIsoLanguageCode}
-%\end{definition}
-%This expands to 639-2 and is used for the three-letter root language
-%codes.
-%
-%\begin{definition}[\DescribeMacro\ThreeLetterExtIsoLanguageCode]
-%\cs{ThreeLetterExtIsoLanguageCode}
-%\end{definition}
-%(New to v1.3.) This expands to 639-3. This code is only used for a root language if
-%there's no 639-1 or 639-2 code. It may also be used for a
-%dialect if a sub-language part has been set in the language
-%tag parsed by \cs{TrackLanguageTag}.
-%
-%The \cs{Get\ldots} commands below are designed to be expandable.
-%If the supplied \meta{dialect} is unrecognised they expand to empty.
-%Remember that the dialect must first be identified as a tracked
-%language for it to be recognised.
-%
-%As from v1.3, the language tag for a given dialect can be obtained
-%using:
-%\begin{definition}[\DescribeMacro\GetTrackedLanguageTag]
-%\cs{GetTrackedLanguageTag}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} is the label identifying the dialect.
-%Uses the \texttt{und} (undetermined) code for unknown languages.
-%
-%As from v1.3, each tracked dialect may also have an associated
-%modifier, which can be fetched using:
-%\begin{definition}[\DescribeMacro\GetTrackedDialectModifier]
-%\cs{GetTrackedDialectModifier}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} is the label identifying the dialect.
-%This value is typically obtained by parsing a POSIX locale identifier
-%with \cs{TrackLocale} or \cs{TrackLangFromEnv} but may be set explicitly.
-%(See \sectionref{sec:langsty} for setting this value. Likewise for
-%the following commands.)
-%
-%You can test if a dialect has an associated modifier using:
-%\begin{definition}[\DescribeMacro\IfHasTrackedDialectModifier]
-%\cs{IfHasTrackedDialectModifier}\marg{dialect}\marg{true}\marg{false}
-%\end{definition}
-%If the dialect has an associated modifier this does \meta{true}
-%otherwise it does \meta{false}.
-%
-%For example:
-%\begin{verbatim}
-%\documentclass[british,francais,american,canadian,canadien,dutch]{article}
-%
-%\usepackage{tracklang}
-%
-%\begin{document}
-%
-%Languages: \ForEachTrackedLanguage{\ThisLanguage}{\ThisLanguage\space
-%(ISO \TwoLetterIsoLanguageCode:
-%``\TrackedIsoCodeFromLanguage{\TwoLetterIsoLanguageCode}{\ThisLanguage}''). }
-%
-%Dialects: \ForEachTrackedDialect{\ThisDialect}{\ThisDialect\space
-%(\IfTrackedLanguageHasIsoCode{\TwoLetterIsoCountryCode}{\ThisDialect}%
-% {ISO \TwoLetterIsoCountryCode:
-% ``\TrackedIsoCodeFromLanguage{\TwoLetterIsoCountryCode}{\ThisDialect}''}%
-% {no specific region};
-%root: \TrackedLanguageFromDialect{\ThisDialect}). }
-%
-%Language for ISO \TwoLetterIsoCountryCode\ ``GB'':
-%\TrackedLanguageFromIsoCode{\TwoLetterIsoCountryCode}{GB}.
-%
-%Language for ISO \TwoLetterIsoCountryCode\ ``CA'':
-%\TrackedLanguageFromIsoCode{\TwoLetterIsoCountryCode}{CA}.
-%
-%Country ISO \TwoLetterIsoCountryCode\ code for ``canadian'':
-%\TrackedIsoCodeFromLanguage{\TwoLetterIsoCountryCode}{canadian}.
-%
-%\end{document}
-%\end{verbatim}
-%This produces:
-%\begin{quote}
-%Languages: english (ISO 639-1: ``en''). french (ISO 639-1: ``fr'').
-%dutch (ISO 639-1: ``nl'').
-%
-%Dialects: american (ISO 3166-1: ``US''; root: english).
-%british (ISO 3166-1: ``GB''; root: english).
-%canadian (ISO 3166-1: ``CA''; root: english).
-%canadien (ISO 3166-1: ``CA''; root: french).
-%dutch (no specific region; root: dutch).
-%francais (no specific region; root: french).
-%
-%Language for ISO 3166-1 ``GB'': british.
-%
-%Language for ISO 3166-1 ``CA'': canadian,canadien.
-%
-%Country ISO 3166-1 code for ``canadian'': CA.
-%
-%\end{quote}
-%
-%As from v1.3, each tracked dialect may also have an associated
-%variant, which can be fetched using:
-%\begin{definition}[\DescribeMacro\GetTrackedDialectVariant]
-%\cs{GetTrackedDialectVariant}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} is the label identifying the dialect.
-%This value is typically obtained by parsing a language tag
-%with \cs{TrackLanguageTag} but may be set explicitly.
-%
-%You can test if a dialect has an associated variant using:
-%\begin{definition}[\DescribeMacro\IfHasTrackedDialectVariant]
-%\cs{IfHasTrackedDialectVariant}\marg{dialect}\marg{true}\marg{false}
-%\end{definition}
-%
-%As from v1.3, each tracked dialect may also have an associated
-%script, which can be fetched using:
-%\begin{definition}[\DescribeMacro\GetTrackedDialectScript]
-%\cs{GetTrackedDialectScript}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} is the label identifying the dialect.
-%
-%You can test if a dialect has an associated script using:
-%\begin{definition}[\DescribeMacro\IfHasTrackedDialectScript]
-%\cs{IfHasTrackedDialectScript}\marg{dialect}\marg{true}\marg{false}
-%\end{definition}
-%If the dialect has an associated script this does \meta{true}
-%otherwise it does \meta{false}. This information is provided
-%for language packages that need to know what script is required,
-%but there's no guarantee that the script will actually be set
-%in the document. Similarly for all the other attributes described
-%here.
-%
-%Note that the script should be a recognised four-letter ISO 15924
-%code, such as \texttt{Latn} or \texttt{Cyrl}. If a~dialect
-%doesn't have an associated script then the default for the root
-%language should be assumed. For example, \qt{Latn} for English dialects or
-%\qt{Cyrl} for Russian dialects. (The default script for
-%known languages can be obtained using
-%\cs{TrackLangGetDefaultScript}, see
-%\sectionref{sec:code:knownlangs} for further details.
-%Most root languages have a default script, but there
-%are a few without one as it may depend on region, politics
-%or ideology.)
-%
-%There's a convenient expandable command for testing the script:
-%\begin{definition}
-%\cs{IfTrackedDialectIsScriptCs}\marg{dialect}\marg{cs}\marg{true}\marg{false}
-%\end{definition}
-%This tests if the given tracked dialect has an associated script and
-%compares the value with the replacement text of \meta{cs}.
-%If the dialect hasn't been explicitly assigned a script,
-%then test is performed against the default script for the root
-%language.
-%
-%The supplementary package \sty{tracklang-scripts} provides some
-%additional commands relating to writing systems, including commands
-%in the form \ics{TrackLangScript\meta{code}} where
-%\meta{code} is the ISO 15924 four-letter code. If the dialect
-%doesn't have an associated script, \meta{false} is done.
-%This package isn't
-%loaded automatically, so you'll need to explicitly load it. The
-%generic code is in \texttt{tracklang-scripts.tex}:
-%\begin{verbatim}
-%\input tracklang-scripts
-%\end{verbatim}
-%There's a convenient \LaTeX\ wrapper \texttt{tracklang-scripts.sty}:
-%\begin{verbatim}
-%\usepackage{tracklang-scripts}
-%\end{verbatim}
-%See \sectionref{sec:tracklang-scripts.tex} for further details of
-%that package.
-%
-%For example, the following defines a command to check if
-%the given dialect should use a Latin script:
-%\begin{verbatim}
-%\input tracklang-scripts
-%\def\islatin#1#2#3{%
-% \IfTrackedDialectIsScriptCs{#1}{\TrackLangScriptLatn}{#2}{#3}%
-%}
-%\end{verbatim}
-%
-%\begin{important}
-%Note that the script value doesn't mean that the document is
-%actually using that script. It means that this is the user's
-%\emph{desired} script, but whether that script is actually set relies
-%on the appropriate settings in the relevant language package (such
-%as \sty{polyglossia}'s \texttt{script} key).
-%\end{important}
-%
-%As from v1.3, each tracked dialect may also have a sub-language
-%identifier (for example, \texttt{arevela}), which can be fetched
-%using:
-%\begin{definition}[\DescribeMacro\GetTrackedDialectSubLang]
-%\cs{GetTrackedDialectSubLang}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} is the label identifying the dialect.
-%
-%You can test if a dialect has an associated sub-tag using:
-%\begin{definition}[\DescribeMacro\IfHasTrackedDialectSubLang]
-%\cs{IfHasTrackedDialectSubLang}\marg{dialect}\marg{true}\marg{false}
-%\end{definition}
-%If the dialect has an associated sub-tag this does \meta{true}
-%otherwise it does \meta{false}.
-%
-%As from v1.3, each tracked dialect may also have additional
-%information, which can be fetched using:
-%\begin{definition}[\DescribeMacro\GetTrackedDialectAdditional]
-%\cs{GetTrackedDialectAdditional}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} is the label identifying the dialect.
-%
-%You can test if a dialect has additional information using:
-%\begin{definition}[\DescribeMacro\IfHasTrackedDialectAdditional]
-%\cs{IfHasTrackedDialectAdditional}\marg{dialect}\marg{true}\marg{false}
-%\end{definition}
-%If the dialect has additional information this does \meta{true}
-%otherwise it does \meta{false}.
-%
-%
-%Most packages that implement multilingual support have a~set of
-%language definition files for each supported language or dialect.
-%It may be that only the root language is needed, if there are no
-%variations between that language's dialect (for the purposes of that
-%package), or it may be that separate definition files are required
-%for each dialect. However it can be awkward trying to map the
-%requested dialect or language label to the file name. Should, say,
-%the file containing the French code be called
-%\meta{prefix}\texttt{-french-}\meta{suffix} or
-%\meta{prefix}\texttt{-frenchb-}\meta{suffix} or
-%\meta{prefix}\texttt{-francais-}\meta{suffix}?
-%Should, say, the file containing the British English code be called
-%\meta{prefix}\texttt{-british-}\meta{suffix} or
-%\meta{prefix}\texttt{-UKenglish-}\meta{suffix}?
-%If you want to modularise the language support for your package so
-%that each language module has a different maintainer will the
-%maintainers know what tag to use for their language?
-%
-%\label{pg:filesearch}To help with this, \styfmt{tracklang} provides:
-%\begin{definition}
-%\ics{IfTrackedLanguageFileExists}\marg{dialect}\marg{prefix}\marg{suffix}\marg{true part}\marg{false part}
-%\end{definition}
-%This attempts to find the file called
-%\meta{prefix}\meta{localeid}\meta{suffix} where \meta{localeid} is determined
-%from \meta{dialect} (see below). If the file is found
-%\begin{definition}
-%\ics{CurrentTrackedTag}
-%\end{definition}
-%is set to \meta{localeid} and \meta{true part} is done, otherwise
-%\meta{false part} is done. If this command
-%is empty, then the dialect hasn't been detected. If the dialect
-%has been detected, but no file can be found, then
-%\ics{CurrentTrackedTag} is set to the final attempt at determining
-%\meta{localeid}.
-%
-%There's a convenient shortcut command new to version 1.3:
-%\begin{definition}[\DescribeMacro\TrackLangRequireDialect]
-%\cs{TrackLangRequireDialect}\oarg{load code}\marg{pkgname}\marg{dialect}
-%\end{definition}
-%which uses \cs{IfTrackedLanguageFileExists} to input the resource
-%file if found. The prefix is given by \meta{pkgname}\texttt{-} and
-%the suffix is \texttt{.ldf}. A warning is issued if no resource file
-%is found. Note that while it makes sense for \meta{pkgname}
-%to be the same as the base name of the package that uses these
-%resource files, they don't have to be the same. This command
-%additionally defines
-%\begin{definition}[\DescribeMacro\TrackLangRequireDialectPrefix]
-%\cs{TrackLangRequireDialectPrefix}
-%\end{definition}
-%to \meta{pkgname}, which allows the prefix to be picked up by
-%resource file commands, such as \cs{TrackLangProvidesResource}
-%and \cs{TrackLangRequireResource}. (See below.)
-%
-%The optional argument \meta{load code} is the code that actually
-%inputs the required file. This defaults to
-%\begin{verbatim}
-%\TrackLangRequireResource{\CurrentTrackedTag}
-%\end{verbatim}
-%
-%
-%The \ics{IfTrackedLanguageFileExists} command sets up the current
-%tracked dialect with
-%\ics{SetCurrentTrackedDialect}\marg{dialect}, which enables the following
-%commands that may be used within \meta{true part} or \meta{false
-%part}:
-%\begin{definition}
-%\ics{CurrentTrackedDialect}
-%\end{definition}
-%The dialect label.
-%
-%\begin{definition}
-%\ics{CurrentTrackedLanguage}
-%\end{definition}
-%If the dialect hasn't been detected, this command will be empty,
-%otherwise it will expand to the root language label (which may
-%be the same as the dialect label).
-%
-%\begin{definition}
-%\ics{CurrentTrackedRegion}
-%\end{definition}
-%If the dialect hasn't been detected, this command will be empty.
-%If the dialect has been assigned an ISO~3166-1 code,
-%\ics{CurrentTrackedRegion} will expand to that code, otherwise it
-%will be empty.
-%
-%\begin{definition}
-%\ics{CurrentTrackedIsoCode}
-%\end{definition}
-%If the dialect hasn't been detected, this command will be empty.
-%Otherwise it may be empty or it may expand to the
-%ISO~639-1 or ISO~639-2 or ISO~639-3 code.
-%
-%\begin{definition}
-%\ics{CurrentTrackedDialectModifier}
-%\end{definition}
-%The dialect's modifier or empty if not set. (This is set but not
-%used in the set of possible \meta{localeid} values.)
-%
-%\begin{definition}
-%\ics{CurrentTrackedDialectVariant}
-%\end{definition}
-%The dialect's variant or empty if not set.
-%
-%\begin{definition}
-%\ics{CurrentTrackedDialectSubTag}
-%\end{definition}
-%The dialect's sub-language code or empty if not set.
-%
-%\begin{definition}
-%\ics{CurrentTrackedDialectAdditional}
-%\end{definition}
-%The dialect's additional information or empty if not set.
-%
-%\begin{definition}
-%\ics{CurrentTrackedLanguageTag}
-%\end{definition}
-%The dialect's language tag. Take care not to confuse this
-%with \cs{CurrentTrackedTag}.
-%
-%\begin{definition}
-%\ics{CurrentTrackedDialectScript}
-%\end{definition}
-%The dialect's script. If the dialect doesn't have the script set,
-%the default script for the language is used instead.
-%
-%\cs{IfTrackedLanguageFileExists} behaves as follows:
-%\begin{itemize}
-% \item If no dialect with the given label has been
-% detected, the condition evaluates to \emph{false} and
-% \ics{CurrentTrackedTag} is empty.
-% \item If a dialect with the given label has been detected, then:
-% \begin{itemize}
-% \item For each possible \meta{localeid} in an ordered set of tags determined by
-% the dialect label (see below), the first file matching
-% \meta{prefix}\meta{localeid}\meta{suffix} that's found on
-% \TeX's path results in the condition evaluating to \emph{true} and
-% \ics{CurrentTrackedTag} is set to the current \meta{localeid} in the
-% set. The rest of the set of possible values of \meta{localeid} is skipped.
-% \item If no file matching \meta{prefix}\meta{localeid}\meta{suffix} is
-% found on \TeX's path, then the condition evaluates to \emph{false}
-% and \ics{CurrentTrackedTag} is set to the final \meta{localeid} in the
-% set (the language label).
-% \end{itemize}
-%\end{itemize}
-%
-%The ordered set of possible values of \meta{localeid} is determined from
-%the given dialect.
-%\begin{important}
-%The ordering has changed in version 1.4, which now also includes the
-%script and variant. This new ordering should typically make the more
-%common combinations closer to the start of the search.
-%\end{important}
-%The possible values of \meta{localeid} are listed below in the order of priority used
-%by \cs{IfTrackedLanguageFileExists}. Note that the set may contain
-%repetitions (for example, if the dialect label is the same as the
-%root language label). If an item contains an element that hasn't
-%been set (such as the ISO~639-3 code or a sub-language \meta{sublang} or variant) then
-%that item is skipped.
-%\begin{enumerate}
-%\item \meta{localeid} is just the value of \ics{CurrentTrackedLanguageTag}.
-%\item \meta{localeid} is just the dialect label.
-%
-%\item \meta{localeid} is
-%\meta{ISO~639-1}\texttt{-}\meta{sublang}\texttt{-}\meta{script}\texttt{-}\meta{region}.
-%\item \meta{localeid} is
-%\meta{ISO~639-1}\texttt{-}\meta{script}\texttt{-}\meta{region}.
-%\item \meta{localeid} is
-%\meta{ISO~639-1}\texttt{-}\meta{sublang}\texttt{-}\meta{region} (if there's no script or if
-%the script is the default for the given language).
-%\meta{ISO~639-1}\texttt{-}\meta{region} (if there's no script or if
-%the script is the default for the given language).
-%\item \meta{localeid} is
-%\meta{ISO~639-1}\texttt{-}\meta{sublang}\texttt{-}\meta{script}.
-%\item \meta{localeid} is
-%\meta{ISO~639-1}\texttt{-}\meta{script}.
-%\item \meta{localeid} is \meta{ISO~639-1}\texttt{-}\meta{sublang}.
-%\item \meta{localeid} is just \meta{ISO~639-1}.
-%
-%\item \meta{localeid} is
-%\meta{ISO~639-2}\texttt{-}\meta{sublang}\texttt{-}\meta{script}\texttt{-}\meta{region}.
-%\item \meta{localeid} is
-%\meta{ISO~639-2}\texttt{-}\meta{script}\texttt{-}\meta{region}.
-%\item \meta{localeid} is
-%\meta{ISO~639-2}\texttt{-}\meta{sublang}\texttt{-}\meta{region} (if there's no script or if
-%the script is the default for the given language).
-%\meta{ISO~639-2}\texttt{-}\meta{region} (if there's no script or if
-%the script is the default for the given language).
-%\item \meta{localeid} is
-%\meta{ISO~639-2}\texttt{-}\meta{sublang}\texttt{-}\meta{script}.
-%\item \meta{localeid} is
-%\meta{ISO~639-2}\texttt{-}\meta{script}.
-%\item \meta{localeid} is \meta{ISO~639-2}\texttt{-}\meta{sublang}.
-%\item \meta{localeid} is just \meta{ISO~639-2}.
-%
-%\item \meta{localeid} is
-%\meta{ISO~639-3}\texttt{-}\meta{sublang}\texttt{-}\meta{script}\texttt{-}\meta{region}.
-%\item \meta{localeid} is
-%\meta{ISO~639-3}\texttt{-}\meta{script}\texttt{-}\meta{region}.
-%\item \meta{localeid} is
-%\meta{ISO~639-3}\texttt{-}\meta{sublang}\texttt{-}\meta{region} (if there's no script or if
-%the script is the default for the given language).
-%\meta{ISO~639-3}\texttt{-}\meta{region} (if there's no script or if
-%the script is the default for the given language).
-%\item \meta{localeid} is
-%\meta{ISO~639-3}\texttt{-}\meta{sublang}\texttt{-}\meta{script}.
-%\item \meta{localeid} is
-%\meta{ISO~639-3}\texttt{-}\meta{script}.
-%\item \meta{localeid} is \meta{ISO~639-3}\texttt{-}\meta{sublang}.
-%\item \meta{localeid} is just \meta{ISO~639-3}.
-%
-%\item \meta{localeid} is just \meta{region}.
-%
-%\item \meta{localeid} is
-%\meta{ISO~639-1}\texttt{-}\meta{sublang}\texttt{-}\meta{variant}
-%or \meta{ISO~639-1}\texttt{-}\meta{variant} if \meta{sublang} is missing.
-%
-%\item \meta{localeid} is
-%\meta{ISO~639-2}\texttt{-}\meta{sublang}\texttt{-}\meta{variant}
-%or \meta{ISO~639-2}\texttt{-}\meta{variant} if \meta{sublang} is missing.
-%
-%\item \meta{localeid} is
-%\meta{ISO~639-3}\texttt{-}\meta{sublang}\texttt{-}\meta{variant}
-%or \meta{ISO~639-3}\texttt{-}\meta{variant} if \meta{sublang} is missing.
-%
-%\item \meta{localeid} is just the value of \ics{CurrentTrackedLanguage}
-%(the root language label).
-%\end{enumerate}
-%
-%For example (pre v1.3):
-%\begin{verbatim}
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedDialect{\ThisDialect}%
-% {% try to load the language file for this dialect
-% \IfTrackedLanguageFileExists{\ThisDialect}%
-% {mypackage-}% file prefix
-% {.ldf}% file suffix
-% {\input mypackage-\CurrentTrackedTag.ldf}% file found
-% {% file not found
-% \PackageWarning{mypackage}{No support for language
-% `\ThisDialect'}%
-% }%
-% }%
-%}
-%{% no languages detected so use defaults
-%}
-%\end{verbatim}
-%With version 1.3 onwards, this can be written more concisely as:
-%\begin{verbatim}
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedDialect{\ThisDialect}%
-% {% try to load the language file for this dialect
-% \TrackLangRequireDialect{mypackage}{\ThisDialect}%
-% }%
-%}
-%{% no languages detected so use defaults
-%}
-%\end{verbatim}
-%which additionally enables the \styfmt{tracklang} version 1.3 commands described below,
-%such as \cs{TrackLangRequireResource}.
-%
-%If, for example, \ics{ThisDialect} is \texttt{british}, then the file search will
-%be in the order:
-%\begin{enumerate}
-%\item \texttt{mypackage-en-GB.ldf} (language tag)
-%\item \texttt{mypackage-british.ldf} (dialect label)
-%
-%\item \texttt{mypackage-en-Latn-GB.ldf} (639-1 language code, script, region)
-%\item \texttt{mypackage-en-GB.ldf} (639-1 language code, region)
-%\item \texttt{mypackage-en-Latn.ldf} (639-1 language code, script)
-%\item \texttt{mypackage-en.ldf} (639-1 language code)
-%
-%\item \texttt{mypackage-eng-Latn-GB.ldf} (639-2 language code, script, region)
-%\item \texttt{mypackage-eng-GB.ldf} (639-2 language code, region)
-%\item \texttt{mypackage-eng-Latn.ldf} (639-2 language code, script)
-%\item \texttt{mypackage-eng.ldf} (639-2 language code)
-%
-%\item \texttt{mypackage-GB.ldf} (region)
-%\item \texttt{mypackage-english.ldf} (language label)
-%\end{enumerate}
-%
-%If, for example, \ics{ThisDialect} is \texttt{naustrian}, then the file search will
-%be in the order:
-%\begin{enumerate}
-%\item \texttt{mypackage-de-AT-1996.ldf} (language tag)
-%\item \texttt{mypackage-naustrian.ldf} (dialect label)
-%
-%\item \texttt{mypackage-de-Latn-AT.ldf} (639-1 language code, script, region)
-%\item \texttt{mypackage-de-AT.ldf} (639-1 language code, region)
-%\item \texttt{mypackage-de-Latn.ldf} (639-1 language code, script)
-%\item \texttt{mypackage-de.ldf} (639-1 language code)
-%
-%\item \texttt{mypackage-deu-Latn-AT.ldf} (639-2 language code, script, region)
-%\item \texttt{mypackage-deu-AT.ldf} (639-2 language code, region)
-%\item \texttt{mypackage-deu-Latn.ldf} (639-2 language code, script)
-%\item \texttt{mypackage-deu.ldf} (639-2 language code)
-%
-%\item \texttt{mypackage-AT.ldf} (region)
-%
-%\item \texttt{mypackage-de-1996.ldf} (639-1 language code, variant)
-%\item \texttt{mypackage-deu-1996.ldf} (639-2 language code, variant)
-%
-%\item \texttt{mypackage-german.ldf} (language label)
-%\end{enumerate}
-%
-%If, for example, \ics{ThisDialect} is \texttt{francais}, then the file search will
-%be in the order:
-%\begin{enumerate}
-%\item \texttt{mypackage-fr.ldf} (language tag)
-%\item \texttt{mypackage-francais.ldf} (dialect label)
-%\item \texttt{mypackage-fr-Latn.ldf} (639-1 language code, script)
-%\item \texttt{mypackage-fr.ldf} (639-1 language code)
-%\item \texttt{mypackage-fra-Latn.ldf} (639-2 language code, script)
-%\item \texttt{mypackage-fra.ldf} (639-2 language code)
-%\item \texttt{mypackage-french.ldf} (language)
-%\end{enumerate}
-%This is because the predefined \texttt{francais} option has no
-%region assigned to it. Be careful if the dialect label is the actual
-%root language. For example, if \cs{ThisDialect} is \texttt{french},
-%then the file search will be in the order:
-%\begin{enumerate}
-%\item \texttt{mypackage-fr.ldf} (language tag)
-%\item \texttt{mypackage-french.ldf} (dialect label)
-%\item \texttt{mypackage-fr-Latn.ldf} (639-1 language code, script)
-%\item \texttt{mypackage-fr.ldf} (639-1 language code)
-%\item \texttt{mypackage-fra-Latn.ldf} (639-2 language code, script)
-%\item \texttt{mypackage-fra.ldf} (639-2 language code)
-%\item \texttt{mypackage-french.ldf} (language)
-%\end{enumerate}
-%Note that the last try will always fail in this case since if the
-%file exists, it will be found on the second try.
-%
-%If the dialect label is identical to the root language label then it
-%means that all associated information is the default
-%for that language. For example, in the above case of \texttt{french},
-%the script is \texttt{Latn} and the region is unspecified. The root
-%language label can therefore be used as the fallback in the event of
-%no other match but for the specific case where the dialect is
-%identical to the root language then all unnecessary file name checks
-%can be skipped.
-%
-%If you're only providing support for the root languages (pre v1.3):
-%\begin{verbatim}
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedLanguage{\ThisLanguage}%
-% {% try to load the language file for this root language
-% \IfTrackedLanguageFileExists{\ThisLanguage}%
-% {mypackage-}% file prefix
-% {.ldf}% file suffix
-% {\input mypackage-\CurrentTrackedTag.ldf}% file found
-% {% file not found
-% \PackageWarning{mypackage}{No support for language
-% `\ThisLanguage'}%
-% }%
-% }%
-%}
-%{% no languages detected so use defaults
-%}
-%\end{verbatim}
-%With version 1.3 onwards, this can be written more concisely as:
-%\begin{verbatim}
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedLanguage{\ThisLanguage}%
-% {% try to load the language file for this root language
-% \TrackLangRequireDialect{mypackage}{\ThisLanguage}%
-% }%
-%}
-%{% no languages detected so use defaults
-%}
-%\end{verbatim}
-%which additionally enables the commands described below.
-%Note that in this case, if more than one dialect for the same
-%language has been tracked, only the hooks for the last dialect for
-%that language will be adjusted, so it's usually best to iterate over
-%the dialects.
-%
-%The following \cs{TrackLang\ldots Resource\ldots} commands may
-%only be used in resource files that are loaded using
-%\ics{TrackLangRequireDialect}. An error will occur if the file is
-%input through some other method.
-%
-%Within the resource file
-%\meta{pkgname}\texttt{-}\meta{localeid}\texttt{.ldf},
-%you can identify the file using (new to version 1.3):
-%\begin{definition}[\DescribeMacro\TrackLangProvidesResource]
-%\cs{TrackLangProvidesResource}\marg{tag}\oarg{version info}
-%\end{definition}
-%
-%If \cs{ProvidesFile} is defined (through the \LaTeX\ kernel) this is
-%used, otherwise a simplified generic alternative is used that's
-%suitable for other \TeX\ formats.
-%
-%The resource file can load another resource file
-%\meta{pkgname}\texttt{-}\meta{localeid2}\texttt{.ldf},
-%using (new to version 1.3):
-%\begin{definition}[\DescribeMacro\TrackLangRequireResource]
-%\cs{TrackLangRequireResource}\marg{localeid2}
-%\end{definition}
-%For example, the dialect file \texttt{foo-en-GB.ldf} might need to
-%load the root language resource file \texttt{foo-english.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{en-GB}
-%\TrackLangRequireResource{english}
-%\end{verbatim}
-%If \texttt{foo-english.ldf} is also identified with
-%\cs{TrackLangProvidesResource}, this will ensure that it's only
-%loaded once.
-%
-%If you require the resource file and want to perform
-%\meta{code1} if it's loaded at this point or \meta{code2} if it's
-%already been loaded then you can use (new to version 1.3):
-%\begin{definition}[\DescribeMacro\TrackLangRequireResourceOrDo]
-%\cs{TrackLangRequireResourceOrDo}\marg{localeid2}\marg{code1}\marg{code2}
-%\end{definition}
-%
-%If you want to load a resource file if it exists (without an
-%error if it doesn't exist), then you can use
-%\begin{definition}[\DescribeMacro\TrackLangRequestResource]
-%\cs{TrackLangRequestResource}\marg{localeid2}\marg{not found code}
-%\end{definition}
-%If the file doesn't exist, \meta{not found code} is done.
-%
-%\begin{important}
-%Note that these \cs{\ldots}\texttt{Resource} commands are only
-%permitted within the resource files. They are internally enabled
-%through \cs{TrackLangRequireDialect}.
-%\end{important}
-%
-%The above restriction on the resource files loaded through
-%\cs{TrackLangRequireDialect}, and the fact that it internally uses
-%\cs{IfTrackedLanguageFileExists}, means that commands like
-%\cs{CurrentTrackedLanguage} or \cs{CurrentTrackedDialect} may be
-%used in those files. This means that the name of the captions hook
-%can be obtained through them. (Remember that the file
-%\texttt{foo-en-GB.ldf} might have been loaded with, say, the
-%\texttt{british} dialect or with the synonymous \texttt{UKenglish}
-%dialect or with a dialect label that doesn't have a corresponding
-%caption hook, such as \texttt{enGBLatn}.)
-%
-%The \sty{polyglossia} package has caption hooks in the form
-%\cs{captions\meta{language}} whereas \sty{babel} has captions hooks
-%in the form \cs{captions\meta{dialect}}. This leads to a rather
-%cumbersome set of conditionals:
-%\begin{verbatim}
-%\ifcsundef{captions\CurrentTrackedLanguage}
-%{%
-% \ifcsundef{captions\CurrentTrackedDialect}%
-% {}%
-% {%
-% \csgappto{captions\CurrentTrackedDialect}{%
-% % code to append to hook
-% }%
-% }%
-%}%
-%{%
-% \csgappto{captions\CurrentTrackedLanguage}{%
-% % code to append to hook
-% }%
-%}
-%% do code now to initialise
-%\end{verbatim}
-%Note that the above has been simplified through the use of
-%\sty{etoolbox} commands, which isn't suitable for generic use.
-%It also doesn't query the mapping from \styfmt{tracklang}'s dialect
-%label to the closest matching \sty{babel} dialect label.
-%
-%Instead (new to version 1.3), \styfmt{tracklang} provides a command
-%to perform this set of conditionals using generic code:
-%\begin{definition}[\DescribeMacro\TrackLangAddToHook]
-%\cs{TrackLangAddToHook}\marg{code}\marg{type}
-%\end{definition}
-%where \meta{code} is the code to append to the \meta{type} hook.
-%This always performs \meta{code} after testing for the hook in case
-%the hook is undefined or has already been called (for example, \sty{ngerman} uses
-%\cs{captionsngerman} when the package is loaded, not at the start of
-%the document).
-%
-%Note that this command is enabled through
-%\cs{TrackLangRequireDialect} so should only be used inside resource
-%files.
-%
-%Since \texttt{captions} is a commonly used hook type, there's
-%a~shortcut command provided:
-%\begin{definition}[\DescribeMacro\TrackLangAddToCaptions]
-%\cs{TrackLangAddToCaptions}\marg{code}
-%\end{definition}
-%This is equivalent to
-%\cs{TrackLangAddToHook}\marg{code}\verb|{captions}|.
-%
-%There may be some hooks, such as \cs{date}\meta{label}, that need
-%redefining rather than appending to. As from v1.4, there's an
-%analogous command:
-%\begin{definition}[\DescribeMacro\TrackLangRedefHook]
-%\cs{TrackLangRedefHook}\marg{code}\marg{type}
-%\end{definition}
-%which will redefined the hook to do \meta{code}.
-%
-%Note that no expansion is performed on \meta{code} when appending or
-%redefining a hook.
-%
-%\section{Examples}
-%\label{sec:examples}
-%
-%The examples in this section illustrate the above commands.
-%
-%\subsection{animals.sty}
-%\label{sec:animals}
-%
-%This example is for a trivial package called \sty{animals.sty}
-%that defines three textual commands: \cs{catname}, \cs{dogname}
-%and \cs{ladybirdname}. The default values are: \qt{cat}, \qt{dog} and
-%\qt{bishy-barney-bee}.\footnote{Thass Broad Norfolk, my bewties
-%\texttt{:-P}}
-%
-%The supported languages are defined in files
-%with the prefix \texttt{animals-} and the suffix \texttt{.ldf}.
-%
-%Here's the code for \texttt{animals.sty}:
-%\begin{verbatim}
-% \NeedsTeXFormat{LaTeX2e}
-% \ProvidesPackage{animals}
-%
-% \RequirePackage{tracklang}[2019/11/30] %v1.4
-%
-% % Any undeclared options are language settings:
-%
-% \DeclareOption*{%
-% \TrackIfKnownLanguage{\CurrentOption}%
-% {\PackageInfo{animals}{Tracking language `\CurrentOption'}}% successful
-% {% failed
-% \PackageError{animals}%
-% {Unknown language specification `\CurrentOption'}%
-% {You need to supply either a known dialect label or a valid language tag}%
-% }%
-% }
-%
-% \ProcessOptions
-%
-% % Default definitions
-% \newcommand\catname{cat}
-% \newcommand\dogname{dog}
-% \newcommand\ladybirdname{bishy-barney-bee}
-%
-% \AnyTrackedLanguages
-% {%
-% \ForEachTrackedDialect{\this@dialect}{%
-% \TrackLangRequireDialect{animals}{\this@dialect}%
-% }%
-% }
-% {% no tracked languages, default already set up
-% }
-%
-% \endinput
-%\end{verbatim}
-%Here's a Plain \TeX\ version that picks up the language from the
-%locale environment variable:
-%\begin{verbatim}
-% \input tracklang
-%
-% \TrackLangFromEnv
-%
-% % Default definitions
-% \def\catname{cat}
-% \def\dogname{dog}
-% \def\ladybirdname{bishy-barney-bee}
-%
-% \AnyTrackedLanguages
-% {%
-% \ForEachTrackedDialect{\thisdialect}{%
-% \TrackLangRequireDialect{animals}{\thisdialect}%
-% }%
-% }
-% {% no tracked languages, default already set up
-% }
-%\end{verbatim}
-%In the event that a user or supplementary package for some
-%reason wants to load a resource
-%file for a language that hasn't been tracked, it might be worth
-%providing a command for this purpose:
-%\begin{verbatim}
-%\newcommand*{\RequireAnimalsDialect}[1]{%
-% \TrackLangRequireDialect{animals}{#1}%
-%}
-%\end{verbatim}
-%The loop can then be changed to:
-%\begin{verbatim}
-% \ForEachTrackedDialect{\this@dialect}{%
-% \RequireAnimalsDialect\this@dialect
-% }%
-%\end{verbatim}
-%
-%The \texttt{animals-english.ldf} file valid for both the Plain \TeX\
-%and \LaTeX\ formats contains:
-%\begin{verbatim}
-%\TrackLangProvidesResource{english}
-%
-%\def\englishanimals{%
-% \def\catname{cat}%
-% \def\dogname{dog}%
-% \def\ladybirdname{bishy-barney-bee}%
-%}
-%
-%\TrackLangAddToCaptions{\englishanimals}
-%\end{verbatim}
-%The \texttt{animals-en-GB.ldf} file contains:
-%\begin{verbatim}
-%\TrackLangProvidesResource{en-GB}
-%\TrackLangRequireResource{english}
-%
-%\def\enGBanimals{%
-% \englishanimals
-% \def\ladybirdname{ladybird}%
-%}
-%\TrackLangAddToCaptions{\enGBanimals}
-%\end{verbatim}
-%The \texttt{animals-en-US.ldf} file contains:
-%\begin{verbatim}
-%\TrackLangProvidesResource{en-US}
-%\TrackLangRequireResource{english}
-%
-%\def\enUSanimals{%
-% \englishanimals
-% \def\ladybirdname{ladybug}%
-%}
-%\TrackLangAddToCaptions{\enUSanimals}
-%\end{verbatim}
-%Here's a German version in the file \texttt{animals-german.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{german}
-%
-%\def\germananimals{%
-% \def\catname{Katze}%
-% \def\dogname{Hund}%
-% \def\ladybirdname{Marienk\"afer}%
-%}
-%
-%\TrackLangAddToCaptions{\germananimals}
-%\end{verbatim}
-%
-%This means that if \sty{babel} or \sty{polyglossia} are loaded, the
-%redefinitions are automatically performed whenever the language is
-%changed, but if there's no caption mechanism the user can switch
-%the fixed names using the \cs{\ldots animals} commands.
-%
-%Here's an example \LaTeX\ document that doesn't have any caption
-%hooks:
-%\begin{verbatim}
-%\documentclass[english,german,a4paper]{article}
-%
-%\usepackage{animals}
-%
-%\begin{document}
-%\englishanimals
-%
-%\catname.
-%\dogname.
-%\ladybirdname.
-%
-%\germananimals
-%
-%\catname.
-%\dogname.
-%\ladybirdname.
-%\end{document}
-%\end{verbatim}
-%Here's a \sty{babel} example document:
-%\begin{verbatim}
-%\documentclass[american,german,british,a4paper]{article}
+% \title{Documented Code For tracklang v1.6}
+% \author{Nicola L.C. Talbot\\[10pt]
+%Dickimaw Books\\
+%\url{http://www.dickimaw-books.com/}}
%
-%\usepackage{babel}
-%\usepackage{animals}
-%
-%\begin{document}
-%\selectlanguage{american}
-%
-%\catname.
-%\dogname.
-%\ladybirdname.
-%
-%\selectlanguage{german}
-%
-%\catname.
-%\dogname.
-%\ladybirdname.
-%
-%\selectlanguage{british}
-%
-%\catname.
-%\dogname.
-%\ladybirdname.
-%
-%\end{document}
-%\end{verbatim}
-%
-%There is some redundancy with the above resource files. Consider the
-%\sty{babel} example above. The \texttt{american} dialect is the
-%first option, so in that case \texttt{animals-en-US.ldf} is loaded
-%followed by \texttt{animals-english.ldf}. This means that the
-%\cs{captionsamerican} hook now includes
-%\begin{verbatim}
-%\englishanimals
-%\enUSanimals
-%\end{verbatim}
-%Since \cs{enUSanimals} includes \cs{englishanimals}, there is
-%redundant code. However, when the \texttt{british} dialect is
-%processed, this loads the file \texttt{animals-en-GB.ldf} but not
-%the file \texttt{animals-english.ldf} (since it's already been loaded). This
-%means that \cs{captionsbritish} contains \cs{enGBanimals} but not
-%\cs{englishanimals}.
-%
-%If this redundancy is an issue (for example, there are so many
-%redefinitions needed that it significantly slows the document build
-%process), then it can be addressed with the following modifications.
-%The \texttt{animals-en-GB.ldf} file is now:
-%\begin{verbatim}
-%\TrackLangProvidesResource{en-GB}
-%
-%\def\enGBanimals{%
-% \englishanimals
-% \def\ladybirdname{ladybird}%
-%}
-%
-%\TrackLangRequireResourceOrDo{english}%
-%{
-% \TrackLangAddToCaptions{%
-% \def\ladybirdname{ladybird}%
-% }%
-%}
-%{
-% \TrackLangAddToCaptions{\enGBanimals}
-%}
-%\end{verbatim}
-%The \texttt{animals-en-US.ldf} file is now:
-%\begin{verbatim}
-%\TrackLangProvidesResource{en-US}
-%
-%\providecommand*{\enUSanimals}{%
-% \englishanimals
-% \renewcommand*{\ladybirdname}{ladybug}%
-%}
-%
-%\TrackLangRequireResourceOrDo{english}
-%{
-% \TrackLangAddToCaptions{%
-% \renewcommand*{\ladybirdname}{ladybird}%
-% }%
-%}
-%{
-% \TrackLangAddToCaptions{\enUSanimals}{captions}
-%}
-%\end{verbatim}
-%This means that the document that has the dialects listed in the
-%order \texttt{american}, \texttt{british} now has
-%\begin{verbatim}
-%\englishanimals
-%\def\ladybirdname{ladybird}
-%\end{verbatim}
-%in the \cs{captionsbritish} hook and just \cs{enUSanimals} in the
-%\cs{captionsamerican} hook, which has removed most of the redundancy.
-%
-%Note that \sty{polyglossia} has a \cs{captionsenglish} hook but not
-%\cs{captionsamerican} or \cs{captionsbritish}, so this code doesn't
-%allow for switching between variants of the same language with
-%\sty{polyglossia}.
-%
-%\subsection{regions.sty}
-%\label{sec:regions}
-%
-%Earlier, I~mentioned the search order for
-%\ics{IfTrackedLanguageFileExists} where if, for example, the dialect
-%is \texttt{british}, the file search (v1.4+) will be:
-%\begin{enumerate}
-%\item \texttt{mypackage-british.ldf}
-%\item \texttt{mypackage-en-GB.ldf}
-%\item \texttt{mypackage-en.ldf}
-%\item \texttt{mypackage-eng-GB.ldf}
-%\item \texttt{mypackage-eng.ldf}
-%\item \texttt{mypackage-GB.ldf}
-%\item \texttt{mypackage-english.ldf}
-%\end{enumerate}
-%You may have wondered why
-%\texttt{mypackage-GB.ldf} is included in the search given that some
-%countries have multiple official languages, which means that the country code on its
-%own may not indicate the language.
-%
-%The reason for including just the country code as the \meta{localeid} in the
-%file search is to allow for region rather than language dependent
-%settings. For example, suppose I~want to write a package that needs
-%to know whether to use imperial or metric measurements in the
-%document, but I also want to provide multilingual support. The
-%language alone won't tell me whether to use imperial or metric (for
-%example, the US uses imperial and the UK uses metric for most
-%product attributes). I could provide \texttt{.ldf} files for every
-%language and region combination, but this would result in a lot
-%redundancy.
-%
-%\cs{TrackLangRequireDialect} has an optional argument for adjusting
-%the way the resource files are loaded. Suppose I have
-%\texttt{regions-}\meta{localeid}\texttt{.ldf} resource files, then
-%\begin{verbatim}
-%\TrackLangRequireDialect{regions}{\this@dialect}
-%\end{verbatim}
-%loads the resource file for the dialect given by \cs{this@dialect}
-%using
-%\begin{verbatim}
-%\TrackLangRequireResource{\CurrentTrackedTag}
-%\end{verbatim}
-%I can use the optional argument to also load the resource file for the
-%root language as well:
-%\begin{verbatim}
-%\newcommand*{\RequireRegionsDialect}[1]{%
-% \TrackLangRequireDialect
-% [\TrackLangRequireResource{\CurrentTrackedTag}%
-% \TrackLangRequireResource{\CurrentTrackedLanguage}%
-% ]%
-% {regions}{#1}%
-%}
-%\end{verbatim}
-%Now the dialect \texttt{british} can load both
-%\texttt{regions-GB.ldf} and \texttt{regions-english.ldf}.
-%
-%The example package (\texttt{regions.sty}) below illustrates this.
-%\begin{verbatim}
-%\NeedsTeXFormat{LaTeX2e}
-%\ProvidesPackage{regions}
-%
-%\RequirePackage{tracklang}[2016/10/07]
-%
-%\DeclareOption*{\TrackLanguageTag{\CurrentOption}}
-%\ProcessOptions
-%
-%\newcommand*{\weightunit}{kg}
-%\newcommand*{\lengthunit}{mm}
-%\newcommand*{\currencyunit}{EUR}
-%
-%\newcommand*{\unitname}{units}
-%
-%\newcommand*{\RequireRegionsDialect}[1]{%
-% \TrackLangRequireDialect
-% [\TrackLangRequireResource{\CurrentTrackedTag}%
-% \TrackLangRequireResource{\CurrentTrackedLanguage}%
-% ]%
-% {regions}{#1}%
-%}
-%
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedDialect{\this@dialect}{%
-% \RequireRegionsDialect\this@dialect
-% }%
-%}
-%{% no tracked languages, default already set up
-%}
-%
-%\endinput
-%\end{verbatim}
-%There are separate \texttt{.ldf} files for region and language.
-%First are the regions.
-%
-%\begin{itemize}
-%\item \texttt{regions-BE.ldf} (Belgium):
-%\begin{verbatim}
-%\TrackLangProvidesResource{BE}
-%
-%\providecommand*{\BEunits}{%
-% \renewcommand*{\weightunit}{kg}%
-% \renewcommand*{\lengthunit}{mm}%
-% \renewcommand*{\currencyunit}{EUR}%
-%}
-%
-%\TrackLangAddToCaptions{\BEunits}
-%\end{verbatim}
-%
-%\item \texttt{regions-CA.ldf} (Canada):
-%\begin{verbatim}
-%\TrackLangProvidesResource{CA}
-%
-%\providecommand*{\CAunits}{%
-% \renewcommand*{\weightunit}{kg}%
-% \renewcommand*{\lengthunit}{mm}%
-% \renewcommand*{\currencyunit}{CAD}%
-%}
-%
-%\TrackLangAddToCaptions{\CAunits}
-%\end{verbatim}
-%
-%\item \texttt{regions-GB.ldf} (Great Britain):
-%\begin{verbatim}
-%\TrackLangProvidesResource{GB}
-%
-%\providecommand*{\GBunits}{%
-% \renewcommand*{\weightunit}{kg}%
-% \renewcommand*{\lengthunit}{mm}%
-% \renewcommand*{\currencyunit}{GBP}%
-%}
-%
-%\TrackLangAddToCaptions{\GBunits}
-%\end{verbatim}
-%
-%\item \texttt{regions-US.ldf} (USA):
-%\begin{verbatim}
-%\TrackLangProvidesResource{US}
-%
-%\providecommand*{\USunits}{%
-% \renewcommand*{\weightunit}{lb}%
-% \renewcommand*{\lengthunit}{in}%
-% \renewcommand*{\currencyunit}{USD}%
-%}
-%
-%\TrackLangAddToCaptions{\USunits}
-%\end{verbatim}
-%\end{itemize}
-%Now the language files:
+% \date{2022-10-29}
+% \maketitle
%
-%\begin{itemize}
-%\item \texttt{regions-dutch.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{dutch}
-%
-%\providecommand*{\dutchnames}{%
-% \renewcommand*{\unitname}{meeteenheden}%
-%}
-%
-%\TrackLangAddToCaptions{\dutchnames}
-%\end{verbatim}
-%
-%\item \texttt{regions-english.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{english}
-%
-%\providecommand*{\englishnames}{%
-% \renewcommand*{\unitname}{units}%
-%}
-%
-%\TrackLangAddToCaptions{\englishnames}
-%\end{verbatim}
-%
-%\item \texttt{regions-french.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{french}
-%
-%\providecommand*{\frenchnames}{%
-% \renewcommand*{\unitname}{unit\'es}%
-%}
-%
-%\TrackLangAddToCaptions{\frenchnames}
-%\end{verbatim}
-%
-%\item \texttt{regions-german.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{french}
-%
-%\providecommand*{\germannames}{%
-% \renewcommand*{\unitname}{Ma\ss einheiten}%
-%}
-%
-%\TrackLangAddToCaptions{\germannames}
-%\end{verbatim}
-%\end{itemize}
-%
-%Here's an example document that uses this package:
-%\begin{verbatim}
-%\documentclass[canadien]{article}
-%
-%\usepackage{regions}
-%
-%\begin{document}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\end{document}
-%\end{verbatim}
-%
-%This works because the \meta{localeid} search looks for the
-%country code before the root language label. However, this will fail if
-%the dialect label is the same as a root language label that has an
-%associated territory, marked with \fnregion\ in
-%\tableref{tab:rootlangopts}, as then it will be picked up before the
-%country code.
-%
-%In the above example,
-%\texttt{regions-CA.ldf} is matched rather than
-%\texttt{regions-french.ldf}, so \texttt{regions-CA.ldf} is loaded by
-%\begin{verbatim}
-%\TrackLangRequireResource{\CurrentTrackedTag}
-%\end{verbatim}
-%After this, the language file \texttt{regions-french.ldf} is then loaded:
-%\begin{verbatim}
-%\TrackLangRequireResource{\CurrentTrackedLanguage}
-%\end{verbatim}
-%
-%This assumes that there's a country code \texttt{.ldf} file
-%available. This example needs a little modification to use default
-%units in case the region is missing:
-%\begin{verbatim}
-%\NeedsTeXFormat{LaTeX2e}
-%\ProvidesPackage{regions}
-%
-%% Pass all options to tracklang:
-%\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{tracklang}}
-%\ProcessOptions
-%
-%\RequirePackage{tracklang}
-%
-%\newcommand*{\weightunit}{kg}
-%\newcommand*{\lengthunit}{mm}
-%\newcommand*{\currencyunit}{EUR}
-%
-%\newcommand*{\unitname}{units}
-%
-%\newcommand*{\defaultunits}{%
-% \renewcommand*{\weightunit}{kg}%
-% \renewcommand*{\lengthunit}{mm}%
-% \renewcommand*{\currencyunit}{EUR}%
-%}
-%
-%\newcommand*{\RequireRegionsDialect}[1]{%
-% \TrackLangRequireDialect
-% [\TrackLangRequireResource{\CurrentTrackedTag}%
-% \ifx\CurrentTrackedTag\CurrentTrackedLanguage
-% \TrackLangAddToCaptions{\defaultunits}%
-% \else
-% \TrackLangRequireResource{\CurrentTrackedLanguage}%
-% \fi
-% ]%
-% {regions}{#1}%
-%}
-%
-%\AnyTrackedLanguages
-%{%
-% \ForEachTrackedDialect{\this@dialect}{%
-% \RequireRegionsDialect\this@dialect
-% }%
-%}
-%{% no tracked languages, default already set up
-%}
-%
-%\endinput
-%\end{verbatim}
-%Note that we still have a problem for dialect labels that are
-%identical to root language labels with an associated territory (such
-%as \pkgopt{manx}). This case can be checked with the following
-%adjustment:
-%\begin{verbatim}
-%\newcommand*{\RequireRegionsDialect}[1]{%
-% \TrackLangRequireDialect
-% [\TrackLangRequireResource{\CurrentTrackedTag}%
-% \ifx\CurrentTrackedTag\CurrentTrackedLanguage
-% \ifx\CurrentTrackedRegion\empty
-% \TrackLangAddToCaptions{\defaultunits}%
-% \else
-% \TrackLangRequireResource{\CurrentTrackedRegion}%
-% \fi
-% \else
-% \TrackLangRequireResource{\CurrentTrackedLanguage}%
-% \fi
-% ]%
-% {regions}{#1}%
-%}
-%\end{verbatim}
-%In the case where both the dialect and root language label are
-%\texttt{manx} with the resource files \texttt{regions-manx.ldf}
-%and \texttt{regions-IM.ldf}, then \cs{CurrentTrackedTag} will be
-%\texttt{manx} (the dialect label) so \texttt{regions-manx.ldf} will
-%be loaded with:
-%\begin{verbatim}
-%\TrackLangRequireResource{\CurrentTrackedTag}
-%\end{verbatim}
-%In this case \cs{CurrentTrackedRegion} is \texttt{IM} (that is, it's
-%not empty) so then \texttt{regions-IM.ldf} will be loaded with:
-%\begin{verbatim}
-%\TrackLangRequireResource{\CurrentTrackedRegion}
-%\end{verbatim}
-%
-%Here's another document that sets up dialects with
-%\styfmt{tracklang} labels that aren't recognised by \sty{babel}.
-%This means that there's no corresponding \cs{captions\ldots} hook
-%for either the dialect label or the root language label,
-%so mappings need to be defined from the \styfmt{tracklang} dialect
-%label to the matching \sty{babel} dialect label.
-%
-%\begin{verbatim}
-%\documentclass{article}
-%
-%\usepackage{tracklang}
-%
-%\TrackLanguageTag{de-US-1996}
-%\SetTrackedDialectLabelMap{\TrackLangLastTrackedDialect}{ngerman}
-%
-%\TrackLanguageTag{en-MT}
-%\SetTrackedDialectLabelMap{\TrackLangLastTrackedDialect}{UKenglish}
-%
-%\usepackage[main=ngerman,UKenglish]{babel}
-%\usepackage{regions}
-%
-%\begin{document}
-%\selectlanguage{ngerman}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\selectlanguage{UKenglish}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\end{document}
-%\end{verbatim}
-%This produces:
-%\begin{quote}
-%Ma\ss einheiten: lb, in, USD.
-%
-%units: kg, mm, EUR.
-%\end{quote}
-%Compare this with:
-%\begin{verbatim}
-%\documentclass{article}
-%
-%\usepackage[main=ngerman,UKenglish]{babel}
-%\usepackage{regions}
-%
-%\begin{document}
-%\selectlanguage{ngerman}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\selectlanguage{UKenglish}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\end{document}
-%\end{verbatim}
-%which produces:
-%\begin{quote}
-%Ma\ss einheiten: kg, mm, EUR.
-%
-%units: kg, mm, GBP.
-%\end{quote}
-%
-%Note that these mappings aren't needed if \sty{babel}
-%is loaded with the root language labels instead. For example:
-%\begin{verbatim}
-%\documentclass{article}
-%
-%\usepackage{tracklang}
-%
-%\TrackLanguageTag{de-US-1996}
-%\SetTrackedDialectLabelMap{\TrackLangLastTrackedDialect}{ngerman}
-%
-%\TrackLanguageTag{en-MT}
-%
-%\usepackage[main=ngerman,english]{babel}
-%\usepackage{regions2}
-%
-%\begin{document}
-%\selectlanguage{ngerman}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\selectlanguage{english}
-%
-%\unitname: \weightunit, \lengthunit, \currencyunit.
-%
-%\end{document}
-%\end{verbatim}
-%No mapping is required for the \texttt{en-MT} locale as
-%it can pick up \cs{captionsenglish} when \cs{TrackLangAddToHook}
-%(used by \cs{TrackLangAddToCaptions})
-%queries the root language label after failing to find the
-%language hook from the dialect label.
-%
-%Some of the predefined \styfmt{tracklang} dialects come with
-%a mapping to the closest matching \sty{babel} dialect label.
-%For example, the option \pkgopt{ngermanDE} listed in
-%\tableref{tab:nonisoopts} automatically provides a mapping
-%to \texttt{ngerman}. Since a \styfmt{tracklang} dialect label
-%can only map to one \styfmt{babel} label, this can be problematic
-%for synonymous labels such as
-%\texttt{british}\slash\texttt{UKenglish} or
-%\texttt{american}\slash\texttt{USenglish}. The default mappings used
-%by \styfmt{tracklang} are shown in \tableref{tab:nonisoopts}.
-%
-%\chapter{Adding Support for Language Tracking}
-%\label{sec:langsty}
-%
-%If you are writing a package that \emph{sets up} the document languages (rather
-%than a package that provides multilingual support if the user has
-%already loaded a language package) then you can load \styfmt{tracklang}
-%and use the commands below to help other packages track your
-%provided languages. (See also:
-%\href{https://www.dickimaw-books.com/latex/tracklang/langpkg.shtml}{Integrating
-%\texttt{tracklang.tex} into Language Packages}.)
-%
-%The \styfmt{tracklang} package can be loaded using
-%\begin{verbatim}
-%\input tracklang
-%\end{verbatim}
-%or (\LaTeX\ only)
-%\begin{verbatim}
-%\RequirePackage{tracklang}
-%\end{verbatim}
-%
-%When using \LaTeX, there's a difference between the two.
-%The first case prevents \styfmt{tracklang} from picking up
-%the document class options but skips the check for known
-%language packages. This check is redundant since your package is
-%the language package, so you need to decide is whether or
-%not to allow the user to set up the localisation information
-%through the document class options.
-%
-%If you prefer \cs{RequirePackage} over \cs{input} but you want to make
-%\texttt{tracklang.sty} skip the check for known
-%language packages then (as from v1.3.8) define the pre-language
-%package check hook as follows:
-%\begin{verbatim}
-%\providecommand\@tracklang@prelangpkgcheck@hook{\endinput}
-%\RequirePackage{tracklang}[2019/10/06]
-%\end{verbatim}
-%This will still pick up languages supplied through the
-%document class options.
-%
-%If you just use \cs{input}, there's a test at the start of
-%\texttt{tracklang.tex} to determine if it's already been loaded, so
-%you don't need to worry if the document has already loaded it.
-%
-%To integrate \sty{tracklang} into your language package, you need to consider the following
-%steps:
-%\begin{enumerate}
-%\item Does \sty{tracklang} define your supported ISO~15924 language
-%scripts in the \texttt{tracklang-scripts.tex} file?
-%
-%If yes, then skip this step. Otherwise create a file with the
-%relevant \ics{TrackLangScriptMap} command for each unknown script and identify
-%this new file with \ics{TrackLangAddExtraScriptFile} (see
-%\sectionref{sec:newscripts}). This usually
-%won't be necessary unless you have a custom script or a child script
-%(a script that's a sub-category of another script).
-%
-%\item Does \sty{tracklang} recognise the root language?
-%
-%If yes, then skip this step.
-%
-%If your package is setting up a language that \sty{tracklang}
-%doesn't recognise then you will need to define the root language
-%using \cs{TrackLangNewLanguage} (see \sectionref{sec:newlanguages}).
-%
-%This usually won't be the case as \sty{tracklang} should support all
-%languages that have an official ISO~639-1 alpha-2 code.
-%
-%If you simply have a different label from \sty{tracklang} identifying the root language,
-%then you can just set up your label as a dialect using
-%\cs{TrackLangProvidePredefinedDialect} (see \sectionref{sec:predefinedlabels}).
-%
-%\item Does \sty{tracklang} define the relevant ISO~3166 region codes
-%in the \texttt{tracklang-region-codes.tex} file?
-%
-%If yes, then skip this step. Otherwise create a file with the
-%relevant \ics{TrackLangRegionMap} command for each new region and
-%identify this new file with \ics{TrackLangAddExtraRegionFile} (see
-%\sectionref{sec:newregions}). This usually won't be necessary as
-%\sty{tracklang} should recognise all countries that have an alpha-2
-%region code, but you may require it if you need a broader region,
-%such as EU.
-%
-%\item Do you want to define some convenient dialect labels that can
-%be used with \ics{TrackPredefinedDialect}?
-%
-%If no, then skip this step. Otherwise you can use
-%\ics{TrackLangProvidePredefinedLanguage} for root languages
-%and \ics{TrackLangProvidePredefinedDialect} for dialects with
-%additional information, such as a region, sub-language or script
-%(see \sectionref{sec:predefinedlabels}).
-%
-%\item In your language initialisation code, add the \sty{tracklang}
-%code to track the particular dialect (for example, use
-%\cs{TrackPredefinedDialect} for recognised dialect labels or
-%use the \cs{AddTracked}\ldots\ set of commands). See
-%\sectionref{sec:initnewlang}.
-%
-%\item In your language selection code (such as \cs{selectlanguage}), add
-%\cs{SetCurrentTrackedDialect}\marg{label} to allow the document
-%author to easily query the current localisation settings (such as
-%the region). See \sectionref{sec:selectlanguage}.
-%\end{enumerate}
-%
-%\section{Initialising a New Language or Dialect}
-%\label{sec:initnewlang}
-%
-%When the user requests a particular dialect through your language
-%package, you can notify \styfmt{tracklang} of this choice using
-%\begin{definition}
-%\cs{TrackPredefinedDialect}\marg{dialect}
-%\end{definition}
-%provided the dialect label is recognised by \styfmt{tracklang} (all those
-%listed in \refoptstables).
-%
-%If there's no matching dialect predefined by \styfmt{tracklang}, you
-%can just use \cs{TrackLocale} or \cs{TrackLanguageTag}
-%(described in \sectionref{sec:generic})
-%with the appropriate ISO codes \emph{if you're not providing caption
-%hooks}.
-%
-%If you are providing a captions hook mechanism
-%in the form \ics{captions\meta{dialect}}, then if \meta{dialect}
-%doesn't match the corresponding \styfmt{tracklang} dialect label,
-%you can provide a mapping using
-%\cs{SetTrackedDialectLabelMap}, described below.
-%
-%\section{Switching Language or Dialect}
-%\label{sec:selectlanguage}
-%
-%When the document author switches to a different language or
-%dialect, the current localisation information can be set with:
-%\begin{definition}[\DescribeMacro\SetCurrentTrackedDialect]
-%\cs{SetCurrentTrackedDialect}\marg{dialect}
-%\end{definition}
-%where \meta{dialect} may the \styfmt{tracklang} dialect label,
-%or the mapped label previously set through \cs{SetTrackedDialectLabelMap},
-%described below, or the language label (in which case the
-%last dialect to be tracked with that root language will
-%be assumed).
-%
-%This will make the following commands available which may be
-%of use to other packages:
-%\begin{itemize}
-%\item\ics{CurrentTrackedDialect} The dialect label recognised
-%by \styfmt{tracklang} (which may not be the same as \meta{dialect}).
-%
-%\item\ics{CurrentTrackedLanguage}
-%The root language label used by \styfmt{tracklang}.
-%\item\ics{CurrentTrackedDialectModifier} The dialect modifier.
-%\item\ics{CurrentTrackedDialectVariant} The dialect variant.
-%\item\ics{CurrentTrackedDialectScript} The dialect script.
-%Note that if \sty{tracklang-scripts} is also loaded, this allows the
-%script direction to be accessed using
-%\begin{verbatim}
-%\TrackLangScriptAlphaToDir{\CurrentTrackedDialectScript}
-%\end{verbatim}
-%See \sectionref{sec:tracklang-scripts.tex} for further details.
-%\item\ics{CurrentTrackedDialectSubLang} The dialect sub-language
-%code.
-%\item\ics{GetTrackedDialectAdditional} The dialect's additional
-%information.
-%\item\ics{CurrentTrackedIsoCode} The dialect's root language
-%ISO code. (The first found in the sequence 639-1, 639-2, 639-3.)
-%\item\ics{CurrentTrackedRegion} The dialect's ISO 3166-1 region
-%code.
-%\item\ics{CurrentTrackedLanguageTag} The dialect's language tag.
-%\end{itemize}
-%(Without this automated use of \cs{SetCurrentTrackedDialect},
-%the same information can be picked up using commands
-%like \cs{GetTrackedDialectScript}, but that's less convenient,
-%especially if \cs{languagename} needs to be converted
-%to \meta{dialect}. See the accompanying sample file
-%\texttt{sample-setlang.tex} for an example.)
-%
-%\section{Defining New Scripts}
-%\label{sec:newscripts}
-%
-%The \texttt{tracklang-scripts.tex} file isn't automatically loaded,
-%but if it is then, as from v1.4, it contains a hook at the end of
-%the file that can be used to load additional files that define
-%supplementary scripts. This entails creating a file called, say,
-%\texttt{mypackage-scripts.tex} that contains:
-%\begin{definition}[\DescribeMacro\TrackLangScriptMap]
-%\cs{TrackLangScriptMap}\marg{alpha code}\marg{numeric
-%code}\marg{name}\marg{direction}\marg{parent}
-%\end{definition}
-%The first argument \meta{alpha code} is the four-letter ISO~15924 code (such as
-%\texttt{Latn}), the second argument is the numeric code (such as
-%215), the third argument \meta{name} is the name of the script (such
-%as \texttt{Latin}), the fourth argument is the direction (such as
-%\texttt{LR} for left-to-right) and the final argument is the parent
-%script (leave blank if there's no parent). Note that this command will override any previous
-%mapping for those codes. No check is performed to determine if they
-%have already been defined.
-%
-%The supplementary file should be identified with:
-%\begin{definition}[\DescribeMacro\TrackLangAddExtraScriptFile]
-%\cs{TrackLangAddExtraScriptFile}\marg{filename}
-%\end{definition}
-%
-%\section{Defining New Regions}
-%\label{sec:newregions}
-%
-%The \texttt{tracklang-region-codes.tex} file isn't automatically loaded,
-%but if it is then, as from v1.4, it contains a hook at the end of
-%the file that can be used to load additional files that define
-%supplementary regions. This entails creating a file called, say,
-%\texttt{mypackage-regions.tex} that contains:
-%\begin{definition}[\DescribeMacro\TrackLangRegionMap]
-%\cs{TrackLangRegionMap}\marg{numeric code}\marg{alpha-2 code}\marg{alpha-3 code}
-%\end{definition}
-%where the first argument is the numeric region code (such as 826),
-%the second argument is the alpha-2 region code (such as \texttt{GB})
-%and the third argument is the alpha-3 region code (such as
-%\texttt{GBR}). Note that this command will override any previous
-%mapping for those codes. No check is performed to determine if they
-%have already been defined.
-%
-%The supplementary file should be identified with:
-%\begin{definition}[\DescribeMacro\TrackLangAddExtraRegionFile]
-%\cs{TrackLangAddExtraRegionFile}\marg{filename}
-%\end{definition}
-%
-%\section{Defining a New Language}
-%\label{sec:newlanguages}
-%
-%(New to version 1.3.)
-%If the root language isn't recognised by \styfmt{tracklang}
-%(not listed in \tableref{tab:rootlangopts}), then
-%it can be defined (but not tracked at this point) using:
-%\begin{definition}[\DescribeMacro\TrackLangNewLanguage]
-%\cs{TrackLangNewLanguage}\marg{language name}\marg{639-1
-%code}\marg{639-2 (T)}\marg{639-2 (B)}\marg{639-3}\marg{3166-1}\marg{default
-%script}
-%\end{definition}
-%where \meta{language name} is the root language name,
-%\meta{639-1 code} is the ISO 639-1 code for that language (may be
-%empty if there isn't one), \meta{639-2 (T)} is the ISO 639-2 (T)
-%code for that language (may be empty if there isn't one),
-%\meta{639-2 (B)} is the ISO 639-2 (B) code for that language (may be
-%empty if it's the same as \meta{639-2 (T)}), \meta{639-3} is the ISO
-%639-3 code for that language (empty if the same as the 639-2
-%code), \meta{3166-1} is the territory ISO code for languages that are only spoken in one
-%territory (should be empty if the language is spoken in multiple
-%territories), and \meta{default script} is the default script (empty
-%if disputed or varies according to region).
-%
-%You can then track this language using \cs{AddTrackedDialect} for
-%dialects or, if no regional variant is needed, you can instead use:
-%\begin{definition}[\DescribeMacro\AddTrackedLanguage]
-%\cs{AddTrackedLanguage}\marg{root language label}
-%\end{definition}
-%This is equivalent to \ics{AddTrackedDialect}\marg{root language
-%label}\marg{root language label}.
-%
-%
-%\section{Defining New \styfmt{tracklang} Labels}
-%\label{sec:predefinedlabels}
-%
-%A dialect label may be predefined with associated information that
-%allows that particular combination to be easily tracked with
-%\cs{TrackPredefinedDialect}. In the case of a dialect label that
-%only requires the information provided in \cs{TrackLangNewLanguage}
-%you can use:
-%\begin{definition}[\DescribeMacro\TrackLangProvidePredefinedLanguage]
-%\cs{TrackLangProvidePredefinedLanguage}\marg{label}
-%\end{definition}
-%where \meta{label} corresponds to the language label used in
-%\cs{TrackLangNewLanguage}. This allows
-%\cs{TrackPredefinedDialect}\marg{label} to not only track the root
-%language but also the associated ISO codes.
-%
-%If the dialect label doesn't match the root language label then use:
-%\begin{definition}[\DescribeMacro\TrackLangProvidePredefinedDialect]
-%\cs{TrackLangProvidePredefinedDialect}\marg{dialect}\marg{language}\marg{region}\marg{modifier}\marg{variant}\marg{map}\marg{script}
-%\end{definition}
-%where \meta{dialect} is the new \sty{tracklang} dialect label,
-%\marg{language} is the \sty{tracklang} root language label,
-%\meta{region} is the ISO~3166-1 region code (may be empty),
-%\meta{modifier} is the modifier (may be empty), \meta{variant}
-%is the variant information (may be empty), \meta{map} is your
-%package's language label that corresponds to the \sty{tracklang}
-%dialect label supplied in the first argument (may be empty if
-%identical), and \meta{script} is the ISO~15914 alpha-4 script code
-%(may be empty if it's the same as the default script for the root
-%language).
-%
-%For compatibility with pre version 1.3,
-%if the dialect isn't predefined by
-%\styfmt{tracklang}, then you can use:
-%\begin{definition}[\DescribeMacro\AddTrackedDialect]
-%\cs{AddTrackedDialect}\marg{dialect}\marg{root language label}
-%\end{definition}
-%where \meta{root language label} is the label for the dialect's root
-%language (\tableref{tab:rootlangopts}) and \meta{dialect} matches
-%the captions hook. If the dialect is already in the tracked dialect
-%list, it won't be added again. If the root language is already in
-%the tracked language list, it won't be added again. As from version
-%1.3 this additionally defines:
-%\begin{definition}[\DescribeMacro\TrackLangLastTrackedDialect]
-%\cs{TrackLangLastTrackedDialect}
-%\end{definition}
-%to \meta{dialect} for convenient reference if required.
-%Note that \cs{AddTrackedDialect} is internally used by commands like
-%\cs{TrackPredefinedDialect}, \cs{TrackLocale} and
-%\cs{TrackLanguageTag}.
-%
-%(New to version 1.3.) Many of the \styfmt{tracklang} dialect
-%labels don't have a corresponding match in various language packages. For
-%example, \styfmt{tracklang} provides \texttt{ngermanDE} but the
-%closest match in \sty{babel} is \texttt{ngerman}. This means that
-%the caption hook \cs{captionsngerman} can't be accessed
-%through
-%\begin{verbatim}
-%\csname captions\CurrentTrackedDialect\endcsname
-%\end{verbatim}
-%in the resource files. In this case, a mapping may be defined
-%between the \styfmt{tracklang} dialect label and the closest
-%matching label used by the language hooks. This is done through
-%\begin{definition}[\DescribeMacro\SetTrackedDialectLabelMap]
-%\cs{SetTrackedDialectLabelMap}\marg{from}\marg{to}
-%\end{definition}
-%where \meta{from} is the \styfmt{tracklang} label and \meta{to}
-%is the language hook label. For example:
-%\begin{verbatim}
-%\TrackLanguageTag{de-AR-1996}
-%\SetTrackedDialectLabelMap{\TrackLangLastTrackedDialect}{ngerman}
-%\end{verbatim}
-%Since \cs{TrackLanguageTag} internally uses \cs{AddTrackedDialect}
-%the dialect label created by \styfmt{tracklang} can be accessed
-%using \cs{TrackLangLastTrackedDialect}. This means that
-%\ics{TrackLangAddToCaptions} can now find the \cs{captionsngerman}
-%hook even though the \styfmt{tracklang} dialect label isn't \texttt{ngerman}.
-%
-%(New to version 1.3.)
-%If the root language label is recognised by \styfmt{tracklang}, you
-%can add the ISO codes using:
-%\begin{definition}[\DescribeMacro\AddTrackedLanguageIsoCodes]
-%\cs{AddTrackedLanguageIsoCodes}\marg{root language}
-%\end{definition}
-%
-%As from v1.3, you can also provide a modifier for a given
-%dialect using:
-%\begin{definition}[\DescribeMacro\SetTrackedDialectModifier]
-%\cs{SetTrackedDialectModifier}\marg{dialect}\marg{value}
-%\end{definition}
-%where \meta{dialect} is the dialect label and \meta{value}
-%is the modifier value. For example:
-%\begin{verbatim}
-%\AddTrackedDialect{oldgerman}{german}
-%\AddTrackedLanguageIsoCodes{german}
-%\SetTrackedDialectModifier{oldgerman}{old}
-%\end{verbatim}
-%
-%Note that no sanitization is performed on \meta{value} when the
-%modifier is set explicitly through \cs{SetTrackedDialectModifier},
-%since it's assumed that any package that specifically sets the
-%modifier in this way is using a sensible labelling system. If the
-%modifier is obtained through commands like \cs{TrackLocale}, then
-%the modifier is sanitized as the value may have been obtained from
-%the operating system and there's no guarantee that it won't contain
-%problematic characters.
-%
-%The modifier is typically obtained by parsing locale information in
-%POSIX format.
-%\begin{display}
-%\meta{language}[\_\meta{territory}][.\meta{codeset}][@\meta{modifier}]
-%\end{display}
-%whereas the variant is typically obtained by parsing the language
-%tag.
-%
-%The information provided in the commands below (such as the script)
-%are typically obtained by parsing the language tag. For example,
-%with Serbian in the Latin alphabet the modifier would be \texttt{latin}
-%whereas the script would be \texttt{Latn}:
-%\begin{verbatim}
-%\AddTrackedDialect{serbianlatin}{serbian}
-%\AddTrackedLanguageIsoCodes{serbian}
-%\SetTrackedDialectModifier{serbianlatin}{latin}
-%\SetTrackedDialectScript{serbianlatin}{Latn}
-%\end{verbatim}
-%
-%As from v1.3, you can provide a script (for example,
-%\qt{Latn} or \qt{Cyrl}) using:
-%\begin{definition}[\DescribeMacro\SetTrackedDialectScript]
-%\cs{SetTrackedDialectScript}\marg{dialect}\marg{value}
-%\end{definition}
-%where \meta{dialect} is the dialect label and \meta{value} is the
-%four letter script identifier. For example:
-%\begin{verbatim}
-%\AddTrackedDialect{serbiancyrl}{serbian}
-%\AddTrackedLanguageIsoCodes{serbian}
-%\SetTrackedDialectScript{serbiancyrl}{Cyrl}
-%\end{verbatim}
-%
-%As from v1.3, you can provide a variant for a given
-%dialect using:
-%\begin{definition}[\DescribeMacro\SetTrackedDialectVariant]
-%\cs{SetTrackedDialectVariant}\marg{dialect}\marg{value}
-%\end{definition}
-%For example:
-%\begin{verbatim}
-%\AddTrackedDialect{german1901}{german}
-%\SetTrackedDialectVariant{german1901}{1901}
-%\end{verbatim}
-%
-%As from v1.3, you can also provide a sub-language using:
-%\begin{definition}[\DescribeMacro\SetTrackedDialectSubLang]
-%\cs{SetTrackedDialectSubLang}\marg{dialect}\marg{value}
-%\end{definition}
-%where \meta{dialect} is the dialect label and \meta{value} is the
-%code. For example:
-%\begin{verbatim}
-%\AddTrackedDialect{mandarin}{chinese}
-%\AddTrackedLanguageIsoCodes{chinese}
-%\SetTrackedDialectSubLang{mandarin}{cmn}
-%\AddTrackedIsoLanguage{639-3}{cmn}{mandarin}
-%\end{verbatim}
-%
-%As from v1.3, you can also provide additional information using:
-%\begin{definition}[\DescribeMacro\SetTrackedDialectAdditional]
-%\cs{SetTrackedDialectAdditional}\marg{dialect}\marg{value}
-%\end{definition}
-%where \meta{dialect} is the dialect label and \meta{value} is the
-%additional information.
-%
-%\section{Example}
-%
-%Suppose I want to create a language package \texttt{alien.sty} that defines the
-%\texttt{martian} language with regional dialects
-%\texttt{lowermartian} and \texttt{uppermartian}. First, let's
-%suppose that \styfmt{tracklang} recognises the root language
-%\texttt{martian}:
-%\begin{verbatim}
-% \ProvidesPackage{alien}
-%
-% \input{tracklang}% v1.3
-%
-% \DeclareOption{martian}{%
-% \TrackPredefinedDialect{martian}
-% }
-% \DeclareOption{lowermartian}{%
-% \AddTrackedDialect{lowermartian}{martian}
-% \AddTrackedIsoCodes{martian}
-% \AddTrackedIsoLanguage{3166-1}{YY}{lowermartian}
-% % other attributes such as
-% % \SetTrackedDialectVariant{lowermartian}{...}
-% }
-% \DeclareOption{uppermartian}{%
-% \AddTrackedDialect{uppermartian}{martian}
-% \AddTrackedIsoCodes{martian}
-% \AddTrackedIsoLanguage{3166-1}{XX}{uppermartian}
-% % other attributes such as
-% % \SetTrackedDialectVariant{uppermartian}{...}
-% }
-%
-% \ProcessOptions
-%
-% \newcommand*{\selectlanguage}[1]{%
-% \def\languagename{#1}%
-% % other stuff
-% \SetCurrentTrackedDialect{#1}%
-% }
-%
-% \AnyTrackedLanguages
-% {
-% \ForEachTrackedDialect{\thisdialect}
-% {%
-% \TrackLangRequireDialect{alien}{\thisdialect}
-% }
-% }
-%\end{verbatim}
-%The caption commands and language set up are in the files
-%\texttt{alien-}\meta{localeid}\texttt{.ldf} as in the examples from
-%\sectionref{sec:examples}. This allows for the user having already
-%loaded \styfmt{tracklang} before \styfmt{alien} and used \cs{TrackLangFromEnv} to pick up
-%the locale from the operating system's environment variables.
-%(For example, they may have \envvar{LANG} set to \texttt{xx\_YY}.)
-%
-%The resource files may need to set the mapping between the
-%\styfmt{tracklang} dialect label and the \styfmt{alien} dialect
-%label. For example, in \texttt{alien-xx-YY.ldf}:
-%\begin{verbatim}
-%\TrackLangProvidesResource{xx-YY}
-%
-%\TrackLangRequireResource{martian}% load common elements
-%
-%\newcommand{\captionslowermartian}{%
-% \captionsmartian
-% \def\contentsname{X'flurp}% regional variation
-%}
-%
-%\SetTrackedDialectLabelMap{\CurrentTrackedDialect}{lowermartian}
-%\end{verbatim}
-%
-%Now let's consider the case where \styfmt{tracklang} doesn't know
-%about the \texttt{martian} language. In this case the user can't
-%track the dialect until the root language has been defined, so the
-%user can't use \cs{TrackLangFromEnv} before using the \styfmt{alien}
-%package.
-%
-%With \styfmt{tracklang} v1.3. The new root language can be defined
-%with a minor adjustment to the above code:
-%\begin{verbatim}
-% \ProvidesPackage{alien}
+%\tableofcontents
%
-% \input{tracklang}% needs v1.3
+%\section{Introduction}
%
-% \TrackLangIfKnownLang{martian}
-% {}% tracklang already knows about the martian language
-% {
-% % tracklang doesn't known about the martian language, so define it
-% % with ISO 639-1 (xx) and ISO 639-2 (xxx) codes:
-% \TrackLangNewLanguage{martian}{xx}{xxx}{}{}{}{Latn}
-% }
-%\end{verbatim}
-%The rest is as before.
+%This is the documented code for the \sty{tracklang} package.
+%See \texttt{tracklang-manual.pdf} for the main user guide.
%
-%Now other package writers who want to provide support
-%for the Martian dialects can easily detect which language options
-%the user requested through my package, \emph{without needing to know
-%anything about my \styfmt{alien} package}.
+%\StopEventually{\clearpage\PrintChanges \clearpage\PrintIndex}
%
-%\StopEventually{%
-% \printindex[user]
-% \PrintCodeIndex
-% \PrintChanges
-%}
%
%
-%\chapter{The Code}
+%\section{Main Package Code}
%\iffalse
% \begin{macrocode}
%<*tracklang.sty>
@@ -3583,7 +119,7 @@ and~\ref{tab:nonisoopts}}
% packages such as \styfmt{etoolbox}.
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tracklang}[2020/06/30 v1.5 (NLCT) Track Languages]
+\ProvidesPackage{tracklang}[2022/10/29 v1.6 (NLCT) Track Languages]
% \end{macrocode}
%\begin{macro}{\@tracklang@declareoption}
% Set up package options.
@@ -3673,6 +209,15 @@ and~\ref{tab:nonisoopts}}
\@ifpackageloaded{polyglossia}
{%
% \end{macrocode}
+%\sty{polyglossia} now provides \cs{xpg@bcp@loaded}, which contains
+%a comma-separated list of language tags, so use that if
+%it exists.
+%\changes{1.6}{2022-10-29}{added check for \cs{xpg@bcp@loaded}}
+% \begin{macrocode}
+ \@ifundefined{xpg@bcp@loaded}%
+ {%
+% \end{macrocode}
+% Older versions:
% \sty{polyglossia} sets \cs{\meta{lang}@loaded} for each loaded
% language, so check this for all known languages. I don't know how
% to consistently check for variants. (Conditionals such as
@@ -3687,34 +232,70 @@ and~\ref{tab:nonisoopts}}
%\changes{1.3}{2016-10-07}{removed hard-coded polyglossia language list}
%\changes{1.3.5}{2018-02-21}{check for \cs{xpg@loaded}}
% \begin{macrocode}
- \@ifundefined{xpg@loaded}%
- {%
+ \@ifundefined{xpg@loaded}%
+ {%
% \end{macrocode}
%\cs{xpg@loaded} isn't defined, so iterate over known options and
%check if the language has been loaded.
% \begin{macrocode}
- \PackageInfo{tracklang}{polyglossia loaded but
- \string\xpg@loaded\space not defined. Will attempt
- to track known languages.}%
- \@for\this@language:=\@tracklang@declaredoptions\do{%
- \@ifundefined{\this@language @loaded}%
- {}%
- {\@nameuse{@tracklang@add@\this@language}}%
- }%
- }%
- {%
- \@for\this@language:=\xpg@loaded\do{%
- \@ifundefined{@tracklang@add@\this@language}%
- {%
- \PackageWarning{tracklang}%
- {Adding unknown polyglossia language `\this@language'}%
+ \PackageInfo{tracklang}{polyglossia loaded but
+ \string\xpg@loaded\space not defined. Will attempt
+ to track known languages.}%
+ \@for\this@language:=\@tracklang@declaredoptions\do{%
+ \@ifundefined{\this@language @loaded}%
+ {}%
+ {\@nameuse{@tracklang@add@\this@language}}%
+ }%
+ }%
+ {%
+ \@for\this@language:=\xpg@loaded\do{%
+ \@ifundefined{@tracklang@add@\this@language}%
+ {%
+ \PackageWarning{tracklang}%
+ {Adding unknown polyglossia language `\this@language'}%
% \end{macrocode}
%\changes{1.3.7}{2019-08-31}{corrected misspelt command}
% \begin{macrocode}
- \AddTrackedLanguage{\this@language}%
+ \AddTrackedLanguage{\this@language}%
+ }%
+ {\@nameuse{@tracklang@add@\this@language}}%
}%
- {\@nameuse{@tracklang@add@\this@language}}%
- }%
+ }%
+ }%
+ {%
+ \@for\this@language:=\xpg@bcp@loaded\do{%
+% \end{macrocode}
+%These are language tags, which is more convenient.
+% \begin{macrocode}
+ \expandafter\TrackLanguageTag{\this@language}%
+ }%
+ }%
+% \end{macrocode}
+%The \cs{xpg@bcp@loaded} list doesn't seem to include the main
+%language until the start of the document environment but
+%\cs{mainbabelname} is defined after \cs{setmainlanguage}. I'm not
+%sure if \cs{mainbabelname} was provided in the same version of
+%\sty{polyglossia} as \cs{xpg@bcp@loaded} or a different one, so
+%have a separate conditional.
+% \begin{macrocode}
+ \@ifundefined{mainbabelname}{}%
+ {%
+ \let\@org@tracklang@add@latex\@tracklang@add@latex
+ \def\@tracklang@add@latex{%
+ \PackageWarning{tracklang}%
+ {Can't detect polyglossia main language. It may
+ not have been set yet}%
+ }%
+ \@ifundefined{@tracklang@add@\mainbabelname}%
+ {%
+ \PackageWarning{tracklang}%
+ {Adding unknown polyglossia main babel name `\mainbabelname'}%
+ \expandafter\AddTrackedLanguage{\mainbabelname}%
+ }%
+ {%
+ \@nameuse{@tracklang@add@\mainbabelname}%
+ }%
+ \let\@tracklang@add@latex\@org@tracklang@add@latex
}%
}%
{%
@@ -3879,7 +460,7 @@ and~\ref{tab:nonisoopts}}
% Version info.
% \begin{macrocode}
\expandafter\def\csname ver@tracklang.tex\endcsname{%
- 2020/06/30 v1.5 (NLCT) Track Languages Generic Code}
+ 2022/10/29 v1.6 (NLCT) Track Languages Generic Code}
% \end{macrocode}
% Define a long command for determining the existence of a control
% sequence by its name. (\cs{relax} is considered undefined.)
@@ -4348,18 +929,19 @@ and~\ref{tab:nonisoopts}}
% \end{macrocode}
%\begin{macro}{\TrackLangQueryEnv}
%\changes{1.3}{2016-10-07}{new}
+%\changes{1.6}{2022-10-29}{changed \cs{x} to \cs{@tracklang@x}}
% \begin{macrocode}
\def\TrackLangQueryEnv{%
\begingroup\endlinechar=-1\relax
\everyeof{\noexpand}%
- \edef\x{\endgroup\def\noexpand\TrackLangEnv{%
- \@tracklang@input|"kpsewhich --var-value LC_ALL" }}\x
+ \edef\@tracklang@x{\endgroup\def\noexpand\TrackLangEnv{%
+ \@tracklang@input|"kpsewhich --var-value LC_ALL" }}\@tracklang@x
\@tracklang@checklocale
\ifx\TrackLangEnv\empty
\begingroup\endlinechar=-1\relax
\everyeof{\noexpand}%
- \edef\x{\endgroup\def\noexpand\TrackLangEnv{%
- \@tracklang@input|"kpsewhich --var-value LANG" }}\x
+ \edef\@tracklang@x{\endgroup\def\noexpand\TrackLangEnv{%
+ \@tracklang@input|"kpsewhich --var-value LANG" }}\@tracklang@x
% \end{macrocode}
%Not sure if a path is likely to occur with \app{kpsewhich}
%but check for it just in case.
@@ -4392,20 +974,20 @@ and~\ref{tab:nonisoopts}}
\def\TrackLangQueryOtherEnv#1{%
\begingroup\endlinechar=-1\relax
\everyeof{\noexpand}%
- \edef\x{\endgroup\def\noexpand\TrackLangEnv{%
- \@tracklang@input|"kpsewhich --var-value LC_ALL" }}\x
+ \edef\@tracklang@x{\endgroup\def\noexpand\TrackLangEnv{%
+ \@tracklang@input|"kpsewhich --var-value LC_ALL" }}\@tracklang@x
\@tracklang@checklocale
\ifx\TrackLangEnv\empty
\begingroup\endlinechar=-1\relax
\everyeof{\noexpand}%
- \edef\x{\endgroup\def\noexpand\TrackLangEnv{%
- \@tracklang@input|"kpsewhich --var-value #1" }}\x
+ \edef\@tracklang@x{\endgroup\def\noexpand\TrackLangEnv{%
+ \@tracklang@input|"kpsewhich --var-value #1" }}\@tracklang@x
\@tracklang@checklocale
\ifx\TrackLangEnv\empty
\begingroup\endlinechar=-1\relax
\everyeof{\noexpand}%
- \edef\x{\endgroup\def\noexpand\TrackLangEnv{%
- \@tracklang@input|"kpsewhich --var-value LANG"}}\x
+ \edef\@tracklang@x{\endgroup\def\noexpand\TrackLangEnv{%
+ \@tracklang@input|"kpsewhich --var-value LANG"}}\@tracklang@x
\@tracklang@checklocale
\ifx\TrackLangEnv\empty
% \end{macrocode}
@@ -5231,6 +1813,7 @@ and~\ref{tab:nonisoopts}}
%\end{macro}
%
%\begin{macro}{\ThreeLetterExtIsoLanguageCode}
+%\changes{1.3}{2016-10-07}{new}
% \begin{macrocode}
\def\ThreeLetterExtIsoLanguageCode{639-3}
% \end{macrocode}
@@ -5688,7 +2271,7 @@ and~\ref{tab:nonisoopts}}
%\begin{definition}
%\cs{AddTrackedLanguageIsoCodes}\marg{language}
%\end{definition}
-%Adds the ISO 639-1, 639-2 and 639-3 ISO codes for the given language,
+%Adds the 639-1, 639-2 and 639-3 ISO codes for the given language,
%which must have previously been declared using
%\cs{TrackLangNewLanguage}.
% \begin{macrocode}
@@ -12437,7 +9020,7 @@ and~\ref{tab:nonisoopts}}
% Version info.
% \begin{macrocode}
\expandafter\def\csname ver@tracklang-region-codes.tex\endcsname{%
- 2020/06/30 v1.5 (NLCT) Track Languages Regions}%
+ 2022/10/29 v1.6 (NLCT) Track Languages Regions}%
% \end{macrocode}
%
%\begin{macro}{\TrackLangRegionMap}
@@ -12830,7 +9413,7 @@ and~\ref{tab:nonisoopts}}
%\changes{1.3}{2016-10-07}{added tracklang-scripts.sty}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{tracklang-scripts}[2020/06/30 v1.5 (NLCT) Track
+\ProvidesPackage{tracklang-scripts}[2022/10/29 v1.6 (NLCT) Track
Language Scripts (LaTeX)]
\RequirePackage{tracklang}
\input{tracklang-scripts}
@@ -12872,10 +9455,10 @@ Language Scripts (LaTeX)]
% Version info.
% \begin{macrocode}
\expandafter\def\csname ver@tracklang-scripts.tex\endcsname{%
- 2020/06/30 v1.5 (NLCT) Track Languages Scripts (Generic)}%
+ 2022/10/29 v1.6 (NLCT) Track Languages Scripts (Generic)}%
% \end{macrocode}
%
-%\begin{macro}{\TrackLangScriptsMap}
+%\begin{macro}{\TrackLangScriptMap}
%\changes{1.3}{2016-10-07}{new}
%\begin{definition}
%\cs{TrackLangScriptMap}\marg{letter
@@ -13193,7 +9776,6 @@ Language Scripts (LaTeX)]
\TrackLangScriptMap{Tale}{353}{Tai Le}{LR}{}%
\TrackLangScriptMap{Talu}{354}{New Tai Lue}{LR}{}%
\TrackLangScriptMap{Taml}{346}{Tamil}{LR}{}%
-\TrackLangScriptMap{Taml}{346}{Tamil}{LR}{}%
\TrackLangScriptMap{Tang}{520}{Tangut}{LR}{}%
\TrackLangScriptMap{Tavt}{359}{Tai Viet}{LR}{}%
\TrackLangScriptMap{Telu}{340}{Telugu}{LR}{}%
diff --git a/macros/generic/tracklang/tracklang.ins b/macros/generic/tracklang/tracklang.ins
index 4b7bca1dde..42a18dc526 100644
--- a/macros/generic/tracklang/tracklang.ins
+++ b/macros/generic/tracklang/tracklang.ins
@@ -1,10 +1,10 @@
-% tracklang.ins generated using makedtx version 1.2 2020/6/30 11:55
+% tracklang.ins generated using makedtx version 1.2 2022/10/29 18:01
\input docstrip
\preamble
tracklang.dtx
- Copyright 2020 Nicola Talbot
+ Copyright 2022 Nicola Talbot
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff --git a/macros/generic/tracklang/tracklang.pdf b/macros/generic/tracklang/tracklang.pdf
deleted file mode 100644
index a498800ab0..0000000000
--- a/macros/generic/tracklang/tracklang.pdf
+++ /dev/null
Binary files differ