<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mindpowe.red/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ALang-zh</id>
	<title>Module:Lang-zh - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mindpowe.red/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3ALang-zh"/>
	<link rel="alternate" type="text/html" href="https://mindpowe.red/wiki/index.php?title=Module:Lang-zh&amp;action=history"/>
	<updated>2026-04-07T06:19:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://mindpowe.red/wiki/index.php?title=Module:Lang-zh&amp;diff=1799&amp;oldid=prev</id>
		<title>imported&gt;Primefac: update from sandbox per TPER</title>
		<link rel="alternate" type="text/html" href="https://mindpowe.red/wiki/index.php?title=Module:Lang-zh&amp;diff=1799&amp;oldid=prev"/>
		<updated>2020-05-15T14:07:15Z</updated>

		<summary type="html">&lt;p&gt;update from sandbox per TPER&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require('Module:No globals')&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- articles in which traditional Chinese preceeds simplified Chinese&lt;br /&gt;
local t1st = {&lt;br /&gt;
	[&amp;quot;228 Incident&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Chinese calendar&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Lippo Centre, Hong Kong&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Republic of China&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Republic of China at the 1924 Summer Olympics&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Taiwan&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Taiwan (island)&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Taiwan Province&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;Wei Boyang&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- the labels for each part &lt;br /&gt;
local labels = {&lt;br /&gt;
	[&amp;quot;c&amp;quot;] = &amp;quot;Chinese&amp;quot;,&lt;br /&gt;
	[&amp;quot;s&amp;quot;] = &amp;quot;simplified Chinese&amp;quot;,&lt;br /&gt;
	[&amp;quot;t&amp;quot;] = &amp;quot;traditional Chinese&amp;quot;,&lt;br /&gt;
	[&amp;quot;p&amp;quot;] = &amp;quot;pinyin&amp;quot;,&lt;br /&gt;
	[&amp;quot;tp&amp;quot;] = &amp;quot;Tongyong Pinyin&amp;quot;,&lt;br /&gt;
	[&amp;quot;w&amp;quot;] = &amp;quot;Wade–Giles&amp;quot;,&lt;br /&gt;
	[&amp;quot;j&amp;quot;] = &amp;quot;Jyutping&amp;quot;,&lt;br /&gt;
	[&amp;quot;cy&amp;quot;] = &amp;quot;Cantonese Yale&amp;quot;,&lt;br /&gt;
	[&amp;quot;sl&amp;quot;] = &amp;quot;Sidney Lau&amp;quot;,&lt;br /&gt;
	[&amp;quot;poj&amp;quot;] = &amp;quot;Pe̍h-ōe-jī&amp;quot;,&lt;br /&gt;
	[&amp;quot;zhu&amp;quot;] = &amp;quot;Zhuyin Fuhao&amp;quot;,&lt;br /&gt;
	[&amp;quot;l&amp;quot;] = &amp;quot;lit.&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- article titles for wikilinks for each part&lt;br /&gt;
local wlinks = {&lt;br /&gt;
	[&amp;quot;c&amp;quot;] = &amp;quot;Chinese language&amp;quot;,&lt;br /&gt;
	[&amp;quot;s&amp;quot;] = &amp;quot;simplified Chinese characters&amp;quot;,&lt;br /&gt;
	[&amp;quot;t&amp;quot;] = &amp;quot;traditional Chinese characters&amp;quot;,&lt;br /&gt;
	[&amp;quot;p&amp;quot;] = &amp;quot;pinyin&amp;quot;,&lt;br /&gt;
	[&amp;quot;tp&amp;quot;] = &amp;quot;Tongyong Pinyin&amp;quot;,&lt;br /&gt;
	[&amp;quot;w&amp;quot;] = &amp;quot;Wade–Giles&amp;quot;,&lt;br /&gt;
	[&amp;quot;j&amp;quot;] = &amp;quot;Jyutping&amp;quot;,&lt;br /&gt;
	[&amp;quot;cy&amp;quot;] = &amp;quot;Yale romanization of Cantonese&amp;quot;,&lt;br /&gt;
	[&amp;quot;sl&amp;quot;] = &amp;quot;Sidney Lau romanisation&amp;quot;,&lt;br /&gt;
	[&amp;quot;poj&amp;quot;] = &amp;quot;Pe̍h-ōe-jī&amp;quot;,&lt;br /&gt;
	[&amp;quot;zhu&amp;quot;] = &amp;quot;Bopomofo&amp;quot;,&lt;br /&gt;
	[&amp;quot;l&amp;quot;] = &amp;quot;Literal translation&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- for those parts which are to be treated as languages their ISO code&lt;br /&gt;
local ISOlang = {&lt;br /&gt;
	[&amp;quot;c&amp;quot;] = &amp;quot;zh&amp;quot;,&lt;br /&gt;
	[&amp;quot;t&amp;quot;] = &amp;quot;zh-Hant&amp;quot;,&lt;br /&gt;
	[&amp;quot;s&amp;quot;] = &amp;quot;zh-Hans&amp;quot;,&lt;br /&gt;
	[&amp;quot;p&amp;quot;] = &amp;quot;zh-Latn-pinyin&amp;quot;,&lt;br /&gt;
	[&amp;quot;tp&amp;quot;] = &amp;quot;zh-Latn&amp;quot;,&lt;br /&gt;
	[&amp;quot;w&amp;quot;] = &amp;quot;zh-Latn-wadegile&amp;quot;,&lt;br /&gt;
	[&amp;quot;j&amp;quot;] = &amp;quot;yue-Latn-jyutping&amp;quot;,&lt;br /&gt;
	[&amp;quot;cy&amp;quot;] = &amp;quot;yue-Latn&amp;quot;,&lt;br /&gt;
	[&amp;quot;sl&amp;quot;] = &amp;quot;yue-Latn&amp;quot;,&lt;br /&gt;
	[&amp;quot;poj&amp;quot;] = &amp;quot;nan-Latn&amp;quot;,&lt;br /&gt;
	[&amp;quot;zhu&amp;quot;] = &amp;quot;zh-Bopo&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local italic = {&lt;br /&gt;
	[&amp;quot;p&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;tp&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;w&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;j&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;cy&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;sl&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;poj&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local superscript = {&lt;br /&gt;
	[&amp;quot;w&amp;quot;] = true,&lt;br /&gt;
	[&amp;quot;sl&amp;quot;] = true,&lt;br /&gt;
}&lt;br /&gt;
-- Categories for different kinds of Chinese text&lt;br /&gt;
local cats = {&lt;br /&gt;
	[&amp;quot;c&amp;quot;] = &amp;quot;[[Category:Articles containing Chinese-language text]]&amp;quot;,&lt;br /&gt;
	[&amp;quot;s&amp;quot;] = &amp;quot;[[Category:Articles containing simplified Chinese-language text]]&amp;quot;,&lt;br /&gt;
	[&amp;quot;t&amp;quot;] = &amp;quot;[[Category:Articles containing traditional Chinese-language text]]&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.Zh(frame)&lt;br /&gt;
	-- load arguments module to simplify handling of args&lt;br /&gt;
	local getArgs = require('Module:Arguments').getArgs&lt;br /&gt;
	&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._Zh(args)&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
function p._Zh(args)&lt;br /&gt;
	local uselinks = not (args[&amp;quot;links&amp;quot;] == &amp;quot;no&amp;quot;) -- whether to add links&lt;br /&gt;
	local uselabels = not (args[&amp;quot;labels&amp;quot;] == &amp;quot;no&amp;quot;) -- whether to have labels&lt;br /&gt;
	local capfirst = args[&amp;quot;scase&amp;quot;] ~= nil&lt;br /&gt;
 &lt;br /&gt;
	local t1 = false -- whether traditional Chinese characters go first&lt;br /&gt;
	local j1 = false -- whether Cantonese Romanisations go first&lt;br /&gt;
	local testChar&lt;br /&gt;
	if (args[&amp;quot;first&amp;quot;]) then&lt;br /&gt;
	 	 for testChar in mw.ustring.gmatch(args[&amp;quot;first&amp;quot;], &amp;quot;%a+&amp;quot;) do&lt;br /&gt;
			if (testChar == &amp;quot;t&amp;quot;) then&lt;br /&gt;
				t1 = true&lt;br /&gt;
			 end&lt;br /&gt;
			if (testChar == &amp;quot;j&amp;quot;) then&lt;br /&gt;
				j1 = true&lt;br /&gt;
			 end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if (t1 == false) then&lt;br /&gt;
		local title = mw.title.getCurrentTitle()&lt;br /&gt;
		t1 = t1st[title.text] == true&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- based on setting/preference specify order&lt;br /&gt;
	local orderlist = {&amp;quot;c&amp;quot;, &amp;quot;s&amp;quot;, &amp;quot;t&amp;quot;, &amp;quot;p&amp;quot;, &amp;quot;tp&amp;quot;, &amp;quot;w&amp;quot;, &amp;quot;j&amp;quot;, &amp;quot;cy&amp;quot;, &amp;quot;sl&amp;quot;, &amp;quot;poj&amp;quot;, &amp;quot;zhu&amp;quot;, &amp;quot;l&amp;quot;}&lt;br /&gt;
	if (t1) then&lt;br /&gt;
		orderlist[2] = &amp;quot;t&amp;quot;&lt;br /&gt;
		orderlist[3] = &amp;quot;s&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if (j1) then&lt;br /&gt;
		orderlist[4] = &amp;quot;j&amp;quot;&lt;br /&gt;
		orderlist[5] = &amp;quot;cy&amp;quot;&lt;br /&gt;
		orderlist[6] = &amp;quot;sl&amp;quot;&lt;br /&gt;
		orderlist[7] = &amp;quot;p&amp;quot;&lt;br /&gt;
		orderlist[8] = &amp;quot;tp&amp;quot;&lt;br /&gt;
		orderlist[9] = &amp;quot;w&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- rename rules. Rules to change parameters and labels based on other parameters&lt;br /&gt;
	if args[&amp;quot;hp&amp;quot;] then&lt;br /&gt;
		-- hp an alias for p ([hanyu] pinyin)&lt;br /&gt;
		args[&amp;quot;p&amp;quot;] = args[&amp;quot;hp&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
	if args[&amp;quot;tp&amp;quot;] then&lt;br /&gt;
		-- if also Tongyu pinyin use full name for Hanyu pinyin&lt;br /&gt;
		labels[&amp;quot;p&amp;quot;] = &amp;quot;Hanyu Pinyin&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (args[&amp;quot;s&amp;quot;] and args[&amp;quot;s&amp;quot;] == args[&amp;quot;t&amp;quot;]) then&lt;br /&gt;
		-- Treat simplified + traditional as Chinese if they're the same&lt;br /&gt;
		args[&amp;quot;c&amp;quot;] = args[&amp;quot;s&amp;quot;]&lt;br /&gt;
		args[&amp;quot;s&amp;quot;] = nil&lt;br /&gt;
		args[&amp;quot;t&amp;quot;] = nil&lt;br /&gt;
	elseif (not (args[&amp;quot;s&amp;quot;] and args[&amp;quot;t&amp;quot;])) then&lt;br /&gt;
		-- use short label if only one of simplified and traditional&lt;br /&gt;
		labels[&amp;quot;s&amp;quot;] = labels[&amp;quot;c&amp;quot;]&lt;br /&gt;
		labels[&amp;quot;t&amp;quot;] = labels[&amp;quot;c&amp;quot;]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local body = &amp;quot;&amp;quot; -- the output string&lt;br /&gt;
	local params -- for creating HTML spans&lt;br /&gt;
	local label -- the label, i.e. the bit preceeding the supplied text&lt;br /&gt;
	local val -- the supplied text&lt;br /&gt;
	&lt;br /&gt;
	-- go through all possible fields in loop, adding them to the output&lt;br /&gt;
	for i, part in ipairs(orderlist) do&lt;br /&gt;
		if (args[part]) then&lt;br /&gt;
			-- build label&lt;br /&gt;
			label = &amp;quot;&amp;quot;&lt;br /&gt;
			if (uselabels) then&lt;br /&gt;
				label = labels[part]&lt;br /&gt;
				if (capfirst) then&lt;br /&gt;
					label = mw.language.getContentLanguage():ucfirst(label)&lt;br /&gt;
					capfirst = false&lt;br /&gt;
				end&lt;br /&gt;
				if (uselinks) then&lt;br /&gt;
					label = &amp;quot;[[&amp;quot; .. wlinks[part] .. &amp;quot;|&amp;quot; .. label .. &amp;quot;]]&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
				label = label .. &amp;quot;&amp;amp;#58; &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			-- build value&lt;br /&gt;
			val = args[part]&lt;br /&gt;
			if (cats[part]) and mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
				-- if has associated category AND current page in article namespace, add category&lt;br /&gt;
				val = cats[part] .. val&lt;br /&gt;
			end&lt;br /&gt;
			if (ISOlang[part]) then&lt;br /&gt;
				-- add span for language if needed&lt;br /&gt;
				params = {[&amp;quot;lang&amp;quot;] = ISOlang[part], [&amp;quot;xml:lang&amp;quot;] = ISOlang[part]}&lt;br /&gt;
				val = mw.text.tag({name=&amp;quot;span&amp;quot;,attrs=params, content=val})&lt;br /&gt;
			elseif (part == &amp;quot;l&amp;quot;) then&lt;br /&gt;
				-- put literals in quotes&lt;br /&gt;
				val = &amp;quot;'&amp;quot; .. val .. &amp;quot;'&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			if (italic[part]) then&lt;br /&gt;
				-- italicise&lt;br /&gt;
				val = &amp;quot;&amp;lt;i&amp;gt;&amp;quot; .. val .. &amp;quot;&amp;lt;/i&amp;gt;&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			if string.match(val, &amp;quot;&amp;lt;/?sup&amp;gt;&amp;quot;) then val = val..&amp;quot;[[Category:Pages using template Zh with sup tags]]&amp;quot; end&lt;br /&gt;
			if (superscript[part]) then&lt;br /&gt;
				-- superscript&lt;br /&gt;
				val = val:gsub(&amp;quot;(%d)&amp;quot;, &amp;quot;&amp;lt;sup&amp;gt;%1&amp;lt;/sup&amp;gt;&amp;quot;):gsub(&amp;quot;(%d)&amp;lt;/sup&amp;gt;%*&amp;lt;sup&amp;gt;(%d)&amp;quot;, &amp;quot;%1*%2&amp;quot;):gsub(&amp;quot;&amp;lt;sup&amp;gt;&amp;lt;sup&amp;gt;([%d%*]+)&amp;lt;/sup&amp;gt;&amp;lt;/sup&amp;gt;&amp;quot;, &amp;quot;&amp;lt;sup&amp;gt;%1&amp;lt;/sup&amp;gt;&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
			-- add both to body&lt;br /&gt;
			body = body .. label .. val .. &amp;quot;; &amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (body &amp;gt; &amp;quot;&amp;quot;) then -- check for empty string&lt;br /&gt;
		return string.sub(body, 1, -3) -- chop off final semicolon and space&lt;br /&gt;
	else --no named parameters; see if there's a first parameter, ignoring its name&lt;br /&gt;
		if (args[1]) then&lt;br /&gt;
			-- if there is treat it as Chinese&lt;br /&gt;
			label = &amp;quot;&amp;quot;&lt;br /&gt;
			if (uselabels) then&lt;br /&gt;
				label = labels[&amp;quot;c&amp;quot;]&lt;br /&gt;
				if (uselinks) then&lt;br /&gt;
					label = &amp;quot;[[&amp;quot; .. wlinks[&amp;quot;c&amp;quot;] .. &amp;quot;|&amp;quot; .. label .. &amp;quot;]]&amp;quot;&lt;br /&gt;
				end&lt;br /&gt;
				label = label .. &amp;quot;&amp;amp;#58; &amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
			-- default to show links and labels as no options given&lt;br /&gt;
			if mw.title.getCurrentTitle().namespace == 0 then&lt;br /&gt;
				-- if current page in article namespace&lt;br /&gt;
				val = cats[&amp;quot;c&amp;quot;] .. args[1]&lt;br /&gt;
			else&lt;br /&gt;
				val = args[1]&lt;br /&gt;
			end&lt;br /&gt;
			params = {[&amp;quot;lang&amp;quot;] = ISOlang[&amp;quot;c&amp;quot;], [&amp;quot;xml:lang&amp;quot;] = ISOlang[&amp;quot;c&amp;quot;]}&lt;br /&gt;
			val = mw.text.tag({name=&amp;quot;span&amp;quot;,attrs=params, content=val})&lt;br /&gt;
			return label .. val&lt;br /&gt;
		end&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Primefac</name></author>
		
	</entry>
</feed>