From 9c37e635ae5ac814a9a95eab14b9cd65d85dbd3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mustafa=20Gen=C3=A7?= Date: Wed, 21 Oct 2020 01:32:23 +0300 Subject: [PATCH] added turkish language --- src/components/settings/app.tsx | 3 +- src/scripts/i18n/README.md | 1 + src/scripts/i18n/_locales.ts | 2 + src/scripts/i18n/tr.json | 232 ++++++++++++++++++++++++++++++++ 4 files changed, 237 insertions(+), 1 deletion(-) create mode 100644 src/scripts/i18n/tr.json diff --git a/src/components/settings/app.tsx b/src/components/settings/app.tsx index a790ef6..80f1281 100644 --- a/src/components/settings/app.tsx +++ b/src/components/settings/app.tsx @@ -107,7 +107,8 @@ class AppTab extends React.Component { { key: "en-US", text: "English" }, { key: "es", text: "Español" }, { key: "fr-FR", text: "Français" }, - { key: "zh-CN", text: "中文(简体)" }, + { key: "zh-CN", text: "中文(简体)" }, + { key: "tr", text: "Türkçe" }, ] toggleStatus = () => { diff --git a/src/scripts/i18n/README.md b/src/scripts/i18n/README.md index b229378..12dc163 100644 --- a/src/scripts/i18n/README.md +++ b/src/scripts/i18n/README.md @@ -9,5 +9,6 @@ Currently, Fluent Reader supports the following languages. | fr-FR | Français | [@Toinane](https://github.com/Toinane) | | zh-CN | 中文(简体) | [@yang991178](https://github.com/yang991178) | | de | Deutsch | [@NoNamePro0](https://github.com/NoNamePro0) | +| tr | Türkçe | [@mustafagenc](https://github.com/mustafagenc) | Refer to the repo of [react-intl-universal](https://github.com/alibaba/react-intl-universal) to get started on internationalization. diff --git a/src/scripts/i18n/_locales.ts b/src/scripts/i18n/_locales.ts index 28f2b93..01a820c 100644 --- a/src/scripts/i18n/_locales.ts +++ b/src/scripts/i18n/_locales.ts @@ -3,6 +3,7 @@ import zh_CN from "./zh-CN.json" import fr_FR from "./fr-FR.json" import de from "./de.json" import es from "./es.json" +import tr from "./tr.json" const locales = { "en-US": en_US, @@ -10,6 +11,7 @@ const locales = { "fr-FR": fr_FR, "de": de, "es": es, + "tr": tr, } export default locales \ No newline at end of file diff --git a/src/scripts/i18n/tr.json b/src/scripts/i18n/tr.json new file mode 100644 index 0000000..66d0e9b --- /dev/null +++ b/src/scripts/i18n/tr.json @@ -0,0 +1,232 @@ +{ + "allArticles": "Tüm Yazılar", + "add": "Ekle", + "create": "Ekle", + "icon": "Simge", + "name": "Ad", + "openExternal": "Yeni pencerede aç", + "emptyName": "Bu alan boş olamaz.", + "emptyField": "Bu alan boş olamaz.", + "edit": "Düzenle", + "delete": "Sil", + "followSystem": "Sistem dili", + "more": "Daha fazla", + "close": "Kapat", + "search": "Ara", + "loadMore": "Daha fazla", + "dangerButton": "İşleme devam et ({action})", + "confirmMarkAll": "Bu sayfadaki tüm yazıları gerçekten okundu olarak işaretlemek istiyor musunuz?", + "confirm": "Tamam", + "cancel": "İptal Et", + "time": { + "now": "şu an", + "m": "d", + "h": "s", + "d": "g", + "minute": "{m, plural, =1 {# dakika} other {# dakika}}", + "hour": "{h, plural, =1 {# saat} other {# saat}}", + "day": "{d, plural, =1 {# gün} other {# gün}}" + }, + "log": { + "empty": "Bildirim yok", + "fetchFailure": "\"{name}\" kaynağı yüklenemedi.", + "fetchSuccess": "{count, plural, =1 {# yazı} other {# yazı}} başarıyla güncellendi.", + "networkError": "Ağ hatası oluştu.", + "parseError": "XML beslemesi ayrıştırılırken bir hata oluştu..", + "syncFailure": "Hizmet ile senkronize edilemedi" + }, + "nav": { + "menu": "Menü", + "refresh": "Yenile", + "markAllRead": "Tümünü okundu olarak işaretle", + "notifications": "Bildirimler", + "view": "Görünüm", + "settings": "Ayarlar", + "minimize": "Simge durumuna küçült", + "maximize": "Ekranı kapla" + }, + "menu": { + "close": "Kapat", + "subscriptions": "Abonelikler" + }, + "article": { + "error": "Yazı yüklenemedi.", + "reload": "Tekrar yükle?", + "empty": "Yazı yok", + "untitled": "(Başlıksız)", + "hide": "Yazıyı gizle", + "unhide": "Yazıyı göster", + "markRead": "Okundu olarak işaretle", + "markUnread": "Okunmamış olarak işaretle", + "markAbove": "Yukarıdakileri okundu olarak işaretle", + "markBelow": "Aşağıdakileri okundu olarak işaretle", + "star": "Yıldız ekle", + "unstar": "Yıldızı kaldır", + "fontSize": "Yazı boyutu", + "loadWebpage": "Web sayfasını yükle", + "loadFull": "Tam içeriği yükle", + "notify": "Arka planda getirilirse bildir", + "dontNotify": "Bildirme" + }, + "context": { + "share": "Paylaş", + "read": "Oku", + "copyTitle": "Başlığı kopyala", + "copyURL": "Bağlantıyı kopyala", + "copy": "Kopyala", + "search": "{engine}'da \"{text}\" ara", + "view": "Görünüm", + "cardView": "Kart görünümü", + "listView": "Liste görünümü", + "magazineView": "Dergi görünümü", + "compactView": "Kompakt görünüm", + "filter": "Filtreleme", + "unreadOnly": "Okunmamışlar", + "starredOnly": "Yıldızlılar", + "fullSearch": "Tam metinde ara", + "showHidden": "Gizli yazıları göster", + "manageSources": "Kaynakları yönet", + "saveImageAs": "Resmi farklı kaydet …", + "copyImage": "Resmi kopyala", + "copyImageURL": "Resim bağlantısını kopyala", + "caseSensitive": "Harfe duyarlı", + "showCover": "Resmi göster", + "showSnippet": "Açıklama göster", + "fadeRead": "Okunanları karart" + }, + "searchEngine": { + "name": "Arama motoru", + "google": "Google", + "bing": "Bing", + "baidu": "Baidu", + "duckduckgo": "DuckDuckGo" + }, + "settings": { + "writeError": "Dosyayı yazarken bir hata oluştu.", + "name": "Ayarlar", + "fetching": "Kaynaklar güncelleniyor, lütfen bekleyin…", + "exit": "Çıkış", + "sources": "Kaynaklar", + "grouping": "Gruplar", + "rules": "Kurallar", + "service": "Hizmetler", + "app": "Tercihler", + "about": "Hakkında", + "version": "Sürüm", + "shortcuts": "Kısayollar", + "openSource": "Açık Kaynak", + "feedback": "Geri Bildirim" + }, + "sources": { + "serviceWarning": "Sources imported or added here will not be synced with your service.", + "serviceManaged": "Bu kaynak, hizmetiniz tarafından yönetilmektedir.", + "untitled": "Kaynak", + "errorAdd": "Kaynak eklenirken bir hata oluştu.", + "errorParse": "OPML dosyası ayrıştırılırken bir hata oluştu.", + "errorParseHint": "Lütfen dosyanın bozuk olmadığından ve UTF-8 formatında olduğundan emin olun.", + "errorImport": "İçe aktarma hatası {count, plural, =1 {# kaynak} other {# kaynak}}.", + "exist": "Bu kaynak zaten var.", + "opmlFile": "OPML Dosyası", + "name": "Kaynak adı", + "editName": "Güncelle", + "fetchFrequency": "Yenileme sıklığı", + "unlimited": "Sınırsız", + "openTarget": "Yazılar için varsayılan işlem", + "delete": "Sil", + "add": "Kaynak ekle", + "import": "İçe Aktar", + "export": "Dışa Aktar", + "rssText": "RSS tam metni", + "loadWebpage": "Web sayfasını yükle", + "inputUrl": "URL girin", + "badIcon": "Geçersiz simge", + "badUrl": "Geçersiz URL", + "deleteWarning": "Kaynak ve kaydedilen tüm yazılar kaldırılacaktır.", + "selected": "Seçilen kaynak", + "selectedMulti": "Birden çok kaynak seçildi" + }, + "groups": { + "exist": "Bu grup zaten var.", + "type": "Tip", + "group": "Grup", + "source": "Kaynak", + "capacity": "Kapasite", + "exitGroup": "Geri", + "deleteSource": "Sil", + "sourceHint": "Yeniden sıralamak için kaynakları sürükleyip bırakın.", + "create": "Grup oluştur", + "selectedGroup": "Grup", + "selectedSource": "Kaynağı seç", + "enterName": "Ad girin", + "editName": "Güncelle", + "deleteGroup": "Sil", + "chooseGroup": "Grup seç", + "addToGroup": "Ekle", + "groupHint": "Kaynakları düzenlemek için gruba çift tıklayın. Yeniden sıralamak için sürükleyip bırakın." + }, + "rules": { + "intro": "Yazıları otomatik olarak işaretle yada düzenli ifadeler (regex) ile bildirimler gönder.", + "help": "Daha fazla bilgi edin", + "source": "Kaynak", + "selectSource": "Kaynak Seçin", + "new": "Yeni kural", + "if": "Eğer", + "then": "Sonra", + "title": "Başlık", + "content": "İçerik", + "fullSearch": "Başlık veya İçerik", + "creator": "Yazar", + "match": "eşleşiyorsa", + "notMatch": "eşleşmiyorsa", + "regex": "Düzenli ifade (Regex)", + "badRegex": "Geçersiz düzenli ifade (Regex).", + "action": "Eylemler", + "selectAction": "Eylemleri Seçin", + "hint": "Kurallar sırayla uygulanacaktır. Yeniden sıralamak için sürükleyip bırakın.", + "test": "Test Et" + }, + "service": { + "intro": "RSS hizmetleriyle cihazlar arasında senkronize edin.", + "select": "Hizmet seçin", + "suggest": "Yeni hizmet öner", + "overwriteWarning": "Kaynak hizmet içerisinde varsa, yerel kaynaklar silinecek..", + "groupsWarning": "Gruplar hizmetle otomatik olarak senkronize edilmez.", + "endpoint": "Endpoint", + "username": "Kullanıcı Adı", + "password": "Parola", + "unchanged": "Değişmedi", + "fetchLimit": "Senkronizasyon sınırı", + "fetchLimitNum": "Son {count} yazı", + "importGroups": "Grupları içe aktar", + "failure": "Hizmete bağlanılamıyor", + "failureHint": "Lütfen servis ayarlarını veya internet bağlantınızı kontrol edin.", + "fetchUnlimited": "Sınırsız (tavsiye edilmez)" + }, + "app": { + "cleanup": "Temizle", + "cache": "Önbelleği temizle", + "cacheSize": "{size} veri önbelleğe alındı", + "deleteChoices": "... gün öncesine ait yazıları sil", + "confirmDelete": "Sil", + "daysAgo": "{days} gün önce", + "deleteAll": "Tüm yazıları sil", + "calculatingSize": "Boyut hesaplanıyor...", + "itemSize": "Kullanılan depolama alanınızın yaklaşık {size}", + "confirmImport": "İşleme devam etmek istediğinize emin misiniz? Mevcut tüm veriler silinecek.", + "data": "Uygulama Verileri", + "backup": "Yedekle", + "restore": "Geri Yükle", + "frData": "Fluent Reader Verileri", + "language": "Görüntüleme dili", + "theme": "Tema", + "lightTheme": "Aydınlık", + "darkTheme": "Karanlık", + "enableProxy": "Proxy'yi Etkinleştir", + "badUrl": "Geçersiz URL", + "pac": "PAC Adresi", + "setPac": "PAC ayarla", + "pacHint": "Socks proxy'leri için, PAC'ın proxy tarafı DNS için \"SOCKS5\" döndürmesi önerilir. Proxy'yi kapatmak, yeniden başlatmayı gerektirir.", + "fetchInterval": "Otomatik getirme aralığı", + "never": "Asla" + } +} \ No newline at end of file