mirror of
https://github.com/narrrl/holy-flavor-rater.git
synced 2026-11-03 16:41:27 +01:00
1110 lines
53 KiB
TypeScript
1110 lines
53 KiB
TypeScript
import i18n from 'i18next';
|
||
import { initReactI18next } from 'react-i18next';
|
||
import LanguageDetector from 'i18next-browser-languagedetector';
|
||
|
||
const resources = {
|
||
en: {
|
||
translation: {
|
||
nav: {
|
||
home: 'Home',
|
||
community: 'Community',
|
||
about: 'About',
|
||
dashboard: 'My Collection',
|
||
profile: 'My Profile',
|
||
settings: 'Settings',
|
||
logout: 'Logout',
|
||
login: 'Login / Signup',
|
||
following: 'Following',
|
||
categories: 'Categories',
|
||
},
|
||
brand: {
|
||
name: 'Holy Archive',
|
||
tagline: 'Flavor Rater',
|
||
},
|
||
categories: {
|
||
energy: 'Energy',
|
||
hydration: 'Hydration',
|
||
'iced-tea': 'Iced Tea',
|
||
milkshake: 'Milkshake',
|
||
'packs-and-other': 'Packs & Other',
|
||
},
|
||
dashboard: {
|
||
title: 'My Collection',
|
||
welcome: 'Welcome back, {{username}}!',
|
||
shareProfile: 'Share Profile',
|
||
copySuccess: 'Link copied to clipboard!',
|
||
loginRequired: 'Please log in to view your dashboard.',
|
||
avgScore: 'Avg Score',
|
||
thisMonth: 'This Month',
|
||
favoriteCategory: 'Top category: {{category}} ({{count}})',
|
||
recHeading: 'Tasters like you loved',
|
||
recReasonCf: '{{count}} tasters like you',
|
||
recReasonPopular: 'Popular pick',
|
||
predictedForYou: 'Predicted for you',
|
||
myRatings: 'My Ratings',
|
||
missing: 'Missing',
|
||
noRatings: "You haven't rated any flavors yet.",
|
||
noComment: 'No comment provided.',
|
||
exploreFlavors: 'Explore New Flavors',
|
||
allRated: "Amazing! You've rated everything! 🏆",
|
||
myReviews: 'My Rated Flavors',
|
||
exploreNew: 'To Try',
|
||
editingReview: 'Editing review for {{flavor}}',
|
||
newScore: 'New Score:',
|
||
searchMissing: "Search flavors you haven't rated...",
|
||
searchRated: 'Search your collection...',
|
||
circleAvg: 'Average rating from your friends',
|
||
sortBy: 'Sort by',
|
||
date: 'Date',
|
||
rating: 'Rating',
|
||
communityRating: 'Community Rating',
|
||
circleRating: 'Friends Rating',
|
||
},
|
||
settings: {
|
||
subtitle: 'Manage your account and preferences',
|
||
appearanceTitle: 'Appearance & Language',
|
||
themeLabel: 'Theme',
|
||
themeGroupHoly: 'Holy Archive',
|
||
themeGroupLight: 'Light Themes',
|
||
themeGroupDark: 'Dark Themes',
|
||
langLabel: 'Language',
|
||
bannerLabel: 'Interactive Banner',
|
||
bannerDefault: 'Site Default',
|
||
avatarTitle: 'Profile Picture',
|
||
avatarButton: 'Upload New Avatar',
|
||
avatarHint: 'Max size: 2MB. JPG, PNG or WEBP.',
|
||
avatarSuccess: 'Avatar updated successfully!',
|
||
infoTitle: 'Profile Information',
|
||
usernameLabel: 'Username',
|
||
emailLabel: 'Email',
|
||
emailHint: 'Change will require confirmation',
|
||
updateButton: 'Update Profile',
|
||
updateSuccess: 'Profile updated successfully!',
|
||
confirmEmailTitle: 'Confirm Email Change',
|
||
confirmEmailHint: 'Enter the 6-digit code sent to {{email}}',
|
||
confirmButton: 'Verify & Update Email',
|
||
passwordTitle: 'Change Password',
|
||
oldPasswordLabel: 'Old Password',
|
||
newPasswordLabel: 'New Password',
|
||
passwordButton: 'Change Password',
|
||
passwordSuccess: 'Password changed successfully!',
|
||
dangerTitle: 'Danger Zone',
|
||
dangerDesc:
|
||
'Permanently delete your account and all associated data. This action is irreversible.',
|
||
deleteButton: 'Delete My Account',
|
||
deletionCodeLabel: 'Deletion Code',
|
||
deletionCodeHint: 'Enter verification code:',
|
||
confirmDeleteButton: 'Confirm Permanent Deletion',
|
||
cancelButton: 'Cancel',
|
||
codeSent: 'Verification code sent to your email.',
|
||
},
|
||
hero: {
|
||
title: 'The Ultimate Holy Archive',
|
||
subtitle:
|
||
'Browse every flavor ever released, discover new favorites, and share your ratings with the community.',
|
||
join: 'Join Community',
|
||
whatIsThis: 'What is this for?',
|
||
},
|
||
home: {
|
||
activity: 'Community Activity',
|
||
activitySubtitle: 'Latest reviews from people you follow',
|
||
viewFullFeed: 'View Full Feed',
|
||
quietFeed: 'Your feed is a bit quiet',
|
||
followMore: 'Follow more users to see their activity here!',
|
||
exploreFlavors: 'Explore Flavors',
|
||
hallOfFame: 'Hall of Fame',
|
||
hallOfFameSubtitle: 'Highest-rated flavors in the archive',
|
||
browseCategories: 'Browse Categories',
|
||
browseCategoriesSubtitle: 'Jump straight into a flavor line',
|
||
recForYou: 'Recommended for You',
|
||
recForYouSubtitle: 'Picked by tasters who share your palate',
|
||
popularPicks: 'Popular Picks',
|
||
popularPicksSubtitle: 'Crowd favorites worth discovering',
|
||
communityVoice: 'Community Voice',
|
||
newArrivals: 'New Arrivals',
|
||
newArrivalsSubtitle: 'The latest additions to the catalog',
|
||
viewAllReviews: 'View All Reviews',
|
||
viewMoreReviews: 'View more reviews',
|
||
rated: 'rated',
|
||
archiveTitle: 'The Holy Archive',
|
||
archiveSubtitle:
|
||
'Top-rated flavors and the latest arrivals. Use the search bar to find anything.',
|
||
searchResultsTitle: 'Search results for "{{query}}"',
|
||
searchResultsCount_one: 'Found {{count}} item',
|
||
searchResultsCount_other: 'Found {{count}} items',
|
||
noSearchResults: 'No flavors match "{{query}}".',
|
||
noTopFlavors: 'No top-rated flavors yet.',
|
||
noNewest: 'No new arrivals yet.',
|
||
previousFlavor: 'Previous flavor',
|
||
nextFlavor: 'Next flavor',
|
||
goToFlavor: 'Go to flavor {{n}}',
|
||
noCategoryFlavors: 'No flavors here yet',
|
||
noCategoryFlavorsSub: 'Check back soon.',
|
||
flavorsFallback: 'Flavors',
|
||
},
|
||
common: {
|
||
search: 'Search...',
|
||
back: 'Back',
|
||
backTo: 'Back to {{page}}',
|
||
backToArchive: 'Back to Archive',
|
||
backToHome: 'Back to Home',
|
||
buyNow: 'Buy Now',
|
||
reviews: 'reviews',
|
||
rank: 'Rank',
|
||
loading: 'Loading...',
|
||
replies: 'Replies',
|
||
reply: 'Reply',
|
||
edit: 'Edit',
|
||
delete: 'Delete',
|
||
save: 'Save',
|
||
cancel: 'Cancel',
|
||
all: 'All',
|
||
noComment: 'No comment provided.',
|
||
replyFailed: 'Failed to send reply',
|
||
actionFailed: 'Something went wrong. Please try again.',
|
||
confirmDeleteReview: 'Delete this review?',
|
||
confirmDeleteReply: 'Delete this reply?',
|
||
confirmDeleteComment: 'Delete this comment?',
|
||
notFoundTitle: '404 — Page Not Found',
|
||
home: 'Home',
|
||
processing: 'Processing...',
|
||
active: 'Active',
|
||
inactive: 'Inactive',
|
||
},
|
||
status: {
|
||
limited: 'Limited',
|
||
outOfStock: 'Out of Stock',
|
||
},
|
||
flavorDetail: {
|
||
similarHeading: 'People who liked this also liked',
|
||
similarCoRaters: '{{count}} rated both',
|
||
similarTooltip: 'Tasters who rated both this flavor and the one above',
|
||
rateThisFlavor: 'Rate this flavor',
|
||
scoreLabel: 'Your score, 1 to 10',
|
||
submitReview: 'Submit Review',
|
||
shareThoughts: 'Share your thoughts...',
|
||
selectScore: 'Please select a score',
|
||
submitFailed: 'Failed to submit rating',
|
||
noComment: 'No comment provided.',
|
||
ratingsAndComments: 'Ratings & Comments',
|
||
beTheFirst: 'Be the first to rate this flavor!',
|
||
joinDiscussion: 'Join the discussion with {{count}} other fans.',
|
||
imageOf: 'Image {{current}} of {{total}}',
|
||
previousImage: 'Previous image',
|
||
nextImage: 'Next image',
|
||
showImage: 'Show image {{n}}',
|
||
galleryLabel: '{{name}} images',
|
||
noImage: 'No Image',
|
||
ratingDistribution: 'Rating distribution',
|
||
flavorNotFound: 'Flavor not found',
|
||
editProductAdmin: 'Edit Product (Admin)',
|
||
nameLabel: 'Name',
|
||
descriptionLabel: 'Description',
|
||
shopUrlLabel: 'Shop URL',
|
||
uploadImage: 'Upload Custom Image',
|
||
uploading: 'Uploading...',
|
||
inStock: 'In Stock',
|
||
legacyLimited: 'Legacy / Limited',
|
||
adminUpdateFailed: 'Admin update failed',
|
||
imageUploadFailed: 'Image upload failed',
|
||
replyUpdateFailed: 'Failed to update reply',
|
||
replyDeleteFailed: 'Failed to delete reply',
|
||
reviewUpdateFailed: 'Failed to update review',
|
||
reviewDeleteFailed: 'Failed to delete review',
|
||
},
|
||
profile: {
|
||
notFound: 'Profile not found.',
|
||
tabRatings: 'Ratings',
|
||
tabGuestbook: 'Guestbook',
|
||
tabFollowers: 'Followers',
|
||
tabFollowing: 'Following',
|
||
masterCollector: 'Master Collector',
|
||
noRatingsCategory: 'No ratings in this category',
|
||
leaveMessage: 'Leave a message',
|
||
guestbookPlaceholder: 'Say something about their taste...',
|
||
guestbookEmpty: 'No entries in the guestbook yet.',
|
||
guestbookEmptySub: 'Be the first to leave a message!',
|
||
noFollowers: 'No followers yet.',
|
||
noFollowing: 'Not following anyone yet.',
|
||
followFailed: 'Failed to update follow status. Please login.',
|
||
commentAddFailed: 'Failed to add comment',
|
||
commentDeleteFailed: 'Failed to delete comment',
|
||
},
|
||
auth: {
|
||
loginTitle: 'Login',
|
||
signupTitle: 'Signup',
|
||
verifyTitle: 'Verify Account',
|
||
verifyDesc: 'Enter the code sent to your email for <strong>{{username}}</strong>.',
|
||
resendButton: 'Resend Verification Code',
|
||
resendSuccess: 'A new verification code has been sent to your email.',
|
||
verifySuccess: 'Account verified! You can now login.',
|
||
unverifiedError: 'Account not verified. Please verify your account to login.',
|
||
loginFailed: 'Login failed. Please check your credentials.',
|
||
signupSuccess: 'Signup successful! Please enter the verification code sent to your email.',
|
||
forgotPassword: 'Forgot Password?',
|
||
backToAuth: 'Back to Signup/Login',
|
||
usernameLabel: 'Username',
|
||
passwordLabel: 'Password',
|
||
emailLabel: 'Email',
|
||
newPasswordLabel: 'New Password',
|
||
verificationCodeLabel: 'Verification Code',
|
||
resetCodeLabel: 'Reset Code',
|
||
verifyButton: 'Verify',
|
||
resetTitle: 'Reset Password',
|
||
sendResetCode: 'Send Reset Code',
|
||
resetButton: 'Reset Password',
|
||
backToLogin: 'Back to Login',
|
||
resetRequested: 'If an account exists, a reset code has been sent.',
|
||
resetSuccess: 'Password reset successful! You can now login.',
|
||
resetFailed: 'Reset failed',
|
||
signupFailed: 'Signup failed',
|
||
verifyFailed: 'Verification failed',
|
||
resendFailed: 'Failed to resend code',
|
||
genericError: 'An error occurred. Please try again later.',
|
||
showPassword: 'Show password',
|
||
hidePassword: 'Hide password',
|
||
passwordTooShort: 'Password must be at least 8 characters.',
|
||
passwordNumericOnly: 'Password cannot be entirely numeric.',
|
||
passwordStrength: 'Strength',
|
||
strengthWeak: 'Weak',
|
||
strengthFair: 'Fair',
|
||
strengthGood: 'Good',
|
||
strengthStrong: 'Strong',
|
||
},
|
||
community: {
|
||
title: 'Community Activity',
|
||
subtitle: "Stay updated with your circle's latest ratings and discussions.",
|
||
quietFeed: 'Your feed is a bit empty...',
|
||
followMore: 'Follow more people to see their flavor ratings here!',
|
||
topRated: "Circle's Top Rated",
|
||
notifications: 'Recent Notifications',
|
||
notifReply: 'replied',
|
||
notifReplyOn: 'replied to your review on {{flavor}}',
|
||
notifMention: 'mentioned you',
|
||
notifMentionOn: 'mentioned you on {{flavor}}',
|
||
notifFollow: 'started following you',
|
||
notifProfileComment: 'left a message on your guestbook',
|
||
notifTicketNew: 'opened a new support ticket',
|
||
notifTicketReply: 'replied to your support ticket',
|
||
notifTicketReplyAdmin: 'replied to a support ticket',
|
||
noNotifications: 'No notifications.',
|
||
markAllRead: 'Mark all read',
|
||
markAllReadFailed: 'Failed to mark notifications as read',
|
||
searchFriends: 'Search friends...',
|
||
writeReply: 'Add a reply...',
|
||
rated: 'rated',
|
||
tabFollowing: 'Following',
|
||
tabDiscover: 'Discover',
|
||
discoverSubtitle: 'See what the whole community is rating right now.',
|
||
discoverEmpty: 'No recent activity yet.',
|
||
discoverEmptyHint: 'Be the first to rate a flavor!',
|
||
browseDiscover: 'Browse Discover',
|
||
},
|
||
support: {
|
||
title: 'Help & Support',
|
||
myTickets: 'My Tickets',
|
||
createTicket: 'Open New Ticket',
|
||
subject: 'Subject',
|
||
description: 'How can we help you?',
|
||
status: 'Status',
|
||
open: 'Open',
|
||
closed: 'Closed',
|
||
resolved: 'Resolved',
|
||
in_progress: 'In Progress',
|
||
noTickets: "You haven't opened any tickets yet.",
|
||
reply: 'Send Message',
|
||
ticketDetail: 'Ticket #{{id}}',
|
||
unread: 'New message',
|
||
},
|
||
admin: {
|
||
title: 'Admin Control Panel',
|
||
users: 'User Management',
|
||
stats: 'System Statistics',
|
||
overview: 'Overview',
|
||
banners: 'Banner Models',
|
||
config: 'Server Configuration',
|
||
totalUsers: 'Total Users',
|
||
openTickets: 'Open Tickets',
|
||
sendTestEmail: 'Send Test Email',
|
||
testEmailSuccess: 'Test email sent successfully!',
|
||
ipHistory: 'Login IP History',
|
||
manageUser: 'Manage User',
|
||
manageRating: 'Manage Rating',
|
||
manageReply: 'Manage Reply',
|
||
deactivate: 'Deactivate Account',
|
||
activate: 'Activate Account',
|
||
dangerZone: 'Danger Zone',
|
||
deleteUser: 'Delete User Permanently',
|
||
sections: {
|
||
overview: 'Overview',
|
||
users: 'Users',
|
||
flavors: 'Flavors',
|
||
banners: 'Banners',
|
||
jobs: 'Jobs',
|
||
tickets: 'Tickets',
|
||
config: 'Config',
|
||
},
|
||
updateFailed: 'Update failed',
|
||
deleteFailed: 'Delete failed',
|
||
actionFailed: 'Action failed',
|
||
retryLoading: 'Retry Loading',
|
||
userNum: 'User #{{n}}',
|
||
ratingNum: 'Rating #{{n}}',
|
||
replyNum: 'Reply #{{n}}',
|
||
noBanners: 'No banner models found',
|
||
noBannersSub: 'No banners registered in the database.',
|
||
bannerSetDefault: 'Banner set as default',
|
||
bannerActivateFailed: 'Failed to activate banner',
|
||
bannerToggleFailed: 'Failed to toggle visibility',
|
||
bannerHidden: 'Hidden from Users',
|
||
bannerGlobalDefault: 'Global Default',
|
||
bannerSlug: 'Slug',
|
||
editSettings: 'Edit Settings',
|
||
disableForUsers: 'Disable for Users',
|
||
enableForUsers: 'Enable for Users',
|
||
setAsDefault: 'Set as Default',
|
||
configSaved: 'Configuration saved',
|
||
configSaveFailed: 'Failed to save configuration',
|
||
configLiveHint: 'Live values applied without restart. Form posts the full config on save.',
|
||
siteName: 'Site Name',
|
||
siteNameHint: 'Displayed in the browser tab and various headers.',
|
||
maintenanceMode: 'Maintenance Mode',
|
||
maintenanceModeHint: 'Block non-admin users from interacting with the site.',
|
||
allowSignups: 'Allow New Signups',
|
||
allowSignupsHint: 'When off, the registration endpoint rejects new accounts.',
|
||
requireVerification: 'Require Email Verification',
|
||
requireVerificationHint: 'New accounts must confirm their email before logging in.',
|
||
saving: 'Saving…',
|
||
saveChanges: 'Save changes',
|
||
discard: 'Discard',
|
||
jobsTitle: 'Background Worker Jobs',
|
||
jobsFilter: 'Filter jobs…',
|
||
jobQueued: 'Job queued',
|
||
jobTriggerFailed: 'Failed to trigger job',
|
||
jobScheduleFailed: 'Failed to update schedule',
|
||
jobStatusQueued: 'QUEUED',
|
||
jobLastRun: 'Last Run',
|
||
jobNextRun: 'Next Run',
|
||
jobNever: 'Never',
|
||
jobQueuedShort: 'Queued…',
|
||
jobDisabled: 'Disabled',
|
||
jobSchedule: 'Schedule',
|
||
jobLastOutput: 'Last Run Output',
|
||
jobLastError: 'Last Error',
|
||
jobTriggerNow: 'Trigger Now',
|
||
schedHourly: 'Hourly',
|
||
sched6h: 'Every 6 Hours',
|
||
sched12h: 'Every 12 Hours',
|
||
schedDaily: 'Daily',
|
||
schedWeekly: 'Weekly',
|
||
testEmailFailed: 'Failed to send',
|
||
envInfo: 'Environment Info (.env)',
|
||
apiStatus: 'API Status',
|
||
frontendUrl: 'Frontend URL',
|
||
allowedHosts: 'Allowed Hosts',
|
||
envHint:
|
||
'These values are read from your server environment or .env file. To change them, you must update the file and restart the backend container.',
|
||
colId: 'ID',
|
||
colUser: 'User',
|
||
colEmail: 'Email',
|
||
colStatus: 'Status',
|
||
colJoined: 'Joined',
|
||
colIp: 'IP History',
|
||
colActions: 'Actions',
|
||
roleAdmin: 'Admin',
|
||
roleSuperuser: 'Superuser',
|
||
ticketMessageFailed: 'Failed to send message',
|
||
ticketStatusSet: 'Status set to {{status}}',
|
||
ticketStatusFailed: 'Failed to update status',
|
||
ticketDeleteConfirm: 'Delete this ticket?',
|
||
ticketDeleted: 'Ticket deleted',
|
||
ticketDeleteFailed: 'Failed to delete ticket',
|
||
viewProfile: 'View Profile',
|
||
supportTag: 'Support',
|
||
userNotFound: 'User not found',
|
||
userMgmtTitle: 'User Management',
|
||
joinedLabel: 'Joined',
|
||
lastLoginLabel: 'Last Login',
|
||
tabContent: 'Content',
|
||
tabSecurity: 'Security & IP',
|
||
tabDanger: 'Danger Zone',
|
||
ratingsDiscussion: 'User Ratings & Discussion',
|
||
scoreLabel: 'Score',
|
||
noCommentShort: 'No comment',
|
||
noRatingsYet: 'No ratings yet.',
|
||
noIpHistory: 'No IP history available.',
|
||
deleteUserTitle: 'Delete user',
|
||
deleteUserConfirm: 'PERMANENTLY DELETE THIS USER AND ALL DATA? This cannot be undone.',
|
||
deleteForever: 'Delete forever',
|
||
deleteUserWarning:
|
||
'Deleting this user will permanently remove their profile, all their ratings, replies, and IP history. This action is irreversible.',
|
||
deleteUserNote:
|
||
'Proceed only if the user has been reviewed for policy violations or requested deletion.',
|
||
deleteRatingConfirm: 'Delete this rating?',
|
||
deleteReplyConfirm: 'Delete this reply?',
|
||
ratingMgmtTitle: 'Rating Management',
|
||
replyMgmtTitle: 'Reply Management',
|
||
ratingUpdated: 'Rating updated!',
|
||
replyUpdated: 'Reply updated!',
|
||
deleteRatingRepliesConfirm: 'Delete this rating and all replies?',
|
||
userLabel: 'User: {{user}}',
|
||
replyByLabel: 'Reply by {{user}}',
|
||
manageFlavors: 'Manage Flavors',
|
||
mergeFlavors: 'Merge Flavors',
|
||
mergeFlavorsDesc:
|
||
'Combine two flavors into one. Ratings from the source flavor will be moved to the target flavor. If a user rated both, the more detailed review is kept.',
|
||
flavorToRemove: 'Flavor to Remove (Source)',
|
||
flavorToRemoveHint: 'This flavor will be DELETED',
|
||
flavorToKeep: 'Flavor to Keep (Target)',
|
||
flavorToKeepHint: 'This flavor will be PRESERVED',
|
||
startMerge: 'Start Merge',
|
||
confirmMergeTitle: 'Confirm Flavor Merge',
|
||
confirmMergeText:
|
||
'Are you sure you want to merge "{{remove}}" into "{{keep}}"? This action is irreversible. "{{remove}}" will be deleted, and all its ratings will be transferred.',
|
||
confirmMerge: 'Merge Flavors',
|
||
mergeSuccess: 'Flavors merged successfully',
|
||
errorPrefix: 'Error: {{message}}',
|
||
},
|
||
about: {
|
||
title: 'About This Project',
|
||
mission:
|
||
'Holy Flavors Archive is a community-driven project dedicated to documenting and rating the vast world of Holy Energy products. Our goal is to create a definitive, high-density catalog of every flavor ever released—including legacy and limited editions.',
|
||
canDoTitle: 'What you can do here:',
|
||
featureExplore: 'Explore: Find details on any Holy Energy, Iced Tea, or Milkshake product.',
|
||
featureRate: 'Rate: Share your honest opinion and score flavors from 1 to 10.',
|
||
featureCommunity:
|
||
'Community: Follow other fans, see their latest tests, and discover new favorites together.',
|
||
featureProfile:
|
||
'Taste Profile: Build your own personal tiered leaderboard to share with the world.',
|
||
featurePersonalize:
|
||
'Personalize: Choose from over 15 themes and select interactive banners to make the archive your own.',
|
||
featureEngage:
|
||
'Engage: Start discussions by replying to reviews and leaving comments on user profiles.',
|
||
featureSupport:
|
||
'Support: Get direct assistance through our integrated ticket system for any questions or issues.',
|
||
disclaimer:
|
||
'This website is a fan project and is not officially affiliated with, authorized, maintained, sponsored, or endorsed by HOLY Energy GmbH. All product names, logos, and brands are property of their respective owners.',
|
||
impressumTitle: 'Impressum (Legal Notice)',
|
||
legalInfo: 'Information according to § 5 TMG:',
|
||
contact: 'Contact',
|
||
responsible: 'Responsible for content according to § 55 Abs. 2 RStV:',
|
||
disclaimerTitle: 'Legal Disclaimer',
|
||
region: 'Germany',
|
||
liabilityContentTitle: 'Liability for Content:',
|
||
liabilityContentDesc:
|
||
'As a service provider, we are responsible for our own content on these pages in accordance with general laws according to § 7 Para. 1 TMG. According to §§ 8 to 10 TMG, however, we as service providers are not obliged to monitor transmitted or stored third-party information.',
|
||
copyrightTitle: 'Copyright:',
|
||
copyrightDesc:
|
||
'The content and works created by the site operators on these pages are subject to German copyright law. The reproduction, processing, distribution and any kind of exploitation outside the limits of copyright law require the written consent of the respective author.',
|
||
},
|
||
privacy: {
|
||
title: 'Privacy Policy',
|
||
intro:
|
||
'Protecting your personal data is a top priority for us. Below we inform you about the processing of your data on our website in accordance with the requirements of the GDPR.',
|
||
controllerTitle: '1. Controller',
|
||
controllerDesc: 'The party responsible for data processing on this website is:',
|
||
collectionTitle: '2. Collection and Storage of Personal Data',
|
||
regTitle: 'Registration:',
|
||
regDesc:
|
||
'When you create an account, we store your username, email address, and password (encrypted). This data is used to provide community features (ratings, following users). The legal basis is Art. 6 Para. 1 lit. b GDPR.',
|
||
ipTitle: 'IP Addresses:',
|
||
ipDesc:
|
||
'To ensure the security of our IT systems and to prevent abuse, we store the IP addresses from which you log in. This data is deleted as soon as it is no longer necessary to achieve the purpose for which it was collected. The legal basis is Art. 6 Para. 1 lit. f GDPR.',
|
||
profileTitle: 'Public Profile:',
|
||
profileDesc:
|
||
'Your username, avatar, ratings, and profile comments are publicly visible to other users. You can change or delete your profile data at any time in your settings.',
|
||
socialTitle: 'Social Interaction:',
|
||
socialDesc:
|
||
'Comments left on profiles and replies to ratings are stored and displayed publicly. This includes the timestamp and the author of the content.',
|
||
supportTitle: 'Support Tickets:',
|
||
supportDesc:
|
||
'When you open a support ticket, we store the subject, description, and subsequent messages to provide technical assistance and resolve your inquiry.',
|
||
personalizationTitle: 'Personalization:',
|
||
personalizationDesc:
|
||
'Your preferred theme, language, and selected interactive banner are stored in your user profile to provide a consistent experience across sessions.',
|
||
deletionTitle: 'Account Deletion:',
|
||
deletionDesc:
|
||
'You can permanently delete your account and all associated personal data at any time in your account settings. For security reasons, this requires verification via an email code.',
|
||
transferTitle: '3. Data Transfer to Third Parties',
|
||
transferDesc:
|
||
'We do not pass your data on to third parties without your express consent, unless this is necessary to fulfill a contract or a legal obligation.',
|
||
rightsTitle: '4. Your Rights',
|
||
rightsDesc:
|
||
'You have the right to information (Art. 15 GDPR), correction (Art. 16 GDPR), deletion (Art. 17 GDPR), and restriction of the processing of your data. Please contact us at:',
|
||
},
|
||
cookieBanner: {
|
||
title: 'Cookie Settings',
|
||
description:
|
||
"We use essential technical cookies to manage your login sessions, store your preferred theme and language settings, and ensure the security of your account. These cookies are strictly necessary for the site to function properly. Would you like to switch to Holy Dark mode before you start? It's easier on the eyes!",
|
||
accept: 'Accept and Continue',
|
||
switchToDark: 'Switch to Holy Dark',
|
||
switchToLight: 'Stay on Holy Light',
|
||
},
|
||
},
|
||
},
|
||
de: {
|
||
translation: {
|
||
nav: {
|
||
home: 'Startseite',
|
||
community: 'Community',
|
||
about: 'Über uns',
|
||
dashboard: 'Mein Archiv',
|
||
profile: 'Mein Profil',
|
||
settings: 'Einstellungen',
|
||
logout: 'Abmelden',
|
||
login: 'Anmelden / Registrieren',
|
||
following: 'Folge ich',
|
||
categories: 'Kategorien',
|
||
},
|
||
brand: {
|
||
name: 'Holy-Archiv',
|
||
tagline: 'Geschmacks-Rating',
|
||
},
|
||
categories: {
|
||
energy: 'Energy',
|
||
hydration: 'Hydration',
|
||
'iced-tea': 'Eistee',
|
||
milkshake: 'Milkshake',
|
||
'packs-and-other': 'Bundles & Mehr',
|
||
},
|
||
dashboard: {
|
||
title: 'Mein Archiv',
|
||
welcome: 'Willkommen zurück, {{username}}!',
|
||
shareProfile: 'Profil teilen',
|
||
copySuccess: 'Link in die Zwischenablage kopiert!',
|
||
loginRequired: 'Bitte melde dich an, um dein Dashboard zu sehen.',
|
||
avgScore: 'Ø Bewertung',
|
||
thisMonth: 'Diesen Monat',
|
||
favoriteCategory: 'Top-Kategorie: {{category}} ({{count}})',
|
||
recHeading: 'Tester wie du mochten',
|
||
recReasonCf: '{{count}} Tester wie du',
|
||
recReasonPopular: 'Beliebte Wahl',
|
||
predictedForYou: 'Für dich vorhergesagt',
|
||
myRatings: 'Meine Bewertungen',
|
||
missing: 'Fehlend',
|
||
noRatings: 'Du hast noch keine Sorten bewertet.',
|
||
noComment: 'Kein Kommentar abgegeben.',
|
||
exploreFlavors: 'Neue Sorten entdecken',
|
||
allRated: 'Wahnsinn! Du hast alles bewertet! 🏆',
|
||
myReviews: 'Meine Sammlungen',
|
||
exploreNew: 'Zum Probieren',
|
||
editingReview: 'Rezension bearbeiten für {{flavor}}',
|
||
newScore: 'Neue Bewertung:',
|
||
searchMissing: 'Suche nach Sorten, die du noch nicht bewertet hast...',
|
||
searchRated: 'Suche in deinem Archiv...',
|
||
circleAvg: 'Durchschnittsbewertung deiner Freunde',
|
||
sortBy: 'Sortieren nach',
|
||
date: 'Datum',
|
||
rating: 'Bewertung',
|
||
communityRating: 'Community-Bewertung',
|
||
circleRating: 'Freunde-Bewertung',
|
||
},
|
||
settings: {
|
||
subtitle: 'Verwalte dein Konto und deine Einstellungen',
|
||
appearanceTitle: 'Erscheinungsbild & Sprache',
|
||
themeLabel: 'Design',
|
||
themeGroupHoly: 'Holy Archiv',
|
||
themeGroupLight: 'Helle Designs',
|
||
themeGroupDark: 'Dunkle Designs',
|
||
langLabel: 'Sprache',
|
||
bannerLabel: 'Interaktiver Banner',
|
||
bannerDefault: 'Seiten-Standard',
|
||
avatarTitle: 'Profilbild',
|
||
avatarButton: 'Neues Bild hochladen',
|
||
avatarHint: 'Max. Größe: 2MB. JPG, PNG oder WEBP.',
|
||
avatarSuccess: 'Profilbild erfolgreich aktualisiert!',
|
||
infoTitle: 'Profil-Informationen',
|
||
usernameLabel: 'Benutzername',
|
||
emailLabel: 'E-Mail',
|
||
emailHint: 'Änderung erfordert Bestätigung',
|
||
updateButton: 'Profil aktualisieren',
|
||
updateSuccess: 'Profil erfolgreich aktualisiert!',
|
||
confirmEmailTitle: 'E-Mail-Änderung bestätigen',
|
||
confirmEmailHint: 'Gib den 6-stelligen Code ein, der an {{email}} gesendet wurde',
|
||
confirmButton: 'E-Mail verifizieren & aktualisieren',
|
||
passwordTitle: 'Passwort ändern',
|
||
oldPasswordLabel: 'Altes Passwort',
|
||
newPasswordLabel: 'Neues Passwort',
|
||
passwordButton: 'Passwort ändern',
|
||
passwordSuccess: 'Passwort erfolgreich geändert!',
|
||
dangerTitle: 'Gefahrenzone',
|
||
dangerDesc:
|
||
'Lösche dein Konto und alle damit verbundenen Daten dauerhaft. Dies kann nicht rückgängig gemacht werden.',
|
||
deleteButton: 'Mein Konto löschen',
|
||
deletionCodeLabel: 'Löschcode',
|
||
deletionCodeHint: 'Bestätigungscode eingeben:',
|
||
confirmDeleteButton: 'Dauerhafte Löschung bestätigen',
|
||
cancelButton: 'Abbrechen',
|
||
codeSent: 'Bestätigungscode an deine E-Mail gesendet.',
|
||
},
|
||
hero: {
|
||
title: 'Das ultimative Holy-Archiv',
|
||
subtitle:
|
||
'Durchsuche jede jemals veröffentlichte Sorte, entdecke neue Favoriten und teile deine Bewertungen mit der Community.',
|
||
join: 'Community beitreten',
|
||
whatIsThis: 'Was ist das?',
|
||
},
|
||
home: {
|
||
activity: 'Community-Aktivität',
|
||
activitySubtitle: 'Neueste Bewertungen von Personen, denen du folgst',
|
||
viewFullFeed: 'Vollständiger Feed',
|
||
quietFeed: 'Dein Feed ist noch etwas ruhig',
|
||
followMore: 'Folge mehr Benutzern, um deren Aktivitäten hier zu sehen!',
|
||
exploreFlavors: 'Sorten entdecken',
|
||
hallOfFame: 'Hall of Fame',
|
||
hallOfFameSubtitle: 'Die bestbewerteten Sorten im Archiv',
|
||
browseCategories: 'Kategorien durchstöbern',
|
||
browseCategoriesSubtitle: 'Direkt zu einer Sorten-Linie springen',
|
||
recForYou: 'Für dich empfohlen',
|
||
recForYouSubtitle: 'Ausgewählt von Testern mit ähnlichem Geschmack',
|
||
popularPicks: 'Beliebte Sorten',
|
||
popularPicksSubtitle: 'Favoriten der Community zum Entdecken',
|
||
communityVoice: 'Community-Stimmen',
|
||
newArrivals: 'Neuheiten',
|
||
newArrivalsSubtitle: 'Die neuesten Zugänge im Katalog',
|
||
viewAllReviews: 'Alle Bewertungen ansehen',
|
||
viewMoreReviews: 'Mehr Bewertungen',
|
||
rated: 'bewertete',
|
||
archiveTitle: 'Das Holy-Archiv',
|
||
archiveSubtitle:
|
||
'Top-bewertete Sorten und die neuesten Zugänge. Nutze die Suche, um alles zu finden.',
|
||
searchResultsTitle: 'Suchergebnisse für „{{query}}"',
|
||
searchResultsCount_one: '{{count}} Treffer',
|
||
searchResultsCount_other: '{{count}} Treffer',
|
||
noSearchResults: 'Keine Sorten passen zu „{{query}}".',
|
||
noTopFlavors: 'Noch keine bestbewerteten Sorten.',
|
||
noNewest: 'Noch keine Neuheiten.',
|
||
previousFlavor: 'Vorherige Sorte',
|
||
nextFlavor: 'Nächste Sorte',
|
||
goToFlavor: 'Zu Sorte {{n}}',
|
||
noCategoryFlavors: 'Hier gibt es noch keine Sorten',
|
||
noCategoryFlavorsSub: 'Schau bald wieder vorbei.',
|
||
flavorsFallback: 'Sorten',
|
||
},
|
||
common: {
|
||
search: 'Suchen...',
|
||
back: 'Zurück',
|
||
backTo: 'Zurück zu {{page}}',
|
||
backToArchive: 'Zurück zum Archiv',
|
||
backToHome: 'Zurück zur Startseite',
|
||
buyNow: 'Jetzt kaufen',
|
||
reviews: 'Bewertungen',
|
||
rank: 'Rang',
|
||
loading: 'Wird geladen...',
|
||
replies: 'Antworten',
|
||
reply: 'Antworten',
|
||
edit: 'Bearbeiten',
|
||
delete: 'Löschen',
|
||
save: 'Speichern',
|
||
cancel: 'Abbrechen',
|
||
all: 'Alle',
|
||
noComment: 'Kein Kommentar abgegeben.',
|
||
replyFailed: 'Antwort konnte nicht gesendet werden',
|
||
actionFailed: 'Etwas ist schiefgelaufen. Bitte versuche es erneut.',
|
||
confirmDeleteReview: 'Diese Bewertung löschen?',
|
||
confirmDeleteReply: 'Diese Antwort löschen?',
|
||
confirmDeleteComment: 'Diesen Kommentar löschen?',
|
||
notFoundTitle: '404 — Seite nicht gefunden',
|
||
home: 'Startseite',
|
||
processing: 'Wird verarbeitet...',
|
||
active: 'Aktiv',
|
||
inactive: 'Inaktiv',
|
||
},
|
||
status: {
|
||
limited: 'Limitiert',
|
||
outOfStock: 'Ausverkauft',
|
||
},
|
||
flavorDetail: {
|
||
similarHeading: 'Wer das mochte, mochte auch',
|
||
similarCoRaters: '{{count}} bewerteten beide',
|
||
similarTooltip: 'Tester, die diese Sorte und die obige bewertet haben',
|
||
rateThisFlavor: 'Diese Sorte bewerten',
|
||
scoreLabel: 'Deine Bewertung, 1 bis 10',
|
||
submitReview: 'Bewertung abschicken',
|
||
shareThoughts: 'Teile deine Gedanken...',
|
||
selectScore: 'Bitte wähle eine Bewertung',
|
||
submitFailed: 'Bewertung konnte nicht gesendet werden',
|
||
noComment: 'Kein Kommentar abgegeben.',
|
||
ratingsAndComments: 'Bewertungen & Kommentare',
|
||
beTheFirst: 'Sei der Erste, der diese Sorte bewertet!',
|
||
joinDiscussion: 'Diskutiere mit {{count}} anderen Fans.',
|
||
imageOf: 'Bild {{current}} von {{total}}',
|
||
previousImage: 'Vorheriges Bild',
|
||
nextImage: 'Nächstes Bild',
|
||
showImage: 'Bild {{n}} anzeigen',
|
||
galleryLabel: 'Bilder von {{name}}',
|
||
noImage: 'Kein Bild',
|
||
ratingDistribution: 'Bewertungsverteilung',
|
||
flavorNotFound: 'Sorte nicht gefunden',
|
||
editProductAdmin: 'Produkt bearbeiten (Admin)',
|
||
nameLabel: 'Name',
|
||
descriptionLabel: 'Beschreibung',
|
||
shopUrlLabel: 'Shop-URL',
|
||
uploadImage: 'Eigenes Bild hochladen',
|
||
uploading: 'Wird hochgeladen...',
|
||
inStock: 'Auf Lager',
|
||
legacyLimited: 'Legacy / Limitiert',
|
||
adminUpdateFailed: 'Admin-Update fehlgeschlagen',
|
||
imageUploadFailed: 'Bild-Upload fehlgeschlagen',
|
||
replyUpdateFailed: 'Antwort konnte nicht aktualisiert werden',
|
||
replyDeleteFailed: 'Antwort konnte nicht gelöscht werden',
|
||
reviewUpdateFailed: 'Bewertung konnte nicht aktualisiert werden',
|
||
reviewDeleteFailed: 'Bewertung konnte nicht gelöscht werden',
|
||
},
|
||
profile: {
|
||
notFound: 'Profil nicht gefunden.',
|
||
tabRatings: 'Bewertungen',
|
||
tabGuestbook: 'Gästebuch',
|
||
tabFollowers: 'Follower',
|
||
tabFollowing: 'Folge ich',
|
||
masterCollector: 'Meister-Sammler',
|
||
noRatingsCategory: 'Keine Bewertungen in dieser Kategorie',
|
||
leaveMessage: 'Nachricht hinterlassen',
|
||
guestbookPlaceholder: 'Sag etwas über ihren Geschmack...',
|
||
guestbookEmpty: 'Noch keine Einträge im Gästebuch.',
|
||
guestbookEmptySub: 'Sei der Erste, der eine Nachricht hinterlässt!',
|
||
noFollowers: 'Noch keine Follower.',
|
||
noFollowing: 'Folgt noch niemandem.',
|
||
followFailed: 'Follow-Status konnte nicht aktualisiert werden. Bitte anmelden.',
|
||
commentAddFailed: 'Kommentar konnte nicht hinzugefügt werden',
|
||
commentDeleteFailed: 'Kommentar konnte nicht gelöscht werden',
|
||
},
|
||
auth: {
|
||
loginTitle: 'Anmelden',
|
||
signupTitle: 'Registrieren',
|
||
verifyTitle: 'Konto verifizieren',
|
||
verifyDesc:
|
||
'Gib den Code ein, der an deine E-Mail für <strong>{{username}}</strong> gesendet wurde.',
|
||
resendButton: 'Verifizierungscode erneut senden',
|
||
resendSuccess: 'Ein neuer Verifizierungscode wurde an deine E-Mail gesendet.',
|
||
verifySuccess: 'Konto verifiziert! Du kannst dich jetzt anmelden.',
|
||
unverifiedError:
|
||
'Konto nicht verifiziert. Bitte verifiziere dein Konto, um dich anzumelden.',
|
||
loginFailed: 'Anmeldung fehlgeschlagen. Bitte überprüfe deine Zugangsdaten.',
|
||
signupSuccess:
|
||
'Registrierung erfolgreich! Bitte gib den Verifizierungscode ein, der an deine E-Mail gesendet wurde.',
|
||
forgotPassword: 'Passwort vergessen?',
|
||
backToAuth: 'Zurück zur Anmeldung',
|
||
usernameLabel: 'Benutzername',
|
||
passwordLabel: 'Passwort',
|
||
emailLabel: 'E-Mail',
|
||
newPasswordLabel: 'Neues Passwort',
|
||
verificationCodeLabel: 'Verifizierungscode',
|
||
resetCodeLabel: 'Reset-Code',
|
||
verifyButton: 'Verifizieren',
|
||
resetTitle: 'Passwort zurücksetzen',
|
||
sendResetCode: 'Reset-Code senden',
|
||
resetButton: 'Passwort zurücksetzen',
|
||
backToLogin: 'Zurück zur Anmeldung',
|
||
resetRequested: 'Falls ein Konto existiert, wurde ein Reset-Code gesendet.',
|
||
resetSuccess: 'Passwort erfolgreich zurückgesetzt! Du kannst dich jetzt anmelden.',
|
||
resetFailed: 'Zurücksetzen fehlgeschlagen',
|
||
signupFailed: 'Registrierung fehlgeschlagen',
|
||
verifyFailed: 'Verifizierung fehlgeschlagen',
|
||
resendFailed: 'Code konnte nicht erneut gesendet werden',
|
||
genericError: 'Ein Fehler ist aufgetreten. Bitte versuche es später erneut.',
|
||
showPassword: 'Passwort anzeigen',
|
||
hidePassword: 'Passwort verbergen',
|
||
passwordTooShort: 'Passwort muss mindestens 8 Zeichen lang sein.',
|
||
passwordNumericOnly: 'Passwort darf nicht nur aus Zahlen bestehen.',
|
||
passwordStrength: 'Stärke',
|
||
strengthWeak: 'Schwach',
|
||
strengthFair: 'Mittel',
|
||
strengthGood: 'Gut',
|
||
strengthStrong: 'Stark',
|
||
},
|
||
community: {
|
||
title: 'Community-Aktivität',
|
||
subtitle:
|
||
'Bleib auf dem Laufenden mit den neuesten Bewertungen und Diskussionen deines Kreises.',
|
||
quietFeed: 'Dein Feed ist noch etwas leer...',
|
||
followMore: 'Folge mehr Personen, um deren Bewertungen hier zu sehen!',
|
||
topRated: 'Top-Bewertungen deines Kreises',
|
||
notifications: 'Neueste Benachrichtigungen',
|
||
notifReply: 'hat geantwortet',
|
||
notifReplyOn: 'hat auf deine Bewertung zu {{flavor}} geantwortet',
|
||
notifMention: 'hat dich erwähnt',
|
||
notifMentionOn: 'hat dich bei {{flavor}} erwähnt',
|
||
notifFollow: 'folgt dir jetzt',
|
||
notifProfileComment: 'hat dir einen Eintrag ins Gästebuch hinterlassen',
|
||
notifTicketNew: 'hat ein neues Support-Ticket eröffnet',
|
||
notifTicketReply: 'hat auf dein Support-Ticket geantwortet',
|
||
notifTicketReplyAdmin: 'hat auf ein Support-Ticket geantwortet',
|
||
noNotifications: 'Keine Benachrichtigungen.',
|
||
markAllRead: 'Alle als gelesen markieren',
|
||
markAllReadFailed: 'Benachrichtigungen konnten nicht als gelesen markiert werden',
|
||
searchFriends: 'Freunde suchen...',
|
||
writeReply: 'Eine Antwort hinzufügen...',
|
||
rated: 'bewertete',
|
||
tabFollowing: 'Folge ich',
|
||
tabDiscover: 'Entdecken',
|
||
discoverSubtitle: 'Sieh, was die ganze Community gerade bewertet.',
|
||
discoverEmpty: 'Noch keine Aktivität.',
|
||
discoverEmptyHint: 'Sei der Erste, der einen Geschmack bewertet!',
|
||
browseDiscover: 'Entdecken durchstöbern',
|
||
},
|
||
support: {
|
||
title: 'Hilfe & Support',
|
||
myTickets: 'Meine Tickets',
|
||
createTicket: 'Neues Ticket öffnen',
|
||
subject: 'Betreff',
|
||
description: 'Wie können wir helfen?',
|
||
status: 'Status',
|
||
open: 'Offen',
|
||
closed: 'Geschlossen',
|
||
resolved: 'Gelöst',
|
||
in_progress: 'In Bearbeitung',
|
||
noTickets: 'Du hast noch keine Tickets geöffnet.',
|
||
reply: 'Nachricht senden',
|
||
ticketDetail: 'Ticket #{{id}}',
|
||
unread: 'Neue Nachricht',
|
||
},
|
||
admin: {
|
||
title: 'Admin-Kontrollzentrum',
|
||
users: 'Benutzerverwaltung',
|
||
stats: 'System-Statistiken',
|
||
overview: 'Übersicht',
|
||
banners: 'Banner-Modelle',
|
||
config: 'Server-Konfiguration',
|
||
totalUsers: 'Benutzer gesamt',
|
||
openTickets: 'Offene Tickets',
|
||
sendTestEmail: 'Test-E-Mail senden',
|
||
testEmailSuccess: 'Test-E-Mail erfolgreich gesendet!',
|
||
ipHistory: 'Login-IP-Verlauf',
|
||
manageUser: 'Benutzer verwalten',
|
||
manageRating: 'Bewertung verwalten',
|
||
manageReply: 'Antwort verwalten',
|
||
deactivate: 'Konto deaktivieren',
|
||
activate: 'Konto aktivieren',
|
||
dangerZone: 'Gefahrenzone',
|
||
deleteUser: 'Benutzer dauerhaft löschen',
|
||
sections: {
|
||
overview: 'Übersicht',
|
||
users: 'Benutzer',
|
||
flavors: 'Sorten',
|
||
banners: 'Banner',
|
||
jobs: 'Jobs',
|
||
tickets: 'Tickets',
|
||
config: 'Konfiguration',
|
||
},
|
||
updateFailed: 'Aktualisierung fehlgeschlagen',
|
||
deleteFailed: 'Löschen fehlgeschlagen',
|
||
actionFailed: 'Aktion fehlgeschlagen',
|
||
retryLoading: 'Erneut laden',
|
||
userNum: 'Benutzer #{{n}}',
|
||
ratingNum: 'Bewertung #{{n}}',
|
||
replyNum: 'Antwort #{{n}}',
|
||
noBanners: 'Keine Banner-Modelle gefunden',
|
||
noBannersSub: 'Keine Banner in der Datenbank registriert.',
|
||
bannerSetDefault: 'Banner als Standard festgelegt',
|
||
bannerActivateFailed: 'Banner konnte nicht aktiviert werden',
|
||
bannerToggleFailed: 'Sichtbarkeit konnte nicht umgeschaltet werden',
|
||
bannerHidden: 'Für Nutzer ausgeblendet',
|
||
bannerGlobalDefault: 'Globaler Standard',
|
||
bannerSlug: 'Slug',
|
||
editSettings: 'Einstellungen bearbeiten',
|
||
disableForUsers: 'Für Nutzer deaktivieren',
|
||
enableForUsers: 'Für Nutzer aktivieren',
|
||
setAsDefault: 'Als Standard festlegen',
|
||
configSaved: 'Konfiguration gespeichert',
|
||
configSaveFailed: 'Konfiguration konnte nicht gespeichert werden',
|
||
configLiveHint:
|
||
'Live-Werte werden ohne Neustart angewendet. Beim Speichern wird die vollständige Konfiguration gesendet.',
|
||
siteName: 'Seitenname',
|
||
siteNameHint: 'Wird im Browser-Tab und in verschiedenen Kopfzeilen angezeigt.',
|
||
maintenanceMode: 'Wartungsmodus',
|
||
maintenanceModeHint: 'Nicht-Admin-Nutzer von der Interaktion mit der Seite ausschließen.',
|
||
allowSignups: 'Neue Registrierungen erlauben',
|
||
allowSignupsHint: 'Wenn aus, lehnt der Registrierungs-Endpunkt neue Konten ab.',
|
||
requireVerification: 'E-Mail-Verifizierung erforderlich',
|
||
requireVerificationHint:
|
||
'Neue Konten müssen ihre E-Mail bestätigen, bevor sie sich anmelden können.',
|
||
saving: 'Wird gespeichert…',
|
||
saveChanges: 'Änderungen speichern',
|
||
discard: 'Verwerfen',
|
||
jobsTitle: 'Hintergrund-Worker-Jobs',
|
||
jobsFilter: 'Jobs filtern…',
|
||
jobQueued: 'Job eingereiht',
|
||
jobTriggerFailed: 'Job konnte nicht ausgelöst werden',
|
||
jobScheduleFailed: 'Zeitplan konnte nicht aktualisiert werden',
|
||
jobStatusQueued: 'EINGEREIHT',
|
||
jobLastRun: 'Letzter Lauf',
|
||
jobNextRun: 'Nächster Lauf',
|
||
jobNever: 'Nie',
|
||
jobQueuedShort: 'Eingereiht…',
|
||
jobDisabled: 'Deaktiviert',
|
||
jobSchedule: 'Zeitplan',
|
||
jobLastOutput: 'Letzte Ausgabe',
|
||
jobLastError: 'Letzter Fehler',
|
||
jobTriggerNow: 'Jetzt auslösen',
|
||
schedHourly: 'Stündlich',
|
||
sched6h: 'Alle 6 Stunden',
|
||
sched12h: 'Alle 12 Stunden',
|
||
schedDaily: 'Täglich',
|
||
schedWeekly: 'Wöchentlich',
|
||
testEmailFailed: 'Senden fehlgeschlagen',
|
||
envInfo: 'Umgebungsinfo (.env)',
|
||
apiStatus: 'API-Status',
|
||
frontendUrl: 'Frontend-URL',
|
||
allowedHosts: 'Erlaubte Hosts',
|
||
envHint:
|
||
'Diese Werte werden aus der Server-Umgebung oder der .env-Datei gelesen. Um sie zu ändern, musst du die Datei aktualisieren und den Backend-Container neu starten.',
|
||
colId: 'ID',
|
||
colUser: 'Benutzer',
|
||
colEmail: 'E-Mail',
|
||
colStatus: 'Status',
|
||
colJoined: 'Beigetreten',
|
||
colIp: 'IP-Verlauf',
|
||
colActions: 'Aktionen',
|
||
roleAdmin: 'Admin',
|
||
roleSuperuser: 'Superuser',
|
||
ticketMessageFailed: 'Nachricht konnte nicht gesendet werden',
|
||
ticketStatusSet: 'Status auf {{status}} gesetzt',
|
||
ticketStatusFailed: 'Status konnte nicht aktualisiert werden',
|
||
ticketDeleteConfirm: 'Dieses Ticket löschen?',
|
||
ticketDeleted: 'Ticket gelöscht',
|
||
ticketDeleteFailed: 'Ticket konnte nicht gelöscht werden',
|
||
viewProfile: 'Profil ansehen',
|
||
supportTag: 'Support',
|
||
userNotFound: 'Benutzer nicht gefunden',
|
||
userMgmtTitle: 'Benutzerverwaltung',
|
||
joinedLabel: 'Beigetreten',
|
||
lastLoginLabel: 'Letzte Anmeldung',
|
||
tabContent: 'Inhalt',
|
||
tabSecurity: 'Sicherheit & IP',
|
||
tabDanger: 'Gefahrenzone',
|
||
ratingsDiscussion: 'Bewertungen & Diskussion des Benutzers',
|
||
scoreLabel: 'Bewertung',
|
||
noCommentShort: 'Kein Kommentar',
|
||
noRatingsYet: 'Noch keine Bewertungen.',
|
||
noIpHistory: 'Kein IP-Verlauf verfügbar.',
|
||
deleteUserTitle: 'Benutzer löschen',
|
||
deleteUserConfirm:
|
||
'DIESEN BENUTZER UND ALLE DATEN DAUERHAFT LÖSCHEN? Dies kann nicht rückgängig gemacht werden.',
|
||
deleteForever: 'Endgültig löschen',
|
||
deleteUserWarning:
|
||
'Das Löschen dieses Benutzers entfernt dauerhaft sein Profil, alle Bewertungen, Antworten und den IP-Verlauf. Diese Aktion ist unwiderruflich.',
|
||
deleteUserNote:
|
||
'Fahre nur fort, wenn der Benutzer auf Richtlinienverstöße geprüft wurde oder die Löschung beantragt hat.',
|
||
deleteRatingConfirm: 'Diese Bewertung löschen?',
|
||
deleteReplyConfirm: 'Diese Antwort löschen?',
|
||
ratingMgmtTitle: 'Bewertungsverwaltung',
|
||
replyMgmtTitle: 'Antwortverwaltung',
|
||
ratingUpdated: 'Bewertung aktualisiert!',
|
||
replyUpdated: 'Antwort aktualisiert!',
|
||
deleteRatingRepliesConfirm: 'Diese Bewertung und alle Antworten löschen?',
|
||
userLabel: 'Benutzer: {{user}}',
|
||
replyByLabel: 'Antwort von {{user}}',
|
||
manageFlavors: 'Sorten verwalten',
|
||
mergeFlavors: 'Sorten zusammenführen',
|
||
mergeFlavorsDesc:
|
||
'Kombiniere zwei Sorten zu einer. Bewertungen der Quellsorte werden zur Zielsorte verschoben. Hat ein Nutzer beide bewertet, wird die ausführlichere Bewertung behalten.',
|
||
flavorToRemove: 'Zu entfernende Sorte (Quelle)',
|
||
flavorToRemoveHint: 'Diese Sorte wird GELÖSCHT',
|
||
flavorToKeep: 'Zu behaltende Sorte (Ziel)',
|
||
flavorToKeepHint: 'Diese Sorte wird BEHALTEN',
|
||
startMerge: 'Zusammenführen starten',
|
||
confirmMergeTitle: 'Sorten-Zusammenführung bestätigen',
|
||
confirmMergeText:
|
||
'Möchtest du „{{remove}}" wirklich in „{{keep}}" zusammenführen? Diese Aktion ist unwiderruflich. „{{remove}}" wird gelöscht und alle Bewertungen werden übertragen.',
|
||
confirmMerge: 'Sorten zusammenführen',
|
||
mergeSuccess: 'Sorten erfolgreich zusammengeführt',
|
||
errorPrefix: 'Fehler: {{message}}',
|
||
},
|
||
about: {
|
||
title: 'Über dieses Projekt',
|
||
mission:
|
||
'Das Holy Flavors Archiv ist ein von der Community getriebenes Projekt, das sich der Dokumentation und Bewertung der riesigen Welt der Holy Energy Produkte widmet. Unser Ziel ist es, einen definitiven Katalog jeder jemals veröffentlichten Sorte zu erstellen – einschließlich Legacy- und Limited-Editionen.',
|
||
canDoTitle: 'Was du hier tun kannst:',
|
||
featureExplore:
|
||
'Entdecken: Details zu jedem Holy Energy, Eistee oder Milkshake Produkt finden.',
|
||
featureRate: 'Bewerten: Deine ehrliche Meinung teilen und Sorten von 1 bis 10 bewerten.',
|
||
featureCommunity:
|
||
'Community: Folge anderen Fans, sieh dir ihre neuesten Tests an und entdeckt gemeinsam neue Favoriten.',
|
||
featureProfile:
|
||
'Geschmacksprofil: Erstelle deine eigene persönliche Bestenliste, um sie mit der Welt zu teilen.',
|
||
featurePersonalize:
|
||
'Personalisieren: Wähle aus über 15 Designs und interaktiven Bannern, um das Archiv nach deinen Wünschen zu gestalten.',
|
||
featureEngage:
|
||
'Interagieren: Starte Diskussionen durch Antworten auf Rezensionen und Kommentare auf Profilen.',
|
||
featureSupport:
|
||
'Support: Erhalte direkte Hilfe über unser integriertes Ticketsystem bei Fragen oder Problemen.',
|
||
disclaimer:
|
||
'Diese Website ist ein Fan-Projekt und wird nicht von der HOLY Energy GmbH offiziell unterstützt, autorisiert, gepflegt oder gesponselt. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Inhaber.',
|
||
impressumTitle: 'Impressum',
|
||
legalInfo: 'Angaben gemäß § 5 TMG:',
|
||
contact: 'Kontakt',
|
||
responsible: 'Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV:',
|
||
disclaimerTitle: 'Haftungsausschluss',
|
||
region: 'Deutschland',
|
||
liabilityContentTitle: 'Haftung für Inhalte:',
|
||
liabilityContentDesc:
|
||
'Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen.',
|
||
copyrightTitle: 'Urheberrecht:',
|
||
copyrightDesc:
|
||
'Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors.',
|
||
},
|
||
privacy: {
|
||
title: 'Datenschutzerklärung',
|
||
intro:
|
||
'Der Schutz Ihrer persönlichen Daten ist uns ein wichtiges Anliegen. Nachfolgend informieren wir Sie über die Verarbeitung Ihrer Daten auf unserer Webseite gemäß den Anforderungen der DSGVO.',
|
||
controllerTitle: '1. Verantwortlicher',
|
||
controllerDesc: 'Verantwortlich für die Datenverarbeitung auf dieser Webseite ist:',
|
||
collectionTitle: '2. Erfassung und Speicherung personenbezogener Daten',
|
||
regTitle: 'Registrierung:',
|
||
regDesc:
|
||
'Wenn Sie ein Konto erstellen, speichern wir Ihren Benutzernamen, Ihre E-Mail-Adresse und Ihr Passwort (verschlüsselt). Diese Daten werden zur Bereitstellung der Community-Funktionen verwendet. Rechtsgrundlage ist Art. 6 Abs. 1 lit. b DSGVO.',
|
||
ipTitle: 'IP-Adressen:',
|
||
ipDesc:
|
||
'Zur Gewährleistung der Sicherheit unserer IT-Systeme und zur Missbrauchsverhinderung speichern wir die IP-Adressen, von denen aus Sie sich anmelden. Diese Daten werden gelöscht, sobald sie nicht mehr erforderlich sind. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO.',
|
||
profileTitle: 'Öffentliches Profil:',
|
||
profileDesc:
|
||
'Ihr Benutzername, Ihr Avatar, Ihre Bewertungen und Ihre Profilkommentare sind für andere Nutzer öffentlich sichtbar. Sie können diese jederzeit in den Einstellungen ändern oder löschen.',
|
||
socialTitle: 'Soziale Interaktion:',
|
||
socialDesc:
|
||
'Kommentare auf Profilen und Antworten auf Bewertungen werden dauerhaft gespeichert und öffentlich angezeigt. Dies beinhaltet den Zeitpunkt der Erstellung und den Autor.',
|
||
supportTitle: 'Support-Tickets:',
|
||
supportDesc:
|
||
'Wenn Sie ein Support-Ticket eröffnen, speichern wir den Betreff, die Beschreibung sowie die folgenden Nachrichten, um technische Hilfe zu leisten und Ihre Anfrage zu bearbeiten.',
|
||
personalizationTitle: 'Personalisierung:',
|
||
personalizationDesc:
|
||
'Ihr bevorzugtes Design, Ihre Sprache und Ihr ausgewählter interaktiver Banner werden in Ihrem Profil gespeichert, um ein konsistentes Erlebnis über verschiedene Sitzungen hinweg zu bieten.',
|
||
deletionTitle: 'Kontolöschung:',
|
||
deletionDesc:
|
||
'Sie können Ihr Konto und alle damit verbundenen personenbezogenen Daten jederzeit in den Einstellungen dauerhaft löschen. Zur Sicherheit ist hierfür eine Verifizierung per E-Mail-Code erforderlich.',
|
||
transferTitle: '3. Datenübermittlung an Dritte',
|
||
transferDesc:
|
||
'Wir geben Ihre Daten nicht ohne Ihre ausdrückliche Einwilligung an Dritte weiter, es sei denn, dies ist zur Vertragserfüllung oder zur Erfüllung gesetzlicher Verpflichtungen erforderlich.',
|
||
rightsTitle: '4. Ihre Rechte',
|
||
rightsDesc:
|
||
'Sie haben das Recht auf Auskunft (Art. 15 DSGVO), Berichtigung (Art. 16 DSGVO), Löschung (Art. 17 DSGVO) und Einschränkung der Verarbeitung Ihrer Daten. Bitte kontaktieren Sie uns unter:',
|
||
},
|
||
cookieBanner: {
|
||
title: 'Cookie-Einstellungen',
|
||
description:
|
||
'Wir verwenden technisch notwendige Cookies, um Ihre Login-Sitzungen zu verwalten, Ihre bevorzugten Design- und Spracheinstellungen zu speichern und die Sicherheit Ihres Kontos zu gewährleisten. Diese Cookies sind zwingend erforderlich, damit die Website ordnungsgemäß funktioniert. Möchten Sie zum Holy Dark Modus wechseln, bevor Sie beginnen? Er ist schonender für die Augen!',
|
||
accept: 'Akzeptieren und Fortfahren',
|
||
switchToDark: 'Zu Holy Dark wechseln',
|
||
switchToLight: 'Bei Holy Light bleiben',
|
||
},
|
||
},
|
||
},
|
||
};
|
||
|
||
i18n
|
||
.use(LanguageDetector)
|
||
.use(initReactI18next)
|
||
.init({
|
||
resources,
|
||
fallbackLng: 'en',
|
||
interpolation: {
|
||
escapeValue: false,
|
||
},
|
||
detection: {
|
||
order: ['localStorage', 'navigator'],
|
||
caches: ['localStorage'],
|
||
},
|
||
});
|
||
|
||
export default i18n;
|