Merge branch 'master' of https://github.com/yang991178/rss-reader into 0.8.1

This commit is contained in:
刘浩远 2020-11-23 19:48:55 +08:00
commit d9d9d6d2e8
6 changed files with 319 additions and 8 deletions

3
.gitignore vendored
View File

@ -4,4 +4,5 @@ dist/*.js.map
dist/*.html
bin/*
.DS_Store
*.provisionprofile
*.provisionprofile
*.lock

View File

@ -107,7 +107,8 @@ class AppTab extends React.Component<AppTabProps, AppTabState> {
{ 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 = () => {

View File

@ -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.

View File

@ -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

View File

@ -7,9 +7,9 @@
"openExternal": "Ouvrir dans le navigateur",
"emptyName": "Ce champ ne peut pas être vide.",
"emptyField": "Ce champ ne peut pas être vide.",
"followSystem": "Suivre le système",
"edit": "Modifier",
"delete": "Supprimer",
"followSystem": "Suivre le système",
"more": "Plus",
"close": "Fermer",
"search": "Rechercher",
@ -30,7 +30,10 @@
"log": {
"empty": "Aucune notification",
"fetchFailure": "Échec du chargement de la source \"{name}\".",
"fetchSuccess": "Récupération réussi de {count, plural, =1 {# article} other {# articles}}."
"fetchSuccess": "Récupération réussi de {count, plural, =1 {# article} other {# articles}}.",
"networkError": "Une erreur de réseau s'est produite.",
"parseError": "Une erreur s'est produite lors de l'analyse du flux XML.",
"syncFailure": "Échec de synchronisation avec le service"
},
"nav": {
"menu": "Menu",
@ -47,16 +50,23 @@
"subscriptions": "Abonnements"
},
"article": {
"error": "Impossible de charger l'article.",
"reload": "Recharger ?",
"empty": "Pas d'articles",
"untitled": "(Sans titre)",
"hide": "Masquer l'article",
"unhide": "Afficher l'article",
"markRead": "Marquer comme lu",
"markUnread": "Marquer comme non lu",
"markAbove": "Marquer ci-dessus comme lu",
"markBelow": "Marquer ci-dessous comme lu",
"star": "Mettre en favori",
"unstar": "Supprimer le favori",
"fontSize": "Taille de la police",
"loadWebpage": "Charger la page web"
"loadWebpage": "Charger la page web",
"loadFull": "Charger tout le contenu",
"notify": "Notifier le chargement en arrière-plan",
"dontNotify": "Ne pas notifier"
},
"context": {
"share": "Partager",
@ -75,7 +85,21 @@
"starredOnly": "Favoris uniquement",
"fullSearch": "Recherche dans le texte complet",
"showHidden": "Afficher les articles cachés",
"manageSources": "Gérer les sources"
"manageSources": "Gérer les sources",
"saveImageAs": "Enregistrer l'image sous…",
"copyImage": "Copier l'image",
"copyImageURL": "Copier l'adresse de l'image",
"caseSensitive": "Sensible à la casse",
"showCover": "Afficher couverture",
"showSnippet": "Afficher extrait",
"fadeRead": "Atténuer les articles lus"
},
"searchEngine": {
"name": "Moteur de recherche",
"google": "Google",
"bing": "Bing",
"baidu": "Baidu",
"duckduckgo": "DuckDuckGo"
},
"settings": {
"writeError": "Une erreur s'est produite lors de l'écriture du fichier.",
@ -84,6 +108,8 @@
"exit": "Fermer les paramètres",
"sources": "Sources",
"grouping": "Groupes",
"rules": "Règles",
"service": "Service",
"app": "Préférences",
"about": "À propos",
"version": "Version",
@ -92,9 +118,14 @@
"feedback": "Feedback"
},
"sources": {
"serviceWarning": "Les sources importées ou ajoutées ici ne seront pas synchronisées avec votre service.",
"serviceManaged": "Cette source est gérée par votre service.",
"untitled": "Source",
"errorAdd": "Une erreur s'est produite lors de l'ajout de la source.",
"errorParse": "Une erreur s'est produite lors de l'analyse du fichier OPML.",
"errorParseHint": "Veuillez vous assurer que le fichier n'est pas corrompu et qu'il est encodé en UTF-8.",
"errorImport": "Erreur d'importation pour {count, plural, =1 {# source} other {# sources}}.",
"exist": "Cette source existe déjà.",
"opmlFile": "Fichier OPML",
"name": "Nom de la source",
"editName": "Modifier le nom",
@ -108,11 +139,14 @@
"rssText": "Texte complet RSS",
"loadWebpage": "Charger la page web",
"inputUrl": "Saisissez l'adresse URL",
"badIcon": "Icône invalide",
"badUrl": "Adresse URL invalide",
"deleteWarning": "La source et tous les articles sauvegardés seront supprimés.",
"selected": "Source sélectionnée"
"selected": "Source sélectionnée",
"selectedMulti": "Sources multiples sélectionnées"
},
"groups": {
"exist": "Ce groupe existe déjà.",
"type": "Type",
"group": "Groupe",
"source": "Source",
@ -130,6 +164,44 @@
"addToGroup": "Ajouter à ...",
"groupHint": "Double-cliquez sur le groupe pour modifier ses sources. Faites un glisser-déposer pour réorganiser les sources."
},
"rules": {
"intro": "Marquez automatiquement les articles ou envoyez des notifications avec des expressions régulières.",
"help": "En savoir plus",
"source": "Source",
"selectSource": "Sélectionner une source",
"new": "Nouvelle règle",
"if": "Si",
"then": "Alors",
"title": "Titre",
"content": "Contenu",
"fullSearch": "Titre ou contenu",
"creator": "Auteur",
"match": "correspond à",
"notMatch": "ne correspond pas à",
"regex": "Expression régulière",
"badRegex": "Expression régulière invalide.",
"action": "Actions",
"selectAction": "Sélectionner action",
"hint": "Les règles seront appliquées dans l'ordre. Glisser-déposer pour réorganiser.",
"test": "Tester les règles"
},
"service": {
"intro": "Synchronisation entre les appareils avec des services RSS.",
"select": "Sélectionner un service",
"suggest": "Proposer un nouveau service",
"overwriteWarning": "Les sources locales seront supprimées si elles existent dans le service.",
"groupsWarning": "Les groupes ne sont pas automatiquement synchronisés avec le service.",
"endpoint": "Adresse",
"username": "Pseudo",
"password": "Mot de passe",
"unchanged": "Inchangé",
"fetchLimit": "Limite de synchronisation",
"fetchLimitNum": "{count} articles récents",
"importGroups": "Importer des groupes",
"failure": "Impossible de se connecter au service",
"failureHint": "Veuillez vérifier la configuration du service ou l'état du réseau.",
"fetchUnlimited": "Illimité (non recommandé)"
},
"app": {
"cleanup": "Nettoyage",
"cache": "Supprimer le cache",
@ -153,6 +225,8 @@
"badUrl": "Adresse URL invalide",
"pac": "Adresse PAC",
"setPac": "Définir PAC",
"pacHint": "Pour les proxies Sockets, il est recommandé que le PAC retourne \"SOCKS5\" pour le DNS côté proxies. La désactivation du proxy nécessite un redémarrage."
"pacHint": "Pour les proxies Sockets, il est recommandé que le PAC retourne \"SOCKS5\" pour le DNS côté proxies. La désactivation du proxy nécessite un redémarrage.",
"fetchInterval": "Intervalle de récupération automatique",
"never": "Jamais"
}
}

232
src/scripts/i18n/tr.json Normal file
View File

@ -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"
}
}