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: "় অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ং ঃ ক খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ৎ ত থ দ ধ ন প ফ ব ভ ম য ৰ ল ৱ শ ষ স হ ্"
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: "অ আ ই ঈ উ ঊ ঋ এ ঐ ও ঔ ক {ক্ষ} খ গ ঘ ঙ চ ছ জ ঝ ঞ ট ঠ ড ঢ ণ ত থ দ ধ ন প ফ ব ভ ম য র ল শ ষ স হ"
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: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ"
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: "अ आ इ ई उ ऊ ऍ ए ऐ ऑ ओ औ क ख ग घ च छ ज झ ञ ट ठ ड {ड़} ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह"
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: "अ आ इ ई उ ऊ ऋ ॠ ऌ ॡ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह"
region: "BT"
region: "IN"
exemplar_chars {
- base: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ ི ུ ེ ོ ྐ ྑ ྒ ྔ ྗ ྙ ྟ ྠ ྡ ྣ ྤ ྥ ྦ ྨ ྩ ྪ ྫ ྭ ྱ ྲ ླ ྵ ྶ ྷ"
+ base: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ"
auxiliary: "྄ ཊ ཋ ཌ ཎ ཾ ཥ ྀ ཻ ཽ ྚ ྛ ྜ ྞ ྺ ྻ ྼ"
- marks: "◌ི ◌ུ ◌ེ ◌ོ ◌ྵ"
+ marks: "◌ི ◌ུ ◌ེ ◌ོ ◌ྵ ◌ྐ ◌ྑ ◌ྒ ◌ྔ ◌ྗ ◌ྙ ◌ྟ ◌ྠ ◌ྡ ◌ྣ ◌ྤ ◌ྥ ◌ྦ ◌ྨ ◌ྩ ◌ྪ ◌ྫ ◌ྭ ◌ྱ ◌ྲ ◌ླ ◌ྶ ◌ྷ"
numerals: "- , . % + 0༠ 1༡ 2༢ 3༣ 4༤ 5༥ 6༦ 7༧ 8༨ 9༩"
punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] ༼ ༽ @ * / & # ༄ ༅ ༆ ༈ ༉ ༊ ࿐ ࿑ ༒ ࿒ ࿓ ࿔ ༶ ྾ ྿ ༌ ། ༎ ༏ ༐ ༑ ༔ ༴"
index: "ཀ ཁ ག ང ཅ ཆ ཇ ཉ ཏ ཐ ད ན པ ཕ བ མ ཙ ཚ ཛ ཝ ཞ ཟ འ ཡ ར ལ ཤ ས ཧ ཨ"
region: "SL"
region: "SN"
exemplar_chars {
- base: "𞥄𞥅𞥆 𞤢 𞤣 𞤤 𞤥 𞤦 𞤧 𞤨 𞤩 𞤪 𞤫 𞤬 𞤭 𞤮 𞤯 𞤰 𞤱 𞤲 𞤳 𞤴 𞤵 𞤶 𞤷 𞤸 𞤹 𞤺 𞤻 𞤼 𞤽 𞥋"
+ base: "𞤢 𞤣 𞤤 𞤥 𞤦 𞤧 𞤨 𞤩 𞤪 𞤫 𞤬 𞤭 𞤮 𞤯 𞤰 𞤱 𞤲 𞤳 𞤴 𞤵 𞤶 𞤷 𞤸 𞤹 𞤺 𞤻 𞤼 𞤽"
+ marks: "𞥄 𞥅 𞥆 𞥋"
auxiliary: "𞤾 𞤿 𞥀 𞥁 𞥂 𞥃"
numerals: "𞥐 𞥑 𞥒 𞥓 𞥔 𞥕 𞥖 𞥗 𞥘 𞥙"
punctuation: "- 𞥞 𞥟 . % "
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: "अ आ इ ई उ ऊ ऋ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह"
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"
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: "ಅ ಆ ಇ ಈ ಉ ಊ ಋ ೠ ಌ ೡ ಎ ಏ ಐ ಒ ಓ ಔ ಕ ಖ ಗ ಘ ಙ ಚ ಛ ಜ ಝ ಞ ಟ ಠ ಡ ಢ ಣ ತ ಥ ದ ಧ ನ ಪ ಫ ಬ ಭ ಮ ಯ ರ ಱ ಲ ವ ಶ ಷ ಸ ಹ ಳ ೞ"
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: "अ आ इ ई उ ऊ ऋ ऌ ऍ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ"
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"
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"
region: "QA"
region: "SG"
exemplar_chars {
- base: " ഃ അ ആ ഇ ഈ ഉ ഊ ഋ ൠ ഌ ൡ എ ഏ ഐ ഒ ഓ ഔ ക ൿ ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ൺ ത ഥ ദ ധ ന ൻ പ ഫ ബ ഭ മ ം യ ര ർ ല ൽ വ ശ ഷ സ ഹ ള ൾ ഴ റ ാ ി ീ ു ൂ ൃ െ േ ൈ ൊ ോ ൌ ൗ ്"
+ base: " ഃ അ ആ ഇ ഈ ഉ ഊ ഋ ൠ ഌ ൡ എ ഏ ഐ ഒ ഓ ഔ ക ൿ ഖ ഗ ഘ ങ ച ഛ ജ ഝ ഞ ട ഠ ഡ ഢ ണ ൺ ത ഥ ദ ധ ന ൻ പ ഫ ബ ഭ മ ം യ ര ർ ല ൽ വ ശ ഷ സ ഹ ള ൾ ഴ റ"
auxiliary: ""
marks: "◌ം ◌ഃ ◌ാ ◌ി ◌ീ ◌ു ◌ൂ ◌ൃ ◌െ ◌േ ◌ൈ ◌് ◌ൗ"
numerals: "- , . % + 0൦ 1൧ 2൨ 3൩ 4൪ 5൫ 6൬ 7൭ 8൮ 9൯"
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: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
}
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: " ॐ ं ः अ आ इ ई उ ऊ ऋ ऌ ए ऐ ऑ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह ळ ऽ ॅ ्"
region: "BD"
region: "MM"
exemplar_chars {
- base: "က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ ဣ ၏ ဤ ဥ ဦ ဧ ဩ ဪ ာ ါ ိ ီ ု ူ ေ ဲ ံ ဿ ျ ြ ွ ှ ္ ် ့ း"
+ base: "က ခ ဂ ဃ င စ ဆ ဇ ဈ ဉ ည ဋ ဌ ဍ ဎ ဏ တ ထ ဒ ဓ န ပ ဖ ဗ ဘ မ ယ ရ လ ဝ သ ဟ ဠ အ ဣ ၏ ဤ ဥ ဦ ဧ ဩ ဪ ာ ါ ေ ဿ"
+ marks: "'◌ိ ◌ီ ◌ု ◌ူ ◌ဲ ◌ံ ◌ွ ေ ဲ ံ ျ ြ ွ ှ ္ ် ့ း"
auxiliary: "၀႐ ၁႑ ၂႒ ၃႓ ၄႔ ၅႕ ၆႖ ၇႗ ၈႘ ၉႙ ၵ ၚ ၽ ၾ ၐ ၑ ၥ ဨ ဢ ၒ ၓ ၔ ၕ ဳ ၖ ၗ ၘ ၙ ဴ ၢ ႆ ၤ ႈ ႊ ႏ"
numerals: "- , . % + 0၀ 1၁ 2၂ 3၃ 4၄ 5၅ 6၆ 7၇ 8၈ 9၉"
punctuation: "၊ ။ ‘ ’ “ ”"
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: "अ आ इ ई उ ऊ ऋ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल व श ष स ह"
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: "ଅ ଆ ଇ ଈ ଉ ଊ ଋ ଏ ଐ ଓ ଔ କ ଖ ଗ ଘ ଙ ଚ ଛ ଜ ଝ ଞ ଟ ଠ ଡ ଢ ଣ ତ ଥ ଦ ଧ ନ ପ ଫ ବ ଭ ମ ଯ ର ଲ ଳ ଶ ଷ ସ ହ {କ୍ଷ}"
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: "ੳ ਅ ੲ ਸ ਹ ਕ ਖ ਗ ਘ ਙ ਚ ਛ ਜ ਝ ਞ ਟ ਠ ਡ ਢ ਣ ਤ ਥ ਦ ਧ ਨ ਪ ਫ ਬ ਭ ਮ ਯ ਰ ਲ ਵ ੜ"
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: "अ आ इ ई उ ऊ ऋ ॠ ऌ ॡ ए ऐ ओ औ क ख ग घ ङ च छ ज झ ञ ट ठ ड ढ ण त थ द ध न प फ ब भ म य र ल ळ व श ष स ह"
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: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
}
population: 15564656
region: "LK"
exemplar_chars {
- base: "අ ආ ඇ ඈ ඉ ඊ උ ඌ ඍ එ ඒ ඓ ඔ ඕ ඖ ං ඃ ක ඛ ග ඝ ඞ ඟ ච ඡ ජ ඣ ඥ ඤ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල ව ශ ෂ ස හ ළ ෆ ා ැ ෑ ි ී ු ූ ෘ ෲ ෟ ෙ ේ ෛ ො ෝ ෞ ්"
+ base: "අ ආ ඇ ඈ ඉ ඊ උ ඌ ඍ එ ඒ ඓ ඔ ඕ ඖ ං ඃ ක ඛ ග ඝ ඞ ඟ ච ඡ ජ ඣ ඥ ඤ ට ඨ ඩ ඪ ණ ඬ ත ථ ද ධ න ඳ ප ඵ බ භ ම ඹ ය ර ල ව ශ ෂ ස හ ළ ෆ"
+ marks: " ා ැ ෑ ි ී ු ූ ෘ ෲ ෟ ෙ ේ ෛ ො ෝ ෞ ්"
auxiliary: " ඎ ඏ ඐ ඦ ෳ"
numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
punctuation: "- – — , ; : ! ? . … \' ‘ ’ \" “ ” ( ) [ ] @ * / & #"
region: "RE"
region: "SG"
exemplar_chars {
- base: "அ ஆ இ ஈ உ ஊ எ ஏ ஐ ஒ ஓ ஔ ஃ க ங ச ஞ ட ண த ந ப ம ய ர ல வ ழ ள ற ன ஜ ஷ ஸ ஹ ா ி ீ ு ூ ெ ே ை ொ ோ ௌ ்"
+ base: "அ ஆ இ ஈ உ ஊ எ ஏ ஐ ஒ ஓ ஔ ஃ க ங ச ஞ ட ண த ந ப ம ய ர ல வ ழ ள ற ன ஜ ஷ ஸ ஹ ா ி ு ூ ெ ே ை ொ ோ ௌ "
auxiliary: ""
marks: "◌ா ◌ி ◌ீ ◌ு ◌ூ ◌ெ ◌ே ◌ை ◌் ◌ௗ"
numerals: "- , . % + 0௦ 1௧ 2௨ 3௩ 4௪ 5௫ 6௬ 7௭ 8௮ 9௯"
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: "అ ఆ ఇ ఈ ఉ ఊ ఋ ౠ ఎ ఏ ఐ ఒ ఓ ఔ క ఖ గ ఘ ఙ చ ఛ జ ఝ ఞ ట ఠ డ ఢ ణ త థ ద ధ న ప ఫ బ భ మ య ర ఱ ల వ శ ష స హ ళ"
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: "ก ข ฃ ค ฅ ฆ ง จ ฉ ช ซ ฌ ญ ฎ ฏ ฐ ฑ ฒ ณ ด ต ถ ท ธ น บ ป ผ ฝ พ ฟ ภ ม ย ร ฤ ล ฦ ว ศ ษ ส ห ฬ อ ฮ"
region: "ET"
region: "IL"
exemplar_chars {
- base: "፟ ሀ-ሆ ለ-ቆ ቈ ቊ-ቍ ቐ-ቖ ቘ ቚ-ቝ በ-ኆ ኈ ኊ-ኍ ነ-ኮ ኰ ኲ-ኵ ኸ-ኾ ዀ ዂ-ዅ ወ-ዎ ዐ-ዖ ዘ-ዮ ደ-ዷ ጀ-ጎ ጐ ጒ-ጕ ጠ-ፗ"
+ base: "ሀ-ሆ ለ-ቆ ቈ ቊ-ቍ ቐ-ቖ ቘ ቚ-ቝ በ-ኆ ኈ ኊ-ኍ ነ-ኮ ኰ ኲ-ኵ ኸ-ኾ ዀ ዂ-ዅ ወ-ዎ ዐ-ዖ ዘ-ዮ ደ-ዷ ጀ-ጎ ጐ ጒ-ጕ ጠ-ፗ"
+ marks: "፟"
auxiliary: "᎐ ᎑ ᎒ ᎓ ᎔ ᎕ ᎖ ᎗ ᎘ ᎙ ሇ ⶀ ᎀ ᎁ ᎂ ᎃ ⶁ ⶂ ⶃ ⶄ ቇ ᎄ ᎅ ᎆ ᎇ ⶅ ⶆ ⶇ ኇ ⶈ ⶉ ⶊ ኯ ዏ ⶋ ዯ ⶌ ዸ ዹ ዺ ዻ ዼ ዽ ዾ ዿ ⶍ ⶎ ጏ ጘ ጙ ጚ ጛ ጜ ጝ ጞ ጟ ⶓ ⶔ ⶕ ⶖ ⶏ ⶐ ⶑ ᎈ ᎉ ᎊ ᎋ ᎌ ᎍ ᎎ ᎏ ⶒ ፘ ፙ ፚ ⶠ ⶡ ⶢ ⶣ ⶤ ⶥ ⶦ ⶨ ⶩ ⶪ ⶫ ⶬ ⶭ ⶮ ⶰ ⶱ ⶲ ⶳ ⶴ ⶵ ⶶ ⶸ ⶹ ⶺ ⶻ ⶼ ⶽ ⶾ ⷀ ⷁ ⷂ ⷃ ⷄ ⷅ ⷆ ⷈ ⷉ ⷊ ⷋ ⷌ ⷍ ⷎ ⷐ ⷑ ⷒ ⷓ ⷔ ⷕ ⷖ ⷘ ⷙ ⷚ ⷛ ⷜ ⷝ ⷞ"
numerals: "- , . % + 0 1 2 3 4 5 6 7 8 9"
index: "ሀ ለ ሐ መ ሠ ረ ሰ ሸ ቀ ቈ ቐ ቘ በ ቨ ተ ቸ ኀ ኈ ነ ኘ አ ከ ኰ ኸ ዀ ወ ዐ ዘ ዠ የ ደ ጀ ገ ጐ ጠ ጨ ጰ ጸ ፀ ፈ ፐ"
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)."
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."
--- /dev/null
+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:])
"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.
@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]
@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]
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
"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
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
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}'
+ )