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.
458 lines
24 KiB
TypeScript
458 lines
24 KiB
TypeScript
import { Translations } from './translations';
|
||
|
||
export const ru: Translations = {
|
||
header: {
|
||
home: 'Главная',
|
||
search: 'Поиск',
|
||
about: 'О нас',
|
||
contacts: 'Контакты',
|
||
searchPlaceholder: 'Искать...',
|
||
catalog: 'Каталог',
|
||
wishlist: 'Избранное',
|
||
compare: 'Сравнение',
|
||
openMenu: 'Открыть меню',
|
||
closeMenu: 'Закрыть меню',
|
||
},
|
||
footer: {
|
||
description: 'Современный маркетплейс для комфортных покупок',
|
||
company: 'Компания',
|
||
aboutUs: 'О нас',
|
||
contacts: 'Контакты',
|
||
requisites: 'Реквизиты',
|
||
support: 'Поддержка',
|
||
faq: 'FAQ',
|
||
delivery: 'Доставка',
|
||
guarantee: 'Гарантия',
|
||
legal: 'Правовая информация',
|
||
offer: 'Оферта',
|
||
privacy: 'Конфиденциальность',
|
||
returns: 'Возврат',
|
||
info: 'Информация',
|
||
aboutCompany: 'О компании',
|
||
documents: 'Документы',
|
||
paymentRules: 'Правила оплаты',
|
||
returnPolicy: 'Политика возврата',
|
||
publicOffer: 'Публичная оферта',
|
||
help: 'Помощь',
|
||
payment: 'Оплата',
|
||
allRightsReserved: 'Все права защищены.',
|
||
},
|
||
home: {
|
||
welcomeTo: 'Добро пожаловать в {{brand}}',
|
||
subtitle: 'Найдите всё, что нужно, в одном месте',
|
||
startSearch: 'Начать поиск',
|
||
loading: 'Загружаем категории...',
|
||
errorTitle: 'Что-то пошло не так',
|
||
retry: 'Попробовать снова',
|
||
categoriesTitle: 'Категории товаров',
|
||
categoriesSubtitle: 'Выберите интересующую категорию',
|
||
categoriesEmpty: 'Категории скоро появятся',
|
||
categoriesEmptyDesc: 'Мы работаем над наполнением каталога',
|
||
dexarHeroTitle: 'Здесь ты найдёшь всё',
|
||
dexarHeroSubtitle: 'Тысячи товаров в одном месте',
|
||
dexarHeroTagline: 'просто и удобно',
|
||
goToCatalog: 'Перейти в каталог',
|
||
findProduct: 'Найти товар',
|
||
loadingDexar: 'Загрузка категорий...',
|
||
catalogTitle: 'Каталог товаров',
|
||
emptyCategoriesDexar: 'Категории пока отсутствуют',
|
||
categoriesSoonDexar: 'Скоро здесь появятся категории товаров',
|
||
itemsCount: '{{count}} товаров',
|
||
},
|
||
cart: {
|
||
title: 'Корзина',
|
||
clear: 'Очистить',
|
||
empty: 'Корзина пуста',
|
||
emptyDesc: 'Добавьте товары, чтобы начать покупки',
|
||
goShopping: 'Перейти к покупкам',
|
||
total: 'Итого',
|
||
items: 'Товары',
|
||
deliveryLabel: 'Доставка',
|
||
deliveryMethod: 'Способ доставки',
|
||
selectDelivery: 'Выберите способ доставки',
|
||
deliveryPlace: 'Место',
|
||
deliveryTime: 'Срок доставки',
|
||
digitalDelivery: 'Цифровая доставка',
|
||
deliveryRequired: 'Выберите доставку для всех товаров с доставкой перед оформлением заказа.',
|
||
toPay: 'К оплате',
|
||
agreeWith: 'Я согласен с',
|
||
publicOffer: 'публичной офертой',
|
||
returnPolicy: 'политикой возврата',
|
||
guaranteeTerms: 'условиями гарантии',
|
||
privacyPolicy: 'политикой конфиденциальности',
|
||
and: 'и',
|
||
checkout: 'Оформить заказ',
|
||
payViaQr: 'Оплатить через QR',
|
||
payViaCard: 'Оплатить картой',
|
||
close: 'Закрыть',
|
||
creatingPayment: 'Создание платежа...',
|
||
waitFewSeconds: 'Подождите несколько секунд',
|
||
scanQr: 'Сканируйте QR-код для оплаты',
|
||
amountToPay: 'Сумма к оплате:',
|
||
waitingPayment: 'Ожидание оплаты...',
|
||
copied: '✓ Скопировано',
|
||
copyLink: 'Скопировать ссылку',
|
||
openNewTab: 'Открыть в новой вкладке',
|
||
paymentSuccess: 'Поздравляем! Оплата прошла успешно!',
|
||
paymentSuccessDesc: 'Введите ваши контактные данные, и мы отправим вам покупку в течение нескольких минут',
|
||
sending: 'Отправка...',
|
||
send: 'Отправить',
|
||
paymentError: 'Не удалось создать платеж',
|
||
paymentErrorDesc: 'Сейчас не получилось подготовить QR-код для оплаты. Попробуйте еще раз через минуту.',
|
||
retryPayment: 'Попробовать снова',
|
||
paymentTimeout: 'Время ожидания истекло',
|
||
paymentTimeoutDesc: 'Мы не получили подтверждение оплаты в течение 3 минут.',
|
||
autoClose: 'Окно закроется автоматически...',
|
||
confirmClear: 'Вы уверены, что хотите очистить корзину?',
|
||
removeItem: 'Удалить товар',
|
||
paymentQrAlt: 'QR-код для оплаты',
|
||
acceptTerms: 'Пожалуйста, примите условия оферты, политику возврата и возврата для подтверждения оформления заказа.',
|
||
copyError: 'Ошибка копирования:',
|
||
emailSuccess: 'Email успешно отправлен! Проверьте свою почту.',
|
||
emailError: 'Произошла ошибка при отправке email. Пожалуйста, попробуйте снова.',
|
||
phoneRequired: 'Номер телефона обязателен',
|
||
phoneMoreDigits: 'Введите ещё {{count}} цифр',
|
||
phoneTooMany: 'Слишком много цифр',
|
||
emailRequired: 'Email обязателен',
|
||
emailTooShort: 'Email слишком короткий (минимум 5 символов)',
|
||
emailTooLong: 'Email слишком длинный (максимум 100 символов)',
|
||
emailNeedsAt: 'Email должен содержать @',
|
||
emailNeedsDomain: 'Email должен содержать домен (.com, .ru и т.д.)',
|
||
emailInvalid: 'Некорректный формат email',
|
||
loginRequired: 'Войдите для оформления',
|
||
loginRequiredDesc: 'Для оформления заказа войдите через Telegram',
|
||
loginWithTelegram: 'Войти через Telegram',
|
||
orScanQr: 'Или отсканируйте QR-код',
|
||
},
|
||
search: {
|
||
title: 'Поиск товаров',
|
||
placeholder: 'Введите название товара...',
|
||
resultsCount: 'Найдено товаров:',
|
||
searching: 'Поиск...',
|
||
retry: 'Попробовать снова',
|
||
noResults: 'Ничего не найдено',
|
||
noResultsFor: 'По запросу "{{query}}" товары не найдены',
|
||
noResultsHint: 'Попробуйте изменить запрос или используйте другие ключевые слова',
|
||
addToCart: 'В корзину',
|
||
loadingMore: 'Загрузка...',
|
||
allLoaded: 'Все результаты загружены',
|
||
emptyState: 'Введите запрос для поиска товаров',
|
||
minLength: 'Введите минимум {{count}} символа для поиска',
|
||
of: 'из',
|
||
},
|
||
category: {
|
||
retry: 'Попробовать снова',
|
||
addToCart: 'В корзину',
|
||
loadingMore: 'Загрузка...',
|
||
allLoaded: 'Все товары загружены',
|
||
emptyTitle: 'Упс! Здесь пока пусто',
|
||
emptyDesc: 'В этой категории ещё нет товаров, но скоро они появятся',
|
||
goHome: 'На главную',
|
||
loading: 'Загрузка товаров...',
|
||
},
|
||
catalog: {
|
||
title: 'Каталог',
|
||
breadcrumb: 'Навигация по каталогу',
|
||
allCategories: 'Все категории',
|
||
products: 'Товары',
|
||
loading: 'Загрузка каталога...',
|
||
loadingProducts: 'Загрузка товаров...',
|
||
errorTitle: 'Каталог недоступен',
|
||
error: 'Не удалось загрузить каталог. Попробуйте позже.',
|
||
retry: 'Попробовать снова',
|
||
categoryHint: 'Выберите категорию, чтобы продолжить',
|
||
productHint: 'Товары в выбранной категории',
|
||
emptyTitle: 'Здесь пока пусто',
|
||
emptyCategories: 'В этом разделе пока нет дочерних категорий.',
|
||
emptyProducts: 'В этой категории пока нет товаров.',
|
||
addToCart: 'В корзину',
|
||
categoriesCount: '{{count}} категорий',
|
||
productsCount: '{{count}} товаров',
|
||
entriesCount: '{{count}} позиций',
|
||
categoryBannerPlaceholder: 'Баннер категории подготовлен для медиа и описания из backend.',
|
||
navigationPlaceholder: 'Макет навигации подготовлен для конфигурации из backend/bootstrap.',
|
||
removeSavedSearch: 'Удалить сохраненный поиск',
|
||
resetFilters: 'Сбросить',
|
||
filtersTitle: 'Фильтры',
|
||
from: 'От',
|
||
to: 'До',
|
||
minValue: 'От {{value}}',
|
||
maxValue: 'До {{value}}',
|
||
enabled: 'Включено',
|
||
searchPlaceholder: 'Поиск товаров, брендов и категорий',
|
||
searchSubmit: 'Найти',
|
||
clearSearch: 'Очистить',
|
||
suggestionsTitle: 'Подсказки',
|
||
popularSearchesTitle: 'Популярные запросы',
|
||
recentSearchesTitle: 'Недавние запросы',
|
||
searchHistoryTitle: 'История поиска',
|
||
clearHistory: 'Очистить',
|
||
searchNoResultsHint: 'Ничего не найдено. Попробуйте более общий запрос.',
|
||
searchProductsFound: 'Найдено товаров: {{total}}',
|
||
searchResultsSummary: '{{total}} результатов по запросу "{{query}}"',
|
||
sortBy: 'Сортировать по',
|
||
sortRelevance: 'Рекомендуемые',
|
||
sortLatest: 'Новизне',
|
||
sortPriceAsc: 'Цене: по возрастанию',
|
||
sortPriceDesc: 'Цене: по убыванию',
|
||
sortRating: 'Рейтингу',
|
||
sortPopular: 'Популярности',
|
||
sortDiscount: 'Скидке',
|
||
layoutGrid: 'Сетка',
|
||
layoutLargeGrid: 'Крупная сетка',
|
||
layoutCompactGrid: 'Компактная сетка',
|
||
layoutList: 'Список',
|
||
noResults: 'Нет результатов',
|
||
itemsCount: '{{count}} товаров',
|
||
emptyResultsTitle: 'Результаты не найдены',
|
||
emptyResultsDescription: 'Попробуйте изменить фильтры, сортировку или поисковый запрос.',
|
||
previousPage: 'Назад',
|
||
nextPage: 'Вперед',
|
||
pageOf: 'Страница {{page}} / {{total}}',
|
||
emptyCategoryTitle: 'В этой категории пока нет товаров',
|
||
emptyCategoryMessage: 'Попробуйте перейти в родительские категории или вернуться в общий каталог.',
|
||
browseCategories: 'Смотреть категории',
|
||
noFilterMatchTitle: 'Нет товаров, соответствующих выбранным фильтрам.',
|
||
noFilterMatchMessage: 'Попробуйте расширить диапазон цены, атрибуты или бренды.',
|
||
clearFilters: 'Очистить фильтры',
|
||
openFilters: 'Открыть фильтры',
|
||
applyFilters: 'Применить',
|
||
close: 'Закрыть',
|
||
filtersDrawerAria: 'Панель фильтров',
|
||
sortSheetAria: 'Параметры сортировки',
|
||
mobileToolbarAria: 'Мобильная панель каталога',
|
||
gridCycle: 'Сетка',
|
||
filtersPanelAria: 'Фильтры каталога',
|
||
filterPrice: 'Цена',
|
||
filterAvailability: 'Наличие',
|
||
filterInStock: 'В наличии',
|
||
filterLowStock: 'Мало в наличии',
|
||
filterOutOfStock: 'Нет в наличии',
|
||
filterRating: 'Рейтинг',
|
||
filterStars: '{{count}} звезд',
|
||
filterBrand: 'Бренд',
|
||
filterCategory: 'Категория',
|
||
filterCategoryValue: 'Категория {{value}}',
|
||
filterSubcategory: 'Подкатегория',
|
||
filterDiscount: 'Скидка',
|
||
filterNew: 'Новинки',
|
||
filterColor: 'Цвет',
|
||
filterSize: 'Размер',
|
||
filterAttributes: 'Атрибуты',
|
||
},
|
||
productDetails: {
|
||
loading: 'Загрузка товара...',
|
||
errorTitle: 'Товар недоступен',
|
||
retry: 'Попробовать снова',
|
||
missingTitle: 'Товар не найден',
|
||
missingDescription: 'Этот товар не существует или больше недоступен.',
|
||
backToCatalog: 'Вернуться в каталог',
|
||
tabsAria: 'Вкладки товара',
|
||
mediaAria: 'Медиа товара',
|
||
ratingStarsAria: 'Рейтинг в звездах',
|
||
selectRatingAria: 'Выберите оценку',
|
||
reviewsEmpty: 'Пока нет отзывов.',
|
||
questionsEmpty: 'Пока нет вопросов.',
|
||
askQuestion: 'Задать вопрос',
|
||
hideQuestionForm: 'Скрыть форму вопроса',
|
||
questionFormTitle: 'Задать вопрос',
|
||
questionFormPlaceholder: 'Спросите о размере, доставке, совместимости или использовании',
|
||
questionFormAnonymous: 'Задать анонимно',
|
||
submitQuestion: 'Отправить вопрос',
|
||
reviewFormTitle: 'Оставить отзыв',
|
||
reviewRatingLabel: 'Оценка',
|
||
reviewTitleLabel: 'Заголовок',
|
||
reviewTitlePlaceholder: 'Короткий заголовок',
|
||
reviewTextLabel: 'Отзыв',
|
||
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: 'Условия гарантии определяются продавцом и местным законодательством.',
|
||
warrantyItem2: 'Возможность возврата зависит от состояния и категории товара.',
|
||
warrantyItem3: 'Подробная инструкция по возврату доступна после покупки.',
|
||
verifiedPurchase: 'Подтвержденная покупка',
|
||
officialSeller: 'Официальный продавец',
|
||
acceptedAnswer: 'Принятый ответ',
|
||
like: 'Нравится',
|
||
dislike: 'Не нравится',
|
||
reviewsCountLabel: '{{count}} отзывов',
|
||
previous: 'Назад',
|
||
next: 'Вперед',
|
||
pageOf: 'Страница {{page}} / {{total}}',
|
||
},
|
||
subcategories: {
|
||
loading: 'Загрузка подкатегорий...',
|
||
retry: 'Попробовать снова',
|
||
emptyTitle: 'Упс! Подкатегорий пока нет',
|
||
emptyDesc: 'В этом разделе ещё нет подкатегорий, но скоро они появятся',
|
||
goHome: 'На главную',
|
||
itemsInCategory: 'Товары в этой категории',
|
||
childrenCount: '{{count}} категорий',
|
||
productsCount: '{{count}} товаров',
|
||
includesProducts: 'Есть товары',
|
||
},
|
||
itemDetail: {
|
||
loading: 'Загрузка...',
|
||
loadingDexar: 'Загрузка товара...',
|
||
back: 'Вернуться',
|
||
backHome: 'Вернуться на главную',
|
||
noImage: 'Нет изображения',
|
||
stock: 'Наличие:',
|
||
inStock: 'В наличии',
|
||
lowStock: 'Осталось немного',
|
||
lastItems: 'Последние штуки',
|
||
mediumStock: 'Заканчивается',
|
||
addToCart: 'Добавить в корзину',
|
||
description: 'Описание',
|
||
specifications: 'Характеристики',
|
||
reviews: 'Отзывы',
|
||
yourReview: 'Ваш отзыв',
|
||
leaveReview: 'Оставить отзыв',
|
||
rating: 'Оценка:',
|
||
reviewPlaceholder: 'Поделитесь своими впечатлениями о товаре...',
|
||
reviewPlaceholderDexar: 'Поделитесь впечатлениями о товаре...',
|
||
anonymous: 'Анонимно',
|
||
submitting: 'Отправка...',
|
||
submit: 'Отправить',
|
||
reviewSuccess: 'Спасибо за ваш отзыв!',
|
||
reviewError: 'Ошибка отправки. Попробуйте позже.',
|
||
defaultUser: 'Пользователь',
|
||
defaultUserDexar: 'Аноним',
|
||
noReviews: 'Пока нет отзывов. Станьте первым!',
|
||
qna: 'Вопросы и ответы',
|
||
photo: 'Фото',
|
||
reviewsCount: 'отзывов',
|
||
today: 'Сегодня',
|
||
yesterday: 'Вчера',
|
||
daysAgo: 'дн. назад',
|
||
weeksAgo: 'нед. назад',
|
||
colour: 'Цвет',
|
||
size: 'Размер',
|
||
relatedProducts: 'Похожие товары',
|
||
},
|
||
app: {
|
||
connecting: 'Подключение к серверу...',
|
||
serverUnavailable: 'Сервер недоступен',
|
||
serverError: 'Не удалось подключиться к серверу. Проверьте подключение к интернету.',
|
||
retryConnection: 'Повторить попытку',
|
||
pageTitle: 'Маркетплейс товаров и услуг',
|
||
},
|
||
platform: {
|
||
loadingPage: 'Загрузка страницы платформы...',
|
||
emptyConfig: 'Конфигурация страницы не найдена.',
|
||
},
|
||
backoffice: {
|
||
title: 'Песочница Backoffice',
|
||
subtitle: 'Домен управления бизнес-данными (mock для платформенного фундамента).',
|
||
loading: 'Загрузка данных backoffice...',
|
||
products: 'Товары',
|
||
categories: 'Категории',
|
||
otherDomains: 'Другие домены',
|
||
sku: 'SKU',
|
||
titleColumn: 'Название',
|
||
price: 'Цена',
|
||
status: 'Статус',
|
||
itemsCount: 'шт.',
|
||
orders: 'Заказы',
|
||
customers: 'Клиенты',
|
||
inventory: 'Склад',
|
||
media: 'Медиа',
|
||
settings: 'Настройки',
|
||
notAvailable: 'н/д',
|
||
},
|
||
builder: {
|
||
title: 'Песочница Builder',
|
||
subtitle: 'Поверхность редактирования только конфигурации.',
|
||
branding: 'Брендинг',
|
||
brandName: 'Название бренда',
|
||
featureFlags: 'Фичи-флаги',
|
||
},
|
||
widgets: {
|
||
unavailable: 'Виджет недоступен',
|
||
},
|
||
carousel: {
|
||
loading: 'Загрузка товаров...',
|
||
addToCart: 'Добавить в корзину',
|
||
},
|
||
common: {
|
||
retry: 'Попробовать снова',
|
||
loading: 'Загрузка...',
|
||
},
|
||
location: {
|
||
allRegions: 'Все регионы',
|
||
chooseRegion: 'Выберите регион',
|
||
detectAuto: 'Определить автоматически',
|
||
},
|
||
auth: {
|
||
loginRequired: 'Требуется авторизация',
|
||
loginDescription: 'Для оформления заказа войдите через Telegram',
|
||
checking: 'Проверка...',
|
||
loginWithTelegram: 'Войти через Telegram',
|
||
orScanQr: 'Или отсканируйте QR-код',
|
||
loginNote: 'После входа вы будете перенаправлены обратно',
|
||
qrExpired: 'QR-код устарел. Нажмите, чтобы обновить',
|
||
qrError: 'Не удалось создать сессию входа. Нажмите, чтобы повторить',
|
||
},
|
||
ux: {
|
||
items: 'товаров',
|
||
wishlistTitle: 'Избранное',
|
||
wishlistEmptyTitle: 'Избранное пока пусто',
|
||
wishlistEmptyDescription: 'Сохраняйте товары, чтобы быстро вернуться к ним позже.',
|
||
clearWishlist: 'Очистить избранное',
|
||
wishlistCleared: 'Избранное очищено',
|
||
compareTitle: 'Сравнение товаров',
|
||
compareEmptyTitle: 'Нет товаров для сравнения',
|
||
compareEmptyDescription: 'Добавьте товары из каталога, чтобы сравнить характеристики и цену.',
|
||
clearCompare: 'Очистить сравнение',
|
||
hideIdentical: 'Скрыть одинаковые значения',
|
||
highlightDifferences: 'Подсвечивать различия',
|
||
clearRecentlyViewed: 'Очистить просмотренные',
|
||
recentlyViewedEmpty: 'Вы пока не просматривали товары.',
|
||
saveSearch: 'Сохранить поиск',
|
||
goToCatalog: 'Перейти в каталог',
|
||
wishlistAdded: 'Добавлено в избранное',
|
||
wishlistRemoved: 'Удалено из избранного',
|
||
compareAdded: 'Добавлено в сравнение',
|
||
compareRemoved: 'Удалено из сравнения',
|
||
compareLimitReached: 'Достигнут лимит сравнения ({{maxItems}})',
|
||
productShared: 'Товар отправлен',
|
||
productLinkCopied: 'Ссылка на товар скопирована',
|
||
sharingUnsupported: 'На этом устройстве нет поддержки шаринга',
|
||
addedToCart: 'Добавлено в корзину',
|
||
enterQueryBeforeSave: 'Введите поисковый запрос перед сохранением',
|
||
savedSearchNamed: 'Сохраненный поиск: {{name}}',
|
||
recentlyViewedTitle: 'Недавно просмотренные',
|
||
compareAttribute: 'Атрибут',
|
||
comparePrice: 'Цена',
|
||
compareRating: 'Рейтинг',
|
||
compareStock: 'Наличие',
|
||
compareDiscount: 'Скидка',
|
||
compareColor: 'Цвет',
|
||
compareSize: 'Размер',
|
||
compareUnknown: 'неизвестно',
|
||
},
|
||
};
|