<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3ANihongo</id>
	<title>Module:Nihongo - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3ANihongo"/>
	<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;action=history"/>
	<updated>2026-04-25T03:26:09Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=118777&amp;oldid=prev</id>
		<title>Indicwiki: 1 revision imported from :alpha:Module:Nihongo</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=118777&amp;oldid=prev"/>
		<updated>2023-04-05T02:45:49Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported from &lt;a href=&quot;https://alpha.indicwiki.in/index.php?title=Module:Nihongo&quot; class=&quot;extiw&quot; title=&quot;alpha:Module:Nihongo&quot;&gt;alpha:Module:Nihongo&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:15, 5 April 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Indicwiki</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=32211&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=32211&amp;oldid=prev"/>
		<updated>2022-12-07T16:13:28Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:43, 7 December 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=32210&amp;oldid=prev</id>
		<title>wikipedia&gt;WOSlinker: use require('strict') instead of require('Module:No globals')</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=32210&amp;oldid=prev"/>
		<updated>2022-10-22T09:05:07Z</updated>

		<summary type="html">&lt;p&gt;use require(&amp;#039;strict&amp;#039;) instead of require(&amp;#039;Module:No globals&amp;#039;)&lt;/p&gt;
&lt;a href=&quot;https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;amp;diff=32210&amp;amp;oldid=118776&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>wikipedia&gt;WOSlinker</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=118776&amp;oldid=prev</id>
		<title>alpha&gt;Sarika: Created page with &quot;--[[--------------------------&lt; N I H O N G O _ E R R O R &gt;----------------------------------------------------  creates an error message for {{nihongo}}, {{nihongo3}}, {{niho...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Nihongo&amp;diff=118776&amp;oldid=prev"/>
		<updated>2022-05-20T11:09:44Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;--[[--------------------------&amp;lt; N I H O N G O _ E R R O R &amp;gt;----------------------------------------------------  creates an error message for {{nihongo}}, {{nihongo3}}, {{niho...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[--------------------------&amp;lt; N I H O N G O _ E R R O R &amp;gt;----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
creates an error message for {{nihongo}}, {{nihongo3}}, {{nihongo krt}}, and {{nihongo foot}} when these template are missing &amp;lt;japanese&amp;gt;&lt;br /&gt;
or &amp;lt;romaji&amp;gt; inputs; names the offending template, links to template page, and adds article to Category:Nihongo template errors&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function nihongo_error (template)&lt;br /&gt;
	local msg = {'&amp;lt;span class=&amp;quot;error&amp;quot; style=&amp;quot;font-size:100%&amp;quot;&amp;gt;error: {{'};&lt;br /&gt;
	table.insert (msg, template);&lt;br /&gt;
	table.insert (msg, '}}: Japanese or romaji text required ([[Template:');&lt;br /&gt;
	table.insert (msg, template);&lt;br /&gt;
	table.insert (msg, '|help]])&amp;lt;/span&amp;gt;');&lt;br /&gt;
	if 0 == mw.title.getCurrentTitle().namespace then&lt;br /&gt;
		table.insert (msg, '[[Category:Nihongo template errors]]');&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat (msg);	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; N I H O N G O _ R E N D E R E R &amp;gt;----------------------------------------------&lt;br /&gt;
&lt;br /&gt;
shared support function for nihingo(), nihongo3(), and nihongo_foot().  Calculates an index into formatting{}&lt;br /&gt;
from set/unset parameters:&lt;br /&gt;
	args[1] (english) has a value of 8 (set) or 0 (unset)&lt;br /&gt;
	args[2] (japanese) has a value of 4&lt;br /&gt;
	args[3] (romaji) has a value of 2&lt;br /&gt;
	args[4] (extra) has a value of 1&lt;br /&gt;
index, the sum of these values, gets the appropriate format string from formatting{} table with associated values&lt;br /&gt;
from the formatting[index][2] table&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function nihongo_renderer (args, formatting, extra2)&lt;br /&gt;
	local output;&lt;br /&gt;
	local index = 0;															-- index into formatting{}&lt;br /&gt;
	local param_weight = {8, 4, 2, 1};											-- binary parameter weights: [1] = english (8), [2] = japanese (4), [3] = romaji (2), [4] = extra (1)&lt;br /&gt;
&lt;br /&gt;
	for i=1, 5 do																-- spin through args[1] – args[4]&lt;br /&gt;
		index = index + (args[i] and param_weight[i] or 0);						-- calculate an index into formatting{}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	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;&lt;br /&gt;
&lt;br /&gt;
	if extra2 then																-- always just attached to the end (if there is an end) so not part of formatting{}&lt;br /&gt;
		output = output and (output .. ' ' .. extra2) or '&amp;lt;5p4n&amp;gt;' .. extra2;	-- &amp;lt;5p4n&amp;gt; and &amp;lt;/5p4n&amp;gt;: place holders for font-weight style spans; akin to stripmarkers, to be replaced&lt;br /&gt;
	end																			-- (nihongo and nihongo3) or removed (nihongo foot)&lt;br /&gt;
&lt;br /&gt;
	return output and (output .. '&amp;lt;/5p4n&amp;gt;') or '';								-- where there is output, add secret tag close&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[-------------------------&amp;lt; N I H O N G O &amp;gt;----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
An experiment to see how to implement {{nihongo}} using Module:Lang for language and transliteration markup&lt;br /&gt;
&lt;br /&gt;
{{Nihongo|&amp;lt;English&amp;gt;|&amp;lt;japanese&amp;gt;|&amp;lt;romaji&amp;gt;|&amp;lt;extra&amp;gt;|&amp;lt;extra2&amp;gt;|lead=yes}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;English&amp;gt;, &amp;lt;japanese&amp;gt;, and &amp;lt;romaji&amp;gt; are positional parameters&lt;br /&gt;
	&amp;lt;English&amp;gt;: rendered as presented; purports to be English translation of &amp;lt;kanji/kana&amp;gt;&lt;br /&gt;
	&amp;lt;japanese&amp;gt;: Japanese language text using Japanese script; TODO: require?&lt;br /&gt;
	&amp;lt;romaji&amp;gt;: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?&lt;br /&gt;
&amp;lt;extra&amp;gt; and &amp;lt;extra2&amp;gt; are positional or named: |extra= and |extra2=; mixing can be problematic&lt;br /&gt;
	&amp;lt;extra&amp;gt; is rendered as presented preceeded with &amp;lt;comma&amp;gt;&amp;lt;space&amp;gt;&lt;br /&gt;
	&amp;lt;extra2&amp;gt; is rendered as presented preceeded with &amp;lt;space&amp;gt;&lt;br /&gt;
|lead=: takes one value 'yes'; renders language name same as {{lang-ja}} but also adds [[Hepburn romanization|Hepburn]]:&amp;lt;space&amp;gt; ahead of the romanization; TODO: in Module:Lang, turnoff tooltip for transl when |lead=yes&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local function nihongo (frame)&lt;br /&gt;
	local lang_module = require ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
&lt;br /&gt;
	local args = require ('Module:Arguments').getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names&lt;br /&gt;
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()&lt;br /&gt;
&lt;br /&gt;
	local lead = 'yes' == args.lead;											-- make boolean&lt;br /&gt;
&lt;br /&gt;
	if not (japanese or romaji) then											-- not present, return an error message&lt;br /&gt;
		return nihongo_error ('nihongo');&lt;br /&gt;
	end&lt;br /&gt;
	if japanese then&lt;br /&gt;
		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&lt;br /&gt;
	end&lt;br /&gt;
	if romaji then&lt;br /&gt;
		romaji = (lead and english and '[[Hepburn romanization|Hepburn]]: ' or '') .. lang_module._transl ({'ja', 'hepburn', romaji}) or nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local formatting = {														-- &amp;lt;5p4n&amp;gt; and &amp;lt;/5p4n&amp;gt;: place holders for font-weight style spans; akin to stripmarkers, replaced  before function returns&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s)', {extra}}, 												-- 1 - (extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt;', {romaji}},													-- 2 - romaji&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, extra}},										-- 3 - romaji (extra)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s)', {japanese}},												-- 4 - japanese&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s, %s)', {japanese, extra}},									-- 5 - (japanese, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, japanese}},									-- 6 - romaji (japanese)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {romaji, japanese, extra}},						-- 7 - romaji (japanese, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt;', {english}},												-- 8 - english&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {english, extra}},									-- 9 - english (extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {english, romaji}},									-- 10 - english (romaji)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {english, romaji, extra}},						-- 11 - english (romaji, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {english, japanese}},									-- 12 - english (japanese)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {english, japanese, extra}},						-- 13 - english (japanese, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {english, japanese, romaji}},						-- 14 - english (japanese, romaji)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s, %s)', {english, japanese, romaji, extra}},			-- 15 - english (japanese, romaji, extra)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	local ret_string = nihongo_renderer (args, formatting, extra2)&lt;br /&gt;
	ret_string = ret_string:gsub ('&amp;lt;5p4n&amp;gt;', '&amp;lt;span style=&amp;quot;font-weight: normal&amp;quot;&amp;gt;'):gsub ('&amp;lt;/5p4n&amp;gt;', '&amp;lt;/span&amp;gt;');	-- replace 'secret' tags with proper tags&lt;br /&gt;
	return ret_string;															-- because gsub returns the number of replacements made as second return value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[=[-------------------------&amp;lt; N I H O N G O 3 &amp;gt;--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
An experiment to see how to implement {{nihongo3}} using Module:Lang for language and transliteration markup&lt;br /&gt;
&lt;br /&gt;
Similar to {{nihongo}} but changes rendered order and does not support |lead=&lt;br /&gt;
&lt;br /&gt;
{{Nihongo3|&amp;lt;English&amp;gt;|&amp;lt;japanese&amp;gt;|&amp;lt;romaji&amp;gt;|&amp;lt;extra&amp;gt;|&amp;lt;extra2&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;English&amp;gt;, &amp;lt;japanese&amp;gt;, and &amp;lt;romaji&amp;gt; are positional parameters&lt;br /&gt;
	&amp;lt;English&amp;gt;: rendered as presented; purports to be English translation of &amp;lt;kanji/kana&amp;gt;&lt;br /&gt;
	&amp;lt;japanese&amp;gt;: Japanese language text using Japanese script; TODO: require?&lt;br /&gt;
	&amp;lt;romaji&amp;gt;: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?&lt;br /&gt;
&amp;lt;extra&amp;gt; and &amp;lt;extra2&amp;gt; are positional or named: |extra= and |extra2=; mixing can be problematic&lt;br /&gt;
	&amp;lt;extra&amp;gt; is rendered as presented preceeded with &amp;lt;comma&amp;gt;&amp;lt;space&amp;gt;&lt;br /&gt;
	&amp;lt;extra2&amp;gt; is rendered as presented preceeded with &amp;lt;space&amp;gt;&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local function nihongo3 (frame)&lt;br /&gt;
	local lang_module = require ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
	local args = require ('Module:Arguments').getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names&lt;br /&gt;
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()&lt;br /&gt;
&lt;br /&gt;
	if not (japanese or romaji) then											-- not present, return an error message&lt;br /&gt;
		return nihongo_error ('nihongo3');&lt;br /&gt;
	end&lt;br /&gt;
	japanese = japanese and lang_module._lang ({'ja', japanese}) or nil;&lt;br /&gt;
	romaji = romaji and lang_module._transl ({'ja', 'hepburn', romaji}) or nil;&lt;br /&gt;
	&lt;br /&gt;
	local formatting = {														-- &amp;lt;5p4n&amp;gt; and &amp;lt;/5p4n&amp;gt;: place holders for font-weight style spans; akin to stripmarkers, replaced  before function returns&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s)', {extra}}, 												-- 1 - (extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt;', {romaji}},													-- 2 - romaji&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, extra}},										-- 3 - romaji (extra)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s)', {japanese}},												-- 4 - japanese&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s, %s)', {japanese, extra}},									-- 5 - (japanese, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, japanese}},									-- 6 - romaji (japanese)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {romaji, japanese, extra}},						-- 7 - romaji (japanese, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt;', {english}},												-- 8 - english&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {english, extra}},									-- 9 - english (extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, english}},									-- 10 - romaji (english)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {romaji, english, extra}},						-- 11 - romaji (english, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {english, japanese}},									-- 12 - english (japanese)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {english, japanese, extra}},						-- 13 - english (japanese, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {romaji, japanese, english}},						-- 14 - romaji (japanese, english)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s, %s)', {romaji, japanese, english, extra}},			-- 15 - romaji (japanese, english, extra)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	local ret_string = nihongo_renderer (args, formatting, extra2)&lt;br /&gt;
	ret_string = ret_string:gsub ('&amp;lt;5p4n&amp;gt;', '&amp;lt;span style=&amp;quot;font-weight: normal&amp;quot;&amp;gt;'):gsub ('&amp;lt;/5p4n&amp;gt;', '&amp;lt;/span&amp;gt;');	-- replace 'secret' tags with proper tags&lt;br /&gt;
	return ret_string;															-- because gsub returns the number of replacements made as second return value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[-------------------------&amp;lt; N I H O N G O   K R T &amp;gt;--------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
An experiment to see how to implement {{nihongo krt}} using Module:Lang for language and transliteration markup&lt;br /&gt;
&lt;br /&gt;
Similar to {{nihongo}} but changes rendered order and does not support |lead=&lt;br /&gt;
&lt;br /&gt;
{{Nihongo krt|&amp;lt;English&amp;gt;|&amp;lt;japanese&amp;gt;|&amp;lt;romaji&amp;gt;|&amp;lt;extra&amp;gt;|&amp;lt;extra2&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;English&amp;gt;, &amp;lt;japanese&amp;gt;, and &amp;lt;romaji&amp;gt; are positional parameters&lt;br /&gt;
	&amp;lt;English&amp;gt;: rendered as presented; purports to be English translation of &amp;lt;kanji/kana&amp;gt;&lt;br /&gt;
	&amp;lt;japanese&amp;gt;: Japanese language text using Japanese script; TODO: require?&lt;br /&gt;
	&amp;lt;romaji&amp;gt;: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?&lt;br /&gt;
	&amp;lt;extra&amp;gt; and &amp;lt;extra2&amp;gt; are positional or named: |extra= and |extra2=; mixing can be problematic&lt;br /&gt;
	&amp;lt;extra&amp;gt; is rendered as presented preceeded with &amp;lt;comma&amp;gt;&amp;lt;space&amp;gt;&lt;br /&gt;
	&amp;lt;extra2&amp;gt; is rendered as presented preceeded with &amp;lt;space&amp;gt;&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local function nihongokrt (frame)&lt;br /&gt;
	local lang_module = require ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
	local args = require ('Module:Arguments').getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names&lt;br /&gt;
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()&lt;br /&gt;
&lt;br /&gt;
	if not (japanese or romaji) then											-- not present, return an error message&lt;br /&gt;
		return nihongo_error ('nihongo krt');&lt;br /&gt;
	end&lt;br /&gt;
	japanese = japanese and lang_module._lang ({'ja', japanese}) or nil;&lt;br /&gt;
	romaji = romaji and lang_module._transl ({'ja', 'hepburn', romaji}) or nil;&lt;br /&gt;
	&lt;br /&gt;
	local formatting = {														-- &amp;lt;5p4n&amp;gt; and &amp;lt;/5p4n&amp;gt;: place holders for font-weight style spans; akin to stripmarkers, replaced  before function returns&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;(%s)', {extra}}, 												-- 1 - (extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt;', {romaji}},													-- 2 - romaji&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, extra}},										-- 3 - romaji (extra)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s', {japanese}},												-- 4 - japanese&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s)', {japanese, extra}},									-- 5 - japanese (extra)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s)', {japanese, romaji}},									-- 6 - japanese (romaji)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s, %s)', {japanese, romaji, extra}},						-- 7 - japanese (romaji, extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt;', {english}},												-- 8 - english&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {english, extra}},									-- 9 - english (extra)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s)', {romaji, english}},									-- 10 - romaji (english)&lt;br /&gt;
		{'%s&amp;lt;5p4n&amp;gt; (%s, %s)', {romaji, english, extra}},						-- 11 - romaji (english, extra)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s)', {japanese, english}},									-- 12 - japanese (english)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s, %s)', {japanese, english, extra}},						-- 13 - japanese (english, extra)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s, %s)', {japanese, romaji, english}},						-- 14 - japanese (romaji, english)&lt;br /&gt;
		{'&amp;lt;5p4n&amp;gt;%s (%s, %s, %s)', {japanese, romaji, english, extra}},			-- 15 - japanese (romaji, english, extra)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	local ret_string = nihongo_renderer (args, formatting, extra2)&lt;br /&gt;
	ret_string = ret_string:gsub ('&amp;lt;5p4n&amp;gt;', '&amp;lt;span style=&amp;quot;font-weight: normal&amp;quot;&amp;gt;'):gsub ('&amp;lt;/5p4n&amp;gt;', '&amp;lt;/span&amp;gt;');	-- replace 'secret' tags with proper tags&lt;br /&gt;
	return ret_string;															-- because gsub returns the number of replacements made as second return value&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[=[-------------------------&amp;lt; N I H O N G O _ F O O T &amp;gt;------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
An experiment to see how to implement {{nihongo_foot}} using Module:Lang for language and transliteration markup&lt;br /&gt;
&lt;br /&gt;
{{Nihongo foot|&amp;lt;English&amp;gt;|&amp;lt;japanese&amp;gt;|&amp;lt;romaji&amp;gt;|&amp;lt;extra&amp;gt;|&amp;lt;extra2&amp;gt;|&amp;lt;post&amp;gt;|lead=yes|group}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;English&amp;gt;, &amp;lt;japanese&amp;gt;, and &amp;lt;romaji&amp;gt; are positional parameters&lt;br /&gt;
	&amp;lt;English&amp;gt;: rendered as presented; purports to be English translation of &amp;lt;kanji/kana&amp;gt;&lt;br /&gt;
	&amp;lt;japanese&amp;gt;: Japanese language text using Japanese script; TODO: require?&lt;br /&gt;
	&amp;lt;romaji&amp;gt;: Hepburn romanization (transliteration); TODO: in Module:Lang/data change tooltip text to 'Hepburn romanization'?&lt;br /&gt;
&amp;lt;extra&amp;gt; and &amp;lt;extra2&amp;gt; are positional or named: |extra= and |extra2=; mixing can be problematic&lt;br /&gt;
	&amp;lt;extra&amp;gt; is rendered as presented preceeded with &amp;lt;comma&amp;gt;&amp;lt;space&amp;gt;&lt;br /&gt;
	&amp;lt;extra2&amp;gt; is rendered as presented preceeded with &amp;lt;space&amp;gt;&lt;br /&gt;
&amp;lt;post&amp;gt; is positional or named: |post= is a postscript character preceding the &amp;lt;ref&amp;gt;..&amp;lt;/ref&amp;gt; tag (after &amp;lt;English&amp;gt;)&lt;br /&gt;
|lead=: takes one value 'yes'; renders language name same as {{lang-ja}} but also adds [[Hepburn romanization|Hepburn]]:&amp;lt;space&amp;gt; ahead of the romanization;&lt;br /&gt;
	TODO: in Module:Lang, turnoff tooltip for transl when |lead=yes&lt;br /&gt;
	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)&lt;br /&gt;
|group=: the group attribute in &amp;lt;ref group=&amp;quot;...&amp;quot;&amp;gt; and in {{reflist}}&lt;br /&gt;
&lt;br /&gt;
]=]&lt;br /&gt;
&lt;br /&gt;
local function nihongo_foot (frame)&lt;br /&gt;
	local lang_module = require ('Module:Lang' .. (frame:getTitle():match ('/sandbox') or ''));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
	local args = require ('Module:Arguments').getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, japanese, romaji, extra, extra2 = args[1], args[2], args[3], args.extra or args[4], args.extra2 or args[5];	-- meaningful names&lt;br /&gt;
	args[4] = extra or args[4];													-- ensure that extra is 'positional' for use by nihongo_renderer()&lt;br /&gt;
	local post = args[6] or args.post;&lt;br /&gt;
	local group = args.group;&lt;br /&gt;
	local ref_name = args.ref_name&lt;br /&gt;
	local lead = 'yes' == args.lead;											-- make boolean&lt;br /&gt;
&lt;br /&gt;
	if not (japanese or romaji) then											-- not present, return an error message&lt;br /&gt;
		return nihongo_error ('nihongo foot');&lt;br /&gt;
	end&lt;br /&gt;
	if japanese then&lt;br /&gt;
		japanese = lead and lang_module._lang_xx_inherit ({['code']='ja', japanese}) or lang_module._lang ({'ja', japanese});	-- add ja script with/without language prefix&lt;br /&gt;
	end&lt;br /&gt;
	if romaji then&lt;br /&gt;
		romaji = (lead and '[[Hepburn romanization|Hepburn]]: ' or '') .. lang_module._transl ({'ja', 'hepburn', romaji}) or nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local formatting = {&lt;br /&gt;
		{'%s', {extra}}, 														-- 1 - extra&lt;br /&gt;
		{'%s', {romaji}},														-- 2 - romaji&lt;br /&gt;
		{'%s, %s', {romaji, extra}},											-- 3 - romaji, extra&lt;br /&gt;
		{'%s', {japanese}},														-- 4 - japanese&lt;br /&gt;
		{'%s, %s', {japanese, extra}},											-- 5 - japanese, extra&lt;br /&gt;
		{'%s, %s', {japanese, romaji}},											-- 6 - japanese romaji&lt;br /&gt;
		{'%s, %s, %s', {japanese, romaji, extra}},								-- 7 - japanese romaji, extra&lt;br /&gt;
																				-- from here english is used in the mapping but not rendered by nihongo_renderer so not included in the table&lt;br /&gt;
		{'', {''}},																-- 8 - english&lt;br /&gt;
		{'%s', {extra}},														-- 9 - extra&lt;br /&gt;
		{'%s', {romaji}},														-- 10 - romaji&lt;br /&gt;
		{'%s, %s', {romaji, extra}},											-- 11 - romaji, extra&lt;br /&gt;
		{'%s', {japanese}},														-- 12 - japanese&lt;br /&gt;
		{'%s, %s', {japanese, extra}},											-- 13 - japanese, extra&lt;br /&gt;
		{'%s, %s', {japanese, romaji}},											-- 14 - japanese romaji&lt;br /&gt;
		{'%s, %s, %s', {japanese, romaji, extra}},								-- 15 - japanese romaji, extra&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	if english and post then													-- rewrite english to include |post=&lt;br /&gt;
		english = english .. post;												-- if english has a value append post else just post&lt;br /&gt;
	elseif post then&lt;br /&gt;
		english = post;															-- english not set, use post&lt;br /&gt;
	elseif not english then														-- neither are set&lt;br /&gt;
		english = '';															-- make english an empty string for concatenation&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if japanese or romaji or extra or extra2 then								-- no ref tag when none of these are set (it would be empty)&lt;br /&gt;
		local content = nihongo_renderer (args, formatting, extra2);&lt;br /&gt;
		content = content:gsub ('&amp;lt;5p4n&amp;gt;', ''):gsub ('&amp;lt;/5p4n&amp;gt;$', '', 1);			-- strip secret &amp;lt;5p4n&amp;gt; and &amp;lt;/5p4n&amp;gt; tags added by nihongo_renderer(); spans not used by this template&lt;br /&gt;
&lt;br /&gt;
		return english .. frame:extensionTag ({name='ref', args={group=group, name=ref_name}, content=content});	-- english with attached reference tag&lt;br /&gt;
	else&lt;br /&gt;
		return english;															-- nothing to be inside ref tag so just return english&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; E X P O R T E D   F U N C T I O N S &amp;gt;------------------------------------------&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	nihongo = nihongo,&lt;br /&gt;
	nihongo3 = nihongo3,&lt;br /&gt;
	nihongokrt = nihongokrt,&lt;br /&gt;
	nihongo_foot = nihongo_foot,&lt;br /&gt;
	}&lt;/div&gt;</summary>
		<author><name>alpha&gt;Sarika</name></author>
	</entry>
</feed>