summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/UniversalLanguageSelector/resources/js/ext.uls.i18n.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/UniversalLanguageSelector/resources/js/ext.uls.i18n.js')
-rw-r--r--www/wiki/extensions/UniversalLanguageSelector/resources/js/ext.uls.i18n.js61
1 files changed, 61 insertions, 0 deletions
diff --git a/www/wiki/extensions/UniversalLanguageSelector/resources/js/ext.uls.i18n.js b/www/wiki/extensions/UniversalLanguageSelector/resources/js/ext.uls.i18n.js
new file mode 100644
index 00000000..f1228e60
--- /dev/null
+++ b/www/wiki/extensions/UniversalLanguageSelector/resources/js/ext.uls.i18n.js
@@ -0,0 +1,61 @@
+/*!
+ * ULS i18n preparation using jquery.i18n library
+ *
+ * Copyright (C) 2012-2013 Alolita Sharma, Amir Aharoni, Arun Ganesh, Brandon Harris,
+ * Niklas Laxström, Pau Giner, Santhosh Thottingal, Siebrand Mazeland and other
+ * contributors. See CREDITS for a list.
+ *
+ * UniversalLanguageSelector is dual licensed GPLv2 or later and MIT. You don't
+ * have to do anything special to choose one license or the other and you don't
+ * have to notify anyone which license you are using. You are free to use
+ * UniversalLanguageSelector in commercial projects as long as the copyright
+ * header is left intact. See files GPL-LICENSE and MIT-LICENSE for details.
+ *
+ * @file
+ * @ingroup Extensions
+ * @licence GNU General Public Licence 2.0 or later
+ * @licence MIT License
+ */
+
+( function () {
+ 'use strict';
+
+ mw.uls = mw.uls || {};
+
+ // JavaScript side i18n initialization
+ $.i18n( {
+ locale: mw.config.get( 'wgUserLanguage' )
+ } );
+
+ // ApiULSLocalization handles fallback in ULS
+ $.i18n.fallbacks = {};
+
+ /**
+ * Load localization messags for a locale to the jquery.i18n
+ * messagestore.
+ * Also called by RL module ResourceLoaderULSJsonMessageModule
+ *
+ * @param {string} locale the language code
+ * @param {Object} [messages]
+ * @return {jQuery.Promise}
+ */
+ mw.uls.loadLocalization = function ( locale, messages ) {
+ var i18n = $.i18n();
+
+ i18n.locale = locale;
+ if ( messages ) {
+ return i18n.load( messages, locale );
+ }
+ if ( i18n.messageStore.messages[ locale ] ) {
+ return $.Deferred().resolve();
+ }
+ return i18n.messageStore.load(
+ mw.util.wikiScript( 'api' ) + '?' + $.param( {
+ action: 'ulslocalization',
+ language: locale
+ } ),
+ locale
+ );
+ };
+
+}() );