モジュール:仮リンク

出典: フリー教科書『ウィキブックス(Wikibooks)』

このモジュールについての説明文ページを モジュール:仮リンク/doc に作成できます

local p = {}

local projects = { -- interwiki prefix and label
	 w = 'Wikipedia',
	 commons = 'Commons gallery',
	 q = 'Wikiquote',
	 n = 'Wikinews',
	 wikt = 'Wiktionary',
	 s = 'Wikisource',
	 b = 'Wikibooks',
	 v = 'Wikiversity',
	 wikispecies = 'Wikispecies',
	 voy = 'Wikivoyage',
	 d = 'Wikidata',
	 wikilivres = 'wikilivres',
	 m = 'Meta',
}

local langs = { -- interwiki prefix and label
	aa = 'アファル語',
	ab = 'アブハズ語',
	ace = 'アチェ語',
	ady = 'アディゲ語',
	af = 'アフリカーンス語',
	ak = 'アカン語',
	als = 'アレマン語',
	am = 'アムハラ語',
	an = 'アラゴン語',
	ang = '古英語',
	ar = 'アラビア語',
	arc = 'アラム語',
	arz = 'エジプト・アラビア語',
	as = 'アッサム語',
	ast = 'アストゥリアス語',
	av = 'アヴァル語',
	ay = 'アイマラ語',
	az = 'アゼルバイジャン語',
	azb = 'South Azerbaijani',
	ba = 'バシキール語',
	bar = 'バイエルン・オーストリア語',
	bat_smg = 'サモギティア語',
	bcl = 'ビコール語',
	be = 'ベラルーシ語',
	bg = 'ブルガリア語',
	bi = 'ビスラマ語',
	bjn = 'バンジャル語',
	bm = 'バンバラ語',
	bn = 'ベンガル語',
	bo = 'チベット語',
	bpy = 'ビシュヌプリヤ・マニプリ語',
	br = 'ブルトン語',
	bs = 'ボスニア語',
	bug = 'ブギ語',
	bxr = 'ブリヤート語',
	ca = 'カタロニア語',
	cbk_zam = 'チャバカノ語',
	cdo = '閩東語',
	ce = 'チェチェン語',
	ceb = 'セブアノ語',
	ch = 'チャモロ語',
	cho = 'チョクトー語',
	chr = 'チェロキー語',
	chy = 'シャイアン語',
	ckb = 'クルド語(ソラニー)',
	co = 'コルシカ語',
	cr = 'クリー語',
	crh = 'クリミア・タタール語',
	cs = 'チェコ語',
	csb = 'カシューブ語',
	cu = '教会スラブ語',
	cv = 'チュヴァシ語',
	cy = 'ウェールズ語',
	da = 'デンマーク語',
	de = 'ドイツ語',
	diq = 'ザザキ語',
	dsb = '低ソルビア語',
	dv = 'ディベヒ語',
	dz = 'ゾンカ語',
	ee = 'エウェ語',
	el = 'ギリシャ語',
	eml = 'エミリア・ロマーニャ語',
	en = '英語',
	eo = 'エスペラント語',
	es = 'スペイン語',
	et = 'エストニア語',
	eu = 'バスク語',
	ext = 'エストレマドゥーラ語',
	fa = 'ペルシア語',
	ff = 'フラニ語',
	fi = 'フィンランド語',
	fiu_vro = 'ヴォロ語',
	fj = 'フィジー語',
	fo = 'フェロー語',
	fr = 'フランス語',
	frp = 'アルピタン語',
	frr = '北フリジア語',
	fur = 'フリウリ語',
	fy = '西フリジア語',
	ga = 'アイルランド語',
	gag = 'ガガウズ語',
	gan = '贛語',
	gd = 'スコットランド・ゲール語',
	gl = 'ガリシア語',
	glk = 'ギラキ語',
	gn = 'グアラニー語',
	gom = 'ゴア・コンカニ語',
	got = 'ゴート語',
	gu = 'グジャラート語',
	gv = 'マン島語',
	ha = 'ハウサ語',
	hak = '客家語',
	haw = 'ハワイ語',
	he = 'ヘブライ語',
	hi = 'ヒンディー語',
	hif = 'フィジー・ヒンディー語',
	ho = 'ヒリモツ語',
	hr = 'クロアチア語',
	hsb = '上ソルビア語',
	ht = 'ハイチ語',
	hu = 'ハンガリー語',
	hy = 'アルメニア語',
	hz = 'ヘレロ語',
	ia = 'インターリングア',
	id = 'インドネシア語',
	ie = 'インターリング',
	ig = 'イボ語',
	ii = '四川イ語',
	ik = 'イヌピアック語',
	ilo = 'イロカノ語',
	io = 'イド語',
	is = 'アイスランド語',
	it = 'イタリア語',
	iu = 'イヌクウティトット語',
	ja = '日本語',
	jbo = 'ロジバン語',
	jv = 'ジャワ語',
	ka = 'ジョージア語',
	kaa = 'カラカルパク語',
	kab = 'カビル語',
	kbd = 'カバルド語',
	kg = 'コンゴ語',
	ki = 'キクユ語',
	kj = 'クワニャマ語',
	kk = 'カザフ語',
	kl = 'グリーンランド語',
	km = 'クメール語',
	kn = 'カンナダ語',
	ko = '韓国語',
	koi = 'コミ・ペルミャク語',
	kr = 'カヌリ語',
	krc = 'カラチャイ語',
	ks = 'カシミール語',
	ksh = 'ケルン語',
	ku = 'クルド語',
	kv = 'コミ語',
	kw = 'コーンウォール語',
	ky = 'キルギス語',
	la = 'ラテン語',
	lad = 'ラディノ語',
	lb = 'ルクセンブルク語',
	lbe = 'ラク語',
	lez = 'レズギ語',
	lg = 'ガンダ語',
	li = 'リンブルフ語',
	lij = 'リグリア語',
	lmo = 'ロンバルド語',
	ln = 'リンガラ語',
	lo = 'ラオ語',
	lrc = '北ロル語',
	lt = 'リトアニア語',
	ltg = 'ラトガリア語',
	lv = 'ラトビア語',
	mai = 'マイティリー語',
	map_bms = 'バニュマス語',
	mdf = 'モクシャ語',
	mg = 'マダガスカル語',
	mh = 'マーシャル語',
	mhr = '東部マリ語',
	mi = 'マオリ語',
	min = 'ミナンカバウ語',
	mk = 'マケドニア語',
	ml = 'マラヤーラム語',
	mn = 'モンゴル語',
	mo = 'Bihari',
	mo = 'Moldovan',
	mr = 'マラーティー語',
	mrj = '山地マリ語',
	ms = 'マレー語',
	mt = 'マルタ語',
	mus = 'クリーク語',
	mwl = 'ミランダ語',
	my = 'ビルマ語',
	myv = 'エルジャ語',
	mzn = 'マーザンダラーン語',
	na = 'ナウル語',
	nah = 'Nahuatl',
	nap = 'ナポリ語',
	nds = '低地ドイツ語',
	nds_nl = 'オランダ低ザクセン語',
	ne = 'ネパール語',
	new = 'ネワール語',
	ng = 'ンドンガ語',
	nl = 'オランダ語',
	nn = 'ノルウェー語',
	no = 'ノルウェー語(ニーノシュク)',
	nov = 'ノヴィアル',
	nrm = 'ノルマン語',
	nso = '北部ソト語',
	nv = 'ナバホ語',
	ny = 'ニャンジャ語',
	oc = 'オック語',
	om = 'オロモ語',
	ori = 'オリヤー語',
	os = 'オセット語',
	pa = 'パンジャブ語',
	pag = 'パンガシナン語',
	pam = 'パンパンガ語',
	pap = 'パピアメント語',
	pcd = 'ピカルディ語',
	pdc = 'ペンシルベニア・ドイツ語',
	pfl = 'プファルツ語',
	pi = 'パーリ語',
	pih = 'ノーフォーク語・ピトケアン語',
	pl = 'ポーランド語',
	pms = 'ピエモンテ語',
	pnb = 'Western Punjabi',
	pnt = 'ポントス・ギリシャ語',
	ps = 'パシュトゥー語',
	pt = 'ポルトガル語',
	qu = 'ケチュア語',
	rm = 'ロマンシュ語',
	rmy = 'ロマ語',
	rn = 'ルンディ語',
	ro = 'ルーマニア語',
	roa_rup = 'アルーマニア語',
	roa_tara = 'タラント語',
	ru = 'ロシア語',
	rue = 'ルシン語',
	rw = 'ルワンダ語',
	sa = 'サンスクリット語',
	sah = 'ヤクート語',
	sc = 'サルデーニャ語',
	scn = 'シチリア語',
	sco = 'スコットランド語',
	sd = 'シンド語',
	se = '北サーミ語',
	sg = 'サンゴ語',
	sh = 'セルボ・クロアチア語',
	si = 'シンハラ語',
	simple = 'シンプル英語',
	sk = 'スロバキア語',
	sl = 'スロベニア語',
	sm = 'サモア語',
	sn = 'ショナ語',
	so = 'ソマリ語',
	sq = 'アルバニア語',
	sr = 'セルビア語',
	srn = 'スリナム語',
	ss = 'スワジ語',
	st = '南部ソト語',
	stq = 'ザーターフリジア語',
	su = 'スンダ語',
	sv = 'スウェーデン語',
	sw = 'スワヒリ語',
	szl = 'シレジア語',
	ta = 'タミル語',
	te = 'テルグ語',
	tet = 'テトゥン語',
	tg = 'タジク語',
	th = 'タイ語',
	ti = 'ティグリニア語',
	tk = 'トルクメン語',
	tl = 'タガログ語',
	tn = 'ツワナ語',
	to = 'トンガ語',
	tpi = 'トク・ピシン語',
	tr = 'トルコ語',
	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 = '中国語',
	zh_classical = '漢文',
	zh_min_nan = '閩南語',
	zh_yue = '広東語',
	zu = 'ズールー語',
}

function p.interprojectPart( frame )
	local frame = frame:getParent()
	local links = {}
	local int = 2
	while true do
		local intp = int
		local intl = int+1
		local intn = int+2
		local name = frame.args[intn] or frame.args[1]
		local project = projects[frame.args[intp]]
		local lang = langs[frame.args[intl]]
		if frame.args[intp] or frame.args[intl] or frame.args[intn] then
			if project and frame.args[intp] ~= 'b' then
				if lang and frame.args[intl] ~= 'ja' then
					table.insert( links, '[[' .. frame.args[intp] .. ':' .. frame.args[intl] .. ':' .. name .. '|' .. lang .. '版' .. project .. ']]' )
				else
					table.insert( links, '[[' .. frame.args[intp] .. ':' .. name .. '|' .. project .. ']]' )
				end
			else
				if lang and frame.args[intl] ~= 'ja' then
					table.insert( links, '[[:' .. frame.args[intl] .. ':' .. name .. '|' .. lang .. ']]' )
				else
					table.insert( links, '[[' .. name .. ']]' )
				end
			end
		else
			break
		end
		int = int +3
	end
	if next( links ) == nil then
		return ''
	else
		return '<span style="font-size: 0.77em; font-weight: normal;" class="noprint">(' .. table.concat( links, '、' ) .. ')</span>'
	end
end

return p