Doceditor: fix i18n instance

This commit is contained in:
Timofey Boyko 2024-02-22 14:14:56 +03:00
parent ba36156387
commit 69f2903a4f
6 changed files with 94 additions and 93 deletions

View File

@ -100,7 +100,7 @@ const Root = ({
} = useSelectFileDialog({ instanceId: instanceId ?? "" });
return (
<I18nextProvider i18n={i18n}>
// <I18nextProvider i18n={i18n}>
<ThemeProvider theme={theme} currentColorScheme={currentColorTheme}>
<ErrorBoundary
user={user ?? ({} as TUser)}
@ -158,7 +158,6 @@ const Root = ({
titleSelectorFolder={titleSelectorFolderDialog}
fileInfo={fileInfo ?? ({} as TFile)}
getIsDisabled={getIsDisabledSelectFolderDialog}
t={t}
i18n={i18n}
/>
)}
@ -171,7 +170,6 @@ const Root = ({
getIsDisabled={getIsDisabledSelectFileDialog}
fileTypeDetection={selectFileDialogFileTypeDetection}
fileInfo={fileInfo ?? ({} as TFile)}
t={t}
i18n={i18n}
/>
)}
@ -179,7 +177,7 @@ const Root = ({
)}
</ErrorBoundary>
</ThemeProvider>
</I18nextProvider>
// </I18nextProvider>
);
};

View File

@ -1,4 +1,5 @@
import React from "react";
import { useTranslation } from "react-i18next";
import FilesSelectorWrapper from "@docspace/shared/selectors/Files/FilesSelector.wrapper";
@ -14,9 +15,11 @@ const SelectFileDialog = ({
onClose,
onSubmit,
fileInfo,
t,
i18n,
}: SelectFileDialogProps) => {
const { t } = useTranslation();
const sessionPath = sessionStorage.getItem("filesSelectorPath");
const headerLabel = fileTypeDetection.filterParam

View File

@ -17,9 +17,10 @@ const SelectFolderDialog = ({
titleSelectorFolder,
fileInfo,
getIsDisabled,
t,
i18n,
}: SelectFolderDialogProps) => {
const { t } = useTranslation();
const sessionPath = sessionStorage.getItem("filesSelectorPath");
const cancelButtonProps: TSelectorCancelButton = {

View File

@ -21,16 +21,16 @@ const useI18N = ({ settings, user }: UseI18NProps) => {
}, [settings?.timezone]);
React.useEffect(() => {
if (isInit.current || !user?.cultureName || !settings?.culture) return;
if (isInit.current || (!user?.cultureName && !settings?.culture)) return;
isInit.current = true;
const instance = getI18NInstance(
user.cultureName || "en",
settings.culture,
user?.cultureName ?? "en",
settings?.culture ?? "en",
);
setI18N(instance);
if (instance) setI18N(instance);
}, [settings?.culture, user?.cultureName]);
return { i18n };

View File

@ -238,7 +238,7 @@ export interface SelectFolderDialogProps {
selectedFileInfo: TSelectedFileInfo,
) => Promise<void>;
fileInfo: TFile;
t: TTranslation | null;
i18n: i18n;
}
@ -274,7 +274,7 @@ export interface SelectFileDialogProps {
selectedFileInfo: TSelectedFileInfo,
) => Promise<void>;
fileInfo: TFile;
t: TTranslation | null;
i18n: i18n;
}

View File

@ -8,13 +8,13 @@ import { getLtrLanguageForEditor } from "@docspace/shared/utils/common";
import { translations } from "./autoGeneratedTranslations";
export const getI18NInstance = (lng: string, portalLng: string) => {
const newInstance = i18n.createInstance();
if (typeof window === "undefined") return;
const currentLng = getLtrLanguageForEditor(lng, portalLng, true);
// const cultures = config.web.cultures.split(",");
newInstance.use(initReactI18next).init({
i18n.use(initReactI18next).init({
lng: currentLng,
fallbackLng: "en",
load: "currentOnly",
@ -35,14 +35,13 @@ export const getI18NInstance = (lng: string, portalLng: string) => {
react: {
useSuspense: false,
},
resources: {},
});
Array.from(translations).forEach(([lng, nsList]) => {
Array.from(nsList).forEach(([ns, obj]) => {
newInstance.addResourceBundle(lng, ns, obj, true, true);
i18n.addResourceBundle(lng, ns, obj, true, true);
});
});
return newInstance;
return i18n;
};