* better i18n support an internationalization-framework. * removed unused package * auto sort for translation.json * fixed tests with the new locales function * added new CI actions from locize * to use locize a mention in the README.md * to use locize a mention in the README.md * updated README.md and added TRANSLATION.md to the repo * updated TRANSLATION.md badges * updated README.md to go to the TRANSLATION.md when clicking on the Translation Progress badge * updated TRANSLATION.md and added a new issue template. * updated TRANSLATION.md and added a new issue template. * updated issue template to add the iso code link. * updated the new GitHub actions for `locize` * updated label for new issue template --> i18n * fixed type issue * Fix eslint * Fix eslint with key-spacing spacing * fix: error type * fix: handle undefined values in SortFilterHeader component * fix: typing in Image component * fix: handle optional promptGroup in PromptCard component * fix: update localize function to accept string type and remove unnecessary JSX element * fix: update localize function to enforce TranslationKeys type for better type safety * fix: improve type safety and handle null values in Assistants component * fix: enhance null checks for fileId in FilesListView component * fix: localize 'Go back' button text in FilesListView component * fix: update aria-label for menu buttons and add translation for 'Close Menu' * docs: add Reasoning UI section for Chain-of-Thought AI models in README * fix: enhance type safety by adding type for message in MultiMessage component * fix: improve null checks and optional chaining in useAutoSave hook * fix: improve handling of optional properties in cleanupPreset function * fix: ensure isFetchingNextPage defaults to false and improve null checks for messages in Search component * fix: enhance type safety and null checks in useBuildMessageTree hook --------- Co-authored-by: Danny Avila <danny@librechat.ai>
63 lines
2.2 KiB
TypeScript
63 lines
2.2 KiB
TypeScript
import i18n from 'i18next';
|
|
import { initReactI18next } from 'react-i18next';
|
|
|
|
// Import your JSON translations
|
|
import translationEn from './en/translation.json';
|
|
import translationAr from './ar/translation.json';
|
|
import translationZh from './zh/translation.json';
|
|
import translationDe from './de/translation.json';
|
|
import translationEs from './es/translation.json';
|
|
import translationFr from './fr/translation.json';
|
|
import translationIt from './it/translation.json';
|
|
import translationPl from './pl/translation.json';
|
|
import translationPt from './pt/translation.json';
|
|
import translationRu from './ru/translation.json';
|
|
import translationJa from './ja/translation.json';
|
|
import translationSv from './sv/translation.json';
|
|
import translationKo from './ko/translation.json';
|
|
import translationZh_Hant from './zh-Hant/translation.json';
|
|
import translationVi from './vi/translation.json';
|
|
import translationTr from './tr/translation.json';
|
|
import translationNl from './nl/translation.json';
|
|
import translationId from './id/translation.json';
|
|
import translationHe from './he/translation.json';
|
|
import translationFi from './fi/translation.json';
|
|
|
|
export const defaultNS = 'translation';
|
|
|
|
export const resources = {
|
|
en: { translation: translationEn },
|
|
ar: { translation: translationAr },
|
|
zh: { translation: translationZh },
|
|
de: { translation: translationDe },
|
|
es: { translation: translationEs },
|
|
fr: { translation: translationFr },
|
|
it: { translation: translationIt },
|
|
pl: { translation: translationPl },
|
|
pt: { translation: translationPt },
|
|
ru: { translation: translationRu },
|
|
ja: { translation: translationJa },
|
|
sv: { translation: translationSv },
|
|
ko: { translation: translationKo },
|
|
'zh-Hant': { translation: translationZh_Hant },
|
|
vi: { translation: translationVi },
|
|
tr: { translation: translationTr },
|
|
nl: { translation: translationNl },
|
|
id: { translation: translationId },
|
|
he: { translation: translationHe },
|
|
fi: { translation: translationFi },
|
|
} as const;
|
|
|
|
i18n
|
|
.use(initReactI18next)
|
|
.init({
|
|
fallbackLng: 'en',
|
|
ns: ['translation'],
|
|
defaultNS,
|
|
resources,
|
|
interpolation: { escapeValue: false },
|
|
// Return an empty string for missing keys rather than the key itself
|
|
parseMissingKeyHandler: () => '',
|
|
});
|
|
|
|
export default i18n; |