From b20b0595a98a6c7ee1eaccc17ffc7e87a850f73a Mon Sep 17 00:00:00 2001 From: Abdullah Ercan Date: Sat, 16 Dec 2023 09:31:00 +0300 Subject: [PATCH] turkish translation added (#677) * turkish translation added * ascending order update * typo update --------- Co-authored-by: CanisMinor --- .i18nrc.js | 2 +- locales/en_US/common.json | 4 +- locales/fr_FR/common.json | 4 +- locales/ja_JP/common.json | 4 +- locales/ko_KR/common.json | 4 +- locales/ru_RU/common.json | 4 +- locales/tr_TR/chat.json | 77 +++++++++ locales/tr_TR/common.json | 90 ++++++++++ locales/tr_TR/empty.json | 6 + locales/tr_TR/error.json | 51 ++++++ locales/tr_TR/market.json | 30 ++++ locales/tr_TR/migration.json | 45 +++++ locales/tr_TR/plugin.json | 129 ++++++++++++++ locales/tr_TR/setting.json | 301 +++++++++++++++++++++++++++++++++ locales/tr_TR/welcome.json | 14 ++ locales/zh_CN/common.json | 3 +- locales/zh_TW/common.json | 6 +- src/locales/default/common.ts | 1 + src/locales/options.ts | 4 + src/locales/resources/index.ts | 2 + src/locales/resources/tr_TR.ts | 23 +++ 21 files changed, 795 insertions(+), 9 deletions(-) create mode 100644 locales/tr_TR/chat.json create mode 100644 locales/tr_TR/common.json create mode 100644 locales/tr_TR/empty.json create mode 100644 locales/tr_TR/error.json create mode 100644 locales/tr_TR/market.json create mode 100644 locales/tr_TR/migration.json create mode 100644 locales/tr_TR/plugin.json create mode 100644 locales/tr_TR/setting.json create mode 100644 locales/tr_TR/welcome.json create mode 100644 src/locales/resources/tr_TR.ts diff --git a/.i18nrc.js b/.i18nrc.js index e26a9462c63b..56e3d8a8174f 100644 --- a/.i18nrc.js +++ b/.i18nrc.js @@ -5,7 +5,7 @@ module.exports = defineConfig({ reference: '翻译后的字数尽量和原文一致', entryLocale: 'zh_CN', output: 'locales', - outputLocales: ['zh_TW', 'en_US', 'ru_RU', 'ja_JP', 'ko_KR', 'fr_FR'], + outputLocales: ['zh_TW', 'en_US', 'ru_RU', 'ja_JP', 'ko_KR', 'fr_FR', 'tr_TR'], temperature: 0, modelName: 'gpt-3.5-turbo-1106', splitToken: 1024, diff --git a/locales/en_US/common.json b/locales/en_US/common.json index 98451e7759c0..f31fc302d16e 100644 --- a/locales/en_US/common.json +++ b/locales/en_US/common.json @@ -58,7 +58,9 @@ "ru-RU": "Russian", "zh": "Simplified Chinese", "zh-CN": "Simplified Chinese", - "zh-TW": "Traditional Chinese" + "zh-TW": "Traditional Chinese", + "fr-FR": "French", + "tr-TR": "Turkish" }, "layoutInitializing": "Initializing layout...", "noDescription": "No description available", diff --git a/locales/fr_FR/common.json b/locales/fr_FR/common.json index 06abd0c7e369..bbb300bfa7d4 100644 --- a/locales/fr_FR/common.json +++ b/locales/fr_FR/common.json @@ -58,7 +58,9 @@ "ru-RU": "Russe", "zh": "Chinois", "zh-CN": "Chinois simplifié", - "zh-TW": "Chinois traditionnel" + "zh-TW": "Chinois traditionnel", + "fr-FR": "français", + "tr-TR": "turque" }, "layoutInitializing": "Initialisation de la mise en page en cours...", "noDescription": "Aucune description disponible", diff --git a/locales/ja_JP/common.json b/locales/ja_JP/common.json index 97ffcc4cd8f3..a3d06e713e2e 100644 --- a/locales/ja_JP/common.json +++ b/locales/ja_JP/common.json @@ -58,7 +58,9 @@ "ru-RU": "ロシア語", "zh": "簡体字中国語", "zh-CN": "簡体字中国語", - "zh-TW": "繁体字中国語" + "zh-TW": "繁体字中国語", + "fr-FR": "フランス語", + "tr-TR": "トルコ語" }, "layoutInitializing": "レイアウトを初期化中...", "noDescription": "説明はありません", diff --git a/locales/ko_KR/common.json b/locales/ko_KR/common.json index b52ee2c4f8c8..e4c94dfe64eb 100644 --- a/locales/ko_KR/common.json +++ b/locales/ko_KR/common.json @@ -58,7 +58,9 @@ "ru-RU": "러시아어", "zh": "중국어", "zh-CN": "중국어(간체)", - "zh-TW": "중국어(번체)" + "zh-TW": "중국어(번체)", + "fr-FR": "프랑스어", + "tr-TR": "터키어" }, "layoutInitializing": "레이아웃을 불러오는 중...", "noDescription": "설명 없음", diff --git a/locales/ru_RU/common.json b/locales/ru_RU/common.json index 2bd6fbbff8cf..c38f13e2cfa1 100644 --- a/locales/ru_RU/common.json +++ b/locales/ru_RU/common.json @@ -58,7 +58,9 @@ "ru-RU": "Русский", "zh": "Китайский", "zh-CN": "Китайский", - "zh-TW": "Традиционный китайский" + "zh-TW": "Традиционный китайский", + "fr-FR": "французский", + "tr-TR": "турецкий" }, "layoutInitializing": "Инициализация макета...", "noDescription": "Нет описания", diff --git a/locales/tr_TR/chat.json b/locales/tr_TR/chat.json new file mode 100644 index 000000000000..115e35c4d721 --- /dev/null +++ b/locales/tr_TR/chat.json @@ -0,0 +1,77 @@ +{ + "agentDefaultMessage": "Merhaba, Ben **{{name}}**. Hemen benimle sohbet etmeye başlayabilirsiniz veya [Asistan Ayarları](/chat/settings#session={{id}}) sayfasına giderek bilgilerimi tamamlayabilirsiniz.", + "agentDefaultMessageWithSystemRole": "Merhaba, Ben **{{name}}**, {{systemRole}}. Hemen sohbet etmeye başlayalım!", + "backToBottom": "En alta git", + "clearCurrentMessages": "Mevcut oturum mesajlarını temizle", + "confirmClearCurrentMessages": "Mevcut oturum mesajlarını temizlemek üzeresiniz. Temizlendikten sonra geri alınamazlar. Lütfen eyleminizi onaylayın.", + "confirmRemoveSessionItemAlert": "Bu asistanı silmek üzeresiniz. Silindikten sonra geri alınamaz. Lütfen eyleminizi onaylayın.", + "defaultAgent": "Varsayılan Asistan", + "defaultSession": "Varsayılan Asistan", + "historyRange": "Geçmiş Aralığı", + "inbox": { + "defaultMessage": "Merhaba, ben sanal asistanınızım. Bana herhangi bir şey sorabilirsiniz ve size cevap vermek için elimden geleni yapacağım. Daha profesyonel veya özelleştirilmiş bir asistana ihtiyacınız varsa, özel bir asistan oluşturmak için `+` simgesine tıklayabilirsiniz.", + "desc": "Beyin fırtınasını başlatın ve yaratıcı düşünmeye başlayın. Sanal asistanınız burada, her konuda sizinle iletişim kurmak için hazır.", + "title": "Sohbet Et" + }, + "newAgent": "Yeni Asistan", + "noDescription": "Açıklama yok", + "pin": "Pin", + "pinOff": "Unpin", + "regenerate": "Tekrarla", + "roleAndArchive": "Rol ve Arşiv", + "searchAgentPlaceholder": "Arama yardımcıları ve konuşmalar...", + "send": "Gönder", + "sendPlaceholder": "Mesajınızı buraya yazın...", + "sessionList": "Asistanlar", + "shareModal": { + "download": "Ekran Görüntüsünü İndir", + "imageType": "Format", + "screenshot": "Ekran Görüntüsü", + "settings": "Ayarlar", + "shareToShareGPT": "ShareGPT Link Oluştur", + "withBackground": "Arka Plan", + "withFooter": "Footer", + "withPluginInfo": "Plugin Bilgileri", + "withSystemRole": "Asistan Rol" + }, + "stop": "Dur", + "stt": { + "action": "Ses Girişi", + "loading": "Tanımlanıyor...", + "prettifying": "İyileştiriliyor..." + }, + "temp": "Geçici", + "tokenDetail": "Rol Ayarı: {{systemRoleToken}} · Sohbet Geçmişi: {{chatsToken}}", + "tokenTag": { + "overload": "Limit Aşıldı", + "remained": "Kalan", + "used": "Kullanılan" + }, + "topic": { + "confirmRemoveAll": "Tüm konuları silmek üzeresiniz. Bir kere silindiğinde, geri alınamazlar. Lütfen dikkatli bir şekilde devam edin.", + "confirmRemoveTopic": "Bu konuyu silmek üzeresiniz. Bir kere silindiğinde, geri alınamaz. Lütfen dikkatli bir şekilde devam edin.", + "confirmRemoveUnstarred": "Yıldızlanmamış konuları silmek üzeresiniz. Bir kere silindiğinde, geri alınamazlar. Lütfen dikkatli bir şekilde devam edin.", + "defaultTitle": "Konu", + "openNewTopic": "Yeni Konu", + "removeAll": "Tüm Konuları Sil", + "removeUnstarred": "Tüm Yıldızlanmamış Konuları Sil", + "saveCurrentMessages": "Mevcut oturumu konu olarak kaydet", + "searchPlaceholder": "Konuları ara...", + "title": "Konular" + }, + "translate": { + "action": "Çeviri", + "clear": "Çeviriyi Temizle" + }, + "tts": { + "action": "Text-to-Speech", + "clear": "Clear Speech" + }, + "updateAgent": "Asistan Bilgilerini Güncelle", + "upload": { + "actionTooltip": "Resim Yükle", + "dragDesc": "Dosyaları buraya sürükleyip bırakın, birden fazla resim yüklemeyi destekler. Resimleri doğrudan göndermek için Shift tuşunu basılı tutun.", + "dragTitle": "Resim Yükle" + }, + "warp": "Warp" +} diff --git a/locales/tr_TR/common.json b/locales/tr_TR/common.json new file mode 100644 index 000000000000..75aac1de9d09 --- /dev/null +++ b/locales/tr_TR/common.json @@ -0,0 +1,90 @@ +{ + "about": "Hakkında", + "advanceSettings": "Gelişmiş Ayarlar", + "agentMaxToken": "Maksimum Oturum Süresi", + "agentModel": "Model", + "agentProfile": "Asistan Profili", + "appInitializing": "LobeChat başlatılıyor, lütfen bekleyin...", + "archive": "Arşiv", + "autoGenerate": "Otomatik Oluştur", + "autoGenerateTooltip": "Auto-generate agent description based on prompts", + "cancel": "İptal", + "changelog": "Changelog", + "close": "Kapat", + "confirmRemoveSessionItemAlert": "Bu asistanı silmek üzeresiniz. Silindikten sonra geri alınamaz. Lütfen eyleminizi onaylayın.", + "copy": "Kopyala", + "copySuccess": "Kopyalama Başarılı", + "defaultAgent": "Varsayılan Asistan", + "defaultSession": "Varsayılan Asistan", + "delete": "Sil", + "edit": "Düzenle", + "export": "Dışa Aktar", + "exportType": { + "agent": "Asistan Ayarlarını Dışa Aktar", + "agentWithMessage": "Asistan ve Mesajları Dışa Aktar", + "all": "Ayarları ve Asistan Verilerini Dışa Aktar", + "allAgent": "Tüm Asistan Verilerini Dışa Aktar", + "allAgentWithMessage": "Tüm Asistan ve Mesajları Dışa Aktar", + "globalSetting": "Ayarları Dışa Aktar" + }, + "feedback": "Feedback", + "historyRange": "Geçmiş Aralığı", + "import": "İçe Aktar", + "importModal": { + "finish": { + "onlySettings": "Sistem ayarları başarıyla içe aktarıldı", + "start": "Başla", + "subTitle": "Veri başarıyla aktarıldı, {{duration}} saniye sürdü. İçe aktarma ayrıntıları aşağıdaki gibidir:", + "title": "Veri başarıyla aktarıldı" + }, + "loading": "Veri aktarılıyor, lütfen bekleyin...", + "result": { + "added": "Başarıyla içe aktarıldı", + "errors": "İçe Aktarma Hataları", + "messages": "Mesajlar", + "sessions": "Asistanlar", + "skips": "Geç", + "topics": "Konular", + "type": "Tip" + }, + "title": "Veri İçe Aktar" + }, + "lang": { + "en": "İngilizce", + "en-US": "İngilizce", + "ja-JP": "Japonca", + "ko-KR": "Korece", + "ru-RU": "Rusça", + "zh": "Basitleştirilmiş Çince", + "zh-CN": "Basitleştirilmiş Çince", + "zh-TW": "Geleneksel Çince", + "fr-FR": "Fransızca", + "tr-TR": "Türkçe" + }, + "layoutInitializing": "Başlatılıyor...", + "noDescription": "Açıklama yok", + "ok": "Tamam", + "password": "Password", + "pin": "Pin", + "pinOff": "Unpin", + "regenerate": "Tekrarla", + "rename": "Yeniden İsimlendir", + "reset": "Reset", + "retry": "Yeniden Dene", + "send": "Gönder", + "setting": "Ayarlar", + "share": "Paylaş", + "stop": "Dur", + "tab": { + "chat": "Chat", + "market": "Keşfet", + "setting": "Ayarlar" + }, + "temp": "Geçici", + "updateAgent": "Asistan Bilgilerini Güncelle", + "upgradeVersion": { + "hasNew": "Yeni güncelleme mevcut", + "newVersion": "Yeni sürüm mevcut: {{version}}", + "action": "Güncelle" + } +} diff --git a/locales/tr_TR/empty.json b/locales/tr_TR/empty.json new file mode 100644 index 000000000000..0a4b02c5fc91 --- /dev/null +++ b/locales/tr_TR/empty.json @@ -0,0 +1,6 @@ +{ + "topic": { + "desc": "Mevcut konuşmayı kaydetmek ve yeni bir konuşma başlatmak için soldaki düğmeye tıklayın.", + "title": "Konular" + } +} diff --git a/locales/tr_TR/error.json b/locales/tr_TR/error.json new file mode 100644 index 000000000000..ddd1c2d55efa --- /dev/null +++ b/locales/tr_TR/error.json @@ -0,0 +1,51 @@ +{ + "pluginSettings": { + "desc": "Bu eklentiyi kullanmaya başlamak için aşağıdaki yapılandırmayı tamamlayın", + "title": "{{name}} Eklenti Ayarları" + }, + "response": { + "400": "Üzgünüm, sunucu isteğinizi anlamadı. Lütfen istek parametrelerinizin doğru olduğundan emin olun.", + "401": "Üzgünüm, sunucu isteğinizi reddetti, muhtemelen yetersiz izinler veya geçersiz kimlik doğrulama nedeniyle.", + "403": "Üzgünüm, sunucu isteğinizi reddetti. Bu içeriğe erişim izniniz yok.", + "404": "Üzgünüm, sunucu istediğiniz sayfa veya kaynağı bulamıyor. Lütfen URL'nizin doğru olduğundan emin olun.", + "405": "Üzgünüm, sunucu kullandığınız istek yöntemini desteklemiyor. Lütfen istek yönteminizin doğru olduğundan emin olun.", + "429": "Üzgünüm, isteğiniz çok sık ve sunucu biraz yorgun. Lütfen daha sonra tekrar deneyin.", + "500": "Üzgünüm, sunucu bazı zorluklar yaşıyor ve geçici olarak isteğinizi tamamlayamıyor. Lütfen daha sonra tekrar deneyin.", + "502": "Üzgünüm, sunucu kayboldu ve geçici olarak hizmet veremiyor. Lütfen daha sonra tekrar deneyin.", + "503": "Üzgünüm, sunucu şu anda isteğinizi işleyemiyor, muhtemelen aşırı yüklenme veya bakım nedeniyle. Lütfen daha sonra tekrar deneyin.", + "504": "Üzgünüm, sunucu yukarı akış sunucusundan bir yanıt alamadı. Lütfen daha sonra tekrar deneyin.", + "InvalidAccessCode": "Şifre yanlış veya boş. Lütfen doğru erişim şifresini girin veya özel bir OpenAI API Anahtarı ekleyin.", + "OpenAIBizError": "OpenAI hizmeti talep ederken hata oluştu. Aşağıdaki bilgilere dayanarak sorun giderin veya tekrar deneyin.", + "PluginMarketIndexNotFound": "Üzgünüm, sunucu eklenti dizinini bulamadı. Lütfen dizin adresinin doğru olup olmadığını kontrol edin", + "PluginMarketIndexInvalid": "Üzgünüm, eklenti dizini doğrulaması başarısız oldu. Lütfen dizin dosya formatının doğru olup olmadığını kontrol edin", + "PluginMetaNotFound": "Üzgünüm, dizinde eklenti bulunamadı. Lütfen dizindeki eklentinin yapılandırma bilgilerini kontrol edin", + "PluginMetaInvalid": "Üzgünüm, eklentinin meta veri doğrulaması başarısız oldu. Lütfen eklenti meta veri formatının doğru olup olmadığını kontrol edin", + "PluginManifestNotFound": "Üzgünüm, sunucu eklentinin bildirim dosyasını (manifest.json) bulamadı. Lütfen eklenti bildirim dosyası adresinin doğru olup olmadığını kontrol edin", + "PluginManifestInvalid": "Üzgünüm, eklentinin bildirim doğrulaması başarısız oldu. Lütfen bildirim formatının doğru olup olmadığını kontrol edin", + "PluginApiNotFound": "Üzgünüm, eklentinin bildiriminde API mevcut değil. Lütfen istek yönteminizin eklenti bildirim API'sı ile eşleşip eşleşmediğini kontrol edin", + "PluginApiParamsError": "Üzgünüm, eklenti isteği için giriş parametre doğrulaması başarısız oldu. Lütfen giriş parametrelerinin API açıklamasıyla eşleşip eşleşmediğini kontrol edin", + "PluginSettingsInvalid": "Bu eklenti, kullanılmadan önce doğru şekilde yapılandırılmalıdır. Lütfen yapılandırmanızın doğru olup olmadığını kontrol edin", + "PluginServerError": "Eklenti sunucusu isteği bir hata ile döndü. Lütfen aşağıdaki hata bilgilerine dayanarak eklenti bildirim dosyanızı, eklenti yapılandırmanızı veya sunucu uygulamanızı kontrol edin", + "NoAPIKey": "OpenAI API Anahtarı boş, lütfen özel bir OpenAI API Anahtarı ekleyin" + }, + "stt": { + "responseError": "Hizmet isteği başarısız oldu, lütfen yapılandırmayı kontrol edin veya tekrar deneyin" + }, + "tts": { + "responseError": "Hizmet isteği başarısız oldu, lütfen yapılandırmayı kontrol edin veya tekrar deneyin" + }, + "unlock": { + "apikey": { + "title": "Özel API Anahtarı Kullanın", + "description": "Konuşmayı başlatmak için OpenAI API Anahtarınızı girin. Uygulama API Anahtarınızı kaydetmeyecek.", + "addProxyUrl": "OpenAI Proxy URL'si Ekle (isteğe bağlı)" + }, + "confirm": "Onayla ve Yeniden Dene", + "password": { + "description": "Uygulama şifrelemesi yönetici tarafından etkinleştirilmiştir. Uygulamayı açmak için uygulama şifresini girin. Şifre sadece bir kez doldurulmalıdır.", + "title": "Uygulamayı Açmak için Şifre Girin", + "placeholder": "Lütfen şifre girin" + }, + "closeMessage": "Mesajı kapat" + } +} diff --git a/locales/tr_TR/market.json b/locales/tr_TR/market.json new file mode 100644 index 000000000000..6291a4f28e66 --- /dev/null +++ b/locales/tr_TR/market.json @@ -0,0 +1,30 @@ +{ + "addAgent": "Asistan Ekle", + "guide": { + "func1": { + "desc1": "Sohbet penceresinin sağ üst köşesindeki ayarlar simgesine tıklayarak asistana göndermek istediğiniz ayarlar sayfasına girin.", + "desc2": "Sağ üst köşedeki 'Asistan Pazarına Gönder' düğmesine tıklayın.", + "tag": "Method 1", + "title": "LobeChat üzerinden Gönder" + }, + "func2": { + "button": "Github Asistan Repositorisine Git", + "desc": "Asistanı dizine eklemek istiyorsanız, plugins dizininde agent-template.json veya agent-template-full.json kullanarak bir giriş oluşturun, kısa bir açıklama ve uygun etiketler yazın, ardından bir çekme isteği oluşturun.", + "tag": "Method 2", + "title": "Github üzerinden Gönder" + } + }, + "search": { + "placeholder": "Asistanadı, açıklama veya anahtar kelimeleri ara..." + }, + "sidebar": { + "comment": "Yorumlar", + "prompt": "Prompts", + "title": "Asistan Detay" + }, + "submitAgent": "Asistan Ekle", + "title": { + "recentSubmits": "Son Eklenenler", + "allAgents": "Tüm Asistanlar" + } +} diff --git a/locales/tr_TR/migration.json b/locales/tr_TR/migration.json new file mode 100644 index 000000000000..076b307952ee --- /dev/null +++ b/locales/tr_TR/migration.json @@ -0,0 +1,45 @@ +{ + "dbV1": { + "action": { + "clearDB": "Yerel Verileri Temizle", + "downloadBackup": "Yedeğini İndir", + "reUpgrade": "Yeniden Yükselt", + "start": "Başla", + "upgrade": "Yükselt" + }, + "clear": { + "confirm": "Yerel verileri temizlemek üzeresiniz (global ayarlar etkilenmeyecek). Lütfen yedeği indirdiğinizi onaylayın." + }, + "description": "Yeni sürümde, LobeChat'in veri arttı. Bu nedenle, size daha iyi bir kullanıcı deneyimi sunmak için eski sürüm verilerini yükseltmemiz gerekiyor.", + "features": { + "capability": { + "desc": "IndexedDB teknolojisine ile ömür boyu konuşma mesajları depolayabilir.", + "title": "Yüksek Kapasite" + }, + "performance": { + "title": "Yüksek Performans", + "desc": "Milyonlarca mesaj otomatik olarak indekslenir ve sorgu yanıtları milisaniyeler içinde gerçekleşir." + }, + "use": { + "desc": "Başlıkları, açıklamaları, etiketleri, mesaj içeriğini ve hatta çevrilmiş metni aramayı destekler, günlük arama verimliliğini büyük ölçüde artırır.", + "title": "Daha Kullanıcı Dostu" + } + }, + "title": "LobeChat Data Evolution", + "upgrade": { + "error": { + "title": "Veritabanı Yükseltmesi Başarısız Oldu", + "subTitle": "Üzgünüz, veritabanı yükseltme işlemi sırasında bir hata oluştu. Lütfen şu çözümleri deneyin: A. Yerel verileri temizleyin ve yedek verileri yeniden içe aktarın; B. 'Yükseltmeyi Yeniden Dene' düğmesine tıklayın.

Sorun devam ederse, lütfen <1>bir istek gönderin, en kısa sürede size yardımcı olacağız." + }, + "success": { + "subTitle": "LobeChat'in veritabanı en son sürüme başarıyla yükseltildi. Şimdi deneyimlemeye başlayın!", + "title": "Veritabanı Yükseltmesi Başarılı" + } + }, + "upgradeTip": "Yükseltme işlemi yaklaşık 10 ila 20 saniye sürecektir. Lütfen yükseltme sırasında LobeChat'i kapatmayın." + }, + "migrateError": { + "missVersion": "İçe aktarılan verilerde bir sürüm numarası eksik. Lütfen dosyayı kontrol edin ve tekrar deneyin.", + "noMigration": "Mevcut sürüm için bir geçiş çözümü bulunamadı. Lütfen sürüm numarasını kontrol edin ve tekrar deneyin. Sorun devam ederse, lütfen bir geri bildirim isteği gönderin." + } +} diff --git a/locales/tr_TR/plugin.json b/locales/tr_TR/plugin.json new file mode 100644 index 000000000000..fe2af719e741 --- /dev/null +++ b/locales/tr_TR/plugin.json @@ -0,0 +1,129 @@ +{ + "debug": { + "arguments": "Argümanlar", + "function_call": "Fonksiyon Çağrısı", + "off": "Hata Ayıklamayı Kapat", + "on": "Eklenti Çağrı Bilgilerini Görüntüle", + "response": "Yanıt" + }, + "dev": { + "confirmDeleteDevPlugin": "Bu eklentiyi silmek istediğinizden emin misiniz? Bir kere silindiğinde, geri alınamaz.", + "deleteSuccess": "Eklenti başarıyla silindi", + "manifest": { + "identifier": { + "desc": "Eklenti için benzersiz tanımlayıcı", + "label": "Tanımlayıcı" + }, + "mode": { + "local": "Yapılandırma", + "local-tooltip": "Yapılandırma geçici olarak desteklenmiyor", + "url": "Çevrimiçi Bağlantı" + }, + "name": { + "desc": "Eklenti başlığı", + "label": "Başlık", + "placeholder": "Arama Motoru" + } + }, + "meta": { + "author": { + "desc": "Eklentinin yazarı", + "label": "Yazar" + }, + "avatar": { + "desc": "Eklenti simgesi, Emoji veya URL kullanılabilir", + "label": "Simge" + }, + "description": { + "desc": "Eklenti açıklaması", + "label": "Açıklama", + "placeholder": "Bilgi için arama motorunu sorgula" + }, + "formFieldRequired": "Bu alan gereklidir", + "homepage": { + "desc": "Eklentinin ana sayfası", + "label": "Ana Sayfa" + }, + "identifier": { + "desc": "Eklenti için benzersiz tanımlayıcı, manifestten otomatik olarak tanınacak", + "errorDuplicate": "Tanımlayıcı başka bir eklenti tarafından kullanılıyor, lütfen tanımlayıcıyı değiştirin", + "label": "Tanımlayıcı", + "pattenErrorMessage": "Sadece İngilizce karakterler, sayılar, - ve _ kullanılabilir" + }, + "manifest": { + "desc": "LobeChat, eklentiyi bu bağlantı üzerinden yükleyecek", + "label": "Eklenti Tanım Dosyası (Manifest) URL'si", + "preview": "Manifesti Önizle", + "refresh": "Yenile" + }, + "title": { + "desc": "Eklenti başlığı", + "label": "Başlık", + "placeholder": "Arama Motoru" + } + }, + "metaConfig": "Eklenti meta veri yapılandırması", + "modalDesc": "Özel bir eklenti ekledikten sonra, eklenti doğrulama için veya doğrudan oturumda kullanılabilir. Eklenti geliştirme için lütfen <1>geliştirme dokümantasyonuna↗ başvurun.", + "preview": { + "card": "Eklenti Görünümünü Önizle", + "desc": "Eklenti Açıklamasını Önizle", + "title": "Eklenti Adı Önizlemesi" + }, + "save": "Eklentiyi Yükle", + "saveSuccess": "Eklenti ayarları başarıyla kaydedildi", + "tabs": { + "manifest": "Manifest Tanımı", + "meta": "Eklenti Meta Verileri" + }, + "title": "Eklenti Ekle", + "update": "Güncelle", + "updateSuccess": "Eklenti ayarları başarıyla güncellendi" + }, + "error": { + "fetchError": "Manifest bağlantısı alınamadı. Lütfen bağlantının geçerli olduğundan ve çapraz köken erişimine izin verdiğinden emin olun.", + "installError": "{{name}} eklentisi yüklenemedi", + "manifestInvalid": "Manifest, şartnameye uygun değil. Doğrulama sonucu: \n\n {{error}}", + "noManifest": "Manifest dosyası mevcut değil", + "reinstallError": "{{name}} eklentisi yenilenemedi", + "urlError": "Bağlantı JSON formatında içerik döndürmedi. Lütfen geçerli bir bağlantı olduğundan emin olun" + }, + "list": { + "item": { + "deprecated.title": "Eski", + "local.config": "Yapılandırma", + "local.title": "Özel" + } + }, + "loading": { + "content": "Eklenti çağrılıyor...", + "plugin": "Eklenti çalışıyor..." + }, + "pluginList": "Eklenti Listesi", + "plugins": { + "loading": "Eklentiler kontrol ediliyor...", + "unknown": "Bilinmeyen eklenti" + }, + "setting": "Eklenti Ayarları", + "settings": { + "indexUrl": { + "title": "Pazar Endeksi", + "tooltip": "Çevrimiçi düzenleme şu anda desteklenmiyor. Lütfen dağıtım sırasında çevre değişkenleri üzerinden ayarlayın." + }, + "modalDesc": "Eklenti pazarı adresini yapılandırdıktan sonra, özel bir eklenti pazarı kullanabilirsiniz.", + "title": "Eklenti Pazarı Ayarla" + }, + "store": { + "empty": "Henüz yüklenmiş eklenti yok", + "install": "Yükle", + "installAllPlugins": "Tümünü Yükle", + "networkError": "Eklenti mağazası alınamadı. Lütfen ağ bağlantınızı kontrol edin ve tekrar deneyin.", + "releasedAt": "{{createdAt}} tarihinde yayınlandı", + "tabs": { + "all": "Tümü", + "installed": "Yüklü" + }, + "title": "Eklenti Mağazası", + "uninstall": "Kaldır", + "placeholder": "Eklenti adını, açıklamasını veya anahtar kelimeleri ara..." + } +} diff --git a/locales/tr_TR/setting.json b/locales/tr_TR/setting.json new file mode 100644 index 000000000000..84e5731aca98 --- /dev/null +++ b/locales/tr_TR/setting.json @@ -0,0 +1,301 @@ +{ + "danger": { + "clear": { + "action": "Temizle", + "confirm": "Tüm sohbet verilerini temizlemeyi onaylıyor musunuz?", + "desc": "Bu, oturum verilerini, asistanı, dosyaları, mesajları, eklentileri vb. temizleyecektir.", + "success": "Tüm oturum mesajları temizlendi", + "title": "Tüm Oturum Mesajlarını Temizle" + }, + "reset": { + "action": "Sıfırla", + "confirm": "Tüm ayarları sıfırlamayı onaylıyor musunuz?", + "currentVersion": "Geçerli Sürüm", + "desc": "Tüm ayarları varsayılan değerlere sıfırlar", + "title": "Tüm Ayarları Sıfırla" + } + }, + "header": { + "global": "Genel Ayarlar", + "session": "Oturum Ayarları", + "sessionWithName": "Oturum Ayarları · {{name}}" + }, + "llm": { + "AzureOpenAI": { + "endpoint": { + "desc": "Bu değer, Azure portalındaki kaynağı kontrol ederken 'Keys and Endpoints' bölümünde bulunabilir", + "placeholder": "https://docs-test-001.openai.azure.com", + "title": "Azure API Adresi" + }, + "models": { + "desc": "Desteklenen modeller", + "title": "Model Listesi" + }, + "title": "Azure OpenAI Ayarları", + "token": { + "desc": "Bu değer, Azure portalındaki kaynağı kontrol ederken 'Keys and Endpoints' bölümünde bulunabilir. KEY1 veya KEY2'yi kullanabilirsiniz", + "placeholder": "Azure API Anahtarı", + "title": "API Anahtarı" + } + }, + "OpenAI": { + "azureApiVersion": { + "desc": "Azure için API sürümü, YYYY-MM-DD formatını takip eder, [en son sürümü kontrol edin](https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions)", + "fetch": "Listeyi Al", + "title": "Azure API Sürümü" + }, + "check": { + "button": "Kontrol Et", + "desc": "Api Anahtarı ve proxy adresinin doğru şekilde doldurulup doldurulmadığını test eder", + "pass": "Kontrol Başarılı", + "title": "Bağlantı Kontrolü" + }, + "customModelName": { + "desc": "Özel modeller ekleyin, birden fazla modeli virgülle (,) ayırarak yazın", + "placeholder": "model1,model2,model3", + "title": "Özel Model Adı" + }, + "endpoint": { + "desc": "Varsayılan adresin yanı sıra http(s):// içermelidir", + "placeholder": "https://api.openai.com/v1", + "title": "API Proxy Adresi" + }, + "models": { + "count": "Toplam {{count}} modeli destekler", + "desc": "Desteklenen modeller", + "fetch": "Model Listesini Al", + "notSupport": "Azure OpenAI şu anda model listesini görüntülemeyi desteklemiyor", + "notSupportTip": "Dağıtım adının model adıyla eşleştiğinden emin olmalısınız", + "refetch": "Model Listesini Yeniden Al", + "title": "Model Listesi" + }, + "title": "OpenAI Ayarları", + "token": { + "desc": "Kendi OpenAI Anahtarınızı kullanın", + "placeholder": "OpenAI API Anahtarı", + "title": "API Anahtarı" + }, + "useAzure": { + "desc": "Azure tarafından sağlanan OpenAI hizmetlerini kullanın", + "fetch": "Listeyi Al", + "serverConfig": "Yönetici, sunucu tarafında Azure OpenAI'yi etkinleştirdi ve değiştirme yasağı getirdi", + "title": "Azure OpenAI" + } + }, + "waitingForMore": "Daha fazla model eklenmesi planlanıyor ✨" + }, + "plugin": { + "addTooltip": "Eklenti Ekle", + "clearDeprecated": "Kullanım Dışı Eklentileri Kaldır", + "empty": "Henüz eklenti yok, <1>Eklenti Mağazası'nı keşfetmekten çekinmeyin", + "installStatus": { + "deprecated": "Kaldırıldı" + }, + "settings": { + "hint": "Açıklamaya dayalı olarak aşağıdaki yapılandırmaları doldurun", + "title": "{{id}} Eklenti Yapılandırması", + "tooltip": "Eklenti Yapılandırması" + }, + "store": "Eklenti Mağazası" + }, + "settingAgent": { + "avatar": { + "title": "Avatar" + }, + "backgroundColor": { + "title": "Arka Plan Rengi" + }, + "description": { + "placeholder": "Asistan açıklamasını girin", + "title": "Asistan Açıklaması" + }, + "name": { + "placeholder": "Asistan adını girin", + "title": "Ad" + }, + "prompt": { + "placeholder": "Prompt girin", + "title": "Rol Ayarı" + }, + "tag": { + "placeholder": "Etiket girin", + "title": "Etiket" + }, + "title": "Asistan Bilgileri" + }, + "settingChat": { + "autoCreateTopicThreshold": { + "desc": "Mevcut mesaj sayısı bu değeri aştığında otomatik olarak bir konu oluşturulur", + "title": "Mesaj Sınırı" + }, + "chatStyleType": { + "title": "Sohbet Pencere Stili", + "type": { + "chat": "Konuşma Modu", + "docs": "Belge Modu" + } + }, + "compressThreshold": { + "desc": "Sıkıştırılmamış geçmiş mesajlar bu değeri aştığında sıkıştırma uygulanır", + "title": "Geçmiş Mesaj Uzunluğu Sıkıştırma Eşiği" + }, + "enableAutoCreateTopic": { + "desc": "Sohbet sırasında otomatik olarak bir konu oluşturup oluşturmayacağınız, yalnızca geçici konularda etkilidir", + "title": "Otomatik Konu Oluştur" + }, + "enableCompressThreshold": { + "title": "Geçmiş Mesaj Uzunluğu Sıkıştırma Eşiği Kullan" + }, + "enableHistoryCount": { + "alias": "Sınırsız", + "limited": "Yalnızca {{number}} konuşma mesajını içerir", + "title": "Geçmiş Mesaj Sayısı Sınırlama", + "unlimited": "Sınırsız geçmiş mesaj sayısı" + }, + "historyCount": { + "desc": "Her istekle taşınan tarihsel mesaj sayısı", + "title": "Eklenen Geçmiş Mesaj Sayısı" + }, + "inputTemplate": { + "desc": "Kullanıcının son mesajı bu şablona doldurulur", + "placeholder": "Ön işleme şablonu {{text}}, gerçek zamanlı giriş bilgileri ile değiştirilir", + "title": "Kullanıcı Girişi Ön İşleme" + }, + "title": "Sohbet Ayarları" + }, + "settingModel": { + "enableMaxTokens": { + "title": "Max Token Sınırlamasını Etkinleştir" + }, + "frequencyPenalty": { + "desc": "Değer ne kadar yüksekse, tekrarlayan kelimeleri azaltma olasılığı o kadar yüksektir", + "title": "Frequency Penalty" + }, + "maxTokens": { + "desc": "Her etkileşim için kullanılan maksimum token sayısı", + "title": "Max Token Sınırlaması" + }, + "model": { + "desc": "ChatGPT modeli", + "list": { + "gpt-3.5-turbo": "GPT 3.5", + "gpt-3.5-turbo-16k": "GPT 3.5 (16K)", + "gpt-4": "GPT 4", + "gpt-4-32k": "GPT 4 (32K)" + }, + "title": "Model" + }, + "presencePenalty": { + "desc": "Değer ne kadar yüksekse, yeni konulara genişleme olasılığı o kadar yüksektir", + "title": "Presence Penalty" + }, + "temperature": { + "desc": "Değer ne kadar yüksekse, yanıt o kadar rastgele olur", + "title": "Randomness", + "titleWithValue": "temperature {{value}}" + }, + "title": "Model Ayarları", + "topP": { + "desc": "temperature gibi, ancak temperature ile birlikte değişmez", + "title": "Top P" + } + }, + "settingPlugin": { + "title": "Eklenti Listesi" + }, + "settingSystem": { + "accessCode": { + "desc": "Yönetici tarafından şifreleme erişimi etkinleştirildi", + "placeholder": "Erişim şifresini girin", + "title": "Erişim Şifresi" + }, + "title": "Sistem Ayarları" + }, + "settingTTS": { + "openai": { + "sttModel": "OpenAI Konuşmadan Metne Modeli", + "ttsModel": "OpenAI Metin Seslendirme Modeli" + }, + "showAllLocaleVoice": { + "desc": "Kapalıysa, yalnızca mevcut dildeki sesler görüntülenir", + "title": "Tüm Yerel Sesleri Göster" + }, + "stt": "Konuşmadan Metne Ayarlar", + "sttAutoStop": { + "desc": "Kapalıysa, konuşmadan metni otomatik olarak sona ermez ve manuel olarak durdurmak için tıklamanız gerekir", + "title": "Otomatik Durdur Konuşmadan Metin" + }, + "sttLocale": { + "desc": "Konuşmadan metin dilini, bu seçenek konuşmadan metin tanıma doğruluğunu artırabilir", + "title": "Konuşmadan Metin Dil" + }, + "sttService": { + "desc": "'Tarayıcı' yerel konuşmadan metin hizmeti olduğundan", + "title": "Konuşmadan Metin Hizmeti" + }, + "title": "Konuşma Hizmeti", + "tts": "Metin Seslendirme Ayarlar", + "ttsService": { + "desc": "OpenAI metin seslendirme hizmetini kullanıyorsanız, OpenAI model hizmetinin etkin olduğundan emin olun", + "title": "Metin Seslendirme Hizmeti" + }, + "voice": { + "desc": "Mevcut asistan için bir ses seçin, farklı TTS hizmetleri farklı sesleri destekler", + "preview": "Ses Önizlemesi", + "title": "Metin Seslendirme" + } + }, + "settingTheme": { + "avatar": { + "title": "Avatar" + }, + "fontSize": { + "desc": "Sohbet içeriği için yazı boyutu", + "title": "Yazı Boyutu" + }, + "lang": { + "autoMode": "Sistem Takibi", + "title": "Dil" + }, + "neutralColor": { + "desc": "Farklı renk eğilimleri için özel nötr renk", + "title": "Nötr Renk" + }, + "primaryColor": { + "desc": "Özel ana tema rengi", + "title": "Ana Renk" + }, + "themeMode": { + "auto": "Oto", + "dark": "Karanlık", + "light": "Açık", + "title": "Tema" + }, + "title": "Tema Ayarları" + }, + "submitAgentModal": { + "button": "Asistan Gönder", + "identifier": "Asistan Kimliği", + "metaMiss": "Lütfen göndermeden önce asistan bilgilerini tamamlayın. Bu, ad, açıklama ve etiketleri içermelidir.", + "placeholder": "Asistan için benzersiz bir kimlik girin, örneğin web-geliştirme", + "tooltips": "Asistan pazarına paylaşın" + }, + "tab": { + "agent": "Varsayılan Asistan", + "common": "Genel Ayarlar", + "llm": "Modeller", + "tts": "Metin Seslendirme" + }, + "tools": { + "builtins": { + "groupName": "Dahili Araçlar" + }, + "plugins": { + "enabled": "Etkin: {{num}}", + "groupName": "Eklentiler", + "noEnabled": "Etkin eklenti yok", + "store": "Eklenti Mağazası" + }, + "title": "Uzantı Araçları" + } +} diff --git a/locales/tr_TR/welcome.json b/locales/tr_TR/welcome.json new file mode 100644 index 000000000000..4387151e76be --- /dev/null +++ b/locales/tr_TR/welcome.json @@ -0,0 +1,14 @@ +{ + "button": { + "import": "İçe Aktar", + "start": "Başla" + }, + "header": "Hoş geldiniz", + "pickAgent": "Veya aşağıdaki asistan şablonlarından birini seçin", + "skip": "Atla", + "slogan": { + "desc1": "Düşünmenin ve yaratmanın yeni çağının öncüsü. Size, Süper Birey'e özel olarak oluşturuldu.", + "desc2": "İlk asistanınızı oluşturun ve başlayalım~", + "title": "Beyninizin süper gücünü açığa çıkarın" + } +} diff --git a/locales/zh_CN/common.json b/locales/zh_CN/common.json index abb1ffe08ba3..07cc0dec8baf 100644 --- a/locales/zh_CN/common.json +++ b/locales/zh_CN/common.json @@ -58,7 +58,8 @@ "ru-RU": "俄语", "zh": "简体中文", "zh-CN": "简体中文", - "zh-TW": "繁体中文" + "zh-TW": "繁体中文", + "tr-TR": "土耳其语" }, "layoutInitializing": "正在加载布局...", "noDescription": "暂无描述", diff --git a/locales/zh_TW/common.json b/locales/zh_TW/common.json index 4da28fd64355..f4242fd88fa1 100644 --- a/locales/zh_TW/common.json +++ b/locales/zh_TW/common.json @@ -57,8 +57,10 @@ "ko-KR": "韓文", "ru-RU": "俄文", "zh": "簡體中文", - "zh-CN": "簡體中文", - "zh-TW": "繁體中文" + "zh-CN": "簡體中文",n + "zh-TW": "繁體中文", + "fr-FR": "法語", + "tr-TR": "土耳其" }, "layoutInitializing": "正在載入版面配置...", "noDescription": "暫無描述", diff --git a/src/locales/default/common.ts b/src/locales/default/common.ts index 7add3d2fe527..26efeae5ea92 100644 --- a/src/locales/default/common.ts +++ b/src/locales/default/common.ts @@ -56,6 +56,7 @@ export default { 'ja-JP': '日语', 'ko-KR': '韩语', 'ru-RU': '俄语', + 'tr-TR': '土耳其语', 'zh': '简体中文', 'zh-CN': '简体中文', 'zh-TW': '繁体中文', diff --git a/src/locales/options.ts b/src/locales/options.ts index 8f25817b7eb8..9af414b42cdc 100644 --- a/src/locales/options.ts +++ b/src/locales/options.ts @@ -36,6 +36,10 @@ export const localeOptions: LocaleOptions = [ label: 'Français', value: 'fr-FR', }, + { + label: 'Turkish', + value: 'tr-TR', + } ] as LocaleOptions; export const supportLangs: string[] = localeOptions.map((i) => i.value); diff --git a/src/locales/resources/index.ts b/src/locales/resources/index.ts index bde29da699f5..3504660b49f0 100644 --- a/src/locales/resources/index.ts +++ b/src/locales/resources/index.ts @@ -1,5 +1,6 @@ import en_US from './en_US'; import fr_FR from './fr_FR'; +import tr_TR from './tr_TR'; import ja_JP from './ja_JP'; import ko_KR from './ko_KR'; import ru_RU from './ru_RU'; @@ -12,6 +13,7 @@ const resources = { 'ja-JP': ja_JP, 'ko-KR': ko_KR, 'ru-RU': ru_RU, + 'tr-TR': tr_TR, 'zh-CN': zh_CN, 'zh-TW': zh_TW, } as const; diff --git a/src/locales/resources/tr_TR.ts b/src/locales/resources/tr_TR.ts new file mode 100644 index 000000000000..0a3782cc3739 --- /dev/null +++ b/src/locales/resources/tr_TR.ts @@ -0,0 +1,23 @@ +import chat from '../../../locales/tr_TR/chat.json'; +import common from '../../../locales/tr_TR/common.json'; +import empty from '../../../locales/tr_TR/empty.json'; +import error from '../../../locales/tr_TR/error.json'; +import market from '../../../locales/tr_TR/market.json'; +import migration from '../../../locales/tr_TR/migration.json'; +import plugin from '../../../locales/tr_TR/plugin.json'; +import setting from '../../../locales/tr_TR/setting.json'; +import welcome from '../../../locales/tr_TR/welcome.json'; + +const resources = { + chat, + common, + empty, + error, + market, + migration, + plugin, + setting, + welcome, +} as const; + +export default resources;