diff options
Diffstat (limited to 'tex/context/third/transliterator/transliterator.lua')
-rw-r--r-- | tex/context/third/transliterator/transliterator.lua | 56 |
1 files changed, 26 insertions, 30 deletions
diff --git a/tex/context/third/transliterator/transliterator.lua b/tex/context/third/transliterator/transliterator.lua index 36eb804..ddda144 100644 --- a/tex/context/third/transliterator/transliterator.lua +++ b/tex/context/third/transliterator/transliterator.lua @@ -10,7 +10,8 @@ -- translit = translit or {} -translit.tables = translit.tables or {} +translit.tables = translit.tables or {} +translit.methods = translit.methods or {} -------------------------------------------------------------------------------- -- Predefining vowel lists @@ -225,35 +226,30 @@ end -- It loads the transliteration tables according to \type{method} and calls the -- corresponding function. +-- Those supposedly are the most frequently used so it won’t hurt to preload +-- them. +environment.loadluafile ("trans_tables_iso9") + function translit.transliterate (method, text) - if method == "ru" or - method == "ru_old" or - method == "ru_old_jer_hack" or - method == "all" - then - environment.loadluafile ("trans_tables_iso9") - text = translit.iso9 (method, text) - elseif method == "ru_transcript_de" or - method == "ru_transcript_de_exp" or -- experimental lpeg - method == "ru_transcript_en" or - method == "ru_transcript_en_exp" or - method == "ru_cz" or - method == "ocs_cz" - then - environment.loadluafile ("trans_tables_trsc") - text = translit.transcript (method, text) - elseif method == "iso9_ocs" or - method == "iso9_ocs_hack" or - method == "ocs" or - method == "ocs_gla" - then - environment.loadluafile ("trans_tables_scntfc") - text = translit.scientific (method, text) - elseif method == "gr" or - method == "gr_n" - then - environment.loadluafile ("trans_tables_gr") - text = translit.dogreek (method, text) + local methods = translit.methods + if not methods[method] then -- register tables and method + if method == "ru_transcript_de" or + method == "ru_transcript_de_exp" or -- experimental lpeg + method == "ru_transcript_en" or + method == "ru_transcript_en_exp" or + method == "ru_cz" or + method == "ocs_cz" then + environment.loadluafile ("trans_tables_trsc") + elseif method == "iso9_ocs" or + method == "iso9_ocs_hack" or + method == "ocs" or + method == "ocs_gla" then + environment.loadluafile ("trans_tables_scntfc") + elseif method == "gr" or + method == "gr_n" then + environment.loadluafile ("trans_tables_gr") + end end - context (text) + + context ( methods[method](text) ) end |