feat: add Farsi (fa) locale support

Add comprehensive Farsi translation for the webmail interface:
- Create locales/fa/common.json with Farsi translations
- Register 'fa' locale in i18n/routing.ts and i18n/request.ts
- Add Iran flag component (FlagIR) to flag-icons.tsx
- Add ف��رسی to language switcher dropdown
- Add Farsi language name to English locale for language selector

Translation covers login, sidebar, email viewer, composer, settings,
notifications, calendar, contacts, errors, shortcuts, and more.
This commit is contained in:
hamedf62
2026-06-24 16:34:27 +02:00
committed by Linus Rath
parent 5f713a033b
commit cc20d29636
6 changed files with 3210 additions and 2 deletions
+13
View File
@@ -233,6 +233,18 @@ export function FlagRO(props: FlagProps) {
);
}
/** Iran Green, White, Red horizontal with emblem (simplified) */
export function FlagIR(props: FlagProps) {
return (
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 4 3" width={W} height={H} className={flagClass} {...props}>
<rect width="4" height="1" fill="#239F40" />
<rect y="1" width="4" height="1" fill="#fff" />
<rect y="2" width="4" height="1" fill="#DA0000" />
<circle cx="2" cy="1.5" r="0.3" fill="#DA0000" />
</svg>
);
}
/** Map locale codes to flag components */
export const flagComponents: Record<string, (props: FlagProps) => ReactElement> = {
cs: FlagCS,
@@ -254,4 +266,5 @@ export const flagComponents: Record<string, (props: FlagProps) => ReactElement>
tr: FlagTR,
uk: FlagUA,
zh: FlagCN,
fa: FlagIR,
};
+1
View File
@@ -12,6 +12,7 @@ const languages = [
{ value: 'da', label: 'Dansk' },
{ value: 'de', label: 'Deutsch' },
{ value: 'en', label: 'English' },
{ value: 'fa', label: 'فارسی' },
{ value: 'es', label: 'Español' },
{ value: 'fr', label: 'Français' },
{ value: 'it', label: 'Italiano' },