i18n: clean up Danish locale wiring and sort language lists 286
This commit is contained in:
+1
-1
@@ -98,7 +98,7 @@
|
|||||||
|
|
||||||
## Internationalization
|
## Internationalization
|
||||||
|
|
||||||
15 languages: English · Français · 日本語 · Español · Italiano · Danish · Deutsch · Nederlands · Português · Русский · Türkçe · 한국어 · Polski · Latviešu · 简体中文 · Українська
|
17 languages: Česky · Dansk · Deutsch · English · Español · Français · Italiano · Latviešu · Nederlands · Polski · Português · Türkçe · Русский · Українська · 한국어 · 日本語 · 简体中文
|
||||||
|
|
||||||
Automatic browser detection with persistent preference. Configurable locale URL prefix via `NEXT_PUBLIC_LOCALE_PREFIX`.
|
Automatic browser detection with persistent preference. Configurable locale URL prefix via `NEXT_PUBLIC_LOCALE_PREFIX`.
|
||||||
|
|
||||||
|
|||||||
@@ -4,13 +4,14 @@ import { useEffect, useState } from 'react';
|
|||||||
import { NextIntlClientProvider } from 'next-intl';
|
import { NextIntlClientProvider } from 'next-intl';
|
||||||
import { useLocaleStore } from '@/stores/locale-store';
|
import { useLocaleStore } from '@/stores/locale-store';
|
||||||
import csMessages from '@/locales/cs/common.json';
|
import csMessages from '@/locales/cs/common.json';
|
||||||
|
import daMessages from '@/locales/da/common.json';
|
||||||
|
import deMessages from '@/locales/de/common.json';
|
||||||
import enMessages from '@/locales/en/common.json';
|
import enMessages from '@/locales/en/common.json';
|
||||||
|
import esMessages from '@/locales/es/common.json';
|
||||||
import frMessages from '@/locales/fr/common.json';
|
import frMessages from '@/locales/fr/common.json';
|
||||||
|
import itMessages from '@/locales/it/common.json';
|
||||||
import jaMessages from '@/locales/ja/common.json';
|
import jaMessages from '@/locales/ja/common.json';
|
||||||
import koMessages from '@/locales/ko/common.json';
|
import koMessages from '@/locales/ko/common.json';
|
||||||
import esMessages from '@/locales/es/common.json';
|
|
||||||
import itMessages from '@/locales/it/common.json';
|
|
||||||
import deMessages from '@/locales/de/common.json';
|
|
||||||
import lvMessages from '@/locales/lv/common.json';
|
import lvMessages from '@/locales/lv/common.json';
|
||||||
import nlMessages from '@/locales/nl/common.json';
|
import nlMessages from '@/locales/nl/common.json';
|
||||||
import plMessages from '@/locales/pl/common.json';
|
import plMessages from '@/locales/pl/common.json';
|
||||||
@@ -19,18 +20,18 @@ import ruMessages from '@/locales/ru/common.json';
|
|||||||
import trMessages from '@/locales/tr/common.json';
|
import trMessages from '@/locales/tr/common.json';
|
||||||
import ukMessages from '@/locales/uk/common.json';
|
import ukMessages from '@/locales/uk/common.json';
|
||||||
import zhMessages from '@/locales/zh/common.json';
|
import zhMessages from '@/locales/zh/common.json';
|
||||||
import daMessages from '@/locales/da/common.json';
|
|
||||||
|
|
||||||
// Pre-loaded translations (loaded at build time, not runtime)
|
// Pre-loaded translations (loaded at build time, not runtime)
|
||||||
const ALL_MESSAGES = {
|
const ALL_MESSAGES = {
|
||||||
cs: csMessages,
|
cs: csMessages,
|
||||||
|
da: daMessages,
|
||||||
|
de: deMessages,
|
||||||
en: enMessages,
|
en: enMessages,
|
||||||
|
es: esMessages,
|
||||||
fr: frMessages,
|
fr: frMessages,
|
||||||
|
it: itMessages,
|
||||||
ja: jaMessages,
|
ja: jaMessages,
|
||||||
ko: koMessages,
|
ko: koMessages,
|
||||||
es: esMessages,
|
|
||||||
it: itMessages,
|
|
||||||
de: deMessages,
|
|
||||||
lv: lvMessages,
|
lv: lvMessages,
|
||||||
nl: nlMessages,
|
nl: nlMessages,
|
||||||
pl: plMessages,
|
pl: plMessages,
|
||||||
@@ -39,7 +40,6 @@ const ALL_MESSAGES = {
|
|||||||
tr: trMessages,
|
tr: trMessages,
|
||||||
uk: ukMessages,
|
uk: ukMessages,
|
||||||
zh: zhMessages,
|
zh: zhMessages,
|
||||||
da: daMessages
|
|
||||||
};
|
};
|
||||||
|
|
||||||
interface IntlProviderProps {
|
interface IntlProviderProps {
|
||||||
|
|||||||
@@ -201,25 +201,27 @@ export function FlagCS(props: FlagProps) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Danish flag - Red with a white cross */
|
/** Denmark – Red with a white Nordic cross */
|
||||||
export function FlagDA(props: FlagProps) {
|
export function FlagDK(props: FlagProps) {
|
||||||
return (
|
return (
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 28" width={W} height={H} className={flagClass} {...props}>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 37 28" width={W} height={H} className={flagClass} {...props}>
|
||||||
<path fill="#c8102e" d="M0,0H37V28H0Z" />
|
<path fill="#C8102E" d="M0,0H37V28H0Z" />
|
||||||
<path stroke="#fff" stroke-width="4" d="M0,14h37M14,0v28" />
|
<path stroke="#fff" strokeWidth="4" d="M0,14h37M14,0v28" />
|
||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Map locale codes to flag components */
|
/** Map locale codes to flag components */
|
||||||
export const flagComponents: Record<string, (props: FlagProps) => ReactElement> = {
|
export const flagComponents: Record<string, (props: FlagProps) => ReactElement> = {
|
||||||
|
cs: FlagCS,
|
||||||
|
da: FlagDK,
|
||||||
|
de: FlagDE,
|
||||||
en: FlagGB,
|
en: FlagGB,
|
||||||
|
es: FlagES,
|
||||||
fr: FlagFR,
|
fr: FlagFR,
|
||||||
|
it: FlagIT,
|
||||||
ja: FlagJP,
|
ja: FlagJP,
|
||||||
ko: FlagKR,
|
ko: FlagKR,
|
||||||
es: FlagES,
|
|
||||||
it: FlagIT,
|
|
||||||
de: FlagDE,
|
|
||||||
lv: FlagLV,
|
lv: FlagLV,
|
||||||
nl: FlagNL,
|
nl: FlagNL,
|
||||||
pl: FlagPL,
|
pl: FlagPL,
|
||||||
@@ -228,6 +230,4 @@ export const flagComponents: Record<string, (props: FlagProps) => ReactElement>
|
|||||||
tr: FlagTR,
|
tr: FlagTR,
|
||||||
uk: FlagUA,
|
uk: FlagUA,
|
||||||
zh: FlagCN,
|
zh: FlagCN,
|
||||||
cs: FlagCS,
|
|
||||||
da: FlagDA
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,21 +9,21 @@ import { flagComponents } from './flag-icons';
|
|||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
{ value: 'cs', label: 'Česky' },
|
{ value: 'cs', label: 'Česky' },
|
||||||
{ value: 'en', label: 'English' },
|
|
||||||
{ value: 'fr', label: 'Français' },
|
|
||||||
{ value: 'ja', label: '日本語' },
|
|
||||||
{ value: 'ko', label: '한국어' },
|
|
||||||
{ value: 'da', label: 'Dansk' },
|
{ value: 'da', label: 'Dansk' },
|
||||||
{ value: 'de', label: 'Deutsch' },
|
{ value: 'de', label: 'Deutsch' },
|
||||||
|
{ value: 'en', label: 'English' },
|
||||||
{ value: 'es', label: 'Español' },
|
{ value: 'es', label: 'Español' },
|
||||||
|
{ value: 'fr', label: 'Français' },
|
||||||
{ value: 'it', label: 'Italiano' },
|
{ value: 'it', label: 'Italiano' },
|
||||||
{ value: 'lv', label: 'Latviešu' },
|
{ value: 'lv', label: 'Latviešu' },
|
||||||
{ value: 'nl', label: 'Nederlands' },
|
{ value: 'nl', label: 'Nederlands' },
|
||||||
{ value: 'pl', label: 'Polski' },
|
{ value: 'pl', label: 'Polski' },
|
||||||
{ value: 'pt', label: 'Português' },
|
{ value: 'pt', label: 'Português' },
|
||||||
{ value: 'ru', label: 'Русский' },
|
|
||||||
{ value: 'tr', label: 'Türkçe' },
|
{ value: 'tr', label: 'Türkçe' },
|
||||||
|
{ value: 'ru', label: 'Русский' },
|
||||||
{ value: 'uk', label: 'Українська' },
|
{ value: 'uk', label: 'Українська' },
|
||||||
|
{ value: 'ko', label: '한국어' },
|
||||||
|
{ value: 'ja', label: '日本語' },
|
||||||
{ value: 'zh', label: '简体中文' },
|
{ value: 'zh', label: '简体中文' },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -14,18 +14,18 @@ export default getRequestConfig(async ({ requestLocale }) => {
|
|||||||
case 'cs':
|
case 'cs':
|
||||||
messages = (await import('../locales/cs/common.json')).default;
|
messages = (await import('../locales/cs/common.json')).default;
|
||||||
break;
|
break;
|
||||||
case 'fr':
|
|
||||||
messages = (await import('../locales/fr/common.json')).default;
|
|
||||||
break;
|
|
||||||
case 'da':
|
case 'da':
|
||||||
messages = (await import('../locales/da/common.json')).default;
|
messages = (await import('../locales/da/common.json')).default;
|
||||||
break;
|
break;
|
||||||
case 'de':
|
case 'de':
|
||||||
messages = (await import('../locales/de/common.json')).default;
|
messages = (await import('../locales/de/common.json')).default;
|
||||||
break;
|
break;
|
||||||
case 'es':
|
case 'es':
|
||||||
messages = (await import('../locales/es/common.json')).default;
|
messages = (await import('../locales/es/common.json')).default;
|
||||||
break;
|
break;
|
||||||
|
case 'fr':
|
||||||
|
messages = (await import('../locales/fr/common.json')).default;
|
||||||
|
break;
|
||||||
case 'it':
|
case 'it':
|
||||||
messages = (await import('../locales/it/common.json')).default;
|
messages = (await import('../locales/it/common.json')).default;
|
||||||
break;
|
break;
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ const localePrefix = (process.env.NEXT_PUBLIC_LOCALE_PREFIX ?? 'never') as
|
|||||||
| 'as-needed';
|
| 'as-needed';
|
||||||
|
|
||||||
export const routing = defineRouting({
|
export const routing = defineRouting({
|
||||||
locales: ['cs', 'en', 'fr', 'da', 'de', 'es', 'it', 'ja', 'ko', 'lv', 'nl', 'pl', 'pt', 'ru', 'tr', 'uk', 'zh'],
|
locales: ['cs', 'da', 'de', 'en', 'es', 'fr', 'it', 'ja', 'ko', 'lv', 'nl', 'pl', 'pt', 'ru', 'tr', 'uk', 'zh'],
|
||||||
defaultLocale: 'en',
|
defaultLocale: 'en',
|
||||||
localePrefix
|
localePrefix
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user