<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://wikitest.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3AAutotranslate</id>
	<title>Module:Autotranslate - Bewerkingsoverzicht</title>
	<link rel="self" type="application/atom+xml" href="https://wikitest.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3AAutotranslate"/>
	<link rel="alternate" type="text/html" href="https://wikitest.nl/index.php?title=Module:Autotranslate&amp;action=history"/>
	<updated>2026-04-06T04:55:34Z</updated>
	<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wikitest.nl/index.php?title=Module:Autotranslate&amp;diff=127377&amp;oldid=prev</id>
		<title>Colani: 1 versie geïmporteerd: Category:Commons templates-i18n</title>
		<link rel="alternate" type="text/html" href="https://wikitest.nl/index.php?title=Module:Autotranslate&amp;diff=127377&amp;oldid=prev"/>
		<updated>2024-07-29T09:58:22Z</updated>

		<summary type="html">&lt;p&gt;1 versie geïmporteerd: Category:Commons templates-i18n&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;  --[[&lt;br /&gt;
  __  __           _       _           _         _        _                       _       _       &lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ _   / \  _   _| |_ ___ | |_ _ __ __ _ _ __  ___| | __ _| |_ ___ &lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_) / _ \| | | | __/ _ \| __| &amp;#039;__/ _` | &amp;#039;_ \/ __| |/ _` | __/ _ \&lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_ / ___ \ |_| | || (_) | |_| | | (_| | | | \__ \ | (_| | ||  __/&lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)_/   \_\__,_|\__\___/ \__|_|  \__,_|_| |_|___/_|\__,_|\__\___|&lt;br /&gt;
 &lt;br /&gt;
 Authors and maintainers:&lt;br /&gt;
* User:Zolo   - original version&lt;br /&gt;
* User:Jarekt &lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
-- local function to help normalize input arguments&lt;br /&gt;
local function normalize_input_args(input_args, output_args)&lt;br /&gt;
	for name, value in pairs( input_args ) do &lt;br /&gt;
		if value ~= &amp;#039;&amp;#039; then -- nuke empty strings&lt;br /&gt;
			if type(name)==&amp;#039;string&amp;#039; then name=string.lower(name) end -- convert to lower case&lt;br /&gt;
			output_args[name] = value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return output_args&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- initialize object to be returned&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
autotranslate&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the Autotranslate template. &lt;br /&gt;
 &lt;br /&gt;
Usage from a template:&lt;br /&gt;
{{#invoke:autotranslate|autotranslate|base=|lang= }}&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  frame.args.base - base page name&lt;br /&gt;
  frame.args.lang - desired language (often user&amp;#039;s native language)&lt;br /&gt;
&lt;br /&gt;
 Error Handling:&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function p.autotranslate(frame) &lt;br /&gt;
&lt;br /&gt;
	-- switch to lowercase parameters to make them case independent&lt;br /&gt;
	local args = {}&lt;br /&gt;
	args = normalize_input_args(frame:getParent().args, args)&lt;br /&gt;
	args = normalize_input_args(frame.args, args)&lt;br /&gt;
&lt;br /&gt;
	-- get language fallback list&lt;br /&gt;
	if not args.lang or not mw.language.isSupportedLanguage(args.lang) then&lt;br /&gt;
		args.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 langList = mw.language.getFallbacksFor(args.lang)&lt;br /&gt;
	table.insert(langList,1,args.lang) -- user&amp;#039;s language will be the first one to check&lt;br /&gt;
&lt;br /&gt;
	-- find base page&lt;br /&gt;
	local base = args.base&lt;br /&gt;
	args.base  = nil -- blank it so it is not passed to language sub-templates&lt;br /&gt;
	assert(base and  #base&amp;gt;0, &amp;#039;Base page not provided for autotranslate&amp;#039; )&lt;br /&gt;
&lt;br /&gt;
	-- Local function for expanding a template that can be pcall()ed: call the template &lt;br /&gt;
	-- with the same template arguments as the ones passed to {{autotranslate}} template.&lt;br /&gt;
	local function expandTemplate(title)&lt;br /&gt;
		return frame:expandTemplate{ title = title, args = args }&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- find base template language subpage&lt;br /&gt;
	local success, res&lt;br /&gt;
	for _, language in ipairs(langList) do&lt;br /&gt;
		success, res = pcall(expandTemplate, base .. &amp;#039;/&amp;#039; .. language)&lt;br /&gt;
		if success then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local err_msg = &amp;#039;No fallback page found for autotranslate (base=[[:%s]], lang=%s)&amp;#039;&lt;br /&gt;
	if (not success) then&lt;br /&gt;
		assert(args.default, string.format(err_msg, base, args.lang)) &lt;br /&gt;
		success, res = pcall(expandTemplate, args.default)&lt;br /&gt;
		assert(success, string.format(err_msg, base, args.default))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- If this if the base page being translateda&lt;br /&gt;
	if (mw.title.getCurrentTitle().fullText==base) then&lt;br /&gt;
		-- English language is the last fallback language for most languages, if&lt;br /&gt;
		-- nothing else there should be at least an english subpage&lt;br /&gt;
		local en_exist = mw.title.new(base .. &amp;#039;/en&amp;#039;).exists&lt;br /&gt;
		assert(en_exist, string.format(err_msg, base, &amp;#039;en&amp;#039;))&lt;br /&gt;
		if (mw.site.siteName==&amp;#039;Wikimedia Commons&amp;#039;) then&lt;br /&gt;
			res = res .. &amp;#039;\n[[Category:Autotranslated templates|&amp;#039; .. base .. &amp;#039;]]&amp;#039;&lt;br /&gt;
		end &lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Colani</name></author>
	</entry>
</feed>