위키백과>ChongDae 편집 요약 없음 |
m (판 16개를 가져왔습니다: 위키백과에서 가져옴) |
||
(다른 사용자 한 명의 중간 판 8개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
--[[ | --[[ | ||
This module provides a language name handling operations based on ISO 639. | This module provides a language name handling operations based on ISO 639 and Unicode CLDR information. | ||
- ChongDae | - ChongDae | ||
]] | |||
local lang = {} | local lang = {} | ||
10번째 줄: | 10번째 줄: | ||
local langdata = mw.loadData('Module:Langname/data') | local langdata = mw.loadData('Module:Langname/data') | ||
local lang_name = langdata.lang_name | local lang_name = langdata.lang_name | ||
local lang_autonym = langdata.lang_autonym | |||
local lang_article = langdata.lang_article | local lang_article = langdata.lang_article | ||
local lang_wikipedia = langdata.lang_wikipedia | local lang_wikipedia = langdata.lang_wikipedia | ||
--[[ | |||
-- Helper functions | |||
--]] | |||
local function getCldrName(code) | |||
local name = mw.language.fetchLanguageName(code, 'ko') | |||
if name == '' then | |||
return nil | |||
elseif string.match(name, '[(),A-Za-z]') then -- 이름에 영문자나 괄호, 쉼표가 들어간 경우는 오류 처리함. | |||
return nil | |||
else | |||
return name | |||
end | |||
end | |||
function getCldrAutonym(code) | |||
local lang = string.match(code, '([a-z]+)') -- get 'en' from 'en-us' | |||
return lang_autonym[code] or mw.language.fetchLanguageName(code, lang) | |||
end | |||
local function getLanguageName(code) | |||
return lang_name[code] or getCldrName(code) | |||
end | |||
function lang.name(frame) | function lang.name(frame) | ||
local code = string.lower(frame.args.code) | local code = string.lower(frame.args.code) | ||
return | return getLanguageName(code) or '언어 오류(' .. code .. ')' | ||
end | |||
function lang.autonym(frame) | |||
local code = string.lower(frame.args.code) | |||
return getCldrAutonym(code) or '언어 오류(' .. code .. ')' | |||
end | end | ||
function lang. | function lang.article(frame) | ||
local code = string.lower(frame.args.code) | local code = string.lower(frame.args.code) | ||
return lang_article[code] or | return lang_article[code] or getLanguageName(code) or '언어 오류' | ||
end | end | ||
28번째 줄: | 60번째 줄: | ||
local code = string.lower(frame.args.code) | local code = string.lower(frame.args.code) | ||
return lang_wikipedia[code] or | return lang_wikipedia[code] or getLanguageName(code) or '언어 오류(' .. code .. ')' | ||
end | end | ||
function lang.link(frame) | function lang.link(frame) | ||
local code = string.lower(frame.args.code) | local code = string.lower(frame.args.code) | ||
local link = frame.args.link | |||
local article = lang_article[code] | |||
local name = getLanguageName(code) | |||
if | if link == 'no' then | ||
return '[[' .. | return name or '[[언어 오류|언어 오류(' .. code .. ')]]' | ||
elseif | elseif article then | ||
return '[[' .. | return '[[' .. article .. '|' .. name .. ']]' | ||
elseif name then | |||
return '[[' .. name .. ']]' | |||
else | else | ||
return '[[언어 오류 | return '[[언어 오류|언어 오류(' .. code .. ')]]' | ||
end | end | ||
end | end | ||
return lang | return lang |
2020년 3월 29일 (일) 08:19 기준 최신판
이 모듈에 대한 설명문서는 모듈:Langname/설명문서에서 만들 수 있습니다
--[[
This module provides a language name handling operations based on ISO 639 and Unicode CLDR information.
- ChongDae
]]
local lang = {}
local langdata = mw.loadData('Module:Langname/data')
local lang_name = langdata.lang_name
local lang_autonym = langdata.lang_autonym
local lang_article = langdata.lang_article
local lang_wikipedia = langdata.lang_wikipedia
--[[
-- Helper functions
--]]
local function getCldrName(code)
local name = mw.language.fetchLanguageName(code, 'ko')
if name == '' then
return nil
elseif string.match(name, '[(),A-Za-z]') then -- 이름에 영문자나 괄호, 쉼표가 들어간 경우는 오류 처리함.
return nil
else
return name
end
end
function getCldrAutonym(code)
local lang = string.match(code, '([a-z]+)') -- get 'en' from 'en-us'
return lang_autonym[code] or mw.language.fetchLanguageName(code, lang)
end
local function getLanguageName(code)
return lang_name[code] or getCldrName(code)
end
function lang.name(frame)
local code = string.lower(frame.args.code)
return getLanguageName(code) or '언어 오류(' .. code .. ')'
end
function lang.autonym(frame)
local code = string.lower(frame.args.code)
return getCldrAutonym(code) or '언어 오류(' .. code .. ')'
end
function lang.article(frame)
local code = string.lower(frame.args.code)
return lang_article[code] or getLanguageName(code) or '언어 오류'
end
function lang.wikipedia(frame)
local code = string.lower(frame.args.code)
return lang_wikipedia[code] or getLanguageName(code) or '언어 오류(' .. code .. ')'
end
function lang.link(frame)
local code = string.lower(frame.args.code)
local link = frame.args.link
local article = lang_article[code]
local name = getLanguageName(code)
if link == 'no' then
return name or '[[언어 오류|언어 오류(' .. code .. ')]]'
elseif article then
return '[[' .. article .. '|' .. name .. ']]'
elseif name then
return '[[' .. name .. ']]'
else
return '[[언어 오류|언어 오류(' .. code .. ')]]'
end
end
return lang