feat: add Italian language translation support (#11844)

### What problem does this PR solve?

- Add complete Italian translation file with all UI sections
- Register Italian in LanguageAbbreviation enum and language maps
- Configure Italian translation in i18n config
- Add Italiano to language selector dropdown


### Type of change

- [x] Other (please describe):

## What
Added complete Italian language translation support to RAGFlow

## Changes
- Added comprehensive Italian translation file
([it.ts](ragflow/web/src/locales/it.ts:0:0-0:0)) with all UI sections
(1239 lines)
- Registered Italian in `LanguageAbbreviation` enum and all language
maps
- Configured Italian translation in i18n configuration
- Added "Italiano" to language selector dropdown

## Impact
- Italian users can now use RAGFlow in their native language
- All major UI components are translated including:
  - Login/registration screens
  - Knowledge base management
  - Chat interface
  - Settings and configuration
  - Admin console
  - Error messages and notifications

## Testing
- Verified all translation keys are present
- Confirmed language selector shows "Italiano" correctly
- Tested that no translation keys are missing
- All UI sections properly translated

Co-authored-by: PentaFrame <info@pentaframe.it>
This commit is contained in:
PentaFDevs
2025-12-09 10:59:21 +01:00
committed by GitHub
parent 036b29f084
commit 07dca37ef0
3 changed files with 1239 additions and 0 deletions

View File

@ -51,6 +51,7 @@ export const LanguageList = [
'Portuguese BR', 'Portuguese BR',
'German', 'German',
'French', 'French',
'Italian',
]; ];
export const LanguageMap = { export const LanguageMap = {
English: 'English', English: 'English',
@ -64,6 +65,7 @@ export const LanguageMap = {
'Portuguese BR': 'Português BR', 'Portuguese BR': 'Português BR',
German: 'German', German: 'German',
French: 'Français', French: 'Français',
Italian: 'Italiano',
}; };
export enum LanguageAbbreviation { export enum LanguageAbbreviation {
@ -78,6 +80,7 @@ export enum LanguageAbbreviation {
PtBr = 'pt-BR', PtBr = 'pt-BR',
De = 'de', De = 'de',
Fr = 'fr', Fr = 'fr',
It = 'it',
} }
export const LanguageAbbreviationMap = { export const LanguageAbbreviationMap = {
@ -92,6 +95,7 @@ export const LanguageAbbreviationMap = {
[LanguageAbbreviation.PtBr]: 'Português BR', [LanguageAbbreviation.PtBr]: 'Português BR',
[LanguageAbbreviation.De]: 'Deutsch', [LanguageAbbreviation.De]: 'Deutsch',
[LanguageAbbreviation.Fr]: 'Français', [LanguageAbbreviation.Fr]: 'Français',
[LanguageAbbreviation.It]: 'Italiano',
}; };
export const LanguageTranslationMap = { export const LanguageTranslationMap = {
@ -106,6 +110,7 @@ export const LanguageTranslationMap = {
'Portuguese BR': 'pt-br', 'Portuguese BR': 'pt-br',
German: 'de', German: 'de',
French: 'fr', French: 'fr',
Italian: 'it',
}; };
export enum FileMimeType { export enum FileMimeType {

View File

@ -8,6 +8,7 @@ import translation_en from './en';
import translation_es from './es'; import translation_es from './es';
import translation_fr from './fr'; import translation_fr from './fr';
import translation_id from './id'; import translation_id from './id';
import translation_it from './it';
import translation_ja from './ja'; import translation_ja from './ja';
import translation_pt_br from './pt-br'; import translation_pt_br from './pt-br';
import translation_ru from './ru'; import translation_ru from './ru';
@ -28,6 +29,7 @@ const resources = {
[LanguageAbbreviation.PtBr]: translation_pt_br, [LanguageAbbreviation.PtBr]: translation_pt_br,
[LanguageAbbreviation.De]: translation_de, [LanguageAbbreviation.De]: translation_de,
[LanguageAbbreviation.Fr]: translation_fr, [LanguageAbbreviation.Fr]: translation_fr,
[LanguageAbbreviation.It]: translation_it,
}; };
const enFlattened = flattenObject(translation_en); const enFlattened = flattenObject(translation_en);
const viFlattened = flattenObject(translation_vi); const viFlattened = flattenObject(translation_vi);
@ -39,6 +41,7 @@ const pt_brFlattened = flattenObject(translation_pt_br);
const zh_traditionalFlattened = flattenObject(translation_zh_traditional); const zh_traditionalFlattened = flattenObject(translation_zh_traditional);
const deFlattened = flattenObject(translation_de); const deFlattened = flattenObject(translation_de);
const frFlattened = flattenObject(translation_fr); const frFlattened = flattenObject(translation_fr);
const itFlattened = flattenObject(translation_it);
export const translationTable = createTranslationTable( export const translationTable = createTranslationTable(
[ [
enFlattened, enFlattened,
@ -51,6 +54,7 @@ export const translationTable = createTranslationTable(
pt_brFlattened, pt_brFlattened,
deFlattened, deFlattened,
frFlattened, frFlattened,
itFlattened,
], ],
[ [
'English', 'English',
@ -63,6 +67,7 @@ export const translationTable = createTranslationTable(
'pt-BR', 'pt-BR',
'Deutsch', 'Deutsch',
'French', 'French',
'Italian',
], ],
); );
i18n i18n

1229
web/src/locales/it.ts Normal file

File diff suppressed because it is too large Load Diff