feat(i18n): add Turkish (tr) locale
This commit is contained in:
@@ -228,6 +228,25 @@ const DE_MESSAGES: BootstrapMessages = {
|
|||||||
loadingData: (providersText, agentsText) => `Daten werden geladen (${providersText}, ${agentsText})…`,
|
loadingData: (providersText, agentsText) => `Daten werden geladen (${providersText}, ${agentsText})…`,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const TR_MESSAGES: BootstrapMessages = {
|
||||||
|
startingApi: 'OpenCode API başlatılıyor…',
|
||||||
|
initializing: 'Başlatılıyor…',
|
||||||
|
connecting: 'Bağlanıyor…',
|
||||||
|
connected: 'Bağlandı!',
|
||||||
|
connectionError: 'Bağlantı hatası',
|
||||||
|
disconnected: 'Bağlantı kesildi',
|
||||||
|
reconnecting: 'Yeniden bağlanıyor…',
|
||||||
|
initialDataLoadFailed: 'OpenCode bağlandı ancak ilk veri yükleme başarısız oldu.',
|
||||||
|
cliNotFound: 'OpenCode CLI bulunamadı. Lütfen önce kurun.',
|
||||||
|
providersReady: '✓ Sağlayıcılar',
|
||||||
|
providersLoading: '… Sağlayıcılar',
|
||||||
|
agentsReady: '✓ Agent\'ler',
|
||||||
|
agentsLoading: '… Agent\'ler',
|
||||||
|
startingDevServer: (hostLabel) => `Webview dev sunucusu başlatılıyor (${hostLabel})...`,
|
||||||
|
waitingDevServer: (hostLabel, attempt) => `Webview dev sunucusu bekleniyor (${hostLabel})... deneme ${attempt}`,
|
||||||
|
loadingData: (providersText, agentsText) => `Veriler yükleniyor (${providersText}, ${agentsText})…`,
|
||||||
|
};
|
||||||
|
|
||||||
export const getBootstrapMessages = (locale: Locale): BootstrapMessages => {
|
export const getBootstrapMessages = (locale: Locale): BootstrapMessages => {
|
||||||
return BOOTSTRAP_MESSAGES[locale];
|
return BOOTSTRAP_MESSAGES[locale];
|
||||||
};
|
};
|
||||||
@@ -244,6 +263,7 @@ const BOOTSTRAP_MESSAGES: Record<Locale, BootstrapMessages> = {
|
|||||||
ko: KO_MESSAGES,
|
ko: KO_MESSAGES,
|
||||||
pl: PL_MESSAGES,
|
pl: PL_MESSAGES,
|
||||||
ja: JA_MESSAGES,
|
ja: JA_MESSAGES,
|
||||||
|
tr: TR_MESSAGES,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const readStoredLocaleForBootstrap = (): Locale => {
|
export const readStoredLocaleForBootstrap = (): Locale => {
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ const INTL_LOCALE_BY_LOCALE: Record<Locale, string> = {
|
|||||||
ko: 'ko-KR',
|
ko: 'ko-KR',
|
||||||
pl: 'pl-PL',
|
pl: 'pl-PL',
|
||||||
ja: 'ja-JP',
|
ja: 'ja-JP',
|
||||||
|
tr: 'tr-TR',
|
||||||
};
|
};
|
||||||
|
|
||||||
const getIntlLocale = (locale: Locale): string => INTL_LOCALE_BY_LOCALE[locale] ?? 'en-US';
|
const getIntlLocale = (locale: Locale): string => INTL_LOCALE_BY_LOCALE[locale] ?? 'en-US';
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import { dict as ptBrDict } from './messages/pt-BR';
|
|||||||
import { dict as ukDict } from './messages/uk';
|
import { dict as ukDict } from './messages/uk';
|
||||||
import { dict as zhCnDict } from './messages/zh-CN';
|
import { dict as zhCnDict } from './messages/zh-CN';
|
||||||
import { dict as zhTwDict } from './messages/zh-TW';
|
import { dict as zhTwDict } from './messages/zh-TW';
|
||||||
|
import { dict as trDict } from './messages/tr';
|
||||||
|
|
||||||
const localeDictionaries = {
|
const localeDictionaries = {
|
||||||
en: enDict,
|
en: enDict,
|
||||||
@@ -24,6 +25,7 @@ const localeDictionaries = {
|
|||||||
pl: plDict,
|
pl: plDict,
|
||||||
'zh-CN': zhCnDict,
|
'zh-CN': zhCnDict,
|
||||||
'zh-TW': zhTwDict,
|
'zh-TW': zhTwDict,
|
||||||
|
tr: trDict,
|
||||||
} as const;
|
} as const;
|
||||||
|
|
||||||
describe('i18n dictionaries', () => {
|
describe('i18n dictionaries', () => {
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ export const dict = {
|
|||||||
'common.language.korean': 'Koreanisch',
|
'common.language.korean': 'Koreanisch',
|
||||||
'common.language.polish': 'Polnisch',
|
'common.language.polish': 'Polnisch',
|
||||||
'common.language.japanese': 'Japanisch',
|
'common.language.japanese': 'Japanisch',
|
||||||
|
'common.language.turkish': 'Türkisch',
|
||||||
'common.revealPath.finder': 'Im Finder anzeigen',
|
'common.revealPath.finder': 'Im Finder anzeigen',
|
||||||
'common.revealPath.fileExplorer': 'In Datei-Explorer öffnen',
|
'common.revealPath.fileExplorer': 'In Datei-Explorer öffnen',
|
||||||
'common.revealPath.fileManager': 'In Dateimanager öffnen',
|
'common.revealPath.fileManager': 'In Dateimanager öffnen',
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export const dict = {
|
|||||||
'common.language.korean': 'Korean',
|
'common.language.korean': 'Korean',
|
||||||
'common.language.polish': 'Polish',
|
'common.language.polish': 'Polish',
|
||||||
'common.language.japanese': 'Japanese',
|
'common.language.japanese': 'Japanese',
|
||||||
|
'common.language.turkish': 'Turkish',
|
||||||
'common.revealPath.finder': 'Reveal in Finder',
|
'common.revealPath.finder': 'Reveal in Finder',
|
||||||
'common.revealPath.fileExplorer': 'Open in File Explorer',
|
'common.revealPath.fileExplorer': 'Open in File Explorer',
|
||||||
'common.revealPath.fileManager': 'Open in File Manager',
|
'common.revealPath.fileManager': 'Open in File Manager',
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
"common.language.korean": "Coreano",
|
"common.language.korean": "Coreano",
|
||||||
"common.language.polish": "Polaco",
|
"common.language.polish": "Polaco",
|
||||||
"common.language.japanese": "Japonés",
|
"common.language.japanese": "Japonés",
|
||||||
|
"common.language.turkish": "Turco",
|
||||||
"common.revealPath.finder": "Mostrar en Finder",
|
"common.revealPath.finder": "Mostrar en Finder",
|
||||||
"common.revealPath.fileExplorer": "Abrir en File Explorer",
|
"common.revealPath.fileExplorer": "Abrir en File Explorer",
|
||||||
"common.revealPath.fileManager": "Abrir en gestor de archivos",
|
"common.revealPath.fileManager": "Abrir en gestor de archivos",
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export const dict = {
|
|||||||
'common.language.korean': 'Coréen',
|
'common.language.korean': 'Coréen',
|
||||||
'common.language.polish': 'Polonais',
|
'common.language.polish': 'Polonais',
|
||||||
'common.language.japanese': 'Japonais',
|
'common.language.japanese': 'Japonais',
|
||||||
|
'common.language.turkish': 'Turc',
|
||||||
'common.revealPath.finder': 'Révéler dans le Finder',
|
'common.revealPath.finder': 'Révéler dans le Finder',
|
||||||
'common.revealPath.fileExplorer': 'Ouvrir dans l\'explorateur de fichiers',
|
'common.revealPath.fileExplorer': 'Ouvrir dans l\'explorateur de fichiers',
|
||||||
'common.revealPath.fileManager': 'Ouvrir dans le gestionnaire de fichiers',
|
'common.revealPath.fileManager': 'Ouvrir dans le gestionnaire de fichiers',
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
'common.language.korean': '韓国語',
|
'common.language.korean': '韓国語',
|
||||||
'common.language.polish': 'ポーランド語',
|
'common.language.polish': 'ポーランド語',
|
||||||
'common.language.japanese': '日本語',
|
'common.language.japanese': '日本語',
|
||||||
|
'common.language.turkish': 'トルコ語',
|
||||||
'common.revealPath.finder': 'Finderで表示',
|
'common.revealPath.finder': 'Finderで表示',
|
||||||
'common.revealPath.fileExplorer': 'エクスプローラーで開く',
|
'common.revealPath.fileExplorer': 'エクスプローラーで開く',
|
||||||
'common.revealPath.fileManager': 'ファイルマネージャーで開く',
|
'common.revealPath.fileManager': 'ファイルマネージャーで開く',
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
'common.language.korean': '한국어',
|
'common.language.korean': '한국어',
|
||||||
'common.language.polish': '폴란드어',
|
'common.language.polish': '폴란드어',
|
||||||
'common.language.japanese': '일본어',
|
'common.language.japanese': '일본어',
|
||||||
|
'common.language.turkish': '터키어',
|
||||||
'common.revealPath.finder': 'Finder에서 보기',
|
'common.revealPath.finder': 'Finder에서 보기',
|
||||||
'common.revealPath.fileExplorer': 'File Explorer에서 열기',
|
'common.revealPath.fileExplorer': 'File Explorer에서 열기',
|
||||||
'common.revealPath.fileManager': '파일 관리자에서 열기',
|
'common.revealPath.fileManager': '파일 관리자에서 열기',
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
'common.language.korean': 'Koreański',
|
'common.language.korean': 'Koreański',
|
||||||
'common.language.polish': 'Polski',
|
'common.language.polish': 'Polski',
|
||||||
'common.language.japanese': 'Japoński',
|
'common.language.japanese': 'Japoński',
|
||||||
|
'common.language.turkish': 'Turecki',
|
||||||
'common.revealPath.finder': 'Pokaż w Finderze',
|
'common.revealPath.finder': 'Pokaż w Finderze',
|
||||||
'common.revealPath.fileExplorer': 'Otwórz w Eksploratorze plików',
|
'common.revealPath.fileExplorer': 'Otwórz w Eksploratorze plików',
|
||||||
'common.revealPath.fileManager': 'Otwórz w Menedżerze plików',
|
'common.revealPath.fileManager': 'Otwórz w Menedżerze plików',
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
"common.language.korean": "Coreano",
|
"common.language.korean": "Coreano",
|
||||||
"common.language.polish": "Polonês",
|
"common.language.polish": "Polonês",
|
||||||
"common.language.japanese": "Japonês",
|
"common.language.japanese": "Japonês",
|
||||||
|
"common.language.turkish": "Turco",
|
||||||
"common.revealPath.finder": "Mostrar no Finder",
|
"common.revealPath.finder": "Mostrar no Finder",
|
||||||
"common.revealPath.fileExplorer": "Abrir no File Explorer",
|
"common.revealPath.fileExplorer": "Abrir no File Explorer",
|
||||||
"common.revealPath.fileManager": "Abrir no gerenciador de arquivos",
|
"common.revealPath.fileManager": "Abrir no gerenciador de arquivos",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { describe, expect, test } from 'bun:test';
|
import { describe, expect, test } from 'bun:test';
|
||||||
import { thirdPartyIntegrationI18n } from './third-party-integrations.i18n';
|
import { thirdPartyIntegrationI18n } from './third-party-integrations.i18n';
|
||||||
|
|
||||||
const locales = ['en', 'de', 'fr', 'es', 'ja', 'pt-BR', 'uk', 'ko', 'pl', 'zh-CN', 'zh-TW'] as const;
|
const locales = ['en', 'de', 'fr', 'es', 'ja', 'pt-BR', 'uk', 'ko', 'pl', 'zh-CN', 'zh-TW', 'tr'] as const;
|
||||||
|
|
||||||
const requiredKeys = [
|
const requiredKeys = [
|
||||||
'settings.page.integrations.title',
|
'settings.page.integrations.title',
|
||||||
|
|||||||
@@ -385,4 +385,39 @@ export const thirdPartyIntegrationI18n = {
|
|||||||
'settings.integrations.thirdParty.opencodeCursorOauth.name': 'Cursor',
|
'settings.integrations.thirdParty.opencodeCursorOauth.name': 'Cursor',
|
||||||
'settings.integrations.thirdParty.opencodeCursorOauth.description': 'Cursor 內部模型的充足額度,現已可用於 OpenChamber。',
|
'settings.integrations.thirdParty.opencodeCursorOauth.description': 'Cursor 內部模型的充足額度,現已可用於 OpenChamber。',
|
||||||
},
|
},
|
||||||
|
tr: {
|
||||||
|
'settings.integrations.experimentalWarning': 'Deneysel özellik. Provider politikalarına saygı göstermeye çalışıyoruz, ancak hesap kısıtlamaları ve askıya almalar her provider\'ın kararıdır. Entegrasyonları kendi riskinize kullanın.',
|
||||||
|
'settings.page.integrations.title': 'Entegrasyonlar',
|
||||||
|
'settings.page.integrations.description': 'OpenChamber provider olarak kullanmak için üçüncü taraf abonelikler ekleyin.',
|
||||||
|
'settings.integrations.thirdParty.title': 'Üçüncü taraf entegrasyonlar',
|
||||||
|
'settings.integrations.thirdParty.info': 'Bir provider eklentisi kurun, ardından aboneliğinizi ayarlayın ki OpenChamber onu kullanabilsin.',
|
||||||
|
'settings.integrations.thirdParty.actions.install': 'Kur',
|
||||||
|
'settings.integrations.thirdParty.actions.update': 'Güncelle',
|
||||||
|
'settings.integrations.thirdParty.actions.setup': 'Ayarla',
|
||||||
|
'settings.integrations.thirdParty.actions.remove': 'Kaldır',
|
||||||
|
'settings.integrations.thirdParty.actions.docs': 'Dokümanlar',
|
||||||
|
'settings.integrations.thirdParty.actions.managePlugins': 'Eklentileri yönet',
|
||||||
|
'settings.integrations.thirdParty.status.notInstalled': 'Kurulu değil',
|
||||||
|
'settings.integrations.thirdParty.status.installed': 'Kurulu',
|
||||||
|
'settings.integrations.thirdParty.status.installedVersion': 'Kurulu: {version}',
|
||||||
|
'settings.integrations.thirdParty.status.updateAvailable': 'Güncelleme var: {version}',
|
||||||
|
'settings.integrations.thirdParty.status.unpinned': 'En son release takip ediliyor',
|
||||||
|
'settings.integrations.thirdParty.status.projectInstalled': 'Ayrıca bu proje için yapılandırıldı',
|
||||||
|
'settings.integrations.thirdParty.status.ambiguous': 'Birden çok kullanıcı genelinde eklenti girdisi elle yönetilmeli',
|
||||||
|
'settings.integrations.thirdParty.status.restartRequired': 'Bu provider\'ı ayarlamadan önce OpenCode\'u yeniden başlatın.',
|
||||||
|
'settings.integrations.thirdParty.status.registryUnavailable': 'npm şu anda denetlenemedi.',
|
||||||
|
'settings.integrations.thirdParty.status.providerUnavailable': 'Provider henüz kullanılabilir değil. OpenCode\'u yeniden başlatıp tekrar deneyin.',
|
||||||
|
'settings.integrations.thirdParty.dialog.remove.title': 'Entegrasyonu kaldır',
|
||||||
|
'settings.integrations.thirdParty.dialog.remove.description': '{name}, kullanıcı genelindeki OpenCode yapılandırmanızdan kaldırılsın mı? OpenCode yenilendikten sonra provider artık yüklenmeyecek.',
|
||||||
|
'settings.integrations.thirdParty.toast.installed': '{name} kuruldu',
|
||||||
|
'settings.integrations.thirdParty.toast.updated': '{name} güncellendi',
|
||||||
|
'settings.integrations.thirdParty.toast.removed': '{name} kaldırıldı',
|
||||||
|
'settings.integrations.thirdParty.toast.actionFailed': 'Entegrasyon güncellenemedi',
|
||||||
|
'settings.integrations.thirdParty.toast.providerUnavailable': 'Provider henüz açılamadı',
|
||||||
|
'settings.integrations.thirdParty.toast.restartRequired': 'Değişikliklerin geçerli olması için OpenCode\'u yeniden başlatın',
|
||||||
|
'settings.integrations.thirdParty.opencodeClaude.name': 'Claude Code',
|
||||||
|
'settings.integrations.thirdParty.opencodeClaude.description': 'Claude Pro/Max planınızı kullanın — API anahtarı gerekmez, Claude uygulamaları gerekmez.',
|
||||||
|
'settings.integrations.thirdParty.opencodeCursorOauth.name': 'Cursor',
|
||||||
|
'settings.integrations.thirdParty.opencodeCursorOauth.description': 'Cursor\'ın cömert kendi model limitleri artık OpenChamber\'da.',
|
||||||
|
},
|
||||||
} as const;
|
} as const;
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
"common.language.korean": "Корейська",
|
"common.language.korean": "Корейська",
|
||||||
"common.language.polish": "Польська",
|
"common.language.polish": "Польська",
|
||||||
"common.language.japanese": "Японська",
|
"common.language.japanese": "Японська",
|
||||||
|
"common.language.turkish": "Турецька",
|
||||||
"common.revealPath.finder": "Показати у Finder",
|
"common.revealPath.finder": "Показати у Finder",
|
||||||
"common.revealPath.fileExplorer": "Відкрити у File Explorer",
|
"common.revealPath.fileExplorer": "Відкрити у File Explorer",
|
||||||
"common.revealPath.fileManager": "Відкрити у файловому менеджері",
|
"common.revealPath.fileManager": "Відкрити у файловому менеджері",
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
'common.language.korean': '韩语',
|
'common.language.korean': '韩语',
|
||||||
'common.language.polish': '波兰语',
|
'common.language.polish': '波兰语',
|
||||||
'common.language.japanese': '日语',
|
'common.language.japanese': '日语',
|
||||||
|
'common.language.turkish': '土耳其语',
|
||||||
'common.revealPath.finder': '在 Finder 中显示',
|
'common.revealPath.finder': '在 Finder 中显示',
|
||||||
'common.revealPath.fileExplorer': '在文件资源管理器中打开',
|
'common.revealPath.fileExplorer': '在文件资源管理器中打开',
|
||||||
'common.revealPath.fileManager': '在文件管理器中打开',
|
'common.revealPath.fileManager': '在文件管理器中打开',
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ export const dict: Record<I18nKey, string> = {
|
|||||||
'common.language.korean': '韓語',
|
'common.language.korean': '韓語',
|
||||||
'common.language.polish': '波蘭語',
|
'common.language.polish': '波蘭語',
|
||||||
'common.language.japanese': '日語',
|
'common.language.japanese': '日語',
|
||||||
|
'common.language.turkish': '土耳其語',
|
||||||
'common.revealPath.finder': '在 Finder 中顯示',
|
'common.revealPath.finder': '在 Finder 中顯示',
|
||||||
'common.revealPath.fileExplorer': '在檔案總管中開啟',
|
'common.revealPath.fileExplorer': '在檔案總管中開啟',
|
||||||
'common.revealPath.fileManager': '在檔案管理員中開啟',
|
'common.revealPath.fileManager': '在檔案管理員中開啟',
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
export type Locale = 'en' | 'de' | 'fr' | 'zh-CN' | 'zh-TW' | 'uk' | 'es' | 'pt-BR' | 'ko' | 'pl' | 'ja';
|
export type Locale = 'en' | 'de' | 'fr' | 'zh-CN' | 'zh-TW' | 'uk' | 'es' | 'pt-BR' | 'ko' | 'pl' | 'ja' | 'tr';
|
||||||
|
|
||||||
export const LOCALES = ['en', 'de', 'fr', 'zh-CN', 'zh-TW', 'uk', 'es', 'pt-BR', 'ko', 'pl', 'ja'] as const satisfies readonly Locale[];
|
export const LOCALES = ['en', 'de', 'fr', 'zh-CN', 'zh-TW', 'uk', 'es', 'pt-BR', 'ko', 'pl', 'ja', 'tr'] as const satisfies readonly Locale[];
|
||||||
|
|
||||||
export const DEFAULT_LOCALE: Locale = 'en';
|
export const DEFAULT_LOCALE: Locale = 'en';
|
||||||
|
|
||||||
export const LOCALE_LABEL_KEYS: Record<Locale, 'common.language.english' | 'common.language.french' | 'common.language.simplifiedChinese' | 'common.language.traditionalChinese' | 'common.language.ukrainian' | 'common.language.spanish' | 'common.language.brazilianPortuguese' | 'common.language.korean' | 'common.language.polish' | 'common.language.german' | 'common.language.japanese'> = {
|
export const LOCALE_LABEL_KEYS: Record<Locale, 'common.language.english' | 'common.language.french' | 'common.language.simplifiedChinese' | 'common.language.traditionalChinese' | 'common.language.ukrainian' | 'common.language.spanish' | 'common.language.brazilianPortuguese' | 'common.language.korean' | 'common.language.polish' | 'common.language.german' | 'common.language.japanese' | 'common.language.turkish'> = {
|
||||||
en: 'common.language.english',
|
en: 'common.language.english',
|
||||||
fr: 'common.language.french',
|
fr: 'common.language.french',
|
||||||
'zh-CN': 'common.language.simplifiedChinese',
|
'zh-CN': 'common.language.simplifiedChinese',
|
||||||
@@ -16,6 +16,7 @@ export const LOCALE_LABEL_KEYS: Record<Locale, 'common.language.english' | 'comm
|
|||||||
pl: 'common.language.polish',
|
pl: 'common.language.polish',
|
||||||
de: 'common.language.german',
|
de: 'common.language.german',
|
||||||
ja: 'common.language.japanese',
|
ja: 'common.language.japanese',
|
||||||
|
tr: 'common.language.turkish',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const LOCALE_STORAGE_KEY = 'openchamber.i18n.v1';
|
export const LOCALE_STORAGE_KEY = 'openchamber.i18n.v1';
|
||||||
@@ -66,6 +67,9 @@ export function normalizeLocale(value: string | undefined | null): Locale {
|
|||||||
if (normalized === 'pl' || normalized.startsWith('pl-')) {
|
if (normalized === 'pl' || normalized.startsWith('pl-')) {
|
||||||
return 'pl';
|
return 'pl';
|
||||||
}
|
}
|
||||||
|
if (normalized === 'tr' || normalized.startsWith('tr-')) {
|
||||||
|
return 'tr';
|
||||||
|
}
|
||||||
return DEFAULT_LOCALE;
|
return DEFAULT_LOCALE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -46,7 +46,9 @@ async function loadDictionary(locale: Locale): Promise<I18nDictionary> {
|
|||||||
? await import('./messages/de') as { dict: I18nDictionary }
|
? await import('./messages/de') as { dict: I18nDictionary }
|
||||||
: locale === 'ja'
|
: locale === 'ja'
|
||||||
? await import('./messages/ja') as { dict: I18nDictionary }
|
? await import('./messages/ja') as { dict: I18nDictionary }
|
||||||
: { dict: enDict };
|
: locale === 'tr'
|
||||||
|
? await import('./messages/tr') as { dict: I18nDictionary }
|
||||||
|
: { dict: enDict };
|
||||||
dictionaries.set(locale, mod.dict);
|
dictionaries.set(locale, mod.dict);
|
||||||
return mod.dict;
|
return mod.dict;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ const LANGUAGE_NAMES = {
|
|||||||
ko: 'Korean',
|
ko: 'Korean',
|
||||||
pl: 'Polish',
|
pl: 'Polish',
|
||||||
ja: 'Japanese',
|
ja: 'Japanese',
|
||||||
|
tr: 'Turkish',
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user