Update jquery.i18n from upstream
Change-Id: Id533eb69c2c192f2cb42749214e5bb23d379e404
This commit is contained in:
committed by
Gerrit Code Review
parent
ef8bad5754
commit
63d98b05ea
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
// Override String.localeString method
|
// Override String.localeString method
|
||||||
String.prototype.toLocaleString = function () {
|
String.prototype.toLocaleString = function () {
|
||||||
var localeParts, messages, localePartIndex, value, locale, fallbackIndex;
|
var localeParts, messageLocation, localePartIndex, value, locale, fallbackIndex;
|
||||||
|
|
||||||
value = this.valueOf();
|
value = this.valueOf();
|
||||||
locale = i18n.locale;
|
locale = i18n.locale;
|
||||||
@@ -64,22 +64,25 @@
|
|||||||
do {
|
do {
|
||||||
var _locale = localeParts.slice( 0, localePartIndex ).join( "-" );
|
var _locale = localeParts.slice( 0, localePartIndex ).join( "-" );
|
||||||
|
|
||||||
if ( !i18n.messageStore.messages[_locale] && i18n.options.messageLocationResolver ) {
|
if ( i18n.options.messageLocationResolver ) {
|
||||||
messages = i18n.options.messageLocationResolver( _locale, value );
|
messageLocation = i18n.options.messageLocationResolver( _locale, value );
|
||||||
|
|
||||||
if ( messages ) {
|
if ( messageLocation
|
||||||
i18n.messageStore.load( messages, _locale );
|
&& ( !i18n.messageStore.isLoaded(_locale ,messageLocation ) ) )
|
||||||
|
{
|
||||||
|
i18n.messageStore.load( messageLocation, _locale );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var message = i18n.messageStore.get( _locale, value );
|
var message = i18n.messageStore.get( _locale, value );
|
||||||
|
|
||||||
if ( message ) {
|
if ( message ) {
|
||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
localePartIndex--;
|
localePartIndex--;
|
||||||
} while (localePartIndex);
|
} while (localePartIndex);
|
||||||
|
|
||||||
if ( locale === "en" ) {
|
if ( locale === 'en' ) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -294,10 +297,8 @@
|
|||||||
messageStore.load( $link.attr( "href" ) );
|
messageStore.load( $link.attr( "href" ) );
|
||||||
} else if ( $.inArray( "localization", rel ) !== -1 ) {
|
} else if ( $.inArray( "localization", rel ) !== -1 ) {
|
||||||
// single localization
|
// single localization
|
||||||
var localization = {};
|
messageStore.queue( ( $link.attr( "hreflang" ) || "" )
|
||||||
localization[ ( $link.attr( "hreflang" ) || "" ).toLowerCase()] = $link
|
.toLowerCase(), $link.attr( "href" ) );
|
||||||
.attr( "href" );
|
|
||||||
messageStore.load( localization );
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -332,7 +333,7 @@
|
|||||||
messageStore.messages = {};
|
messageStore.messages = {};
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
// Only process this data load if the locale is our current
|
// Only process this data load if the locale is our current
|
||||||
// locale. Otherwise, put in the source queue for later.
|
// locale. Otherwise, put in the source queue for later.
|
||||||
if ( locale && messageStore.locale !== locale ) {
|
if ( locale && messageStore.locale !== locale ) {
|
||||||
@@ -340,17 +341,16 @@
|
|||||||
if ( ! ( locale in messageStore.sources ) ) {
|
if ( ! ( locale in messageStore.sources ) ) {
|
||||||
messageStore.sources[locale] = [];
|
messageStore.sources[locale] = [];
|
||||||
}
|
}
|
||||||
messageStore.log( "Queueing: " + locale + " Current locale " + messageStore.locale );
|
this.queue( locale, data );
|
||||||
messageStore.sources[locale].push( data );
|
|
||||||
return;
|
return;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
if ( typeof data === 'string' ) {
|
if ( typeof data === 'string' ) {
|
||||||
// This is a URL to the messages file.
|
// This is a URL to the messages file.
|
||||||
messageStore.log( "Loading messages from: " + data );
|
messageStore.log( "Loading messages from: " + data );
|
||||||
messageStore.jsonMessageLoader( data ).done( function ( localization, textStatus ) {
|
messageStore.jsonMessageLoader( data ).done( function ( localization, textStatus ) {
|
||||||
messageStore.load( localization, locale );
|
messageStore.load( localization, locale );
|
||||||
delete messageStore.sources[locale];
|
messageStore.markLoaded( locale, data );
|
||||||
} );
|
} );
|
||||||
} else {
|
} else {
|
||||||
// Data is either a group of messages for {locale},
|
// Data is either a group of messages for {locale},
|
||||||
@@ -387,6 +387,43 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
markLoaded: function ( locale, messageLocation ) {
|
||||||
|
var i, queue = this.sources[locale];
|
||||||
|
|
||||||
|
if ( !queue ) {
|
||||||
|
this.queue( locale, messageLocation );
|
||||||
|
queue = this.sources[locale];
|
||||||
|
}
|
||||||
|
this.sources[locale] = this.sources[locale] || [];
|
||||||
|
for (i = 0; i < queue.length; i++) {
|
||||||
|
if ( queue[i].source.url === messageLocation ) {
|
||||||
|
queue[i].source.loaded = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
queue: function ( locale, messageLocation ) {
|
||||||
|
var i,
|
||||||
|
queue = this.sources[locale];
|
||||||
|
|
||||||
|
this.sources[locale] = this.sources[locale] || [];
|
||||||
|
if ( queue ) {
|
||||||
|
for (i = 0; i < queue.length; i++) {
|
||||||
|
if ( queue[i].source.url === messageLocation ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.log( 'Source for: ' + locale + ' : ' + messageLocation + ' registered' );
|
||||||
|
this.sources[locale].push( {
|
||||||
|
source: {
|
||||||
|
url: messageLocation,
|
||||||
|
loaded: false
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the messages from the source queue for the locale
|
* Load the messages from the source queue for the locale
|
||||||
*
|
*
|
||||||
@@ -395,10 +432,29 @@
|
|||||||
loadFromQueue: function ( locale ) {
|
loadFromQueue: function ( locale ) {
|
||||||
var i,
|
var i,
|
||||||
queue = this.sources[locale];
|
queue = this.sources[locale];
|
||||||
|
|
||||||
|
|
||||||
|
if ( queue ) {
|
||||||
for (i = 0; i < queue.length; i++) {
|
for (i = 0; i < queue.length; i++) {
|
||||||
this.load( queue[i], locale );
|
if ( !queue[i].source.loaded ) {
|
||||||
|
this.load( queue[i].source.url, locale );
|
||||||
|
this.sources[locale][i].source.loaded = true;
|
||||||
}
|
}
|
||||||
delete this.sources[locale];
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
isLoaded: function ( locale, messageLocation ) {
|
||||||
|
var i, sources = this.sources[locale], result = false;
|
||||||
|
|
||||||
|
if ( sources ) {
|
||||||
|
for (i = 0; i < sources.length; i++) {
|
||||||
|
if ( sources[i].source.url === messageLocation ) {
|
||||||
|
result = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
jsonMessageLoader: function ( url ) {
|
jsonMessageLoader: function ( url ) {
|
||||||
@@ -421,9 +477,7 @@
|
|||||||
*/
|
*/
|
||||||
get: function ( locale, messageKey ) {
|
get: function ( locale, messageKey ) {
|
||||||
// load locale if not loaded
|
// load locale if not loaded
|
||||||
if ( this.sources[locale] ) {
|
if ( !this.messages[locale] ) {
|
||||||
// We need to switch to this locale
|
|
||||||
this.locale = locale;
|
|
||||||
this.loadFromQueue( locale );
|
this.loadFromQueue( locale );
|
||||||
}
|
}
|
||||||
return this.messages[locale] && this.messages[locale][messageKey];
|
return this.messages[locale] && this.messages[locale][messageKey];
|
||||||
@@ -1688,7 +1742,8 @@
|
|||||||
*/
|
*/
|
||||||
digitTransformTable: function ( language ) {
|
digitTransformTable: function ( language ) {
|
||||||
var tables = {
|
var tables = {
|
||||||
ar: '۰۱۲۳۴۵۶۷۸۹',
|
ar: '٠١٢٣٤٥٦٧٨٩',
|
||||||
|
fa: '۰۱۲۳۴۵۶۷۸۹',
|
||||||
ml: '൦൧൨൩൪൫൬൭൮൯',
|
ml: '൦൧൨൩൪൫൬൭൮൯',
|
||||||
kn: '೦೧೨೩೪೫೬೭೮೯',
|
kn: '೦೧೨೩೪೫೬೭೮೯',
|
||||||
lo: '໐໑໒໓໔໕໖໗໘໙',
|
lo: '໐໑໒໓໔໕໖໗໘໙',
|
||||||
|
|||||||
@@ -124,8 +124,6 @@
|
|||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
// localization for mediaWiki ULS - fallback locale
|
|
||||||
i18n.load( extensionPath + 'i18n/en.json', 'en' );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$( document ).ready( function () {
|
$( document ).ready( function () {
|
||||||
|
|||||||
Reference in New Issue
Block a user