]> git.ipfire.org Git - thirdparty/google/fonts.git/commitdiff
fix marks in base (#172)
authorSimon Cozens <simon@simon-cozens.org>
Thu, 17 Oct 2024 13:25:35 +0000 (14:25 +0100)
committerGitHub <noreply@github.com>
Thu, 17 Oct 2024 13:25:35 +0000 (14:25 +0100)
* Add Todhri description

* Update family/description for Duployan

* Fix scripts with marks in base exemplars

* Script for fixing the above

* Test for marks in bases

* Tibetan needed a bit of extra help

31 files changed:
Lib/gflanguages/data/languages/as_Beng.textproto
Lib/gflanguages/data/languages/bn_Beng.textproto
Lib/gflanguages/data/languages/bo_Tibt.textproto
Lib/gflanguages/data/languages/brx_Deva.textproto
Lib/gflanguages/data/languages/doi_Deva.textproto
Lib/gflanguages/data/languages/dz_Tibt.textproto
Lib/gflanguages/data/languages/ff_Adlm.textproto
Lib/gflanguages/data/languages/hi_Deva.textproto
Lib/gflanguages/data/languages/km_Khmr.textproto
Lib/gflanguages/data/languages/kn_Knda.textproto
Lib/gflanguages/data/languages/kok_Deva.textproto
Lib/gflanguages/data/languages/lo_Laoo.textproto
Lib/gflanguages/data/languages/mai_Deva.textproto
Lib/gflanguages/data/languages/ml_Mlym.textproto
Lib/gflanguages/data/languages/mni_Beng.textproto
Lib/gflanguages/data/languages/mr_Deva.textproto
Lib/gflanguages/data/languages/my_Mymr.textproto
Lib/gflanguages/data/languages/ne_Deva.textproto
Lib/gflanguages/data/languages/or_Orya.textproto
Lib/gflanguages/data/languages/pa_Guru.textproto
Lib/gflanguages/data/languages/sa_Deva.textproto
Lib/gflanguages/data/languages/sd_Deva.textproto
Lib/gflanguages/data/languages/si_Sinh.textproto
Lib/gflanguages/data/languages/ta_Taml.textproto
Lib/gflanguages/data/languages/te_Telu.textproto
Lib/gflanguages/data/languages/th_Thai.textproto
Lib/gflanguages/data/languages/ti_Ethi.textproto
Lib/gflanguages/data/scripts/Dupl.textproto
Lib/gflanguages/data/scripts/Todr.textproto
snippets/fix-exemplars-bases.py [new file with mode: 0644]
tests/test_data_languages.py

index 0bafd88c58284b92ac5278f574cab9bf6d24d33d..6efd717752764fd07414a519721474fb2c271b6f 100644 (file)
@@ -6,9 +6,9 @@ autonym: "অসমীয়া"
 population: 17239170
 region: "IN"
 exemplar_chars {
-  base: "় à¦\85 à¦\86 à¦\87 à¦\88 à¦\89 à¦\8a à¦\8b à¦\8f à¦\90 à¦\93 à¦\94 à¦\82 à¦\81 à¦\83 à¦\95 à¦\96 à¦\97 à¦\98 à¦\99 à¦\9a à¦\9b à¦\9c à¦\9d à¦\9e à¦\9f à¦  à¦¡ {ড়} à¦¢ {ঢ়} à¦£ à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ {য়} à§° à¦² à§± à¦¶ à¦· à¦¸ à¦¹ {à¦\95à§\8dষ} à¦¾ à¦¿ à§\80 à§\81 à§\82 à§\83 à§\87 à§\88 à§\8b à§\8c à§\8d"
+  base: "à¦\85 à¦\86 à¦\87 à¦\88 à¦\89 à¦\8a à¦\8b à¦\8f à¦\90 à¦\93 à¦\94 à¦\95 à¦\96 à¦\97 à¦\98 à¦\99 à¦\9a à¦\9b à¦\9c à¦\9d à¦\9e à¦\9f à¦  à¦¡ {ড়} à¦¢ {ঢ়} à¦£ à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ {য়} à§° à¦² à§± à¦¶ à¦· à¦¸ à¦¹ {à¦\95à§\8dষ}"
   auxiliary: "‌‍ ৲ ৎ র"
-  marks: "◌ঁ ◌ং ◌ঃ ◌় ◌া ◌ি ◌ী ◌ু ◌ূ ◌ৃ ◌ৄ ◌ে ◌ৈ ◌্ ◌ৗ ◌ৢ ◌ৣ"
+  marks: "◌ঁ ◌ং ◌ঃ ◌় ◌া ◌ি ◌ী ◌ু ◌ূ ◌ৃ ◌ৄ ◌ে ◌ৈ ◌্ ◌ৗ ◌ৢ ◌ৣ ◌ো ◌ৌ"
   numerals: "- , . % + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯"
   punctuation: "- – — , ; : ! ? . … । \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
   index: "় অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ং ঃ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ৎ ত থ দ ধ ন প ফ ব ভ ম য ৰ ল ৱ শ ষ স হ ্"
index 15b609a907d360620d10bb34aebe34cfb181f6ed..01ed4172819325a109d70adbadbdc1c5043c8f30 100644 (file)
@@ -9,9 +9,9 @@ region: "GB"
 region: "IN"
 region: "NP"
 exemplar_chars {
-  base: "় à§º à¦\85 à¦\86 à¦\87 à¦\88 à¦\89 à¦\8a à¦\8b à§  à¦\8c à§¡ à¦\8f à¦\90 à¦\93 à¦\94 à¦\82 à¦\83 à¦\81 à¦\95 {à¦\95à§\8dষ} à¦\96 à¦\97 à¦\98 à¦\99 à¦\9a à¦\9b à¦\9c à¦\9d à¦\9e à¦\9f à¦  à¦¡ {ড়} à¦¢ {ঢ়} à¦£ à¦¤ à§\8e à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ {য়} à¦° à¦² à¦¶ à¦· à¦¸ à¦¹ à¦½ à¦¾ à¦¿ à§\80 à§\81 à§\82 à§\83 à§\84 à§¢ à§£ à§\87 à§\88 à§\8b à§\8c à§\8d à§\97"
+  base: "৺ à¦\85 à¦\86 à¦\87 à¦\88 à¦\89 à¦\8a à¦\8b à§  à¦\8c à§¡ à¦\8f à¦\90 à¦\93 à¦\94 à¦\95 {à¦\95à§\8dষ} à¦\96 à¦\97 à¦\98 à¦\99 à¦\9a à¦\9b à¦\9c à¦\9d à¦\9e à¦\9f à¦  à¦¡ {ড়} à¦¢ {ঢ়} à¦£ à¦¤ à§\8e à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ {য়} à¦° à¦² à¦¶ à¦· à¦¸ à¦¹ à¦½"
   auxiliary: "‌‍ ৲ ৳ ৴ ৵ ৶ ৷ ৸ ৹ ৰ ৱ"
-  marks: "◌ঁ ◌ং ◌ঃ ◌় ◌া ◌ি ◌ী ◌ু ◌ূ ◌ৃ ◌ৄ ◌ে ◌ৈ ◌্ ◌ৗ ◌ৢ ◌ৣ"
+  marks: "◌ঁ ◌ং ◌ঃ ◌় ◌া ◌ি ◌ী ◌ু ◌ূ ◌ৃ ◌ৄ ◌ে ◌ৈ ◌্ ◌ৗ ◌ৢ ◌ৣ ◌ো ◌ৌ"
   numerals: "- , . % + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
   index: "অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ক {ক্ষ} খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন প ফ ব ভ ম য র ল শ ষ স হ"
index 7efe51ea1b4795ded15cd518872284326f0c7043..c46864bd1be9e670abbc3ba9648a233f7898f7be 100644 (file)
@@ -8,9 +8,9 @@ region: "CN"
 region: "IN"
 region: "NP"
 exemplar_chars {
-  base: "ཾ à½¿ à½\80 {à½\80ྵ} à¾\90 {à¾\90ྵ} à½\81 à¾\91 à½\82 {à½\82ྷ} à¾\92 {à¾\92ྷ} à½\84 à¾\94 à½\85 à¾\95 à½\86 à¾\96 à½\87 à¾\97 à½\89 à¾\99 à½\8a à¾\9a à½\8b à¾\9b à½\8c {à½\8cྷ} à¾\9c {à¾\9cྷ} à½\8e à¾\9e à½\8f à¾\9f à½\90 à¾  à½\91 {à½\91ྷ} à¾¡ {ྡྷ} à½\93 à¾£ à½\94 à¾¤ à½\95 à¾¥ à½\96 {à½\96ྷ} à¾¦ {ྦྷ} à½\98 à¾¨ à½\99 à¾© à½\9a à¾ª à½\9b {à½\9bྷ} à¾« {ྫྷ} à½\9d à¾­ à¾º à½\9e à¾® à½\9f à¾¯ à½  à¾° à½¡ à¾± à¾» à½¢ à½ª à¾² à¾¼ à½£ à¾³ à½¤ à¾´ à½¥ à¾µ à½¦ à¾¶ à½§ à¾· à½¨ à¾¸ à½² {ཱི} à¾\80 {ཱà¾\80} à½´ {ཱུ} {ྲà¾\80} à½· {ླà¾\80} à½¹ à½º à½» à½¼ à½½ à¾\84"
+  base: "à½\80 {à½\80ྵ} à½\81 à½\82 {à½\82ྷ} à½\84 à½\85 à½\86 à½\87 à½\89 à½\8a à½\8b à½\8c {à½\8cྷ} à½\8e à½\8f à½\90 à½\91 {à½\91ྷ} à½\93 à½\94 à½\95 à½\96 {à½\96ྷ} à½\98 à½\99 à½\9a à½\9b {à½\9bྷ} à½\9d à½\9e à½\9f à½  à½¡ à½¢ à½ª à½£ à½¤ à½¥ à½¦ à½§ à½¨ "
   auxiliary: "ༀ"
-  marks: "◌ི ◌ུ ◌ེ ◌ོ"
+  marks: "◌ི ◌ུ ◌ེ ◌ོ ◌ཾ ◌ཿ ◌ྐ ◌ྑ ◌ྒ ◌ྔ ◌ྕ ◌ྖ ◌ྗ ◌ྙ ◌ྚ ◌ྛ ◌ྜ ◌ྞ ◌ྟ ◌ྠ ◌ྡ ◌ྣ ◌ྤ ◌ྥ ◌ྦ ◌ྨ ◌ྩ ◌ྪ ◌ྫ ◌ྭ ◌ྺ ◌ྮ ◌ྯ ◌ྰ ◌ྱ ◌ྻ ◌ྲ ◌ྼ ◌ླ ◌ྴ ◌ྵ ◌ྶ ◌ྷ ◌ྸ ◌ྀ ◌ཷ ◌ཹ ◌ཻ ◌ཽ ◌྄ {ྐྵ} {ྒྷ} {ྜྷ} {ྡྷ} {ྦྷ} {ྫྷ} {ཱི} {ཱྀ} {ཱུ} {ྲྀ} {ླྀ}"
   numerals: "- , . % + 0༠ 1༡ 2༢ 3༣ 4༤ 5༥ 6༦ 7༧ 8༨ 9༩"
   punctuation: ": ་ །"
   index: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ"
index 6e9b439598bb5cc7d6ffc05dc7095890601f360c..e8c8124d357f67d83f5b663e39c7d11c70e8125f 100644 (file)
@@ -6,9 +6,9 @@ autonym: "बरʼ"
 population: 1856526
 region: "IN"
 exemplar_chars {
-  base: "़ à¤\81 à¤\82 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ {ड़} à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\85 à¥\87 à¥\88 à¥\89 à¥\8b à¥\8c à¥\8d"
+  base: "à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ {ड़} à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹"
   auxiliary: "‌‍"
-  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌्"
+  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌् ◌ॅ ◌ॉ"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
   punctuation: "। ॥ ॰"
   index: "अ आ इ ई उ ऊ ऍ ए ऐ ऑ ओ औ क ख ग घ च छ ज झ ञ ट ठ ड {ड़} ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह"
index a8b825af332bc725f435b0a8018c476b287ad34e..3fc00966edab54cbef59ddc8e273b535201844d7 100644 (file)
@@ -6,8 +6,9 @@ autonym: "𑠖𑠵𑠌𑠤𑠮"
 population: 2652180
 region: "IN"
 exemplar_chars {
-  base: "à¥\91 à¥\92 à¤¼ à¤\81 à¤\82 à¤\83 à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¥  à¤\8c à¥¡ à¤\8f à¤\90 à¤\93 à¤\94 à¤\95 {à¤\95à¥\8dष} à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ {ड़} à¤¢ {ढ़} à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥¢ à¥£ à¥\87 à¥\88 à¥\8b à¥\8c à¥\8d"
+  base: "à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¥  à¤\8c à¥¡ à¤\8f à¤\90 à¤\93 à¤\94 à¤\95 {à¤\95à¥\8dष} à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ {ड़} à¤¢ {ढ़} à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½"
   auxiliary: "‌‍ ऍ ऑ ॅ"
+  marks: "◌॑ ◌॒ ◌़ ◌ँ ◌ं ◌ः ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌ॄ ◌ॢ ◌ॣ ◌े ◌ै ◌ो ◌ौ ◌्"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
   punctuation: "_ – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) @ * / & #"
   index: "अ आ इ ई उ ऊ ऋ ॠ ऌ ॡ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह"
index 15d5fa051962168e9f1bc650c72c13b952dad697..c2448d6618f57651e31a896c721086c88ca33b40 100644 (file)
@@ -7,9 +7,9 @@ population: 370341
 region: "BT"
 region: "IN"
 exemplar_chars {
-  base: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ ི ུ ེ ོ ྐ ྑ ྒ ྔ ྗ ྙ ྟ ྠ ྡ ྣ ྤ ྥ ྦ ྨ ྩ ྪ ྫ ྭ ྱ ྲ ླ ྵ ྶ ྷ"
+  base: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ"
   auxiliary: "྄ ཊ ཋ ཌ ཎ ཾ ཥ ྀ ཻ ཽ ྚ ྛ ྜ ྞ ྺ ྻ ྼ"
-  marks: "◌ི ◌ུ ◌ེ ◌ོ ◌ྵ"
+  marks: "◌ི ◌ུ ◌ེ ◌ོ ◌ྵ ◌ྐ ◌ྑ ◌ྒ ◌ྔ ◌ྗ ◌ྙ ◌ྟ ◌ྠ ◌ྡ ◌ྣ ◌ྤ ◌ྥ ◌ྦ ◌ྨ ◌ྩ ◌ྪ ◌ྫ ◌ྭ ◌ྱ ◌ྲ ◌ླ ◌ྶ ◌ྷ"
   numerals: "- , . % + 0༠ 1༡ 2༢ 3༣ 4༤ 5༥ 6༦ 7༧ 8༨ 9༩"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] ༼ ༽ @ * / & # ༄ ༅ ༆ ༈ ༉ ༊ ࿐ ࿑ ༒ ࿒ ࿓ ࿔ ༶ ྾ ྿ ༌ ། ༎ ༏ ༐ ༑ ༔ ༴"
   index: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ"
index 188d95f79dcbd9711d475e92bad9cea1e5c4cdf1..f482d463159d95720591e5a7ac83977acf412e4c 100644 (file)
@@ -16,7 +16,8 @@ region: "NG"
 region: "SL"
 region: "SN"
 exemplar_chars {
-  base: "𞥄𞥅𞥆 𞤢 𞤣 𞤤 𞤥 𞤦 𞤧 𞤨 𞤩 𞤪 𞤫 𞤬 𞤭 𞤮 𞤯 𞤰 𞤱 𞤲 𞤳 𞤴 𞤵 𞤶 𞤷 𞤸 𞤹 𞤺 𞤻 𞤼 𞤽 𞥋"
+  base: "𞤢 𞤣 𞤤 𞤥 𞤦 𞤧 𞤨 𞤩 𞤪 𞤫 𞤬 𞤭 𞤮 𞤯 𞤰 𞤱 𞤲 𞤳 𞤴 𞤵 𞤶 𞤷 𞤸 𞤹 𞤺 𞤻 𞤼 𞤽"
+  marks: "𞥄 𞥅 𞥆 𞥋"
   auxiliary: "𞤾 𞤿 𞥀 𞥁 𞥂 𞥃"
   numerals: "𞥐 𞥑 𞥒 𞥓 𞥔 𞥕 𞥖 𞥗 𞥘 𞥙"
   punctuation: "- 𞥞 𞥟 . % "
index fb5c6e6c30c90951a09de0b59f9f6b3fc3bee821..af9bd7cae871049fee1b8a6b3e79ea51cf665aa0 100644 (file)
@@ -10,9 +10,9 @@ region: "NP"
 region: "UG"
 region: "ZA"
 exemplar_chars {
-  base: "़ à¥\90 à¤\82 à¤\81 à¤\83 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥\85 à¥\87 à¥\88 à¥\89 à¥\8b à¥\8c à¥\8d"
+  base: "à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½"
   auxiliary: "‌‍"
-  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌्"
+  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌् ◌ॄ ◌ॅ ◌ॉ"
   numerals: "- , . % + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९"
   punctuation: "- , ; : ! ? . ‘ ’ “ ” ( ) [ ] { } ॰"
   index: "अ आ इ ई उ ऊ ऋ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह"
index 286f9f9a33cb2e9299eaff604c3722e59f027a69..c4ec49e95532ce957c9455b39e8810ad299ca429 100644 (file)
@@ -6,7 +6,7 @@ autonym: "ភាសាខ្មែរ"
 population: 15065030
 region: "KH"
 exemplar_chars {
-  base: "á\9f\90 á\9f\88 á\9f\8b á\9f\89 á\9f\8a á\9f\8d á\9e\80 á\9e\81 á\9e\82 á\9e\83 á\9e\84 á\9e\85 á\9e\86 á\9e\87 á\9e\88 á\9e\89 á\9e\8a á\9e\8b á\9e\8c á\9e\8d á\9e\8e á\9e\8f á\9e\90 á\9e\91 á\9e\92 á\9e\93 á\9e\94 á\9e\95 á\9e\96 á\9e\97 á\9e\98 á\9e\99 á\9e\9a á\9e« á\9e¬ á\9e\9b á\9e­ á\9e® á\9e\9c á\9e\9f á\9e  á\9e¡ á\9e¢ {á\9e¢á\9e¶} á\9e¥ á\9e¦ á\9e§ {á\9e§á\9e\80} á\9e© á\9eª á\9e¯ á\9e° á\9e± á\9e² á\9e³ á\9e¶ á\9e· á\9e¸ á\9e¹ á\9eº á\9e» á\9e¼ á\9e½ á\9e¾ á\9e¿ á\9f\80 á\9f\81 á\9f\82 á\9f\83 á\9f\84 á\9f\85 á\9f\86 á\9f\87 á\9f\92"
+  base: "á\9e\80 á\9e\81 á\9e\82 á\9e\83 á\9e\84 á\9e\85 á\9e\86 á\9e\87 á\9e\88 á\9e\89 á\9e\8a á\9e\8b á\9e\8c á\9e\8d á\9e\8e á\9e\8f á\9e\90 á\9e\91 á\9e\92 á\9e\93 á\9e\94 á\9e\95 á\9e\96 á\9e\97 á\9e\98 á\9e\99 á\9e\9a á\9e« á\9e¬ á\9e\9b á\9e­ á\9e® á\9e\9c á\9e\9f á\9e  á\9e¡ á\9e¢ {á\9e¢á\9e¶} á\9e¥ á\9e¦ á\9e§ {á\9e§á\9e\80} á\9e© á\9eª á\9e¯ á\9e° á\9e± á\9e² á\9e³"
   auxiliary: "឴឵​ ៌ ៎ ៏ ៑ ឝ ឞ"
   marks: "◌឴ ◌឵ ◌ា ◌ិ ◌ី ◌ឹ ◌ឺ ◌ុ ◌ូ ◌ួ ◌ើ ◌ឿ ◌ៀ ◌េ ◌ែ ◌ៃ ◌ោ ◌ៅ ◌ំ ◌ះ ◌ៈ ◌៉ ◌៊ ◌់ ◌៍ ◌័ ◌្"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
index ddf13ffd2fe6f2e131b9e8eb344a8bf19c404969..17d738208efb448ace51ea85022d23cbec0ba4c9 100644 (file)
@@ -6,9 +6,9 @@ autonym: "ಕನ್ನಡ"
 population: 49065330
 region: "IN"
 exemplar_chars {
-  base: "಼ à³¦ à³§ à³¨ à³© à³ª à³« à³¬ à³­ à³® à³¯ à²\85 à²\86 à²\87 à²\88 à²\89 à²\8a à²\8b à³  à²\8c à³¡ à²\8e à²\8f à²\90 à²\92 à²\93 à²\94 à²\82 à²\83 à²\95 à²\96 à²\97 à²\98 à²\99 à²\9a à²\9b à²\9c à²\9d à²\9e à²\9f à²  à²¡ à²¢ à²£ à²¤ à²¥ à²¦ à²§ à²¨ à²ª à²« à²¬ à²­ à²® à²¯ à²° à²± à²² à²µ à²¶ à²· à²¸ à²¹ à²³ à²½ à²¾ à²¿ à³\80 à³\81 à³\82 à³\83 à³\84 à³\86 à³\87 à³\88 à³\8a à³\8b à³\8c à³\8d à³\95 à³\96"
+  base: "೦ à³§ à³¨ à³© à³ª à³« à³¬ à³­ à³® à³¯ à²\85 à²\86 à²\87 à²\88 à²\89 à²\8a à²\8b à³  à²\8c à³¡ à²\8e à²\8f à²\90 à²\92 à²\93 à²\94 à²\95 à²\96 à²\97 à²\98 à²\99 à²\9a à²\9b à²\9c à²\9d à²\9e à²\9f à²  à²¡ à²¢ à²£ à²¤ à²¥ à²¦ à²§ à²¨ à²ª à²« à²¬ à²­ à²® à²¯ à²° à²± à²² à²µ à²¶ à²· à²¸ à²¹ à²³ à²½"
   auxiliary: "‌‍ ೞ"
-  marks: "◌ಂ ◌ಃ ◌ಾ ◌ಿ ◌ು ◌ೂ ◌ೃ ◌ೄ ◌ೆ ◌ೌ ◌್ ◌ೕ ◌ೖ"
+  marks: "◌ಂ ◌ಃ ◌ಾ ◌ಿ ◌ು ◌ೂ ◌ೃ ◌ೄ ◌ೆ ◌ೌ ◌್ ◌ೕ ◌ೖ ◌಼ ◌ೀ ◌ೇ ◌ೈ ◌ೊ ◌ೋ"
   numerals: "- , . % + 0೦ 1೧ 2೨ 3೩ 4೪ 5೫ 6೬ 7೭ 8೮ 9೯"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
   index: "ಅ ಆ ಇ ಈ ಉ ಊ ಋ ೠ ಌ ೡ ಎ ಏ ಐ ಒ ಓ ಔ ಕ ಖ ಗ ಘ ಙ ಚ ಛ ಜ ಝ ಞ ಟ ಠ ಡ ಢ ಣ ತ ಥ ದ ಧ ನ ಪ ಫ ಬ ಭ ಮ ಯ ರ ಱ ಲ ವ ಶ ಷ ಸ ಹ ಳ ೞ"
index d8d5862ad87102a8b10c84c74da3e988dcf6d72d..cb3c63bdfc16d903103d8297f6ab8d562435f96b 100644 (file)
@@ -5,8 +5,9 @@ name: "Konkani"
 population: 4906533
 region: "IN"
 exemplar_chars {
-  base: "़ à¥¦ à¥§ à¥¨ à¥© à¥ª à¥« à¥¬ à¥­ à¥® à¥¯ à¥\90 à¤\82 à¤\81 à¤\83 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 {à¤\95़} à¤\96 {à¤\96़} à¤\97 {à¤\97़} à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c {à¤\9c़} à¤\9d à¤\9e à¤\9f à¤  à¤¡ {ड़} à¤¢ {ढ़} à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« {फ़} à¤¬ à¤­ à¤® à¤¯ {य़} à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥\85 à¥\87 à¥\88 à¥\89 à¥\8b à¥\8c à¥\8d"
+  base: "० à¥§ à¥¨ à¥© à¥ª à¥« à¥¬ à¥­ à¥® à¥¯ à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 {à¤\95़} à¤\96 {à¤\96़} à¤\97 {à¤\97़} à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c {à¤\9c़} à¤\9d à¤\9e à¤\9f à¤  à¤¡ {ड़} à¤¢ {ढ़} à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« {फ़} à¤¬ à¤­ à¤® à¤¯ {य़} à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½"
   auxiliary: "‌‍"
+  marks: "◌़ ◌ं ◌ँ ◌ः ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌ॄ ◌ॅ ◌े ◌ै ◌ॉ ◌ो ◌ौ ◌्"
   numerals: "- , . % + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
   index: "अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ"
index 7a89007c4d0aca1633b6d53e471074c22aa3cae3..ca4d057f02df8968a87da42fd11c65e4bd0df92e 100644 (file)
@@ -6,7 +6,7 @@ autonym: "ພາສາລາວ"
 population: 5138706
 region: "LA"
 exemplar_chars {
-  base: "à»\88 à»\89 à»\8a à»\8b à»\8c à»\8d à»\86 àº\81 àº\82 àº\84 àº\87 àº\88 àºª àº\8a àº\8d àº\94 àº\95 àº\96 àº\97 àº\99 àº\9a àº\9b àº\9c àº\9d àº\9e àº\9f àº¡ àº¢ àº£ àº¥ àº§ àº« à»\9c à»\9d àº­ àº® àº¯ àº° àº± àº² àº³ àº´ àºµ àº¶ àº· àº¸ àº¹ àº» àº¼ ຽ ເ ແ ໂ ໃ ໄ"
+  base: "à»\86 àº\81 àº\82 àº\84 àº\87 àº\88 àºª àº\8a àº\8d àº\94 àº\95 àº\96 àº\97 àº\99 àº\9a àº\9b àº\9c àº\9d àº\9e àº\9f àº¡ àº¢ àº£ àº¥ àº§ àº« à»\9c à»\9d àº­ àº® àº¯ àº° àº² àº³ ຽ ເ ແ ໂ ໃ ໄ"
   auxiliary: "​ ໐ ໑ ໒ ໓ ໔ ໕ ໖ ໗ ໘ ໙"
   marks: "◌ັ ◌ິ ◌ີ ◌ຶ ◌ື ◌ຸ ◌ູ ◌ົ ◌ຼ ◌່ ◌້ ◌໊ ◌໋ ◌໌ ◌ໍ"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
index c46274c1b4bb7b3baec8ea02b9c1a9d0a24fa034..a92af4a9c666922ab38370394d349030cca5af28 100644 (file)
@@ -7,7 +7,7 @@ population: 19249149
 region: "IN"
 region: "NP"
 exemplar_chars {
-  base: "़ à¤\82 à¤\83 à¤\95 {à¤\95à¥\8dष} à¤\96 à¤\97 à¤\98 à¤\9a à¤\9b à¤\9c {à¤\9cà¥\8dà¤\9e} à¤\9d à¤\9e à¤\9f à¤  à¤¡ {डà¤\82} à¤¢ à¤£ à¤¤ {तà¥\8dर} à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ {शà¥\8dर} à¤· à¤¸ à¤¹ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\87 à¥\88 à¥\8b à¥\8c"
+  base: "à¤\95 {à¤\95à¥\8dष} à¤\96 à¤\97 à¤\98 à¤\9a à¤\9b à¤\9c {à¤\9cà¥\8dà¤\9e} à¤\9d à¤\9e à¤\9f à¤  à¤¡ {डà¤\82} à¤¢ à¤£ à¤¤ {तà¥\8dर} à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ {शà¥\8dर} à¤· à¤¸ à¤¹"
   auxiliary: "अ {अं} {अः} आ इ ई उ ऊ ऋ ऌ ॡ ए ऐ ओ औ"
   marks: "◌ँ ◌ं ◌ः ◌ऺ ◌ऻ ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌ॆ ◌े ◌ै ◌ॊ ◌ो ◌ौ ◌् ◌ॏ"
   numerals: "० १ २ ३ ४ ५ ६ ७ ८ ९ 0 1 2 3 4 5 6 7 8 9"
index 6b7e35675ec23130238306d1784bfe4b2e981369..2cca78678a0b0b91bbf70dae3c46a752cecc4458 100644 (file)
@@ -13,7 +13,7 @@ region: "MY"
 region: "QA"
 region: "SG"
 exemplar_chars {
-  base: "‌‍ ഃ അ ആ ഇ ഈ ഉ ഊ ഋ ൠ ഌ ൡ എ ഏ ഐ ഒ ഓ ഔ ക ൿ ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ൺ ത ഥ ദ ധ ന ൻ പ ഫ ബ ഭ മ ം യ ര ർ ല ൽ വ ശ ഷ സ ഹ ള ൾ ഴ റ ാ ി ീ ു ൂ ൃ െ േ ൈ ൊ ോ ൌ ൗ ്"
+  base: "‌‍ ഃ അ ആ ഇ ഈ ഉ ഊ ഋ ൠ ഌ ൡ എ ഏ ഐ ഒ ഓ ഔ ക ൿ ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ൺ ത ഥ ദ ധ ന ൻ പ ഫ ബ ഭ മ ം യ ര ർ ല ൽ വ ശ ഷ സ ഹ ള ൾ ഴ റ"
   auxiliary: ""
   marks: "◌ം ◌ഃ ◌ാ ◌ി ◌ീ ◌ു ◌ൂ ◌ൃ ◌െ ◌േ ◌ൈ ◌് ◌ൗ"
   numerals: "- , . % + 0൦ 1൧ 2൨ 3൩ 4൪ 5൫ 6൬ 7൭ 8൮ 9൯"
index 4bb9b2926454df35c7c91f657bf809bd9d566f9e..98861a91a1a130988e2fe52755e69074a9add6de 100644 (file)
@@ -7,9 +7,9 @@ population: 1476590
 region: "BD"
 region: "IN"
 exemplar_chars {
-  base: "় à¦\81 à¦\82 à¦\83 à¦\85 à¦\86 à¦\87 à¦\88 à¦\89 à¦\8a à¦\8b à¦\8f à¦\90 à¦\93 à¦\94 à¦\95 à¦\96 à¦\97 à¦\98 à¦\99 à¦\9a à¦\9b à¦\9c à¦\9d à¦\9e à¦\9f à¦  à¦¡ {ড়} à¦¢ {ঢ়} à¦£ à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ {য়} à¦° à¦² à§± à¦¶ à¦· à¦¸ à¦¹ à¦¾ à¦¿ à§\80 à§\81 à§\82 à§\83 à§\87 à§\88 à§\8b à§\8c à§\8d"
+  base: "à¦\85 à¦\86 à¦\87 à¦\88 à¦\89 à¦\8a à¦\8b à¦\8f à¦\90 à¦\93 à¦\94 à¦\95 à¦\96 à¦\97 à¦\98 à¦\99 à¦\9a à¦\9b à¦\9c à¦\9d à¦\9e à¦\9f à¦  à¦¡ {ড়} à¦¢ {ঢ়} à¦£ à¦¤ à¦¥ à¦¦ à¦§ à¦¨ à¦ª à¦« à¦¬ à¦­ à¦® à¦¯ {য়} à¦° à¦² à§± à¦¶ à¦· à¦¸ à¦¹"
   auxiliary: "‌‍"
-  marks: "◌ঁ ◌ং ◌ঃ ◌় ◌া ◌ি ◌ু ◌ে ◌ৈ ◌্ ◌ৗ"
+  marks: "◌ঁ ◌ং ◌ঃ ◌় ◌া ◌ি ◌ু ◌ে ◌ৈ ◌্ ◌ৗ ◌ী ◌ূ ◌ৃ ◌ো ◌ৌ"
   numerals: "- , . % + 0০ 1১ 2২ 3৩ 4৪ 5৫ 6৬ 7৭ 8৮ 9৯"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
 }
index 6d1401f8297caaeea88f79be15d7da9356b5e83c..9c9423cfccbcb709833105afe32f78d0f615f53b 100644 (file)
@@ -6,9 +6,9 @@ autonym: "मराठी"
 population: 92826300
 region: "IN"
 exemplar_chars {
-  base: "़ à¥\90 à¤\82 à¤\81 à¤\83 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤± à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥\85 à¥\87 à¥\88 à¥\89 à¥\8b à¥\8c à¥\8d"
+  base: "à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤± à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤³ à¤½"
   auxiliary: "‌‍"
-  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌्"
+  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌् ◌ॄ ◌ॅ ◌ॉ"
   numerals: "- , . % + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
   index: "‍ ॐ ं ः अ आ इ ई उ ऊ ऋ ऌ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ॅ ्"
index f142839ef0c5da4813242f7ded3091d92644fa4e..ff75fa35fec38851721d9b0cb15fe8612faa84ca 100644 (file)
@@ -7,7 +7,8 @@ population: 36559231
 region: "BD"
 region: "MM"
 exemplar_chars {
-  base: "က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ ဣ ၏ ဤ ဥ ဦ ဧ ဩ ဪ ာ ါ ိ ီ ု ူ ေ ဲ ံ ဿ ျ ြ ွ ှ ္ ် ့ း"
+  base: "က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ ဣ ၏ ဤ ဥ ဦ ဧ ဩ ဪ ာ ါ  ေ ဿ"
+  marks: "'◌ိ ◌ီ ◌ု ◌ူ ◌ဲ ◌ံ ◌ွ  ေ ဲ ံ ျ ြ ွ ှ ္ ် ့ း"
   auxiliary: "၀႐ ၁႑ ၂႒ ၃႓ ၄႔ ၅႕ ၆႖ ၇႗ ၈႘ ၉႙ ၵ ၚ ၽ ၾ ၐ ၑ ၥ ဨ ဢ ၒ ၓ ၔ ၕ ဳ ၖ ၗ ၘ ၙ ဴ ၢ ႆ ၤ ႈ ႊ ႏ"
   numerals: "- , . % + 0၀ 1၁ 2၂ 3၃ 4၄ 5၅ 6၆ 7၇ 8၈ 9၉"
   punctuation: "၊ ။ ‘ ’ “ ”"
index c5a655dcc3e7c786b72f0af0865126c402f8da58..bc30c6f05aba8b24096051a8d40e6c7a7ae045a6 100644 (file)
@@ -8,9 +8,9 @@ region: "BT"
 region: "IN"
 region: "NP"
 exemplar_chars {
-  base: "़ à¤\81 à¤\82 à¤\83 à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥\85 à¥\87 à¥\88 à¥\89 à¥\8b à¥\8c à¥\8d"
+  base: "à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¤\8c à¤\8d à¤\8f à¤\90 à¤\91 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½"
   auxiliary: "‌‍"
-  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌्"
+  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌् ◌ॄ ◌ॅ ◌ॉ"
   numerals: "- , . % + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९"
   punctuation: "- — , ; ! ? । \' ‘ ’ \" “ ” ( ) [ ] { }"
   index: "अ आ इ ई उ ऊ ऋ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह"
index 2d7d7e2d8b01e275383acc7aca62b52b6a80a0dd..cf5ebeee90679d40a88df40b3b3b6d410409126e 100644 (file)
@@ -6,8 +6,9 @@ autonym: "ଓଡ଼ିଆ"
 population: 42434880
 region: "IN"
 exemplar_chars {
-  base: "଼ à¬\85 à¬\86 à¬\87 à¬\88 à¬\89 à¬\8a à¬\8b à¬\8f à¬\90 à¬\93 à¬\94 à¬\81 à¬\82 à¬\83 à¬\95 à¬\96 à¬\97 à¬\98 à¬\99 à¬\9a à¬\9b à¬\9c à¬\9d à¬\9e à¬\9f à¬  à¬¡ {ଡ଼} à¬¢ {ଢ଼} à¬£ à¬¤ à¬¥ à¬¦ à¬§ à¬¨ à¬ª à¬« à¬¬ à¬­ à¬® à¬¯ à­\9f à¬° à¬² à¬³ à¬µ à­± à¬¶ à¬· à¬¸ à¬¹ à¬¾ à¬¿ à­\80 à­\81 à­\82 à­\83 à­\87 à­\88 à­\8b à­\8c à­\8d"
+  base: "à¬\85 à¬\86 à¬\87 à¬\88 à¬\89 à¬\8a à¬\8b à¬\8f à¬\90 à¬\93 à¬\94 à¬\95 à¬\96 à¬\97 à¬\98 à¬\99 à¬\9a à¬\9b à¬\9c à¬\9d à¬\9e à¬\9f à¬  à¬¡ {ଡ଼} à¬¢ {ଢ଼} à¬£ à¬¤ à¬¥ à¬¦ à¬§ à¬¨ à¬ª à¬« à¬¬ à¬­ à¬® à¬¯ à­\9f à¬° à¬² à¬³ à¬µ à­± à¬¶ à¬· à¬¸ à¬¹"
   auxiliary: "‌‍"
+  marks: "◌଼ ◌ଁ ◌ଂ ◌ଃ ◌ା ◌ି ◌ୀ ◌ୁ ◌ୂ ◌ୃ ◌େ ◌ୈ ◌ୋ ◌ୌ ◌୍"
   numerals: "- , . % + 0୦ 1୧ 2୨ 3୩ 4୪ 5୫ 6୬ 7୭ 8୮ 9୯"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
   index: "ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଏ ଐ ଓ ଔ କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ ଢ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ ର ଲ ଳ ଶ ଷ ସ ହ {କ୍ଷ}"
index 234716d05c6599403dbc4e429b247315c159817b..d59c44d4cad1b549af740633f01b97f84e916996 100644 (file)
@@ -9,9 +9,9 @@ region: "IN"
 region: "KE"
 region: "SG"
 exemplar_chars {
-  base: "ੱ à©° à¨¼ à©¦ à©§ à©¨ à©© à©ª à©« à©¬ à©­ à©® à©¯ à©´ à©³ à¨\89 à¨\8a à¨\93 à¨\85 à¨\86 à¨\90 à¨\94 à©² à¨\87 à¨\88 à¨\8f à¨¸ {ਸ਼} à¨¹ à¨\95 à¨\96 {à¨\96਼} à¨\97 {à¨\97਼} à¨\98 à¨\99 à¨\9a à¨\9b à¨\9c {à¨\9c਼} à¨\9d à¨\9e à¨\9f à¨  à¨¡ à¨¢ à¨£ à¨¤ à¨¥ à¨¦ à¨§ à¨¨ à¨ª à¨« {ਫ਼} à¨¬ à¨­ à¨® à¨¯ à¨° à¨² à¨µ à©\9c à©\8d à¨¾ à¨¿ à©\80 à©\81 à©\82 à©\87 à©\88 à©\8b à©\8c"
+  base: "੦ à©§ à©¨ à©© à©ª à©« à©¬ à©­ à©® à©¯ à©´ à©³ à¨\89 à¨\8a à¨\93 à¨\85 à¨\86 à¨\90 à¨\94 à©² à¨\87 à¨\88 à¨\8f à¨¸ {ਸ਼} à¨¹ à¨\95 à¨\96 {à¨\96਼} à¨\97 {à¨\97਼} à¨\98 à¨\99 à¨\9a à¨\9b à¨\9c {à¨\9c਼} à¨\9d à¨\9e à¨\9f à¨  à¨¡ à¨¢ à¨£ à¨¤ à¨¥ à¨¦ à¨§ à¨¨ à¨ª à¨« {ਫ਼} à¨¬ à¨­ à¨® à¨¯ à¨° à¨² à¨µ à©\9c"
   auxiliary: "‌‍ ਃ ਂ ਁ {ਲ਼}"
-  marks: "◌਼ ◌ਾ ◌ਿ ◌ੀ ◌ੁ ◌ੂ ◌ੇ ◌ੈ ◌ੋ ◌ੌ"
+  marks: "◌਼ ◌ਾ ◌ਿ ◌ੀ ◌ੁ ◌ੂ ◌ੇ ◌ੈ ◌ੋ ◌ੌ ੱ ੰ ਼  ੍ ਾ ਿ ੀ ੁ ੂ ੇ ੈ ੋ ੌ"
   numerals: "- , . % + 0੦ 1੧ 2੨ 3੩ 4੪ 5੫ 6੬ 7੭ 8੮ 9੯"
   punctuation: "- – — , ; : ! ? . \' ‘ ’ \" “ ” ( ) [ ] / &"
   index: "ੳ ਅ ੲ ਸ ਹ ਕ ਖ ਗ ਘ ਙ ਚ ਛ ਜ ਝ ਞ ਟ ਠ ਡ ਢ ਣ ਤ ਥ ਦ ਧ ਨ ਪ ਫ ਬ ਭ ਮ ਯ ਰ ਲ ਵ ੜ"
index e95875cdc5a2f901665b6b491ff24745a9cf2890..9b7309fad2989ef610a738e6f75e02847d1ae6de 100644 (file)
@@ -6,9 +6,9 @@ autonym: "संस्कृतम्"
 population: 15913
 region: "IN"
 exemplar_chars {
-  base: "à¥\91 à¥\92 à¤¼ à¤\81 à¤\82 à¤\83 à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¥  à¤\8c à¥¡ à¤\8f à¤\90 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥¢ à¥£ à¥\87 à¥\88 à¥\8b à¥\8c à¥\8d"
+  base: "à¥\90 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8b à¥  à¤\8c à¥¡ à¤\8f à¤\90 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¤­ à¤® à¤¯ à¤° à¤² à¤³ à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤½"
   auxiliary: "‌‍ ऍ ऑ ॅ ॉ"
-  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌्"
+  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌् ◌॑ ◌॒ ◌ॄ ◌ॢ ◌ॣ"
   numerals: "- , . % + 0० 1१ 2२ 3३ 4४ 5५ 6६ 7७ 8८ 9९"
   punctuation: "_ - – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] { } @ * / \\ & #` + | ~"
   index: "अ आ इ ई उ ऊ ऋ ॠ ऌ ॡ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह"
index 619932d82c531deaa4a9ce38de33a946020ea88a..6accca24f626122c6b8a0e10bcc3627452efe047 100644 (file)
@@ -6,9 +6,9 @@ autonym: "सिन्धी"
 population: 344783
 region: "IN"
 exemplar_chars {
-  base: "़ à¤\82 à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8f à¤\90 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¥» à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¥¼ à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¥¾ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¥¿ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹ à¤¾ à¤¿ à¥\80 à¥\81 à¥\82 à¥\83 à¥\84 à¥\85 à¥\87 à¥\88 à¥\89 à¥\8b à¥\8c à¥\8d"
+  base: "à¤\85 à¤\86 à¤\87 à¤\88 à¤\89 à¤\8a à¤\8f à¤\90 à¤\93 à¤\94 à¤\95 à¤\96 à¤\97 à¥» à¤\98 à¤\99 à¤\9a à¤\9b à¤\9c à¥¼ à¤\9d à¤\9e à¤\9f à¤  à¤¡ à¥¾ à¤¢ à¤£ à¤¤ à¤¥ à¤¦ à¤§ à¤¨ à¤ª à¤« à¤¬ à¥¿ à¤­ à¤® à¤¯ à¤° à¤² à¤µ à¤¶ à¤· à¤¸ à¤¹"
   auxiliary: "‌‍"
-  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌्"
+  marks: "◌ँ ◌ं ◌ः ◌़ ◌ा ◌ि ◌ी ◌ु ◌ू ◌ृ ◌े ◌ै ◌ो ◌ौ ◌् ◌ॄ ◌ॅ ◌ॉ"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
 }
index b9019069f310fc9bbc8ebbbc5a01cd6a86a53c04..9cc0295ee36e826cae14559e258b3c05864a261d 100644 (file)
@@ -6,7 +6,8 @@ autonym: "සිංහල"
 population: 15564656
 region: "LK"
 exemplar_chars {
-  base: "අ ආ ඇ ඈ ඉ ඊ උ ඌ ඍ එ ඒ ඓ ඔ ඕ ඖ ං ඃ ක ඛ ග ඝ ඞ ඟ ච ඡ ජ ඣ ඥ ඤ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල ව ශ ෂ ස හ ළ ෆ ා ැ ෑ ි ී ු ූ ෘ ෲ ෟ ෙ ේ ෛ ො ෝ ෞ ්"
+  base: "අ ආ ඇ ඈ ඉ ඊ උ ඌ ඍ එ ඒ ඓ ඔ ඕ ඖ ං ඃ ක ඛ ග ඝ ඞ ඟ ච ඡ ජ ඣ ඥ ඤ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල ව ශ ෂ ස හ ළ ෆ"
+  marks: " ා ැ ෑ ි ී ු ූ ෘ ෲ ෟ ෙ ේ ෛ ො ෝ ෞ ්"
   auxiliary: "​‌‍ ඎ ඏ ඐ ඦ ෳ"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
   punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
index a64d44b96a45415139493247aff482f1e1856f19..a12cce18cbb03855f8857be78fee08839cb2914b 100644 (file)
@@ -11,7 +11,7 @@ region: "MY"
 region: "RE"
 region: "SG"
 exemplar_chars {
-  base: "அ ஆ இ ஈ உ ஊ எ ஏ ஐ ஒ ஓ ஔ ஃ க ங ச ஞ ட ண த ந ப ம ய ர ல வ ழ ள ற ன ஜ ஷ ஸ ஹ ா ி ீ ு ூ ெ ே ை ொ ோ ௌ ்"
+  base: "அ ஆ இ ஈ உ ஊ எ ஏ ஐ ஒ ஓ ஔ ஃ க ங ச ஞ ட ண த ந ப ம ய ர ல வ ழ ள ற ன ஜ ஷ ஸ ஹ ா ி  ு ூ ெ ே ை ொ ோ ௌ "
   auxiliary: "‌‍"
   marks: "◌ா ◌ி ◌ீ ◌ு ◌ூ ◌ெ ◌ே ◌ை ◌் ◌ௗ"
   numerals: "- , . % + 0௦ 1௧ 2௨ 3௩ 4௪ 5௫ 6௬ 7௭ 8௮ 9௯"
index e1e401f023d4971559f1f964f15591232be073d1..cd1575da19ca817588c9324a10ef87fd3cedb039 100644 (file)
@@ -6,9 +6,9 @@ autonym: "తెలుగు"
 population: 95478480
 region: "IN"
 exemplar_chars {
-  base: "à°\85 à°\86 à°\87 à°\88 à°\89 à°\8a à°\8b à±  à°\8c à±¡ à°\8e à°\8f à°\90 à°\92 à°\93 à°\94 à°\81 à°\82 à°\83 à°\95 à°\96 à°\97 à°\98 à°\99 à°\9a à°\9b à°\9c à°\9d à°\9e à°\9f à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³ à°¾ à°¿ à±\80 à±\81 à±\82 à±\83 à±\84 à±\86 à±\87 à±\88 à±\8a à±\8b à±\8c à±\8d à±\95 à±\96"
+  base: "à°\85 à°\86 à°\87 à°\88 à°\89 à°\8a à°\8b à±  à°\8c à±¡ à°\8e à°\8f à°\90 à°\92 à°\93 à°\94 à°\95 à°\96 à°\97 à°\98 à°\99 à°\9a à°\9b à°\9c à°\9d à°\9e à°\9f à°  à°¡ à°¢ à°£ à°¤ à°¥ à°¦ à°§ à°¨ à°ª à°« à°¬ à°­ à°® à°¯ à°° à°± à°² à°µ à°¶ à°· à°¸ à°¹ à°³"
   auxiliary: "‌‍ ౦ ౧ ౨ ౩ ౪ ౫ ౬ ౭ ౮ ౯"
-  marks: "◌ఁ ◌ం ◌ః ◌ా ◌ి ◌ీ ◌ు ◌ూ ◌ృ ◌ౄ ◌ె ◌ే ◌ొ ◌ో ◌ౌ ◌్ ◌ౖ ◌ౢ ◌ౣ"
+  marks: "◌ఁ ◌ం ◌ః ◌ా ◌ి ◌ీ ◌ు ◌ూ ◌ృ ◌ౄ ◌ె ◌ే ◌ొ ◌ో ◌ౌ ◌్ ◌ౖ ◌ౢ ◌ౣ ◌ై ◌ౕ"
   numerals: "- , . % + 0౦ 1౧ 2౨ 3౩ 4౪ 5౫ 6౬ 7౭ 8౮ 9౯"
   punctuation: "- , ; : ! ? . \' ‘ ’ \" “ ” ( ) [ ] { }"
   index: "అ ఆ ఇ ఈ ఉ ఊ ఋ ౠ ఎ ఏ ఐ ఒ ఓ ఔ క ఖ గ ఘ ఙ చ ఛ జ ఝ ఞ ట ఠ డ ఢ ణ త థ ద ధ న ప ఫ బ భ మ య ర ఱ ల వ శ ష స హ ళ"
index e7e569aafbd9a558525173dadf921293e06cbd34..99ac6288bcb28181a362aee48e85605de3603758 100644 (file)
@@ -6,9 +6,9 @@ autonym: "ภาษาไทย"
 population: 55181920
 region: "TH"
 exemplar_chars {
-  base: "ฯ à¹\86 à¹\8e à¹\8c à¹\87 à¹\88 à¹\89 à¹\8a à¹\8b à¸\81 à¸\82 à¸\83 à¸\84 à¸\85 à¸\86 à¸\87 à¸\88 à¸\89 à¸\8a à¸\8b à¸\8c à¸\8d à¸\8e à¸\8f à¸\90 à¸\91 à¸\92 à¸\93 à¸\94 à¸\95 à¸\96 à¸\97 à¸\98 à¸\99 à¸\9a à¸\9b à¸\9c à¸\9d à¸\9e à¸\9f à¸  à¸¡ à¸¢ à¸£ à¸¤ à¸¥ à¸¦ à¸§ à¸¨ à¸© à¸ª à¸« à¸¬ à¸­ à¸® à¹\8d à¸° à¸± à¸² à¹\85 à¸³ à¸´ à¸µ à¸¶ à¸· à¸¸ à¸¹ à¹\80 à¹\81 à¹\82 à¹\83 à¹\84 à¸º"
+  base: "ฯ à¹\86 à¸\81 à¸\82 à¸\83 à¸\84 à¸\85 à¸\86 à¸\87 à¸\88 à¸\89 à¸\8a à¸\8b à¸\8c à¸\8d à¸\8e à¸\8f à¸\90 à¸\91 à¸\92 à¸\93 à¸\94 à¸\95 à¸\96 à¸\97 à¸\98 à¸\99 à¸\9a à¸\9b à¸\9c à¸\9d à¸\9e à¸\9f à¸  à¸¡ à¸¢ à¸£ à¸¤ à¸¥ à¸¦ à¸§ à¸¨ à¸© à¸ª à¸« à¸¬ à¸­ à¸® à¸° à¸² à¹\85 à¸³ à¹\80 à¹\81 à¹\82 à¹\83 à¹\84"
   auxiliary: "​"
-  marks: "◌ั ◌ิ ◌ุ ◌ู ◌็ ◌ํ"
+  marks: "◌ั ◌ิ ◌ุ ◌ู ◌็ ◌ํ ◌๎ ◌์ ◌่ ◌้ ◌๊ ◌๋ ◌ี ◌ึ ◌ื ◌ฺ"
   numerals: "% , - . + 0 1 2 3 4 5 6 7 8 9"
   punctuation: "! \" # \' ( ) * , - . / : @ [ ] – — ‘ ’ “ ” …"
   index: "ก ข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ ฐ ฑ ฒ ณ ด ต ถ ท ธ น บ ป ผ ฝ พ ฟ ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ ฮ"
index 8f55c0080e73995dfe2338a55073760a4c47009a..0a4761cb5960edb1dfc4a1b8b26b347be079e365 100644 (file)
@@ -8,7 +8,8 @@ region: "ER"
 region: "ET"
 region: "IL"
 exemplar_chars {
-  base: "፟ ሀ-ሆ ለ-ቆ ቈ ቊ-ቍ ቐ-ቖ ቘ ቚ-ቝ በ-ኆ ኈ ኊ-ኍ ነ-ኮ ኰ ኲ-ኵ ኸ-ኾ ዀ ዂ-ዅ ወ-ዎ ዐ-ዖ ዘ-ዮ ደ-ዷ ጀ-ጎ ጐ ጒ-ጕ ጠ-ፗ"
+  base: "ሀ-ሆ ለ-ቆ ቈ ቊ-ቍ ቐ-ቖ ቘ ቚ-ቝ በ-ኆ ኈ ኊ-ኍ ነ-ኮ ኰ ኲ-ኵ ኸ-ኾ ዀ ዂ-ዅ ወ-ዎ ዐ-ዖ ዘ-ዮ ደ-ዷ ጀ-ጎ ጐ ጒ-ጕ ጠ-ፗ"
+  marks: "፟"
   auxiliary: "᎐ ᎑ ᎒ ᎓ ᎔ ᎕ ᎖ ᎗ ᎘ ᎙ ሇ ⶀ ᎀ ᎁ ᎂ ᎃ ⶁ ⶂ ⶃ ⶄ ቇ ᎄ ᎅ ᎆ ᎇ ⶅ ⶆ ⶇ ኇ ⶈ ⶉ ⶊ ኯ ዏ ⶋ ዯ ⶌ ዸ ዹ ዺ ዻ ዼ ዽ ዾ ዿ ⶍ ⶎ ጏ ጘ ጙ ጚ ጛ ጜ ጝ ጞ ጟ ⶓ ⶔ ⶕ ⶖ ⶏ ⶐ ⶑ ᎈ ᎉ ᎊ ᎋ ᎌ ᎍ ᎎ ᎏ ⶒ ፘ ፙ ፚ ⶠ ⶡ ⶢ ⶣ ⶤ ⶥ ⶦ ⶨ ⶩ ⶪ ⶫ ⶬ ⶭ ⶮ ⶰ ⶱ ⶲ ⶳ ⶴ ⶵ ⶶ ⶸ ⶹ ⶺ ⶻ ⶼ ⶽ ⶾ ⷀ ⷁ ⷂ ⷃ ⷄ ⷅ ⷆ ⷈ ⷉ ⷊ ⷋ ⷌ ⷍ ⷎ ⷐ ⷑ ⷒ ⷓ ⷔ ⷕ ⷖ ⷘ ⷙ ⷚ ⷛ ⷜ ⷝ ⷞ"
   numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
   index: "ሀ ለ ሐ መ ሠ ረ ሰ ሸ ቀ ቈ ቐ ቘ በ ቨ ተ ቸ ኀ ኈ ነ ኘ አ ከ ኰ ኸ ዀ ወ ዐ ዘ ዠ የ ደ ጀ ገ ጐ ጠ ጨ ጰ ጸ ፀ ፈ ፐ"
index 870ef699f76eb617f122f6c8299090d4d1df40bf..5db3999139e84a650d678e366e0b85b7575d0cc1 100644 (file)
@@ -1,4 +1,4 @@
 id: "Dupl"
 name: "Duployan shorthand"
-family: "American"
-summary: "Duployan shorthand (Sloan-Duployan shorthand, Duployan stenography) is an European alphabet, written left-to-right. Geometric stenography script created in 1860 by Father Émile Duployé for writing French, later expanded and adapted for writing English, Chinook Jargon and many others. Heavily cursive (connected), allows words to be written in a single stroke. Praised for simplicity and speed of writing. Needs software support for complex text layout (shaping)."
+family: "European"
+summary: "Duployan shorthand (Sloan-Duployan shorthand, Duployan stenography) is a European alphabet, written left-to-right. Geometric stenography script created in 1860 by Father Émile Duployé for writing French, later expanded and adapted for writing English, Chinook Jargon and many others. Heavily cursive (connected), allows words to be written in a single stroke. Praised for simplicity and speed of writing. Needs software support for complex text layout (shaping)."
index 4b2d4405540f466476a6e370e6d5852a734dbcf9..54c4215db5544cab1cc34aa90212e3c60dcaa291 100644 (file)
@@ -1,3 +1,6 @@
 id: "Todr"
 name: "Todhri"
+historical: true
+family: "European"
+summary: "Todhri is a historical European bicameral alphabet, written left-to-right. Created in the late 18th century by Theodor Haxhifilipi for the Albanian language."
 
diff --git a/snippets/fix-exemplars-bases.py b/snippets/fix-exemplars-bases.py
new file mode 100644 (file)
index 0000000..8623a5f
--- /dev/null
@@ -0,0 +1,56 @@
+from collections import Counter
+import unicodedata
+from google.protobuf import text_format
+from gflanguages import languages_public_pb2
+
+ATTRIBUTES = "base auxiliary marks punctuation index".split(" ")
+
+
+def main(args=None):
+    for path in args:
+        with open(path, encoding="utf-8") as fp:
+            language = text_format.Parse(
+                fp.read(), languages_public_pb2.LanguageProto()
+            )
+        changed = False
+        exemplar_values = {}
+        bases = language.exemplar_chars.base.split(" ")
+        marks = language.exemplar_chars.marks.split(" ")
+        if not len(bases) or bases == [""]:
+            continue
+        new_marks = []
+        new_bases = []
+        for chars in marks:
+            if not chars:
+                continue
+            if chars[0] != "\u25CC":
+                chars = "\u25CC" + chars
+            if chars not in new_marks:
+                new_marks.append(chars)
+
+        for chars in bases:
+            if not chars:
+                continue
+            if chars[0] == "\u25CC":
+                chars = chars[1:]
+            cat = unicodedata.category(chars[0])
+            if cat in ["Mn", "Mc"]:
+                if chars[0] != "\u25CC":
+                    chars = "\u25CC" + chars
+                if chars not in new_marks:
+                    new_marks.append(chars)
+            else:
+                new_bases.append(chars)
+
+        language.exemplar_chars.base = " ".join(new_bases)
+        language.exemplar_chars.marks = " ".join(new_marks)
+
+        with open(path, "w", encoding="utf-8") as fp:
+            fp.write(text_format.MessageToString(language, as_utf8=True))
+            fp.close()
+
+
+if __name__ == "__main__":
+    import sys
+
+    main(args=sys.argv[1:])
index 823a5791dd6859da01daffc3fbc1f805ed662fa2..9b9ef8c84d24f9c105b028a369c393cff637bff7 100644 (file)
@@ -83,7 +83,9 @@ SKIP_REGION = {
     "tlh_Latn": "Klingon is an artifical language.",
 }
 
-LANGUAGE_NAME_REGEX = regex.compile(r"^[-'’ʼ\p{L} ]+(, [-'’ʼ\p{L}/ ]+)?( [(][-'’ʼ\p{L} ]+[)])?$")
+LANGUAGE_NAME_REGEX = regex.compile(
+    r"^[-'’ʼ\p{L} ]+(, [-'’ʼ\p{L}/ ]+)?( [(][-'’ʼ\p{L} ]+[)])?$"
+)
 # Some scripts have abbreviated names for reference in language names that are
 # sufficient in context. If an alternate is listed here, it should be used
 # universally and consistently across all language names.
@@ -96,8 +98,7 @@ ALTERNATE_SCRIPT_NAMES = {
 
 @pytest.mark.parametrize("lang_code", LANGUAGES)
 @pytest.mark.parametrize(
-    "exemplar_name", ["base", "auxiliary", "marks",
-                      "numerals", "punctuation", "index"]
+    "exemplar_name", ["base", "auxiliary", "marks", "numerals", "punctuation", "index"]
 )
 def test_languages_exemplars_canonical_duplicates(lang_code, exemplar_name):
     lang = LANGUAGES[lang_code]
@@ -116,15 +117,13 @@ def test_languages_exemplars_canonical_duplicates(lang_code, exemplar_name):
 
 @pytest.mark.parametrize("lang_code", LANGUAGES)
 @pytest.mark.parametrize(
-    "exemplar_name", ["base", "auxiliary", "marks",
-                      "numerals", "punctuation", "index"]
+    "exemplar_name", ["base", "auxiliary", "marks", "numerals", "punctuation", "index"]
 )
 def test_languages_exemplars_duplicates(lang_code, exemplar_name):
     lang = LANGUAGES[lang_code]
     exemplar = getattr(lang.exemplar_chars, exemplar_name).split()
     counter = Counter(exemplar)
-    counts = sorted(counter.most_common(),
-                    key=lambda pair: exemplar.index(pair[0]))
+    counts = sorted(counter.most_common(), key=lambda pair: exemplar.index(pair[0]))
     assert counts == [(v, 1) for v in exemplar]
 
 
@@ -143,6 +142,21 @@ def test_exemplars_bracketed_sequences(lang_code, exemplar_name):
             assert len(chars[1:-1]) > 1
 
 
+@pytest.mark.parametrize("lang_code", LANGUAGES)
+def test_languages_exemplars_marks_in_base(lang_code):
+    lang = LANGUAGES[lang_code]
+    bases = lang.exemplar_chars.base
+    problems = []
+    for chars in bases.split():
+        if len(chars) > 1:
+            chars = chars.lstrip("{").rstrip("}")
+        if unicodedata.category(chars[0]) == "Mn":
+            problems.append("\u25CC" + chars)
+        if "\u25CC" in chars:
+            problems.append(chars)
+    assert not problems, f"Found marks in base: {problems}"
+
+
 SampleText = languages_public_pb2.SampleTextProto().DESCRIPTOR
 ExemplarChars = languages_public_pb2.ExemplarCharsProto().DESCRIPTOR
 
@@ -224,8 +238,7 @@ def test_sample_texts_are_in_script(lang_code):
         "idu_Latn",
         "ban_Bali",
     ]:
-        pytest.xfail(
-            "These languages have known issues with their sample text")
+        pytest.xfail("These languages have known issues with their sample text")
         return
     lang = LANGUAGES[lang_code]
     script_name = SCRIPTS[lang.script].name
@@ -244,8 +257,7 @@ def test_sample_texts_are_in_script(lang_code):
         chars = set(samples)
         for char in chars:
             char_script = (
-                youseedee.ucd_data(ord(char)).get(
-                    "Script", "").replace("_", " ")
+                youseedee.ucd_data(ord(char)).get("Script", "").replace("_", " ")
             )
             if char_script == "Common" or char_script == "Inherited":
                 continue
@@ -290,29 +302,37 @@ def test_language_uniqueness():
         else:
             names[lang.name] += 1
     if any(count > 1 for count in names.values()):
-        duplicates = {name: count for name,
-                      count in names.items() if count > 1}
+        duplicates = {name: count for name, count in names.items() if count > 1}
         pytest.fail(f"Duplicate language names: {duplicates}")
 
 
 def test_language_name_structure():
     languages_with_bad_name_structure = {}
     for lang in LANGUAGES.values():
-        script_name = SCRIPTS[lang.script].name if lang.script not in ALTERNATE_SCRIPT_NAMES else ALTERNATE_SCRIPT_NAMES[lang.script]
+        script_name = (
+            SCRIPTS[lang.script].name
+            if lang.script not in ALTERNATE_SCRIPT_NAMES
+            else ALTERNATE_SCRIPT_NAMES[lang.script]
+        )
         names = [["name", lang.name]]
         if lang.preferred_name:
             names += [["preferred_name", lang.preferred_name]]
         bad_names = []
         for type, name in names:
             bad_structure = not regex.match(LANGUAGE_NAME_REGEX, name)
-            bad_script_suffix = name.endswith(
-                ")") and not name.endswith(f"({script_name})")
+            bad_script_suffix = name.endswith(")") and not name.endswith(
+                f"({script_name})"
+            )
             if bad_structure or bad_script_suffix:
                 bad_names.append(type)
         if len(bad_names) > 0:
             languages_with_bad_name_structure[lang.id] = bad_names
     if len(languages_with_bad_name_structure) > 0:
-        misstructured_language_names = [f"{language_id}" if len(
-            types) == 1 else f"{language_id}: {types}" for language_id, types in languages_with_bad_name_structure.items() if len(types) > 0]
+        misstructured_language_names = [
+            f"{language_id}" if len(types) == 1 else f"{language_id}: {types}"
+            for language_id, types in languages_with_bad_name_structure.items()
+            if len(types) > 0
+        ]
         pytest.fail(
-            f"Languages names without expected structure (\"LANGUAGE, MODIFIER (SCRIPT)\"): {misstructured_language_names}")
+            f'Languages names without expected structure ("LANGUAGE, MODIFIER (SCRIPT)"): {misstructured_language_names}'
+        )