<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://ru.structorica.wiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-topLangLinks.js</id>
	<title>MediaWiki:Gadget-topLangLinks.js - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://ru.structorica.wiki/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-topLangLinks.js"/>
	<link rel="alternate" type="text/html" href="https://ru.structorica.wiki/index.php?title=MediaWiki:Gadget-topLangLinks.js&amp;action=history"/>
	<updated>2026-06-18T08:28:41Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://ru.structorica.wiki/index.php?title=MediaWiki:Gadget-topLangLinks.js&amp;diff=60&amp;oldid=prev</id>
		<title>Ivan: Новая страница: «/* MediaWiki:Gadget-topLangLinks.js */ /* https://structorica.wiki/w/MediaWiki:Gadget-topLangLinks.js */ /* */ /* Based on: https://minecraft.wiki/w/MediaWiki:Gadget-topLangLinks.js */ mw.loader   .using([     // Removed &#039;mcw.messages&#039; dependency as it&#039;s Minecraft Wiki specific     // &#039;mediawiki.api&#039;,     &quot;mediawiki.language&quot;,     &quot;mediawiki.jqueryMsg&quot;,     &quot;oojs-ui-widgets&quot;,     &quot;oojs-ui.styles.icons-editing-advanced&quot;,   ]) /*.then( function() { 	// Load th...»</title>
		<link rel="alternate" type="text/html" href="https://ru.structorica.wiki/index.php?title=MediaWiki:Gadget-topLangLinks.js&amp;diff=60&amp;oldid=prev"/>
		<updated>2026-01-13T11:21:11Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «&lt;span class=&quot;autocomment&quot;&gt;MediaWiki:Gadget-topLangLinks.js: &lt;/span&gt; &lt;span class=&quot;autocomment&quot;&gt;https://structorica.wiki/w/MediaWiki:Gadget-topLangLinks.js: &lt;/span&gt; &lt;span class=&quot;autocomment&quot;&gt;: &lt;/span&gt; &lt;span class=&quot;autocomment&quot;&gt;Based on: https://minecraft.wiki/w/MediaWiki:Gadget-topLangLinks.js: &lt;/span&gt; mw.loader   .using([     // Removed &amp;#039;mcw.messages&amp;#039; dependency as it&amp;#039;s Minecraft Wiki specific     // &amp;#039;mediawiki.api&amp;#039;,     &amp;quot;mediawiki.language&amp;quot;,     &amp;quot;mediawiki.jqueryMsg&amp;quot;,     &amp;quot;oojs-ui-widgets&amp;quot;,     &amp;quot;oojs-ui.styles.icons-editing-advanced&amp;quot;,   ]) /*.then( function() { 	// Load th...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/* MediaWiki:Gadget-topLangLinks.js */&lt;br /&gt;
/* https://structorica.wiki/w/MediaWiki:Gadget-topLangLinks.js */&lt;br /&gt;
/* */&lt;br /&gt;
/* Based on: https://minecraft.wiki/w/MediaWiki:Gadget-topLangLinks.js */&lt;br /&gt;
mw.loader&lt;br /&gt;
  .using([&lt;br /&gt;
    // Removed &amp;#039;mcw.messages&amp;#039; dependency as it&amp;#039;s Minecraft Wiki specific&lt;br /&gt;
    // &amp;#039;mediawiki.api&amp;#039;,&lt;br /&gt;
    &amp;quot;mediawiki.language&amp;quot;,&lt;br /&gt;
    &amp;quot;mediawiki.jqueryMsg&amp;quot;,&lt;br /&gt;
    &amp;quot;oojs-ui-widgets&amp;quot;,&lt;br /&gt;
    &amp;quot;oojs-ui.styles.icons-editing-advanced&amp;quot;,&lt;br /&gt;
  ]) /*.then( function() {&lt;br /&gt;
	// Load the system messages needed for the UI using `mediawiki.api`.&lt;br /&gt;
	// This is expensive for the server since this gadget is run on every visit.&lt;br /&gt;
	// To save bandwidth, we&amp;#039;re using `mcw.messages` to pre-load them instead.&lt;br /&gt;
&lt;br /&gt;
	// Alternatively, the messages can be hardcoded here before loading.&lt;br /&gt;
	// Here&amp;#039;s what that looks like for English:&lt;br /&gt;
	mw.messages.set(&amp;#039;vector-language-button-label&amp;#039;, &amp;#039;{{PLURAL:$1|$1 language|$1 languages}}&amp;#039;);&lt;br /&gt;
	mw.messages.set(&amp;#039;otherlanguages&amp;#039;, &amp;#039;In other languages&amp;#039;);&lt;br /&gt;
	mw.messages.set(&amp;#039;pipe-separator&amp;#039;, &amp;#039; | &amp;#039;);&lt;br /&gt;
&lt;br /&gt;
	return new mw.Api().loadMessagesIfMissing( [&lt;br /&gt;
		&amp;#039;vector-language-button-label&amp;#039;,&lt;br /&gt;
		&amp;#039;otherlanguages&amp;#039;,&lt;br /&gt;
		&amp;#039;pipe-separator&amp;#039;&lt;br /&gt;
	], {&lt;br /&gt;
		requestid: &amp;#039;gadget-topLangLinks&amp;#039;,&lt;br /&gt;
		smaxage: 604800,&lt;br /&gt;
		maxage: 604800,&lt;br /&gt;
	} );&lt;br /&gt;
} )*/&lt;br /&gt;
  .then(function () {&lt;br /&gt;
    // Forked from Minecraft Wiki: hardcoded messages for Structorica Wiki&lt;br /&gt;
&lt;br /&gt;
    // Uncomment below for English localization instead:&lt;br /&gt;
    &lt;br /&gt;
	/*&lt;br /&gt;
    mw.messages.set(&lt;br /&gt;
      &amp;quot;vector-language-button-label&amp;quot;,&lt;br /&gt;
      &amp;quot;{{PLURAL:$1|$1 language|$1 languages}}&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
    mw.messages.set(&amp;quot;otherlanguages&amp;quot;, &amp;quot;In other languages&amp;quot;);&lt;br /&gt;
    mw.messages.set(&amp;quot;pipe-separator&amp;quot;, &amp;quot; | &amp;quot;);&lt;br /&gt;
	*/&lt;br /&gt;
    // Russian localization for the language selector gadget&lt;br /&gt;
    &lt;br /&gt;
    mw.messages.set(&lt;br /&gt;
      &amp;quot;vector-language-button-label&amp;quot;,&lt;br /&gt;
      &amp;quot;{{PLURAL:$1|$1 язык|$1 языка|$1 языков}}&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
    mw.messages.set(&amp;quot;otherlanguages&amp;quot;, &amp;quot;На других языках&amp;quot;);&lt;br /&gt;
    mw.messages.set(&amp;quot;pipe-separator&amp;quot;, &amp;quot; | &amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    var links = $(&amp;quot;#p-lang .interlanguage-link a.interlanguage-link-target&amp;quot;);&lt;br /&gt;
    if (!links.length) return;&lt;br /&gt;
    var config = mw.config.get([&lt;br /&gt;
      &amp;quot;wgUserId&amp;quot;,&lt;br /&gt;
      &amp;quot;wgUserLanguage&amp;quot;,&lt;br /&gt;
      &amp;quot;wgContentLanguage&amp;quot;,&lt;br /&gt;
    ]);&lt;br /&gt;
    var languages = navigator.languages.slice();&lt;br /&gt;
    if (config.wgUserId &amp;amp;&amp;amp; config.wgUserLanguage !== config.wgContentLanguage) {&lt;br /&gt;
      languages.unshift(config.wgUserLanguage);&lt;br /&gt;
    }&lt;br /&gt;
    var lang = languages&lt;br /&gt;
      .map(function (lang) {&lt;br /&gt;
        return lang.split(&amp;quot;-&amp;quot;)[0];&lt;br /&gt;
      })&lt;br /&gt;
      .find(function (lang) {&lt;br /&gt;
        if (lang === config.wgContentLanguage) {&lt;br /&gt;
          return true;&lt;br /&gt;
        }&lt;br /&gt;
        return links.is(function () {&lt;br /&gt;
          return this.lang === lang;&lt;br /&gt;
        });&lt;br /&gt;
      });&lt;br /&gt;
    var suggestWidget;&lt;br /&gt;
    var popupWidget = new OO.ui.PopupButtonWidget({&lt;br /&gt;
      framed: false,&lt;br /&gt;
      flags: [&amp;quot;progressive&amp;quot;],&lt;br /&gt;
      icon: &amp;quot;translation&amp;quot;,&lt;br /&gt;
      indicator: &amp;quot;down&amp;quot;,&lt;br /&gt;
      id: &amp;quot;p-lang-btn&amp;quot;,&lt;br /&gt;
      title: mw.msg(&amp;quot;otherlanguages&amp;quot;),&lt;br /&gt;
      label: mw.msg(&lt;br /&gt;
        &amp;quot;vector-language-button-label&amp;quot;,&lt;br /&gt;
        mw.language.convertNumber(links.length)&lt;br /&gt;
      ),&lt;br /&gt;
      popup: {&lt;br /&gt;
        $content: $(&amp;quot;&amp;lt;ul&amp;gt;&amp;quot;)&lt;br /&gt;
          .css({&lt;br /&gt;
            &amp;quot;list-style&amp;quot;: &amp;quot;none&amp;quot;,&lt;br /&gt;
            margin: &amp;quot;0&amp;quot;,&lt;br /&gt;
          })&lt;br /&gt;
          .append(&lt;br /&gt;
            links&lt;br /&gt;
              .map(function () {&lt;br /&gt;
                var buttonWidget = new OO.ui.ButtonWidget({&lt;br /&gt;
                  framed: false,&lt;br /&gt;
                  flags: [&amp;quot;progressive&amp;quot;],&lt;br /&gt;
                  title: this.title,&lt;br /&gt;
                  label: this.text,&lt;br /&gt;
                  href: this.href,&lt;br /&gt;
                  rel: &amp;quot;alternate&amp;quot;,&lt;br /&gt;
                  classes: [&amp;quot;interlanguage-link&amp;quot;, &amp;quot;interwiki-&amp;quot; + this.lang],&lt;br /&gt;
                });&lt;br /&gt;
                buttonWidget.$element&lt;br /&gt;
                  .find(&amp;quot;a&amp;quot;)&lt;br /&gt;
                  .addClass(&amp;quot;interlanguage-link-target&amp;quot;)&lt;br /&gt;
                  .attr(&amp;quot;hreflang&amp;quot;, this.hreflang)&lt;br /&gt;
                  .attr(&amp;quot;lang&amp;quot;, this.lang)&lt;br /&gt;
                  .css(&amp;quot;width&amp;quot;, &amp;quot;140px&amp;quot;);&lt;br /&gt;
                if (lang === this.lang) {&lt;br /&gt;
                  suggestWidget = buttonWidget.$element&lt;br /&gt;
                    .clone()&lt;br /&gt;
                    .attr(&amp;quot;id&amp;quot;, &amp;quot;p-lang-suggest&amp;quot;)&lt;br /&gt;
                    .css(&amp;quot;margin-right&amp;quot;, &amp;quot;0&amp;quot;);&lt;br /&gt;
                  suggestWidget.find(&amp;quot;a&amp;quot;).css(&amp;quot;width&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
                  var pipe = $(&amp;quot;&amp;lt;span&amp;gt;&amp;quot;)&lt;br /&gt;
                    .text(mw.msg(&amp;quot;pipe-separator&amp;quot;))&lt;br /&gt;
                    .css(&amp;quot;user-select&amp;quot;, &amp;quot;none&amp;quot;);&lt;br /&gt;
                  suggestWidget = suggestWidget.add(pipe);&lt;br /&gt;
                }&lt;br /&gt;
                return $(&amp;quot;&amp;lt;li&amp;gt;&amp;quot;)&lt;br /&gt;
                  .css(&amp;quot;margin&amp;quot;, &amp;quot;0 0 0 6px&amp;quot;)&lt;br /&gt;
                  .append(buttonWidget.$element);&lt;br /&gt;
              })&lt;br /&gt;
              .get()&lt;br /&gt;
          ),&lt;br /&gt;
        anchor: false,&lt;br /&gt;
        width: 140,&lt;br /&gt;
        id: &amp;quot;p-lang-btn-popup&amp;quot;,&lt;br /&gt;
      },&lt;br /&gt;
    });&lt;br /&gt;
    $(&amp;quot;&amp;lt;div&amp;gt;&amp;quot;)&lt;br /&gt;
      .addClass(&amp;quot;mw-indicator&amp;quot;)&lt;br /&gt;
      .attr(&amp;quot;id&amp;quot;, &amp;quot;mw-indicator-lang&amp;quot;)&lt;br /&gt;
      .append(suggestWidget, popupWidget.$element)&lt;br /&gt;
      .prependTo(&amp;quot;.mw-indicators&amp;quot;);&lt;br /&gt;
  });&lt;/div&gt;</summary>
		<author><name>Ivan</name></author>
	</entry>
</feed>