fix(backoffice): wording quality pass across orders, moderation, transactions, users, customers

- Replaced hardcoded English audit/timeline text (order status changes,
  review moderation events, user role/status changes) with proper
  adminXxx.timelineEvent.*/adminUsers.audit.* i18n keys, so Recent
  Activity/Timeline/Audit panels no longer mix English into ru/hy UI.
- Translated raw internal codes rendered directly to users: transaction
  payment method ('card'/'qr'/'cash_on_delivery' -> adminTransactions.methodValue.*)
  and user roles/permissions ('products.manage' etc -> adminUsers.roleValue.*/
  adminUsers.permission.*), replacing developer-facing enum leakage with
  real copy.
- Fixed wrong-noun list-footer counts: Orders/Transactions/Moderation
  list pages all reused adminProducts.items ("N товаров"/"N products")
  regardless of what was actually listed; each now has its own itemsCount
  key ("N заказов", "N транзакций", "N отзывов").
- Fixed customer detail page's "Back" button reusing adminOrders.back
  ("Back to orders") instead of a customers-specific label.
- Added translation keys to en/ru/hy + translations.ts interface for all
  of the above.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-25 21:20:37 +04:00
parent 72846b44b1
commit b909a195f7
28 changed files with 311 additions and 42 deletions

View File

@@ -1226,6 +1226,7 @@ export const ru: Translations = {
adminModeration: {
search: 'Поиск по клиенту, товару или тексту отзыва…',
selectAllRows: 'Выбрать все отзывы',
itemsCount: 'отзывов',
allStatuses: 'Все статусы',
allRatings: 'Все оценки',
rating: 'Оценка',
@@ -1282,6 +1283,16 @@ export const ru: Translations = {
rejected: 'Отклонён',
spam: 'Спам',
},
timelineEvent: {
submitted: 'Отзыв отправлен',
statusChanged: 'Статус изменён на «{{status}}»',
restored: 'Отзыв восстановлен',
hidden: 'Отзыв скрыт',
},
actor: {
admin: 'Администратор',
customer: 'Клиент',
},
targetType: {
product: 'Товар',
review: 'Отзыв',
@@ -1310,6 +1321,11 @@ export const ru: Translations = {
createdAt: 'Оформлен',
items: 'Товары',
timeline: 'Хронология',
timelineEvent: {
created: 'Заказ создан',
statusChanged: 'Статус изменён на «{{status}}»',
refundRequested: 'Запрошен возврат',
},
notes: 'Заметки для клиента',
internalNotes: 'Внутренние заметки',
addNote: 'Добавить заметку',
@@ -1344,6 +1360,7 @@ export const ru: Translations = {
refund_requested: 'Запрошен возврат',
refunded: 'Возвращён',
},
itemsCount: 'заказов',
ordersToday: 'Заказов сегодня',
paidCount: 'Оплачено',
customersCount: 'Клиенты',
@@ -1355,6 +1372,7 @@ export const ru: Translations = {
alertRefundRequested: 'заказов ждут запроса на возврат',
},
adminCustomers: {
back: 'Назад к клиентам',
search: 'Поиск по имени, email или телефону…',
name: 'Имя',
email: 'Email',
@@ -1744,11 +1762,34 @@ export const ru: Translations = {
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: 'Пометить как подозрительную',
@@ -1770,6 +1811,11 @@ export const ru: Translations = {
refund: 'Возврат',
qr_payment: 'Оплата по QR',
},
methodValue: {
card: 'Карта',
qr: 'QR-код',
cash_on_delivery: 'Наличными при получении',
},
},
adminMonitoring: {
eventsEmptyTitle: 'События не найдены',