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:
@@ -45,4 +45,31 @@ export class AdminUsersPageComponent {
|
||||
}
|
||||
this.facade.setStatus(userId, next);
|
||||
}
|
||||
|
||||
private static readonly PERMISSION_KEYS: Record<string, string> = {
|
||||
'*': 'all',
|
||||
'products.manage': 'productsManage',
|
||||
'products.view': 'productsView',
|
||||
'categories.manage': 'categoriesManage',
|
||||
'orders.manage': 'ordersManage',
|
||||
'orders.view': 'ordersView',
|
||||
'media.manage': 'mediaManage',
|
||||
};
|
||||
|
||||
readonly roleLabel = (roleId: string): string => this.translate.t('adminUsers.roleValue.' + roleId);
|
||||
|
||||
readonly permissionLabel = (code: string): string => {
|
||||
const key = AdminUsersPageComponent.PERMISSION_KEYS[code];
|
||||
return key ? this.translate.t('adminUsers.permission.' + key) : code;
|
||||
};
|
||||
|
||||
auditText(entry: { eventKey: 'roleChanged' | 'statusChanged'; roleId?: string; status?: AdminUserStatus }): string {
|
||||
if (entry.eventKey === 'roleChanged' && entry.roleId) {
|
||||
return this.translate.t('adminUsers.audit.roleChanged', { role: this.roleLabel(entry.roleId) });
|
||||
}
|
||||
if (entry.eventKey === 'statusChanged' && entry.status) {
|
||||
return this.translate.t('adminUsers.audit.statusChanged', { status: this.translate.t('adminUsers.statusValue.' + entry.status) });
|
||||
}
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user