feat(product): add reusable Product Experience 2.0
Unify product details modules behind config-driven contracts so teams can extend UX without changing runtime architecture or bootstrap flow. Keep backward compatibility with existing product payloads by treating new media/specification/variant/related structures as optional extensions. Improve conversion and content discoverability with reusable actions, typed media rendering, grouped specifications, dynamic variants, and multi-collection related products.
This commit is contained in:
@@ -267,8 +267,27 @@ export const en: Translations = {
|
||||
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.',
|
||||
|
||||
@@ -267,8 +267,27 @@ export const hy: Translations = {
|
||||
reviewTextPlaceholder: 'Նկարագրեք ձեր փորձը',
|
||||
reviewAnonymous: 'Ուղարկել անանուն',
|
||||
reviewUploadPlaceholder: 'Լուսանկար վերբեռնելը նախատեսված է հաջորդ սպրինտում։',
|
||||
reviewRatingRequired: 'Խնդրում ենք ընտրել գնահատական։',
|
||||
reviewTextRequired: 'Խնդրում ենք գրել կարծիք։',
|
||||
reviewSuccess: 'Կարծիքը հաջողությամբ ուղարկվեց։',
|
||||
submitReview: 'Ուղարկել կարծիքը',
|
||||
submitting: 'Ուղարկվում է...',
|
||||
loadMore: 'Բեռնել ավելին',
|
||||
showingOf: 'Ցուցադրվում է {{shown}} / {{total}}',
|
||||
questionsSubmissionFuture: 'Հարցի ուղարկումը կարելի է միացնել ավելի ուշ՝ առանց բաղադրիչի փոփոխության։',
|
||||
specificationsGeneral: 'Ընդհանուր',
|
||||
actionsAria: 'Ապրանքի գործողություններ',
|
||||
buyNow: 'Գնել հիմա',
|
||||
wishlist: 'Նախընտրածներ',
|
||||
compare: 'Համեմատել',
|
||||
share: 'Կիսվել',
|
||||
notifyMe: 'Ծանուցել ինձ',
|
||||
zoom: 'Մեծացնել',
|
||||
fullscreen: 'Ամբողջ էկրան',
|
||||
pdfDocument: 'Ապրանքի PDF փաստաթուղթ',
|
||||
manualDocument: 'Ապրանքի ուղեցույց',
|
||||
warrantyDocument: 'Երաշխիքի փաստաթուղթ',
|
||||
openDocument: 'Բացել փաստաթուղթը',
|
||||
specificationsEmpty: 'Բնութագրերը դեռ հասանելի չեն։',
|
||||
warrantyTitle: 'Երաշխիք և վերադարձ',
|
||||
warrantyItem1: 'Երաշխիքի պայմանները սահմանվում են վաճառողի և տեղական օրենքներով։',
|
||||
|
||||
@@ -267,8 +267,27 @@ export const ru: Translations = {
|
||||
reviewTextPlaceholder: 'Опишите ваш опыт использования',
|
||||
reviewAnonymous: 'Отправить анонимно',
|
||||
reviewUploadPlaceholder: 'Загрузка фото запланирована в следующем спринте.',
|
||||
reviewRatingRequired: 'Выберите оценку.',
|
||||
reviewTextRequired: 'Добавьте текст отзыва.',
|
||||
reviewSuccess: 'Отзыв успешно отправлен.',
|
||||
submitReview: 'Отправить отзыв',
|
||||
submitting: 'Отправка...',
|
||||
loadMore: 'Показать еще',
|
||||
showingOf: 'Показано {{shown}} из {{total}}',
|
||||
questionsSubmissionFuture: 'Отправку вопросов можно включить позже без изменения компонента.',
|
||||
specificationsGeneral: 'Общие',
|
||||
actionsAria: 'Действия с товаром',
|
||||
buyNow: 'Купить сейчас',
|
||||
wishlist: 'В избранное',
|
||||
compare: 'Сравнить',
|
||||
share: 'Поделиться',
|
||||
notifyMe: 'Сообщить о наличии',
|
||||
zoom: 'Увеличить',
|
||||
fullscreen: 'Полный экран',
|
||||
pdfDocument: 'PDF документ товара',
|
||||
manualDocument: 'Инструкция товара',
|
||||
warrantyDocument: 'Гарантийный документ',
|
||||
openDocument: 'Открыть документ',
|
||||
specificationsEmpty: 'Характеристики пока не указаны.',
|
||||
warrantyTitle: 'Гарантия и возврат',
|
||||
warrantyItem1: 'Условия гарантии определяются продавцом и местным законодательством.',
|
||||
|
||||
@@ -265,8 +265,27 @@ export interface Translations {
|
||||
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;
|
||||
|
||||
Reference in New Issue
Block a user