<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-LanguageUtils.js</id>
	<title>MediaWiki:Gadget-LanguageUtils.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-LanguageUtils.js"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-LanguageUtils.js&amp;action=history"/>
	<updated>2026-04-10T12:53:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-LanguageUtils.js&amp;diff=475159&amp;oldid=prev</id>
		<title>Sware: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-LanguageUtils.js&amp;diff=475159&amp;oldid=prev"/>
		<updated>2025-11-04T17:55:19Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:55, 4 November 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-LanguageUtils.js&amp;diff=475158&amp;oldid=prev</id>
		<title>wikt&gt;Erutuon: make GetScriptsByLangCode return an array when retrieving scripts for languages like Ukrainian (uk) that have a string in the script field</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-LanguageUtils.js&amp;diff=475158&amp;oldid=prev"/>
		<updated>2023-02-23T19:52:52Z</updated>

		<summary type="html">&lt;p&gt;make GetScriptsByLangCode return an array when retrieving scripts for languages like Ukrainian (uk) that have a string in the script field&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// {{documentation}}&lt;br /&gt;
// implicit dependencies : ext.gadget.StorageUtils&lt;br /&gt;
/* jshint maxerr:1048576, strict:true, undef:true, latedef:true, es5:true, sub:true */&lt;br /&gt;
&lt;br /&gt;
/* global mw, $ */&lt;br /&gt;
&lt;br /&gt;
// &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// usage:&lt;br /&gt;
// var lutils = new LanguageUtilsAsync();&lt;br /&gt;
// lutils.GetWiktionaryCodeByCanonicalName(&amp;quot;Georgian&amp;quot;).then(langcode =&amp;gt; console.log(langcode));&lt;br /&gt;
// lutils.GetCanonicalNameByWiktionaryCode(&amp;quot;ka&amp;quot;).then(langname =&amp;gt; console.log(langname));&lt;br /&gt;
&lt;br /&gt;
window.LanguageUtilsAsync = function(){&lt;br /&gt;
	this.langNameToLangCode = new mw.Api().get({&lt;br /&gt;
		&amp;quot;action&amp;quot;: &amp;quot;expandtemplates&amp;quot;,&lt;br /&gt;
		&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
		&amp;quot;text&amp;quot;: &amp;quot;{{#invoke:languages/javascript-interface|AllCanonicalToCode}}&amp;quot;,&lt;br /&gt;
		&amp;quot;prop&amp;quot;: &amp;quot;wikitext&amp;quot;&lt;br /&gt;
	}).then(function (response) {&lt;br /&gt;
		return JSON.parse(response.expandtemplates.wikitext);&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	this.langCodeToLangName = this.langNameToLangCode.then(function(name2code){&lt;br /&gt;
		var code2name = {};&lt;br /&gt;
		for (var name in name2code) &lt;br /&gt;
		{&lt;br /&gt;
			code2name[name2code[name]] = name;&lt;br /&gt;
		}&lt;br /&gt;
		return code2name;&lt;br /&gt;
	});&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	this.GetWiktionaryCodeByCanonicalName = function(canonicalName){&lt;br /&gt;
		return this.langNameToLangCode.then(function(r){ return r[canonicalName];});&lt;br /&gt;
	};&lt;br /&gt;
	this.GetCanonicalNameByWiktionaryCode = function(langcode) {&lt;br /&gt;
		return this.langCodeToLangName.then(function(r){ return r[langcode];});&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
window.LanguageUtils = function(){&lt;br /&gt;
	this.automaticTranslitLanguages = function(){&lt;br /&gt;
		return new mw.Api().get({&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;expandtemplates&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;text&amp;quot;: &amp;quot;{{#invoke:languages/javascript-interface|GetLanguagesWithAutomaticTransliteration}}&amp;quot;,&lt;br /&gt;
			&amp;quot;prop&amp;quot;: &amp;quot;wikitext&amp;quot;&lt;br /&gt;
		}).then(function (response) {&lt;br /&gt;
			return JSON.parse(response.expandtemplates.wikitext);&lt;br /&gt;
		});&lt;br /&gt;
	};&lt;br /&gt;
	this.wiktionaryCodeToWikimediaCode = function(){&lt;br /&gt;
		return new mw.Api().get({&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;expandtemplates&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;text&amp;quot;: &amp;quot;{{#invoke:languages/javascript-interface|AllWiktionaryCodeToWikimediaCode}}&amp;quot;,&lt;br /&gt;
			&amp;quot;prop&amp;quot;: &amp;quot;wikitext&amp;quot;&lt;br /&gt;
		}).then(function (response) {&lt;br /&gt;
			return JSON.parse(response.expandtemplates.wikitext);&lt;br /&gt;
		});&lt;br /&gt;
	};&lt;br /&gt;
	&lt;br /&gt;
	this.automaticTranslitCacheableStorage = new CacheableStorage(&amp;quot;LanguageUtils-AutomaticTransliteration&amp;quot;, this.automaticTranslitLanguages, 7, 1);&lt;br /&gt;
	this.wikimediaCodesCacheableStorage = new CacheableStorage(&amp;quot;LanguageUtils-WikimediaCodes&amp;quot;, this.wiktionaryCodeToWikimediaCode, 7, 1);&lt;br /&gt;
	&lt;br /&gt;
	this.HasAutomaticTransliteration = function(langcode) {&lt;br /&gt;
		var langs = this.automaticTranslitCacheableStorage.GetItem();&lt;br /&gt;
		if (langs){&lt;br /&gt;
			return langs[langcode] || false;&lt;br /&gt;
		}&lt;br /&gt;
		return false;&lt;br /&gt;
	};&lt;br /&gt;
	this.GetWikimediaCodeByWiktionaryCode = function(langcode) {&lt;br /&gt;
		var wikimediaCodes = this.wikimediaCodesCacheableStorage.GetItem();&lt;br /&gt;
		if (wikimediaCodes &amp;amp;&amp;amp; wikimediaCodes[langcode]){&lt;br /&gt;
			return wikimediaCodes[langcode][0];&lt;br /&gt;
		}&lt;br /&gt;
		return null;&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
window.ScriptUtils = function(){	&lt;br /&gt;
	this.getAllDataPromise = function(){&lt;br /&gt;
		return new mw.Api().get({&lt;br /&gt;
			&amp;quot;action&amp;quot;: &amp;quot;expandtemplates&amp;quot;,&lt;br /&gt;
			&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
			&amp;quot;text&amp;quot;: &amp;quot;{{#invoke:languages/javascript-interface|AllLangcodeToScripts}}&amp;quot;,&lt;br /&gt;
			&amp;quot;prop&amp;quot;: &amp;quot;wikitext&amp;quot;&lt;br /&gt;
		}).then(function(r){return JSON.parse(r.expandtemplates.wikitext);});&lt;br /&gt;
	};&lt;br /&gt;
	&lt;br /&gt;
	this.cacheableStorage = new CacheableStorage(&amp;quot;ScriptUtils&amp;quot;, this.getAllDataPromise, 7, 1);&lt;br /&gt;
	this.GetScriptsByLangCode = function(langcode){&lt;br /&gt;
		var allData = this.cacheableStorage.GetItem();&lt;br /&gt;
		if (allData){&lt;br /&gt;
			var scripts = allData[langcode];&lt;br /&gt;
			return typeof scripts === &amp;quot;string&amp;quot; ? [scripts] : scripts;&lt;br /&gt;
		}&lt;br /&gt;
		return [];&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>wikt&gt;Erutuon</name></author>
	</entry>
</feed>