Модуль:TranslateThis
Перейти к навигации
Перейти к поиску
Этому шаблону не хватает документации. Вы можете помочь проекту, сделав описание шаблона: что он делает, как его использовать, какие параметры он принимает. Это поможет другим использовать его.
Для оформления можете воспользоваться {{doc}} или {{doc-inline}}. Не забывайте помещать описание внутрь <noinclude></noinclude>. P.S. Также не забываем про категорию. |
return { main = function( frame )
function shallowcopy(orig)
if type(orig) ~= 'table' then
return orig
end
local result = {}
for key, value in pairs(orig) do
result[key] = value
end
return result
end
local lang = frame:preprocess("{{int:lang}}") -- I don't know of any other way to get the user's language...
local args = shallowcopy(frame:getParent().args)
local anchor = args.anchor
args.anchor = nil
if (anchor and args[anchor]) then
anchor = args[anchor]
end
anchor = anchor and frame:expandTemplate( { title = "Anchor", args = { anchor } } ) or ''
local result = args[ lang ]
if result and result ~= '' then
result = '<span lang="' .. lang .. '">' .. result .. '</span>'
else
result = ''
for i, v in pairs( args ) do
if v ~= "" and i ~= "source" then
result = result .. ' / <span lang="' .. i .. '">' .. v .. '</span> <small>(' .. i .. ')</small>'
end
end
if args["source"] then
result = result:sub( 4 ) .. " – " .. "Want to help translate? [[" .. args["source"] .. "|Translate the missing messages.]]"
end
end
return anchor .. result
end}