Module:Translit: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
(10 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local getArgs = require('Module:Arguments').getArgs | local getArgs = require('Module:Arguments').getArgs | ||
local p = {} | local p = {} | ||
--Note: For languages that use multiple scripts, I had to pick one. | |||
local languagesTable = { --From https://www.w3schools.com/tags/ref_language_codes.asp, with some additional languages added | local languagesTable = { --From https://www.w3schools.com/tags/ref_language_codes.asp, with some additional languages added | ||
["aa"] = { | ["aa"] = { | ||
Line 14: | Line 13: | ||
["ae"] = { | ["ae"] = { | ||
name = "Avestan", | name = "Avestan", | ||
wikipediaArticle = "Avestan" | wikipediaArticle = "Avestan", | ||
dir = "rtl" | |||
}, | }, | ||
["af"] = { | ["af"] = { | ||
Line 42: | Line 42: | ||
["ar"] = { | ["ar"] = { | ||
name = "Arabic", | name = "Arabic", | ||
wikipediaArticle = "Arabic" | wikipediaArticle = "Arabic", | ||
dir = "rtl" | |||
}, | }, | ||
["as"] = { | ["as"] = { | ||
Line 155: | Line 156: | ||
name = "Ewe", | name = "Ewe", | ||
wikipediaArticle = "Ewe language" | wikipediaArticle = "Ewe language" | ||
}, | |||
["egy"] = { | |||
name = "Egyptian", | |||
wikipediaArticle = "Egyptian language" | |||
}, | }, | ||
["el"] = { | ["el"] = { | ||
Line 182: | Line 187: | ||
["fa"] = { | ["fa"] = { | ||
name = "Persian", | name = "Persian", | ||
wikipediaArticle = "Persian language" | wikipediaArticle = "Persian language", | ||
dir = "rtl" | |||
}, | }, | ||
["ff"] = { | ["ff"] = { | ||
Line 226: | Line 232: | ||
["grc"] = { | ["grc"] = { | ||
name = "Greek", | name = "Greek", | ||
wikipediaArticle = "Greek language" | wikipediaArticle = "Greek language" --pre-1453; no separate codes for Medieval and Ancient | ||
}, | }, | ||
["gu"] = { | ["gu"] = { | ||
Line 242: | Line 248: | ||
["he"] = { | ["he"] = { | ||
name = "Hebrew", | name = "Hebrew", | ||
wikipediaArticle = "Hebrew language" | wikipediaArticle = "Hebrew language", | ||
dir = "rtl" | |||
}, | }, | ||
["hi"] = { | ["hi"] = { | ||
Line 289: | Line 296: | ||
}, | }, | ||
["ii"] = { | ["ii"] = { | ||
name = " | name = "Yi", | ||
wikipediaArticle = "Nuosu language" | wikipediaArticle = "Nuosu language" | ||
}, | }, | ||
Line 314: | Line 321: | ||
["ja"] = { | ["ja"] = { | ||
name = "Japanese", | name = "Japanese", | ||
wikipediaArticle = "Japanese language" | wikipediaArticle = "Japanese language", | ||
romanizedLabel = "[[wikipedia:Hepburn romanization|Hepburn]]" | |||
}, | }, | ||
["jv"] = { | ["jv"] = { | ||
Line 407: | Line 415: | ||
name = "Lithuanian", | name = "Lithuanian", | ||
wikipediaArticle = "Lithuanian language" | wikipediaArticle = "Lithuanian language" | ||
}, | |||
["ltc-Hant"] = { | |||
--Notes: | |||
--You do not need to include the "-Hant" part in articles for Middle Chinese; it will be auto-added. | |||
--Generally, you should use zh instead of ltc. ltc should only be used when Middle Chinese prounciation is specifically relevant. | |||
name = "Middle Chinese", | |||
wikipediaArticle = "Middle Chinese" | |||
}, | }, | ||
["lu"] = { | ["lu"] = { | ||
Line 566: | Line 581: | ||
["rw"] = { | ["rw"] = { | ||
name = "Kinyarwanda", | name = "Kinyarwanda", | ||
wikipediaArticle = "Kinyarwanda | wikipediaArticle = "Kinyarwanda" | ||
}, | }, | ||
["sa"] = { | ["sa"] = { | ||
Line 706: | Line 721: | ||
["ug"] = { | ["ug"] = { | ||
name = "Uyghur", | name = "Uyghur", | ||
wikipediaArticle = "Uyghur language" | wikipediaArticle = "Uyghur language", | ||
dir = "rtl" | |||
}, | }, | ||
["uga"] = { | ["uga"] = { | ||
Line 718: | Line 734: | ||
["ur"] = { | ["ur"] = { | ||
name = "Urdu", | name = "Urdu", | ||
wikipediaArticle = "Urdu language" | wikipediaArticle = "Urdu language", | ||
dir = "rtl" | |||
}, | }, | ||
["uz"] = { | ["uz"] = { | ||
Line 750: | Line 767: | ||
["yi"] = { | ["yi"] = { | ||
name = "Yiddish", | name = "Yiddish", | ||
wikipediaArticle = "Yiddish language" | wikipediaArticle = "Yiddish language", | ||
dir = "rtl" | |||
}, | }, | ||
["yo"] = { | ["yo"] = { | ||
Line 785: | Line 803: | ||
local args = getArgs(frame) | local args = getArgs(frame) | ||
local language = args[1] | local language = args[1] | ||
if language == "ltc" then | |||
language = "ltc-Hant" | |||
end | |||
local originalText = args[2] | local originalText = args[2] | ||
local romanizedText = args[3] | local romanizedText = args[3] | ||
Line 791: | Line 812: | ||
if args[5] ~= nil then --Note: hideLabel purposefully doesn't work for Simplified/Traditional Chinese case | if args[5] ~= nil then --Note: hideLabel purposefully doesn't work for Simplified/Traditional Chinese case | ||
hideLabel = true | hideLabel = true | ||
end | |||
if not languagesTable[language] then | |||
error('Language with code "' .. language .. '" is not defined') | |||
end | |||
local direction = "" | |||
if languagesTable[language]["dir"] then | |||
direction = ' dir="' .. languagesTable[language]["dir"] .. '"' | |||
end | end | ||
local output = "" | local output = "" | ||
local function textWithMeaning(language,text,meaning) | local function textWithMeaning(language,text,meaning) | ||
return string.format( | return string.format('<span lang="%s"%s class="tooltip">%s<span class="tooltiptext" lang="en" dir="ltr">%s</span></span>',language,direction,text,meaning) | ||
end | end | ||
local romanizedLabel = "romanized" | local romanizedLabel = "romanized" | ||
if language | if languagesTable[language]["romanizedLabel"] then | ||
romanizedLabel = | romanizedLabel = languagesTable[language]["romanizedLabel"] | ||
end | end | ||
local function makeRomanization(romanization) | |||
return string.format(", %s ''%s''",romanizedLabel,romanization) | |||
end | |||
--Note: Omitting romanization currently not supported for dual Chinese | |||
if args[4] then | if args[4] then | ||
local script1Text = originalText | local script1Text = originalText | ||
Line 806: | Line 838: | ||
if language == "zh" then | if language == "zh" then | ||
if args[6] then | if args[6] then | ||
output = string.format("%s: %s, %s: %s | output = string.format("%s: %s, %s: %s", wikipediaLink("zh-Hans"), textWithMeaning("zh-Hans",script1Text,meaning), wikipediaLink("zh-Hant"), textWithMeaning("zh-Hant",script2Text,meaning)) | ||
else | else | ||
output = string.format( | output = string.format('%s: <span lang="zh-Hans">%s</span>, %s: <span lang="zh-Hant">%s</span>', wikipediaLink("zh-Hans"), script1Text, wikipediaLink("zh-Hant"), script2Text) | ||
end | end | ||
output = output .. makeRomanization(romanizedText) | |||
else | else | ||
error("Argument 4 defined but language is not zh") | error("Argument 4 defined but language is not zh") | ||
Line 818: | Line 851: | ||
end | end | ||
if args[6] then | if args[6] then | ||
output = output .. string.format("%s | output = output .. string.format("%s",textWithMeaning(language,originalText,meaning)) | ||
else | else | ||
output = output .. string.format( | output = output .. string.format('<span lang="%s"%s>%s</span>',language,direction,originalText) | ||
end | |||
if args[3] then | |||
output = output .. makeRomanization(romanizedText) | |||
end | end | ||
end | end |
Latest revision as of 05:23, 29 September 2024
local getArgs = require('Module:Arguments').getArgs local p = {} --Note: For languages that use multiple scripts, I had to pick one. local languagesTable = { --From https://www.w3schools.com/tags/ref_language_codes.asp, with some additional languages added ["aa"] = { name = "Afar", wikipediaArticle = "Afar language" }, ["ab"] = { name = "Abkhazian", wikipediaArticle = "Abkhaz language" }, ["ae"] = { name = "Avestan", wikipediaArticle = "Avestan", dir = "rtl" }, ["af"] = { name = "Afrikaans", wikipediaArticle = "Afrikaans" }, ["ain"] = { name = "Ainu", wikipediaArticle = "Ainu language" }, ["ak"] = { name = "Akan", wikipediaArticle = "Akan language" }, ["akk"] = { name = "Akkadian", wikipediaArticle = "Akkadian language" }, ["am"] = { name = "Amharic", wikipediaArticle = "Amharic" }, ["an"] = { name = "Aragonese", wikipediaArticle = "Aragonese language" }, ["ar"] = { name = "Arabic", wikipediaArticle = "Arabic", dir = "rtl" }, ["as"] = { name = "Assamese", wikipediaArticle = "Assamese language" }, ["av"] = { name = "Avaric", wikipediaArticle = "Avar language" }, ["ay"] = { name = "Aymara", wikipediaArticle = "Aymara language" }, ["az"] = { name = "Azerbaijani", wikipediaArticle = "Azerbaijani language" }, ["ba"] = { name = "Bashkir", wikipediaArticle = "Bashkir language" }, ["be"] = { name = "Belarusian", wikipediaArticle = "Belarusian language" }, ["bg"] = { name = "Bulgarian", wikipediaArticle = "Bulgarian language" }, ["bh"] = { name = "Bihari", wikipediaArticle = "Bihari languages" }, ["bi"] = { name = "Bislama", wikipediaArticle = "Bislama" }, ["bm"] = { name = "Bambara", wikipediaArticle = "Bambara language" }, ["bn"] = { name = "Bengali", wikipediaArticle = "Bengali language" }, ["bo"] = { name = "Tibetan", wikipediaArticle = "Lhasa Tibetan" }, ["br"] = { name = "Breton", wikipediaArticle = "Breton language" }, ["bs"] = { name = "Bosnian", wikipediaArticle = "Bosnian language" }, ["ca"] = { name = "Catalan", wikipediaArticle = "Catalan language" }, ["ce"] = { name = "Chechen", wikipediaArticle = "Chechen language" }, ["ch"] = { name = "Chamorro", wikipediaArticle = "Chamorro language" }, ["co"] = { name = "Corsican", wikipediaArticle = "Corsican language" }, ["cr"] = { name = "Cree", wikipediaArticle = "Cree language" }, ["cs"] = { name = "Czech", wikipediaArticle = "Czech language" }, ["cu"] = { name = "Old Church Slavonic", wikipediaArticle = "Old Church Slavonic" }, ["cv"] = { name = "Chuvash", wikipediaArticle = "Chuvash language" }, ["cy"] = { name = "Welsh", wikipediaArticle = "Welsh language" }, ["da"] = { name = "Danish", wikipediaArticle = "Danish language" }, ["de"] = { name = "German", wikipediaArticle = "German language" }, ["dv"] = { name = "Dhivehi", wikipediaArticle = "Maldivian language" }, ["dz"] = { name = "Dzongkha", wikipediaArticle = "Dzongkha" }, ["ee"] = { name = "Ewe", wikipediaArticle = "Ewe language" }, ["egy"] = { name = "Egyptian", wikipediaArticle = "Egyptian language" }, ["el"] = { name = "Modern Greek", wikipediaArticle = "Modern Greek" }, ["en"] = { name = "English", wikipediaArticle = "English language" }, ["eo"] = { name = "Esperanto", wikipediaArticle = "Esperanto" }, ["es"] = { name = "Spanish", wikipediaArticle = "Spanish language" }, ["et"] = { name = "Estonian", wikipediaArticle = "Estonian language" }, ["eu"] = { name = "Basque", wikipediaArticle = "Basque language" }, ["fa"] = { name = "Persian", wikipediaArticle = "Persian language", dir = "rtl" }, ["ff"] = { name = "Fula", wikipediaArticle = "Fula language" }, ["fi"] = { name = "Finnish", wikipediaArticle = "Finnish language" }, ["fj"] = { name = "Fijian", wikipediaArticle = "Fijian language" }, ["fo"] = { name = "Faroese", wikipediaArticle = "Faroese language" }, ["fr"] = { name = "French", wikipediaArticle = "French language" }, ["fy"] = { name = "West Frisian", wikipediaArticle = "West Frisian language" }, ["ga"] = { name = "Irish", wikipediaArticle = "Irish language" }, ["gd"] = { name = "Scottish Gaelic", wikipediaArticle = "Scottish Gaelic" }, ["gl"] = { name = "Galician", wikipediaArticle = "Galician language" }, ["gn"] = { name = "Guarani", wikipediaArticle = "Guarani language" }, ["grc"] = { name = "Greek", wikipediaArticle = "Greek language" --pre-1453; no separate codes for Medieval and Ancient }, ["gu"] = { name = "Gujarati", wikipediaArticle = "Gujarati language" }, ["gv"] = { name = "Manx", wikipediaArticle = "Manx language" }, ["ha"] = { name = "Hausa", wikipediaArticle = "Hausa language" }, ["he"] = { name = "Hebrew", wikipediaArticle = "Hebrew language", dir = "rtl" }, ["hi"] = { name = "Hindi", wikipediaArticle = "Hindi" }, ["ho"] = { name = "Hiri Motu", wikipediaArticle = "Hiri Motu" }, ["hr"] = { name = "Croatian", wikipediaArticle = "Croatian language" }, ["ht"] = { name = "Haitian Creole", wikipediaArticle = "Haitian Creole" }, ["hu"] = { name = "Hungarian", wikipediaArticle = "Hungarian language" }, ["hy"] = { name = "Armenian", wikipediaArticle = "Armenian language" }, ["hz"] = { name = "Herero", wikipediaArticle = "Herero language" }, ["ia"] = { name = "Interlingua", wikipediaArticle = "Interlingua" }, ["id"] = { name = "Indonesian", wikipediaArticle = "Indonesian language" }, ["ie"] = { name = "Interlingue", wikipediaArticle = "Interlingue" }, ["ig"] = { name = "Igbo", wikipediaArticle = "Igbo language" }, ["ii"] = { name = "Yi", wikipediaArticle = "Nuosu language" }, ["ik"] = { name = "Inupiak", wikipediaArticle = "Iñupiaq language" }, ["io"] = { name = "Ido", wikipediaArticle = "Ido" }, ["is"] = { name = "Icelandic", wikipediaArticle = "Icelandic language" }, ["it"] = { name = "Italian", wikipediaArticle = "Italian language" }, ["iu"] = { name = "Inuktitut", wikipediaArticle = "Inuktitut" }, ["ja"] = { name = "Japanese", wikipediaArticle = "Japanese language", romanizedLabel = "[[wikipedia:Hepburn romanization|Hepburn]]" }, ["jv"] = { name = "Javanese", wikipediaArticle = "Javanese language" }, ["ka"] = { name = "Georgian", wikipediaArticle = "Georgian language" }, ["kg"] = { name = "Kongo", wikipediaArticle = "Kongo language" }, ["ki"] = { name = "Kikuyu", wikipediaArticle = "Kikuyu language" }, ["kj"] = { name = "Kwanyama", wikipediaArticle = "Kwanyama" }, ["kk"] = { name = "Kazakh", wikipediaArticle = "Kazakh language" }, ["kl"] = { name = "Greenlandic", wikipediaArticle = "Greenlandic language" }, ["km"] = { name = "Khmer", wikipediaArticle = "Khmer language" }, ["kn"] = { name = "Kannada", wikipediaArticle = "Kannada language" }, ["ko"] = { name = "Korean", wikipediaArticle = "Korean language" }, ["kr"] = { name = "Kanuri", wikipediaArticle = "Kanuri language" }, ["ks"] = { name = "Kashmiri", wikipediaArticle = "Kashmiri language" }, ["ku"] = { name = "Kurdish", wikipediaArticle = "Kurdish language" }, ["kv"] = { name = "Komi", wikipediaArticle = "Komi language" }, ["kw"] = { name = "Cornish", wikipediaArticle = "Cornish language" }, ["ky"] = { name = "Kyrgyz", wikipediaArticle = "Kyrgyz language" }, ["la"] = { name = "Latin", wikipediaArticle = "Latin" }, ["lb"] = { name = "Luxembourgish", wikipediaArticle = "Luxembourgish" }, ["lg"] = { name = "Luganda", wikipediaArticle = "Luganda" }, ["li"] = { name = "Limburgish", wikipediaArticle = "Limburgish" }, ["ln"] = { name = "Lingala", wikipediaArticle = "Lingala" }, ["lo"] = { name = "Lao", wikipediaArticle = "Lao language" }, ["lt"] = { name = "Lithuanian", wikipediaArticle = "Lithuanian language" }, ["ltc-Hant"] = { --Notes: --You do not need to include the "-Hant" part in articles for Middle Chinese; it will be auto-added. --Generally, you should use zh instead of ltc. ltc should only be used when Middle Chinese prounciation is specifically relevant. name = "Middle Chinese", wikipediaArticle = "Middle Chinese" }, ["lu"] = { name = "Luba-Katanga", wikipediaArticle = "Luba-Katanga language" }, ["lv"] = { name = "Latvian", wikipediaArticle = "Latvian language" }, ["mg"] = { name = "Malagasy", wikipediaArticle = "Malagasy language" }, ["mh"] = { name = "Marshallese", wikipediaArticle = "Marshallese language" }, ["mi"] = { name = "Maori", wikipediaArticle = "Maori language" }, ["mk"] = { name = "Macedonian", wikipediaArticle = "Macedonian language" }, ["ml"] = { name = "Malayalam", wikipediaArticle = "Malayalam language" }, ["mn"] = { name = "Mongolian", wikipediaArticle = "Mongolian language" }, ["mo"] = { name = "Moldovan", wikipediaArticle = "Moldovan language" }, ["mr"] = { name = "Marathi", wikipediaArticle = "Marathi language" }, ["ms"] = { name = "Malay", wikipediaArticle = "Malay language" }, ["mt"] = { name = "Maltese", wikipediaArticle = "Maltese language" }, ["my"] = { name = "Burmese", wikipediaArticle = "Burmese language" }, ["na"] = { name = "Nauru", wikipediaArticle = "Nauru language" }, ["nb"] = { name = "Norwegian Bokmål", wikipediaArticle = "Bokmål" }, ["nd"] = { name = "Northern Ndebele", wikipediaArticle = "Northern Ndebele language" }, ["ne"] = { name = "Nepali", wikipediaArticle = "Nepali language" }, ["ng"] = { name = "Ndonga", wikipediaArticle = "Ndonga" }, ["nl"] = { name = "Dutch", wikipediaArticle = "Dutch language" }, ["nn"] = { name = "Norwegian Nynorsk", wikipediaArticle = "Nynorsk" }, ["no"] = { name = "Norwegian", wikipediaArticle = "Norwegian language" }, ["nr"] = { name = "Southern Ndebele", wikipediaArticle = "Southern Ndebele language" }, ["nv"] = { name = "Navajo", wikipediaArticle = "Navajo language" }, ["ny"] = { name = "Chichewa", wikipediaArticle = "Chichewa language" }, ["oc"] = { name = "Occitan", wikipediaArticle = "Occitan language" }, ["oj"] = { name = "Ojibwe", wikipediaArticle = "Ojibwe language" }, ["om"] = { name = "Oromo", wikipediaArticle = "Oromo language" }, ["or"] = { name = "Oriya", wikipediaArticle = "Oriya language" }, ["os"] = { name = "Ossetian", wikipediaArticle = "Ossetian language" }, ["pa"] = { name = "Punjabi", wikipediaArticle = "Punjabi language" }, ["pi"] = { name = "Pāli", wikipediaArticle = "Pali" }, ["pl"] = { name = "Polish", wikipediaArticle = "Polish language" }, ["ps"] = { name = "Pashto", wikipediaArticle = "Pashto language" }, ["pt"] = { name = "Portuguese", wikipediaArticle = "Portuguese language" }, ["qu"] = { name = "Quechua", wikipediaArticle = "Quechua language" }, ["rm"] = { name = "Romansh", wikipediaArticle = "Romansh language" }, ["rn"] = { name = "Kirundi", wikipediaArticle = "Kirundi language" }, ["ro"] = { name = "Romanian", wikipediaArticle = "Romanian language" }, ["ru"] = { name = "Russian", wikipediaArticle = "Russian language" }, ["rw"] = { name = "Kinyarwanda", wikipediaArticle = "Kinyarwanda" }, ["sa"] = { name = "Sanskrit", wikipediaArticle = "Sanskrit" }, ["sd"] = { name = "Sindhi", wikipediaArticle = "Sindhi language" }, ["se"] = { name = "Sami", wikipediaArticle = "Sami language" }, ["sg"] = { name = "Sango", wikipediaArticle = "Sango language" }, ["sh"] = { name = "Serbo-Croatian", wikipediaArticle = "Serbo-Croatian" }, ["si"] = { name = "Sinhalese", wikipediaArticle = "Sinhalese language" }, ["sk"] = { name = "Slovak", wikipediaArticle = "Slovak language" }, ["sl"] = { name = "Slovenian", wikipediaArticle = "Slovenian language" }, ["sm"] = { name = "Samoan", wikipediaArticle = "Samoan language" }, ["sn"] = { name = "Shona", wikipediaArticle = "Shona language" }, ["so"] = { name = "Somali", wikipediaArticle = "Somali language" }, ["sq"] = { name = "Albanian", wikipediaArticle = "Albanian language" }, ["sr"] = { name = "Serbian", wikipediaArticle = "Serbian language" }, ["ss"] = { name = "Siswati", wikipediaArticle = "Siswati language" }, ["ss"] = { name = "Swati", wikipediaArticle = "Swati language" }, ["st"] = { name = "Sesotho", wikipediaArticle = "Sesotho language" }, ["su"] = { name = "Sundanese", wikipediaArticle = "Sundanese language" }, ["sux"] = { name = "Sumerian", wikipediaArticle = "Sumerian language" }, ["sv"] = { name = "Swedish", wikipediaArticle = "Swedish language" }, ["sw"] = { name = "Swahili", wikipediaArticle = "Swahili language" }, ["ta"] = { name = "Tamil", wikipediaArticle = "Tamil language" }, ["te"] = { name = "Telugu", wikipediaArticle = "Telugu language" }, ["tg"] = { name = "Tajik", wikipediaArticle = "Tajik language" }, ["th"] = { name = "Thai", wikipediaArticle = "Thai language" }, ["ti"] = { name = "Tigrinya", wikipediaArticle = "Tigrinya language" }, ["tk"] = { name = "Turkmen", wikipediaArticle = "Turkmen language" }, ["tl"] = { name = "Tagalog", wikipediaArticle = "Tagalog language" }, ["tn"] = { name = "Setswana", wikipediaArticle = "Setswana language" }, ["to"] = { name = "Tongan", wikipediaArticle = "Tongan language" }, ["tr"] = { name = "Turkish", wikipediaArticle = "Turkish language" }, ["ts"] = { name = "Tsonga", wikipediaArticle = "Tsonga language" }, ["tt"] = { name = "Tatar", wikipediaArticle = "Tatar language" }, ["tw"] = { name = "Twi", wikipediaArticle = "Twi language" }, ["ty"] = { name = "Tahitian", wikipediaArticle = "Tahitian language" }, ["ug"] = { name = "Uyghur", wikipediaArticle = "Uyghur language", dir = "rtl" }, ["uga"] = { name = "Ugaritic", wikipediaArticle = "Ugaritic" }, ["uk"] = { name = "Ukrainian", wikipediaArticle = "Ukrainian language" }, ["ur"] = { name = "Urdu", wikipediaArticle = "Urdu language", dir = "rtl" }, ["uz"] = { name = "Uzbek", wikipediaArticle = "Uzbek language" }, ["ve"] = { name = "Venda", wikipediaArticle = "Venda language" }, ["vi"] = { name = "Vietnamese", wikipediaArticle = "Vietnamese language" }, ["vo"] = { name = "Volapük", wikipediaArticle = "Volapük" }, ["wa"] = { name = "Walloon", wikipediaArticle = "Walloon language" }, ["wo"] = { name = "Wolof", wikipediaArticle = "Wolof language" }, ["xh"] = { name = "Xhosa", wikipediaArticle = "Xhosa language" }, ["yi"] = { name = "Yiddish", wikipediaArticle = "Yiddish language", dir = "rtl" }, ["yo"] = { name = "Yoruba", wikipediaArticle = "Yoruba language" }, ["za"] = { name = "Zhuang", wikipediaArticle = "Zhuang language" }, ["zh"] = { name = "Chinese", wikipediaArticle = "Chinese language" }, ["zh-Hans"] = { name = "Simplified Chinese", wikipediaArticle = "Simplified Chinese characters" }, ["zh-Hant"] = { name = "Traditional Chinese", wikipediaArticle = "Traditional Chinese characters" }, ["zu"] = { name = "Zulu", wikipediaArticle = "Zulu language" } } local function wikipediaLink(language) return string.format("[[wikipedia:%s|%s]]",languagesTable[language]["wikipediaArticle"],languagesTable[language]["name"]) end function p.main(frame) local args = getArgs(frame) local language = args[1] if language == "ltc" then language = "ltc-Hant" end local originalText = args[2] local romanizedText = args[3] local meaning = args[6] local hideLabel = false if args[5] ~= nil then --Note: hideLabel purposefully doesn't work for Simplified/Traditional Chinese case hideLabel = true end if not languagesTable[language] then error('Language with code "' .. language .. '" is not defined') end local direction = "" if languagesTable[language]["dir"] then direction = ' dir="' .. languagesTable[language]["dir"] .. '"' end local output = "" local function textWithMeaning(language,text,meaning) return string.format('<span lang="%s"%s class="tooltip">%s<span class="tooltiptext" lang="en" dir="ltr">%s</span></span>',language,direction,text,meaning) end local romanizedLabel = "romanized" if languagesTable[language]["romanizedLabel"] then romanizedLabel = languagesTable[language]["romanizedLabel"] end local function makeRomanization(romanization) return string.format(", %s ''%s''",romanizedLabel,romanization) end --Note: Omitting romanization currently not supported for dual Chinese if args[4] then local script1Text = originalText local script2Text = romanizedText romanizedText = args[4] if language == "zh" then if args[6] then output = string.format("%s: %s, %s: %s", wikipediaLink("zh-Hans"), textWithMeaning("zh-Hans",script1Text,meaning), wikipediaLink("zh-Hant"), textWithMeaning("zh-Hant",script2Text,meaning)) else output = string.format('%s: <span lang="zh-Hans">%s</span>, %s: <span lang="zh-Hant">%s</span>', wikipediaLink("zh-Hans"), script1Text, wikipediaLink("zh-Hant"), script2Text) end output = output .. makeRomanization(romanizedText) else error("Argument 4 defined but language is not zh") end else if hideLabel == false then output = wikipediaLink(language) .. ": " end if args[6] then output = output .. string.format("%s",textWithMeaning(language,originalText,meaning)) else output = output .. string.format('<span lang="%s"%s>%s</span>',language,direction,originalText) end if args[3] then output = output .. makeRomanization(romanizedText) end end return output end return p