Files
marketplaces/src/app/i18n/en.ts

647 lines
24 KiB
TypeScript
Raw Normal View History

2026-02-26 23:09:20 +04:00
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',
2026-02-26 23:09:20 +04:00
},
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',
2026-06-21 23:13:01 +04:00
deliveryMethod: 'Delivery option',
selectDelivery: 'Select delivery option',
deliveryPlace: 'Place',
deliveryTime: 'Delivery time',
digitalDelivery: 'Digital delivery',
deliveryRequired: 'Select delivery for every shippable item before checkout.',
2026-02-26 23:09:20 +04:00
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',
2026-06-29 00:06:18 +04:00
payViaQr: 'Pay via QR',
payViaCard: 'Pay via card',
2026-02-26 23:09:20 +04:00
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',
2026-06-02 00:57:36 +04:00
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',
2026-02-26 23:09:20 +04:00
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',
2026-02-26 23:09:20 +04:00
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',
2026-03-24 00:09:11 +04:00
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',
2026-02-26 23:09:20 +04:00
},
search: {
title: 'Product search',
placeholder: 'Enter product name...',
searchBarAria: 'Search bar',
2026-02-26 23:09:20 +04:00
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',
},
2026-02-26 23:09:20 +04:00
addToCart: 'Add to cart',
loadingMore: 'Loading...',
allLoaded: 'All results loaded',
emptyState: 'Enter a query to search for products',
2026-07-05 01:10:56 +04:00
minLength: 'Enter at least {{count}} characters to search',
2026-02-26 23:09:20 +04:00
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...',
},
2026-07-05 01:36:21 +04:00
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',
2026-07-09 01:40:22 +04:00
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',
2026-07-09 01:40:22 +04:00
minValue: 'Min {{value}}',
maxValue: 'Max {{value}}',
enabled: 'Enabled',
searchPlaceholder: 'Search products, brands, categories',
searchSubmit: 'Search',
clearSearch: 'Clear',
2026-07-09 01:40:22 +04:00
suggestionsTitle: 'Suggestions',
popularSearchesTitle: 'Popular searches',
2026-07-09 01:40:22 +04:00
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}}"',
2026-07-09 01:40:22 +04:00
sortBy: 'Sort by',
sortRelevance: 'Recommended',
2026-07-09 01:40:22 +04:00
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',
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.',
browseCategories: 'Browse Categories',
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',
2026-07-09 01:40:22 +04:00
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.',
2026-07-09 01:40:22 +04:00
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',
2026-07-09 01:40:22 +04:00
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}}',
2026-07-05 01:36:21 +04:00
},
2026-02-26 23:09:20 +04:00
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',
2026-03-24 00:09:11 +04:00
itemsInCategory: 'Items in this category',
2026-07-05 01:09:55 +04:00
childrenCount: '{{count}} categories',
productsCount: '{{count}} products',
includesProducts: 'Includes products',
2026-02-26 23:09:20 +04:00
},
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',
2026-02-26 23:09:20 +04:00
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',
2026-03-24 00:09:11 +04:00
colour: 'Colour',
size: 'Size',
2026-07-05 01:07:53 +04:00
relatedProducts: 'Related products',
2026-02-26 23:09:20 +04:00
},
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: {
2026-07-10 13:43:53 +04:00
title: 'Marketplace Project Editor',
subtitle: 'Configuration-only bootstrap editing surface.',
general: 'General',
branding: 'Branding',
2026-07-10 13:43:53 +04:00
theme: 'Theme',
header: 'Header',
footer: 'Footer',
homepage: 'Homepage',
widgets: 'Widgets',
2026-07-10 13:52:01 +04:00
staticPages: 'Static Pages',
2026-07-10 13:43:53 +04:00
marketplaceFeatures: 'Marketplace Features',
preview: 'Preview',
brandName: 'Brand Name',
2026-07-10 13:43:53 +04:00
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',
2026-07-10 13:52:01 +04:00
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',
2026-07-10 13:43:53 +04:00
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',
exportBootstrap: 'Export Bootstrap',
importBootstrap: 'Import Bootstrap',
exportedBootstrap: 'Exported Bootstrap',
importSource: 'Import Source',
importError: 'Import failed. Invalid bootstrap JSON.',
featureFlags: 'Feature Flags',
},
2026-07-10 13:52:01 +04:00
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',
},
2026-02-26 23:09:20 +04:00
carousel: {
loading: 'Loading products...',
addToCart: 'Add to cart',
},
common: {
retry: 'Try again',
loading: 'Loading...',
},
2026-02-28 17:18:24 +04:00
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',
2026-03-25 15:32:50 +04:00
qrExpired: 'QR code expired. Click to refresh',
2026-06-01 00:47:26 +04:00
qrError: 'Could not create login session. Click to retry',
2026-02-28 17:18:24 +04:00
},
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',
2026-07-09 01:40:22 +04:00
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',
2026-07-09 01:40:22 +04:00
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',
},
2026-07-10 13:34:25 +04:00
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.',
},
2026-02-26 23:09:20 +04:00
};