男女双修是什么意思| 血压测不出来什么原因| 田螺吃什么| 破伤风疫苗什么时候打| 一本万利是什么生肖| 室早三联律是什么意思| 茯苓是什么植物| 小狗呕吐吃什么药| 为什么会有痰| 手抖是什么原因| 干疮是什么样子的图片| 踢馆什么意思| 9.29是什么星座| 狗和什么属相最配| 心口疼痛是什么原因| 低聚木糖是什么| 静心什么意思| 骨折是什么意思| 舌尖有点麻是什么原因| 胆汁是什么| 腰疼是什么原因引起的| 儿加一笔是什么字| 紫癜是什么病严重吗| 灼热是什么意思| 狮子座和什么座最配| 脑供血不足吃什么药最好| 祥五行属什么| 美容行业五行属什么| 口腔溃疡吃什么好| 洗葡萄用什么洗最干净| 过敏性鼻炎不能吃什么| 怀孕第一个月有什么症状| 彩超能检查出什么| 心悸是什么| 俄罗斯是什么洲| 塞药塞到什么位置| 净身出户是什么意思| 孕妇心率快是什么原因| 头发有什么用处| 植物功能紊乱吃什么药| 小孩子不吃饭是什么原因引起的| 去火吃什么| 租赁费计入什么科目| 枸杞加什么泡水喝壮阳| 体温偏低是什么原因| 备孕什么意思| 10万个为什么| 长期吃二甲双胍有什么副作用| 都字五行属什么| dmc是什么意思| 女性血热吃什么好得快| 习是什么结构的字| 引体向上练什么肌肉| 澈字五行属什么| 浅表性胃炎用什么药| 常吐痰是什么原因| 散光和近视有什么区别| 笔芯是什么意思| 指甲表面凹凸不平是什么原因| 四川有什么好吃的| 三伏天吃什么| 炸酱面用的什么酱| 高血压喝什么茶| 空窗期是什么意思| 胃疼吃什么药好的快| 免疫力低会引起什么病| 胎盘低是什么意思| 右眼一直跳是什么预兆| 态生两靥之愁中靥指什么| 母字是什么结构| 笑口常开是什么生肖| 李连杰什么病| 后背疼去医院挂什么科| 一个口一个我念什么| 芹菜和什么不能一起吃| 捧杀是什么意思| 丙肝是什么病严重吗| 尿频看什么科| 蛇生肖和什么生肖相配| 牙齿松动是什么原因| 条形码的数字代表什么| 扳机是什么意思| 食人鱼长什么样子| 121是什么意思| 霸王别姬讲的是什么故事| 佟丽娅为什么离婚| 为什么瘦不下来| champion什么牌子| 拉肚子发烧吃什么药| 什么他妈的叫他妈的惊喜| 一什么牙刷| 比干是什么神| 阴茎插入阴道什么感觉| 崎字五行属什么| 啤酒喝了有什么好处| 室上速是什么病| 乳头为什么会痒| 什么的眼泪| 丙肝病毒抗体阴性是什么意思| 人力资源是做什么的| 处心积虑是什么意思| 吃什么水果对肠胃好| 面子是什么意思| 被螨虫咬了擦什么药膏| 梦见芝麻是什么意思| 春梦是什么意思| 左肺上叶钙化灶什么意思| 咽炎咳嗽吃什么| 布洛芬吃多了有什么后果| 夏天补什么| 甚嚣尘上是什么意思| 减肥吃什么药效果最好| hibor是什么意思| 坐阵是什么意思| 1932年属什么生肖| 扶苏是什么意思| 妇科病是什么| 绿茶不能和什么一起吃| 渠道医院是什么意思| 善哉善哉是什么意思| 四气指的是什么| 低置胎盘有什么危险| 风疹病毒抗体阳性是什么意思| 11月11日是什么星座| 江西的简称是什么| 常吃洋葱有什么好处| 滑膜疝是一种什么病| 叶酸在什么食物里最多| 警告处分有什么影响| 吃大蒜有什么好处| 多发息肉是什么意思| 头痛是什么病的前兆| 庄子是什么学派| 女人戴什么招财又旺夫| 脱肛吃什么药最有效| 乙酰氨基酚片是什么药| 大姨妈有黑色血块是什么原因| 吃什么对大脑记忆力好| dxm是什么药| 做梦梦到蜈蚣是什么意思| 软饭是什么意思| 聘书是什么| 博士点是什么意思| iss是什么意思| 专科有什么专业| 牙齿酸胀是什么原因| 菠萝和凤梨有什么区别| 拉比是什么意思| 杭字五行属什么| 艾灸肚脐有什么好处| 化疗前吃什么补充营养| 胸推是什么| 荔枝肉是什么菜系| 负重是什么意思| 孜字五行属什么| 纳纹女装属于什么档次| 道听途说什么意思| 清热去湿热颗粒有什么功效| 避重就轻什么意思| 凌晨两点半是什么时辰| 黑豆加红枣有什么功效| 吃什么可以养肝| 馄饨皮可以做什么美食| 机制是什么| 提是什么生肖| 低度cin病变是什么意思| 什么东西不能带上飞机| 香蕉是什么季节的水果| 长胸毛的男人代表什么| 生花生吃了有什么好处| 黄牌车是什么意思| 钟馗是什么人物| 顽固性失眠吃什么药| 为什么叫中日友好医院| 每天吃三颗红枣有什么好处| 大暑是什么意思啊| 干姜和生姜有什么区别| 人力资源是什么意思| religion什么意思| 梦见已故的老人是什么意思| 三和大神什么意思| 范仲淹号什么| 在家做什么小生意| 脑干诱发电位检查是检查什么| 食管裂孔疝是什么原因造成的| 书字五行属什么的| 女人喝什么调节内分泌| 后背有痣代表什么意思| 缺少雌激素的女性会有什么症状| 午餐肉炒什么菜好吃| 星辰大海什么意思| 白细胞高什么原因| 海关锁是什么意思| 西湖醋鱼是什么菜系| 小孩老是眨眼睛是什么原因| 晚上喝牛奶有什么好处和坏处| 哺乳期吃什么下奶| 打屁很臭是什么原因| 喷字去掉口念什么| 狸猫换太子是什么意思| 头发硬适合什么发型| 黄色衣服配什么颜色裤子好看| 低压偏高是什么原因| 黄体不足吃什么药| 善存片什么时候吃最好| 姹紫嫣红是什么意思| 心脏早搏吃什么药最好| 鸡冠花什么时候开花| 沙土地适合种什么农作物| 坐镇是什么意思| 头皮痛是什么原因| 1994属什么生肖| 什么体质容易长结石| 休克疗法是什么意思| 什么是名媛| pf什么意思| 旨在是什么意思| 根基是什么意思| 什么姓氏排第一| 检查怀没怀孕挂什么科| 薜丁山是什么生肖| 什么叫钙化| 湿疹和荨麻疹有什么区别| 什么的黄瓜| 抗核小体抗体阳性说明什么| 崎胎瘤是什么| 痰湿吃什么食物| 炖鸡肉放什么调料| 土黄色裤子配什么颜色上衣| 脾胃虚弱能吃什么水果| 血府逐瘀片主治什么病| 庞统为什么要献连环计| 水火既济是什么意思| 阿斯伯格综合症是什么| 什么是roi| 猪心炖什么适合孩子| 腰不好挂什么科| 爸爸的姐姐叫什么| 1993属什么生肖| 外援是什么意思| 妇科菌群失调吃什么药| 肝火郁结是什么症状| 肾结石不处理有什么后果| 空腹吃荔枝有什么危害| hrv是什么| 管医院的是什么部门| 梦见生了个女儿是什么意思| 人为什么会抽筋| 阅兵什么意思| 瑕疵是什么意思| 粘鞋子用什么胶水最好| 男性左下腹痛是什么原因| 河东狮吼什么意思| 什么时期最容易怀孕| 人肉什么意思| 贫血是什么原因导致的| 虾跟什么不能一起吃| 冬眠灵是什么药| 女娲姓什么| 后背出汗什么原因| 尿渗透压低是什么原因| 尿道口感染吃什么药| 人老是犯困想睡觉是什么原因| 1月12日什么星座| 百度?????????????????? ????

李子不能和什么一起吃

??????? ??????????????? ?????????????????? ???????.
百度 2002年,郝克玉专门学习了兽医。

Documentation for this module may be created at Module:Lang/utilities/doc

require ('Module: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 ("Module: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 ('Module:Arguments').getArgs;
	local synonym_table = mw.loadData ('Module: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 = 'Module: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 and lang-xx code promoted to 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 ('????') then									-- add appropriate language-name category
					table.insert (cats, table.concat ({'[[???????:Articles with ', lang, '-collective sources (', code, ')]]'}));
				else
					table.insert (cats, table.concat ({'[[???????:Articles with ', lang, '-language sources (', 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, '}}: Japanese or romaji text required ([[Template:');
	table.insert (msg, template);
	table.insert (msg, '|help]])</span>');
	if 0 == mw.title.getCurrentTitle().namespace then
		table.insert (msg, '[[Category:Nihongo template errors]]');
	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 ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else

	local args = require ('Module: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 ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else
	local args = require ('Module: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 ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else
	local args = require ('Module: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,
	}
肾积水挂什么科 10.11是什么星座 希思黎属于什么档次 妲己属什么生肖 指甲脱层是什么原因
女人喝枸杞水有什么好处 口下面一个巴念什么 者是什么意思 一什么波纹 斜纹棉是什么面料
尿酸高要吃什么药 得偿所愿什么意思 肚子疼应该挂什么科 海南简称是什么 毛泽东女儿为什么姓李
什么叫边界感 偏头痛看什么科 学生是什么阶级 什么是籍贯 口臭口苦什么原因引起的
阳痿是什么onlinewuye.com 太阳是一颗什么星hcv8jop3ns1r.cn 脸上白了一小块是什么原因hcv9jop6ns8r.cn 肺气泡吃什么药hcv7jop7ns3r.cn 脏器灰阶立体成像是检查什么的hcv9jop3ns8r.cn
专科考研需要什么条件hcv8jop6ns5r.cn 黄瓜片贴脸上有什么效果hcv7jop6ns4r.cn 宝宝大便有泡沫是什么原因jiuxinfghf.com 母亲是o型血孩子是什么血型hcv8jop6ns0r.cn 什么人不能吃黄精hcv8jop3ns9r.cn
角的大小和什么有关hcv9jop2ns3r.cn 七月份适合种什么菜hcv9jop2ns2r.cn 妖股是什么意思hcv8jop7ns7r.cn uw是什么单位hcv8jop1ns9r.cn 送产妇什么礼物最合适hcv7jop9ns0r.cn
既视感是什么意思hcv7jop6ns1r.cn 什么的蜻蜓hcv8jop1ns1r.cn rf是什么0297y7.com 捡到鹦鹉是什么预兆hcv8jop5ns8r.cn 肌钙蛋白高是什么原因hcv8jop2ns3r.cn
百度