local p = {}
local lang_mapping = {
ab = 'アブハズ語',
ace = 'アチェー語',
ady = 'アディゲ語',
af = 'アフリカーンス語',
ak = 'アカン語',
als = 'アレマン語',
alt = '南アルタイ語',
am = 'アムハラ語',
an = 'アラゴン語',
ang = '古英語',
ar = 'アラビア語',
arc = 'アラム語',
ary = 'モロッコ・アラビア語',
arz = 'エジプト・アラビア語',
as = 'アッサム語',
ast = 'アストゥリアス語',
atj = 'アティカメク語',
av = 'アヴァル語',
avk = 'コタヴァ',
awa = 'アワディー語',
ay = 'アイマラ語',
az = 'アゼルバイジャン語',
azb = '南アゼルバイジャン語',
ba = 'バシキール語',
ban = 'バリ語',
bar = 'バイエルン・オーストリア語',
bcl = '中央ビコル語',
be = 'ベラルーシ語',
bg = 'ブルガリア語',
bh = 'ビハール語',
bi = 'ビスラマ語',
bjn = 'バンジャル語',
bm = 'バンバラ語',
bn = 'ベンガル語',
bo = 'チベット語',
bpy = 'ビシュヌプリヤ・マニプリ語',
br = 'ブルトン語',
bs = 'ボスニア語',
bug = 'ブギ語',
bxr = 'ロシアブリヤート語',
ca = 'カタルーニャ語',
cdo = 'ビン東語',
ce = 'チェチェン語',
ceb = 'セブアノ語',
ch = 'チャモロ語',
chr = 'チェロキー語',
chy = 'シャイアン語',
ckb = 'ソラニー',
co = 'コルシカ語',
cr = 'クリー語',
crh = 'クリミア・タタール語',
cs = 'チェコ語',
csb = 'カシューブ語',
cu = '教会スラブ語',
cv = 'チュヴァシュ語',
cy = 'ウェールズ語',
da = 'デンマーク語',
dag = 'ダバニ語',
de = 'ドイツ語',
din = 'ディンカ語',
diq = 'ディムリ語',
dsb = '低地ソルブ語',
dty = 'ドテリ語',
dv = 'ディベヒ語',
dz = 'ゾンカ語',
ee = 'エウェ語',
el = 'ギリシア語',
eml = 'エミリア・ロマーニャ語',
en = '英語',
eo = 'エスペラント語',
es = 'スペイン語',
et = 'エストニア語',
eu = 'バスク語',
ext = 'エストレマドゥーラ語',
fa = 'ペルシア語',
ff = 'フラニ語',
fi = 'フィンランド語',
fj = 'フィジー語',
fo = 'フェロー語',
fr = 'フランス語',
frp = 'アルピタン語',
frr = '北フリジア語',
fur = 'フリウリ語',
fy = 'フリジア語',
ga = 'アイルランド語',
gag = 'ガガウズ語',
gan = 'カン語',
gcr = 'フランス領ギアナ・クレオール語',
gd = 'スコットランド・ゲール語',
gl = 'ガリシア語',
glk = 'ギラキ語',
gn = 'グアラニー語',
gom = 'ゴア・コンカニ語',
gor = 'ゴロンタロ語',
got = 'ゴート語',
gu = 'グジャラート語',
gv = 'マン島語',
ha = 'ハウサ語',
hak = '客家語',
haw = 'ハワイ語',
he = 'ヘブライ語',
hi = 'ヒンディー語',
hif = 'フィジー・ヒンディー語',
hr = 'クロアチア語',
hsb = '高地ソルブ語',
ht = 'ハイチ語',
hu = 'ハンガリー語',
hy = 'アルメニア語',
hyw = '西アルメニア語',
ia = 'インターリングア',
id = 'インドネシア語',
ie = 'インターリング',
ig = 'イボ語',
ik = 'イヌピアック語',
ilo = 'イロカノ語',
inh = 'イングーシュ語',
is = 'アイスランド語',
it = 'イタリア語',
iu = 'イヌクティトゥット語',
ja = '日本語',
jam = 'ジャマイカ・クレオール語',
jbo = 'ロジバン語',
jv = 'ジャワ語',
ka = 'グルジア語',
kaa = 'カラカルパク語',
kab = 'カビル語',
kbd = 'カバルド語',
kbp = 'カビエ語',
kg = 'コンゴ語',
ki = 'キクユ語',
kk = 'カザフ語',
kl = 'グリーンランド語',
km = 'クメール語',
kn = 'カンナダ語',
ko = '朝鮮語',
koi = 'コミ・ペルミャク語',
krc = 'カラチャイ・バルカル語',
ks = 'カシミール語',
ksh = 'ケルン語',
ku = 'クルド語',
kv = 'コミ語',
kw = 'コーンウォール語',
ky = 'キルギス語',
la = 'ラテン語',
lad = 'ラジノ語',
lb = 'ルクセンブルク語',
lbe = 'ラク語',
lez = 'レズギ語',
lfn = 'リングア・フランカ・ノバ',
lg = 'ガンダ語',
li = 'リンブルフ語',
lij = 'リグリア語',
lld = 'ラディン語',
lmo = 'ロンバルド語',
ln = 'リンガラ語',
lo = 'ラーオ語',
lrc = '北ロル語',
lt = 'リトアニア語',
ltg = 'ラトガリア語',
lv = 'ラトビア語',
mad = 'マドゥラ語',
mai = 'マイティリー語',
mdf = 'モクシャ語',
mg = 'マダガスカル語',
mhr = '牧地マリ語',
mi = 'マオリ語',
min = 'ミナンカバウ語',
mk = 'マケドニア語',
ml = 'マラヤーラム語',
mn = 'モンゴル語',
mni = 'マニプリ語',
mnw = 'モン語',
mr = 'マラーティー語',
mrj = '山地マリ語',
ms = 'マレー語',
mt = 'マルタ語',
mwl = 'ミランダ語',
my = 'ビルマ語',
myv = 'エルジャ語',
mzn = 'マーザンダラーン語',
na = 'ナウル語',
nah = 'ナワトル語',
nap = 'ナポリ語',
nds = '低地ドイツ語',
ne = 'ネパール語',
new = 'ネワール語',
nia = 'ニアス語',
nl = 'オランダ語',
nn = 'ノルウェー語 (ニーノシュク)',
no = 'ノルウェー語',
nov = 'ノヴィアル',
nqo = 'ンコ語',
nrm = 'ノルマン語',
nso = '北ソト語',
nv = 'ナバホ語',
ny = 'ニャンジャ語',
oc = 'オック語',
olo = 'リッヴィ語',
om = 'オロモ語',
pa = 'パンジャブ語',
pag = 'パンガシナン語',
pam = 'パンパンガ語',
pap = 'パピアメント語',
pcd = 'ピカルディ語',
pdc = 'ペンシルベニア・ドイツ語',
pfl = 'プファルツ語',
pi = 'パーリ語',
pih = 'ピトケアン語',
pl = 'ポーランド語',
pms = 'ピエモンテ語',
pnb = '西パンジャーブ語',
pnt = 'ポントス・ギリシャ語',
ps = 'パシュトー語',
pt = 'ポルトガル語',
qu = 'ケチュア語族',
rm = 'ロマンシュ語',
rmy = 'ヴラックス・ロマ語',
rn = 'ルンディ語',
ro = 'ルーマニア語',
ru = 'ロシア語',
rue = 'ルシン語',
rw = 'ルワンダ語',
sa = 'サンスクリット語',
sah = 'ヤクート語',
sat = 'サンターリー語',
sc = 'サルデーニャ語',
scn = 'シチリア語',
sco = 'スコットランド語',
sd = 'シンド語',
se = '北部サーミ語',
sg = 'サンゴ語',
sh = 'セルビア・クロアチア語',
shi = 'シルハ語',
shn = 'シャン語',
si = 'シンハラ語',
simple = 'シンプル英語',
sk = 'スロバキア語',
skr = 'サライキ語',
sl = 'スロベニア語',
sm = 'サモア語',
smn = 'イナリ・サーミ語',
sn = 'ショナ語',
so = 'ソマリ語',
sq = 'アルバニア語',
sr = 'セルビア語',
srn = 'スラナン語',
ss = 'スワジ語',
st = 'ソト語',
stq = '東フリジア語',
su = 'スンダ語',
sv = 'スウェーデン語',
sw = 'スワヒリ語',
szl = 'シレジア語',
szy = 'サキザヤ語',
ta = 'タミル語',
tay = 'タイヤル語',
tcy = 'トゥル語',
te = 'テルグ語',
tet = 'テトゥン語',
tg = 'タジク語',
th = 'タイ語',
ti = 'ティグリニャ語',
tk = 'トルクメン語',
tl = 'タガログ語',
tn = 'ツワナ語',
to = 'トンガ語 (ポリネシア)',
tpi = 'トク・ピシン語',
tr = 'トルコ語',
trv = 'セデック語',
ts = 'ツォンガ語',
tt = 'タタール語',
tum = 'トゥンブカ語',
tw = 'トウィ語',
ty = 'タヒチ語',
tyv = 'トゥヴァ語',
udm = 'ウドムルト語',
ug = 'ウイグル語',
uk = 'ウクライナ語',
ur = 'ウルドゥー語',
uz = 'ウズベク語',
ve = 'ベンダ語',
vec = 'ヴェネト語',
vep = 'ヴェプス語',
vi = 'ベトナム語',
vls = '西フラマン語',
vo = 'ヴォラピュク語',
wa = 'ワロン語',
war = 'ワライ語',
wo = 'ウォロフ語',
wuu = '呉語',
xal = 'カルムイク語',
xh = 'コサ語',
xmf = 'メグレル語',
yi = 'イディッシュ語',
yo = 'ヨルバ語',
za = 'チワン語',
zea = 'ゼーランド語',
zh = '中国語',
zu = 'ズールー語',
}
--予約語だったり、ハイフンつきなど問題がありそうなのを切り離す
lang_mapping['bat-smg'] = 'サモギティア語'
lang_mapping['be-tarask'] = 'タラシケヴィツァ'
lang_mapping['be-x-old'] = 'タラシケヴィツァ'
lang_mapping['cbk-zam'] = 'チャバカノ語'
lang_mapping['fiu-vro'] = 'ヴォロ語'
lang_mapping['io'] = 'イド語'
lang_mapping['map-bms'] = 'バニュマス語'
lang_mapping['nds-nl'] = 'オランダ低ザクセン語'
lang_mapping['or'] = 'オリヤー語'
lang_mapping['os'] = 'オセット語'
lang_mapping['roa-rup'] = 'アルーマニア語'
lang_mapping['roa-tara'] = 'タラント語'
lang_mapping['zh-classical'] = '漢文'
lang_mapping['zh-min-nan'] = 'ビン南語'
lang_mapping['zh-yue'] = '広東語'
local lang_mapping_short = {
ang = '古英',
ar = '亜',
cs = '捷',
da = '丁',
de = '独',
el = '希',
en = '英',
es = '西',
fa = '波',
fi = '芬',
fr = '仏',
ga = '愛',
it = '伊',
ja = '日',
ko = '朝',
la = '羅',
mi = '毛',
mn = '蒙',
nl = '蘭',
no = '諾',
pi = '巴',
pl = '波',
pt = '葡',
ru = '露',
sa = '梵',
sv = '典',
th = '泰',
tr = '土',
vi = '越',
zh = '中',
}
function p.GetWikipediaPageName(frame)
local code = frame.args[1]
local lang_code = mw.text.trim(string.lower(code))
local lang_name
if string.find(lang_code, '-short') ~= nil then
lang_code = string.sub(lang_code, 1, string.len(lang_code) - 6)
lang_name = lang_mapping_short[lang_code]
if lang_name ~= nil then
return lang_name
end
end
lang_name = lang_mapping[lang_code]
return lang_name
end
return p