diff --git a/app/src/main/java/me/ash/reader/data/preference/LanguagesPreference.kt b/app/src/main/java/me/ash/reader/data/preference/LanguagesPreference.kt index 6e10370..122fa49 100644 --- a/app/src/main/java/me/ash/reader/data/preference/LanguagesPreference.kt +++ b/app/src/main/java/me/ash/reader/data/preference/LanguagesPreference.kt @@ -16,6 +16,7 @@ sealed class LanguagesPreference(val value: Int) : Preference() { object UseDeviceLanguages : LanguagesPreference(0) object English : LanguagesPreference(1) object ChineseSimplified : LanguagesPreference(2) + object German : LanguagesPreference(3) override fun put(context: Context, scope: CoroutineScope) { scope.launch { @@ -32,6 +33,7 @@ sealed class LanguagesPreference(val value: Int) : Preference() { UseDeviceLanguages -> context.getString(R.string.use_device_languages) English -> context.getString(R.string.english) ChineseSimplified -> context.getString(R.string.chinese_simplified) + German -> context.getString(R.string.german) } fun getLocale(): Locale = @@ -39,6 +41,7 @@ sealed class LanguagesPreference(val value: Int) : Preference() { UseDeviceLanguages -> LocaleList.getDefault().get(0) English -> Locale("en", "US") ChineseSimplified -> Locale("zh", "CN") + German -> Locale("de", "DE") } fun setLocale(context: Context) { @@ -65,13 +68,14 @@ sealed class LanguagesPreference(val value: Int) : Preference() { companion object { val default = UseDeviceLanguages - val values = listOf(UseDeviceLanguages, English, ChineseSimplified) + val values = listOf(UseDeviceLanguages, English, ChineseSimplified, German) fun fromPreferences(preferences: Preferences): LanguagesPreference = when (preferences[DataStoreKeys.Languages.key]) { 0 -> UseDeviceLanguages 1 -> English 2 -> ChineseSimplified + 3 -> German else -> default } @@ -80,6 +84,7 @@ sealed class LanguagesPreference(val value: Int) : Preference() { 0 -> UseDeviceLanguages 1 -> English 2 -> ChineseSimplified + 3 -> German else -> default } } diff --git a/app/src/main/java/me/ash/reader/data/repository/StringsRepository.kt b/app/src/main/java/me/ash/reader/data/repository/StringsRepository.kt index 6819345..fa8d76b 100644 --- a/app/src/main/java/me/ash/reader/data/repository/StringsRepository.kt +++ b/app/src/main/java/me/ash/reader/data/repository/StringsRepository.kt @@ -11,5 +11,6 @@ class StringsRepository @Inject constructor( private val context: Context, ) { fun getString(resId: Int, vararg formatArgs: Any) = context.getString(resId, *formatArgs) + fun getQuantityString(resId: Int, quantity: Int, vararg formatArgs: Any) = context.resources.getQuantityString(resId, quantity, *formatArgs) fun formatAsString(date: Date?) = date?.formatAsString(context) } diff --git a/app/src/main/java/me/ash/reader/ui/page/home/feeds/FeedsViewModel.kt b/app/src/main/java/me/ash/reader/ui/page/home/feeds/FeedsViewModel.kt index 39cc5bf..43c9f63 100644 --- a/app/src/main/java/me/ash/reader/ui/page/home/feeds/FeedsViewModel.kt +++ b/app/src/main/java/me/ash/reader/ui/page/home/feeds/FeedsViewModel.kt @@ -107,9 +107,9 @@ class FeedsViewModel @Inject constructor( it.copy( importantCount = groupWithFeedList.sumOf { it.group.important ?: 0 }.run { when { - isStarred -> stringsRepository.getString(R.string.starred_desc, this) - isUnread -> stringsRepository.getString(R.string.unread_desc, this) - else -> stringsRepository.getString(R.string.all_desc, this) + isStarred -> stringsRepository.getQuantityString(R.plurals.starred_desc, this, this) + isUnread -> stringsRepository.getQuantityString(R.plurals.unread_desc, this, this) + else -> stringsRepository.getQuantityString(R.plurals.all_desc, this, this) } }, groupWithFeedList = groupWithFeedList, diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml new file mode 100644 index 0000000..aa1ce44 --- /dev/null +++ b/app/src/main/res/values-de-rDE/strings.xml @@ -0,0 +1,171 @@ + + Alle + + %1$d archivierter Eintrag + %d archivierte Einträge + + Ungelesen + + %1$d ungelesener Eintrag + %1$d ungelesene Einträge + + Markiert + + %1$d markierter Eintrag + %1$d markierte Einträge + + Feeds + Synchronisieren… + Laden… + Weniger erweitern + Mehr erweitern + Bestätigen + Abbrechen + Erlauben + Ablehnen + Standard + Unbekannt + Zurück + Gehe zu + Einstellungen + Aktualisieren + Suche + Suchen… + Abonnieren + Bereits abonniert + Löschen + Einfügen + Feed- oder Website-URL + Aus OPML importieren + Voreinstellung + Ausgewählte + Benachrichtigung zulassen + Alle Feeds in der Gruppe „%1$s“ dürfen Benachrichtigungen senden. + Alle Benachrichtigungen in der Gruppe „%1$s“ sind erlaubt + Alle Benachrichtigungen in der Gruppe „%1$s“ werden abgelehnt + Gesamtinhalt abrufen + Gesamten Inhalt von allen Artikeln in der Gruppe „%1$s“ abrufen. + Gesamten Inhalt von allen Artikeln in der Gruppe „%1$s“ abrufen + Keinen gesamten Inhalt von allen Artikeln in der Gruppe „%1$s“ abrufen + Artikel löschen + Alle archivierten Artikel im Feed „%1$s“ wurden bereinigt + Alle archivierten Artikel in der Gruppe „%1$s“ wurden bereinigt + Alle archivierten Artikel im Feed „%1$s“ löschen. + Alle archivierten Artikel in der Gruppe „%1$s“ löschen. + Zu Gruppe hinzufügen + Zur Gruppe verschieben + Verschieben Sie alle Feeds in der Gruppe „%1$s“ in die Gruppe „%2$s“. + Alle zur Gruppe „%1$s“ verschoben + Umbenennen + URL ändern + Umbenannt zu „%1$s“ + Neue Gruppe erstellen + Name + Öffne %1$s + Optionen + Löschen + „%1$s“ wurde gelöscht + Deabonieren + „%1$s“ deabonieren und alle darin enthaltenen archivierten Artikel löschen. + Gruppe löschen + Löscht die Gruppe „%1$s“ und alle darin enthaltenen Feeds und archivierten Artikel. + Die folgenden Optionen werden auf alle Feeds in dieser Gruppe angewendet. + Heute + Gestern + %1$s um %2$s + Suche nach %1$s Einträgen in „%2$s“ + Suche nach %1$s Einträgen + Als gelesen markieren + Alle als gelesen + Als ungelesen markieren + Als markiert markieren + Als unmarkiert markieren + Als mehr als 1 Tag gelesen markieren + Als mehr als 3 Tage gelesen markieren + Als mehr als 7 Tage gelesen markieren + 1 T + 3 T + 7 T + Schließen + Neue Updates erhalten + Version %1$s wurde veröffentlicht + In Entwicklung + Demnächst verfügbar + Konten + Lokal, FreshRSS + Farbe & Stil + Design, Farbstil, Schriftgröße + Interaktion + Beim Start, haptisches Feedback + Sprachen + English, 简体中文, Deutsch + Hilf uns beim Übersetzen + Gerätesprache verwenden + Tipps & Support + Über, Open Source + Willkommen + Bevor Sie fortfahren können, müssen Sie den Nutzungsbedingungen und der Datenschutzrichtlinie von Read You zustimmen. + Siehe die <i><u>Nutzungsbedingungen & Datenschutzrichtlinie</u></i> + https://github.com/Ashinch/ReadYou/blob/main/TERMS_OF_SERVICE_AND_PRIVACY_POLICY-de.md + Zustimmen + Hintergrundfarben + Keine Paletten + Nur Android 8.1+ + Grundfarben + Primärfarbe + z.B. #666666 oder 666666 + Erscheinungsbild + Stil + Dunkles Design + Gerätedesign verwenden + An + Aus + Sonstiges + AMOLED Dunkles Design + Farbliches Hervorheben + Schriftarten + Grundschriftarten + Feeds Seite + Flow Seite + Leseseite + Sponsor + Open Source Lizenzen + https://api.github.com/repos/Ashinch/ReadYou/releases/latest + Änderungsprotokoll + Aktualisieren + Version überspringen + Suche nach Aktualisierungen… + Dies ist die neueste Version + Suche fehlgeschlagen + Fehler beim Herunterladen + Die Anfragerate ist limitiert + Hilfe + Beim Start + Startseite + Startfilter + Der Roman "Lord of the Mysteries" ist endlich zu einem Ende gekommen + The Fool ist der achte und letzte Band der Lord of the Mysteries Reihe, geschrieben von Cuttlefish That Loves Diving. + Reddit + Wert + Rand an beiden Enden + Artikel Veröffentlichungszeit + Artikel Beschreibungen + Artikel Bilder + Feed Namen + Feed Favicons + Artikeldatum klebrige Kopfzeile (Experimentell) + Artikelliste + Gruppenliste + Immer erweitern + Oben + „Als gelesen markieren“ Position + Obere Leiste + Ausgewähltes Symbol füllen + Filterleiste + Symbole + Symbole & Beschriftungen + Symbole & Beschriftungen (Nur ausgewähltes) + Das farbliche Hervorheben der oberen Leiste ist nur beim Scrollen verfügbar. + Das farbliche Hervorheben der Artikelliste ist nur für das helle Design verfügbar. + Das farbliche Hervorheben der Gruppenliste ist nur für das helle Design verfügbar. + \ No newline at end of file diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a0667ac..47336fb 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -1,10 +1,16 @@ 全部 - %1$d 项已归档 + + %1$d 项已归档 + 未读 - %1$d 项未读 + + %1$d 项未读 + 已加星标 - %1$d 项已加星标 + + %1$d 项已加星标 + 分组 正在同步… 加载中… @@ -89,7 +95,7 @@ 交互 启动时、触感反馈 语言 - English、简体中文 + English、简体中文、Deutsch 跟随系统设置 帮助我们翻译 提示和支持 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f5da3bb..b68273a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,11 +1,20 @@ Read You All - %1$d Archived Items + + %1$d Archived Item + %1$d Archived Items + Unread - %1$d Unread Items + + %1$d Unread Item + %1$d Unread Items + Starred - %1$d Starred Items + + %1$d Starred Item + %1$d Starred Items + Feeds Syncing… Loading… @@ -91,11 +100,12 @@ Interaction On start, haptic feedback Languages - English, 简体中文 + English, 简体中文, Deutsch Help us translate - Use Device Languages + Use Device Language English 简体中文 + Deutsch Tips & support About, open source Welcome diff --git a/fastlane/metadata/android/de-DE/changelogs/10.txt b/fastlane/metadata/android/de-DE/changelogs/10.txt new file mode 100644 index 0000000..3b0a650 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/10.txt @@ -0,0 +1,13 @@ +## 0.7.8 + +1. Spracheinstellungsseite hinzugefügt (einige Bugs). + +2. Einstellungen für das dunkle Design hinzugefügt. + +3. AMOLED dunkles Design hinzugefügt. + +4. Löschfunktion von Artikeln für Feeds und Gruppen hinzugefügt. + +5. Für Geräte mit Android 12+ wird nun die erste Palette der Hintergrundfarben mit dem vom System bereitgestellten Farbschema ersetzt. + +6. RSS-Parsing-Plugin auf Rome umgestellt (sollte in der Lage sein, die meisten Feeds zu parsen, ist aber bekannt dafür mit speziellen Formaten wie Youtube, Reddit, etc. nicht umgehen zu können). diff --git a/fastlane/metadata/android/de-DE/changelogs/5.txt b/fastlane/metadata/android/de-DE/changelogs/5.txt new file mode 100644 index 0000000..bd5ebff --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/5.txt @@ -0,0 +1,21 @@ +## 0.7.2 + +1. Neues dynamisches Farbsystem (erfordert Android 8.1+, die Anzahl der dynamischen Farben hängt von der Farbvielfalt des aktuellen Hintergrundbildes ab, normalerweise 1 ~ 3). + +2. Der Farbwert der Akzentfarbe kann jetzt auch angepasst werden (der Eintrag ist die letzte Palette bei den Grundfarben, dabei sei angemerkt, dass die benutzerdefinierte Farbe nur als Referenz dient, der Farbauswahl Algorithmus wird automatisch einen entsprechenden Farbwert wählen). + +3. Nicht implementierte Funktionen sind jetzt grau markiert, um Verwirrung zu vermeiden. + +4. Behebung des Problems der verwirrenden Zeitsortierung der Flow Seite, wenn die Filterungsbedingung eine Abonnementquelle ist. + +5. Verbesserung der Symbolgröße der Benachrichtigung. + +6. Doppelte Artikel werden jetzt nicht mehr synchronisiert (doppelt bedeutet, dass der Link zur Originalseite derselbe ist). + +### Anmerkungen + +1. Beim ersten Farbwechsel nach der Installation kann es vorkommen, dass zurück zur Startseite gesprungen wird, dies wird in der nächsten Version behoben. + +2. Die nächste Version enthält hauptsächlich die "Über"-Seite und die eingebaute Prüfung auf neue Versionen. + +3. Die Leseseite wird von der Slideransicht getrennt und bekommt eine eigene Seite. diff --git a/fastlane/metadata/android/de-DE/changelogs/6.txt b/fastlane/metadata/android/de-DE/changelogs/6.txt new file mode 100644 index 0000000..4292beb --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/6.txt @@ -0,0 +1,35 @@ +## 0.7.4 + +1. "Tipps & Support"-Seite hinzugefügt. + +2. Update-Check und Download hinzugefügt. + +3. Wählt bei Erstinstallation standardmäßig dynamisches Farbthema (falls verfügbar). + +4. Nach unten Wischfunktion zum Synchronisieren bei der Flow Seite hinzugefügt. + +5. Es wird nun beim abrufen des gesamten Inhaltes ein Ladehinweis angezeigt. + +6. Update einiger Abhängigkeiten (könnte unbekannte Fehler verursachen). + +7. Unterstützung des RSS v1.0 Protokolls (muss getestet werden). + +8. Hintergrund der Systemnavigationsleiste behoben. + +9. Behebung des Problems, dass das Zurück-Ereignis nicht erfasst wird, wenn das Optionsmenü geöffnet ist. + +10. Optimierung einiger Videostile auf der Leseseite. + +11. Optimierung einiger abnormaler Stile. + +### Anmerkungen + +1. Prüfen bei jedem Kaltstart automatisch auf Updates (bei der nächsten Version verfügbar). + +2. Beim Suchen nach Updates wird die Gitee-API für vereinfachtes Chinesisch und die GitHub-API für alle andere Sprachen verwendet. + +3. Bitte nicht zu oft manuell nach Updates suchen (es wurde ein Abkühlungsintervall von 2 Sekunden festgelegt), da dieselbe IP nur 60 Mal pro Stunde auf die GitHub-API zugreifen kann und die genaue Häufigkeitsgrenze der Gitee-API unbekannt ist ( wurde bisher nicht für 8 Stunden zurückgesetzt). + +4. Die Überarbeitung der Leseseiten erfolgt nach v0.8, die Überarbeitung von Icon und Cover nach v0.9 und die Unterstützung für FreshRSS (Fever API, Google Reader API) nach v1.0. + +5. Diese Version kann aufgrund eines Fehlers im Upstream-Parsing-Plugin nur in einem Thread synchronisiert werden, was etwas langsam sein kann. Der Autor des Plugins erwähnt, dass dies in der nächsten Version behoben wird und das Atom-Protokoll ebenfalls unterstützt wird. diff --git a/fastlane/metadata/android/de-DE/changelogs/7.txt b/fastlane/metadata/android/de-DE/changelogs/7.txt new file mode 100644 index 0000000..2460aa8 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/7.txt @@ -0,0 +1,11 @@ +## 0.7.5 + +1. Unterstützung des RSS Atom Protokolls. + +### Anmerkungen + +1. Das Parsen von ``-Elementen im Atom-Protokoll wird demnächst unterstützt. + +2. Der ViewPager wird aktuell getrennt und überarbeitet, damit die Flüssigkeit sich verbessert. + +3. Diese Version ist ein direkter Release, somit kann auch die Update-Funktion getestet werden. diff --git a/fastlane/metadata/android/de-DE/changelogs/8.txt b/fastlane/metadata/android/de-DE/changelogs/8.txt new file mode 100644 index 0000000..96caab0 --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/8.txt @@ -0,0 +1,7 @@ +## 0.7.6 + +1. ViewPager getrennt. + +2. Zusammenführung von Benachrichtigungen nach Feeds. + +3. Update-Dateien werden nicht mehr heruntergeladen, sondern es wird zur Release-Seite weitergeleitet. diff --git a/fastlane/metadata/android/de-DE/changelogs/9.txt b/fastlane/metadata/android/de-DE/changelogs/9.txt new file mode 100644 index 0000000..359ed6b --- /dev/null +++ b/fastlane/metadata/android/de-DE/changelogs/9.txt @@ -0,0 +1,13 @@ +## 0.7.7 + +1. Einstellung für Feeds Seitenstil hinzugefügt. + +2. Einstellung für Flow Seitenstil hinzugefügt. + +3. Initiale Seiteneinstellung hinzugefügt. + +3. Initiale Filtereinstellung hinzugefügt. + +5. Funktion zum ändern der Feed-URL hinzugefügt. + +6. Banner-Filter Beschreibung korrigiert. diff --git a/fastlane/metadata/android/de-DE/full_description.txt b/fastlane/metadata/android/de-DE/full_description.txt new file mode 100644 index 0000000..4d7c6f5 --- /dev/null +++ b/fastlane/metadata/android/de-DE/full_description.txt @@ -0,0 +1,16 @@ +Read You Ein moderner und eleganter RSS-Reader mit Material You Design + +Funktionen: + +* Abonnieren von Feed-Links +* Aus OPML importieren +* Artikel-Synchronisation +* Benachrichtigung über Aktualisierung eines Artikels +* Gesamten Inhalt abrufen +* Filter ungelesen und markiert +* Feed Gruppen +* Lokalisierung +* Als OPML exportieren +* Suche nach Artikeln + +Mehr in Planung… diff --git a/fastlane/metadata/android/de-DE/images/feeds.png b/fastlane/metadata/android/de-DE/images/feeds.png new file mode 100644 index 0000000..0434ec0 Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/feeds.png differ diff --git a/fastlane/metadata/android/de-DE/images/flow.png b/fastlane/metadata/android/de-DE/images/flow.png new file mode 100644 index 0000000..fc4cb8e Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/flow.png differ diff --git a/fastlane/metadata/android/de-DE/images/icon.png b/fastlane/metadata/android/de-DE/images/icon.png new file mode 100644 index 0000000..c6d5efa Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/icon.png differ diff --git a/fastlane/metadata/android/de-DE/images/read.png b/fastlane/metadata/android/de-DE/images/read.png new file mode 100644 index 0000000..221a371 Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/read.png differ diff --git a/fastlane/metadata/android/de-DE/images/settings.png b/fastlane/metadata/android/de-DE/images/settings.png new file mode 100644 index 0000000..b1e4425 Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/settings.png differ diff --git a/fastlane/metadata/android/de-DE/images/startup.png b/fastlane/metadata/android/de-DE/images/startup.png new file mode 100644 index 0000000..b5b20a4 Binary files /dev/null and b/fastlane/metadata/android/de-DE/images/startup.png differ diff --git a/fastlane/metadata/android/de-DE/short_description.txt b/fastlane/metadata/android/de-DE/short_description.txt new file mode 100644 index 0000000..7cce2aa --- /dev/null +++ b/fastlane/metadata/android/de-DE/short_description.txt @@ -0,0 +1 @@ +Ein moderner und eleganter RSS-Reader mit Material You design \ No newline at end of file