モジュール:Multilingual description

2014年4月20日 (日) 10:40時点におけるWikiSysop (トーク | 投稿記録)による版 (1版)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

このモジュールについての説明文ページを モジュール:Multilingual description/doc に作成できます

local p = {}

function mld(pargs)
	local frame = mw.getCurrentFrame()
	local sorting = require('Module:Multilingual description/sort')
	local processed = {}
	local ret = {}
	local addDesc = function(langcode, val)
		table.insert( ret, frame:expandTemplate{ title = 'ls', args = { langcode, val, classes = 'description' } } )
	end
	
	
	for k, v in pairs( sorting ) do
		if pargs[v] then
			addDesc(v, pargs[v])
		end
		processed[v] = 1
	end

	for k, v in pairs( pargs ) do
		if not processed[k] and type(k) == 'string' and mw.language.isSupportedLanguage(k) then
			addDesc(k, v)
		end
	end

	return table.concat(ret)
end

function p.mld(frame)
	local pargs = ( frame:getParent() or {} ).args or {}

	return mld(pargs)
end

--function p.runTests()
	--local expected = '{{ls|de|Leipzig ist|classes=description}}{{ls|en|Leipzig is|classes=description}}{{ls|fr|Leipzig est|classes=description}}{{ls|hsb|Lipsk je|classes=description}}{{ls|oc|Leipzig es|classes=description}}'
	--local input = { ['fr'] = 'Leipzig est', ['en'] = 'Leipzig is', ['hsb'] = 'Lipsk je', ['de'] = 'Leipzig ist', ['oc'] = 'Leipzig es' }
	--return mld(input) == expected
--end

return p