<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://the-democratika.com/wiki/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://the-democratika.com/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ANihongo"/>
	<link rel="alternate" type="text/html" href="https://the-democratika.com/wiki/index.php?title=Module:Nihongo&amp;action=history"/>
	<updated>2026-04-04T17:50:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://the-democratika.com/wiki/index.php?title=Module:Nihongo&amp;diff=8981&amp;oldid=prev</id>
		<title>&gt;Trappist the monk: +yesno;</title>
		<link rel="alternate" type="text/html" href="https://the-democratika.com/wiki/index.php?title=Module:Nihongo&amp;diff=8981&amp;oldid=prev"/>
		<updated>2025-01-22T17:14:28Z</updated>

		<summary type="html">&lt;p&gt;+yesno;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require(&amp;#039;strict&amp;#039;);&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; E R R O R _ M E S S A G E S &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
error messaging; keys to this table are the template base names:&lt;br /&gt;
	&amp;#039;nihongo&amp;#039;, &amp;#039;nihongo3&amp;#039;, &amp;#039;nihongo krt&amp;#039;, &amp;#039;nihongo foot&amp;#039; → &amp;#039;nihongo&amp;#039; etc&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local err_msg = {&lt;br /&gt;
	[&amp;#039;nihongo&amp;#039;] = &amp;#039;Japanese or romaji text required&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
local err_cat = {&lt;br /&gt;
	[&amp;#039;nihongo&amp;#039;] = &amp;#039;[[Category:Nihongo template errors]]&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; C O N F I G U R A T I O N &amp;gt;----------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
configuration setting for the various templates.  keys to this table are the template names without spacing&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local cfg = {&lt;br /&gt;
	[&amp;#039;nihongo&amp;#039;] = {&lt;br /&gt;
		tag = &amp;#039;ja&amp;#039;,&lt;br /&gt;
		system = &amp;#039;hepburn&amp;#039;,&lt;br /&gt;
		system_link = &amp;#039;[[Hepburn romanization|Hepburn]]&amp;#039;,&lt;br /&gt;
		err_msg = err_msg.nihongo,&lt;br /&gt;
		err_cat = err_cat.nihongo,&lt;br /&gt;
		},&lt;br /&gt;
	[&amp;#039;nihongo3&amp;#039;] = {&lt;br /&gt;
		tag = &amp;#039;ja&amp;#039;,&lt;br /&gt;
		system = &amp;#039;hepburn&amp;#039;,&lt;br /&gt;
		err_msg = err_msg.nihongo,&lt;br /&gt;
		err_cat = err_cat.nihongo,&lt;br /&gt;
		},&lt;br /&gt;
	[&amp;#039;nihongo krt&amp;#039;] = {&lt;br /&gt;
		tag = &amp;#039;ja&amp;#039;,&lt;br /&gt;
		system = &amp;#039;hepburn&amp;#039;,&lt;br /&gt;
		err_msg = err_msg.nihongo,&lt;br /&gt;
		err_cat = err_cat.nihongo,&lt;br /&gt;
		},&lt;br /&gt;
	[&amp;#039;nihongo foot&amp;#039;] = {&lt;br /&gt;
		tag = &amp;#039;ja&amp;#039;,&lt;br /&gt;
		system = &amp;#039;hepburn&amp;#039;,&lt;br /&gt;
		system_link = &amp;#039;[[Hepburn romanization|Hepburn]]&amp;#039;,&lt;br /&gt;
		err_msg = err_msg.nihongo,&lt;br /&gt;
		err_cat = err_cat.nihongo,&lt;br /&gt;
		},&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; E R R O R _ M E S S A G E &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 error_message (template)&lt;br /&gt;
	local msg = {&amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot; style=&amp;quot;font-size:100%&amp;quot;&amp;gt;error: {{&amp;#039;};&lt;br /&gt;
	table.insert (msg, template);&lt;br /&gt;
	table.insert (msg, &amp;#039;}}: &amp;#039;);&lt;br /&gt;
	table.insert (msg, cfg[template].err_msg);&lt;br /&gt;
	table.insert (msg, &amp;#039; ([[Template:&amp;#039;);&lt;br /&gt;
	table.insert (msg, template);&lt;br /&gt;
	table.insert (msg, &amp;#039;|help]])&amp;lt;/span&amp;gt;&amp;#039;);&lt;br /&gt;
	if 0 == mw.title.getCurrentTitle().namespace then&lt;br /&gt;
		table.insert (msg, cfg[template].err_cat);&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; 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 text) has a value of 8 (set) or 0 (unset)&lt;br /&gt;
	args[2] (native text) has a value of 4&lt;br /&gt;
	args[3] (romanized text) 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 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 .. &amp;#039; &amp;#039; .. extra2) or &amp;#039;&amp;lt;5p4n&amp;gt;&amp;#039; .. 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;#039;&amp;lt;/5p4n&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;;								-- where there is output, add secret tag close&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; R O M A N I Z E D _ K E R N &amp;gt;--------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Add kerning when first or last character of romanized text contacts adjacent opening or closing paranthesis&lt;br /&gt;
&lt;br /&gt;
In this example, without kerning, the romanized characters &amp;#039;j&amp;#039; and &amp;#039;V&amp;#039; are italicized so will contact the parentheses&lt;br /&gt;
	(&amp;lt;i lang=\&amp;quot;ja-Latn\&amp;quot; title=\&amp;quot;Hepburn transliteration\&amp;quot;&amp;gt;jV&amp;lt;/i&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ret_string&amp;gt; is the formatted template output (except that the magic string &amp;#039;&amp;lt;5p4n&amp;gt;&amp;#039; has not yet been replaced)&lt;br /&gt;
&amp;lt;romanized&amp;gt; is the return from lang_module._transl() so is not wrapped in parentheses&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function romanized_kern (ret_string, romanized)&lt;br /&gt;
	if not romanized or (&amp;#039;&amp;#039; == romanized) then									-- if romanized not set&lt;br /&gt;
		return ret_string;														-- then we&amp;#039;re done&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local romanized_text = romanized:gsub (&amp;#039;%b&amp;lt;&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;\&amp;#039;\&amp;#039;+&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;%[%[&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;%]%]&amp;#039;, &amp;#039;&amp;#039;);	-- strip html tags&lt;br /&gt;
&lt;br /&gt;
	romanized = romanized:gsub (&amp;#039;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;#039;, &amp;#039;%%%1&amp;#039;);				-- escape lua pattern characters&lt;br /&gt;
&lt;br /&gt;
	local romanized_has_leading_paren = ret_string:match (&amp;#039;%(&amp;#039; .. romanized);			-- has a value if (&amp;lt;romanized&amp;gt;; nil else&lt;br /&gt;
	local romanized_has_trailing_paren = ret_string:match (romanized .. &amp;#039;%)&amp;#039;);		-- has a value if &amp;lt;romanized&amp;gt;); nil else&lt;br /&gt;
&lt;br /&gt;
	local kern_lead_pattern = &amp;#039;^[jpy]&amp;#039;;											-- list of characters that when italicized contact unitalicized leading parenthesis&lt;br /&gt;
	local kern_tail_pattern = &amp;#039;[dfijkltCEFHIJKMNPR-Z\&amp;#039;&amp;quot;%?!%]]$&amp;#039;;				-- list of characters that when italicized contact unitalicized trailing parenthesis&lt;br /&gt;
&lt;br /&gt;
	local kern_right = &amp;#039;&amp;lt;span style=&amp;quot;margin-right:.09em&amp;quot;&amp;gt;(&amp;lt;/span&amp;gt;%1&amp;#039;;			-- %1 is &amp;lt;romanized&amp;gt; capture&lt;br /&gt;
	local kern_left = &amp;#039;%1&amp;lt;span style=&amp;quot;margin-left:.09em&amp;quot;&amp;gt;)&amp;lt;/span&amp;gt;&amp;#039;;				-- %1 is &amp;lt;romanized&amp;gt; capture&lt;br /&gt;
&lt;br /&gt;
	if romanized_has_leading_paren and romanized_text:match (kern_lead_pattern) then&lt;br /&gt;
		ret_string = ret_string:gsub (&amp;#039;%((&amp;#039; .. romanized .. &amp;#039;)&amp;#039;, kern_right);		-- replace plain &amp;#039;(&amp;#039; with kerned &amp;#039;(&amp;#039;; &amp;lt;romanized&amp;gt; included here to ensure that the correct &amp;#039;(&amp;#039; is kerned&lt;br /&gt;
	end&lt;br /&gt;
	if romanized_has_trailing_paren and romanized_text:match (kern_tail_pattern) then&lt;br /&gt;
		ret_string = ret_string:gsub (&amp;#039;(&amp;#039; .. romanized .. &amp;#039;)%)&amp;#039;, kern_left);		-- replace plain &amp;#039;)&amp;#039; with kerned &amp;#039;)&amp;#039;; &amp;lt;romanized&amp;gt; included here to ensure that the correct &amp;#039;)&amp;#039; is kerned&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return ret_string;															-- done&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[--------------------------&amp;lt; C O M M O N &amp;gt;------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Common support for {{nihongo}}&lt;br /&gt;
&lt;br /&gt;
render order: is translated (English), native, romanized&lt;br /&gt;
&lt;br /&gt;
&amp;lt;template&amp;gt; is used to select the appropriate cfg table&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function common (frame, template)&lt;br /&gt;
	local lang_module = require (&amp;#039;Module:Lang&amp;#039; .. (frame:getTitle():match (&amp;#039;/sandbox&amp;#039;) or &amp;#039;&amp;#039;));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
&lt;br /&gt;
	local args = require (&amp;#039;Module:Arguments&amp;#039;).getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, native, romanized, 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 &amp;#039;positional&amp;#039; for use by renderer()&lt;br /&gt;
&lt;br /&gt;
	local lead = require (&amp;#039;Module:yesno&amp;#039;)(args.lead);							-- make boolean&lt;br /&gt;
&lt;br /&gt;
	if not (native or romanized) then											-- not present, return an error message&lt;br /&gt;
		return error_message (template);&lt;br /&gt;
	end&lt;br /&gt;
	if native then&lt;br /&gt;
		native = lead and lang_module._langx ({[&amp;#039;code&amp;#039;]=cfg[template].tag, [&amp;#039;text&amp;#039;]=native, [&amp;#039;template&amp;#039;]=template}) or&lt;br /&gt;
			lang_module._lang ({cfg[template].tag, native, [&amp;#039;template&amp;#039;]=template});	-- add ja script with/without language prefix&lt;br /&gt;
	end&lt;br /&gt;
	if romanized then&lt;br /&gt;
		romanized = (lead and english and (cfg[template].system_link .. &amp;#039;: &amp;#039;) or &amp;#039;&amp;#039;) .. lang_module._transl ({&amp;#039;ja&amp;#039;, cfg[template].system, romanized, [&amp;#039;template&amp;#039;]=template}) 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;#039;&amp;lt;5p4n&amp;gt;(%s)&amp;#039;, {extra}}, 												-- 1 - (extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt;&amp;#039;, {romanized}},												-- 2 - romanized&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, extra}},									-- 3 - romanized (extra)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;(%s)&amp;#039;, {native}},												-- 4 - native&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;(%s, %s)&amp;#039;, {native, extra}},									-- 5 - (native, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, native}},									-- 6 - romanized (native)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {romanized, native, extra}},						-- 7 - romanized (native, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt;&amp;#039;, {english}},												-- 8 - english&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {english, extra}},									-- 9 - english (extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {english, romanized}},								-- 10 - english (romanized)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {english, romanized, extra}},						-- 11 - english (romanized, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {english, native}},									-- 12 - english (native)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {english, native, extra}},						-- 13 - english (native, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {english, native, romanized}},					-- 14 - english (native, romanized)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s, %s)&amp;#039;, {english, native, romanized, extra}},			-- 15 - english (native, romanized, extra)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	local ret_string = renderer (args, formatting, extra2)&lt;br /&gt;
	ret_string = romanized_kern (ret_string, romanized);						-- kern romanized text when appropriate&lt;br /&gt;
	ret_string = ret_string:gsub (&amp;#039;&amp;lt;5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;lt;span style=&amp;quot;font-weight: normal&amp;quot;&amp;gt;&amp;#039;):gsub (&amp;#039;&amp;lt;/5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;);	-- replace &amp;#039;secret&amp;#039; tags with proper tags&lt;br /&gt;
&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; C O M M O N _ R O M A N I Z E D _ N A T I V E _ T R A N S L A T E D &amp;gt;----------&lt;br /&gt;
&lt;br /&gt;
Common support for {{nihongo3}}&lt;br /&gt;
&lt;br /&gt;
render order: is romanized, native, translated (English)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;template&amp;gt; is used to select the appropriate cfg table&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function common_romanized_native_translated (frame, template)&lt;br /&gt;
	local lang_module = require (&amp;#039;Module:Lang&amp;#039; .. (frame:getTitle():match (&amp;#039;/sandbox&amp;#039;) or &amp;#039;&amp;#039;));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
	local args = require (&amp;#039;Module:Arguments&amp;#039;).getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, native, romanized, 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 &amp;#039;positional&amp;#039; for use by renderer()&lt;br /&gt;
&lt;br /&gt;
	if not (native or romanized) then											-- not present, return an error message&lt;br /&gt;
		return error_message (template);&lt;br /&gt;
	end&lt;br /&gt;
	native = native and lang_module._lang ({cfg[template].tag, native, [&amp;#039;template&amp;#039;]=template}) or nil;&lt;br /&gt;
	romanized = romanized and lang_module._transl ({cfg[template].tag, cfg[template].system, romanized, [&amp;#039;template&amp;#039;]=template}) 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;#039;&amp;lt;5p4n&amp;gt;(%s)&amp;#039;, {extra}}, 												-- 1 - (extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt;&amp;#039;, {romanized}},												-- 2 - romanized&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, extra}},									-- 3 - romanized (extra)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;(%s)&amp;#039;, {native}},												-- 4 - native&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;(%s, %s)&amp;#039;, {native, extra}},									-- 5 - (native, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, native}},									-- 6 - romanized (native)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {romanized, native, extra}},						-- 7 - romanized (native, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt;&amp;#039;, {english}},												-- 8 - english&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {english, extra}},									-- 9 - english (extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, english}},								-- 10 - romanized (english)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {romanized, english, extra}},						-- 11 - romanized (english, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {english, native}},									-- 12 - english (native)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {english, native, extra}},						-- 13 - english (native, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {romanized, native, english}},					-- 14 - romanized (native, english)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s, %s)&amp;#039;, {romanized, native, english, extra}},			-- 15 - romanized (native, english, extra)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	local ret_string = renderer (args, formatting, extra2)&lt;br /&gt;
	ret_string = ret_string:gsub (&amp;#039;&amp;lt;5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;lt;span style=&amp;quot;font-weight: normal&amp;quot;&amp;gt;&amp;#039;):gsub (&amp;#039;&amp;lt;/5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;);	-- replace &amp;#039;secret&amp;#039; 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; C O M M O N _ N A T I V E _ R O M A N I Z E D _ T R A N S L A T E D &amp;gt;----------&lt;br /&gt;
&lt;br /&gt;
Common support for {{nihongo krt}}&lt;br /&gt;
&lt;br /&gt;
render order: is native, romanized, translated (English)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;template&amp;gt; is used to select the appropriate cfg table&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function common_native_romanized_translated (frame, template)&lt;br /&gt;
	local lang_module = require (&amp;#039;Module:Lang&amp;#039; .. (frame:getTitle():match (&amp;#039;/sandbox&amp;#039;) or &amp;#039;&amp;#039;));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
	local args = require (&amp;#039;Module:Arguments&amp;#039;).getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, native, romanized, 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 &amp;#039;positional&amp;#039; for use by renderer()&lt;br /&gt;
&lt;br /&gt;
	if not (native or romanized) then											-- not present, return an error message&lt;br /&gt;
		return error_message (template);&lt;br /&gt;
	end&lt;br /&gt;
	native = native and lang_module._lang ({cfg[template].tag, native, [&amp;#039;template&amp;#039;]=template}) or nil;&lt;br /&gt;
	romanized = romanized and lang_module._transl ({cfg[template].tag, cfg[template].system, romanized, [&amp;#039;template&amp;#039;]=template}) 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;#039;&amp;lt;5p4n&amp;gt;(%s)&amp;#039;, {extra}}, 												-- 1 - (extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt;&amp;#039;, {romanized}},												-- 2 - romanized&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, extra}},									-- 3 - romanized (extra)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s&amp;#039;, {native}},													-- 4 - native&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s)&amp;#039;, {native, extra}},										-- 5 - native (extra)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s)&amp;#039;, {native, romanized}},									-- 6 - native (romanized)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s, %s)&amp;#039;, {native, romanized, extra}},						-- 7 - native (romanized, extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt;&amp;#039;, {english}},												-- 8 - english&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {english, extra}},									-- 9 - english (extra)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s)&amp;#039;, {romanized, english}},								-- 10 - romanized (english)&lt;br /&gt;
		{&amp;#039;%s&amp;lt;5p4n&amp;gt; (%s, %s)&amp;#039;, {romanized, english, extra}},						-- 11 - romanized (english, extra)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s)&amp;#039;, {native, english}},									-- 12 - native (english)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s, %s)&amp;#039;, {native, english, extra}},						-- 13 - native (english, extra)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s, %s)&amp;#039;, {native, romanized, english}},						-- 14 - native (romanized, english)&lt;br /&gt;
		{&amp;#039;&amp;lt;5p4n&amp;gt;%s (%s, %s, %s)&amp;#039;, {native, romanized, english, extra}},			-- 15 - native (romanized, english, extra)&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
	local ret_string = renderer (args, formatting, extra2)&lt;br /&gt;
	ret_string = romanized_kern (ret_string, romanized);						-- kern romanized text when appropriate&lt;br /&gt;
	ret_string = ret_string:gsub (&amp;#039;&amp;lt;5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;lt;span style=&amp;quot;font-weight: normal&amp;quot;&amp;gt;&amp;#039;):gsub (&amp;#039;&amp;lt;/5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;);	-- replace &amp;#039;secret&amp;#039; 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; C O M M O N _ F O O T &amp;gt;--------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
Common support for {{nihongo foot}}&lt;br /&gt;
&lt;br /&gt;
render order: is English&amp;lt;ref&amp;gt;native, romanized&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;template&amp;gt; is used to select the appropriate cfg table&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local function common_foot (frame, template)&lt;br /&gt;
	local lang_module = require (&amp;#039;Module:Lang&amp;#039; .. (frame:getTitle():match (&amp;#039;/sandbox&amp;#039;) or &amp;#039;&amp;#039;));	-- if this module is the sandbox, use Module:lang/sandbox; Module:Lang else&lt;br /&gt;
	local args = require (&amp;#039;Module:Arguments&amp;#039;).getArgs (frame);&lt;br /&gt;
	&lt;br /&gt;
	local english, native, romanized, 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 &amp;#039;positional&amp;#039; for use by 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 = require (&amp;#039;Module:yesno&amp;#039;)(args.lead);							-- make boolean&lt;br /&gt;
&lt;br /&gt;
	if not (native or romanized) then											-- not present, return an error message&lt;br /&gt;
		return error_message (template);&lt;br /&gt;
	end&lt;br /&gt;
	if native then&lt;br /&gt;
		native = lead and lang_module._langx ({[&amp;#039;code&amp;#039;]=cfg[template].tag, [&amp;#039;text&amp;#039;]=native, [&amp;#039;template&amp;#039;]=template}) or&lt;br /&gt;
			lang_module._lang ({cfg[template].tag, native, [&amp;#039;template&amp;#039;]=template});	-- add ja script with/without language prefix&lt;br /&gt;
	end&lt;br /&gt;
	if romanized then&lt;br /&gt;
		romanized = (lead and (cfg[template].system_link .. &amp;#039;: &amp;#039;) or &amp;#039;&amp;#039;) .. lang_module._transl ({&amp;#039;ja&amp;#039;, cfg[template].system, romanized, [&amp;#039;template&amp;#039;]=template}) or nil;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local formatting = {&lt;br /&gt;
		{&amp;#039;%s&amp;#039;, {extra}}, 														-- 1 - extra&lt;br /&gt;
		{&amp;#039;%s&amp;#039;, {romanized}},													-- 2 - romanized&lt;br /&gt;
		{&amp;#039;%s, %s&amp;#039;, {romanized, extra}},											-- 3 - romanized, extra&lt;br /&gt;
		{&amp;#039;%s&amp;#039;, {native}},														-- 4 - native&lt;br /&gt;
		{&amp;#039;%s, %s&amp;#039;, {native, extra}},											-- 5 - native, extra&lt;br /&gt;
		{&amp;#039;%s, %s&amp;#039;, {native, romanized}},										-- 6 - native romanized&lt;br /&gt;
		{&amp;#039;%s, %s, %s&amp;#039;, {native, romanized, extra}},								-- 7 - native romanized, extra&lt;br /&gt;
																				-- from here english is used in the mapping but not rendered by renderer so not included in the table&lt;br /&gt;
		{&amp;#039;&amp;#039;, {&amp;#039;&amp;#039;}},																-- 8 - english&lt;br /&gt;
		{&amp;#039;%s&amp;#039;, {extra}},														-- 9 - extra&lt;br /&gt;
		{&amp;#039;%s&amp;#039;, {romanized}},													-- 10 - romanized&lt;br /&gt;
		{&amp;#039;%s, %s&amp;#039;, {romanized, extra}},											-- 11 - romanized, extra&lt;br /&gt;
		{&amp;#039;%s&amp;#039;, {native}},														-- 12 - native&lt;br /&gt;
		{&amp;#039;%s, %s&amp;#039;, {native, extra}},											-- 13 - native, extra&lt;br /&gt;
		{&amp;#039;%s, %s&amp;#039;, {native, romanized}},										-- 14 - native romanized&lt;br /&gt;
		{&amp;#039;%s, %s, %s&amp;#039;, {native, romanized, extra}},								-- 15 - native romanized, 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 = &amp;#039;&amp;#039;;															-- make english an empty string for concatenation&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if native or romanized or extra or extra2 then								-- no ref tag when none of these are set (it would be empty)&lt;br /&gt;
		local content = renderer (args, formatting, extra2);&lt;br /&gt;
		content = content:gsub (&amp;#039;&amp;lt;5p4n&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;&amp;lt;/5p4n&amp;gt;$&amp;#039;, &amp;#039;&amp;#039;, 1);			-- strip secret &amp;lt;5p4n&amp;gt; and &amp;lt;/5p4n&amp;gt; tags added by renderer(); spans not used by this template&lt;br /&gt;
&lt;br /&gt;
		if english:match (&amp;#039;\&amp;#039;\&amp;#039;+$&amp;#039;) then										-- if &amp;lt;english&amp;gt; is italic, bold, or both&lt;br /&gt;
			local text = english:gsub (&amp;#039;%b&amp;lt;&amp;gt;&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;\&amp;#039;\&amp;#039;+&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;%[%[&amp;#039;, &amp;#039;&amp;#039;):gsub (&amp;#039;%]%]&amp;#039;, &amp;#039;&amp;#039;);	-- strip markup&lt;br /&gt;
			if text:match (&amp;#039;[dfijkltCEFHIJKMNPR-Z\&amp;#039;&amp;quot;%?!%]]$&amp;#039;) then				-- when &amp;lt;english&amp;gt; ends with one of these characters&lt;br /&gt;
				english =  &amp;#039;&amp;lt;span style=&amp;quot;margin-right:.09em&amp;quot;&amp;gt;&amp;#039; .. english .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;;	-- add kerning&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return english .. frame:extensionTag ({name=&amp;#039;ref&amp;#039;, 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; N I H O N G O &amp;gt;----------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
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 &amp;#039;Hepburn romanization&amp;#039;?&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 &amp;#039;yes&amp;#039;; renders language name same as {{langx|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;
	return common (frame, &amp;#039;nihongo&amp;#039;)&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;
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 &amp;#039;Hepburn romanization&amp;#039;?&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;
	return common_romanized_native_translated (frame, &amp;#039;nihongo3&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&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;
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 &amp;#039;Hepburn romanization&amp;#039;?&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 nihongo_krt (frame)&lt;br /&gt;
	return common_native_romanized_translated (frame, &amp;#039;nihongo krt&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&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;
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 &amp;#039;Hepburn romanization&amp;#039;?&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 &amp;#039;yes&amp;#039;; renders language name same as {{langx|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;
	return common_foot (frame, &amp;#039;nihongo foot&amp;#039;)&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;
	nihongo_krt = nihongo_krt,&lt;br /&gt;
	nihongo_foot = nihongo_foot,&lt;br /&gt;
	}&lt;/div&gt;</summary>
		<author><name>&gt;Trappist the monk</name></author>
	</entry>
</feed>