模块:Lang zh cn
跳到导航
跳到搜索
此模块的文档可以在模块:Lang zh cn/doc创建
--- 该模块用于通过键获取伟大汉化中提供的翻译
local p = {}
local function csv_get(this, row, column)
-- 尝试转为数字索引
column = this.rowHeads[column]
row = this.cellDatas[row]
if column and row then
local result = row[column]-- 34为"符号
if string.byte(result,1,1) == 34 and string.byte(result,#result,#result) == 34 then --删除开头和结尾的" 因为实际游戏中也不存在
return mw.ustring.sub(result,2,mw.ustring.len(result)-1)
end
return result
else
return nil
end
end
function p.main(frame) --此函数给模板使用
local args = frame
if frame == mw.getCurrentFrame() then
args = require('Module:ProcessArgs').merge(true)
else
frame = mw.getCurrentFrame()
end
-- local csv = require("Module:Lang_zh_cn/data")
local csv = mw.loadData("Module:Lang_zh_cn/data")
if args.ver == "Main" then
return csv_get(csv.base, args.key, args.lang) or args.default
elseif args.ver == "Dev" then
return csv_get(csv.dev, args.key, args.lang) or args.default
elseif args.ver == "MainOrDev" then
return csv_get(csv.base, args.key, args.lang) or csv_get(csv.dev, args.key, args.lang) or args.default
else
error("未知的版本")
end
end
--和GetTranslations模板用法差不多
---@param key string
---@param lang string|nil
---@param ver string|nil
---@return string
function p.get(key, lang, ver)
if key == nil then
error("键值为Nil!")
end
if ver == nil then
ver = "Main"
end
if lang == nil then
lang = "zh-cn"
end
local csv = mw.loadData("Module:Lang_zh_cn/data")
if ver == "Main" then
return csv_get(csv.base, key, lang) or "[undefined]"
elseif ver == "Dev" then
return csv_get(csv.dev, key, lang) or "[undefined]"
elseif ver == "MainOrDev" then
return csv_get(csv.base, args.key, args.lang) or csv_get(csv.dev, args.key, args.lang) or "[undefined]"
else
error("未知的版本")
end
end
return p