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