<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sv">
	<id>https://wpu.nu/index.php?action=history&amp;feed=atom&amp;title=Modul%3ALangSwitch</id>
	<title>Modul:LangSwitch - Versionshistorik</title>
	<link rel="self" type="application/atom+xml" href="https://wpu.nu/index.php?action=history&amp;feed=atom&amp;title=Modul%3ALangSwitch"/>
	<link rel="alternate" type="text/html" href="https://wpu.nu/index.php?title=Modul:LangSwitch&amp;action=history"/>
	<updated>2026-04-11T04:59:41Z</updated>
	<subtitle>Versionshistorik för denna sida på wikin</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://wpu.nu/index.php?title=Modul:LangSwitch&amp;diff=362409&amp;oldid=prev</id>
		<title>Simon Lundell: 1 version importerades</title>
		<link rel="alternate" type="text/html" href="https://wpu.nu/index.php?title=Modul:LangSwitch&amp;diff=362409&amp;oldid=prev"/>
		<updated>2021-03-05T09:52:32Z</updated>

		<summary type="html">&lt;p&gt;1 version importerades&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;sv&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Äldre version&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versionen från 5 mars 2021 kl. 09.52&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;sv&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Ingen skillnad)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Simon Lundell</name></author>
	</entry>
	<entry>
		<id>https://wpu.nu/index.php?title=Modul:LangSwitch&amp;diff=362408&amp;oldid=prev</id>
		<title>commons&gt;Jarekt: fix error with global variables</title>
		<link rel="alternate" type="text/html" href="https://wpu.nu/index.php?title=Modul:LangSwitch&amp;diff=362408&amp;oldid=prev"/>
		<updated>2019-02-26T04:25:22Z</updated>

		<summary type="html">&lt;p&gt;fix error with global variables&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Ny sida&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
  __  __           _       _        _                      ____          _ _       _     &lt;br /&gt;
 |  \/  | ___   __| |_   _| | ___ _| |    __ _ _ __   __ _/ ___|_      _(_) |_ ___| |__  &lt;br /&gt;
 | |\/| |/ _ \ / _` | | | | |/ _ (_) |   / _` | '_ \ / _` \___ \ \ /\ / / | __/ __| '_ \ &lt;br /&gt;
 | |  | | (_) | (_| | |_| | |  __/_| |__| (_| | | | | (_| |___) \ V  V /| | || (__| | | |&lt;br /&gt;
 |_|  |_|\___/ \__,_|\__,_|_|\___(_)_____\__,_|_| |_|\__, |____/ \_/\_/ |_|\__\___|_| |_|&lt;br /&gt;
                                                     |___/                               &lt;br /&gt;
 Authors and maintainers:&lt;br /&gt;
* User:Zolo   - original version in Module:Fallback&lt;br /&gt;
* User:Jarekt &lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
-- add optional module &lt;br /&gt;
-- used for debugging purposes as it detects cases of unintended global variables&lt;br /&gt;
require('Module:No globals') &lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
_langSwitch&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the LangSwitch template. &lt;br /&gt;
 &lt;br /&gt;
Example usage from Lua:&lt;br /&gt;
text = _langSwitch({en='text in english', pl='tekst po polsku'}, lang)&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  args - table with translations by language&lt;br /&gt;
  lang - desired language (often user's native language)&lt;br /&gt;
&lt;br /&gt;
 Error Handling:&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
&lt;br /&gt;
function p._langSwitch(args, lang) -- args: table of translations&lt;br /&gt;
	-- Return error if there is not default and no english version&lt;br /&gt;
	if not args.en and not args.default then&lt;br /&gt;
		local err = '&amp;lt;b class=&amp;quot;error&amp;quot;&amp;gt;LangSwitch Error: no default&amp;lt;/b&amp;gt;'&lt;br /&gt;
		if args.nocat == '1' then&lt;br /&gt;
			return err&lt;br /&gt;
		else&lt;br /&gt;
			return err .. '[[Category:LangSwitch template without default version]]'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- To improve performance try quick switch, and load fallback chain only if needed. &lt;br /&gt;
	-- In the vast majority of cases fast switch is sufficient&lt;br /&gt;
	local val = args[lang]&lt;br /&gt;
	if val == '~' then &lt;br /&gt;
		return ''&lt;br /&gt;
	elseif val and val ~= '' then &lt;br /&gt;
		return val &lt;br /&gt;
	elseif args.quick then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- get the list of accepetable language (lang + those in lang's fallback chain) and check their content&lt;br /&gt;
	assert(lang, 'LangSwitch Error: no lang')&lt;br /&gt;
	local langList = mw.language.getFallbacksFor(lang)&lt;br /&gt;
	table.insert(langList,1,lang)&lt;br /&gt;
	table.insert(langList,math.max(#langList,2),'default')&lt;br /&gt;
	for _, language in ipairs(langList) do &lt;br /&gt;
		val = args[language]&lt;br /&gt;
		if val == '~' then &lt;br /&gt;
			return ''&lt;br /&gt;
		elseif val and val ~= '' then &lt;br /&gt;
			return val &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
langSwitch&lt;br /&gt;
 &lt;br /&gt;
This function is the core part of the LangSwitch template. &lt;br /&gt;
 &lt;br /&gt;
Example Usage from a template:&lt;br /&gt;
{{#invoke:fallback|langSwitch|en=text in english|pl=tekst po polsku|lang={{int:lang}} }}&lt;br /&gt;
 &lt;br /&gt;
Parameters:&lt;br /&gt;
  frame.args - table with translations by language&lt;br /&gt;
  frame.args.lang - desired language (often user's native language)&lt;br /&gt;
&lt;br /&gt;
 Error Handling:&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
function p.langSwitch(frame) -- version to be used from wikitext&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	-- if no expected args provided than check parent template/module args&lt;br /&gt;
	if args.en==nil and args.default==nil and args.nocat==nil then&lt;br /&gt;
		args = mw.getCurrentFrame():getParent().args &lt;br /&gt;
	end&lt;br /&gt;
	local lang = args.lang&lt;br /&gt;
	if not lang or not mw.language.isKnownLanguageTag(lang) then&lt;br /&gt;
		lang = frame:callParserFunction( &amp;quot;int&amp;quot;, &amp;quot;lang&amp;quot; ) -- get user's chosen language &lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Try quick switch which checks the most likely option when fallback is not needed&lt;br /&gt;
	args.quick = true;&lt;br /&gt;
	local val = p._langSwitch(args, lang)&lt;br /&gt;
	if val then&lt;br /&gt;
		return val&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Allow input in format: {{LangSwitch|de=Grün|es/it/pt=Verde|fr=Vert|en=Green |lang=en}}&lt;br /&gt;
	-- with multiple languages mapping to a single value&lt;br /&gt;
	local args1 = {}&lt;br /&gt;
	for name, value in pairs( args ) do &lt;br /&gt;
		if value ~= '' and type(name)=='string' then &lt;br /&gt;
    		for str in string.gmatch( name, &amp;quot;([^/]+)&amp;quot; ) do&lt;br /&gt;
				args1[str] = value&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return p._langSwitch(args1, lang)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>commons&gt;Jarekt</name></author>
	</entry>
</feed>