mirror of
https://github.com/ajnart/homarr.git
synced 2025-11-11 16:05:47 +01:00
🌐 Add languages to i18n
This commit is contained in:
@@ -3,7 +3,7 @@ module.exports = {
|
|||||||
debug: process.env.NODE_ENV === 'development',
|
debug: process.env.NODE_ENV === 'development',
|
||||||
i18n: {
|
i18n: {
|
||||||
defaultLocale: 'en',
|
defaultLocale: 'en',
|
||||||
locales: ['en', 'de'],
|
locales: ['en', 'de', 'es', 'fr', 'it', 'ja', 'nl', 'ru', 'sv', 'zh'],
|
||||||
localeDetection: true,
|
localeDetection: true,
|
||||||
},
|
},
|
||||||
reloadOnPrerender: process.env.NODE_ENV === 'development',
|
reloadOnPrerender: process.env.NODE_ENV === 'development',
|
||||||
|
|||||||
@@ -13,8 +13,8 @@ export default function LanguageSwitch() {
|
|||||||
const { changeLanguage } = i18n;
|
const { changeLanguage } = i18n;
|
||||||
const configLocale = getCookie('config-locale');
|
const configLocale = getCookie('config-locale');
|
||||||
const { locale, locales } = useRouter();
|
const { locale, locales } = useRouter();
|
||||||
const [selectedLanguage, setSelectedLanguage] = useState<string | undefined>(
|
const [selectedLanguage, setSelectedLanguage] = useState<string>(
|
||||||
(configLocale as string) ?? locale
|
(configLocale as string) ?? locale ?? 'en'
|
||||||
);
|
);
|
||||||
|
|
||||||
const data = locales
|
const data = locales
|
||||||
@@ -57,7 +57,7 @@ export default function LanguageSwitch() {
|
|||||||
return (
|
return (
|
||||||
<Stack>
|
<Stack>
|
||||||
<Select
|
<Select
|
||||||
icon={<Text>{getUnicodeFlagIcon(selectedLanguage as string)}</Text>}
|
icon={<Text>{getUnicodeFlagIcon(getLanguageByCode(selectedLanguage).shortName)}</Text>}
|
||||||
label={t('label')}
|
label={t('label')}
|
||||||
data={data}
|
data={data}
|
||||||
itemComponent={SelectItem}
|
itemComponent={SelectItem}
|
||||||
@@ -87,7 +87,7 @@ const SelectItem = forwardRef<HTMLDivElement, ItemProps>(
|
|||||||
({ language, image, ...others }: ItemProps, ref) => (
|
({ language, image, ...others }: ItemProps, ref) => (
|
||||||
<div ref={ref} {...others}>
|
<div ref={ref} {...others}>
|
||||||
<Group noWrap>
|
<Group noWrap>
|
||||||
<Text>{getUnicodeFlagIcon(language.originalName as string)}</Text>
|
<Text>{getUnicodeFlagIcon(language.shortName)}</Text>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<Text size="sm">
|
<Text size="sm">
|
||||||
|
|||||||
@@ -21,6 +21,46 @@ const languages: Language[] = [
|
|||||||
originalName: 'English',
|
originalName: 'English',
|
||||||
translatedName: 'English',
|
translatedName: 'English',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
shortName: 'es',
|
||||||
|
originalName: 'Español',
|
||||||
|
translatedName: 'Spanish',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'fr',
|
||||||
|
originalName: 'Français',
|
||||||
|
translatedName: 'French',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'it',
|
||||||
|
originalName: 'Italiano',
|
||||||
|
translatedName: 'Italian',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'ja',
|
||||||
|
originalName: '日本語',
|
||||||
|
translatedName: 'Japanese',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'nl',
|
||||||
|
originalName: 'Nederlands',
|
||||||
|
translatedName: 'Dutch',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'ru',
|
||||||
|
originalName: 'Русский',
|
||||||
|
translatedName: 'Russian',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'sv',
|
||||||
|
originalName: 'Svenska',
|
||||||
|
translatedName: 'Swedish',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
shortName: 'zh',
|
||||||
|
originalName: '中文',
|
||||||
|
translatedName: 'Chinese',
|
||||||
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
export const getLanguageByCode = (code: string | null) =>
|
export const getLanguageByCode = (code: string | null) =>
|
||||||
|
|||||||
Reference in New Issue
Block a user