Module:Kana
Revision as of 04:52, 18 July 2017 by blackwiki>Mr. Stradivarius (create kana-converting module)
-- This module converts between Japanese hiragana and katakana
local kanaData = mw.loadData('Module:Kana/data')
local p = {}
local function makeConversionTable(inputKey, outputKey)
local ret = {}
for i, charData in ipairs(kanaData) do
ret[charData[inputKey]] = charData[outputKey]
end
return ret
end
local function convertString(s, inputKey, outputKey)
local conversionTable = makeConversionTable(inputKey, outputKey)
local ret = mw.ustring.gsub(s, '.', conversionTable)
return ret
end
local conversionFuncs = {}
function p._htok(s)
return convertString(s, 'hiragana', 'katakana')
end
function p._ktoh(s)
return convertString(s, 'katakana', 'hiragana')
end
return setmetatable(p, {
__index = function (t, key)
return function (frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:Kana',
})
return p['_' .. key](args[1])
end
end
})