pageta-native/Sources/Core/PagetaStrings.generated.swift
Till JS 9cb29029a0 i18n: PagetaStrings EN-lokalisiert (Laufzeit-Locale, nonisolated(unsafe))
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 18:03:04 +02:00

201 lines
24 KiB
Swift

// AUTO-GENERIERT — nicht von Hand ändern.
// Quelle: mana/i18n/pageta.de.json (+ common.de.json)
// Generator: mana/scripts/i18n/generate.mjs · SOT: mana/docs/I18N.md
import Foundation
/// UI-Sprache; Default = System-Locale. Für einen Sprach-Picker setzbar.
enum PagetaI18n {
nonisolated(unsafe) static var lang: String = Locale.current.language.languageCode?.identifier ?? "de"
}
enum PagetaStrings {
static var accountLocalFirstNote: String { PagetaI18n.lang == "en" ? "Highlights, notes and your stack work without an account too — everything stays local on this device. With sign-in it's synced and backed up across devices; existing local data is adopted." : "Marker, Notizen und dein Stapel funktionieren auch ohne Konto — alles bleibt lokal auf diesem Gerät. Mit Anmeldung wird es geräteübergreifend synchronisiert und gesichert; bestehende lokale Daten werden dabei übernommen." }
static var accountSummaryFeatureBody: String { PagetaI18n.lang == "en" ? "summarizes articles into two sentences at a tap" : "fasst Artikel auf Knopfdruck in zwei Sätze zusammen" }
static var accountSummaryFeatureTitle: String { PagetaI18n.lang == "en" ? "Article summary" : "Artikel-Zusammenfassung" }
static var actionAdd: String { PagetaI18n.lang == "en" ? "Add" : "Hinzufügen" }
static var actionArchive: String { PagetaI18n.lang == "en" ? "Archive" : "Archivieren" }
static var actionBack: String { PagetaI18n.lang == "en" ? "Back" : "Zurück" }
static var actionCancel: String { PagetaI18n.lang == "en" ? "Cancel" : "Abbrechen" }
static var actionCopy: String { PagetaI18n.lang == "en" ? "Copy" : "Kopieren" }
static var actionCopyLink: String { PagetaI18n.lang == "en" ? "Copy link" : "Link kopieren" }
static var actionDelete: String { PagetaI18n.lang == "en" ? "Delete" : "Löschen" }
static var actionDeselect: String { PagetaI18n.lang == "en" ? "Deselect" : "Abwählen" }
static var actionDone: String { PagetaI18n.lang == "en" ? "Done" : "Fertig" }
static var actionFavorite: String { PagetaI18n.lang == "en" ? "Favorite" : "Favorit" }
static var actionFavoriteRemove: String { PagetaI18n.lang == "en" ? "Remove favorite" : "Favorit entfernen" }
static var actionNone: String { PagetaI18n.lang == "en" ? "None" : "Keine" }
static let actionOk = "OK"
static var actionOpenInBrowser: String { PagetaI18n.lang == "en" ? "Open in browser" : "Im Browser öffnen" }
static var actionOpenOriginal: String { PagetaI18n.lang == "en" ? "Open original" : "Original öffnen" }
static var actionRefresh: String { PagetaI18n.lang == "en" ? "Refresh" : "Aktualisieren" }
static var actionRestore: String { PagetaI18n.lang == "en" ? "Restore" : "Wiederherstellen" }
static var actionSave: String { PagetaI18n.lang == "en" ? "Save" : "Speichern" }
static var actionSearch: String { PagetaI18n.lang == "en" ? "Search" : "Suchen" }
static var actionSelect: String { PagetaI18n.lang == "en" ? "Select" : "Auswählen" }
static var actionShare: String { PagetaI18n.lang == "en" ? "Share …" : "Teilen …" }
static var actionShareShort: String { PagetaI18n.lang == "en" ? "Share" : "Teilen" }
static var addlinkCd: String { PagetaI18n.lang == "en" ? "Add link" : "Link hinzufügen" }
static var addlinkPlaceholder: String { PagetaI18n.lang == "en" ? "Paste link" : "Link einfügen" }
static var addlinkTitle: String { PagetaI18n.lang == "en" ? "Add link" : "Link hinzufügen" }
static var archiveEmptyBody: String { PagetaI18n.lang == "en" ? "Archived articles appear here." : "Archivierte Artikel landen hier." }
static var archiveEmptyTitle: String { PagetaI18n.lang == "en" ? "Archive is empty" : "Archiv ist leer" }
static var archiveLoadError: String { PagetaI18n.lang == "en" ? "Couldn't load archive" : "Archiv konnte nicht geladen werden" }
static func bulkDeleteConfirm(_ count: Int) -> String { PagetaI18n.lang == "en" ? "Delete \(count) articles?" : "\(count) Artikel löschen?" }
static var contextmenuMarkRead: String { PagetaI18n.lang == "en" ? "Mark as read" : "Als gelesen markieren" }
static var contextmenuMarkUnread: String { PagetaI18n.lang == "en" ? "Mark as unread" : "Als ungelesen markieren" }
static var detailAddTag: String { PagetaI18n.lang == "en" ? "Add tag" : "Tag hinzufügen" }
static var detailConsentTip: String { PagetaI18n.lang == "en" ? "Tip: pages with a cookie/consent wall can often be fetched if you open them in the browser and share them again from there." : "Tipp: Seiten mit Cookie-/Consent-Wand lassen sich oft abrufen, wenn du sie im Browser öffnest und von dort erneut teilst." }
static var detailConsentWallBody: String { PagetaI18n.lang == "en" ? "Pageta extracted the site's cookie consent instead of the article. The saved text is probably unusable." : "Pageta hat statt des Artikels die Cookie-Zustimmung der Seite extrahiert. Der gespeicherte Text ist vermutlich unbrauchbar." }
static var detailConsentWallOpen: String { PagetaI18n.lang == "en" ? "Open original in browser" : "Original im Browser öffnen" }
static var detailContentLoadError: String { PagetaI18n.lang == "en" ? "Couldn't load content" : "Inhalt konnte nicht geladen werden" }
static var detailContentNotLoaded: String { PagetaI18n.lang == "en" ? "Content not loaded yet" : "Inhalt noch nicht geladen" }
static var detailContentNotLoadedBody: String { PagetaI18n.lang == "en" ? "The link is saved. Tap Reprocess below to fetch the article text." : "Der Link ist gespeichert. Tippe unten auf Erneut verarbeiten, um den Artikel-Text abzurufen." }
static var detailDismissHint: String { PagetaI18n.lang == "en" ? "Dismiss hint" : "Hinweis ausblenden" }
static var detailEmpty: String { PagetaI18n.lang == "en" ? "Article empty" : "Artikel leer" }
static var detailErrorFetchFailed: String { PagetaI18n.lang == "en" ? "Fetch failed. The source is unreachable or blocks fetching. Try again or open it in the browser." : "Abruf fehlgeschlagen. Die Quelle ist nicht erreichbar oder blockiert den Abruf. Versuche es erneut oder öffne sie im Browser." }
static var detailErrorNoText: String { PagetaI18n.lang == "en" ? "No article text found." : "Kein Artikel-Text gefunden." }
static var detailErrorNotSignedIn: String { PagetaI18n.lang == "en" ? "You're not signed in. Sign in to save your change." : "Du bist nicht angemeldet. Melde dich an, um deine Änderung zu speichern." }
static var detailErrorSessionExpired: String { PagetaI18n.lang == "en" ? "Your session has expired. Sign in again to save your change." : "Deine Sitzung ist abgelaufen. Melde dich erneut an, um deine Änderung zu speichern." }
static var detailErrorSignInToFetch: String { PagetaI18n.lang == "en" ? "Sign in to fetch the article text." : "Melde dich an, um den Artikel-Text abzurufen." }
static var detailErrorSyncNotReady: String { PagetaI18n.lang == "en" ? "Sync isn't ready yet. Restart the app and try again." : "Die Synchronisierung ist noch nicht bereit. Starte die App neu und versuche es erneut." }
static var detailLoadError: String { PagetaI18n.lang == "en" ? "Couldn't load article" : "Artikel konnte nicht geladen werden" }
static var detailLoading: String { PagetaI18n.lang == "en" ? "Loading content …" : "Inhalt wird geladen …" }
static func detailMarkerCount(_ count: Int) -> String { PagetaI18n.lang == "en" ? "Highlights (\(count))" : "Marker (\(count))" }
static var detailNext: String { PagetaI18n.lang == "en" ? "Next" : "Nächster" }
static var detailNextHit: String { PagetaI18n.lang == "en" ? "Next match" : "Nächster Treffer" }
static var detailNoContent: String { PagetaI18n.lang == "en" ? "No content saved." : "Kein Inhalt gespeichert." }
static var detailPrevHit: String { PagetaI18n.lang == "en" ? "Previous match" : "Vorheriger Treffer" }
static var detailReadAgain: String { PagetaI18n.lang == "en" ? "Read again" : "Wieder lesen" }
static var detailReprocess: String { PagetaI18n.lang == "en" ? "Reprocess" : "Erneut verarbeiten" }
static var detailSaveFailed: String { PagetaI18n.lang == "en" ? "Couldn't save" : "Konnte nicht speichern" }
static var detailSearchInArticle: String { PagetaI18n.lang == "en" ? "Search in article" : "Im Artikel suchen" }
static var detailSearchInArticlePlaceholder: String { PagetaI18n.lang == "en" ? "Search in article …" : "Im Artikel suchen …" }
static var detailTagPlaceholder: String { PagetaI18n.lang == "en" ? "e.g. politics, climate, read-2026" : "z. B. politik, klima, gelesen-2026" }
static var detailTagsHint: String { PagetaI18n.lang == "en" ? "Tags are lowercased and limited to 64 characters. Read-back display follows with a server endpoint." : "Tags werden lowercased und auf 64 Zeichen begrenzt. Read-back-Anzeige folgt mit einem Server-Endpoint." }
static var emptyBody: String { PagetaI18n.lang == "en" ? "Tap “+” below, or share from your browser via “Share → Pageta”." : "Tippe unten auf „+“ oder teile aus dem Browser „Teilen → Pageta“." }
static var emptyLocalHint: String { PagetaI18n.lang == "en" ? "Without an account everything stays local; the article text is fetched after you sign in." : "Ohne Login bleibt alles lokal; der Artikel-Text wird nach dem Anmelden nachgeladen." }
static var emptyTitle: String { PagetaI18n.lang == "en" ? "Nothing saved yet." : "Noch nichts gespeichert." }
static var feedEmptyBody: String { PagetaI18n.lang == "en" ? "The pool currently has no items." : "Der Pool hat aktuell keine Items." }
static var feedEmptyTitle: String { PagetaI18n.lang == "en" ? "No articles in the feed" : "Keine Artikel im Feed" }
static var feedInvalidUrl: String { PagetaI18n.lang == "en" ? "Invalid URL" : "Ungültige URL" }
static var feedLoadError: String { PagetaI18n.lang == "en" ? "Couldn't load feed" : "Feed konnte nicht geladen werden" }
static var feedSaveToStack: String { PagetaI18n.lang == "en" ? "Save to stack" : "Auf den Stapel speichern" }
static var feedSaveToStackShort: String { PagetaI18n.lang == "en" ? "To the stack" : "Auf den Stapel" }
static var feedSaving: String { PagetaI18n.lang == "en" ? "Saving …" : "Speichere …" }
static var filterAll: String { PagetaI18n.lang == "en" ? "All" : "Alle" }
static var filterFavorites: String { PagetaI18n.lang == "en" ? "Favorites" : "Favoriten" }
static var filterFinished: String { PagetaI18n.lang == "en" ? "Read" : "Gelesen" }
static var filterUnread: String { PagetaI18n.lang == "en" ? "Unread" : "Ungelesen" }
static func listA11ySection(_ title: String, _ count: Int) -> String { PagetaI18n.lang == "en" ? "\(title), \(count) articles" : "\(title), \(count) Artikel" }
static var listDeleteOne: String { PagetaI18n.lang == "en" ? "Delete article?" : "Artikel wirklich löschen?" }
static var listEmptyBody: String { PagetaI18n.lang == "en" ? "Save URLs from Safari or other apps via the share sheet — or via pageta.com." : "Speichere URLs aus Safari oder anderen Apps via Share-Sheet — oder über pageta.com." }
static var listEmptyTitle: String { PagetaI18n.lang == "en" ? "No articles yet" : "Noch keine Artikel" }
static var listLoadError: String { PagetaI18n.lang == "en" ? "Couldn't load list" : "Liste konnte nicht geladen werden" }
static var listReadTag: String { PagetaI18n.lang == "en" ? "read" : "gelesen" }
static var listReading: String { PagetaI18n.lang == "en" ? "Reading" : "Lesend" }
static var listSaveArticle: String { PagetaI18n.lang == "en" ? "Save article" : "Artikel speichern" }
static var markerColor: String { PagetaI18n.lang == "en" ? "Color" : "Farbe" }
static var markerCopy: String { PagetaI18n.lang == "en" ? "Copy highlight" : "Marker kopieren" }
static var markerDelete: String { PagetaI18n.lang == "en" ? "Delete highlight" : "Marker löschen" }
static var markerEmptyBody: String { PagetaI18n.lang == "en" ? "Highlight passages while reading — they collect here." : "Markiere Textstellen beim Lesen — sie erscheinen hier zusammen." }
static var markerEmptyTitle: String { PagetaI18n.lang == "en" ? "Nothing highlighted yet" : "Noch nichts markiert" }
static var markerLabel: String { PagetaI18n.lang == "en" ? "Highlight" : "Marker" }
static var markerLoadError: String { PagetaI18n.lang == "en" ? "Couldn't load highlights" : "Marker konnten nicht geladen werden" }
static func markerMark(_ color: String) -> String { PagetaI18n.lang == "en" ? "Highlight: \(color)" : "Markieren: \(color)" }
static var markerSubtitle: String { PagetaI18n.lang == "en" ? "All passages you've highlighted in articles." : "Alle Textstellen, die du in Artikeln markiert hast." }
static var metaLoading: String { PagetaI18n.lang == "en" ? "loading" : "wird geladen" }
static func metaMinRead(_ count: Int) -> String { PagetaI18n.lang == "en" ? "\(count) min read" : "\(count) min lesen" }
static func metaMinutes(_ count: Int) -> String { PagetaI18n.lang == "en" ? "\(count) min" : "\(count) Min" }
static func metaMinutesLong(_ count: Int) -> String { PagetaI18n.lang == "en" ? "\(count) min read" : "\(count) Min Lesezeit" }
static var metaMinutesUnit: String { PagetaI18n.lang == "en" ? "min read" : "Min Lesezeit" }
static var navDiscover: String { PagetaI18n.lang == "en" ? "Discover" : "Entdecken" }
static var navMap: String { PagetaI18n.lang == "en" ? "Map" : "Karte" }
static var navPlaces: String { PagetaI18n.lang == "en" ? "Places" : "Orte" }
static var navToday: String { PagetaI18n.lang == "en" ? "Today" : "Heute" }
static var noteAdd: String { PagetaI18n.lang == "en" ? "Add note" : "Notiz hinzufügen" }
static var noteEdit: String { PagetaI18n.lang == "en" ? "Edit note" : "Notiz bearbeiten" }
static var noteHint: String { PagetaI18n.lang == "en" ? "Visible in the highlights list. Leave empty to remove the note." : "Sichtbar in der Marker-Liste. Leerlassen, um die Notiz zu entfernen." }
static var notePlaceholder: String { PagetaI18n.lang == "en" ? "What did you want to remember?" : "Was wolltest du dir merken?" }
static var noteTitle: String { PagetaI18n.lang == "en" ? "Note" : "Notiz" }
static var readerContentMissingBody: String { PagetaI18n.lang == "en" ? "The article text is extracted on the next sync (signed in)." : "Der Artikel-Text wird beim nächsten Sync (eingeloggt) extrahiert." }
static var readerContentMissingTitle: String { PagetaI18n.lang == "en" ? "Content not loaded yet." : "Inhalt noch nicht geladen." }
static var readerHighlightHint: String { PagetaI18n.lang == "en" ? "Tip: long-press a paragraph to highlight it." : "Tipp: Absatz lange drücken, um ihn zu markieren." }
static var readerLoadNow: String { PagetaI18n.lang == "en" ? "Load now" : "Jetzt laden" }
static var readerNotFound: String { PagetaI18n.lang == "en" ? "Article not found." : "Artikel nicht gefunden." }
static var readerTitle: String { PagetaI18n.lang == "en" ? "Read" : "Lesen" }
static var readerWarningConsentWall: String { PagetaI18n.lang == "en" ? "The source likely blocks fetching (cookie/consent wall). The text may be incomplete." : "Die Quelle blockiert den Abruf vermutlich (Cookie-/Consent-Wand). Der Text kann unvollständig sein." }
static var readerWarningDismiss: String { PagetaI18n.lang == "en" ? "Dismiss" : "Ausblenden" }
static var reflectionAiNoSynthesis: String { PagetaI18n.lang == "en" ? "The local AI produced no synthesis — this device may not have a model available. The scaffold below stands regardless." : "Die lokale KI hat keine Synthese erzeugt — auf diesem Gerät ist eventuell kein Modell verfügbar. Das Gerüst unten steht unabhängig davon." }
static var reflectionEmptyBody: String { PagetaI18n.lang == "en" ? "You haven't (finished) reading anything in this period yet. As you read articles, they appear here." : "In diesem Zeitraum hast du noch nichts (zu Ende) gelesen. Sobald du Artikel liest, erscheinen sie hier." }
static var reflectionEmptyTitle: String { PagetaI18n.lang == "en" ? "Nothing read yet" : "Noch nichts gelesen" }
static var reflectionExportHighlightsSection: String { PagetaI18n.lang == "en" ? "## Your highlights" : "## Deine Marker" }
static func reflectionExportReadSection(_ count: Int) -> String { PagetaI18n.lang == "en" ? "## Read (\(count))" : "## Gelesen (\(count))" }
static func reflectionExportStats(_ count: Int, _ minutes: Int, _ sources: Int) -> String { PagetaI18n.lang == "en" ? "\(count) articles · \(minutes) min · \(sources) sources" : "\(count) Artikel · \(minutes) Min · \(sources) Quellen" }
static func reflectionExportTitle(_ scope: String) -> String { PagetaI18n.lang == "en" ? "# Review — \(scope)" : "# Rückblick — \(scope)" }
static var reflectionGenerating: String { PagetaI18n.lang == "en" ? "Generating …" : "Erzeuge …" }
static var reflectionIntro: String { PagetaI18n.lang == "en" ? "What you've read — a calm mirror, not a scoreboard." : "Was du gelesen hast — als ruhiger Spiegel, nicht als Punktestand." }
static var reflectionLocalHint: String { PagetaI18n.lang == "en" ? "Runs locally on your device — this can take a moment." : "Läuft lokal auf deinem Gerät — das kann einen Moment dauern." }
static func reflectionPartArticles(_ used: Int, _ total: Int) -> String { PagetaI18n.lang == "en" ? "\(used) of \(total) articles" : "\(used) von \(total) Artikeln" }
static func reflectionPartHighlights(_ used: Int, _ total: Int) -> String { PagetaI18n.lang == "en" ? "\(used) of \(total) highlights" : "\(used) von \(total) Marker" }
static var reflectionRegenerate: String { PagetaI18n.lang == "en" ? "Regenerate" : "Neu erzeugen" }
static var reflectionSources: String { PagetaI18n.lang == "en" ? "Sources" : "Quellen" }
static var reflectionSynthesis: String { PagetaI18n.lang == "en" ? "Synthesis" : "Synthese" }
static var reflectionSynthesisHint: String { PagetaI18n.lang == "en" ? "An overview and through-lines across your read articles — generated locally. Optional; the scaffold below stands without it." : "Überblick und rote Fäden über deine gelesenen Artikel — lokal erzeugt. Optional; das Gerüst unten steht auch ohne." }
static func reflectionSynthesisShort(_ parts: String) -> String { PagetaI18n.lang == "en" ? "Synthesis from \(parts) — rest trimmed." : "Synthese aus \(parts) — Rest gekürzt." }
static var reflectionSynthesize: String { PagetaI18n.lang == "en" ? "Create synthesis" : "Synthese erzeugen" }
static var reflectionThemes: String { PagetaI18n.lang == "en" ? "Themes" : "Themen" }
static var reflectionUnavailable: String { PagetaI18n.lang == "en" ? "Review unavailable" : "Rückblick nicht verfügbar" }
static var reflectionYourHighlights: String { PagetaI18n.lang == "en" ? "Your highlights" : "Deine Marker" }
static var saveToastFail: String { PagetaI18n.lang == "en" ? "Couldn't save." : "Konnte nicht speichern." }
static func saveToastSuccess(_ title: String) -> String { PagetaI18n.lang == "en" ? "Saved: \(title)" : "Gespeichert: \(title)" }
static var screenArchiveTitle: String { PagetaI18n.lang == "en" ? "Archive" : "Archiv" }
static var screenArticlesTitle: String { PagetaI18n.lang == "en" ? "My articles" : "Meine Artikel" }
static var screenHighlightsTitle: String { PagetaI18n.lang == "en" ? "Highlights" : "Marker" }
static var searchClose: String { PagetaI18n.lang == "en" ? "Close search" : "Suche schließen" }
static var searchNoHitsBody: String { PagetaI18n.lang == "en" ? "Searches the title, source and excerpt of your articles." : "Durchsucht Titel, Quelle und Anriss deiner Artikel." }
static var searchNoHitsTitle: String { PagetaI18n.lang == "en" ? "No results." : "Keine Treffer." }
static var searchPlaceholder: String { PagetaI18n.lang == "en" ? "Search articles" : "Artikel durchsuchen" }
static func selectCount(_ count: Int) -> String { PagetaI18n.lang == "en" ? "\(count) selected" : "\(count) ausgewählt" }
static var settingsBadgeHintIos: String { PagetaI18n.lang == "en" ? "Shows the number of unread articles on the app icon. Activating it asks for the system permission." : "Zeigt die Anzahl ungelesener Artikel am App-Icon. Beim Aktivieren wird die System-Berechtigung abgefragt." }
static var settingsBadgeHintMac: String { PagetaI18n.lang == "en" ? "Shows the number of unread articles on the dock icon. Activating it asks for the system permission." : "Zeigt die Anzahl ungelesener Artikel am Dock-Icon. Beim Aktivieren wird die System-Berechtigung abgefragt." }
static func settingsFailed(_ message: String) -> String { PagetaI18n.lang == "en" ? "Failed: \(message)" : "Fehlgeschlagen: \(message)" }
static var settingsNotSignedIn: String { PagetaI18n.lang == "en" ? "Not signed in" : "Nicht eingeloggt" }
static var settingsSignIn: String { PagetaI18n.lang == "en" ? "Sign in with mana account" : "Mit mana-Konto anmelden" }
static var settingsSignInHint: String { PagetaI18n.lang == "en" ? "Signing in syncs your reading list across devices (E2E-encrypted) and fetches the article text. Without sign-in everything stays local." : "Anmelden synchronisiert deine Leseliste geräteübergreifend (E2E-verschlüsselt) und lädt den Artikel-Text nach. Ohne Login bleibt alles lokal." }
static func settingsSignedIn(_ count: Int) -> String { PagetaI18n.lang == "en" ? "Signed in · \(count) event(s) adopted" : "Angemeldet · \(count) Event(s) übernommen" }
static var settingsSignedOut: String { PagetaI18n.lang == "en" ? "Signed out (local articles remain)." : "Abgemeldet (lokale Artikel bleiben)." }
static var settingsTwoFa: String { PagetaI18n.lang == "en" ? "2FA required (not yet supported)" : "2FA nötig (noch nicht unterstützt)" }
static var stateActionFailed: String { PagetaI18n.lang == "en" ? "Action failed" : "Aktion fehlgeschlagen" }
static var stateLoading: String { PagetaI18n.lang == "en" ? "Loading" : "Wird geladen" }
static var statusArchived: String { PagetaI18n.lang == "en" ? "Archived" : "Archiv" }
static var statusFinished: String { PagetaI18n.lang == "en" ? "Read" : "Gelesen" }
static var statusReading: String { PagetaI18n.lang == "en" ? "Reading" : "Liest" }
static var statusUnread: String { PagetaI18n.lang == "en" ? "Unread" : "Ungelesen" }
static var summarize: String { PagetaI18n.lang == "en" ? "Summarize" : "Zusammenfassen" }
static var summarizeAiNoSynthesis: String { PagetaI18n.lang == "en" ? "The local AI produced no synthesis — this device may not have a model available." : "Die lokale KI hat keine Synthese erzeugt — auf diesem Gerät ist eventuell kein Modell verfügbar." }
static var summarizeAiUnavailable: String { PagetaI18n.lang == "en" ? "Local AI unavailable or insufficient." : "Lokale KI nicht verfügbar oder unzureichend." }
static var summarizeGeneratingHint: String { PagetaI18n.lang == "en" ? "Generating … runs locally on your device (a model may download the first time)." : "Erzeuge … läuft lokal auf deinem Gerät (beim ersten Mal lädt evtl. ein Modell)." }
static func summarizeIndividualDesc(_ count: Int) -> String { PagetaI18n.lang == "en" ? "A short summary per article (\(count))." : "Eine kurze Zusammenfassung je Artikel (\(count))." }
static var summarizeModeIndividual: String { PagetaI18n.lang == "en" ? "Individual" : "Einzeln" }
static var summarizeModeSynthesis: String { PagetaI18n.lang == "en" ? "Synthesis" : "Synthese" }
static var summarizeNoContent: String { PagetaI18n.lang == "en" ? "Article has no content." : "Artikel hat keinen Inhalt." }
static var summarizeNothingYet: String { PagetaI18n.lang == "en" ? "Nothing generated yet." : "Noch nichts erzeugt." }
static var summarizeRegenerate: String { PagetaI18n.lang == "en" ? "Regenerate" : "Neu erzeugen" }
static func summarizeSynthesisDesc(_ count: Int) -> String { PagetaI18n.lang == "en" ? "One connected text across all \(count) articles — locally on your device." : "Ein verbundener Text über alle \(count) Artikel — lokal auf deinem Gerät." }
static var summarizeTitle: String { PagetaI18n.lang == "en" ? "Summary" : "Zusammenfassung" }
static var summarizeTooLittleContent: String { PagetaI18n.lang == "en" ? "Article has too little content." : "Artikel hat zu wenig Inhalt." }
static func summarizeTruncated(_ used: Int, _ total: Int) -> String { PagetaI18n.lang == "en" ? "Synthesis from \(used) of \(total) articles — rest trimmed." : "Synthese aus \(used) von \(total) Artikeln — Rest gekürzt." }
static var tabAccount: String { PagetaI18n.lang == "en" ? "Account" : "Konto" }
static var tabArticles: String { PagetaI18n.lang == "en" ? "Articles" : "Artikel" }
static let tabFeed = "Feed"
static var tabHighlights: String { PagetaI18n.lang == "en" ? "Highlights" : "Marker" }
static let tabMana = "Mana"
static var tabReflection: String { PagetaI18n.lang == "en" ? "Review" : "Rückblick" }
static func tagsAddHint(_ count: Int) -> String { PagetaI18n.lang == "en" ? "Add to \(count) articles." : "Zu \(count) Artikeln hinzufügen." }
static var tagsAddTitle: String { PagetaI18n.lang == "en" ? "Add tags" : "Tags hinzufügen" }
static let tagsLabel = "Tags"
static var tagsPlaceholder: String { PagetaI18n.lang == "en" ? "Tags, comma-separated" : "Tags, durch Komma getrennt" }
static var tagsTag: String { PagetaI18n.lang == "en" ? "Tag …" : "Taggen …" }
static let tagsToggle = "Tags …"
}