Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> P0 user feedback: homepage builder showed raw section.id like 'section-hero'/'section-categories'; hero widget exposed 'full-bleed'/'boxed' and raw px/vh as free text with no explanation; Overlay/Autoplay toggles made no sense without a slides concept; product carousel widgets rendered arrows nowhere near a working carousel. Homepage section (sections list -> visual blocks): - Replaced raw section.id display with a merchant-facing block catalog (icon + name + one-line explanation) for hero/categories/featured-products/product-carousel/recently-viewed/banner/partners/custom-html - Added block catalog picker to append new blocks (was fixed at whatever the seed data had - task asked 'what if we add manually? not fixed 3') - Added duplicate and remove per block, alongside the existing drag-to-reorder - Verified in browser: labels render correctly, add-block and duplicate both confirmed working end-to-end Widgets section (hero widget): - 'Layout' free-text replaced with a select (Full width / Boxed) instead of typing 'full-bleed'/'boxed' blind - 'Height' free-text replaced with a select (Compact/Medium/Tall/Full screen) mapped to real vh values - New Slides editor: title/subtitle pairs an admin can add/remove: this is the actual multi-slide data the Overlay/Autoplay toggles were referring to with nothing to point at before - HeroWidgetData contract gains slides[]/autoplay; HeroWidgetComponent now renders a real rotator (dots, click-to-jump, autoplay interval) when more than one slide exists - previously autoplay/overlay props existed but there was no slideshow behavior anywhere to control Carousel arrows root cause and fix: - widget-manifest.json offers 'carousel' as a layout option for product-collection/product-carousel widgets, and the admin UI let you select it, but ProductCarouselWidgetComponent always rendered a static CSS grid regardless - there was no carousel implementation to have arrows in the first place - Now renders a real horizontally-scrollable strip with working prev/next buttons (native scrollBy, disabled at each end) when section.layout.strategy === 'carousel'; falls back to the existing grid otherwise - Confirmed src/app/components/items-carousel (a PrimeNG p-carousel) is dead code, not wired into any route or widget - not the source of the reported bug New builder.* i18n keys (en/ru/hy), zero duplicate-key collisions verified via scan
1950 lines
51 KiB
TypeScript
1950 lines
51 KiB
TypeScript
export interface Translations {
|
|
header: {
|
|
home: string;
|
|
search: string;
|
|
about: string;
|
|
contacts: string;
|
|
searchPlaceholder: string;
|
|
catalog: string;
|
|
wishlist: string;
|
|
compare: string;
|
|
openMenu: string;
|
|
closeMenu: string;
|
|
};
|
|
footer: {
|
|
description: string;
|
|
company: string;
|
|
aboutUs: string;
|
|
contacts: string;
|
|
requisites: string;
|
|
support: string;
|
|
faq: string;
|
|
delivery: string;
|
|
guarantee: string;
|
|
legal: string;
|
|
offer: string;
|
|
privacy: string;
|
|
returns: string;
|
|
info: string;
|
|
aboutCompany: string;
|
|
documents: string;
|
|
paymentRules: string;
|
|
returnPolicy: string;
|
|
publicOffer: string;
|
|
help: string;
|
|
payment: string;
|
|
allRightsReserved: string;
|
|
};
|
|
home: {
|
|
welcomeTo: string;
|
|
subtitle: string;
|
|
startSearch: string;
|
|
loading: string;
|
|
errorTitle: string;
|
|
retry: string;
|
|
categoriesTitle: string;
|
|
categoriesSubtitle: string;
|
|
categoriesEmpty: string;
|
|
categoriesEmptyDesc: string;
|
|
dexarHeroTitle: string;
|
|
dexarHeroSubtitle: string;
|
|
dexarHeroTagline: string;
|
|
goToCatalog: string;
|
|
findProduct: string;
|
|
loadingDexar: string;
|
|
catalogTitle: string;
|
|
emptyCategoriesDexar: string;
|
|
categoriesSoonDexar: string;
|
|
itemsCount: string;
|
|
};
|
|
cart: {
|
|
title: string;
|
|
clear: string;
|
|
empty: string;
|
|
emptyDesc: string;
|
|
goShopping: string;
|
|
total: string;
|
|
items: string;
|
|
deliveryLabel: string;
|
|
deliveryMethod: string;
|
|
selectDelivery: string;
|
|
deliveryPlace: string;
|
|
deliveryTime: string;
|
|
digitalDelivery: string;
|
|
deliveryRequired: string;
|
|
toPay: string;
|
|
agreeWith: string;
|
|
publicOffer: string;
|
|
returnPolicy: string;
|
|
guaranteeTerms: string;
|
|
privacyPolicy: string;
|
|
and: string;
|
|
checkout: string;
|
|
payViaQr: string;
|
|
payViaCard: string;
|
|
close: string;
|
|
creatingPayment: string;
|
|
waitFewSeconds: string;
|
|
scanQr: string;
|
|
amountToPay: string;
|
|
waitingPayment: string;
|
|
copied: string;
|
|
copyLink: string;
|
|
openNewTab: string;
|
|
paymentSuccess: string;
|
|
paymentSuccessDesc: string;
|
|
sending: string;
|
|
send: string;
|
|
paymentError: string;
|
|
paymentErrorDesc: string;
|
|
retryPayment: string;
|
|
paymentTimeout: string;
|
|
paymentTimeoutDesc: string;
|
|
autoClose: string;
|
|
confirmClear: string;
|
|
removeItem: string;
|
|
paymentQrAlt: string;
|
|
acceptTerms: string;
|
|
copyError: string;
|
|
emailSuccess: string;
|
|
emailError: string;
|
|
phoneRequired: string;
|
|
phoneMoreDigits: string;
|
|
phoneTooMany: string;
|
|
emailRequired: string;
|
|
emailTooShort: string;
|
|
emailTooLong: string;
|
|
emailNeedsAt: string;
|
|
emailNeedsDomain: string;
|
|
emailInvalid: string;
|
|
loginRequired: string;
|
|
loginRequiredDesc: string;
|
|
loginWithTelegram: string;
|
|
orScanQr: string;
|
|
};
|
|
search: {
|
|
title: string;
|
|
placeholder: string;
|
|
searchBarAria: string;
|
|
resultsCount: string;
|
|
searching: string;
|
|
retry: string;
|
|
noResults: string;
|
|
noResultsFor: string;
|
|
noResultsHint: string;
|
|
emptyResultsAria: string;
|
|
popularCategories: string;
|
|
recommendedProducts: string;
|
|
aiSuggestionHint: string;
|
|
suggestionType: {
|
|
product: string;
|
|
category: string;
|
|
brand: string;
|
|
collection: string;
|
|
seller: string;
|
|
'static-page': string;
|
|
ai: string;
|
|
};
|
|
addToCart: string;
|
|
loadingMore: string;
|
|
allLoaded: string;
|
|
emptyState: string;
|
|
minLength: string;
|
|
of: string;
|
|
};
|
|
category: {
|
|
retry: string;
|
|
addToCart: string;
|
|
loadingMore: string;
|
|
allLoaded: string;
|
|
emptyTitle: string;
|
|
emptyDesc: string;
|
|
goHome: string;
|
|
loading: string;
|
|
};
|
|
catalog: {
|
|
title: string;
|
|
breadcrumb: string;
|
|
allCategories: string;
|
|
products: string;
|
|
loading: string;
|
|
loadingProducts: string;
|
|
errorTitle: string;
|
|
error: string;
|
|
retry: string;
|
|
categoryHint: string;
|
|
productHint: string;
|
|
emptyTitle: string;
|
|
emptyCategories: string;
|
|
emptyProducts: string;
|
|
addToCart: string;
|
|
categoriesCount: string;
|
|
productsCount: string;
|
|
entriesCount: string;
|
|
categoryBannerPlaceholder: string;
|
|
navigationPlaceholder: string;
|
|
removeSavedSearch: string;
|
|
resetFilters: string;
|
|
filtersTitle: string;
|
|
from: string;
|
|
to: string;
|
|
minValue: string;
|
|
maxValue: string;
|
|
enabled: string;
|
|
searchPlaceholder: string;
|
|
searchSubmit: string;
|
|
clearSearch: string;
|
|
suggestionsTitle: string;
|
|
popularSearchesTitle: string;
|
|
recentSearchesTitle: string;
|
|
searchHistoryTitle: string;
|
|
clearHistory: string;
|
|
searchNoResultsHint: string;
|
|
searchProductsFound: string;
|
|
searchResultsSummary: string;
|
|
loadMore: string;
|
|
sortBy: string;
|
|
sortRelevance: string;
|
|
sortLatest: string;
|
|
sortPriceAsc: string;
|
|
sortPriceDesc: string;
|
|
sortRating: string;
|
|
sortPopular: string;
|
|
sortDiscount: string;
|
|
layoutGrid: string;
|
|
layoutLargeGrid: string;
|
|
layoutCompactGrid: string;
|
|
layoutGrid2: string;
|
|
layoutGrid3: string;
|
|
layoutGrid4: string;
|
|
layoutCompact: string;
|
|
layoutList: string;
|
|
noResults: string;
|
|
itemsCount: string;
|
|
emptyResultsTitle: string;
|
|
emptyResultsDescription: string;
|
|
previousPage: string;
|
|
nextPage: string;
|
|
pageOf: string;
|
|
emptyCategoryTitle: string;
|
|
emptyCategoryMessage: string;
|
|
goToParentCategory: string;
|
|
browseCategories: string;
|
|
offlineTitle: string;
|
|
offlineMessage: string;
|
|
noFilterMatchTitle: string;
|
|
noFilterMatchMessage: string;
|
|
clearFilters: string;
|
|
openFilters: string;
|
|
applyFilters: string;
|
|
close: string;
|
|
filtersDrawerAria: string;
|
|
sortSheetAria: string;
|
|
mobileToolbarAria: string;
|
|
gridCycle: string;
|
|
filtersPanelAria: string;
|
|
filterPrice: string;
|
|
filterAvailability: string;
|
|
filterInStock: string;
|
|
filterLowStock: string;
|
|
filterOutOfStock: string;
|
|
filterRating: string;
|
|
filterStars: string;
|
|
filterBrand: string;
|
|
filterCategory: string;
|
|
filterCategoryValue: string;
|
|
filterSubcategory: string;
|
|
filterDiscount: string;
|
|
filterNew: string;
|
|
filterColor: string;
|
|
filterSize: string;
|
|
filterAttributes: string;
|
|
};
|
|
productDetails: {
|
|
loading: string;
|
|
errorTitle: string;
|
|
retry: string;
|
|
missingTitle: string;
|
|
missingDescription: string;
|
|
backToCatalog: string;
|
|
tabsAria: string;
|
|
mediaAria: string;
|
|
ratingStarsAria: string;
|
|
selectRatingAria: string;
|
|
reviewsEmpty: string;
|
|
questionsEmpty: string;
|
|
askQuestion: string;
|
|
hideQuestionForm: string;
|
|
questionFormTitle: string;
|
|
questionFormPlaceholder: string;
|
|
questionFormAnonymous: string;
|
|
submitQuestion: string;
|
|
reviewFormTitle: string;
|
|
reviewRatingLabel: string;
|
|
reviewTitleLabel: string;
|
|
reviewTitlePlaceholder: string;
|
|
reviewTextLabel: string;
|
|
reviewTextPlaceholder: string;
|
|
reviewAnonymous: string;
|
|
reviewUploadPlaceholder: string;
|
|
reviewRatingRequired: string;
|
|
reviewTextRequired: string;
|
|
reviewSuccess: string;
|
|
submitReview: string;
|
|
submitting: string;
|
|
loadMore: string;
|
|
showingOf: string;
|
|
questionsSubmissionFuture: string;
|
|
specificationsGeneral: string;
|
|
actionsAria: string;
|
|
buyNow: string;
|
|
wishlist: string;
|
|
compare: string;
|
|
share: string;
|
|
notifyMe: string;
|
|
zoom: string;
|
|
fullscreen: string;
|
|
pdfDocument: string;
|
|
manualDocument: string;
|
|
warrantyDocument: string;
|
|
openDocument: string;
|
|
specificationsEmpty: string;
|
|
warrantyTitle: string;
|
|
warrantyItem1: string;
|
|
warrantyItem2: string;
|
|
warrantyItem3: string;
|
|
verifiedPurchase: string;
|
|
officialSeller: string;
|
|
acceptedAnswer: string;
|
|
like: string;
|
|
dislike: string;
|
|
reviewsCountLabel: string;
|
|
previous: string;
|
|
next: string;
|
|
pageOf: string;
|
|
};
|
|
subcategories: {
|
|
loading: string;
|
|
retry: string;
|
|
emptyTitle: string;
|
|
emptyDesc: string;
|
|
goHome: string;
|
|
itemsInCategory: string;
|
|
childrenCount: string;
|
|
productsCount: string;
|
|
includesProducts: string;
|
|
};
|
|
itemDetail: {
|
|
loading: string;
|
|
loadingDexar: string;
|
|
back: string;
|
|
backHome: string;
|
|
noImage: string;
|
|
stock: string;
|
|
inStock: string;
|
|
lowStock: string;
|
|
lastItems: string;
|
|
mediumStock: string;
|
|
addToCart: string;
|
|
description: string;
|
|
specifications: string;
|
|
reviews: string;
|
|
yourReview: string;
|
|
leaveReview: string;
|
|
rating: string;
|
|
reviewPlaceholder: string;
|
|
reviewPlaceholderDexar: string;
|
|
anonymous: string;
|
|
submitting: string;
|
|
submit: string;
|
|
reviewSuccess: string;
|
|
reviewError: string;
|
|
defaultUser: string;
|
|
defaultUserDexar: string;
|
|
noReviews: string;
|
|
qna: string;
|
|
photo: string;
|
|
reviewsCount: string;
|
|
today: string;
|
|
yesterday: string;
|
|
daysAgo: string;
|
|
weeksAgo: string;
|
|
colour: string;
|
|
size: string;
|
|
relatedProducts: string;
|
|
};
|
|
app: {
|
|
connecting: string;
|
|
serverUnavailable: string;
|
|
serverError: string;
|
|
retryConnection: string;
|
|
pageTitle: string;
|
|
};
|
|
platform: {
|
|
loadingPage: string;
|
|
emptyConfig: string;
|
|
};
|
|
backoffice: {
|
|
title: string;
|
|
subtitle: string;
|
|
loading: string;
|
|
products: string;
|
|
categories: string;
|
|
otherDomains: string;
|
|
sku: string;
|
|
titleColumn: string;
|
|
price: string;
|
|
status: string;
|
|
itemsCount: string;
|
|
orders: string;
|
|
customers: string;
|
|
inventory: string;
|
|
media: string;
|
|
settings: string;
|
|
notAvailable: string;
|
|
};
|
|
builder: {
|
|
title: string;
|
|
subtitle: string;
|
|
general: string;
|
|
branding: string;
|
|
theme: string;
|
|
header: string;
|
|
footer: string;
|
|
homepage: string;
|
|
widgets: string;
|
|
staticPages: string;
|
|
marketplaceFeatures: string;
|
|
preview: string;
|
|
brandName: string;
|
|
marketplaceName: string;
|
|
domain: string;
|
|
descriptionLabel: string;
|
|
defaultLanguage: string;
|
|
supportedLanguages: string;
|
|
logo: string;
|
|
smallLogo: string;
|
|
favicon: string;
|
|
socialImage: string;
|
|
gallery: string;
|
|
addGalleryImage: string;
|
|
headerLayout: string;
|
|
headerLayoutDefault: string;
|
|
headerLayoutCentered: string;
|
|
headerSticky: string;
|
|
marketplaceTitle: string;
|
|
primaryColor: string;
|
|
secondaryColor: string;
|
|
backgroundColor: string;
|
|
surfaceColor: string;
|
|
textColor: string;
|
|
successColor: string;
|
|
warningColor: string;
|
|
dangerColor: string;
|
|
showLogo: string;
|
|
showSearch: string;
|
|
showCategories: string;
|
|
showLanguages: string;
|
|
showCart: string;
|
|
showProfile: string;
|
|
showWishlist: string;
|
|
showCompare: string;
|
|
showRegion: string;
|
|
companyName: string;
|
|
address: string;
|
|
phone: string;
|
|
email: string;
|
|
copyright: string;
|
|
paymentIcons: string;
|
|
socialLinks: string;
|
|
footerLogo: string;
|
|
addPaymentIcon: string;
|
|
removePaymentIcon: string;
|
|
iconAltLabel: string;
|
|
addSocialLink: string;
|
|
removeSocialLink: string;
|
|
socialLinkLabel: string;
|
|
socialLinkUrl: string;
|
|
invalidUrl: string;
|
|
createPage: string;
|
|
deletePage: string;
|
|
pageId: string;
|
|
slug: string;
|
|
iconLabel: string;
|
|
showInFooter: string;
|
|
showInHeader: string;
|
|
showInSitemap: string;
|
|
requiresAuthentication: string;
|
|
footerGroup: string;
|
|
orderLabel: string;
|
|
translationTitle: string;
|
|
htmlPreview: string;
|
|
seoSection: string;
|
|
seoTitle: string;
|
|
seoDescription: string;
|
|
seoKeywords: string;
|
|
seoCanonical: string;
|
|
seoOgTitle: string;
|
|
seoOgDescription: string;
|
|
seoOgImage: string;
|
|
visible: string;
|
|
layoutLabel: string;
|
|
columns: string;
|
|
height: string;
|
|
overlay: string;
|
|
autoplay: string;
|
|
cardsPerRow: string;
|
|
filtersLabel: string;
|
|
showBadges: string;
|
|
showRating: string;
|
|
showPrice: string;
|
|
widgetJson: string;
|
|
reviews: string;
|
|
questions: string;
|
|
comments: string;
|
|
recommendations: string;
|
|
recentlyViewed: string;
|
|
searchSuggestions: string;
|
|
searchHistory: string;
|
|
livePreview: string;
|
|
previewChangesTitle: string;
|
|
previewNoIssues: string;
|
|
previewNoChanges: string;
|
|
previewChangeField: string;
|
|
previewChangeBefore: string;
|
|
previewChangeAfter: string;
|
|
languagesTab: string;
|
|
addLanguage: string;
|
|
removeLanguage: string;
|
|
setDefaultLanguage: string;
|
|
defaultLanguageLabel: string;
|
|
navigationTab: string;
|
|
navigationHeader: string;
|
|
navigationFooter: string;
|
|
navigationFooterGrouped: string;
|
|
addLink: string;
|
|
insertPageLink: string;
|
|
linkedToPage: string;
|
|
removeLink: string;
|
|
linkLabel: string;
|
|
linkUrl: string;
|
|
exportBootstrap: string;
|
|
importBootstrap: string;
|
|
exportedBootstrap: string;
|
|
importSource: string;
|
|
importError: string;
|
|
featureFlags: string;
|
|
validationMissingLogo: string;
|
|
validationNoLanguages: string;
|
|
validationDefaultLocaleNotSupported: string;
|
|
validationInvalidUrl: string;
|
|
validationDuplicateSlugs: string;
|
|
validationEmptyHomepage: string;
|
|
validationMissingWidget: string;
|
|
validationDuplicateNavLinks: string;
|
|
validationInvalidColors: string;
|
|
validationMissingTranslations: string;
|
|
validationInvalidLayouts: string;
|
|
validationInvalidJson: string;
|
|
validationInvalidCss: string;
|
|
validationDuplicateRoutes: string;
|
|
validationInvalidWidgetConfig: string;
|
|
validationInvalidContactEmail: string;
|
|
validationInvalidSocialLinkUrl: string;
|
|
validationIncompletePaymentIcon: string;
|
|
undo: string;
|
|
redo: string;
|
|
statusDraft: string;
|
|
statusPublished: string;
|
|
unsavedChanges: string;
|
|
save: string;
|
|
publish: string;
|
|
confirmLeaveUnsaved: string;
|
|
promptLinkUrl: string;
|
|
promptImageUrl: string;
|
|
promptEmbedUrl: string;
|
|
htmlEditorInvalidHtml: string;
|
|
htmlEditorCode: string;
|
|
htmlEditorPreview: string;
|
|
lastSaved: string;
|
|
draftRestored: string;
|
|
dismiss: string;
|
|
resetDraft: string;
|
|
resetSection: string;
|
|
confirmResetDraft: string;
|
|
confirmResetSection: string;
|
|
marketplaceNameDesc: string;
|
|
domainDesc: string;
|
|
descriptionFieldDesc: string;
|
|
defaultLanguageDesc: string;
|
|
supportedLanguagesDesc: string;
|
|
logoDesc: string;
|
|
smallLogoDesc: string;
|
|
faviconDesc: string;
|
|
socialImageDesc: string;
|
|
galleryDesc: string;
|
|
headerLayoutDesc: string;
|
|
headerStickyDesc: string;
|
|
marketplaceTitleDesc: string;
|
|
primaryColorDesc: string;
|
|
secondaryColorDesc: string;
|
|
backgroundColorDesc: string;
|
|
surfaceColorDesc: string;
|
|
textColorDesc: string;
|
|
successColorDesc: string;
|
|
warningColorDesc: string;
|
|
dangerColorDesc: string;
|
|
themeModeLabel: string;
|
|
themeModeDesc: string;
|
|
themeModeLight: string;
|
|
themeModeLightDesc: string;
|
|
themeModeDark: string;
|
|
themeModeDarkDesc: string;
|
|
themeModeSystem: string;
|
|
themeModeSystemDesc: string;
|
|
siteLayoutLabel: string;
|
|
siteLayoutDesc: string;
|
|
siteLayoutDefault: string;
|
|
siteLayoutDefaultDesc: string;
|
|
siteLayoutSidebarLeft: string;
|
|
siteLayoutSidebarLeftDesc: string;
|
|
siteLayoutCarouselHome: string;
|
|
siteLayoutCarouselHomeDesc: string;
|
|
siteLayoutMinimal: string;
|
|
siteLayoutMinimalDesc: string;
|
|
showLogoDesc: string;
|
|
showSearchDesc: string;
|
|
showCategoriesDesc: string;
|
|
showLanguagesDesc: string;
|
|
showCartDesc: string;
|
|
showProfileDesc: string;
|
|
showWishlistDesc: string;
|
|
showCompareDesc: string;
|
|
showRegionDesc: string;
|
|
companyNameDesc: string;
|
|
addressDesc: string;
|
|
phoneDesc: string;
|
|
emailDesc: string;
|
|
copyrightDesc: string;
|
|
paymentIconsDesc: string;
|
|
socialLinksDesc: string;
|
|
footerLogoDesc: string;
|
|
iconAltLabelDesc: string;
|
|
socialLinkUrlDesc: string;
|
|
staticPagesFieldDesc: string;
|
|
additionalPhones: string;
|
|
additionalPhonesDesc: string;
|
|
addPhone: string;
|
|
removePhone: string;
|
|
additionalEmails: string;
|
|
additionalEmailsDesc: string;
|
|
addEmail: string;
|
|
removeEmail: string;
|
|
footerColumns: string;
|
|
footerColumnsDesc: string;
|
|
footerColumnTitlePlaceholder: string;
|
|
footerLinkLabelPlaceholder: string;
|
|
footerLinkExistingPage: string;
|
|
footerLinkCustomUrl: string;
|
|
addColumn: string;
|
|
removeColumn: string;
|
|
addColumnLink: string;
|
|
removeColumnLink: string;
|
|
sectionVisibleDesc: string;
|
|
layoutStrategyLabel: string;
|
|
layoutStrategyDesc: string;
|
|
layoutStrategyStack: string;
|
|
layoutStrategyStackDesc: string;
|
|
layoutStrategyGrid: string;
|
|
layoutStrategyGridDesc: string;
|
|
layoutStrategyHero: string;
|
|
layoutStrategyHeroDesc: string;
|
|
layoutStrategyCarousel: string;
|
|
layoutStrategyCarouselDesc: string;
|
|
layoutStrategySplit: string;
|
|
layoutStrategySplitDesc: string;
|
|
sectionColumnsDesc: string;
|
|
widgetLayoutDesc: string;
|
|
widgetHeightDesc: string;
|
|
widgetOverlayDesc: string;
|
|
widgetAutoplayDesc: string;
|
|
heroLayoutFullBleed: string;
|
|
heroLayoutBoxed: string;
|
|
heroHeightCompact: string;
|
|
heroHeightMedium: string;
|
|
heroHeightTall: string;
|
|
heroHeightFullScreen: string;
|
|
heroSlides: string;
|
|
heroSlidesHint: string;
|
|
heroSlideTitlePlaceholder: string;
|
|
heroSlideSubtitlePlaceholder: string;
|
|
addSlide: string;
|
|
removeSlide: string;
|
|
widgetColumnsDesc: string;
|
|
widgetCardsPerRowDesc: string;
|
|
widgetFiltersDesc: string;
|
|
widgetShowBadgesDesc: string;
|
|
widgetShowRatingDesc: string;
|
|
widgetShowPriceDesc: string;
|
|
widgetJsonDesc: string;
|
|
widgetJsonInvalid: string;
|
|
wishlistFeatureDesc: string;
|
|
compareFeatureDesc: string;
|
|
reviewsFeatureDesc: string;
|
|
questionsFeatureDesc: string;
|
|
commentsFeatureDesc: string;
|
|
recommendationsFeatureDesc: string;
|
|
recentlyViewedFeatureDesc: string;
|
|
searchSuggestionsDesc: string;
|
|
searchHistoryDesc: string;
|
|
catalogNavigationModeLabel: string;
|
|
catalogNavigationModeDesc: string;
|
|
catalogNavDefault: string;
|
|
catalogNavDefaultDesc: string;
|
|
catalogNavLeftCategory: string;
|
|
catalogNavLeftCategoryDesc: string;
|
|
catalogNavMegaCategory: string;
|
|
catalogNavMegaCategoryDesc: string;
|
|
catalogNavTopCarousel: string;
|
|
catalogNavTopCarouselDesc: string;
|
|
newLanguageDesc: string;
|
|
languageAlreadyAdded: string;
|
|
languagesTabDesc: string;
|
|
linkLabelDesc: string;
|
|
linkUrlDesc: string;
|
|
linkVisibleDesc: string;
|
|
appName: string;
|
|
backToDashboard: string;
|
|
languagesSummaryDesc: string;
|
|
manageLanguages: string;
|
|
htmlToolBold: string;
|
|
htmlToolItalic: string;
|
|
htmlToolUnderline: string;
|
|
htmlToolHeading: string;
|
|
htmlToolSubheading: string;
|
|
htmlToolBulletList: string;
|
|
htmlToolNumberedList: string;
|
|
htmlToolLink: string;
|
|
htmlToolImage: string;
|
|
htmlToolTable: string;
|
|
htmlToolDivider: string;
|
|
htmlToolCodeBlock: string;
|
|
htmlToolEmbed: string;
|
|
|
|
breadcrumbRoot: string;
|
|
statusComplete: string;
|
|
statusInProgress: string;
|
|
statusNotStarted: string;
|
|
statusUnknown: string;
|
|
draftBadge: string;
|
|
publishedBadge: string;
|
|
modifiedBadge: string;
|
|
helpToggleShow: string;
|
|
helpToggleHide: string;
|
|
helpWhatIsThis: string;
|
|
helpWhySkip: string;
|
|
helpWhereVisible: string;
|
|
helpWhatIfSkip: string;
|
|
helpWhenReturn: string;
|
|
openSidebar: string;
|
|
closeSidebar: string;
|
|
overviewTitle: string;
|
|
overviewSubtitle: string;
|
|
overviewReadinessLabel: string;
|
|
overviewReadinessHint: string;
|
|
overviewNextStepLabel: string;
|
|
overviewNextStepFallback: string;
|
|
overviewQuickLinksTitle: string;
|
|
overviewSectionsTitle: string;
|
|
overviewOpenSection: string;
|
|
overviewReadinessTitle: string;
|
|
readinessLogoUploaded: string;
|
|
readinessHomepageConfigured: string;
|
|
readinessThemeConfigured: string;
|
|
readinessLanguagesConfigured: string;
|
|
readinessContentPagesAdded: string;
|
|
readinessPreviewReviewed: string;
|
|
readinessPublished: string;
|
|
readinessCategoriesExist: string;
|
|
readinessProductsExist: string;
|
|
groupMarketplaceLabel: string;
|
|
groupMarketplaceDescription: string;
|
|
groupMarketplacePurpose: string;
|
|
groupMarketplaceWhere: string;
|
|
groupMarketplaceSkip: string;
|
|
groupBrandingLabel: string;
|
|
groupBrandingDescription: string;
|
|
groupBrandingPurpose: string;
|
|
groupBrandingWhere: string;
|
|
groupBrandingSkip: string;
|
|
groupHomepageLabel: string;
|
|
groupHomepageDescription: string;
|
|
groupHomepagePurpose: string;
|
|
groupHomepageWhere: string;
|
|
groupHomepageSkip: string;
|
|
groupContentLabel: string;
|
|
groupContentDescription: string;
|
|
groupContentPurpose: string;
|
|
groupContentWhere: string;
|
|
groupContentSkip: string;
|
|
groupLanguagesLabel: string;
|
|
groupLanguagesDescription: string;
|
|
groupLanguagesPurpose: string;
|
|
groupLanguagesWhere: string;
|
|
groupLanguagesSkip: string;
|
|
groupFeaturesLabel: string;
|
|
groupFeaturesDescription: string;
|
|
groupFeaturesPurpose: string;
|
|
groupFeaturesWhere: string;
|
|
groupFeaturesSkip: string;
|
|
groupNavigationLabel: string;
|
|
groupNavigationDescription: string;
|
|
groupNavigationPurpose: string;
|
|
groupNavigationWhere: string;
|
|
groupNavigationSkip: string;
|
|
groupPreviewLabel: string;
|
|
groupPreviewDescription: string;
|
|
groupPreviewPurpose: string;
|
|
groupPreviewWhere: string;
|
|
groupPreviewSkip: string;
|
|
brandOverviewTitle: string;
|
|
brandOverviewSubtitle: string;
|
|
brandOverviewComplete: string;
|
|
brandLastModified: string;
|
|
brandFaviconUploaded: string;
|
|
brandColorsSelected: string;
|
|
brandTypographyConfigured: string;
|
|
brandSocialImageUploaded: string;
|
|
brandAccessibilityPassed: string;
|
|
brandColorsPreviewTitle: string;
|
|
brandTypographyPreviewTitle: string;
|
|
brandSocialPreviewTitle: string;
|
|
brandTypeSampleHeading: string;
|
|
brandTypeSampleBody: string;
|
|
brandContrastWarning: string;
|
|
brandSocialEmpty: string;
|
|
brandAccentColor: string;
|
|
brandBorderColor: string;
|
|
homepageOverviewTitle: string;
|
|
homepageOverviewSubtitle: string;
|
|
homepageOverviewComplete: string;
|
|
homepageActiveSections: string;
|
|
homepageDisabledSections: string;
|
|
homepageHealthHero: string;
|
|
homepageHealthCategories: string;
|
|
homepageHealthProducts: string;
|
|
homepageHealthPromotion: string;
|
|
homepageHealthNewsletter: string;
|
|
homepageHealthAnySections: string;
|
|
widgetTypeHero: string;
|
|
widgetTypeCategories: string;
|
|
widgetTypeProducts: string;
|
|
widgetHidden: string;
|
|
widgetVisible: string;
|
|
widgetMoveUp: string;
|
|
widgetMoveDown: string;
|
|
widgetDuplicate: string;
|
|
widgetRemove: string;
|
|
widgetRemoveConfirm: string;
|
|
widgetAdvancedSettings: string;
|
|
homepageBlocksHint: string;
|
|
addBlockHint: string;
|
|
dragToReorder: string;
|
|
blockRemoveConfirm: string;
|
|
blockHero: string;
|
|
blockHeroDesc: string;
|
|
blockCategories: string;
|
|
blockCategoriesDesc: string;
|
|
blockFeaturedProducts: string;
|
|
blockFeaturedProductsDesc: string;
|
|
blockProductCarousel: string;
|
|
blockProductCarouselDesc: string;
|
|
blockRecentlyViewed: string;
|
|
blockRecentlyViewedDesc: string;
|
|
blockBanner: string;
|
|
blockBannerDesc: string;
|
|
blockPartners: string;
|
|
blockPartnersDesc: string;
|
|
blockCustomHtml: string;
|
|
blockCustomHtmlDesc: string;
|
|
};
|
|
dashboard: {
|
|
title: string;
|
|
subtitle: string;
|
|
cardMarketplaceStatus: string;
|
|
cardProjectName: string;
|
|
cardCurrentTheme: string;
|
|
cardLanguages: string;
|
|
cardCategoriesCount: string;
|
|
cardProductsCount: string;
|
|
cardOrders: string;
|
|
cardRevenue: string;
|
|
cardLastPublish: string;
|
|
cardLastDraftSave: string;
|
|
cardBootstrapVersion: string;
|
|
cardActiveLayout: string;
|
|
cardEnabledWidgets: string;
|
|
stateLoading: string;
|
|
stateEmpty: string;
|
|
stateError: string;
|
|
statePendingBackend: string;
|
|
never: string;
|
|
quickActionsTitle: string;
|
|
actionEditProject: string;
|
|
actionCategories: string;
|
|
actionProducts: string;
|
|
actionStaticPages: string;
|
|
actionTransactions: string;
|
|
actionOrders: string;
|
|
actionMediaLibrary: string;
|
|
actionUsers: string;
|
|
actionMonitoring: string;
|
|
actionAnalytics: string;
|
|
actionPreviewMarketplace: string;
|
|
activityTitle: string;
|
|
activityEmpty: string;
|
|
activityDraftSaved: string;
|
|
activityPublished: string;
|
|
healthTitle: string;
|
|
healthAllClear: string;
|
|
healthBootstrapValid: string;
|
|
healthConfigurationValid: string;
|
|
healthMissingTranslations: string;
|
|
healthInvalidColors: string;
|
|
healthInvalidWidgetReferences: string;
|
|
healthInvalidLayouts: string;
|
|
comingSoonTitle: string;
|
|
comingSoonDescription: string;
|
|
backToDashboard: string;
|
|
welcomeEyebrow: string;
|
|
welcomeFallbackTenant: string;
|
|
envProduction: string;
|
|
envDevelopment: string;
|
|
factCurrentUser: string;
|
|
factTenant: string;
|
|
quickActionsDescription: string;
|
|
actionAddProduct: string;
|
|
actionAddProductDescription: string;
|
|
actionCreateCategory: string;
|
|
actionCreateCategoryDescription: string;
|
|
actionEditProjectDescription: string;
|
|
actionEditHomepage: string;
|
|
actionEditHomepageDescription: string;
|
|
actionMediaLibraryDescription: string;
|
|
actionOrdersDescription: string;
|
|
draftStatusTitle: string;
|
|
draftStatusHasChanges: string;
|
|
draftStatusAllPublished: string;
|
|
draftStatusMoreFields: string;
|
|
draftOpenBuilder: string;
|
|
draftPublish: string;
|
|
draftDiscard: string;
|
|
healthProductsCount: string;
|
|
healthCategoriesCount: string;
|
|
healthDraftExists: string;
|
|
healthImagesWithoutAlt: string;
|
|
healthStaticPagesUnpublished: string;
|
|
healthHomepageConfigured: string;
|
|
healthThemeConfigured: string;
|
|
statusHealthy: string;
|
|
statusAttention: string;
|
|
statusUnhealthy: string;
|
|
statusUnknown: string;
|
|
activityEmptyHint: string;
|
|
activityUnavailable: string;
|
|
activityUnavailableHint: string;
|
|
activityErrorHint: string;
|
|
shortcutsTitle: string;
|
|
shortcutsDescription: string;
|
|
shortcutMarketplaceBuilder: string;
|
|
shortcutSettings: string;
|
|
shortcutContent: string;
|
|
docTitle: string;
|
|
docDocumentation: string;
|
|
docKeyboardShortcuts: string;
|
|
docReportIssue: string;
|
|
docReleaseNotes: string;
|
|
};
|
|
staticPages: {
|
|
notFound: string;
|
|
backHome: string;
|
|
duplicateSlug: string;
|
|
emptyTitle: string;
|
|
duplicateRoute: string;
|
|
invalidHtml: string;
|
|
invalidSeo: string;
|
|
searchPlaceholder: string;
|
|
filterAll: string;
|
|
filterAllLocales: string;
|
|
confirmDeletePage: string;
|
|
confirmBulkDelete: string;
|
|
duplicatePage: string;
|
|
selectAll: string;
|
|
selectedCount: string;
|
|
bulkDelete: string;
|
|
bulkEnable: string;
|
|
bulkDisable: string;
|
|
bulkPublishAction: string;
|
|
bulkUnpublish: string;
|
|
routeLabel: string;
|
|
enabledLabel: string;
|
|
statusLabel: string;
|
|
publishPageAction: string;
|
|
unpublishPageAction: string;
|
|
heroImageLabel: string;
|
|
thumbnailLabel: string;
|
|
galleryLabel: string;
|
|
customTemplateLabel: string;
|
|
seoRobotsLabel: string;
|
|
disabledBadge: string;
|
|
previewDesktop: string;
|
|
previewTablet: string;
|
|
previewMobile: string;
|
|
previewToggle: string;
|
|
};
|
|
contentManagement: {
|
|
publishedPages: string;
|
|
draftPages: string;
|
|
missingLegalPages: string;
|
|
seoHealth: string;
|
|
lastEdited: string;
|
|
lastEditedNever: string;
|
|
completionLabel: string;
|
|
recommendedNext: string;
|
|
recommendAddTitles: string;
|
|
recommendFixSeo: string;
|
|
recommendPublish: string;
|
|
recommendNone: string;
|
|
openAction: string;
|
|
backToPages: string;
|
|
groupContent: string;
|
|
groupSeo: string;
|
|
groupSharing: string;
|
|
groupAdvanced: string;
|
|
groupAdvancedHtml: string;
|
|
seoExplainDesc: string;
|
|
seoTitleHelp: string;
|
|
seoDescriptionHelp: string;
|
|
seoCanonicalHelp: string;
|
|
seoRobotsHelp: string;
|
|
sharingExplain: string;
|
|
mediaSelect: string;
|
|
mediaReplace: string;
|
|
mediaRemove: string;
|
|
mediaAlt: string;
|
|
mediaCaption: string;
|
|
emptyStateGuideTitle: string;
|
|
emptyStateGuideBody: string;
|
|
seoStatusGood: string;
|
|
seoStatusPartial: string;
|
|
seoStatusWarning: string;
|
|
seoStatusMissing: string;
|
|
needsAttention: string;
|
|
legal: {
|
|
about: { label: string; why: string };
|
|
contacts: { label: string; why: string };
|
|
privacy: { label: string; why: string };
|
|
terms: { label: string; why: string };
|
|
cookies: { label: string; why: string };
|
|
delivery: { label: string; why: string };
|
|
returns: { label: string; why: string };
|
|
faq: { label: string; why: string };
|
|
};
|
|
};
|
|
widgets: {
|
|
unavailable: string;
|
|
};
|
|
carousel: {
|
|
loading: string;
|
|
addToCart: string;
|
|
};
|
|
common: {
|
|
retry: string;
|
|
loading: string;
|
|
remove: string;
|
|
};
|
|
location: {
|
|
allRegions: string;
|
|
chooseRegion: string;
|
|
detectAuto: string;
|
|
};
|
|
auth: {
|
|
loginRequired: string;
|
|
loginDescription: string;
|
|
checking: string;
|
|
loginWithTelegram: string;
|
|
orScanQr: string;
|
|
loginNote: string;
|
|
qrExpired: string;
|
|
qrError: string;
|
|
};
|
|
ux: {
|
|
items: string;
|
|
wishlistTitle: string;
|
|
wishlistEmptyTitle: string;
|
|
wishlistEmptyDescription: string;
|
|
clearWishlist: string;
|
|
wishlistCleared: string;
|
|
compareTitle: string;
|
|
compareEmptyTitle: string;
|
|
compareEmptyDescription: string;
|
|
clearCompare: string;
|
|
hideIdentical: string;
|
|
highlightDifferences: string;
|
|
clearRecentlyViewed: string;
|
|
recentlyViewedEmpty: string;
|
|
saveSearch: string;
|
|
goToCatalog: string;
|
|
wishlistAdded: string;
|
|
wishlistRemoved: string;
|
|
compareAdded: string;
|
|
compareRemoved: string;
|
|
compareLimitReached: string;
|
|
productShared: string;
|
|
productLinkCopied: string;
|
|
sharingUnsupported: string;
|
|
addedToCart: string;
|
|
enterQueryBeforeSave: string;
|
|
savedSearchNamed: string;
|
|
recentlyViewedTitle: string;
|
|
compareAttribute: string;
|
|
comparePrice: string;
|
|
compareRating: string;
|
|
compareStock: string;
|
|
compareDiscount: string;
|
|
compareColor: string;
|
|
compareSize: string;
|
|
compareUnknown: string;
|
|
};
|
|
diagnostics: {
|
|
title: string;
|
|
disabledTitle: string;
|
|
disabledDescription: string;
|
|
generatedAt: string;
|
|
healthScore: string;
|
|
summary: string;
|
|
passedChecks: string;
|
|
warnings: string;
|
|
errors: string;
|
|
critical: string;
|
|
healthChecks: string;
|
|
results: string;
|
|
noIssues: string;
|
|
ok: string;
|
|
failed: string;
|
|
affectedComponent: string;
|
|
suggestedResolution: string;
|
|
severity: {
|
|
info: string;
|
|
warning: string;
|
|
error: string;
|
|
critical: string;
|
|
};
|
|
checks: {
|
|
bootstrapLoaded: string;
|
|
tenantResolved: string;
|
|
runtimeInitialized: string;
|
|
themeLoaded: string;
|
|
widgetManifestLoaded: string;
|
|
sectionEngineInitialized: string;
|
|
configurationEngineInitialized: string;
|
|
translationResourcesAvailable: string;
|
|
requiredAssetsAvailable: string;
|
|
};
|
|
bootstrapMissingTitle: string;
|
|
bootstrapMissingDescription: string;
|
|
bootstrapMissingResolution: string;
|
|
requiredPropertyMissingTitle: string;
|
|
requiredPropertyMissingDescription: string;
|
|
requiredPropertyMissingResolution: string;
|
|
unknownWidgetTypeTitle: string;
|
|
unknownWidgetTypeDescription: string;
|
|
unknownWidgetTypeResolution: string;
|
|
duplicateIdTitle: string;
|
|
duplicatePageIdDescription: string;
|
|
duplicateSectionIdDescription: string;
|
|
duplicateWidgetIdDescription: string;
|
|
duplicateIdResolution: string;
|
|
unknownLayoutTitle: string;
|
|
unknownLayoutDescription: string;
|
|
unknownLayoutResolution: string;
|
|
invalidFeatureFlagTitle: string;
|
|
invalidFeatureFlagDescription: string;
|
|
invalidFeatureFlagResolution: string;
|
|
brokenPageDefinitionTitle: string;
|
|
brokenPageDefinitionDescription: string;
|
|
brokenPageDefinitionResolution: string;
|
|
invalidNavigationTargetTitle: string;
|
|
invalidNavigationTargetDescription: string;
|
|
invalidNavigationTargetResolution: string;
|
|
missingTranslationTitle: string;
|
|
missingTranslationDescription: string;
|
|
missingTranslationResolution: string;
|
|
missingMediaTitle: string;
|
|
missingMediaDescription: string;
|
|
missingMediaResolution: string;
|
|
runtimeNotInitializedTitle: string;
|
|
runtimeNotInitializedDescription: string;
|
|
runtimeNotInitializedResolution: string;
|
|
configFallbackUsageTitle: string;
|
|
configFallbackUsageDescription: string;
|
|
configFallbackUsageResolution: string;
|
|
missingDatasourceTitle: string;
|
|
missingDatasourceDescription: string;
|
|
missingDatasourceResolution: string;
|
|
widgetRenderFailureTitle: string;
|
|
widgetRenderFailureDescription: string;
|
|
widgetRenderFailureResolution: string;
|
|
brokenRouteTitle: string;
|
|
brokenRouteDescription: string;
|
|
brokenRouteResolution: string;
|
|
imageLoadFailedTitle: string;
|
|
imageLoadFailedDescription: string;
|
|
imageLoadFailedResolution: string;
|
|
optionalDataMissingTitle: string;
|
|
optionalDataMissingDescription: string;
|
|
optionalDataMissingResolution: string;
|
|
};
|
|
adminModeration: {
|
|
search: string;
|
|
allStatuses: string;
|
|
allRatings: string;
|
|
rating: string;
|
|
customer: string;
|
|
product: string;
|
|
reviewText: string;
|
|
photos: string;
|
|
workflow: string;
|
|
approve: string;
|
|
reject: string;
|
|
markSpam: string;
|
|
hide: string;
|
|
restore: string;
|
|
pin: string;
|
|
unpin: string;
|
|
feature: string;
|
|
unfeature: string;
|
|
featureDisabledHint: string;
|
|
moderatorNotes: string;
|
|
notAvailable: string;
|
|
changeStatus: string;
|
|
hideSelected: string;
|
|
archiveSelected: string;
|
|
reportsQueue: string;
|
|
reportsColumn: string;
|
|
reportTarget: string;
|
|
reportType: string;
|
|
reportReason: string;
|
|
resolve: string;
|
|
dismiss: string;
|
|
reportsEmptyTitle: string;
|
|
reportsEmptyDescription: string;
|
|
reportedCount: string;
|
|
averageRating: string;
|
|
moderationHealth: string;
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
emptyGuide: string;
|
|
healthRating: string;
|
|
healthText: string;
|
|
healthMedia: string;
|
|
healthModeration: string;
|
|
healthReportStatus: string;
|
|
healthVisibility: string;
|
|
health: string;
|
|
column_product: string;
|
|
column_rating: string;
|
|
column_status: string;
|
|
column_reports: string;
|
|
column_created: string;
|
|
status: {
|
|
pending: string;
|
|
approved: string;
|
|
rejected: string;
|
|
spam: string;
|
|
};
|
|
targetType: {
|
|
product: string;
|
|
review: string;
|
|
customer: string;
|
|
category: string;
|
|
unknown: string;
|
|
};
|
|
reportStatus: {
|
|
open: string;
|
|
resolved: string;
|
|
dismissed: string;
|
|
};
|
|
};
|
|
adminOrders: {
|
|
back: string;
|
|
search: string;
|
|
export: string;
|
|
view: string;
|
|
orderNumber: string;
|
|
customer: string;
|
|
payment: string;
|
|
delivery: string;
|
|
trackingNumber: string;
|
|
createdAt: string;
|
|
items: string;
|
|
timeline: string;
|
|
notes: string;
|
|
internalNotes: string;
|
|
addNote: string;
|
|
changeStatus: string;
|
|
applyStatus: string;
|
|
archiveSelected: string;
|
|
printSelected: string;
|
|
printInvoice: string;
|
|
requestRefund: string;
|
|
cancelOrder: string;
|
|
confirmCancel: string;
|
|
confirmRefund: string;
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
column_customer: string;
|
|
column_status: string;
|
|
column_payment: string;
|
|
column_total: string;
|
|
column_created: string;
|
|
status: {
|
|
pending: string;
|
|
processing: string;
|
|
shipped: string;
|
|
delivered: string;
|
|
cancelled: string;
|
|
refunded: string;
|
|
};
|
|
paymentStatus: {
|
|
unpaid: string;
|
|
paid: string;
|
|
refund_requested: string;
|
|
refunded: string;
|
|
};
|
|
ordersToday: string;
|
|
paidCount: string;
|
|
customersCount: string;
|
|
returningCustomers: string;
|
|
averageOrder: string;
|
|
recentActivity: string;
|
|
noRecentActivity: string;
|
|
alertStuckPending: string;
|
|
alertRefundRequested: string;
|
|
};
|
|
adminCustomers: {
|
|
search: string;
|
|
name: string;
|
|
email: string;
|
|
phone: string;
|
|
orderCount: string;
|
|
lifetimeValue: string;
|
|
returning: string;
|
|
profile: string;
|
|
statistics: string;
|
|
firstOrder: string;
|
|
lastOrder: string;
|
|
addresses: string;
|
|
notes: string;
|
|
notesUnavailable: string;
|
|
orders: string;
|
|
activity: string;
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
};
|
|
mediaLibrary: {
|
|
title: string;
|
|
upload: string;
|
|
uploading: string;
|
|
searchPlaceholder: string;
|
|
delete: string;
|
|
deleteConfirmTitle: string;
|
|
deleteConfirmBody: string;
|
|
cancel: string;
|
|
confirm: string;
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
allFolders: string;
|
|
newFolder: string;
|
|
editTags: string;
|
|
totalAssets: string;
|
|
logos: string;
|
|
unused: string;
|
|
storageUsed: string;
|
|
altCoverage: string;
|
|
allTypes: string;
|
|
typeImage: string;
|
|
typeSvg: string;
|
|
typePdf: string;
|
|
sortRecent: string;
|
|
sortName: string;
|
|
sortSize: string;
|
|
viewMode: string;
|
|
viewGrid: string;
|
|
viewList: string;
|
|
dropHint: string;
|
|
cancelUpload: string;
|
|
retry: string;
|
|
errorTooLarge: string;
|
|
errorUnsupportedType: string;
|
|
errorGeneric: string;
|
|
selectedCount: string;
|
|
download: string;
|
|
exportMetadata: string;
|
|
bulkDelete: string;
|
|
bulkDeleteConfirm: string;
|
|
clearSelection: string;
|
|
guideCopy: string;
|
|
missingAlt: string;
|
|
usageCount: string;
|
|
detailsTitle: string;
|
|
filename: string;
|
|
format: string;
|
|
fileSize: string;
|
|
dimensions: string;
|
|
uploadDate: string;
|
|
lastUsed: string;
|
|
usageCountLabel: string;
|
|
usedIn: string;
|
|
notUsed: string;
|
|
unknownValue: string;
|
|
altText: string;
|
|
altTextHelp: string;
|
|
decorative: string;
|
|
missingAltWarning: string;
|
|
caption: string;
|
|
description: string;
|
|
usage: {
|
|
brand: string;
|
|
theme: string;
|
|
header: string;
|
|
footer: string;
|
|
staticPage: string;
|
|
homepage: string;
|
|
catalog: string;
|
|
productPage: string;
|
|
widget: string;
|
|
company: string;
|
|
seo: string;
|
|
navigation: string;
|
|
other: string;
|
|
};
|
|
};
|
|
// Sprint 28: only the new empty-state copy this sprint's skeleton/empty-
|
|
// state consistency fix introduces - NOT the full adminProducts/
|
|
// adminUsers/adminMonitoring/adminAnalytics translation surface, which is
|
|
// still missing entirely (see docs/KNOWN-ISSUES.md, deferred to Sprint 29).
|
|
// Shared across branding/footer/static-pages/admin-product/admin-category media
|
|
// pickers - despite the namespace name, this is a generic "choose image" label,
|
|
// not category-specific. Renaming is a separate cleanup outside this sprint's
|
|
// scope; the key was previously referenced by 5 templates but never defined
|
|
// anywhere, so it rendered as the literal string "adminCategories.chooseImage".
|
|
adminCategories: {
|
|
chooseImage: string;
|
|
replaceImage: string;
|
|
search: string;
|
|
showDeleted: string;
|
|
create: string;
|
|
edit: string;
|
|
title: string;
|
|
slug: string;
|
|
slugTaken: string;
|
|
parent: string;
|
|
noParent: string;
|
|
icon: string;
|
|
image: string;
|
|
imageHint: string;
|
|
description: string;
|
|
items: string;
|
|
status: { draft: string; published: string };
|
|
restore: string;
|
|
saveDraft: string;
|
|
publish: string;
|
|
confirmDelete: string;
|
|
confirmLeaveUnsaved: string;
|
|
deleteBlocked: string;
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
emptyGuide: string;
|
|
viewTree: string;
|
|
viewCards: string;
|
|
expandAll: string;
|
|
collapseAll: string;
|
|
expandNode: string;
|
|
collapseNode: string;
|
|
jumpToParent: string;
|
|
deletedBadge: string;
|
|
column_slug: string;
|
|
column_items: string;
|
|
column_status: string;
|
|
column_visibility: string;
|
|
column_updated: string;
|
|
bulkAssignParent: string;
|
|
bulkAssignImage: string;
|
|
groupGeneral: string;
|
|
groupMedia: string;
|
|
groupSeo: string;
|
|
groupVisibility: string;
|
|
groupNavigation: string;
|
|
groupAttributes: string;
|
|
groupAdvanced: string;
|
|
visibilityExplain: string;
|
|
navBreadcrumb: string;
|
|
navBreadcrumbHint: string;
|
|
iconHint: string;
|
|
navRoot: string;
|
|
navChildren: string;
|
|
navNoChildren: string;
|
|
navAppearsIn: string;
|
|
navAppearsVisible: string;
|
|
navAppearsHidden: string;
|
|
itemsCountLabel: string;
|
|
createdAtLabel: string;
|
|
healthImage: string;
|
|
healthSeo: string;
|
|
healthDescription: string;
|
|
healthParent: string;
|
|
healthVisibility: string;
|
|
healthProducts: string;
|
|
totalCategories: string;
|
|
visibleCount: string;
|
|
hiddenCount: string;
|
|
emptyCount: string;
|
|
rootCount: string;
|
|
subCount: string;
|
|
missingImagesCount: string;
|
|
missingSeoCount: string;
|
|
lastModified: string;
|
|
lastModifiedNever: string;
|
|
completionLabel: string;
|
|
recommendedNext: string;
|
|
recommendAddImage: string;
|
|
recommendAddSeo: string;
|
|
recommendFillEmpty: string;
|
|
recommendNone: string;
|
|
};
|
|
adminProducts: {
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
emptyGuide: string;
|
|
search: string;
|
|
category: string;
|
|
allCategories: string;
|
|
visibility: string;
|
|
allVisibility: string;
|
|
visible: string;
|
|
hidden: string;
|
|
stockStatus: string;
|
|
allStock: string;
|
|
inStock: string;
|
|
lowStock: string;
|
|
outOfStock: string;
|
|
sortTitle: string;
|
|
sortPrice: string;
|
|
sortPriority: string;
|
|
sortStock: string;
|
|
sortUpdated: string;
|
|
showArchived: string;
|
|
infiniteScroll: string;
|
|
viewMode: string;
|
|
viewTable: string;
|
|
viewGrid: string;
|
|
density: string;
|
|
densityComfortable: string;
|
|
densityCompact: string;
|
|
columns: string;
|
|
column_sku: string;
|
|
column_brand: string;
|
|
column_price: string;
|
|
column_stock: string;
|
|
column_visibility: string;
|
|
column_updated: string;
|
|
create: string;
|
|
edit: string;
|
|
duplicate: string;
|
|
selectedCount: string;
|
|
bulkShow: string;
|
|
bulkHide: string;
|
|
bulkAssignCategory: string;
|
|
bulkAssignTags: string;
|
|
bulkDuplicateAction: string;
|
|
bulkExportAction: string;
|
|
bulkDelete: string;
|
|
tagsPlaceholder: string;
|
|
name: string;
|
|
brand: string;
|
|
healthColumn: string;
|
|
actions: string;
|
|
archive: string;
|
|
delete: string;
|
|
items: string;
|
|
loadMore: string;
|
|
noImage: string;
|
|
slug: string;
|
|
barcode: string;
|
|
priority: string;
|
|
shortDescription: string;
|
|
translations: string;
|
|
primaryImage: string;
|
|
primaryImageHint: string;
|
|
gallery: string;
|
|
galleryHint: string;
|
|
moveLeft: string;
|
|
moveRight: string;
|
|
videos: string;
|
|
discount: string;
|
|
currency: string;
|
|
stockQuantity: string;
|
|
stockQuantityHint: string;
|
|
availabilityStatus: string;
|
|
availabilityStatusHint: string;
|
|
availabilityNote: string;
|
|
availabilityNoteHint: string;
|
|
reservedNote: string;
|
|
relatedProducts: string;
|
|
specifications: string;
|
|
attributes: string;
|
|
addRow: string;
|
|
removeRow: string;
|
|
rowKey: string;
|
|
rowValue: string;
|
|
addVariant: string;
|
|
variantName: string;
|
|
variantsHint: string;
|
|
variants: string;
|
|
variantAttributes: string;
|
|
variantAttributesHint: string;
|
|
colorAttribute: string;
|
|
removeAttribute: string;
|
|
removeValue: string;
|
|
pickColor: string;
|
|
newValuePlaceholder: string;
|
|
addValue: string;
|
|
newAttributePlaceholder: string;
|
|
addAttribute: string;
|
|
generateVariants: string;
|
|
variantsList: string;
|
|
remaining: string;
|
|
variantImage: string;
|
|
archived: string;
|
|
slugHint: string;
|
|
skuHint: string;
|
|
generate: string;
|
|
seoGenerate: string;
|
|
seoGenerateHint: string;
|
|
translationsHint: string;
|
|
badgesHint: string;
|
|
addBadge: string;
|
|
removeBadge: string;
|
|
customBadgePlaceholder: string;
|
|
seoExplain: string;
|
|
searchTitle: string;
|
|
searchTitleHint: string;
|
|
searchDescription: string;
|
|
searchDescriptionHint: string;
|
|
seoMissingTitle: string;
|
|
seoMissingDescription: string;
|
|
keywords: string;
|
|
featured: string;
|
|
recommended: string;
|
|
new: string;
|
|
bestseller: string;
|
|
badges: string;
|
|
htmlDescription: string;
|
|
customer: string;
|
|
reviewsReadonly: string;
|
|
noReviews: string;
|
|
questionsReadonly: string;
|
|
noQuestions: string;
|
|
save: string;
|
|
groupGeneral: string;
|
|
groupMedia: string;
|
|
groupPricing: string;
|
|
groupInventory: string;
|
|
groupCategories: string;
|
|
groupAttributes: string;
|
|
groupSeo: string;
|
|
groupVisibility: string;
|
|
groupAdvanced: string;
|
|
healthImages: string;
|
|
healthSeo: string;
|
|
healthPrice: string;
|
|
healthCategory: string;
|
|
healthDescription: string;
|
|
healthInventory: string;
|
|
totalProducts: string;
|
|
publishedCount: string;
|
|
draftsCount: string;
|
|
outOfStockCount: string;
|
|
hiddenCount: string;
|
|
missingImagesCount: string;
|
|
missingSeoCount: string;
|
|
lowQualityCount: string;
|
|
recentlyEdited: string;
|
|
recommendedNext: string;
|
|
openAction: string;
|
|
recommendAddImages: string;
|
|
recommendAddSeo: string;
|
|
recommendRestock: string;
|
|
recommendNone: string;
|
|
};
|
|
adminUsers: {
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
invitationsEmptyTitle: string;
|
|
title: string;
|
|
name: string;
|
|
email: string;
|
|
scope: string;
|
|
role: string;
|
|
roles: string;
|
|
lastLogin: string;
|
|
sessions: string;
|
|
currentSession: string;
|
|
invite: string;
|
|
sendInvite: string;
|
|
revoke: string;
|
|
passwordlessHint: string;
|
|
confirmSuspend: string;
|
|
scopeValue: {
|
|
marketplace: string;
|
|
office: string;
|
|
};
|
|
statusValue: {
|
|
active: string;
|
|
invited: string;
|
|
suspended: string;
|
|
};
|
|
invitationStatus: {
|
|
pending: string;
|
|
accepted: string;
|
|
expired: string;
|
|
revoked: string;
|
|
};
|
|
};
|
|
adminTransactions: {
|
|
search: string;
|
|
type: string;
|
|
method: string;
|
|
fraud: string;
|
|
flagged: string;
|
|
flag: string;
|
|
clearFlag: string;
|
|
retry: string;
|
|
audit: string;
|
|
emptyTitle: string;
|
|
emptyDescription: string;
|
|
status: {
|
|
all: string;
|
|
pending: string;
|
|
success: string;
|
|
failed: string;
|
|
retried: string;
|
|
};
|
|
typeValue: {
|
|
all: string;
|
|
payment: string;
|
|
refund: string;
|
|
qr_payment: string;
|
|
};
|
|
};
|
|
adminMonitoring: {
|
|
eventsEmptyTitle: string;
|
|
eventsEmptyDescription: string;
|
|
health: string;
|
|
queues: string;
|
|
depth: string;
|
|
webhooks: string;
|
|
endpoint: string;
|
|
event: string;
|
|
events: string;
|
|
category: string;
|
|
level: string;
|
|
message: string;
|
|
categoryValue: {
|
|
all: string;
|
|
audit: string;
|
|
security: string;
|
|
login: string;
|
|
failed_login: string;
|
|
api: string;
|
|
error: string;
|
|
warning: string;
|
|
};
|
|
queueStatus: {
|
|
healthy: string;
|
|
degraded: string;
|
|
down: string;
|
|
};
|
|
webhookStatus: {
|
|
delivered: string;
|
|
failed: string;
|
|
pending: string;
|
|
};
|
|
levelValue: {
|
|
info: string;
|
|
warning: string;
|
|
error: string;
|
|
};
|
|
systemState: string;
|
|
backendConnectivity: string;
|
|
connected: string;
|
|
loading: string;
|
|
draftState: string;
|
|
unsavedChanges: string;
|
|
noDraft: string;
|
|
lastSaved: string;
|
|
lastPublished: string;
|
|
syncStatus: string;
|
|
};
|
|
adminAnalytics: {
|
|
topProductsEmptyTitle: string;
|
|
topProductsEmptyDescription: string;
|
|
topProducts: string;
|
|
print: string;
|
|
tabsLabel: string;
|
|
tab: {
|
|
overview: string;
|
|
health: string;
|
|
products: string;
|
|
customers: string;
|
|
search: string;
|
|
traffic: string;
|
|
recommendations: string;
|
|
};
|
|
revenue: string;
|
|
orders: string;
|
|
customers: string;
|
|
avgOrderValue: string;
|
|
conversion: string;
|
|
completionPercent: string;
|
|
unknown: string;
|
|
salesChart: string;
|
|
quantitySold: string;
|
|
lowStock: string;
|
|
lowStockEmptyTitle: string;
|
|
quantity: string;
|
|
status: string;
|
|
recentActivity: string;
|
|
recentActivityEmptyTitle: string;
|
|
activityDraftSaved: string;
|
|
activityPublished: string;
|
|
warnings: string;
|
|
topViewed: string;
|
|
hiddenProducts: string;
|
|
archivedProducts: string;
|
|
mostReviewed: string;
|
|
worstRated: string;
|
|
noReviewedProducts: string;
|
|
reviewCount: string;
|
|
avgRating: string;
|
|
newCustomers: string;
|
|
returningCustomers: string;
|
|
averageSpend: string;
|
|
retention: string;
|
|
searchAnalytics: string;
|
|
trafficAnalytics: string;
|
|
availableAfterBackend: string;
|
|
pendingBackend: string;
|
|
pendingBackendHint: string;
|
|
funnelsHeatmaps: string;
|
|
visitors: string;
|
|
products: string;
|
|
categories: string;
|
|
};
|
|
adminMarketplaceHealth: {
|
|
title: string;
|
|
complete: string;
|
|
recommendationsTitle: string;
|
|
recommendNone: string;
|
|
checkImages: string;
|
|
checkSeo: string;
|
|
checkCategories: string;
|
|
checkReviews: string;
|
|
checkOrders: string;
|
|
checkTranslations: string;
|
|
checkHomepage: string;
|
|
checkBackend: string;
|
|
checkPerformance: string;
|
|
recommendImages: string;
|
|
recommendImagesCount: string;
|
|
recommendSeo: string;
|
|
recommendSeoCount: string;
|
|
recommendCategory: string;
|
|
recommendCategoryCount: string;
|
|
recommendEmptyCategories: string;
|
|
recommendEmptyCategoriesCount: string;
|
|
recommendHomepage: string;
|
|
recommendStaticPages: string;
|
|
severity: {
|
|
info: string;
|
|
warning: string;
|
|
critical: string;
|
|
};
|
|
};
|
|
adminShell: {
|
|
skipToContent: string;
|
|
openSidebar: string;
|
|
closeSidebar: string;
|
|
collapseSidebar: string;
|
|
expandSidebar: string;
|
|
nav: {
|
|
dashboard: string;
|
|
catalogGroup: string;
|
|
products: string;
|
|
categories: string;
|
|
orders: string;
|
|
customers: string;
|
|
transactions: string;
|
|
reviews: string;
|
|
moderation: string;
|
|
reports: string;
|
|
content: string;
|
|
mediaLibrary: string;
|
|
marketplaceBuilder: string;
|
|
users: string;
|
|
settings: string;
|
|
monitoring: string;
|
|
analytics: string;
|
|
documentation: string;
|
|
help: string;
|
|
logout: string;
|
|
comingSoonBadge: string;
|
|
};
|
|
topbar: {
|
|
searchLabel: string;
|
|
searchPlaceholder: string;
|
|
notifications: string;
|
|
notificationsEmpty: string;
|
|
account: string;
|
|
tenantSelector: string;
|
|
tenantSelectorComingSoon: string;
|
|
quickPublish: string;
|
|
quickPublishComingSoon: string;
|
|
};
|
|
breadcrumbHome: string;
|
|
pages: {
|
|
dashboard: { title: string; description: string };
|
|
products: { title: string; description: string };
|
|
productCreate: { title: string; description: string };
|
|
productEdit: { title: string; description: string };
|
|
productDuplicate: { title: string; description: string };
|
|
categories: { title: string; description: string };
|
|
categoryCreate: { title: string; description: string };
|
|
categoryEdit: { title: string; description: string };
|
|
orders: { title: string; description: string };
|
|
orderDetail: { title: string; description: string };
|
|
customers: { title: string; description: string };
|
|
customerDetail: { title: string; description: string };
|
|
moderation: { title: string; description: string };
|
|
reviewDetail: { title: string; description: string };
|
|
reportsQueue: { title: string; description: string };
|
|
transactions: { title: string; description: string };
|
|
media: { title: string; description: string };
|
|
users: { title: string; description: string };
|
|
monitoring: { title: string; description: string };
|
|
analytics: { title: string; description: string };
|
|
};
|
|
};
|
|
}
|