feat(i18n, agents, players): enhance localization and improve agent and player management interfaces
Some checks failed
lotteryadmin CI / build (push) Has been cancelled

Updated localization files for English and Nepali, adding new entries and refining existing translations for better clarity. Enhanced the agent management interface with improved delegation features and child agent creation prompts. Improved player management functionalities, including confirmation dialogs for player actions and better handling of player creation and editing processes.
This commit is contained in:
2026-06-16 17:08:12 +08:00
parent a020e34a7d
commit b924496a26
25 changed files with 4273 additions and 3239 deletions

View File

@@ -1,249 +1,397 @@
{
"title": "Agent management",
"sitesListHint": "For integration keys and callbacks, go to",
"sitesListLink": "Config · Connected sites",
"lineUi": {
"kicker": "Credit share · Agent tree",
"agentCount": "{{count}} agents in this group",
"searchPlaceholder": "Search name or login",
"directChildren": "{{count}} direct downline",
"selectAgent": "Select an agent to view share & credit",
"selectAgentHint": "Settlement boundaries follow the agent tree; share, credit and rebate are configured per node.",
"allocatedCredit": "Allocated",
"availableCredit": "Available",
"profileFootnote": "Rebate cap {{rebate}}% · Default {{defaultRebate}}%",
"tabOverview": "Overview",
"tabProfile": "Share & credit",
"tabProfileReadOnly": "Share & credit (read-only)",
"currentSite": "Site",
"viewAll": "View all",
"shareRebateCap": "Rebate cap {{rate}}%",
"overviewDownlineCard": "View and manage direct downline agents",
"overviewDownlineCount": "{{count}}",
"overviewPlayersHint": "View direct players and credit status",
"overviewPlayersSummary": "Player management",
"downlineEmptyTitle": "No direct downline yet",
"editAccount": "Account & status",
"saveProfile": "Save share & credit",
"tabDownline": "Downline",
"tabPlayers": "Players",
"noDelegatedTabs": "This agent cannot create downline agents or players; only share and credit settings apply."
},
"listTitle": "Agents",
"listSearch": "Search name / code / login",
"siteSearch": "Search site name",
"parentAgent": "Parent",
"childrenCount": "Direct downline",
"subnav": {
"label": "Agent management navigation",
"noPermission": "No permission",
"operations": "Line & agent tree",
"provision": "Provision level-1 agent",
"settlementBills": "Periods & bills",
"provisionHint": "One-time onboarding; use Line & agent tree for daily work"
},
"includeRoots": "Include root nodes",
"includeRootsHint": "Root nodes represent site boundaries and are excluded from operating agent counts by default.",
"directoryStatus": {
"all": "All statuses",
"enabled": "Enabled only",
"disabled": "Disabled only"
},
"tabs": {
"subordinates": "Subordinates",
"accounts": "Primary account",
"players": "Players",
"overview": "Overview",
"roles": "Roles",
"users": "Accounts",
"delegation": "Delegation ceiling"
},
"filterParent": "Parent agent",
"filterParentAll": "All subordinates",
"listFlatHint": "All operating agents in a flat list. Use row actions to add a child under a specific agent.",
"addChildNeedParent": "Select a parent agent before adding a subordinate",
"treeTitle": "Agent tree",
"detailTitle": "Node details",
"selectNode": "Select an agent node from the tree",
"loadFailed": "Failed to load agent tree",
"lineFilter": "Level-1 agent",
"bindAccountHint": "No login account is bound yet. Saving will create and bind one automatically.",
"bindAccountPasswordRequired": "This agent has no login account yet. Enter an initial password to create one.",
"childrenCount": "Direct downline",
"code": "Code",
"codeRequired": "Code and name are required",
"createChild": "Add child agent",
"viewDownline": "View sub-agents and players",
"downlineDialogTitle": "{{name}} — sub-agents and players",
"downlineAgentsSection": "Sub-agents",
"downlinePlayersSection": "Direct players",
"downlineNoAgents": "No sub-agents yet",
"editNode": "Edit node",
"deleteNode": "Delete node",
"deleteNodeConfirm": "This action cannot be undone. Make sure the node has no children, users, or roles.",
"deleteNodeBlockedHint": "Remove child agents, roles, and accounts before deleting this node",
"deleteNodeBlockedPrefix": "Cannot delete yet: ",
"createSuccess": "Created agent {{name}}",
"delegation": {
"canDelegate": "May delegate further",
"empty": "No actions available to assign",
"hint": "Select actions this child agent may grant to its own subordinates. Agent roles cannot exceed this ceiling.",
"permission": "Action",
"rootDenied": "Root nodes do not use delegation ceilings",
"save": "Save ceiling",
"saveSuccess": "Delegation ceiling saved",
"title": "Delegation ceiling"
},
"deleteBlocked": {
"children": "{{count}} child agent(s) remain",
"roles": "{{count}} role(s) must be removed in the Roles tab first",
"users": "{{count}} bound account(s) remain"
},
"code": "Code",
"name": "Name",
"namePlaceholder": "Enter agent name",
"depth": "Depth",
"path": "Path",
"status": "Status",
"isRoot": "Root",
"createSuccess": "Created agent {{name}}",
"updateSuccess": "Updated {{name}}",
"deleteNode": "Delete node",
"deleteNodeBlockedHint": "Remove child agents, roles, and accounts before deleting this node",
"deleteNodeBlockedPrefix": "Cannot delete yet: ",
"deleteNodeConfirm": "This action cannot be undone. Make sure the node has no children, users, or roles.",
"deleteSuccess": "Deleted agent {{name}}",
"saveFailed": "Save failed",
"codeRequired": "Code and name are required",
"nameRequired": "Agent name is required",
"usernameRequired": "Login name is required",
"passwordRequired": "Password is required",
"passwordMinLength": "Password must be at least 8 characters",
"bindAccountPasswordRequired": "This agent has no login account yet. Enter an initial password to create one.",
"bindAccountHint": "No login account is bound yet. Saving will create and bind one automatically.",
"modelGuide": "Agent layer controls data scope and delegation ceiling. Account permissions are assigned through roles.",
"pageGuide": "Manage the agent tree, agent roles, agent accounts, and delegation ceilings here. Platform accounts and platform roles stay in platform governance pages.",
"summary": {
"currentSiteNodes": "Current site nodes",
"currentSiteAgents": "Current site operating agents",
"visibleList": "Current flat list rows",
"visibleAgents": "Current visible operating agents",
"globalNodes": "All-site node total",
"globalAgents": "All-site operating agents",
"enabledAgents": "Enabled operating agents",
"rootNodes": "Root node count"
},
"profile": {
"section": "Share & credit",
"totalShareRate": "Share rate (%)",
"creditLimit": "Credit limit",
"rebateLimit": "Rebate ceiling (%)",
"defaultPlayerRebate": "Default player rebate (%)",
"settlementCycle": "Settlement cycle",
"canGrantExtraRebate": "Allow extra rebate",
"canCreatePlayer": "Allow creating players",
"canCreateChildAgent": "Allow creating sub-agents",
"cycleDaily": "Daily",
"cycleWeekly": "Weekly",
"cycleMonthly": "Monthly",
"loading": "Loading share and credit settings…",
"loadFailed": "Failed to load share and credit settings. Close and try again.",
"loadingBlocked": "Share and credit settings are still loading. Please wait before saving.",
"validation": {
"shareRange": "Share rate must be between 0 and 100",
"creditInvalid": "Credit limit cannot be negative",
"creditBelowAllocated": "Credit limit cannot be below allocated credit (minimum {{min}})",
"creditExceedsParentWithMax": "Credit limit cannot exceed {{max}}",
"rebateLimitRange": "Rebate ceiling must be between 0 and 100%",
"defaultRebateRange": "Default player rebate must be between 0 and 100%",
"defaultExceedsLimit": "Default player rebate cannot exceed the rebate ceiling"
}
},
"settlementBills": {
"title": "Agent bills",
"description": "Bills appear after a period is closed; latest period is selected by default.",
"periodLabel": "Period",
"periodPlaceholder": "Select period",
"allPeriods": "All periods",
"filteredByPeriodRange": "Bills for {{range}}",
"emptyNoPeriodsManage": "No periods or bills yet. Use quick presets under Period management, then close the period.",
"emptyNoPeriodsAgent": "No bills yet. Your upline or platform will close periods; you do not need to enter dates.",
"emptyNoClosed": "No closed period yet. Bills are generated after close.",
"typePlayer": "Player bill",
"typeAgent": "Agent bill",
"columns": {
"id": "ID",
"period": "Period",
"type": "Type",
"net": "Net",
"unpaid": "Unpaid",
"status": "Status"
}
},
"settlementPeriods": {
"manageTitle": "Period management",
"manageHint": "Open and close periods here; bills above update automatically. Quick presets are usually enough.",
"presetThisWeek": "This week",
"presetLastWeek": "Last week",
"presetThisMonth": "This month",
"openHint": "Local dates ({{tz}})",
"startDate": "Start date",
"endDate": "End date",
"open": "Open period",
"openFailed": "Failed to open period",
"datesRequired": "Enter start and end dates",
"invalidRange": "End date cannot be before start date",
"statusOpen": "Open",
"statusClosed": "Closed"
"depth": "Depth",
"detailTitle": "Node details",
"directoryStatus": {
"all": "All statuses",
"disabled": "Disabled only",
"enabled": "Enabled only"
},
"downlineAgentsSection": "Sub-agents",
"downlineDialogTitle": "{{name}} — sub-agents and players",
"downlineNoAgents": "No sub-agents yet",
"downlinePlayersSection": "Direct players",
"editNode": "Edit node",
"filterParent": "Parent agent",
"filterParentAll": "All subordinates",
"includeRoots": "Include root nodes",
"includeRootsHint": "Root nodes represent site boundaries and are excluded from operating agent counts by default.",
"isRoot": "Root",
"lineFilter": "Level-1 agent",
"lineProvision": {
"title": "Create level-1 agent",
"description": "Creates the level-1 agent, admin login, and line settings (share, credit, rebate, settlement cycle) in one step.",
"link": "Create level-1 agent",
"name": "Level-1 agent name",
"username": "Admin login",
"noUnboundSite": "No sites without a level-1 agent",
"openIntegrationSites": "Go to integration sites",
"password": "Initial password",
"walletUrl": "Wallet API URL (optional technical field)",
"passwordHint": "At least 8 characters",
"secretsOnce": "Integration secrets are shown once — save them now",
"siteCode": "Integration site",
"siteCodePlaceholder": "Select site",
"siteRequired": "Select an integration site",
"submit": "Create level-1 agent",
"success": "Level-1 agent created",
"secretsOnce": "Integration secrets are shown once — save them now",
"link": "Create level-1 agent"
"title": "Create level-1 agent",
"username": "Admin login",
"walletUrl": "Wallet API URL (optional technical field)"
},
"lineUi": {
"agentCount": "{{count}} agents in this group",
"allocatedCredit": "Allocated",
"availableCredit": "Available",
"collapse": "Collapse",
"currentSite": "Site",
"directChildren": "{{count}} direct downline",
"downlineColumns": {
"downlineCount": "Downline count",
"email": "Email"
},
"downlineEmpty": "No direct downline yet. Child agents will appear here after creation.",
"downlineEmptyShort": "No direct downline yet.",
"downlineEmptyTitle": "No direct downline yet",
"editAccount": "Account & status",
"editCurrent": "Edit this agent",
"expand": "Expand",
"kicker": "Credit share · Agent tree",
"nextSteps": "Suggested next steps",
"noDelegatedTabs": "This agent cannot create downline agents or players; only share and credit settings apply.",
"overviewDownlineCard": "View and manage direct downline agents",
"overviewDownlineCount": "{{count}}",
"overviewDownlineHint": "{{count}} direct downline agent(s). Manage them in the Downline tab.",
"overviewPlayersHint": "View direct players and credit status",
"overviewPlayersSummary": "Player management",
"playersNoPermissionHint": "This account does not have player management permission on this node.",
"playersUnavailableHint": "This agent cannot create players. Enable “Allow create player” in the agent profile first.",
"profileFootnote": "Rebate cap {{rebate}}% · Default {{defaultRebate}}%",
"profileReadOnlyHint": "Share, credit, and rebate are configured by your upline. Contact your parent agent or the platform to request changes.",
"profileTabHint": "Maintain share, credit, rebate, and risk tags here. Use Account & status for login name and password.",
"saveProfile": "Save share & credit",
"searchPlaceholder": "Search name or login",
"selectAgent": "Select an agent to view share & credit",
"selectAgentHint": "Settlement boundaries follow the agent tree; share, credit and rebate are configured per node.",
"selfAgentOverviewHint": "Credit below is allocated by your upline. Share and rebate are maintained upstream; this account cannot view or edit them.",
"shareRebateCap": "Rebate cap {{rate}}%",
"sidebarAvailableCredit": "Available to grant {{amount}}",
"sidebarShareRate": "Share {{rate}}%",
"stepDownline": "Manage direct downline ({{count}} now)",
"stepPlayers": "Create or maintain direct players",
"stepProfile": "Configure share, credit, and rebate",
"tabDownline": "Downline",
"tabOverview": "Overview",
"tabPlayers": "Players",
"tabProfile": "Share & credit",
"tabProfileReadOnly": "Share & credit (read-only)",
"viewAll": "View all"
},
"listFlatHint": "All operating agents in a flat list. Use row actions to add a child under a specific agent.",
"listSearch": "Search name / code / login",
"listTitle": "Agents",
"loadFailed": "Failed to load agent tree",
"modelGuide": "Agent layer controls data scope and delegation ceiling. Account permissions are assigned through roles.",
"name": "Name",
"namePlaceholder": "Enter agent name",
"nameRequired": "Agent name is required",
"noAccess": "You do not have permission to manage agents. Contact an administrator.",
"pageGuide": "Manage the agent tree, agent roles, agent accounts, and delegation ceilings here. Platform accounts and platform roles stay in platform governance pages.",
"parentAgent": "Parent",
"passwordMinLength": "Password must be at least 8 characters",
"passwordOptionalHint": "Leave empty to keep unchanged, or enter an 8-character password",
"passwordPlaceholder": "Enter an 8-character password",
"passwordRequired": "Password is required",
"path": "Path",
"playersPanel": {
"create": "Create player",
"scopedTo": "Direct players: {{agent}}",
"allUnderSite": "Players visible on this site",
"authSource": "Auth source",
"availableToGrant": "Agent available to grant: {{amount}}",
"create": "Create player",
"createSuccessNative": "Player {{name}} created — use lottery /login",
"creditLimit": "Credit limit",
"creditLimitAvailable": "Credit limit / available",
"creditLimitExceeded": "Credit limit cannot exceed this agents available grant",
"creditLimitInvalid": "Credit limit must be an integer ≥ 0",
"creditListHint": "Credit line: below shows player credit limits and available credit, not main-site wallet balance.",
"externalIdHint": "Leave blank to auto-generate",
"externalIdOptional": "External ID (optional)",
"filterHint": "Filter direct players by parent agent.",
"fundingMode": "Funding mode",
"initialPassword": "Initial password",
"loginRequired": "Enter login username and initial password",
"loginUsername": "Login username",
"initialPassword": "Initial password",
"externalIdOptional": "External ID (optional)",
"externalIdHint": "Leave blank to auto-generate",
"creditLimit": "Credit limit",
"passwordHint": "At least 8 characters",
"passwordMinLength": "Initial password must be at least 8 characters",
"playerRef": "Player ref",
"rebateInherited": "Inherit agent default rebate",
"rebateRate": "Rebate rate (%)",
"rebateRateHint": "Enter percent, e.g. 5 = 5%",
"availableToGrant": "Agent available to grant: {{amount}}",
"rebateRateInvalid": "Rebate rate must be between 0 and 100%",
"riskTags": "Risk tags",
"riskTagsPlaceholder": "Comma-separated",
"createSuccessNative": "Player {{name}} created — use lottery /login"
"scopedTo": "Direct players: {{agent}}",
"siteCode": "Line site",
"usernameNickname": "Username / nickname"
},
"delegation": {
"title": "Delegation ceiling",
"hint": "Select actions this child agent may grant to its own subordinates. Agent roles cannot exceed this ceiling.",
"permission": "Action",
"canDelegate": "May delegate further",
"save": "Save ceiling",
"saveSuccess": "Delegation ceiling saved",
"empty": "No actions available to assign",
"rootDenied": "Root nodes do not use delegation ceilings"
"profile": {
"availableCredit": "Available to grant {{amount}}",
"canCreateChildAgent": "Allow creating sub-agents",
"canCreatePlayer": "Allow creating players",
"canGrantExtraRebate": "Allow extra rebate",
"capabilityHint": "Takes effect on this agents primary account after save. If the platform Agent role included player/node management, login permissions are now tightened by these switches.",
"creditLimit": "Credit limit",
"cycleDaily": "Daily",
"cycleMonthly": "Monthly",
"cycleWeekly": "Weekly",
"defaultPlayerRebate": "Default player rebate (%)",
"loadFailed": "Failed to load share and credit settings. Close and try again.",
"loading": "Loading share and credit settings…",
"loadingBlocked": "Share and credit settings are still loading. Please wait before saving.",
"parentCaps": "Parent share {{share}}%, available to grant {{credit}}",
"rebateLimit": "Rebate ceiling (%)",
"relativeShareRate": "Share rate (% of parent)",
"relativeShareRateValue": "{{rate}}% of parent",
"riskTags": "Risk tags",
"riskTagsPlaceholder": "Comma-separated, e.g. overdue, high_turnover",
"saveSuccess": "Share and credit settings saved",
"section": "Share & credit",
"settlementCycle": "Settlement cycle",
"totalShareRate": "Share rate (%)",
"validation": {
"creditBelowAllocated": "Credit limit cannot be below allocated credit (minimum {{min}})",
"creditExceedsParentWithMax": "Credit limit cannot exceed {{max}}",
"creditInvalid": "Credit limit cannot be negative",
"defaultExceedsLimit": "Default player rebate cannot exceed the rebate ceiling",
"defaultRebateRange": "Default player rebate must be between 0 and 100%",
"rebateLimitRange": "Rebate ceiling must be between 0 and 100%",
"shareRange": "Share rate must be between 0 and 100"
}
},
"roles": {
"title": "Agent roles",
"create": "Create role",
"permissions": "Permissions",
"slug": "Slug",
"userCount": "Users",
"createSuccess": "Created role {{name}}",
"updateSuccess": "Updated role {{name}}",
"deleteSuccess": "Deleted role {{name}}",
"permissionSaveSuccess": "Permissions updated",
"readOnlyTemplate": "Read-only template",
"groupSelectedCount": "{{selected}} / {{total}}",
"inUse": "{{count}} in use",
"permissionSubsetHint": "Only permissions you hold can be assigned"
"noAssignablePermissions": "No permissions available to assign",
"permissionSaveSuccess": "Permissions updated",
"permissionSubsetHint": "Only permissions you hold can be assigned",
"permissions": "Permissions",
"readOnlyTemplate": "Read-only template",
"selectGroup": "Select all in group",
"selectedCount": "{{selected}} / {{total}} selected",
"slug": "Slug",
"title": "Agent roles",
"updateSuccess": "Updated role {{name}}",
"userCount": "Users"
},
"saveFailed": "Save failed",
"selectNode": "Select an agent node from the tree",
"settlementBills": {
"allPeriods": "All periods",
"clearPeriodFilter": "Show all periods",
"columns": {
"counterparty": "Counterparty",
"grossWinLoss": "Win/Loss",
"id": "ID",
"net": "Net",
"party": "Party",
"period": "Period",
"status": "Status",
"type": "Type",
"unpaid": "Unpaid"
},
"confirm": "Confirm bill",
"confirmed": "Confirmed",
"description": "Bills appear after a period is closed; latest period is selected by default.",
"detail": "Details",
"emptyNoClosed": "No closed period yet. Bills are generated after close.",
"emptyNoPeriodsAgent": "No bills yet. Your upline or platform will close periods; you do not need to enter dates.",
"emptyNoPeriodsManage": "No periods or bills yet. Use quick presets under Period management, then close the period.",
"filteredByPeriod": "Showing bills for period #{{id}} only",
"filteredByPeriodRange": "Bills for {{range}}",
"grossWinLoss": "Win/Loss (gross_win_loss)",
"paid": "Payment recorded",
"paymentAmount": "Payment amount",
"periodLabel": "Period",
"periodPlaceholder": "Select period",
"platform": "Platform",
"platformRounding": "Platform rounding",
"rebateAmount": "Rebate",
"recordPayment": "Record payment",
"shareProfit": "Share profit",
"subtreeSummary": "Subtree summary",
"title": "Agent bills",
"typeAgent": "Agent bill",
"typePlayer": "Player bill"
},
"settlementPeriods": {
"close": "Close period and generate bills",
"closeFailed": "Failed to close period",
"closed": "Period closed; bills generated",
"datesRequired": "Enter start and end dates",
"empty": "No periods yet. Choose a quick preset and open a period.",
"end": "End",
"endDate": "End date",
"hideAdvanced": "Hide custom dates",
"invalidRange": "End date cannot be before start date",
"manageHint": "Open and close periods here; bills above update automatically. Quick presets are usually enough.",
"manageTitle": "Period management",
"open": "Open period",
"openFailed": "Failed to open period",
"openHint": "Local dates ({{tz}})",
"openWithPreset": "Apply quick preset",
"opened": "Period opened",
"presetHint": "Quick period presets (recommended)",
"presetLastWeek": "Last week",
"presetThisMonth": "This month",
"presetThisWeek": "This week",
"range": "Period",
"showAdvanced": "Custom start/end dates",
"start": "Start",
"startDate": "Start date",
"status": "Status",
"statusClosed": "Closed",
"statusOpen": "Open",
"title": "Agent periods",
"viewBills": "Bills"
},
"settlementReports": {
"columns": {
"agentId": "Agent ID",
"allocated": "Allocated",
"amount": "Amount",
"available": "Available",
"billId": "Bill",
"billType": "Type",
"code": "Code",
"count": "Count",
"creditLimit": "Credit limit",
"drawNo": "Draw no.",
"frozen": "Frozen",
"gameType": "Play",
"grossWinLoss": "Win/Loss",
"name": "Name",
"overdueDays": "Overdue days",
"player": "Player",
"rebate": "Rebate",
"rebateType": "Rebate type",
"status": "Status",
"unpaid": "Unpaid",
"used": "Used"
},
"credit": {
"agents": "Agent credit",
"players": "Player credit"
},
"description": "Report set: player win/loss, agent share, rebate, credit, unpaid/overdue bills, and platform P/L.",
"footnote": "These reports use credit-line period semantics, not legacy wallet commission/rebate reports.",
"noPeriodHint": "When no specific period is selected, the last 7 days are used. Platform P/L requires a period.",
"platformPnl": {
"billNet": "Platform bill net",
"periodRequired": "Select a specific period to view platform P/L.",
"rounding": "Rounding adjustment",
"shareProfit": "Share profit (metadata)"
},
"rebate": {
"accrued": "Accrued",
"allocated": "Allocated",
"inBill": "In bill",
"settled": "Settled"
},
"summary": {
"billCount": "Bill count",
"overdueCount": "Overdue bills",
"platformRounding": "Total platform rounding",
"totalNet": "Total net",
"totalUnpaid": "Total unpaid"
},
"title": "Period reports (credit share line)",
"type": "Report type",
"types": {
"agent_share": "Agent share",
"credit": "Credit",
"draw_period": "By draw",
"overdue": "Overdue",
"platform_pnl": "Platform P/L",
"player_win_loss": "Player win/loss",
"rebate": "Rebate",
"summary": "Summary",
"unpaid_bills": "Unpaid bills"
}
},
"siteSearch": "Search site name",
"sitesListHint": "For integration keys and callbacks, go to",
"sitesListLink": "Config · Connected sites",
"status": "Status",
"subnav": {
"label": "Agent management navigation",
"noPermission": "No permission",
"operations": "Line & agent tree",
"provision": "Provision level-1 agent",
"provisionHint": "One-time onboarding; use Line & agent tree for daily work",
"settlementBills": "Periods & bills"
},
"summary": {
"currentSiteAgents": "Current site operating agents",
"currentSiteNodes": "Current site nodes",
"enabledAgents": "Enabled operating agents",
"globalAgents": "All-site operating agents",
"globalNodes": "All-site node total",
"rootNodes": "Root node count",
"visibleAgents": "Current visible operating agents",
"visibleList": "Current flat list rows"
},
"tabs": {
"accounts": "Primary account",
"delegation": "Delegation ceiling",
"overview": "Overview",
"players": "Players",
"roles": "Roles",
"subordinates": "Subordinates",
"users": "Accounts"
},
"title": "Agent management",
"treeTitle": "Agent tree",
"updateSuccess": "Updated {{name}}",
"usernamePlaceholder": "Enter login username",
"usernameRequired": "Login name is required",
"users": {
"title": "Agent accounts",
"create": "Create account",
"username": "Username",
"createSuccess": "Created account {{name}}",
"deleteConfirm": "This admin will no longer be able to sign in. This cannot be undone.",
"deleteSuccess": "Deleted account {{name}}",
"email": "Email",
"password": "Password",
"roles": "Roles",
"createSuccess": "Created account {{name}}",
"roleSaveSuccess": "Roles updated for {{name}}",
"deleteConfirm": "This admin will no longer be able to sign in. This cannot be undone.",
"deleteSuccess": "Deleted account {{name}}"
"roles": "Roles",
"title": "Agent accounts",
"username": "Username"
},
"usernamePlaceholder": "Enter login username",
"passwordPlaceholder": "Enter an 8-character password",
"passwordOptionalHint": "Leave empty to keep unchanged, or enter an 8-character password"
"viewDownline": "View sub-agents and players"
}