@@ -60,6 +60,7 @@ import it from 'react-intl/locale-data/it'; | |||
import ja from 'react-intl/locale-data/ja'; | |||
import nl from 'react-intl/locale-data/nl'; | |||
import no from 'react-intl/locale-data/no'; | |||
import oc from '../locales/locale-data/oc'; | |||
import pt from 'react-intl/locale-data/pt'; | |||
import ru from 'react-intl/locale-data/ru'; | |||
import uk from 'react-intl/locale-data/uk'; | |||
@@ -95,6 +96,7 @@ addLocaleData([ | |||
...ja, | |||
...nl, | |||
...no, | |||
...oc, | |||
...pt, | |||
...ru, | |||
...uk, | |||
@@ -0,0 +1,129 @@ | |||
# Custom Locale Data | |||
This folder is used to store custom locale data. These custom locale data are | |||
not yet provided by [Unicode Common Locale Data Repository](http://cldr.unicode.org/development/new-cldr-developers) | |||
and hence not provided in [react-intl/locale-data/*](https://github.com/yahoo/react-intl). | |||
The locale data should support [Locale Data APIs](https://github.com/yahoo/react-intl/wiki/API#locale-data-apis) | |||
of the react-intl library. | |||
It is recommended to start your custom locale data from this sample English | |||
locale data: | |||
```javascript | |||
/*eslint eqeqeq: "off"*/ | |||
/*eslint no-nested-ternary: "off"*/ | |||
export default [ | |||
{ | |||
locale: "en", | |||
pluralRuleFunction: function(e, a) { | |||
var n = String(e).split("."), | |||
l = !n[1], | |||
o = Number(n[0]) == e, | |||
t = o && n[0].slice(-1), | |||
r = o && n[0].slice(-2); | |||
return a ? 1 == t && 11 != r ? "one" : 2 == t && 12 != r ? "two" : 3 == t && 13 != r ? "few" : "other" : 1 == e && l ? "one" : "other" | |||
}, | |||
fields: { | |||
year: { | |||
displayName: "year", | |||
relative: { | |||
0: "this year", | |||
1: "next year", | |||
"-1": "last year" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "in {0} year", | |||
other: "in {0} years" | |||
}, | |||
past: { | |||
one: "{0} year ago", | |||
other: "{0} years ago" | |||
} | |||
} | |||
}, | |||
month: { | |||
displayName: "month", | |||
relative: { | |||
0: "this month", | |||
1: "next month", | |||
"-1": "last month" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "in {0} month", | |||
other: "in {0} months" | |||
}, | |||
past: { | |||
one: "{0} month ago", | |||
other: "{0} months ago" | |||
} | |||
} | |||
}, | |||
day: { | |||
displayName: "day", | |||
relative: { | |||
0: "today", | |||
1: "tomorrow", | |||
"-1": "yesterday" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "in {0} day", | |||
other: "in {0} days" | |||
}, | |||
past: { | |||
one: "{0} day ago", | |||
other: "{0} days ago" | |||
} | |||
} | |||
}, | |||
hour: { | |||
displayName: "hour", | |||
relativeTime: { | |||
future: { | |||
one: "in {0} hour", | |||
other: "in {0} hours" | |||
}, | |||
past: { | |||
one: "{0} hour ago", | |||
other: "{0} hours ago" | |||
} | |||
} | |||
}, | |||
minute: { | |||
displayName: "minute", | |||
relativeTime: { | |||
future: { | |||
one: "in {0} minute", | |||
other: "in {0} minutes" | |||
}, | |||
past: { | |||
one: "{0} minute ago", | |||
other: "{0} minutes ago" | |||
} | |||
} | |||
}, | |||
second: { | |||
displayName: "second", | |||
relative: { | |||
0: "now" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "in {0} second", | |||
other: "in {0} seconds" | |||
}, | |||
past: { | |||
one: "{0} second ago", | |||
other: "{0} seconds ago" | |||
} | |||
} | |||
} | |||
} | |||
} | |||
] | |||
``` |
@@ -0,0 +1,112 @@ | |||
/*eslint eqeqeq: "off"*/ | |||
/*eslint no-nested-ternary: "off"*/ | |||
export default [{ | |||
locale: "oc", | |||
pluralRuleFunction: function(e, a) { | |||
var n = String(e).split("."), | |||
l = !n[1], | |||
o = Number(n[0]) == e, | |||
t = o && n[0].slice(-1), | |||
r = o && n[0].slice(-2); | |||
return a ? 1 == t && 11 != r ? "un" : 2 == t && 12 != r ? "dos" : 3 == t && 13 != r ? "pauc" : "autre" : 1 == e && l ? "un" : "autre" | |||
}, | |||
fields: { | |||
year: { | |||
displayName: "an", | |||
relative: { | |||
0: "ongan", | |||
1: "l'an que ven", | |||
"-1": "l'an passat" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "dins {0} an", | |||
other: "dins {0} ans" | |||
}, | |||
past: { | |||
one: "fa {0} an", | |||
other: "fa {0} ans" | |||
} | |||
} | |||
}, | |||
month: { | |||
displayName: "mes", | |||
relative: { | |||
0: "aqueste mes", | |||
1: "lo mes que ven", | |||
"-1": "lo mes passat" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "dins {0} mes", | |||
other: "dins {0} meses" | |||
}, | |||
past: { | |||
one: "fa {0} mes", | |||
other: "fa {0} meses" | |||
} | |||
} | |||
}, | |||
day: { | |||
displayName: "jorn", | |||
relative: { | |||
0: "uèi", | |||
1: "deman", | |||
"-1": "ièr" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "dins {0} jorn", | |||
other: "dins {0} jorns" | |||
}, | |||
past: { | |||
one: "fa {0} jorn", | |||
other: "fa {0} jorns" | |||
} | |||
} | |||
}, | |||
hour: { | |||
displayName: "ora", | |||
relativeTime: { | |||
future: { | |||
one: "dins {0} ora", | |||
other: "dins {0} oras" | |||
}, | |||
past: { | |||
one: "fa {0} ora", | |||
other: "fa {0} oras" | |||
} | |||
} | |||
}, | |||
minute: { | |||
displayName: "minuta", | |||
relativeTime: { | |||
future: { | |||
one: "dins {0} minuta", | |||
other: "dins {0} minutas" | |||
}, | |||
past: { | |||
one: "fa {0} minuta", | |||
other: "fa {0} minutas" | |||
} | |||
} | |||
}, | |||
second: { | |||
displayName: "segonda", | |||
relative: { | |||
0: "ara" | |||
}, | |||
relativeTime: { | |||
future: { | |||
one: "dins {0} segonda", | |||
other: "dins {0} segondas" | |||
}, | |||
past: { | |||
one: "fa {0} segonda", | |||
other: "fa {0} segondas" | |||
} | |||
} | |||
} | |||
} | |||
}] |