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:
@@ -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: {
|
||||
|
||||
Reference in New Issue
Block a user