嘚瑟是什么意思| 咽干是什么原因| 手指疼挂什么科| aa是什么意思| 吃什么东西能流产| 李世民属相是什么生肖| 氧氟沙星和诺氟沙星有什么区别| 腻歪是什么意思| 痤疮长什么样| 颈动脉彩超能查出什么| 机化是什么意思| 草龟吃什么| 两肺纹理增重什么意思| 在什么的前面用英语怎么说| guess什么牌子| 趾高气昂是什么意思| 暗娼什么意思| 胃反酸水吃什么药| 木乐念什么| 大便检查能查出什么病| 艾灸肚脐眼有什么好处| 手爆皮是什么原因| 甘油三酯高吃什么食物降得快| 友字五行属什么| 男人精液少是什么原因| 皂角米有什么功效| 办护照需要什么证件| 年薪20万算什么水平| 脂肪分解成什么| 肺栓塞挂什么科| 阴虱病是什么原因引起的| 口腔溃疡缺什么| 咂嘴是什么意思| 莫拉古是什么意思| 焗油是什么意思| 什么水果是热性的| 疖肿是什么| 什么天喜地| gdp指的是什么| 照烧是什么意思| 画像是什么意思| 拉伤筋用什么药好| 头晕做什么检查最准确| 为什么一年比一年热| 幽门螺杆菌感染有什么症状和表现| 何首乌长什么样子| 一级警长是什么级别| 日抛是什么意思| 高压偏低有什么危害| 甲子五行属什么| 蔡明是什么民族| 香菜吃多了有什么坏处| 凭什么是什么意思| 湖南为什么叫湖南| 一片冰心在玉壶是什么意思| 心心相惜是什么意思| 什么是黑咖啡| 阿尔马尔是什么药| 什么什么入胜| 扬长而去是什么意思| 如意代表什么生肖| 软卧代软座什么意思| 珍珠母是什么东西| 血脂高是什么意思| 什么是直辖市| 衍生物是什么意思| 96615是什么电话| ppb是什么单位| 气质是什么| 细胞学说揭示了什么| 男士内裤什么材质的好| au750是什么意思| 慢性宫颈炎用什么药好| 林五行属什么| 助听器什么价位| 妈富隆是什么药| 谦虚的什么| 额头长痘是因为什么| 哺乳期牙龈肿痛可以吃什么药| 乳房看什么科| 乳腺结节三级是什么意思| 壮志凌云是什么生肖| 1月3号是什么星座| 肾结石是由什么原因引起的| 什么心什么心| 疱疹挂什么科| 于无声处是什么意思| 月经提前来是什么原因| 什么人骗别人也骗自己| 水果有什么| 怎么算自己五行缺什么| 遨游是什么意思| 乡镇派出所所长是什么级别| 麻醉对身体有什么伤害| 产后42天复查挂什么科| 刚感染艾滋病什么症状| 什么腿| 腐竹是什么做的| 尿检弱阳性是什么意思| 早上起来口干口苦是什么原因| 清宫和人流有什么区别| 老司机是什么意思| 74年属什么的生肖| 青少年长白头发是什么原因| 前来是什么意思| 双修是什么意思| 什么的长城| 黄宗洛黄海波什么关系| 往来账是什么意思| 大兴安岭属于什么市| 经期吃什么缓解痛经| 不均质脂肪肝是什么意思| 什么是孢子粉| 友五行属什么| 8023什么意思| 中国文联是什么级别| 梦见酒是什么意思| 革兰阴性杆菌是什么| 晚上八点到九点是什么时辰| 红眼病什么症状| 输氨基酸对身体有什么好处和坏处| 均可是什么意思| 鼻头长痘痘什么原因| dha每天什么时候吃最好| 太阳病是什么意思| 日语莫西莫西什么意思| 幽门螺旋杆菌用什么药| 为什么积食发烧很难退| 窈窕淑女是什么生肖| 1972年是什么年| 孕囊长什么样| 推崇是什么意思| 梦到掉牙齿是什么预兆| 什么时候测试怀孕最准确的| 喝蜂蜜水对身体有什么好处| 肝s5是什么意思| 多核巨细胞是什么意思| 失眠什么原因| 肠梗阻是什么症状| 此言念什么| 看见喜鹊有什么预兆| 大姨妈每个月提前来是什么原因| 血虚是什么意思| 1999年是什么命| 普门品是什么意思| 喝完酒头疼吃什么药| 不孕不育的症状是什么| 玉米热量高为什么还减肥| 什么地说话| 仁德是什么意思| 子宁不嗣音什么意思| 月经不规律是什么原因| 六月二十四是什么日子| 杀什么吓什么| 肩宽适合穿什么样的衣服| 什么是肉刺图片大全| 射手座是什么星象| 参乌健脑胶囊适合什么人吃| 遥不可及什么意思| 飒的意思是什么| 耸是什么意思| 大便什么颜色是正常的| 不伤肝的他汀类药是什么| 贾珍和贾政是什么关系| 太阳鱼吃什么食物| 什么牌子的空调好| 阿斗是什么意思| 要强的女人是什么性格| leu是什么意思| 候和侯有什么区别| 脑卒中是什么意思| 领衔是什么意思| 三联和四联有什么区别| 绿豆什么时候成熟| 耸肩是什么原因造成的| 心什么什么什么| 凉皮是什么做的| 低血糖吃什么食物| 喝茶拉肚子是什么原因| 圆明园是什么时候被烧的| 牙龈出血什么原因| 1954属什么生肖| 下眼皮跳是什么原因| 儿童中耳炎用什么药最好| 摔伤用什么药好得快| 暂住证和居住证有什么区别| 战略纵深是什么意思| 难以入睡是什么原因引起的| 麟是什么意思| 咖啡是什么| 男性粘液丝高什么原因| 荔枝适合什么地方种植| 话少一般都是什么人| 癣是什么| 大便蛋花状是什么原因| 脚脖子疼是什么原因| 座驾是什么意思| 96年出生的属什么| 三点水开念什么意思| 脑梗阻有什么症状| ysl是什么品牌| 六九是什么意思| 什么是透析治疗| 十月十一日是什么星座| 梦见自己洗头发是什么意思| 什么是热病| 香港特首是什么级别| 乙肝有抗体是显示什么结果| 人为什么会做春梦| 经期血量少是什么原因| 95年属什么的| 阴差阳错是什么意思| 什么的琴声| 核糖是什么| 无偿献血证有什么用| 心灵鸡汤是什么意思| 二郎神是什么生肖| 小拇指旁边的手指叫什么| 身上起红斑是什么原因| 脂肪酶是什么意思| 背胀是什么原因| 什么情况需要做肠镜| 胎儿打嗝是什么原因| 小便有泡沫是什么情况| 王属什么五行| 甲醛中毒吃什么药解毒| 胖子从12楼掉下来会变什么| 麒字五行属什么| 化疗为什么掉头发| mido手表什么档次| 心律不齐吃什么食物好| 癌症病人吃什么| 喉咙疼痛一咽口水就疼吃什么药| 什么是电子版照片| 头痛做什么检查| 近视散光是什么意思| 羊水栓塞是什么意思| 心眼是什么意思| 五心烦热吃什么药| 木色是什么颜色| 什么心什么血| 6月18是什么日子| 偏头痛吃什么药效果好| 包干价是什么意思| 血压什么时间测量最准| 什么屁股摸不得| 客之痣是什么意思| 社会很单纯复杂的是人是什么歌| 霉菌性阴道炎吃什么药| 吃了火龙果小便红色是什么原因| 现在流行什么样的衣柜| 脊背疼是什么原因| 眼睛肿了用什么药| 九八年属什么生肖| but什么意思| 什么原因导致阴虚| 大拇指脱皮是什么原因| 吃甘草片有什么副作用| 熬夜吃什么| 愿力是什么意思| 小孩白头发是什么原因引起的| 拉不出来屎是什么原因| 宜昌有什么特产| 尿频什么原因| 百度Sari la con?inut

杏仁有什么营养

De la Wikipedia, enciclopedia liber?
百度 在上线之初,橙旗贷一被业内人士视为优秀平台。
require ('Modul:No globals');


--[[--------------------------< I S _ C J K >------------------------------------------------------------------

return true if code is one of the listed Chinese, Japanese, Korean ISO 639 codes, false else.

]]

local function is_cjk_code (code)
local cjk =
		{
		['zh'] = true, ['cdo'] = true, ['cjy'] = true, ['cmn'] = true,			-- Chinese language codes
		['cpi'] = true, ['cpx'] = true, ['czh'] = true, ['czo'] = true,
		['gan'] = true, ['hak'] = true, ['hsn'] = true, ['ltc'] = true,
		['lzh'] = true, ['mnp'] = true, ['nan'] = true, ['och'] = true,
		['wuu'] = true, ['yue'] = true, ['zhx'] = true,
		['ja'] = true, ['jpx'] = true, ['ojp'] = true,							-- Japanese language codes
		['ko'] = true, ['okm'] = true, ['oko'] = true,							-- Korean language codes
		}

	return cjk[code] or false;
end


--[[--------------------------< S E T _ I T A L I C S >--------------------------------------------------------

Created for use with Template:Infobox book and Template:Infobox document and perhaps others to replace hard-coded
italic markup in the call to {{lang}}.  This module attempts to make sure that {{lang}} correctly applies italic
markup according to MOS:FOREIGNITALIC.  

]]

local function set_italics (frame)
	local code = frame.args[1] or frame.args['code'] or '';						-- empty string causes 'yes' return; {{lang}} will handle the missing code error
	local text = frame.args[2] or frame.args['text'] or '';						-- empty string causes 'yes' return; {{lang}} will handle the missing text error
	
	local is_latn = require ("Modul:Unicode data").is_Latin;
	
	if is_cjk_code (code) and not is_latn (text) then							-- is_latn() is in Module:Lang
		return  'no';															-- only case for 'no' 
	end
	return 'yes';																-- everything else is yes
end


--[[--------------------------< I N _ L A N G >----------------------------------------------------------------

implements {{in lang}}

Module entry point from an {{#invoke:lang/utilities/sanbox|in_lang|<code>|<code2>|<code3>|<code...>|link=yes|template=Link language}}

<span class="languageicon">(in <language>)</span>

]]

local function in_lang (frame)
	local getArgs = require ('Modul:Arguments').getArgs;
	local synonym_table = mw.loadData ('Modul:Lang/ISO 639 synonyms');				-- ISO 639-2/639-2T code translation to 639-1 code
	local args = getArgs(frame);
	local list = {};
	local cats = {};
	local maint_msgs = {};
	
	if not args[1] then
		local template = (args['template'] and table.concat ({'{{', args['template'], '}}: '})) or '';	-- make template name (if provided by the template)
		return table.concat ({'<span style=\"font-size:100%; font-style:normal;\" class=\"error\">error: ', template, 'missing language tag</span>'});
	end

	local module = 'Modul:Lang' .. (frame:getTitle():match ('/sandbox') or '');	-- if this module is the sandbox,
	local name_from_tag = require (module)._name_from_tag;						-- use Module:Lang/sandbox; Module:Lang else

	local namespace = mw.title.getCurrentTitle().namespace;						-- used for categorization
	local this_wiki_lang = mw.language.getContentLanguage().code;				-- get this wiki's language code

	for i, lang in ipairs (args) do
		local code = args[i]:lower();
		local t = {code, ['link'] = args['link'], ['template'] = args['template']};	-- build an 'args' table
		lang = name_from_tag (t)												-- get the language name
		table.insert (list, lang)												-- add this language or error message to the list

		if 'ca-valencia' ~= code then											-- except for valencian
			code = code:match ('^%a%a%a?%f[^%a]');								-- strip off region, script, and variant tags so that they aren't used to make category names
		end
		if synonym_table[code] then												-- if 639-2/639-2T code has a 639-1 synonym
			if (0 == namespace) then
				table.insert (cats, table.concat ({'[[Category:Lang ?i cod lang-xx promovat la ISO 639-1|', code ..']]'}));
			end
			table.insert (maint_msgs, ' <span class="lang-comment" style="font-style:normal; display:none; color:#33aa33; margin-left:0.3em">')
			table.insert (maint_msgs, table.concat ({'code: ', code, ' promoted to code: ', synonym_table[code]}));
			table.insert (maint_msgs, '</span>;');
			code = synonym_table[code];											-- use the synonym
		end

		if (0 == namespace) then												-- when in article space
			if lang:find ('error') then											-- add error category (message provided by Module:Lang)
				table.insert (cats, '[[Category:in lang template errors]]');
			elseif this_wiki_lang ~= code then									-- categorize article only when code is not this wiki's language code
				if lang:match ('%[%[.-|.-%]%]') then							-- wikilinked individual language name
					lang = lang:match ('%[%[.-|(.-)%]%]');
				elseif lang:match ('%[%[.-%]%]') then							-- wikilinked collective languages name
					lang = lang:match ('%[%[(.-)%]%]');
				end																-- neither of these then plain-text language name

				if lang:find ('languages') then									-- add appropriate language-name category
					table.insert (cats, table.concat ({'[[Category:Articole cu ', lang, '-surse colective (', code, ')]]'}));
				else
					table.insert (cats, table.concat ({'[[Category:Articole cu ', lang, '-surse de limb? (', code, ')]]'}));
				end
			end
		end
	end
	
	local result = {'<span class="languageicon">('};							-- opening span and (
	table.insert (result, 'yes' == args['cap'] and 'In ' or 'in ');				-- add capitalized or uncapitalized 'in'
	table.insert (result, mw.text.listToText (list, ', ', (2 < #list) and ', and ' or ' and ' ));	-- and concatenate the language list

	table.insert (result, ')</span>');											-- add closing ) and closing span
	table.insert (result, table.concat (maint_msgs) or '');				-- add maint messages, if any
	table.insert (result, table.concat (cats));									-- add categories
	return table.concat (result);												-- make a big string and done
end


--[[--------------------------< N I H O N G O _ E R R O R >----------------------------------------------------

creates an error message for {{nihongo}}, {{nihongo3}}, and nihongo foot}} when these template are missing <japanese>
or <romaji> inputs; names the offending template, links to template page, and adds article to Category:Nihongo template errors

]]

local function nihongo_error (template)
	local msg = {'<span class="error" style="font-size:100%">error: {{'};
	table.insert (msg, template);
	table.insert (msg, '}}: Este necesar un text japonez sau romaji ([[Format:');
	table.insert (msg, template);
	table.insert (msg, '|help]])</span>');
	if 0 == mw.title.getCurrentTitle().namespace then
		table.insert (msg, '[[Category:Erorile formatului Nihongo]]');
	end

	return table.concat (msg);	
end


--[[--------------------------< N I H O N G O _ R E N D E R E R >----------------------------------------------

shared support function for nihingo(), nihongo3(), and nihongo_foot().  Calculates an index into formatting{}
from set/unset parameters:
	args[1] (english) has a value of 8 (set) or 0 (unset)
	args[2] (japanese) has a value of 4
	args[3] (romaji) has a value of 2
	args[4] (extra) has a value of 1
index, the sum of these values, gets the appropriate format string from formatting{} table with associated values
from the formatting[index][2] table

]]

local function nihongo_renderer (args, formatting, extra2)
	local output;
	local index = 0;															-- index into formatting{}
	local param_weight = {8, 4, 2, 1};											-- binary parameter weights: [1] = english (8), [2] = japanese (4), [3] = romaji (2), [4] = extra (1)

	for i=1, 5 do																-- spin through args[1] – args[4]
		index = index + (args[i] and param_weight[i] or 0);						-- calculate an index into formatting{}
	end

	output = (0 ~= index) and string.format (formatting[index][1] and formatting[index][1], formatting[index][2][1], formatting[index][2][2], formatting[index][2][3], formatting[index][2][4]) or nil;

	if extra2 then																-- always just attached to the end (if there is an end) so not part of formatting{}
		output = output and (output .. ' ' .. extra2) or '<5p4n>' .. extra2;	-- <5p4n> and </5p4n>: place holders for font-weight style spans; akin to stripmarkers, to be replaced
	end																			-- (nihongo and nihongo3) or removed (nihongo foot)

	return output and (output .. '</5p4n>') or '';								-- where there is output, add secret tag close
end


--[=[-------------------------< N I H O N G O >----------------------------------------------------------------

An experiment to see how to implement {{nihongo}} using Module:Lang for language and transliteration markup

{{Nihongo|<English>|<japanese>|<romaji>|<extra>|<extra2>|lead=yes}}

<English>, <japanese>, and <romaji> are positional parameters
	<English>: rendered as presented; purports to be English translation of <kanji/kana>
	<japanese>: Japanese language text using Japanese script; TODO: require?
	<romaji>: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?
<extra> and <extra2> are positional or named: |extra= and |extra2=; mixing can be problematic
	<extra> is rendered as presented preceeded with <comma><space>
	<extra2> is rendered as presented preceeded with <space>
|lead=: takes one value 'yes'; renders language name same as {{lang-ja}} but also adds [[Hepburn romanization|Hepburn]]:<space> ahead of the romanization; TODO: in Module:Lang, turnoff tooltip for transl when |lead=yes

]=]

local function nihongo (frame)
	local lang_module = require ('Modul:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else

	local args = require ('Modul:Arguments').getArgs (frame);
	
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()

	local lead = 'yes' == args.lead;											-- make boolean

	if not (japanese or romaji) then											-- not present, return an error message
		return nihongo_error ('nihongo');
	end
	if japanese then
		japanese = lead and lang_module._lang_xx_inherit ({['code']='ja', japanese, ['template']='nihongo'}) or lang_module._lang ({'ja', japanese, ['template']='nihongo'});	-- add ja script with/without language prefix
	end
	if romaji then
		romaji = (lead and english and '[[Hepburn romanization|Hepburn]]: ' or '') .. lang_module._transl ({'ja', 'hepburn', romaji}) or nil;
	end
	
	local formatting = {														-- <5p4n> and </5p4n>: place holders for font-weight style spans; akin to stripmarkers, replaced  before function returns
		{'<5p4n>(%s)', {extra}}, 												-- 1 - (extra)
		{'%s<5p4n>', {romaji}},													-- 2 - romaji
		{'%s<5p4n> (%s)', {romaji, extra}},										-- 3 - romaji (extra)
		{'<5p4n>(%s)', {japanese}},												-- 4 - japanese
		{'<5p4n>(%s, %s)', {japanese, extra}},									-- 5 - (japanese, extra)
		{'%s<5p4n> (%s)', {romaji, japanese}},									-- 6 - romaji (japanese)
		{'%s<5p4n> (%s, %s)', {romaji, japanese, extra}},						-- 7 - romaji (japanese, extra)
		{'%s<5p4n>', {english}},												-- 8 - english
		{'%s<5p4n> (%s)', {english, extra}},									-- 9 - english (extra)
		{'%s<5p4n> (%s)', {english, romaji}},									-- 10 - english (romaji)
		{'%s<5p4n> (%s, %s)', {english, romaji, extra}},						-- 11 - english (romaji, extra)
		{'%s<5p4n> (%s)', {english, japanese}},									-- 12 - english (japanese)
		{'%s<5p4n> (%s, %s)', {english, japanese, extra}},						-- 13 - english (japanese, extra)
		{'%s<5p4n> (%s, %s)', {english, japanese, romaji}},						-- 14 - english (japanese, romaji)
		{'%s<5p4n> (%s, %s, %s)', {english, japanese, romaji, extra}},			-- 15 - english (japanese, romaji, extra)
		}

	local ret_string = nihongo_renderer (args, formatting, extra2)
	ret_string = ret_string:gsub ('<5p4n>', '<span style="font-weight: normal">'):gsub ('</5p4n>', '</span>');	-- replace 'secret' tags with proper tags
	return ret_string;															-- because gsub returns the number of replacements made as second return value
end


--[=[-------------------------< N I H O N G O 3 >--------------------------------------------------------------

An experiment to see how to implement {{nihongo3}} using Module:Lang for language and transliteration markup

Similar to {{nihongo}} but changes rendered order and does not support |lead=

{{Nihongo3|<English>|<japanese>|<romaji>|<extra>|<extra2>}}

<English>, <japanese>, and <romaji> are positional parameters
	<English>: rendered as presented; purports to be English translation of <kanji/kana>
	<japanese>: Japanese language text using Japanese script; TODO: require?
	<romaji>: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?
<extra> and <extra2> are positional or named: |extra= and |extra2=; mixing can be problematic
	<extra> is rendered as presented preceeded with <comma><space>
	<extra2> is rendered as presented preceeded with <space>

]=]

local function nihongo3 (frame)
	local lang_module = require ('Modul:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else
	local args = require ('Modul:Arguments').getArgs (frame);
	
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()

	if not (japanese or romaji) then											-- not present, return an error message
		return nihongo_error ('nihongo3');
	end
	japanese = japanese and lang_module._lang ({'ja', japanese}) or nil;
	romaji = romaji and lang_module._transl ({'ja', 'hepburn', romaji}) or nil;
	
	local formatting = {														-- <5p4n> and </5p4n>: place holders for font-weight style spans; akin to stripmarkers, replaced  before function returns
		{'<5p4n>(%s)', {extra}}, 												-- 1 - (extra)
		{'%s<5p4n>', {romaji}},													-- 2 - romaji
		{'%s<5p4n> (%s)', {romaji, extra}},										-- 3 - romaji (extra)
		{'<5p4n>(%s)', {japanese}},												-- 4 - japanese
		{'<5p4n>(%s, %s)', {japanese, extra}},									-- 5 - (japanese, extra)
		{'%s<5p4n> (%s)', {romaji, japanese}},									-- 6 - romaji (japanese)
		{'%s<5p4n> (%s, %s)', {romaji, japanese, extra}},						-- 7 - romaji (japanese, extra)
		{'%s<5p4n>', {english}},												-- 8 - english
		{'%s<5p4n> (%s)', {english, extra}},									-- 9 - english (extra)
		{'%s<5p4n> (%s)', {romaji, english}},									-- 10 - romaji (english)
		{'%s<5p4n> (%s, %s)', {romaji, english, extra}},						-- 11 - romaji (english, extra)
		{'%s<5p4n> (%s)', {english, japanese}},									-- 12 - english (japanese)
		{'%s<5p4n> (%s, %s)', {english, japanese, extra}},						-- 13 - english (japanese, extra)
		{'%s<5p4n> (%s, %s)', {romaji, japanese, english}},						-- 14 - romaji (japanese, english)
		{'%s<5p4n> (%s, %s, %s)', {romaji, japanese, english, extra}},			-- 15 - romaji (japanese, english, extra)
		}

	local ret_string = nihongo_renderer (args, formatting, extra2)
	ret_string = ret_string:gsub ('<5p4n>', '<span style="font-weight: normal">'):gsub ('</5p4n>', '</span>');	-- replace 'secret' tags with proper tags
	return ret_string;															-- because gsub returns the number of replacements made as second return value
end


--[=[-------------------------< N I H O N G O _ F O O T >------------------------------------------------------

An experiment to see how to implement {{nihongo_foot}} using Module:Lang for language and transliteration markup

{{Nihongo foot|<English>|<japanese>|<romaji>|<extra>|<extra2>|<post>|lead=yes|group}}

<English>, <japanese>, and <romaji> are positional parameters
	<English>: rendered as presented; purports to be English translation of <kanji/kana>
	<japanese>: Japanese language text using Japanese script; TODO: require?
	<romaji>: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?
<extra> and <extra2> are positional or named: |extra= and |extra2=; mixing can be problematic
	<extra> is rendered as presented preceeded with <comma><space>
	<extra2> is rendered as presented preceeded with <space>
<post> is positional or named: |post= is a postscript character preceding the <ref>..</ref> tag (after <English>)
|lead=: takes one value 'yes'; renders language name same as {{lang-ja}} but also adds [[Hepburn romanization|Hepburn]]:<space> ahead of the romanization;
	TODO: in Module:Lang, turnoff tooltip for transl when |lead=yes
	in the live template |lead= also adds the Help:Installing Japanese character sets link; this is not supported in this code (nihongo nor nihongo3 have this support)
|group=: the group attribute in <ref group="..."> and in {{reflist}}

]=]

local function nihongo_foot (frame)
	local lang_module = require ('Modul:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else
	local args = require ('Modul:Arguments').getArgs (frame);
	
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()
	local post = args[6] or args.post;
	local group = args.group;
	local lead = 'yes' == args.lead;											-- make boolean

	if not (japanese or romaji) then											-- not present, return an error message
		return nihongo_error ('nihongo foot');
	end
	if japanese then
		japanese = lead and lang_module._lang_xx_inherit ({['code']='ja', japanese}) or lang_module._lang ({'ja', japanese});	-- add ja script with/without language prefix
	end
	if romaji then
		romaji = (lead and '[[Hepburn romanization|Hepburn]]: ' or '') .. lang_module._transl ({'ja', 'hepburn', romaji}) or nil;
	end
	
	local formatting = {
		{'%s', {extra}}, 														-- 1 - extra
		{'%s', {romaji}},														-- 2 - romaji
		{'%s, %s', {romaji, extra}},											-- 3 - romaji, extra
		{'%s', {japanese}},														-- 4 - japanese
		{'%s, %s', {japanese, extra}},											-- 5 - japanese, extra
		{'%s %s', {japanese, romaji}},											-- 6 - japanese romaji
		{'%s %s, %s', {japanese, romaji, extra}},								-- 7 - japanese romaji, extra
																				-- from here english is used in the mapping but not rendered by nihongo_renderer so not included in the table
		{'', {''}},																-- 8 - english
		{'%s', {extra}},														-- 9 - extra
		{'%s', {romaji}},														-- 10 - romaji
		{'%s, %s', {romaji, extra}},											-- 11 - romaji, extra
		{'%s', {japanese}},														-- 12 - japanese
		{'%s, %s', {japanese, extra}},											-- 13 - japanese, extra
		{'%s %s', {japanese, romaji}},											-- 14 - japanese romaji
		{'%s %s, %s', {japanese, romaji, extra}},								-- 15 - japanese romaji, extra
		}

	if english and post then													-- rewrite english to include |post=
		english = english .. post;												-- if english has a value append post else just post
	elseif post then
		english = post;															-- english not set, use post
	elseif not english then														-- neither are set
		english = '';															-- make english an empty string for concatenation
	end

	if japanese or romaji or extra or extra2 then								-- no ref tag when none of these are set (it would be empty)
		local content = nihongo_renderer (args, formatting, extra2);
		content = content:gsub ('<5p4n>', ''):gsub ('</5p4n>$', '', 1);			-- strip secret <5p4n> and </5p4n> tags added by nihongo_renderer(); spans not used by this template

		return english .. frame:extensionTag ({name='ref', args={group=group}, content=content});	-- english with attached reference tag
	else
		return english;															-- nothing to be inside ref tag so just return english
	end
end


--[[--------------------------< E X P O R T E D   F U N C T I O N S >------------------------------------------
]]

return {
	in_lang = in_lang,
	nihongo = nihongo,
	nihongo3 = nihongo3,
	nihongo_foot = nihongo_foot,
	set_italics = set_italics,
	}
山西的简称是什么 bb霜和cc霜有什么区别 常喝枸杞泡水有什么好处 人尽可夫什么意思 手机root后有什么好处和坏处
儿童坐动车需要带什么证件 大姨妈每个月提前来是什么原因 维生素b6主治什么 梦见吃西红柿是什么意思 姓贾的男孩取什么名字好
hpa是什么病 大限将至什么意思 gbs筛查是什么 医生为什么喜欢开地塞米松 喝什么牛奶好
梦见死人什么意思 什么是值机 猫的胡须是干什么用的 总胆红素高是什么意思 宋江是什么星
1989年属什么生肖hcv9jop6ns9r.cn 童五行属什么zsyouku.com 什么鸟没有翅膀hcv9jop7ns5r.cn 急性阑尾炎吃什么药hcv9jop8ns0r.cn 脾胃虚寒吃什么食物好hcv9jop6ns2r.cn
风疟病是什么意思hcv7jop6ns7r.cn 梦见把头发剪短了是什么意思hcv7jop6ns4r.cn 办理慢性病需要什么手续hcv9jop4ns5r.cn 五行缺什么查询hcv8jop3ns3r.cn 痔疮很痒是什么原因onlinewuye.com
女性更年期挂什么科0735v.com dw什么意思bfb118.com zbc什么意思hcv9jop1ns6r.cn 头晕脑胀吃什么药hcv9jop6ns8r.cn 秋高气爽是什么意思hcv9jop1ns3r.cn
送奶奶什么礼物好hcv8jop6ns8r.cn 淋巴结节吃什么药hcv8jop0ns0r.cn 澄粉是什么粉shenchushe.com 补牙用什么材料最好hcv8jop0ns0r.cn 出炉是什么意思hcv7jop5ns2r.cn
百度