diff options
Diffstat (limited to 'tex/context/third/transliterator/trans_tables_scntfc.lua')
-rw-r--r-- | tex/context/third/transliterator/trans_tables_scntfc.lua | 42 |
1 files changed, 20 insertions, 22 deletions
diff --git a/tex/context/third/transliterator/trans_tables_scntfc.lua b/tex/context/third/transliterator/trans_tables_scntfc.lua index 9a4866b..7132fc8 100644 --- a/tex/context/third/transliterator/trans_tables_scntfc.lua +++ b/tex/context/third/transliterator/trans_tables_scntfc.lua @@ -1,3 +1,4 @@ +translit.tables = translit.tables or {} --===========================================================================-- -- Other transliterations -- @@ -17,7 +18,7 @@ -- Lowercase and uppercase letter Uk -- “scientific transliteration” -- ----------------------------------------------------------------------- -translit.ocs_uk = { +translit.ocs_uk = translit.make_add_dict{ ["oу"] = "u", ["оу"] = "u", ["Оу"] = "U", @@ -26,7 +27,7 @@ translit.ocs_uk = { -- Lowercase pre-Peter cyrillic characters -- “scientific transliteration” -- ----------------------------------------------------------------------------- -translit.ocs_low = { +translit.ocs_low = translit.make_add_dict{ ["а"] = "a", ["б"] = "b", ["в"] = "v", @@ -88,7 +89,7 @@ translit.tables["OCS \\quotation{scientific} transliteration lowercase"] = trans -- Uppercase pre-Peter cyrillic characters -- “scientific transliteration” -- ----------------------------------------------------------------------------- -translit.ocs_upp = { +translit.ocs_upp = translit.make_add_dict{ ["А"] = "A", ["Б"] = "B", ["В"] = "V", @@ -154,7 +155,7 @@ translit.tables["OCS \\quotation{scientific} transliteration uppercase"] = trans -- Lowercase additional pre-Peter cyrillic characters -- “scientific transliteration” -- ---------------------------------------------------------------------------------------- -translit.ocs_add_low = { +translit.ocs_add_low = translit.make_add_dict{ ["ѕ"] = "dz", -- Mapped to ẑ in ISO 9 (Macedonian …) ["ѯ"] = "ks", ["ѱ"] = "ps", @@ -176,7 +177,7 @@ translit.tables["OCS \\quotation{scientific} transliteration additional lowercas -- Uppercase additional pre-Peter cyrillic characters -- “scientific transliteration” -- ---------------------------------------------------------------------------------------- -translit.ocs_add_upp = { +translit.ocs_add_upp = translit.make_add_dict{ ["Ѕ"] = "Dz", ["Ѯ"] = "Ks", ["Ѱ"] = "Ps", @@ -208,27 +209,23 @@ function translit.scientific (mode, text) R("\224\240") * R("\128\191") * R("\128\191") + R("\241\244") * R("\128\191") * R("\128\191") * R("\128\191") - local cyr = {} + local cyr = translit.make_add_dict{} local cyruk, p_cyruk, p_cyr local scientific_parser if mode == "iso9_ocs" or mode == "iso9_ocs_hack" then - environment.loadluafile("trans_tables_iso9.lua") - translit.add_table( cyr, - translit.ru_upp, - translit.ru_low, - translit.ru_old_upp, - translit.ru_old_low, - translit.non_ru_upp, - translit.non_ru_low, - translit.ocs_add_low, - translit.ocs_add_upp - ) + environment.loadluafile("trans_tables_iso9") + cyr = translit.ru_upp + + translit.ru_low + + translit.ru_old_upp + + translit.ru_old_low + + translit.non_ru_upp + + translit.non_ru_low + + translit.ocs_add_low + + translit.ocs_add_upp if mode == "iso9_ocs_hack" then - translit.add_table( cyr, - translit.ru_jer_hack - ) + cyr = cyr + translit.ru_jer_hack end p_cyr = Cs(utfchar) / cyr @@ -241,7 +238,8 @@ function translit.scientific (mode, text) else cyruk = cyruk + P(i) end end - translit.add_table( cyr, translit.ocs_low, translit.ocs_upp ) + + cyr = translit.ocs_low + translit.ocs_upp p_cyruk = Cs(P(cyruk)) / translit.ocs_uk p_cyr = Cs(utfchar) / cyr @@ -250,7 +248,7 @@ function translit.scientific (mode, text) elseif mode == ("ocs_gla") then environment.loadluafile( "trans_tables_glag") - translit.add_table( cyr, translit.ocs_gla_low, translit.ocs_gla_upp ) + cyr = translit.ocs_gla_low + translit.ocs_gla_upp p_cyr = Cs(utfchar) / cyr scientific_parser = Cs((p_cyr + utfchar)^0) end |