diff --git a/apps/zitare/apps/web/src/lib/i18n/locales/de.json b/apps/zitare/apps/web/src/lib/i18n/locales/de.json index ec7ccd8ce..b5fc98f70 100644 --- a/apps/zitare/apps/web/src/lib/i18n/locales/de.json +++ b/apps/zitare/apps/web/src/lib/i18n/locales/de.json @@ -43,13 +43,62 @@ "favorites": { "title": "Favoriten", "empty": "Noch keine Favoriten", - "emptyDescription": "Tippe auf das Herz-Symbol, um Zitate zu speichern" + "emptyDescription": "Tippe auf das Herz-Symbol, um Zitate zu speichern", + "loginPrompt": "Melde dich an, um Favoriten zu speichern", + "removeFromFavorites": "Aus Favoriten entfernen", + "copyQuote": "Zitat kopieren", + "share": "Teilen" }, "lists": { "title": "Meine Listen", "create": "Neue Liste", "empty": "Noch keine Listen", - "emptyDescription": "Erstelle Listen, um Zitate zu organisieren" + "emptyDescription": "Erstelle Listen, um Zitate zu organisieren", + "loginPrompt": "Melde dich an, um Listen zu erstellen", + "quoteCount": "{count} Zitate", + "createModal": { + "title": "Neue Liste erstellen", + "namePlaceholder": "z.B. Motivierende Zitate", + "descriptionPlaceholder": "Was macht diese Liste besonders?", + "submit": "Erstellen" + }, + "nameLabel": "Name", + "descriptionLabel": "Beschreibung (optional)", + "confirmDelete": "Möchtest du diese Liste wirklich löschen?", + "detail": { + "notFound": "Liste nicht gefunden", + "notFoundDescription": "Diese Liste existiert nicht oder wurde gelöscht.", + "backToLists": "Zurück zu Listen", + "breadcrumb": "Listen", + "lastEdited": "Zuletzt bearbeitet: {date}", + "searchPlaceholder": "Zitate durchsuchen...", + "emptyTitle": "Keine Zitate in dieser Liste", + "emptyDescription": "Füge Zitate hinzu, um deine Sammlung zu starten", + "addQuotes": "Zitate hinzufügen", + "remove": "Entfernen", + "removeConfirm": "Zitat aus dieser Liste entfernen?", + "noSearchResults": "Keine Ergebnisse", + "noSearchResultsDescription": "Versuche es mit anderen Suchbegriffen", + "floatingResults": "{filtered} von {total} Zitaten", + "editModal": { + "title": "Liste bearbeiten", + "deleteList": "Liste löschen" + }, + "addModal": { + "title": "Zitate hinzufügen", + "selected": "{count} ausgewählt", + "submit": "Hinzufügen ({count})" + }, + "toast": { + "updated": "Liste aktualisiert!", + "updateError": "Fehler beim Aktualisieren", + "deleted": "Liste gelöscht", + "deleteError": "Fehler beim Löschen", + "quotesAdded": "{count} {count, plural, one {Zitat} other {Zitate}} hinzugefügt!", + "quoteRemoved": "Zitat entfernt", + "removeError": "Fehler beim Entfernen" + } + } }, "search": { "title": "Suche", @@ -59,7 +108,16 @@ "searching": "Suche...", "create": "Erstellen", "createList": "als Liste erstellen", - "createListDescription": "Neue Liste mit diesem Namen erstellen" + "createListDescription": "Neue Liste mit diesem Namen erstellen", + "minChars": "Bitte gib mindestens 2 Zeichen ein", + "hint": "Suche nach Zitaten, Autoren oder Themen" + }, + "settings": { + "quoteLanguage": "Zitat-Sprache", + "quoteLanguageDescription": "Wähle die Sprache, in der die Zitate angezeigt werden sollen.", + "about": "Über Zitare", + "aboutDescription": "Zitare bietet dir täglich inspirierende Zitate von den größten Denkern der Geschichte. Speichere deine Favoriten und erstelle eigene Listen.", + "stats": "{quotes} Zitate · {categories} Kategorien · {languages} Sprachen" }, "auth": { "login": "Anmelden", @@ -77,6 +135,9 @@ "save": "Speichern", "cancel": "Abbrechen", "delete": "Löschen", - "edit": "Bearbeiten" + "edit": "Bearbeiten", + "close": "Schließen", + "search": "Suchen", + "list": "Liste" } } diff --git a/apps/zitare/apps/web/src/lib/i18n/locales/en.json b/apps/zitare/apps/web/src/lib/i18n/locales/en.json index cb003296c..cde130a42 100644 --- a/apps/zitare/apps/web/src/lib/i18n/locales/en.json +++ b/apps/zitare/apps/web/src/lib/i18n/locales/en.json @@ -43,13 +43,62 @@ "favorites": { "title": "Favorites", "empty": "No favorites yet", - "emptyDescription": "Tap the heart icon to save quotes" + "emptyDescription": "Tap the heart icon to save quotes", + "loginPrompt": "Sign in to save favorites", + "removeFromFavorites": "Remove from favorites", + "copyQuote": "Copy quote", + "share": "Share" }, "lists": { "title": "My Lists", "create": "New List", "empty": "No lists yet", - "emptyDescription": "Create lists to organize quotes" + "emptyDescription": "Create lists to organize quotes", + "loginPrompt": "Sign in to create lists", + "quoteCount": "{count} quotes", + "createModal": { + "title": "Create new list", + "namePlaceholder": "e.g. Motivational Quotes", + "descriptionPlaceholder": "What makes this list special?", + "submit": "Create" + }, + "nameLabel": "Name", + "descriptionLabel": "Description (optional)", + "confirmDelete": "Do you really want to delete this list?", + "detail": { + "notFound": "List not found", + "notFoundDescription": "This list does not exist or has been deleted.", + "backToLists": "Back to lists", + "breadcrumb": "Lists", + "lastEdited": "Last edited: {date}", + "searchPlaceholder": "Search quotes...", + "emptyTitle": "No quotes in this list", + "emptyDescription": "Add quotes to start your collection", + "addQuotes": "Add quotes", + "remove": "Remove", + "removeConfirm": "Remove quote from this list?", + "noSearchResults": "No results", + "noSearchResultsDescription": "Try different search terms", + "floatingResults": "{filtered} of {total} quotes", + "editModal": { + "title": "Edit list", + "deleteList": "Delete list" + }, + "addModal": { + "title": "Add quotes", + "selected": "{count} selected", + "submit": "Add ({count})" + }, + "toast": { + "updated": "List updated!", + "updateError": "Error updating list", + "deleted": "List deleted", + "deleteError": "Error deleting list", + "quotesAdded": "{count} {count, plural, one {quote} other {quotes}} added!", + "quoteRemoved": "Quote removed", + "removeError": "Error removing quote" + } + } }, "search": { "title": "Search", @@ -59,7 +108,16 @@ "searching": "Searching...", "create": "Create", "createList": "create as list", - "createListDescription": "Create a new list with this name" + "createListDescription": "Create a new list with this name", + "minChars": "Please enter at least 2 characters", + "hint": "Search for quotes, authors, or topics" + }, + "settings": { + "quoteLanguage": "Quote language", + "quoteLanguageDescription": "Choose the language in which quotes are displayed.", + "about": "About Zitare", + "aboutDescription": "Zitare offers you daily inspiring quotes from the greatest thinkers in history. Save your favorites and create your own lists.", + "stats": "{quotes} quotes · {categories} categories · {languages} languages" }, "auth": { "login": "Sign In", @@ -77,6 +135,9 @@ "save": "Save", "cancel": "Cancel", "delete": "Delete", - "edit": "Edit" + "edit": "Edit", + "close": "Close", + "search": "Search", + "list": "List" } } diff --git a/apps/zitare/apps/web/src/routes/(app)/favorites/+page.svelte b/apps/zitare/apps/web/src/routes/(app)/favorites/+page.svelte index 3d18b292d..a71e25b76 100644 --- a/apps/zitare/apps/web/src/routes/(app)/favorites/+page.svelte +++ b/apps/zitare/apps/web/src/routes/(app)/favorites/+page.svelte @@ -36,14 +36,14 @@ return [ { id: 'remove-favorite', - label: $_('favorites.removeFromFavorites', { default: 'Aus Favoriten entfernen' }), + label: $_('favorites.removeFromFavorites'), variant: 'danger', action: () => favoritesStore.toggle(quote.id), }, { id: 'divider-1', label: '', type: 'divider' }, { id: 'copy', - label: $_('common.copyQuote', { default: 'Zitat kopieren' }), + label: $_('favorites.copyQuote'), action: () => { const text = getQuoteText(quote); navigator.clipboard.writeText(`"${text}" — ${quote.author}`); @@ -51,7 +51,7 @@ }, { id: 'share', - label: $_('common.share', { default: 'Teilen' }), + label: $_('favorites.share'), action: async () => { const text = `"${getQuoteText(quote)}" — ${quote.author}`; if (navigator.share) { @@ -92,7 +92,7 @@ d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" /> -
Melde dich an, um Favoriten zu speichern
+{$_('favorites.loginPrompt')}