diff options
author | Philipp Gesang <pgesang@ix.urz.uni-heidelberg.de> | 2010-12-29 00:00:16 +0100 |
---|---|---|
committer | Philipp Gesang <pgesang@ix.urz.uni-heidelberg.de> | 2010-12-29 00:00:16 +0100 |
commit | c648ccf7728650440b6d7046211128a58ddbbc5f (patch) | |
tree | b33495bf6a00ff11ed1ff0a2371395d0147f41db /tex/context/third/transliterator/transliterator.lua | |
parent | 891e6c10ebffe2cb1e9a6a6d9987a6583b37369e (diff) | |
download | transliterator-c648ccf7728650440b6d7046211128a58ddbbc5f.tar.gz |
restructured main transliteration procedure to not redundantly reload tables
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 |