From 2c973f976fbb68cc7b6a36007f0771c51ac85f84 Mon Sep 17 00:00:00 2001 From: Sebastien Castiel Date: Sat, 7 Dec 2024 11:37:39 -0500 Subject: [PATCH] Put locale labels outside of translations --- messages/de-DE.json | 14 ------------- messages/en-US.json | 14 ------------- messages/es.json | 14 ------------- messages/fi.json | 14 ------------- messages/fr-FR.json | 14 ------------- messages/it-IT.json | 14 ------------- messages/pl-PL.json | 14 ------------- messages/ro.json | 14 ------------- messages/ru-RU.json | 14 ------------- messages/ua-UA.json | 14 ------------- messages/zh-CN.json | 14 ------------- messages/zh-TW.json | 14 ------------- src/components/locale-switcher.tsx | 18 ++++++++-------- src/i18n.ts | 33 +++++++++++++++++------------- 14 files changed, 29 insertions(+), 190 deletions(-) diff --git a/messages/de-DE.json b/messages/de-DE.json index 4e30c287..65104d05 100644 --- a/messages/de-DE.json +++ b/messages/de-DE.json @@ -294,20 +294,6 @@ "Settings": { "title": "Einstellungen" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Teilen", "description": "Teile die URL, damit andere Mitglieder die Gruppe sehen und Ausgaben hinzufügen können.", diff --git a/messages/en-US.json b/messages/en-US.json index d0ec9589..0e42ec97 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -294,20 +294,6 @@ "Settings": { "title": "Settings" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Share", "description": "For other participants to see the group and add expenses, share its URL with them.", diff --git a/messages/es.json b/messages/es.json index 393c5a41..c75a217c 100644 --- a/messages/es.json +++ b/messages/es.json @@ -294,20 +294,6 @@ "Settings": { "title": "Ajustes" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Compartir", "description": "Para que otros participantes puedan ver el grupo y añadir gastos, compárteles su URL.", diff --git a/messages/fi.json b/messages/fi.json index bc5c8353..a00e6b2e 100644 --- a/messages/fi.json +++ b/messages/fi.json @@ -294,20 +294,6 @@ "Settings": { "title": "Asetukset" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Jaa", "description": "Jaa ryhmän URL muille jäsenille, jotta he voivat nähdä sen ja lisätä kuluja.", diff --git a/messages/fr-FR.json b/messages/fr-FR.json index e954d14b..8b064541 100644 --- a/messages/fr-FR.json +++ b/messages/fr-FR.json @@ -294,20 +294,6 @@ "Settings": { "title": "Paramètres" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Partager", "description": "Pour que d'autres participants puissent voir le groupe et ajouter des dépenses, partagez son URL avec eux.", diff --git a/messages/it-IT.json b/messages/it-IT.json index 73e59f65..e984067f 100644 --- a/messages/it-IT.json +++ b/messages/it-IT.json @@ -294,20 +294,6 @@ "Settings": { "title": "Impostazioni" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Condividi", "description": "Per consentire agli altri partecipanti di vedere il gruppo e aggiungere spese, condividi il suo URL con loro.", diff --git a/messages/pl-PL.json b/messages/pl-PL.json index d61c9c23..b936c6b3 100644 --- a/messages/pl-PL.json +++ b/messages/pl-PL.json @@ -293,20 +293,6 @@ "Settings": { "title": "Ustawienia" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Udostępnij", "description": "Aby inni uczestnicy mogli zobaczyć grupę i dodać wydatki, udostępnij im jej adres URL.", diff --git a/messages/ro.json b/messages/ro.json index e5c8256e..718037a8 100644 --- a/messages/ro.json +++ b/messages/ro.json @@ -294,20 +294,6 @@ "Settings": { "title": "Setări" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Distribuie", "description": "Pentru ca ceilalți participanți să poată vedea grupul și cheltuielile adăugate, distribuie URL-ul acestuia cu ei.", diff --git a/messages/ru-RU.json b/messages/ru-RU.json index 72761230..82c48cfb 100644 --- a/messages/ru-RU.json +++ b/messages/ru-RU.json @@ -294,20 +294,6 @@ "Settings": { "title": "Настройки" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Поделиться", "description": "Чтобы другие участники получили доступ к этой группе и смогли добавлять расходы, отправьте им этот URL.", diff --git a/messages/ua-UA.json b/messages/ua-UA.json index 6fa6e75f..e6eb561c 100644 --- a/messages/ua-UA.json +++ b/messages/ua-UA.json @@ -294,20 +294,6 @@ "Settings": { "title": "Налаштування" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文 (Traditional Chinese)", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "Поділитися", "description": "Щоб інші учасники могли побачити групу і додати витрати, поділіться з ними її URL", diff --git a/messages/zh-CN.json b/messages/zh-CN.json index 6d1ed4c5..ac98b8c9 100644 --- a/messages/zh-CN.json +++ b/messages/zh-CN.json @@ -294,20 +294,6 @@ "Settings": { "title": "设定" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "分享", "description": "请将此URL分享给其他群组成员,以使其可以查看群组并添加消费。", diff --git a/messages/zh-TW.json b/messages/zh-TW.json index 1a598e70..32061978 100644 --- a/messages/zh-TW.json +++ b/messages/zh-TW.json @@ -294,20 +294,6 @@ "Settings": { "title": "設定" }, - "Locale": { - "en-US": "English", - "fi": "Suomi", - "fr-FR": "Français", - "es": "Español", - "de-DE": "Deutsch", - "zh-CN": "Chinese (Simplified)", - "zh-TW": "正體中文", - "pl-PL": "Polski", - "ru-RU": "Русский", - "it-IT": "Italiano", - "ua-UA": "Українська", - "ro": "Română" - }, "Share": { "title": "分享", "description": "將此網址分享給其他人以加入群組並查看及新增消費紀錄", diff --git a/src/components/locale-switcher.tsx b/src/components/locale-switcher.tsx index f438daea..8ef747d9 100644 --- a/src/components/locale-switcher.tsx +++ b/src/components/locale-switcher.tsx @@ -7,24 +7,26 @@ import { DropdownMenuItem, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' -import { locales } from '@/i18n' +import { Locale, localeLabels } from '@/i18n' import { setUserLocale } from '@/lib/locale' -import { useLocale, useTranslations } from 'next-intl' +import { useLocale } from 'next-intl' export function LocaleSwitcher() { - const t = useTranslations('Locale') - const locale = useLocale() + const locale = useLocale() as Locale return ( - {locales.map((locale) => ( - setUserLocale(locale)}> - {t(locale)} + {Object.entries(localeLabels).map(([locale, label]) => ( + setUserLocale(locale as Locale)} + > + {label} ))} diff --git a/src/i18n.ts b/src/i18n.ts index 1e73861d..0818a092 100644 --- a/src/i18n.ts +++ b/src/i18n.ts @@ -1,20 +1,25 @@ import { getRequestConfig } from 'next-intl/server' import { getUserLocale } from './lib/locale' -export const locales = [ - 'en-US', - 'fi', - 'fr-FR', - 'es', - 'de-DE', - 'zh-CN', - 'zh-TW', - 'ru-RU', - 'it-IT', - 'ua-UA', - 'ro', -] as const -export type Locale = (typeof locales)[number] +export const localeLabels = { + 'en-US': 'English', + fi: 'Suomi', + 'fr-FR': 'Français', + es: 'Español', + 'de-DE': 'Deutsch', + 'zh-CN': '简体中文', + 'zh-TW': '正體中文', + 'pl-PL': 'Polski', + 'ru-RU': 'Русский', + 'it-IT': 'Italiano', + 'ua-UA': 'Українська', + ro: 'Română', +} as const + +export const locales: (keyof typeof localeLabels)[] = Object.keys( + localeLabels, +) as any +export type Locale = keyof typeof localeLabels export type Locales = ReadonlyArray export const defaultLocale: Locale = 'en-US'