diff --git a/scriptshifter/tables/data/tamashek.yml b/scriptshifter/tables/data/tamashek.yml new file mode 100644 index 0000000..b239e46 --- /dev/null +++ b/scriptshifter/tables/data/tamashek.yml @@ -0,0 +1,111 @@ +--- +general: + name: Tamashek + case_sensitive: false + description: Tamashek language in the Tifinagh script. + version: 1.0.0 + date: 2026-04-02 + parents: + - tifinagh_generic + + # COMMON COMBINING AND SPECIAL CHARACTERS + # comma \u002C + # degree sign \u00B0 + # latin capital letter schwa \u018F + # latin small letter schwa \u0259 + # latin capital letter open e \u0190 + # latin small letter open e \u025B + # latin capital letter gamma \u0194 + # latin small letter gamma \u0263 + # combining circumflex \u0302 + # combining macron \u0304 + # combining breve \u0306 + # combining dot above \u0307 + # combining caron \u030C + # combining dot below \u0323 + # combining low line \u0332 + # combining double low line \u0333 + # prime \u02B9 + # zero width joiner \u200D + +roman_to_script: + map: + + "\u002C": "\u2D70" + "\u00B0": "\u2D6F" + "\u0259": "\u2D53" + "\u0263": "\u2D58" + "\u02B9": "\u2D7F" + "a\u0302": "\u2D30\u0302" + "a\u0306": "\u2D30\u0306" + "b": "\u2D40" + "c": "\u2D4F\u2D7F\u2D5C" + "d\u0323": "\u2D39\u0323" + "d": "\u2D39" + "e\u0302": "\u2D66\u0302" + "e\u0333": "\u2D53" + "e": "\u2D66" + "g\u0333": "\u2D58" + "g": "\u2D36" + "h": "\u2D42" + "i\u0302": "\u2D62\u0302" + "i": "\u2D62" + "j": "\u2D4C" + "k": "\u2D3E" + "ll": "\u2D4D\u2D7F\u2D4D" + "l\u0323": "\u2D4D\u0323" + "nn": "\u2D4F\u2D7F\u2D4F" + "\u014B": "\u2D50" + "n\u0333": "\u2D50" + "o\u0302": "\u2D67\u0302" + "q": "\u2D57" + "r\u0323": "\u2D55" + "s\u0306": "\u2D5B" + "s\u0323": "\u2D59\u0323" + "t\u0323": "\u2D5C\u0323" + "t": "\u2D5C" + "u": "\u2D6F" + "v": "\u2D60" + "w\u0302": "\u2D61\u0302" + "x": "\u2D46" + "z\u0323": "\u2D63\u0323" + "\u200D": "\u2D7F" + +script_to_roman: + map: + + "\u2D30\u0302": "a\u0302" + "\u2D30\u0306": "a\u0306" + "\u2D36": "g" + "\u2D39\u0323": "d\u0323" + "\u2D39": "d" + "\u2D3E": "k" + "\u2D40": "b" + "\u2D42": "h" + "\u2D46": "x" + "\u2D4C": "j" + "\u2D4D\u2D7F\u2D4D": "ll" + "\u2D4D\u0323": "l\u0323" + "\u2D4F\u2D7F\u2D4F": "nn" + "\u2D4F\u2D7F\u2D5C": "c" + "\u2D50": "\u014B" + "\u2D53": "\u0259" + "\u2D55": "r\u0323" + "\u2D57": "q" + "\u2D58": "\u0263" + "\u2D59\u0323": "s\u0323" + "\u2D5B": "s\u0306" + "\u2D5C\u0323": "t\u0323" + "\u2D5C": "t" + "\u2D60": "v" + "\u2D61\u0302": "w\u0302" + "\u2D62\u0302": "i\u0302" + "\u2D62": "i" + "\u2D63\u0323": "z\u0323" + "\u2D66\u0302": "e\u0302" + "\u2D66": "e" + "\u2D67\u0302": "o\u0302" + "\u2D6F": "u" + "\u2D70": "\u002C" + "\u2D7F": "\u200D" + "\u2D7F": "\u02B9" diff --git a/scriptshifter/tables/data/tifinagh_generic.yml b/scriptshifter/tables/data/tifinagh_generic.yml new file mode 100644 index 0000000..05d42eb --- /dev/null +++ b/scriptshifter/tables/data/tifinagh_generic.yml @@ -0,0 +1,170 @@ +--- +general: + name: Tifinagh (Generic) + case_sensitive: false + description: Tifinagh script generic conversion mapping. + version: 1.0.0 + date: 2026-04-05 + parents: + - _ignore_base + + # COMMON COMBINING AND SPECIAL CHARACTERS + # comma \u002C + # degree sign \u00B0 + # latin capital letter schwa \u018F + # latin small letter schwa \u0259 + # latin capital letter open e \u0190 + # latin small letter open e \u025B + # latin capital letter gamma \u0194 + # latin small letter gamma \u0263 + # combining circumflex \u0302 + # combining macron \u0304 + # combining breve \u0306 + # combining dot above \u0307 + # combining caron \u030C + # combining dot below \u0323 + # combining low line \u0332 + # combining double low line \u0333 + # prime \u02B9 + # zero width joiner \u200D + +roman_to_script: + map: + + "\u002C\u0332": "\u2D70" + "\u00B0": "\u2D6F" + "\u0259": "\uF007" + "\u025B": "\u2D44" + "\u0263\u0307": "\u2D58" + "\u0263": "\u2D56" + "\u02B9": "\u2D7F" + "a\u0302": "\u2D30\u0302" + "a\u0306": "\u2D30\u0306" + "a": "\u2D30" + "b\u0332": "\u2D32" + "b": "\u2D31" + "c\u030C": "\u2D5E" + "c": "\u2D5B" + "d\u0323\u0332": "\u2D3A" + "d\u0323": "\u2D39" + "d\u0332": "\u2D38" + "d": "\u2D37" + "e\u0302": "\u2D66\u0302" + "e\u0307": "\u2D66" + "e\u0333": "\u2D44" + "e": "\u2D3B" + "f": "\u2D3C" + "g\u0333\u0307": "\u2D58" + "g\u0307\u0333": "\u2D58" + "g\u0333": "\u2D56" + "g\u0332": "\u2D34" + "g\u030C": "\u2D35" + "g\u0307": "\u2D36" + "g": "\u2D33" + "h\u0332": "\u2D41" + "h\u0323": "\u2D43" + "h\u0333": "\u2D42" + "h": "\u2D40" + "i": "\u2D49" + "j\u030C": "\u2D4B" + "j\u0304": "\u2D4C" + "j": "\u2D4A" + "k\u0323": "\u2D3E" + "k\u0332": "\u2D3F" + "k": "\u2D3D" + "l": "\u2D4D" + "m": "\u2D4E" + "n": "\u2D4F" + "\u014B": "\u2D50" + "n\u0333": "\u2D50" + "n\u0323": "\u2D51" + "\u025B": "\u2D44" + "o": "\u2D67" + "p": "\u2D52" + "q\u0304": "\u2D57" + "q\u0307": "\u2D48" + "q": "\u2D47" + "r\u0323": "\u2D55" + "r": "\u2D54" + "s\u0323": "\u2D5A" + "s": "\u2D59" + "t\u0323": "\u2D5F" + "t\u0332": "\u2D5D" + "t": "\u2D5C" + "u": "\u2D53" + "v": "\u2D60" + "w": "\u2D61" + "x\u0332": "\u2D46" + "x": "\u2D45" + "y": "\u2D62" + "z\u030C": "\u2D64" + "z\u0323": "\u2D65" + "z": "\u2D63" + "\u200D": "\u2D7F" + +script_to_roman: + map: + + "\u2D30\u0302": "a\u0302" + "\u2D30\u0306": "a\u0306" + "\u2D30": "a" + "\u2D31": "b" + "\u2D32": "b\u0332" + "\u2D33": "g" + "\u2D34": "g\u0332" + "\u2D35": "g\u030C" + "\u2D36": "g\u0307" + "\u2D37": "d" + "\u2D38": "d\u0332" + "\u2D39": "d\u0323" + "\u2D3A": "d\u0323\u0332" + "\u2D3B": "e" + "\u2D3C": "f" + "\u2D3D": "k" + "\u2D3E": "k\u0323" + "\u2D3F": "k\u0332" + "\u2D40": "h" + "\u2D41": "h\u0332" + "\u2D42": "h\u0333" + "\u2D43": "h\u0323" + "\u2D44": "\u025B" + "\u2D45": "x" + "\u2D46": "x\u0332" + "\u2D47": "q" + "\u2D48": "q\u0307" + "\u2D49": "i" + "\u2D4A": "j" + "\u2D4B": "j\u030C" + "\u2D4C": "j\u0304" + "\u2D4D": "l" + "\u2D4E": "m" + "\u2D4F": "n" + "\u2D50": "\u014B" + "\u2D51": "n\u0323" + "\u2D52": "p" + "\u2D53": "u" + "\u2D54": "r" + "\u2D55": "r\u0323" + "\u2D56": "\u0263" + "\u2D57": "q\u0304" + "\u2D58": "\u0263\u0307" + "\u2D59": "s" + "\u2D5A": "s\u0323" + "\u2D5B": "c" + "\u2D5C": "t" + "\u2D5D": "t\u0332" + "\u2D5E": "c\u030C" + "\u2D5F": "t\u0323" + "\u2D60": "v" + "\u2D61": "w" + "\u2D62": "y" + "\u2D63": "z" + "\u2D64": "z\u030C" + "\u2D65": "z\u0323" + "\u2D66\u0302": "e\u0302" + "\u2D66": "e\u0307" + "\u2D67": "o" + "\u2D6F": "\u00B0" + "\u2D70": "\u002C\u0332" + "\u2D7F": "\u200D" + "\uF007": "\u0259" diff --git a/scriptshifter/tables/index.yml b/scriptshifter/tables/index.yml index ff66ae0..e65e800 100644 --- a/scriptshifter/tables/index.yml +++ b/scriptshifter/tables/index.yml @@ -1,6 +1,6 @@ # Map index file -# version: 1.0.4 -# date: 2026-02-04 +# version: 1.0.5 +# date: 2026-04-02 # # Configurations not listed here will not show in the UI drop-down menu or # in the `/languages` endpoint, but can still be used in the `trans` endpoint. @@ -330,6 +330,10 @@ montenegrin_cyrillic: mordvin_cyrillic: marc_code: fiu name: Mordvin (Cyrillic) +moroccan_tamazight: + alias_of: tifinagh_generic + marc_code: ber + name: Moroccan Tamazight nanai_cyrillic: alias_of: cyrillic_generic marc_code: tut @@ -443,6 +447,13 @@ tabasaran_cyrillic: tajik_cyrillic: marc_code: tgk name: Tajik (Cyrillic) +tamashek: + marc_code: tmh + name: Tamashek +tamazight_moroccan: + alias_of: tifinagh_generic + marc_code: ber + name: Tamazight (Moroccan) tamil: marc_code: tam name: Tamil @@ -474,6 +485,9 @@ tibetan: tibetan_2015_r2r: marc_code: tib name: Tibetan (ñ,ṅ,ś,ź to ny,ng,sh,zh only) +tifinagh_generic: + marc_code: ber + name: Tifinagh (Generic) tigre_ethiopic: alias_of: ethiopic_generic marc_code: tig diff --git a/test/data/script_samples/tamashek.csv b/test/data/script_samples/tamashek.csv new file mode 100644 index 0000000..d8f3328 --- /dev/null +++ b/test/data/script_samples/tamashek.csv @@ -0,0 +1 @@ +tamashek,ⴰ ⴰ̆ ⴰ̂ ⵀ ⵛ ⴹ ⴹ̣ ⵦ ⵦ̂ ⵓ (ⵓ) ⴼ ⴶ ⵐ (ⵐ) ⵂ ⵢ ⵢ̂ ⵌ ⴾ ⵍ ⵍ̣ ⵍ⵿ⵍ ⵎ ⵏ ⵏ⵿ⵏ ⵧ ⵧ̂ ⵒ ⵗ ⵆ ⵘ (ⵘ) ⵔ ⵙ ⵙ̣ ⵜ ⵜ̣ ⵏ⵿ⵜ ⵯ ⵯ̂ ⵠ ⵡ ⵣ ⵣ̣ ⵋ ⵤ,a ă â b s̆ d ḍ e ê ə (e̳) f g ŋ (n̳) h i î j k l ḷ ll m n nn o ô p q x ɣ (g̳) r s ṣ t ṭ c u û v w z ẓ ǰ ž diff --git a/test/data/script_samples/tamazight_moroccan.csv b/test/data/script_samples/tamazight_moroccan.csv new file mode 100644 index 0000000..0d02402 --- /dev/null +++ b/test/data/script_samples/tamazight_moroccan.csv @@ -0,0 +1,2 @@ +tamazight_moroccan,ⴰ ⴱ ⴲ ⴳ ⴳⵯ ⴴ ⴵ ⴶ ⴷ ⴸ ⴹ ⴺ ⴻ ⴼ ⴽ ⴾ ⴽⵯ ⴿ ⵀ ⵁ ⵂ ⵃ ⵄ ⵄ ⵅ ⵆ ⵇ ⵈ ⵉ ⵊ ⵋ ⵌ ⵍ ⵍⵍ ⵎ ⵏ ⵏⵏ ⵏ ⵐ ⵐ ⵑ ⵒ ⵓ ⵔ ⵕ ⵖ ⵖ ⵗ ⵘ ⵘ ⵙ ⵚ ⵛ ⵜ ⵝ ⵞ ⵟ ⵠ ⵡ ⵢ ⵣ ⵤ ⵥ ⵦ ⵯ,a b b̲ g g° g̲ ǧ ġ d d̲ ḍ ḍ̲ e f k ḳ k° k̲ h h̲ h̳ ḥ ɛ e̳ x x̲ q q̇ i j ǰ j̄ l ll m n nn n ŋ n̳ ṇ p u r ṛ ɣ g̳ q̄ ɣ̇ ġ̳ s ṣ c t t̲ č ṭ v w y z ž ẓ ė ° +tamazight_moroccan,"ⴰⵎⴰⴳⵔⴰⴷ 2 ⴽⵓ ⵢⴰⵏ ⵉⵥⴹⴰⵕ ⴰⴷ ⵉⵟⵟⴼ ⴽⵓⵍⵍⵓ ⵉⵣⵔⴼⴰⵏ ⴷ ⵜⴷⵔⴼⵉⵢⵉⵏ ⵍⵍⵉ ⵉⵍⵍⴰⵏ ⵖ ⵓⵍⵖⵓ ⴰⴷ, ⴰⴷ ⵓⵔ ⵢⵉⵍⵉ ⵓⵙⵏⵓⵃⵢⵓ, ⵣⵓⵏⴷ ⵡⵉⵏ ⵓⵥⵓⵕ, ⵏⵖ ⴰⴽⵍⵓ, ⵏⵖ ⴰⵏⴰⵡ, ⵏⵖ ⵜⵓⵜⵍⴰⵢⵜ, ⵏⵖ ⴰⵙⴳⴷ, ⵏⵖ ⵜⴰⵏⵏⴰⵢⵜ ⵜⴰⵙⵔⵜⴰⵏⵜ ⵏⵖ ⵜⴰⵏⵏⴰⵢⵜ ⵢⴰⴹⵏ,","Amagrad 2 ku yan iẓḍaṛ ad iṭṭf kullu izrfan d tdrfiyin lli illan ɣ ulɣu ad, ad ur yili usnuḥyu, zund win uẓuṛ, nɣ aklu, nɣ anaw, nɣ tutlayt, nɣ asgd, nɣ tannayt tasrtant nɣ tannayt yaḍn,",,"{""capitalize"": ""first""}" diff --git a/test/data/script_samples/tifinagh_generic.csv b/test/data/script_samples/tifinagh_generic.csv new file mode 100644 index 0000000..36a5a47 --- /dev/null +++ b/test/data/script_samples/tifinagh_generic.csv @@ -0,0 +1,5 @@ +tifinagh_generic,ⴰ ⴱ ⴲ ⴳ ⴳⵯ ⴴ ⴵ ⴶ ⴷ ⴸ ⴹ ⴺ ⴻ ⴼ ⴽ ⴾ ⴽⵯ ⴿ ⵀ ⵁ ⵂ ⵃ ⵄ ⵄ ⵅ ⵆ ⵇ ⵈ ⵉ ⵊ ⵋ ⵌ ⵍ ⵍⵍ ⵎ ⵏ ⵏⵏ ⵏ ⵐ ⵐ ⵑ ⵒ ⵓ ⵔ ⵕ ⵖ ⵖ ⵗ ⵘ ⵘ ⵙ ⵚ ⵛ ⵜ ⵝ ⵞ ⵟ ⵠ ⵡ ⵢ ⵣ ⵤ ⵥ ⵦ ⵯ ⵰ ,"a b b̲ g g° g̲ ǧ ġ d d̲ ḍ ḍ̲ e f k ḳ k° k̲ h h̲ h̳ ḥ ɛ e̳ x x̲ q q̇ i j ǰ j̄ l ll m n nn n ŋ n̳ ṇ p u r ṛ ɣ g̳ q̄ ɣ̇ ġ̳ s ṣ c t t̲ č ṭ v w y z ž ẓ ė ° ,̲" +tifinagh_generic,"ⴰⵎⴰⴳⵔⴰⴷ 2 ⴽⵓ ⵢⴰⵏ ⵉⵥⴹⴰⵕ ⴰⴷ ⵉⵟⵟⴼ ⴽⵓⵍⵍⵓ ⵉⵣⵔⴼⴰⵏ ⴷ ⵜⴷⵔⴼⵉⵢⵉⵏ ⵍⵍⵉ ⵉⵍⵍⴰⵏ ⵖ ⵓⵍⵖⵓ ⴰⴷ, ⴰⴷ ⵓⵔ ⵢⵉⵍⵉ ⵓⵙⵏⵓⵃⵢⵓ, ⵣⵓⵏⴷ ⵡⵉⵏ ⵓⵥⵓⵕ, ⵏⵖ ⴰⴽⵍⵓ, ⵏⵖ ⴰⵏⴰⵡ, ⵏⵖ ⵜⵓⵜⵍⴰⵢⵜ, ⵏⵖ ⴰⵙⴳⴷ, ⵏⵖ ⵜⴰⵏⵏⴰⵢⵜ ⵜⴰⵙⵔⵜⴰⵏⵜ ⵏⵖ ⵜⴰⵏⵏⴰⵢⵜ ⵢⴰⴹⵏ,","Amagrad 2 ku yan iẓḍaṛ ad iṭṭf kullu izrfan d tdrfiyin lli illan ɣ ulɣu ad, ad ur yili usnuḥyu, zund win uẓuṛ, nɣ aklu, nɣ anaw, nɣ tutlayt, nɣ asgd, nɣ tannayt tasrtant nɣ tannayt yaḍn,",,"{""capitalize"": ""first""}" +tifinagh_generic,"ⵏⵖ ⵎⴰⴷ ⵉⵥⵍⵉⵏ ⵙ ⴰⵙⵓⵔⵙ ⴰⵎⴰⴷⴰⵏ, ⵏⵖ ⵡⵉⵏ ⴰⵢⴷⴰ ⵏⵖ ⵡⵉⵏ ⵜⵍⴰⵍⵉⵜ ⵏⵖ ⴰⵙⵓⵔⵙ ⵢⴰⴹⵏ. ⴰⵎⵔ ⴰⵙⵏⵓⵃⵢⵓ ⵏⴳⵔ ⵉⵔⴳⴰⵣⵏ ⵜⵉⵎⵖⴰⵔⵉⵏ. ⵓⵔ ⴷ ⵉⵇⵇⴰⵏ ⴰⴷ ⵢⵉⵍⵉ ⵓⵙⵏⵓⵃⵢⵓ ⵉⵟⵟⴼⵏ ⵙ ⵡⴰⴷⴷⴰⴷ ⴰⵙⵔⵜⴰⵏ, ⵏⵖ ⴰⵣⵔⴼⴰⵏ ⵏⵖ ⴰⵎⴰⴹⵍⴰⵏ ⵏ ⵜⴰⵎⵓⵔⵜ","nɣ mad iẓlin s asurs amadan, nɣ win ayda nɣ win tlalit nɣ asurs yaḍn. amr asnuḥyu ngr irgazn timɣarin. ur d iqqan ad yili usnuḥyu iṭṭfn s waddad asrtan, nɣ azrfan nɣ amaḍlan n tamurt" +tifinagh_generic,"ⵏⵖ ⴰⴽⴰⵍ ⵖ ⵉⴷⴷⵔ ⵓⴼⴳⴰⵏ, ⴰⴷ ⵜⴳ ⵜⵎⵓⵔⵜ ⴰⴷ ⵏⵖ ⴰⴽⴰⵍ ⴰⴷ ⴰⴷⵔⴼⵉ, ⵏⵖ ⴰⵎⵙⵏⴰⵍ ⵏⵖ ⵡⴰⵔⴰⵙⵉⵎⴰⵏ ⵏⵖ ⴰⵙ ⵉⵜⵜⵓⴳⴰ ⴽⵔⴰ ⵏ ⵓⵡⵜⵜⵓ.","Nɣ akal ɣ iddr ufgan, ad tg tmurt ad nɣ akal ad adrfi, nɣ amsnal nɣ warasiman nɣ as ittuga kra n uwttu.",,"{""capitalize"": ""first""}" +tifinagh_generic,ⵉⵎⴷⴰⵏⴻⵏ⵰ ⴰⴽⴽⴻⵏ ⵎⴰ ⵍⵍⴰⵏ ⵜⵜⵍⴰⵍⴻⵏ ⴷ ⵉⵍⴻⵍⵍⵉⵢⴻⵏ ⵎⵙⴰⵡⴰⵏ ⴷⵉ ⵍⵃⵡⴻⵕⵎⴰ ⴷ ⵢⵉⵣⴻⵔⴼⴰⵏ-ⴳⵀⵓⵔ ⵙⴻⵏ ⵜⴰⵎⵙⴰⴽⵡⵉⵜ ⴷ ⵍⴰ̂ⵇⵓⴻⵍ ⵓ ⵢⴻⵙⵙⴻⴼⴽ ⴰⴷ-ⵜⵉⵍⵉ ⵜⴻⴳⵎⴰⵜⵜ ⴳⴰⵔ ⴰⵙⴻⵏ.,"Imdanen, akken ma llan ttlalen d ilelliyen msawan di lḥweṛma d yizerfan-ghur sen tamsakwit d lâquel u yessefk ad-tili tegmatt gar asen.",,"{""capitalize"": ""first""}"