summaryrefslogtreecommitdiff
path: root/tex/context/third/transliterator/trans_tables_scntfc.lua
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/third/transliterator/trans_tables_scntfc.lua')
-rw-r--r--tex/context/third/transliterator/trans_tables_scntfc.lua42
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