fix(storefront): replace hardcoded strings with i18n, neutral empty-state wording

- Route aria-label/alt/title strings (rating, discount, carousel arrows,
  hero slides, dialog close, toast dismiss, QR code, bank payment iframe,
  guest checkout fallback) through the translate pipe/service instead of
  literal English.
- Drop the "Oops!"/"Упс!" apology framing from category/subcategory empty
  states (en/ru/hy) - zero results is not an error.
This commit is contained in:
sdarbinyan
2026-07-25 23:54:08 +04:00
parent 0982397d6b
commit 1163bfd88a
14 changed files with 68 additions and 18 deletions

View File

@@ -161,7 +161,7 @@ export const en: Translations = {
addToCart: 'Add to cart',
loadingMore: 'Loading...',
allLoaded: 'All products loaded',
emptyTitle: 'Oops! Nothing here yet',
emptyTitle: 'Nothing here yet',
emptyDesc: 'There are no products in this category yet, but they will appear soon',
goHome: 'Go home',
loading: 'Loading products...',
@@ -339,7 +339,7 @@ export const en: Translations = {
subcategories: {
loading: 'Loading subcategories...',
retry: 'Try again',
emptyTitle: 'Oops! No subcategories yet',
emptyTitle: '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',
@@ -1086,6 +1086,17 @@ export const en: Translations = {
remove: 'Remove',
errorTitle: 'Something went wrong',
errorDescription: 'We could not load this data. Please try again.',
ratingLabel: 'Rating {{value}}',
discountLabel: 'Discount {{value}}%',
slideLabel: 'Slide {{value}}',
slidesLabel: 'Slides',
previousProducts: 'Previous products',
nextProducts: 'Next products',
closeDialog: 'Close dialog',
dismiss: 'Dismiss',
qrCode: 'QR Code',
bankCardPayment: 'Bank card payment',
guest: 'Guest',
},
location: {
allRegions: 'All regions',

View File

@@ -161,7 +161,7 @@ export const hy: Translations = {
addToCart: 'Ավելացնել զամբյուղ',
loadingMore: 'Բեռնում...',
allLoaded: 'Բոլոր ապրանքները բեռնված են',
emptyTitle: 'Վա՜յ, այստեղ դեռ դատարկ է',
emptyTitle: 'Այստեղ դեռ դատարկ է',
emptyDesc: 'Այս կատեգորիայում դեռ ապրանքներ չկան',
goHome: 'Գլխավոր',
loading: 'Ապրանքների բեռնում...',
@@ -1086,6 +1086,17 @@ export const hy: Translations = {
remove: 'Հեռացնել',
errorTitle: 'Ինչ-որ բան այն չէ',
errorDescription: 'Չհաջողվեց բեռնել տվյալները։ Փորձեք կրկին։',
ratingLabel: 'Վարկանիշ {{value}}',
discountLabel: 'Զեղչ {{value}}%',
slideLabel: 'Սլայդ {{value}}',
slidesLabel: 'Սլայդներ',
previousProducts: 'Նախորդ ապրանքները',
nextProducts: 'Հաջորդ ապրանքները',
closeDialog: 'Փակել պատուհանը',
dismiss: 'Փակել',
qrCode: 'QR կոդ',
bankCardPayment: 'Վճարում բանկային քարտով',
guest: 'Հյուր',
},
location: {
allRegions: 'Բոլոր տարածաշրջանները',

View File

@@ -161,7 +161,7 @@ export const ru: Translations = {
addToCart: 'В корзину',
loadingMore: 'Загрузка...',
allLoaded: 'Все товары загружены',
emptyTitle: 'Упс! Здесь пока пусто',
emptyTitle: 'Здесь пока пусто',
emptyDesc: 'В этой категории ещё нет товаров, но скоро они появятся',
goHome: 'На главную',
loading: 'Загрузка товаров...',
@@ -339,7 +339,7 @@ export const ru: Translations = {
subcategories: {
loading: 'Загрузка подкатегорий...',
retry: 'Попробовать снова',
emptyTitle: 'Упс! Подкатегорий пока нет',
emptyTitle: 'Подкатегорий пока нет',
emptyDesc: 'В этом разделе ещё нет подкатегорий, но скоро они появятся',
goHome: 'На главную',
itemsInCategory: 'Товары в этой категории',
@@ -1086,6 +1086,17 @@ export const ru: Translations = {
remove: 'Удалить',
errorTitle: 'Что-то пошло не так',
errorDescription: 'Не удалось загрузить данные. Попробуйте ещё раз.',
ratingLabel: 'Рейтинг {{value}}',
discountLabel: 'Скидка {{value}}%',
slideLabel: 'Слайд {{value}}',
slidesLabel: 'Слайды',
previousProducts: 'Предыдущие товары',
nextProducts: 'Следующие товары',
closeDialog: 'Закрыть диалог',
dismiss: 'Скрыть',
qrCode: 'QR-код',
bankCardPayment: 'Оплата банковской картой',
guest: 'Гость',
},
location: {
allRegions: 'Все регионы',

View File

@@ -1085,6 +1085,17 @@ export interface Translations {
remove: string;
errorTitle: string;
errorDescription: string;
ratingLabel: string;
discountLabel: string;
slideLabel: string;
slidesLabel: string;
previousProducts: string;
nextProducts: string;
closeDialog: string;
dismiss: string;
qrCode: string;
bankCardPayment: string;
guest: string;
};
location: {
allRegions: string;