Module:ko-translit: Difference between revisions
Jump to navigation
Jump to search
Created page with "local export = {} local gsub = mw.ustring.gsub local match = mw.ustring.match function export.tr(text, lang, sc) if (not text) or text == "" then return text end local HaniChars = require("Module:scripts").getByCode("Hani"):getCharacters() text = gsub(text, "%<%/?r[pt]%>", "") text = gsub(text, "%<%/?ruby%>", "") -- remove hanja from (ex.) 사전(辭典) and 辭典(사전) text = gsub(text, "%([" .. HaniChars .. "]+%)", "") text = gsub(text, "%([" .. HaniChars..." |
allow "/" in hanja annotation |
||
| Line 1: | Line 1: | ||
local export = {} | local export = {} | ||
local | |||
local | local m_str_utils = require("Module:string utilities") | ||
local gsub = m_str_utils.gsub | |||
function export.tr(text, lang, sc) | function export.tr(text, lang, sc) | ||
| Line 10: | Line 12: | ||
text = gsub(text, "%<%/?r[pt]%>", "") | text = gsub(text, "%<%/?r[pt]%>", "") | ||
text = gsub(text, "%<%/?ruby%>", "") | text = gsub(text, "%<%/?ruby%>", "") | ||
-- remove hanja from (ex.) 사전(辭典) and 辭典(사전) | -- remove hanja from (ex.) 사전(辭典) and 辭典(사전) and 온돌(溫突/溫堗) | ||
text = gsub(text, "%([" .. HaniChars .. "]+%)", "") | text = gsub(text, "%([" .. HaniChars .. "/]+%)", "") | ||
text = gsub(text, "%([" .. HaniChars .. "]*'''[" .. HaniChars .. "]+'''[" .. HaniChars .. "]*%)", "") | text = gsub(text, "%([" .. HaniChars .. "]*'''[" .. HaniChars .. "]+'''[" .. HaniChars .. "]*%)", "") | ||
text = gsub(text, "[" .. HaniChars .. "]+%((.-)%)", "%1") | text = gsub(text, "[" .. HaniChars .. "]+%((.-)%)", "%1") | ||
| Line 24: | Line 26: | ||
return text and text | return text and text | ||
:gsub("( | :gsub("(%a)%-%'(%a)", "%1-%2") | ||
:gsub("%-'''%-", "'''-") | :gsub("%-'''%-", "'''-") | ||
:gsub("%-%-", "-") | :gsub("%-%-", "-") | ||
Revision as of 22:54, 4 May 2024
- The following documentation is generated by Module:documentation/functions/translit. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module will transliterate Korean language text.
The module should preferably not be called directly from templates or other modules.
To use it from a template, use {{xlit}}.
Within a module, use Module:languages#Language:transliterate.
For testcases, see Module:ko-translit/testcases.
Functions
tr(text, lang, sc)- Transliterates a given piece of
textwritten in the script specified by the codesc, and language specified by the codelang. - When the transliteration fails, returns
nil.
local export = {}
local m_str_utils = require("Module:string utilities")
local gsub = m_str_utils.gsub
function export.tr(text, lang, sc)
if (not text) or text == "" then
return text
end
local HaniChars = require("Module:scripts").getByCode("Hani"):getCharacters()
text = gsub(text, "%<%/?r[pt]%>", "")
text = gsub(text, "%<%/?ruby%>", "")
-- remove hanja from (ex.) 사전(辭典) and 辭典(사전) and 온돌(溫突/溫堗)
text = gsub(text, "%([" .. HaniChars .. "/]+%)", "")
text = gsub(text, "%([" .. HaniChars .. "]*'''[" .. HaniChars .. "]+'''[" .. HaniChars .. "]*%)", "")
text = gsub(text, "[" .. HaniChars .. "]+%((.-)%)", "%1")
-- transform em-dash to plain hyphen-minus
text = gsub(text, "—", "-")
local HangChars = require("Module:scripts").getByCode("Hang"):getCharacters()
local m_pron = require("Module:ko-pron")
text = gsub(text, "[" .. HangChars .. "%s%p-]+", function(m1) return m_pron.romanise(m1, 2, {}, true) end)
return text and text
:gsub("(%a)%-%'(%a)", "%1-%2")
:gsub("%-'''%-", "'''-")
:gsub("%-%-", "-")
end
export.tr_revised = export.tr
return export