feat(translations): add French language support and improve localization handling

This commit is contained in:
PiR1
2026-05-09 18:23:11 +02:00
parent fd98a78123
commit a5db4bd46e
12 changed files with 2352 additions and 126 deletions
@@ -46,19 +46,28 @@ const NLFlag: React.FC<{ className?: string }> = ({ className = "w-5 h-5" }) =>
</svg>
);
const languages = [
const FRFlag: React.FC<{ className?: string }> = ({ className = "w-5 h-5" }) => (
<svg className={className} viewBox="0 0 640 480" xmlns="http://www.w3.org/2000/svg">
<path fill="#002395" d="M0 0h213.3v480H0z"/>
<path fill="#fff" d="M213.3 0h213.4v480H213.3z"/>
<path fill="#ED2939" d="M426.7 0H640v480H426.7z"/>
</svg>
);
export const SUPPORTED_LANGUAGES = [
{ code: 'en', name: 'English', Flag: GBFlag },
{ code: 'de', name: 'Deutsch', Flag: DEFlag },
{ code: 'ru', name: 'Русский', Flag: RUFlag },
{ code: 'pt', name: 'Português', Flag: PTBRFlag },
{ code: 'nl', name: 'Nederlands', Flag: NLFlag },
{ code: 'fr', name: 'Français', Flag: FRFlag },
];
export const LanguageSelector: React.FC = () => {
const { i18n } = useTranslation();
const [isOpen, setIsOpen] = React.useState(false);
const currentLanguage = languages.find(lang => lang.code === i18n.language) || languages[0];
const currentLanguage = SUPPORTED_LANGUAGES.find(lang => lang.code === i18n.language) || SUPPORTED_LANGUAGES[0];
const handleLanguageChange = (languageCode: string) => {
i18n.changeLanguage(languageCode);
@@ -78,7 +87,7 @@ export const LanguageSelector: React.FC = () => {
{isOpen && (
<div className="absolute right-0 mt-2 w-48 bg-white dark:bg-neutral-800 rounded-lg shadow-lg border border-neutral-200 dark:border-neutral-700 py-1 z-50">
{languages.map((language) => (
{SUPPORTED_LANGUAGES.map((language) => (
<button
key={language.code}
onClick={() => handleLanguageChange(language.code)}