import { Translations } from './translations'; export const en: Translations = { header: { home: 'Home', search: 'Search', about: 'About', contacts: 'Contacts', searchPlaceholder: 'Search...', catalog: 'Catalog', wishlist: 'Wishlist', compare: 'Compare', openMenu: 'Open menu', closeMenu: 'Close menu', }, footer: { description: 'A modern marketplace for comfortable shopping', company: 'Company', aboutUs: 'About us', contacts: 'Contacts', requisites: 'Company details', support: 'Support', faq: 'FAQ', delivery: 'Delivery', guarantee: 'Warranty', legal: 'Legal information', offer: 'Public offer', privacy: 'Privacy policy', returns: 'Returns', info: 'Information', aboutCompany: 'About company', documents: 'Documents', paymentRules: 'Payment terms', returnPolicy: 'Return policy', publicOffer: 'Public offer', help: 'Help', payment: 'Payment', allRightsReserved: 'All rights reserved.', }, home: { welcomeTo: 'Welcome to {{brand}}', subtitle: 'Find everything you need in one place', startSearch: 'Start search', loading: 'Loading categories...', errorTitle: 'Something went wrong', retry: 'Try again', categoriesTitle: 'Product categories', categoriesSubtitle: 'Choose a category', categoriesEmpty: 'Categories coming soon', categoriesEmptyDesc: 'We are working on filling the catalog', dexarHeroTitle: 'Find everything here', dexarHeroSubtitle: 'Thousands of products in one place', dexarHeroTagline: 'simple and convenient', goToCatalog: 'Go to catalog', findProduct: 'Find a product', loadingDexar: 'Loading categories...', catalogTitle: 'Product catalog', emptyCategoriesDexar: 'No categories yet', categoriesSoonDexar: 'Categories will appear here soon', itemsCount: '{{count}} products', }, cart: { title: 'Cart', clear: 'Clear', empty: 'Cart is empty', emptyDesc: 'Add products to start shopping', goShopping: 'Start shopping', total: 'Total', items: 'Products', deliveryLabel: 'Delivery', deliveryMethod: 'Delivery option', selectDelivery: 'Select delivery option', deliveryPlace: 'Place', deliveryTime: 'Delivery time', digitalDelivery: 'Digital delivery', deliveryRequired: 'Select delivery for every shippable item before checkout.', toPay: 'To pay', agreeWith: 'I agree with the', publicOffer: 'public offer', returnPolicy: 'return policy', guaranteeTerms: 'warranty terms', privacyPolicy: 'privacy policy', and: 'and', checkout: 'Place order', payViaQr: 'Pay via QR', payViaCard: 'Pay via card', close: 'Close', creatingPayment: 'Creating payment...', waitFewSeconds: 'Please wait a few seconds', scanQr: 'Scan the QR code to pay', amountToPay: 'Amount due:', waitingPayment: 'Waiting for payment...', copied: '✓ Copied', copyLink: 'Copy link', openNewTab: 'Open in new tab', paymentSuccess: 'Congratulations! Payment successful!', paymentSuccessDesc: 'Enter your contact details and we will send your purchase within a few minutes', sending: 'Sending...', send: 'Send', paymentError: 'Unable to create payment', paymentErrorDesc: 'We could not prepare the payment QR code right now. Please try again in a moment.', retryPayment: 'Try again', paymentTimeout: 'Payment timed out', paymentTimeoutDesc: 'We did not receive payment confirmation within 3 minutes.', autoClose: 'Window will close automatically...', confirmClear: 'Are you sure you want to clear the cart?', removeItem: 'Remove item', paymentQrAlt: 'Payment QR code', acceptTerms: 'Please accept the offer terms, return policy, and warranty terms to proceed with the order.', copyError: 'Copy error:', emailSuccess: 'Email sent successfully! Check your inbox.', emailError: 'An error occurred while sending the email. Please try again.', phoneRequired: 'Phone number is required', phoneMoreDigits: 'Enter {{count}} more digits', phoneTooMany: 'Too many digits', emailRequired: 'Email is required', emailTooShort: 'Email is too short (minimum 5 characters)', emailTooLong: 'Email is too long (maximum 100 characters)', emailNeedsAt: 'Email must contain @', emailNeedsDomain: 'Email must contain a domain (.com, .ru, etc.)', emailInvalid: 'Invalid email format', loginRequired: 'Log in to checkout', loginRequiredDesc: 'Please log in via Telegram to place your order', loginWithTelegram: 'Log in with Telegram', orScanQr: 'Or scan the QR code', }, search: { title: 'Product search', placeholder: 'Enter product name...', searchBarAria: 'Search bar', resultsCount: 'Products found:', searching: 'Searching...', retry: 'Try again', noResults: 'Nothing found', noResultsFor: 'No products found for "{{query}}"', noResultsHint: 'Try changing your query or using different keywords', emptyResultsAria: 'Empty search results', popularCategories: 'Popular categories', recommendedProducts: 'Recommended products', aiSuggestionHint: 'AI suggestion (future)', suggestionType: { product: 'Product', category: 'Category', brand: 'Brand', collection: 'Collection', seller: 'Seller', 'static-page': 'Page', ai: 'AI', }, addToCart: 'Add to cart', loadingMore: 'Loading...', allLoaded: 'All results loaded', emptyState: 'Enter a query to search for products', minLength: 'Enter at least {{count}} characters to search', of: 'of', }, category: { retry: 'Try again', addToCart: 'Add to cart', loadingMore: 'Loading...', allLoaded: 'All products loaded', emptyTitle: 'Oops! Nothing here yet', emptyDesc: 'There are no products in this category yet, but they will appear soon', goHome: 'Go home', loading: 'Loading products...', }, catalog: { title: 'Catalog', breadcrumb: 'Catalog breadcrumb', allCategories: 'All categories', products: 'Products', loading: 'Loading catalog...', loadingProducts: 'Loading products...', errorTitle: 'Catalog is unavailable', error: 'Could not load catalog data. Try again later.', retry: 'Try again', categoryHint: 'Choose a category to continue', productHint: 'Browse products in this category', emptyTitle: 'Nothing here yet', emptyCategories: 'There are no child categories in this section yet.', emptyProducts: 'There are no products in this category yet.', addToCart: 'Add to cart', categoriesCount: '{{count}} categories', productsCount: '{{count}} products', entriesCount: '{{count}} entries', categoryBannerPlaceholder: 'Category banner placeholder for backend-driven media and description.', navigationPlaceholder: 'Navigation layout placeholder prepared for backend/bootstrap-driven rendering.', removeSavedSearch: 'Remove saved search', resetFilters: 'Reset', filtersTitle: 'Filters', from: 'From', to: 'To', minValue: 'Min {{value}}', maxValue: 'Max {{value}}', enabled: 'Enabled', searchPlaceholder: 'Search products, brands, categories', searchSubmit: 'Search', clearSearch: 'Clear', suggestionsTitle: 'Suggestions', popularSearchesTitle: 'Popular searches', recentSearchesTitle: 'Recent searches', searchHistoryTitle: 'Search history', clearHistory: 'Clear', searchNoResultsHint: 'No results found for this query. Try broader keywords.', searchProductsFound: '{{total}} products found', searchResultsSummary: '{{total}} results for "{{query}}"', loadMore: 'Load more', sortBy: 'Sort by', sortRelevance: 'Recommended', sortLatest: 'Newest', sortPriceAsc: 'Price Low -> High', sortPriceDesc: 'Price High -> Low', sortRating: 'Highest Rated', sortPopular: 'Most Popular', sortDiscount: 'Discount', layoutGrid: 'Grid', layoutLargeGrid: 'Large grid', layoutCompactGrid: 'Compact grid', layoutGrid2: '2 Columns', layoutGrid3: '3 Columns', layoutGrid4: '4 Columns', layoutCompact: 'Compact', layoutList: 'List', noResults: 'No results', itemsCount: '{{count}} items', emptyResultsTitle: 'No results found', emptyResultsDescription: 'Try changing filters, sorting, or search keywords.', previousPage: 'Previous', nextPage: 'Next', pageOf: 'Page {{page}} / {{total}}', emptyCategoryTitle: 'This category has no products yet', emptyCategoryMessage: 'Try browsing parent categories or return to the full catalog.', goToParentCategory: 'Go to parent category', browseCategories: 'Browse Categories', offlineTitle: 'You are offline', offlineMessage: 'Reconnect to continue browsing this catalog.', noFilterMatchTitle: 'No products match your selected filters.', noFilterMatchMessage: 'Try broadening price, attributes, or brand filters.', clearFilters: 'Clear Filters', openFilters: 'Open Filters', applyFilters: 'Apply', close: 'Close', filtersDrawerAria: 'Filters drawer', sortSheetAria: 'Sort options', mobileToolbarAria: 'Catalog mobile toolbar', gridCycle: 'Grid', filtersPanelAria: 'Catalog filters', filterPrice: 'Price', filterAvailability: 'Availability', filterInStock: 'In stock', filterLowStock: 'Low stock', filterOutOfStock: 'Out of stock', filterRating: 'Rating', filterStars: '{{count}} stars', filterBrand: 'Brand', filterCategory: 'Category', filterCategoryValue: 'Category {{value}}', filterSubcategory: 'Subcategory', filterDiscount: 'Discount', filterNew: 'New', filterColor: 'Color', filterSize: 'Size', filterAttributes: 'Attributes', }, productDetails: { loading: 'Loading product...', errorTitle: 'Product unavailable', retry: 'Try again', missingTitle: 'Product not found', missingDescription: 'This product does not exist or is no longer available.', backToCatalog: 'Back to catalog', tabsAria: 'Product tabs', mediaAria: 'Product media', ratingStarsAria: 'Rating stars', selectRatingAria: 'Select rating', reviewsEmpty: 'No reviews yet.', questionsEmpty: 'No questions yet.', askQuestion: 'Ask question', hideQuestionForm: 'Hide question form', questionFormTitle: 'Ask a question', questionFormPlaceholder: 'Ask about size, delivery, compatibility or usage', questionFormAnonymous: 'Ask anonymously', submitQuestion: 'Submit question', reviewFormTitle: 'Leave a review', reviewRatingLabel: 'Rating', reviewTitleLabel: 'Title', reviewTitlePlaceholder: 'Short headline', reviewTextLabel: 'Review', reviewTextPlaceholder: 'Describe your experience', reviewAnonymous: 'Submit anonymously', reviewUploadPlaceholder: 'Photo upload is planned for a future sprint.', reviewRatingRequired: 'Please select a rating.', reviewTextRequired: 'Please add your review text.', reviewSuccess: 'Review submitted successfully.', submitReview: 'Submit review', submitting: 'Submitting...', loadMore: 'Load more', showingOf: 'Showing {{shown}} of {{total}}', questionsSubmissionFuture: 'Question submission can be enabled later without component changes.', specificationsGeneral: 'General', actionsAria: 'Product actions', buyNow: 'Buy now', wishlist: 'Wishlist', compare: 'Compare', share: 'Share', notifyMe: 'Notify me', zoom: 'Zoom', fullscreen: 'Fullscreen', pdfDocument: 'Product PDF document', manualDocument: 'Product manual', warrantyDocument: 'Warranty document', openDocument: 'Open document', specificationsEmpty: 'No specifications provided yet.', warrantyTitle: 'Warranty and returns', warrantyItem1: 'Warranty terms are provided by the seller and local law.', warrantyItem2: 'Return eligibility depends on item condition and category.', warrantyItem3: 'Detailed return instructions are available after purchase.', verifiedPurchase: 'Verified purchase', officialSeller: 'Official seller', acceptedAnswer: 'Accepted answer', like: 'Like', dislike: 'Dislike', reviewsCountLabel: '{{count}} reviews', previous: 'Previous', next: 'Next', pageOf: 'Page {{page}} / {{total}}', }, subcategories: { loading: 'Loading subcategories...', retry: 'Try again', emptyTitle: 'Oops! No subcategories yet', emptyDesc: 'There are no subcategories in this section yet, but they will appear soon', goHome: 'Go home', itemsInCategory: 'Items in this category', childrenCount: '{{count}} categories', productsCount: '{{count}} products', includesProducts: 'Includes products', }, itemDetail: { loading: 'Loading...', loadingDexar: 'Loading product...', back: 'Go back', backHome: 'Back to home', noImage: 'No image', stock: 'Availability:', inStock: 'In stock', lowStock: 'Few left', lastItems: 'Last items', mediumStock: 'Running low', addToCart: 'Add to cart', description: 'Description', specifications: 'Specifications', reviews: 'Reviews', yourReview: 'Your review', leaveReview: 'Leave a review', rating: 'Rating:', reviewPlaceholder: 'Share your experience with this product...', reviewPlaceholderDexar: 'Share your thoughts on this product...', anonymous: 'Anonymous', submitting: 'Submitting...', submit: 'Submit', reviewSuccess: 'Thank you for your review!', reviewError: 'Submission failed. Please try later.', defaultUser: 'User', defaultUserDexar: 'Anonymous', noReviews: 'No reviews yet. Be the first!', qna: 'Questions & Answers', photo: 'Photo', reviewsCount: 'reviews', today: 'Today', yesterday: 'Yesterday', daysAgo: 'd. ago', weeksAgo: 'w. ago', colour: 'Colour', size: 'Size', relatedProducts: 'Related products', }, app: { connecting: 'Connecting to server...', serverUnavailable: 'Server unavailable', serverError: 'Could not connect to the server. Please check your internet connection.', retryConnection: 'Retry', pageTitle: 'Marketplace of goods and services', }, platform: { loadingPage: 'Loading platform page...', emptyConfig: 'No page configuration found.', }, backoffice: { title: 'Backoffice Sandbox', subtitle: 'Business data management domain (mocked for platform foundation).', loading: 'Loading backoffice data...', products: 'Products', categories: 'Categories', otherDomains: 'Other Domains', sku: 'SKU', titleColumn: 'Title', price: 'Price', status: 'Status', itemsCount: 'items', orders: 'Orders', customers: 'Customers', inventory: 'Inventory', media: 'Media', settings: 'Settings', notAvailable: 'n/a', }, builder: { title: 'Marketplace Project Editor', subtitle: 'Configuration-only bootstrap editing surface.', general: 'General', branding: 'Branding', theme: 'Theme', header: 'Header', footer: 'Footer', homepage: 'Homepage', widgets: 'Widgets', staticPages: 'Static Pages', marketplaceFeatures: 'Marketplace Features', preview: 'Preview', brandName: 'Brand Name', marketplaceName: 'Marketplace Name', domain: 'Domain', descriptionLabel: 'Description', defaultLanguage: 'Default Language', supportedLanguages: 'Supported Languages', logo: 'Logo', smallLogo: 'Small Logo', favicon: 'Favicon', marketplaceTitle: 'Marketplace Title', primaryColor: 'Primary Color', secondaryColor: 'Secondary Color', backgroundColor: 'Background', surfaceColor: 'Surface', textColor: 'Text', successColor: 'Success', warningColor: 'Warning', dangerColor: 'Danger', showLogo: 'Logo', showSearch: 'Search', showCategories: 'Categories', showLanguages: 'Languages', showCart: 'Cart', showProfile: 'Profile', showWishlist: 'Wishlist', showCompare: 'Compare', showRegion: 'Region', companyName: 'Company Information', address: 'Address', phone: 'Phone', email: 'Email', copyright: 'Copyright', paymentIcons: 'Payment Icons', socialLinks: 'Social Links', createPage: 'Create Page', deletePage: 'Delete Page', pageId: 'Page ID', slug: 'Slug', iconLabel: 'Icon', showInFooter: 'Show In Footer', showInHeader: 'Show In Header', showInSitemap: 'Show In Sitemap', requiresAuthentication: 'Requires Authentication', footerGroup: 'Footer Group', orderLabel: 'Order', translationTitle: 'Translation Title', htmlPreview: 'HTML', visible: 'Visible', layoutLabel: 'Layout', columns: 'Columns', height: 'Height', overlay: 'Overlay', autoplay: 'Autoplay', cardsPerRow: 'Cards Per Row', filtersLabel: 'Filters', showBadges: 'Show Badges', showRating: 'Show Rating', showPrice: 'Show Price', widgetJson: 'Widget JSON', reviews: 'Reviews', questions: 'Questions', comments: 'Comments', recommendations: 'Recommendations', recentlyViewed: 'Recently Viewed', searchSuggestions: 'Search Suggestions', searchHistory: 'Search History', livePreview: 'Live Preview', languagesTab: 'Languages', addLanguage: 'Add Language', removeLanguage: 'Remove', setDefaultLanguage: 'Set as Default', defaultLanguageLabel: 'Default', exportBootstrap: 'Export Bootstrap', importBootstrap: 'Import Bootstrap', exportedBootstrap: 'Exported Bootstrap', importSource: 'Import Source', importError: 'Import failed. Invalid bootstrap JSON.', featureFlags: 'Feature Flags', }, staticPages: { notFound: 'Page not found', backHome: 'Back to home', duplicateSlug: 'Duplicate slugs are not allowed.', emptyTitle: 'Each page must have at least one title.', }, widgets: { unavailable: 'Widget unavailable', }, carousel: { loading: 'Loading products...', addToCart: 'Add to cart', }, common: { retry: 'Try again', loading: 'Loading...', }, location: { allRegions: 'All regions', chooseRegion: 'Choose region', detectAuto: 'Detect automatically', }, auth: { loginRequired: 'Login required', loginDescription: 'Please log in via Telegram to proceed with your order', checking: 'Checking...', loginWithTelegram: 'Log in with Telegram', orScanQr: 'Or scan the QR code', loginNote: 'You will be redirected back after login', qrExpired: 'QR code expired. Click to refresh', qrError: 'Could not create login session. Click to retry', }, ux: { items: 'items', wishlistTitle: 'Wishlist', wishlistEmptyTitle: 'Your wishlist is empty', wishlistEmptyDescription: 'Save products to revisit them anytime.', clearWishlist: 'Clear wishlist', wishlistCleared: 'Wishlist cleared', compareTitle: 'Compare Products', compareEmptyTitle: 'No products to compare', compareEmptyDescription: 'Add products from catalog cards to compare specs and prices.', clearCompare: 'Clear compare', hideIdentical: 'Hide identical values', highlightDifferences: 'Highlight differences', clearRecentlyViewed: 'Clear recently viewed', recentlyViewedEmpty: 'No recently viewed products yet.', saveSearch: 'Save search', goToCatalog: 'Go to catalog', wishlistAdded: 'Added to wishlist', wishlistRemoved: 'Removed from wishlist', compareAdded: 'Added to compare', compareRemoved: 'Removed from compare', compareLimitReached: 'Compare limit reached ({{maxItems}})', productShared: 'Product shared', productLinkCopied: 'Product link copied', sharingUnsupported: 'Sharing is not supported on this device', addedToCart: 'Added to cart', enterQueryBeforeSave: 'Enter a search query before saving', savedSearchNamed: 'Saved search: {{name}}', recentlyViewedTitle: 'Recently Viewed', compareAttribute: 'Attribute', comparePrice: 'Price', compareRating: 'Rating', compareStock: 'Stock', compareDiscount: 'Discount', compareColor: 'Color', compareSize: 'Size', compareUnknown: 'unknown', }, diagnostics: { title: 'Marketplace Diagnostics', disabledTitle: 'Diagnostics unavailable', disabledDescription: 'Diagnostics page is available only in development mode.', generatedAt: 'Generated at {{value}}', healthScore: 'Health score', summary: 'Summary', passedChecks: '{{count}} passed checks', warnings: '{{count}} warnings', errors: '{{count}} errors', critical: '{{count}} critical', healthChecks: 'Health checks', results: 'Detailed results', noIssues: 'No diagnostics issues found.', ok: 'OK', failed: 'Failed', affectedComponent: 'Affected component', suggestedResolution: 'Suggested resolution', severity: { info: 'Info', warning: 'Warning', error: 'Error', critical: 'Critical', }, checks: { bootstrapLoaded: 'Bootstrap loaded', tenantResolved: 'Tenant resolved', runtimeInitialized: 'Runtime initialized', themeLoaded: 'Theme loaded', widgetManifestLoaded: 'Widget manifest loaded', sectionEngineInitialized: 'Section engine reachable', configurationEngineInitialized: 'Configuration engine initialized', translationResourcesAvailable: 'Translations available', requiredAssetsAvailable: 'Required assets healthy', }, bootstrapMissingTitle: 'Bootstrap missing', bootstrapMissingDescription: 'Bootstrap configuration could not be loaded.', bootstrapMissingResolution: 'Verify bootstrap provider response and local mock availability.', requiredPropertyMissingTitle: 'Required property missing', requiredPropertyMissingDescription: 'Required bootstrap property is missing.', requiredPropertyMissingResolution: 'Add missing property to bootstrap payload.', unknownWidgetTypeTitle: 'Unknown widget type', unknownWidgetTypeDescription: 'Widget type is not present in widget manifest.', unknownWidgetTypeResolution: 'Register widget in manifest or remove invalid widget config.', duplicateIdTitle: 'Duplicate identifier', duplicatePageIdDescription: 'Duplicate page id detected.', duplicateSectionIdDescription: 'Duplicate section id detected.', duplicateWidgetIdDescription: 'Duplicate widget id detected.', duplicateIdResolution: 'Ensure ids are unique within bootstrap config.', unknownLayoutTitle: 'Unknown layout', unknownLayoutDescription: 'Page layout value is not recognized.', unknownLayoutResolution: 'Use supported layout or extend diagnostics allow-list.', invalidFeatureFlagTitle: 'Invalid feature flag', invalidFeatureFlagDescription: 'Feature flag value must be boolean.', invalidFeatureFlagResolution: 'Normalize feature flag values to true or false.', brokenPageDefinitionTitle: 'Broken page definition', brokenPageDefinitionDescription: 'Page definition is incomplete.', brokenPageDefinitionResolution: 'Add missing route, title, key, or sections.', invalidNavigationTargetTitle: 'Invalid navigation target', invalidNavigationTargetDescription: 'Navigation route does not match known routes.', invalidNavigationTargetResolution: 'Update route target or add matching route surface.', missingTranslationTitle: 'Missing translation', missingTranslationDescription: 'Translation key resolves to itself.', missingTranslationResolution: 'Add missing key to translation resources.', missingMediaTitle: 'Missing media', missingMediaDescription: 'Expected branding media is missing.', missingMediaResolution: 'Provide valid media URLs in bootstrap branding config.', runtimeNotInitializedTitle: 'Runtime not initialized', runtimeNotInitializedDescription: 'Platform runtime state has not been marked initialized.', runtimeNotInitializedResolution: 'Verify PlatformRuntimeService initialize sequence.', configFallbackUsageTitle: 'Configuration fallback in use', configFallbackUsageDescription: 'Development runtime is using fallback or mock configuration.', configFallbackUsageResolution: 'Switch provider mode if real bootstrap validation is needed.', missingDatasourceTitle: 'Missing datasource', missingDatasourceDescription: 'Widget supports datasource selection but none was declared.', missingDatasourceResolution: 'Define source in widget props or manifest default settings.', widgetRenderFailureTitle: 'Widget render failure', widgetRenderFailureDescription: 'Widget fell back to unknown widget renderer.', widgetRenderFailureResolution: 'Register widget component or fix manifest component key.', brokenRouteTitle: 'Broken route expectation', brokenRouteDescription: 'Expected route surface is missing.', brokenRouteResolution: 'Restore route registration or update diagnostics expectation.', imageLoadFailedTitle: 'Image load failed', imageLoadFailedDescription: 'Rendered image failed to load.', imageLoadFailedResolution: 'Verify asset path, CORS, and media availability.', optionalDataMissingTitle: 'Optional data missing', optionalDataMissingDescription: 'Optional configuration data is absent.', optionalDataMissingResolution: 'Add optional value if UX depends on it.', }, };