From e4b84c7ba5bc4fa92f97aa8853d07931e460f87a Mon Sep 17 00:00:00 2001 From: Koala Yeung Date: Sun, 7 May 2017 22:39:37 +0800 Subject: [PATCH] locale: add Occitan locale-data for js (#2845) Translation works by @Quent-in. --- .../mastodon/containers/mastodon.js | 2 + .../mastodon/locales/locale-data/README.md | 129 ++++++++++++++++++ .../mastodon/locales/locale-data/oc.js | 112 +++++++++++++++ 3 files changed, 243 insertions(+) create mode 100644 app/javascript/mastodon/locales/locale-data/README.md create mode 100644 app/javascript/mastodon/locales/locale-data/oc.js diff --git a/app/javascript/mastodon/containers/mastodon.js b/app/javascript/mastodon/containers/mastodon.js index 2563c00cfd2..c21e84d9cb0 100644 --- a/app/javascript/mastodon/containers/mastodon.js +++ b/app/javascript/mastodon/containers/mastodon.js @@ -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, diff --git a/app/javascript/mastodon/locales/locale-data/README.md b/app/javascript/mastodon/locales/locale-data/README.md new file mode 100644 index 00000000000..7280784d81c --- /dev/null +++ b/app/javascript/mastodon/locales/locale-data/README.md @@ -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" + } + } + } + } + } +] + +``` diff --git a/app/javascript/mastodon/locales/locale-data/oc.js b/app/javascript/mastodon/locales/locale-data/oc.js new file mode 100644 index 00000000000..83b1b7412d2 --- /dev/null +++ b/app/javascript/mastodon/locales/locale-data/oc.js @@ -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" + } + } + } + } +}]