<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://chuihub.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-LangSwitch.js</id>
	<title>MediaWiki:Gadget-LangSwitch.js - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://chuihub.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-LangSwitch.js"/>
	<link rel="alternate" type="text/html" href="https://chuihub.com/index.php?title=MediaWiki:Gadget-LangSwitch.js&amp;action=history"/>
	<updated>2026-04-28T03:34:38Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://chuihub.com/index.php?title=MediaWiki:Gadget-LangSwitch.js&amp;diff=368&amp;oldid=prev</id>
		<title>LocalAdmin：​Footer language switcher JS</title>
		<link rel="alternate" type="text/html" href="https://chuihub.com/index.php?title=MediaWiki:Gadget-LangSwitch.js&amp;diff=368&amp;oldid=prev"/>
		<updated>2026-03-12T10:46:49Z</updated>

		<summary type="html">&lt;p&gt;Footer language switcher JS&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * LangSwitch gadget — footer language switcher between 中文 and English.&lt;br /&gt;
 * For logged-in users: saves language preference permanently via API.&lt;br /&gt;
 * For guests: applies uselang= to the current URL for this page.&lt;br /&gt;
 */&lt;br /&gt;
( function () {&lt;br /&gt;
    &amp;#039;use strict&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
    var currentLang = mw.config.get( &amp;#039;wgUserLanguage&amp;#039; ) || &amp;#039;en&amp;#039;;&lt;br /&gt;
    var isZh = currentLang.indexOf( &amp;#039;zh&amp;#039; ) === 0;&lt;br /&gt;
&lt;br /&gt;
    var LANGS = [&lt;br /&gt;
        { code: &amp;#039;zh-hans&amp;#039;, label: &amp;#039;中文&amp;#039; },&lt;br /&gt;
        { code: &amp;#039;en&amp;#039;,      label: &amp;#039;English&amp;#039; }&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    function switchLang( code ) {&lt;br /&gt;
        if ( mw.user.isAnon() ) {&lt;br /&gt;
            // Guest: add uselang to URL&lt;br /&gt;
            var url = new URL( window.location.href );&lt;br /&gt;
            url.searchParams.set( &amp;#039;uselang&amp;#039;, code );&lt;br /&gt;
            window.location.href = url.toString();&lt;br /&gt;
        } else {&lt;br /&gt;
            // Logged-in: save preference via API then reload&lt;br /&gt;
            var api = new mw.Api();&lt;br /&gt;
            api.saveOption( &amp;#039;language&amp;#039;, code ).done( function () {&lt;br /&gt;
                window.location.reload();&lt;br /&gt;
            } );&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    $( function () {&lt;br /&gt;
        var footer = document.getElementById( &amp;#039;footer&amp;#039; ) ||&lt;br /&gt;
                     document.querySelector( &amp;#039;.mw-footer&amp;#039; );&lt;br /&gt;
        if ( !footer ) { return; }&lt;br /&gt;
&lt;br /&gt;
        var wrapper = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
        wrapper.id = &amp;#039;lang-switcher&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
        var label = document.createElement( &amp;#039;span&amp;#039; );&lt;br /&gt;
        label.className = &amp;#039;lang-switcher-label&amp;#039;;&lt;br /&gt;
        label.textContent = &amp;#039;🌐 &amp;#039;;&lt;br /&gt;
        wrapper.appendChild( label );&lt;br /&gt;
&lt;br /&gt;
        LANGS.forEach( function ( lang, i ) {&lt;br /&gt;
            if ( i &amp;gt; 0 ) {&lt;br /&gt;
                var sep = document.createElement( &amp;#039;span&amp;#039; );&lt;br /&gt;
                sep.className = &amp;#039;lang-switcher-sep&amp;#039;;&lt;br /&gt;
                sep.textContent = &amp;#039; | &amp;#039;;&lt;br /&gt;
                wrapper.appendChild( sep );&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            var btn = document.createElement( &amp;#039;a&amp;#039; );&lt;br /&gt;
            btn.href = &amp;#039;#&amp;#039;;&lt;br /&gt;
            btn.textContent = lang.label;&lt;br /&gt;
            btn.className = &amp;#039;lang-switcher-btn&amp;#039;;&lt;br /&gt;
&lt;br /&gt;
            var isActive = currentLang === lang.code ||&lt;br /&gt;
                           ( lang.code === &amp;#039;zh-hans&amp;#039; &amp;amp;&amp;amp; isZh );&lt;br /&gt;
            if ( isActive ) {&lt;br /&gt;
                btn.className += &amp;#039; lang-switcher-active&amp;#039;;&lt;br /&gt;
            } else {&lt;br /&gt;
                btn.addEventListener( &amp;#039;click&amp;#039;, function ( e ) {&lt;br /&gt;
                    e.preventDefault();&lt;br /&gt;
                    switchLang( lang.code );&lt;br /&gt;
                } );&lt;br /&gt;
            }&lt;br /&gt;
            wrapper.appendChild( btn );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        footer.appendChild( wrapper );&lt;br /&gt;
    } );&lt;br /&gt;
}() );&lt;/div&gt;</summary>
		<author><name>LocalAdmin</name></author>
	</entry>
</feed>