🐛 fix language switch and add search

This commit is contained in:
Manuel
2022-08-28 16:28:17 +02:00
parent 96d76cfd14
commit e771e31873
3 changed files with 14 additions and 2 deletions

View File

@@ -4,7 +4,9 @@ module.exports = {
i18n: { i18n: {
defaultLocale: 'en', defaultLocale: 'en',
locales: ['en', 'de', 'en', 'es', 'fr', 'it', 'ja', 'nl', 'pl', 'ru', 'sl', 'sv', 'zh'], locales: ['en', 'de', 'en', 'es', 'fr', 'it', 'ja', 'nl', 'pl', 'ru', 'sl', 'sv', 'zh'],
fallbackLng: 'en',
localeDetection: true, localeDetection: true,
returnEmptyString: false
}, },
reloadOnPrerender: process.env.NODE_ENV === 'development', reloadOnPrerender: process.env.NODE_ENV === 'development',
}; };

View File

@@ -12,7 +12,7 @@ export default function LanguageSwitch() {
const { t, i18n } = useTranslation('settings/general/internationalization'); const { t, i18n } = useTranslation('settings/general/internationalization');
const { changeLanguage } = i18n; const { changeLanguage } = i18n;
const configLocale = getCookie('config-locale'); const configLocale = getCookie('config-locale');
const { locale, locales } = useRouter(); const { locale, locales, push } = useRouter();
const [selectedLanguage, setSelectedLanguage] = useState<string>( const [selectedLanguage, setSelectedLanguage] = useState<string>(
(configLocale as string) ?? locale ?? 'en' (configLocale as string) ?? locale ?? 'en'
); );
@@ -37,6 +37,8 @@ export default function LanguageSwitch() {
sameSite: 'strict', sameSite: 'strict',
}); });
push('/', '/', { locale: value });
showNotification({ showNotification({
title: 'Language changed', title: 'Language changed',
message: `You changed the language to '${newLanguage.originalName}'`, message: `You changed the language to '${newLanguage.originalName}'`,
@@ -65,6 +67,14 @@ export default function LanguageSwitch() {
onChange={onChangeSelect} onChange={onChangeSelect}
value={selectedLanguage} value={selectedLanguage}
defaultValue={locale} defaultValue={locale}
searchable
filter={(value, item) => {
const selectItems = item as unknown as { value: string, language: Language };
return (
selectItems.language.originalName.trim().includes(value.trim()) ||
selectItems.language.translatedName.trim().includes(value.trim())
);
}}
styles={{ styles={{
icon: { icon: {
width: 42, width: 42,

View File

@@ -64,4 +64,4 @@ const languages: Language[] = [
]; ];
export const getLanguageByCode = (code: string | null) => export const getLanguageByCode = (code: string | null) =>
languages.find((language) => language.shortName === code) ?? languages[-1]; languages.find((language) => language.shortName === code) ?? languages[languages.length - 1];