<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FCXuesong%2FTranslations</id>
	<title>Module:Sandbox/CXuesong/Translations - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FCXuesong%2FTranslations"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/CXuesong/Translations&amp;action=history"/>
	<updated>2026-06-19T08:43:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/CXuesong/Translations&amp;diff=145245&amp;oldid=prev</id>
		<title>imported&gt;CXuesong at 13:47, 1 June 2016</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/CXuesong/Translations&amp;diff=145245&amp;oldid=prev"/>
		<updated>2016-06-01T13:47:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local translations = {&lt;br /&gt;
    [&amp;quot;Warrior Cats&amp;quot;] =&lt;br /&gt;
    {&lt;br /&gt;
        de = &amp;quot;Warrior Cats&amp;quot;,&lt;br /&gt;
        fi = &amp;quot;Soturikissat&amp;quot;,&lt;br /&gt;
        fr = &amp;quot;La Guerre des Clans&amp;quot;,&lt;br /&gt;
        hu = &amp;quot;Harcosok Törzse&amp;quot;,&lt;br /&gt;
        ja = &amp;quot;ウォーリアーズ&amp;quot;,&lt;br /&gt;
        ko = &amp;quot;고양이 전사들&amp;quot;,&lt;br /&gt;
        lt = &amp;quot;Klanų Kariai&amp;quot;,&lt;br /&gt;
        nl = &amp;quot;Warrior Cats&amp;quot;,&lt;br /&gt;
        no = &amp;quot;Kattekrigerne&amp;quot;,&lt;br /&gt;
        pl = &amp;quot;Wojownicy&amp;quot;,&lt;br /&gt;
        ru = &amp;quot;Коты-воители&amp;quot;,&lt;br /&gt;
        cz = &amp;quot;Divoké kočky(first book) Válečníci(other books)&amp;quot;,&lt;br /&gt;
        es = &amp;quot;Los Gatos Guerreros&amp;quot;,&lt;br /&gt;
        zh_cn = &amp;quot;猫武士&amp;quot;,&lt;br /&gt;
        zh_tw = &amp;quot;貓戰士&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    cat =&lt;br /&gt;
    {&lt;br /&gt;
        de = &amp;quot;Katze&amp;quot;,&lt;br /&gt;
        fi = &amp;quot;kissa&amp;quot;,&lt;br /&gt;
        fr = &amp;quot;chat&amp;quot;,&lt;br /&gt;
        hu = &amp;quot;macska&amp;quot;,&lt;br /&gt;
        ja = &amp;quot;猫&amp;quot;,&lt;br /&gt;
        ko = &amp;quot;고양이&amp;quot;,&lt;br /&gt;
        lt = &amp;quot;katinas&amp;quot;,&lt;br /&gt;
        nl = &amp;quot;kat&amp;quot;,&lt;br /&gt;
        no = &amp;quot;katt&amp;quot;,&lt;br /&gt;
        pl = &amp;quot;kot&amp;quot;,&lt;br /&gt;
        ru = &amp;quot;кот (tom-cat)/кошка (she-cat)&amp;quot;,&lt;br /&gt;
        cz = &amp;quot;kocour(tom-cat) kočka(she-cat)&amp;quot;,&lt;br /&gt;
        es = &amp;quot;gato&amp;quot;,&lt;br /&gt;
        zh_cn = &amp;quot;猫&amp;quot;,&lt;br /&gt;
        zh_tw = &amp;quot;貓&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    leader =&lt;br /&gt;
    {&lt;br /&gt;
        de = &amp;quot;Anführer&amp;quot;,&lt;br /&gt;
        fi = &amp;quot;päällikkö&amp;quot;,&lt;br /&gt;
        fr = &amp;quot;chef&amp;quot;,&lt;br /&gt;
        hu = &amp;quot;vezér&amp;quot;,&lt;br /&gt;
        ja = &amp;quot;族長&amp;quot;,&lt;br /&gt;
        ko = &amp;quot;지도자&amp;quot;,&lt;br /&gt;
        lt = &amp;quot;vadas&amp;quot;,&lt;br /&gt;
        nl = &amp;quot;leider&amp;quot;,&lt;br /&gt;
        no = &amp;quot;leder&amp;quot;,&lt;br /&gt;
        pl = &amp;quot;przywódca&amp;quot;,&lt;br /&gt;
        ru = &amp;quot;предводитель (tom-cat)/предводительница (she-cat)&amp;quot;,&lt;br /&gt;
        cz = &amp;quot;velitel klanu&amp;quot;,&lt;br /&gt;
        es = &amp;quot;líder&amp;quot;,&lt;br /&gt;
        zh_cn = &amp;quot;族长&amp;quot;,&lt;br /&gt;
        zh_tw = &amp;quot;族長&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    Leafpool =&lt;br /&gt;
    {&lt;br /&gt;
        de = &amp;quot;Blattsee&amp;quot;,&lt;br /&gt;
        fi = &amp;quot;Lehtilampi&amp;quot;,&lt;br /&gt;
        fr = &amp;quot;Feuille de Lune&amp;quot;,&lt;br /&gt;
        hu = nil,&lt;br /&gt;
        ja = &amp;quot;リーフプール&amp;quot;,&lt;br /&gt;
        ko = nil,&lt;br /&gt;
        lt = nil,&lt;br /&gt;
        nl = &amp;quot;Loofpoel&amp;quot;,&lt;br /&gt;
        no = &amp;quot;Løvtjern&amp;quot;,&lt;br /&gt;
        pl = nil,&lt;br /&gt;
        ru = &amp;quot;Листвичка&amp;quot;,&lt;br /&gt;
        cz = nil,&lt;br /&gt;
        es = &amp;quot;Hojarasca Acuática&amp;quot;,&lt;br /&gt;
        zh_cn = &amp;quot;叶池&amp;quot;,&lt;br /&gt;
        zh_tw = nil&lt;br /&gt;
    },&lt;br /&gt;
    Bluestar =&lt;br /&gt;
    {&lt;br /&gt;
        de = &amp;quot;Blaustern&amp;quot;,&lt;br /&gt;
        fi = &amp;quot;Sinitähti&amp;quot;,&lt;br /&gt;
        fr = &amp;quot;Étoile Bleue&amp;quot;,&lt;br /&gt;
        hu = &amp;quot;Kékcsillag&amp;quot;,&lt;br /&gt;
        ja = &amp;quot;ブルスター&amp;quot;,&lt;br /&gt;
        ko = nil,&lt;br /&gt;
        lt = nil,&lt;br /&gt;
        nl = &amp;quot;Blauwster&amp;quot;,&lt;br /&gt;
        no = &amp;quot;Blåstjerne&amp;quot;,&lt;br /&gt;
        pl = nil,&lt;br /&gt;
        ru = &amp;quot;Синяя Звезда&amp;quot;,&lt;br /&gt;
        cz = nil,&lt;br /&gt;
        es = &amp;quot;Estrella Azul&amp;quot;,&lt;br /&gt;
        zh_cn = &amp;quot;蓝星&amp;quot;,&lt;br /&gt;
        zh_tw = nil&lt;br /&gt;
    },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- known languages (except for English)&lt;br /&gt;
&lt;br /&gt;
local languages = {&lt;br /&gt;
    cz = &amp;quot;Czech&amp;quot;,&lt;br /&gt;
    de = &amp;quot;German&amp;quot;,&lt;br /&gt;
    es = &amp;quot;Spanish&amp;quot;,&lt;br /&gt;
    fi = &amp;quot;Finnish&amp;quot;,&lt;br /&gt;
    fr = &amp;quot;French&amp;quot;,&lt;br /&gt;
    gr = &amp;quot;Greek&amp;quot;,&lt;br /&gt;
    hu = &amp;quot;Hungarian&amp;quot;,&lt;br /&gt;
    hr = &amp;quot;Croatian&amp;quot;,&lt;br /&gt;
    it = &amp;quot;Italian&amp;quot;,&lt;br /&gt;
    ja = &amp;quot;Japanese&amp;quot;,&lt;br /&gt;
    ko = &amp;quot;Korean&amp;quot;,&lt;br /&gt;
    lt = &amp;quot;Lithuanian&amp;quot;,&lt;br /&gt;
    nl = &amp;quot;Dutch&amp;quot;,&lt;br /&gt;
    no = &amp;quot;Norwegian&amp;quot;,&lt;br /&gt;
    pl = &amp;quot;Polish&amp;quot;,&lt;br /&gt;
    pt = &amp;quot;Portuguese (Brazilian)&amp;quot;,&lt;br /&gt;
    ro = &amp;quot;Romanian&amp;quot;,&lt;br /&gt;
    ru = &amp;quot;Russian&amp;quot;,&lt;br /&gt;
    si = &amp;quot;Slovenian&amp;quot;,&lt;br /&gt;
    sk = &amp;quot;Slovakian&amp;quot;,&lt;br /&gt;
    tr = &amp;quot;Turkish&amp;quot;,&lt;br /&gt;
    vi = &amp;quot;Vietnamese&amp;quot;,&lt;br /&gt;
    zh_cn = &amp;quot;Chinese Simplified&amp;quot;,&lt;br /&gt;
    zh_tw = &amp;quot;Chinese Traditional&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local ENGLISH_TAG = &amp;quot;en&amp;quot;&lt;br /&gt;
local ENGLISH = &amp;quot;English&amp;quot;&lt;br /&gt;
&lt;br /&gt;
function orderedKeys(dict)&lt;br /&gt;
    local keys = {}&lt;br /&gt;
    local result = {}&lt;br /&gt;
    for k, v in pairs(dict) do&lt;br /&gt;
        table.insert(keys, k)&lt;br /&gt;
    end&lt;br /&gt;
    table.sort(keys)&lt;br /&gt;
    for i, k in ipairs(keys) do&lt;br /&gt;
        table.insert(result, k)&lt;br /&gt;
    end&lt;br /&gt;
    return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function NZ(value, valueifNil)&lt;br /&gt;
    if value == nil then return valueifNil end&lt;br /&gt;
    return value&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
-- the module&lt;br /&gt;
local p = { }&lt;br /&gt;
&lt;br /&gt;
function p.getLanguageName(frame)&lt;br /&gt;
    return languages(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Returns the translation of specific keyword (English)&lt;br /&gt;
-- with the provided language tag,&lt;br /&gt;
-- or nil, if no such translation is found.&lt;br /&gt;
function p.translate(frame)&lt;br /&gt;
    local term = frame.args[1]&lt;br /&gt;
    local language = frame.args[2]&lt;br /&gt;
    -- Bypass English.&lt;br /&gt;
    if language == ENGLISH_TAG then return key end&lt;br /&gt;
    return translations[key][language]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Generates a full glossary &lt;br /&gt;
function p.glossaryTable()&lt;br /&gt;
    local colhdr = mw.html.create(&amp;quot;table&amp;quot;)&lt;br /&gt;
            :attr(&amp;quot;class&amp;quot;, &amp;quot;wikitable&amp;quot;)&lt;br /&gt;
            :css(&amp;quot;float&amp;quot;, &amp;quot;left&amp;quot;)&lt;br /&gt;
            :css(&amp;quot;margin&amp;quot;, &amp;quot;0&amp;quot;)&lt;br /&gt;
            :css(&amp;quot;margin-right&amp;quot;, &amp;quot;-1px&amp;quot;)&lt;br /&gt;
    local body = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
            :css(&amp;quot;overflow-x&amp;quot;, &amp;quot;auto&amp;quot;)&lt;br /&gt;
            :css(&amp;quot;white-space&amp;quot;, &amp;quot;nowrap&amp;quot;)&lt;br /&gt;
            :tag(&amp;quot;table&amp;quot;)&lt;br /&gt;
                :attr(&amp;quot;class&amp;quot;, &amp;quot;wikitable&amp;quot;)&lt;br /&gt;
                :css(&amp;quot;margin&amp;quot;, &amp;quot;0&amp;quot;)&lt;br /&gt;
                :tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
    colhdr:tag(&amp;quot;tr&amp;quot;):tag(&amp;quot;th&amp;quot;):wikitext(ENGLISH)&lt;br /&gt;
    local langs = orderedKeys(languages)&lt;br /&gt;
    for i, langTag in ipairs(langs) do&lt;br /&gt;
        body:tag(&amp;quot;th&amp;quot;):wikitext(languages[langTag])&lt;br /&gt;
    end&lt;br /&gt;
    body = body:done();&lt;br /&gt;
    local transKeys = orderedKeys(translations)&lt;br /&gt;
    for i, key in ipairs(transKeys) do&lt;br /&gt;
        colhdr:tag(&amp;quot;tr&amp;quot;):tag(&amp;quot;th&amp;quot;):wikitext(key)&lt;br /&gt;
        body = body:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
        local trans = translations[key]&lt;br /&gt;
        for i, langTag in ipairs(langs) do&lt;br /&gt;
            t = trans[langTag]&lt;br /&gt;
            if t == nil then t = &amp;quot;-&amp;quot; end&lt;br /&gt;
            body:tag(&amp;quot;td&amp;quot;):wikitext(t)&lt;br /&gt;
        end&lt;br /&gt;
        body = body:done()&lt;br /&gt;
        --print(key)&lt;br /&gt;
    end&lt;br /&gt;
    body = body:allDone()&lt;br /&gt;
    local div = mw.html.create(&amp;quot;div&amp;quot;)&lt;br /&gt;
        :node(colhdr)&lt;br /&gt;
        :node(body)&lt;br /&gt;
    return tostring(div)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Generates a table of translations of a specific English term.&lt;br /&gt;
-- Returns nil if no such term exists in the dictionary.&lt;br /&gt;
function p.translationTable(frame)&lt;br /&gt;
    local term = frame.args[1]&lt;br /&gt;
    local trans = translations[term]&lt;br /&gt;
    if trans == nil then return nil end&lt;br /&gt;
    local body = mw.html.create(&amp;quot;table&amp;quot;)&lt;br /&gt;
                :attr(&amp;quot;class&amp;quot;, &amp;quot;wikitable&amp;quot;)&lt;br /&gt;
    local transKeys = orderedKeys(trans)&lt;br /&gt;
    body:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
            :tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
                :wikitext(ENGLISH)&lt;br /&gt;
                :done()&lt;br /&gt;
            :tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
                :wikitext(term)&lt;br /&gt;
                :done()&lt;br /&gt;
    for i, key in ipairs(transKeys) do&lt;br /&gt;
        body:tag(&amp;quot;tr&amp;quot;)&lt;br /&gt;
            :tag(&amp;quot;th&amp;quot;)&lt;br /&gt;
                :wikitext(NZ(languages[key], key))&lt;br /&gt;
                :done()&lt;br /&gt;
            :tag(&amp;quot;td&amp;quot;)&lt;br /&gt;
                :wikitext(NZ(trans[key], &amp;quot;-&amp;quot;))&lt;br /&gt;
                :done()&lt;br /&gt;
    end&lt;br /&gt;
    return tostring(body)&lt;br /&gt;
end&lt;br /&gt;
--print(p.glossary())&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;CXuesong</name></author>
	</entry>
</feed>