mirror of
https://github.com/makeplane/plane.git
synced 2026-07-13 14:01:45 +02:00
[WEB-4166] improvement: update logic to merge extended translations (#3283)
This commit is contained in:
@@ -31,6 +31,7 @@ export const SUPPORTED_LANGUAGES: ILanguageOption[] = [
|
||||
export enum ETranslationFiles {
|
||||
TRANSLATIONS = "translations",
|
||||
ACCESSIBILITY = "accessibility",
|
||||
TRANSLATIONS_EXTENDED = "translations-extended",
|
||||
}
|
||||
|
||||
export const LANGUAGE_STORAGE_KEY = "userLanguage";
|
||||
|
||||
@@ -117,18 +117,10 @@ export class TranslationStore {
|
||||
if (this.loadedLanguages.has(language)) return;
|
||||
|
||||
try {
|
||||
const [translations, translationsExtended] = await Promise.all([
|
||||
this.importLanguageFile(language),
|
||||
this.importLanguageFileExtended(language),
|
||||
]);
|
||||
const translations = await this.importLanguageFile(language);
|
||||
runInAction(() => {
|
||||
// Use lodash merge for deep merging
|
||||
this.translations[language] = merge(
|
||||
{},
|
||||
this.coreTranslations[language] || {},
|
||||
translations.default,
|
||||
translationsExtended.default
|
||||
);
|
||||
this.translations[language] = merge({}, this.coreTranslations[language] || {}, translations.default);
|
||||
// Add to loaded languages
|
||||
this.loadedLanguages.add(language);
|
||||
// Clear cache
|
||||
@@ -167,56 +159,6 @@ export class TranslationStore {
|
||||
return this.importAndMergeFiles(language, files);
|
||||
}
|
||||
|
||||
/**
|
||||
* Imports the extended translations for the given language
|
||||
* @param language - The language to import the translations for
|
||||
* @returns {Promise<any>}
|
||||
*/
|
||||
private importLanguageFileExtended(language: TLanguage): Promise<any> {
|
||||
switch (language) {
|
||||
case "en":
|
||||
return import("../locales/en/translations-extended.json");
|
||||
case "fr":
|
||||
return import("../locales/fr/translations-extended.json");
|
||||
case "es":
|
||||
return import("../locales/es/translations-extended.json");
|
||||
case "ja":
|
||||
return import("../locales/ja/translations-extended.json");
|
||||
case "zh-CN":
|
||||
return import("../locales/zh-CN/translations-extended.json");
|
||||
case "zh-TW":
|
||||
return import("../locales/zh-TW/translations-extended.json");
|
||||
case "ru":
|
||||
return import("../locales/ru/translations-extended.json");
|
||||
case "it":
|
||||
return import("../locales/it/translations-extended.json");
|
||||
case "cs":
|
||||
return import("../locales/cs/translations-extended.json");
|
||||
case "sk":
|
||||
return import("../locales/sk/translations-extended.json");
|
||||
case "de":
|
||||
return import("../locales/de/translations-extended.json");
|
||||
case "ua":
|
||||
return import("../locales/ua/translations-extended.json");
|
||||
case "pl":
|
||||
return import("../locales/pl/translations-extended.json");
|
||||
case "ko":
|
||||
return import("../locales/ko/translations-extended.json");
|
||||
case "id":
|
||||
return import("../locales/id/translations-extended.json");
|
||||
case "ro":
|
||||
return import("../locales/ro/translations-extended.json");
|
||||
case "pt-BR":
|
||||
return import("../locales/pt-BR/translations-extended.json");
|
||||
case "vi-VN":
|
||||
return import("../locales/vi-VN/translations-extended.json");
|
||||
case "tr-TR":
|
||||
return import("../locales/tr-TR/translations-extended.json");
|
||||
default:
|
||||
throw new Error(`Unsupported language: ${language}`);
|
||||
}
|
||||
}
|
||||
|
||||
/** Checks if the language is valid based on the supported languages */
|
||||
private isValidLanguage(lang: string | null): lang is TLanguage {
|
||||
return lang !== null && this.availableLanguages.some((l) => l.value === lang);
|
||||
|
||||
Reference in New Issue
Block a user