#!/usr/bin/perl use strict; system "stty -echo"; print STDERR "Give a password for ssh access: "; chomp(my $word = <STDIN>); print STDERR "\n"; system "stty echo"; my @salt = ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]; print crypt($word, join('', @salt)); print "\n"; type='application/atom+xml'/> <link rel='vcs-git' href='git://git.mageia.org/software/drakx' title='drakx Git repository'/> <link rel='vcs-git' href='ssh://git@git.mageia.org/software/drakx' title='drakx Git repository'/> </head> <body> <div id='cgit'><table id='header'> <tr> <td class='logo' rowspan='2'><a href='/'><img src='//nav.mageia.org/css/mageia-logo-nav-3.png' alt='cgit logo'/></a></td> <td class='main'><a href='/'>index</a> : <a title='drakx' href='/software/drakx/'>drakx</a></td><td class='form'><form method='get'> <input type='hidden' name='id' value='6a9bf734145dcf142f0d99d1fc00784db625048b'/><select name='h' onchange='this.form.submit();'> <option value='distro/mdv2007.1'>distro/mdv2007.1</option> <option value='distro/mdv2008.0'>distro/mdv2008.0</option> <option value='distro/mdv2008.1'>distro/mdv2008.1</option> <option value='distro/mdv2009.0'>distro/mdv2009.0</option> <option value='distro/mdv2009.1'>distro/mdv2009.1</option> <option value='distro/mdv2010.0'>distro/mdv2010.0</option> <option value='distro/mes5'>distro/mes5</option> <option value='distro/mes5-2.6.33'>distro/mes5-2.6.33</option> <option value='distro/mes6'>distro/mes6</option> <option value='distro/mga1'>distro/mga1</option> <option value='distro/mga2'>distro/mga2</option> <option value='distro/mga3'>distro/mga3</option> <option value='distro/mga4'>distro/mga4</option> <option value='distro/mga5'>distro/mga5</option> <option value='distro/mga6'>distro/mga6</option> <option value='distro/mga7'>distro/mga7</option> <option value='distro/mga8'>distro/mga8</option> <option value='distro/mga9'>distro/mga9</option> <option value='master'>master</option> <option value='topic/Corpo_2_1'>topic/Corpo_2_1</option> <option value='topic/KA9_0'>topic/KA9_0</option> <option value='topic/MDK-10-update'>topic/MDK-10-update</option> <option value='topic/MDK-10_1-update'>topic/MDK-10_1-update</option> <option value='topic/MDK-10_2-update'>topic/MDK-10_2-update</option> <option value='topic/MDK-2006_0-update'>topic/MDK-2006_0-update</option> <option value='topic/MDK92-branch'>topic/MDK92-branch</option> <option value='topic/MDKC_1_0'>topic/MDKC_1_0</option> <option value='topic/PCMCIA_CS_DISTRO'>topic/PCMCIA_CS_DISTRO</option> <option value='topic/R9_0-64bit-branch'>topic/R9_0-64bit-branch</option> <option value='topic/R9_1_HP-branch'>topic/R9_1_HP-branch</option> <option value='topic/a'>topic/a</option> <option value='topic/before_matchbox_wm'>topic/before_matchbox_wm</option> <option value='topic/bug-13680'>topic/bug-13680</option> <option value='topic/dietlibc'>topic/dietlibc</option> <option value='topic/efi'>topic/efi</option> <option value='topic/extlinux'>topic/extlinux</option> <option value='topic/firewall'>topic/firewall</option> <option value='topic/gdk-pixbuf-0-branch'>topic/gdk-pixbuf-0-branch</option> <option value='topic/gi-ppc'>topic/gi-ppc</option> <option value='topic/ia64-8_1'>topic/ia64-8_1</option> <option value='topic/mandrakesoft'>topic/mandrakesoft</option> <option value='topic/mlcd4'>topic/mlcd4</option> <option value='topic/ppp'>topic/ppp</option> <option value='topic/rp-pppoe'>topic/rp-pppoe</option> <option value='topic/switching_to_dnf'>topic/switching_to_dnf</option> <option value='topic/switching_to_urpmi'>topic/switching_to_urpmi</option> <option value='topic/unlabeled-1.1.1'>topic/unlabeled-1.1.1</option> <option value='topic/v_webmin_0_87'>topic/v_webmin_0_87</option> <option value='topic/x86_64-branch'>topic/x86_64-branch</option> <option value='user/animtim/designWork'>user/animtim/designWork</option> <option value='user/colin/rescue-systemd'>user/colin/rescue-systemd</option> <option value='user/ennael/mga6'>user/ennael/mga6</option> <option value='user/erwan/bug-13680'>user/erwan/bug-13680</option> <option value='user/jibz/aarch64'>user/jibz/aarch64</option> <option value='user/martinw/mga6'>user/martinw/mga6</option> <option value='user/pterjan/arm64'>user/pterjan/arm64</option> </select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>Mageia Installer and base platform for many utilities</td><td class='sub right'>Thierry Vignaud [tv]</td></tr></table> <table class='tabs'><tr><td> <a href='/software/drakx/?h=10.23'>summary</a><a href='/software/drakx/refs/?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>refs</a><a href='/software/drakx/log/perl-install/lang.pm?h=10.23'>log</a><a class='active' href='/software/drakx/tree/perl-install/lang.pm?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>tree</a><a href='/software/drakx/commit/perl-install/lang.pm?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>commit</a><a href='/software/drakx/diff/perl-install/lang.pm?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>diff</a><a href='/software/drakx/stats/perl-install/lang.pm?h=10.23'>stats</a></td><td class='form'><form class='right' method='get' action='/software/drakx/log/perl-install/lang.pm'> <input type='hidden' name='h' value='10.23'/><input type='hidden' name='id' value='6a9bf734145dcf142f0d99d1fc00784db625048b'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/software/drakx/tree/?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>root</a>/<a href='/software/drakx/tree/perl-install?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>perl-install</a>/<a href='/software/drakx/tree/perl-install/lang.pm?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>lang.pm</a></div><div class='content'>blob: a6d76e067024d4ca85659780d632af6df0d006e7 (<a href='/software/drakx/plain/perl-install/lang.pm?h=10.23&id=6a9bf734145dcf142f0d99d1fc00784db625048b'>plain</a>) <table summary='blob content' class='blob'> <tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a> <a id='n2' href='#n2'>2</a> <a id='n3' href='#n3'>3</a> <a id='n4' href='#n4'>4</a> <a id='n5' href='#n5'>5</a> <a id='n6' href='#n6'>6</a> <a id='n7' href='#n7'>7</a> <a id='n8' href='#n8'>8</a> <a id='n9' href='#n9'>9</a> <a id='n10' href='#n10'>10</a> <a id='n11' href='#n11'>11</a> <a id='n12' href='#n12'>12</a> <a id='n13' href='#n13'>13</a> <a id='n14' href='#n14'>14</a> <a id='n15' href='#n15'>15</a> <a id='n16' href='#n16'>16</a> <a id='n17' href='#n17'>17</a> <a id='n18' href='#n18'>18</a> <a id='n19' href='#n19'>19</a> <a id='n20' href='#n20'>20</a> <a id='n21' href='#n21'>21</a> <a id='n22' href='#n22'>22</a> <a id='n23' href='#n23'>23</a> <a id='n24' href='#n24'>24</a> <a id='n25' href='#n25'>25</a> <a id='n26' href='#n26'>26</a> <a id='n27' href='#n27'>27</a> <a id='n28' href='#n28'>28</a> <a id='n29' href='#n29'>29</a> <a id='n30' href='#n30'>30</a> <a id='n31' href='#n31'>31</a> <a id='n32' href='#n32'>32</a> <a id='n33' href='#n33'>33</a> <a id='n34' href='#n34'>34</a> <a id='n35' href='#n35'>35</a> <a id='n36' href='#n36'>36</a> <a id='n37' href='#n37'>37</a> <a id='n38' href='#n38'>38</a> <a id='n39' href='#n39'>39</a> <a id='n40' href='#n40'>40</a> <a id='n41' href='#n41'>41</a> <a id='n42' href='#n42'>42</a> <a id='n43' href='#n43'>43</a> <a id='n44' href='#n44'>44</a> <a id='n45' href='#n45'>45</a> <a id='n46' href='#n46'>46</a> <a id='n47' href='#n47'>47</a> <a id='n48' href='#n48'>48</a> <a id='n49' href='#n49'>49</a> <a id='n50' href='#n50'>50</a> <a id='n51' href='#n51'>51</a> <a id='n52' href='#n52'>52</a> <a id='n53' href='#n53'>53</a> <a id='n54' href='#n54'>54</a> <a id='n55' href='#n55'>55</a> <a id='n56' href='#n56'>56</a> <a id='n57' href='#n57'>57</a> <a id='n58' href='#n58'>58</a> <a id='n59' href='#n59'>59</a> <a id='n60' href='#n60'>60</a> <a id='n61' href='#n61'>61</a> <a id='n62' href='#n62'>62</a> <a id='n63' href='#n63'>63</a> <a id='n64' href='#n64'>64</a> <a id='n65' href='#n65'>65</a> <a id='n66' href='#n66'>66</a> <a id='n67' href='#n67'>67</a> <a id='n68' href='#n68'>68</a> <a id='n69' href='#n69'>69</a> <a id='n70' href='#n70'>70</a> <a id='n71' href='#n71'>71</a> <a id='n72' href='#n72'>72</a> <a id='n73' href='#n73'>73</a> <a id='n74' href='#n74'>74</a> <a id='n75' href='#n75'>75</a> <a id='n76' href='#n76'>76</a> <a id='n77' href='#n77'>77</a> <a id='n78' href='#n78'>78</a> <a id='n79' href='#n79'>79</a> <a id='n80' href='#n80'>80</a> <a id='n81' href='#n81'>81</a> <a id='n82' href='#n82'>82</a> <a id='n83' href='#n83'>83</a> <a id='n84' href='#n84'>84</a> <a id='n85' href='#n85'>85</a> <a id='n86' href='#n86'>86</a> <a id='n87' href='#n87'>87</a> <a id='n88' href='#n88'>88</a> <a id='n89' href='#n89'>89</a> <a id='n90' href='#n90'>90</a> <a id='n91' href='#n91'>91</a> <a id='n92' href='#n92'>92</a> <a id='n93' href='#n93'>93</a> <a id='n94' href='#n94'>94</a> <a id='n95' href='#n95'>95</a> <a id='n96' href='#n96'>96</a> <a id='n97' href='#n97'>97</a> <a id='n98' href='#n98'>98</a> <a id='n99' href='#n99'>99</a> <a id='n100' href='#n100'>100</a> <a id='n101' href='#n101'>101</a> <a id='n102' href='#n102'>102</a> <a id='n103' href='#n103'>103</a> <a id='n104' href='#n104'>104</a> <a id='n105' href='#n105'>105</a> <a id='n106' href='#n106'>106</a> <a id='n107' href='#n107'>107</a> <a id='n108' href='#n108'>108</a> <a id='n109' href='#n109'>109</a> <a id='n110' href='#n110'>110</a> <a id='n111' href='#n111'>111</a> <a id='n112' href='#n112'>112</a> <a id='n113' href='#n113'>113</a> <a id='n114' href='#n114'>114</a> <a id='n115' href='#n115'>115</a> <a id='n116' href='#n116'>116</a> <a id='n117' href='#n117'>117</a> <a id='n118' href='#n118'>118</a> <a id='n119' href='#n119'>119</a> <a id='n120' href='#n120'>120</a> <a id='n121' href='#n121'>121</a> <a id='n122' href='#n122'>122</a> <a id='n123' href='#n123'>123</a> <a id='n124' href='#n124'>124</a> <a id='n125' href='#n125'>125</a> <a id='n126' href='#n126'>126</a> <a id='n127' href='#n127'>127</a> <a id='n128' href='#n128'>128</a> <a id='n129' href='#n129'>129</a> <a id='n130' href='#n130'>130</a> <a id='n131' href='#n131'>131</a> <a id='n132' href='#n132'>132</a> <a id='n133' href='#n133'>133</a> <a id='n134' href='#n134'>134</a> <a id='n135' href='#n135'>135</a> <a id='n136' href='#n136'>136</a> <a id='n137' href='#n137'>137</a> <a id='n138' href='#n138'>138</a> <a id='n139' href='#n139'>139</a> <a id='n140' href='#n140'>140</a> <a id='n141' href='#n141'>141</a> <a id='n142' href='#n142'>142</a> <a id='n143' href='#n143'>143</a> <a id='n144' href='#n144'>144</a> <a id='n145' href='#n145'>145</a> <a id='n146' href='#n146'>146</a> <a id='n147' href='#n147'>147</a> <a id='n148' href='#n148'>148</a> <a id='n149' href='#n149'>149</a> <a id='n150' href='#n150'>150</a> <a id='n151' href='#n151'>151</a> <a id='n152' href='#n152'>152</a> <a id='n153' href='#n153'>153</a> <a id='n154' href='#n154'>154</a> <a id='n155' href='#n155'>155</a> <a id='n156' href='#n156'>156</a> <a id='n157' href='#n157'>157</a> <a id='n158' href='#n158'>158</a> <a id='n159' href='#n159'>159</a> <a id='n160' href='#n160'>160</a> <a id='n161' href='#n161'>161</a> <a id='n162' href='#n162'>162</a> <a id='n163' href='#n163'>163</a> <a id='n164' href='#n164'>164</a> <a id='n165' href='#n165'>165</a> <a id='n166' href='#n166'>166</a> <a id='n167' href='#n167'>167</a> <a id='n168' href='#n168'>168</a> <a id='n169' href='#n169'>169</a> <a id='n170' href='#n170'>170</a> <a id='n171' href='#n171'>171</a> <a id='n172' href='#n172'>172</a> <a id='n173' href='#n173'>173</a> <a id='n174' href='#n174'>174</a> <a id='n175' href='#n175'>175</a> <a id='n176' href='#n176'>176</a> <a id='n177' href='#n177'>177</a> <a id='n178' href='#n178'>178</a> <a id='n179' href='#n179'>179</a> <a id='n180' href='#n180'>180</a> <a id='n181' href='#n181'>181</a> <a id='n182' href='#n182'>182</a> <a id='n183' href='#n183'>183</a> <a id='n184' href='#n184'>184</a> <a id='n185' href='#n185'>185</a> <a id='n186' href='#n186'>186</a> <a id='n187' href='#n187'>187</a> <a id='n188' href='#n188'>188</a> <a id='n189' href='#n189'>189</a> <a id='n190' href='#n190'>190</a> <a id='n191' href='#n191'>191</a> <a id='n192' href='#n192'>192</a> <a id='n193' href='#n193'>193</a> <a id='n194' href='#n194'>194</a> <a id='n195' href='#n195'>195</a> <a id='n196' href='#n196'>196</a> <a id='n197' href='#n197'>197</a> <a id='n198' href='#n198'>198</a> <a id='n199' href='#n199'>199</a> <a id='n200' href='#n200'>200</a> <a id='n201' href='#n201'>201</a> <a id='n202' href='#n202'>202</a> <a id='n203' href='#n203'>203</a> <a id='n204' href='#n204'>204</a> <a id='n205' href='#n205'>205</a> <a id='n206' href='#n206'>206</a> <a id='n207' href='#n207'>207</a> <a id='n208' href='#n208'>208</a> <a id='n209' href='#n209'>209</a> <a id='n210' href='#n210'>210</a> <a id='n211' href='#n211'>211</a> <a id='n212' href='#n212'>212</a> <a id='n213' href='#n213'>213</a> <a id='n214' href='#n214'>214</a> <a id='n215' href='#n215'>215</a> <a id='n216' href='#n216'>216</a> <a id='n217' href='#n217'>217</a> <a id='n218' href='#n218'>218</a> <a id='n219' href='#n219'>219</a> <a id='n220' href='#n220'>220</a> <a id='n221' href='#n221'>221</a> <a id='n222' href='#n222'>222</a> <a id='n223' href='#n223'>223</a> <a id='n224' href='#n224'>224</a> <a id='n225' href='#n225'>225</a> <a id='n226' href='#n226'>226</a> <a id='n227' href='#n227'>227</a> <a id='n228' href='#n228'>228</a> <a id='n229' href='#n229'>229</a> <a id='n230' href='#n230'>230</a> <a id='n231' href='#n231'>231</a> <a id='n232' href='#n232'>232</a> <a id='n233' href='#n233'>233</a> <a id='n234' href='#n234'>234</a> <a id='n235' href='#n235'>235</a> <a id='n236' href='#n236'>236</a> <a id='n237' href='#n237'>237</a> <a id='n238' href='#n238'>238</a> <a id='n239' href='#n239'>239</a> <a id='n240' href='#n240'>240</a> <a id='n241' href='#n241'>241</a> <a id='n242' href='#n242'>242</a> <a id='n243' href='#n243'>243</a> <a id='n244' href='#n244'>244</a> <a id='n245' href='#n245'>245</a> <a id='n246' href='#n246'>246</a> <a id='n247' href='#n247'>247</a> <a id='n248' href='#n248'>248</a> <a id='n249' href='#n249'>249</a> <a id='n250' href='#n250'>250</a> <a id='n251' href='#n251'>251</a> <a id='n252' href='#n252'>252</a> <a id='n253' href='#n253'>253</a> <a id='n254' href='#n254'>254</a> <a id='n255' href='#n255'>255</a> <a id='n256' href='#n256'>256</a> <a id='n257' href='#n257'>257</a> <a id='n258' href='#n258'>258</a> <a id='n259' href='#n259'>259</a> <a id='n260' href='#n260'>260</a> <a id='n261' href='#n261'>261</a> <a id='n262' href='#n262'>262</a> <a id='n263' href='#n263'>263</a> <a id='n264' href='#n264'>264</a> <a id='n265' href='#n265'>265</a> <a id='n266' href='#n266'>266</a> <a id='n267' href='#n267'>267</a> <a id='n268' href='#n268'>268</a> <a id='n269' href='#n269'>269</a> <a id='n270' href='#n270'>270</a> <a id='n271' href='#n271'>271</a> <a id='n272' href='#n272'>272</a> <a id='n273' href='#n273'>273</a> <a id='n274' href='#n274'>274</a> <a id='n275' href='#n275'>275</a> <a id='n276' href='#n276'>276</a> <a id='n277' href='#n277'>277</a> <a id='n278' href='#n278'>278</a> <a id='n279' href='#n279'>279</a> <a id='n280' href='#n280'>280</a> <a id='n281' href='#n281'>281</a> <a id='n282' href='#n282'>282</a> <a id='n283' href='#n283'>283</a> <a id='n284' href='#n284'>284</a> <a id='n285' href='#n285'>285</a> <a id='n286' href='#n286'>286</a> <a id='n287' href='#n287'>287</a> <a id='n288' href='#n288'>288</a> <a id='n289' href='#n289'>289</a> <a id='n290' href='#n290'>290</a> <a id='n291' href='#n291'>291</a> <a id='n292' href='#n292'>292</a> <a id='n293' href='#n293'>293</a> <a id='n294' href='#n294'>294</a> <a id='n295' href='#n295'>295</a> <a id='n296' href='#n296'>296</a> <a id='n297' href='#n297'>297</a> <a id='n298' href='#n298'>298</a> <a id='n299' href='#n299'>299</a> <a id='n300' href='#n300'>300</a> <a id='n301' href='#n301'>301</a> <a id='n302' href='#n302'>302</a> <a id='n303' href='#n303'>303</a> <a id='n304' href='#n304'>304</a> <a id='n305' href='#n305'>305</a> <a id='n306' href='#n306'>306</a> <a id='n307' href='#n307'>307</a> <a id='n308' href='#n308'>308</a> <a id='n309' href='#n309'>309</a> <a id='n310' href='#n310'>310</a> <a id='n311' href='#n311'>311</a> <a id='n312' href='#n312'>312</a> <a id='n313' href='#n313'>313</a> <a id='n314' href='#n314'>314</a> <a id='n315' href='#n315'>315</a> <a id='n316' href='#n316'>316</a> <a id='n317' href='#n317'>317</a> <a id='n318' href='#n318'>318</a> <a id='n319' href='#n319'>319</a> <a id='n320' href='#n320'>320</a> <a id='n321' href='#n321'>321</a> <a id='n322' href='#n322'>322</a> <a id='n323' href='#n323'>323</a> <a id='n324' href='#n324'>324</a> <a id='n325' href='#n325'>325</a> <a id='n326' href='#n326'>326</a> <a id='n327' href='#n327'>327</a> <a id='n328' href='#n328'>328</a> <a id='n329' href='#n329'>329</a> <a id='n330' href='#n330'>330</a> <a id='n331' href='#n331'>331</a> <a id='n332' href='#n332'>332</a> <a id='n333' href='#n333'>333</a> <a id='n334' href='#n334'>334</a> <a id='n335' href='#n335'>335</a> <a id='n336' href='#n336'>336</a> <a id='n337' href='#n337'>337</a> <a id='n338' href='#n338'>338</a> <a id='n339' href='#n339'>339</a> <a id='n340' href='#n340'>340</a> <a id='n341' href='#n341'>341</a> <a id='n342' href='#n342'>342</a> <a id='n343' href='#n343'>343</a> <a id='n344' href='#n344'>344</a> <a id='n345' href='#n345'>345</a> <a id='n346' href='#n346'>346</a> <a id='n347' href='#n347'>347</a> <a id='n348' href='#n348'>348</a> <a id='n349' href='#n349'>349</a> <a id='n350' href='#n350'>350</a> <a id='n351' href='#n351'>351</a> <a id='n352' href='#n352'>352</a> <a id='n353' href='#n353'>353</a> <a id='n354' href='#n354'>354</a> <a id='n355' href='#n355'>355</a> <a id='n356' href='#n356'>356</a> <a id='n357' href='#n357'>357</a> <a id='n358' href='#n358'>358</a> <a id='n359' href='#n359'>359</a> <a id='n360' href='#n360'>360</a> <a id='n361' href='#n361'>361</a> <a id='n362' href='#n362'>362</a> <a id='n363' href='#n363'>363</a> <a id='n364' href='#n364'>364</a> <a id='n365' href='#n365'>365</a> <a id='n366' href='#n366'>366</a> <a id='n367' href='#n367'>367</a> <a id='n368' href='#n368'>368</a> <a id='n369' href='#n369'>369</a> <a id='n370' href='#n370'>370</a> <a id='n371' href='#n371'>371</a> <a id='n372' href='#n372'>372</a> <a id='n373' href='#n373'>373</a> <a id='n374' href='#n374'>374</a> <a id='n375' href='#n375'>375</a> <a id='n376' href='#n376'>376</a> <a id='n377' href='#n377'>377</a> <a id='n378' href='#n378'>378</a> <a id='n379' href='#n379'>379</a> <a id='n380' href='#n380'>380</a> <a id='n381' href='#n381'>381</a> <a id='n382' href='#n382'>382</a> <a id='n383' href='#n383'>383</a> <a id='n384' href='#n384'>384</a> <a id='n385' href='#n385'>385</a> <a id='n386' href='#n386'>386</a> <a id='n387' href='#n387'>387</a> <a id='n388' href='#n388'>388</a> <a id='n389' href='#n389'>389</a> <a id='n390' href='#n390'>390</a> <a id='n391' href='#n391'>391</a> <a id='n392' href='#n392'>392</a> <a id='n393' href='#n393'>393</a> <a id='n394' href='#n394'>394</a> <a id='n395' href='#n395'>395</a> <a id='n396' href='#n396'>396</a> <a id='n397' href='#n397'>397</a> <a id='n398' href='#n398'>398</a> <a id='n399' href='#n399'>399</a> <a id='n400' href='#n400'>400</a> <a id='n401' href='#n401'>401</a> <a id='n402' href='#n402'>402</a> <a id='n403' href='#n403'>403</a> <a id='n404' href='#n404'>404</a> <a id='n405' href='#n405'>405</a> <a id='n406' href='#n406'>406</a> <a id='n407' href='#n407'>407</a> <a id='n408' href='#n408'>408</a> <a id='n409' href='#n409'>409</a> <a id='n410' href='#n410'>410</a> <a id='n411' href='#n411'>411</a> <a id='n412' href='#n412'>412</a> <a id='n413' href='#n413'>413</a> <a id='n414' href='#n414'>414</a> <a id='n415' href='#n415'>415</a> <a id='n416' href='#n416'>416</a> <a id='n417' href='#n417'>417</a> <a id='n418' href='#n418'>418</a> <a id='n419' href='#n419'>419</a> <a id='n420' href='#n420'>420</a> <a id='n421' href='#n421'>421</a> <a id='n422' href='#n422'>422</a> <a id='n423' href='#n423'>423</a> <a id='n424' href='#n424'>424</a> <a id='n425' href='#n425'>425</a> <a id='n426' href='#n426'>426</a> <a id='n427' href='#n427'>427</a> <a id='n428' href='#n428'>428</a> <a id='n429' href='#n429'>429</a> <a id='n430' href='#n430'>430</a> <a id='n431' href='#n431'>431</a> <a id='n432' href='#n432'>432</a> <a id='n433' href='#n433'>433</a> <a id='n434' href='#n434'>434</a> <a id='n435' href='#n435'>435</a> <a id='n436' href='#n436'>436</a> <a id='n437' href='#n437'>437</a> <a id='n438' href='#n438'>438</a> <a id='n439' href='#n439'>439</a> <a id='n440' href='#n440'>440</a> <a id='n441' href='#n441'>441</a> <a id='n442' href='#n442'>442</a> <a id='n443' href='#n443'>443</a> <a id='n444' href='#n444'>444</a> <a id='n445' href='#n445'>445</a> <a id='n446' href='#n446'>446</a> <a id='n447' href='#n447'>447</a> <a id='n448' href='#n448'>448</a> <a id='n449' href='#n449'>449</a> <a id='n450' href='#n450'>450</a> <a id='n451' href='#n451'>451</a> <a id='n452' href='#n452'>452</a> <a id='n453' href='#n453'>453</a> <a id='n454' href='#n454'>454</a> <a id='n455' href='#n455'>455</a> <a id='n456' href='#n456'>456</a> <a id='n457' href='#n457'>457</a> <a id='n458' href='#n458'>458</a> <a id='n459' href='#n459'>459</a> <a id='n460' href='#n460'>460</a> <a id='n461' href='#n461'>461</a> <a id='n462' href='#n462'>462</a> <a id='n463' href='#n463'>463</a> <a id='n464' href='#n464'>464</a> <a id='n465' href='#n465'>465</a> <a id='n466' href='#n466'>466</a> <a id='n467' href='#n467'>467</a> <a id='n468' href='#n468'>468</a> <a id='n469' href='#n469'>469</a> <a id='n470' href='#n470'>470</a> <a id='n471' href='#n471'>471</a> <a id='n472' href='#n472'>472</a> <a id='n473' href='#n473'>473</a> <a id='n474' href='#n474'>474</a> <a id='n475' href='#n475'>475</a> <a id='n476' href='#n476'>476</a> <a id='n477' href='#n477'>477</a> <a id='n478' href='#n478'>478</a> <a id='n479' href='#n479'>479</a> <a id='n480' href='#n480'>480</a> <a id='n481' href='#n481'>481</a> <a id='n482' href='#n482'>482</a> <a id='n483' href='#n483'>483</a> <a id='n484' href='#n484'>484</a> <a id='n485' href='#n485'>485</a> <a id='n486' href='#n486'>486</a> <a id='n487' href='#n487'>487</a> <a id='n488' href='#n488'>488</a> <a id='n489' href='#n489'>489</a> <a id='n490' href='#n490'>490</a> <a id='n491' href='#n491'>491</a> <a id='n492' href='#n492'>492</a> <a id='n493' href='#n493'>493</a> <a id='n494' href='#n494'>494</a> <a id='n495' href='#n495'>495</a> <a id='n496' href='#n496'>496</a> <a id='n497' href='#n497'>497</a> <a id='n498' href='#n498'>498</a> <a id='n499' href='#n499'>499</a> <a id='n500' href='#n500'>500</a> <a id='n501' href='#n501'>501</a> <a id='n502' href='#n502'>502</a> <a id='n503' href='#n503'>503</a> <a id='n504' href='#n504'>504</a> <a id='n505' href='#n505'>505</a> <a id='n506' href='#n506'>506</a> <a id='n507' href='#n507'>507</a> <a id='n508' href='#n508'>508</a> <a id='n509' href='#n509'>509</a> <a id='n510' href='#n510'>510</a> <a id='n511' href='#n511'>511</a> <a id='n512' href='#n512'>512</a> <a id='n513' href='#n513'>513</a> <a id='n514' href='#n514'>514</a> <a id='n515' href='#n515'>515</a> <a id='n516' href='#n516'>516</a> <a id='n517' href='#n517'>517</a> <a id='n518' href='#n518'>518</a> <a id='n519' href='#n519'>519</a> <a id='n520' href='#n520'>520</a> <a id='n521' href='#n521'>521</a> <a id='n522' href='#n522'>522</a> <a id='n523' href='#n523'>523</a> <a id='n524' href='#n524'>524</a> <a id='n525' href='#n525'>525</a> <a id='n526' href='#n526'>526</a> <a id='n527' href='#n527'>527</a> <a id='n528' href='#n528'>528</a> <a id='n529' href='#n529'>529</a> <a id='n530' href='#n530'>530</a> <a id='n531' href='#n531'>531</a> <a id='n532' href='#n532'>532</a> <a id='n533' href='#n533'>533</a> <a id='n534' href='#n534'>534</a> <a id='n535' href='#n535'>535</a> <a id='n536' href='#n536'>536</a> <a id='n537' href='#n537'>537</a> <a id='n538' href='#n538'>538</a> <a id='n539' href='#n539'>539</a> <a id='n540' href='#n540'>540</a> <a id='n541' href='#n541'>541</a> <a id='n542' href='#n542'>542</a> <a id='n543' href='#n543'>543</a> <a id='n544' href='#n544'>544</a> <a id='n545' href='#n545'>545</a> <a id='n546' href='#n546'>546</a> <a id='n547' href='#n547'>547</a> <a id='n548' href='#n548'>548</a> <a id='n549' href='#n549'>549</a> <a id='n550' href='#n550'>550</a> <a id='n551' href='#n551'>551</a> <a id='n552' href='#n552'>552</a> <a id='n553' href='#n553'>553</a> <a id='n554' href='#n554'>554</a> <a id='n555' href='#n555'>555</a> <a id='n556' href='#n556'>556</a> <a id='n557' href='#n557'>557</a> <a id='n558' href='#n558'>558</a> <a id='n559' href='#n559'>559</a> <a id='n560' href='#n560'>560</a> <a id='n561' href='#n561'>561</a> <a id='n562' href='#n562'>562</a> <a id='n563' href='#n563'>563</a> <a id='n564' href='#n564'>564</a> <a id='n565' href='#n565'>565</a> <a id='n566' href='#n566'>566</a> <a id='n567' href='#n567'>567</a> <a id='n568' href='#n568'>568</a> <a id='n569' href='#n569'>569</a> <a id='n570' href='#n570'>570</a> <a id='n571' href='#n571'>571</a> <a id='n572' href='#n572'>572</a> <a id='n573' href='#n573'>573</a> <a id='n574' href='#n574'>574</a> <a id='n575' href='#n575'>575</a> <a id='n576' href='#n576'>576</a> <a id='n577' href='#n577'>577</a> <a id='n578' href='#n578'>578</a> <a id='n579' href='#n579'>579</a> <a id='n580' href='#n580'>580</a> <a id='n581' href='#n581'>581</a> <a id='n582' href='#n582'>582</a> <a id='n583' href='#n583'>583</a> <a id='n584' href='#n584'>584</a> <a id='n585' href='#n585'>585</a> <a id='n586' href='#n586'>586</a> <a id='n587' href='#n587'>587</a> <a id='n588' href='#n588'>588</a> <a id='n589' href='#n589'>589</a> <a id='n590' href='#n590'>590</a> <a id='n591' href='#n591'>591</a> <a id='n592' href='#n592'>592</a> <a id='n593' href='#n593'>593</a> <a id='n594' href='#n594'>594</a> <a id='n595' href='#n595'>595</a> <a id='n596' href='#n596'>596</a> <a id='n597' href='#n597'>597</a> <a id='n598' href='#n598'>598</a> <a id='n599' href='#n599'>599</a> <a id='n600' href='#n600'>600</a> <a id='n601' href='#n601'>601</a> <a id='n602' href='#n602'>602</a> <a id='n603' href='#n603'>603</a> <a id='n604' href='#n604'>604</a> <a id='n605' href='#n605'>605</a> <a id='n606' href='#n606'>606</a> <a id='n607' href='#n607'>607</a> <a id='n608' href='#n608'>608</a> <a id='n609' href='#n609'>609</a> <a id='n610' href='#n610'>610</a> <a id='n611' href='#n611'>611</a> <a id='n612' href='#n612'>612</a> <a id='n613' href='#n613'>613</a> <a id='n614' href='#n614'>614</a> <a id='n615' href='#n615'>615</a> <a id='n616' href='#n616'>616</a> <a id='n617' href='#n617'>617</a> <a id='n618' href='#n618'>618</a> <a id='n619' href='#n619'>619</a> <a id='n620' href='#n620'>620</a> <a id='n621' href='#n621'>621</a> <a id='n622' href='#n622'>622</a> <a id='n623' href='#n623'>623</a> <a id='n624' href='#n624'>624</a> <a id='n625' href='#n625'>625</a> <a id='n626' href='#n626'>626</a> <a id='n627' href='#n627'>627</a> <a id='n628' href='#n628'>628</a> <a id='n629' href='#n629'>629</a> <a id='n630' href='#n630'>630</a> <a id='n631' href='#n631'>631</a> <a id='n632' href='#n632'>632</a> <a id='n633' href='#n633'>633</a> <a id='n634' href='#n634'>634</a> <a id='n635' href='#n635'>635</a> <a id='n636' href='#n636'>636</a> <a id='n637' href='#n637'>637</a> <a id='n638' href='#n638'>638</a> <a id='n639' href='#n639'>639</a> <a id='n640' href='#n640'>640</a> <a id='n641' href='#n641'>641</a> <a id='n642' href='#n642'>642</a> <a id='n643' href='#n643'>643</a> <a id='n644' href='#n644'>644</a> <a id='n645' href='#n645'>645</a> <a id='n646' href='#n646'>646</a> <a id='n647' href='#n647'>647</a> <a id='n648' href='#n648'>648</a> <a id='n649' href='#n649'>649</a> <a id='n650' href='#n650'>650</a> <a id='n651' href='#n651'>651</a> <a id='n652' href='#n652'>652</a> <a id='n653' href='#n653'>653</a> <a id='n654' href='#n654'>654</a> <a id='n655' href='#n655'>655</a> <a id='n656' href='#n656'>656</a> <a id='n657' href='#n657'>657</a> <a id='n658' href='#n658'>658</a> <a id='n659' href='#n659'>659</a> <a id='n660' href='#n660'>660</a> <a id='n661' href='#n661'>661</a> <a id='n662' href='#n662'>662</a> <a id='n663' href='#n663'>663</a> <a id='n664' href='#n664'>664</a> <a id='n665' href='#n665'>665</a> <a id='n666' href='#n666'>666</a> <a id='n667' href='#n667'>667</a> <a id='n668' href='#n668'>668</a> <a id='n669' href='#n669'>669</a> <a id='n670' href='#n670'>670</a> <a id='n671' href='#n671'>671</a> <a id='n672' href='#n672'>672</a> <a id='n673' href='#n673'>673</a> <a id='n674' href='#n674'>674</a> <a id='n675' href='#n675'>675</a> <a id='n676' href='#n676'>676</a> <a id='n677' href='#n677'>677</a> <a id='n678' href='#n678'>678</a> <a id='n679' href='#n679'>679</a> <a id='n680' href='#n680'>680</a> <a id='n681' href='#n681'>681</a> <a id='n682' href='#n682'>682</a> <a id='n683' href='#n683'>683</a> <a id='n684' href='#n684'>684</a> <a id='n685' href='#n685'>685</a> <a id='n686' href='#n686'>686</a> <a id='n687' href='#n687'>687</a> <a id='n688' href='#n688'>688</a> <a id='n689' href='#n689'>689</a> <a id='n690' href='#n690'>690</a> <a id='n691' href='#n691'>691</a> <a id='n692' href='#n692'>692</a> <a id='n693' href='#n693'>693</a> <a id='n694' href='#n694'>694</a> <a id='n695' href='#n695'>695</a> <a id='n696' href='#n696'>696</a> <a id='n697' href='#n697'>697</a> <a id='n698' href='#n698'>698</a> <a id='n699' href='#n699'>699</a> <a id='n700' href='#n700'>700</a> <a id='n701' href='#n701'>701</a> <a id='n702' href='#n702'>702</a> <a id='n703' href='#n703'>703</a> <a id='n704' href='#n704'>704</a> <a id='n705' href='#n705'>705</a> <a id='n706' href='#n706'>706</a> <a id='n707' href='#n707'>707</a> <a id='n708' href='#n708'>708</a> <a id='n709' href='#n709'>709</a> <a id='n710' href='#n710'>710</a> <a id='n711' href='#n711'>711</a> <a id='n712' href='#n712'>712</a> <a id='n713' href='#n713'>713</a> <a id='n714' href='#n714'>714</a> <a id='n715' href='#n715'>715</a> <a id='n716' href='#n716'>716</a> <a id='n717' href='#n717'>717</a> <a id='n718' href='#n718'>718</a> <a id='n719' href='#n719'>719</a> <a id='n720' href='#n720'>720</a> <a id='n721' href='#n721'>721</a> <a id='n722' href='#n722'>722</a> <a id='n723' href='#n723'>723</a> <a id='n724' href='#n724'>724</a> <a id='n725' href='#n725'>725</a> <a id='n726' href='#n726'>726</a> <a id='n727' href='#n727'>727</a> <a id='n728' href='#n728'>728</a> <a id='n729' href='#n729'>729</a> <a id='n730' href='#n730'>730</a> <a id='n731' href='#n731'>731</a> <a id='n732' href='#n732'>732</a> <a id='n733' href='#n733'>733</a> <a id='n734' href='#n734'>734</a> <a id='n735' href='#n735'>735</a> <a id='n736' href='#n736'>736</a> <a id='n737' href='#n737'>737</a> <a id='n738' href='#n738'>738</a> <a id='n739' href='#n739'>739</a> <a id='n740' href='#n740'>740</a> <a id='n741' href='#n741'>741</a> <a id='n742' href='#n742'>742</a> <a id='n743' href='#n743'>743</a> <a id='n744' href='#n744'>744</a> <a id='n745' href='#n745'>745</a> <a id='n746' href='#n746'>746</a> <a id='n747' href='#n747'>747</a> <a id='n748' href='#n748'>748</a> <a id='n749' href='#n749'>749</a> <a id='n750' href='#n750'>750</a> <a id='n751' href='#n751'>751</a> <a id='n752' href='#n752'>752</a> <a id='n753' href='#n753'>753</a> <a id='n754' href='#n754'>754</a> <a id='n755' href='#n755'>755</a> <a id='n756' href='#n756'>756</a> <a id='n757' href='#n757'>757</a> <a id='n758' href='#n758'>758</a> <a id='n759' href='#n759'>759</a> <a id='n760' href='#n760'>760</a> <a id='n761' href='#n761'>761</a> <a id='n762' href='#n762'>762</a> <a id='n763' href='#n763'>763</a> <a id='n764' href='#n764'>764</a> <a id='n765' href='#n765'>765</a> <a id='n766' href='#n766'>766</a> <a id='n767' href='#n767'>767</a> <a id='n768' href='#n768'>768</a> <a id='n769' href='#n769'>769</a> <a id='n770' href='#n770'>770</a> <a id='n771' href='#n771'>771</a> <a id='n772' href='#n772'>772</a> <a id='n773' href='#n773'>773</a> <a id='n774' href='#n774'>774</a> <a id='n775' href='#n775'>775</a> <a id='n776' href='#n776'>776</a> <a id='n777' href='#n777'>777</a> <a id='n778' href='#n778'>778</a> <a id='n779' href='#n779'>779</a> <a id='n780' href='#n780'>780</a> <a id='n781' href='#n781'>781</a> <a id='n782' href='#n782'>782</a> <a id='n783' href='#n783'>783</a> <a id='n784' href='#n784'>784</a> <a id='n785' href='#n785'>785</a> <a id='n786' href='#n786'>786</a> <a id='n787' href='#n787'>787</a> <a id='n788' href='#n788'>788</a> <a id='n789' href='#n789'>789</a> <a id='n790' href='#n790'>790</a> <a id='n791' href='#n791'>791</a> <a id='n792' href='#n792'>792</a> <a id='n793' href='#n793'>793</a> <a id='n794' href='#n794'>794</a> <a id='n795' href='#n795'>795</a> <a id='n796' href='#n796'>796</a> <a id='n797' href='#n797'>797</a> <a id='n798' href='#n798'>798</a> <a id='n799' href='#n799'>799</a> <a id='n800' href='#n800'>800</a> <a id='n801' href='#n801'>801</a> <a id='n802' href='#n802'>802</a> <a id='n803' href='#n803'>803</a> <a id='n804' href='#n804'>804</a> <a id='n805' href='#n805'>805</a> <a id='n806' href='#n806'>806</a> <a id='n807' href='#n807'>807</a> <a id='n808' href='#n808'>808</a> <a id='n809' href='#n809'>809</a> <a id='n810' href='#n810'>810</a> <a id='n811' href='#n811'>811</a> <a id='n812' href='#n812'>812</a> <a id='n813' href='#n813'>813</a> <a id='n814' href='#n814'>814</a> <a id='n815' href='#n815'>815</a> <a id='n816' href='#n816'>816</a> <a id='n817' href='#n817'>817</a> <a id='n818' href='#n818'>818</a> <a id='n819' href='#n819'>819</a> <a id='n820' href='#n820'>820</a> <a id='n821' href='#n821'>821</a> <a id='n822' href='#n822'>822</a> <a id='n823' href='#n823'>823</a> <a id='n824' href='#n824'>824</a> <a id='n825' href='#n825'>825</a> <a id='n826' href='#n826'>826</a> <a id='n827' href='#n827'>827</a> <a id='n828' href='#n828'>828</a> <a id='n829' href='#n829'>829</a> <a id='n830' href='#n830'>830</a> <a id='n831' href='#n831'>831</a> <a id='n832' href='#n832'>832</a> <a id='n833' href='#n833'>833</a> <a id='n834' href='#n834'>834</a> <a id='n835' href='#n835'>835</a> <a id='n836' href='#n836'>836</a> <a id='n837' href='#n837'>837</a> <a id='n838' href='#n838'>838</a> <a id='n839' href='#n839'>839</a> <a id='n840' href='#n840'>840</a> <a id='n841' href='#n841'>841</a> <a id='n842' href='#n842'>842</a> <a id='n843' href='#n843'>843</a> <a id='n844' href='#n844'>844</a> <a id='n845' href='#n845'>845</a> <a id='n846' href='#n846'>846</a> <a id='n847' href='#n847'>847</a> <a id='n848' href='#n848'>848</a> <a id='n849' href='#n849'>849</a> <a id='n850' href='#n850'>850</a> <a id='n851' href='#n851'>851</a> <a id='n852' href='#n852'>852</a> <a id='n853' href='#n853'>853</a> <a id='n854' href='#n854'>854</a> <a id='n855' href='#n855'>855</a> <a id='n856' href='#n856'>856</a> <a id='n857' href='#n857'>857</a> <a id='n858' href='#n858'>858</a> <a id='n859' href='#n859'>859</a> <a id='n860' href='#n860'>860</a> <a id='n861' href='#n861'>861</a> <a id='n862' href='#n862'>862</a> <a id='n863' href='#n863'>863</a> <a id='n864' href='#n864'>864</a> <a id='n865' href='#n865'>865</a> <a id='n866' href='#n866'>866</a> <a id='n867' href='#n867'>867</a> <a id='n868' href='#n868'>868</a> <a id='n869' href='#n869'>869</a> <a id='n870' href='#n870'>870</a> <a id='n871' href='#n871'>871</a> <a id='n872' href='#n872'>872</a> <a id='n873' href='#n873'>873</a> <a id='n874' href='#n874'>874</a> <a id='n875' href='#n875'>875</a> <a id='n876' href='#n876'>876</a> <a id='n877' href='#n877'>877</a> <a id='n878' href='#n878'>878</a> <a id='n879' href='#n879'>879</a> <a id='n880' href='#n880'>880</a> <a id='n881' href='#n881'>881</a> <a id='n882' href='#n882'>882</a> <a id='n883' href='#n883'>883</a> <a id='n884' href='#n884'>884</a> <a id='n885' href='#n885'>885</a> <a id='n886' href='#n886'>886</a> <a id='n887' href='#n887'>887</a> <a id='n888' href='#n888'>888</a> <a id='n889' href='#n889'>889</a> <a id='n890' href='#n890'>890</a> <a id='n891' href='#n891'>891</a> <a id='n892' href='#n892'>892</a> <a id='n893' href='#n893'>893</a> <a id='n894' href='#n894'>894</a> <a id='n895' href='#n895'>895</a> <a id='n896' href='#n896'>896</a> <a id='n897' href='#n897'>897</a> <a id='n898' href='#n898'>898</a> <a id='n899' href='#n899'>899</a> <a id='n900' href='#n900'>900</a> <a id='n901' href='#n901'>901</a> <a id='n902' href='#n902'>902</a> <a id='n903' href='#n903'>903</a> <a id='n904' href='#n904'>904</a> <a id='n905' href='#n905'>905</a> <a id='n906' href='#n906'>906</a> <a id='n907' href='#n907'>907</a> <a id='n908' href='#n908'>908</a> <a id='n909' href='#n909'>909</a> <a id='n910' href='#n910'>910</a> <a id='n911' href='#n911'>911</a> <a id='n912' href='#n912'>912</a> <a id='n913' href='#n913'>913</a> <a id='n914' href='#n914'>914</a> <a id='n915' href='#n915'>915</a> <a id='n916' href='#n916'>916</a> <a id='n917' href='#n917'>917</a> <a id='n918' href='#n918'>918</a> <a id='n919' href='#n919'>919</a> <a id='n920' href='#n920'>920</a> <a id='n921' href='#n921'>921</a> <a id='n922' href='#n922'>922</a> <a id='n923' href='#n923'>923</a> <a id='n924' href='#n924'>924</a> <a id='n925' href='#n925'>925</a> <a id='n926' href='#n926'>926</a> <a id='n927' href='#n927'>927</a> <a id='n928' href='#n928'>928</a> <a id='n929' href='#n929'>929</a> <a id='n930' href='#n930'>930</a> <a id='n931' href='#n931'>931</a> <a id='n932' href='#n932'>932</a> <a id='n933' href='#n933'>933</a> <a id='n934' href='#n934'>934</a> <a id='n935' href='#n935'>935</a> <a id='n936' href='#n936'>936</a> <a id='n937' href='#n937'>937</a> <a id='n938' href='#n938'>938</a> <a id='n939' href='#n939'>939</a> <a id='n940' href='#n940'>940</a> <a id='n941' href='#n941'>941</a> <a id='n942' href='#n942'>942</a> <a id='n943' href='#n943'>943</a> <a id='n944' href='#n944'>944</a> <a id='n945' href='#n945'>945</a> <a id='n946' href='#n946'>946</a> <a id='n947' href='#n947'>947</a> <a id='n948' href='#n948'>948</a> <a id='n949' href='#n949'>949</a> <a id='n950' href='#n950'>950</a> <a id='n951' href='#n951'>951</a> <a id='n952' href='#n952'>952</a> <a id='n953' href='#n953'>953</a> <a id='n954' href='#n954'>954</a> <a id='n955' href='#n955'>955</a> <a id='n956' href='#n956'>956</a> <a id='n957' href='#n957'>957</a> <a id='n958' href='#n958'>958</a> <a id='n959' href='#n959'>959</a> <a id='n960' href='#n960'>960</a> <a id='n961' href='#n961'>961</a> <a id='n962' href='#n962'>962</a> <a id='n963' href='#n963'>963</a> <a id='n964' href='#n964'>964</a> <a id='n965' href='#n965'>965</a> <a id='n966' href='#n966'>966</a> <a id='n967' href='#n967'>967</a> <a id='n968' href='#n968'>968</a> <a id='n969' href='#n969'>969</a> <a id='n970' href='#n970'>970</a> <a id='n971' href='#n971'>971</a> <a id='n972' href='#n972'>972</a> <a id='n973' href='#n973'>973</a> <a id='n974' href='#n974'>974</a> <a id='n975' href='#n975'>975</a> <a id='n976' href='#n976'>976</a> <a id='n977' href='#n977'>977</a> <a id='n978' href='#n978'>978</a> <a id='n979' href='#n979'>979</a> <a id='n980' href='#n980'>980</a> <a id='n981' href='#n981'>981</a> <a id='n982' href='#n982'>982</a> <a id='n983' href='#n983'>983</a> <a id='n984' href='#n984'>984</a> <a id='n985' href='#n985'>985</a> <a id='n986' href='#n986'>986</a> <a id='n987' href='#n987'>987</a> <a id='n988' href='#n988'>988</a> <a id='n989' href='#n989'>989</a> <a id='n990' href='#n990'>990</a> <a id='n991' href='#n991'>991</a> <a id='n992' href='#n992'>992</a> <a id='n993' href='#n993'>993</a> <a id='n994' href='#n994'>994</a> <a id='n995' href='#n995'>995</a> <a id='n996' href='#n996'>996</a> <a id='n997' href='#n997'>997</a> <a id='n998' href='#n998'>998</a> <a id='n999' href='#n999'>999</a> <a id='n1000' href='#n1000'>1000</a> <a id='n1001' href='#n1001'>1001</a> <a id='n1002' href='#n1002'>1002</a> <a id='n1003' href='#n1003'>1003</a> <a id='n1004' href='#n1004'>1004</a> <a id='n1005' href='#n1005'>1005</a> <a id='n1006' href='#n1006'>1006</a> <a id='n1007' href='#n1007'>1007</a> <a id='n1008' href='#n1008'>1008</a> <a id='n1009' href='#n1009'>1009</a> <a id='n1010' href='#n1010'>1010</a> <a id='n1011' href='#n1011'>1011</a> <a id='n1012' href='#n1012'>1012</a> <a id='n1013' href='#n1013'>1013</a> <a id='n1014' href='#n1014'>1014</a> <a id='n1015' href='#n1015'>1015</a> <a id='n1016' href='#n1016'>1016</a> <a id='n1017' href='#n1017'>1017</a> <a id='n1018' href='#n1018'>1018</a> <a id='n1019' href='#n1019'>1019</a> <a id='n1020' href='#n1020'>1020</a> <a id='n1021' href='#n1021'>1021</a> <a id='n1022' href='#n1022'>1022</a> <a id='n1023' href='#n1023'>1023</a> <a id='n1024' href='#n1024'>1024</a> <a id='n1025' href='#n1025'>1025</a> <a id='n1026' href='#n1026'>1026</a> <a id='n1027' href='#n1027'>1027</a> <a id='n1028' href='#n1028'>1028</a> <a id='n1029' href='#n1029'>1029</a> <a id='n1030' href='#n1030'>1030</a> <a id='n1031' href='#n1031'>1031</a> <a id='n1032' href='#n1032'>1032</a> <a id='n1033' href='#n1033'>1033</a> <a id='n1034' href='#n1034'>1034</a> <a id='n1035' href='#n1035'>1035</a> <a id='n1036' href='#n1036'>1036</a> <a id='n1037' href='#n1037'>1037</a> <a id='n1038' href='#n1038'>1038</a> <a id='n1039' href='#n1039'>1039</a> <a id='n1040' href='#n1040'>1040</a> <a id='n1041' href='#n1041'>1041</a> <a id='n1042' href='#n1042'>1042</a> <a id='n1043' href='#n1043'>1043</a> <a id='n1044' href='#n1044'>1044</a> <a id='n1045' href='#n1045'>1045</a> <a id='n1046' href='#n1046'>1046</a> <a id='n1047' href='#n1047'>1047</a> <a id='n1048' href='#n1048'>1048</a> <a id='n1049' href='#n1049'>1049</a> <a id='n1050' href='#n1050'>1050</a> <a id='n1051' href='#n1051'>1051</a> <a id='n1052' href='#n1052'>1052</a> <a id='n1053' href='#n1053'>1053</a> <a id='n1054' href='#n1054'>1054</a> <a id='n1055' href='#n1055'>1055</a> <a id='n1056' href='#n1056'>1056</a> <a id='n1057' href='#n1057'>1057</a> <a id='n1058' href='#n1058'>1058</a> <a id='n1059' href='#n1059'>1059</a> <a id='n1060' href='#n1060'>1060</a> <a id='n1061' href='#n1061'>1061</a> <a id='n1062' href='#n1062'>1062</a> <a id='n1063' href='#n1063'>1063</a> <a id='n1064' href='#n1064'>1064</a> <a id='n1065' href='#n1065'>1065</a> <a id='n1066' href='#n1066'>1066</a> <a id='n1067' href='#n1067'>1067</a> <a id='n1068' href='#n1068'>1068</a> <a id='n1069' href='#n1069'>1069</a> <a id='n1070' href='#n1070'>1070</a> <a id='n1071' href='#n1071'>1071</a> <a id='n1072' href='#n1072'>1072</a> <a id='n1073' href='#n1073'>1073</a> <a id='n1074' href='#n1074'>1074</a> <a id='n1075' href='#n1075'>1075</a> <a id='n1076' href='#n1076'>1076</a> <a id='n1077' href='#n1077'>1077</a> <a id='n1078' href='#n1078'>1078</a> <a id='n1079' href='#n1079'>1079</a> <a id='n1080' href='#n1080'>1080</a> <a id='n1081' href='#n1081'>1081</a> <a id='n1082' href='#n1082'>1082</a> <a id='n1083' href='#n1083'>1083</a> <a id='n1084' href='#n1084'>1084</a> <a id='n1085' href='#n1085'>1085</a> <a id='n1086' href='#n1086'>1086</a> <a id='n1087' href='#n1087'>1087</a> <a id='n1088' href='#n1088'>1088</a> <a id='n1089' href='#n1089'>1089</a> <a id='n1090' href='#n1090'>1090</a> <a id='n1091' href='#n1091'>1091</a> <a id='n1092' href='#n1092'>1092</a> <a id='n1093' href='#n1093'>1093</a> <a id='n1094' href='#n1094'>1094</a> <a id='n1095' href='#n1095'>1095</a> <a id='n1096' href='#n1096'>1096</a> <a id='n1097' href='#n1097'>1097</a> <a id='n1098' href='#n1098'>1098</a> <a id='n1099' href='#n1099'>1099</a> <a id='n1100' href='#n1100'>1100</a> <a id='n1101' href='#n1101'>1101</a> <a id='n1102' href='#n1102'>1102</a> <a id='n1103' href='#n1103'>1103</a> <a id='n1104' href='#n1104'>1104</a> <a id='n1105' href='#n1105'>1105</a> <a id='n1106' href='#n1106'>1106</a> <a id='n1107' href='#n1107'>1107</a> <a id='n1108' href='#n1108'>1108</a> <a id='n1109' href='#n1109'>1109</a> <a id='n1110' href='#n1110'>1110</a> <a id='n1111' href='#n1111'>1111</a> <a id='n1112' href='#n1112'>1112</a> <a id='n1113' href='#n1113'>1113</a> <a id='n1114' href='#n1114'>1114</a> <a id='n1115' href='#n1115'>1115</a> <a id='n1116' href='#n1116'>1116</a> <a id='n1117' href='#n1117'>1117</a> <a id='n1118' href='#n1118'>1118</a> <a id='n1119' href='#n1119'>1119</a> <a id='n1120' href='#n1120'>1120</a> <a id='n1121' href='#n1121'>1121</a> <a id='n1122' href='#n1122'>1122</a> <a id='n1123' href='#n1123'>1123</a> <a id='n1124' href='#n1124'>1124</a> <a id='n1125' href='#n1125'>1125</a> <a id='n1126' href='#n1126'>1126</a> <a id='n1127' href='#n1127'>1127</a> <a id='n1128' href='#n1128'>1128</a> <a id='n1129' href='#n1129'>1129</a> <a id='n1130' href='#n1130'>1130</a> <a id='n1131' href='#n1131'>1131</a> <a id='n1132' href='#n1132'>1132</a> <a id='n1133' href='#n1133'>1133</a> <a id='n1134' href='#n1134'>1134</a> <a id='n1135' href='#n1135'>1135</a> <a id='n1136' href='#n1136'>1136</a> <a id='n1137' href='#n1137'>1137</a> <a id='n1138' href='#n1138'>1138</a> <a id='n1139' href='#n1139'>1139</a> <a id='n1140' href='#n1140'>1140</a> <a id='n1141' href='#n1141'>1141</a> <a id='n1142' href='#n1142'>1142</a> <a id='n1143' href='#n1143'>1143</a> <a id='n1144' href='#n1144'>1144</a> <a id='n1145' href='#n1145'>1145</a> <a id='n1146' href='#n1146'>1146</a> <a id='n1147' href='#n1147'>1147</a> <a id='n1148' href='#n1148'>1148</a> <a id='n1149' href='#n1149'>1149</a> <a id='n1150' href='#n1150'>1150</a> <a id='n1151' href='#n1151'>1151</a> <a id='n1152' href='#n1152'>1152</a> <a id='n1153' href='#n1153'>1153</a> <a id='n1154' href='#n1154'>1154</a> <a id='n1155' href='#n1155'>1155</a> <a id='n1156' href='#n1156'>1156</a> <a id='n1157' href='#n1157'>1157</a> <a id='n1158' href='#n1158'>1158</a> <a id='n1159' href='#n1159'>1159</a> <a id='n1160' href='#n1160'>1160</a> <a id='n1161' href='#n1161'>1161</a> <a id='n1162' href='#n1162'>1162</a> <a id='n1163' href='#n1163'>1163</a> <a id='n1164' href='#n1164'>1164</a> <a id='n1165' href='#n1165'>1165</a> <a id='n1166' href='#n1166'>1166</a> <a id='n1167' href='#n1167'>1167</a> <a id='n1168' href='#n1168'>1168</a> <a id='n1169' href='#n1169'>1169</a> <a id='n1170' href='#n1170'>1170</a> <a id='n1171' href='#n1171'>1171</a> <a id='n1172' href='#n1172'>1172</a> <a id='n1173' href='#n1173'>1173</a> <a id='n1174' href='#n1174'>1174</a> <a id='n1175' href='#n1175'>1175</a> <a id='n1176' href='#n1176'>1176</a> <a id='n1177' href='#n1177'>1177</a> <a id='n1178' href='#n1178'>1178</a> <a id='n1179' href='#n1179'>1179</a> <a id='n1180' href='#n1180'>1180</a> <a id='n1181' href='#n1181'>1181</a> <a id='n1182' href='#n1182'>1182</a> <a id='n1183' href='#n1183'>1183</a> <a id='n1184' href='#n1184'>1184</a> <a id='n1185' href='#n1185'>1185</a> <a id='n1186' href='#n1186'>1186</a> <a id='n1187' href='#n1187'>1187</a> <a id='n1188' href='#n1188'>1188</a> <a id='n1189' href='#n1189'>1189</a> <a id='n1190' href='#n1190'>1190</a> <a id='n1191' href='#n1191'>1191</a> <a id='n1192' href='#n1192'>1192</a> <a id='n1193' href='#n1193'>1193</a> <a id='n1194' href='#n1194'>1194</a> <a id='n1195' href='#n1195'>1195</a> <a id='n1196' href='#n1196'>1196</a> <a id='n1197' href='#n1197'>1197</a> <a id='n1198' href='#n1198'>1198</a> <a id='n1199' href='#n1199'>1199</a> <a id='n1200' href='#n1200'>1200</a> <a id='n1201' href='#n1201'>1201</a> <a id='n1202' href='#n1202'>1202</a> <a id='n1203' href='#n1203'>1203</a> <a id='n1204' href='#n1204'>1204</a> <a id='n1205' href='#n1205'>1205</a> <a id='n1206' href='#n1206'>1206</a> <a id='n1207' href='#n1207'>1207</a> <a id='n1208' href='#n1208'>1208</a> <a id='n1209' href='#n1209'>1209</a> <a id='n1210' href='#n1210'>1210</a> <a id='n1211' href='#n1211'>1211</a> <a id='n1212' href='#n1212'>1212</a> <a id='n1213' href='#n1213'>1213</a> <a id='n1214' href='#n1214'>1214</a> <a id='n1215' href='#n1215'>1215</a> <a id='n1216' href='#n1216'>1216</a> <a id='n1217' href='#n1217'>1217</a> <a id='n1218' href='#n1218'>1218</a> <a id='n1219' href='#n1219'>1219</a> <a id='n1220' href='#n1220'>1220</a> <a id='n1221' href='#n1221'>1221</a> <a id='n1222' href='#n1222'>1222</a> <a id='n1223' href='#n1223'>1223</a> <a id='n1224' href='#n1224'>1224</a> <a id='n1225' href='#n1225'>1225</a> <a id='n1226' href='#n1226'>1226</a> <a id='n1227' href='#n1227'>1227</a> <a id='n1228' href='#n1228'>1228</a> </pre></td> <td class='lines'><pre><code><span class="hl kwa">package</span> lang<span class="hl opt">;</span> <span class="hl slc"># $Id$</span> <span class="hl kwa">use</span> diagnostics<span class="hl opt">;</span> <span class="hl kwa">use</span> strict<span class="hl opt">;</span> <span class="hl kwa">use</span> common<span class="hl opt">;</span> <span class="hl kwa">use</span> <span class="hl kwc">log</span><span class="hl opt">;</span> <span class="hl slc">#- key: lang name (locale name for some (~5) special cases needing</span> <span class="hl slc">#- extra distinctions)</span> <span class="hl slc">#- [0]: lang name in english</span> <span class="hl slc">#- [1]: transliterated locale name in the locale name (used for sorting)</span> <span class="hl slc">#- [2]: default locale name to use for that language if there isn't</span> <span class="hl slc">#- an existing locale for the combination language+country choosen</span> <span class="hl slc">#- [3]: geographic groups that this language belongs to (for displaying</span> <span class="hl slc">#- in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa,</span> <span class="hl slc">#- 4=Oceania&Pacific, 5=America (if you wonder, it's the order</span> <span class="hl slc">#- used in the olympic flag)</span> <span class="hl slc">#- [4]: special value for LANGUAGE variable (if different of the default</span> <span class="hl slc">#- of 'll_CC:ll_DD:ll' (ll_CC: locale (if exist) resulting of the</span> <span class="hl slc">#- combination of chosen lang (ll) and country (CC), ll_DD: the</span> <span class="hl slc">#- default locale shown here (field [2]) and ll: the language (the key))</span> <span class="hl kwc">our</span> <span class="hl kwb">%langs</span> <span class="hl opt">= (</span> <span class="hl str">'af'</span> <span class="hl opt">=> [</span> <span class="hl str">'Afrikaans'</span><span class="hl opt">,</span> <span class="hl str">'Afrikaans'</span><span class="hl opt">,</span> <span class="hl str">'af_ZA'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'am'</span> <span class="hl opt">=> [</span> <span class="hl str">'Amharic'</span><span class="hl opt">,</span> <span class="hl str">'ZZ emarNa'</span><span class="hl opt">,</span> <span class="hl str">'am_ET'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'utf_am'</span> <span class="hl opt">],</span> <span class="hl str">'ar'</span> <span class="hl opt">=> [</span> <span class="hl str">'Arabic'</span><span class="hl opt">,</span> <span class="hl str">'AA Arabic'</span><span class="hl opt">,</span> <span class="hl str">'ar_EG'</span><span class="hl opt">,</span> <span class="hl str">' 23 '</span><span class="hl opt">,</span> <span class="hl str">'utf_ar'</span> <span class="hl opt">],</span> <span class="hl str">'as'</span> <span class="hl opt">=> [</span> <span class="hl str">'Assamese'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Assamese'</span><span class="hl opt">,</span> <span class="hl str">'as_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_bn'</span> <span class="hl opt">],</span> <span class="hl str">'az'</span> <span class="hl opt">=> [</span> <span class="hl str">'Azeri (Latin)'</span><span class="hl opt">,</span> <span class="hl str">'Azerbaycanca'</span><span class="hl opt">,</span> <span class="hl str">'az_AZ'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_az'</span> <span class="hl opt">],</span> <span class="hl str">'be'</span> <span class="hl opt">=> [</span> <span class="hl str">'Belarussian'</span><span class="hl opt">,</span> <span class="hl str">'Belaruskaya'</span><span class="hl opt">,</span> <span class="hl str">'be_BY'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'cp1251'</span> <span class="hl opt">],</span> <span class="hl str">'bg'</span> <span class="hl opt">=> [</span> <span class="hl str">'Bulgarian'</span><span class="hl opt">,</span> <span class="hl str">'Blgarski'</span><span class="hl opt">,</span> <span class="hl str">'bg_BG'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'cp1251'</span> <span class="hl opt">],</span> <span class="hl str">'bn'</span> <span class="hl opt">=> [</span> <span class="hl str">'Bengali'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Bengali'</span><span class="hl opt">,</span> <span class="hl str">'bn_BD'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_bn'</span> <span class="hl opt">],</span> <span class="hl str">'br'</span> <span class="hl opt">=> [</span> <span class="hl str">'Britton'</span><span class="hl opt">,</span> <span class="hl str">'Brezhoneg'</span><span class="hl opt">,</span> <span class="hl str">'br_FR'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'br:fr_FR:fr'</span> <span class="hl opt">],</span> <span class="hl str">'bs'</span> <span class="hl opt">=> [</span> <span class="hl str">'Bosnian'</span><span class="hl opt">,</span> <span class="hl str">'Bosanski'</span><span class="hl opt">,</span> <span class="hl str">'bs_BA'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'ca'</span> <span class="hl opt">=> [</span> <span class="hl str">'Catalan'</span><span class="hl opt">,</span> <span class="hl str">'Catala'</span><span class="hl opt">,</span> <span class="hl str">'ca_ES'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'ca:es_ES:es'</span> <span class="hl opt">],</span> <span class="hl str">'cs'</span> <span class="hl opt">=> [</span> <span class="hl str">'Czech'</span><span class="hl opt">,</span> <span class="hl str">'Cestina'</span><span class="hl opt">,</span> <span class="hl str">'cs_CZ'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'cy'</span> <span class="hl opt">=> [</span> <span class="hl str">'Welsh'</span><span class="hl opt">,</span> <span class="hl str">'Cymraeg'</span><span class="hl opt">,</span> <span class="hl str">'cy_GB'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'utf_lat8'</span><span class="hl opt">,</span> <span class="hl str">'cy:en_GB:en'</span> <span class="hl opt">],</span> <span class="hl str">'da'</span> <span class="hl opt">=> [</span> <span class="hl str">'Danish'</span><span class="hl opt">,</span> <span class="hl str">'Dansk'</span><span class="hl opt">,</span> <span class="hl str">'da_DK'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'de'</span> <span class="hl opt">=> [</span> <span class="hl str">'German'</span><span class="hl opt">,</span> <span class="hl str">'Deutsch'</span><span class="hl opt">,</span> <span class="hl str">'de_DE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl slc">#-'dz' => [ 'Buthanese', 'ZZ Dzhonka', 'dz_BT', ' 2 ', 'unicode' ],</span> <span class="hl str">'el'</span> <span class="hl opt">=> [</span> <span class="hl str">'Greek'</span><span class="hl opt">,</span> <span class="hl str">'Ellynika'</span><span class="hl opt">,</span> <span class="hl str">'el_GR'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-7'</span> <span class="hl opt">],</span> <span class="hl str">'en_GB'</span> <span class="hl opt">=> [</span> <span class="hl str">'English'</span><span class="hl opt">,</span> <span class="hl str">'English'</span><span class="hl opt">,</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'12345'</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'en_US'</span> <span class="hl opt">=> [</span> <span class="hl str">'English (American)'</span><span class="hl opt">,</span> <span class="hl str">'English (American)'</span><span class="hl opt">,</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">' 5'</span><span class="hl opt">,</span> <span class="hl str">'C'</span> <span class="hl opt">],</span> <span class="hl str">'en_IE'</span> <span class="hl opt">=> [</span> <span class="hl str">'English (Ireland)'</span><span class="hl opt">,</span> <span class="hl str">'English (Ireland)'</span><span class="hl opt">,</span> <span class="hl str">'en_IE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'en_IE:en_GB:en'</span> <span class="hl opt">],</span> <span class="hl str">'eo'</span> <span class="hl opt">=> [</span> <span class="hl str">'Esperanto'</span><span class="hl opt">,</span> <span class="hl str">'Esperanto'</span><span class="hl opt">,</span> <span class="hl str">'eo_XX'</span><span class="hl opt">,</span> <span class="hl str">'12345'</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl str">'es'</span> <span class="hl opt">=> [</span> <span class="hl str">'Spanish'</span><span class="hl opt">,</span> <span class="hl str">'Espanol'</span><span class="hl opt">,</span> <span class="hl str">'es_ES'</span><span class="hl opt">,</span> <span class="hl str">'1 3 5'</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'et'</span> <span class="hl opt">=> [</span> <span class="hl str">'Estonian'</span><span class="hl opt">,</span> <span class="hl str">'Eesti'</span><span class="hl opt">,</span> <span class="hl str">'et_EE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'eu'</span> <span class="hl opt">=> [</span> <span class="hl str">'Euskara (Basque)'</span><span class="hl opt">,</span> <span class="hl str">'Euskara'</span><span class="hl opt">,</span> <span class="hl str">'eu_ES'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'fa'</span> <span class="hl opt">=> [</span> <span class="hl str">'Farsi (Iranian)'</span><span class="hl opt">,</span> <span class="hl str">'AA Farsi'</span><span class="hl opt">,</span> <span class="hl str">'fa_IR'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_ar'</span> <span class="hl opt">],</span> <span class="hl str">'fi'</span> <span class="hl opt">=> [</span> <span class="hl str">'Finnish (Suomi)'</span><span class="hl opt">,</span> <span class="hl str">'Suomi'</span><span class="hl opt">,</span> <span class="hl str">'fi_FI'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'fo'</span> <span class="hl opt">=> [</span> <span class="hl str">'Faroese'</span><span class="hl opt">,</span> <span class="hl str">'Foroyskt'</span><span class="hl opt">,</span> <span class="hl str">'fo_FO'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'fr'</span> <span class="hl opt">=> [</span> <span class="hl str">'French'</span><span class="hl opt">,</span> <span class="hl str">'Francais'</span><span class="hl opt">,</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'1 345'</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl slc">#'fur' => [ 'Furlan', 'Furlan', 'fur_IT', '1 ', 'iso-8859-15', 'fur:it_IT:it' ],</span> <span class="hl str">'ga'</span> <span class="hl opt">=> [</span> <span class="hl str">'Gaelic (Irish)'</span><span class="hl opt">,</span> <span class="hl str">'Gaeilge'</span><span class="hl opt">,</span> <span class="hl str">'ga_IE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'ga:en_IE:en_GB:en'</span> <span class="hl opt">],</span> <span class="hl slc">#'gd' => [ 'Gaelic (Scottish)', 'Gaidhlig', 'gd_GB', '1 ', 'utf_lat8', 'gd:en_GB:en' ],</span> <span class="hl str">'gl'</span> <span class="hl opt">=> [</span> <span class="hl str">'Galician'</span><span class="hl opt">,</span> <span class="hl str">'Galego'</span><span class="hl opt">,</span> <span class="hl str">'gl_ES'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'gl:es_ES:es:pt:pt_BR'</span> <span class="hl opt">],</span> <span class="hl slc">#'gn' => [ 'Guarani', 'Avane-e', 'gn_PY', ' 5', 'utf8', 'gn:es_PY:es' ],</span> <span class="hl str">'gu'</span> <span class="hl opt">=> [</span> <span class="hl str">'Gujarati'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Gujarati'</span><span class="hl opt">,</span> <span class="hl str">'gu_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl slc">#'gv' => [ 'Gaelic (Manx)', 'Gaelg', 'gv_GB', '1 ', 'utf_lat8', 'gv:en_GB:en' ],</span> <span class="hl str">'he'</span> <span class="hl opt">=> [</span> <span class="hl str">'Hebrew'</span><span class="hl opt">,</span> <span class="hl str">'AA Ivrit'</span><span class="hl opt">,</span> <span class="hl str">'he_IL'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_he'</span> <span class="hl opt">],</span> <span class="hl str">'hi'</span> <span class="hl opt">=> [</span> <span class="hl str">'Hindi'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Hindi'</span><span class="hl opt">,</span> <span class="hl str">'hi_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_hi'</span> <span class="hl opt">],</span> <span class="hl str">'hr'</span> <span class="hl opt">=> [</span> <span class="hl str">'Croatian'</span><span class="hl opt">,</span> <span class="hl str">'Hrvatski'</span><span class="hl opt">,</span> <span class="hl str">'hr_HR'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'hu'</span> <span class="hl opt">=> [</span> <span class="hl str">'Hungarian'</span><span class="hl opt">,</span> <span class="hl str">'Magyar'</span><span class="hl opt">,</span> <span class="hl str">'hu_HU'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'hy'</span> <span class="hl opt">=> [</span> <span class="hl str">'Armenian'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Armenian'</span><span class="hl opt">,</span> <span class="hl str">'hy_AM'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_hy'</span> <span class="hl opt">],</span> <span class="hl slc"># locale not done yet</span> <span class="hl slc">#'ia' => [ 'Interlingua', 'Interlingua', 'ia_XX', '1 5', 'utf8' ],</span> <span class="hl str">'id'</span> <span class="hl opt">=> [</span> <span class="hl str">'Indonesian'</span><span class="hl opt">,</span> <span class="hl str">'Bahasa Indonesia'</span><span class="hl opt">,</span> <span class="hl str">'id_ID'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'is'</span> <span class="hl opt">=> [</span> <span class="hl str">'Icelandic'</span><span class="hl opt">,</span> <span class="hl str">'Islenska'</span><span class="hl opt">,</span> <span class="hl str">'is_IS'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'it'</span> <span class="hl opt">=> [</span> <span class="hl str">'Italian'</span><span class="hl opt">,</span> <span class="hl str">'Italiano'</span><span class="hl opt">,</span> <span class="hl str">'it_IT'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl slc">#-'iu' => [ 'Inuktitut', 'ZZ Inuktitut', 'iu_CA', ' 5', 'utf_iu' ],</span> <span class="hl str">'ja'</span> <span class="hl opt">=> [</span> <span class="hl str">'Japanese'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Nihongo'</span><span class="hl opt">,</span> <span class="hl str">'ja_JP'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'jisx0208'</span> <span class="hl opt">],</span> <span class="hl str">'ka'</span> <span class="hl opt">=> [</span> <span class="hl str">'Georgian'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Georgian'</span><span class="hl opt">,</span> <span class="hl str">'ka_GE'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_ka'</span> <span class="hl opt">],</span> <span class="hl slc">#-'kl' => [ 'Greenlandic (inuit)', 'ZZ Inuit', 'kl_GL', ' 5', 'iso-8859-1' ],</span> <span class="hl str">'kn'</span> <span class="hl opt">=> [</span> <span class="hl str">'Kannada'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Kannada'</span><span class="hl opt">,</span> <span class="hl str">'kn_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_kn'</span> <span class="hl opt">],</span> <span class="hl str">'ko'</span> <span class="hl opt">=> [</span> <span class="hl str">'Korean'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Korea'</span><span class="hl opt">,</span> <span class="hl str">'ko_KR'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'ksc5601'</span> <span class="hl opt">],</span> <span class="hl str">'ku'</span> <span class="hl opt">=> [</span> <span class="hl str">'Kurdish'</span><span class="hl opt">,</span> <span class="hl str">'Kurdi'</span><span class="hl opt">,</span> <span class="hl str">'ku_TR'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-9'</span> <span class="hl opt">],</span> <span class="hl slc">#-'kw' => [ 'Cornish', 'Kernewek', 'kw_GB', '1 ', 'utf_lat8', 'kw:en_GB:en' ],</span> <span class="hl str">'ky'</span> <span class="hl opt">=> [</span> <span class="hl str">'Kyrgyz'</span><span class="hl opt">,</span> <span class="hl str">'Kyrgyz'</span><span class="hl opt">,</span> <span class="hl str">'ky_KG'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr2'</span> <span class="hl opt">],</span> <span class="hl str">'li'</span> <span class="hl opt">=> [</span> <span class="hl str">'Limbourgish'</span><span class="hl opt">,</span> <span class="hl str">'Limburgs'</span><span class="hl opt">,</span> <span class="hl str">'li_NL'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'lo'</span> <span class="hl opt">=> [</span> <span class="hl str">'Laotian'</span><span class="hl opt">,</span> <span class="hl str">'Laotian'</span><span class="hl opt">,</span> <span class="hl str">'lo_LA'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_lo'</span> <span class="hl opt">],</span> <span class="hl str">'lt'</span> <span class="hl opt">=> [</span> <span class="hl str">'Lithuanian'</span><span class="hl opt">,</span> <span class="hl str">'Lietuviskai'</span><span class="hl opt">,</span> <span class="hl str">'lt_LT'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-13'</span> <span class="hl opt">],</span> <span class="hl slc">#- ltg_LV locale not done yet, using lv_LV for now</span> <span class="hl str">'ltg'</span> <span class="hl opt">=> [</span> <span class="hl str">'Latgalian'</span><span class="hl opt">,</span> <span class="hl str">'Latgalisu'</span><span class="hl opt">,</span> <span class="hl str">'lv_LV'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-13'</span><span class="hl opt">,</span> <span class="hl str">'ltg,lv'</span> <span class="hl opt">],</span> <span class="hl str">'lv'</span> <span class="hl opt">=> [</span> <span class="hl str">'Latvian'</span><span class="hl opt">,</span> <span class="hl str">'Latviesu'</span><span class="hl opt">,</span> <span class="hl str">'lv_LV'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-13'</span> <span class="hl opt">],</span> <span class="hl str">'mi'</span> <span class="hl opt">=> [</span> <span class="hl str">'Maori'</span><span class="hl opt">,</span> <span class="hl str">'Maori'</span><span class="hl opt">,</span> <span class="hl str">'mi_NZ'</span><span class="hl opt">,</span> <span class="hl str">' 4 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl str">'mk'</span> <span class="hl opt">=> [</span> <span class="hl str">'Macedonian'</span><span class="hl opt">,</span> <span class="hl str">'Makedonski'</span><span class="hl opt">,</span> <span class="hl str">'mk_MK'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr1'</span> <span class="hl opt">],</span> <span class="hl str">'ml'</span> <span class="hl opt">=> [</span> <span class="hl str">'Malayalam'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Malayalam'</span><span class="hl opt">,</span> <span class="hl str">'ml_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_ml'</span> <span class="hl opt">],</span> <span class="hl str">'mn'</span> <span class="hl opt">=> [</span> <span class="hl str">'Mongolian'</span><span class="hl opt">,</span> <span class="hl str">'Mongol'</span><span class="hl opt">,</span> <span class="hl str">'mn_MN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr2'</span> <span class="hl opt">],</span> <span class="hl str">'mr'</span> <span class="hl opt">=> [</span> <span class="hl str">'Marathi'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Marathi'</span><span class="hl opt">,</span> <span class="hl str">'mr_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_hi'</span> <span class="hl opt">],</span> <span class="hl str">'ms'</span> <span class="hl opt">=> [</span> <span class="hl str">'Malay'</span><span class="hl opt">,</span> <span class="hl str">'Bahasa Melayu'</span><span class="hl opt">,</span> <span class="hl str">'ms_MY'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'mt'</span> <span class="hl opt">=> [</span> <span class="hl str">'Maltese'</span><span class="hl opt">,</span> <span class="hl str">'Maltin'</span><span class="hl opt">,</span> <span class="hl str">'mt_MT'</span><span class="hl opt">,</span> <span class="hl str">'1 3 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl str">'nb'</span> <span class="hl opt">=> [</span> <span class="hl str">'Norwegian Bokmaal'</span><span class="hl opt">,</span> <span class="hl str">'Norsk, Bokmal'</span><span class="hl opt">,</span> <span class="hl str">'nb_NO'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'nb:no'</span> <span class="hl opt">],</span> <span class="hl str">'nds'</span> <span class="hl opt">=> [</span> <span class="hl str">'Low Saxon'</span><span class="hl opt">,</span> <span class="hl str">'Platduutsch'</span><span class="hl opt">,</span> <span class="hl str">'nds_DE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'nds_DE:nds'</span> <span class="hl opt">],</span> <span class="hl str">'ne'</span> <span class="hl opt">=> [</span> <span class="hl str">'Nepali'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Nepali'</span><span class="hl opt">,</span> <span class="hl str">'ne_NP'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl str">'nl'</span> <span class="hl opt">=> [</span> <span class="hl str">'Dutch'</span><span class="hl opt">,</span> <span class="hl str">'Nederlands'</span><span class="hl opt">,</span> <span class="hl str">'nl_NL'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">],</span> <span class="hl str">'nn'</span> <span class="hl opt">=> [</span> <span class="hl str">'Norwegian Nynorsk'</span><span class="hl opt">,</span> <span class="hl str">'Norsk, Nynorsk'</span><span class="hl opt">,</span> <span class="hl str">'nn_NO'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'nn:no</span><span class="hl ipl">@nynorsk</span><span class="hl str">:no_NY:no:nb'</span> <span class="hl opt">],</span> <span class="hl str">'oc'</span> <span class="hl opt">=> [</span> <span class="hl str">'Occitan'</span><span class="hl opt">,</span> <span class="hl str">'Occitan'</span><span class="hl opt">,</span> <span class="hl str">'oc_FR'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'oc:fr_FR:fr'</span> <span class="hl opt">],</span> <span class="hl slc"># 'tl' in priority position for now, as 'ph' is not yet official and 'tl'</span> <span class="hl slc"># is used instead. Monolingual window managers won't see the menus otherwise</span> <span class="hl str">'ph'</span> <span class="hl opt">=> [</span> <span class="hl str">'Filipino'</span><span class="hl opt">,</span> <span class="hl str">'Filipino'</span><span class="hl opt">,</span> <span class="hl str">'ph_PH'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'tl:ph'</span> <span class="hl opt">],</span> <span class="hl str">'pl'</span> <span class="hl opt">=> [</span> <span class="hl str">'Polish'</span><span class="hl opt">,</span> <span class="hl str">'Polski'</span><span class="hl opt">,</span> <span class="hl str">'pl_PL'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'pt'</span> <span class="hl opt">=> [</span> <span class="hl str">'Portuguese'</span><span class="hl opt">,</span> <span class="hl str">'Portugues'</span><span class="hl opt">,</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'1 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'pt_PT:pt:pt_BR'</span> <span class="hl opt">],</span> <span class="hl str">'pt_BR'</span> <span class="hl opt">=> [</span> <span class="hl str">'Portuguese Brazil'</span><span class="hl opt">,</span> <span class="hl str">'Portugues do Brasil'</span><span class="hl opt">,</span> <span class="hl str">'pt_BR'</span><span class="hl opt">,</span> <span class="hl str">' 5'</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'pt_BR:pt_PT:pt'</span> <span class="hl opt">],</span> <span class="hl str">'ro'</span> <span class="hl opt">=> [</span> <span class="hl str">'Romanian'</span><span class="hl opt">,</span> <span class="hl str">'Romana'</span><span class="hl opt">,</span> <span class="hl str">'ro_RO'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'ru'</span> <span class="hl opt">=> [</span> <span class="hl str">'Russian'</span><span class="hl opt">,</span> <span class="hl str">'Russkij'</span><span class="hl opt">,</span> <span class="hl str">'ru_RU'</span><span class="hl opt">,</span> <span class="hl str">'12 '</span><span class="hl opt">,</span> <span class="hl str">'koi8-u'</span> <span class="hl opt">],</span> <span class="hl slc">#'sc' => [ 'Sardian', 'Sardu', 'sc_IT', '1 ', 'iso-8859-15', 'sc:it_IT:it' ],</span> <span class="hl str">'se'</span> <span class="hl opt">=> [</span> <span class="hl str">'Saami'</span><span class="hl opt">,</span> <span class="hl str">'Samegiella'</span><span class="hl opt">,</span> <span class="hl str">'se_NO'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl str">'sk'</span> <span class="hl opt">=> [</span> <span class="hl str">'Slovak'</span><span class="hl opt">,</span> <span class="hl str">'Slovencina'</span><span class="hl opt">,</span> <span class="hl str">'sk_SK'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'sl'</span> <span class="hl opt">=> [</span> <span class="hl str">'Slovenian'</span><span class="hl opt">,</span> <span class="hl str">'Slovenscina'</span><span class="hl opt">,</span> <span class="hl str">'sl_SI'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">],</span> <span class="hl str">'sq'</span> <span class="hl opt">=> [</span> <span class="hl str">'Albanian'</span><span class="hl opt">,</span> <span class="hl str">'Shqip'</span><span class="hl opt">,</span> <span class="hl str">'sq_AL'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'sr'</span> <span class="hl opt">=> [</span> <span class="hl str">'Serbian Cyrillic'</span><span class="hl opt">,</span> <span class="hl str">'Srpska'</span><span class="hl opt">,</span> <span class="hl str">'sr_CS'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr1'</span><span class="hl opt">,</span> <span class="hl str">'sp:sr'</span> <span class="hl opt">],</span> <span class="hl str">'sr</span><span class="hl ipl">@Latn</span><span class="hl str">'</span> <span class="hl opt">=> [</span> <span class="hl str">'Serbian Latin'</span><span class="hl opt">,</span> <span class="hl str">'Srpska'</span><span class="hl opt">,</span> <span class="hl str">'sr_CS'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span><span class="hl opt">,</span> <span class="hl str">'sh:sr</span><span class="hl ipl">@Latn</span><span class="hl str">'</span> <span class="hl opt">],</span> <span class="hl slc">#- ss_ZA not yet done, using en_ZA locale instead</span> <span class="hl str">'ss'</span> <span class="hl opt">=> [</span> <span class="hl str">'Swati'</span><span class="hl opt">,</span> <span class="hl str">'SiSwati'</span><span class="hl opt">,</span> <span class="hl str">'en_ZA'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'ss:en_ZA'</span> <span class="hl opt">],</span> <span class="hl str">'st'</span> <span class="hl opt">=> [</span> <span class="hl str">'Sotho'</span><span class="hl opt">,</span> <span class="hl str">'Sesotho'</span><span class="hl opt">,</span> <span class="hl str">'st_ZA'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'st:nso:en_ZA'</span> <span class="hl opt">],</span> <span class="hl str">'sv'</span> <span class="hl opt">=> [</span> <span class="hl str">'Swedish'</span><span class="hl opt">,</span> <span class="hl str">'Svenska'</span><span class="hl opt">,</span> <span class="hl str">'sv_SE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">],</span> <span class="hl str">'ta'</span> <span class="hl opt">=> [</span> <span class="hl str">'Tamil'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Tamil'</span><span class="hl opt">,</span> <span class="hl str">'ta_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_ta'</span> <span class="hl opt">],</span> <span class="hl str">'te'</span> <span class="hl opt">=> [</span> <span class="hl str">'Telugu'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Telugu'</span><span class="hl opt">,</span> <span class="hl str">'te_IN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span> <span class="hl opt">],</span> <span class="hl str">'tg'</span> <span class="hl opt">=> [</span> <span class="hl str">'Tajik'</span><span class="hl opt">,</span> <span class="hl str">'Tojiki'</span><span class="hl opt">,</span> <span class="hl str">'tg_TJ'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr2'</span> <span class="hl opt">],</span> <span class="hl str">'th'</span> <span class="hl opt">=> [</span> <span class="hl str">'Thai'</span><span class="hl opt">,</span> <span class="hl str">'ZZ Thai'</span><span class="hl opt">,</span> <span class="hl str">'th_TH'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'tis620'</span> <span class="hl opt">],</span> <span class="hl slc">#-'tk' => [ 'Turkmen', 'Turkmence', 'tk_TM', ' 2 ', 'utf8' ],</span> <span class="hl str">'tr'</span> <span class="hl opt">=> [</span> <span class="hl str">'Turkish'</span><span class="hl opt">,</span> <span class="hl str">'Turkce'</span><span class="hl opt">,</span> <span class="hl str">'tr_TR'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-9'</span> <span class="hl opt">],</span> <span class="hl slc">#-'tt' => [ 'Tatar', 'Tatarca', 'tt_RU', ' 2 ', 'utf8' ],</span> <span class="hl str">'uk'</span> <span class="hl opt">=> [</span> <span class="hl str">'Ukrainian'</span><span class="hl opt">,</span> <span class="hl str">'Ukrayinska'</span><span class="hl opt">,</span> <span class="hl str">'uk_UA'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'koi8-u'</span> <span class="hl opt">],</span> <span class="hl slc">#-'ur' => [ 'Urdu', 'AA Urdu', 'ur_PK', ' 2 ', 'utf_ar' ], </span> <span class="hl str">'uz</span><span class="hl ipl">@Latn</span><span class="hl str">'</span> <span class="hl opt">=> [</span> <span class="hl str">'Uzbek (latin)'</span><span class="hl opt">,</span> <span class="hl str">'Ozbekcha'</span><span class="hl opt">,</span> <span class="hl str">'uz_UZ'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr2'</span><span class="hl opt">,</span> <span class="hl str">'uz</span><span class="hl ipl">@Latn</span><span class="hl str">:uz'</span> <span class="hl opt">],</span> <span class="hl str">'uz'</span> <span class="hl opt">=> [</span> <span class="hl str">'Uzbek (cyrillic)'</span><span class="hl opt">,</span> <span class="hl str">'Ozbekcha'</span><span class="hl opt">,</span> <span class="hl str">'uz_UZ'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr2'</span><span class="hl opt">,</span> <span class="hl str">'uz</span><span class="hl ipl">@Cyrl</span><span class="hl str">:uz'</span> <span class="hl opt">],</span> <span class="hl slc">#- ve_ZA not yet done, using en_ZA locale instead</span> <span class="hl str">'ve'</span> <span class="hl opt">=> [</span> <span class="hl str">'Venda'</span><span class="hl opt">,</span> <span class="hl str">'Venda'</span><span class="hl opt">,</span> <span class="hl str">'en_ZA'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'ve:ven:en_ZA'</span> <span class="hl opt">],</span> <span class="hl str">'vi'</span> <span class="hl opt">=> [</span> <span class="hl str">'Vietnamese'</span><span class="hl opt">,</span> <span class="hl str">'Tieng Viet'</span><span class="hl opt">,</span> <span class="hl str">'vi_VN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'utf_vi'</span> <span class="hl opt">],</span> <span class="hl str">'wa'</span> <span class="hl opt">=> [</span> <span class="hl str">'Walon'</span><span class="hl opt">,</span> <span class="hl str">'Walon'</span><span class="hl opt">,</span> <span class="hl str">'wa_BE'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-15'</span><span class="hl opt">,</span> <span class="hl str">'wa:fr_BE:fr'</span> <span class="hl opt">],</span> <span class="hl slc">#- locale not done yet</span> <span class="hl slc">#'wen' => [ 'Sorbian', 'XX Sorbian', 'wen_XX', '1 ', 'iso-8859-1' ],</span> <span class="hl str">'xh'</span> <span class="hl opt">=> [</span> <span class="hl str">'Xhosa'</span><span class="hl opt">,</span> <span class="hl str">'IsiXhosa'</span><span class="hl opt">,</span> <span class="hl str">'xh_ZA'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'xh:en_ZA'</span> <span class="hl opt">],</span> <span class="hl str">'yi'</span> <span class="hl opt">=> [</span> <span class="hl str">'Yiddish'</span><span class="hl opt">,</span> <span class="hl str">'AA Yidish'</span><span class="hl opt">,</span> <span class="hl str">'yi_US'</span><span class="hl opt">,</span> <span class="hl str">'1 '</span><span class="hl opt">,</span> <span class="hl str">'utf_he'</span> <span class="hl opt">],</span> <span class="hl str">'zh_CN'</span> <span class="hl opt">=> [</span> <span class="hl str">'Chinese Simplified'</span><span class="hl opt">,</span> <span class="hl str">'ZZ ZhongWen'</span><span class="hl opt">,</span> <span class="hl str">'zh_CN'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'gb2312'</span><span class="hl opt">,</span> <span class="hl str">'zh_CN.GB2312:zh_CN:zh'</span> <span class="hl opt">],</span> <span class="hl str">'zh_TW'</span> <span class="hl opt">=> [</span> <span class="hl str">'Chinese Traditional'</span><span class="hl opt">,</span> <span class="hl str">'ZZ ZhongWen'</span><span class="hl opt">,</span> <span class="hl str">'zh_TW'</span><span class="hl opt">,</span> <span class="hl str">' 2 '</span><span class="hl opt">,</span> <span class="hl str">'Big5'</span><span class="hl opt">,</span> <span class="hl str">'zh_TW.Big5:zh_TW:zh_HK:zh'</span> <span class="hl opt">],</span> <span class="hl str">'zu'</span> <span class="hl opt">=> [</span> <span class="hl str">'Zulu'</span><span class="hl opt">,</span> <span class="hl str">'IsiZulu'</span><span class="hl opt">,</span> <span class="hl str">'zu_ZA'</span><span class="hl opt">,</span> <span class="hl str">' 3 '</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-1'</span><span class="hl opt">,</span> <span class="hl str">'xh:en_ZA'</span> <span class="hl opt">],</span> <span class="hl opt">);</span> <span class="hl kwa">sub</span> l2name <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">0</span><span class="hl opt">] }</span> <span class="hl kwa">sub</span> l2transliterated <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">1</span><span class="hl opt">] }</span> <span class="hl kwa">sub</span> l2locale <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">2</span><span class="hl opt">] }</span> <span class="hl kwa">sub</span> l2location <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">%geo</span> <span class="hl opt">= (</span><span class="hl num">1</span> <span class="hl opt">=></span> <span class="hl str">'Europe'</span><span class="hl opt">,</span> <span class="hl num">2</span> <span class="hl opt">=></span> <span class="hl str">'Asia'</span><span class="hl opt">,</span> <span class="hl num">3</span> <span class="hl opt">=></span> <span class="hl str">'Africa'</span><span class="hl opt">,</span> <span class="hl num">4</span> <span class="hl opt">=></span> <span class="hl str">'Oceania/Pacific'</span><span class="hl opt">,</span> <span class="hl num">5</span> <span class="hl opt">=></span> <span class="hl str">'America'</span><span class="hl opt">);</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> if_<span class="hl opt">(</span><span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">3</span><span class="hl opt">] =~</span> <span class="hl kwb">$_, $geo</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">}) }</span> <span class="hl num">1</span><span class="hl opt">.</span><span class="hl num">.5</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> l2charset <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">4</span><span class="hl opt">] }</span> <span class="hl kwa">sub</span> l2language <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">5</span><span class="hl opt">] }</span> <span class="hl kwa">sub</span> list_langs <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">%options</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> <span class="hl kwc">keys</span> <span class="hl kwb">%langs</span><span class="hl opt">;</span> <span class="hl kwb">$options</span><span class="hl opt">{</span>exclude_non_installed<span class="hl opt">}</span> ? <span class="hl kwc">grep</span> <span class="hl opt">{ -</span>e <span class="hl str">"/usr/share/locale/"</span><span class="hl opt">.</span>l2locale<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">).</span><span class="hl str">"/LC_CTYPE"</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span> <span class="hl opt">:</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> text_direction_rtl<span class="hl opt">() {</span> N<span class="hl opt">(</span><span class="hl str">"default:LTR"</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">"default:RTL"</span> <span class="hl opt">}</span> <span class="hl slc">#- key: country name (that should be YY in xx_YY locale)</span> <span class="hl slc">#- [0]: country name in natural language</span> <span class="hl slc">#- [1]: default locale for that country </span> <span class="hl slc">#- [2]: geographic groups that this country belongs to (for displaying</span> <span class="hl slc">#- in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa,</span> <span class="hl slc">#- 4=Oceania&Pacific, 5=America (if you wonder, it's the order</span> <span class="hl slc">#- used in the olympic flag)</span> <span class="hl slc">#-</span> <span class="hl slc">#- Note: for countries for which a glibc locale don't exist (yet) I tried to</span> <span class="hl slc">#- put a locale that makes sense; and a '#' at the end of the line to show</span> <span class="hl slc">#- the locale is not the "correct" one. 'en_US' is used when no good choice</span> <span class="hl slc">#- is available.</span> <span class="hl kwc">my</span> <span class="hl kwb">%countries</span> <span class="hl opt">= (</span> <span class="hl str">'AF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Afghanistan"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Andorra"</span><span class="hl opt">),</span> <span class="hl str">'ca_ES'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"United Arab Emirates"</span><span class="hl opt">),</span> <span class="hl str">'ar_AE'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'AG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Antigua and Barbuda"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Anguilla"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Albania"</span><span class="hl opt">),</span> <span class="hl str">'sq_AL'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'AM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Armenia"</span><span class="hl opt">),</span> <span class="hl str">'hy_AM'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'AN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Netherlands Antilles"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Angola"</span><span class="hl opt">),</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AQ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Antarctica"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Argentina"</span><span class="hl opt">),</span> <span class="hl str">'es_AR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'AS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"American Samoa"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Austria"</span><span class="hl opt">),</span> <span class="hl str">'de_AT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'AU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Australia"</span><span class="hl opt">),</span> <span class="hl str">'en_AU'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl str">'AW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Aruba"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'AZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Azerbaijan"</span><span class="hl opt">),</span> <span class="hl str">'az_AZ'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'BA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bosnia and Herzegovina"</span><span class="hl opt">),</span> <span class="hl str">'bs_BA'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'BB'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Barbados"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bangladesh"</span><span class="hl opt">),</span> <span class="hl str">'bn_BD'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'BE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Belgium"</span><span class="hl opt">),</span> <span class="hl str">'fr_BE'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'BF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Burkina Faso"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bulgaria"</span><span class="hl opt">),</span> <span class="hl str">'bg_BG'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'BH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bahrain"</span><span class="hl opt">),</span> <span class="hl str">'ar_BH'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'BI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Burundi"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BJ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Benin"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bermuda"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Brunei Darussalam"</span><span class="hl opt">),</span> <span class="hl str">'ar_EG'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bolivia"</span><span class="hl opt">),</span> <span class="hl str">'es_BO'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'BR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Brazil"</span><span class="hl opt">),</span> <span class="hl str">'pt_BR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'BS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bahamas"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bhutan"</span><span class="hl opt">),</span> <span class="hl str">'en_IN'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BV'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Bouvet Island"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'BW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Botswana"</span><span class="hl opt">),</span> <span class="hl str">'en_BW'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'BY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Belarus"</span><span class="hl opt">),</span> <span class="hl str">'be_BY'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'BZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Belize"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Canada"</span><span class="hl opt">),</span> <span class="hl str">'en_CA'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'CC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cocos (Keeling) Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Congo (Kinshasa)"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Central African Republic"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Congo (Brazzaville)"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Switzerland"</span><span class="hl opt">),</span> <span class="hl str">'de_CH'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'CI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cote d'Ivoire"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cook Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Chile"</span><span class="hl opt">),</span> <span class="hl str">'es_CL'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'CM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cameroon"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"China"</span><span class="hl opt">),</span> <span class="hl str">'zh_CN'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'CO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Colombia"</span><span class="hl opt">),</span> <span class="hl str">'es_CO'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'CR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Costa Rica"</span><span class="hl opt">),</span> <span class="hl str">'es_CR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'CU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cuba"</span><span class="hl opt">),</span> <span class="hl str">'es_DO'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CV'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cape Verde"</span><span class="hl opt">),</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CX'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Christmas Island"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cyprus"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Czech Republic"</span><span class="hl opt">),</span> <span class="hl str">'cs_CZ'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'DE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Germany"</span><span class="hl opt">),</span> <span class="hl str">'de_DE'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'DJ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Djibouti"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'DK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Denmark"</span><span class="hl opt">),</span> <span class="hl str">'da_DK'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'DM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Dominica"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'DO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Dominican Republic"</span><span class="hl opt">),</span> <span class="hl str">'es_DO'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'DZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Algeria"</span><span class="hl opt">),</span> <span class="hl str">'ar_DZ'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'EC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Ecuador"</span><span class="hl opt">),</span> <span class="hl str">'es_EC'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'EE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Estonia"</span><span class="hl opt">),</span> <span class="hl str">'et_EE'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'EG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Egypt"</span><span class="hl opt">),</span> <span class="hl str">'ar_EG'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'EH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Western Sahara"</span><span class="hl opt">),</span> <span class="hl str">'ar_MA'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'ER'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Eritrea"</span><span class="hl opt">),</span> <span class="hl str">'ti_ER'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'ES'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Spain"</span><span class="hl opt">),</span> <span class="hl str">'es_ES'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'ET'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Ethiopia"</span><span class="hl opt">),</span> <span class="hl str">'am_ET'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'FI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Finland"</span><span class="hl opt">),</span> <span class="hl str">'fi_FI'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'FJ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Fiji"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'FK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Falkland Islands (Malvinas)"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'FM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Micronesia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'FO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Faroe Islands"</span><span class="hl opt">),</span> <span class="hl str">'fo_FO'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'FR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"France"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'GA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Gabon"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GB'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"United Kingdom"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'GD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Grenada"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Georgia"</span><span class="hl opt">),</span> <span class="hl str">'ka_GE'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'GF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"French Guiana"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Ghana"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Gibraltar"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Greenland"</span><span class="hl opt">),</span> <span class="hl str">'kl_GL'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'GM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Gambia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Guinea"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GP'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Guadeloupe"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GQ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Equatorial Guinea"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Greece"</span><span class="hl opt">),</span> <span class="hl str">'el_GR'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'GS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"South Georgia and the South Sandwich Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Guatemala"</span><span class="hl opt">),</span> <span class="hl str">'es_GT'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'GU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Guam"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Guinea-Bissau"</span><span class="hl opt">),</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'GY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Guyana"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'HK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"China (Hong Kong)"</span><span class="hl opt">),</span> <span class="hl str">'zh_HK'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'HM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Heard and McDonald Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'HN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Honduras"</span><span class="hl opt">),</span> <span class="hl str">'es_HN'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'HR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Croatia"</span><span class="hl opt">),</span> <span class="hl str">'hr_HR'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'HT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Haiti"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'HU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Hungary"</span><span class="hl opt">),</span> <span class="hl str">'hu_HU'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'ID'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Indonesia"</span><span class="hl opt">),</span> <span class="hl str">'id_ID'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'IE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Ireland"</span><span class="hl opt">),</span> <span class="hl str">'en_IE'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'IL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Israel"</span><span class="hl opt">),</span> <span class="hl str">'he_IL'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'IN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"India"</span><span class="hl opt">),</span> <span class="hl str">'hi_IN'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'IO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"British Indian Ocean Territory"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'IQ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Iraq"</span><span class="hl opt">),</span> <span class="hl str">'ar_IQ'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'IR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Iran"</span><span class="hl opt">),</span> <span class="hl str">'fa_IR'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'IS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Iceland"</span><span class="hl opt">),</span> <span class="hl str">'is_IS'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'IT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Italy"</span><span class="hl opt">),</span> <span class="hl str">'it_IT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'JM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Jamaica"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'JO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Jordan"</span><span class="hl opt">),</span> <span class="hl str">'ar_JO'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'JP'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Japan"</span><span class="hl opt">),</span> <span class="hl str">'ja_JP'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'KE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Kenya"</span><span class="hl opt">),</span> <span class="hl str">'en_ZW'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Kyrgyzstan"</span><span class="hl opt">),</span> <span class="hl str">'ky_KG'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cambodia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc"># km_KH not released yet</span> <span class="hl str">'KI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Kiribati"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Comoros"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Saint Kitts and Nevis"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KP'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Korea (North)"</span><span class="hl opt">),</span> <span class="hl str">'ko_KR'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Korea"</span><span class="hl opt">),</span> <span class="hl str">'ko_KR'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'KW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Kuwait"</span><span class="hl opt">),</span> <span class="hl str">'ar_KW'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'KY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Cayman Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'KZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Kazakhstan"</span><span class="hl opt">),</span> <span class="hl str">'ru_RU'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'LA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Laos"</span><span class="hl opt">),</span> <span class="hl str">'lo_LA'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'LB'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Lebanon"</span><span class="hl opt">),</span> <span class="hl str">'ar_LB'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'LC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Saint Lucia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'LI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Liechtenstein"</span><span class="hl opt">),</span> <span class="hl str">'de_CH'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'LK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Sri Lanka"</span><span class="hl opt">),</span> <span class="hl str">'en_IN'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'LR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Liberia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'LS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Lesotho"</span><span class="hl opt">),</span> <span class="hl str">'en_BW'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'LT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Lithuania"</span><span class="hl opt">),</span> <span class="hl str">'lt_LT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'LU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Luxembourg"</span><span class="hl opt">),</span> <span class="hl str">'de_LU'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'LV'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Latvia"</span><span class="hl opt">),</span> <span class="hl str">'lv_LV'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'LY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Libya"</span><span class="hl opt">),</span> <span class="hl str">'ar_LY'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'MA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Morocco"</span><span class="hl opt">),</span> <span class="hl str">'ar_MA'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl str">'MC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Monaco"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Moldova"</span><span class="hl opt">),</span> <span class="hl str">'ro_RO'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Madagascar"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Marshall Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Macedonia"</span><span class="hl opt">),</span> <span class="hl str">'mk_MK'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'ML'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mali"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Myanmar"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mongolia"</span><span class="hl opt">),</span> <span class="hl str">'mn_MN'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'MP'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Northern Mariana Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MQ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Martinique"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mauritania"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Montserrat"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Malta"</span><span class="hl opt">),</span> <span class="hl str">'mt_MT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'MU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mauritius"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MV'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Maldives"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Malawi"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'MX'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mexico"</span><span class="hl opt">),</span> <span class="hl str">'es_MX'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'MY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Malaysia"</span><span class="hl opt">),</span> <span class="hl str">'ms_MY'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'MZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mozambique"</span><span class="hl opt">),</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Namibia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"New Caledonia"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Niger"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Norfolk Island"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Nigeria"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Nicaragua"</span><span class="hl opt">),</span> <span class="hl str">'es_NI'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'NL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Netherlands"</span><span class="hl opt">),</span> <span class="hl str">'nl_NL'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'NO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Norway"</span><span class="hl opt">),</span> <span class="hl str">'nb_NO'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'NP'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Nepal"</span><span class="hl opt">),</span> <span class="hl str">'ne_NP'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'NR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Nauru"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Niue"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'NZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"New Zealand"</span><span class="hl opt">),</span> <span class="hl str">'en_NZ'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl str">'OM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Oman"</span><span class="hl opt">),</span> <span class="hl str">'ar_OM'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'PA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Panama"</span><span class="hl opt">),</span> <span class="hl str">'es_PA'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'PE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Peru"</span><span class="hl opt">),</span> <span class="hl str">'es_PE'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'PF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"French Polynesia"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'PG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Papua New Guinea"</span><span class="hl opt">),</span> <span class="hl str">'en_NZ'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'PH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Philippines"</span><span class="hl opt">),</span> <span class="hl str">'ph_PH'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'PK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Pakistan"</span><span class="hl opt">),</span> <span class="hl str">'ur_PK'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'PL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Poland"</span><span class="hl opt">),</span> <span class="hl str">'pl_PL'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'PM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Saint Pierre and Miquelon"</span><span class="hl opt">),</span> <span class="hl str">'fr_CA'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'PN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Pitcairn"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'PR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Puerto Rico"</span><span class="hl opt">),</span> <span class="hl str">'es_PR'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'PS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Palestine"</span><span class="hl opt">),</span> <span class="hl str">'ar_JO'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'PT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Portugal"</span><span class="hl opt">),</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'PY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Paraguay"</span><span class="hl opt">),</span> <span class="hl str">'es_PY'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'PW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Palau"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'QA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Qatar"</span><span class="hl opt">),</span> <span class="hl str">'ar_QA'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'RE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Reunion"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'RO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Romania"</span><span class="hl opt">),</span> <span class="hl str">'ro_RO'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'RU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Russia"</span><span class="hl opt">),</span> <span class="hl str">'ru_RU'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'RW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Rwanda"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Saudi Arabia"</span><span class="hl opt">),</span> <span class="hl str">'ar_SA'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'SB'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Solomon Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Seychelles"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Sudan"</span><span class="hl opt">),</span> <span class="hl str">'ar_SD'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'SE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Sweden"</span><span class="hl opt">),</span> <span class="hl str">'sv_SE'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'SG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Singapore"</span><span class="hl opt">),</span> <span class="hl str">'en_SG'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'SH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Saint Helena"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Slovenia"</span><span class="hl opt">),</span> <span class="hl str">'sl_SI'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'SJ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Svalbard and Jan Mayen Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Slovakia"</span><span class="hl opt">),</span> <span class="hl str">'sk_SK'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'SL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Sierra Leone"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"San Marino"</span><span class="hl opt">),</span> <span class="hl str">'it_IT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Senegal"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Somalia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc"># so_SO</span> <span class="hl str">'SR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Suriname"</span><span class="hl opt">),</span> <span class="hl str">'nl_NL'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'ST'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Sao Tome and Principe"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'SV'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"El Salvador"</span><span class="hl opt">),</span> <span class="hl str">'es_SV'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'SY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Syria"</span><span class="hl opt">),</span> <span class="hl str">'ar_SY'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'SZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Swaziland"</span><span class="hl opt">),</span> <span class="hl str">'en_BW'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Turks and Caicos Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TD'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Chad"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"French Southern Territories"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Togo"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TH'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Thailand"</span><span class="hl opt">),</span> <span class="hl str">'th_TH'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'TJ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Tajikistan"</span><span class="hl opt">),</span> <span class="hl str">'tg_TJ'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'TK'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Tokelau"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TL'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"East Timor"</span><span class="hl opt">),</span> <span class="hl str">'pt_PT'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Turkmenistan"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Tunisia"</span><span class="hl opt">),</span> <span class="hl str">'ar_TN'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'TO'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Tonga"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TR'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Turkey"</span><span class="hl opt">),</span> <span class="hl str">'tr_TR'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'TT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Trinidad and Tobago"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TV'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Tuvalu"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'TW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Taiwan"</span><span class="hl opt">),</span> <span class="hl str">'zh_TW'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'TZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Tanzania"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'UA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Ukraine"</span><span class="hl opt">),</span> <span class="hl str">'uk_UA'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'UG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Uganda"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc"># lug_UG</span> <span class="hl str">'UM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"United States Minor Outlying Islands"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'US'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"United States"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'UY'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Uruguay"</span><span class="hl opt">),</span> <span class="hl str">'es_UY'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'UZ'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Uzbekistan"</span><span class="hl opt">),</span> <span class="hl str">'uz_UZ'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'VA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Vatican"</span><span class="hl opt">),</span> <span class="hl str">'it_IT'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'VC'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Saint Vincent and the Grenadines"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'VE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Venezuela"</span><span class="hl opt">),</span> <span class="hl str">'es_VE'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'VG'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Virgin Islands (British)"</span><span class="hl opt">),</span> <span class="hl str">'en_GB'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'VI'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Virgin Islands (U.S.)"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'VN'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Vietnam"</span><span class="hl opt">),</span> <span class="hl str">'vi_VN'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'VU'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Vanuatu"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'WF'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Wallis and Futuna"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'WS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Samoa"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'4'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'YE'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Yemen"</span><span class="hl opt">),</span> <span class="hl str">'ar_YE'</span><span class="hl opt">,</span> <span class="hl str">'2'</span> <span class="hl opt">],</span> <span class="hl str">'YT'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Mayotte"</span><span class="hl opt">),</span> <span class="hl str">'fr_FR'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'CS'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Serbia & Montenegro"</span><span class="hl opt">),</span> <span class="hl str">'sr_CS'</span><span class="hl opt">,</span> <span class="hl str">'1'</span> <span class="hl opt">],</span> <span class="hl str">'ZA'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"South Africa"</span><span class="hl opt">),</span> <span class="hl str">'en_ZA'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl str">'ZM'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Zambia"</span><span class="hl opt">),</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl str">'3'</span> <span class="hl opt">],</span> <span class="hl slc">#</span> <span class="hl str">'ZW'</span> <span class="hl opt">=> [</span> N_<span class="hl opt">(</span><span class="hl str">"Zimbabwe"</span><span class="hl opt">),</span> <span class="hl str">'en_ZW'</span><span class="hl opt">,</span> <span class="hl str">'5'</span> <span class="hl opt">],</span> <span class="hl opt">);</span> <span class="hl kwa">sub</span> c2name <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$countries</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> translate<span class="hl opt">(</span><span class="hl kwb">$countries</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">0</span><span class="hl opt">]) }</span> <span class="hl kwa">sub</span> c2locale <span class="hl opt">{</span> <span class="hl kwc">exists</span> <span class="hl kwb">$countries</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]} &&</span> <span class="hl kwb">$countries</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">0</span><span class="hl opt">]}[</span><span class="hl num">1</span><span class="hl opt">] }</span> <span class="hl kwa">sub</span> list_countries <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">%options</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> <span class="hl kwc">keys</span> <span class="hl kwb">%countries</span><span class="hl opt">;</span> <span class="hl kwb">$options</span><span class="hl opt">{</span>exclude_non_installed<span class="hl opt">}</span> ? <span class="hl kwc">grep</span> <span class="hl opt">{ -</span>e <span class="hl str">"/usr/share/locale/"</span><span class="hl opt">.</span>c2locale<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">).</span><span class="hl str">"/LC_CTYPE"</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span> <span class="hl opt">:</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc">#- this list is built with the following command on the compile cluster:</span> <span class="hl slc">#- rpm -qpl /cooker/RPMS/locales-* | grep LC_CTYPE | cut -d'/' -f5 | grep '_' | grep -v '\.' | sort | tr '\n' ' ' ; echo</span> <span class="hl kwc">our</span> <span class="hl kwb">@locales</span> <span class="hl opt">=</span> <span class="hl str">qw(ad_ET af_ZA am_ET an_ES ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as_IN az_AZ be_BY bg_BG bn_BD bn_IN br_FR bs_BA ca_ES cs_CZ cy_GB da_DK de_AT de_BE de_CH de_DE de_LU el_GR en_AU en_BE en_BW en_CA en_DK en_GB en_HK en_IE en_IN en_NZ en_PH en_SG en_US en_ZA en_ZW eo_XX es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et_EE eu_ES fa_IR fi_FI fo_FO fr_BE fr_CA fr_CH fr_FR fr_LU ga_IE gd_GB gez_ER gez_ER</span><span class="hl ipl">@abegede</span> <span class="hl str">gez_ET gez_ET</span><span class="hl ipl">@abegede</span> <span class="hl str">gl_ES gu_IN gv_GB he_IL hi_IN hr_HR hu_HU hy_AM id_ID is_IS it_CH it_IT iu_CA ja_JP ka_GE kl_GL kn_IN ko_KR ku_TR kw_GB li_BE li_NL lo_LA lt_LT lv_LV mi_NZ mk_MK ml_IN mn_MN mr_IN ms_MY mt_MT nb_NO nds_DE nds_DE</span><span class="hl ipl">@traditional</span> <span class="hl str">nds_NL ne_NP nl_BE nl_NL nn_NO oc_FR om_ET om_KE pa_IN ph_PH pl_PL pt_BR pt_PT qo_ET ro_RO ru_RU ru_UA se_NO sh_YU sid_ET sk_SK sl_SI sq_AL sr_CS sr_CS</span><span class="hl ipl">@Latn</span> <span class="hl str">sr_YU sr_YU</span><span class="hl ipl">@Latn</span> <span class="hl str">st_ZA sv_FI sv_SE sx_ET sz_ET ta_IN te_IN tg_TJ th_TH ti_ER ti_ET tig_ER tl_PH tr_TR tt_RU uk_UA ur_PK uz_UZ uz_UZ</span><span class="hl ipl">@Cyrl</span> <span class="hl str">uz_UZ</span><span class="hl ipl">@Latn</span> <span class="hl str">vi_VN wa_BE xh_ZA yi_US zh_CN zh_HK zh_SG zh_TW zu_ZA)</span><span class="hl opt">;</span> <span class="hl kwa">sub</span> standard_locale <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang, $country, $prefer_lang</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> member<span class="hl opt">(</span><span class="hl str">"${lang}_${country}"</span><span class="hl opt">,</span> <span class="hl kwb">@locales</span><span class="hl opt">)</span> <span class="hl kwc">and</span> <span class="hl kwa">return</span> <span class="hl str">"${lang}_${country}"</span><span class="hl opt">;</span> <span class="hl kwb">$prefer_lang</span> <span class="hl opt">&&</span> member<span class="hl opt">(</span><span class="hl kwb">$lang, @locales</span><span class="hl opt">)</span> <span class="hl kwc">and</span> <span class="hl kwa">return</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$main_locale</span> <span class="hl opt">=</span> locale_to_main_locale<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$main_locale</span> <span class="hl kwc">ne</span> <span class="hl kwb">$lang</span><span class="hl opt">) {</span> standard_locale<span class="hl opt">(</span><span class="hl kwb">$main_locale, $country, $prefer_lang</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl str">''</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> fix_variant <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl slc">#- uz@Cyrl_UZ -> uz_UZ@Cyrl</span> <span class="hl kwb">$locale</span> <span class="hl opt">=~</span> <span class="hl kwd">s/(.*)(\@\w+)(_.*)/$1$3$2/</span><span class="hl opt">;</span> <span class="hl kwb">$locale</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> analyse_locale_name <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$locale</span> <span class="hl opt">=~</span> <span class="hl kwd">/^(.*?) (?:_(.*?))? (?:\.(.*?))? (?:\@(.*?))? $/x</span> <span class="hl opt">&&</span> <span class="hl opt">{</span> main <span class="hl opt">=></span> <span class="hl kwb">$1,</span> country <span class="hl opt">=></span> <span class="hl kwb">$2,</span> charset <span class="hl opt">=></span> <span class="hl kwb">$3,</span> variant <span class="hl opt">=></span> <span class="hl kwb">$4</span> <span class="hl opt">};</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> locale_to_main_locale <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">lc</span><span class="hl opt">(</span>analyse_locale_name<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">)->{</span>main<span class="hl opt">});</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> getlocale_for_lang <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang, $country, $o_utf8</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> fix_variant<span class="hl opt">((</span>standard_locale<span class="hl opt">(</span><span class="hl kwb">$lang, $country,</span> <span class="hl str">'prefer_lang'</span><span class="hl opt">) ||</span> l2locale<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">)) . (</span><span class="hl kwb">$o_utf8</span> ? <span class="hl str">'.UTF-8'</span> <span class="hl opt">:</span> <span class="hl str">''</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> getlocale_for_country <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang, $country, $o_utf8</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> fix_variant<span class="hl opt">((</span>standard_locale<span class="hl opt">(</span><span class="hl kwb">$lang, $country,</span> <span class="hl str">''</span><span class="hl opt">) ||</span> c2locale<span class="hl opt">(</span><span class="hl kwb">$country</span><span class="hl opt">)) . (</span><span class="hl kwb">$o_utf8</span> ? <span class="hl str">'.UTF-8'</span> <span class="hl opt">:</span> <span class="hl str">''</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> getLANGUAGE <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang, $o_country, $o_utf8</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> l2language<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) ||</span> <span class="hl kwc">join</span><span class="hl opt">(</span><span class="hl str">':'</span><span class="hl opt">,</span> uniq<span class="hl opt">(</span>getlocale_for_lang<span class="hl opt">(</span><span class="hl kwb">$lang, $o_country, $o_utf8</span><span class="hl opt">),</span> <span class="hl kwb">$lang,</span> locale_to_main_locale<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">)));</span> <span class="hl opt">}</span> <span class="hl kwc">my</span> <span class="hl kwb">%im_xim_program</span> <span class="hl opt">=</span> <span class="hl opt">(</span> chinput <span class="hl opt">=> {</span> <span class="hl str">'zh_CN'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -gb"'</span><span class="hl opt">,</span> <span class="hl str">'zh_CN.UTF-8'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -gb"'</span><span class="hl opt">,</span> <span class="hl str">'zh_HK'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -big5"'</span><span class="hl opt">,</span> <span class="hl str">'zh_HK.UTF-8'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -big5"'</span><span class="hl opt">,</span> <span class="hl str">'zh_SG'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -gb"'</span><span class="hl opt">,</span> <span class="hl str">'zh_SG.UTF-8'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -gb"'</span><span class="hl opt">,</span> <span class="hl str">'zh_TW'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -big5"'</span><span class="hl opt">,</span> <span class="hl str">'zh_TW.UTF-8'</span> <span class="hl opt">=></span> <span class="hl str">'"chinput -big5"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> xcin <span class="hl opt">=> {</span> <span class="hl str">'zh_TW'</span> <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=xcin-zh_TW"'</span> <span class="hl opt">},</span> <span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">%gtkqt_im</span> <span class="hl opt">=</span> <span class="hl opt">(</span> ami <span class="hl opt">=> {</span> XIM <span class="hl opt">=></span> <span class="hl str">'Ami'</span><span class="hl opt">,</span> <span class="hl slc">#- NOTE: there are several possible versions of ami, for the different</span> <span class="hl slc">#- desktops (kde, gnome, etc). So XIM_PROGRAM isn't defined; it will</span> <span class="hl slc">#- be the xinitrc script, XIM section, that will choose the right one </span> <span class="hl slc">#- XIM_PROGRAM => 'ami',</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=Ami"'</span><span class="hl opt">,</span> GTK_IM_MODULE <span class="hl opt">=></span> <span class="hl str">'xim'</span><span class="hl opt">,</span> <span class="hl opt">},</span> chinput <span class="hl opt">=> {</span> GTK_IM_MODULE <span class="hl opt">=></span> <span class="hl str">'xim'</span><span class="hl opt">,</span> XIM <span class="hl opt">=></span> <span class="hl str">'xcin'</span><span class="hl opt">,</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=Chinput"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> fctix <span class="hl opt">=> {</span> XIM <span class="hl opt">=></span> <span class="hl str">'fcitx'</span><span class="hl opt">,</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl str">'fcitx'</span><span class="hl opt">,</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=fcitx"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> kinput2 <span class="hl opt">=> {</span> XIM <span class="hl opt">=></span> <span class="hl str">'kinput2'</span><span class="hl opt">,</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl str">'kinput2'</span><span class="hl opt">,</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=kinput2"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> scim <span class="hl opt">=> {</span> GTK_IM_MODULE <span class="hl opt">=></span> <span class="hl str">'scim'</span><span class="hl opt">,</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl str">'scim -d'</span><span class="hl opt">,</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=SCIM"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> uim <span class="hl opt">=> {</span> GTK_IM_MODULE <span class="hl opt">=></span> <span class="hl str">'uim-anthy'</span><span class="hl opt">,</span> XIM <span class="hl opt">=></span> <span class="hl str">'uim-anthy'</span><span class="hl opt">,</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl str">'uim-xim'</span><span class="hl opt">,</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=uim-anthy"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> xcin <span class="hl opt">=> {</span> XIM <span class="hl opt">=></span> <span class="hl str">'xcin'</span><span class="hl opt">,</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl str">'xcin'</span><span class="hl opt">,</span> GTK_IM_MODULE <span class="hl opt">=></span> <span class="hl str">'xim'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">%xim</span> <span class="hl opt">= (</span> <span class="hl slc">#- xcin only works with 'zh_TW', 'zh_TW.Big5', 'zh_CN', 'zh_CN.GB2312'</span> <span class="hl slc">#- all other locale names, in particular 'zh_HK' or 'zh_TW.UTF-8'</span> <span class="hl slc">#- are unknown to it. So chinput is used for all but 'zh_TW'</span> <span class="hl str">'ja_JP'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'eucj'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'ja_JP.UTF-8'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'ko_KR'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'kr'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'ko_KR.UTF-8'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_TW'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'big5'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_TW.UTF-8'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_CN'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'gb'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_CN.UTF-8'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_HK'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'big5'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_HK.UTF-8'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_SG'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'gb'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl str">'zh_SG.UTF-8'</span> <span class="hl opt">=> {</span> ENC <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl slc">#-�XFree86 has an internal XIM for Thai that enables syntax checking etc.</span> <span class="hl slc">#-�'Passthroug' is no check at all, 'BasicCheck' accepts bad sequences</span> <span class="hl slc">#-�and convert them to right ones, 'Strict' refuses bad sequences</span> <span class="hl str">'th_TH'</span> <span class="hl opt">=> {</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl str">'/bin/true'</span><span class="hl opt">,</span> <span class="hl slc">#- it's an internal module</span> XMODIFIERS <span class="hl opt">=></span> <span class="hl str">'"</span><span class="hl ipl">@im</span><span class="hl str">=BasicCheck"'</span><span class="hl opt">,</span> <span class="hl opt">},</span> <span class="hl slc">#-�xvnkb is not an XIM input method; but an input method of another</span> <span class="hl slc">#-�kind, only XIM_PROGRAM needs to be defined</span> <span class="hl slc">#- ! xvnkb doesn't work in UTF-8 !</span> <span class="hl slc">#- 'vi_VN.VISCII' => {</span> <span class="hl slc">#- XIM_PROGRAM => 'xvnkb',</span> <span class="hl slc">#- },</span> <span class="hl opt">);</span> <span class="hl kwa">sub</span> set_default_im <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$im, @langs</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> add2hash<span class="hl opt">(</span><span class="hl kwb">$xim</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">},</span> <span class="hl kwb">$gtkqt_im</span><span class="hl opt">{</span><span class="hl kwb">$im</span><span class="hl opt">})</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@langs</span><span class="hl opt">;</span> add2hash<span class="hl opt">(</span><span class="hl kwb">$xim</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">}, {</span> XIM_PROGRAM <span class="hl opt">=></span> <span class="hl kwb">$im_xim_program</span><span class="hl opt">{</span><span class="hl kwb">$im</span><span class="hl opt">}{</span><span class="hl kwb">$_</span><span class="hl opt">} })</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@langs</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc"># CJK default input methods:</span> set_default_im<span class="hl opt">(</span><span class="hl str">'ami'</span><span class="hl opt">,</span> <span class="hl str">qw(ko_KR ko_KR.UTF-8)</span><span class="hl opt">);</span> set_default_im<span class="hl opt">(</span><span class="hl str">'scim'</span><span class="hl opt">,</span> <span class="hl str">qw(ja_JP ja_JP.UTF-8 zh_CN zh_CN.UTF-8 zh_HK zh_HK.UTF-8 zh_SG zh_SG.UTF-8 zh_TW zh_TW.UTF-8)</span><span class="hl opt">);</span> <span class="hl slc">#- [0]: console font name</span> <span class="hl slc">#- [1]: sfm map for console font (if needed)</span> <span class="hl slc">#- [2]: acm file for console font (none if utf8)</span> <span class="hl slc">#- [3]: iocharset param for mount (utf8 if utf8)</span> <span class="hl slc">#- [4]: codepage parameter for mount (none if utf8)</span> <span class="hl kwc">my</span> <span class="hl kwb">%charsets</span> <span class="hl opt">= (</span> <span class="hl slc">#- chinese needs special console driver for text mode</span> <span class="hl str">"Big5"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"big5"</span><span class="hl opt">,</span> <span class="hl str">"950"</span> <span class="hl opt">],</span> <span class="hl str">"gb2312"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"gb2312"</span><span class="hl opt">,</span> <span class="hl str">"936"</span> <span class="hl opt">],</span> <span class="hl str">"C"</span> <span class="hl opt">=> [</span> <span class="hl str">"lat0-16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso15"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-1"</span><span class="hl opt">,</span> <span class="hl str">"850"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-1"</span> <span class="hl opt">=> [</span> <span class="hl str">"lat1-16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso01"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-1"</span><span class="hl opt">,</span> <span class="hl str">"850"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-2"</span> <span class="hl opt">=> [</span> <span class="hl str">"lat2-sun16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso02"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-2"</span><span class="hl opt">,</span> <span class="hl str">"852"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-5"</span> <span class="hl opt">=> [</span> <span class="hl str">"UniCyr_8x16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso05"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-5"</span><span class="hl opt">,</span> <span class="hl str">"866"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-7"</span> <span class="hl opt">=> [</span> <span class="hl str">"iso07.f16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso07"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-7"</span><span class="hl opt">,</span> <span class="hl str">"869"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-9"</span> <span class="hl opt">=> [</span> <span class="hl str">"lat5u-16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso09"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-9"</span><span class="hl opt">,</span> <span class="hl str">"857"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-13"</span> <span class="hl opt">=> [</span> <span class="hl str">"tlat7"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso13"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-13"</span><span class="hl opt">,</span> <span class="hl str">"775"</span> <span class="hl opt">],</span> <span class="hl str">"iso-8859-15"</span> <span class="hl opt">=> [</span> <span class="hl str">"lat0-16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"iso15"</span><span class="hl opt">,</span> <span class="hl str">"iso8859-15"</span><span class="hl opt">,</span> <span class="hl str">"850"</span> <span class="hl opt">],</span> <span class="hl slc">#- japanese needs special console driver for text mode [kon2]</span> <span class="hl str">"jisx0208"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"trivial.trans"</span><span class="hl opt">,</span> <span class="hl str">"euc-jp"</span><span class="hl opt">,</span> <span class="hl str">"932"</span> <span class="hl opt">],</span> <span class="hl str">"koi8-r"</span> <span class="hl opt">=> [</span> <span class="hl str">"UniCyr_8x16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"koi8-r"</span><span class="hl opt">,</span> <span class="hl str">"koi8-r"</span><span class="hl opt">,</span> <span class="hl str">"866"</span> <span class="hl opt">],</span> <span class="hl str">"koi8-u"</span> <span class="hl opt">=> [</span> <span class="hl str">"UniCyr_8x16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"koi8-u"</span><span class="hl opt">,</span> <span class="hl str">"koi8-u"</span><span class="hl opt">,</span> <span class="hl str">"866"</span> <span class="hl opt">],</span> <span class="hl str">"cp1251"</span> <span class="hl opt">=> [</span> <span class="hl str">"UniCyr_8x16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"cp1251"</span><span class="hl opt">,</span> <span class="hl str">"cp1251"</span><span class="hl opt">,</span> <span class="hl str">"866"</span> <span class="hl opt">],</span> <span class="hl slc">#- korean needs special console driver for text mode</span> <span class="hl str">"ksc5601"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"euc-kr"</span><span class="hl opt">,</span> <span class="hl str">"949"</span> <span class="hl opt">],</span> <span class="hl slc">#- I have no console font for Thai...</span> <span class="hl str">"tis620"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"trivial.trans"</span><span class="hl opt">,</span> <span class="hl str">"tis-620"</span><span class="hl opt">,</span> <span class="hl str">"874"</span> <span class="hl opt">],</span> <span class="hl slc"># UTF-8 encodings here; they differ in the console font mainly.</span> <span class="hl str">"utf_am"</span> <span class="hl opt">=> [</span> <span class="hl str">"Agafari-16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_ar"</span> <span class="hl opt">=> [</span> <span class="hl str">"iso06.f16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_az"</span> <span class="hl opt">=> [</span> <span class="hl str">"tiso09e"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_bn"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_cyr1"</span> <span class="hl opt">=> [</span> <span class="hl str">"UniCyr_8x16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_cyr2"</span> <span class="hl opt">=> [</span> <span class="hl str">"koi8-k"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_he"</span> <span class="hl opt">=> [</span> <span class="hl str">"iso08.f16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_hi"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_hy"</span> <span class="hl opt">=> [</span> <span class="hl str">"arm8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_ka"</span> <span class="hl opt">=> [</span> <span class="hl str">"t_geors"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_kn"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_ml"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_lo"</span> <span class="hl opt">=> [</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_ta"</span> <span class="hl opt">=> [</span> <span class="hl str">"tamil"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_vi"</span> <span class="hl opt">=> [</span> <span class="hl str">"tcvn8x16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl str">"utf_lat8"</span> <span class="hl opt">=> [</span> <span class="hl str">"iso14.f16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl slc"># default for utf-8 encodings</span> <span class="hl str">"unicode"</span> <span class="hl opt">=> [</span> <span class="hl str">"LatArCyrHeb-16"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl kwc">undef</span><span class="hl opt">,</span> <span class="hl str">"utf8"</span><span class="hl opt">,</span> <span class="hl kwc">undef</span> <span class="hl opt">],</span> <span class="hl opt">);</span> <span class="hl slc">#- for special cases not handled magically</span> <span class="hl kwc">my</span> <span class="hl kwb">%charset2kde_charset</span> <span class="hl opt">= (</span> gb2312 <span class="hl opt">=></span> <span class="hl str">'gb2312.1980-0'</span><span class="hl opt">,</span> jisx0208 <span class="hl opt">=></span> <span class="hl str">'jisx0208.1983-0'</span><span class="hl opt">,</span> ksc5601 <span class="hl opt">=></span> <span class="hl str">'ksc5601.1987-0'</span><span class="hl opt">,</span> Big5 <span class="hl opt">=></span> <span class="hl str">'big5-0'</span><span class="hl opt">,</span> cp1251 <span class="hl opt">=></span> <span class="hl str">'microsoft-cp1251'</span><span class="hl opt">,</span> utf8 <span class="hl opt">=></span> <span class="hl str">'iso10646-1'</span><span class="hl opt">,</span> tis620 <span class="hl opt">=></span> <span class="hl str">'tis620-0'</span><span class="hl opt">,</span> <span class="hl slc">#- Tamil KDE translations still use TSCII, and KDE know it as iso-8859-1</span> utf_ta <span class="hl opt">=></span> <span class="hl str">'iso8859-1'</span><span class="hl opt">,</span> <span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">@during_install__lang_having_their_LC_CTYPE</span> <span class="hl opt">=</span> <span class="hl str">qw(ja ko ta)</span><span class="hl opt">;</span> <span class="hl slc">#- -------------------</span> <span class="hl kwa">sub</span> list <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">%options</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> list_langs<span class="hl opt">();</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$options</span><span class="hl opt">{</span>exclude_non_installed_langs<span class="hl opt">}) {</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> <span class="hl kwc">grep</span> <span class="hl opt">{ -</span>e <span class="hl str">"/usr/share/locale/</span><span class="hl ipl">$_/LC_CTYPE</span><span class="hl str">"</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> l2console_font <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale, $during_install</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl kwb">$charsets</span><span class="hl opt">{</span>l2charset<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">}) ||</span> <span class="hl kwa">return</span><span class="hl opt">}</span> <span class="hl kwc">or</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$name, $sfm, $acm</span><span class="hl opt">) =</span> <span class="hl kwb">@$c</span><span class="hl opt">;</span> <span class="hl kwc">undef</span> <span class="hl kwb">$acm</span> <span class="hl kwa">if</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>utf8<span class="hl opt">} && !</span><span class="hl kwb">$during_install</span><span class="hl opt">;</span> <span class="hl opt">(</span><span class="hl kwb">$name, $sfm, $acm</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> get_kde_lang <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale, $o_default</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl slc">#- get it using </span> <span class="hl slc">#- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde-i18n-* | sed 's/kde-i18n-//')</span> <span class="hl kwc">my</span> <span class="hl kwb">@valid_kde_langs</span> <span class="hl opt">=</span> <span class="hl str">qw(C af ar az be bg br bs ca cs cy da de el en_GB eo es et eu fa fi fo fr ga gl he hr hu id is it ja ko ku lo lt lv mi mk mn mt nb nl nn nso oc pl pt pt_BR ro ru se sk sl sr ss sv ta th tr uk uz ven vi wa wen xh zh_CN zh_TW zu)</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">%valid_kde_langs</span><span class="hl opt">;</span> <span class="hl kwb">@valid_kde_langs</span><span class="hl opt">{</span><span class="hl kwb">@valid_kde_langs</span><span class="hl opt">} = ();</span> <span class="hl kwc">my</span> <span class="hl kwb">$valid_lang</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl slc">#- fast & dirty solution to ensure bad entries do not happen</span> <span class="hl kwc">my</span> <span class="hl kwb">%fixlangs</span> <span class="hl opt">= (</span>en <span class="hl opt">=></span> <span class="hl str">'C'</span><span class="hl opt">,</span> en_US <span class="hl opt">=></span> <span class="hl str">'C'</span><span class="hl opt">,</span> <span class="hl str">'sr</span><span class="hl ipl">@Latn</span><span class="hl str">'</span> <span class="hl opt">=></span> <span class="hl str">'sr'</span><span class="hl opt">,</span> st <span class="hl opt">=></span> <span class="hl str">'nso'</span><span class="hl opt">,</span> ve <span class="hl opt">=></span> <span class="hl str">'ven'</span><span class="hl opt">,</span> zh_CN <span class="hl opt">=></span> <span class="hl str">'zh_CN'</span><span class="hl opt">,</span> zh_SG <span class="hl opt">=></span> <span class="hl str">'zh_CN'</span><span class="hl opt">,</span> zh_TW <span class="hl opt">=></span> <span class="hl str">'zh_TW'</span><span class="hl opt">,</span> zh_HK <span class="hl opt">=></span> <span class="hl str">'zh_TW'</span><span class="hl opt">);</span> <span class="hl kwc">exists</span> <span class="hl kwb">$fixlangs</span><span class="hl opt">{</span><span class="hl kwb">$lang</span><span class="hl opt">}</span> ? <span class="hl kwb">$fixlangs</span><span class="hl opt">{</span><span class="hl kwb">$lang</span><span class="hl opt">} :</span> <span class="hl kwc">exists</span> <span class="hl kwb">$valid_kde_langs</span><span class="hl opt">{</span><span class="hl kwb">$lang</span><span class="hl opt">}</span> ? <span class="hl kwb">$lang</span> <span class="hl opt">:</span> <span class="hl kwc">exists</span> <span class="hl kwb">$valid_kde_langs</span><span class="hl opt">{</span>locale_to_main_locale<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">)}</span> ? locale_to_main_locale<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) :</span> <span class="hl str">''</span><span class="hl opt">;</span> <span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">$r</span><span class="hl opt">;</span> <span class="hl kwb">$r</span> <span class="hl opt">||=</span> <span class="hl kwb">$valid_lang</span><span class="hl opt">->(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">});</span> <span class="hl kwb">$r</span> <span class="hl opt">||=</span> find <span class="hl opt">{</span> <span class="hl kwb">$valid_lang</span><span class="hl opt">->(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> <span class="hl kwc">split</span><span class="hl opt">(</span><span class="hl str">':'</span><span class="hl opt">,</span> getlocale_for_lang<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">}));</span> <span class="hl kwb">$r</span> <span class="hl opt">||</span> <span class="hl kwb">$o_default</span> <span class="hl opt">||</span> <span class="hl str">'C'</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> charset2kde_charset <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$charset, $o_default</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$iocharset</span> <span class="hl opt">= (</span><span class="hl kwb">$charsets</span><span class="hl opt">{</span><span class="hl kwb">$charset</span><span class="hl opt">} || [])->[</span><span class="hl num">3</span><span class="hl opt">];</span> <span class="hl kwc">my</span> <span class="hl kwb">@valid_kde_charsets</span> <span class="hl opt">=</span> <span class="hl str">qw(big5-0 gb2312.1980-0 iso10646-1 iso8859-1 iso8859-4 iso8859-6 iso8859-8 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 iso8859-5 iso8859-7 iso8859-9 koi8-r koi8-u ksc5601.1987-0 jisx0208.1983-0 microsoft-cp1251 tis620-0)</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">%valid_kde_charsets</span><span class="hl opt">;</span> <span class="hl kwb">@valid_kde_charsets</span><span class="hl opt">{</span><span class="hl kwb">@valid_kde_charsets</span><span class="hl opt">} = ();</span> <span class="hl kwc">my</span> <span class="hl kwb">$valid_charset</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$charset</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl slc">#- fast & dirty solution to ensure bad entries do not happen</span> <span class="hl kwc">exists</span> <span class="hl kwb">$valid_kde_charsets</span><span class="hl opt">{</span><span class="hl kwb">$charset</span><span class="hl opt">} &&</span> <span class="hl kwb">$charset</span><span class="hl opt">;</span> <span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">$r</span><span class="hl opt">;</span> <span class="hl kwb">$r</span> <span class="hl opt">||=</span> <span class="hl kwb">$valid_charset</span><span class="hl opt">->(</span><span class="hl kwb">$charset2kde_charset</span><span class="hl opt">{</span><span class="hl kwb">$charset</span><span class="hl opt">});</span> <span class="hl kwb">$r</span> <span class="hl opt">||=</span> <span class="hl kwb">$valid_charset</span><span class="hl opt">->(</span><span class="hl kwb">$charset2kde_charset</span><span class="hl opt">{</span><span class="hl kwb">$iocharset</span><span class="hl opt">});</span> <span class="hl kwb">$r</span> <span class="hl opt">||=</span> <span class="hl kwb">$valid_charset</span><span class="hl opt">->(</span><span class="hl kwb">$iocharset</span><span class="hl opt">);</span> <span class="hl kwb">$r</span> <span class="hl opt">||</span> <span class="hl kwb">$o_default</span> <span class="hl opt">||</span> <span class="hl str">'iso10646-1'</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc">#- font+size for different charsets; the field [0] is the default,</span> <span class="hl slc">#- others are overrridens for fixed(1), toolbar(2), menu(3) and taskbar(4)</span> <span class="hl kwc">my</span> <span class="hl kwb">%charset2kde_font</span> <span class="hl opt">= (</span> <span class="hl str">'C'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sans,10"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span> <span class="hl opt">],</span> <span class="hl str">'iso-8859-1'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sans,10"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span> <span class="hl opt">],</span> <span class="hl str">'iso-8859-2'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sans,10"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span> <span class="hl opt">],</span> <span class="hl str">'iso-8859-7'</span> <span class="hl opt">=> [</span> <span class="hl str">"Helvetica,12"</span><span class="hl opt">,</span> <span class="hl str">"courier,10"</span><span class="hl opt">,</span> <span class="hl str">"Helvetica,11"</span> <span class="hl opt">],</span> <span class="hl str">'iso-8859-9'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sans,10"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span> <span class="hl opt">],</span> <span class="hl str">'iso-8859-15'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sans,10"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span> <span class="hl opt">],</span> <span class="hl str">'iso-8859-13'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sans,10"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span> <span class="hl opt">],</span> <span class="hl str">'jisx0208'</span> <span class="hl opt">=> [</span> <span class="hl str">"Kochi Mincho,13"</span><span class="hl opt">,</span> <span class="hl str">"Kochi Gothic,13"</span> <span class="hl opt">],</span> <span class="hl str">'ksc5601'</span> <span class="hl opt">=> [</span> <span class="hl str">"Baekmuk Gulim,16"</span> <span class="hl opt">],</span> <span class="hl str">'gb2312'</span> <span class="hl opt">=> [</span> <span class="hl str">"AR PL SungtiL GB,13"</span> <span class="hl opt">],</span> <span class="hl str">'Big5'</span> <span class="hl opt">=> [</span> <span class="hl str">"AR PL Mingti2L Big5,13"</span> <span class="hl opt">],</span> <span class="hl str">'tis620'</span> <span class="hl opt">=> [</span> <span class="hl str">"Norasi,16"</span><span class="hl opt">,</span> <span class="hl str">"Norasi,15"</span> <span class="hl opt">],</span> <span class="hl str">'utf_ar'</span> <span class="hl opt">=> [</span> <span class="hl str">"Kacs_qr,14"</span><span class="hl opt">,</span> <span class="hl str">"Courier New,13"</span><span class="hl opt">,</span> <span class="hl str">"Kacs_qr,13"</span> <span class="hl opt">],</span> <span class="hl str">'utf_am'</span> <span class="hl opt">=> [</span> <span class="hl str">"GF Zemen Unicode,15"</span> <span class="hl opt">],</span> <span class="hl str">'utf_az'</span> <span class="hl opt">=> [</span> <span class="hl str">"Nimbus Sans,12"</span><span class="hl opt">,</span> <span class="hl str">"Nimbus Mono,10"</span><span class="hl opt">,</span> <span class="hl str">"Nimbus Sans,11"</span> <span class="hl opt">],</span> <span class="hl str">'utf_bn'</span> <span class="hl opt">=> [</span> <span class="hl str">"Mukti,14"</span><span class="hl opt">, ],</span> <span class="hl str">'utf_he'</span> <span class="hl opt">=> [</span> <span class="hl str">"Nachlieli,13"</span><span class="hl opt">, ,</span> <span class="hl str">"Miriam Mono,10"</span><span class="hl opt">,</span> <span class="hl str">"Nachlieli,11"</span> <span class="hl opt">],</span> <span class="hl str">'utf_hi'</span> <span class="hl opt">=> [</span> <span class="hl str">"Raghindi,14"</span><span class="hl opt">, ],</span> <span class="hl str">'utf_hy'</span> <span class="hl opt">=> [</span> <span class="hl str">"Artsounk,12"</span><span class="hl opt">,</span> <span class="hl str">"Monospace,10"</span><span class="hl opt">,</span> <span class="hl str">"Artsounk,11"</span> <span class="hl opt">],</span> <span class="hl str">'utf_kn'</span> <span class="hl opt">=> [</span> <span class="hl str">"Sampige,14"</span><span class="hl opt">, ],</span> <span class="hl str">'utf_ml'</span> <span class="hl opt">=> [</span> <span class="hl str">"malayalam,14"</span><span class="hl opt">, ],</span> <span class="hl str">'utf_ta'</span> <span class="hl opt">=> [</span> <span class="hl str">"TSCu_Paranar,14"</span><span class="hl opt">,</span> <span class="hl str">"Tsc_avarangalfxd,10"</span><span class="hl opt">,</span> <span class="hl str">"TSCu_Paranar,12"</span><span class="hl opt">, ],</span> <span class="hl slc">#- the following should be changed to better defaults when better fonts</span> <span class="hl slc">#- get available</span> <span class="hl str">'utf_vi'</span> <span class="hl opt">=> [</span> <span class="hl str">"misc-fixed,13"</span><span class="hl opt">,</span> <span class="hl str">"misc-fixed,13"</span><span class="hl opt">,</span> <span class="hl str">"misc-fixed,10"</span><span class="hl opt">, ],</span> <span class="hl str">'utf_ka'</span> <span class="hl opt">=> [</span> <span class="hl str">"clearlyu,15"</span> <span class="hl opt">],</span> <span class="hl str">'utf_lo'</span> <span class="hl opt">=> [</span> <span class="hl str">"clearlyu,15"</span> <span class="hl opt">],</span> <span class="hl str">'default'</span> <span class="hl opt">=> [</span> <span class="hl str">"Nimbus Sans,12"</span><span class="hl opt">,</span> <span class="hl str">"Nimbus Mono,10"</span><span class="hl opt">,</span> <span class="hl str">"Nimbus Sans,11"</span> <span class="hl opt">],</span> <span class="hl opt">);</span> <span class="hl kwa">sub</span> charset2kde_font <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$charset, $type</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$font</span> <span class="hl opt">=</span> <span class="hl kwb">$charset2kde_font</span><span class="hl opt">{</span><span class="hl kwb">$charset</span><span class="hl opt">} ||</span> <span class="hl kwb">$charset2kde_font</span><span class="hl opt">{</span><span class="hl kwa">default</span><span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">$r</span> <span class="hl opt">=</span> <span class="hl kwb">$font</span><span class="hl opt">->[</span><span class="hl kwb">$type</span><span class="hl opt">] ||</span> <span class="hl kwb">$font</span><span class="hl opt">->[</span><span class="hl num">0</span><span class="hl opt">];</span> <span class="hl slc">#- the format is "font-name,size,-1,5,0,0,0,0,0,0" I have no idea of the</span> <span class="hl slc">#- meaning of that "5"...</span> <span class="hl str">"</span><span class="hl ipl">$r,</span><span class="hl str">-1,5,0,0,0,0,0,0"</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc"># this define pango name fonts (like "NimbusSans L") depending</span> <span class="hl slc"># on the "charset" defined by language array. This allows to selecting</span> <span class="hl slc"># an appropriate font for each language.</span> <span class="hl kwc">my</span> <span class="hl kwb">%charset2pango_font</span> <span class="hl opt">= (</span> <span class="hl str">'tis620'</span> <span class="hl opt">=></span> <span class="hl str">"Norasi 17"</span><span class="hl opt">,</span> <span class="hl str">'utf_ar'</span> <span class="hl opt">=></span> <span class="hl str">"Kacst-Qr 14"</span><span class="hl opt">,</span> <span class="hl str">'utf_cyr2'</span> <span class="hl opt">=></span> <span class="hl str">"Nimbus Sans L 12"</span><span class="hl opt">,</span> <span class="hl str">'utf_he'</span> <span class="hl opt">=></span> <span class="hl str">"Sans 12"</span><span class="hl opt">,</span> <span class="hl str">'utf_hy'</span> <span class="hl opt">=></span> <span class="hl str">"Artsounk 14"</span><span class="hl opt">,</span> <span class="hl str">'utf_ka'</span> <span class="hl opt">=></span> <span class="hl str">"Sans 14"</span><span class="hl opt">,</span> <span class="hl str">'utf_lo'</span> <span class="hl opt">=></span> <span class="hl str">"Sans 14"</span><span class="hl opt">,</span> <span class="hl str">'utf_ta'</span> <span class="hl opt">=></span> <span class="hl str">"TSCu_Paranar 14"</span><span class="hl opt">,</span> <span class="hl str">'utf_vi'</span> <span class="hl opt">=></span> <span class="hl str">"Sans 14"</span><span class="hl opt">,</span> <span class="hl str">'iso-8859-7'</span> <span class="hl opt">=></span> <span class="hl str">"Kerkis 14"</span><span class="hl opt">,</span> <span class="hl str">'jisx0208'</span> <span class="hl opt">=></span> <span class="hl str">"Sans 18"</span><span class="hl opt">,</span> <span class="hl slc">#- Nimbus Sans L is missing some chars used by some cyrillic languages,</span> <span class="hl slc">#- but tose haven't yet DrakX translations; it also misses vietnamese</span> <span class="hl slc">#- latin chars; all other latin and cyrillic are covered.</span> <span class="hl str">'default'</span> <span class="hl opt">=></span> <span class="hl str">"Nimbus Sans L 12"</span> <span class="hl opt">);</span> <span class="hl kwa">sub</span> charset2pango_font <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$charset</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$charset2pango_font</span><span class="hl opt">{</span><span class="hl kwc">exists</span> <span class="hl kwb">$charset2pango_font</span><span class="hl opt">{</span><span class="hl kwb">$charset</span><span class="hl opt">}</span> ? <span class="hl kwb">$charset</span> <span class="hl opt">:</span> <span class="hl str">'default'</span><span class="hl opt">};</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> l2pango_font <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$charset</span> <span class="hl opt">=</span> l2charset<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">)</span> <span class="hl kwc">or log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"no charset found for lang</span> <span class="hl ipl">$lang!</span><span class="hl str">"</span><span class="hl opt">),</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$font</span> <span class="hl opt">=</span> charset2pango_font<span class="hl opt">(</span><span class="hl kwb">$charset</span><span class="hl opt">);</span> <span class="hl kwc">log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"lang:</span><span class="hl ipl">$lang</span> <span class="hl str">charset:</span><span class="hl ipl">$charset</span> <span class="hl str">font:</span><span class="hl ipl">$font</span> <span class="hl str">sfm:</span><span class="hl ipl">$charsets</span><span class="hl str">{</span><span class="hl ipl">$charset</span><span class="hl str">}[0]"</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span>common<span class="hl opt">::</span>usingRamdisk<span class="hl opt">()) {</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$charsets</span><span class="hl opt">{</span><span class="hl kwb">$charset</span><span class="hl opt">}[</span><span class="hl num">0</span><span class="hl opt">] !~</span> <span class="hl kwd">/lat|koi|UniCyr/</span><span class="hl opt">) {</span> install_any<span class="hl opt">::</span>remove_bigseldom_used<span class="hl opt">();</span> <span class="hl kwc">unlink</span> glob_<span class="hl opt">(</span><span class="hl str">'/usr/share/langs/*'</span><span class="hl opt">);</span> <span class="hl slc">#- remove langs images</span> <span class="hl kwc">my</span> <span class="hl kwb">@generic_fontfiles</span> <span class="hl opt">=</span> <span class="hl str">qw(/usr/X11R6/lib/X11/fonts/12x13mdk.pcf.gz /usr/X11R6/lib/X11/fonts/18x18mdk.pcf.gz)</span><span class="hl opt">;</span> <span class="hl slc">#- need to unlink first because the files actually exist (and are void); they must exist</span> <span class="hl slc">#- because if not, when gtk starts, pango will recompute its cache file and exclude them</span> <span class="hl kwc">unlink</span><span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">),</span> install_any<span class="hl opt">::</span>getAndSaveFile<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@generic_fontfiles</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwc">my</span> <span class="hl kwb">%pango_modules</span> <span class="hl opt">= (</span>arabic <span class="hl opt">=></span> <span class="hl str">'ar|fa|ur'</span><span class="hl opt">,</span> hangul <span class="hl opt">=></span> <span class="hl str">'ko'</span><span class="hl opt">,</span> hebrew <span class="hl opt">=></span> <span class="hl str">'he|yi'</span><span class="hl opt">,</span> indic <span class="hl opt">=></span> <span class="hl str">'hi|bn|ta|te|mr'</span><span class="hl opt">,</span> thai <span class="hl opt">=></span> <span class="hl str">'th'</span><span class="hl opt">);</span> <span class="hl kwa">foreach</span> <span class="hl kwc">my</span> <span class="hl kwb">$module</span> <span class="hl opt">(</span><span class="hl kwc">keys</span> <span class="hl kwb">%pango_modules</span><span class="hl opt">) {</span> <span class="hl kwa">next if</span> <span class="hl kwb">$lang</span> <span class="hl opt">!~</span> <span class="hl kwd">/$pango_modules{$module}/</span><span class="hl opt">;</span> install_any<span class="hl opt">::</span>remove_bigseldom_used<span class="hl opt">();</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$pango_modules_dir</span><span class="hl opt">) =</span> <span class="hl kwc">glob</span><span class="hl opt">(</span><span class="hl str">'/usr/lib/pango/*/modules'</span><span class="hl opt">);</span> install_any<span class="hl opt">::</span>getAndSaveFile<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$pango_modules_dir/pango</span><span class="hl str">-</span><span class="hl ipl">$module</span><span class="hl str">-xft.so"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwa">return</span> <span class="hl kwb">$font</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> set <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale, $b_translate_for_console</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">($::</span>move<span class="hl opt">) {</span> put_in_hash<span class="hl opt">(</span>\<span class="hl kwb">%ENV,</span> i18n_env<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">));</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwc">my</span> <span class="hl kwb">$lang</span> <span class="hl opt">=</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">};</span> <span class="hl kwc">exists</span> <span class="hl kwb">$langs</span><span class="hl opt">{</span><span class="hl kwb">$lang</span><span class="hl opt">}</span> <span class="hl kwc">or log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"lang::set: trying to set to</span> <span class="hl ipl">$lang</span> <span class="hl str">but I don't know it!"</span><span class="hl opt">),</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$dir</span> <span class="hl opt">=</span> <span class="hl str">"</span><span class="hl ipl">$ENV</span><span class="hl str">{SHARE_PATH}/locale"</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(!-</span>e <span class="hl str">"</span><span class="hl ipl">$dir/$lang</span><span class="hl str">"</span> <span class="hl opt">&&</span> common<span class="hl opt">::</span>usingRamdisk<span class="hl opt">()) {</span> <span class="hl kwb">@ENV</span><span class="hl opt">{</span><span class="hl str">qw(LANG LC_ALL LANGUAGE LINGUAS)</span><span class="hl opt">} = ();</span> <span class="hl kwc">my</span> <span class="hl kwb">@LCs</span> <span class="hl opt">=</span> <span class="hl str">qw(LC_ADDRESS LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME)</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$charset</span> <span class="hl opt">=</span> during_install__l2charset<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) ||</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl slc">#- there are 3 main charsets containing everything for all locales, except LC_CTYPE</span> <span class="hl slc">#- by default, there is UTF-8.</span> <span class="hl slc">#- when asked for GB2312 or BIG5, removing the other main charsets</span> <span class="hl kwc">my</span> <span class="hl kwb">$main_charset</span> <span class="hl opt">=</span> member<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl str">'GB2312'</span><span class="hl opt">,</span> <span class="hl str">'BIG5'</span><span class="hl opt">)</span> ? <span class="hl kwb">$charset</span> <span class="hl opt">:</span> <span class="hl str">'UTF-8'</span><span class="hl opt">;</span> <span class="hl slc">#- removing everything</span> <span class="hl slc">#- except in main charset: only removing LC_CTYPE if it is there</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> rm_rf<span class="hl opt">(</span><span class="hl kwb">$_</span> <span class="hl kwc">eq</span> <span class="hl kwb">$main_charset</span> ? <span class="hl str">"</span><span class="hl ipl">$dir/$_/LC_CTYPE</span><span class="hl str">"</span> <span class="hl opt">:</span> <span class="hl str">"</span><span class="hl ipl">$dir/$_</span><span class="hl str">"</span><span class="hl opt">) }</span> <span class="hl kwa">foreach</span> all<span class="hl opt">(</span><span class="hl kwb">$dir</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(!-</span>e <span class="hl str">"</span><span class="hl ipl">$dir/$main_charset</span><span class="hl str">"</span><span class="hl opt">) {</span> <span class="hl slc">#- getting the main charset</span> <span class="hl kwc">mkdir</span> <span class="hl str">"</span><span class="hl ipl">$dir/$main_charset</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwc">mkdir</span> <span class="hl str">"</span><span class="hl ipl">$dir/$main_charset/LC_MESSAGES</span><span class="hl str">"</span><span class="hl opt">;</span> install_any<span class="hl opt">::</span>getAndSaveFile<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$dir/$main_charset/$_</span><span class="hl str">"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@LCs,</span> <span class="hl str">'LC_MESSAGES/SYS_LC_MESSAGES'</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwc">mkdir</span> <span class="hl str">"</span><span class="hl ipl">$dir/$lang</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl slc">#- linking to the main charset</span> <span class="hl kwc">symlink</span> <span class="hl str">"../</span><span class="hl ipl">$main_charset/$_</span><span class="hl str">"</span><span class="hl opt">,</span> <span class="hl str">"</span><span class="hl ipl">$dir/$lang/$_</span><span class="hl str">"</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@LCs,</span> <span class="hl str">'LC_MESSAGES'</span><span class="hl opt">;</span> <span class="hl slc">#- getting LC_CTYPE (putting it directly in $lang)</span> install_any<span class="hl opt">::</span>getAndSaveFile<span class="hl opt">(</span><span class="hl str">"Mandrake/mdkinst</span><span class="hl ipl">$dir/$charset/LC_CTYPE</span><span class="hl str">"</span><span class="hl opt">,</span> <span class="hl str">"</span><span class="hl ipl">$dir/$lang/LC_CTYPE</span><span class="hl str">"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl slc">#- set all LC_* variables to a unique locale ("C"), and only redefine</span> <span class="hl slc">#- LC_CTYPE (for X11 choosing the fontset) and LANGUAGE (for the po files)</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span><span class="hl kwb">$_</span><span class="hl opt">} =</span> <span class="hl str">'C'</span> <span class="hl kwa">foreach</span> <span class="hl str">qw(LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION)</span><span class="hl opt">;</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LC_CTYPE<span class="hl opt">} =</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LC_MESSAGES<span class="hl opt">} =</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LANG<span class="hl opt">} =</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$b_translate_for_console</span> <span class="hl opt">&&</span> <span class="hl kwb">$lang</span> <span class="hl opt">=~</span> <span class="hl kwd">/^(ko|ja|zh|th)/</span><span class="hl opt">) {</span> <span class="hl kwc">log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"not translating in console"</span><span class="hl opt">);</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LANGUAGE<span class="hl opt">} =</span> <span class="hl str">'C'</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LANGUAGE<span class="hl opt">} =</span> getLANGUAGE<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">);</span> <span class="hl opt">}</span> load_mo<span class="hl opt">();</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> langs <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$l</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$l</span><span class="hl opt">->{</span>all<span class="hl opt">}</span> ? list_langs<span class="hl opt">() :</span> <span class="hl kwc">grep</span> <span class="hl opt">{</span> <span class="hl kwb">$l</span><span class="hl opt">->{</span><span class="hl kwb">$_</span><span class="hl opt">} }</span> <span class="hl kwc">keys</span> <span class="hl kwb">%$l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> langsLANGUAGE <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$l, $o_c</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> uniq<span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwc">split</span> <span class="hl str">':'</span><span class="hl opt">,</span> getLANGUAGE<span class="hl opt">(</span><span class="hl kwb">$_, $o_c</span><span class="hl opt">) }</span> langs<span class="hl opt">(</span><span class="hl kwb">$l</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> utf8_should_be_needed <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> uniq<span class="hl opt">(</span><span class="hl kwc">grep</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl kwc">ne</span> <span class="hl str">'C'</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> l2charset<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> langs<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>langs<span class="hl opt">}));</span> <span class="hl kwb">@l</span> <span class="hl opt">></span> <span class="hl num">1</span> <span class="hl opt">||</span> any <span class="hl opt">{</span> <span class="hl kwd">/utf|unicode/</span> <span class="hl opt">}</span> <span class="hl kwb">@l</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> pack_langs <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$l</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$s</span> <span class="hl opt">=</span> <span class="hl kwb">$l</span><span class="hl opt">->{</span>all<span class="hl opt">}</span> ? <span class="hl str">'all'</span> <span class="hl opt">:</span> <span class="hl kwc">join</span> <span class="hl str">':'</span><span class="hl opt">,</span> uniq<span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> getLANGUAGE<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> langs<span class="hl opt">(</span><span class="hl kwb">$l</span><span class="hl opt">));</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>RPM_INSTALL_LANG<span class="hl opt">} =</span> <span class="hl kwb">$s</span><span class="hl opt">;</span> <span class="hl kwb">$s</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> system_locales_to_ourlocale <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale_lang, $locale_country</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$locale</span> <span class="hl opt">= {};</span> <span class="hl kwc">my</span> <span class="hl kwb">$h</span> <span class="hl opt">=</span> analyse_locale_name<span class="hl opt">(</span><span class="hl kwb">$locale_lang</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">$locale_lang_no_encoding</span> <span class="hl opt">=</span> <span class="hl kwc">join</span><span class="hl opt">(</span><span class="hl str">'_'</span><span class="hl opt">,</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>main<span class="hl opt">},</span> if_<span class="hl opt">(</span><span class="hl kwb">$h</span><span class="hl opt">->{</span>country<span class="hl opt">},</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>country<span class="hl opt">}));</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">} =</span> member<span class="hl opt">(</span><span class="hl kwb">$locale_lang_no_encoding,</span> list_langs<span class="hl opt">())</span> ? <span class="hl kwb">$locale_lang_no_encoding</span> <span class="hl opt">:</span> <span class="hl slc">#- special lang's such as en_US pt_BR</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>main<span class="hl opt">};</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">} .=</span> <span class="hl str">'@'</span> <span class="hl opt">.</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>variant<span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>variant<span class="hl opt">};</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">} =</span> analyse_locale_name<span class="hl opt">(</span><span class="hl kwb">$locale_country</span><span class="hl opt">)->{</span>country<span class="hl opt">};</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>utf8<span class="hl opt">} =</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>encoding<span class="hl opt">} &&</span> <span class="hl kwb">$h</span><span class="hl opt">->{</span>encoding<span class="hl opt">}</span> <span class="hl kwc">eq</span> <span class="hl str">'UTF-8'</span><span class="hl opt">;</span> <span class="hl slc">#- safe fallbacks</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">} ||=</span> <span class="hl str">'en_US'</span><span class="hl opt">;</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">} ||=</span> <span class="hl str">'US'</span><span class="hl opt">;</span> <span class="hl kwb">$locale</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> <span class="hl kwc">read</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$prefix, $user_only</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$prefix</span> <span class="hl opt">||=</span> <span class="hl str">""</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$f1, $f2</span><span class="hl opt">) = (</span><span class="hl str">"</span><span class="hl ipl">$prefix$ENV</span><span class="hl str">{HOME}/.i18n"</span><span class="hl opt">,</span> <span class="hl str">"</span><span class="hl ipl">$prefix/etc/sysconfig/i18n</span><span class="hl str">"</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">%h</span> <span class="hl opt">=</span> getVarsFromSh<span class="hl opt">(</span><span class="hl kwb">$user_only</span> <span class="hl opt">&& -</span>e <span class="hl kwb">$f1</span> ? <span class="hl kwb">$f1</span> <span class="hl opt">:</span> <span class="hl kwb">$f2</span><span class="hl opt">);</span> system_locales_to_ourlocale<span class="hl opt">(</span><span class="hl kwb">$h</span><span class="hl opt">{</span>LC_MESSAGES<span class="hl opt">} ||</span> <span class="hl str">'en_US'</span><span class="hl opt">,</span> <span class="hl kwb">$h</span><span class="hl opt">{</span>LC_MONETARY<span class="hl opt">} ||</span> <span class="hl str">'en_US'</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> write_langs <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$langs</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$s</span> <span class="hl opt">=</span> pack_langs<span class="hl opt">(</span><span class="hl kwb">$langs</span><span class="hl opt">);</span> <span class="hl kwc">symlink</span> <span class="hl str">"$::prefix/etc/rpm"</span><span class="hl opt">,</span> <span class="hl str">"/etc/rpm"</span> <span class="hl kwa">if</span> <span class="hl opt">$::</span>prefix<span class="hl opt">;</span> substInFile <span class="hl opt">{</span> <span class="hl kwd">s/%_install_langs.*//</span><span class="hl opt">;</span> <span class="hl kwb">$_</span> <span class="hl opt">.=</span> <span class="hl str">"</span><span class="hl ipl">%_install_langs</span> <span class="hl str"></span><span class="hl ipl">$s\n</span><span class="hl str">"</span> <span class="hl kwa">if</span> <span class="hl kwc">eof</span> <span class="hl opt">&&</span> <span class="hl kwb">$s</span> <span class="hl opt">}</span> <span class="hl str">"$::prefix/etc/rpm/macros"</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> i18n_env <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$locale_lang</span> <span class="hl opt">=</span> getlocale_for_lang<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>utf8<span class="hl opt">});</span> <span class="hl kwc">my</span> <span class="hl kwb">$locale_country</span> <span class="hl opt">=</span> getlocale_for_country<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>utf8<span class="hl opt">});</span> <span class="hl kwc">my</span> <span class="hl kwb">$h</span> <span class="hl opt">= {</span> XKB_IN_USE <span class="hl opt">=></span> <span class="hl str">''</span><span class="hl opt">,</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">=></span> <span class="hl kwb">$locale_lang</span> <span class="hl opt">}</span> <span class="hl str">qw(LANG LC_COLLATE LC_CTYPE LC_MESSAGES LC_TIME)</span><span class="hl opt">),</span> LANGUAGE <span class="hl opt">=></span> getLANGUAGE<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">},</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>utf8<span class="hl opt">}),</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">=></span> <span class="hl kwb">$locale_country</span> <span class="hl opt">}</span> <span class="hl str">qw(LC_NUMERIC LC_MONETARY LC_ADDRESS LC_MEASUREMENT LC_NAME LC_PAPER LC_IDENTIFICATION LC_TELEPHONE)</span><span class="hl opt">)</span> <span class="hl opt">};</span> <span class="hl kwc">log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"lang::write: lang:</span><span class="hl ipl">$locale</span><span class="hl str">->{lang} country:</span><span class="hl ipl">$locale</span><span class="hl str">->{country} locale|lang:</span><span class="hl ipl">$locale_lang</span> <span class="hl str">locale|country:</span><span class="hl ipl">$locale_country</span> <span class="hl str">language:</span><span class="hl ipl">$h</span><span class="hl str">->{LANGUAGE}"</span><span class="hl opt">);</span> <span class="hl kwb">$h</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> <span class="hl kwc">write</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$prefix, $locale, $b_user_only, $b_dont_touch_kde_files</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwb">$locale</span> <span class="hl opt">&&</span> <span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">}</span> <span class="hl kwc">or</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$h</span> <span class="hl opt">=</span> i18n_env<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$name, $sfm, $acm</span><span class="hl opt">) =</span> l2console_font<span class="hl opt">(</span><span class="hl kwb">$locale,</span> <span class="hl num">0</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$name</span> <span class="hl opt">&& !</span><span class="hl kwb">$b_user_only</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$p</span> <span class="hl opt">=</span> <span class="hl str">"</span><span class="hl ipl">$prefix/usr/lib/kbd</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$name</span><span class="hl opt">) {</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$font</span> <span class="hl opt">=</span> <span class="hl str">"</span><span class="hl ipl">$p/consolefonts/$name</span><span class="hl str">.psf"</span><span class="hl opt">;</span> <span class="hl kwb">$font</span> <span class="hl opt">.=</span> <span class="hl str">".gz"</span> <span class="hl kwa">if</span> <span class="hl opt">! -</span>e <span class="hl kwb">$font</span><span class="hl opt">;</span> cp_af<span class="hl opt">(</span><span class="hl kwb">$font,</span> <span class="hl str">"</span><span class="hl ipl">$prefix/etc/sysconfig/console/consolefonts</span><span class="hl str">"</span><span class="hl opt">);</span> add2hash <span class="hl kwb">$h,</span> <span class="hl opt">{</span> SYSFONT <span class="hl opt">=></span> <span class="hl kwb">$name</span> <span class="hl opt">};</span> <span class="hl opt">};</span> <span class="hl kwb">$@</span> <span class="hl kwc">and log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"missing console font</span> <span class="hl ipl">$name</span><span class="hl str">"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$sfm</span><span class="hl opt">) {</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> cp_af<span class="hl opt">(</span>glob_<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$p/consoletrans/$sfm*</span><span class="hl str">"</span><span class="hl opt">),</span> <span class="hl str">"</span><span class="hl ipl">$prefix/etc/sysconfig/console/consoletrans</span><span class="hl str">"</span><span class="hl opt">);</span> add2hash <span class="hl kwb">$h,</span> <span class="hl opt">{</span> UNIMAP <span class="hl opt">=></span> <span class="hl kwb">$sfm</span> <span class="hl opt">};</span> <span class="hl opt">};</span> <span class="hl kwb">$@</span> <span class="hl kwc">and log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"missing console unimap file</span> <span class="hl ipl">$sfm</span><span class="hl str">"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$acm</span><span class="hl opt">) {</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> cp_af<span class="hl opt">(</span>glob_<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$p/consoletrans/$acm*</span><span class="hl str">"</span><span class="hl opt">),</span> <span class="hl str">"</span><span class="hl ipl">$prefix/etc/sysconfig/console/consoletrans</span><span class="hl str">"</span><span class="hl opt">);</span> add2hash <span class="hl kwb">$h,</span> <span class="hl opt">{</span> SYSFONTACM <span class="hl opt">=></span> <span class="hl kwb">$acm</span> <span class="hl opt">};</span> <span class="hl opt">};</span> <span class="hl kwb">$@</span> <span class="hl kwc">and log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">"missing console acm file</span> <span class="hl ipl">$acm</span><span class="hl str">"</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">}</span> add2hash <span class="hl kwb">$h, $xim</span><span class="hl opt">{</span><span class="hl kwb">$h</span><span class="hl opt">->{</span>LANG<span class="hl opt">}};</span> <span class="hl slc">#- deactivate translations on console for RTL languages</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$h</span><span class="hl opt">->{</span>LANG<span class="hl opt">} =~</span> <span class="hl kwd">/ar|fa|he|ur|yi/</span><span class="hl opt">) {</span> add2hash <span class="hl kwb">$h,</span> <span class="hl opt">{</span> CONSOLE_NOT_LOCALIZED <span class="hl opt">=></span> <span class="hl str">'yes'</span> <span class="hl opt">}</span> <span class="hl opt">}</span> setVarsInSh<span class="hl opt">(</span><span class="hl kwb">$prefix</span> <span class="hl opt">. (</span><span class="hl kwb">$b_user_only</span> ? <span class="hl str">"</span><span class="hl ipl">$ENV</span><span class="hl str">{HOME}/.i18n"</span> <span class="hl opt">:</span> <span class="hl str">'/etc/sysconfig/i18n'</span><span class="hl opt">),</span> <span class="hl kwb">$h</span><span class="hl opt">);</span> substInFile <span class="hl opt">{</span> <span class="hl kwd">s!^function lang\b.*!function lang()="$h->{LANG}"!g</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl str">"$::prefix/etc/menu-methods/lang.h"</span><span class="hl opt">;</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$confdir</span> <span class="hl opt">=</span> <span class="hl kwb">$prefix</span> <span class="hl opt">. (</span><span class="hl kwb">$b_user_only</span> ? <span class="hl str">"</span><span class="hl ipl">$ENV</span><span class="hl str">{HOME}/.kde"</span> <span class="hl opt">:</span> <span class="hl str">'/usr'</span><span class="hl opt">) .</span> <span class="hl str">'/share/config'</span><span class="hl opt">;</span> <span class="hl opt">-</span>d <span class="hl kwb">$confdir</span> <span class="hl kwc">or die</span> <span class="hl str">'not configuring kde config files since it is not installed/used'</span><span class="hl opt">;</span> configure_kdeglobals<span class="hl opt">(</span><span class="hl kwb">$locale, $confdir</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl kwb">%qt_xim</span> <span class="hl opt">= (</span>zh <span class="hl opt">=></span> <span class="hl str">'Over The Spot'</span><span class="hl opt">,</span> ko <span class="hl opt">=></span> <span class="hl str">'On The Spot'</span><span class="hl opt">,</span> ja <span class="hl opt">=></span> <span class="hl str">'On The Spot'</span><span class="hl opt">);</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$b_user_only</span> <span class="hl opt">&& (</span><span class="hl kwc">my</span> <span class="hl kwb">$qt_xim</span> <span class="hl opt">=</span> <span class="hl kwb">$qt_xim</span><span class="hl opt">{</span>locale_to_main_locale<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">})})) {</span> update_gnomekderc<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$ENV</span><span class="hl str">{HOME}/.qt/qtrc"</span><span class="hl opt">,</span> General <span class="hl opt">=> (</span>XIMInputStyle <span class="hl opt">=></span> <span class="hl kwb">$qt_xim</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl opt">(!</span><span class="hl kwb">$b_user_only</span><span class="hl opt">) {</span> <span class="hl kwc">my</span> <span class="hl kwb">$kde_charset</span> <span class="hl opt">=</span> charset2kde_charset<span class="hl opt">(</span>l2charset<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">}));</span> <span class="hl kwc">my</span> <span class="hl kwb">$welcome</span> <span class="hl opt">=</span> c<span class="hl opt">::</span>to_utf8<span class="hl opt">(</span>N<span class="hl opt">(</span><span class="hl str">"Welcome to</span> <span class="hl ipl">%s</span><span class="hl str">"</span><span class="hl opt">,</span> <span class="hl str">'</span><span class="hl ipl">%n</span><span class="hl str">'</span><span class="hl opt">));</span> substInFile <span class="hl opt">{</span> <span class="hl kwd">s/^(GreetString)=.*/$1=$welcome/</span><span class="hl opt">;</span> <span class="hl kwd">s/^(Language)=.*/$1=$locale->{lang}/</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(!</span>member<span class="hl opt">(</span><span class="hl kwb">$kde_charset,</span> <span class="hl str">'iso8859-1'</span><span class="hl opt">,</span> <span class="hl str">'iso8859-15'</span><span class="hl opt">)) {</span> <span class="hl slc">#- don't keep the default for those</span> <span class="hl kwc">my</span> <span class="hl kwb">$font_list</span> <span class="hl opt">=</span> <span class="hl kwb">$charset2kde_font</span><span class="hl opt">{</span>l2charset<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">})} ||</span> <span class="hl kwb">$charset2kde_font</span><span class="hl opt">{</span><span class="hl kwa">default</span><span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">$font_small</span> <span class="hl opt">=</span> <span class="hl kwb">$font_list</span><span class="hl opt">->[</span><span class="hl num">0</span><span class="hl opt">];</span> <span class="hl kwc">my</span> <span class="hl kwb">$font_huge</span> <span class="hl opt">=</span> <span class="hl kwb">$font_small</span><span class="hl opt">;</span> <span class="hl kwb">$font_huge</span> <span class="hl opt">=~</span> <span class="hl kwd">s/(.*?),\d+/$1,24/</span><span class="hl opt">;</span> <span class="hl kwd">s/^(StdFont)=.*/$1=$font_small,5,$kde_charset,50,0/</span><span class="hl opt">;</span> <span class="hl kwd">s/^(FailFont)=.*/$1=$font_small,5,$kde_charset,75,0/</span><span class="hl opt">;</span> <span class="hl kwd">s/^(GreetFont)=.*/$1=$font_huge,5,$kde_charset,50,0/</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl str">"$::prefix/usr/share/config/kdm/kdmrc"</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl opt">!</span><span class="hl kwb">$b_dont_touch_kde_files</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> configure_kdeglobals <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale, $confdir</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$kdeglobals</span> <span class="hl opt">=</span> <span class="hl str">"</span><span class="hl ipl">$confdir/kdeglobals</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$charset</span> <span class="hl opt">=</span> l2charset<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">});</span> <span class="hl kwc">my</span> <span class="hl kwb">$kde_charset</span> <span class="hl opt">=</span> charset2kde_charset<span class="hl opt">(</span><span class="hl kwb">$charset</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$prev_kde_charset</span><span class="hl opt">) =</span> cat_<span class="hl opt">(</span><span class="hl kwb">$kdeglobals</span><span class="hl opt">) =~</span> <span class="hl kwd">/^Charset=(.*)/mi</span><span class="hl opt">;</span> mkdir_p<span class="hl opt">(</span><span class="hl kwb">$confdir</span><span class="hl opt">);</span> update_gnomekderc<span class="hl opt">(</span><span class="hl kwb">$kdeglobals,</span> Locale <span class="hl opt">=> (</span> Charset <span class="hl opt">=></span> <span class="hl kwb">$kde_charset,</span> Country <span class="hl opt">=></span> <span class="hl kwc">lc</span><span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>country<span class="hl opt">}),</span> Language <span class="hl opt">=></span> get_kde_lang<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">),</span> <span class="hl opt">));</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$prev_kde_charset</span> <span class="hl kwc">ne</span> <span class="hl kwb">$kde_charset</span><span class="hl opt">) {</span> update_gnomekderc<span class="hl opt">(</span><span class="hl kwb">$kdeglobals,</span> WM <span class="hl opt">=> (</span> activeFont <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,0</span><span class="hl opt">),</span> <span class="hl opt">));</span> update_gnomekderc<span class="hl opt">(</span><span class="hl kwb">$kdeglobals,</span> General <span class="hl opt">=> (</span> fixed <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">1</span><span class="hl opt">),</span> font <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">0</span><span class="hl opt">),</span> menuFont <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">3</span><span class="hl opt">),</span> taskbarFont <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">4</span><span class="hl opt">),</span> toolBarFont <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">2</span><span class="hl opt">),</span> <span class="hl opt">));</span> update_gnomekderc<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$confdir/konquerorrc</span><span class="hl str">"</span><span class="hl opt">,</span> FMSettings <span class="hl opt">=> (</span> StandardFont <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">0</span><span class="hl opt">),</span> <span class="hl opt">));</span> update_gnomekderc<span class="hl opt">(</span><span class="hl str">"</span><span class="hl ipl">$confdir/kdesktoprc</span><span class="hl str">"</span><span class="hl opt">,</span> FMSettings <span class="hl opt">=> (</span> StandardFont <span class="hl opt">=></span> charset2kde_font<span class="hl opt">(</span><span class="hl kwb">$charset,</span> <span class="hl num">0</span><span class="hl opt">),</span> <span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> bindtextdomain<span class="hl opt">() {</span> <span class="hl slc">#- if $::prefix is set, search for libDrakX.mo in locale_special</span> <span class="hl slc">#- NB: not using $::isInstall to make it work more easily at install and standalone</span> <span class="hl kwc">my</span> <span class="hl kwb">$localedir</span> <span class="hl opt">=</span> <span class="hl str">"</span><span class="hl ipl">$ENV</span><span class="hl str">{SHARE_PATH}/locale"</span> <span class="hl opt">. ($::</span>prefix ? <span class="hl str">"_special"</span> <span class="hl opt">:</span> <span class="hl str">''</span><span class="hl opt">);</span> c<span class="hl opt">::</span>setlocale<span class="hl opt">();</span> c<span class="hl opt">::</span>bind_textdomain_codeset<span class="hl opt">(</span><span class="hl str">'libDrakX'</span><span class="hl opt">,</span> <span class="hl str">'UTF-8'</span><span class="hl opt">);</span> <span class="hl opt">$::</span>need_utf8_i18n <span class="hl opt">=</span> <span class="hl num">1</span><span class="hl opt">;</span> c<span class="hl opt">::</span>bindtextdomain<span class="hl opt">(</span><span class="hl str">'libDrakX'</span><span class="hl opt">,</span> <span class="hl kwb">$localedir</span><span class="hl opt">);</span> <span class="hl kwb">$localedir</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> load_mo <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$localedir</span> <span class="hl opt">=</span> bindtextdomain<span class="hl opt">();</span> <span class="hl kwc">my</span> <span class="hl kwb">$suffix</span> <span class="hl opt">=</span> <span class="hl str">'LC_MESSAGES/libDrakX.mo'</span><span class="hl opt">;</span> <span class="hl kwb">$lang</span> <span class="hl opt">||=</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LANGUAGE<span class="hl opt">} ||</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LC_ALL<span class="hl opt">} ||</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LC_MESSAGES<span class="hl opt">} ||</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LANG<span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">@possible_langs</span> <span class="hl opt">=</span> <span class="hl kwc">map</span> <span class="hl opt">{ {</span> name <span class="hl opt">=></span> <span class="hl kwb">$_,</span> mofile <span class="hl opt">=></span> <span class="hl str">"</span><span class="hl ipl">$localedir/$_/$suffix</span><span class="hl str">"</span> <span class="hl opt">} }</span> <span class="hl kwc">split</span> <span class="hl str">':'</span><span class="hl opt">,</span> <span class="hl kwb">$lang</span><span class="hl opt">;</span> <span class="hl opt">-</span>s <span class="hl kwb">$_</span><span class="hl opt">->{</span>mofile<span class="hl opt">}</span> <span class="hl kwc">and</span> <span class="hl kwa">return</span> <span class="hl kwb">$_</span><span class="hl opt">->{</span>name<span class="hl opt">}</span> <span class="hl kwa">foreach</span> <span class="hl kwb">@possible_langs</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">($::</span>isInstall <span class="hl opt">&&</span> common<span class="hl opt">::</span>usingRamdisk<span class="hl opt">()) {</span> <span class="hl kwa">foreach</span> <span class="hl opt">(</span><span class="hl kwb">@possible_langs</span><span class="hl opt">) {</span> <span class="hl slc">#- cleanup</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> rm_rf<span class="hl opt">(</span><span class="hl kwb">$localedir</span><span class="hl opt">) };</span> <span class="hl kwc">eval</span> <span class="hl opt">{</span> mkdir_p<span class="hl opt">(</span>dirname<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">->{</span>mofile<span class="hl opt">})) };</span> install_any<span class="hl opt">::</span>getAndSaveFile<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">->{</span>mofile<span class="hl opt">});</span> <span class="hl opt">-</span>s <span class="hl kwb">$_</span><span class="hl opt">->{</span>mofile<span class="hl opt">}</span> <span class="hl kwc">and</span> <span class="hl kwa">return</span> <span class="hl kwb">$_</span><span class="hl opt">->{</span>name<span class="hl opt">};</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl str">''</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl slc">#- used in Makefile during "make get_needed_files"</span> <span class="hl kwa">sub</span> console_font_files<span class="hl opt">() {</span> <span class="hl kwc">map</span> <span class="hl opt">{ -</span>e <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> <span class="hl str">"</span><span class="hl ipl">$_</span><span class="hl str">.gz"</span> <span class="hl opt">}</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl str">"/usr/lib/kbd/consolefonts/</span><span class="hl ipl">$_</span><span class="hl str">.psf"</span> <span class="hl opt">}</span> uniq <span class="hl kwc">grep</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">0</span><span class="hl opt">] }</span> <span class="hl kwc">values</span> <span class="hl kwb">%charsets</span><span class="hl opt">),</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{ -</span>e <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> <span class="hl str">"</span><span class="hl ipl">$_</span><span class="hl str">.sfm"</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl str">"/usr/lib/kbd/consoletrans/</span><span class="hl ipl">$_</span><span class="hl str">"</span> <span class="hl opt">}</span> uniq <span class="hl kwc">grep</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">] }</span> <span class="hl kwc">values</span> <span class="hl kwb">%charsets</span><span class="hl opt">),</span> <span class="hl opt">(</span><span class="hl kwc">map</span> <span class="hl opt">{ -</span>e <span class="hl kwb">$_</span> ? <span class="hl kwb">$_</span> <span class="hl opt">:</span> <span class="hl str">"</span><span class="hl ipl">$_</span><span class="hl str">.acm"</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl str">"/usr/lib/kbd/consoletrans/</span><span class="hl ipl">$_</span><span class="hl str">"</span> <span class="hl opt">}</span> uniq <span class="hl kwc">grep</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span> <span class="hl opt">}</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">2</span><span class="hl opt">] }</span> <span class="hl kwc">values</span> <span class="hl kwb">%charsets</span><span class="hl opt">),</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> load_console_font <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$name, $sfm, $acm</span><span class="hl opt">) =</span> l2console_font<span class="hl opt">(</span><span class="hl kwb">$locale,</span> <span class="hl num">1</span><span class="hl opt">);</span> <span class="hl kwa">require</span> run_program<span class="hl opt">;</span> run_program<span class="hl opt">::</span>run<span class="hl opt">(</span>if_<span class="hl opt">(</span><span class="hl kwb">$ENV</span><span class="hl opt">{</span>LD_LOADER<span class="hl opt">},</span> <span class="hl kwb">$ENV</span><span class="hl opt">{</span>LD_LOADER<span class="hl opt">}),</span> <span class="hl str">'consolechars'</span><span class="hl opt">,</span> <span class="hl str">'-v'</span><span class="hl opt">,</span> <span class="hl str">'-f'</span><span class="hl opt">,</span> <span class="hl kwb">$name</span> <span class="hl opt">||</span> <span class="hl str">'lat0-16'</span><span class="hl opt">,</span> if_<span class="hl opt">(</span><span class="hl kwb">$sfm,</span> <span class="hl str">'-u'</span><span class="hl opt">,</span> <span class="hl kwb">$sfm</span><span class="hl opt">),</span> if_<span class="hl opt">(</span><span class="hl kwb">$acm,</span> <span class="hl str">'-m'</span><span class="hl opt">,</span> <span class="hl kwb">$acm</span><span class="hl opt">));</span> <span class="hl slc">#- in console mode install, ensure we'll get translations in the right codeset</span> <span class="hl slc">#- (charset of locales reported by the glibc are UTF-8 during install)</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$acm</span><span class="hl opt">) {</span> c<span class="hl opt">::</span>bind_textdomain_codeset<span class="hl opt">(</span><span class="hl str">'libDrakX'</span><span class="hl opt">,</span> l2charset<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">}));</span> <span class="hl opt">$::</span>need_utf8_i18n <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> fs_options <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>utf8<span class="hl opt">}) {</span> <span class="hl opt">(</span>iocharset <span class="hl opt">=></span> <span class="hl str">'utf8'</span><span class="hl opt">,</span> codepage <span class="hl opt">=></span> <span class="hl kwc">undef</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl kwb">$charsets</span><span class="hl opt">{</span>l2charset<span class="hl opt">(</span><span class="hl kwb">$locale</span><span class="hl opt">->{</span>lang<span class="hl opt">}) ||</span> <span class="hl kwa">return</span><span class="hl opt">}</span> <span class="hl kwc">or</span> <span class="hl kwa">return</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$iocharset, $codepage</span><span class="hl opt">) =</span> <span class="hl kwb">@$c</span><span class="hl opt">[</span><span class="hl num">3</span><span class="hl opt">.</span><span class="hl num">.4</span><span class="hl opt">];</span> <span class="hl opt">(</span>iocharset <span class="hl opt">=></span> <span class="hl kwb">$iocharset,</span> codepage <span class="hl opt">=></span> <span class="hl kwb">$codepage</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> during_install__l2charset <span class="hl opt">{</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">) =</span> <span class="hl kwb">@_</span><span class="hl opt">;</span> <span class="hl kwa">return if</span> member<span class="hl opt">(</span><span class="hl kwb">$lang, @during_install__lang_having_their_LC_CTYPE</span><span class="hl opt">);</span> <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">) =</span> l2charset<span class="hl opt">(</span><span class="hl kwb">$lang</span><span class="hl opt">)</span> <span class="hl kwc">or die</span> <span class="hl str">"bad lang</span> <span class="hl ipl">$lang\n</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl str">'UTF-8'</span> <span class="hl kwa">if</span> member<span class="hl opt">(</span><span class="hl kwb">$c,</span> <span class="hl str">'tis620'</span><span class="hl opt">,</span> <span class="hl str">'C'</span><span class="hl opt">,</span> <span class="hl str">'unicode'</span><span class="hl opt">);</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl str">'UTF-8'</span> <span class="hl kwa">if</span> <span class="hl kwb">$c</span> <span class="hl opt">=~</span> <span class="hl kwd">/koi8-/</span><span class="hl opt">;</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl str">'UTF-8'</span> <span class="hl kwa">if</span> <span class="hl kwb">$c</span> <span class="hl opt">=~</span> <span class="hl kwd">/iso-8859/</span><span class="hl opt">;</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl str">'UTF-8'</span> <span class="hl kwa">if</span> <span class="hl kwb">$c</span> <span class="hl opt">=~</span> <span class="hl kwd">/cp125/</span><span class="hl opt">;</span> <span class="hl kwb">$c</span> <span class="hl opt">=</span> <span class="hl str">'UTF-8'</span> <span class="hl kwa">if</span> <span class="hl kwb">$c</span> <span class="hl opt">=~</span> <span class="hl kwd">/utf_/</span><span class="hl opt">;</span> <span class="hl kwc">uc</span><span class="hl opt">(</span><span class="hl kwb">$c</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> get_unneeded_png_lang_files<span class="hl opt">() {</span> <span class="hl kwc">print join</span><span class="hl opt">(</span><span class="hl str">' '</span><span class="hl opt">,</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> if_<span class="hl opt">(</span>m<span class="hl opt">|(</span>langs<span class="hl opt">/</span>lang-<span class="hl opt">(.*)</span>\<span class="hl opt">.</span>png<span class="hl opt">)| && !</span>member<span class="hl opt">(</span><span class="hl kwb">$2,</span> list_langs<span class="hl opt">()),</span> <span class="hl kwb">$1</span><span class="hl opt">) }</span> <span class="hl kwc">glob</span><span class="hl opt">(</span><span class="hl str">"pixmaps/langs/lang-*.png"</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">sub</span> check<span class="hl opt">() {</span> <span class="hl kwb">$^W</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$ok</span> <span class="hl opt">=</span> <span class="hl num">1</span><span class="hl opt">;</span> <span class="hl kwc">my</span> <span class="hl kwb">$warn</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">print</span> STDERR <span class="hl str">"</span><span class="hl ipl">$_</span><span class="hl str">[0]</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">$err</span> <span class="hl opt">=</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl opt">&</span><span class="hl kwb">$warn</span><span class="hl opt">;</span> <span class="hl kwb">$ok</span> <span class="hl opt">=</span> <span class="hl num">0</span><span class="hl opt">;</span> <span class="hl opt">};</span> <span class="hl kwc">my</span> <span class="hl kwb">@wanted_charsets</span> <span class="hl opt">=</span> uniq <span class="hl kwc">map</span> <span class="hl opt">{</span> l2charset<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> list_langs<span class="hl opt">();</span> <span class="hl kwc">print</span> <span class="hl str">"</span><span class="hl esc">\t</span><span class="hl str">Warnings:</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwb">$warn</span><span class="hl opt">->(</span><span class="hl str">"unused charset</span> <span class="hl ipl">$_</span> <span class="hl str">(given in \</span><span class="hl ipl">%charsets,</span> <span class="hl str">but not used in \</span><span class="hl ipl">%langs</span><span class="hl str">)"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> difference2<span class="hl opt">([</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charsets</span> <span class="hl opt">],</span> \<span class="hl kwb">@wanted_charsets</span><span class="hl opt">);</span> <span class="hl kwb">$warn</span><span class="hl opt">->(</span><span class="hl str">"unused entry</span> <span class="hl ipl">$_</span> <span class="hl str">in \</span><span class="hl ipl">%xim</span><span class="hl str">"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwc">grep</span> <span class="hl opt">{ !</span><span class="hl kwd">/UTF-8/</span> <span class="hl opt">}</span> difference2<span class="hl opt">([</span> <span class="hl kwc">keys</span> <span class="hl kwb">%xim</span> <span class="hl opt">], [</span> <span class="hl kwc">map</span> <span class="hl opt">{</span> l2locale<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) }</span> list_langs<span class="hl opt">() ]);</span> <span class="hl slc">#- consolefonts are checked during build via console_font_files()</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> difference2<span class="hl opt">([</span> <span class="hl str">'default'</span><span class="hl opt">,</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charsets</span> <span class="hl opt">], [</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charset2kde_font</span> <span class="hl opt">])) {</span> <span class="hl kwb">$warn</span><span class="hl opt">->(</span><span class="hl str">"no kde font for charset "</span> <span class="hl opt">.</span> <span class="hl kwc">join</span><span class="hl opt">(</span><span class="hl str">" "</span><span class="hl opt">,</span> <span class="hl kwb">@l</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> <span class="hl kwc">grep</span> <span class="hl opt">{</span> get_kde_lang<span class="hl opt">({</span> lang <span class="hl opt">=></span> <span class="hl kwb">$_,</span> country <span class="hl opt">=></span> <span class="hl str">'US'</span> <span class="hl opt">},</span> <span class="hl str">'err'</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'err'</span> <span class="hl opt">}</span> list_langs<span class="hl opt">()) {</span> <span class="hl kwb">$warn</span><span class="hl opt">->(</span><span class="hl str">"no KDE lang for langs "</span> <span class="hl opt">.</span> <span class="hl kwc">join</span><span class="hl opt">(</span><span class="hl str">" "</span><span class="hl opt">,</span> <span class="hl kwb">@l</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwc">my</span> <span class="hl kwb">@l</span> <span class="hl opt">=</span> <span class="hl kwc">grep</span> <span class="hl opt">{</span> charset2kde_charset<span class="hl opt">(</span><span class="hl kwb">$_,</span> <span class="hl str">'err'</span><span class="hl opt">)</span> <span class="hl kwc">eq</span> <span class="hl str">'err'</span> <span class="hl opt">}</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charsets</span><span class="hl opt">) {</span> <span class="hl kwb">$warn</span><span class="hl opt">->(</span><span class="hl str">"no KDE charset for charsets "</span> <span class="hl opt">.</span> <span class="hl kwc">join</span><span class="hl opt">(</span><span class="hl str">" "</span><span class="hl opt">,</span> <span class="hl kwb">@l</span><span class="hl opt">));</span> <span class="hl opt">}</span> <span class="hl kwb">$warn</span><span class="hl opt">->(</span><span class="hl str">"no country corresponding to default locale</span> <span class="hl ipl">$_</span><span class="hl str">->[1] of lang</span> <span class="hl ipl">$_</span><span class="hl str">->[0]"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwc">grep</span> <span class="hl opt">{</span> <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">] =~</span> <span class="hl kwd">/.._(..)/</span> <span class="hl opt">&& !</span><span class="hl kwc">exists</span> <span class="hl kwb">$countries</span><span class="hl opt">{</span><span class="hl kwb">$1</span><span class="hl opt">} }</span> <span class="hl kwc">map</span> <span class="hl opt">{ [</span> <span class="hl kwb">$_,</span> l2locale<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) ] }</span> list_langs<span class="hl opt">();</span> <span class="hl kwc">print</span> <span class="hl str">"</span><span class="hl esc">\t</span><span class="hl str">Errors:</span><span class="hl esc">\n</span><span class="hl str">"</span><span class="hl opt">;</span> <span class="hl kwb">$err</span><span class="hl opt">->(</span><span class="hl str">"invalid charset</span> <span class="hl ipl">$_</span> <span class="hl str">(</span><span class="hl ipl">$_</span> <span class="hl str">does not exist in \</span><span class="hl ipl">%charsets</span><span class="hl str">)"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> difference2<span class="hl opt">(</span>\<span class="hl kwb">@wanted_charsets,</span> <span class="hl opt">[</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charsets</span> <span class="hl opt">]);</span> <span class="hl kwb">$err</span><span class="hl opt">->(</span><span class="hl str">"invalid charset</span> <span class="hl ipl">$_</span> <span class="hl str">in \</span><span class="hl ipl">%charset2kde_font</span> <span class="hl str">(</span><span class="hl ipl">$_</span> <span class="hl str">does not exist in \</span><span class="hl ipl">%charsets</span><span class="hl str">)"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> difference2<span class="hl opt">([</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charset2kde_font</span> <span class="hl opt">], [</span> <span class="hl str">'default'</span><span class="hl opt">,</span> <span class="hl kwc">keys</span> <span class="hl kwb">%charsets</span> <span class="hl opt">]);</span> <span class="hl kwb">$err</span><span class="hl opt">->(</span><span class="hl str">"default locale</span> <span class="hl ipl">$_</span><span class="hl str">->[1] of lang</span> <span class="hl ipl">$_</span><span class="hl str">->[0] isn't listed in \</span><span class="hl ipl">@locales</span><span class="hl str">"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwc">grep</span> <span class="hl opt">{ !</span>member<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">],</span> <span class="hl kwb">@locales</span><span class="hl opt">) }</span> <span class="hl kwc">map</span> <span class="hl opt">{ [</span> <span class="hl kwb">$_,</span> l2locale<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) ] }</span> list_langs<span class="hl opt">();</span> <span class="hl kwb">$err</span><span class="hl opt">->(</span><span class="hl str">"lang image for lang</span> <span class="hl ipl">$_</span><span class="hl str">->[0] is missing (file</span> <span class="hl ipl">$_</span><span class="hl str">->[1])"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwc">grep</span> <span class="hl opt">{ !(-</span>e <span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">]) }</span> <span class="hl kwc">map</span> <span class="hl opt">{ [</span> <span class="hl kwb">$_,</span> <span class="hl str">"pixmaps/langs/lang-</span><span class="hl ipl">$_</span><span class="hl str">.png"</span> <span class="hl opt">] }</span> list_langs<span class="hl opt">();</span> <span class="hl kwb">$err</span><span class="hl opt">->(</span><span class="hl str">"default locale</span> <span class="hl ipl">$_</span><span class="hl str">->[1] of country</span> <span class="hl ipl">$_</span><span class="hl str">->[0] isn't listed in \</span><span class="hl ipl">@locales</span><span class="hl str">"</span><span class="hl opt">)</span> <span class="hl kwa">foreach</span> <span class="hl kwc">grep</span> <span class="hl opt">{ !</span>member<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">->[</span><span class="hl num">1</span><span class="hl opt">],</span> <span class="hl kwb">@locales</span><span class="hl opt">) }</span> <span class="hl kwc">map</span> <span class="hl opt">{ [</span> <span class="hl kwb">$_,</span> c2locale<span class="hl opt">(</span><span class="hl kwb">$_</span><span class="hl opt">) ] }</span> list_countries<span class="hl opt">();</span> <span class="hl kwa">exit</span><span class="hl opt">(</span><span class="hl kwb">$ok</span> ? <span class="hl num">0</span> <span class="hl opt">:</span> <span class="hl num">1</span><span class="hl opt">);</span> <span class="hl opt">}</span> <span class="hl num">1</span><span class="hl opt">;</span> </code></pre></td></tr></table> </div> <!-- class=content --> <div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.1</a> (<a href='https://git-scm.com/'>git 2.21.0</a>) at 2025-03-04 20:28:37 +0000</div> </div> <!-- id=cgit --> </body> </html>