Module:Hepburner
Romanizes double vowels per the standard outlined in Hepburn Romanization.
Implemented in Template:Hepburn - Please use this instead of using this directly. It enforces subst for this *very* costly module.
Any double vowels will get converted to a long vowel, ou will get converted to ō.
{{#invoke:Hepburner|toHepburn|Kinou}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|Ooki}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|kara-age}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|sakkaa}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|raamen}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|ヴィデオ}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|いこう}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|やった}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|いきましょう}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|ちゅうにびょう}} => Lua error at line 3: assign to undeclared variable 'p'.
{{#invoke:Hepburner|toHepburn|つづく}} => Lua error at line 3: assign to undeclared variable 'p'.
note: oU aA or the like will break it. You should never, ever, ever do this regardless, but note that is a limitation. If you need that, add it to the list, following the current pattern.
require('strict');
-- Converts romanji input to modified hepburn, I recommend subst:ing
p = {}
-- standard long vowel patterns
local diacritics = {
["aa"] = "ā",
["ii"] = "ī",
["uu"] = "ū",
["ee"] = "ē",
["oo"] = "ō",
["ou"] = "ō",
["Aa"] = "Ā",
["Ii"] = "Ī",
["Uu"] = "Ū",
["Ee"] = "Ē",
["Oo"] = "Ō",
["Ou"] = "Ō",
["AA"] = "Ā",
["II"] = "Ī",
["UU"] = "Ū",
["EE"] = "Ē",
["OO"] = "Ō",
["OU"] = "Ō"
}
--input: 1:1 transliterated romanji
function p.toHepburn(frame, romanji)
for target, replacement in pairs(diacritics) do
romanji = romanji:gsub(target, replacement)
end
return romanji
end
return p