mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-11 07:55:52 +01:00
🐛 fix language switch and add search
This commit is contained in:
@@ -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',
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user