User:Erutuon/scripts/langCatRedirect.js

From Wiktionary, the free dictionary
Jump to navigation Jump to search

Note: You may have to bypass your browser’s cache to see the changes. In addition, after saving a sitewide CSS file such as MediaWiki:Common.css, it will take 5-10 minutes before the changes take effect, even if you clear your cache.

  • Mozilla / Firefox / Safari: hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (Command-R on a Macintosh);
  • Konqueror and Chrome: click Reload or press F5;
  • Opera: clear the cache in Tools → Preferences;
  • Internet Explorer: hold Ctrl while clicking Refresh, or press Ctrl-F5.

// <nowiki>

// Redirects you from Category:<language code> to Category:<language category name>;
// for instance, [[Category:en]] to [[Category:English language]].

if (mw.config.get('wgNamespaceNumber') === 14 && mw.config.get('wgAction') == 'view'
&& /^[a-z]{2,3}(?:-[a-z]{2,3})*$/.test(mw.config.get('wgTitle'))) {
	$.getScript("//en.wiktionary.org/w/index.php?title=User:Erutuon/scripts/apiWrapper.js&action=raw")
	.done(function() {
		'use strict';
		
		var title = mw.config.get('wgTitle');
		var luaScript = 'mw.text.jsonEncode(require "Module:languages".getByCode("' + title + '"):getCategoryName())';
		
		function handleLanguageData(languageDataJSON) {
			var categoryName = JSON.parse(languageDataJSON);
			if (categoryName)
				location.href = mw.config.get('wgArticlePath').replace('$1', 'Category:' + categoryName);
			else
				mw.notify(mw.config.get('wgTitle') + " is not a valid language code.");
		}
		
		apiWrapper.callLua(luaScript, handleLanguageData);
	})
	.fail(function () {
		mw.log("fail");
	});
}

// </nowiki>