モジュール:ISO639言語名/testcases
表示
これはモジュール「モジュール:ISO639言語名」のテストケースページです。テストケースの結果を参照してください。 |
local p = {}
function p.compareWithCLDR()
local sortedPairs = require('モジュール:TableTools').sortedPairs
local langMappingTitle = 'モジュール:ISO639言語名/data'
local mwLanguageNames = mw.language.fetchLanguageNames('ja', 'all')
local mwLanguageNamesEn = mw.language.fetchLanguageNames('en', 'all')
local langMap = {}
for code, name in pairs(mwLanguageNames) do
langMap[code] = { ['cldr'] = name, ['cldrEn'] = mwLanguageNamesEn[code] }
end
for code, name in pairs(mw.loadData(langMappingTitle).full_name) do
if langMap[code] then
langMap[code]['module'] = name
else
langMap[code] = { ['module'] = name }
end
end
local res = mw.html.create('table')
:addClass('wikitable sortable')
:tag('tr')
:tag('th')
:wikitext('言語コード')
:done()
:tag('th')
:wikitext('[[', langMappingTitle, '|モジュール]]')
:done()
:tag('th')
:wikitext('[[mw:Extension:CLDR/ja|CLDR]]による日本語名')
:done()
:tag('th')
:wikitext('等しいか')
:done()
:tag('th')
:wikitext('CLDRによる英語名')
:allDone()
local function makeLangNameLink(langName)
if not langName or langName == '' then return '' end
return '[[' .. langName .. ']]'
end
local tdYes = mw.html.create('td')
:cssText('background-color:#9f9;vertical-align:middle;text-align:center;')
:wikitext('Yes')
local tdNo = mw.html.create('td')
:cssText('background-color:#f99;vertical-align:middle;text-align:center;')
:wikitext('No')
for code, v in sortedPairs(langMap) do
res
:tag('tr')
:tag('td')
:wikitext('[[:en:ISO 639:', code, '|', code, ']]')
:done()
:tag('td')
:wikitext(makeLangNameLink(v['module']))
:done()
:tag('td')
:wikitext(makeLangNameLink(v['cldr']))
:done()
:node((v['module'] == v['cldr']) and tdYes or tdNo)
:tag('td')
:wikitext(v['cldrEn'])
:done()
:allDone()
end
return tostring(res)
end
return p