모듈:Langname: 두 판 사이의 차이

위키백과>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 lang_name[code] or '언어 오류(' .. code .. ')'
     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.doc(frame)
function lang.article(frame)
     local code = string.lower(frame.args.code)
     local code = string.lower(frame.args.code)
      
      
     return lang_article[code] or lang_name[code] or '언어 오류(' .. code .. ')'
     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 lang_name[code] or '언어 오류(' .. code .. ')'
     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 lang_article[code] then
     if link == 'no' then
         return '[[' .. lang_article[code] .. '|' .. lang_name[code] .. ']]'
        return name or '[[언어 오류|언어 오류(' .. code .. ')]]'
     elseif lang_name[code] then
    elseif article then
         return '[[' .. lang_name[code] .. ']]'
         return '[[' .. article .. '|' .. name .. ']]'
     elseif name then
         return '[[' .. name .. ']]'
     else
     else
         return '[[언어 오류]](' .. code .. ')'
         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
• 현재 페이지 URL 줄이기