Update jquery.i18n from upstream
Upstream: https://github.com/wikimedia/jquery.i18n Changes: * Support fallback loading when folder is passed as source to load * Do not overwrite existing messages for a locale while adding messages second time * Fix the country code case issue * Renamed jquery.i18n.messages.js to jquery.i18n.messagestore * ULS: Updated Resources.php for renaming of jquery.i18n.messages file Change-Id: I60a6e3224cb7b8ea813a8ccd7e389071b3d1244c
This commit is contained in:
@@ -169,7 +169,7 @@ $wgResourceModules['ext.uls.webfonts.mobile'] = array(
|
|||||||
$wgResourceModules['jquery.i18n'] = array(
|
$wgResourceModules['jquery.i18n'] = array(
|
||||||
'scripts' => array(
|
'scripts' => array(
|
||||||
'lib/jquery.i18n/jquery.i18n.js',
|
'lib/jquery.i18n/jquery.i18n.js',
|
||||||
'lib/jquery.i18n/jquery.i18n.messages.js',
|
'lib/jquery.i18n/jquery.i18n.messagestore.js',
|
||||||
'lib/jquery.i18n/jquery.i18n.parser.js',
|
'lib/jquery.i18n/jquery.i18n.parser.js',
|
||||||
'lib/jquery.i18n/jquery.i18n.emitter.js',
|
'lib/jquery.i18n/jquery.i18n.emitter.js',
|
||||||
'lib/jquery.i18n/jquery.i18n.language.js',
|
'lib/jquery.i18n/jquery.i18n.language.js',
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
while ( locale ) {
|
while ( locale ) {
|
||||||
// Iterate through locales starting at most-specific until
|
// Iterate through locales starting at most-specific until
|
||||||
// localization is found. As in fi-Latn-FI, fi-Latn and fi.
|
// localization is found. As in fi-Latn-FI, fi-Latn and fi.
|
||||||
localeParts = locale.toLowerCase().split( '-' );
|
localeParts = locale.split( '-' );
|
||||||
localePartIndex = localeParts.length;
|
localePartIndex = localeParts.length;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
@@ -96,18 +96,40 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* General message loading API This can take a URL string for
|
* General message loading API This can take a URL string for
|
||||||
* the json formatted messages.
|
* the json formatted messages. Example:
|
||||||
* <code>load('path/to/all_localizations.json');</code>
|
* <code>load('path/to/all_localizations.json');</code>
|
||||||
*
|
*
|
||||||
* This can also load a localization file for a locale <code>
|
* To load a localization file for a locale:
|
||||||
|
* <code>
|
||||||
* load('path/to/de-messages.json', 'de' );
|
* load('path/to/de-messages.json', 'de' );
|
||||||
* </code>
|
* </code>
|
||||||
|
*
|
||||||
|
* To load a localization file from a directory:
|
||||||
|
* <code>
|
||||||
|
* load('path/to/i18n/directory', 'de' );
|
||||||
|
* </code>
|
||||||
|
* The above method has the advantage of fallback resolution.
|
||||||
|
* ie, it will automatically load the fallback locales for de.
|
||||||
|
* For most usecases, this is the recommended method.
|
||||||
|
* It is optional to have trailing slash at end.
|
||||||
|
*
|
||||||
* A data object containing message key- message translation mappings
|
* A data object containing message key- message translation mappings
|
||||||
* can also be passed Eg:
|
* can also be passed. Example:
|
||||||
* <code>
|
* <code>
|
||||||
* load( { 'hello' : 'Hello' }, optionalLocale );
|
* load( { 'hello' : 'Hello' }, optionalLocale );
|
||||||
* </code> If the data argument is
|
* </code>
|
||||||
* null/undefined/false,
|
*
|
||||||
|
* A source map containing key-value pair of languagename and locations
|
||||||
|
* can also be passed. Example:
|
||||||
|
* <code>
|
||||||
|
* load( {
|
||||||
|
* 'bn': 'i18n/bn.json',
|
||||||
|
* 'he': 'i18n/he.json',
|
||||||
|
* 'en': 'i18n/en.json'
|
||||||
|
* } )
|
||||||
|
* </code>
|
||||||
|
*
|
||||||
|
* If the data argument is null/undefined/false,
|
||||||
* all cached messages for the i18n instance will get reset.
|
* all cached messages for the i18n instance will get reset.
|
||||||
*
|
*
|
||||||
* @param {String|Object} source
|
* @param {String|Object} source
|
||||||
@@ -115,7 +137,22 @@
|
|||||||
* @returns {jQuery.Promise}
|
* @returns {jQuery.Promise}
|
||||||
*/
|
*/
|
||||||
load: function ( source, locale ) {
|
load: function ( source, locale ) {
|
||||||
|
var fallbackLocales, locIndex, fallbackLocale, sourceMap = {};
|
||||||
|
|
||||||
|
if ( typeof source === 'string' &&
|
||||||
|
source.split('.').pop() !== 'json'
|
||||||
|
) {
|
||||||
|
fallbackLocales = ( $.i18n.fallbacks[locale] || [] )
|
||||||
|
.concat( this.options.fallbackLocale );
|
||||||
|
for ( locIndex in fallbackLocales ) {
|
||||||
|
fallbackLocale = fallbackLocales[locIndex];
|
||||||
|
sourceMap[fallbackLocale] = source + '/' + fallbackLocale + '.json';
|
||||||
|
}
|
||||||
|
return this.load( sourceMap );
|
||||||
|
} else {
|
||||||
return this.messageStore.load( source, locale );
|
return this.messageStore.load( source, locale );
|
||||||
|
}
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -4,513 +4,263 @@
|
|||||||
|
|
||||||
var language = {
|
var language = {
|
||||||
// CLDR plural rules generated using
|
// CLDR plural rules generated using
|
||||||
// http://i18ndata.appspot.com/cldr/tags/unconfirmed/supplemental/plurals?action=browse&depth=-1
|
// libs/CLDRPluralRuleParser/tools/PluralXML2JSON.html
|
||||||
// and compressed
|
'pluralRules': {
|
||||||
pluralRules: {
|
'ak': {
|
||||||
gv: {
|
'one': 'n = 0..1'
|
||||||
one: 'n mod 10 in 1..2 or n mod 20 is 0'
|
},
|
||||||
|
'am': {
|
||||||
|
'one': 'i = 0 or n = 1'
|
||||||
|
},
|
||||||
|
'ar': {
|
||||||
|
'zero': 'n = 0',
|
||||||
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2',
|
||||||
|
'few': 'n % 100 = 3..10',
|
||||||
|
'many': 'n % 100 = 11..99'
|
||||||
},
|
},
|
||||||
gu: {
|
'be': {
|
||||||
one: 'n is 1'
|
'one': 'n % 10 = 1 and n % 100 != 11',
|
||||||
|
'few': 'n % 10 = 2..4 and n % 100 != 12..14',
|
||||||
|
'many': 'n % 10 = 0 or n % 10 = 5..9 or n % 100 = 11..14'
|
||||||
|
},
|
||||||
|
'bh': {
|
||||||
|
'one': 'n = 0..1'
|
||||||
},
|
},
|
||||||
rof: {
|
'bn': {
|
||||||
one: 'n is 1'
|
'one': 'i = 0 or n = 1'
|
||||||
},
|
},
|
||||||
ga: {
|
'br': {
|
||||||
few: 'n in 3..6',
|
'one': 'n % 10 = 1 and n % 100 != 11,71,91',
|
||||||
many: 'n in 7..10',
|
'two': 'n % 10 = 2 and n % 100 != 12,72,92',
|
||||||
two: 'n is 2',
|
'few': 'n % 10 = 3..4,9 and n % 100 != 10..19,70..79,90..99',
|
||||||
one: 'n is 1'
|
'many': 'n != 0 and n % 1000000 = 0'
|
||||||
|
},
|
||||||
|
'bs': {
|
||||||
|
'one': 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',
|
||||||
|
'few': 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'
|
||||||
|
},
|
||||||
|
'cs': {
|
||||||
|
'one': 'i = 1 and v = 0',
|
||||||
|
'few': 'i = 2..4 and v = 0',
|
||||||
|
'many': 'v != 0'
|
||||||
},
|
},
|
||||||
gl: {
|
'cy': {
|
||||||
one: 'n is 1'
|
'zero': 'n = 0',
|
||||||
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2',
|
||||||
|
'few': 'n = 3',
|
||||||
|
'many': 'n = 6'
|
||||||
},
|
},
|
||||||
lg: {
|
'da': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1 or t != 0 and i = 0,1'
|
||||||
},
|
},
|
||||||
lb: {
|
'fa': {
|
||||||
one: 'n is 1'
|
'one': 'i = 0 or n = 1'
|
||||||
},
|
},
|
||||||
xog: {
|
'ff': {
|
||||||
one: 'n is 1'
|
'one': 'i = 0,1'
|
||||||
},
|
},
|
||||||
ln: {
|
'fil': {
|
||||||
one: 'n in 0..1'
|
'one': 'i = 0..1 and v = 0'
|
||||||
},
|
},
|
||||||
lo: '',
|
'fr': {
|
||||||
brx: {
|
'one': 'i = 0,1'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
tr: '',
|
'ga': {
|
||||||
ts: {
|
'one': 'n = 1',
|
||||||
one: 'n is 1'
|
'two': 'n = 2',
|
||||||
|
'few': 'n = 3..6',
|
||||||
|
'many': 'n = 7..10'
|
||||||
},
|
},
|
||||||
tn: {
|
'gd': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1,11',
|
||||||
|
'two': 'n = 2,12',
|
||||||
|
'few': 'n = 3..10,13..19'
|
||||||
},
|
},
|
||||||
to: '',
|
'gu': {
|
||||||
lt: {
|
'one': 'i = 0 or n = 1'
|
||||||
few: 'n mod 10 in 2..9 and n mod 100 not in 11..19',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 not in 11..19'
|
|
||||||
},
|
},
|
||||||
tk: {
|
'guw': {
|
||||||
one: 'n is 1'
|
'one': 'n = 0..1'
|
||||||
},
|
},
|
||||||
th: '',
|
'gv': {
|
||||||
ksb: {
|
'one': 'n % 10 = 1',
|
||||||
one: 'n is 1'
|
'two': 'n % 10 = 2',
|
||||||
|
'few': 'n % 100 = 0,20,40,60'
|
||||||
},
|
},
|
||||||
te: {
|
'he': {
|
||||||
one: 'n is 1'
|
'one': 'i = 1 and v = 0',
|
||||||
|
'two': 'i = 2 and v = 0',
|
||||||
|
'many': 'v = 0 and n != 0..10 and n % 10 = 0'
|
||||||
},
|
},
|
||||||
ksh: {
|
'hi': {
|
||||||
zero: 'n is 0',
|
'one': 'i = 0 or n = 1'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
fil: {
|
'hr': {
|
||||||
one: 'n in 0..1'
|
'one': 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',
|
||||||
|
'few': 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'
|
||||||
},
|
},
|
||||||
haw: {
|
'hy': {
|
||||||
one: 'n is 1'
|
'one': 'i = 0,1'
|
||||||
},
|
},
|
||||||
kcg: {
|
'is': {
|
||||||
one: 'n is 1'
|
'one': 't = 0 and i % 10 = 1 and i % 100 != 11 or t != 0'
|
||||||
},
|
},
|
||||||
ssy: {
|
'iu': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
yo: '',
|
'iw': {
|
||||||
de: {
|
'one': 'i = 1 and v = 0',
|
||||||
one: 'n is 1'
|
'two': 'i = 2 and v = 0',
|
||||||
|
'many': 'v = 0 and n != 0..10 and n % 10 = 0'
|
||||||
},
|
},
|
||||||
ko: '',
|
'kab': {
|
||||||
da: {
|
'one': 'i = 0,1'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
dz: '',
|
'kn': {
|
||||||
dv: {
|
'one': 'i = 0 or n = 1'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
guw: {
|
'kw': {
|
||||||
one: 'n in 0..1'
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
shi: {
|
'lag': {
|
||||||
few: 'n in 2..10',
|
'zero': 'n = 0',
|
||||||
one: 'n within 0..1'
|
'one': 'i = 0,1 and n != 0'
|
||||||
},
|
},
|
||||||
el: {
|
'ln': {
|
||||||
one: 'n is 1'
|
'one': 'n = 0..1'
|
||||||
},
|
},
|
||||||
eo: {
|
'lt': {
|
||||||
one: 'n is 1'
|
'one': 'n % 10 = 1 and n % 100 != 11..19',
|
||||||
|
'few': 'n % 10 = 2..9 and n % 100 != 11..19',
|
||||||
|
'many': 'f != 0'
|
||||||
},
|
},
|
||||||
en: {
|
'lv': {
|
||||||
one: 'n is 1'
|
'zero': 'n % 10 = 0 or n % 100 = 11..19 or v = 2 and f % 100 = 11..19',
|
||||||
|
'one': 'n % 10 = 1 and n % 100 != 11 or v = 2 and f % 10 = 1 and f % 100 != 11 or v != 2 and f % 10 = 1'
|
||||||
},
|
},
|
||||||
ses: '',
|
'mg': {
|
||||||
teo: {
|
'one': 'n = 0..1'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
ee: {
|
'mk': {
|
||||||
one: 'n is 1'
|
'one': 'v = 0 and i % 10 = 1 or f % 10 = 1'
|
||||||
},
|
},
|
||||||
kde: '',
|
'mo': {
|
||||||
fr: {
|
'one': 'i = 1 and v = 0',
|
||||||
one: 'n within 0..2 and n is not 2'
|
'few': 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19'
|
||||||
},
|
},
|
||||||
eu: {
|
'mr': {
|
||||||
one: 'n is 1'
|
'one': 'i = 0 or n = 1'
|
||||||
},
|
},
|
||||||
et: {
|
'mt': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1',
|
||||||
|
'few': 'n = 0 or n % 100 = 2..10',
|
||||||
|
'many': 'n % 100 = 11..19'
|
||||||
},
|
},
|
||||||
es: {
|
'naq': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
seh: {
|
'nso': {
|
||||||
one: 'n is 1'
|
'one': 'n = 0..1'
|
||||||
},
|
},
|
||||||
ru: {
|
'pa': {
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
'one': 'n = 0..1'
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
},
|
||||||
kl: {
|
'pl': {
|
||||||
one: 'n is 1'
|
'one': 'i = 1 and v = 0',
|
||||||
|
'few': 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',
|
||||||
|
'many': 'v = 0 and i != 1 and i % 10 = 0..1 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 12..14'
|
||||||
},
|
},
|
||||||
sms: {
|
'pt': {
|
||||||
two: 'n is 2',
|
'one': 'i = 1 and v = 0 or i = 0 and t = 1'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
smn: {
|
'pt_PT': {
|
||||||
two: 'n is 2',
|
'one': 'n = 1 and v = 0'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
smj: {
|
'ro': {
|
||||||
two: 'n is 2',
|
'one': 'i = 1 and v = 0',
|
||||||
one: 'n is 1'
|
'few': 'v != 0 or n = 0 or n != 1 and n % 100 = 1..19'
|
||||||
},
|
},
|
||||||
smi: {
|
'ru': {
|
||||||
two: 'n is 2',
|
'one': 'v = 0 and i % 10 = 1 and i % 100 != 11',
|
||||||
one: 'n is 1'
|
'many': 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14'
|
||||||
},
|
},
|
||||||
fy: {
|
'se': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
rm: {
|
'sh': {
|
||||||
one: 'n is 1'
|
'one': 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',
|
||||||
|
'few': 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'
|
||||||
},
|
},
|
||||||
ro: {
|
'shi': {
|
||||||
few: 'n is 0 OR n is not 1 AND n mod 100 in 1..19',
|
'one': 'i = 0 or n = 1',
|
||||||
one: 'n is 1'
|
'few': 'n = 2..10'
|
||||||
},
|
},
|
||||||
bn: {
|
'si': {
|
||||||
one: 'n is 1'
|
'one': 'n = 0,1 or i = 0 and f = 1'
|
||||||
},
|
},
|
||||||
sma: {
|
'sk': {
|
||||||
two: 'n is 2',
|
'one': 'i = 1 and v = 0',
|
||||||
one: 'n is 1'
|
'few': 'i = 2..4 and v = 0',
|
||||||
|
'many': 'v != 0'
|
||||||
},
|
},
|
||||||
be: {
|
'sl': {
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
'one': 'v = 0 and i % 100 = 1',
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
'two': 'v = 0 and i % 100 = 2',
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
'few': 'v = 0 and i % 100 = 3..4 or v != 0'
|
||||||
},
|
},
|
||||||
bg: {
|
'sma': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
ms: '',
|
'smi': {
|
||||||
wa: {
|
'one': 'n = 1',
|
||||||
one: 'n in 0..1'
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
ps: {
|
'smj': {
|
||||||
one: 'n is 1'
|
'one': 'n = 1',
|
||||||
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
wo: '',
|
'smn': {
|
||||||
bm: '',
|
'one': 'n = 1',
|
||||||
jv: '',
|
'two': 'n = 2'
|
||||||
bo: '',
|
|
||||||
bh: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
},
|
||||||
kea: '',
|
'sms': {
|
||||||
asa: {
|
'one': 'n = 1',
|
||||||
one: 'n is 1'
|
'two': 'n = 2'
|
||||||
},
|
},
|
||||||
cgg: {
|
'sr': {
|
||||||
one: 'n is 1'
|
'one': 'v = 0 and i % 10 = 1 and i % 100 != 11 or f % 10 = 1 and f % 100 != 11',
|
||||||
|
'few': 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14 or f % 10 = 2..4 and f % 100 != 12..14'
|
||||||
},
|
},
|
||||||
br: {
|
'ti': {
|
||||||
few: 'n mod 10 in 3..4,9 and n mod 100 not in 10..19,70..79,90..99',
|
'one': 'n = 0..1'
|
||||||
many: 'n mod 1000000 is 0 and n is not 0',
|
|
||||||
two: 'n mod 10 is 2 and n mod 100 not in 12,72,92',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 not in 11,71,91'
|
|
||||||
},
|
},
|
||||||
bs: {
|
'tl': {
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
'one': 'i = 0..1 and v = 0'
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
},
|
||||||
ja: '',
|
'tzm': {
|
||||||
om: {
|
'one': 'n = 0..1 or n = 11..99'
|
||||||
one: 'n is 1'
|
|
||||||
},
|
},
|
||||||
fa: '',
|
'uk': {
|
||||||
vun: {
|
'one': 'v = 0 and i % 10 = 1 and i % 100 != 11',
|
||||||
one: 'n is 1'
|
'few': 'v = 0 and i % 10 = 2..4 and i % 100 != 12..14',
|
||||||
|
'many': 'v = 0 and i % 10 = 0 or v = 0 and i % 10 = 5..9 or v = 0 and i % 100 = 11..14'
|
||||||
},
|
},
|
||||||
or: {
|
'wa': {
|
||||||
one: 'n is 1'
|
'one': 'n = 0..1'
|
||||||
},
|
},
|
||||||
xh: {
|
'zu': {
|
||||||
one: 'n is 1'
|
'one': 'i = 0 or n = 1'
|
||||||
},
|
|
||||||
nso: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
ca: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
cy: {
|
|
||||||
few: 'n is 3',
|
|
||||||
zero: 'n is 0',
|
|
||||||
many: 'n is 6',
|
|
||||||
two: 'n is 2',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
cs: {
|
|
||||||
few: 'n in 2..4',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
zh: '',
|
|
||||||
lv: {
|
|
||||||
zero: 'n is 0',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
|
||||||
pt: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
wae: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
tl: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
chr: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
pa: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ak: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
pl: {
|
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
|
||||||
many: 'n is not 1 and n mod 10 in 0..1 or n mod 10 in 5..9 or n mod 100 in 12..14',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
hr: {
|
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
|
||||||
am: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
ti: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
hu: '',
|
|
||||||
hi: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
jmc: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ha: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
he: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
mg: {
|
|
||||||
one: 'n in 0..1'
|
|
||||||
},
|
|
||||||
fur: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
bem: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ml: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
mo: {
|
|
||||||
few: 'n is 0 OR n is not 1 AND n mod 100 in 1..19',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
mn: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
mk: {
|
|
||||||
one: 'n mod 10 is 1 and n is not 11'
|
|
||||||
},
|
|
||||||
ur: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
bez: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
mt: {
|
|
||||||
few: 'n is 0 or n mod 100 in 2..10',
|
|
||||||
many: 'n mod 100 in 11..19',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
uk: {
|
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
|
||||||
mr: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ta: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
my: '',
|
|
||||||
sah: '',
|
|
||||||
ve: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
af: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
vi: '',
|
|
||||||
is: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
iu: {
|
|
||||||
two: 'n is 2',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
it: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
kn: '',
|
|
||||||
ii: '',
|
|
||||||
ar: {
|
|
||||||
few: 'n mod 100 in 3..10',
|
|
||||||
zero: 'n is 0',
|
|
||||||
many: 'n mod 100 in 11..99',
|
|
||||||
two: 'n is 2',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
zu: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
saq: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
az: '',
|
|
||||||
tzm: {
|
|
||||||
one: 'n in 0..1 or n in 11..99'
|
|
||||||
},
|
|
||||||
id: '',
|
|
||||||
ig: '',
|
|
||||||
pap: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
nl: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
nn: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
no: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
nah: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
nd: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ne: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ny: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
naq: {
|
|
||||||
two: 'n is 2',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
nyn: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
kw: {
|
|
||||||
two: 'n is 2',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
nr: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
tig: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
kab: {
|
|
||||||
one: 'n within 0..2 and n is not 2'
|
|
||||||
},
|
|
||||||
mas: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
rwk: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
kaj: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
lag: {
|
|
||||||
zero: 'n is 0',
|
|
||||||
one: 'n within 0..2 and n is not 0 and n is not 2'
|
|
||||||
},
|
|
||||||
syr: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
kk: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ff: {
|
|
||||||
one: 'n within 0..2 and n is not 2'
|
|
||||||
},
|
|
||||||
fi: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
fo: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ka: '',
|
|
||||||
gsw: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ckb: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ss: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sr: {
|
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
|
||||||
sq: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sw: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sv: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
km: '',
|
|
||||||
st: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sk: {
|
|
||||||
few: 'n in 2..4',
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sh: {
|
|
||||||
few: 'n mod 10 in 2..4 and n mod 100 not in 12..14',
|
|
||||||
many: 'n mod 10 is 0 or n mod 10 in 5..9 or n mod 100 in 11..14',
|
|
||||||
one: 'n mod 10 is 1 and n mod 100 is not 11'
|
|
||||||
},
|
|
||||||
so: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sn: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
ku: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
sl: {
|
|
||||||
few: 'n mod 100 in 3..4',
|
|
||||||
two: 'n mod 100 is 2',
|
|
||||||
one: 'n mod 100 is 1'
|
|
||||||
},
|
|
||||||
sg: '',
|
|
||||||
nb: {
|
|
||||||
one: 'n is 1'
|
|
||||||
},
|
|
||||||
se: {
|
|
||||||
two: 'n is 2',
|
|
||||||
one: 'n is 1'
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Plural form transformations, needed for some languages.
|
* Plural form transformations, needed for some languages.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -83,12 +83,17 @@
|
|||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set messages
|
* Set messages to the given locale.
|
||||||
|
* If locale exists, add messages to the locale.
|
||||||
* @param locale
|
* @param locale
|
||||||
* @param messages
|
* @param messages
|
||||||
*/
|
*/
|
||||||
set: function( locale, messages ) {
|
set: function( locale, messages ) {
|
||||||
|
if ( !this.messages[locale] ) {
|
||||||
this.messages[locale] = messages;
|
this.messages[locale] = messages;
|
||||||
|
} else {
|
||||||
|
this.messages[locale] = $.extend( this.messages[locale], messages );
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -102,10 +107,19 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
function jsonMessageLoader( url ) {
|
function jsonMessageLoader( url ) {
|
||||||
return $.getJSON( url ).fail( function ( jqxhr, settings, exception ) {
|
var deferred = $.Deferred();
|
||||||
|
|
||||||
|
$.getJSON( url )
|
||||||
|
.done( deferred.resolve )
|
||||||
|
.fail( function ( jqxhr, settings, exception ) {
|
||||||
$.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception );
|
$.i18n.log( 'Error in loading messages from ' + url + ' Exception: ' + exception );
|
||||||
|
// Ignore 404 exception, because we are handling fallabacks explicitly
|
||||||
|
deferred.resolve();
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
return deferred.promise();
|
||||||
}
|
}
|
||||||
|
|
||||||
$.extend( $.i18n.messageStore, new MessageStore() );
|
$.extend( $.i18n.messageStore, new MessageStore() );
|
||||||
Reference in New Issue
Block a user