From f380df9c01cd00034cb15646e082b3db393a08df Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sun, 22 Feb 2026 21:35:14 +0200 Subject: [PATCH] feat(i18n): add support for Hindi --- apps/client/src/widgets/collections/calendar/index.tsx | 1 + apps/client/src/widgets/type_widgets/MindMap.tsx | 1 + apps/client/src/widgets/type_widgets/canvas/i18n.spec.ts | 4 ++-- apps/client/src/widgets/type_widgets/canvas/i18n.ts | 1 + packages/ckeditor5/src/i18n.ts | 5 +++++ packages/commons/src/lib/dayjs.ts | 1 + packages/commons/src/lib/i18n.ts | 1 + packages/pdfjs-viewer/scripts/build.ts | 3 ++- 8 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/client/src/widgets/collections/calendar/index.tsx b/apps/client/src/widgets/collections/calendar/index.tsx index 2a389a380d..23f8371125 100644 --- a/apps/client/src/widgets/collections/calendar/index.tsx +++ b/apps/client/src/widgets/collections/calendar/index.tsx @@ -79,6 +79,7 @@ export const LOCALE_MAPPINGS: Record Promise<{ de es: () => import("@fullcalendar/core/locales/es"), fr: () => import("@fullcalendar/core/locales/fr"), it: () => import("@fullcalendar/core/locales/it"), + hi: () => import("@fullcalendar/core/locales/hi"), ga: null, cn: () => import("@fullcalendar/core/locales/zh-cn"), tw: () => import("@fullcalendar/core/locales/zh-tw"), diff --git a/apps/client/src/widgets/type_widgets/MindMap.tsx b/apps/client/src/widgets/type_widgets/MindMap.tsx index 4c2dde2e3c..b55a6e89d6 100644 --- a/apps/client/src/widgets/type_widgets/MindMap.tsx +++ b/apps/client/src/widgets/type_widgets/MindMap.tsx @@ -36,6 +36,7 @@ const LOCALE_MAPPINGS: Record fr: "fr", ga: null, it: "it", + hi: null, ja: "ja", pt: "pt", pl: null, diff --git a/apps/client/src/widgets/type_widgets/canvas/i18n.spec.ts b/apps/client/src/widgets/type_widgets/canvas/i18n.spec.ts index 7a51032134..e7c575a752 100644 --- a/apps/client/src/widgets/type_widgets/canvas/i18n.spec.ts +++ b/apps/client/src/widgets/type_widgets/canvas/i18n.spec.ts @@ -23,8 +23,8 @@ describe("Canvas i18n", () => { if (locale.contentOnly || locale.devOnly) continue; const languageCode = LANGUAGE_MAPPINGS[locale.id]; if (languageCode && !supportedLanguageCodes.has(languageCode)) { - console.log("Supported locales:", Array.from(supportedLanguageCodes.values()).join(", ")); - expect.fail(`Unable to find locale for ${locale.id} -> ${languageCode}.`); + const supportdLocales = Array.from(supportedLanguageCodes.values()).join(", "); + expect.fail(`Unable to find locale for ${locale.id} -> ${languageCode}, supported locales: ${supportdLocales}`); } } }); diff --git a/apps/client/src/widgets/type_widgets/canvas/i18n.ts b/apps/client/src/widgets/type_widgets/canvas/i18n.ts index 924ec48dbe..cfb160167d 100644 --- a/apps/client/src/widgets/type_widgets/canvas/i18n.ts +++ b/apps/client/src/widgets/type_widgets/canvas/i18n.ts @@ -12,6 +12,7 @@ export const LANGUAGE_MAPPINGS: Record = { coreTranslation: () => import("ckeditor5/translations/it.js"), premiumFeaturesTranslation: () => import("ckeditor5-premium-features/translations/it.js"), }, + hi: { + languageCode: "hi", + coreTranslation: () => import("ckeditor5/translations/hi.js"), + premiumFeaturesTranslation: () => import("ckeditor5-premium-features/translations/hi.js"), + }, ja: { languageCode: "ja", coreTranslation: () => import("ckeditor5/translations/ja.js"), diff --git a/packages/commons/src/lib/dayjs.ts b/packages/commons/src/lib/dayjs.ts index 9254230ecc..a12cddcdad 100644 --- a/packages/commons/src/lib/dayjs.ts +++ b/packages/commons/src/lib/dayjs.ts @@ -44,6 +44,7 @@ export const DAYJS_LOADER: Record Promise import("dayjs/locale/ga.js"), "it": () => import("dayjs/locale/it.js"), "he": () => import("dayjs/locale/he.js"), + "hi": () => import("dayjs/locale/hi.js"), "ja": () => import("dayjs/locale/ja.js"), "ku": () => import("dayjs/locale/ku.js"), "pt_br": () => import("dayjs/locale/pt-br.js"), diff --git a/packages/commons/src/lib/i18n.ts b/packages/commons/src/lib/i18n.ts index 4831c3178e..e2cc3231aa 100644 --- a/packages/commons/src/lib/i18n.ts +++ b/packages/commons/src/lib/i18n.ts @@ -21,6 +21,7 @@ const UNSORTED_LOCALES = [ { id: "fr", name: "Français", electronLocale: "fr" }, { id: "ga", name: "Gaeilge", electronLocale: "en" }, { id: "it", name: "Italiano", electronLocale: "it" }, + { id: "hi", name: "हिन्दी", electronLocale: "hi" }, { id: "ja", name: "日本語", electronLocale: "ja" }, { id: "pt_br", name: "Português (Brasil)", electronLocale: "pt_BR" }, { id: "pt", name: "Português (Portugal)", electronLocale: "pt_PT" }, diff --git a/packages/pdfjs-viewer/scripts/build.ts b/packages/pdfjs-viewer/scripts/build.ts index 075bec0b6c..2728013463 100644 --- a/packages/pdfjs-viewer/scripts/build.ts +++ b/packages/pdfjs-viewer/scripts/build.ts @@ -11,7 +11,8 @@ const watchMode = process.argv.includes("--watch"); const LOCALE_MAPPINGS: Record = { "es": "es-ES", - "ga": "ga-IE" + "ga": "ga-IE", + "hi": "hi-IN" }; async function main() {