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];