feat(i18n): add Turkish localization
This commit is contained in:
+1
-1
@@ -94,7 +94,7 @@
|
|||||||
|
|
||||||
## Internationalization
|
## Internationalization
|
||||||
|
|
||||||
14 languages: English · Français · 日本語 · Español · Italiano · Deutsch · Nederlands · Português · Русский · 한국어 · Polski · Latviešu · 简体中文 · Українська
|
15 languages: English · Français · 日本語 · Español · Italiano · Deutsch · Nederlands · Português · Русский · Türkçe · 한국어 · Polski · Latviešu · 简体中文 · Українська
|
||||||
|
|
||||||
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`.
|
||||||
|
|
||||||
|
|||||||
@@ -16,12 +16,13 @@ import nlMessages from '@/locales/nl/common.json';
|
|||||||
import plMessages from '@/locales/pl/common.json';
|
import plMessages from '@/locales/pl/common.json';
|
||||||
import ptMessages from '@/locales/pt/common.json';
|
import ptMessages from '@/locales/pt/common.json';
|
||||||
import ruMessages from '@/locales/ru/common.json';
|
import ruMessages from '@/locales/ru/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';
|
||||||
|
|
||||||
// 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,
|
||||||
en: enMessages,
|
en: enMessages,
|
||||||
fr: frMessages,
|
fr: frMessages,
|
||||||
ja: jaMessages,
|
ja: jaMessages,
|
||||||
@@ -34,6 +35,7 @@ const ALL_MESSAGES = {
|
|||||||
pl: plMessages,
|
pl: plMessages,
|
||||||
pt: ptMessages,
|
pt: ptMessages,
|
||||||
ru: ruMessages,
|
ru: ruMessages,
|
||||||
|
tr: trMessages,
|
||||||
uk: ukMessages,
|
uk: ukMessages,
|
||||||
zh: zhMessages,
|
zh: zhMessages,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -152,6 +152,18 @@ export function FlagRU(props: FlagProps) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Turkey - Red with white crescent and star */
|
||||||
|
export function FlagTR(props: FlagProps) {
|
||||||
|
return (
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 20" width={W} height={H} className={flagClass} {...props}>
|
||||||
|
<rect width="30" height="20" fill="#E30A17" />
|
||||||
|
<circle cx="10" cy="10" r="6" fill="#fff" />
|
||||||
|
<circle cx="11.5" cy="10" r="5" fill="#E30A17" />
|
||||||
|
<polygon points="19.5,7.8 19.994,9.32 21.592,9.32 20.299,10.26 20.793,11.78 19.5,10.84 18.207,11.78 18.701,10.26 17.408,9.32 19.006,9.32" fill="#fff" />
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
/** Ukraine – Blue, Yellow horizontal */
|
/** Ukraine – Blue, Yellow horizontal */
|
||||||
export function FlagUA(props: FlagProps) {
|
export function FlagUA(props: FlagProps) {
|
||||||
return (
|
return (
|
||||||
@@ -192,6 +204,7 @@ export const flagComponents: Record<string, (props: FlagProps) => ReactElement>
|
|||||||
pl: FlagPL,
|
pl: FlagPL,
|
||||||
pt: FlagBR,
|
pt: FlagBR,
|
||||||
ru: FlagRU,
|
ru: FlagRU,
|
||||||
|
tr: FlagTR,
|
||||||
uk: FlagUA,
|
uk: FlagUA,
|
||||||
zh: FlagCN,
|
zh: FlagCN,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { cn } from '@/lib/utils';
|
|||||||
import { flagComponents } from './flag-icons';
|
import { flagComponents } from './flag-icons';
|
||||||
|
|
||||||
const languages = [
|
const languages = [
|
||||||
{ value: 'cs', label: 'Česky' },
|
{ value: 'cs', label: 'Česky' },
|
||||||
{ value: 'en', label: 'English' },
|
{ value: 'en', label: 'English' },
|
||||||
{ value: 'fr', label: 'Français' },
|
{ value: 'fr', label: 'Français' },
|
||||||
{ value: 'ja', label: '日本語' },
|
{ value: 'ja', label: '日本語' },
|
||||||
@@ -21,6 +21,7 @@ const languages = [
|
|||||||
{ value: 'pl', label: 'Polski' },
|
{ value: 'pl', label: 'Polski' },
|
||||||
{ value: 'pt', label: 'Português' },
|
{ value: 'pt', label: 'Português' },
|
||||||
{ value: 'ru', label: 'Русский' },
|
{ value: 'ru', label: 'Русский' },
|
||||||
|
{ value: 'tr', label: 'Türkçe' },
|
||||||
{ value: 'uk', label: 'Українська' },
|
{ value: 'uk', label: 'Українська' },
|
||||||
{ value: 'zh', label: '简体中文' },
|
{ value: 'zh', label: '简体中文' },
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -47,6 +47,9 @@ export default getRequestConfig(async ({ requestLocale }) => {
|
|||||||
case 'ru':
|
case 'ru':
|
||||||
messages = (await import('../locales/ru/common.json')).default;
|
messages = (await import('../locales/ru/common.json')).default;
|
||||||
break;
|
break;
|
||||||
|
case 'tr':
|
||||||
|
messages = (await import('../locales/tr/common.json')).default;
|
||||||
|
break;
|
||||||
case 'uk':
|
case 'uk':
|
||||||
messages = (await import('../locales/uk/common.json')).default;
|
messages = (await import('../locales/uk/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', 'de', 'es', 'it', 'ja', 'ko', 'lv', 'nl', 'pl', 'pt', 'ru', 'uk', 'zh'],
|
locales: ['cs', 'en', 'fr', 'de', 'es', 'it', 'ja', 'ko', 'lv', 'nl', 'pl', 'pt', 'ru', 'tr', 'uk', 'zh'],
|
||||||
defaultLocale: 'en',
|
defaultLocale: 'en',
|
||||||
localePrefix
|
localePrefix
|
||||||
});
|
});
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user