Mô đun:Country extract
Tài liệu mô đun[tạo]
local p = {}
--
-- to enable us to replicate the current functioning of CountryAbbr and CountryAbbr2
-- We need to deal with
-- 1 alternative names ISO 3166 should do that
-- 2 {{<name>}}
-- 3 [ [<name>] ]
-- 4 [ [<name>|<junk>] ]
-- 5 [ [hình:flag of <country>.[svg|gif|png|jpg]|\d+px] ]
--
function p.extractCountry(frame)
local string= mw.ustring.toNFC (frame.args[1])
local match=nil;
match = mw.ustring.match(string, "Flag of ([^\.]*)")
if (match) then
return match
end
-- () for Cocos (Keeling) Islands
-- ' For People's
-- . for U.S. etc.
match = mw.ustring.match(string, "(%u[%a\(\)\.' -]+)")
if (match == "Hình") then
string = mw.ustring.gsub(string, match, "")
match = mw.ustring.match(string, "[\|\[](%u[%a\(\)\.' -]+)")
end
if (match == "20px") then
string = mw.ustring.gsub(string, match, "")
match = mw.ustring.match(string, "\[(%u[%a\(\)\.' -]+)")
end
if (match) then
return match
end
return string
end
--[[
]]
function p.extractSubdivision(frame)
local string= mw.ustring.toNFC (frame.args[1])
local match=nil;
-- Needed for {{flag|Greenland}},
match = mw.ustring.match(string, "Flag of ([^\.]*)")
if (match) then
return match
end
-- . needed for Washington D.C.
-- ' for cote d'azur
-- leading ' for 'Aden
-- ‘ and trailing ' for Şan‘ā'
match = mw.ustring.match(string, "('?[%u][%a'‘ \.\,-]+[%a\.'\d]+)")
if (match) then
return match
end
return string
end
local countries = {
["Andorra"] = "AD",
["Các Tiểu vương quốc Ả Rập Thống nhất"] = "AE",
["UAE"] = "AE",
["Afghanistan"] = "AF",
["Antigua và Barbuda"] = "AG",
["Anguilla"] = "AI",
["Albania"] = "AL",
["Armenia"] = "AM",
["Angola"] = "AO",
["Châu Nam Cực"] = "AQ",
["Argentina"] = "AR",
["Samoa thuộc Mỹ"] = "AS",
["Áo"] = "AT",
["Úc"] = "AU",
["Aruba"] = "AW",
["Quần đảo Åland"] = "AX",
["Quần đảo Aland"] = "AX",
["Azerbaijan"] = "AZ",
["Bosna và Hercegovina"] = "BA",
["Bosna"] = "BA",
["Barbados"] = "BB",
["Bangladesh"] = "BD",
["Bỉ"] = "BE",
["Burkina Faso"] = "BF",
["Bulgaria"] = "BG",
["Bahrain"] = "BH",
["Burundi"] = "BI",
["Bénin"] = "BJ",
["Saint-Barthélemy"] = "BL",
["Saint Barthelemy"] = "BL",
["St. Barthélemy"] = "BL",
["St. Barthelemy"] = "BL",
["St Barthélemy"] = "BL",
["St Barthelemy"] = "BL",
["Bermuda"] = "BM",
["Brunei"] = "BN",
["Brunei Darussalam"] = "BN",
["Bolivia"] = "BO",
["Cộng hòa Đa dân tộc Bolivia"] = "BO",
["Bonaire, Sint Eustatius và Saba"] = "BQ",
["Brasil"] = "BR",
["Bahamas"] = "BS",
["The Bahamas"] = "BS",
["the Bahamas"] = "BS",
["Bhutan"] = "BT",
["Đảo Bouvet"] = "BV",
["Botswana"] = "BW",
["Belarus"] = "BY",
["Belize"] = "BZ",
["Canada"] = "CA",
["Quần đảo Cocos (Keeling)"] = "CC",
["Quần đảo Cocos"] = "CC",
["Quần đảo Keeling"] = "CC",
["Congo, Cộng hòa Dân chủ"] = "CD",
["Cộng hòa Dân chủ Congo"] = "CD",
["DR Congo"] = "CD",
["Congo-Kinshasa"] = "CD",
["DROC"] = "CD",
["DRC"] = "CD",
["Cộng hòa Trung Phi"] = "CF",
["CAR"] = "CF",
["Congo"] = "CG",
["Republic of the Congo"] = "CG",
["Cộng hòa Congo"] = "CG",
["Congo-Brazzaville"] = "CG",
["Tây Congo"] = "CG",
["Thụy Sĩ"] = "CH",
["Côte d'Ivoire"] = "CI",
["Bờ Biển Ngà"] = "CI",
["Quần đảo Cook"] = "CK",
["Chile"] = "CL",
["Cameroon"] = "CM",
["Trung Quốc"] = "CN",
["PRC"] = "CN",
["Cộng hòa Nhân dân Trung Hoa"] = "CN",
["Colombia"] = "CO",
["Costa Rica"] = "CR",
["Cuba"] = "CU",
["Cabo Verde"] = "CV",
["Curaçao"] = "CW",
["Curacao"] = "CW",
["Đảo Giáng Sinh"] = "CX",
["Cộng hòa Síp"] = "CY",
["Cộng hòa Séc"] = "CZ",
["Đức"] = "DE",
["Djibouti"] = "DJ",
["Đan Mạch"] = "DK",
["Dominica"] = "DM",
["Cộng hòa Dominican"] = "DO",
["Algeria"] = "DZ",
["Ecuador"] = "EC",
["Estonia"] = "EE",
["Ai Cập"] = "EG",
["Tây Sahara"] = "EH",
["Eritrea"] = "ER",
["Eswatini"] = "SZ",
["Tây Ban Nha"] = "ES",
["Ethiopia"] = "ET",
["Phần Lan"] = "FI",
["Fiji"] = "FJ",
["Quần đảo Falkland (Malvinas)"] = "FK",
["Falklands"] = "FK",
["Quần đảo Falkland"] = "FK",
["Malvinas"] = "FK",
["Quần đảo Malvinas"] = "FK",
["Liên bang Micronesia"] = "FM",
["Micronesia"] = "FM",
["Quần đảo Faroe"] = "FO",
["Pháp"] = "FR",
["Gabon"] = "GA",
["Vương quốc Liên hiệp Anh và Bắc Ireland"] = "GB",
["the United Kingdom"] = "GB",
["U. K."] = "GB",
["U.K."] = "GB",
["the U.K."] = "GB",
["UK"] = "GB",
["the UK"] = "GB",
["Đảo Anh"] = "GB",
["Anh"] = "GB-ENG",
["Scotland"] = "GB-SCT",
["Wales"] = "GB-WLS",
["Bắc Ireland"] = "GB-NIR",
["Anh và Wales"] = "GB-EAW",
["Grenada"] = "GD",
["Gruzia"] = "GE",
["Guyane thuộc Pháp"] = "GF",
["Guernsey"] = "GG",
["Ghana"] = "GH",
["Gibraltar"] = "GI",
["Greenland"] = "GL",
["Gambia"] = "GM",
["Guinée"] = "GN",
["Guadeloupe"] = "GP",
["Guinea Xích Đạo"] = "GQ",
["Hy Lạp"] = "GR",
["Nam Georgia và Quần đảo Nam Sandwich"] = "GS",
["Guatemala"] = "GT",
["Guam"] = "GU",
["Guiné-Bissau"] = "GW",
["Guyana"] = "GY",
["Hồng Kông"] = "HK",
["Đảo Heard và quần đảo McDonald"] = "HM",
["Quần đảo Heard và McDonald"] = "HM",
["Honduras"] = "HN",
["Croatia"] = "HR",
["Haiti"] = "HT",
["Hungary"] = "HU",
["Indonesia"] = "ID",
["Ireland"] = "IE",
["Israel"] = "IL",
["Đảo Man"] = "IM",
["Ấn Độ"] = "IN",
["Lãnh thổ Ấn Độ Dương thuộc Anh"] = "IO",
["Iraq"] = "IQ",
["Cộng hòa Hồi giáo Iran"] = "IR",
["Iran"] = "IR",
["Iceland"] = "IS",
["Ý"] = "IT",
["Jersey"] = "JE",
["Jamaica"] = "JM",
["Jordan"] = "JO",
["Nhật Bản"] = "JP",
["Kenya"] = "KE",
["Kyrgyzstan"] = "KG",
["Campuchia"] = "KH",
["Kiribati"] = "KI",
["Comoros"] = "KM",
["The Comoros"] = "KM",
["the Comoros"] = "KM",
["Saint Kitts và Nevis"] = "KN",
["St. Kitts và Nevis"] = "KN",
["St Kitts và Nevis"] = "KN",
["Cộng hòa Dân chủ Nhân dân Triều Tiên"] = "KP",
["Bắc Hàn"] = "KP",
["Bắc Triều Tiên"] = "KP",
["Hàn Quốc"] = "KR",
["Cộng hòa Triều Tiên"] = "KR",
["Nam Triều Tiên"] = "KR",
["Kuwait"] = "KW",
["Quần đảo Cayman"] = "KY",
["The Cayman Islands"] = "KY",
["the Cayman Islands"] = "KY",
["Kazakhstan"] = "KZ",
["Cộng hòa Dân chủ Nhân dân Lào"] = "LA",
["Lào"] = "LA",
["Lao"] = "LA",
["Lebanon"] = "LB",
["Saint Lucia"] = "LC",
["St. Lucia"] = "LC",
["St Lucia"] = "LC",
["Liechtenstein"] = "LI",
["Sri Lanka"] = "LK",
["Liberia"] = "LR",
["Lesotho"] = "LS",
["Lithuania"] = "LT",
["Luxembourg"] = "LU",
["Latvia"] = "LV",
["Đại dân quốc Nhân dân Xã hội chủ nghĩa Ảrập Libya"] = "LY",
["Libya"] = "LY",
["Morocco"] = "MA",
["Monaco"] = "MC",
["Cộng hòa Moldova"] = "MD",
["Moldova"] = "MD",
["Montenegro"] = "ME",
["Saint Martin (French part)"] = "MF",
["Saint Martin (France)"] = "MF",
["Collectivity of Saint Martin"] = "MF",
["Collectivity of St. Martin"] = "MF",
["Collectivity of St Martin"] = "MF",
["Saint-Martin"] = "MF",
["Madagascar"] = "MG",
["Marshall Islands"] = "MH",
["Macedonia"] = "MK",
["Mali"] = "ML",
["Myanmar"] = "MM",
["Miến Điện"] = "MM",
["Mông Cổ"] = "MN",
["Macau"] = "MO",
["Ma Cao"] = "MO",
["Quần đảo Bắc Mariana"] = "MP",
["Martinique"] = "MQ",
["Mauritania"] = "MR",
["Montserrat"] = "MS",
["Malta"] = "MT",
["Mauritius"] = "MU",
["Maldives"] = "MV",
["Malawi"] = "MW",
["México"] = "MX",
["Malaysia"] = "MY",
["Mozambique"] = "MZ",
["Namibia"] = "NA",
["New Caledonia"] = "NC",
["Nouvelle-Calédonie"] = "NC",
["Niger"] = "NE",
["Đảo Norfolk"] = "NF",
["Nigeria"] = "NG",
["Nicaragua"] = "NI",
["Hà Lan"] = "NL",
["The Netherlands"] = "NL",
["the Netherlands"] = "NL",
["Na Uy"] = "NO",
["Nepal"] = "NP",
["Nauru"] = "NR",
["Niue"] = "NU",
["New Zealand"] = "NZ",
["Aotearoa"] = "NZ",
["Oman"] = "OM",
["Panama"] = "PA",
["Peru"] = "PE",
["Polynésie thuộc Pháp"] = "PF",
["Papua New Guinea"] = "PG",
["Philippines"] = "PH",
["The Philippines"] = "PH",
["the Philippines"] = "PH",
["Pakistan"] = "PK",
["Ba Lan"] = "PL",
["Saint Pierre và Miquelon"] = "PM",
["Saint-Pierre và Miquelon"] = "PM",
["St Pierre và Miquelon"] = "PM",
["Quần đảo Pitcairn"] = "PN",
["Puerto Rico"] = "PR",
["Nhà nước Palestine"] = "PS",
["Palestine"] = "PS",
["Bồ Đào Nha"] = "PT",
["Palau"] = "PW",
["Paraguay"] = "PY",
["Qatar"] = "QA",
["Réunion"] = "RE",
["Reunion"] = "RE",
["România"] = "RO",
["Serbia"] = "RS",
["Liên bang Nga"] = "RU",
["Nga"] = "RU",
["Rwanda"] = "RW",
["Ả Rập Saudi"] = "SA",
["Quần đảo Solomon"] = "SB",
["Seychelles"] = "SC",
["Sudan"] = "SD",
["Thụy Điển"] = "SE",
["Singapore"] = "SG",
["Saint Helena, Ascension và Tristan da Cunha"] = "SH",
["Slovenia"] = "SI",
["Svalbard và Jan Mayen"] = "SJ",
["Slovakia"] = "SK",
["Sierra Leone"] = "SL",
["San Marino"] = "SM",
["Senegal"] = "SN",
["Somalia"] = "SO",
["Suriname"] = "SR",
["Nam Sudan"] = "SS",
["São Tomé và Príncipe"] = "ST",
["Sao Tome và Principe"] = "ST",
["El Salvador"] = "SV",
["Sint Maarten"] = "SX",
["Saint Martin (Dutch part)"] = "SX",
["Saint Martin (Hà Lan)"] = "SX",
["Cộng hòa Ả Rập Syria"] = "SY",
["Syria"] = "SY",
["Quần đảo Turks và Caicos"] = "TC",
["Tchad"] = "TD",
["Vùng đất phía Nam và châu Nam Cực thuộc Pháp"] = "TF",
["Togo"] = "TG",
["Thái Lan"] = "TH",
["Tajikistan"] = "TJ",
["Tokelau"] = "TK",
["Timor-Leste"] = "TL",
["Đông Timor"] = "TL",
["Turkmenistan"] = "TM",
["Tunisia"] = "TN",
["Tonga"] = "TO",
["Thổ Nhĩ Kỳ"] = "TR",
["Trinidad và Tobago"] = "TT",
["Tuvalu"] = "TV",
["Đài Loan"] = "TW",
["Trung Hoa Dân Quốc"] = "TW",
["Cộng hòa Thống nhất Tanzania"] = "TZ",
["Tanzania"] = "TZ",
["Ukraina"] = "UA",
["The Ukraine"] = "UA",
["the Ukraine"] = "UA",
["Uganda"] = "UG",
["Các tiểu đảo xa của Hoa Kỳ"] = "UM",
["Mỹ"] = "US",
["Hoa Kỳ"] = "US",
["Hợp chúng quốc Mỹ"] = "US",
["Hợp chúng quốc Hoa Kỳ"] = "US",
["U. S."] = "US",
["U.S."] = "US",
["the U.S."] = "US",
["US"] = "US",
["the US"] = "US",
["Uruguay"] = "UY",
["Uzbekistan"] = "UZ",
["Tòa Thánh (Thành Quốc Vatican)"] = "VA",
["Tòa Thánh"] = "VA",
["Thành Quốc Vatican"] = "VA",
["Thành Vatican"] = "VA",
["Saint Vincent và Grenadines"] = "VC",
["St. Vincent và Grenadines"] = "VC",
["St Vincent và Grenadines"] = "VC",
["Cộng hòa Bolivar Venezuela"] = "VE",
["Venezuela"] = "VE",
["Quần đảo Virgin (Anh)"] = "VG",
["Quần đảo Virgin thuộc Anh"] = "VG",
["Quần đảo Virgin, Hoa Kỳ"] = "VI",
["Quần đảo Virgin, Mỹ"] = "VI",
["Quần đảo Virgin, US"] = "VI",
["Quần đảo Virgin thuộc Mỹ"] = "VI",
["Quần đảo Virgin (Mỹ)"] = "VI",
["U. S. Virgin Islands"] = "VI",
["U.S. Virgin Islands"] = "VI",
["US Virgin Islands"] = "VI",
["Vietnam"] = "VN",
["Việt Nam"] = "VN",
["Vanuatu"] = "VU",
["Wallis và Futuna"] = "WF",
["Samoa"] = "WS",
["Yemen"] = "YE",
["Mayotte"] = "YT",
["Nam Phi"] = "ZA",
["Zambia"] = "ZM",
["Zimbabwe"] = "ZW",
}
function p.main(frame)
local country = mw.ustring.gsub(mw.ustring.toNFC(frame.args[1] or ''), '^%s*(.-)%s*$', '%1')
local match1 = ''
if country and country ~= '' then
match1 = mw.ustring.match(country, "Flag of the ([^\.]*)") or mw.ustring.match(country, "Flag of ([^\.]*)") or mw.ustring.match(country, "(%u[%a%(%)%.' %-]+)") or ""
if (match1 == "Hình") or (match1 == "Tập tin") then
country = mw.ustring.gsub(country, match1, "")
match1 = mw.ustring.match(country, "[%|%[](%u[%a%(%)%.' %-]+)") or ""
end
if mw.ustring.match(match1, "^%d*x?%d+px$") then
country = mw.ustring.gsub(country, match1, "")
match1 = mw.ustring.match(country, "%[(%u[%a%(%)%.' %-]+)") or ""
end
end
local code = countries[match1]
if not code then
if mw.title.new('Bản mẫu:ISO 3166 code ' .. match1).exists then
code = frame:expandTemplate{ title = 'Bản mẫu:ISO 3166 code ' .. match1 }
else
local ns = mw.title.getCurrentTitle().namespace
if ns == 0 then
return '[[Thể loại:Trang Wikipedia có quốc gia tối nghĩa]]'
else
return '[[Thể loại:Trang Wikipedia có quốc gia tối nghĩa|'.. frame:expandTemplate{ title = 'Namespace Greek' } ..']]'
end
end
end
local subdivision = mw.ustring.gsub(mw.ustring.toNFC(frame.args[2] or ''), '^%s*(.-)%s*$', '%1')
if not subdivision or subdivision == '' then return code end
local countrytables = {
["AD"] = true,
["AE"] = true,
["AF"] = true,
["AG"] = true,
["AL"] = true,
["AM"] = true,
["AO"] = true,
["AR"] = true,
["AT"] = true,
["AU"] = true,
["AZ"] = true,
["BA"] = true,
["BB"] = true,
["BD"] = true,
["BE"] = true,
["BF"] = true,
["BG"] = true,
["BH"] = true,
["BI"] = true,
["BJ"] = true,
["BN"] = true,
["BO"] = true,
["BQ"] = true,
["BR"] = true,
["BS"] = true,
["BT"] = true,
["BW"] = true,
["BY"] = true,
["BZ"] = true,
["CA"] = true,
["CD"] = true,
["CF"] = true,
["CG"] = true,
["CH"] = true,
["CI"] = true,
["CL"] = true,
["CM"] = true,
["CN"] = true,
["CO"] = true,
["CR"] = true,
["CU"] = true,
["CV"] = true,
["CY"] = true,
["CZ"] = true,
["DE"] = true,
["DJ"] = true,
["DK"] = true,
["DM"] = true,
["DO"] = true,
["DZ"] = true,
["EC"] = true,
["EE"] = true,
["EG"] = true,
["ER"] = true,
["ES"] = true,
["ET"] = true,
["FI"] = true,
["FJ"] = true,
["FM"] = true,
["FR"] = true,
["GA"] = true,
["GB"] = true,
["GD"] = true,
["GE"] = true,
["GH"] = true,
["GL"] = true,
["GM"] = true,
["GN"] = true,
["GQ"] = true,
["GR"] = true,
["GT"] = true,
["GW"] = true,
["GY"] = true,
["HN"] = true,
["HR"] = true,
["HT"] = true,
["HU"] = true,
["ID"] = true,
["IE"] = true,
["IL"] = true,
["IN"] = true,
["IQ"] = true,
["IR"] = true,
["IS"] = true,
["IT"] = true,
["JM"] = true,
["JO"] = true,
["JP"] = true,
["KE"] = true,
["KG"] = true,
["KH"] = true,
["KI"] = true,
["KM"] = true,
["KN"] = true,
["KP"] = true,
["KR"] = true,
["KW"] = true,
["KZ"] = true,
["LA"] = true,
["LB"] = true,
["LC"] = true,
["LI"] = true,
["LK"] = true,
["LR"] = true,
["LS"] = true,
["LT"] = true,
["LU"] = true,
["LV"] = true,
["LY"] = true,
["MA"] = true,
["MC"] = true,
["MD"] = true,
["ME"] = true,
["MG"] = true,
["MH"] = true,
["MK"] = true,
["ML"] = true,
["MM"] = true,
["MN"] = true,
["MR"] = true,
["MT"] = true,
["MU"] = true,
["MV"] = true,
["MW"] = true,
["MX"] = true,
["MY"] = true,
["MZ"] = true,
["NA"] = true,
["NE"] = true,
["NG"] = true,
["NI"] = true,
["NL"] = true,
["NO"] = true,
["NP"] = true,
["NR"] = true,
["NZ"] = true,
["OM"] = true,
["PA"] = true,
["PE"] = true,
["PG"] = true,
["PH"] = true,
["PK"] = true,
["PL"] = true,
["PS"] = true,
["PT"] = true,
["PW"] = true,
["PY"] = true,
["QA"] = true,
["RO"] = true,
["RS"] = true,
["RU"] = true,
["RW"] = true,
["SA"] = true,
["SB"] = true,
["SC"] = true,
["SD"] = true,
["SE"] = true,
["SG"] = true,
["SH"] = true,
["SI"] = true,
["SK"] = true,
["SL"] = true,
["SM"] = true,
["SN"] = true,
["SO"] = true,
["SR"] = true,
["SS"] = true,
["ST"] = true,
["SV"] = true,
["SY"] = true,
["SZ"] = true,
["TD"] = true,
["TG"] = true,
["TH"] = true,
["TJ"] = true,
["TL"] = true,
["TM"] = true,
["TN"] = true,
["TO"] = true,
["TR"] = true,
["TT"] = true,
["TV"] = true,
["TW"] = true,
["TZ"] = true,
["UA"] = true,
["UG"] = true,
["UM"] = true,
["US"] = true,
["UY"] = true,
["UZ"] = true,
["VC"] = true,
["VE"] = true,
["VN"] = true,
["VU"] = true,
["WF"] = true,
["WS"] = true,
["YE"] = true,
["ZA"] = true,
["ZM"] = true,
["ZW"] = true,
}
local match2 = mw.ustring.match(subdivision, "Flag of the ([^\.]*)") or mw.ustring.match(subdivision, "Flag of ([^\.]*)") or mw.ustring.match(subdivision, "([ǁ'‘ʻ]?%u[%aZ̧z̄'‘‘ %.%,%-]+[%a%.'%d]+)") or ""
if (match2 == "Hình") or (match2 == "Tập tin") then
subdivision = mw.ustring.gsub(subdivision, match2, "")
match2 = mw.ustring.match(subdivision, "[\|\[]([ǁ'‘ʻ]?%u[%aZ̧z̄'‘ʻ %.%,%-]+[%a%.'%d]+)") or ""
end
if mw.ustring.match(match2, "^%d*x?%d+px$") then
subdivision = mw.ustring.gsub(subdivision, match2, "")
match2 = mw.ustring.match2(subdivision, "%[([ǁ'‘ʻ]?%u[%aZ̧z̄'‘ʻ %.%,%-]+[%a%.'%d]+)") or ""
end
local code1 = mw.ustring.sub(code, 1, 2)
if countrytables[code1] then
local tmp = mw.loadData('Mô đun:Country extract/' .. code1)
local code2 = tmp[match2] or tmp[mw.ustring.gsub(match2, " %(.*%)$", "")] or tmp[mw.ustring.gsub(match2, ",.*$", "")] or tmp[mw.ustring.gsub(match2, " %(.*$", "")]
if code2 then return code2 end
local legacytemplate = 'Bản mẫu:ISO 3166 code ' .. match1
if mw.title.new(legacytemplate).exists then
tmp = nil
for k, v in ipairs({
frame:expandTemplate{ title = legacytemplate, args = { mw.ustring.gsub(match2, " %(.*%)$", "") } },
frame:expandTemplate{ title = legacytemplate, args = { mw.ustring.gsub(match2, ",.*$", "") } },
frame:expandTemplate{ title = legacytemplate, args = { mw.ustring.gsub(match2, " %(.*$", "") } },
frame:expandTemplate{ title = legacytemplate, args = { match2 } }
}) do
if v ~= code and v ~= '' then
tmp = v
break
end
end
if tmp then return tmp end
end
local ns = mw.title.getCurrentTitle().namespace
if ns == 0 then
return code .. '[[Thể loại:Trang Wikipedia có quốc gia hoặc phân khu tối nghĩa]]'
else
return code .. '[[Thể loại:Trang Wikipedia có quốc gia hoặc phân khu tối nghĩa|'.. frame:expandTemplate{ title = 'Namespace Greek' } ..']]'
end
end
return code
end
return p