Module:Xd

此后如竟没有炬火,我便是唯一的光。
荆哲留言 | 贡献2022年2月21日 (一) 11:12的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)

此模块的文档可以在Module:Xd/doc创建

--希顶语翻译专用模块--
--2021-8-26--
local module = {}
local getArgs = require('Module:Arguments').getArgs

function xtran(input)--标准转换器
	local text = input
	local done = {}
	--[[旧的过时替换表]]--
--[[    local keyu={"^","~","~","1_`","2_`","3_`","4_`","5_`","6_`","7_`","8_`","9_`","0_`","T_`","n_`","火糸","纟火","糹火","疒开","纟华","糹華","纟太","糹太","品乙","衤尹","衤壹","⇧!","⇧b","⇧p","⇧m","⇧w","⇧j","⇧q","⇧x","⇧y","⇧n","⇧z","⇧D","⇧s","⇧r","⇧H","⇧N","⇩!","⇩b","⇩p","⇩m","⇩w","⇩j","⇩q","⇩x","⇩y","⇩n","⇩z","⇩D","⇩s","⇩r","⇩H","⇩N","⇧l","⇧d","⇧t","⇧g","⇧k","⇧h","⇧4","⇧5","⇧v","⇧F","⇧7","⇧B","⇧c","⇧f","⇧u","⇧a","⇩l","⇩d","⇩t","⇩g","⇩k","⇩h","⇩4","⇩5","⇩v","⇩F","⇩7","⇩B","⇩c","⇩f","⇩u","⇩a","⇧o","⇧e","⇧E","⇧A","⇧Y","⇧L","⇧6","⇧2","⇧T","⇧8","⇧3","⇧V","⇧1","⇧i","⇧X","⇧9","⇩o","⇩e","⇩E","⇩A","⇩Y","⇩L","⇩6","⇩2","⇩T","⇩8","⇩3","⇩V","⇩1","⇩i","⇩X","⇩9","⇧W","⇧P","⇧J","⇧U","⇧R","⇧Z","⇧O","⇧0","⇧K","⇧Q","⇧G","⇧I","⇧S","⇧M","⇧C","⇧s`","⇩W","⇩P","⇩J","⇩U","⇩R","⇩Z","⇩O","⇩0","⇩K","⇩Q","⇩G","⇩I","⇩S","⇩M","⇩C","⇩s`","⇧r`","⇧P`","⇧R`","⇧Q`","⇧k`","⇧8`","⇧5`","⇧m`","⇧w`","⇧Y`","⇧a`","⇧N`","⇧x`","⇧O`","⇧C`","⇧q`","⇩r`","⇩P`","⇩R`","⇩Q`","⇩k`","⇩8`","⇩5`","⇩m`","⇩w`","⇩Y`","⇩a`","⇩N`","⇩x`","⇩O`","⇩C`","⇩q`","⇧g`","⇧v`","⇧L`","⇧p`","⇧6`","⇧$`","⇧?`","⇧W`","⇧n`","⇩g`","⇩v`","⇩L`","⇩p`","⇩6`","⇩$`","⇩?`","⇩W`","⇩n`","!","b","p","m","w","j","q","x","y","n","z","D","s","r","H","N","l","d","t","g","k","h","4","5","v","F","7","B","c","f","u","a","o","e","E","A","Y","L","6","2","T","8","3","V","1","i","X","9","W","P","J","U","R","Z","O","0","K","Q","G","I","S","M","C","s`","r`","P`","R`","Q`","k`","8`","5`","m`","w`","Y`","a`","N`","x`","O`","C`","q`","g`","v`","L`","p`","6`","$`","?`","W`","n`"}
    local valu={"⇧","⇩","⇩","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""}
	]]--

	local keya={"~","```","``","1_`","2_`","3_`","4_`","5_`","6_`","7_`","8_`","9_`","0_`","T_`","n_`","N_`","i_u","u_i"}
	local vala={"⇩","萘","","","","","","","","","","","","","","","",""}                                             

	local keyb={"!`","b","p","m","w","j","q","x","y","n","z","D","s","r","H","N","l","d","t","g","k","h","4","5","v","F","7","B","c","f","u","a","o","e","E","A","Y","L","6","2","T","8","3","V","1","i","X","9","W","P","J","U","R","Z","O","0","K","Q","G","I","S","M","C","s`","r`","P`","R`","Q`","k`","8`","5`","m`","w`","Y`","a`","N`","x`","O`","C`","q`","g`","v`","L`","p`","6`","$`","¥`","W`","n`",     "y`"}
	local valb={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",    ""}

	local keyc={"⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧","⇧"}
	local valc={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""}

	local keyd={"⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","⇩","萘"}
	local vald={"","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","`"}

	for ia=#keya,1,-1 do
		text = string.gsub(text, keya[ia], vala[ia])
	end
	for ib=#keyb,1,-1 do
		text = string.gsub(text, keyb[ib], valb[ib])
	end	
	for ic=#keyc,1,-1 do
		text = string.gsub(text, keyc[ic], valc[ic])
	end	
	for id=#keyd,1,-1 do
		text = string.gsub(text, keyd[id], vald[id])
	end	
	return text
end

function module.longtran(frame)--长文本翻译,用[]框起希顶语文本
    local args = getArgs(frame)
    local inp = args[1]	
    local outp=""
    local tem=""
    local statu=0
    local place=1
    while(place<= #inp) do
        local ch=inp:sub(place,place)
        if(ch=="[") then
            statu=1
            place=place+1
        else
            if(ch=="]") then
                statu=0
                place=place+1
                outp=outp..xtran(tem)
                tem=""
            else
                if(statu==0) then
                    outp=outp..ch
                    place=place+1
                else
                    tem=tem..ch 
                    place=place+1
                end
            end    
        end
        
    end
    --print(outp.."  "..tem)
    --print(outp)
    return outp	
end

function module.tran(frame)--用于单个的翻译
	local args = getArgs(frame)
	local text = args[1]
	return xtran(text)
end

return module