<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://bsd.neuroinf.jp/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3ANationAndOccupation</id>
	<title>モジュール:NationAndOccupation - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://bsd.neuroinf.jp/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3ANationAndOccupation"/>
	<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:NationAndOccupation&amp;action=history"/>
	<updated>2026-04-26T03:51:49Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:NationAndOccupation&amp;diff=43611&amp;oldid=prev</id>
		<title>Nijcadmin: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:NationAndOccupation&amp;diff=43611&amp;oldid=prev"/>
		<updated>2020-01-29T04:27:45Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2020年1月29日 (水) 13:27時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;ja&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(相違点なし)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key wiki-mw_:diff:1.41:old-43610:rev-43611 --&gt;
&lt;/table&gt;</summary>
		<author><name>Nijcadmin</name></author>
	</entry>
	<entry>
		<id>https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:NationAndOccupation&amp;diff=43610&amp;oldid=prev</id>
		<title>bsd&gt;4nn1l2: Changed protection level for &quot;Module:NationAndOccupation&quot;: downgraded protection level per consensus ([Move=Allow only template editors and administrators] (indefinite) [Edit=Allow only template editors and administr…</title>
		<link rel="alternate" type="text/html" href="https://bsd.neuroinf.jp/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:NationAndOccupation&amp;diff=43610&amp;oldid=prev"/>
		<updated>2019-07-16T11:20:04Z</updated>

		<summary type="html">&lt;p&gt;Changed protection level for &amp;quot;&lt;a href=&quot;/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:NationAndOccupation&quot; title=&quot;モジュール:NationAndOccupation&quot;&gt;Module:NationAndOccupation&lt;/a&gt;&amp;quot;: downgraded protection level per &lt;a href=&quot;/wiki/%E7%89%B9%E5%88%A5:%E5%9B%BA%E5%AE%9A%E3%83%AA%E3%83%B3%E3%82%AF/357548402&quot; title=&quot;特別:固定リンク/357548402&quot;&gt;consensus&lt;/a&gt; ([Move=Allow only template editors and administrators] (indefinite) [Edit=Allow only template editors and administr…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[  &lt;br /&gt;
  __  __           _       _        _   _       _   _                _              _  ___                             _   _             &lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ _| \ | | __ _| |_(_) ___  _ __    / \   _ __   __| |/ _ \  ___ ___ _   _ _ __   __ _| |_(_) ___  _ __  &lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_)  \| |/ _` | __| |/ _ \| &amp;#039;_ \  / _ \ | &amp;#039;_ \ / _` | | | |/ __/ __| | | | &amp;#039;_ \ / _` | __| |/ _ \| &amp;#039;_ \ &lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_| |\  | (_| | |_| | (_) | | | |/ ___ \| | | | (_| | |_| | (_| (__| |_| | |_) | (_| | |_| | (_) | | | |&lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)_| \_|\__,_|\__|_|\___/|_| |_/_/   \_\_| |_|\__,_|\___/ \___\___|\__,_| .__/ \__,_|\__|_|\___/|_| |_|&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
This module translates a person’s nationality and profession into user’s preferred language. &lt;br /&gt;
The template takes care for the right word order: {{NationAndOccupation|m|FR|painter|poet}} &lt;br /&gt;
gives “French painter and poet”, if the user’s preferred language is set to English, but &lt;br /&gt;
“pintor y poeta francés”, if the language is set to Spanish. This is especially useful with &lt;br /&gt;
the “Description” field of {{Creator}} templates.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- =======================================&lt;br /&gt;
-- === Dependencies ======================&lt;br /&gt;
-- =======================================&lt;br /&gt;
local conj     = require(&amp;#039;Module:Linguistic&amp;#039;).conj&lt;br /&gt;
local Wikidata = require(&amp;quot;Module:Wikidata label&amp;quot;)    -- used for creation of name based on wikidata&lt;br /&gt;
local q2iso    = require(&amp;quot;Module:NationAndOccupation/nationalityLUT&amp;quot;)&lt;br /&gt;
local n2iso    = require(&amp;quot;Module:NationAndOccupation/CountryAdjective2iso&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local function langSwitch(list,lang)&lt;br /&gt;
	local langList = mw.language.getFallbacksFor(lang)&lt;br /&gt;
	table.insert(langList,1,lang)&lt;br /&gt;
	for i,language in ipairs(langList) do&lt;br /&gt;
		if list[language] then&lt;br /&gt;
			return list[language]&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function getFemaleLabel(q, lang)&lt;br /&gt;
	local label = {}&lt;br /&gt;
	local entity = mw.wikibase.getEntity(q)&lt;br /&gt;
	if entity.claims and entity.claims.P2521  then -- if we have wikidata item and item has the property&lt;br /&gt;
		for _, statement in pairs( entity:getBestStatements( &amp;#039;P2521&amp;#039; )) do&lt;br /&gt;
			local v = statement.mainsnak.datavalue&lt;br /&gt;
			if v then &lt;br /&gt;
				v = v.value&lt;br /&gt;
				label[v.language] = v.text&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if label then&lt;br /&gt;
		return langSwitch(label,lang)&lt;br /&gt;
	else&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Implementation of Template:NationAndOccupation/default&lt;br /&gt;
INPUTS:&lt;br /&gt;
* nationality - array of string in the form compatible with Template:Nationality&lt;br /&gt;
* occupation  - array of already translated strings&lt;br /&gt;
* gender      - single gender string &amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;&lt;br /&gt;
* lang        - users language&lt;br /&gt;
]]&lt;br /&gt;
local function assembleNaO(nationality, occupation, gender, lang)&lt;br /&gt;
&lt;br /&gt;
  -- Use LangSwitch to choose the style based on the language. That way [[template:Fallback]] is used&lt;br /&gt;
	local style = langSwitch({ &lt;br /&gt;
		-- Occupation then nationality order&lt;br /&gt;
		ca=10 , es=10, eu=10, fa=10, he=10, it=10, pt=10, ro=10, vi=10,&lt;br /&gt;
		-- Occupation then nationality order with first nationality in a special form&lt;br /&gt;
		fr=11, &lt;br /&gt;
		-- Nationality then Occupation order&lt;br /&gt;
		cs=20 , da=20, el=20, en=20, eo=20, et=20, hu=20, mk=20, ml=20, nl=20, &lt;br /&gt;
		-- Nationality then Occupation order, no space&lt;br /&gt;
		zh=21,&lt;br /&gt;
		-- Nationality then Occupation order with 1st nationality in a special form and 2nd nationality upper case&lt;br /&gt;
		nds=22, de=22 , &lt;br /&gt;
		-- Nationality then Occupation order with 1st nationality in a special form and 2nd nationality lower case&lt;br /&gt;
		pl=23, ru=23, sl=23, bg=23}, lang)&lt;br /&gt;
	 &lt;br /&gt;
	 &lt;br /&gt;
	-- create nationality string&lt;br /&gt;
	gender = gender or &amp;#039;male&amp;#039;&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	local nStr=&amp;#039;&amp;#039;&lt;br /&gt;
	if nationality and #nationality==1 then --Single nationality case&lt;br /&gt;
		nStr = frame:expandTemplate{ title=&amp;#039;Nationality&amp;#039;, args={nationality[1], gender, lang=lang} }&lt;br /&gt;
	elseif nationality then                 --Double nationality case&lt;br /&gt;
		local N2 = frame:expandTemplate{ title=&amp;#039;Nationality&amp;#039;, args={nationality[2], gender, lang=lang} }&lt;br /&gt;
		if style==11 or style==22 or style==23 then -- nationality in a special form&lt;br /&gt;
			gender = &amp;#039;s&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		local N1 = frame:expandTemplate{ title=&amp;#039;Nationality&amp;#039;, args={nationality[1], gender, lang=lang} }&lt;br /&gt;
		if style==23 then&lt;br /&gt;
			N2 = mw.ustring.lower(N2)&lt;br /&gt;
		end&lt;br /&gt;
		nStr = N1 .. &amp;#039;-&amp;#039; .. N2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Create final string&lt;br /&gt;
	if occupation then&lt;br /&gt;
		local oStr = conj(occupation, lang, &amp;#039;and&amp;#039;)&lt;br /&gt;
		if style&amp;lt;20 then -- Type 1: Occupation then nationality order&lt;br /&gt;
			return oStr .. &amp;#039; &amp;#039; .. nStr&lt;br /&gt;
		elseif style==21 then -- Type 1: Nationality then Occupation order, no space&lt;br /&gt;
			return nStr .. oStr&lt;br /&gt;
		else             -- Type 2: Nationality then Occupation order&lt;br /&gt;
			return nStr .. &amp;#039; &amp;#039; .. oStr&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		return nStr&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Implementation of Template:NationAndOccupation&lt;br /&gt;
INPUTS:&lt;br /&gt;
* entity - wikidata entity &lt;br /&gt;
* lang   - users language&lt;br /&gt;
OUTPUTS:&lt;br /&gt;
* data   - data structure with data extracted from Wikidata, including fields:&lt;br /&gt;
	* nationality   - array of string in the form compatible with Template:Nationality&lt;br /&gt;
	* occupation    - array of already translated occupation strings&lt;br /&gt;
	* occupationEN  - array of occupation strings in english&lt;br /&gt;
	* gender        - single gender string &amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;&lt;br /&gt;
]]&lt;br /&gt;
local function harvest_wikidata(entity, lang)&lt;br /&gt;
	local occupation, occupationEN, nationality, gender&lt;br /&gt;
	local data = {}&lt;br /&gt;
	&lt;br /&gt;
	-- if wikidata q-code is provided than look up few properties&lt;br /&gt;
	if entity then&lt;br /&gt;
		-- harvest  properties from wikidata&lt;br /&gt;
		local property = {P21=&amp;#039;gender&amp;#039;, P27=&amp;#039;country&amp;#039;, P106=&amp;#039;occupation&amp;#039;, P172=&amp;#039;ethnicity&amp;#039;}&lt;br /&gt;
		for prop, field in pairs( property ) do&lt;br /&gt;
			local n = 0;&lt;br /&gt;
			if entity.claims and entity.claims[prop] then -- if we have wikidata item and item has the property&lt;br /&gt;
				-- capture multiple &amp;quot;best&amp;quot; Wikidata value&lt;br /&gt;
				for _, statement in pairs( entity:getBestStatements( prop )) do&lt;br /&gt;
					if (statement.mainsnak.snaktype == &amp;quot;value&amp;quot;) then &lt;br /&gt;
						local v = statement.mainsnak.datavalue.value.id&lt;br /&gt;
						n = n+1&lt;br /&gt;
						if n==1 then data[field]={} end&lt;br /&gt;
						data[field][n] = v&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Look up gender&lt;br /&gt;
	if data.gender then	&lt;br /&gt;
		if (data.gender[1]==&amp;#039;Q6581097&amp;#039; or data.gender[1]==&amp;#039;Q2449503&amp;#039;) then&lt;br /&gt;
			gender = &amp;#039;male&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		if (data.gender[1]==&amp;#039;Q6581072&amp;#039; or data.gender[1]==&amp;#039;Q1052281&amp;#039;) then&lt;br /&gt;
			gender = &amp;#039;female&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Look up occupation&lt;br /&gt;
	if data.occupation then -- from wikidata&lt;br /&gt;
		local occItem = {}&lt;br /&gt;
		occupationEN = {}&lt;br /&gt;
		for i = 1,6 do &lt;br /&gt;
			if data.occupation[i] and data.occupation[i]~=&amp;#039;&amp;#039; then &lt;br /&gt;
				table.insert(occItem, data.occupation[i])&lt;br /&gt;
				table.insert(occupationEN, Wikidata._getLabel(data.occupation[i], &amp;#039;en&amp;#039;, &amp;quot;-&amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		occupation = {}&lt;br /&gt;
		if gender == &amp;#039;female&amp;#039; then -- get localized (translated) occupation labels in female form&lt;br /&gt;
			for i,occ in ipairs(occItem) do &lt;br /&gt;
				table.insert(occupation, getFemaleLabel(occ, lang) or Wikidata._getLabel(occ, lang, &amp;quot;-&amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
		elseif lang==&amp;#039;en&amp;#039; then     -- get English occupation labels in male form&lt;br /&gt;
			occupation = occupationEN&lt;br /&gt;
		else                       -- get localized (translated) occupation labels in male form&lt;br /&gt;
			for i,occ in ipairs(occItem) do &lt;br /&gt;
				table.insert(occupation, Wikidata._getLabel(occ, lang, &amp;quot;-&amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Look up nationality&lt;br /&gt;
	if data.country or data.ethnicity then -- from wikidata&lt;br /&gt;
		-- process P27/country and P172/ethnicity&lt;br /&gt;
		local nTable = {}&lt;br /&gt;
		for i, v in ipairs( data.country or {} ) do&lt;br /&gt;
			table.insert(nTable, q2iso[v])&lt;br /&gt;
		end&lt;br /&gt;
		for i, v in ipairs( data.ethnicity or {} ) do&lt;br /&gt;
			table.insert(nTable, q2iso[v])&lt;br /&gt;
		end&lt;br /&gt;
		-- find unique values&lt;br /&gt;
		table.sort(nTable)&lt;br /&gt;
		nationality = {}&lt;br /&gt;
		if nTable[1] then&lt;br /&gt;
			table.insert(nationality, nTable[1])&lt;br /&gt;
		end&lt;br /&gt;
		for i = 2, #nTable do&lt;br /&gt;
			if (nTable[i-1]~=nTable[i]) and nTable[i] then&lt;br /&gt;
				table.insert(nationality, nTable[i])&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return {nationality=nationality, occupation=occupation, gender=gender, occupationEN=occupationEN}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Implementation of Template:NationAndOccupation&lt;br /&gt;
INPUTS:&lt;br /&gt;
* args.nationality - &amp;#039;/&amp;#039; separated string with substrings in the form compatible &lt;br /&gt;
                     with Template:Nationality&lt;br /&gt;
* args.occupation  - &amp;#039;/&amp;#039; separated string with substrings with english names of &lt;br /&gt;
                     occupations compatible with Template:Occupations&lt;br /&gt;
* args.gender      - single gender string &amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;&lt;br /&gt;
* args.wikidata    - wikidata q-code&lt;br /&gt;
* args.lang        - users language&lt;br /&gt;
OUTPUTS:&lt;br /&gt;
* OutStr - string with transpaced phrase like &amp;quot;english writer&amp;quot;&lt;br /&gt;
* args   - data structure with processed inputs&lt;br /&gt;
* data   - data structure with data extracted from Wikidata&lt;br /&gt;
]]&lt;br /&gt;
function p._NationAndOccupation(args0)&lt;br /&gt;
	local occupation, nationality, entity, occupationEN&lt;br /&gt;
	&lt;br /&gt;
	-- if wikidata q-code is provided than look up few properties&lt;br /&gt;
	local q = args0.wikidata&lt;br /&gt;
	if q and type(q)==&amp;#039;string&amp;#039; and string.sub(q,1,1)==&amp;quot;Q&amp;quot;  then --  &lt;br /&gt;
		entity = mw.wikibase.getEntity(q)&lt;br /&gt;
	elseif q then&lt;br /&gt;
		entity = q&lt;br /&gt;
	end&lt;br /&gt;
	local data = harvest_wikidata(entity, args0.lang)&lt;br /&gt;
	local gender = args0.gender or data.gender&lt;br /&gt;
	&lt;br /&gt;
	-- Look up occupation&lt;br /&gt;
	if args0.occupation then -- from input arguments&lt;br /&gt;
		local frame = mw.getCurrentFrame()&lt;br /&gt;
		occupationEN = mw.text.split(args0.occupation  or &amp;#039;&amp;#039;, &amp;#039;/&amp;#039;)&lt;br /&gt;
		occupation = {}&lt;br /&gt;
		for i = 1,6 do &lt;br /&gt;
			if occupationEN[i] and occupationEN[i]~=&amp;#039;&amp;#039; then &lt;br /&gt;
				local args={occupationEN[i], gender, lang=args0.lang}&lt;br /&gt;
				table.insert(occupation, frame:expandTemplate{ title=&amp;#039;Occupation&amp;#039;, args=args })&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Look up nationality&lt;br /&gt;
	if args0.nationality then -- from input arguments&lt;br /&gt;
		nationality = mw.text.split(args0.nationality or &amp;#039;&amp;#039;, &amp;#039;/&amp;#039;)&lt;br /&gt;
		for i = 1,2 do -- if nationality is a word than see if we can find iso code&lt;br /&gt;
			local N = string.lower(nationality[i] or &amp;#039;&amp;#039;)&lt;br /&gt;
			if #N&amp;gt;2 and n2iso[N] then &lt;br /&gt;
				nationality[i] = n2iso[N]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local outStr = assembleNaO(nationality or data.nationality, occupation or data.occupation, gender, args0.lang)&lt;br /&gt;
	local args = {nationality=nationality, occupation=occupation, gender=args0.gender, occupationEN=occupationEN}&lt;br /&gt;
&lt;br /&gt;
	return outStr, args, data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
NationAndOccupation&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the NationAndOccupation template. &lt;br /&gt;
 &lt;br /&gt;
Usage:&lt;br /&gt;
{{#invoke:}}&lt;br /&gt;
 &lt;br /&gt;
 Parameters:&lt;br /&gt;
  *nationality - &amp;#039;/&amp;#039; separated string with substrings in the form compatible &lt;br /&gt;
                     with Template:Nationality&lt;br /&gt;
  * occupation  - &amp;#039;/&amp;#039; separated string with substrings with english names of &lt;br /&gt;
                     occupations compatible with Template:Occupations&lt;br /&gt;
  * gender      - single gender string &amp;quot;male&amp;quot; or &amp;quot;female&amp;quot;&lt;br /&gt;
  * wikidata    - wikidata q-code&lt;br /&gt;
  * lang        - users language&lt;br /&gt;
 Error Handling:&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function p.NationAndOccupation(frame)&lt;br /&gt;
	local args0 = {}&lt;br /&gt;
	for name, value in pairs( frame.args ) do &lt;br /&gt;
		value = string.gsub(value,&amp;quot;\/+$&amp;quot;, &amp;quot;&amp;quot;) -- remove /// on the end&lt;br /&gt;
		value = string.gsub(value,&amp;quot;%s*$&amp;quot;, &amp;quot;&amp;quot;) -- remove whitespaces on the end&lt;br /&gt;
		value = string.gsub(value,&amp;quot;^%s*&amp;quot;, &amp;quot;&amp;quot;) -- remove whitespaces at the beggining&lt;br /&gt;
		if value ~= &amp;#039;&amp;#039; then -- nuke empty strings&lt;br /&gt;
			local name1 = string.gsub( string.lower(name), &amp;#039; &amp;#039;, &amp;#039;_&amp;#039;)&lt;br /&gt;
			args0[name1] = value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not (args0.lang and mw.language.isSupportedLanguage(args0.lang)) then &lt;br /&gt;
		args0.lang = frame:callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; ) -- get user&amp;#039;s chosen language &lt;br /&gt;
	end&lt;br /&gt;
	local outStr, args, data = p._NationAndOccupation(args0)&lt;br /&gt;
	return outStr&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>bsd&gt;4nn1l2</name></author>
	</entry>
</feed>