模組:Txg-translit
這個模組將轉寫西夏語的文字。
最好不要直接從模板或其他模組呼叫此模組;要從模板中使用它,
請使用{{xlit}}
;
要從模組中使用它,請使用Module:languages#Language:transliterate。
關於測試用例,請見Module:Txg-translit/testcases。
函式
tr(text, lang, sc)
- Transliterates a given piece of
text
written in the script specified by the codesc
, and language specified by the codelang
. - When the transliteration fails, returns
nil
.
local export = {}
local LFW2008 = mw.loadData("Module:txg/data/LFW2008")
local meta = {
[" "] = true,
["-"] = true,
["…"] = true
}
local meta_concat = {}
for char in pairs(meta) do
table.insert(meta_concat, char)
end
meta_concat = require("Module:string utilities").pattern_escape(table.concat(meta_concat))
function export.tr(text, lang, sc)
local UTF8_char = "[%z\1-\127\194-\244][\128-\191]*"
local trtab = {}
local i = 0
for char in mw.ustring.gmatch(text, ".") do
i = i + 1
if meta[char] then
table.insert(trtab, char)
elseif char == "𖿠" and i > 1 then
table.insert(trtab, trtab[i-1])
else
table.insert(trtab, LFW2008[char] or "?")
end
end
text = table.concat(trtab, " ")
text = text:gsub(" ?([" .. meta_concat .. "]) ?", "%1")
local _, count = mw.ustring.gsub(text, "[" .. meta_concat .. "%?]", "")
if count == mw.ustring.len(text) then
return nil
else
return "*" .. text
end
end
return export