i18n: clean up Danish locale wiring and sort language lists 286

This commit is contained in:
Linus Rath
2026-05-15 14:31:24 +02:00
parent e700e4fd04
commit d1a0667c79
6 changed files with 28 additions and 28 deletions
+1 -1
View File
@@ -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`.
+8 -8
View File
@@ -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 {
+9 -9
View File
@@ -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
}; };
+5 -5
View File
@@ -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
View File
@@ -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
View File
@@ -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
}); });