Files
marketplaces/src/app/i18n/ru.ts
sdarbinyan 0b08802996 feat: real back-in-stock subscription for Notify Me (API + localStorage fallback)
notifyMe() just called toggleWishlist() - no actual subscription
mechanism existed. Now calls a new subscribeToRestock() API method
(POST /items/{id}/notify-me, not yet built server-side - see
BACKEND-API-REFERENCE.md §12.5) and falls back to a local-only record
in localStorage on failure, so the request isn't silently dropped
while the backend catches up.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-13 09:30:53 +04:00

2132 lines
134 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { Translations } from './translations';
export const ru: Translations = {
header: {
home: 'Главная',
search: 'Поиск',
about: 'О нас',
contacts: 'Контакты',
searchPlaceholder: 'Искать...',
catalog: 'Каталог',
wishlist: 'Избранное',
compare: 'Сравнение',
openMenu: 'Открыть меню',
closeMenu: 'Закрыть меню',
login: 'Войти',
logout: 'Выйти',
},
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: 'Удалить товар',
increaseQuantity: 'Увеличить количество',
decreaseQuantity: 'Уменьшить количество',
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',
telegramIdMissing: 'Не удалось определить ваш Telegram-аккаунт, поэтому контактные данные не сохранены. Оплата прошла успешно.',
paymentDescriptionFallback: 'Покупка на Маркетплейсе',
emailPlaceholder: 'you@example.com',
phonePlaceholder: '+7 (___) ___-__-__',
loginRequired: 'Войдите для оформления',
loginRequiredDesc: 'Для оформления заказа войдите через Telegram',
loginWithTelegram: 'Войти через Telegram',
orScanQr: 'Или отсканируйте QR-код',
},
search: {
title: 'Поиск товаров',
placeholder: 'Введите название товара...',
searchBarAria: 'Поисковая строка',
resultsCount: 'Найдено товаров:',
searching: 'Поиск...',
retry: 'Попробовать снова',
noResults: 'Ничего не найдено',
noResultsFor: 'По запросу "{{query}}" товары не найдены',
noResultsHint: 'Попробуйте изменить запрос или используйте другие ключевые слова',
emptyResultsAria: 'Пустые результаты поиска',
popularCategories: 'Популярные категории',
recommendedProducts: 'Рекомендуемые товары',
aiSuggestionHint: 'AI-подсказка (в будущем)',
suggestionType: {
product: 'Товар',
category: 'Категория',
brand: 'Бренд',
collection: 'Подборка',
seller: 'Продавец',
'static-page': 'Страница',
ai: 'AI',
},
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}}"',
loadMore: 'Показать еще',
sortBy: 'Сортировать по',
sortRelevance: 'Рекомендуемые',
sortLatest: 'Новизне',
sortPriceAsc: 'Цене: по возрастанию',
sortPriceDesc: 'Цене: по убыванию',
sortRating: 'Рейтингу',
sortPopular: 'Популярности',
sortDiscount: 'Скидке',
layoutGrid: 'Сетка',
layoutLargeGrid: 'Крупная сетка',
layoutCompactGrid: 'Компактная сетка',
layoutGrid2: '2 колонки',
layoutGrid3: '3 колонки',
layoutGrid4: '4 колонки',
layoutCompact: 'Компактно',
layoutList: 'Список',
noResults: 'Нет результатов',
itemsCount: '{{count}} товаров',
emptyResultsTitle: 'Результаты не найдены',
emptyResultsDescription: 'Попробуйте изменить фильтры, сортировку или поисковый запрос.',
previousPage: 'Назад',
nextPage: 'Вперед',
pageOf: 'Страница {{page}} / {{total}}',
emptyCategoryTitle: 'В этой категории пока нет товаров',
emptyCategoryMessage: 'Попробуйте перейти в родительские категории или вернуться в общий каталог.',
goToParentCategory: 'Перейти в родительскую категорию',
browseCategories: 'Смотреть категории',
offlineTitle: 'Нет подключения',
offlineMessage: 'Подключитесь к сети, чтобы продолжить просмотр каталога.',
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: 'Атрибуты',
favorite: 'В избранное',
compare: 'Сравнить',
share: 'Поделиться',
quickView: 'Быстрый просмотр',
stockHigh: 'В наличии',
stockMedium: 'Ограниченно',
stockLow: 'Почти распродано',
stockOut: 'Нет в наличии',
},
productDetails: {
loading: 'Загрузка товара...',
errorTitle: 'Товар недоступен',
retry: 'Попробовать снова',
missingTitle: 'Товар не найден',
missingDescription: 'Этот товар не существует или больше недоступен.',
backToCatalog: 'Вернуться в каталог',
tabsAria: 'Вкладки товара',
mediaAria: 'Медиа товара',
ratingStarsAria: 'Рейтинг в звездах',
selectRatingAria: 'Выберите оценку',
starsLabel: 'звёзд',
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: 'Сообщить о наличии',
notifyMeConfirmed: 'Мы сообщим вам, когда товар снова появится в наличии.',
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: 'Маркетплейс товаров и услуг',
skipToContent: 'Перейти к основному содержимому',
},
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: 'Конструктор маркетплейса',
subtitle: 'Соберите свой маркетплейс шаг за шагом.',
general: 'Общие',
branding: 'Брендинг',
theme: 'Тема',
header: 'Хедер',
footer: 'Футер',
homepage: 'Главная страница',
widgets: 'Виджеты',
staticPages: 'Статические страницы',
marketplaceFeatures: 'Функции маркетплейса',
preview: 'Превью',
brandName: 'Название бренда',
marketplaceName: 'Название маркетплейса',
domain: 'Домен',
descriptionLabel: 'Описание',
defaultLanguage: 'Язык по умолчанию',
supportedLanguages: 'Поддерживаемые языки',
logo: 'Логотип',
smallLogo: 'Малый логотип',
favicon: 'Favicon',
socialImage: 'Изображение для соцсетей',
gallery: 'Галерея',
addGalleryImage: 'Добавить изображение',
headerLayout: 'Расположение шапки',
headerLayoutDefault: 'По умолчанию',
headerLayoutCentered: 'По центру',
headerSticky: 'Липкая шапка',
marketplaceTitle: 'Заголовок маркетплейса',
primaryColor: 'Основной цвет',
secondaryColor: 'Вторичный цвет',
backgroundColor: 'Фон',
surfaceColor: 'Поверхность',
textColor: 'Текст',
successColor: 'Success',
warningColor: 'Warning',
dangerColor: 'Danger',
showLogo: 'Логотип',
showSearch: 'Поиск',
showCategories: 'Категории',
showLanguages: 'Языки',
showCart: 'Корзина',
showProfile: 'Профиль',
showWishlist: 'Избранное',
showCompare: 'Сравнение',
showRegion: 'Регион',
companyName: 'Информация о компании',
address: 'Адрес',
phone: 'Телефон',
email: 'Email',
copyright: 'Копирайт',
paymentIcons: 'Иконки оплаты',
socialLinks: 'Социальные ссылки',
footerLogo: 'Логотип в футере',
addPaymentIcon: 'Добавить иконку оплаты',
removePaymentIcon: 'Удалить',
iconAltLabel: 'Подпись иконки',
addSocialLink: 'Добавить соцсеть',
removeSocialLink: 'Удалить',
socialLinkLabel: 'Платформа',
socialLinkUrl: 'URL',
invalidUrl: 'Введите корректный URL, начинающийся с http:// или https://.',
createPage: 'Создать страницу',
deletePage: 'Удалить страницу',
pageId: 'ID страницы',
slug: 'Slug',
iconLabel: 'Иконка',
showInFooter: 'Показывать в футере',
showInHeader: 'Показывать в хедере',
showInSitemap: 'Показывать в sitemap',
requiresAuthentication: 'Требует авторизацию',
footerGroup: 'Группа футера',
orderLabel: 'Порядок',
translationTitle: 'Заголовок перевода',
htmlPreview: 'HTML',
seoSection: 'SEO',
seoTitle: 'SEO заголовок',
seoDescription: 'SEO описание',
seoKeywords: 'Ключевые слова',
seoCanonical: 'Canonical URL',
seoOgTitle: 'OG заголовок',
seoOgDescription: 'OG описание',
seoOgImage: 'OG изображение',
visible: 'Видимость',
layoutLabel: 'Layout',
columns: 'Колонки',
height: 'Высота',
overlay: 'Overlay',
autoplay: 'Autoplay',
cardsPerRow: 'Карточек в ряд',
filtersLabel: 'Фильтры',
showBadges: 'Показывать badges',
showRating: 'Показывать рейтинг',
showPrice: 'Показывать цену',
widgetJson: 'JSON виджета',
reviews: 'Отзывы',
questions: 'Вопросы',
comments: 'Комментарии',
recommendations: 'Рекомендации',
recentlyViewed: 'Недавно просмотренные',
searchSuggestions: 'Поисковые подсказки',
searchHistory: 'История поиска',
livePreview: 'Живое превью',
previewChangesTitle: 'Изменения с последней публикации',
previewNoIssues: 'Нет проблем валидации.',
previewNoChanges: 'Нет изменений с последней публикации.',
previewChangeField: 'Поле',
previewChangeBefore: 'До',
previewChangeAfter: 'После',
languagesTab: 'Языки',
addLanguage: 'Добавить язык',
removeLanguage: 'Удалить',
setDefaultLanguage: 'Сделать языком по умолчанию',
defaultLanguageLabel: 'По умолчанию',
navigationTab: 'Навигация',
navigationHeader: 'Навигация в шапке',
navigationFooter: 'Навигация в подвале',
navigationFooterGrouped: 'Навигация подвала сгруппирована по колонкам и пока недоступна для редактирования здесь — используйте вкладку "Подвал".',
addLink: 'Добавить ссылку',
insertPageLink: 'Вставить ссылку на страницу',
linkedToPage: 'Связано со страницей',
removeLink: 'Удалить',
linkLabel: 'Название',
linkUrl: 'URL',
exportBootstrap: 'Экспорт bootstrap',
importBootstrap: 'Импорт bootstrap',
exportedBootstrap: 'Экспортированный bootstrap',
importSource: 'Источник импорта',
importError: 'Импорт не удался. Некорректный JSON bootstrap.',
featureFlags: 'Фичи-флаги',
validationMissingLogo: 'В брендинге отсутствует логотип.',
validationNoLanguages: 'Не настроены языки.',
validationDefaultLocaleNotSupported: 'Язык по умолчанию отсутствует в списке поддерживаемых языков.',
validationInvalidUrl: 'Некорректный URL маркетплейса.',
validationDuplicateSlugs: 'Две или более статические страницы имеют одинаковый slug.',
validationEmptyHomepage: 'На главной странице нет секций.',
validationMissingWidget: 'В секции главной страницы есть виджет без типа.',
validationDuplicateNavLinks: 'Две или более ссылки в навигации шапки дублируются.',
validationInvalidColors: 'Один или несколько цветов темы указаны некорректно.',
validationMissingTranslations: 'Часть контента не переведена на один из поддерживаемых языков.',
validationInvalidLayouts: 'Один или несколько макетов ссылаются на неизвестный тип раскладки.',
validationInvalidJson: 'Конфигурация не является допустимым JSON.',
validationInvalidCss: 'Статическая страница содержит недопустимый CSS.',
validationDuplicateRoutes: 'Две или более страницы используют один и тот же маршрут.',
validationInvalidWidgetConfig: 'У виджета отсутствует обязательное поле (id, type, version или props).',
validationInvalidWidgetSettings: 'Настройки виджета не соответствуют ожидаемым для его типа (поле отсутствует или неверного типа).',
validationInvalidContactEmail: 'Контактный email компании указан некорректно.',
validationInvalidSocialLinkUrl: 'У одной или нескольких социальных ссылок в футере некорректный URL.',
validationIncompletePaymentIcon: 'У иконки оплаты в футере отсутствует изображение или альтернативный текст.',
undo: 'Отменить',
redo: 'Повторить',
statusDraft: 'Черновик',
statusPublished: 'Опубликовано',
unsavedChanges: 'Есть несохранённые изменения',
save: 'Сохранить',
publish: 'Опубликовать',
confirmLeaveUnsaved: 'Есть несохранённые изменения. Всё равно уйти?',
confirmPublish: 'Это сразу применит текущие изменения на витрине магазина вместо того, что покупатели видят сейчас. Продолжить?',
confirmRemoveLanguage: 'Это удалит язык и весь переведённый на него контент. Покупатели, использующие этот язык, увидят язык по умолчанию. Продолжить?',
promptLinkUrl: 'URL',
promptImageUrl: 'URL изображения',
promptEmbedUrl: 'URL для встраивания',
htmlEditorInvalidHtml: 'В этом HTML есть незакрытый или несовпадающий тег. Исправьте перед возвратом к визуальному редактору.',
htmlEditorCode: 'Код',
htmlEditorPreview: 'Предпросмотр',
lastSaved: 'Последнее сохранение',
draftRestored: 'Локальный черновик восстановлен из предыдущей сессии.',
dismiss: 'Скрыть',
resetDraft: 'Сбросить черновик',
resetSection: 'Сбросить секцию',
confirmResetDraft: 'Это отменит все неопубликованные изменения и восстановит последнюю опубликованную конфигурацию. Продолжить?',
confirmResetSection: 'Это отменит неопубликованные изменения только в этой секции. Продолжить?',
marketplaceNameDesc: 'Название, которое видят покупатели на витрине и во вкладке браузера.',
domainDesc: 'Домен, по которому покупатели заходят на маркетплейс. Изменение поля не переносит DNS.',
descriptionFieldDesc: 'Краткое описание для поисковых систем и превью в соцсетях.',
defaultLanguageDesc: 'Язык, который показывается, если у покупателя нет сохранённого предпочтения.',
supportedLanguagesDesc: 'Коды языков через запятую, между которыми может переключаться покупатель (например, en, ru, hy).',
logoDesc: 'URL полного логотипа, отображается в шапке на десктопе.',
smallLogoDesc: 'URL компактного логотипа для ограниченного пространства (например, мобильная шапка).',
faviconDesc: 'URL иконки вкладки браузера. Должен быть небольшим квадратным изображением.',
socialImageDesc: 'Изображение по умолчанию при публикации маркетплейса в соцсетях (Open Graph).',
galleryDesc: 'Дополнительные брендовые изображения для будущего использования в витрине.',
headerLayoutDesc: 'Как расположен контент шапки: по умолчанию (логотип слева, навигация разнесена) или по центру.',
headerStickyDesc: 'Закреплять шапку вверху экрана при прокрутке.',
marketplaceTitleDesc: 'Заголовок страницы для поисковых систем и вкладок браузера.',
primaryColorDesc: 'Основной цвет бренда для главных кнопок и акцентов. Должен быть корректным hex-цветом.',
secondaryColorDesc: 'Дополнительный цвет бренда для второстепенных элементов. Должен быть корректным hex-цветом.',
backgroundColorDesc: 'Цвет фона страницы по умолчанию. Должен быть корректным hex-цветом.',
surfaceColorDesc: 'Цвет фона карточек и приподнятых поверхностей. Должен быть корректным hex-цветом.',
textColorDesc: 'Цвет основного текста. Должен быть корректным hex-цветом.',
successColorDesc: 'Цвет для сообщений об успехе и положительных состояний. Должен быть корректным hex-цветом.',
warningColorDesc: 'Цвет для предупреждающих сообщений. Должен быть корректным hex-цветом.',
dangerColorDesc: 'Цвет для ошибок и разрушительных действий. Должен быть корректным hex-цветом.',
themeModeLabel: 'Цветовой режим',
themeModeDesc: 'Определяет, отображается ли витрина в светлой, тёмной теме или по системным настройкам покупателя.',
themeModeLight: 'Светлый',
themeModeLightDesc: 'Всегда использовать светлую тему.',
themeModeDark: 'Тёмный',
themeModeDarkDesc: 'Всегда использовать тёмную тему.',
themeModeSystem: 'Системный',
themeModeSystemDesc: 'Использовать системные/браузерные настройки цветовой темы устройства покупателя.',
siteLayoutLabel: 'Макет сайта',
siteLayoutDesc: 'Общий режим оформления страниц на витрине.',
siteLayoutDefault: 'По умолчанию',
siteLayoutDefaultDesc: 'Стандартный макет с верхней навигацией.',
siteLayoutSidebarLeft: 'Боковая панель (слева)',
siteLayoutSidebarLeftDesc: 'Добавляет левую боковую панель, обычно для навигации по категориям.',
siteLayoutCarouselHome: 'Карусель на главной',
siteLayoutCarouselHomeDesc: 'Главная страница начинается с полноширинной карусели/hero-блока.',
siteLayoutMinimal: 'Минимальный',
siteLayoutMinimalDesc: 'Упрощённое оформление с минимумом элементов навигации.',
showLogoDesc: 'Показывать логотип маркетплейса в шапке.',
showSearchDesc: 'Показывать строку поиска в шапке.',
showCategoriesDesc: 'Показывать вход в меню категорий в шапке.',
showLanguagesDesc: 'Показывать переключатель языка в шапке.',
showCartDesc: 'Показывать иконку/ссылку корзины в шапке.',
showProfileDesc: 'Показывать вход в профиль/аккаунт в шапке.',
showWishlistDesc: 'Показывать вход в избранное в шапке.',
showCompareDesc: 'Показывать вход в сравнение товаров в шапке.',
showRegionDesc: 'Показывать выбор региона/страны в шапке.',
companyNameDesc: 'Юридическое название компании, показывается в футере и на статических страницах.',
addressDesc: 'Юридический/фактический адрес компании, показывается в футере.',
phoneDesc: 'Контактный телефон, показывается в футере.',
emailDesc: 'Контактный email, показывается в футере.',
copyrightDesc: 'Строка копирайта внизу каждой страницы.',
paymentIconsDesc: 'По одной иконке оплаты на строку (URL изображения и подпись), показываются в футере.',
socialLinksDesc: 'По одной социальной ссылке на строку (платформа и URL), показываются в футере.',
footerLogoDesc: 'Логотип, отображаемый в футере, если отличается от логотипа в шапке.',
iconAltLabelDesc: 'Альтернативный текст для иконки оплаты (для доступности).',
socialLinkUrlDesc: 'Полный URL профиля в соцсети, должен начинаться с http:// или https://.',
staticPagesFieldDesc: 'Статические страницы (о компании, условия, политика и т.д.), на которые ссылается футер.',
additionalPhones: 'Дополнительные номера телефонов',
additionalPhonesDesc: 'Добавьте номера, если поддерживаете клиентов в разных странах.',
addPhone: 'Добавить номер',
removePhone: 'Удалить номер',
additionalEmails: 'Дополнительные адреса email',
additionalEmailsDesc: 'Добавьте адреса для разных регионов или отделов.',
addEmail: 'Добавить email',
removeEmail: 'Удалить email',
footerColumns: 'Колонки подвала',
footerColumnsDesc: 'Группируйте ссылки по колонкам, как в настоящем подвале сайта. Перетаскивайте колонки и ссылки, чтобы изменить порядок.',
footerColumnTitlePlaceholder: 'Название колонки, напр. Компания',
footerLinkLabelPlaceholder: 'Текст ссылки',
footerLinkExistingPage: 'Существующая страница',
footerLinkCustomUrl: 'Свой URL',
addColumn: 'Добавить колонку',
removeColumn: 'Удалить колонку',
addColumnLink: 'Добавить ссылку',
removeColumnLink: 'Удалить ссылку',
sectionVisibleDesc: 'Показывать ли эту секцию главной страницы покупателям.',
layoutStrategyLabel: 'Стратегия раскладки',
layoutStrategyDesc: 'Как располагаются виджеты внутри этой секции.',
layoutStrategyStack: 'Стопка',
layoutStrategyStackDesc: 'Виджеты располагаются друг под другом вертикально.',
layoutStrategyGrid: 'Сетка',
layoutStrategyGridDesc: 'Виджеты располагаются в многоколоночной сетке.',
layoutStrategyHero: 'Hero',
layoutStrategyHeroDesc: 'Один крупный полноширинный промо-блок.',
layoutStrategyCarousel: 'Карусель',
layoutStrategyCarouselDesc: 'Виджеты прокручиваются горизонтально как карусель.',
layoutStrategySplit: 'Разделение',
layoutStrategySplitDesc: 'Контент делится на две колонки рядом друг с другом.',
sectionColumnsDesc: 'Количество колонок, если стратегия раскладки их поддерживает.',
widgetLayoutDesc: 'Название варианта раскладки в свободной форме, понятное этому виджету (например, "full-bleed", "boxed").',
widgetHeightDesc: 'Предпочтительная высота виджета (например, "480px" или "60vh").',
widgetOverlayDesc: 'Показывать тёмную подложку под текстом hero для читаемости.',
widgetAutoplayDesc: 'Автоматически прокручивать слайды hero без участия покупателя.',
heroLayoutFullBleed: 'На всю ширину (край в край)',
heroLayoutBoxed: 'В рамке (с отступами страницы)',
heroHeightCompact: 'Компактная',
heroHeightMedium: 'Средняя',
heroHeightTall: 'Высокая',
heroHeightFullScreen: 'На весь экран',
heroSlides: 'Слайды',
heroSlidesHint: 'Добавьте ещё слайды, чтобы получился слайд-шоу. Поля выше — это слайд 1. Автопрокрутка и точки появляются только при более чем одном слайде.',
heroSlideTitlePlaceholder: 'Заголовок слайда',
heroSlideSubtitlePlaceholder: 'Подзаголовок слайда',
addSlide: 'Добавить слайд',
removeSlide: 'Удалить слайд',
widgetColumnsDesc: 'Количество плиток категорий в ряду.',
widgetCardsPerRowDesc: 'Количество карточек товаров в ряду.',
widgetFiltersDesc: 'Показывать элементы управления фильтрами рядом с подборкой товаров.',
widgetShowBadgesDesc: 'Показывать бейджи, например "Новинка" или "Скидка", на карточках товаров.',
widgetShowRatingDesc: 'Показывать рейтинг звёздами на карточках товаров.',
widgetShowPriceDesc: 'Показывать цену на карточках товаров.',
widgetJsonDesc: 'Сырые свойства виджета в формате JSON. Используется, если для этого типа виджета нет отдельного редактора.',
widgetJsonInvalid: 'Некорректный JSON — сохранена последняя корректная версия.',
wishlistFeatureDesc: 'Разрешить покупателям сохранять товары в избранное.',
compareFeatureDesc: 'Разрешить покупателям сравнивать несколько товаров одновременно.',
reviewsFeatureDesc: 'Разрешить покупателям оставлять и читать отзывы о товарах.',
questionsFeatureDesc: 'Разрешить покупателям задавать вопросы о товарах и читать ответы.',
commentsFeatureDesc: 'Включить общие комментарии к контенту маркетплейса.',
recommendationsFeatureDesc: 'Показывать блоки рекомендованных товаров на витрине.',
recentlyViewedFeatureDesc: 'Показывать покупателям список "недавно просмотренные".',
searchSuggestionsDesc: 'Показывать живые подсказки поиска по мере ввода запроса.',
searchHistoryDesc: 'Запоминать и показывать недавние поисковые запросы покупателя.',
catalogNavigationModeLabel: 'Режим навигации каталога',
catalogNavigationModeDesc: 'Как покупатели перемещаются по категориям в каталоге.',
catalogNavDefault: 'По умолчанию',
catalogNavDefaultDesc: 'Стандартная навигация по категориям через хлебные крошки.',
catalogNavLeftCategory: 'Левая навигация по категориям',
catalogNavLeftCategoryDesc: 'Постоянное дерево категорий в левой боковой панели.',
catalogNavMegaCategory: 'Мега-меню категорий',
catalogNavMegaCategoryDesc: 'Развёрнутый выпадающий список с подкатегориями и избранными товарами.',
catalogNavTopCarousel: 'Карусель категорий сверху',
catalogNavTopCarouselDesc: 'Горизонтально прокручиваемые чипы категорий над сеткой каталога.',
newLanguageLabel: 'Код нового языка',
newLanguageDesc: 'Код языка ISO для добавления в поддерживаемые языки витрины (например, de, fr).',
languageAlreadyAdded: 'Этот язык уже добавлен.',
languagesTabDesc: 'Языки, доступные покупателям. Язык по умолчанию используется как резервный везде.',
linkLabelDesc: 'Текст, отображаемый для этой ссылки навигации.',
linkUrlDesc: 'Путь или URL, на который ведёт эта ссылка навигации.',
linkVisibleDesc: 'Показывать ли эту ссылку навигации покупателям.',
appName: 'Конструктор маркетплейса',
backToDashboard: 'Назад в панель управления',
languagesSummaryDesc: 'Языки, на которых доступен ваш маркетплейс. Первый — тот, что покупатели видят по умолчанию.',
manageLanguages: 'Управлять языками',
htmlToolBold: 'Жирный',
htmlToolItalic: 'Курсив',
htmlToolUnderline: 'Подчёркнутый',
htmlToolHeading: 'Заголовок',
htmlToolSubheading: 'Подзаголовок',
htmlToolBulletList: 'Маркированный список',
htmlToolNumberedList: 'Нумерованный список',
htmlToolLink: 'Вставить ссылку',
htmlToolImage: 'Вставить изображение',
htmlToolTable: 'Вставить таблицу',
htmlToolDivider: 'Разделительная линия',
htmlToolCodeBlock: 'Блок кода',
htmlToolEmbed: 'Встроить видео',
breadcrumbRoot: 'Конструктор маркетплейса',
statusComplete: 'Готово',
statusInProgress: 'В процессе',
statusNotStarted: 'Не начато',
statusUnknown: 'Пока не отслеживается',
draftBadge: 'Черновик',
publishedBadge: 'Опубликовано',
modifiedBadge: 'Есть несохранённые изменения',
helpToggleShow: 'Что это такое?',
helpToggleHide: 'Скрыть подсказку',
helpWhatIsThis: 'Что это',
helpWhySkip: 'Зачем это настраивать',
helpWhereVisible: 'Где это видят покупатели',
helpWhatIfSkip: 'Что будет, если пропустить',
helpWhenReturn: 'Когда возвращаться к этому разделу',
openSidebar: 'Открыть меню разделов',
closeSidebar: 'Закрыть меню разделов',
overviewTitle: 'Конструктор маркетплейса',
overviewSubtitle: 'Соберите свой маркетплейс шаг за шагом',
overviewReadinessLabel: 'Маркетплейс настроен на {{percent}}%',
overviewReadinessHint: 'Основано на обязательных полях, которые вы уже заполнили.',
overviewNextStepLabel: 'Рекомендуемый следующий шаг',
overviewNextStepFallback: 'Все обязательные шаги выполнены — можно опубликовать маркетплейс.',
overviewQuickLinksTitle: 'Быстрые ссылки',
overviewSectionsTitle: 'Разделы конструктора',
overviewOpenSection: 'Открыть раздел',
overviewReadinessTitle: 'Готовность маркетплейса',
readinessLogoUploaded: 'Логотип загружен',
readinessHomepageConfigured: 'Главная страница настроена',
readinessThemeConfigured: 'Тема настроена',
readinessLanguagesConfigured: 'Языки настроены',
readinessContentPagesAdded: 'Добавлены информационные страницы',
readinessPreviewReviewed: 'Просмотр проверен',
readinessPublished: 'Маркетплейс опубликован',
readinessCategoriesExist: 'Есть категории',
readinessProductsExist: 'Есть товары',
groupMarketplaceLabel: 'Маркетплейс',
groupMarketplaceDescription: 'Название, адрес и основная информация о вашем маркетплейсе.',
groupMarketplacePurpose: 'Базовая информация, которая определяет ваш маркетплейс: название, домен и язык по умолчанию.',
groupMarketplaceWhere: 'Название и адрес видны во вкладке браузера, поисковой выдаче и на всех страницах магазина.',
groupMarketplaceSkip: 'Без названия и адреса маркетплейс не будет выглядеть завершённым для покупателей.',
groupBrandingLabel: 'Брендинг и оформление',
groupBrandingDescription: 'Логотип, цвета, шапка и подвал — визуальный стиль вашего магазина.',
groupBrandingPurpose: 'Настройте, как выглядит ваш маркетплейс: логотип, цветовую палитру и элементы шапки/подвала сайта.',
groupBrandingWhere: 'Изменения видны на каждой странице, которую видят покупатели.',
groupBrandingSkip: 'Маркетплейс будет использовать оформление по умолчанию, не отражающее ваш бренд.',
groupHomepageLabel: 'Главная страница',
groupHomepageDescription: 'Баннеры, витрины и виджеты, которые покупатели видят первыми.',
groupHomepagePurpose: 'Соберите главную страницу из блоков: приветственный баннер, подборки категорий и товаров, акции.',
groupHomepageWhere: 'Это первая страница, которую видит покупатель, открыв ваш маркетплейс.',
groupHomepageSkip: 'Главная страница останется пустой или будет использовать макет по умолчанию.',
groupContentLabel: 'Контент',
groupContentDescription: 'О компании, контакты, доставка, возврат и другие информационные страницы.',
groupContentPurpose: 'Добавьте страницы, которым покупатели доверяют: о компании, контакты, условия доставки и возврата.',
groupContentWhere: 'Ссылки на эти страницы обычно показываются в подвале сайта.',
groupContentSkip: 'У покупателей не будет ответов на вопросы о доставке, возврате и контактах — это снижает доверие.',
groupLanguagesLabel: 'Языки',
groupLanguagesDescription: 'На каких языках работает ваш маркетплейс.',
groupLanguagesPurpose: 'Выберите язык по умолчанию и добавьте дополнительные языки для покупателей из других регионов.',
groupLanguagesWhere: 'Переключатель языка виден в шапке сайта на каждой странице.',
groupLanguagesSkip: 'Маркетплейс будет доступен только на одном языке по умолчанию.',
groupFeaturesLabel: 'Функции маркетплейса',
groupFeaturesDescription: 'Список желаний, сравнение, отзывы, оформление заказа без регистрации и другое.',
groupFeaturesPurpose: 'Включите или отключите функции для покупателей: список желаний, сравнение товаров, гостевой заказ.',
groupFeaturesWhere: 'Влияет на страницы каталога, товара и оформления заказа.',
groupFeaturesSkip: 'Маркетплейс будет использовать функции по умолчанию.',
groupNavigationLabel: 'Навигация и поиск',
groupNavigationDescription: 'Меню сайта и то, как покупатели находят товары.',
groupNavigationPurpose: 'Настройте пункты меню и то, как устроена навигация по каталогу.',
groupNavigationWhere: 'Видно в шапке сайта на каждой странице.',
groupNavigationSkip: 'Покупатели будут использовать навигацию по умолчанию.',
groupPreviewLabel: 'Просмотр',
groupPreviewDescription: 'Посмотрите, как маркетплейс выглядит на десктопе, планшете и телефоне.',
groupPreviewPurpose: 'Проверьте маркетплейс глазами покупателя перед публикацией — на разных экранах.',
groupPreviewWhere: 'Это предпросмотр — покупатели его не видят.',
groupPreviewSkip: 'Вы можете опубликовать изменения непроверенными.',
brandOverviewTitle: 'Идентичность бренда',
brandOverviewSubtitle: 'Логотип, цвета и шрифты, которые видят покупатели на каждой странице.',
brandOverviewComplete: 'Бренд полностью настроен.',
brandLastModified: 'Последнее изменение',
brandFaviconUploaded: 'Иконка сайта загружена',
brandColorsSelected: 'Цвета бренда выбраны',
brandTypographyConfigured: 'Шрифты настроены',
brandSocialImageUploaded: 'Изображение для соцсетей загружено',
brandAccessibilityPassed: 'Контрастность текста в норме',
brandColorsPreviewTitle: 'Цвета маркетплейса',
brandTypographyPreviewTitle: 'Шрифты',
brandSocialPreviewTitle: 'Как это выглядит при публикации ссылки',
brandTypeSampleHeading: 'Пример заголовка',
brandTypeSampleBody: 'Пример основного текста, который видят покупатели.',
brandContrastWarning: 'Текст на фоне читается плохо — рассмотрите более контрастные цвета. Публикацию это не блокирует.',
brandSocialEmpty: 'Изображение для соцсетей ещё не загружено — при публикации ссылки покупатели увидят пустую карточку.',
brandAccentColor: 'Акцентный',
brandBorderColor: 'Границы',
homepageOverviewTitle: 'Главная страница',
homepageOverviewSubtitle: 'Из чего состоит главная страница вашего маркетплейса.',
homepageOverviewComplete: 'Главная страница полностью настроена.',
homepageActiveSections: 'Активные блоки',
homepageDisabledSections: 'Скрытые блоки',
homepageHealthHero: 'Приветственный баннер добавлен',
homepageHealthCategories: 'Витрина категорий добавлена',
homepageHealthProducts: 'Витрина товаров добавлена',
homepageHealthPromotion: 'Блок акции добавлен',
homepageHealthNewsletter: 'Форма подписки добавлена',
homepageHealthAnySections: 'На странице есть хотя бы один блок',
widgetTypeHero: 'Приветственный баннер',
widgetTypeCategories: 'Витрина категорий',
widgetTypeProducts: 'Витрина товаров',
widgetHidden: 'Скрыт',
widgetVisible: 'Показывать',
widgetMoveUp: 'Переместить выше',
widgetMoveDown: 'Переместить ниже',
widgetDuplicate: 'Дублировать',
widgetRemove: 'Удалить',
widgetRemoveConfirm: 'Удалить этот блок с главной страницы?',
widgetAdvancedSettings: 'Дополнительные настройки',
widgetsEmptyTitle: 'Пока нет виджетов',
widgetsEmptyDesc: 'Добавьте блок на главную страницу во вкладке «Главная», и его настройки появятся здесь.',
homepageEmptyTitle: 'Главная страница не настроена',
homepageEmptyDesc: 'В вашем магазине пока не настроена главная страница. Обратитесь в поддержку, чтобы её создать.',
homepageBlocksHint: 'Это блоки, которые покупатели видят на главной странице сверху вниз. Перетаскивайте за ручку, чтобы изменить порядок.',
livePreviewTitle: 'Живой предпросмотр',
livePreviewHint: 'Наведите курсор на поле, чтобы увидеть, что оно меняет.',
livePreviewEmpty: 'Пока нечего показать.',
livePreviewButtonLabel: 'В магазин',
usedByLabel: 'Используется в:',
usedByHeader: 'Шапка сайта',
usedByFooter: 'Подвал сайта',
usedBySeo: 'Результаты поиска',
usedByButtons: 'Кнопки',
usedByLinks: 'Ссылки',
usedByBadges: 'Значки',
usedByPageBackground: 'Фон страницы',
resetField: 'Сбросить',
propertySearchLabel: 'Поиск настроек',
propertySearchPlaceholder: 'Поиск настроек…',
propertySearchResultsLabel: 'Результаты поиска',
propertySearchNoResults: 'Совпадений не найдено.',
unsavedChangesPanelTitle: 'Несохранённые изменения',
navigationHeaderEmptyTitle: 'В шапке пока нет ссылок',
navigationHeaderEmptyDesc: 'Добавьте ссылку, чтобы покупатели могли перемещаться из шапки сайта.',
navigationFooterEmptyTitle: 'В подвале пока нет ссылок',
navigationFooterEmptyDesc: 'Добавьте ссылку, чтобы покупатели могли перемещаться из подвала сайта.',
addBlockHint: 'Добавить блок на главную страницу:',
dragToReorder: 'Перетащите, чтобы изменить порядок',
blockRemoveConfirm: 'Удалить этот блок с главной страницы?',
blockHero: 'Приветственный баннер',
blockHeroDesc: 'Крупный баннер вверху главной страницы с заголовком и кнопкой призыва к действию.',
blockCategories: 'Категории',
blockCategoriesDesc: 'Сетка плиток категорий, чтобы покупатели могли просматривать разделы.',
blockFeaturedProducts: 'Рекомендуемые товары',
blockFeaturedProductsDesc: 'Сетка отобранных вручную или самых продаваемых товаров.',
blockProductCarousel: 'Карусель товаров',
blockProductCarouselDesc: 'Горизонтально прокручиваемый ряд товаров со стрелками для просмотра других.',
blockRecentlyViewed: 'Недавно просмотренные',
blockRecentlyViewedDesc: 'Показывает каждому покупателю товары, которые он недавно смотрел.',
blockBanner: 'Промо-баннер',
blockBannerDesc: 'Одно изображение с заголовком и кнопкой — для акций или объявлений.',
blockPartners: 'Логотипы партнёров',
blockPartnersDesc: 'Ряд логотипов брендов или партнёров для доверия.',
blockCustomHtml: 'Свой блок',
blockCustomHtmlDesc: 'Произвольный HTML для всего, что не покрывают другие блоки.',
},
dashboard: {
title: 'Панель управления',
subtitle: 'Обзор вашего маркетплейса',
cardMarketplaceStatus: 'Статус маркетплейса',
cardProjectName: 'Название проекта',
cardCurrentTheme: 'Текущая тема',
cardLanguages: 'Языки',
cardCategoriesCount: 'Категории',
cardProductsCount: 'Товары',
cardOrders: 'Заказы',
cardRevenue: 'Выручка',
cardLastPublish: 'Последняя публикация',
cardLastDraftSave: 'Последнее сохранение черновика',
cardBootstrapVersion: 'Версия конфигурации',
cardActiveLayout: 'Активный макет',
cardEnabledWidgets: 'Активные виджеты',
stateLoading: 'Загрузка...',
stateEmpty: 'Пока нет данных',
stateError: 'Не удалось загрузить карточку',
statePendingBackend: 'Ожидает интеграции с бэкендом',
never: 'Никогда',
quickActionsTitle: 'Быстрые действия',
actionEditProject: 'Конструктор маркетплейса',
actionCategories: 'Категории',
actionProducts: 'Товары',
actionStaticPages: 'Статические страницы',
actionTransactions: 'Транзакции',
actionOrders: 'Заказы',
actionMediaLibrary: 'Медиатека',
actionUsers: 'Пользователи и права',
actionMonitoring: 'Мониторинг',
actionAnalytics: 'Аналитика',
actionPreviewMarketplace: 'Просмотр маркетплейса',
activityTitle: 'Недавняя активность',
activityEmpty: 'Пока нет активности',
activityDraftSaved: 'Черновик сохранён',
activityPublished: 'Опубликовано',
healthTitle: 'Состояние системы',
healthAllClear: 'Все проверки пройдены',
healthBootstrapValid: 'Bootstrap корректен',
healthConfigurationValid: 'Конфигурация корректна',
healthMissingTranslations: 'Отсутствуют переводы',
healthInvalidColors: 'Некорректные цвета',
healthInvalidWidgetReferences: 'Некорректные ссылки виджетов',
healthInvalidLayouts: 'Некорректные макеты',
comingSoonTitle: 'Скоро',
comingSoonDescription: 'Этот раздел ещё не реализован. Загляните позже.',
backToDashboard: 'Вернуться на панель управления',
welcomeEyebrow: 'С возвращением',
welcomeFallbackTenant: 'Ваш маркетплейс',
envProduction: 'Продакшн',
envDevelopment: 'Разработка',
factCurrentUser: 'Текущий пользователь',
factTenant: 'Магазин',
quickActionsDescription: 'Самые частые задачи — начните здесь',
actionAddProduct: 'Добавить товар',
actionAddProductDescription: 'Создать новую карточку товара',
actionCreateCategory: 'Создать категорию',
actionCreateCategoryDescription: 'Добавить категорию в каталог',
actionEditProjectDescription: 'Открыть конструктор маркетплейса',
actionEditHomepage: 'Редактировать главную',
actionEditHomepageDescription: 'Настроить виджеты главной страницы',
actionMediaLibraryDescription: 'Загрузить и организовать файлы',
actionOrdersDescription: 'Просмотреть последние заказы',
draftStatusTitle: 'Статус черновика',
draftStatusHasChanges: 'Есть несохранённые изменения, ожидающие публикации.',
draftStatusAllPublished: 'Всё опубликовано. Черновика нет.',
draftStatusMoreFields: 'ещё {{count}}',
draftOpenBuilder: 'Открыть конструктор',
draftPublish: 'Опубликовать',
draftDiscard: 'Отменить черновик',
healthProductsCount: 'Товары',
healthCategoriesCount: 'Категории',
healthDraftExists: 'Черновик',
healthImagesWithoutAlt: 'Изображения без alt-текста',
healthStaticPagesUnpublished: 'Неопубликованные статические страницы',
healthHomepageConfigured: 'Главная страница настроена',
healthThemeConfigured: 'Тема настроена',
statusHealthy: 'В порядке',
statusAttention: 'Требует внимания',
statusUnhealthy: 'Проблема',
statusUnknown: 'Пока не отслеживается',
activityEmptyHint: 'Сохраните или опубликуйте изменение, чтобы увидеть его здесь.',
activityUnavailable: 'История активности недоступна',
activityUnavailableHint: 'Не удалось подключиться к источнику данных. Попробуйте обновить страницу позже.',
activityErrorHint: 'Не удалось загрузить недавнюю активность.',
shortcutsTitle: 'Полезные ссылки',
shortcutsDescription: 'Часто используемые разделы админ-панели',
shortcutMarketplaceBuilder: 'Конструктор маркетплейса',
shortcutSettings: 'Настройки',
shortcutContent: 'Контент',
docTitle: 'Документация',
docDocumentation: 'Документация',
docKeyboardShortcuts: 'Горячие клавиши',
docReportIssue: 'Сообщить о проблеме',
docReleaseNotes: 'Список изменений',
},
staticPages: {
notFound: 'Страница не найдена',
backHome: 'На главную',
duplicateSlug: 'Дублирующиеся slug запрещены.',
emptyTitle: 'У каждой страницы должен быть хотя бы один заголовок.',
duplicateRoute: 'Два или более страниц используют один и тот же маршрут.',
invalidHtml: 'На этой странице некорректный HTML-контент.',
invalidSeo: 'У этой страницы некорректное SEO-поле (canonical/OG-изображение или значение robots).',
searchPlaceholder: 'Поиск страниц…',
filterAll: 'Все статусы',
filterAllLocales: 'Все языки',
confirmDeletePage: 'Удалить эту страницу? Это действие нельзя отменить.',
confirmBulkDelete: 'Удалить выбранные страницы? Это действие нельзя отменить.',
duplicatePage: 'Дублировать',
selectAll: 'Выбрать все',
selectedCount: 'выбрано',
bulkDelete: 'Удалить выбранные',
bulkEnable: 'Включить выбранные',
bulkDisable: 'Отключить выбранные',
bulkPublishAction: 'Опубликовать выбранные',
bulkUnpublish: 'Снять с публикации выбранные',
routeLabel: 'Маршрут',
enabledLabel: 'Включена',
statusLabel: 'Статус',
publishPageAction: 'Опубликовать страницу',
unpublishPageAction: 'Снять страницу с публикации',
heroImageLabel: 'Главное изображение',
thumbnailLabel: 'Миниатюра',
galleryLabel: 'Галерея',
customTemplateLabel: 'Пользовательский шаблон',
seoRobotsLabel: 'Robots',
disabledBadge: 'Отключена',
previewDesktop: 'Десктоп',
previewTablet: 'Планшет',
previewMobile: 'Телефон',
previewToggle: 'Превью',
},
contentManagement: {
publishedPages: 'Опубликованные страницы',
draftPages: 'Черновики',
missingLegalPages: 'Отсутствующие юридические страницы',
seoHealth: 'SEO-здоровье',
lastEdited: 'Последнее изменение',
lastEditedNever: 'Никогда',
completionLabel: 'Готовность',
recommendedNext: 'Рекомендуемый следующий шаг',
recommendAddTitles: 'У некоторых страниц отсутствует заголовок хотя бы на одном языке.',
recommendFixSeo: 'На одной из страниц есть SEO-поле, которое нужно исправить (canonical/OG-изображение или robots).',
recommendPublish: 'Обязательная юридическая страница всё ещё черновик — опубликуйте её.',
recommendNone: 'Отлично — контент в хорошем состоянии.',
openAction: 'Открыть',
backToPages: 'Назад к страницам',
groupContent: 'Контент',
groupSeo: 'SEO',
groupSharing: 'Публикация в соцсетях',
groupAdvanced: 'Дополнительно',
groupAdvancedHtml: 'Исходный HTML (дополнительно)',
pageContentLabel: 'Содержимое страницы',
pageContentDesc: 'Напишите и оформите текст, изображения и ссылки, которые увидят покупатели на этой странице.',
seoExplainDesc: 'Это то, что видно в результатах поиска — понятный заголовок и описание помогают клиентам найти страницу.',
seoTitleHelp: 'Заголовок, отображаемый в результатах поиска. Делайте его коротким и понятным.',
seoDescriptionHelp: 'Краткое описание под заголовком в результатах поиска.',
seoCanonicalHelp: 'Официальный адрес страницы — помогает избежать дублирования контента.',
seoRobotsHelp: 'Определяет, могут ли поисковые системы показывать эту страницу.',
sharingExplain: 'Так страница выглядит при публикации в соцсетях (Facebook, Twitter/X и другие).',
mediaSelect: 'Выбрать изображение',
mediaReplace: 'Заменить',
mediaRemove: 'Удалить',
mediaAlt: 'Альтернативный текст',
mediaCaption: 'Подпись',
emptyStateGuideTitle: 'Начните создавать страницы магазина',
emptyStateGuideBody: 'Юридические страницы, такие как О нас, Конфиденциальность и Условия, повышают доверие клиентов. Рекомендуем сначала опубликовать О нас, Контакты, Конфиденциальность и Условия, затем добавить Cookies, Доставку, Возвраты и FAQ.',
seoStatusGood: 'SEO в порядке',
seoStatusPartial: 'SEO частично',
seoStatusWarning: 'Проблема SEO',
seoStatusMissing: 'SEO отсутствует',
needsAttention: 'Требует внимания',
legal: {
about: { label: 'О нас', why: 'Рассказывает клиентам, кто вы, и повышает доверие перед покупкой.' },
contacts: { label: 'Контакты', why: 'Даёт клиентам способ связаться с вами по вопросам.' },
privacy: { label: 'Конфиденциальность', why: 'Объясняет, как обрабатываются данные клиентов — часто обязательно по закону.' },
terms: { label: 'Условия', why: 'Устанавливает правила использования магазина — защищает вас и клиентов.' },
cookies: { label: 'Cookies', why: 'Раскрывает использование cookie — требуется во многих регионах.' },
delivery: { label: 'Доставка', why: 'Задаёт понятные ожидания по доставке и снижает число обращений в поддержку.' },
returns: { label: 'Возвраты', why: 'Объясняет политику возврата и повышает уверенность в покупке.' },
faq: { label: 'Вопросы и ответы', why: 'Отвечает на частые вопросы заранее.' },
},
},
widgets: {
unavailable: 'Виджет недоступен',
},
carousel: {
loading: 'Загрузка товаров...',
addToCart: 'Добавить в корзину',
},
common: {
retry: 'Попробовать снова',
loading: 'Загрузка...',
remove: 'Удалить',
errorTitle: 'Что-то пошло не так',
errorDescription: 'Не удалось загрузить данные. Попробуйте ещё раз.',
ratingLabel: 'Рейтинг {{value}}',
discountLabel: 'Скидка {{value}}%',
slideLabel: 'Слайд {{value}}',
slidesLabel: 'Слайды',
previousProducts: 'Предыдущие товары',
nextProducts: 'Следующие товары',
previousSlide: 'Предыдущий слайд',
nextSlide: 'Следующий слайд',
closeDialog: 'Закрыть диалог',
dismiss: 'Скрыть',
qrCode: 'QR-код',
bankCardPayment: 'Оплата банковской картой',
guest: 'Гость',
cancel: 'Отмена',
confirm: 'Подтвердить',
},
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: 'Очистить сравнение',
removeFromCompare: 'Убрать из сравнения',
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: 'неизвестно',
},
diagnostics: {
title: 'Диагностика маркетплейса',
disabledTitle: 'Диагностика недоступна',
disabledDescription: 'Страница диагностики доступна только в режиме разработки.',
generatedAt: 'Сформировано: {{value}}',
healthScore: 'Оценка состояния',
summary: 'Сводка',
passedChecks: '{{count}} успешных проверок',
warnings: '{{count}} предупреждений',
errors: '{{count}} ошибок',
critical: '{{count}} критических',
healthChecks: 'Проверки состояния',
results: 'Подробные результаты',
noIssues: 'Проблем диагностики не найдено.',
ok: 'OK',
failed: 'Ошибка',
affectedComponent: 'Затронутый компонент',
suggestedResolution: 'Рекомендация',
severity: { info: 'Инфо', warning: 'Предупреждение', error: 'Ошибка', critical: 'Критично' },
checks: {
bootstrapLoaded: 'Bootstrap загружен',
tenantResolved: 'Tenant определен',
runtimeInitialized: 'Runtime инициализирован',
themeLoaded: 'Тема загружена',
widgetManifestLoaded: 'Манифест виджетов загружен',
sectionEngineInitialized: 'Section Engine доступен',
configurationEngineInitialized: 'Configuration Engine инициализирован',
translationResourcesAvailable: 'Переводы доступны',
requiredAssetsAvailable: 'Обязательные assets доступны',
},
bootstrapMissingTitle: 'Bootstrap отсутствует',
bootstrapMissingDescription: 'Конфигурация bootstrap не загружена.',
bootstrapMissingResolution: 'Проверьте provider bootstrap и локальный mock.',
requiredPropertyMissingTitle: 'Отсутствует обязательное свойство',
requiredPropertyMissingDescription: 'В bootstrap отсутствует обязательное свойство.',
requiredPropertyMissingResolution: 'Добавьте свойство в bootstrap payload.',
unknownWidgetTypeTitle: 'Неизвестный тип виджета',
unknownWidgetTypeDescription: 'Тип виджета отсутствует в widget manifest.',
unknownWidgetTypeResolution: 'Добавьте виджет в manifest или удалите неверную конфигурацию.',
widgetSettingsSchemaMismatchTitle: 'Настройки виджета не соответствуют схеме manifest',
widgetSettingsSchemaMismatchDescription: 'Props виджета не соответствуют settingsSchema, заданной для этого типа виджета.',
widgetSettingsSchemaMismatchResolution: 'Исправьте props виджета в редакторе в соответствии с обязательными полями/типами, либо обновите схему в manifest.',
duplicateIdTitle: 'Дублирующийся идентификатор',
duplicatePageIdDescription: 'Обнаружен дублирующийся id страницы.',
duplicateSectionIdDescription: 'Обнаружен дублирующийся id секции.',
duplicateWidgetIdDescription: 'Обнаружен дублирующийся id виджета.',
duplicateIdResolution: 'Сделайте id уникальными в bootstrap конфигурации.',
unknownLayoutTitle: 'Неизвестный layout',
unknownLayoutDescription: 'Значение layout страницы не распознано.',
unknownLayoutResolution: 'Используйте поддерживаемый layout или расширьте allow-list.',
invalidFeatureFlagTitle: 'Некорректный feature flag',
invalidFeatureFlagDescription: 'Значение feature flag должно быть boolean.',
invalidFeatureFlagResolution: 'Нормализуйте значение к true или false.',
brokenPageDefinitionTitle: 'Некорректное описание страницы',
brokenPageDefinitionDescription: 'Описание страницы неполное.',
brokenPageDefinitionResolution: 'Добавьте route, title, key или sections.',
invalidNavigationTargetTitle: 'Некорректная цель навигации',
invalidNavigationTargetDescription: 'Route навигации не совпадает с известными route.',
invalidNavigationTargetResolution: 'Исправьте target route или добавьте route.',
missingTranslationTitle: 'Отсутствует перевод',
missingTranslationDescription: 'Ключ перевода не разрешается.',
missingTranslationResolution: 'Добавьте ключ в translation resources.',
missingMediaTitle: 'Отсутствует media',
missingMediaDescription: 'Ожидаемый branding media ресурс отсутствует.',
missingMediaResolution: 'Укажите корректные media URL в branding конфиге.',
runtimeNotInitializedTitle: 'Runtime не инициализирован',
runtimeNotInitializedDescription: 'Platform runtime state не помечен как initialized.',
runtimeNotInitializedResolution: 'Проверьте цепочку initialize в PlatformRuntimeService.',
configFallbackUsageTitle: 'Используется fallback конфигурация',
configFallbackUsageDescription: 'Runtime разработки использует fallback или mock конфигурацию.',
configFallbackUsageResolution: 'Смените provider mode, если нужна проверка реального bootstrap.',
missingDatasourceTitle: 'Отсутствует datasource',
missingDatasourceDescription: 'Виджет поддерживает datasource, но он не задан.',
missingDatasourceResolution: 'Укажите source в props виджета или default settings manifest.',
widgetRenderFailureTitle: 'Сбой рендера виджета',
widgetRenderFailureDescription: 'Виджет откатился на unknown widget renderer.',
widgetRenderFailureResolution: 'Зарегистрируйте компонент виджета или исправьте component key.',
brokenRouteTitle: 'Нарушено ожидание route',
brokenRouteDescription: 'Ожидаемый route отсутствует.',
brokenRouteResolution: 'Верните регистрацию route или обновите правило диагностики.',
imageLoadFailedTitle: 'Ошибка загрузки изображения',
imageLoadFailedDescription: 'Отображаемое изображение не загрузилось.',
imageLoadFailedResolution: 'Проверьте asset path, CORS и доступность media.',
optionalDataMissingTitle: 'Отсутствуют необязательные данные',
optionalDataMissingDescription: 'Необязательное конфигурационное значение отсутствует.',
optionalDataMissingResolution: 'Добавьте значение, если оно нужно UX.',
},
adminModeration: {
search: 'Поиск по клиенту, товару или тексту отзыва…',
selectAllRows: 'Выбрать все отзывы',
itemsCount: 'отзывов',
allStatuses: 'Все статусы',
allRatings: 'Все оценки',
rating: 'Оценка',
customer: 'Клиент',
product: 'Товар',
reviewText: 'Отзыв',
photos: 'Фото',
workflow: 'Действия',
approve: 'Одобрить',
reject: 'Отклонить',
markSpam: 'Отметить как спам',
hide: 'Скрыть',
restore: 'Восстановить',
pin: 'Закрепить',
unpin: 'Открепить',
feature: 'Выделить',
unfeature: 'Убрать выделение',
featureDisabledHint: 'Выделять можно только одобренные отзывы.',
moderatorNotes: 'Заметки модератора',
notAvailable: 'Пока недоступно',
changeStatus: 'Изменить статус',
hideSelected: 'Скрыть',
deleteSelected: 'Удалить',
confirmBulkDelete: 'Удалить выбранные отзывы? Это действие нельзя отменить.',
reportsQueue: 'Очередь жалоб',
reportsColumn: 'Жалобы',
reportTarget: 'Объект жалобы',
reportType: 'Тип',
reportReason: 'Причина',
resolve: 'Решено',
dismiss: 'Отклонить',
reportsEmptyTitle: 'Жалоб нет',
reportsEmptyDescription: 'Жалобы клиентов на товары, отзывы или аккаунты появятся здесь.',
reportedCount: 'С жалобами',
averageRating: 'Средняя оценка',
moderationHealth: 'Состояние модерации',
emptyTitle: 'Отзывов пока нет',
emptyDescription: 'Отзывы появятся здесь после первых оценок от клиентов.',
emptyGuide: 'Клиенты оставляют оценку и текст после покупки. Новые отзывы получают статус «Ожидает» до одобрения, отклонения или пометки как спам модератором — одобренные отзывы становятся видны на витрине. Старайтесь регулярно разбирать очередь ожидающих отзывов.',
healthRating: 'Оценка',
healthText: 'Текст',
healthMedia: 'Медиа',
healthModeration: 'Промодерирован',
healthReportStatus: 'Нет открытых жалоб',
healthVisibility: 'Виден',
health: 'Состояние',
column_product: 'Товар',
column_rating: 'Оценка',
column_status: 'Статус',
column_reports: 'Жалобы',
column_created: 'Отправлен',
status: {
pending: 'Ожидает',
approved: 'Одобрен',
rejected: 'Отклонён',
spam: 'Спам',
},
timelineEvent: {
submitted: 'Отзыв отправлен',
statusChanged: 'Статус изменён на «{{status}}»',
restored: 'Отзыв восстановлен',
hidden: 'Отзыв скрыт',
},
actor: {
admin: 'Администратор',
customer: 'Клиент',
},
targetType: {
product: 'Товар',
review: 'Отзыв',
customer: 'Клиент',
category: 'Категория',
unknown: 'Неизвестно',
},
reportStatus: {
open: 'Открыта',
resolved: 'Решена',
dismissed: 'Отклонена',
},
},
adminOrders: {
bulkDeleteTitle: 'Удалить заказы',
confirmBulkDelete: 'Удалить выбранные заказы? Это действие нельзя отменить.',
back: 'Назад к заказам',
search: 'Поиск по номеру заказа, имени, email или телефону…',
export: 'Экспорт',
selectAllRows: 'Выбрать все заказы',
selectRow: 'Выбрать заказ',
view: 'Просмотр',
orderNumber: 'Заказ',
customer: 'Клиент',
payment: 'Оплата',
delivery: 'Доставка',
trackingNumber: 'Номер отслеживания',
createdAt: 'Оформлен',
items: 'Товары',
timeline: 'Хронология',
timelineEvent: {
created: 'Заказ создан',
statusChanged: 'Статус изменён на «{{status}}»',
refundRequested: 'Запрошен возврат',
},
notes: 'Заметки для клиента',
internalNotes: 'Внутренние заметки',
addNote: 'Добавить заметку',
changeStatus: 'Изменить статус',
applyStatus: 'Применить',
archiveSelected: 'В архив',
printSelected: 'Печать',
printInvoice: 'Печать накладной',
requestRefund: 'Запросить возврат',
cancelOrder: 'Отменить заказ',
confirmCancel: 'Отменить этот заказ?',
confirmRefund: 'Запросить возврат по этому заказу?',
emptyTitle: 'Заказов пока нет',
emptyDescription: 'Заказы появятся здесь после оформления покупок.',
column_customer: 'Клиент',
column_status: 'Статус',
column_payment: 'Оплата',
column_total: 'Сумма',
column_created: 'Оформлен',
status: {
all: 'Все статусы',
pending: 'Ожидает',
processing: 'Сборка',
shipped: 'Доставляется',
delivered: 'Завершён',
cancelled: 'Отменён',
refunded: 'Возвращён',
},
paymentStatus: {
unpaid: 'Не оплачен',
paid: 'Оплачен',
refund_requested: 'Запрошен возврат',
refunded: 'Возвращён',
},
itemsCount: 'заказов',
ordersToday: 'Заказов сегодня',
paidCount: 'Оплачено',
customersCount: 'Клиенты',
returningCustomers: 'Повторные клиенты',
averageOrder: 'Средний чек',
recentActivity: 'Недавняя активность',
noRecentActivity: 'Активности пока нет.',
alertStuckPending: 'заказов ожидают более 48 часов',
alertRefundRequested: 'заказов ждут запроса на возврат',
},
adminCustomers: {
back: 'Назад к клиентам',
search: 'Поиск по имени, email или телефону…',
name: 'Имя',
email: 'Email',
phone: 'Телефон',
orderCount: 'Заказы',
lifetimeValue: 'Общая сумма покупок',
returning: 'Повторный',
profile: 'Профиль',
statistics: 'Статистика',
firstOrder: 'Первый заказ',
lastOrder: 'Последний заказ',
addresses: 'Адреса',
notes: 'Заметки',
notesUnavailable: 'Заметок по клиенту пока нет — добавьте заметку к одному из его заказов.',
orders: 'Заказы',
activity: 'Активность',
emptyTitle: 'Клиентов пока нет',
emptyDescription: 'Клиенты появятся здесь после первого заказа.',
},
mediaLibrary: {
title: 'Медиатека',
upload: 'Загрузить',
uploading: 'Загрузка...',
searchPlaceholder: 'Поиск файлов...',
delete: 'Удалить',
deleteConfirmTitle: 'Удалить файл?',
deleteConfirmBody: 'Это действие необратимо.',
cancel: 'Отмена',
confirm: 'Удалить',
emptyTitle: 'Пока нет файлов',
emptyDescription: 'Загрузите изображение или документ, чтобы начать.',
allFolders: 'Все папки',
newFolder: 'Новая папка',
editTags: 'Изменить теги',
totalAssets: 'Всего файлов',
logos: 'Логотипы',
unused: 'Неиспользуемые',
storageUsed: 'Использовано места',
altCoverage: 'Покрытие alt-текстом',
allTypes: 'Все типы',
typeImage: 'Изображения',
typeSvg: 'SVG',
typePdf: 'PDF',
sortRecent: 'Недавние',
sortName: 'Имя',
sortSize: 'Размер',
viewMode: 'Вид',
viewGrid: 'Сетка',
viewList: 'Список',
dropHint: 'Перетащите изображения сюда или используйте кнопку «Загрузить» выше.',
cancelUpload: 'Отменить',
retry: 'Повторить',
errorTooLarge: 'Файл слишком большой. Попробуйте файл меньшего размера.',
errorUnsupportedType: 'Этот тип файла не поддерживается. Используйте JPG, PNG, WebP, GIF, SVG или PDF.',
errorGeneric: 'Не удалось загрузить файл. Попробуйте ещё раз.',
selectedCount: 'выбрано',
download: 'Скачать',
exportMetadata: 'Экспортировать метаданные',
bulkDelete: 'Удалить выбранные',
bulkDeleteConfirm: 'Удалить выбранные файлы? Это действие нельзя отменить.',
clearSelection: 'Снять выделение',
guideCopy: 'Повторное использование существующего файла избавляет от дублей и экономит место. Для баннеров и главных изображений рекомендуем размер около 1200×1200px и сжатие крупных фото перед загрузкой.',
missingAlt: 'Нет alt-текста',
usageCount: 'исп.',
detailsTitle: 'Информация о файле',
filename: 'Имя файла',
format: 'Формат',
fileSize: 'Размер файла',
dimensions: 'Размеры',
uploadDate: 'Загружен',
lastUsed: 'Последнее использование',
usageCountLabel: 'Количество использований',
usedIn: 'Используется в',
notUsed: 'Пока нигде не используется.',
unknownValue: 'Неизвестно',
altText: 'Alt-текст',
altTextHelp: 'Описывает изображение для программ чтения с экрана и поисковых систем.',
decorative: 'Декоративное (alt-текст не нужен)',
missingAltWarning: 'У этого изображения нет alt-текста, и оно не отмечено как декоративное — пользователи с программами чтения с экрана не узнают, что на нём изображено.',
caption: 'Подпись',
description: 'Описание',
usage: {
brand: 'Логотип',
theme: 'Тема',
header: 'Шапка',
footer: 'Подвал',
staticPage: 'Статическая страница',
homepage: 'Главная страница',
catalog: 'Каталог',
productPage: 'Страница товара',
widget: 'Виджет',
company: 'Информация о компании',
seo: 'SEO',
navigation: 'Навигация',
other: 'Другое',
},
},
adminCategories: {
chooseImage: 'Выбрать изображение',
replaceImage: 'Заменить изображение',
search: 'Поиск категорий…',
showDeleted: 'Показать удалённые',
selectAllRows: 'Выбрать все категории',
selectRow: 'Выбрать категорию',
toggleVisibility: 'Переключить видимость',
create: 'Создать категорию',
edit: 'Редактировать категорию',
title: 'Название',
slug: 'URL-адрес',
slugTaken: 'Этот адрес уже используется другой категорией.',
slugCheckError: 'Не удалось проверить уникальность адреса. Повторите попытку перед сохранением.',
parent: 'Родительская категория',
noParent: 'Без родителя (верхний уровень)',
icon: 'Иконка',
image: 'Изображение',
imageHint: 'Показывается в списках категорий и навигации.',
description: 'Описание',
items: 'товаров',
status: { draft: 'Черновик', published: 'Опубликовано' },
restore: 'Восстановить',
saveDraft: 'Сохранить черновик',
publish: 'Опубликовать',
confirmDelete: 'Удалить эту категорию? Это действие нельзя отменить.',
confirmBulkDelete: 'Удалить выбранные категории? Это действие нельзя отменить.',
deleteTitle: 'Удалить категорию',
confirmLeaveUnsaved: 'У вас есть несохранённые изменения. Выйти без сохранения?',
deleteBlocked: 'Эту категорию нельзя удалить, пока у неё есть подкатегории или назначенные товары.',
emptyTitle: 'Категорий пока нет',
emptyDescription: 'Создайте первую категорию, чтобы начать организовывать товары.',
emptyGuide: 'Категории помогают покупателям находить товары. Начните с нескольких верхнеуровневых категорий (например, Одежда, Электроника), затем добавляйте подкатегории по мере роста каталога — избегайте вложенности глубже 2-3 уровней.',
viewTree: 'Дерево',
viewCards: 'Карточки',
expandAll: 'Развернуть всё',
collapseAll: 'Свернуть всё',
expandNode: 'Развернуть',
collapseNode: 'Свернуть',
moveUp: 'Переместить вверх',
moveDown: 'Переместить вниз',
jumpToParent: 'К родителю',
deletedBadge: 'Удалена',
column_slug: 'Адрес',
column_items: 'Товары',
column_status: 'Статус',
column_visibility: 'Видимость',
column_updated: 'Последнее изменение',
bulkAssignParent: 'Назначить родителя',
bulkAssignImage: 'Назначить изображение',
groupGeneral: 'Основное',
groupMedia: 'Медиа',
groupSeo: 'SEO',
groupVisibility: 'Видимость',
groupNavigation: 'Навигация',
groupAttributes: 'Атрибуты',
groupAdvanced: 'Дополнительно',
visibilityExplain: 'Скрытая категория и её товары не отображаются в навигации и поиске магазина, пока вы снова не сделаете её видимой.',
navBreadcrumb: 'Хлебные крошки',
navBreadcrumbHint: 'Это путь, который покупатели видят над категорией, напр. Главная Электроника Телефоны. Он строится из выбранной родительской категории.',
iconHint: 'Небольшой эмодзи или символ рядом с названием категории в меню, напр. 📱. Оставьте пустым, если не нужен.',
navRoot: 'Это категория верхнего уровня.',
navChildren: 'Подкатегории',
navNoChildren: 'Подкатегорий пока нет.',
navAppearsIn: 'Где это отображается',
navAppearsVisible: 'Видна в навигации каталога и поиске.',
navAppearsHidden: 'Скрыта — не отображается в навигации каталога, пока скрыта.',
itemsCountLabel: 'Назначенные товары',
createdAtLabel: 'Создана',
healthImage: 'Изображение',
healthSeo: 'SEO',
healthDescription: 'Описание',
healthParent: 'Родитель',
healthVisibility: 'Видимость',
healthProducts: 'Назначены товары',
totalCategories: 'Всего категорий',
visibleCount: 'Видимые',
hiddenCount: 'Скрытые',
emptyCount: 'Пустые',
rootCount: 'Корневые категории',
subCount: 'Подкатегории',
missingImagesCount: 'Без изображений',
missingSeoCount: 'Без SEO',
lastModified: 'Последнее изменение',
lastModifiedNever: 'Никогда',
completionLabel: 'Готовность',
recommendedNext: 'Рекомендуемый следующий шаг',
recommendAddImage: 'У категории нет изображения — добавьте его для доверия в листингах.',
recommendAddSeo: 'У категории нет заголовка или описания для поиска — добавьте их.',
recommendFillEmpty: 'В категории нет товаров — добавьте товары или скройте категорию.',
recommendNone: 'Отлично — структура категорий в хорошем состоянии.',
},
adminProducts: {
confirmLeaveUnsaved: 'У вас есть несохранённые изменения. Выйти без сохранения?',
deleteTitle: 'Удалить товар',
confirmDelete: 'Удалить этот товар? Это действие нельзя отменить.',
confirmBulkDelete: 'Удалить выбранные товары? Это действие нельзя отменить.',
emptyTitle: 'Товары не найдены',
emptyDescription: 'Измените фильтры или создайте новый товар.',
emptyGuide: 'Хорошему товару нужны понятное название, минимум одно фото, цена и короткое описание — этого достаточно для публикации. Остальное можно добавить позже.',
selectAllRows: 'Выбрать все товары',
selectRow: 'Выбрать товар',
search: 'Поиск товаров…',
category: 'Категория',
allCategories: 'Все категории',
visibility: 'Видимость',
allVisibility: 'Любая видимость',
visible: 'Видимый',
hidden: 'Скрытый',
stockStatus: 'Статус наличия',
allStock: 'Любой остаток',
inStock: 'В наличии',
lowStock: 'Мало на складе',
outOfStock: 'Нет в наличии',
sortTitle: 'Имя',
sortPrice: 'Цена',
sortPriority: 'Приоритет',
sortStock: 'Остаток',
sortUpdated: 'Последнее изменение',
showArchived: 'Показать архивные',
infiniteScroll: 'Бесконечная прокрутка',
viewMode: 'Вид',
viewTable: 'Таблица',
viewGrid: 'Сетка',
density: 'Плотность',
densityComfortable: 'Комфортная',
densityCompact: 'Компактная',
columns: 'Столбцы',
column_sku: 'Артикул',
column_brand: 'Бренд',
column_price: 'Цена',
column_stock: 'Остаток',
column_visibility: 'Видимость',
column_updated: 'Последнее изменение',
create: 'Создать товар',
edit: 'Редактировать товар',
duplicate: 'Дублировать',
selectedCount: 'выбрано',
bulkShow: 'Опубликовать',
bulkHide: 'Скрыть',
bulkAssignCategory: 'Назначить категорию',
bulkAssignTags: 'Назначить теги',
bulkDuplicateAction: 'Дублировать',
bulkExportAction: 'Экспорт',
bulkDelete: 'Удалить',
tagsPlaceholder: 'например, лето, скидка',
name: 'Название',
brand: 'Бренд',
healthColumn: 'Качество',
actions: 'Действия',
archive: 'В архив',
delete: 'Удалить',
items: 'товаров',
loadMore: 'Загрузить ещё',
noImage: 'Нет изображения',
slug: 'URL-адрес',
barcode: 'Штрихкод',
priority: 'Приоритет',
shortDescription: 'Краткое описание',
translations: 'Переводы',
primaryImage: 'Главное изображение',
primaryImageHint: 'Основное фото, показываемое в списках и результатах поиска.',
gallery: 'Галерея',
galleryHint: 'Дополнительные фото на странице товара. Порядок меняется стрелками.',
moveLeft: 'Переместить раньше',
moveRight: 'Переместить позже',
videos: 'Видео (по одной ссылке на строку)',
discount: 'Скидка %',
currency: 'Валюта',
stockQuantity: 'Количество на складе',
stockQuantityHint: 'Сколько единиц доступно для продажи прямо сейчас.',
availabilityStatus: 'Доступность',
availabilityStatusHint: 'Что видит покупатель: в наличии, заканчивается или нет в наличии.',
availabilityNote: 'Примечание о доступности',
availabilityNoteHint: 'Дополнительная информация для покупателя, например «Доставка за 3 дня».',
reservedNote: 'Резерв пока не учитывается отдельно — здесь показано общее доступное количество.',
relatedProducts: 'Похожие товары',
specifications: 'Характеристики',
attributes: 'Атрибуты',
addRow: 'Добавить строку',
removeRow: 'Удалить',
rowKey: 'Название',
rowValue: 'Значение',
addVariant: 'Добавить вариант',
variantName: 'Название варианта',
variantsHint: 'Каждый вариант — это отдельный покупаемый вариант товара (например, размер или цвет) со своей ценой и остатком.',
variants: 'Варианты',
variantAttributes: 'Опции',
variantAttributesHint: 'Добавьте опции вроде Цвет или Размер, затем перечислите значения. Комбинации ниже создаются автоматически.',
colorAttribute: 'Цвет',
removeAttribute: 'Удалить опцию',
removeValue: 'Удалить значение',
pickColor: 'Выбрать цвет',
newValuePlaceholder: 'напр. Маленький',
addValue: 'Добавить',
newAttributePlaceholder: 'напр. Размер',
addAttribute: 'Добавить опцию',
generateVariants: 'Сгенерировать варианты',
variantsList: 'Варианты',
remaining: 'Остаток',
variantImage: 'Изображение',
archived: 'В архиве',
slugHint: 'Веб-адрес этого товара. Заполняется автоматически из названия — меняйте, только если нужен особый URL.',
skuHint: 'SKU (артикул) — ваш внутренний код товара для учёта склада и поиска заказов. Подойдёт любой уникальный текст.',
generate: 'Сгенерировать',
seoGenerate: 'Заполнить из данных товара',
seoGenerateHint: 'Заполняет пустые поля из названия и краткого описания. Ваш текст не перезаписывается.',
translationsHint: 'Основные поля выше отображаются на языке магазина по умолчанию. Здесь добавьте переводы для других языков — если перевод пуст, покупатели увидят текст по умолчанию.',
badgesHint: 'Бейджи — небольшие цветные ярлыки, которые покупатели видят на фото товара. Выберите из стандартных или добавьте свой.',
addBadge: 'Добавить',
removeBadge: 'Убрать бейдж',
customBadgePlaceholder: 'Текст своего бейджа…',
seoExplain: 'Это то, что видно в результатах поиска — понятные заголовок и описание помогают найти товар.',
searchTitle: 'Заголовок для поиска',
searchTitleHint: 'Заголовок, показываемый в результатах поиска. Делайте его коротким.',
searchDescription: 'Описание для поиска',
searchDescriptionHint: 'Краткое описание под заголовком в результатах поиска.',
seoMissingTitle: 'Добавьте заголовок для поиска, чтобы товар можно было найти.',
seoMissingDescription: 'Добавьте описание для поиска, чтобы улучшить отображение товара.',
keywords: 'Ключевые слова',
featured: 'Рекомендуемый',
recommended: 'В подборке',
new: 'Новинка',
bestseller: 'Хит продаж',
badges: 'Значки (через запятую)',
htmlDescription: 'Подробное описание',
customer: 'Отзывы покупателей',
reviewsReadonly: 'Отзывы',
noReviews: 'Пока нет отзывов.',
questionsReadonly: 'Вопросы',
noQuestions: 'Пока нет вопросов.',
save: 'Сохранить товар',
groupGeneral: 'Основное',
groupMedia: 'Медиа',
groupPricing: 'Цена',
groupInventory: 'Склад',
groupCategories: 'Категории',
groupAttributes: 'Атрибуты',
groupSeo: 'SEO',
groupVisibility: 'Видимость',
groupAdvanced: 'Дополнительно',
healthImages: 'Изображения',
healthSeo: 'SEO',
healthPrice: 'Цена',
healthCategory: 'Категория',
healthDescription: 'Описание',
healthInventory: 'Склад',
totalProducts: 'Всего товаров',
publishedCount: 'Опубликовано',
draftsCount: 'Черновики',
outOfStockCount: 'Нет в наличии',
hiddenCount: 'Скрыто',
missingImagesCount: 'Без изображений',
missingSeoCount: 'Без SEO',
lowQualityCount: 'Низкое качество',
recentlyEdited: 'Недавно изменённые',
recommendedNext: 'Рекомендуемый следующий шаг',
openAction: 'Открыть',
recommendAddImages: 'У товара нет фото — добавьте хотя бы одно изображение.',
recommendAddSeo: 'У товара нет заголовка или описания для поиска — добавьте их.',
recommendRestock: 'Товар закончился на складе — пополните запас или скройте его.',
recommendNone: 'Отлично — каталог в хорошем состоянии.',
},
adminUsers: {
emptyTitle: 'Пользователи не найдены',
emptyDescription: 'Пригласите коллегу, чтобы начать.',
invitationsEmptyTitle: 'Нет ожидающих приглашений',
title: 'Команда',
name: 'Имя',
email: 'Email',
scope: 'Рабочая область',
role: 'Роль',
roles: 'Роли',
lastLogin: 'Последний вход',
sessions: 'Активные сессии',
currentSession: 'Текущая сессия',
invite: 'Пригласить участника',
sendInvite: 'Отправить приглашение',
revoke: 'Отозвать',
passwordlessHint: 'Участники входят через Telegram — пароли не нужны.',
confirmSuspend: 'Заблокировать этого участника? Доступ будет закрыт немедленно.',
suspend: 'Заблокировать',
reactivate: 'Восстановить',
scopeValue: {
marketplace: 'Витрина',
office: 'Бэк-офис',
},
statusValue: {
active: 'Активен',
invited: 'Приглашён',
suspended: 'Заблокирован',
},
invitationStatus: {
pending: 'Ожидает',
accepted: 'Принято',
expired: 'Истекло',
revoked: 'Отозвано',
},
roleValue: {
owner: 'Владелец',
admin: 'Администратор',
editor: 'Редактор',
viewer: 'Наблюдатель',
},
permission: {
all: 'Полный доступ ко всем разделам',
productsManage: 'Управление товарами',
productsView: 'Просмотр товаров',
categoriesManage: 'Управление категориями',
ordersManage: 'Управление заказами',
ordersView: 'Просмотр заказов',
mediaManage: 'Управление медиатекой',
},
actor: {
admin: 'Администратор',
},
audit: {
roleChanged: 'Роль изменена на «{{role}}»',
statusChanged: 'Статус изменён на «{{status}}»',
},
},
adminTransactions: {
search: 'Поиск транзакций',
type: 'Тип',
method: 'Способ оплаты',
itemsCount: 'транзакций',
fraud: 'Проверка на мошенничество',
flagged: 'Помечено',
flag: 'Пометить как подозрительную',
clearFlag: 'Снять пометку',
retry: 'Повторить',
audit: 'История',
emptyTitle: 'Транзакции не найдены',
emptyDescription: 'Попробуйте изменить фильтр или поисковый запрос.',
status: {
all: 'Все статусы',
pending: 'В обработке',
success: 'Успешно',
failed: 'Ошибка',
retried: 'Повторено',
},
typeValue: {
all: 'Все типы',
payment: 'Оплата',
refund: 'Возврат',
qr_payment: 'Оплата по QR',
},
methodValue: {
card: 'Карта',
qr: 'QR-код',
cash_on_delivery: 'Наличными при получении',
},
},
adminMonitoring: {
eventsEmptyTitle: 'События не найдены',
eventsEmptyDescription: 'Попробуйте изменить фильтр категории или поисковый запрос.',
health: 'Проверки состояния',
queues: 'Фоновые очереди',
depth: 'В ожидании',
webhooks: 'Доставка вебхуков',
endpoint: 'Получатель',
event: 'Событие',
events: 'Журнал активности',
category: 'Категория',
level: 'Важность',
message: 'Описание',
technicalDetails: 'Технические детали',
categoryValue: {
all: 'Все категории',
audit: 'Действия администраторов',
security: 'Безопасность',
login: 'Вход',
failed_login: 'Неудачный вход',
api: 'API',
error: 'Ошибка',
warning: 'Предупреждение',
},
queueStatus: {
healthy: 'Работает штатно',
degraded: 'Замедлена',
down: 'Остановлена',
},
webhookStatus: {
delivered: 'Доставлено',
failed: 'Ошибка',
pending: 'Ожидает',
},
levelValue: {
info: 'Инфо',
warning: 'Предупреждение',
error: 'Ошибка',
},
systemState: 'Состояние системы',
backendConnectivity: 'Бэкенд',
connected: 'Подключено',
loading: 'Загрузка',
draftState: 'Черновик',
unsavedChanges: 'Есть несохранённые изменения',
noDraft: 'Черновика нет',
lastSaved: 'Последнее сохранение',
lastPublished: 'Последняя публикация',
syncStatus: 'Синхронизация',
},
adminReports: {
sales: 'Продажи',
topProducts: 'Топ товаров',
marketplaceHealth: 'Состояние маркетплейса',
},
adminSettings: {
density: 'Плотность таблиц',
densityExplain: 'Уменьшить отступы строк в списках панели управления для более компактного вида.',
densityCompact: 'Компактные строки',
},
adminAnalytics: {
topProductsEmptyTitle: 'Нет продаж товаров за этот период',
topProductsEmptyDescription: 'Попробуйте выбрать более широкий диапазон дат.',
topProducts: 'Топ товаров',
print: 'Печать',
tabsLabel: 'Разделы аналитики',
tab: {
overview: 'Обзор',
health: 'Здоровье',
products: 'Товары',
customers: 'Клиенты',
search: 'Поиск',
traffic: 'Трафик',
recommendations: 'Рекомендации',
},
revenue: 'Выручка',
orders: 'Заказы',
customers: 'Клиенты',
avgOrderValue: 'Средний чек',
conversion: 'Конверсия',
completionPercent: 'Готовность',
unknown: 'Неизвестно',
salesChart: 'Продажи',
quantitySold: 'Продано, шт.',
lowStock: 'Мало на складе',
lowStockEmptyTitle: 'Нет товаров с низким остатком',
quantity: 'Количество',
status: 'Статус',
recentActivity: 'Недавняя активность',
recentActivityEmptyTitle: 'Нет недавней активности',
activityDraftSaved: 'Черновик сохранён',
activityPublished: 'Опубликовано',
warnings: 'Предупреждения',
topViewed: 'Самые просматриваемые',
hiddenProducts: 'Скрытые товары',
archivedProducts: 'Архивные товары',
mostReviewed: 'Больше всего отзывов',
worstRated: 'Худший рейтинг',
noReviewedProducts: 'Пока нет товаров с отзывами',
reviewCount: 'Отзывы',
avgRating: 'Средний рейтинг',
newCustomers: 'Новые клиенты',
returningCustomers: 'Повторные клиенты',
averageSpend: 'Средние траты',
retention: 'Удержание',
searchAnalytics: 'Аналитика поиска',
trafficAnalytics: 'Трафик',
availableAfterBackend: 'Будет доступно после интеграции с бэкендом.',
pendingBackend: 'Ожидает бэкенд',
pendingBackendHint: 'Отслеживание поисковых запросов пока не реализовано.',
funnelsHeatmaps: 'Воронки и тепловые карты',
visitors: 'Посетители',
products: 'Товары',
categories: 'Категории',
},
adminMarketplaceHealth: {
title: 'Здоровье маркетплейса',
complete: 'готово',
recommendationsTitle: 'Рекомендации',
recommendNone: 'Всё в порядке.',
checkImages: 'У товаров есть изображения',
checkSeo: 'У товаров заполнено SEO',
checkCategories: 'В категориях есть товары',
checkReviews: 'Отзывы модерируются',
checkOrders: 'Заказы обрабатываются',
checkTranslations: 'Переводы заполнены',
checkHomepage: 'Главная страница настроена',
checkBackend: 'Связь с бэкендом',
checkPerformance: 'Производительность',
recommendImages: 'Добавьте изображения товарам без них',
recommendImagesCount: 'Товары без изображений снижают конверсию.',
recommendSeo: 'Заполните SEO для товаров без него',
recommendSeoCount: 'Отсутствие SEO ухудшает видимость в поиске.',
recommendCategory: 'Назначьте категорию товарам без категории',
recommendCategoryCount: 'Товары без категории труднее найти.',
recommendEmptyCategories: 'Категории без товаров',
recommendEmptyCategoriesCount: 'Рассмотрите объединение или удаление пустых категорий.',
recommendHomepage: 'Главная страница не заполнена',
recommendStaticPages: 'Есть неопубликованные статические страницы',
severity: {
info: 'Инфо',
warning: 'Внимание',
critical: 'Критично',
},
},
adminShell: {
skipToContent: 'Перейти к содержимому',
sidebarLabel: 'Навигация панели администратора',
openSidebar: 'Открыть меню',
closeSidebar: 'Закрыть меню',
collapseSidebar: 'Свернуть меню',
expandSidebar: 'Развернуть меню',
nav: {
dashboard: 'Панель управления',
catalogGroup: 'Каталог',
products: 'Товары',
categories: 'Категории',
orders: 'Заказы',
customers: 'Клиенты',
moderation: 'Отзывы и модерация',
transactions: 'Транзакции',
reviews: 'Отзывы',
reports: 'Отчёты',
partnersGroup: 'Партнёры',
sellerManagement: 'Управление продавцами',
content: 'Контент',
mediaLibrary: 'Медиатека',
marketplaceBuilder: 'Конструктор маркетплейса',
users: 'Пользователи',
settings: 'Настройки',
monitoring: 'Мониторинг',
analytics: 'Аналитика',
documentation: 'Документация',
help: 'Помощь',
logout: 'Выйти',
comingSoonBadge: 'Скоро',
},
topbar: {
searchLabel: 'Поиск по админ-панели',
searchPlaceholder: 'Искать товары, заказы, страницы...',
notifications: 'Уведомления',
notificationsEmpty: 'Новых уведомлений нет',
account: 'Аккаунт администратора',
tenantSelector: 'Магазин',
tenantSelectorComingSoon: 'Переключение между магазинами скоро появится',
quickPublish: 'Опубликовать',
quickPublishComingSoon: 'Быстрая публикация скоро появится',
},
breadcrumbHome: 'Админ-панель',
pages: {
dashboard: { title: 'Панель управления', description: 'Обзор состояния вашего маркетплейса' },
products: { title: 'Товары', description: 'Управляйте карточками товаров и их видимостью' },
productCreate: { title: 'Новый товар', description: 'Заполните карточку, чтобы добавить товар в каталог' },
productEdit: { title: 'Редактирование товара', description: 'Измените данные товара' },
productDuplicate: { title: 'Копия товара', description: 'Создайте новый товар на основе существующего' },
categories: { title: 'Категории', description: 'Постройте дерево категорий каталога' },
categoryCreate: { title: 'Новая категория', description: 'Добавьте категорию в дерево каталога' },
categoryEdit: { title: 'Редактирование категории', description: 'Измените данные категории' },
orders: { title: 'Заказы', description: 'Просматривайте и обрабатывайте заказы покупателей' },
orderDetail: { title: 'Заказ', description: 'Детали и статус заказа' },
customers: { title: 'Клиенты', description: 'Все, кто оформлял заказ' },
customerDetail: { title: 'Клиент', description: 'Профиль клиента, заказы и активность' },
moderation: { title: 'Отзывы и модерация', description: 'Проверяйте и модерируйте отзывы клиентов' },
reviewDetail: { title: 'Отзыв', description: 'Детали отзыва и действия модерации' },
reportsQueue: { title: 'Очередь жалоб', description: 'Контент, на который пожаловались клиенты' },
transactions: { title: 'Транзакции', description: 'Платежи, возвраты и проверка мошенничества' },
media: { title: 'Медиатека', description: 'Изображения и файлы для товаров и страниц' },
users: { title: 'Пользователи', description: 'Команда администраторов и права доступа' },
monitoring: { title: 'Мониторинг', description: 'Состояние очередей, вебхуков и системных событий' },
analytics: { title: 'Аналитика', description: 'Продажи, товары и поведение покупателей' },
sellerManagement: { title: 'Управление продавцами', description: 'Подключайте независимых продавцов к вашему маркетплейсу с централизованным администрированием' },
reports: { title: 'Отчёты', description: 'Экспорт отчётов по продажам, товарам и состоянию маркетплейса' },
settings: { title: 'Настройки', description: 'Настройки отображения панели управления' },
},
},
adminSellerManagement: {
emptyState: {
title: 'Управление продавцами',
description: 'Позвольте торговым центрам, маркетплейсам и корпоративным клиентам подключать независимых продавцов, сохраняя централизованное администрирование. Этот модуль сейчас в разработке.',
requestAccess: 'Запросить доступ',
learnMore: 'Узнать больше',
},
requestDialog: {
title: 'Запросить доступ',
companyLabel: 'Компания',
companyPlaceholder: 'Название вашей компании',
emailLabel: 'Email',
emailPlaceholder: 'you@company.com',
messageLabel: 'Сообщение',
messagePlaceholder: 'Расскажите о вашем маркетплейсе и потребностях в продавцах',
cancel: 'Отмена',
send: 'Отправить запрос',
},
requestSuccessDialog: {
title: 'Спасибо',
message: 'Наша команда получила ваш запрос. Мы свяжемся с вами, как только Управление продавцами станет доступно.',
close: 'Закрыть',
},
learnMoreDialog: {
title: 'Управление продавцами',
comingSoonBadge: 'Скоро',
features: {
sellerDashboards: 'Личные кабинеты продавцов',
sellerStorefronts: 'Витрины продавцов',
sellerPermissions: 'Права доступа продавцов',
sellerAnalytics: 'Аналитика продавцов',
productOwnership: 'Владение товарами',
marketplaceAdministration: 'Администрирование маркетплейса',
},
close: 'Закрыть',
},
},
};