mirror of
https://github.com/infiniflow/ragflow.git
synced 2025-12-21 21:36:42 +08:00
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:
@ -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 {
|
||||||
|
|||||||
@ -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
1229
web/src/locales/it.ts
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user