Module:Hepburner: Difference between revisions
DarmaniLink (talk | contribs) there we (actually) go :) |
DarmaniLink (talk | contribs) no long i, oops! |
||
Line 5: | Line 5: | ||
local diacritics = { |
local diacritics = { |
||
["aa"] = "ā", |
["aa"] = "ā", |
||
["ii"] = "ī", |
|||
["uu"] = "ū", |
["uu"] = "ū", |
||
["ee"] = "ē", |
["ee"] = "ē", |
||
Line 11: | Line 10: | ||
["ou"] = "ō", |
["ou"] = "ō", |
||
["Aa"] = "Ā", |
["Aa"] = "Ā", |
||
["Ii"] = "Ī", |
|||
["Uu"] = "Ū", |
["Uu"] = "Ū", |
||
["Ee"] = "Ē", |
["Ee"] = "Ē", |
||
Line 17: | Line 15: | ||
["Ou"] = "Ō", |
["Ou"] = "Ō", |
||
["AA"] = "Ā", |
["AA"] = "Ā", |
||
["II"] = "Ī", |
|||
["UU"] = "Ū", |
["UU"] = "Ū", |
||
["EE"] = "Ē", |
["EE"] = "Ē", |
Revision as of 03:37, 3 March 2024
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}} => Kinō
{{#invoke:Hepburner|toHepburn|Ooki}} => Ōki
{{#invoke:Hepburner|toHepburn|kara-age}} => kara-age
{{#invoke:Hepburner|toHepburn|sakkaa}} => sakkā
{{#invoke:Hepburner|toHepburn|raamen}} => rāmen
{{#invoke:Hepburner|toHepburn|ヴィデオ}} => ヴィデオ
{{#invoke:Hepburner|toHepburn|いこう}} => いこう
{{#invoke:Hepburner|toHepburn|やった}} => やった
{{#invoke:Hepburner|toHepburn|いきましょう}} => いきましょう
{{#invoke:Hepburner|toHepburn|ちゅうにびょう}} => ちゅうにびょう
{{#invoke:Hepburner|toHepburn|つづく}} => つづく
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
-- standard long vowel patterns
local diacritics = {
["aa"] = "ā",
["uu"] = "ū",
["ee"] = "ē",
["oo"] = "ō",
["ou"] = "ō",
["Aa"] = "Ā",
["Uu"] = "Ū",
["Ee"] = "Ē",
["Oo"] = "Ō",
["Ou"] = "Ō",
["AA"] = "Ā",
["UU"] = "Ū",
["EE"] = "Ē",
["OO"] = "Ō",
["OU"] = "Ō"
}
local p = {}
--input: 1:1 transliterated romanji
function p.toHepburn(frame)
local romanji = frame.args[1]
for target, replacement in pairs(diacritics) do
romanji = romanji:gsub(target, replacement)
end
return romanji
end
return p