diff --git "a/TaskTrackingSystem.Shared/Localization/AppLocalization.cs" "b/TaskTrackingSystem.Shared/Localization/AppLocalization.cs" new file mode 100644--- /dev/null +++ "b/TaskTrackingSystem.Shared/Localization/AppLocalization.cs" @@ -0,0 +1,2215 @@ +using System.Globalization; +using TaskTrackingSystem.Shared.Enums; + +namespace TaskTrackingSystem.Shared.Localization; + +public static class AppLocalization +{ + private static readonly IReadOnlyDictionary English = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + ["common.workspace"] = "Workspace", + ["common.signIn"] = "Sign In", + ["common.signOut"] = "Sign Out", + ["common.signOutTitle"] = "Sign Out?", + ["common.signOutDescription"] = "Are you sure you want to sign out of Taskify?", + ["common.cancel"] = "Cancel", + ["common.confirm"] = "Confirm", + ["common.confirmAction"] = "Confirm", + ["common.areYouSure"] = "Are you sure?", + ["common.cannotUndo"] = "This action cannot be undone.", + ["common.yes"] = "Yes", + ["common.no"] = "No", + ["common.ok"] = "OK", + ["common.score"] = "score", + ["common.save"] = "Save", + ["common.create"] = "Create", + ["common.update"] = "Update", + ["common.delete"] = "Delete", + ["common.confirmSignOut"] = "Yes, Sign Out", + ["common.listView"] = "List View", + ["common.chartView"] = "Chart View", + ["common.search"] = "Search", + ["common.reset"] = "Reset", + ["common.clear"] = "Clear", + ["common.all"] = "All", + ["common.loading"] = "Loading...", + ["common.close"] = "Close", + ["common.refresh"] = "Refresh", + ["common.openNavigation"] = "Open navigation", + ["common.closeNavigation"] = "Close navigation", + ["common.index"] = "No.", + ["common.exportExcel"] = "Export Excel", + ["common.exportPdf"] = "Export PDF", + ["common.actions"] = "Actions", + ["common.status"] = "Status", + ["common.priority"] = "Priority", + ["common.assignee"] = "Assignee", + ["common.project"] = "Project", + ["common.task"] = "Task", + ["common.taskProject"] = "Task / Project", + ["common.issue"] = "Issue", + ["common.user"] = "User", + ["common.systemAdmin"] = "System Admin", + ["common.role"] = "Role", + ["common.module"] = "Module", + ["common.name"] = "Name", + ["common.firstName"] = "First name", + ["common.lastName"] = "Last name", + ["common.username"] = "Username", + ["common.phone"] = "Phone", + ["common.phoneNumber"] = "Phone number", + ["common.keepHere"] = "Keep here", + ["common.moveToEnglish"] = "Move to English", + ["common.generating"] = "Generating...", + ["common.translationNotConfigured"] = "Translation is not configured.", + ["common.complete"] = "Complete", + ["common.aiGenerated"] = "AI generated", + ["common.needsReview"] = "Needs review", + ["common.missing"] = "Missing", + ["common.translationReview"] = "AI-generated content is ready for review. Check it before saving.", + ["common.description"] = "Description", + ["common.date"] = "Date", + ["common.startDate"] = "Start Date", + ["common.endDate"] = "End Date", + ["common.dueDate"] = "Due Date", + ["common.due"] = "Due", + ["common.hours"] = "Hours", + ["common.hoursAbbrev"] = "hrs", + ["common.risk"] = "Risk", + ["common.blocked"] = "Blocked", + ["common.overdue"] = "Overdue", + ["common.done"] = "Done", + ["common.inProgress"] = "In Progress", + ["common.todo"] = "To Do", + ["common.resolved"] = "Resolved", + ["common.clearStatus"] = "Clear", + ["common.none"] = "None", + ["common.unassigned"] = "Unassigned", + ["common.noDescription"] = "No description", + ["common.noneRecorded"] = "None recorded", + ["common.na"] = "N/A", + ["common.noAccessItems"] = "No access items are available for this role.", + ["common.accessDenied"] = "Access Denied", + ["common.error"] = "Error", + ["common.accessDeniedDescription"] = "You do not have permission to access this page. Please contact your system administrator.", + ["common.backToDashboard"] = "Back to Dashboard", + ["common.noDataYet"] = "No data yet", + ["common.createFirstEntry"] = "Create your first entry to get started.", + ["common.loadingAuditLogs"] = "Loading audit logs...", + ["common.loadingUsers"] = "Loading users...", + ["common.loadingProjects"] = "Loading projects...", + ["common.loadingTasks"] = "Loading tasks...", + ["common.searchPlaceholder"] = "Search by name, email, username...", + ["common.searchTasks"] = "Search Task", + ["common.searchByUser"] = "Search by user, action, module, or details...", + ["common.searchByTitle"] = "Search by title or project...", + ["common.searchByTitleOrProject"] = "Search by title or project...", + ["common.searchProjects"] = "Search projects...", + ["common.searchTeamMembers"] = "Search team members...", + ["common.searchProjectMembers"] = "Search project members...", + ["common.searchIssues"] = "Search issue title, description or assignee...", + ["common.searchByIssueAssignee"] = "Search Issues / Assignee", + ["common.searchUsers"] = "Search Users", + ["common.searchByName"] = "Search by name...", + ["common.newUser"] = "New User", + ["common.taskCode"] = "Task Code", + ["common.selectedMember"] = "Selected member", + ["common.loadingSpinner"] = "Loading...", + ["common.loadingIssues"] = "Loading issues...", + ["common.loadingTasksAndUsers"] = "Loading tasks and users...", + ["common.loadingProjectsAndUsers"] = "Loading projects and users...", + ["common.loadingProjectMembers"] = "Loading project members...", + ["common.loadingMembers"] = "Loading members...", + ["common.noResults"] = "No results found.", + ["pagination.showing"] = "Showing", + ["pagination.of"] = "of", + ["pagination.results"] = "results", + ["pagination.rowsPerPage"] = "Rows per page", + ["pagination.firstPage"] = "First page", + ["pagination.previousPage"] = "Previous page", + ["pagination.nextPage"] = "Next page", + ["pagination.lastPage"] = "Last page", + ["common.notApplicable"] = "Not applicable", + ["common.selectAll"] = "Select All", + ["common.deselectAll"] = "Deselect All", + ["common.selected"] = "selected", + ["common.viewDetails"] = "View details", + ["common.currentLanguage"] = "Switch language", + ["common.languageEnglish"] = "English", + ["common.languageBurmese"] = "Burmese", + ["common.allTasks"] = "All tasks", + ["common.allProjects"] = "All projects", + ["common.allRoles"] = "All Roles", + ["common.noProjectsFound"] = "No projects found.", + ["common.noTasksFound"] = "No tasks found.", + ["common.noTeamMembersFound"] = "No team members match your search criteria.", + ["common.noMembersMatchSearch"] = "No members match the current search.", + ["common.noTaskSelected"] = "No Task Selected", + ["task.selectTaskPrompt"] = "Select a task from the left panel to assign it to a team member.", + ["common.noProjectSelected"] = "No Project Selected", + ["common.noProject"] = "No Project", + ["common.currentlyAssigningTask"] = "Currently Assigning Task", + ["common.currentlyManaging"] = "Currently Managing", + ["common.selectProject"] = "Select Project", + ["common.selectTask"] = "Select task...", + ["common.issueTitle"] = "Issue Title", + ["common.issueDescription"] = "Description", + ["error.title"] = "Error", + ["error.heading"] = "Error", + ["error.processingRequest"] = "An error occurred while processing your request.", + ["error.requestId"] = "Request ID", + ["error.developmentMode"] = "Development Mode", + ["error.developmentDetails"] = "Switching to the Development environment will display more detailed information about the error that occurred.", + ["error.developmentWarning"] = "The Development environment should not be enabled for deployed applications.", + ["error.developmentSensitive"] = "It can expose sensitive exception details to end users.", + ["error.developmentInstructions"] = "For local debugging, set the ASPNETCORE_ENVIRONMENT environment variable to Development and restart the application.", + ["common.blockedStatus"] = "Blocked Status", + ["common.escalationLevel"] = "Escalation Level", + ["common.blockedBy"] = "Blocked By", + ["common.delayReason"] = "Delay Reason", + ["common.actualHours"] = "Actual Hours", + ["common.estimatedHours"] = "Estimated Hours", + ["common.assignedToMeOnly"] = "Assigned to me only", + ["common.saveAssignment"] = "Save Assignment", + ["common.saveAssignmentChanges"] = "Save Assignment Changes", + ["common.assignmentSaved"] = "Assignment saved successfully!", + ["task.assigneeUpdated"] = "Task assignee updated successfully!", + ["task.failedUpdateAssignee"] = "Failed to update assignee.", + ["task.failedLoadProjectMembers"] = "Failed to load project members.", + ["task.assigneeMustBelong"] = "Task assignee must belong to the selected project.", + ["task.titleRequiredEitherLanguage"] = "At least one task title is required.", + ["task.saveAssignmentTitle"] = "Save Assignment?", + ["task.saveAssignmentConfirm"] = "Are you sure you want to save this task assignment?", + ["project.saveAssignmentTitle"] = "Save Assignment?", + ["project.saveAssignmentConfirm"] = "Are you sure you want to save these project member assignments?", + ["issue.yesSave"] = "Yes, Save", + ["common.saveChanges"] = "Save Changes", + ["common.addIssue"] = "Add Issue", + ["common.addIssueTitle"] = "Add Issue?", + ["issue.saveAddConfirmMessage"] = "Are you sure you want to save this issue?", + ["issue.yesAdd"] = "Yes, Add", + ["common.editIssue"] = "Edit Issue", + ["common.noTaskSelectedForIssue"] = "No task selected", + ["common.unassignedMembers"] = "Unassigned", + ["common.removeOwnerFromTask"] = "Remove owner from this task", + + ["page.dashboard"] = "Dashboard", + ["page.managerDashboard"] = "Manager Dashboard", + ["page.employeeDashboard"] = "Employee Dashboard", + ["page.projects"] = "Projects", + ["page.reports"] = "Reports", + ["page.projectAssignment"] = "Project Assignment", + ["page.tasks"] = "Tasks", + ["page.kanbanBoard"] = "Kanban Board", + ["page.taskAssignment"] = "Task Assignment", + ["page.taskDetails"] = "Task Details", + ["page.issues"] = "Issues", + ["page.addIssue"] = "Add Issue", + ["page.taskReport"] = "Task Report", + ["page.timeTracking"] = "Time Tracking", + ["page.projectProgress"] = "Project Progress", + ["page.overdueTasks"] = "Overdue Tasks", + ["page.employeeReport"] = "Employee Report", + ["page.rolesAccess"] = "Roles & Access", + ["page.users"] = "Users", + ["page.auditLogs"] = "Audit Logs", + ["page.issueReport"] = "Issue Report", + ["page.projectList"] = "Project List", + ["page.taskList"] = "Task List", + ["page.taskBacklog"] = "Task Backlog", + ["page.roleLayouts"] = "Role Layouts", + + ["page.dashboard.desc"] = "A quick overview of work, risk, and progress.", + ["page.managerDashboard.desc"] = "Track projects, people, and delivery health.", + ["page.employeeDashboard.desc"] = "Focus on your tasks, due dates, and progress.", + ["page.projects.desc"] = "Manage project plans, timelines, and assignments.", + ["page.projectAssignment.desc"] = "Assign team members to the right projects.", + ["page.tasks.desc"] = "Review, filter, and update work items.", + ["page.kanbanBoard.desc"] = "Move work through status columns.", + ["page.taskAssignment.desc"] = "Assign tasks to project members.", + ["page.taskDetails.desc"] = "Review task progress, comments, and updates.", + ["page.issues.desc"] = "Track blockers, notes, and daily work progress.", + ["page.addIssue.desc"] = "Record a new issue against a task.", + ["page.taskReport.desc"] = "Analyze task activity and export task reports.", + ["page.timeTracking.desc"] = "Review effort by task, project, and assignee.", + ["page.projectProgress.desc"] = "Monitor delivery health across active projects.", + ["page.overdueTasks.desc"] = "Focus on delayed work that needs attention.", + ["page.employeeReport.desc"] = "See how work is distributed across people.", + ["page.rolesAccess.desc"] = "Control user roles, menus, and permissions.", + ["page.users.desc"] = "Manage people, status, and account details.", + ["page.auditLogs.desc"] = "Review system activity and changes.", + ["page.issueReport.desc"] = "Track daily execution, backlog health, and issue-level effort.", + ["page.projectList.desc"] = "Review project details and progress at a glance.", + ["page.taskList.desc"] = "Review, filter, and update task records.", + ["page.taskBacklog.desc"] = "See unassigned and queued work items.", + ["page.roleLayouts.desc"] = "Review access group layouts and permissions.", + + ["dashboard.overview"] = "Overview", + ["dashboard.welcomeBack"] = "Welcome back, {name}", + ["dashboard.adminIntro"] = "Projects, users, and team progress at a glance.", + ["dashboard.totalUsers"] = "Total users", + ["dashboard.totalProjects"] = "Total projects", + ["dashboard.activeTasks"] = "Active tasks", + ["dashboard.completionRate"] = "Completion rate", + ["dashboard.projectActivity"] = "Project Activity", + ["dashboard.projectActivityDesc"] = "Active vs completed tasks per month.", + ["dashboard.taskDistribution"] = "Task Distribution", + ["dashboard.totalTasks"] = "{count} total tasks", + ["dashboard.completedCount"] = "Completed: {count}", + ["dashboard.activeCount"] = "Active: {count}", + ["dashboard.allProjects"] = "All Projects", + ["dashboard.projectsSnapshot"] = "A quick snapshot of the current project list.", + ["dashboard.viewAll"] = "View all", + ["dashboard.tasksUnit"] = "tasks", + ["dashboard.calendar"] = "Calendar", + ["dashboard.calendarDesc"] = "Today and upcoming project starts.", + ["dashboard.events"] = "Events", + ["dashboard.projectTimeline"] = "Project Timeline", + ["dashboard.projectTimelineDesc"] = "Browse every project in a gantt view and adjust the month window below.", + ["dashboard.from"] = "From", + ["dashboard.to"] = "To", + ["dashboard.noProjectsToDisplay"] = "No projects to display.", + ["dashboard.thisMonth"] = "this month", + ["dashboard.vsLastMonth"] = "vs last mo", + ["dashboard.upcoming"] = "Upcoming", + ["dashboard.active"] = "Active", + ["dashboard.queued"] = "queued", + ["dashboard.soon"] = "soon", + ["dashboard.late"] = "late", + ["dashboard.employeeTitle"] = "Employee Dashboard", + ["dashboard.teamMember"] = "Team Member", + ["dashboard.myWork"] = "My Work", + ["dashboard.employeeIntro"] = "Tasks, deadlines, and your progress in one place.", + ["dashboard.viewTasks"] = "View Tasks", + ["dashboard.loadingDashboard"] = "Loading dashboard...", + ["dashboard.tasksInProgressDesc"] = "Tasks currently being worked on", + ["dashboard.noTasksInProgress"] = "No tasks in progress right now.", + ["dashboard.todoUpcoming"] = "To Do & Upcoming", + ["dashboard.todoUpcomingDesc"] = "Tasks waiting for action or coming up soon", + ["dashboard.noUpcomingTasks"] = "No upcoming tasks found.", + ["dashboard.overdueDesc"] = "Tasks past their due date", + ["dashboard.noOverdueTasks"] = "No overdue tasks. Nice work.", + ["dashboard.relatedTasks"] = "Related Tasks", + ["dashboard.tasksMarkedOn"] = "Tasks marked on {date}", + ["dashboard.noTasksForDay"] = "No tasks are scheduled for this day.", + ["dashboard.dueSoon"] = "Due Soon", + ["dashboard.managerTitle"] = "Manager Dashboard", + ["dashboard.teamView"] = "Team View", + ["dashboard.myProjects"] = "My Projects", + ["dashboard.managerIntro"] = "Track your team, project health, and weekly task progress in one place.", + ["dashboard.pendingTasksNotice"] = "{count} tasks are still pending.", + ["dashboard.taskReport"] = "Task Report", + ["dashboard.weeklyTaskProgress"] = "Weekly Task Progress", + ["dashboard.weeklyTaskProgressDesc"] = "Completed vs pending tasks per week", + ["dashboard.teamProgress"] = "Team Progress", + ["dashboard.teamProgressDesc"] = "Members with active workload", + ["dashboard.noAssignedWork"] = "No assigned work yet.", + ["dashboard.upcomingDeadlines"] = "Upcoming Deadlines", + ["dashboard.projectsEndingSoon"] = "Projects ending soon", + ["dashboard.ends"] = "ends", + ["dashboard.noUpcomingDeadlines"] = "No upcoming deadlines.", + ["dashboard.clickViewTasks"] = "Click \"View Tasks\" to drill in", + ["dashboard.complete"] = "Complete", + ["dashboard.noProjectsForAccount"] = "No projects available for this account.", + ["dashboard.activeProjects"] = "Active Projects", + ["dashboard.totalTasksMetric"] = "Total Tasks", + ["dashboard.teamMembers"] = "Team Members", + ["dashboard.overdueTasks"] = "Overdue Tasks", + ["dashboard.allActive"] = "all active", + ["dashboard.acrossProjects"] = "across projects", + ["dashboard.yourTeam"] = "your team", + ["dashboard.needsAttention"] = "needs attention", + ["dashboard.atRisk"] = "At Risk", + ["dashboard.pending"] = "Pending", + ["dashboard.today"] = "Today", + ["dashboard.done"] = "Done", + ["dashboard.daysAgo"] = "{count}d ago", + ["dashboard.daysLeft"] = "{count}d left", + ["dashboard.dueToday"] = "Due today", + + + ["status.todo"] = "To Do", + ["status.inprogress"] = "In Progress", + ["status.done"] = "Done", + ["status.overdue"] = "Overdue", + ["status.blocked"] = "Blocked", + ["status.clear"] = "Clear", + ["status.resolved"] = "Resolved", + ["status.uncompleted"] = "Uncompleted", + ["priority.low"] = "Low", + ["priority.medium"] = "Medium", + ["priority.high"] = "High", + ["status.active"] = "Active", + ["status.inactive"] = "Inactive", + ["field.name"] = "Name", + ["field.title"] = "Title", + ["field.email"] = "Email", + ["field.phone"] = "Phone", + ["field.created"] = "Created", + ["field.taskCode"] = "Task Code", + ["field.ipAddress"] = "IP Address", + ["project.manageAll"] = "Manage all projects.", + ["project.employeesInProject"] = "Employees in this project", + ["project.yourAssigned"] = "Your assigned projects.", + ["project.newProject"] = "New Project", + ["project.editProject"] = "Edit Project", + ["project.createProject"] = "Create Project", + ["project.untitledProject"] = "Untitled project", + ["project.noProjectsYet"] = "No projects yet", + ["project.createFirstProject"] = "Create your first project to get started.", + ["project.noAssignedProjects"] = "You have not been assigned to any projects.", + ["project.projectName"] = "Project name", + ["project.projectDescriptionOptional"] = "Project description (optional)", + ["project.updateTitle"] = "Update Project?", + ["project.updateConfirm"] = "Are you sure you want to update this project?", + ["project.createTitle"] = "Create Project?", + ["project.createConfirm"] = "Are you sure you want to create this project?", + ["project.deleteTitle"] = "Delete Project?", + ["project.deleteConfirm"] = "Are you sure you want to delete this project? This action cannot be undone.", + ["project.created"] = "Project created successfully!", + ["project.updated"] = "Project updated successfully!", + ["project.deleted"] = "Project deleted successfully!", + ["project.failedDelete"] = "Failed to delete project.", + ["task.manageAll"] = "View and manage all tasks across projects.", + ["task.filterByProject"] = "Filter by Project", + ["task.yourAssigned"] = "Your assigned tasks.", + ["task.newTask"] = "New Task", + ["task.editTask"] = "Edit Task", + ["task.createTask"] = "Create Task", + ["task.untitledTask"] = "Untitled task", + ["task.noTasksYet"] = "No tasks yet", + ["task.createFirstTask"] = "Create your first task to get started.", + ["task.taskTitle"] = "Task title", + ["task.taskDescription"] = "Task description", + ["task.selectProject"] = "Select project...", + ["task.loadingBoard"] = "Loading board...", + ["task.dragHint"] = "Drag tasks between columns to update their status.", + ["task.viewingArchived"] = "Viewing archived tasks.", + ["task.backToBoard"] = "Back to Board", + ["task.archivedTasks"] = "Archived Tasks", + ["task.archived"] = "Archived", + ["task.dropTasksHere"] = "Drop tasks here", + ["task.noTasks"] = "No tasks", + ["task.of"] = "of", + ["task.due"] = "Due", + ["task.previousPage"] = "Previous page", + ["task.nextPage"] = "Next page", + ["task.createTitle"] = "Create Task?", + ["task.createConfirm"] = "Are you sure you want to create this task?", + ["task.updateTitle"] = "Update Task?", + ["task.updateConfirm"] = "Are you sure you want to update this task?", + ["task.deleteTitle"] = "Delete Task?", + ["task.deleteConfirm"] = "Are you sure you want to delete this task? This action cannot be undone.", + ["task.archiveDoneTitle"] = "Archive Done Tasks?", + ["task.archiveDoneInProject"] = "Archive {count} Done task(s) in this project? Archived tasks will be hidden from active views.", + ["task.archiveDoneAll"] = "Archive {count} Done task(s) across all visible projects? Archived tasks will be hidden from active views.", + ["task.noDoneToArchive"] = "No Done tasks to archive.", + ["task.created"] = "Task created successfully!", + ["task.updated"] = "Task updated successfully!", + ["task.deleted"] = "Task deleted successfully!", + ["task.failedCreate"] = "Failed to create task.", + ["task.failedDelete"] = "Failed to delete task.", + ["task.failedMove"] = "Failed to move task. Please try again.", + ["task.failedArchiveDone"] = "Failed to archive Done tasks.", + ["task.archivedOneDone"] = "Archived 1 Done task.", + ["task.archivedManyDone"] = "Archived {count} Done tasks.", + ["task.archive"] = "Archive", + ["role.rolesAccess"] = "Roles & Access", + ["role.rolesAccessDesc"] = "Manage roles, assign access and permissions, and control visibility.", + ["role.newRole"] = "New Role", + ["role.editRole"] = "Edit Role", + ["role.createNewRole"] = "Create New Role", + ["role.roleName"] = "Role Name", + ["role.roleNameBurmese"] = "Burmese Name", + ["role.roleNameEnglish"] = "English Name", + ["role.descriptionBurmese"] = "Burmese Description", + ["role.descriptionEnglish"] = "English Description", + ["role.searchByName"] = "Search roles by name...", + ["role.loadingRoles"] = "Loading roles...", + ["role.noRolesYet"] = "No roles yet", + ["role.createFirstRole"] = "Create your first role to get started.", + ["role.manageAccess"] = "Manage Access", + ["role.access"] = "Access", + ["role.assignAccess"] = "Assign Access", + ["role.accessHint"] = "Pages control where the role can go. Actions control what it can do.", + ["role.createHint"] = "Choose what this role can see and do on the right. It will be saved with the role.", + ["role.descriptionPlaceholder"] = "What can this role do?", + ["role.examplePlaceholder"] = "e.g. Manager, Viewer", + ["role.updateTitle"] = "Update Role?", + ["role.updateConfirm"] = "Are you sure you want to update this role?", + ["role.createTitle"] = "Create Role?", + ["role.createConfirm"] = "Are you sure you want to create this role?", + ["role.deleteTitle"] = "Delete Role?", + ["role.deleteConfirm"] = "Are you sure you want to delete this role? This action cannot be undone.", + ["role.cannotDeleteTitle"] = "Cannot Delete Role", + ["role.cannotDeleteUsers"] = "You can't delete this role because there are {count} users in this role.", + ["role.created"] = "Role created successfully!", + ["role.updated"] = "Role updated successfully!", + ["role.deleted"] = "Role deleted successfully!", + ["role.failedDelete"] = "Failed to delete role.", + ["role.saveAccess"] = "Save Access", + ["role.accessConfigured"] = "Configure access and permissions", + ["role.permissionsHint"] = "Menus open pages. Permissions unlock actions.", + ["role.changeApplyAfterSave"] = "Changes apply immediately after saving.", + ["role.noAccessItemsFound"] = "No access items found in database.", + ["role.noPagesMatchSearch"] = "No pages or permissions match your search.", + ["role.pagePermissionHint"] = "Page access lets the role open this section. Permissions let it use the buttons and actions inside.", + ["role.nothingInsidePage"] = "Nothing else is available inside this page.", + ["role.crudPermissions"] = "CRUD permissions for this page", + ["role.willBeSaved"] = "will be saved", + ["role.selectedItems"] = "{count} selected item(s)", + ["role.accessSaved"] = "Access saved successfully.", + ["role.failedLoadAccess"] = "Failed to load access items. Please try again.", + ["role.failedSaveAccess"] = "Failed to save access.", + ["common.unknown"] = "Unknown", + ["common.saving"] = "Saving...", + ["common.creating"] = "Creating...", + ["common.searchRoles"] = "Search Roles", + ["common.searchTasksByTitle"] = "Search tasks by title...", + ["common.allStatuses"] = "All Statuses", + ["common.allPriorities"] = "All Priorities", + ["common.budgetedHours"] = "Budgeted Hours", + ["common.budgetedHoursOptional"] = "Budgeted hours (optional)", + + ["action.search"] = "Search", + ["action.reset"] = "Reset", + ["action.exportExcel"] = "Export Excel", + ["action.exportPdf"] = "Export PDF", + ["action.edit"] = "Edit", + ["action.delete"] = "Delete", + ["action.add"] = "Add", + ["action.create"] = "Create", + ["action.update"] = "Update", + ["action.save"] = "Save", + ["action.assign"] = "Assign", + ["action.viewTasks"] = "View Tasks", + ["action.archiveDone"] = "Archive Done", + ["action.clear"] = "Clear", + + ["result.loading"] = "Loading...", + ["result.saved"] = "Saved successfully.", + ["result.created"] = "Created successfully.", + ["result.updated"] = "Updated successfully.", + ["result.deleted"] = "Deleted successfully.", + + ["report.periodFilter"] = "Period", + ["report.daily"] = "Daily (Today)", + ["report.monthly"] = "Monthly (This Month)", + ["report.yearly"] = "Yearly (This Year)", + ["report.customRange"] = "Custom Range", + ["report.selectedProject"] = "Selected project", + ["report.openIssues"] = "Open issues", + ["report.lastActivity"] = "Last activity", + ["report.noTasksFound"] = "No Tasks Found", + ["report.noTasksFoundDesc"] = "There are no tasks matching your filters. Try adjusting your search query or filters.", + ["report.noIssuesFound"] = "No issues found", + ["report.noIssuesFoundDesc"] = "No issues matched the current report filters.", + ["report.healthCritical"] = "Critical", + ["report.healthAtRisk"] = "At Risk", + ["report.healthGood"] = "Healthy", + ["report.healthWatch"] = "Watch", + ["report.health"] = "Health", + ["report.delay"] = "Delay", + ["report.noEffortEntries"] = "No effort entries", + ["report.noEffortEntriesDesc"] = "No timesheet effort entries matched your filters.", + ["report.totalEstimatedEffort"] = "Total Estimated Effort", + ["report.variance"] = "Variance", + ["report.utilization"] = "Utilization", + ["report.timesheetEntries"] = "timesheet issue entry(s)", + ["report.delayType"] = "Delay Type", + ["report.days"] = "days", + ["report.dueIn"] = "Due in", + ["report.noReasonRecorded"] = "No reason recorded", + ["report.noOverdueTasksDesc"] = "Great! No tasks are overdue or at risk based on the current filters.", + ["report.aheadOfSchedule"] = "Ahead of Schedule", + ["report.blockedOverdue"] = "Blocked / Overdue", + ["report.noProjectData"] = "No project data found matching criteria.", + ["report.employee"] = "Employee", + ["report.assignedIssues"] = "Assigned Issues", + ["report.openOverdue"] = "Open / Overdue", + ["report.workload"] = "Workload", + ["report.trend"] = "Trend", + ["report.workloadHigh"] = "High", + ["report.workloadLight"] = "Light", + ["report.workloadBalanced"] = "Balanced", + ["report.trendImproving"] = "Improving", + ["report.trendDeclining"] = "Declining", + ["report.trendStable"] = "Stable", + ["report.noEmployeeData"] = "No employee data found matching criteria.", + ["report.estimatedVsActual"] = "Estimated vs actual effort", + ["report.utilizationGauge"] = "Utilization gauge", + ["report.estimateAccuracy"] = "Estimate accuracy", + ["report.effortByProject"] = "Effort by project", + ["report.effortLeaderboard"] = "Effort leaderboard", + ["report.workloadHeatmap"] = "Workload heatmap", + ["report.capacitySupportList"] = "Capacity support list", + ["report.completedVsOpenIssues"] = "Completed vs open issues", + ["report.overdueSupport"] = "Overdue support", + ["report.completionPattern"] = "Completion pattern", + ["report.projectHealthMatrix"] = "Project health matrix", + ["report.completionVsRisk"] = "Completion vs risk", + ["report.timelineSummary"] = "Timeline summary", + ["report.openOverdueBlockingIssues"] = "Open, overdue, and blocking issues by project", + ["report.topAtRiskProjects"] = "Top at-risk projects", + ["report.keyInsights"] = "Key Insights", + + ["validation.startDateRequired"] = "Start date is required.", + ["validation.dueDateRequired"] = "Due date is required.", + ["validation.dueDateBeforeStart"] = "Due date cannot be earlier than start date.", + ["validation.projectNameRequired"] = "Project name is required.", + ["validation.endDateBeforeStart"] = "End date cannot be before start date.", + ["validation.taskTitleRequired"] = "Task title is required.", + ["validation.selectProjectRequired"] = "Please select a project.", + ["validation.selectTaskRequired"] = "Please select a task.", + ["validation.issueTitleRequired"] = "Issue title is required.", + ["validation.completeNameRequired"] = "Enter a complete name in Burmese or English.", + ["validation.roleNameRequired"] = "Role name is required.", + ["validation.passwordMinLength"] = "Password must be at least 6 characters.", + ["validation.usernameMinLength"] = "Username must be at least 3 characters long.", + ["validation.usernameNoSpaces"] = "Username cannot contain spaces.", + ["validation.usernameInvalidCharacters"] = "Username cannot contain spaces, and can only contain letters, numbers, underscores (_), and periods (.)", + ["validation.passwordMinLengthRule"] = "Password must be at least 8 characters long.", + ["validation.passwordComplexityRule"] = "Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character.", + ["validation.fillAllFields"] = "Please fill in all required fields.", + + ["common.password"] = "Password", + ["common.usernameOrEmail"] = "Username or Email", + ["common.email"] = "Email", + ["auth.registerAccountTitle"] = "Create your Taskify account", + ["auth.alreadyHaveAccess"] = "Already have access?", + ["auth.firstName"] = "First Name", + ["auth.lastName"] = "Last Name", + ["auth.firstNamePlaceholder"] = "First name", + ["auth.lastNamePlaceholder"] = "Last name", + ["auth.phone"] = "Phone (Optional)", + ["auth.phonePlaceholder"] = "Phone number", + ["auth.register"] = "Register", + ["auth.registerTitle"] = "Register - Taskify", + ["auth.usernameOrEmail"] = "Username or Email", + ["auth.enterUsernameOrEmail"] = "Enter username or email", + ["auth.recoveryCode"] = "Recovery Code", + ["auth.enterRecoveryCode"] = "Enter recovery code", + ["auth.newPassword"] = "New Password", + ["auth.resetPasswordHelp"] = "Use the recovery code configured in the API to set a new password.", + ["auth.unableToResetPassword"] = "Unable to reset password.", + ["task.loadingDetails"] = "Loading task details...", + ["task.notFound"] = "Task Not Found", + ["task.notFoundDesc"] = "The task you are looking for does not exist or has been deleted.", + ["task.editTitle"] = "Edit title", + ["task.saving"] = "Saving...", + ["task.properties"] = "Properties", + ["comment.comments"] = "Comments", + ["comment.deleteComment"] = "Delete comment", + ["comment.deleteCommentTitle"] = "Delete Comment?", + ["comment.deleteCommentConfirm"] = "Are you sure you want to delete this comment? This action cannot be undone.", + ["comment.noComments"] = "No comments posted yet.", + ["comment.startConversation"] = "Start the conversation below!", + ["comment.writeComment"] = "Write a comment...", + ["theme.switchToDarkMode"] = "Switch to dark mode", + ["theme.switchToLightMode"] = "Switch to light mode", + ["page.loadingPage"] = "Loading page...", + ["page.notFound"] = "Page not found.", + ["report.projectHealthMatrixInsight"] = "Projects in the upper-right combine low progress with active issue pressure.", + ["report.actualEffortAboveEstimate"] = "Actual effort is {hours}h above estimate.", + ["report.actualEffortUnderEstimate"] = "Actual effort is {hours}h under estimate.", + ["report.utilizationAbovePlan"] = "Utilization is above plan; review estimates and blockers.", + ["report.utilizationBelowPlan"] = "Tracked actual effort is below plan; confirm work is being logged.", + ["report.utilizationCloseToPlan"] = "Utilization is close to the planning range.", + ["report.accuracyExceedingEstimate"] = "More issues are exceeding estimate than staying within it.", + ["report.accuracyWithinEstimate"] = "Most issues are within or under their estimates.", + ["report.remainingEstimate"] = "Remaining estimate", + ["report.overLabel"] = "Over", + ["report.overEstimateDesc"] = "over estimate", + ["report.legend"] = "Legend", + ["report.riskSeverity"] = "Risk severity", + ["report.lowUrgency"] = "Low urgency", + ["report.highUrgency"] = "High urgency", + ["report.lowRisk"] = "Low risk", + ["report.highRisk"] = "High risk", + ["report.noMatrixData"] = "No matrix data available.", + ["report.riskMatrix"] = "Risk matrix", + ["report.noProjects"] = "No projects", + ["report.urgencyLabel"] = "urgency", + ["report.projectsCount"] = "project(s)", + ["report.itemsCount"] = "item(s)", + ["report.medium"] = "Medium", + ["report.noComparisonData"] = "No comparison data available.", + ["report.projectHealthMatrixDesc"] = "Progress health against issue risk.", + ["report.completionVsRiskInsight"] = "Lower completion with higher issue pressure should be reviewed first.", + ["report.reviewNow"] = "Review now", + ["report.lowCompletionHighRisk"] = "Low completion · high risk", + ["report.watchClosely"] = "Watch closely", + ["report.highCompletionHighRisk"] = "High completion · high risk", + ["report.recoverPlan"] = "Recover plan", + ["report.lowCompletionLowRisk"] = "Low completion · low risk", + ["report.onTrack"] = "On track", + ["report.highCompletionLowRisk"] = "High completion · low risk", + ["report.percentComplete"] = "{percent}% complete", + ["report.color"] = "Color", + ["report.topAtRiskProjectsDesc"] = "Projects needing planning attention first.", + ["report.topAtRiskProjectsInsight"] = "Risk blends overdue, blocked, open issues, and project health.", + ["report.timelineSummaryDesc"] = "Project schedule window with completion overlay.", + ["report.timelineSummaryInsight"] = "This gives the planning horizon without leaving the report.", + ["report.issuesCompositionByProject"] = "Open, overdue, and blocking issues by project", + ["report.issuesCompositionByProjectDesc"] = "Issue composition across the project portfolio.", + ["report.issuesCompositionByProjectInsight"] = "Open work is normal; overdue and blocked work are the triage signal.", + ["report.noAtRiskProjects"] = "No at-risk projects in the current filter.", + ["report.needsSupport"] = "needs support", + ["report.tracked"] = "tracked", + ["report.completedTasks"] = "Completed tasks", + ["report.assignedTasks"] = "Assigned tasks", + ["report.capacityRisk"] = "Capacity risk", + ["report.noIssues"] = "No issues", + ["report.open"] = "open", + ["report.timeTrackingTitle"] = "Time & Effort Tracking Report", + ["report.timeTrackingHeading"] = "Time & Effort Tracking", + ["report.timeTrackingDesc"] = "Review estimated hours, completion timelines, and resource effort distribution across issues.", + ["report.overdueTasksPageTitle"] = "Overdue & Delayed Tasks Report", + ["report.overdueTasksHeading"] = "Overdue & Delayed Tasks", + ["report.overdueTasksDesc"] = "Track tasks that have passed their due date or are at risk of delay.", + ["report.highPriorityOverdue"] = "High Priority Overdue", + ["report.highPriorityOverdueDesc"] = "Critical work that needs immediate support.", + ["report.overdueInsight"] = "Phrase these as capacity risks so teams can unblock work, not assign blame.", + ["report.dueWithin3Days"] = "Due Within 3 Days", + ["report.avgDaysOverdue"] = "Avg Days Overdue", + ["report.allDelayed"] = "All Delayed", + ["report.overduePastDue"] = "Overdue (Past Due)", + ["report.showingDelayedTasks"] = "Showing", + ["report.delayedOrOverdueTasks"] = "delayed / overdue task(s)", + ["report.delayEscalation"] = "Delay / Escalation", + ["report.blockedBy"] = "Blocked by: ", + ["report.escalation"] = "Escalation: ", + ["report.capacitySupportNeeded"] = "Capacity support may be needed", + ["report.delayedTasksCount"] = "delayed task(s)", + ["report.needsAction"] = "needs action", + ["report.notOverdueYet"] = "not overdue yet", + ["report.earlyDelay"] = "early delay", + ["report.noOverdueTasks"] = "No overdue tasks", + ["report.daysOverdue"] = "Days Overdue", + ["common.searchByTaskAssigneeProject"] = "Search by title, assignee, or project...", + ["notification.system"] = "System", + ["notification.notifications"] = "Notifications", + ["notification.unread"] = "unread", + ["notification.clearRead"] = "Clear read", + ["notification.loading"] = "Loading notifications...", + ["notification.noneYet"] = "No notifications yet", + ["notification.emptyState"] = "Your task alerts will show up here.", + ["notification.clearReadTitle"] = "Clear read notifications?", + ["notification.clearReadMessage"] = "This will permanently remove all read notifications from your list.", + ["report.projectProgressTitle"] = "Project Progress Report", + ["report.projectProgressHeading"] = "Project Progress", + ["report.projectProgressDesc"] = "View project health using both planning tasks and daily execution issues.", + ["report.searchProject"] = "Search Project", + ["report.periodProjectStart"] = "Period (Project Start Date)", + ["report.taskStatusCompletion"] = "Task Status Completion", + ["report.totalIssues"] = "Total Issues", + ["report.overdueIssues"] = "Overdue Issues", + ["report.blockedIssues"] = "Blocked Issues", + ["report.overdueIssuesNeedAttention"] = "overdue issues need attention.", + ["report.issuesAreBlocked"] = "issues are blocked.", + ["report.actualHoursAre"] = "Actual hours are", + ["report.against"] = "against", + ["report.searchEmployee"] = "Search Employee", + ["report.employeeWorkloadTitle"] = "Employee Workload & Performance", + ["report.employeeWorkloadHeading"] = "Employee Workload & Performance", + ["report.employeeWorkloadDesc"] = "Monitor issue workload, execution health, and actual effort.", + ["report.delaysByProject"] = "Delays by project", + ["report.delaysByProjectDesc"] = "Project areas where delay concentration is highest.", + ["report.delaysByProjectInsight"] = "Use this to rebalance planning pressure across projects.", + ["report.delaysByAssignee"] = "Delays by assignee", + ["report.delaysByAssigneeDesc"] = "People who may need support or scope adjustment.", + ["report.delaysByAssigneeInsight"] = "Support signal only: high counts should trigger help, not blame.", + ["report.pastDueDate"] = "Past due date", + ["report.highPriorityDueSoon"] = "High priority due soon", + ["report.severityVsDaysOverdue"] = "Severity vs days overdue", + ["report.severityVsDaysOverdueDesc"] = "High priority and older delays sit in the upper-right risk zone.", + ["report.severityMatrixInsight"] = "The matrix combines priority severity with age of delay to show triage order.", + ["report.estVsActualEffort"] = "Estimated vs actual effort", + ["report.estVsActualEffortDesc"] = "Are plans matching delivery effort?", + ["report.actual"] = "Actual", + ["report.estimated"] = "Estimated", + ["report.utilizationGaugeDesc"] = "Actual hours as a share of estimated effort.", + ["report.varianceLabel"] = "variance", + ["report.usedLabel"] = "used", + ["report.estimateAccuracyDesc"] = "How many items stayed within estimate?", + ["report.onOrUnder"] = "on / under", + ["report.issuesLabel"] = "issues", + ["report.effortByProjectDesc"] = "Actual hours distributed across active projects.", + ["report.effortByProjectInsight"] = "Use this to spot projects consuming more delivery capacity than expected.", + ["report.effortLeaderboardDesc"] = "People carrying the most tracked effort.", + ["report.effortLeaderboardInsight"] = "Names highlight capacity allocation, not performance judgement.", + ["report.noEmployeeEffort"] = "No employee effort data available.", + ["report.openIssuesSegment"] = "Open issues", + ["report.overdueIssuesSegment"] = "Overdue issues", + ["report.blockedIssuesSegment"] = "Blocked issues", + ["project.assignDescription"] = "Assign team members to projects to control their task visibility.", + ["project.assignmentsSaved"] = "Project assignments saved successfully!", + ["project.failedSaveAssignment"] = "Failed to save assignment. Please try again.", + ["project.selectProjectPrompt"] = "Please select a project from the left panel to manage user assignments.", + ["issue.addIssueDescription"] = "Create a one-day work issue for a task and record the hours you spent.", + ["issue.untitledIssue"] = "Untitled issue", + ["issue.created"] = "Issue created successfully!", + ["issue.updated"] = "Issue updated successfully!", + ["issue.deleted"] = "Issue deleted successfully!", + ["issue.saveConfirmMessage"] = "Are you sure you want to save these issue changes?", + ["issue.whatDidYouWorkOn"] = "What did you work on?", + ["issue.addShortNote"] = "Add a short note about the work you did...", + ["issue.exampleEstimatedHours"] = "e.g. 4", + ["issue.exampleActualHours"] = "e.g. 7", + ["issue.actualHoursHint"] = "Use the total hours you spent today. For your standard day, this is usually 7 hours.", + ["issue.blockedByPlaceholder"] = "Dependency, person, or team", + ["issue.delayReasonPlaceholder"] = "Why is this issue delayed?", + ["issue.teamLead"] = "Team Lead", + ["issue.pm"] = "PM", + ["issue.manager"] = "Manager", + ["translation.generateEnglishSpelling"] = "Generate English spelling", + ["translation.generateBurmeseName"] = "မြန်မာအမည် ရေးသားပေးရန်", + ["translation.generateEnglish"] = "Generate English", + ["translation.generateBurmese"] = "မြန်မာဘာသာ ပြန်ဆိုရန်", + ["translation.englishDetected"] = "This text appears to be English. Move it to the English field?", + ["issue.failedCreate"] = "Failed to create issue. Please try again.", + ["issue.dateRangeInvalid"] = "The due date cannot be earlier than the start date.", + ["issue.loadFailed"] = "Unable to load issues. Please try again.", + ["issue.updateFailed"] = "Unable to update the issue. Please try again.", + ["issue.deleteFailed"] = "Unable to delete the issue. Please try again.", + ["common.loadFailed"] = "Unable to load the requested data. Please try again.", + ["issue.titlePlaceholder"] = "Issue title", + ["issue.descriptionPlaceholder"] = "Describe the work...", + ["role.namePlaceholder"] = "e.g. Manager, Viewer", + ["role.descriptionPlaceholder"] = "What can this role do?", + ["user.editUser"] = "Edit User", + ["user.createUser"] = "Create User?", + ["user.updateUser"] = "Update User?", + ["user.deleteUser"] = "Delete User?", + ["user.updateUserConfirm"] = "Are you sure you want to update this user?", + ["user.createUserConfirm"] = "Are you sure you want to create this user?", + ["user.deleteUserConfirm"] = "Are you sure you want to delete this user? This action cannot be undone.", + ["user.cannotDeleteSelf"] = "You cannot delete your own account.", + ["result.userCreated"] = "User created successfully!", + ["result.userUpdated"] = "User updated successfully!", + ["result.userDeleted"] = "User deleted successfully!", + ["result.failedToDeleteUser"] = "Failed to delete user.", + ["result.userSaveFailed"] = "Unable to save the user. Please try again.", + ["report.assignedToMe"] = "Assigned to me", + ["report.assignedToMyTeam"] = "Assigned to my team", + ["report.total"] = "Total", + ["common.rememberMe"] = "Remember me", + ["auth.needAccount"] = "Need an account?", + ["auth.resetPassword"] = "Reset password", + ["result.signedOut"] = "You have been signed out successfully.", + ["result.passwordUpdated"] = "Password updated successfully. Please sign in with your new password.", + ["result.apiUnavailable"] = "Unable to reach the API server. Start TaskTrackingSystem.WebApi and try again.", + ["result.registrationFailed"] = "Registration failed. Please try again.", + ["result.resetPasswordFailed"] = "Failed to reset password.", + ["result.invalidCredentials"] = "Invalid username/email or password.", + ["result.noPermissionUpdateTasks"] = "You do not have permission to update tasks.", + ["result.usernameTaken"] = "Username is already taken.", + ["result.emailRegistered"] = "Email is already registered.", + ["result.noSystemRoles"] = "No system roles configured. Registration failed.", + ["result.invalidRecoveryCode"] = "Invalid recovery code.", + ["result.accountNotFound"] = "Account not found.", + ["report.1to3Days"] = "1-3d", + ["report.4to7Days"] = "4-7d", + ["report.8PlusDays"] = "8d+", + ["report.1to7Late"] = "1-7d late", + ["report.8PlusLate"] = "8d+ late", + ["report.agingBuckets"] = "Aging buckets", + ["report.agingBucketsDesc"] = "How long delayed work has been waiting.", + ["report.allReportedIssues"] = "All reported issues", + ["report.avgRate"] = "avg rate", + ["report.assignedColumn"] = "Assigned", + ["report.openColumn"] = "Open", + ["report.overdueColumn"] = "Overdue", + ["report.capacitySupportDesc"] = "Highest support signals, phrased as capacity risk.", + ["report.capacitySupportInsight"] = "Use this to route help and remove blockers, not to rank people negatively.", + ["report.completedIssues"] = "Completed issues", + ["report.completedWorkLeading"] = "Completed work is leading the current filtered set.", + ["report.completion"] = "completion", + ["report.completionHealthy"] = "Completion is healthy for the current filter.", + ["report.completionImprove"] = "Completion has room to improve; inspect open issues and overdue work.", + ["report.completionMovement"] = "Completion movement", + ["report.completionMovementDesc"] = "Recently completed tasks by creation month.", + ["report.completionPatternDesc"] = "Completion rate across visible employees.", + ["report.completionPatternInsight"] = "A quick view of whether completion is clustered or balanced.", + ["report.completionVsRiskDesc"] = "Each project plotted by completion and issue pressure.", + ["report.couldNotLoad"] = "Task report could not load.", + ["report.created"] = "Created", + ["report.critical"] = "critical", + ["report.criticalTasksNeedAttention"] = "critical tasks need attention.", + ["report.currentlyBeingWorked"] = "Currently being worked", + ["report.delayReason"] = "Delay Reason", + ["report.dueLater"] = "Due later", + ["report.dueSoon"] = "Due soon", + ["report.employeesWithOverdueLoad"] = "Employees with overdue issue load.", + ["report.executionRisk"] = "Execution risk in the filtered issue set.", + ["report.focusStandup"] = "Focus standup discussion here first.", + ["report.highPriorityTasks"] = "high-priority tasks", + ["report.highPriorityVisible"] = "high-priority tasks should stay visible during planning review.", + ["report.issueLifecycleFunnel"] = "Issue lifecycle funnel", + ["report.issueLifecycleFunnelDesc"] = "How issues move from backlog to resolution.", + ["report.issueLifecycleInsight"] = "A large in-progress or blocked band is a daily execution signal.", + ["report.issuesByAssignee"] = "Issues by assignee", + ["report.issuesByAssigneeDesc"] = "Support needs by assignee.", + ["report.issuesByAssigneeInsight"] = "Use as a support signal, especially when overdue or blocked items cluster.", + ["report.issuesByProject"] = "Issues by project", + ["report.issuesByProjectDesc"] = "Where issue volume is concentrated.", + ["report.issuesByProjectInsight"] = "Useful for project-level triage and planning health.", + ["report.issuesStillOpen"] = "issues are still open across the selected scope.", + ["report.issueStatusDonut"] = "Issue status donut", + ["report.issueStatusDonutDesc"] = "Current status distribution, including overdue pressure.", + ["report.loadError"] = "The server returned an error while loading task report data.", + ["report.loadingIssueReport"] = "Loading issue report...", + ["report.loadingOverdueTasks"] = "Loading overdue tasks...", + ["report.loadingTimesheet"] = "Loading timesheet data...", + ["report.manager"] = "Manager", + ["report.needsUnblockReview"] = "Needs unblock review", + ["report.noAssigneeDelay"] = "No assignee delay concentration found.", + ["report.noCapacityRisks"] = "No capacity risks in the current filter.", + ["report.noHighPriority"] = "No high-priority tasks in the current filter.", + ["report.noOverdueSupport"] = "No overdue support needs found.", + ["report.noProjectDelay"] = "No project delay concentration found.", + ["report.openIssuesAttached"] = "open issues are attached to reported tasks.", + ["report.overdueSupportInsight"] = "Treat overdue counts as support requests.", + ["report.overdueTasks"] = "overdue tasks", + ["report.pm"] = "PM", + ["report.priorityDistribution"] = "Priority distribution", + ["report.priorityDistributionDesc"] = "Planning pressure by task priority.", + ["report.resolutionAging"] = "Resolution aging", + ["report.resolutionAgingDesc"] = "How close issues are to or past due date.", + ["report.resolutionAgingInsight"] = "Older overdue buckets should be cleared before new scope expands.", + ["report.resolvedIssuesLeading"] = "Resolved issues are leading this filtered set.", + ["report.risk"] = "risk", + ["report.riskScore"] = "Risk score", + ["report.riskIssues"] = "risk issues", + ["report.supportSignal"] = "Support signal", + ["report.tasks"] = "tasks", + ["report.tasksHaveOverdueIssues"] = "tasks have overdue issues.", + ["report.tasksStillMoving"] = "tasks are still moving through execution.", + ["report.taskStatusMix"] = "Task status mix", + ["report.taskStatusMixDesc"] = "Where execution currently sits across the task lifecycle.", + ["report.tasksWithMostIssues"] = "Tasks with most open issues", + ["report.tasksWithMostIssuesDesc"] = "Execution blockers that may need issue cleanup before progress moves.", + ["report.tasksWithMostIssuesInsight"] = "Use this to decide where issue triage creates the fastest task movement.", + ["report.teamExecutionBalance"] = "Team execution balance by issue state.", + ["report.teamLead"] = "Team Lead", + ["report.topProjectRisk"] = "Top project risk", + ["report.topProjectRiskDesc"] = "Projects with the highest task and issue pressure.", + ["report.topProjectRiskInsight"] = "Score combines task volume, open issues, overdue issues, and critical task health.", + ["report.unresolvedIssues"] = "Unresolved issues", + ["report.workloadHeatmapDesc"] = "Capacity signals across assigned work, open issues, overdue issues, and hours.", + ["report.workloadHeatmapInsight"] = "Darker cells mean someone may need support or scope adjustment.", + ["report.funnelBaselineNote"] = "Width is measured against {label} ({value}). Zero-value stages keep an empty track with no colored fill.", + ["report.noStage"] = "No {stage}", + ["report.funnelTooltip"] = "{label}: {value} ({percent}% of baseline)", + ["report.noAgingData"] = "No aging data available.", + ["report.noChartData"] = "No data available.", + ["report.noFunnelData"] = "No funnel data available.", + ["report.noWorkloadData"] = "No workload data available.", + ["report.noRiskItems"] = "No risk items to show.", + ["report.notEnoughTrendData"] = "Not enough data for a trend yet.", + ["report.stackedProgress"] = "Stacked progress", + ["report.statusDistribution"] = "Status distribution" + }; + + private static readonly IReadOnlyDictionary Burmese = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + ["common.workspace"] = "အလုပ်ခွင်", + ["common.signIn"] = "အကောင့်ဝင်ရန်", + ["common.signOut"] = "အကောင့်ထွက်ရန်", + ["common.signOutTitle"] = "အကောင့်ထွက်မလား?", + ["common.signOutDescription"] = "Taskify မှ အကောင့်ထွက်ရန် သေချာပါသလား?", + ["common.cancel"] = "မလုပ်တော့ပါ", + ["common.confirm"] = "အတည်ပြုမည်", + ["common.confirmAction"] = "အတည်ပြုမည်", + ["common.areYouSure"] = "သင် သေချာပါသလား?", + ["common.cannotUndo"] = "ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်မရပါ။", + ["common.yes"] = "ဟုတ်ကဲ့", + ["common.no"] = "မဟုတ်ပါ", + ["common.ok"] = "အိုကေ", + ["common.score"] = "အမှတ်", + ["common.save"] = "သိမ်းမည်", + ["common.create"] = "ဖန်တီးမည်", + ["common.update"] = "အပ်ဒိတ်လုပ်မည်", + ["common.delete"] = "ဖျက်မည်", + ["common.confirmSignOut"] = "ဟုတ်ကဲ့၊ အကောင့်ထွက်မည်", + ["common.listView"] = "စာရင်းမြင်ကွင်း", + ["common.chartView"] = "ဇယားမြင်ကွင်း", + ["common.search"] = "ရှာမည်", + ["common.reset"] = "ပြန်လည်သတ်မှတ်မည်", + ["common.clear"] = "ရှင်းမည်", + ["common.all"] = "အားလုံး", + ["common.loading"] = "ဖွင့်နေသည်...", + ["common.close"] = "ပိတ်မည်", + ["common.refresh"] = "ပြန်လည်ရယူမည်", + ["common.openNavigation"] = "မီနူးဖွင့်ရန်", + ["common.closeNavigation"] = "မီနူးပိတ်ရန်", + ["common.index"] = "နံပါတ်", + ["common.exportExcel"] = "Excel ထုတ်မည်", + ["common.exportPdf"] = "PDF ထုတ်မည်", + ["common.actions"] = "လုပ်ဆောင်ချက်များ", + ["common.status"] = "အခြေအနေ", + ["common.priority"] = "ဦးစားပေး", + ["common.assignee"] = "တာဝန်ယူသူ", + ["common.project"] = "စီမံကိန်း", + ["common.task"] = "လုပ်ငန်း", + ["common.taskProject"] = "လုပ်ငန်း / စီမံကိန်း", + ["common.issue"] = "ပြဿနာ", + ["common.user"] = "အသုံးပြုသူ", + ["common.systemAdmin"] = "စနစ်အုပ်ချုပ်သူ", + ["common.role"] = "အခန်းကဏ္ဍ", + ["common.module"] = "အပိုင်း", + ["common.name"] = "အမည်", + ["error.title"] = "အမှား", + ["error.heading"] = "အမှား", + ["error.processingRequest"] = "တောင်းဆိုချက်ကို လုပ်ဆောင်နေစဉ် အမှားတစ်ခု ဖြစ်ပွားခဲ့ပါသည်။", + ["error.requestId"] = "တောင်းဆိုချက်အမှတ်", + ["error.developmentMode"] = "ဖွံ့ဖြိုးရေးမုဒ်", + ["error.developmentDetails"] = "ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်သို့ ပြောင်းလဲပါက အမှားအသေးစိတ်များကို ပိုမိုပြသပါမည်။", + ["error.developmentWarning"] = "ဖြန့်ချိထားသော အက်ပ်များတွင် ဖွံ့ဖြိုးရေးပတ်ဝန်းကျင်ကို မဖွင့်ထားသင့်ပါ။", + ["error.developmentSensitive"] = "ထိုသို့ပြုလ���ပ်ပါက အသုံးပြုသူများထံ အထိခိုက်လွယ်သော အမှားအသေးစိတ်များ ပေါ်လာနိုင်ပါသည်။", + ["error.developmentInstructions"] = "ဒေသတွင်း စမ်းသပ်ရန် ASPNETCORE_ENVIRONMENT ကို Development ဟု သတ်မှတ်ပြီး အက်ပ်ကို ပြန်လည်စတင်ပါ။", + ["issue.titlePlaceholder"] = "ပြဿနာခေါင်းစဉ်", + ["issue.descriptionPlaceholder"] = "လုပ်ဆောင်ချက်ကို ဖော်ပြပါ...", + ["role.namePlaceholder"] = "ဥပမာ - မန်နေဂျာ၊ ကြည့်ရှုသူ", + ["role.descriptionPlaceholder"] = "ဤအခန်းကဏ္ဍက ဘာများ လုပ်ဆောင်နိုင်ပါသလဲ။", + ["issue.loadFailed"] = "ပြဿနာများကို ဖတ်၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["issue.updateFailed"] = "ပြဿနာကို ပြင်ဆင်၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["issue.deleteFailed"] = "ပြဿနာကို ဖျက်၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["common.loadFailed"] = "တောင်းဆိုထားသော အချက်အလက်များကို ဖတ်၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["common.firstName"] = "ရှေ့အမည်", + ["common.lastName"] = "နောက်အမည်", + ["common.username"] = "အသုံးပြုသူအမည်", + ["common.phone"] = "ဖုန်း", + ["common.phoneNumber"] = "ဖုန်းနံပါတ်", + ["common.keepHere"] = "ဤနေရာတွင် ထားမည်", + ["common.moveToEnglish"] = "အင်္ဂလိပ်အကွက်သို့ ရွှေ့မည်", + ["common.generating"] = "ဖန်တီးနေသည်...", + ["common.translationNotConfigured"] = "ဘာသာပြန်ဝန်ဆောင်မှုကို မသတ်မှတ်ရသေးပါ။", + ["common.complete"] = "ပြည့်စုံသည်", + ["common.aiGenerated"] = "AI ဖြင့် ဖန်တီးထားသည်", + ["common.needsReview"] = "ပြန်လည်စစ်ဆေးရန် လိုအပ်သည်", + ["common.missing"] = "မပြည့်စုံသေးပါ", + ["common.translationReview"] = "AI ဖြင့် ဖန်တီးထားသော စာသားကို ပြန်လည်စစ်ဆေးနိုင်ပါပြီ။ မသိမ်းမီ စစ်ဆေးပါ။", + ["common.description"] = "ဖော်ပြချက်", + ["common.date"] = "ရက်စွဲ", + ["common.startDate"] = "စတင်ရက်", + ["common.endDate"] = "ပြီးဆုံးရက်", + ["common.dueDate"] = "ပြီးဆုံးရန်ရက်", + ["common.due"] = "ပြီးဆုံးရက်", + ["common.hours"] = "နာရီ", + ["common.hoursAbbrev"] = "နာရီ", + ["common.risk"] = "အန္တရာယ်", + ["common.blocked"] = "ပိတ်ဆို့ထားသည်", + ["common.overdue"] = "နောက်ကျနေသည်", + ["common.done"] = "ပြီးဆုံး", + ["common.inProgress"] = "ဆောင်ရွက်နေသည်", + ["common.todo"] = "လုပ်ရန်", + ["common.resolved"] = "ဖြေရှင်းပြီး", + ["common.clearStatus"] = "ရှင်းလင်း", + ["common.none"] = "မရှိ", + ["common.unassigned"] = "မချမှတ်ရသေး", + ["common.noDescription"] = "ဖော်ပြချက်မရှိ", + ["common.noneRecorded"] = "မှတ်တမ်းမရှိ", + ["common.na"] = "မသက်ဆိုင်ပါ", + ["common.noAccessItems"] = "ဤအခန်းကဏ္ဍအတွက် ဝင်ရောက်ခွင့်မရှိသေးပါ။", + ["common.accessDenied"] = "ဝင်ရောက်ခွင့် မရှိပါ", + ["common.error"] = "အမှား", + ["common.accessDeniedDescription"] = "ဤစာမျက်နှာသို့ ဝင်ရောက်ရန် သင်၌ ခွင့်ပြုချက်မရှိပါ။ စနစ်စီမံသူကို ဆက်သွယ်ပါ။", + ["common.backToDashboard"] = "ပင်မစာမျက်နှာသို့ ပြန်သွားမည်", + ["common.noDataYet"] = "အချက်အလက် မရှိသေးပါ", + ["common.createFirstEntry"] = "စတင်ရန် ပထမဆုံး အချက်အလက်ကို ဖန်တီးပါ။", + ["common.loadingAuditLogs"] = "မှတ်တမ်းများ ဖွင့်နေသည်...", + ["common.loadingUsers"] = "အသုံးပြုသူများ ဖွင့်နေသည်...", + ["common.loadingProjects"] = "စီမံကိန်းများ ဖွင့်နေသည်...", + ["common.loadingTasks"] = "လုပ်ငန်းများ ဖွင့်နေသည်...", + ["common.searchPlaceholder"] = "အမည်၊ အီးမေးလ်၊ အသုံးပြုသူအမည်ဖြင့် ရှာပါ...", + ["common.searchTasks"] = "အလုပ်ရှာရန်", + ["common.searchByTitleOrProject"] = "ခေါင်းစဉ် သို့မဟုတ် စီမံကိန်းဖြင့် ရှာပါ...", + ["common.searchByUser"] = "အသုံးပြုသူ၊ လုပ်ဆောင်ချက်၊ အပိုင်း သို့မဟုတ် အသေးစိတ်ဖြင့် ရှာပါ...", + ["common.searchByTitle"] = "ခေါင်းစဉ် သို့မဟုတ် စီမံကိန်းအမည်ဖြင့် ရှာပါ...", + ["common.searchProjects"] = "စီမံကိန်းများ ရှာပါ...", + ["common.searchTeamMembers"] = "အဖွဲ့ဝင်များ ရှာပါ...", + ["common.searchProjectMembers"] = "စီမံကိန်းအဖွဲ့ဝင်များ ရှာပါ...", + ["common.searchIssues"] = "ပြဿနာ ခေါင်းစဉ်၊ ဖော်ပြချက် သို့မဟုတ် တာဝန်ယူသူဖြင့် ရှာပါ...", + ["common.searchByIssueAssignee"] = "ပြဿနာ / တာဝန်ယူသူ ရှာရန်", + ["common.searchUsers"] = "အသုံးပြုသူများ ရှာရန်", + ["common.searchByName"] = "အမည်ဖြင့် ရှာပါ...", + ["common.newUser"] = "အသုံးပြုသူအသစ်", + ["common.taskCode"] = "လုပ်ငန်းကုဒ်", + ["common.selectedMember"] = "ရွေးထားသော အဖွဲ့ဝင်", + ["common.loadingSpinner"] = "ဖွင့်နေသည်...", + ["common.loadingIssues"] = "ပြဿနာများ ဖွင့်နေသည်...", + ["common.loadingTasksAndUsers"] = "လုပ်ငန်းများနှင့် အသုံးပြုသူများ ဖွင့်နေသည်...", + ["common.loadingProjectsAndUsers"] = "စီမံကိန်းများနှင့် အသုံးပြုသူများ ဖွင့်နေသည်...", + ["common.loadingProjectMembers"] = "စီမံကိန်းအဖွဲ့ဝင်များ ဖွင့်နေသည်...", + ["common.loadingMembers"] = "အဖွဲ့ဝင်များ ဖွင့်နေသည်...", + ["common.noResults"] = "ရလဒ်မတွေ့ပါ။", + ["pagination.showing"] = "ပြသနေသည်", + ["pagination.of"] = "စုစုပေါင်း", + ["pagination.results"] = "ရလဒ်", + ["pagination.rowsPerPage"] = "တစ်မျက်နှာအရေအတွက်", + ["pagination.firstPage"] = "ပထမစာမျက်နှာ", + ["pagination.previousPage"] = "ရှေ့စာမျက်နှာ", + ["pagination.nextPage"] = "နောက်စာမျက်နှာ", + ["pagination.lastPage"] = "နောက်ဆုံးစာမျက်နှာ", + ["common.notApplicable"] = "မသက်ဆိုင်ပါ", + ["common.selectAll"] = "အားလုံးရွေးမည်", + ["common.deselectAll"] = "အားလုံးဖြုတ်မည်", + ["common.selected"] = "ရွေးထားသည်", + ["common.viewDetails"] = "အသေးစိတ်ကြည့်မည်", + ["common.currentLanguage"] = "ဘာသာစကားပြောင်းရန်", + ["common.languageEnglish"] = "အင်္ဂလိပ်", + ["common.languageBurmese"] = "မြန်မာ", + ["common.allTasks"] = "အလုပ်အားလုံး", + ["common.allProjects"] = "စီမံကိန်းအားလုံး", + ["common.allRoles"] = "အခန်းကဏ္ဍအားလုံး", + ["common.noProjectsFound"] = "စီမံကိန်းမတွေ့ပါ။", + ["common.noTasksFound"] = "လုပ်ငန်းမတွေ့ပါ။", + ["common.noTeamMembersFound"] = "သင်ရှာဖွေသည့် အဖွဲ့ဝင် မရှိပါ။", + ["common.noMembersMatchSearch"] = "လက်ရှိရှာဖွေမှုနှင့် ကိုက်ညီသည့် အဖွဲ့ဝင် မရှိပါ။", + ["common.noTaskSelected"] = "လုပ်ငန်း မရွေးထားပါ", + ["task.selectTaskPrompt"] = "အဖွဲ့ဝင်တစ်ဦးထံ တာဝန်ချထားရန် ဘယ်ဘက်အကန့်မှ လုပ်ငန်းတာဝန်တစ်ခုကို ရွေးချယ်ပါ။", + ["common.noProjectSelected"] = "စီမံကိန်း မရွေးထားပါ", + ["common.noProject"] = "စီမံကိန်း မရှိပါ", + ["common.currentlyAssigningTask"] = "လက်ရှိ ချထားနေသော လုပ်ငန်း", + ["common.currentlyManaging"] = "လက်ရှိ စီမံနေသည်", + ["common.selectProject"] = "စီမံကိန်း ရွေးရန်", + ["common.selectTask"] = "လုပ်ငန်း ရွေးရန်...", + ["common.issueTitle"] = "ပြဿနာ ခေါင်းစဉ်", + ["common.issueDescription"] = "ဖော်ပြချက်", + ["common.blockedStatus"] = "ပိတ်ဆို့မှု အခြေအနေ", + ["common.escalationLevel"] = "အဆင့်တိုးမှု အဆင့်", + ["common.blockedBy"] = "ပိတ်ဆို့နေသူ", + ["common.delayReason"] = "နှောင့်နှေးရသည့် အကြောင်းရင်း", + ["common.actualHours"] = "တကယ့် နာရီ", + ["common.estimatedHours"] = "ခန့်မှန်း နာရီ", + ["common.assignedToMeOnly"] = "ကျွန်ုပ်ထံပဲ ချထားထားသည်", + ["common.saveAssignment"] = "တာဝန်ချမှု သိမ်းမည်", + ["common.saveAssignmentChanges"] = "တာဝန်ချမှု ပြောင်းလဲချက်များ သိမ်းမည်", + ["common.assignmentSaved"] = "တာဝန်ချထားမှုကို အောင်မြင်စွာ သိမ်းဆည်းပြီးပါပြီ။", + ["task.assigneeUpdated"] = "အလုပ်တာဝန်ယူသူကို အောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။", + ["task.failedUpdateAssignee"] = "အလုပ်တာဝန်ယူသူကို ပြင်ဆင်၍ မရပါ။", + ["task.failedLoadProjectMembers"] = "စီမံကိန်းအဖွဲ့ဝင်များကို ဖွင့်၍ မရပါ။", + ["task.assigneeMustBelong"] = "အလုပ်တာဝန်ယူသူသည် ရွေးထားသော စီမံကိန်း၏ အဖွဲ့ဝင် ဖြစ်ရပါမည်။", + ["task.titleRequiredEitherLanguage"] = "လုပ်ငန်းခေါင်းစဉ်ကို အနည်းဆုံး ဘာသာစကားတစ်ခုဖြင့် ထည့်ရပါမည်။", + ["task.saveAssignmentTitle"] = "တာဝန်ချမှု သိမ်းမည်လား။", + ["task.saveAssignmentConfirm"] = "ဤအလုပ်တာဝန်ချထားမှုကို သိမ်းဆည်းရန် သေချာပါသလား။", + ["project.saveAssignmentTitle"] = "တာဝန်ချမှု သိမ်းမည်လား။", + ["project.saveAssignmentConfirm"] = "ဤစီမံကိန်းအဖွဲ့ဝင် တာဝန်ချထားမှုများကို သိမ်းဆည်းရန် သေချာပါသလား။", + ["issue.yesSave"] = "ဟုတ်ကဲ့၊ သိမ်းမည်", + ["common.saveChanges"] = "ပြောင်းလဲချက်များ သိမ်းမည်", + ["common.addIssue"] = "ပြဿနာ ထည့်မည်", + ["common.addIssueTitle"] = "ပြဿနာ ထည့်မည်လား?", + ["issue.saveAddConfirmMessage"] = "ဤပြဿနာကို သိမ်းဆည်းရန် သေချာပါသလား။", + ["issue.yesAdd"] = "ဟုတ်ကဲ့၊ ထည့်မည်", + ["common.editIssue"] = "ပြဿနာ ပြင်မည်", + ["common.removeOwnerFromTask"] = "ဤလုပ်ငန်းမှ ပိုင်ရှင်ကို ဖယ်ရှားမည်", + + ["page.dashboard"] = "ပင်မစာမျက်နှာ", + ["page.managerDashboard"] = "မန်နေဂျာ ပင်မစာမျက်နှာ", + ["page.employeeDashboard"] = "ဝန်ထမ်း ပင်မစာမျက်နှာ", + ["page.projects"] = "စီမံကိန်းများ", + ["page.reports"] = "အစီရင်ခံစာများ", + ["page.projectAssignment"] = "စီမံကိန်း ခွဲဝေခြင်း", + ["page.tasks"] = "လုပ်ငန်းများ", + ["page.kanbanBoard"] = "အလုပ်တာဝန် စီမံခန့်ခွဲမှုဘုတ်", + ["page.taskAssignment"] = "လုပ်ငန်း ခွဲဝေခြင်း", + ["page.taskDetails"] = "လုပ်ငန်း အသေးစိတ်", + ["page.issues"] = "ပြဿနာများ", + ["page.addIssue"] = "ပြဿနာ ထည့်ရန်", + ["page.taskReport"] = "လုပ်ငန်း အစီရင်ခံစာ", + ["page.timeTracking"] = "အချိန်မှတ်တမ်း", + ["page.projectProgress"] = "စီမံကိန်း တိုးတက်မှု", + ["page.overdueTasks"] = "နောက်ကျ လုပ်ငန်းများ", + ["page.employeeReport"] = "ဝန်ထမ်း အစီရင်ခံစာ", + ["page.rolesAccess"] = "အခန်းကဏ္ဍနှင့် ဝင်ခွင့်", + ["page.users"] = "အသုံးပြုသူ", + ["page.auditLogs"] = "စနစ်မှတ်တမ်းများ", + ["page.issueReport"] = "ပြဿနာ အစီရင်ခံစာ", + ["page.projectList"] = "စီမံကိန်းစာရင်း", + ["page.taskList"] = "လုပ်ငန်းစာရင်း", + ["page.taskBacklog"] = "လုပ်ငန်း နောက်ခံစာရင်း", + ["page.roleLayouts"] = "အခန်းကဏ္ဍ အပြင်အဆင်များ", + + ["page.dashboard.desc"] = "အလုပ်များ၊ အန္တရာယ်များနှင့် တိုးတက်မှုများကို တစ်ချက်ကြည့်နိုင်သည်။", + ["page.managerDashboard.desc"] = "စီမံကိန်းများ၊ လူအင်အားနှင့် ပေးပို့မှုအခြေအနေကို စောင့်ကြည့်ပါ။", + ["page.employeeDashboard.desc"] = "သင့်လုပ်ငန်းများ၊ သတ်မှတ်ရက်နှင့် တိုးတက်မှုများကို အာရုံစိုက်ပါ။", + ["page.projects.desc"] = "စီမံကိန်းအစီအစဉ်၊ အချိန်ဇယားနှင့် ခွဲဝေမှုများကို စီမံပါ။", + ["page.projectAssignment.desc"] = "အဖွဲ့ဝင်များကို သင့်တော်သော စီမံကိန်းများသို့ ခွဲဝေပါ။", + ["page.tasks.desc"] = "လုပ်ငန်းများကို ကြည့်ရှု၊ စစ်ထုတ်၊ အပ်ဒိတ်လုပ်ပါ။", + ["page.kanbanBoard.desc"] = "အလုပ်များကို အခြေအနေကော်လံများအတိုင်း ရွှေ့ပါ။", + ["page.taskAssignment.desc"] = "လုပ်ငန်းများကို စီမံကိန်းအဖွဲ့ဝင်များသို့ ခွဲဝေပါ။", + ["page.taskDetails.desc"] = "လုပ်ငန်းတိုးတက်မှု၊ မှတ်ချက်များနှင့် အပ်ဒိတ်များကို ကြည့်ရှုပါ။", + ["page.issues.desc"] = "ပိတ်ဆို့မှုများ၊ မှတ်စုများနှင့် နေ့စဉ် အလုပ်တိုးတက်မှုကို ခြေရာခံပါ။", + ["page.addIssue.desc"] = "လုပ်ငန်းတစ်ခုအတွက် ပြဿနာအသစ်ကို မှတ်တမ်းတင်ပါ။", + ["page.taskReport.desc"] = "လုပ်ငန်းလှုပ်ရှားမှုကို ခွဲခြမ်းပြီး အစီရင်ခံစာများ ထုတ်ပါ။", + ["page.timeTracking.desc"] = "လုပ်ငန်း၊ စီမံကိန်းနှင့် တာဝန်ယူသူအလိုက် အားထုတ်မှုကို ကြည့်ရှုပါ။", + ["page.projectProgress.desc"] = "လက်ရှိ စီမံကိန်းများ၏ ပေးပို့မှုအခြေအနေကို စောင့်ကြည့်ပါ။", + ["page.overdueTasks.desc"] = "အရေးပေါ် အာရုံစိုက်ရန် လိုသည့် နောက်ကျလုပ်ငန်းများကို ကြည့်ပါ။", + ["page.employeeReport.desc"] = "အလုပ်တာဝန်များ လူတစ်ဦးချင်းစီအလိုက် မည်သို့ ဖြန့်ဝေထားသည်ကို ကြည့်ပါ။", + ["page.rolesAccess.desc"] = "အသုံးပြုသူအခန်းကဏ္ဍ၊ မီနူးများနှင့် ခွင့်ပြုချက်များကို ထိန်းချုပ်ပါ။", + ["page.users.desc"] = "လူများ၊ အခြေအနေများနှင့် အကောင့်အသေးစိတ်များကို စီမံပါ။", + ["page.auditLogs.desc"] = "စနစ်လှုပ်ရှားမှုများနှင့် ပြောင်းလဲမှုများကို ပြန်လည်ကြည့်ရှုပါ။", + ["page.issueReport.desc"] = "နေ့စဉ် ဆောင်ရွက်မှု၊ နောက်ကျမှုနှင့် ပြဿနာအလိုက် အားထုတ်မှုကို ခြေရာခံပါ။", + ["page.projectList.desc"] = "စီမံကိန်းအသေးစိတ်နှင့် တိုးတက်မှုကို တစ်ချက်ကြည့်ပါ။", + ["page.taskList.desc"] = "လုပ်ငန်းမှတ်တမ်းများကို ကြည့်ရှု၊ စစ်ထုတ်၊ အပ်ဒိတ်လုပ်ပါ။", + ["page.taskBacklog.desc"] = "မခွဲဝေသေးသော နှင့် စောင့်ဆိုင်းနေသော အလုပ်များကို ကြည့်ပါ။", + ["page.roleLayouts.desc"] = "ဝင်ခွင့်အုပ်စု ပုံစံများနှင့် ခွင့်ပြုချက်များကို ကြည့်ပါ။", + + ["dashboard.overview"] = "အနှစ်ချုပ်", + ["dashboard.welcomeBack"] = "ပြန်လည်ကြိုဆိုပါတယ်၊ {name}", + ["dashboard.adminIntro"] = "စီမံကိန်းများ၊ အသုံးပြုသူများနှင့် အဖွဲ့တိုးတက်မှုကို တစ်ချက်ကြည့်နိုင်သည်။", + ["dashboard.totalUsers"] = "အသုံးပြုသူ စုစုပေါင်း", + ["dashboard.totalProjects"] = "စီမံကိန်း စုစုပေါင်း", + ["dashboard.activeTasks"] = "လက်ရှိအလုပ်များ", + ["dashboard.completionRate"] = "ပြီးစီးမှုနှုန်း", + ["dashboard.projectActivity"] = "စီမံကိန်း လှုပ်ရှားမှု", + ["dashboard.projectActivityDesc"] = "လအလိုက် လက်ရှိနှင့် ပြီးစီးသောအလုပ်များ။", + ["dashboard.taskDistribution"] = "အလုပ်များ ခွဲဝေမှု", + ["dashboard.totalTasks"] = "အလုပ် စုစုပေါင်း {count} ခု", + ["dashboard.completedCount"] = "ပြီးစီးပြီး: {count}", + ["dashboard.activeCount"] = "လက်ရှိ: {count}", + ["dashboard.allProjects"] = "စီမံကိန်းအားလုံး", + ["dashboard.projectsSnapshot"] = "လက်ရှိစီမံကိန်းစာရင်းကို အမြန်ကြည့်ရန်။", + ["dashboard.viewAll"] = "အားလုံးကြည့်ရန်", + ["dashboard.tasksUnit"] = "အလုပ်", + ["dashboard.calendar"] = "ပြက္ခဒိန်", + ["dashboard.calendarDesc"] = "ယနေ့နှင့် မကြာမီစမည့် စီမံကိန်းများ။", + ["dashboard.events"] = "ဖြစ်ရပ်များ", + ["dashboard.projectTimeline"] = "စီမံကိန်း အချိန်ဇယား", + ["dashboard.projectTimelineDesc"] = "စီမံကိန်းအားလုံးကို Gantt ပုံစံဖြင့် ကြည့်ပြီး အောက်တွင် လအပိုင်းအခြားကို ပြင်ဆင်ပါ။", + ["dashboard.from"] = "မှ", + ["dashboard.to"] = "အထိ", + ["dashboard.noProjectsToDisplay"] = "ပြသရန် စီမံကိန်း မရှိပါ။", + ["dashboard.thisMonth"] = "ယခုလ", + ["dashboard.vsLastMonth"] = "ပြီးခဲ့သည့်လနှင့် နှိုင်းယှဉ်", + ["dashboard.upcoming"] = "မကြာမီစမည်", + ["dashboard.active"] = "လက်ရှိ", + ["dashboard.queued"] = "စောင့်ဆိုင်း", + ["dashboard.soon"] = "မကြာမီ", + ["dashboard.late"] = "နောက်ကျ", + ["dashboard.employeeTitle"] = "ဝန်ထမ်း ပင်မစာမျက်နှာ", + ["dashboard.teamMember"] = "အဖွဲ့ဝင်", + ["dashboard.myWork"] = "ကျွန်ုပ်၏အလုပ်များ", + ["dashboard.employeeIntro"] = "အလုပ်များ၊ နောက်ဆုံးရက်များနှင့် သင့်တိုးတက်မှုကို တစ်နေရာတည်းတွင် ကြည့်နိုင်သည်။", + ["dashboard.viewTasks"] = "အလုပ်များ ကြည့်ရန်", + ["dashboard.loadingDashboard"] = "ပင်မစာမျက်နှာ ဖတ်နေသည်...", + ["dashboard.tasksInProgressDesc"] = "လက်ရှိလုပ်ဆောင်နေသော အလုပ်များ", + ["dashboard.noTasksInProgress"] = "လက်ရှိလုပ်ဆောင်နေသော အလုပ် မရှိပါ။", + ["dashboard.todoUpcoming"] = "လုပ်ရန်နှင့် မကြာမီလာမည့်အလုပ်များ", + ["dashboard.todoUpcomingDesc"] = "စတင်လုပ်ရန် သို့မဟုတ် မကြာမီလာမည့် အလုပ်များ", + ["dashboard.noUpcomingTasks"] = "မကြာမီလာမည့် အလုပ် မတွေ့ပါ။", + ["dashboard.overdueDesc"] = "နောက်ဆုံးရက် ကျော်လွန်နေသော အလုပ်များ", + ["dashboard.noOverdueTasks"] = "နောက်ကျနေသော အလုပ် မရှိပါ။ ကောင်းပါတယ်။", + ["dashboard.relatedTasks"] = "ဆက်စပ်အလုပ်များ", + ["dashboard.tasksMarkedOn"] = "{date} တွင် မှတ်ထားသော အလုပ်များ", + ["dashboard.noTasksForDay"] = "ဤနေ့အတွက် သတ်မှတ်ထားသော အလုပ် မရှိပါ။", + ["dashboard.dueSoon"] = "မကြာမီ နောက်ဆုံးရက်ရောက်မည်", + ["dashboard.managerTitle"] = "မန်နေဂျာ ပင်မစာမျက်နှာ", + ["dashboard.teamView"] = "အဖွဲ့ မြင်ကွင်း", + ["dashboard.myProjects"] = "ကျွန်ုပ်၏ စီမံကိန်းများ", + ["dashboard.managerIntro"] = "သင့်အဖွဲ့၊ စီမံကိန်းအခြေအနေနှင့် အပတ်စဉ်အလုပ်တိုးတက်မှုကို တစ်နေရာတည်းတွင် ကြည့်နိုင်သည်။", + ["dashboard.pendingTasksNotice"] = "အလုပ် {count} ခု စောင့်ဆိုင်းနေဆဲဖြစ်သည်။", + ["dashboard.taskReport"] = "အလုပ် အစီရင်ခံစာ", + ["dashboard.weeklyTaskProgress"] = "အပတ်စဉ် အလုပ်တိုးတက်မှု", + ["dashboard.weeklyTaskProgressDesc"] = "အပတ်အလိုက် ပြီးစီးပြီးနှင့် စောင့်ဆိုင်းနေသော အလုပ်များ", + ["dashboard.teamProgress"] = "အဖွဲ့ တိုးတက်မှု", + ["dashboard.teamProgressDesc"] = "လက်ရှိအလုပ်ရှိသော အဖွဲ့ဝင်များ", + ["dashboard.noAssignedWork"] = "ခွဲဝေထားသော အလုပ် မရှိသေးပါ။", + ["dashboard.upcomingDeadlines"] = "မကြာမီရောက်မည့် နောက်ဆုံးရက်များ", + ["dashboard.projectsEndingSoon"] = "မကြာမီပြီးဆုံးမည့် စီမံကိန်းများ", + ["dashboard.ends"] = "ပြီးဆုံးရက်", + ["dashboard.noUpcomingDeadlines"] = "မကြာမီရောက်မည့် နောက်ဆုံးရက် မရှိပါ။", + ["dashboard.clickViewTasks"] = "\"အလုပ်များ ကြည့်ရန်\" ကိုနှိပ်ပြီး အသေးစိတ်ကြည့်ပါ", + ["dashboard.complete"] = "ပြီးစီးမှု", + ["dashboard.noProjectsForAccount"] = "ဤအကောင့်အတွက် စီမံကိန်း မရှိပါ။", + ["dashboard.activeProjects"] = "လက်ရှိ စီမံကိန်းများ", + ["dashboard.totalTasksMetric"] = "အလုပ် စုစုပေါင်း", + ["dashboard.teamMembers"] = "အဖွဲ့ဝင်များ", + ["dashboard.overdueTasks"] = "နောက်ကျနေသော အလုပ်များ", + ["dashboard.allActive"] = "အားလုံး လက်ရှိ", + ["dashboard.acrossProjects"] = "စီမံကိန်းများအတွင်း", + ["dashboard.yourTeam"] = "သင့်အဖွဲ့", + ["dashboard.needsAttention"] = "အာရုံစိုက်ရန် လိုသည်", + ["dashboard.atRisk"] = "အန္တရာယ်ရှိ", + ["dashboard.pending"] = "စောင့်ဆိုင်းနေသည်", + ["dashboard.today"] = "ယနေ့", + ["dashboard.done"] = "ပြီးစီးပြီး", + ["dashboard.daysAgo"] = "လွန်ခဲ့သော {count} ရက်", + ["dashboard.daysLeft"] = "{count} ရက် ကျန်", + ["dashboard.dueToday"] = "ယနေ့ နောက်ဆုံးရက်", + + + ["status.todo"] = "လုပ်ရန်", + ["status.inprogress"] = "ဆောင်ရွက်နေသည်", + ["status.done"] = "ပြီးဆုံး", + ["status.overdue"] = "နောက်ကျ", + ["status.clear"] = "ရှင်း", + ["status.resolved"] = "ဖြေရှင်းပြီး", + ["status.uncompleted"] = "မပြီးသေး", + ["priority.low"] = "နိမ့်", + ["priority.medium"] = "အလယ်", + ["priority.high"] = "မြင့်", + ["status.active"] = "အသုံးပြုနေသည်", + ["status.inactive"] = "အသုံးမပြုတော့ပါ", + ["field.name"] = "အမည်", + ["field.title"] = "ခေါင်းစဉ်", + ["field.email"] = "အီးမေးလ်", + ["field.phone"] = "ဖုန်း", + ["field.created"] = "ဖန်တီးသည့်ရက်", + ["field.taskCode"] = "အလုပ်ကုဒ်", + ["field.ipAddress"] = "IP လိပ်စာ", + ["project.manageAll"] = "စီမံကိန်းအားလုံးကို စီမံပါ။", + ["project.employeesInProject"] = "ဤစီမံကိန်းရှိ ဝန်ထမ်းများ", + ["project.yourAssigned"] = "သင့်အား ခွဲဝေထားသော စီမံကိန်းများ။", + ["project.newProject"] = "စီမံကိန်းအသစ်", + ["project.editProject"] = "စီမံကိန်းပြင်ရန်", + ["project.createProject"] = "စီမံကိန်းဖန်တီးရန်", + ["project.untitledProject"] = "အမည်မရှိသော စီမံကိန်း", + ["project.noProjectsYet"] = "စီမံကိန်းမရှိသေးပါ", + ["project.createFirstProject"] = "စတင်ရန် ပထမဆုံးစီမံကိန်းကို ဖန်တီးပါ။", + ["project.noAssignedProjects"] = "သင့်အား စီမံကိန်းမခွဲဝေထားသေးပါ။", + ["project.projectName"] = "စီမံကိန်းအမည်", + ["project.projectDescriptionOptional"] = "စီမံကိန်းဖော်ပြချက် (မဖြည့်လည်းရသည်)", + ["project.updateTitle"] = "စီမံကိန်း အပ်ဒိတ်လုပ်မလား?", + ["project.updateConfirm"] = "ဤစီမံကိန်းကို အပ်ဒိတ်လုပ်ရန် သေချာပါသလား?", + ["project.createTitle"] = "စီမံကိန်း ဖန်တီးမလား?", + ["project.createConfirm"] = "ဤစီမံကိန်းကို ဖန်တီးရန် သေချာပါသလား?", + ["project.deleteTitle"] = "စီမံကိန်း ဖျက်မလား?", + ["project.deleteConfirm"] = "ဤစီမံကိန်းကို ဖျက်ရန် သေချာပါသလား? ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။", + ["project.created"] = "စီမံကိန်းကို အောင်မြင်စွာ ဖန်တီးပြီးပါပြီ။", + ["project.updated"] = "စီမံကိန်းကို အောင်မြင်စွာ အပ်ဒိတ်လုပ်ပြီးပါပြီ။", + ["project.deleted"] = "စီမံကိန်းကို အောင်မြင်စွာ ဖျက်ပြီးပါပြီ။", + ["project.failedDelete"] = "စီမံကိန်းကို ဖျက်၍ မရပါ။", + ["task.manageAll"] = "စီမံကိန်းအားလုံးရှိ အလုပ်များကို ကြည့်ရှု၍ စီမံပါ။", + ["task.filterByProject"] = "စီမံကိန်းဖြင့် စစ်ထုတ်ရန်", + ["task.yourAssigned"] = "သင့်အား ခွဲဝေထားသော အလုပ်များ။", + ["task.newTask"] = "အလုပ်အသစ်", + ["task.editTask"] = "အလုပ်ပြင်ရန်", + ["task.createTask"] = "အလုပ် ဖန်တီးမည်", + ["task.untitledTask"] = "ခေါင်းစဉ်မရှိသော အလုပ်", + ["task.noTasksYet"] = "အလုပ်မရှိသေးပါ", + ["task.createFirstTask"] = "စတင်ရန် ပထမဆုံးအလုပ်ကို ဖန်တီးပါ။", + ["task.taskTitle"] = "အလုပ်ခေါင်းစဉ်", + ["task.taskDescription"] = "အလုပ်ဖော်ပြချက်", + ["task.selectProject"] = "စီမံကိန်းရွေးပါ...", + ["task.loadingBoard"] = "ဘုတ်ကို ဖွင့်နေသည်...", + ["task.dragHint"] = "အခြေအနေပြောင်းရန် အလုပ်များကို ကော်လံများကြား ဆွဲရွှေ့ပါ။", + ["task.viewingArchived"] = "သိမ်းဆည်းထားသော အလုပ်များကို ကြည့်နေသည်။", + ["task.backToBoard"] = "ဘုတ်သို့ ပြန်သွားမည်", + ["task.archivedTasks"] = "သိမ်းဆည်းထားသော အလုပ်များ", + ["task.archived"] = "သိမ်းဆည်းပြီး", + ["task.dropTasksHere"] = "အလုပ်များကို ဤနေရာတွင် ချပါ", + ["task.noTasks"] = "အလုပ်မရှိပါ", + ["task.of"] = "မှ", + ["task.due"] = "ပြီးဆုံးရန်", + ["task.previousPage"] = "ယခင်စာမျက်နှာ", + ["task.nextPage"] = "နောက်စာမျက်နှာ", + ["task.createTitle"] = "အလုပ် ဖန်တီးမလား?", + ["task.createConfirm"] = "ဤအလုပ်ကို ဖန်တီးရန် သေချာပါသလား?", + ["task.updateTitle"] = "အလုပ် အပ်ဒိတ်လုပ်မလား?", + ["task.updateConfirm"] = "ဤအလုပ်ကို အပ်ဒိတ်လုပ်ရန် သေချာပါသလား?", + ["task.deleteTitle"] = "အလုပ် ဖျက်မလား?", + ["task.deleteConfirm"] = "ဤအလုပ်ကို ဖျက်ရန် သေချာပါသလား? ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။", + ["task.archiveDoneTitle"] = "ပြီးဆုံးသော အလုပ်များ သိမ်းဆည်းမလား?", + ["task.archiveDoneInProject"] = "ဤစီမံကိန်းရှိ ပြီးဆုံးသော အလုပ် {count} ခုကို သိမ်းဆည်းမလား? သိမ်းဆည်းပြီးပါက လက်ရှိမြင်ကွင်းများတွင် ဖျောက်ထားမည်။", + ["task.archiveDoneAll"] = "မြင်နေရသော စီမံကိန်းအားလုံးရှိ ပြီးဆုံးသော အလုပ် {count} ခုကို သိမ်းဆည်းမလား? သိမ်းဆည်းပြီးပါက လက်ရှိမြင်ကွင်းများတွင် ဖျောက်ထားမည်။", + ["task.noDoneToArchive"] = "သိမ်းဆည်းရန် ပြီးဆုံးသော အလုပ်မရှိပါ။", + ["task.created"] = "အလုပ်ကို အောင်မြင်စွာ ဖန်တီးပြီးပါပြီ!", + ["task.updated"] = "အလုပ်ကို အောင်မြင်စွာ အပ်ဒိတ်လုပ်ပြီးပါပြီ!", + ["task.deleted"] = "အလုပ်ကို အောင်မြင်စွာ ဖျက်ပြီးပါပြီ!", + ["task.failedCreate"] = "အလုပ်ဖန်တီး၍ မရပါ။", + ["task.failedDelete"] = "အလုပ်ဖျက်၍ မရပါ။", + ["task.failedMove"] = "အလုပ်ကို ရွှေ့၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["task.failedArchiveDone"] = "ပြီးဆုံးထားသော အလုပ်များကို သိမ်းဆည်း၍ မရပါ။", + ["task.archivedOneDone"] = "ပြီးဆုံးထားသော အလုပ် ၁ ခုကို သိမ်းဆည်းပြီးပါပြီ။", + ["task.archivedManyDone"] = "ပြီးဆုံးထားသော အလုပ် {count} ခုကို သိမ်းဆည်းပြီးပါပြီ။", + ["task.archive"] = "သိမ်းဆည်းမည်", + ["role.rolesAccess"] = "အခန်းကဏ္ဍနှင့် ဝင်ခွင့်များ", + ["role.rolesAccessDesc"] = "အခန်းကဏ္ဍများ၊ ဝင်ခွင့်များနှင့် ခွင့်ပြုချက်များကို စီမံပါ။", + ["role.newRole"] = "အခန်းကဏ္ဍအသစ်", + ["role.editRole"] = "အခန်းကဏ္ဍ ပြင်ရန်", + ["role.createNewRole"] = "အခန်းကဏ္ဍအသစ် ဖန်တီးရန်", + ["role.roleName"] = "အခန်းကဏ္ဍအမည်", + ["role.roleNameBurmese"] = "မြန်မာအမည်", + ["role.roleNameEnglish"] = "အင်္ဂလိပ်အမည်", + ["role.descriptionBurmese"] = "မြန်မာဖော်ပြချက်", + ["role.descriptionEnglish"] = "အင်္ဂလိပ်ဖော်ပြချက်", + ["role.searchByName"] = "အခန်းကဏ္ဍအမည်ဖြင့် ရှာပါ...", + ["role.loadingRoles"] = "အခန်းကဏ္ဍများ ဖွင့်နေသည်...", + ["role.noRolesYet"] = "အခန်းကဏ္ဍမရှိသေးပါ", + ["role.createFirstRole"] = "စတင်ရန် ပထမဆုံးအခန်းကဏ္ဍကို ဖန်တီးပါ။", + ["role.manageAccess"] = "ဝင်ခွင့် စီမံရန်", + ["role.access"] = "ဝင်ခွင့်", + ["role.assignAccess"] = "ဝင်ခွင့် ခွဲဝေရန်", + ["role.accessHint"] = "စာမျက်နှာများသည် ဘယ်နေရာသို့ ဝင်နိုင်သည်ကို ထိန်းချုပ်ပြီး လုပ်ဆောင်ချက်များသည် ဘာလုပ်နိုင်သည်ကို ထိန်းချုပ်သည်။", + ["role.createHint"] = "ဤအခန်းကဏ္ဍ မြင်နိုင်၊ လုပ်နိုင်သည့်အရာများကို ညာဘက်တွင် ရွေးပါ။ အခန်းကဏ္ဍနှင့်အတူ သိမ်းဆည်းမည်။", + ["role.descriptionPlaceholder"] = "ဤအခန်းကဏ္ဍသည် ဘာလုပ်နိုင်သလဲ?", + ["role.examplePlaceholder"] = "ဥပမာ မန်နေဂျာ၊ ကြည့်ရှုသူ", + ["role.updateTitle"] = "အခန်းကဏ္ဍ အပ်ဒိတ်လုပ်မလား?", + ["role.updateConfirm"] = "ဤအခန်းကဏ္ဍကို အပ်ဒိတ်လုပ်ရန် သေချာပါသလား?", + ["role.createTitle"] = "အခန်းကဏ္ဍ ဖန်တီးမလား?", + ["role.createConfirm"] = "ဤအခန်းကဏ္ဍကို ဖန်တီးရန် သေချာပါသလား?", + ["role.deleteTitle"] = "အခန်းကဏ္ဍ ဖျက်မလား?", + ["role.deleteConfirm"] = "ဤအခန်းကဏ္ဍကို ဖျက်ရန် သေချာပါသလား? ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။", + ["role.cannotDeleteTitle"] = "အခန်းကဏ္ဍကို ဖျက်၍မရပါ", + ["role.cannotDeleteUsers"] = "ဤအခန်းကဏ္ဍတွင် အသုံးပြုသူ {count} ယောက် ရှိသောကြောင့် ဖျက်၍မရပါ။", + ["role.created"] = "အခန်းကဏ္ဍကို အောင်မြင်စွာ ဖန်တီးပြီးပါပြီ။", + ["role.updated"] = "အခန်းကဏ္ဍကို အောင်မြင်စွာ အပ်ဒိတ်လုပ်ပြီးပါပြီ။", + ["role.deleted"] = "အခန်းကဏ္ဍကို အောင်မြင်စွာ ဖျက်ပြီးပါပြီ။", + ["role.failedDelete"] = "အခန်းကဏ္ဍကို ဖျက်၍ မရပါ။", + ["role.saveAccess"] = "အသုံးပြုခွင့် သိမ်းမည်", + ["role.accessConfigured"] = "အသုံးပြုခွင့်နှင့် ခွင့်ပြုချက်များကို သတ်မှတ်ပါ", + ["role.permissionsHint"] = "မီနူးများသည် စာမျက်နှာဖွင့်ခွင့်ဖြစ်ပြီး ခွင့်ပြုချက်များသည် လုပ်ဆောင်ချက်များကို ဖွင့်ပေးသည်။", + ["role.changeApplyAfterSave"] = "သိမ်းပြီးနောက် ပြောင်းလဲချက်များ သက်ရောက်ပါမည်။", + ["role.noAccessItemsFound"] = "ဒေတာဘေ့စ်တွင် အသုံးပြုခွင့် အချက်အလက်များ မတွေ့ပါ။", + ["role.noPagesMatchSearch"] = "ရှာဖွေမှုနှင့် ကိုက်ညီသော စာမျက်နှာ သို့မဟုတ် ခွင့်ပြုချက် မရှိပါ။", + ["role.pagePermissionHint"] = "စာမျက်နှာအသုံးပြုခွင့်သည် ဤအပိုင်းကို ဖွင့်ခွင့်ပေးပြီး ခွင့်ပြုချက်များသည် အတွင်းရှိ ခလုတ်နှင့် လုပ်ဆောင်ချက်များကို အသုံးပြုခွင့်ပေးသည်။", + ["role.nothingInsidePage"] = "ဤစာမျက်နှာအတွင်း ထပ်မံအသုံးပြုနိုင်သောအရာ မရှိပါ။", + ["role.crudPermissions"] = "ဤစာမျက်နှာအတွက် CRUD ခွင့်ပြုချက်များ", + ["role.willBeSaved"] = "သိမ်းဆည်းမည်", + ["role.selectedItems"] = "ရွေးထားသောအရာ {count} ခု", + ["role.accessSaved"] = "အသုံးပြုခွင့်များကို အောင်မြင်စွာ သိမ်းပြီးပါပြီ။", + ["role.failedLoadAccess"] = "အသုံးပြုခွင့် အချက်အလက်များကို ဖတ်၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["role.failedSaveAccess"] = "အသုံးပြုခွင့်ကို သိမ်း၍ မရပါ။", + ["common.unknown"] = "မသိပါ", + ["common.saving"] = "သိမ်းနေသည်...", + ["common.creating"] = "ဖန်တီးနေသည်...", + ["common.searchRoles"] = "အခန်းကဏ္ဍ ရှာရန်", + ["common.searchTasksByTitle"] = "အလုပ်ခေါင်းစဉ်ဖြင့် ရှာပါ...", + ["common.allStatuses"] = "အခြေအနေအားလုံး", + ["common.allPriorities"] = "ဦးစားပေးအားလုံး", + ["common.budgetedHours"] = "ခန့်မှန်းနာရီ", + ["common.budgetedHoursOptional"] = "ခန့်မှန်းနာရီ (မဖြည့်လည်းရသည်)", + + ["action.search"] = "ရှာမည်", + ["action.reset"] = "ပြန်လည်သတ်မှတ်မည်", + ["action.exportExcel"] = "Excel ထုတ်မည်", + ["action.exportPdf"] = "PDF ထုတ်မည်", + ["action.edit"] = "ပြင်မည်", + ["action.delete"] = "ဖျက်မည်", + ["action.add"] = "ထည့်မည်", + ["action.create"] = "ဖန်တီးမည်", + ["action.update"] = "အပ်ဒိတ်လုပ်မည်", + ["action.save"] = "သိမ်းမည်", + ["action.assign"] = "ခွဲဝေမည်", + ["action.viewTasks"] = "လုပ်ငန်းများ ကြည့်မည်", + ["action.archiveDone"] = "ပြီးဆုံးများ သိမ်းဆည်းမည်", + ["action.clear"] = "ရှင်းမည်", + + ["result.loading"] = "ဖွင့်နေသည်...", + ["result.saved"] = "အောင်မြင်စွာ သိမ်းပြီးပါပြီ။", + ["result.created"] = "အောင်မြင်စွာ ဖန်တီးပြီးပါပြီ။", + ["result.updated"] = "အောင်မြင်စွာ အပ်ဒိတ်ပြီးပါပြီ။", + ["result.deleted"] = "အောင်မြင်စွာ ဖျက်ပြီးပါပြီ။", + ["report.periodFilter"] = "ကာလ", + ["report.daily"] = "နေ့စဉ် (ယနေ့)", + ["report.monthly"] = "လစဉ် (ယခုလ)", + ["report.yearly"] = "နှစ်စဉ် (ယခုနှစ်)", + ["report.customRange"] = "စိတ်ကြိုက်အပိုင်းအခြား", + ["report.selectedProject"] = "ရွေးထားသော စီမံကိန်း", + ["report.openIssues"] = "ဖွင့်ထားသော ပြဿနာများ", + ["report.lastActivity"] = "နောက်ဆုံး လုပ်ဆောင်ချက်", + ["report.noTasksFound"] = "အလုပ်မတွေ့ပါ", + ["report.noTasksFoundDesc"] = "လက်ရှိစစ်ထုတ်မှုများနှင့် ကိုက်ညီသော အလုပ် မရှိပါ။ ရှာဖွေမှု သို့မဟုတ် စစ်ထုတ်ချက်များကို ပြင်ဆင်ကြည့်ပါ။", + ["report.noIssuesFound"] = "ပြဿနာမတွေ့ပါ", + ["report.noIssuesFoundDesc"] = "လက်ရှိအစီရင်ခံ စစ်ထုတ်ချက်များနှင့် ကိုက်ညီသော ပြဿနာ မရှိပါ။", + ["report.healthCritical"] = "အရေးကြီး", + ["report.healthAtRisk"] = "အန္တရာယ်ရှိ", + ["report.healthGood"] = "ကောင်းမွန်", + ["report.healthWatch"] = "စောင့်ကြည့်", + ["report.health"] = "ကျန်းမာရေး အခြေအနေ", + ["report.delay"] = "နှောင့်နှေးချက်", + ["report.noEffortEntries"] = "အချိန်မှတ်တမ်း မတွေ့ပါ", + ["report.noEffortEntriesDesc"] = "လက်ရှိစစ်ထုတ်မှုများနှင့် ကိုက်ညီသော အချိန်မှတ်တမ်း မရှိပါ။", + ["report.totalEstimatedEffort"] = "စုစုပေါင်း ခန့်မှန်းအားစိုက်မှု", + ["report.variance"] = "ကွာခြားချက်", + ["report.utilization"] = "အသုံးချမှု", + ["report.timesheetEntries"] = "အချိန်မှတ်တမ်းပြဿနာများ", + ["report.delayType"] = "နှောင့်နှေးမှုအမျိုးအစား", + ["report.days"] = "ရက်", + ["report.aheadOfSchedule"] = "အစီအစဉ်ထက် စောနေသည်", + ["report.blockedOverdue"] = "ပိတ်ဆို့ / နောက်ကျ", + ["report.noProjectData"] = "စစ်ထုတ်ချက်နှင့် ကိုက်ညီသော စီမံကိန်းအချက်အလက် မတွေ့ပါ။", + ["report.employee"] = "ဝန်ထမ်း", + ["report.assignedIssues"] = "တာဝန်ပေးထားသော ပြဿနာများ", + ["report.openOverdue"] = "ဖွင့်ထား / နောက်ကျ", + ["report.workload"] = "အလုပ်ပမာဏ", + ["report.trend"] = "အလားအလာ", + ["report.workloadHigh"] = "များ", + ["report.workloadLight"] = "နည်း", + ["report.workloadBalanced"] = "မျှတ", + ["report.trendImproving"] = "တိုးတက်နေသည်", + ["report.trendDeclining"] = "ကျဆင်းနေသည်", + ["report.trendStable"] = "တည်ငြိမ်", + ["report.noEmployeeData"] = "စစ်ထုတ်ချက်နှင့် ကိုက်ညီသော ဝန်ထမ်းအချက်အလက် မတွေ့ပါ။", + + ["validation.startDateRequired"] = "စတင်ရက် လိုအပ်ပါသည်။", + ["validation.dueDateRequired"] = "ပြီးဆုံးရက် လိုအပ်ပါသည်။", + ["validation.dueDateBeforeStart"] = "ပြီးဆုံးရက်သည် စတင်ရက်ထက် စော၍ မရပါ။", + ["validation.projectNameRequired"] = "စီမံကိန်းအမည် လိုအပ်ပါသည်။", + ["validation.endDateBeforeStart"] = "ပြီးဆုံးရက်သည် စတင်ရက်ထက် စော၍ မရပါ။", + ["validation.taskTitleRequired"] = "လုပ်ငန်းခေါင်းစဉ် လိုအပ်ပါသည်။", + ["validation.selectProjectRequired"] = "စီမံကိန်းတစ်ခုကို ရွေးပါ။", + ["validation.selectTaskRequired"] = "လုပ်ငန်းတစ်ခုကို ရွေးပါ။", + ["validation.issueTitleRequired"] = "ပြဿနာခေါင်းစဉ် လိုအပ်ပါသည်။", + ["validation.completeNameRequired"] = "မြန်မာ သို့မဟုတ် အင်္ဂလိပ်ဘာသာဖြင့် အမည်အပြည့်အစုံ ထည့်ပါ။", + ["validation.roleNameRequired"] = "အခန်းကဏ္ဍအမည် လိုအပ်ပါသည်။", + ["validation.passwordMinLength"] = "စကားဝှက်မှာ အနည်းဆုံး ၆ လုံး ရှိရမည်။", + ["validation.usernameMinLength"] = "အသုံးပြုသူအမည်မှာ အနည်းဆုံး ၃ လုံး ရှိရမည်။", + ["validation.usernameNoSpaces"] = "အသုံးပြုသူအမည်တွင် space မပါရပါ။", + ["validation.usernameInvalidCharacters"] = "အသုံးပြုသူအမည်တွင် space မပါရပါ၊ စာလုံး၊ နံပါတ်၊ underscore (_) နှင့် dot (.) သာ အသုံးပြုနိုင်သည်။", + ["validation.passwordMinLengthRule"] = "စကားဝှက်မှာ အနည်းဆုံး ၈ လုံး ရှိရမည်။", + ["validation.passwordComplexityRule"] = "စကားဝှက်တွင် အနည်းဆုံး uppercase တစ်လုံး၊ lowercase တစ်လုံး၊ နံပါတ်တစ်��ုံးနှင့် အထူးလက္ခဏာတစ်လုံး ပါရမည်။", + ["validation.fillAllFields"] = "လိုအပ်သော အကွက်များအားလုံးကို ဖြည့်ပါ။", + + ["common.password"] = "စကားဝှက်", + ["common.usernameOrEmail"] = "အသုံးပြုသူအမည် သို့မဟုတ် ဂျီမေးလ်", + ["common.email"] = "အီးမေးလ်", + ["auth.registerAccountTitle"] = "Taskify အကောင့် ဖန်တီးပါ", + ["auth.alreadyHaveAccess"] = "အကောင့်ရှိပြီးသားလား?", + ["auth.firstName"] = "ပထမအမည်", + ["auth.lastName"] = "မျိုးရိုးအမည်", + ["auth.firstNamePlaceholder"] = "ပထမအမည် ထည့်ပါ", + ["auth.lastNamePlaceholder"] = "မျိုးရိုးအမည် ထည့်ပါ", + ["auth.phone"] = "ဖုန်းနံပါတ် (မဖြစ်မနေ မဟုတ်ပါ)", + ["auth.phonePlaceholder"] = "ဖုန်းနံပါတ် ထည့်ပါ", + ["auth.register"] = "အကောင့်ဖွင့်ရန်", + ["auth.registerTitle"] = "မှတ်ပုံတင်ရန် - Taskify", + ["auth.usernameOrEmail"] = "အသုံးပြုသူအမည် သို့မဟုတ် ဂျီမေးလ်", + ["auth.enterUsernameOrEmail"] = "အသုံးပြုသူအမည် သို့မဟုတ် ဂျီမေးလ် ထည့်ပါ", + ["auth.recoveryCode"] = "ပြန်လည်ရယူရေးကုဒ်", + ["auth.enterRecoveryCode"] = "ပြန်လည်ရယူရေးကုဒ် ထည့်ပါ", + ["auth.newPassword"] = "စကားဝှက်အသစ်", + ["auth.resetPasswordHelp"] = "API တွင် သတ်မှတ်ထားသော ပြန်လည်ရယူရေးကုဒ်ဖြင့် စကားဝှက်အသစ် သတ်မှတ်ပါ။", + ["auth.unableToResetPassword"] = "စကားဝှက်ကို ပြန်လည်သတ်မှတ်၍ မရပါ။", + ["task.loadingDetails"] = "လုပ်ငန်း အသေးစိတ်များကို ဖွင့်နေသည်...", + ["task.notFound"] = "လုပ်ငန်း ရှာမတွေ့ပါ", + ["task.notFoundDesc"] = "သင်ရှာဖွေနေသော လုပ်ငန်းသည် မရှိတော့ပါ သို့မဟုတ် ဖျက်လိုက်ပါပြီ။", + ["task.editTitle"] = "ခေါင်းစဉ် ပြင်ဆင်ရန်", + ["task.saving"] = "သိမ်းဆည်းနေသည်...", + ["task.properties"] = "ဂုဏ်သတ္တိများ", + ["comment.comments"] = "မှတ်ချက်များ", + ["comment.deleteComment"] = "မှတ်ချက်ဖျက်မည်", + ["comment.deleteCommentTitle"] = "မှတ်ချက် ဖျက်မလား?", + ["comment.deleteCommentConfirm"] = "ဤမှတ်ချက်ကို ဖျက်ရန် သေချာပါသလား။ ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍မရပါ။", + ["comment.noComments"] = "မှတ်ချက်များ မရှိသေးပါ။", + ["comment.startConversation"] = "အောက်တွင် စကားဝိုင်းကို စတင်ပါ။", + ["comment.writeComment"] = "မှတ်ချက်တစ်ခု ရေးပါ...", + ["theme.switchToDarkMode"] = "Dark mode သို့ ပြောင်းရန်", + ["theme.switchToLightMode"] = "Light mode သို့ ပြောင်းရန်", + ["page.loadingPage"] = "စာမျက်နှာကို ဖွင့်နေသည်...", + ["page.notFound"] = "စာမျက်နှာ ရှာမတွေ့ပါ။", + ["report.projectHealthMatrix"] = "စီမံကိန်း ကျန်းမာရေး မက်ထရစ်", + ["report.projectHealthMatrixDesc"] = "ပြဿနာ အန္တရာယ်နှင့် စီမံကိန်းတိုးတက်မှု အခြေအနေ။", + ["report.projectHealthMatrixInsight"] = "အပေါ်ညာဘက်ရှိ စီမံကိန်းများသည် တိုးတက်မှုနှေးကွေးပြီး ပြဿနာဖိအားများ ရှိနေသည်။", + ["report.actualEffortAboveEstimate"] = "အမှန်တကယ် လုပ်ဆောင်မှုမှာ ခန့်မှန်းခြေထက် {hours} နာရီ ပိုများနေသည်။", + ["report.actualEffortUnderEstimate"] = "အမှန်တကယ် လုပ်ဆောင်မှုမှာ ခန့်မှန်းခြေအောက် {hours} နာရီ လျော့နည်းသည်။", + ["report.utilizationAbovePlan"] = "အသုံးပြုမှုသည် အစီအစဉ်ထက် ကျော်လွန်နေသည်။ ခန့်မှန်းချက်များနှင့် ပိတ်ဆို့မှုများကို ပြန်လည်သုံးသပ်ပါ။", + ["report.utilizationBelowPlan"] = "လုပ်ဆောင်မှုမှတ်တမ်းမှာ အစီအစဉ်အောက် ရောက်နေသည်။ အလုပ်မှတ်တမ်းများ သေချာတင်ရန် လိုအပ်သည်။", + ["report.utilizationCloseToPlan"] = "အသုံးပြုမှုသည် စီမံကိန်း ရေးဆွဲမှု အကွာအဝေးအတွင်း ရှိသည်။", + ["report.accuracyExceedingEstimate"] = "ပြဿနာအများစုမှာ ခန့်မှန်းခြေထက် ကျော်လွန်နေသည်။", + ["report.accuracyWithinEstimate"] = "ပြဿနာအများစုမှာ ခန့်မှန်းခြေအတွင်း သို့မဟုတ် အောက်တွင် ရှိသည်။", + ["report.remainingEstimate"] = "ကျန်ရှိသော ခန့်မှန်းခြေ", + ["report.overLabel"] = "ကျော်လွန်", + ["report.overEstimateDesc"] = "ခန့်မှန်းချက်ထက် ကျော်လွန်သည်", + ["report.legend"] = "ရှင်းလင်းချက်", + ["report.riskSeverity"] = "အန္တရာယ် ပြင်းထန်မှု", + ["report.lowUrgency"] = "အရေးတကြီးဖြစ်မှု နည်း", + ["report.highUrgency"] = "အရေးတကြီးဖြစ်မှု များ", + ["report.lowRisk"] = "အန္တရာယ် နည်း", + ["report.noMatrixData"] = "မက်ထရစ် အချက်အလက် မတွေ့ပါ။", + ["report.riskMatrix"] = "အန္တရာယ် မက်ထရစ်", + ["report.noProjects"] = "စီမံကိန်း မရှိပါ", + ["report.urgencyLabel"] = "အရေးတကြီးဖြစ်မှု", + ["report.projectsCount"] = "စီမံကိန်း(များ)", + ["report.itemsCount"] = "ခု", + ["report.noComparisonData"] = "နှိုင်းယှဉ်ရန် အချက်အလက် မရှိပါ။", + ["report.medium"] = "အလယ်အလတ်", + ["report.completionVsRisk"] = "ပြီးစီးမှု နှင့် အန္တရာယ်", + ["report.completionVsRiskInsight"] = "ပြဿနာဖိအားများပြီး ပြီးစီးမှုနည်းသော စီမံကိန်းများကို ဦးစွာ ပြန်လည်သုံးသပ်သင့်သည်။", + ["report.reviewNow"] = "ချက်ချင်း သုံးသပ်ရန်", + ["report.lowCompletionHighRisk"] = "ပြီးစီးမှုနည်း · အန္တရာယ်များ", + ["report.watchClosely"] = "အနီးကပ် စောင့်ကြည့်ရန်", + ["report.highCompletionHighRisk"] = "ပြီးစီးမှုများ · အန္တရာယ်များ", + ["report.recoverPlan"] = "အစီအစဉ် ပြန်လည်ထူထောင်ရန်", + ["report.lowCompletionLowRisk"] = "ပြီးစီးမှုနည်း · အန္တရာယ်နည်း", + ["report.onTrack"] = "ပုံမှန်အတိုင်းရှိသည်", + ["report.highCompletionLowRisk"] = "ပြီးစီးမှုများ · အန္တရာယ်နည်း", + ["report.percentComplete"] = "ပြီးစီးမှု {percent}%", + ["report.color"] = "အရောင်", + ["report.topAtRiskProjects"] = "အန္တရာယ်အများဆုံး စီမံကိန်းများ", + ["report.topAtRiskProjectsDesc"] = "စီမံကိန်းရေးဆွဲရန် ဦးစွာ ဂရုစိုက်ရမည့် စီမံကိန်းများ။", + ["report.topAtRiskProjectsInsight"] = "အန္တရာယ်များတွင် ရက်လွန်၊ ပိတ်ဆို့မှု၊ ဖွင့်ထားသော ပြဿနာများနှင့် စီမံကိန်း ကျန်းမာရေးတို့ ပါဝင်သည်။", + ["report.timelineSummary"] = "အချိန်ဇယား အနှစ်ချုပ်", + ["report.timelineSummaryDesc"] = "ပြီးစီးမှုအခြေအနေပါရှိသော စီမံကိန်း အချိန်ဇယား။", + ["report.timelineSummaryInsight"] = "ဤအရာသည် အစီရင်ခံစာမှ ထွက်စရာမလိုဘဲ စီမံကိန်းရေးဆွဲမှု အခြေအနေကို ဖော်ပြပေးသည်။", + ["report.openOverdueBlockingIssues"] = "စီမံကိန်းအလိုက် ဖွင့်ထားသော၊ ရက်လွန်နှင့် ပိတ်ဆို့ထားသော ပြဿနာများ", + ["report.issuesCompositionByProject"] = "စီမံကိန်းအလိုက် ဖွင့်ထားသော၊ ရက်လွန်နှင့် ပိတ်ဆို့ထားသော ပြဿနာများ", + ["report.issuesCompositionByProjectDesc"] = "စီမံကိန်းစုစုပေါင်းရှိ ပြဿနာများ၏ ဖွဲ့စည်းမှု။", + ["report.issuesCompositionByProjectInsight"] = "လုပ်ဆောင်ဆဲအလုပ်သည် ပုံမှန်ဖြစ်သော်လည်း ရက်လွန်နှင့် ပိတ်ဆို့ထားသောအလုပ်များသည် ဖြေရှင်းရန် အချက်ပြချက်ဖြစ်သည်။", + ["report.noAtRiskProjects"] = "လက်ရှိစစ်ထုတ်မှုတွင် အန္တရာယ်ရှိသော စီမံကိန်းများ မရှိပါ။", + ["report.estVsActualEffort"] = "ခန့်မှန်းခြေနှင့် အမှန်တကယ် လုပ်ဆောင်မှု", + ["report.estVsActualEffortDesc"] = "အစီအစဉ်များသည် အမှန်တကယ် လုပ်ဆောင်မှုနှင့် ကိုက်ညီပါသလား။", + ["report.actual"] = "အမှန်တကယ်", + ["report.estimated"] = "ခန့်မှန်းခြေ", + ["report.utilizationGaugeDesc"] = "ခန့်မှန်းခြေအပေါ် အမှန်တကယ် အသုံးပြုထားသော နာရီများ၏ အချိုးအစား။", + ["report.varianceLabel"] = "ကွာခြားချက်", + ["report.usedLabel"] = "အသုံးပြုမှု", + ["report.estimateAccuracyDesc"] = "ခန့်မှန်းခြေအတွင်း မည်မျှပြီးစီးခဲ့သနည်း။", + ["report.onOrUnder"] = "ခန့်မှန်းချက်အတွင်း/အောက်", + ["report.issuesLabel"] = "ပြဿနာများ", + ["report.effortByProjectDesc"] = "လှုပ်ရှားနေသော စီမံကိန်းများအကြား အမှန်တကယ် နာရီများ ဖြန့်ဝေမှု။", + ["report.effortByProjectInsight"] = "မျှော်လင့်ထားသည်ထက် ပိုမိုလုပ်ဆောင်မှုများ သုံးစွဲနေသော စီမံကိန်းများကို ရှာဖွေရန် ဤအရာကို သုံးပါ။", + ["report.effortLeaderboardDesc"] = "အလုပ်မှတ်တမ်း အများဆုံးရှိသော ဝန်ထမ်းများ။", + ["report.effortLeaderboardInsight"] = "အမည်များသည် လုပ်ဆောင်နိုင်စွမ်း ခွဲဝေမှုကို ဖော်ပြခြင်းဖြစ်ပြီး စွမ်းဆောင်ရည်ကို အကဲဖြတ်ခြင်း မဟုတ်ပါ။", + ["report.noEmployeeEffort"] = "ဝန်ထမ်းများ၏ လုပ်ဆောင်မှု အချက်အလက် မရှိပါ။", + ["report.openIssuesSegment"] = "ဖွင့်ထားသော ပြဿနာများ", + ["report.overdueIssuesSegment"] = "ရက်လွန် ပြဿနာများ", + ["report.blockedIssuesSegment"] = "ပိတ်ဆို့ထားသော ပြဿနာများ", + ["report.keyInsights"] = "အဓိက သုံးသပ်ချက်များ", + ["project.assignDescription"] = "လုပ်ငန်းမြင်နိုင်မှုကို ထိန်းချုပ်ရန် အဖွဲ့ဝင်များကို စီမံကိန်းများသို့ သတ်မှတ်ပေးပါ။", + ["project.assignmentsSaved"] = "စီမံကိန်း တာဝန်ချထားမှုများကို အောင်မြင်စွာ သိမ်းဆည်းပြီးပါပြီ။", + ["project.failedSaveAssignment"] = "တာဝန်ချထားမှုကို သိမ်းဆည်း၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["project.selectProjectPrompt"] = "အသုံးပြုသူ ခွဲဝေမှုများကို စီမံခန့်ခွဲရန် ဘယ်ဘက်အကန့်မှ စီမံကိန်းတစ်ခုကို ရွေးချယ်ပေးပါ။", + ["issue.addIssueDescription"] = "လုပ်ငန်းတစ်ခုအတွက် တစ်ရက်တာ အလုပ်ပြဿနာတစ်ခု ဖန်တီးပြီး သင်အသုံးပြုခဲ့သည့် နာရီများကို မှတ်တမ်းတင်ပါ။", + ["issue.untitledIssue"] = "ခေါင်းစဉ်မရှိသော ပြဿနာ", + ["issue.created"] = "ပြဿနာကို အောင်မြင်စွာ ဖန်တီးပြီးပါပြီ။", + ["issue.updated"] = "ပြဿနာကို အောင်မြင်စွာ ပြင်ဆင်ပြီးပါပြီ။", + ["issue.deleted"] = "ပြဿနာကို အောင်မြင်စွာ ဖျက်ပြီးပါပြီ။", + ["issue.saveConfirmMessage"] = "ဤပြဿနာ၏ ပြင်ဆင်ချက်များကို သိမ်းဆည်းရန် သေချာပါသလား။", + ["issue.whatDidYouWorkOn"] = "သင် ဘာလုပ်ခဲ့သလဲ။", + ["issue.addShortNote"] = "သင်လုပ်ဆောင်ခဲ့သည့် အလုပ်အကြောင်း အကျဉ်းချုပ် ရေးသားပါ...", + ["issue.exampleEstimatedHours"] = "ဥပမာ ၄", + ["issue.exampleActualHours"] = "ဥပမာ ၇", + ["issue.actualHoursHint"] = "ယနေ့ သင်အသုံးပြုခဲ့သည့် စုစုပေါင်းနာရီကို ထည့်သွင်းပါ။ ပုံမှန်အလုပ်လုပ်ရက်အတွက် ဤအရာသည် ပုံမှန်အားဖြင့် ၇ နာရီ ဖြစ်သည်။", + ["issue.blockedByPlaceholder"] = "မှီခိုမှု၊ လူ သို့မဟုတ် အဖွဲ့", + ["issue.delayReasonPlaceholder"] = "ဤပြဿနာ အဘယ်ကြောင့် နှောင့်နှေးရသနည်း။", + ["issue.teamLead"] = "အဖွဲ့ခေါင်းဆောင်", + ["issue.pm"] = "စီမံကိန်းမန်နေဂျာ", + ["issue.manager"] = "မန်နေဂျာ", + ["translation.generateEnglishSpelling"] = "အင်္ဂလိပ်စာလုံးပေါင်း ဖန်တီးပေးရန်", + ["translation.generateBurmeseName"] = "မြန်မာအမည် ရေးသားပေးရန်", + ["translation.generateEnglish"] = "အင်္ဂလိပ်ဘာသာ ပြန်ဆိုရန်", + ["translation.generateBurmese"] = "မြန်မာဘာသာ ပြန်ဆိုရန်", + ["translation.englishDetected"] = "ဤစာသားသည် အင်္ဂလိပ်ဘာသာဖြစ်ပုံရသည်။ အင်္ဂလိပ်အကွက်သို့ ရွှေ့မည်လား။", + ["issue.failedCreate"] = "ပြဿနာ ဖန်တီး၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["issue.dateRangeInvalid"] = "ပြီးဆုံးရက်သည် စတင်ရက်ထက် စော၍ မရပါ။", + ["user.editUser"] = "အသုံးပြုသူကို ပြင်ဆင်မည်", + ["user.createUser"] = "အသုံးပြုသူ ဖန်တီးမည်လား။", + ["user.updateUser"] = "အသုံးပြုသူကို အပ်ဒိတ်လုပ်မည်လား။", + ["user.deleteUser"] = "အသုံးပြုသူကို ဖျက်မည်လား။", + ["user.updateUserConfirm"] = "ဤအသုံးပြုသူကို အပ်ဒိတ်လုပ်ရန် သေချာပါသလား။", + ["user.createUserConfirm"] = "ဤအသုံးပြုသူကို ဖန်တီးရန် သေချာပါသလား။", + ["user.deleteUserConfirm"] = "ဤအသုံးပြုသူကို ဖျက်ရန် သေချာပါသလား။ ဤလုပ်ဆောင်ချက်ကို ပြန်ပြင်၍ မရပါ။", + ["user.cannotDeleteSelf"] = "မိမိ၏အကောင့်ကို မိမိကိုယ်တိုင် ဖျက်၍ မရပါ။", + ["result.userCreated"] = "အသုံးပြုသူကို အောင်မြင်���ွာ ဖန်တီးပြီးပါပြီ။", + ["result.userUpdated"] = "အသုံးပြုသူကို အောင်မြင်စွာ အပ်ဒိတ်လုပ်ပြီးပါပြီ။", + ["result.userDeleted"] = "အသုံးပြုသူကို အောင်မြင်စွာ ဖျက်ပြီးပါပြီ။", + ["result.failedToDeleteUser"] = "အသုံးပြုသူကို ဖျက်၍ မရပါ။", + ["result.userSaveFailed"] = "အသုံးပြုသူကို သိမ်းဆည်း၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["status.blocked"] = "ပိတ်ဆို့ထားသည်", + ["report.assignedToMe"] = "ကျွန်ုပ်ထံ တာဝန်ပေးထားသော", + ["report.assignedToMyTeam"] = "ကျွန်ုပ်၏အဖွဲ့ထံ တာဝန်ပေးထားသော", + ["report.total"] = "စုစုပေါင်း", + ["report.capacitySupportList"] = "လုပ်ဆောင်နိုင်စွမ်း အကူအညီစာရင်း", + ["report.completedVsOpenIssues"] = "ပြီးစီးသော နှင့် ဖွင့်ထားသော ပြဿနာများ", + ["report.completionPattern"] = "ပြီးစီးမှု ပုံစံ", + ["report.effortByProject"] = "စီမံကိန်းအလိုက် လုပ်ဆောင်မှု", + ["report.effortLeaderboard"] = "အလုပ်အများဆုံး အဖွဲ့ဝင်များ", + ["report.estimateAccuracy"] = "ခန့်မှန်းမှု တိကျမှု", + ["report.estimatedVsActual"] = "ခန့်မှန်းခြေနှင့် အမှန်တကယ် လုပ်ဆောင်မှု", + ["report.overdueSupport"] = "ရက်လွန်မှု အကူအညီ", + ["report.utilizationGauge"] = "အသုံးပြုမှု တိုင်းတာမှု", + ["report.workloadHeatmap"] = "အလုပ်ပမာဏ အပူမြေပုံ", + ["common.rememberMe"] = "အကောင့်ဝင်ထားရန် မှတ်မည်", + ["auth.needAccount"] = "အကောင့်မရှိသေးပါသလား?", + ["auth.resetPassword"] = "စကားဝှက် ပြန်လည်သတ်မှတ်ရန်", + ["result.signedOut"] = "အကောင့်မှ အောင်မြင်စွာ ထွက်ပြီးပါပြီ။", + ["result.passwordUpdated"] = "စကားဝှက်ကို အောင်မြင်စွာ ပြောင်းပြီးပါပြီ။ စကားဝှက်အသစ်ဖြင့် အကောင့်ဝင်ပါ။", + ["result.apiUnavailable"] = "API ဆာဗာကို ဆက်သွယ်၍ မရပါ။ TaskTrackingSystem.WebApi ကို ဖွင့်ထားပြီး ပြန်ကြိုးစားပါ။", + ["result.registrationFailed"] = "အကောင့်ဖွင့်၍ မရပါ။ ထပ်မံကြိုးစားပါ။", + ["result.resetPasswordFailed"] = "စကားဝှက်ကို ပြန်လည်သတ်မှတ်၍ မရပါ။", + ["result.invalidCredentials"] = "အသုံးပြုသူအမည်/ဂျီမေးလ် သို့မဟုတ် စကားဝှက် မမှန်ပါ။", + ["result.noPermissionUpdateTasks"] = "လုပ်ငန်းများကို ပြင်ဆင်ရန် ခွင့်ပြုချက် မရှိပါ။", + ["result.usernameTaken"] = "ဤအသုံးပြုသူအမည်ကို အသုံးပြုပြီးသား ဖြစ်ပါသည်။", + ["result.emailRegistered"] = "ဤအီးမေးလ်ကို မှတ်ပုံတင်ပြီးသား ဖြစ်ပါသည်။", + ["result.noSystemRoles"] = "စနစ်အခန်းကဏ္ဍများ မသတ်မှတ်ထားသေးပါ။ အကောင့်ဖွင့်၍ မရပါ။", + ["result.invalidRecoveryCode"] = "ပြန်လည်ရယူရေးကုဒ် မမှန်ပါ။", + ["result.accountNotFound"] = "အကောင့် ရှာမတွေ့ပါ။", + ["report.1to3Days"] = "၁-၃ ရက်", + ["report.4to7Days"] = "၄-၇ ရက်", + ["report.8PlusDays"] = "၈ ရက်နှင့်အထက်", + ["report.1to7Late"] = "၁-၇ ရက် နောက်ကျ", + ["report.8PlusLate"] = "၈ ရက်နှင့်အထက် နောက်ကျ", + ["report.agingBuckets"] = "ကြာမြင့်ချိန် အပိုင်းများ", + ["report.agingBucketsDesc"] = "နှောင့်နှေးနေသော အလုပ်များ စောင့်ဆိုင်းနေရသည့် ကြာချိန်။", + ["report.allReportedIssues"] = "အစီရင်ခံထားသော ပြဿနာအားလုံး", + ["report.avgRate"] = "ပျမ်းမျှနှုန်း", + ["report.assignedColumn"] = "တာဝန်ပေးထားသော", + ["report.openColumn"] = "ဖွင့်ထားသော", + ["report.overdueColumn"] = "ရက်လွန်", + ["report.capacitySupportDesc"] = "အကူအညီလိုအပ်မှု အချက်ပြချက်များကို လုပ်ဆောင်နိုင်စွမ်း အန္တရာယ်အဖြစ် ဖော်ပြထားသည်။", + ["report.capacitySupportInsight"] = "အကူအညီ ခွဲဝေပေးရန်နှင့် ပိတ်ဆို့မှုများ ဖယ်ရှားရန် အသုံးပြုပါ၊ လူများကို အဆင့်သတ်မှတ်ရန် မဟုတ်ပါ။", + ["report.completedIssues"] = "ပြီးစီးသော ပြဿနာများ", + ["report.completedWorkLeading"] = "လက်ရှိ စစ်ထုတ်ထားသော အစုတွင် ပြီးစီးသောအလုပ်က အများဆုံးဖြစ်သည်။", + ["report.completion"] = "ပြီးစီးမှု", + ["report.completionHealthy"] = "လက်ရှိ စစ်ထုတ်မှုအရ ပြီးစီးမှု အခြေအနေကောင်းမွန်သည်။", + ["report.completionImprove"] = "ပြီးစီးမှု တိုးတက်ရန် နေရာရှိသည်။ ဖွင့်ထားသော ပြဿနာများနှင့် ရက်လွန်အလုပ်များကို စစ်ဆေးပါ။", + ["report.completionMovement"] = "ပြီးစီးမှု ရွေ့လျားမှု", + ["report.completionMovementDesc"] = "ဖန်တီးသည့်လအလိုက် မကြာသေးမီက ပြီးစီးသော လုပ်ငန်းများ။", + ["report.completionPatternDesc"] = "မြင်ရသော ဝန်ထမ်းများ၏ ပြီးစီးမှုနှုန်း။", + ["report.completionPatternInsight"] = "ပြီးစီးမှုသည် တစ်နေရာတည်းတွင် စုနေသလား သို့မဟုတ် မျှတသလားကို အမြန်ကြည့်နိုင်သည်။", + ["report.completionVsRiskDesc"] = "စီမံကိန်းတစ်ခုချင်းစီကို ပြီးစီးမှုနှင့် ပြဿနာဖိအားအလိုက် ပြထားသည်။", + ["report.couldNotLoad"] = "လုပ်ငန်း အစီရင်ခံစာကို ဖွင့်၍ မရပါ။", + ["report.created"] = "ဖန်တီးထားသော", + ["report.critical"] = "အရေးကြီး", + ["report.criticalTasksNeedAttention"] = "အရေးကြီးသော လုပ်ငန်းများကို ဂရုပြုရန် လိုအပ်သည်။", + ["report.currentlyBeingWorked"] = "လက်ရှိ လုပ်ဆောင်နေသည်", + ["report.delayReason"] = "နှောင့်နှေးရသည့် အကြောင်းပြချက်", + ["report.dueLater"] = "နောက်ပိုင်း ပြီးစီးရန်", + ["report.dueSoon"] = "မကြာမီ ပြီးစီးရန်", + ["report.employeesWithOverdueLoad"] = "ရက်လွန် ပြဿနာအလုပ်ပမာဏရှိသော ဝန်ထမ်းများ။", + ["report.executionRisk"] = "စစ်ထုတ်ထားသော ပြဿနာအစု၏ လုပ်ဆောင်မှု အန္တရာယ်။", + ["report.focusStandup"] = "နေ့စဉ်အစည်းအဝေးတွင် ဤအချက်ကို ဦးစွာ ဆွေးနွေးပါ။", + ["report.highPriorityTasks"] = "ဦးစားပေးမြင့် လုပ်ငန်းများ", + ["report.highPriorityVisible"] = "စီမံကိန်းပြန်လည်သုံးသပ်ချိန်တွင် ဦးစားပေးမြင့် လုပ်ငန်းများကို ဆက်လက်မြင်ရအောင်ထားသင့်သည်။", + ["report.issueLifecycleFunnel"] = "ပြဿနာ လုပ်ဆောင်မှုအဆင့်များ", + ["report.issueLifecycleFunnelDesc"] = "ပြဿနာများသည် backlog မှ ဖြေရှင်းပြီးသည်အထိ မည်သို့ရွေ့လျားသနည်း။", + ["report.issueLifecycleInsight"] = "ဆောင်ရွက်နေသော သို့မဟုတ် ပိတ်ဆို့ထားသော အပိုင်းများများပြားခြင်းသည် နေ့စဉ်လုပ်ဆောင်မှု အချက်ပြချက်ဖြစ်သည်။", + ["report.issuesByAssignee"] = "တာဝန်ယူသူအလိုက် ပြဿနာများ", + ["report.issuesByAssigneeDesc"] = "တာဝန်ယူသူအလိုက် လိုအပ်သော အကူအညီ။", + ["report.issuesByAssigneeInsight"] = "အထူးသဖြင့် ရက်လွန် သို့မဟုတ် ပိတ်ဆို့ထားသည့် အရာများ စုနေချိန်တွင် အကူအညီလိုအပ်မှု အချက်ပြချက်အဖြစ် အသုံးပြုပါ။", + ["report.issuesByProject"] = "စီမံကိန်းအလိုက် ပြဿနာများ", + ["report.issuesByProjectDesc"] = "ပြဿနာအရေအတွက် မည်သည့်နေရာတွင် စုစည်းနေသနည်း။", + ["report.issuesByProjectInsight"] = "စီမံကိန်းအဆင့် ပြဿနာခွဲခြမ်းခြင်းနှင့် စီမံကိန်းကျန်းမာရေးအတွက် အသုံးဝင်သည်။", + ["report.issuesStillOpen"] = "ရွေးချယ်ထားသော အတိုင်းအတာအတွင်း ပြဿနာများ ဖွင့်ထားဆဲဖြစ်သည်။", + ["report.issueStatusDonut"] = "ပြဿနာ အခြေအနေ စက်ဝိုင်းဇယား", + ["report.issueStatusDonutDesc"] = "ရက်လွန်ဖိအားအပါအဝင် လက်ရှိအခြေအနေများ၏ ဖြန့်ဝေမှု။", + ["report.loadError"] = "လုပ်ငန်း အစီရင်ခံစာဒေတာ ဖွင့်နေစဉ် ဆာဗာအမှားတစ်ခု ပြန်ပေးခဲ့သည်။", + ["report.loadingIssueReport"] = "ပြဿနာ အစီရင်ခံစာကို ဖွင့်နေသည်...", + ["report.loadingOverdueTasks"] = "ရက်လွန်လုပ်ငန်းများကို ဖွင့်နေသည်...", + ["report.loadingTimesheet"] = "အချိန်မှတ်တမ်းဒေတာကို ဖွင့်နေသည်...", + ["report.manager"] = "မန်နေဂျာ", + ["report.needsUnblockReview"] = "ပိတ်ဆို့မှု ဖြေရှင်းရန် ပြန်လည်သုံးသပ်ရမည်", + ["report.noAssigneeDelay"] = "တာဝန်ယူသူအလိုက် နှောင့်နှေးမှု စုစည်းနေခြင်း မတွေ့ပါ။", + ["report.noCapacityRisks"] = "လက်ရှိ စစ်ထုတ်မှုတွင် လုပ်ဆောင်နိုင်စွမ်း အန္တရာယ် မရှိပါ။", + ["report.noHighPriority"] = "လက်ရှိ စစ်ထုတ်မှုတွင် ဦးစားပေးမြင့် လုပ်ငန်း မရှိပါ။", + ["report.noOverdueSupport"] = "ရက်လွန်မှုနှင့် ပတ်သက်သော အကူအညီလိုအပ်ချက် မတွေ့ပါ။", + ["report.noProjectDelay"] = "စီမံကိန်းအလိုက် နှောင့်နှေးမှု စုစည်းနေခြင်း မတွေ့ပါ။", + ["report.openIssuesAttached"] = "အစီရင်ခံထားသော လုပ်ငန်းများနှင့် ဖွင့်ထားသော ပြဿနာများ ချိတ်ဆက်ထားသည်။", + ["report.overdueSupportInsight"] = "ရက်လွန်အရေအတွက်များကို အကူအညီတောင်းဆိုမှုများအဖြစ် သတ်မှတ်ပါ။", + ["report.overdueTasks"] = "ရက်လွန် လုပ်ငန်းများ", + ["report.pm"] = "စီမံကိန်းမန်နေဂျာ", + ["report.priorityDistribution"] = "ဦးစားပေးအလိုက် ဖြန့်ဝေမှု", + ["report.priorityDistributionDesc"] = "လုပ်ငန်းဦးစားပေးအလိုက် စီမံကိန်းဖိအား။", + ["report.resolutionAging"] = "ဖြေရှင်းမှု ကြာမြင့်ချိန်", + ["report.resolutionAgingDesc"] = "ပြဿနာများသည် သတ်မှတ်ရက်နီးကပ်နေသလား သို့မဟုတ် ကျော်လွန်နေသလား။", + ["report.resolutionAgingInsight"] = "နယ်ပယ်အသစ် မတိုးချဲ့မီ ကြာမြင့်နေသော ရက်လွန်အပိုင်းများကို ရှင်းလင်းသင့်သည်။", + ["report.resolvedIssuesLeading"] = "လက်ရှိ စစ်ထုတ်ထားသော အစုတွင် ဖြေရှင်းပြီးသော ပြဿနာများက အများဆုံးဖြစ်သည်။", + ["report.risk"] = "အန္တရာယ်", + ["report.riskScore"] = "အန္တရာယ်အမှတ်", + ["report.riskIssues"] = "အန္တရာယ်ရှိ ပြဿနာများ", + ["report.supportSignal"] = "အကူအညီလိုအပ်မှု အချက်ပြချက်", + ["report.tasks"] = "လုပ်ငန်းများ", + ["report.tasksHaveOverdueIssues"] = "လုပ်ငန်းများတွင် ရက်လွန် ပြဿနာများ ရှိသည်။", + ["report.tasksStillMoving"] = "လုပ်ငန်းများသည် လုပ်ဆောင်မှုအဆင့်များအတွင်း ဆက်လက်ရွေ့လျားနေသည်။", + ["report.taskStatusMix"] = "လုပ်ငန်း အခြေအနေ ရောနှောမှု", + ["report.taskStatusMixDesc"] = "လုပ်ငန်းလုပ်ဆောင်မှုသည် lifecycle အတွင်း မည်သည့်နေရာတွင် ရှိနေသနည်း။", + ["report.tasksWithMostIssues"] = "ဖွင့်ထားသော ပြဿနာအများဆုံး လုပ်ငန်းများ", + ["report.tasksWithMostIssuesDesc"] = "တိုးတက်မှု ဆက်လက်ရွေ့လျားရန် ပြဿနာများ ရှင်းလင်းရန် လိုအပ်နိုင်သော ပိတ်ဆို့မှုများ။", + ["report.tasksWithMostIssuesInsight"] = "မည်သည့်နေရာတွင် ပြဿနာခွဲခြမ်းခြင်းက လုပ်ငန်းတိုးတက်မှုကို အမြန်ဆုံး ဖြစ်စေမည်ကို ဆုံးဖြတ်ရန် အသုံးပြုပါ။", + ["report.teamExecutionBalance"] = "ပြဿနာအခြေအနေအလိုက် အဖွဲ့၏ လုပ်ဆောင်မှု မျှတမှု။", + ["report.teamLead"] = "အဖွဲ့ခေါင်းဆောင်", + ["report.topProjectRisk"] = "အန္တရာယ်အများဆုံး စီမံကိန်း", + ["report.topProjectRiskDesc"] = "လုပ်ငန်းနှင့် ပြဿနာဖိအား အမြင့်ဆုံးရှိသော စီမံကိန်းများ။", + ["report.topProjectRiskInsight"] = "အမှတ်တွင် လုပ်ငန်းအရေအတွက်၊ ဖွင့်ထားသော ပြဿနာ၊ ရက်လွန်ပြဿနာနှင့် အရေးကြီးလုပ်ငန်း အခြေအနေတို့ ပါဝင်သည်။", + ["report.unresolvedIssues"] = "မဖြေရှင်းရသေးသော ပြဿနာများ", + ["report.workloadHeatmapDesc"] = "တာဝန်ပေးထားသော အလုပ်၊ ဖွင့်ထားသော ပြဿနာ၊ ရက်လွန်ပြဿနာနှင့် နာရီများမှ လုပ်ဆောင်နိုင်စွမ်း အချက်ပြချက်များ။", + ["report.workloadHeatmapInsight"] = "အရောင်ပိုမိုနက်သော အကွက်များသည် အကူအညီ သို့မဟုတ် နယ်ပယ်ပြင်ဆင်မှု လိုအပ်နိုင်သည်ကို ဆိုလိုသည်။", + ["report.funnelBaselineNote"] = "အကျယ်ကို {label} ({value}) နှင့် နှိုင်းယှဉ်တိုင်းတာသည်။ တန်ဖိုးသုညအဆင့်များတွင် အရောင်မပါသော လမ်းကြောင်းအလွတ်ကို ထားရှိသည်။", + ["report.noStage"] = "{stage} မရှိပါ", + ["report.funnelTooltip"] = "{label}: {value} (အခြေခံတန်ဖိုး၏ {percent}%)", + ["report.noAgingData"] = "ကြာမြင့်ချိန် အချက်အလက် မရှိပါ။", + ["report.noChartData"] = "အချက်အ���က် မရှိပါ။", + ["report.noFunnelData"] = "funnel အချက်အလက် မရှိပါ။", + ["report.noWorkloadData"] = "အလုပ်ပမာဏ အချက်အလက် မရှိပါ။", + ["report.noRiskItems"] = "ပြသရန် အန္တရာယ်အချက်များ မရှိပါ။", + ["report.notEnoughTrendData"] = "အလားအလာပြရန် အချက်အလက် မလုံလောက်သေးပါ။", + ["report.stackedProgress"] = "အဆင့်လိုက် တိုးတက်မှု", + ["report.statusDistribution"] = "အခြေအနေ ဖြန့်ဝေမှု", + ["report.needsSupport"] = "အကူအညီ လိုအပ်သည်", + ["report.tracked"] = "ခြေရာခံပြီး", + ["report.completedTasks"] = "ပြီးစီးသော လုပ်ငန်းများ", + ["report.assignedTasks"] = "တာဝန်ပေးအပ်ထားသော လုပ်ငန်းများ", + ["report.capacityRisk"] = "လုပ်ဆောင်နိုင်စွမ်း အန္တရာယ်", + ["report.noIssues"] = "ပြဿနာ မရှိပါ", + ["report.open"] = "ဖွင့်ထားသော", + ["report.timeTrackingTitle"] = "အချိန်နှင့် အားထုတ်မှု ခြေရာခံခြင်း အစီရင်ခံစာ", + ["report.timeTrackingHeading"] = "အချိန်နှင့် အားထုတ်မှု ခြေရာခံခြင်း", + ["report.timeTrackingDesc"] = "ခန့်မှန်းခြေနာရီများ၊ ပြီးစီးမှု အချိန်ဇယားများနှင့် ပြဿနာများတစ်လျှောက် အရင်းအမြစ် အားထုတ်မှု ခွဲဝေမှုများကို ပြန်လည်သုံးသပ်ပါ။", + ["report.overdueTasksPageTitle"] = "နောက်ကျနှင့် နှောင့်နှေးသော လုပ်ငန်းများ အစီရင်ခံစာ", + ["report.overdueTasksHeading"] = "နောက်ကျနှင့် နှောင့်နှေးသော လုပ်ငန်းများ", + ["report.overdueTasksDesc"] = "သတ်မှတ်ရက် ကျော်လွန်သွားသော သို့မဟုတ် နှောင့်နှေးရန် အန္တရာယ်ရှိသော လုပ်ငန်းများကို ခြေရာခံပါ။", + ["report.highPriorityOverdue"] = "ဦးစားပေးမြင့် ရက်လွန်လုပ်ငန်းများ", + ["report.highPriorityOverdueDesc"] = "ချက်ချင်းပံ့ပိုးမှု လိုအပ်သော အရေးကြီးသည့်အလုပ်များ။", + ["report.overdueInsight"] = "ဤအရာများကို အဖွဲ့များအလုပ်ပိတ်ဆို့မှု ရှင်းလင်းနိုင်ရန် လုပ်ဆောင်နိုင်စွမ်းအန္တရာယ်များအဖြစ် သတ်မှတ်ပါ၊ ပြစ်တင်ရန်မဟုတ်ပါ။", + ["report.dueWithin3Days"] = "၃ ရက်အတွင်း ပြီးစီးရန်", + ["report.avgDaysOverdue"] = "ပျှမ်းမျှ ရက်လွန်နေသည့် ရက်များ", + ["report.allDelayed"] = "နှောင့်နှေးမှု အားလုံး", + ["report.overduePastDue"] = "ရက်လွန် (သတ်မှတ်ရက် ကျော်လွန်)", + ["report.showingDelayedTasks"] = "ပြသနေသည်", + ["report.delayedOrOverdueTasks"] = "နှောင့်နှေး / ရက်လွန် လုပ်ငန်း(များ)", + ["report.delayEscalation"] = "နှောင့်နှေးမှု / အဆင့်မြှင့်တင်မှု", + ["report.noReasonRecorded"] = "အကြောင်းပြချက် မှတ်တမ်းတင်ထားခြင်း မရှိပါ", + ["report.blockedBy"] = "ပိတ်ဆို့ထားသူ - ", + ["report.escalation"] = "အဆင့်မြှင့်တင်မှု - ", + ["report.capacitySupportNeeded"] = "လုပ်ဆောင်နိုင်စွမ်း အကူအညီ လိုအပ်နိုင်သည်", + ["report.delayedTasksCount"] = "နှောင့်နှေးနေသော လုပ်ငန်း(များ)", + ["report.needsAction"] = "လုပ်ဆောင်ရန် လိုအပ်သည်", + ["report.notOverdueYet"] = "ရက်လွန်���ြင်းမရှိသေးပါ", + ["report.earlyDelay"] = "အစောပိုင်း နှောင့်နှေးမှု", + ["report.highRisk"] = "အန္တရာယ် မြင့်မားသည်", + ["report.dueIn"] = "အတွင်း ပြီးစီးရန် ကျန်ရှိသည့်ရက်", + ["report.noOverdueTasksDesc"] = "အလွန်ကောင်းမွန်ပါသည်။ လက်ရှိစစ်ထုတ်မှုများအရ ရက်လွန်နေသော သို့မဟုတ် နှောင့်နှေးနိုင်ခြေရှိသော လုပ်ငန်းများ မရှိပါ။", + ["report.noOverdueTasks"] = "ရက်လွန်လုပ်ငန်းများ မရှိပါ", + ["report.daysOverdue"] = "ရက်လွန်နေသည့်ရက်", + ["common.searchByTaskAssigneeProject"] = "ခေါင်းစဉ်၊ တာဝန်ယူသူ သို့မဟုတ် စီမံကိန်းဖြင့် ရှာပါ...", + ["notification.system"] = "စနစ်", + ["notification.notifications"] = "အသိပေးချက်များ", + ["notification.unread"] = "မဖတ်ရသေး", + ["notification.clearRead"] = "ဖတ်ပြီးများ ရှင်းမည်", + ["notification.loading"] = "အသိပေးချက်များကို ဖွင့်နေသည်...", + ["notification.noneYet"] = "အသိပေးချက် မရှိသေးပါ", + ["notification.emptyState"] = "သင့်လုပ်ငန်းဆိုင်ရာ သတိပေးချက်များကို ဤနေရာတွင် ပြသပါမည်။", + ["notification.clearReadTitle"] = "ဖတ်ပြီးအသိပေးချက်များကို ရှင်းမည်လား?", + ["notification.clearReadMessage"] = "သင့်စာရင်းမှ ဖတ်ပြီးသား အသိပေးချက်များအားလုံးကို အပြီးတိုင် ဖယ်ရှားမည်ဖြစ်သည်။", + ["report.projectProgressTitle"] = "စီမံကိန်း တိုးတက်မှု အစီရင်ခံစာ", + ["report.projectProgressHeading"] = "စီမံကိန်း တိုးတက်မှု", + ["report.projectProgressDesc"] = "လုပ်ငန်းစီစဉ်မှုများနှင့် နေ့စဉ်လုပ်ငန်းပြဿနာများ နှစ်ခုစလုံးကို အသုံးပြု၍ စီမံကိန်းကျန်းမာရေးကို စောင့်ကြည့်ပါ။", + ["report.searchProject"] = "စီမံကိန်း ရှာဖွေရန်", + ["report.periodProjectStart"] = "ကာလ (စီမံကိန်း စတင်ရက်)", + ["report.taskStatusCompletion"] = "လုပ်ငန်း အခြေအနေ ပြီးစီးမှု", + ["report.totalIssues"] = "စုစုပေါင်း ပြဿနာများ", + ["report.overdueIssues"] = "ရက်လွန် ပြဿနာများ", + ["report.blockedIssues"] = "ပိတ်ဆို့ထားသော ပြဿနာများ", + ["report.overdueIssuesNeedAttention"] = "ရက်လွန်ပြဿနာများကို ဂရုပြုရန် လိုအပ်သည်။", + ["report.issuesAreBlocked"] = "ပြဿနာများ ပိတ်ဆို့နေပါသည်။", + ["report.actualHoursAre"] = "အမှန်တကယ် လုပ်ဆောင်ချိန်မှာ", + ["report.against"] = "ဖြစ်ပြီး နှိုင်းယှဉ်ချက်မှာ", + ["report.searchEmployee"] = "ဝန်ထမ်း ရှာဖွေရန်", + ["report.employeeWorkloadTitle"] = "ဝန်ထမ်း အလုပ်ပမာဏနှင့် စွမ်းဆောင်ရည်", + ["report.employeeWorkloadHeading"] = "ဝန်ထမ်း အလုပ်ပမာဏနှင့် စွမ်းဆောင်ရည်", + ["report.employeeWorkloadDesc"] = "ပြဿနာအလုပ်ပမာဏ၊ လုပ်ဆောင်မှုကျန်းမာရေးနှင့် အမှန်တကယ်အားစိုက်ထုတ်မှုတို့ကို စောင့်ကြည့်ပါ။", + ["report.delaysByProject"] = "စီမံကိန်းအလိုက် နှောင့်နှေးမှုများ", + ["report.delaysByProjectDesc"] = "နှောင့်နှေးမှုစုစည်းမှု အများဆုံးဖြစ်သော စီမံကိန်းနယ်ပ���်များ။", + ["report.delaysByProjectInsight"] = "စီမံကိန်းများတစ်လျှောက် အစီအစဉ်ဆွဲခြင်းဆိုင်ရာ ဖိအားများကို ပြန်လည်မျှညှိရန် ဤအရာကို အသုံးပြုပါ။", + ["report.delaysByAssignee"] = "တာဝန်ယူသူအလိုက် နှောင့်နှေးမှုများ", + ["report.delaysByAssigneeDesc"] = "ပံ့ပိုးမှု သို့မဟုတ် နယ်ပယ်ပြင်ဆင်မှု လိုအပ်နိုင်သော အဖွဲ့ဝင်များ။", + ["report.delaysByAssigneeInsight"] = "ပံ့ပိုးမှုအချက်ပြချက်သာဖြစ်သည် - များပြားသောအရေအတွက်သည် အကူအညီပေးရန်ဖြစ်ပြီး အပြစ်တင်ရန်မဟုတ်ပါ။", + ["report.pastDueDate"] = "သတ်မှတ်ရက် ကျော်လွန်နေသည်", + ["report.highPriorityDueSoon"] = "ဦးစားပေးမြင့်ပြီး မကြာမီ ပြီးဆုံးရမည်", + ["report.severityVsDaysOverdue"] = "ပြင်းထန်မှု နှင့် ရက်လွန်ရက်များ", + ["report.severityVsDaysOverdueDesc"] = "ဦးစားပေးမြင့်မားပြီး ပိုမိုကြာမြင့်သော နှောင့်နှေးမှုများသည် ညာဘက်အပေါ်ရှိ အန္တရာယ်ဇုန်တွင် တည်ရှိသည်။", + ["report.severityMatrixInsight"] = "ဤမက်ထရစ်သည် ဦးစားပေးပြင်းထန်မှုကို နှောင့်နှေးချိန်သက်တမ်းနှင့် ပေါင်းစပ်ကာ ဖြေရှင်းရမည့် အစီအစဉ်ကို ပြသသည်။" + }; + + private static readonly IReadOnlyDictionary ErrorMessageKeys = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + ["Invalid username/email or password."] = "result.invalidCredentials", + ["Failed to parse authentication response tokens."] = "result.invalidCredentials", + ["Please fill in all required fields."] = "validation.fillAllFields", + ["Registration failed. Please try again."] = "result.registrationFailed", + ["Failed to parse registration response."] = "result.registrationFailed", + ["Username is already taken."] = "result.usernameTaken", + ["Email is already registered."] = "result.emailRegistered", + ["No system roles configured. Registration failed."] = "result.noSystemRoles", + ["Unable to reach the API server. Please ensure TaskTrackingSystem.WebApi is running."] = "result.apiUnavailable", + ["Unable to reach the API server. Start TaskTrackingSystem.WebApi and try again."] = "result.apiUnavailable", + ["Failed to reset password."] = "result.resetPasswordFailed", + ["Unable to reset password."] = "result.resetPasswordFailed", + ["Invalid recovery code."] = "result.invalidRecoveryCode", + ["Account not found."] = "result.accountNotFound", + ["Username must be at least 3 characters long."] = "validation.usernameMinLength", + ["Username cannot contain spaces."] = "validation.usernameNoSpaces", + ["Username cannot contain spaces, and can only contain letters, numbers, underscores (_), and periods (.)"] = "validation.usernameInvalidCharacters", + ["Username cannot contain spaces, and can only contain letters, numbers, underscores (_), and periods (.)."] = "validation.usernameInvalidCharacters", + ["Password must be at least 6 characters."] = "validation.passwordMinLength", + ["Password must be at least 8 characters long."] = "validation.passwordMinLengthRule", + ["Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character."] = "validation.passwordComplexityRule", + ["Failed to update assignee."] = "task.failedUpdateAssignee", + ["Failed to load project members."] = "task.failedLoadProjectMembers", + ["Task assignee must belong to the selected project."] = "task.assigneeMustBelong", + ["At least one task title is required."] = "task.titleRequiredEitherLanguage", + ["You do not have permission to update tasks."] = "result.noPermissionUpdateTasks" + }; + + private static readonly IReadOnlyDictionary ValidationFieldNames = new Dictionary(StringComparer.OrdinalIgnoreCase) + { + ["Username"] = "common.username", + ["Email"] = "common.email", + ["FirstName"] = "auth.firstName", + ["LastName"] = "auth.lastName", + ["Password"] = "common.password", + ["NewPassword"] = "auth.newPassword", + ["RecoveryCode"] = "auth.recoveryCode", + ["UsernameOrEmail"] = "common.usernameOrEmail", + ["Phone"] = "common.phone" + }; + + public static bool IsBurmeseCulture => CultureInfo.CurrentUICulture.TwoLetterISOLanguageName.Equals("my", StringComparison.OrdinalIgnoreCase); + + public static string Text(string key, string fallback = "") + { + var catalog = IsBurmeseCulture ? Burmese : English; + if (catalog.TryGetValue(key, out var value)) + { + return value; + } + + if ((IsBurmeseCulture ? English : Burmese).TryGetValue(key, out value)) + { + return value; + } + + return string.IsNullOrWhiteSpace(fallback) ? key : fallback; + } + + public static string ErrorMessage(string? message, string fallback = "") + { + if (string.IsNullOrWhiteSpace(message)) + { + return Text("common.error", string.IsNullOrWhiteSpace(fallback) ? "Error" : fallback); + } + + var trimmed = message.Trim(); + if (ErrorMessageKeys.TryGetValue(trimmed, out var key)) + { + return Text(key, trimmed); + } + + var requiredMessage = TryLocalizeRequiredFieldMessage(trimmed); + if (!string.IsNullOrWhiteSpace(requiredMessage)) + { + return requiredMessage; + } + + var localized = trimmed; + foreach (var mappedError in ErrorMessageKeys) + { + if (localized.Contains(mappedError.Key, StringComparison.OrdinalIgnoreCase)) + { + localized = localized.Replace(mappedError.Key, Text(mappedError.Value, mappedError.Key), StringComparison.OrdinalIgnoreCase); + } + } + + foreach (var field in ValidationFieldNames) + { + var requiredError = $"The {field.Key} field is required."; + if (localized.Contains(requiredError, StringComparison.OrdinalIgnoreCase)) + { + var fieldLabel = Text(field.Value, field.Key); + var translated = IsBurmeseCulture ? $"{fieldLabel} လိုအပ်ပါသည်။" : $"{fieldLabel} is required."; + localized = localized.Replace(requiredError, translated, StringComparison.OrdinalIgnoreCase); + } + } + + if (!string.Equals(localized, trimmed, StringComparison.Ordinal)) + { + return localized; + } + + return trimmed; + } + + private static string? TryLocalizeRequiredFieldMessage(string message) + { + const string requiredPrefix = "The "; + const string requiredSuffix = " field is required."; + + if (!message.StartsWith(requiredPrefix, StringComparison.Ordinal) || + !message.EndsWith(requiredSuffix, StringComparison.Ordinal)) + { + return null; + } + + var fieldName = message[requiredPrefix.Length..^requiredSuffix.Length]; + var fieldLabel = ValidationFieldNames.TryGetValue(fieldName, out var fieldKey) + ? Text(fieldKey, fieldName) + : fieldName; + + return IsBurmeseCulture + ? $"{fieldLabel} လိုအပ်ပါသည်။" + : $"{fieldLabel} is required."; + } + + public static LocalizationCatalogValidation ValidateCatalogs(IEnumerable? referencedKeys = null) + { + var englishKeys = English.Keys.ToHashSet(StringComparer.OrdinalIgnoreCase); + var burmeseKeys = Burmese.Keys.ToHashSet(StringComparer.OrdinalIgnoreCase); + var referenced = referencedKeys?.ToHashSet(StringComparer.OrdinalIgnoreCase) ?? new HashSet(StringComparer.OrdinalIgnoreCase); + + return new LocalizationCatalogValidation( + englishKeys.Except(burmeseKeys, StringComparer.OrdinalIgnoreCase).OrderBy(key => key).ToArray(), + burmeseKeys.Except(englishKeys, StringComparer.OrdinalIgnoreCase).OrderBy(key => key).ToArray(), + Array.Empty(), + referenced.Count == 0 + ? Array.Empty() + : englishKeys.Concat(burmeseKeys).Distinct(StringComparer.OrdinalIgnoreCase) + .Except(referenced, StringComparer.OrdinalIgnoreCase) + .OrderBy(key => key) + .ToArray()); + } + + public static string LocalizeDigits(string? value) + { + if (!IsBurmeseCulture || string.IsNullOrEmpty(value)) + { + return value ?? string.Empty; + } + + return value + .Replace('0', '၀') + .Replace('1', '၁') + .Replace('2', '၂') + .Replace('3', '၃') + .Replace('4', '၄') + .Replace('5', '၅') + .Replace('6', '၆') + .Replace('7', '၇') + .Replace('8', '၈') + .Replace('9', '၉'); + } + + public static string Number(int value) => LocalizeDigits(value.ToString(CultureInfo.InvariantCulture)); + + public static string Number(long value) => LocalizeDigits(value.ToString(CultureInfo.InvariantCulture)); + + public static string Number(decimal value, string format = "0.#") => LocalizeDigits(value.ToString(format, CultureInfo.InvariantCulture)); + + public static string Number(double value, string format = "0.#") => LocalizeDigits(value.ToString(format, CultureInfo.InvariantCulture)); + + public static string MonthName(DateTime value, bool abbreviated = false) + { + if (!IsBurmeseCulture) + { + return value.ToString(abbreviated ? "MMM" : "MMMM", CultureInfo.InvariantCulture); + } + + var months = abbreviated + ? new[] { "ဇန်", "ဖေ", "မတ်", "ဧပြီ", "မေ", "ဇွန်", "ဇူလိုင်", "သြဂုတ်", "စက်", "အောက်", "နို", "ဒီ" } + : new[] { "ဇန်နဝါရီ", "ဖေဖော်ဝါရီ", "မတ်", "ဧပြီ", "မေ", "ဇွန်", "ဇူလိုင်", "သြဂုတ်", "စက်တင်ဘာ", "အောက်တိုဘာ", "နိုဝင်ဘာ", "ဒီဇင်ဘာ" }; + + return months[value.Month - 1]; + } + + public static string PageTitle(string key, string fallback = "") => Text($"page.{key}", fallback); + + public static string PageDescription(string key, string fallback = "") => Text($"page.{key}.desc", fallback); + + public static string StatusLabel(AppTaskStatus status) => status switch + { + AppTaskStatus.InProgress => Text("status.inprogress", "In Progress"), + AppTaskStatus.Done => Text("status.done", "Done"), + _ => Text("status.todo", "To Do") + }; + + public static string PriorityLabel(TaskPriority priority) => priority switch + { + TaskPriority.High => Text("priority.high", "High"), + TaskPriority.Medium => Text("priority.medium", "Medium"), + _ => Text("priority.low", "Low") + }; + + public static string StatusName(string? statusName) + { + if (string.IsNullOrWhiteSpace(statusName)) + { + return Text("common.unknown", "Unknown"); + } + + return statusName.Trim().Replace(" ", "", StringComparison.OrdinalIgnoreCase).ToLowerInvariant() switch + { + "todo" => Text("status.todo", "To Do"), + "inprogress" => Text("status.inprogress", "In Progress"), + "done" => Text("status.done", "Done"), + "active" => Text("status.active", "Active"), + "inactive" => Text("status.inactive", "Inactive"), + "overdue" => Text("status.overdue", "Overdue"), + "blocked" => Text("status.blocked", "Blocked"), + "resolved" => Text("status.resolved", "Resolved"), + "clear" => Text("status.clear", "Clear"), + _ => statusName + }; + } + + public static string PriorityName(string? priorityName) + { + if (string.IsNullOrWhiteSpace(priorityName)) + { + return Text("common.unknown", "Unknown"); + } + + return priorityName.Trim().ToLowerInvariant() switch + { + "high" => Text("priority.high", "High"), + "medium" => Text("priority.medium", "Medium"), + "low" => Text("priority.low", "Low"), + _ => priorityName + }; + } + + public static string ActionName(string? actionName) + { + if (string.IsNullOrWhiteSpace(actionName)) + { + return Text("common.unknown", "Unknown"); + } + + return actionName.Trim().ToLowerInvariant() switch + { + "create" or "created" or "add" or "added" => Text("action.create", "Create"), + "update" or "updated" or "edit" or "edited" => Text("action.update", "Update"), + "delete" or "deleted" => Text("action.delete", "Delete"), + "assign" or "assigned" or "assignaccess" => Text("action.assign", "Assign"), + "archive" or "archived" => Text("action.archiveDone", "Archive Done"), + "login" => Text("common.signIn", "Sign In"), + "logout" => Text("common.signOut", "Sign Out"), + _ => actionName + }; + } + + public static string ModuleName(string? moduleName) + { + if (string.IsNullOrWhiteSpace(moduleName)) + { + return Text("common.unknown", "Unknown"); + } + + return moduleName.Trim().Replace(" ", "", StringComparison.OrdinalIgnoreCase).ToLowerInvariant() switch + { + "project" or "projects" => Text("page.projects", "Projects"), + "task" or "tasks" => Text("page.tasks", "Tasks"), + "user" or "users" => Text("page.users", "Users"), + "role" or "roles" => Text("page.rolesAccess", "Roles & Access"), + "issue" or "issues" => Text("page.issues", "Issues"), + "audit" or "auditlog" or "auditlogs" => Text("page.auditLogs", "Audit Logs"), + "dashboard" => Text("page.dashboard", "Dashboard"), + "report" or "reports" => Text("page.reports", "Reports"), + "module" => Text("common.module", "Module"), + _ => moduleName + }; + } + + public static string AuditDescription(string? description) + { + if (string.IsNullOrWhiteSpace(description)) + { + return Text("common.noneRecorded", "None recorded"); + } + + var text = LocalizeDigits(description); + if (!IsBurmeseCulture) + { + return text; + } + + return text switch + { + var value when value.StartsWith("Created task ", StringComparison.OrdinalIgnoreCase) => $"လုပ်ငန်း {value["Created task ".Length..]} ကို ဖန်တီးခဲ့သည်", + var value when value.StartsWith("Updated task ", StringComparison.OrdinalIgnoreCase) => $"လုပ်ငန်း {value["Updated task ".Length..]} ကို ပြင်ဆင်ခဲ့သည်", + var value when value.StartsWith("Deleted task ", StringComparison.OrdinalIgnoreCase) => $"လုပ်ငန်း {value["Deleted task ".Length..]} ကို ဖျက်ခဲ့သည်", + var value when value.StartsWith("Updated project ", StringComparison.OrdinalIgnoreCase) => $"စီမံကိန်း {value["Updated project ".Length..]} ကို ပြင်ဆင်ခဲ့သည်", + var value when value.StartsWith("Created user ", StringComparison.OrdinalIgnoreCase) => $"အသုံးပြုသူ {value["Created user ".Length..]} ကို ဖန်တီးခဲ့သည်", + var value when value.StartsWith("Deleted user account ", StringComparison.OrdinalIgnoreCase) => $"အသုံးပြုသူအကောင့် {value["Deleted user account ".Length..]} ကို ဖျက်ခဲ့သည်", + var value when value.StartsWith("Updated role name/description for ", StringComparison.OrdinalIgnoreCase) => $"အခန်းကဏ္ဍအမည်/ဖော်ပြချက် {value["Updated role name/description for ".Length..]} ကို ပြင်ဆင်ခဲ့သည်", + var value when value.StartsWith("Created project ", StringComparison.OrdinalIgnoreCase) => $"စီမံကိန်း {value["Created project ".Length..]} ကို ဖန်တီးခဲ့သည်", + var value when value.StartsWith("Deleted project ", StringComparison.OrdinalIgnoreCase) => $"စီမံကိန်း {value["Deleted project ".Length..]} ကို ဖျက်ခဲ့သည်", + var value when value.StartsWith("Created new role ", StringComparison.OrdinalIgnoreCase) => $"အခန်းကဏ္ဍ {value["Created new role ".Length..]} ကို ဖန်တီးခဲ့သည်", + var value when value.StartsWith("Deleted role ", StringComparison.OrdinalIgnoreCase) => $"အခန်းကဏ္ဍ {value["Deleted role ".Length..]} ကို ဖျက်ခဲ့သည်", + var value when value.StartsWith("Updated access permissions for role ", StringComparison.OrdinalIgnoreCase) => $"အခန်းကဏ္ဍအသုံးပြုခွင့်များ ပြင်ဆင်ခဲ့သည်။ {value["Updated access permissions for role ".Length..]}", + var value when value.StartsWith("Updated user ", StringComparison.OrdinalIgnoreCase) => $"အသုံးပြုသူ {value["Updated user ".Length..]} ကို ပြင်ဆင်ခဲ့သည်", + _ => text + }; + } + + public static string EscalationLabel(int level) => level switch + { + 1 => IsBurmeseCulture ? "နိမ့်" : "Low", + 2 => IsBurmeseCulture ? "အလယ်" : "Medium", + 3 => IsBurmeseCulture ? "မြင့်" : "High", + _ => Text("common.none", "None") + }; + + public static string LocalizeNotificationTitle(string? title) + { + if (string.IsNullOrWhiteSpace(title)) return string.Empty; + if (!IsBurmeseCulture) return title; + + return title.Trim().ToLowerInvariant() switch + { + "task assigned" => "လုပ်ငန်းတာဝန် ပေးအပ်ခြင်း", + "task status changed" => "လုပ်ငန်းအခြေအနေ ပြောင်းလဲခြင်း", + "project assigned" => "စီမံကိန်းတာဝန် ပေးအပ်ခြင်း", + "new comment" => "မှတ်ချက်အသစ် ရေးသားခြင်း", + "you were mentioned" => "သင့်ကို ရည်ညွှန်းဖော်ပြခြင်း", + _ => title + }; + } + + public static string LocalizeNotificationBody(string? body) + { + if (string.IsNullOrWhiteSpace(body)) return string.Empty; + if (!IsBurmeseCulture) return body; + + if (body.StartsWith("You have been assigned a new task: ", StringComparison.OrdinalIgnoreCase)) + { + return $"သင့်အား လုပ်ငန်းသစ်တစ���ခု တာဝန်ပေးအပ်ထားပါသည် - {body["You have been assigned a new task: ".Length..]}"; + } + if (body.StartsWith("Task '", StringComparison.OrdinalIgnoreCase) && body.Contains("' changed from ")) + { + var match = System.Text.RegularExpressions.Regex.Match(body, @"^Task '(?.+)' changed from (?<oldStatus>.+) to (?<newStatus>.+)$", System.Text.RegularExpressions.RegexOptions.IgnoreCase); + if (match.Success) + { + var title = match.Groups["title"].Value; + var oldStatus = StatusName(match.Groups["oldStatus"].Value); + var newStatus = StatusName(match.Groups["newStatus"].Value); + return $"လုပ်ငန်း '{title}' ၏အခြေအနေသည် '{oldStatus}' မှ '{newStatus}' သို့ ပြောင်းလဲသွားပါသည်"; + } + } + if (body.StartsWith("You have been assigned to project '", StringComparison.OrdinalIgnoreCase) && body.EndsWith("'")) + { + var projName = body["You have been assigned to project '".Length..^1]; + return $"သင့်အား စီမံကိန်း '{projName}' တွင် တာဝန်ပေးအပ်ထားပါသည်"; + } + if (body.Contains(" commented on task '") && body.EndsWith("'")) + { + var idx = body.IndexOf(" commented on task '", StringComparison.OrdinalIgnoreCase); + if (idx > 0) + { + var actor = body[..idx]; + var taskTitle = body[(idx + " commented on task '".Length)..^1]; + return $"{actor} သည် လုပ်ငန်း '{taskTitle}' တွင် မှတ်ချက်တစ်ခု ရေးသားခဲ့ပါသည်"; + } + } + if (body.Contains(" mentioned you in task '") && body.EndsWith("'")) + { + var idx = body.IndexOf(" mentioned you in task '", StringComparison.OrdinalIgnoreCase); + if (idx > 0) + { + var actor = body[..idx]; + var taskTitle = body[(idx + " mentioned you in task '".Length)..^1]; + return $"{actor} သည် လုပ်ငန်း '{taskTitle}' တွင် သင့်ကို ရည်ညွှန်းဖော်ပြခဲ့ပါသည်"; + } + } + + return LocalizeDigits(body); + } +} + +public sealed record LocalizationCatalogValidation( + IReadOnlyList<string> MissingInEnglish, + IReadOnlyList<string> MissingInBurmese, + IReadOnlyList<string> DuplicateKeys, + IReadOnlyList<string> UnreferencedKeys); +