mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-18 09:20:15 +01:00
🌎 i18n: React-i18next & i18next Integration (#5720)
* 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>
This commit is contained in:
parent
2e8d969e35
commit
aae413cc71
153 changed files with 13448 additions and 38224 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import { useLocalize } from '~/hooks';
|
||||
import { TranslationKeys, useLocalize } from '~/hooks';
|
||||
import { BlinkAnimation } from './BlinkAnimation';
|
||||
import { TStartupConfig } from 'librechat-data-provider';
|
||||
import SocialLoginRender from './SocialLoginRender';
|
||||
|
|
@ -33,7 +33,7 @@ function AuthLayout({
|
|||
startupConfig: TStartupConfig | null | undefined;
|
||||
startupConfigError: unknown | null | undefined;
|
||||
pathname: string;
|
||||
error: string | null;
|
||||
error: TranslationKeys | null;
|
||||
}) {
|
||||
const localize = useLocalize();
|
||||
|
||||
|
|
@ -65,7 +65,7 @@ function AuthLayout({
|
|||
<img
|
||||
src="/assets/logo.svg"
|
||||
className="h-full w-full object-contain"
|
||||
alt={localize('com_ui_logo', startupConfig?.appTitle ?? 'LibreChat')}
|
||||
alt={localize('com_ui_logo', { 0: startupConfig?.appTitle ?? 'LibreChat' })}
|
||||
/>
|
||||
</div>
|
||||
</BlinkAnimation>
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import type { TRegisterUser, TError } from 'librechat-data-provider';
|
|||
import type { TLoginLayoutContext } from '~/common';
|
||||
import { ErrorMessage } from './ErrorMessage';
|
||||
import { Spinner } from '~/components/svg';
|
||||
import { useLocalize } from '~/hooks';
|
||||
import { useLocalize, TranslationKeys } from '~/hooks';
|
||||
|
||||
const Registration: React.FC = () => {
|
||||
const navigate = useNavigate();
|
||||
|
|
@ -56,7 +56,7 @@ const Registration: React.FC = () => {
|
|||
},
|
||||
});
|
||||
|
||||
const renderInput = (id: string, label: string, type: string, validation: object) => (
|
||||
const renderInput = (id: string, label: TranslationKeys, type: string, validation: object) => (
|
||||
<div className="mb-4">
|
||||
<div className="relative">
|
||||
<input
|
||||
|
|
@ -114,7 +114,7 @@ const Registration: React.FC = () => {
|
|||
: 'com_auth_registration_success_insecure',
|
||||
) +
|
||||
' ' +
|
||||
localize('com_auth_email_verification_redirecting', countdown.toString())}
|
||||
localize('com_auth_email_verification_redirecting', { 0: countdown.toString() })}
|
||||
</div>
|
||||
)}
|
||||
{!startupConfigError && !isFetching && (
|
||||
|
|
|
|||
|
|
@ -84,7 +84,7 @@ function RequestPasswordReset() {
|
|||
</h1>
|
||||
{countdown > 0 && (
|
||||
<p className="text-center text-lg text-gray-600 dark:text-gray-400">
|
||||
{localize('com_auth_email_verification_redirecting', countdown.toString())}
|
||||
{localize('com_auth_email_verification_redirecting', { 0: countdown.toString() })}
|
||||
</p>
|
||||
)}
|
||||
{showResendLink && countdown === 0 && (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue