From d61f1f7689f2081f79ed11f9495f7c2baf8fb1d2 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 2 Mar 2021 16:11:00 +0100 Subject: [PATCH] Introduce custom plural rules And enable gd locale Signed-off-by: Thomas Citharel --- js/src/i18n/langs.json | 6 +++--- js/src/i18n/pluralRules/gd.ts | 11 +++++++++++ js/src/i18n/pluralRules/index.ts | 5 +++++ js/src/utils/i18n.ts | 2 ++ 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 js/src/i18n/pluralRules/gd.ts create mode 100644 js/src/i18n/pluralRules/index.ts diff --git a/js/src/i18n/langs.json b/js/src/i18n/langs.json index 072a8e82..d38d4bc6 100644 --- a/js/src/i18n/langs.json +++ b/js/src/i18n/langs.json @@ -3,7 +3,6 @@ "be": "Беларуская мова", "bn": "বাংলা", "ca": "Català", - "cs": "čeština", "de": "Deutsch", "en": "English", "eo": "Esperanto", @@ -11,6 +10,7 @@ "eu": "Euskara", "fi": "suomi", "fr": "Français", + "gd": "Gàidhlig", "gl": "Galego", "hu": "Magyar", "it": "Italiano", @@ -22,7 +22,7 @@ "pl": "Polski", "pt": "Português", "pt_BR": "Português brasileiro", - "ru": "Русский", "sl": "Slovenščina", - "sv": "Svenska" + "sv": "Svenska", + "zh_Hant": "繁體字" } diff --git a/js/src/i18n/pluralRules/gd.ts b/js/src/i18n/pluralRules/gd.ts new file mode 100644 index 00000000..5f573007 --- /dev/null +++ b/js/src/i18n/pluralRules/gd.ts @@ -0,0 +1,11 @@ +export default function (choice: number): number { + if (choice === 1 || choice === 11) { + return 0; + } + + if (choice === 2 || choice === 12) { + return 1; + } + + return choice > 0 && choice < 20 ? 2 : 3; +} diff --git a/js/src/i18n/pluralRules/index.ts b/js/src/i18n/pluralRules/index.ts new file mode 100644 index 00000000..d5536b9b --- /dev/null +++ b/js/src/i18n/pluralRules/index.ts @@ -0,0 +1,5 @@ +import gd from "./gd"; + +export default { + gd, +}; diff --git a/js/src/utils/i18n.ts b/js/src/utils/i18n.ts index b4aaaf9e..5e2231c0 100644 --- a/js/src/utils/i18n.ts +++ b/js/src/utils/i18n.ts @@ -4,6 +4,7 @@ import { DateFnsPlugin } from "@/plugins/dateFns"; import en from "../i18n/en_US.json"; import langs from "../i18n/langs.json"; import { getLocaleData } from "./auth"; +import pluralizationRules from "../i18n/pluralRules"; const DEFAULT_LOCALE = "en_US"; @@ -31,6 +32,7 @@ export const i18n = new VueI18n({ messages: en, // set locale messages fallbackLocale: DEFAULT_LOCALE, formatFallbackMessages: true, + pluralizationRules, }); const loadedLanguages = [DEFAULT_LOCALE];