Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:Sandbox/CXuesong/Translations
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
local translations = { ["Warrior Cats"] = { de = "Warrior Cats", fi = "Soturikissat", fr = "La Guerre des Clans", hu = "Harcosok Törzse", ja = "ウォーリアーズ", ko = "고양이 전사들", lt = "Klanų Kariai", nl = "Warrior Cats", no = "Kattekrigerne", pl = "Wojownicy", ru = "Коты-воители", cz = "Divoké kočky(first book) Válečníci(other books)", es = "Los Gatos Guerreros", zh_cn = "猫武士", zh_tw = "貓戰士" }, cat = { de = "Katze", fi = "kissa", fr = "chat", hu = "macska", ja = "猫", ko = "고양이", lt = "katinas", nl = "kat", no = "katt", pl = "kot", ru = "кот (tom-cat)/кошка (she-cat)", cz = "kocour(tom-cat) kočka(she-cat)", es = "gato", zh_cn = "猫", zh_tw = "貓" }, leader = { de = "Anführer", fi = "päällikkö", fr = "chef", hu = "vezér", ja = "族長", ko = "지도자", lt = "vadas", nl = "leider", no = "leder", pl = "przywódca", ru = "предводитель (tom-cat)/предводительница (she-cat)", cz = "velitel klanu", es = "líder", zh_cn = "族长", zh_tw = "族長" }, Leafpool = { de = "Blattsee", fi = "Lehtilampi", fr = "Feuille de Lune", hu = nil, ja = "リーフプール", ko = nil, lt = nil, nl = "Loofpoel", no = "Løvtjern", pl = nil, ru = "Листвичка", cz = nil, es = "Hojarasca Acuática", zh_cn = "叶池", zh_tw = nil }, Bluestar = { de = "Blaustern", fi = "Sinitähti", fr = "Étoile Bleue", hu = "Kékcsillag", ja = "ブルスター", ko = nil, lt = nil, nl = "Blauwster", no = "Blåstjerne", pl = nil, ru = "Синяя Звезда", cz = nil, es = "Estrella Azul", zh_cn = "蓝星", zh_tw = nil }, } -- known languages (except for English) local languages = { cz = "Czech", de = "German", es = "Spanish", fi = "Finnish", fr = "French", gr = "Greek", hu = "Hungarian", hr = "Croatian", it = "Italian", ja = "Japanese", ko = "Korean", lt = "Lithuanian", nl = "Dutch", no = "Norwegian", pl = "Polish", pt = "Portuguese (Brazilian)", ro = "Romanian", ru = "Russian", si = "Slovenian", sk = "Slovakian", tr = "Turkish", vi = "Vietnamese", zh_cn = "Chinese Simplified", zh_tw = "Chinese Traditional", } local ENGLISH_TAG = "en" local ENGLISH = "English" function orderedKeys(dict) local keys = {} local result = {} for k, v in pairs(dict) do table.insert(keys, k) end table.sort(keys) for i, k in ipairs(keys) do table.insert(result, k) end return result end function NZ(value, valueifNil) if value == nil then return valueifNil end return value end -- the module local p = { } function p.getLanguageName(frame) return languages(frame.args[1]) end -- Returns the translation of specific keyword (English) -- with the provided language tag, -- or nil, if no such translation is found. function p.translate(frame) local term = frame.args[1] local language = frame.args[2] -- Bypass English. if language == ENGLISH_TAG then return key end return translations[key][language] end -- Generates a full glossary function p.glossaryTable() local colhdr = mw.html.create("table") :attr("class", "wikitable") :css("float", "left") :css("margin", "0") :css("margin-right", "-1px") local body = mw.html.create("div") :css("overflow-x", "auto") :css("white-space", "nowrap") :tag("table") :attr("class", "wikitable") :css("margin", "0") :tag("tr") colhdr:tag("tr"):tag("th"):wikitext(ENGLISH) local langs = orderedKeys(languages) for i, langTag in ipairs(langs) do body:tag("th"):wikitext(languages[langTag]) end body = body:done(); local transKeys = orderedKeys(translations) for i, key in ipairs(transKeys) do colhdr:tag("tr"):tag("th"):wikitext(key) body = body:tag("tr") local trans = translations[key] for i, langTag in ipairs(langs) do t = trans[langTag] if t == nil then t = "-" end body:tag("td"):wikitext(t) end body = body:done() --print(key) end body = body:allDone() local div = mw.html.create("div") :node(colhdr) :node(body) return tostring(div) end -- Generates a table of translations of a specific English term. -- Returns nil if no such term exists in the dictionary. function p.translationTable(frame) local term = frame.args[1] local trans = translations[term] if trans == nil then return nil end local body = mw.html.create("table") :attr("class", "wikitable") local transKeys = orderedKeys(trans) body:tag("tr") :tag("th") :wikitext(ENGLISH) :done() :tag("th") :wikitext(term) :done() for i, key in ipairs(transKeys) do body:tag("tr") :tag("th") :wikitext(NZ(languages[key], key)) :done() :tag("td") :wikitext(NZ(trans[key], "-")) :done() end return tostring(body) end --print(p.glossary()) return p
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Template used on this page:
Module:Sandbox/CXuesong/Translations/doc
(
edit
)