ماڈیول:ko-translit
Appearance
Module:ko-translit/testcases: لوا خطا package.lua میں 80 سطر پر: module 'Module:string utilities' not found۔
local export = {}
local gsub = mw.ustring.gsub
local match = mw.ustring.match
function export.tr(word, lang, sc)
-- remove hanja
word = gsub(word, "%([一-鿿㐀-䶿]+%)", "")
word = gsub(word, "%([一-鿿㐀-䶿]*'''[一-鿿㐀-䶿]+'''[一-鿿㐀-䶿]*%)", "")
-- transform em-dash to plain hyphen-minus
word = gsub(word, "—", "-")
if match(word, "^[ㅂㅈㄷㄱㅅㅁㄴㅇㄹㅎㅋㅌㅊㅍㄸㅃㅉㄲㅆㅛㅕㅑㅐㅔㅗㅓㅏㅣㅠㅜㅡㅖㅒ%-]+$") then
return (gsub(word,
"[ㅂㅈㄷㄱㅅㅁㄴㅇㄹㅎㅋㅌㅊㅍㄸㅃㅉㄲㅆㅛㅕㅑㅐㅔㅗㅓㅏㅣㅠㅜㅡㅖㅒ]", {
["ㅂ"] = "ب", ["ㅈ"] = "ج", ["ㄷ"] = "د", ["ㄱ"] = "گ", ["ㅅ"] = "س",
["ㅁ"] = "م", ["ㄴ"] = "ن", ["ㅇ"] = "ء", ["ㄹ"] = "ل", ["ㅎ"] = "ہ",
["ㅋ"] = "کھ", ["ㅌ"] = "تھ", ["ㅊ"] = "چھ", ["ㅍ"] = "پھ",
["ㄸ"] = "تّ", ["ㅃ"] = "پّ", ["ㅉ"] = "جّ", ["ㄲ"] = "کّ", ["ㅆ"] = "سّ",
["ㅛ"] = "یو", ["ㅕ"] = "یؤ", ["ㅑ"] = "یا", ["ㅐ"] = "یَیْ", ["ㅔ"] = "یْ",
["ㅗ"] = "وْ", ["ㅓ"] = "ؤ", ["ㅏ"] = "ا", ["ㅣ"] = "ی", ["ㅠ"] = "یُو",
["ㅜ"] = "ُو", ["ㅡ"] = "ِیُ", ["ㅖ"] = "ییْ", ["ㅒ"] = "یَیْ" }
))
end
if not match(word, "[가-힣]") then
return nil
end
-- transform compat jamo into a form [[Module:ko-pron]] can handle
-- for [[-ㅂ니까]] [[-ㅁ둥]] etc.
-- could be moved to [[Module:ko-pron]]
if match(word, "%-[ㅂㅈㄷㄱㅅㅁㄴㅇㄹㅎㅋㅌㅊㅍㄲㅆ]") then
word = gsub(word,
"[ㅂㅈㄷㄱㅅㅁㄴㅇㄹㅎㅋㅌㅊㅍㄲㅆ]", {
["ㅂ"] = "ᆸ", ["ㅈ"] = "ᆽ", ["ㄷ"] = "ᆮ", ["ㄱ"] = "ᆨ", ["ㅅ"] = "ᆺ",
["ㅁ"] = "ᆷ", ["ㄴ"] = "ᆫ", ["ㅇ"] = "ᆼ", ["ㄹ"] = "ᆯ", ["ㅎ"] = "ᇂ",
["ㅋ"] = "ᆿ", ["ㅌ"] = "ᇀ", ["ㅊ"] = "ᆾ", ["ㅍ"] = "ᇁ",
["ㄲ"] = "ᆩ", ["ㅆ"] = "ᆻ" }
)
end
local m_pron = require("Module:ko-pron")
local revised = m_pron.romanise(word, 2, {}, true)
if not revised then
return nil
end
if match(revised, "[%.%?%!]") then
revised = mw.ustring.upper(mw.ustring.sub(revised, 1, 1)) .. mw.ustring.sub(revised, 2, -1)
revised = gsub(revised, "([%.%?%!]) ([a-z%'])", "%1 ^%2")
revised = gsub(revised, "^%'%'%'", "'''^")
end
revised = gsub(revised, "%^%'%'%'", "'''^")
revised = gsub(revised, "%^%l", mw.ustring.upper)
revised = gsub(revised, '%^', '')
revised = gsub(revised, "%-'''%-", "'''-")
revised = gsub(revised, "%-%-", "-")
return revised
end
export.tr_revised = export.tr
return export