- Englische und deutsche Übersetzungen für alle Batch-Edit-Funktionen - Keys für Toolbar, Buttons, Meldungen und Fehlerbehandlung - Unterstützt Genre/Special Toggle, Artist-Änderung und Exclude Global
324 lines
15 KiB
JSON
324 lines
15 KiB
JSON
{
|
||
"Common": {
|
||
"loading": "Loading...",
|
||
"error": "An error occurred",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"delete": "Delete",
|
||
"edit": "Edit",
|
||
"back": "Back"
|
||
},
|
||
"Navigation": {
|
||
"home": "Home",
|
||
"admin": "Admin",
|
||
"global": "Global",
|
||
"news": "News"
|
||
},
|
||
"Game": {
|
||
"play": "Play",
|
||
"pause": "Pause",
|
||
"skip": "Skip",
|
||
"submit": "Guess",
|
||
"next": "Next",
|
||
"won": "You won!",
|
||
"lost": "Game Over",
|
||
"correct": "Correct!",
|
||
"wrong": "Wrong",
|
||
"guessPlaceholder": "Type song or artist...",
|
||
"attempts": "Attempts",
|
||
"share": "Share",
|
||
"nextPuzzle": "Next puzzle in",
|
||
"noPuzzleAvailable": "No Puzzle Available",
|
||
"noPuzzleDescription": "Could not generate a daily puzzle.",
|
||
"noPuzzleGenre": "Please ensure there are songs in the database",
|
||
"goToAdmin": "Go to Admin Dashboard",
|
||
"loadingState": "Loading state...",
|
||
"attempt": "Attempt",
|
||
"unlocked": "unlocked",
|
||
"start": "Start",
|
||
"skipWithBonus": "Skip (+{seconds}s)",
|
||
"solveGiveUp": "Solve (Give Up)",
|
||
"comeBackTomorrow": "Come back tomorrow for a new song.",
|
||
"theSongWas": "The song was:",
|
||
"score": "Score",
|
||
"shareExplanation": "Share your result with friends – your support helps Hördle grow.",
|
||
"scoreBreakdown": "Score Breakdown",
|
||
"albumCover": "Album Cover",
|
||
"released": "Released",
|
||
"yourBrowserDoesNotSupport": "Your browser does not support the audio element.",
|
||
"thanksForRating": "Thanks for rating!",
|
||
"rateThisPuzzle": "Rate this puzzle:",
|
||
"ratingTooltip": "Help our curators create good puzzles!",
|
||
"shared": "✓ Shared!",
|
||
"copied": "✓ Copied!",
|
||
"shareFailed": "✗ Failed",
|
||
"bonusRound": "Bonus Round!",
|
||
"guessReleaseYear": "Guess the release year for",
|
||
"points": "points",
|
||
"skipBonus": "Skip Bonus",
|
||
"notQuite": "Not quite!",
|
||
"sendComment": "Send message to curator",
|
||
"commentPlaceholder": "Write a message to the curators of this genre...",
|
||
"commentHelp": "Share your thoughts about the puzzle with the curators. Your message will be displayed to them.",
|
||
"commentSent": "✓ Message sent! Thank you for your feedback.",
|
||
"commentError": "Error sending message",
|
||
"commentRateLimited": "You have already sent a message for this puzzle.",
|
||
"sending": "Sending...",
|
||
"youGuessed": "You guessed",
|
||
"actuallyReleasedIn": "Actually released in",
|
||
"skipped": "Skipped",
|
||
"gameOverPlaceholder": "Game Over",
|
||
"knowItSearch": "Know it? Search for the artist / title",
|
||
"special": "Special",
|
||
"genre": "Genre"
|
||
},
|
||
"ExtraPuzzles": {
|
||
"title": "Still in the mood for puzzles?",
|
||
"message": "Hey, would you like to try some more puzzles? Then take a look at {name}!",
|
||
"cta": "Go to {name}",
|
||
"close": "Close"
|
||
},
|
||
"Statistics": {
|
||
"yourStatistics": "Your Statistics",
|
||
"totalPuzzles": "Total puzzles",
|
||
"try": "try",
|
||
"failed": "Failed"
|
||
},
|
||
"OnboardingTour": {
|
||
"done": "Done",
|
||
"next": "Next",
|
||
"previous": "Previous",
|
||
"genresSpecials": "Genres & Specials",
|
||
"genresSpecialsDescription": "Choose a specific genre or a curated special event here.",
|
||
"news": "News",
|
||
"newsDescription": "Stay updated with the latest news and announcements.",
|
||
"hoerdle": "Hördle",
|
||
"hoerdleDescription": "This is the daily puzzle. One new song every day per genre.",
|
||
"attempts": "Attempts",
|
||
"attemptsDescription": "You have a limited number of attempts to guess the song.",
|
||
"score": "Score",
|
||
"scoreDescription": "Your current score. Try to keep it high!",
|
||
"player": "Player",
|
||
"playerDescription": "Listen to the snippet. Each additional play reduces your potential score.",
|
||
"input": "Input",
|
||
"inputDescription": "Type your guess here. Search for artist or title.",
|
||
"controls": "Controls",
|
||
"controlsDescription": "Start the music or skip to the next snippet if you're stuck."
|
||
},
|
||
"InstallPrompt": {
|
||
"installApp": "Install Hördle App",
|
||
"installDescription": "Install the app for a better experience and quick access!",
|
||
"iosInstructions": "Tap",
|
||
"iosShare": "share",
|
||
"iosThen": "then \"Add to Home Screen\"",
|
||
"installButton": "Install App"
|
||
},
|
||
"Home": {
|
||
"welcome": "Welcome to Hördle",
|
||
"subtitle": "Guess the song from short snippets",
|
||
"globalTooltip": "A random song from the entire collection",
|
||
"comingSoon": "Coming soon",
|
||
"curatedBy": "Curated by"
|
||
},
|
||
"Admin": {
|
||
"title": "Hördle Admin Dashboard",
|
||
"login": "Admin Login",
|
||
"password": "Password",
|
||
"loginButton": "Login",
|
||
"logout": "Logout",
|
||
"manageSpecials": "Manage Specials",
|
||
"manageGenres": "Manage Genres",
|
||
"manageNews": "Manage News & Announcements",
|
||
"uploadSongs": "Upload Songs",
|
||
"todaysPuzzles": "Today's Daily Puzzles",
|
||
"show": "▶ Show",
|
||
"hide": "▼ Hide",
|
||
"addSpecial": "Add Special",
|
||
"addGenre": "Add Genre",
|
||
"addNews": "Add News",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"save": "Save",
|
||
"cancel": "Cancel",
|
||
"curate": "Curate",
|
||
"name": "Name",
|
||
"subtitle": "Subtitle",
|
||
"maxAttempts": "Max Attempts",
|
||
"unlockSteps": "Unlock Steps",
|
||
"launchDate": "Launch Date",
|
||
"endDate": "End Date",
|
||
"curator": "Curator",
|
||
"active": "Active",
|
||
"newGenreName": "New Genre Name",
|
||
"editSpecial": "Edit Special",
|
||
"editGenre": "Edit Genre",
|
||
"editNews": "Edit News",
|
||
"newsTitle": "News Title",
|
||
"content": "Content (Markdown supported)",
|
||
"author": "Author (optional)",
|
||
"featured": "Featured",
|
||
"noSpecialLink": "No Special Link",
|
||
"noNewsItems": "No news items yet. Create one above!",
|
||
"noPuzzlesToday": "No daily puzzles found for today.",
|
||
"category": "Category",
|
||
"song": "Song",
|
||
"artist": "Artist",
|
||
"actions": "Actions",
|
||
"deletePuzzle": "Delete",
|
||
"wrongPassword": "Wrong password",
|
||
"manageCurators": "Manage Curators",
|
||
"addCurator": "Add Curator",
|
||
"curatorUsername": "Username",
|
||
"curatorPassword": "Password (leave empty to keep)",
|
||
"isGlobalCurator": "Global curator (may change global flag)",
|
||
"assignedGenres": "Assigned genres",
|
||
"assignedSpecials": "Assigned specials",
|
||
"noCurators": "No curators created yet."
|
||
},
|
||
"Curator": {
|
||
"loginTitle": "Curator Login",
|
||
"loginUsername": "Username",
|
||
"loginPassword": "Password",
|
||
"loginButton": "Log in",
|
||
"logout": "Logout",
|
||
"loginFailed": "Login failed.",
|
||
"loginNetworkError": "Network error during login.",
|
||
"loadCuratorError": "Failed to load curator information.",
|
||
"loadSongsError": "Failed to load songs.",
|
||
"songUpdated": "Song updated successfully.",
|
||
"saveError": "Error while saving: {error}",
|
||
"saveNetworkError": "Network error while saving.",
|
||
"noDeletePermission": "You are not allowed to delete this song.",
|
||
"deleteConfirm": "Do you really want to delete \"{title}\"?",
|
||
"songDeleted": "Song deleted.",
|
||
"deleteError": "Error while deleting: {error}",
|
||
"deleteNetworkError": "Network error while deleting.",
|
||
"uploadSectionTitle": "Upload titles",
|
||
"uploadSectionDescription": "Drag one or more MP3 files here or select them. The titles will be analysed automatically (including detection of the release year) and excluded from the global playlist. Select at least one of your genres to assign the titles.",
|
||
"dropzoneTitleEmpty": "Drag MP3 files here",
|
||
"dropzoneTitleWithFiles": "{count} file(s) selected",
|
||
"dropzoneSubtitle": "or click to select files",
|
||
"selectedFilesTitle": "Selected files:",
|
||
"uploadProgress": "Upload: {current} / {total}",
|
||
"assignGenresLabel": "Assign genres",
|
||
"noAssignedGenres": "No genres are assigned to you yet. Please contact the admin.",
|
||
"uploadButtonIdle": "Start upload",
|
||
"uploadButtonUploading": "Uploading...",
|
||
"uploadSummary": "✅ {success}/{total} uploads successful.",
|
||
"uploadSummaryDuplicates": "⚠️ {count} duplicate(s) skipped.",
|
||
"uploadSummaryFailed": "❌ {count} failed.",
|
||
"uploadResultSuccess": "✅ successful",
|
||
"uploadResultDuplicate": "⚠️ Duplicate: {error}",
|
||
"uploadResultError": "❌ Error: {error}",
|
||
"tracklistTitle": "Titles in your genres & specials ({count} titles)",
|
||
"tracklistDescription": "You can edit songs that are assigned to at least one of your genres or specials. Deletion is only allowed if a song is assigned exclusively to your genres/specials. Genres, specials, news and political statements can only be managed by the admin.",
|
||
"searchPlaceholder": "Search by title or artist...",
|
||
"filterAll": "All content",
|
||
"filterNoGlobal": "🚫 No global",
|
||
"filterReset": "Reset filters",
|
||
"noSongsInScope": "No matching songs in your genres/specials.",
|
||
"columnId": "ID",
|
||
"columnPlay": "Play",
|
||
"columnTitle": "Title",
|
||
"columnArtist": "Artist",
|
||
"columnYear": "Year",
|
||
"columnGenresSpecials": "Genres / Specials",
|
||
"columnAdded": "Added",
|
||
"columnActivations": "Activations",
|
||
"columnRating": "Rating",
|
||
"columnExcludeGlobal": "Exclude global",
|
||
"columnActions": "Actions",
|
||
"play": "Play",
|
||
"pause": "Pause",
|
||
"excludeGlobalYes": "Yes",
|
||
"excludeGlobalNo": "No",
|
||
"excludeGlobalInfo": "Only global curators may change this flag.",
|
||
"paginationPrev": "Previous",
|
||
"paginationNext": "Next",
|
||
"paginationLabel": "Page {page} of {total}",
|
||
"loadingData": "Loading data...",
|
||
"loggedInAs": "Logged in as {username}",
|
||
"globalCuratorSuffix": " (Global curator)",
|
||
"pageSizeLabel": "Per page:",
|
||
"commentsTitle": "Comments",
|
||
"showComments": "Show comments",
|
||
"hideComments": "Hide comments",
|
||
"loadingComments": "Loading comments...",
|
||
"noComments": "No comments available.",
|
||
"loadCommentsError": "Error loading comments.",
|
||
"commentFromPuzzle": "Comment from puzzle",
|
||
"commentGenre": "Genre",
|
||
"unreadComment": "Unread",
|
||
"archiveComment": "Archive",
|
||
"archiveCommentConfirm": "Do you really want to archive this comment?",
|
||
"archiveCommentError": "Error archiving comment.",
|
||
"newComments": "new",
|
||
"batchEditTitle": "Batch Edit",
|
||
"clearSelection": "Clear Selection",
|
||
"batchToggleGenres": "Toggle Genres",
|
||
"batchToggleSpecials": "Toggle Specials",
|
||
"batchChangeArtist": "Change Artist",
|
||
"batchArtistPlaceholder": "Enter new artist name",
|
||
"batchExcludeGlobal": "Exclude from Global",
|
||
"batchNoChange": "No change",
|
||
"batchExclude": "Exclude",
|
||
"batchInclude": "Include",
|
||
"batchUpdating": "Updating...",
|
||
"batchApply": "Apply Changes",
|
||
"selectAll": "Select all",
|
||
"selectSong": "Select song",
|
||
"cannotEditSong": "Cannot edit this song",
|
||
"noSongsSelected": "No songs selected",
|
||
"noBatchOperations": "No batch operations specified",
|
||
"batchUpdateSuccess": "Successfully updated {success} of {processed} songs",
|
||
"batchUpdateError": "Error: {error}",
|
||
"batchUpdateNetworkError": "Network error during batch update"
|
||
},
|
||
"About": {
|
||
"title": "About Hördle & Imprint",
|
||
"intro": "Hördle is a non-commercial, privately run hobby project. There are no ads, no sponsored content and no hidden subscription models.",
|
||
"projectTitle": "About this project",
|
||
"projectPrivateNote": "Hördle is developed, operated, curated and financed privately in the creator's spare time. There is no guarantee for permanent availability or completeness.",
|
||
"projectIdea": "The idea behind Hördle is to (re)discover music in a playful way – inspired by Wordle, but for music lovers.",
|
||
"imprintTitle": "Imprint",
|
||
"imprintOperator": "Responsible for the content of this site (provider under German law):",
|
||
"imprintCountry": "Germany",
|
||
"imprintEmailLabel": "Email:",
|
||
"costsTitle": "Ongoing costs of the project",
|
||
"costsIntro": "Even though Hördle is a private project, there are ongoing costs for running it, for example:",
|
||
"costsDonationNote": "All income that exceeds the operating costs of the project will be donated at the end of the year to the campaign <link>Zentrum für politische Schönheit</link>.",
|
||
"costsDomain": "Domains (e.g. hördle.de / hoerdle.de)",
|
||
"costsServer": "Servers / vServers for the app and tracking",
|
||
"costsEmail": "Email hosting",
|
||
"costsLicenses": "Possible fees for copyrights or other licenses",
|
||
"costsSheetLinkText": "You can find a detailed, continuously updated overview of the current costs in this <link>Google Sheet</link>.",
|
||
"costsSheetPrivacyNote": "When accessing the Google Sheet, data (e.g. your IP address) may be transmitted to Google. If you don't want that, please do not open the sheet.",
|
||
"supportTitle": "Support Hördle",
|
||
"supportIntro": "Hördle is a non-commercial project that needs to be financed by ongoing costs. If you would like to support the project financially, here are the options:",
|
||
"supportSepaTitle": "SEPA Bank Transfer (preferred)",
|
||
"supportSepaName": "Markus Busche",
|
||
"supportSepaIban": "IBAN: DE28500310001071584000",
|
||
"supportPaypalTitle": "PayPal Donation",
|
||
"supportPaypalLink": "paypal.me/MBusche",
|
||
"supportSteadyTitle": "Steady",
|
||
"supportSteadyDescription": "Regular support via Steady",
|
||
"supportCuratorTitle": "Apply as Curator",
|
||
"supportCuratorText": "Do you have good knowledge in a genre and would like to apply as a curator? We'd be happy to hear from you!",
|
||
"supportReportBugTitle": "Report Bugs",
|
||
"supportReportBugText": "Found a bug in the app? Please report it via email to <email>admin@hoerdle.de</email>.",
|
||
"privacyTitle": "Privacy",
|
||
"privacyIntro": "Protecting your privacy matters. This project aims to collect as little data as possible.",
|
||
"privacyPlausibleTitle": "Self-hosted Plausible Analytics",
|
||
"privacyPlausibleSelfHosted": "For anonymous usage statistics, Plausible Analytics is used on a self-hosted server. No personal profiles are created.",
|
||
"privacyPlausibleGemaTariff": "Tracking is required to determine the appropriate GEMA tariff.",
|
||
"privacyPlausibleNoCookies": "No cookies are set for analytics purposes.",
|
||
"privacyPlausibleNoTrackingAcrossSites": "There is no tracking across multiple websites or devices.",
|
||
"privacyPlausibleAggregated": "Analytics are only performed in aggregated form (e.g. page views, browsers used).",
|
||
"privacyServerLogs": "For technical reasons, the server may log IP address, time of access and accessed resources. This data is only used to keep the service running and to debug issues and is deleted on a regular basis.",
|
||
"privacyContact": "If you have questions about the data processed or want to request information, please contact the email address given in the imprint.",
|
||
"backTitle": "Back to the game",
|
||
"backToGame": "Back to Hördle",
|
||
"footerLinkLabel": "About & Imprint"
|
||
}
|
||
}
|