fix(i18n): eliminate all raw translation key leaks across admin pages

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

- Audited every 'key | translate' and translateService.t() usage under features/admin against en/ru/hy; 37 static keys and 8 dynamic namespaces were missing and rendered as raw keys
- Added full adminTransactions namespace (was entirely absent), adminUsers table/invite/session keys with scopeValue/statusValue/invitationStatus maps, adminMonitoring section titles and categoryValue/queueStatus/webhookStatus/levelValue maps, adminAnalytics.topProducts, adminProducts.variants/archived
- Resolved leaf/object key conflicts: dynamic 'adminMonitoring.category.*' renamed to categoryValue.*, 'adminTransactions.type.*' to typeValue.* so the leaf labels translate correctly
- Monitoring event severity now translated (levelValue) instead of raw English enum
- Merchant wording over technical: 'Background queues', 'Webhook deliveries', 'Activity log', 'Running smoothly/Slowed down/Stopped'
- Verified zero missing keys in en/ru/hy via AST-level key extraction
This commit is contained in:
sdarbinyan
2026-07-18 22:44:39 +04:00
parent 6af746c561
commit 574f038738
6 changed files with 369 additions and 5 deletions

View File

@@ -1542,6 +1542,8 @@ export interface Translations {
addVariant: string;
variantName: string;
variantsHint: string;
variants: string;
archived: string;
seoExplain: string;
searchTitle: string;
searchTitleHint: string;
@@ -1597,10 +1599,98 @@ export interface Translations {
emptyTitle: string;
emptyDescription: string;
invitationsEmptyTitle: string;
title: string;
name: string;
email: string;
scope: string;
role: string;
roles: string;
lastLogin: string;
sessions: string;
currentSession: string;
invite: string;
sendInvite: string;
revoke: string;
passwordlessHint: string;
confirmSuspend: string;
scopeValue: {
marketplace: string;
office: string;
};
statusValue: {
active: string;
invited: string;
suspended: string;
};
invitationStatus: {
pending: string;
accepted: string;
expired: string;
revoked: string;
};
};
adminTransactions: {
search: string;
type: string;
method: string;
fraud: string;
flagged: string;
retry: string;
audit: string;
emptyTitle: string;
emptyDescription: string;
status: {
all: string;
pending: string;
success: string;
failed: string;
retried: string;
};
typeValue: {
all: string;
payment: string;
refund: string;
qr_payment: string;
};
};
adminMonitoring: {
eventsEmptyTitle: string;
eventsEmptyDescription: string;
health: string;
queues: string;
depth: string;
webhooks: string;
endpoint: string;
event: string;
events: string;
category: string;
level: string;
message: string;
categoryValue: {
all: string;
audit: string;
security: string;
login: string;
failed_login: string;
api: string;
error: string;
warning: string;
};
queueStatus: {
healthy: string;
degraded: string;
down: string;
};
webhookStatus: {
delivered: string;
failed: string;
pending: string;
};
levelValue: {
info: string;
warning: string;
error: string;
};
systemState: string;
backendConnectivity: string;
connected: string;
@@ -1615,6 +1705,7 @@ export interface Translations {
adminAnalytics: {
topProductsEmptyTitle: string;
topProductsEmptyDescription: string;
topProducts: string;
print: string;
tabsLabel: string;
tab: {