🌐 Add languages to i18n

This commit is contained in:
ajnart
2022-08-25 12:59:57 +02:00
parent bc7ca43c08
commit 784c745e94
3 changed files with 45 additions and 5 deletions

View File

@@ -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',

View File

@@ -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">

View File

@@ -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) =>