Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(i18n): add de #538

Merged
merged 9 commits into from
Sep 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions apps/renderer/src/@types/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// DONT EDIT THIS FILE MANUALLY
export const currentSupportedLanguages = [
"en",
"de",
"ja",
"zh-CN",
"zh-TW",
Expand Down Expand Up @@ -39,6 +40,7 @@ export const dayjsLocaleImportMap = {
["ar-KW"]: ["ar-kw", () => import("dayjs/locale/ar-kw")],
["ar-TN"]: ["ar-tn", () => import("dayjs/locale/ar-tn")],
["zh-HK"]: ["zh-hk", () => import("dayjs/locale/zh-hk")],
["de"]: ["de", () => import("dayjs/locale/de")],
["ko"]: ["ko", () => import("dayjs/locale/ko")],
["tr"]: ["tr", () => import("dayjs/locale/tr")],
}
Expand Down
3 changes: 3 additions & 0 deletions apps/renderer/src/@types/default-resource.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import common_arkw from "../../../../locales/common/ar-KW.json"
import common_arma from "../../../../locales/common/ar-MA.json"
import common_arsa from "../../../../locales/common/ar-SA.json"
import common_artn from "../../../../locales/common/ar-TN.json"
import common_de from "../../../../locales/common/de.json"
import common_en from "../../../../locales/common/en.json"
import common_es from "../../../../locales/common/es.json"
import common_fi from "../../../../locales/common/fi.json"
Expand All @@ -28,6 +29,7 @@ import lang_arkw from "../../../../locales/lang/ar-KW.json"
import lang_arma from "../../../../locales/lang/ar-MA.json"
import lang_arsa from "../../../../locales/lang/ar-SA.json"
import lang_artn from "../../../../locales/lang/ar-TN.json"
import lang_de from "../../../../locales/lang/de.json"
import lang_en from "../../../../locales/lang/en.json"
import lang_es from "../../../../locales/lang/es.json"
import lang_fi from "../../../../locales/lang/fi.json"
Expand Down Expand Up @@ -86,6 +88,7 @@ export const defaultResources = {
"ar-IQ": { lang: lang_ariq, common: common_ariq },
"ar-KW": { lang: lang_arkw, common: common_arkw },
"ar-TN": { lang: lang_artn, common: common_artn },
de: { lang: lang_de, common: common_de },
ko: { lang: lang_ko, common: common_ko },
tr: { lang: lang_tr, common: common_tr },
}
210 changes: 210 additions & 0 deletions locales/app/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,210 @@
{
"ai_daily.title": "Top-Nachrichten - {{title}}",
"ai_daily.tooltip.content": "Hier sind Nachrichten, die von der KI aus Ihrer Zeitleiste ausgewählt wurden (<From /> - <To />), die für Sie wichtig sein könnten.",
"ai_daily.tooltip.update_schedule": "Täglich um 8 Uhr und 20 Uhr aktualisiert.",
"app.copy_logo_svg": "Logo-SVG kopieren",
"app.toggle_sidebar": "Seitenleiste umschalten",
"discover.any_url_or_keyword": "Beliebige URL oder Stichwort",
"discover.default_option": " (Standard)",
"discover.feed_description": "Die Beschreibung dieses Feeds lautet wie folgt. Sie können das Parameterformular mit den entsprechenden Informationen ausfüllen.",
"discover.feed_maintainers": "Dieser Feed wird von RSSHub bereitgestellt, mit Dank an <maintainers />",
"discover.import.click_to_upload": "Klicken, um die OPML-Datei hochzuladen",
"discover.popular": "Beliebt",
"discover.preview": "Vorschau",
"discover.rss_hub_route": "RSSHub-Route",
"discover.rss_url": "RSS-URL",
"discover.select_placeholder": "Auswählen",
"early_access": "Früher Zugriff",
"entry_actions.copy_link": "Link kopieren",
"entry_actions.failed_to_save_to_eagle": "Speichern in Eagle fehlgeschlagen.",
"entry_actions.failed_to_save_to_instapaper": "Speichern in Instapaper fehlgeschlagen.",
"entry_actions.failed_to_save_to_readwise": "Speichern in Readwise fehlgeschlagen.",
"entry_actions.link_copied": "Link in die Zwischenablage kopiert.",
"entry_actions.mark_as_read": "Als gelesen markieren",
"entry_actions.mark_as_unread": "Als ungelesen markieren",
"entry_actions.open_in_browser": "Im Browser öffnen",
"entry_actions.save_media_to_eagle": "Medien in Eagle speichern",
"entry_actions.save_to_instapaper": "In Instapaper speichern",
"entry_actions.save_to_readwise": "In Readwise speichern",
"entry_actions.saved_to_eagle": "In Eagle gespeichert.",
"entry_actions.saved_to_instapaper": "In Instapaper gespeichert.",
"entry_actions.saved_to_readwise": "In Readwise gespeichert.",
"entry_actions.share": "Teilen",
"entry_actions.star": "Favorisieren",
"entry_actions.starred": "Favorisiert.",
"entry_actions.tip": "Trinkgeld",
"entry_actions.unstar": "Favorisierung entfernen",
"entry_actions.unstarred": "Favorisierung entfernt.",
"entry_column.filtered_content_tip": "Sie haben gefilterte Inhalte ausgeblendet.",
"entry_column.filtered_content_tip_2": "Zusätzlich zu den oben angezeigten Einträgen gibt es auch gefilterte Inhalte.",
"entry_column.refreshing": "Neue Einträge werden aktualisiert...",
"entry_content.ai_summary": "KI-Zusammenfassung",
"entry_content.fetching_content": "Originalinhalt wird abgerufen und verarbeitet...",
"entry_content.header.play_tts": "TTS abspielen",
"entry_content.header.readability": "Lesbarkeit",
"entry_content.no_content": "Keine Medien verfügbar",
"entry_content.readability_notice": "Dieser Inhalt wird von Readability bereitgestellt. Wenn Sie typografische Fehler feststellen, besuchen Sie bitte die Quellseite, um den Originalinhalt anzuzeigen.",
"entry_content.render_error": "Render-Fehler:",
"entry_content.report_issue": "Problem melden",
"entry_content.support_amount": "{{amount}} Personen haben den Ersteller dieses Feeds unterstützt.",
"entry_content.support_creator": "Ersteller unterstützen",
"entry_content.web_app_notice": "Möglicherweise unterstützt die Web-App diesen Inhaltstyp nicht. Sie können jedoch die Desktop-App herunterladen.",
"entry_list.zero_unread": "Keine ungelesenen",
"entry_list_header.daily_report": "Tagesbericht",
"entry_list_header.hide_no_image_items": "Einträge ohne Bilder ausblenden.",
"entry_list_header.items": "Elemente",
"entry_list_header.new_entries_available": "Neue Einträge verfügbar",
"entry_list_header.refetch": "Neu laden",
"entry_list_header.refresh": "Aktualisieren",
"entry_list_header.show_all": "Alle anzeigen",
"entry_list_header.show_all_items": "Alle Einträge anzeigen",
"entry_list_header.show_unread_only": "Nur ungelesene anzeigen",
"entry_list_header.switch_to_grid": "Zu Rasteransicht wechseln",
"entry_list_header.switch_to_masonry": "Zur Kachelansicht wechseln",
"entry_list_header.unread": "ungelesen",
"feed_claim_modal.choose_verification_method": "Es gibt drei Verifikationsmethoden. Wählen Sie eine aus, um die Eigentümerschaft zu bestätigen.",
"feed_claim_modal.claim_button": "Beanspruchen",
"feed_claim_modal.content_instructions": "Kopieren Sie den folgenden Inhalt und veröffentlichen Sie ihn in Ihrem neuesten RSS-Feed.",
"feed_claim_modal.description_current": "Aktuelle Beschreibung:",
"feed_claim_modal.description_instructions": "Kopieren Sie den folgenden Inhalt und fügen Sie ihn in das <code />-Feld Ihres RSS-Feeds ein.",
"feed_claim_modal.failed_to_load": "Fehler beim Laden der Anspruchsnachricht",
"feed_claim_modal.rss_format_choice": "RSS-Generatoren bieten in der Regel zwei Formate zur Auswahl an. Bitte kopieren Sie die unten aufgeführten XML- und JSON-Formate nach Bedarf.",
"feed_claim_modal.rss_instructions": "Kopieren Sie den unten stehenden Code und fügen Sie ihn in Ihren RSS-Generator ein.",
"feed_claim_modal.rss_json_format": "JSON-Format",
"feed_claim_modal.rss_xml_format": "XML-Format",
"feed_claim_modal.rsshub_notice": "Dieser Feed wird von RSSHub mit einer Cache-Zeit von 1 Stunde bereitgestellt. Bitte erlauben Sie bis zu 1 Stunde, bis Änderungen nach der Veröffentlichung von Inhalten angezeigt werden.",
"feed_claim_modal.tab_content": "Inhalt",
"feed_claim_modal.tab_description": "Beschreibung",
"feed_claim_modal.tab_rss": "RSS-Tag",
"feed_claim_modal.verify_ownership": "Um diesen Feed als Ihren eigenen zu beanspruchen, müssen Sie das Eigentum verifizieren.",
"feed_form.add_follow": "Follow hinzufügen",
"feed_form.category": "Kategorie",
"feed_form.category_description": "Standardmäßig werden Ihre Follows nach Website gruppiert.",
"feed_form.error_fetching_feed": "Fehler beim Abrufen des Feeds.",
"feed_form.feed_not_found": "Feed nicht gefunden.",
"feed_form.feedback": "Feedback",
"feed_form.follow": "Folgen",
"feed_form.followed": "🎉 Gefolgt.",
"feed_form.private_follow": "Privates Folgen",
"feed_form.private_follow_description": "Ob dieses Follow öffentlich auf Ihrer Profilseite sichtbar ist.",
"feed_form.retry": "Erneut versuchen",
"feed_form.title": "Titel",
"feed_form.title_description": "Benutzerdefinierter Titel für diesen Feed. Lassen Sie das Feld leer, um den Standardwert zu verwenden.",
"feed_form.unfollow": "Entfolgen",
"feed_form.update": "Aktualisieren",
"feed_form.update_follow": "Follow aktualisieren",
"feed_form.updated": "🎉 Aktualisiert.",
"feed_form.view": "Ansehen",
"feed_item.claimed_by_owner": "Dieser Feed wurde beansprucht von",
"feed_item.claimed_by_unknown": "seinem Besitzer.",
"feed_item.claimed_by_you": "Von Ihnen beansprucht",
"feed_item.claimed_feed": "Beanspruchter Feed",
"feed_item.error_since": "Fehler seit",
"feed_item.not_publicly_visible": "Nicht öffentlich auf Ihrer Profilseite sichtbar",
"feed_view_type.articles": "Artikel",
"feed_view_type.audios": "Audios",
"feed_view_type.notifications": "Benachrichtigungen",
"feed_view_type.pictures": "Bilder",
"feed_view_type.social_media": "Soziale Medien",
"feed_view_type.videos": "Videos",
"mark_all_read_button.auto_confirm_info": "Wird nach 3 Sekunden automatisch bestätigt.",
"mark_all_read_button.confirm": "Bestätigen",
"mark_all_read_button.confirm_mark_all": "{{which}} als gelesen markieren?",
"mark_all_read_button.confirm_mark_all_info": "Möchten Sie alle als gelesen markieren?",
"mark_all_read_button.mark_all_as_read": "Alles als gelesen markieren",
"mark_all_read_button.mark_as_read": "{{which}} als gelesen markieren",
"mark_all_read_button.undo": "Rückgängig",
"player.back_10s": "10s zurück",
"player.close": "Schließen",
"player.download": "Herunterladen",
"player.exit_full_screen": "Vollbildmodus verlassen",
"player.forward_10s": "10s vorwärts",
"player.full_screen": "Vollbild",
"player.mute": "Stumm",
"player.open_entry": "Eintrag öffnen",
"player.pause": "Pause",
"player.play": "Abspielen",
"player.playback_rate": "Wiedergabegeschwindigkeit",
"player.unmute": "Stummschaltung aufheben",
"player.volume": "Lautstärke",
"search.empty.no_results": "Keine Ergebnisse gefunden.",
"search.group.entries": "Einträge",
"search.group.feeds": "Feeds",
"search.options.all": "Alle",
"search.options.entries": "Einträge",
"search.options.feeds": "Feeds",
"search.options.search_type": "Suchtyp",
"search.placeholder": "Suche...",
"search.result_count_local_mode": "(Lokaler Modus)",
"search.tooltip.local_search": "Diese Suche deckt nur lokal verfügbare Daten ab. Versuchen Sie, eine Neuladen durchzuführen, um die neuesten Daten einzubeziehen.",
"shortcuts.guide.title": "Kurzanleitung",
"sidebar.category_remove_dialog.cancel": "Abbrechen",
"sidebar.category_remove_dialog.continue": "Fortfahren",
"sidebar.category_remove_dialog.description": "Dieser Vorgang löscht Ihre Kategorie, aber die darin enthaltenen Feeds bleiben erhalten und werden nach Website gruppiert.",
"sidebar.category_remove_dialog.title": "Kategorie entfernen",
"sidebar.feed_actions.claim": "Beanspruchen",
"sidebar.feed_actions.claim_feed": "Feed beanspruchen",
"sidebar.feed_actions.copy_feed_id": "Feed-ID kopieren",
"sidebar.feed_actions.copy_feed_url": "Feed-URL kopieren",
"sidebar.feed_actions.edit": "Bearbeiten",
"sidebar.feed_actions.edit_feed": "Feed bearbeiten",
"sidebar.feed_actions.feed_owned_by_you": "Dieser Feed gehört Ihnen",
"sidebar.feed_actions.mark_all_as_read": "Alles als gelesen markieren",
"sidebar.feed_actions.navigate_to_feed": "Zu Feed navigieren",
"sidebar.feed_actions.open_feed_in_browser": "Feed im Browser öffnen",
"sidebar.feed_actions.open_site_in_browser": "Website im Browser öffnen",
"sidebar.feed_actions.unfollow": "Entfolgen",
"sidebar.feed_actions.unfollow_feed": "Feed entfolgen",
"sidebar.feed_column.context_menu.change_to_other_view": "Zu anderer Ansicht wechseln",
"sidebar.feed_column.context_menu.delete_category": "Kategorie löschen",
"sidebar.feed_column.context_menu.delete_category_confirmation": "Kategorie {{folderName}} löschen?",
"sidebar.feed_column.context_menu.mark_as_read": "Als gelesen markieren",
"sidebar.feed_column.context_menu.rename_category": "Kategorie umbenennen",
"sidebar.select_sort_method": "Sortiermethode auswählen",
"signin.continue_with_github": "Mit GitHub fortfahren",
"signin.continue_with_google": "Mit Google fortfahren",
"signin.sign_in_to": "Anmelden bei",
"sync_indicator.disabled": "Aus Sicherheitsgründen ist die Synchronisierung deaktiviert.",
"sync_indicator.offline": "Offline",
"sync_indicator.synced": "Mit Server synchronisiert",
"tip_modal.amount": "Betrag",
"tip_modal.claim_feed": "Diesen Feed beanspruchen",
"tip_modal.create_wallet": "Kostenloses Wallet erstellen",
"tip_modal.feed_owner": "Feed-Besitzer",
"tip_modal.low_balance": "Ihr Guthaben reicht nicht aus, um dieses Trinkgeld zu geben. Bitte passen Sie den Betrag an.",
"tip_modal.no_wallet": "Sie haben noch kein Wallet. Bitte erstellen Sie ein Wallet, um Trinkgelder zu geben.",
"tip_modal.tip_amount_sent": "wurde an den Autor gesendet.",
"tip_modal.tip_now": "Jetzt Trinkgeld geben",
"tip_modal.tip_sent": "Trinkgeld erfolgreich gesendet! Vielen Dank für Ihre Unterstützung.",
"tip_modal.tip_support": "⭐ Geben Sie ein Trinkgeld, um Ihre Unterstützung zu zeigen!",
"tip_modal.unclaimed_feed": "Dieser Feed wurde noch von niemandem beansprucht. Das erhaltene Power wird sicher im Blockchain-Vertrag gehalten, bis es beansprucht wird.",
"user_button.account": "Konto",
"user_button.download_desktop_app": "Desktop-App herunterladen",
"user_button.log_out": "Abmelden",
"user_button.power": "Power",
"user_button.preferences": "Einstellungen",
"user_button.profile": "Profil",
"user_profile.close": "Schließen",
"user_profile.edit": "Bearbeiten",
"user_profile.loading": "Wird geladen",
"user_profile.share": "Teilen",
"user_profile.toggle_item_style": "Artikelstil umschalten",
"words.add": "Hinzufügen",
"words.confirm": "Bestätigen",
"words.discover": "Entdecken",
"words.email": "E-Mail",
"words.import": "Importieren",
"words.items": "Elemente",
"words.language": "Sprache",
"words.load_archived_entries": "Archivierte Einträge laden",
"words.login": "Anmelden",
"words.rss": "RSS",
"words.rss3": "RSS3",
"words.rsshub": "RSSHub",
"words.search": "Suche",
"words.starred": "Favorisiert",
"words.unread": "Ungelesen",
"words.user": "Benutzer",
"words.which.all": "alle",
"words.zero_items": "Keine Elemente"
}
29 changes: 29 additions & 0 deletions locales/common/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"app.copied_to_clipboard": "In die Zwischenablage kopiert",
"cancel": "Abbrechen",
"close": "Schließen",
"confirm": "Bestätigen",
"ok": "OK",
"quantifier.piece": "",
"time.last_night": "Letzte Nacht",
"time.the_night_before_last": "Vorgestern Nacht",
"time.today": "Heute",
"time.yesterday": "Gestern",
"tips.load-lng-error": "Fehler beim Laden des Sprachpakets",
"words.back": "Zurück",
"words.copy": "Kopieren",
"words.edit": "Bearbeiten",
"words.entry": "Eintrag",
"words.id": "ID",
"words.items_one": "Element",
"words.items_other": "Elemente",
"words.local": "Lokal",
"words.record": "Aufzeichnung",
"words.record_one": "Aufzeichnung",
"words.record_other": "Aufzeichnungen",
"words.result": "Ergebnis",
"words.result_one": "Ergebnis",
"words.result_other": "Ergebnisse",
"words.space": " ",
"words.which.all": "Alle"
}
29 changes: 29 additions & 0 deletions locales/errors/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"1000": "Nicht autorisiert",
"1001": "Erstellung der Sitzung fehlgeschlagen",
"1002": "Ungültiger Parameter",
"1003": "Ungültige Einladung",
"2000": "Nur Administratoren können Feeds aktualisieren",
"2001": "Feed nicht gefunden",
"2002": "feedId oder URL erforderlich",
"2003": "Fehler beim Abrufen des Feeds",
"2004": "Feed konnte nicht analysiert werden",
"2010": "Besitznachweis fehlgeschlagen",
"2011": "Abonnementlimit überschritten",
"3000": "Eintrag nicht gefunden",
"3001": "Eintrag gehört nicht zum Benutzer",
"4000": "Bereits beansprucht",
"4001": "Fehler in der Benutzer-Wallet",
"4002": "Unzureichendes Guthaben",
"4003": "Nicht ausreichendes verfügbares Guthaben im Feed",
"4004": "Fehler in der Zielbenutzer-Wallet",
"5000": "Einladungslimit überschritten. Bitte versuchen Sie es in ein paar Tagen erneut.",
"5001": "Einladung existiert bereits.",
"5002": "Einladungscode wurde bereits verwendet.",
"5003": "Einladungscode existiert nicht.",
"6000": "Benutzer nicht gefunden",
"7000": "Einstellung nicht gefunden",
"7001": "Ungültiger Einstellungs-Tab",
"7002": "Ungültige Einstellungsdaten",
"7003": "Einstellungsdaten sind zu groß"
}
42 changes: 42 additions & 0 deletions locales/external/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"feed": {
"follow_one": "follow",
"follow_other": "followers",
"followsAndReads": "{{subscriptionCount}} {{subscriptionNoun}} with {{readCount}} {{readNoun}} on {{appName}}",
"read_one": "read",
"read_other": "reads"
},
"header": {
"app": "App",
"download": "Download"
},
"invitation": {
"activate": "Activate",
"codeOptions": {
"1": "Looking for an alpha test user to invite you.",
"2": "Join our Discord server for occasional giveaways.",
"3": "Follow our X account for occasional giveaways."
},
"earlyAccess": "Follow is currently in early access and requires an invitation code to use.",
"earlyAccessMessage": "😰 Sorry, Follow is currently in early access and requires an invitation code to use.",
"generateButton": "Generate new code",
"generateCost": "You can spend {{INVITATION_PRICE}} Power to generate an invitation code for your friends.",
"getCodeMessage": "You can get an invitation code through the following ways:",
"title": "Invitation Code"
},
"login": {
"backToWebApp": "Back to the web app",
"continueWithGitHub": "Continue with GitHub",
"continueWithGoogle": "Continue with Google",
"logInTo": "Log in to ",
"openApp": "Open app",
"redirecting": "Redirecting",
"welcomeTo": "Welcome to "
},
"redirect": {
"continueInBrowser": "Continue in browser",
"instruction": "It is time to open {{APP_NAME}} and safely close this page.",
"openApp": "Open {{APP_NAME}}",
"successMessage": "You have successfully connected to {{APP_NAME}} account."
}
}
21 changes: 21 additions & 0 deletions locales/lang/de.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"langs.ar-DZ": "العربية (الجزائر)",
"langs.ar-IQ": "العربية (العراق)",
"langs.ar-KW": "العربية (الكويت)",
"langs.ar-MA": "العربية (المغرب)",
"langs.ar-SA": "العربية (السعودية)",
"langs.ar-TN": "العربية (تونس)",
"langs.de": "Deutsch",
"langs.en": "English",
"langs.es": "Español",
"langs.fi": "Suomi",
"langs.fr": "Français",
"langs.it": "Italiano",
"langs.ja": "日本語",
"langs.pt": "Português",
"langs.ru": "Русский",
"langs.zh-CN": "简体中文",
"langs.zh-HK": "繁體中文(香港)",
"langs.zh-TW": "繁體中文(台灣)",
"name": "Deutsch"
}
Loading
Loading