/**
 * Organization Translations - English
 */
export const organizationEn = {
  // Page title
  title: "Organization",
  subtitle: "Manage your team and departments",

  helpTip: "Manage organization & permissions",

  // Navigation/Tabs
  membersTab: "Members",
  departmentsTab: "Departments",
  structureTab: "Structure",

  // Common fields (top-level for all modules)
  name: "Name",
  employeeId: "Employee ID",
  hiredAt: "Hire Date",
  status: "Status",
  email: "Email",

  // Common status labels
  active: "Active",
  inactive: "Inactive",
  suspended: "Suspended",
  terminated: "Terminated",

  // Organization/Region Configuration
  orgs: {
    fields: {
      regions: "Associated Regions",
      primaryRegion: "Primary Region",
      operatingRegions: "Operating Regions",
      name: "Organization Name",
      code: "Organization Code",
      head: "Organization Head",
      description: "Description",
    },
    default: "Default",
    setDefault: "Set as Default",
    primary: "Primary",
    primaryBadge: "Primary",
    regionHint: "Select regions associated with this organization",
    primaryRegionHint:
      "Authoritative affiliation, used for statistics, routing, data isolation",
    operatingRegionsHint:
      "Operating coverage, used for filtering, display, permission extension (automatically includes primary region)",
    topLevelHint: "Top-level organizations can configure associated regions",
    cannotRemovePrimaryRegion: "Cannot remove primary region",
    selectOrganization: "Select Organization",
    addOrganization: "Add Organization",
    codeHint: "Unique identifier, cannot be modified after creation",
    selectPrimaryRegion: "Please select primary region",
    placeholders: {
      name: "Enter organization name",
      code: "Enter organization code (e.g., ORG-001)",
      head: "Search and select head",
      description: "Enter organization description (optional)",
    },
    messages: {
      empty: "No organizations",
      addMember: "Add Member",
      createSuccess: "Organization created successfully",
      createFailed: "Failed to create organization",
    },
    selectOrgFirst: "Please select organization first",

    // Organization List Page
    list: {
      title: "Organization Management",
      searchPlaceholder: "Search organization name or code...",
      allRegions: "All Regions",
      allStatus: "All Status",
      statusActive: "Active",
      statusInactive: "Inactive",
      statusSuspended: "Suspended",
      statusDissolved: "Dissolved",
      createOrg: "Create Organization",
      loadFailed: "Failed to load",
      retry: "Retry",
      noOrganizations: "No organizations",
      viewDetails: "View Details",
      edit: "Edit",
      delete: "Delete",
      operatingRegions: "Operating Regions",
      primaryTag: "Primary",
      regionCount: "regions",
      employeeCount: "employees",
      departmentCount: "departments",
      confirmDeleteTitle: "Confirm Delete",
      confirmDeleteMessage:
        'Are you sure you want to delete organization "{name}"? This action cannot be undone and will delete all departments and related data under this organization.',
      pageInfo: "Page {page} of {totalPages}, {total} total",
      prevPage: "Previous",
      nextPage: "Next",
    },

    // New Organization Page
    new: {
      title: "Create Organization",
      basicInfo: "Basic Information",
      nameLabel: "Organization Name",
      nameRequired: "Please enter organization name",
      namePlaceholder: "e.g., FF China",
      codeLabel: "Organization Code",
      codeRequired: "Please enter organization code",
      codePlaceholder: "e.g., FFCN",
      codeHint:
        "Unique identifier, recommended to use uppercase letters and numbers",
      descriptionLabel: "Description",
      descriptionPlaceholder:
        "Detailed description of the organization (optional)",
      regionConfig: "Region Configuration",
      noRegionsAvailable: "No regions available, please create regions first",
      primaryRegionLabel: "Primary Region",
      primaryRegionPlaceholder: "Please select primary region",
      primaryRegionHint: "Primary operating region of the organization",
      operatingRegionsLabel: "Operating Regions (Multiple)",
      regionsSelected: "{count} regions selected",
      primaryBadge: "Primary",
      loadRegionsFailed: "Failed to load regions list",
      createSuccess: "Organization created successfully",
      createFailed: "Failed to create organization",
      creating: "Creating...",
      createButton: "Create Organization",
    },

    // Organization Detail Page
    detail: {
      title: "Organization Details",
      loadFailed: "Failed to load organization details",
      notFound: "Organization not found",
      goBack: "Back to Organization List",
      editButton: "Edit Organization",
      deleteButton: "Delete Organization",
      basicInfoTitle: "Basic Information",
      nameLabel: "Organization Name",
      displayNameLabel: "Display Name",
      codeLabel: "Organization Code",
      primaryRegionLabel: "Primary Region",
      operatingRegionsLabel: "Operating Regions",
      descriptionLabel: "Description",
      headLabel: "Organization Head",
      statisticsTitle: "Statistics",
      employeeCountLabel: "Employee Count",
      departmentCountLabel: "Department Count",
      positionCountLabel: "Position Count",
      createTimeLabel: "Created At",
      updateTimeLabel: "Updated At",
      emptyRegions: "No regions linked",
      emptyEmployees: "No employees",
    },
  },

  // Member Management
  memberManagement: "Members",
  positionManagement: "Positions",
  roleManagement: "Roles & Permissions",
  aiToolsManagement: "AI Tools",
  dataScopesNav: "Data Scopes",
  regionManagement: "Regions",
  organizationStructure: "Structure",
  organizationStructureGrid: "Org Chart (Grid)",
  syncSettings: "User Sync",
  dingtalkSync: "DingTalk Sync",
  annualLeaveQuotaPage: "Leave Quota Overview",
  annualLeaveReleasePlanPage: "Annual Leave Release Plan",

  dingtalkAnnualLeave: {
    backToSync: "Back to DingTalk Sync",
    quotaTitle: "DingTalk Leave Quota Overview",
    quotaDescription:
      "View total, used and remaining quota for every leave type of each employee in DingTalk.",
    matrixDescription:
      "Summarized by employee. Each leave type is shown as a column, with remaining days as the primary value and used/total as context.",
    releasePlanTitle: "Annual Leave Release Plan",
    releasePlanDescription:
      "View, by employee, the release date of day 1, day 2, and each annual leave day in the release plan.",
    employeeCount: "Employees",
    leaveTypeCount: "Leave Types",
    nonZeroQuotaCount: "Non-zero Records",
    planCount: "Plan Items",
    upcomingDays: "Upcoming Days",
    todayReleaseEmployeeCount: "Today Release Employees",
    totalPlannedDays: "Total Planned Days",
    noPlan: "Not generated",
    noPlanReasonLabel: "Reason",
    releaseDayPrefix: "Day {index}",
    pageInfo: "Page {page} / {totalPages}, {total} employees",
    previousPage: "Previous",
    nextPage: "Next",
    hoverForIdentity: "Hover for identifiers",
    employeeNumberLabel: "Employee ID",
    copy: "Copy",
    copied: "Copied",
    keyword: "Employee Search",
    keywordPlaceholder: "Search by name, employee ID or userId",
    userId: "DingTalk UserID",
    hideZero: "Hide zero balances",
    upcomingOnly: "Upcoming only",
    includeConsultant: "Show consultants",
    includeLeaveWithoutPay: "Show leave without pay",
    includeTerminated: "Show terminated",
    year: "Year",
    leaveType: "Leave Type",
    quotaCycle: "Cycle",
    totalDays: "Total Days",
    usedDays: "Used Days",
    remainingDays: "Remaining Days",
    noBalance: "0",
    usedTotalCompact: "Used {used} / Total {total}",
    effectiveRange: "Effective Range",
    releaseDate: "Release Date",
    releaseDays: "Release Days",
    released: "Released",
    releaseTimelineTitle: "Release Records",
    usageTimelineTitle: "Usage Records",
    noReleaseRecords: "No release records",
    noUsageRecords: "No usage records",
    loading: "Loading...",
    empty: "No data",
    yes: "Yes",
    no: "No",
    refresh: "Refresh",
    refreshSnapshot: "Refresh Snapshot",
    refreshPlan: "Refresh Plan",
    refreshPlanSuccess: "Annual leave plan refreshed",
    refreshPlanHint:
      "Only recalculates the local annual leave release plan without pushing quota to DingTalk",
    planSettingsTitle: "Edit Annual Leave Plan Settings",
    planSettingsDescription:
      "Only updates local annual leave release plan settings and does not modify employee master data.",
    planSettingsLoadFailed: "Failed to load annual leave plan settings",
    planSettingsSaveSuccess: "Annual leave plan settings updated",
    planSettingsSaveFailed: "Failed to save annual leave plan settings",
    workStartDateLabel: "First Working Date",
    planLastCalculatedAt: "Last Recalculated At",
    adjustmentDaysLabel: "Quota Deduction Days",
    adjustmentDaysHint:
      "Only affects cumulative released quota and does not change release dates.",
    adjustmentDaysInvalid: "Quota deduction days format is invalid",
    notCountDaysLabel: "Release Plan Offset Days",
    notCountDaysHint:
      "Participates in release date recalculation and does not directly deduct final quota.",
    notCountDaysInvalid: "Release plan offset days must be an integer",
    save: "Save",
    saving: "Saving...",
    cancel: "Cancel",
    lastSyncedAtLabel: "Snapshot Updated At",
    notSynced: "Not synced",
    openQuotaPage: "Open Overview",
    openReleasePlanPage: "Open Plan",
    quotaEntryTitle: "Leave Quota",
    quotaEntryDesc:
      "Review each employee leave type balance, used quota and remaining quota in DingTalk.",
    releaseEntryTitle: "Release Plan",
    releaseEntryDesc:
      "Review future release dates and days from the annual leave release table.",
    exportCsv: "Export",
    exportFailed: "Export failed, please retry",
    statusFilter: "Status",
    statusAll: "All",
    statusNormal: "Normal",
    statusConsultant: "Consultant",
    statusLeaveWithoutPay: "Leave Without Pay",
    statusTerminated: "Terminated",
  },

  structure: {
    description: "View and manage the complete organization chart",
    manageDepartments: "Manage Departments",
    totalDepartments: "Total Departments",
    totalMembers: "Total Members",
    members: "Members",
    organizationLevels: "Organization Levels",
    topLevelDepartments: "Top Level Departments",
    expandAll: "Expand All",
    collapseAll: "Collapse All",
    noDepartments: "No Departments",
    createFirst: "Please create departments to build organization structure",
    createDepartment: "Create Department",
    manageMembers: "Manage Members",
    people: "people",
    subDepartments: "sub-departments",
    noManager: "No Manager Set",
    notSet: "Not Set",
    allMembers: "All Members",
    noMembers: "No members",
    zoomIn: "Zoom In",
    zoomOut: "Zoom Out",
    resetZoom: "Reset Zoom",
    loadFailed: "Load Failed",
    noData: "No organization data",
    noDataHint: "Please create departments first",
    createDeptFirst: "Please create departments first",
    basicInfo: "Basic Information",
    departmentHead: "Department Head",
    employeeCount: "Employee Count",
    name: "Name",
    position: "Position",
    employeeType: "Employee Type",
    fullTime: "Full-time",
    deptHead: "Department Head",
  },

  // Org Chart (Grid) — dark, read-only
  structureGrid: {
    pageTitle: "Organization Chart",
    subtitle: "Select a department from the sidebar, or click a card to explore the org structure across all tiers.",
    departments: "Departments",
    general: "general",
    subDepartments: "Sub-Departments",
    confirmedLeads: "Confirmed Leads",
    openTbd: "Open / TBD",
    channelsSubDepartments: "Channels — Sub-Departments",
    subTeams: "Sub-Teams",
    teamMembers: "Team Members",
    noMembers: "No member details on record.",
    departmentLead: "Department Head",
    subDepartmentCount: "{count} sub-department(s)",
    seeAllChannels: "See all channels",
    moreSuffix: "more",
    lead: "Lead",
    tbd: "TBD",
    acting: "Acting",
    member: "Member",
    open: "Open",
    loading: "Loading…",
    loadFailed: "Failed to load",
    retry: "Retry",
    noData: "No departments yet",
    deeperLevels: "Deeper Levels",
    closeDrawer: "Close",
    backHome: "Back to Home",
    category: {
      exec: "Executive",
      eng: "Engineering & Product",
      ops: "Operations",
      biz: "Commercial",
      corp: "Corporate",
      fin: "Finance & Capital",
    },
  },

  // Members List Page
  membersList: {
    title: "User Management",
    batchImport: "Batch Import",
    syncFromLDAP: "Sync from LDAP",
    syncing: "Syncing...",
    createUser: "Create User",
    batchImportMemberships: "Batch Import Memberships",
    allDepartments: "All Departments",
    allStatus: "All Status",
    allRoles: "All Roles",
    roleLabel: "Role",
    username: "Username",
    displayName: "Display Name",
    email: "Email",
    department: "Department",
    statusColumn: "Status",
    actions: "Actions",
    noMatchingUsers: "No matching users found",
    tryOtherFilters: "Try adjusting search criteria",
    noUsersYet: "No users yet",
    clickToCreate: "Click button to create first user",
    createFirstUser: "Create First User",
    assignRoles: "Assign Roles",
    suspend: "Suspend",
    resume: "Resume",
    deactivate: "Deactivate",
    activate: "Activate",
    terminate: "Terminate",
    prevPage: "Previous",
    nextPage: "Next",
    batchImportWorkCity: "Batch Import Work City",
    workCityColumn: "Work City",
  },
  memberList: "Member List",
  addMember: "Add Member",
  importMembers: "Import Members",
  exportMembers: "Export Members",
  syncFromLdap: "Sync from Entra ID",
  syncing: "Syncing...",
  syncSuccess: "Sync Successful",
  syncFailed: "Sync Failed",
  passwordMinLength: "Password length at least 8 characters",
  ldapUsernameRequired: "Please enter LDAP username",

  // User form fields (New/Edit User Page)
  basicInfo: "Basic Information",
  displayName: "Display Name",
  identitySource: "Identity Source",
  localUser: "Local User",
  localUserHint: "Local users use system password for login",
  ldapUserHint:
    "LDAP users will use enterprise LDAP/AD account for login, no need to set password",
  usernamePlaceholder: "Enter username",
  usernameHint: "3-50 characters, letters, numbers and underscores only",
  usernameInvalid:
    "Username can only contain letters, numbers and underscores, length 3-50",
  realNamePlaceholder: "Enter real name",
  emailPlaceholder: "Enter email",
  emailInvalid: "Please enter a valid email address",
  password: "Password",
  passwordPlaceholder: "At least 8 characters",
  passwordHint:
    "Password length at least 8 characters, must contain at least 2 types of characters",
  confirmPassword: "Confirm Password",
  confirmPasswordPlaceholder: "Enter password again",
  ldapUsername: "LDAP Username",
  ldapUsernameHint:
    "LDAP username for matching accounts in enterprise directory",
  phonePlaceholder: "Enter phone number",
  employeeIdPlaceholder: "Enter employee ID",
  selectDeptFirst: "Please select department first",
  region: "Region",

  // Organization level common fields
  addOrganization: "Add Organization",
  selectOrgFirst: "Please select organization first",
  loadOrgFailed: "Failed to load organization data",
  orgName: "Organization Name",
  orgNamePlaceholder: "Enter organization name",
  orgManager: "Organization Manager",
  searchManagerPlaceholder: "Search and select manager",
  description: "Description",
  primaryRegion: "Primary Region",
  selectRegionPlaceholder: "Select primary region",
  operatingRegions: "Operating Regions",
  primaryRegionHint:
    "Authoritative attribution for statistics, routing, and data isolation",
  operatingRegionsHint:
    "Operational coverage for filtering, display, and permission extension (automatically includes primary region)",
  orgNameRequired: "Please enter organization name",
  selectRegionRequired: "Please select primary region",
  createSuccess: "Organization created successfully",

  // users/members new page
  members: {
    searchPlaceholder: "Search username, email, employee ID...",
    basicInfo: "Basic Information",
    identitySource: "Identity Source",
    localUser: "Local User",
    localUserHint: "Local users use system password for login",
    ldapUserHint:
      "LDAP users will use enterprise LDAP/AD account for login, no need to set password",
    usernamePlaceholder: "Enter username",
    usernameHint: "3-50 characters, letters, numbers and underscores only",
    usernameInvalid:
      "Username can only contain letters, numbers and underscores, length 3-50",
    realNamePlaceholder: "Enter real name",
    emailPlaceholder: "Enter email",
    emailInvalid: "Please enter a valid email address",
    password: "Password",
    passwordPlaceholder: "At least 8 characters",
    passwordHint:
      "Password length at least 8 characters, must contain at least 2 types of characters",
    passwordMinLength: "Password length at least 8 characters",
    passwordMismatch: "Passwords do not match",
    confirmPassword: "Confirm Password",
    confirmPasswordPlaceholder: "Enter password again",
    ldapUsername: "LDAP Username",
    ldapUsernamePlaceholder: "sAMAccountName",
    ldapUsernameHint:
      "LDAP username for matching accounts in enterprise directory",
    ldapUsernameRequired: "Please enter LDAP username",
    phonePlaceholder: "Enter phone number",
    employeeIdPlaceholder: "Enter employee ID",
    selectDeptFirst: "Please select department first",
    region: "Region",
    workCity: "Work City",
    workCityPlaceholder: "Enter or pick a work city",
    workCityHint: "Used for check-in mode validation: derives on-site/online by exact comparison (trim + case-sensitive) with meeting city",
    loadFailed: "Failed to load member information",
  },

  // Member Info
  memberInfo: "Member Info",
  username: "Username",
  realName: "Real Name",
  phone: "Phone",
  department: "Department",
  position: "Position",
  role: "Role",
  joinDate: "Join Date",
  lastLogin: "Last Login",

  // Department Management
  departmentManagement: "Departments",
  orgManagement: "Organizations",
  departmentList: "Department List",
  addDepartment: "Add Department",
  editDepartment: "Edit Department",
  deleteDepartment: "Delete Department",
  departmentName: "Department Name",
  departmentCode: "Department Code",
  parentDepartment: "Parent Department",
  manager: "Direct Manager",
  noManager: "No Manager Set",
  memberCount: "Member Count",
  module: "Module",
  action: "Action",
  employeeType: "Employee Type",
  employeeTypeFull: "Full-time",

  // departments page specific
  departments: {
    selectTargetParent: "Please select target parent department",
    loadFailed: "Failed to load departments",
    loadDeletedMembersFailed: "Failed to load deleted members",
    autoSetPrimaryDept: "Automatically set another department as primary",
    memberUpdateSuccess: "Member information updated successfully",
    memberRemoved: "Removed {user} from {dept}",
    cannotDeleteHasMembers: "Cannot delete: department has members",
    cannotDeleteHasSubDepts: "Cannot delete: department has sub-departments",
    subDepts: "Sub-departments",
    addSubDept: "Add Sub-department",
    deptHead: "Department Head",
    employeeCount: "Employee Count",
    setManager: "Set Manager",
    loadOrgFailed: "Failed to load organization data",
    noDepartments: "No Departments",
    selectDeptOrOrg:
      "Please select a department or organization on the left to view members",
    includeSubDeptMembers: "Include sub-department members",
    noMembers: "No Members",
    noMatchingMembers: "No Matching Members",
    searchDept: "Search Department",
    changeParentDept: "Change Parent Department",
    batchImport: "Batch Import",
    noMatchingDepts: "No Matching Departments",
    noPosition: "No Position",
    managerPlaceholder: "e.g.: Technical Lead",
    searchNameOrEmailPlaceholder: "Search by name or email...",
    searchUserPlaceholder: "Search users...",
    descriptionPlaceholder: "Enter department description (optional)",
    confirmRemoveMember: "Confirm Remove Member",
    noDeptManagers: "No other available managers in this department",
    noDirectManager: "No direct manager",
    batchChangeParent: "Batch Change Parent Department",
    batchChangeParentDesc:
      "The parent departments of these departments will be uniformly changed to the target department you select",
    selectNewParent: "Select New Parent Department",
    selectParentDeptPlaceholder: "Please select parent department",
    selectedDeptCannotBeTarget:
      "Selected departments cannot be used as target parent",
    batchImportTitle: "Batch Import Departments",
    importSteps: "Import Steps",
    downloadTemplate: "Download Import Template",
    fieldDeptName: "Department Name",
    fieldDeptNameDesc: "Required, the display name of the department",
    fieldParentName: "Parent Department Name",
    fieldParentNameDesc:
      "Optional, leave empty for top-level department, fill in the complete name of parent department for sub-department",
    fieldDescriptionDesc:
      "Optional, description of department responsibilities",
    reselectFile: "Click to reselect file",
    selectFilePlaceholder: "Click to select file or drag file here",
    deptNameCol: "Department Name",
    parentDeptCol: "Parent Department Name",
    confirmRestore: "Confirm Restore User",
    managerSetSuccess: "Manager set successfully",
    setManagerTitle: "Set Manager",
    searchManager: "Search Manager",
    loadUsersFailed: "Failed to load users",
    availableUsers: "Available Users",
    selected: "Selected",
    clickToAdd: "Click users on the left to add",
    selectFileFirst: "Please select import file first",
    rootDeptNotFound:
      "Unable to get root department ID, please refresh and try again",
    membersTab: "Members",
    departmentsTab: "Departments",
    deletedMembersTab: "Deleted Members",
    searchPlaceholder: "Search...",
    add: "Add",
    usersLabel: "Users",
    columnSettings: "Column Settings",
    dragToReorder: "Drag to reorder",
    personInCharge: "Person in Charge",
    addFirstDepartment: "Add First Department",
    departmentName: "Department Name",
    size: "Size",
    source: "Source",
    action: "Action",
    deletedMembersWarning:
      "The following are deleted members, you can restore them",
    noDeletedMembers: "No deleted members",
    deletedMembersHint:
      "Deleted members will be permanently deleted after 30 days",
    memberName: "Member Name",
    email: "Email",
    department: "Department",
    deletedAt: "Deleted At",
    restore: "Restore",
    // Example data
    templateCol1: "Department Name*",
    templateCol2: "Parent Department Name",
    templateCol3: "Description",
    exampleHR: "Human Resources",
    exampleHRDesc: "Responsible for company HR management",
    exampleRecruit: "Recruitment Team",
    exampleRecruitDesc: "Responsible for talent recruitment",
    exampleTraining: "Training & Development",
    exampleTrainingDesc: "Responsible for employee training and development",
    exampleTech: "Technology",
    exampleTechDesc: "Responsible for company technology R&D",
    exampleFrontend: "Frontend Team",
    exampleFrontendDesc: "Responsible for frontend development",
    exampleBackend: "Backend Team",
    exampleBackendDesc: "Responsible for backend development",
  },

  // Region Management
  regions: {
    title: "Region Management",
    subtitle: "Manage business regions supported by the system",
    create: "Create Region",
    createRegion: "Create Region",
    edit: "Edit Region",
    delete: "Delete Region",
    searchPlaceholder: "Search region code or name...",
    requiredFields: "Please fill in region code and name",
    fillRequired: "Please fill in required fields",
    codePattern:
      "Region code must be 2-10 uppercase letters, numbers or underscores",
    codePlaceholder: "e.g., CN, US, UAE",
    namePlaceholder: "e.g., China Region",
    nameEnPlaceholder: "e.g., China",
    createSuccess: "Region created successfully",
    updateSuccess: "Region updated successfully",
    deleteSuccess: "Region deleted successfully",
    createFailed: "Failed to create",
    updateFailed: "Failed to update",
    deleteFailed: "Failed to delete",
    loadFailed: "Failed to load regions",
    loadOrgsFailed: "Failed to load organizations",
    setDefaultSuccess: "Default organization set successfully",
    clearDefaultSuccess: "Default organization cleared successfully",
    setDefaultFailed: "Failed to set default organization",
    organizations: "organizations",
    users: "users",
    defaultOrg: "Default Organization",
    setDefaultOrg: "Set Default Organization",
    selectDefaultOrgHint:
      "Select a default top-level organization for this region",
    selectOrganization: "Select Organization",
    clearDefaultOrg: "Clear Default Organization",
    noTopLevelOrgs: "No top-level organizations available",
    nameZhLabel: "Chinese",
    nameZhPlaceholder: "e.g., 中国",
    timezonePlaceholder: "e.g., Asia/Shanghai",
    currencyPlaceholder: "e.g., CNY, USD",
    localePlaceholder: "e.g., zh-CN, en-US",
    noRegions: "No regions",
    noMatchingRegions: "No matching regions found",
    createFirstRegion: 'Click "Create Region" button to add your first region',
    fields: {
      code: "Region Code",
      name: "Region Name",
      nameEn: "English Name",
      nameZh: "Chinese Name",
      timezone: "Timezone",
      currency: "Currency",
      locale: "Locale",
      order: "Order",
    },
    empty: {
      title: "No Regions",
      description: 'Click "Create Region" button to add your first region',
    },
    confirmDelete: {
      title: "Confirm Delete",
      message:
        'Are you sure you want to delete region "{name}"? This action cannot be undone.',
    },
  },

  // Position Management
  positions: {
    subtitle: "Manage positions and levels",
    add: "Add Position",
    edit: "Edit Position",
    name: "Position Name",
    code: "Position Code",
    level: "Level",
    description: "Description",
    userCount: "Employees",
    items: "positions",
    noData: "No positions yet",
    noMatchingPositions: "No matching positions found",
    addFirst: "Add your first position",
    searchPlaceholder: "Search position name or code...",
    namePlaceholder: "Enter position name",
    codePlaceholder: "Enter position code, e.g. ENGINEER",
    descriptionPlaceholder: "Enter description (optional)",
    nameRequired: "Position name is required",
    codeRequired: "Position code is required",
    codeNotEditable: "Position code cannot be changed after creation",
    levelTip: "Level range 1-20, higher number means higher rank",
    confirmDelete: 'Are you sure you want to delete position "{name}"?',
    confirmDeleteTitle: "Confirm Delete",
    deleteSuccess: "Deleted successfully",
    deleteWarning:
      "This position still has employees. Deleting it will affect these users",
    saveFailed: "Failed to save",
    deleteFailed: "Failed to delete",
    loadFailed: "Failed to load position data",
    notFound: "Position not found",
    totalCount: "Total {count} positions",
    employees: "Employees",
    employeeCount: "Employee Count",
    noEmployees: "No employees yet",
  },

  // Organization Structure
  viewTree: "Tree View",
  viewList: "List View",
  expand: "Expand",
  collapse: "Collapse",
  expandAll: "Expand All",
  collapseAll: "Collapse All",

  // Role Management
  roleAndPermissionManagement: "Roles & Permissions",
  addRole: "Add Role",
  editRole: "Edit Role",
  deleteRole: "Delete Role",
  roleName: "Role Name",
  roleCode: "Role Code",
  roleDescription: "Role Description",
  permissions: "Permissions",
  roleMembers: "Role Members",

  // User Sync
  syncStatus: "Sync Status",
  syncReady: "Entra ID sync ready",
  lastSync: "Last sync",
  viewSyncDetails: "View sync details",
  created: "Created",
  updated: "Updated",
  skipped: "Skipped",
  total: "Total",

  sync: {
    title: "User Sync",
    subtitle: "Manage Entra ID user data synchronization",
    description: "Manage Entra ID user data synchronization",
    currentStatus: "Current Status",
    lastSyncTime: "Last Sync",
    lastSyncResult: "Last Sync Result",
    duration: "Duration",
    neverSynced: "Never synced",
    clickToStart: 'Click "Sync Now" to start',
    totalUsers: "Total Users",
    statsAdded: "Added",
    statsUpdated: "Updated",
    statsSkipped: "Skipped",
    statsConflicts: "Conflicts",
    instructions: "Sync Instructions",
    confirmSync: "Confirm Sync",
    confirmSyncMessage:
      "Are you sure you want to sync user data now? This may take a few minutes.",
    syncSuccess: "Sync Successful!",
    statsTotal: "Total",
    lastResult: "Last Sync Result",
    syncNow: "Sync Now",
    syncing: "Syncing...",
    ready: "Ready",
    readyToSync: "System is ready for synchronization",
    syncInProgress: "Sync in Progress",
    pleaseWait: "Please wait, synchronization is in progress...",
    syncFailed: "Sync failed, please try again later",
    howItWorks: "How It Works",
    step1: "System fetches user data from Entra ID",
    step2:
      "Matches existing users by email or username, updates user information",
    step3:
      "For new users, accounts are automatically created and assigned default roles",
    step4: "Users with email conflicts are skipped and logged",
    warning: "Notice",
    warningText:
      "Please do not close the page during sync. Large-scale sync may take several minutes.",
    warningTitle: "Notice",
    warningMessage:
      "Please do not close the page during sync. Large-scale sync may take several minutes.",
    errors: "Errors",
    moreErrors: "and",
    moreErrorsSuffix: "more errors",
  },

  // User Status
  statusActive: "Active",
  statusInactive: "Inactive",
  statusSuspended: "Suspended",
  statusTerminated: "Terminated",

  // Stats
  stats: {
    totalUsers: "Total Users",
    active: "Active",
    totalDepartments: "Departments",
    topLevel: "Top Level",
    totalPositions: "Positions",
    positionTypes: "Types",
    totalRoles: "Roles",
    systemRoles: "System",
    workflowRoles: "Workflow",
  },

  // Quick Actions
  quickActions: {
    addMember: "Add Member",
    addMemberDesc: "Create a new system user account",
    addDepartment: "Add Department",
    addDepartmentDesc: "Create a new organization department",
    manageRoles: "Manage Roles",
    manageRolesDesc: "Configure system roles and permissions",
    syncFromEntra: "Sync Users",
    syncFromEntraDesc: "Sync user data from Entra ID",
  },

  // User Status Distribution
  userStatusDistribution: "User Status Distribution",

  // Role sub-navigation
  roles: {
    overview: "Overview",
    title: "Role Management",
    systemRoles: "System Roles",
    workflowRoles: "Workflow Roles",
    permissionList: "Permissions",

    // Overview page
    overviewTitle: "Roles & Permissions Overview",
    overviewSubtitle: "Manage system roles, workflow roles and permissions",

    // Quick actions
    quickActions: "Quick Actions",
    systemRolesDesc: "Manage system permission roles",
    workflowRolesDesc: "Manage workflow approval roles",
    permissionListDesc: "View all system permissions",

    // Stats cards
    systemRolesCount: "System Roles Count",
    workflowRolesCount: "Workflow Roles Count",
    permissionsLabel: "Permissions",
    permissionsCount: "Total Permissions",
    roleAssignments: "Role Assignments",
    roleAssignmentsCount: "Total Assignments",

    // System notes
    systemNotes: "System Notes",
    systemRolesNote:
      "Used to manage user permissions in the system, such as menu access, page access, button operations, etc.",
    workflowRolesNote:
      'Used for abstract identities in workflow approvals, such as "Direct Supervisor" or "Department Head", with approvers calculated dynamically by rules.',
    permissionListNote:
      "Shows all configurable permissions in the system, grouped by module and resource, for role permission configuration.",
    aboutSystemRoles: "About System Roles",
    aboutWorkflowRoles: "About Workflow Roles",
    aboutPermissions: "About Permissions",

    // System roles page
    searchPlaceholder: "Search role name, code or description...",
    createRole: "Create Role",
    roleName: "Role Name",
    roleCode: "Role Code",
    description: "Description",
    memberCount: "Members",
    permissionCount: "Permissions",
    type: "Type",
    builtIn: "Built-in",
    custom: "Custom",
    noMatchingRoles: "No matching roles",
    noRoles: "No roles",
    tryOtherKeywords: "Try other search criteria",
    noRolesHint: "No system roles have been added yet",
    createFirstRole: "Create First Role",
    rolesUnit: "roles",
    totalRoles: "Total {count} roles",
    filteredFrom: "Filtered from {count} roles",
    totalWorkflowRoles: "Total {count} workflow roles",
    usedInWorkflows: "Used in Workflows",

    // Delete confirmation
    confirmDeleteRole: "Confirm Delete Role",
    confirmDeleteRoleMessage: "Are you sure you want to delete role",
    confirmDeleteRoleSuffix: "?",
    cannotUndo: "This action cannot be undone.",
    roleHasMembers: "This role has",
    membersWillLosePermissions:
      "members. Deleting it will cause these users to lose the permissions from this role.",

    // Toast messages
    loadRolesFailed: "Failed to load roles",
    loadSystemRolesFailed: "Failed to load system roles",
    loadUsersFailed: "Failed to load user list",
    roleDeleted: "Role deleted",
    deleteFailed: "Delete failed",
    deleteSuccess: "Deleted successfully",
    deleteRoleFailed: "Failed to delete role",
    createSuccess: "Created successfully",
    createFailed: "Failed to create",
    basicInfoSaved: "Basic information saved",
    permissionsSaved: "Permissions saved",
    userAdded: "User added",
    addUserFailed: "Failed to add user",
    userRemoved: "User removed",
    removeUserFailed: "Failed to remove user",

    // Additional fields
    noMembers: "No members",
    codeEditPlaceholder: "Enter role code (e.g.: ADMIN)",
    searchUserPlaceholder: "Search users (name, username, email, ID)",
    workflowRoleName: "Workflow Role Name",
    workflowRoleCode: "Workflow Role Code",
    workflowRoleDescription: "Workflow Role Description",
    selectRuleTypePlaceholder: "Please select rule type",
    orgRelationType: "Organization Relation Type",
    selectOrgRelationPlaceholder: "Please select organization relation",
    mappedSystemRole: "Mapped System Role",
    selectOrgRelationRequired: "Please select organization relation type",
    selectSystemRoleRequired: "Please select mapped system role",

    // Form validation
    nameRequired: "Please enter role name",
    codeRequired: "Please enter role code",
    nameCodeRequired: "Please enter role name and code",
    ruleTypeRequired: "Please select rule type",
    enterScript: "Please enter script content",
    selectAtLeastOneUser: "Please select at least one user",

    // Form placeholders
    namePlaceholder: "Enter role name",
    codePlaceholder: "Enter role code",
    selectSystemRolePlaceholder: "Select system role",
    enterScriptPlaceholder: "Enter JavaScript script",
    newWorkflowRoleTitle: "Create Workflow Role",
    nameHint: "Provide an easy-to-understand name for the role",
    codeHint:
      "Unique identifier, uppercase letters and underscores recommended",
    permissionsConfig: "Permissions Configuration",
    selectedCount: "{count} permissions selected",
    loadingPermissions: "Loading permissions...",
    descriptionPlaceholder: "Enter role description (optional)",

    // Workflow roles page
    searchWorkflowRolesPlaceholder:
      "Search workflow role name, code or description...",
    createWorkflowRole: "Create Workflow Role",
    ruleType: "Rule Type",
    ruleTypes: {
      fixedUsers: "Fixed Users",
      orgRelation: "Organization Relation",
      roleMapping: "Role Mapping",
      dynamicScript: "Dynamic Script",
    },
    ruleConfig: "Rule Configuration",
    ruleDescription: "Rule Description",
    ruleDescriptions: {
      fixedUsers: "Administrators specify a fixed list of users as approvers",
      orgRelation:
        "Dynamically determine approvers based on the applicant's relationship with the organizational structure, such as direct manager, department head, etc.",
      roleMapping: "Map approvers based on the applicant's system role",
      dynamicScript: "Use custom scripts to dynamically calculate approvers",
    },
    assignedUsers: "Assigned Users",
    noAssignedUsers: "No assigned users",
    assignedUserCount: "Assigned User Count",
    usageCount: "Usage Count",
    workflows: "workflows",
    notFound: "Workflow role not found",
    loadFailed: "Failed to load",
    workflowCount: "Workflows",
    noMatchingWorkflowRoles: "No matching workflow roles",
    noWorkflowRoles: "No workflow roles",
    noWorkflowRolesHint: "No workflow roles have been added yet",
    createFirstWorkflowRole: "Create First Workflow Role",
    workflowRolesUnit: "workflow roles",
    confirmDeleteWorkflowRole: "Confirm Delete Workflow Role",
    confirmDeleteWorkflowRoleMessage:
      'Are you sure you want to delete the workflow role "{name}"?',
    roleUsedInWorkflows:
      "⚠️ This role is used by {count} workflow(s). Deleting it may cause these workflows to malfunction.",
    savePermissionsConfig: "Save Permissions Configuration",
    fallbackScopeTitle: "Fallback DataScope (resource = *)",
    fallbackScopeHint: "Applies to any resource without a specific binding; commonly set to own department or organization",
    scopePickPlaceholder: "Select DataScope",
    scopeNone: "Unbound (inherit fallback)",
    scopeFallbackHint: "Unbound — inherits fallback",
    // Permission tab UX
    builtInReadonlyBanner: "Built-in role is read-only — view only",
    permSearchPlaceholder: "Search resource / module",
    showAll: "Show all ({count})",
    showOnlyConfigured: "Configured only",
    permSummary: "{permCount} permissions selected · {scopeCount} explicit scopes",
    noSearchMatch: "No matching resource",
    noConfigured: "No configured resources — click \"Show all\" on the right or pick a fallback DataScope to start",
    // ScopePicker states
    scopeInheritedFallback: "Inherits fallback: {name} ({scopeType})",
    fallbackUnconfigured: "Unconfigured (degrades to SELF at runtime)",
    scopeUnboundDegrade: "Unbound (degrades to SELF at runtime)",
    noMatchingUsers: "No matching users found",
    noAvailableUsers: "No users available to add",
    loadingRoles: "Loading role list...",
    loadingUsers: "Loading user list...",
    fixedUsersLabel: "Fixed Users",

    // Rule types
    orgRelation: "Organization Relation",
    sysRoleMapping: "System Role Mapping",
    fixedUsers: "Fixed Users",
    dynamicScript: "Dynamic Script",
    orgRelationDesc:
      "Dynamically determine approvers based on organizational relationships, such as direct manager, department head, etc.",
    sysRoleMappingDesc:
      "Map to a system role, all users of that system role are approvers",
    fixedUsersDesc: "Specify a fixed list of approvers",
    dynamicScriptDesc:
      "Dynamically calculate approvers through custom scripts (advanced feature)",
    directManager: "Direct Manager",
    deptHead: "Department Head",
    skipLevelManager: "Skip-Level Manager",

    // Workflow role toast messages
    loadWorkflowRolesFailed: "Failed to load workflow roles",
    workflowRoleDeleted: "Workflow role deleted",
    deleteWorkflowRoleFailed: "Failed to delete workflow role",

    // Permissions page
    searchPermissionsPlaceholder:
      "Search permission resource, action or description...",
    expandAll: "Expand All",
    collapseAll: "Collapse All",
    moduleLabel: "Module",
    permissionsUnit: "permissions",
    action: "Action",
    permissionCode: "Permission Code",
    noMatchingPermissions: "No matching permissions",
    totalResourceGroups: "Total {count} resource groups",
    totalPermissions: "Total {count} permissions",
    filteredFromResourceGroups: "Filtered from {count} resource groups",
    noPermissions: "No permissions data",
    resourceGroupsUnit: "resource groups",
    permissionsCountUnit: "permissions",

    // Permissions toast messages
    loadPermissionsFailed: "Failed to load permissions",
  },

  // Table columns
  columns: {
    id: "ID",
    username: "Username",
    realName: "Real Name",
    email: "Email",
    department: "Department",
    position: "Position",
    role: "Role",
    status: "Status",
    actions: "Actions",
  },

  // Actions
  view: "View",
  edit: "Edit",
  delete: "Delete",
  enable: "Enable",
  disable: "Disable",
  suspend: "Suspend",
  activate: "Activate",
  resetPassword: "Reset Password",
  assignRole: "Assign Role",
  removeMember: "Remove Member",
  more: "More",

  // Dialogs
  confirmDelete: "Confirm Delete",
  confirmDeleteMessage:
    "Are you sure you want to delete {name}? This action cannot be undone.",
  confirmRemove: "Confirm Remove",
  confirmRemoveMessage:
    "Are you sure you want to remove {name} from this department?",

  // Messages (legacy keys - may be used in some places)
  addSuccess: "Added successfully",
  addFailed: "Failed to add",
  updateSuccess: "Updated successfully",
  updateFailed: "Failed to update",
  deleteSuccess: "Deleted successfully",
  deleteFailed: "Failed to delete",
  deleteConfirmMessage: 'Are you sure you want to delete "{name}"?',
  cannotDeleteWithMembers: "Cannot delete department with members",
  cannotDeleteWithSubDepts: "Cannot delete department with sub-departments",
  ldapSynced: "Entra ID Synced",
  manualCreated: "Manually Created",
  noDepartments: "No departments",
  source: "Source",
  topLevel: "Top Level",
  departmentManager: "Department Manager", // Note: This refers to the department head role, not user's direct manager
  selectManager: "Select Manager",
  searchManager: "Search users...",
  departmentNamePlaceholder: "Enter department name",
  descriptionPlaceholder: "Enter department description (optional)",

  // DepartmentDialog specific
  dialog: {
    editOrg: "Edit Organization",
    addOrg: "Add Organization",
    orgName: "Organization Name",
    orgCode: "Organization Code",
    orgManager: "Organization Manager",
    orgNamePlaceholder: "Enter organization name",
    deptNamePlaceholder: "Enter department name",
    orgDescriptionPlaceholder: "Enter organization description (optional)",
    deptDescriptionPlaceholder: "Enter department description (optional)",
    relatedRegions: "Associated Regions",
    primaryRegion: "Primary Region",
    selectPrimaryRegion: "Select primary region",
    primaryRegionHint:
      "Authoritative attribution for statistics, routing, and data isolation",
    operatingRegions: "Operating Regions",
    operatingRegionsHint:
      "Operational coverage for filtering, display, and permission extension (automatically includes primary region)",
    primaryBadge: "[Primary]",
    loadDataFailed: "Failed to load data",
    orgNameRequired: "Please enter organization name",
    deptNameRequired: "Please enter department name",
    selectPrimaryRegionRequired: "Please select primary region",
    orgIdMissing: "Organization ID is missing, cannot create department",
    codeAlreadyExists: "Department code already exists",
    cannotRemovePrimaryRegion: "Cannot remove primary region",
    noMatchingResults: "No matching results",
    selectOrgFirst: "Please select organization first",
  },

  // User Status Management
  userStatusManagement: {
    confirmSuspend: 'Are you sure you want to suspend user "{name}"?',
    confirmActivate: 'Are you sure you want to activate user "{name}"?',
    suspendSuccess: "User suspended",
    suspendFailed: "Failed to suspend",
    activateSuccess: "User activated",
    activateFailed: "Failed to activate",
  },

  // Filter
  filter: "Filter",
  filterByDepartment: "Filter by Department",
  filterByRole: "Filter by Role",
  filterByStatus: "Filter by Status",
  resetFilter: "Reset Filter",

  // Search
  search: "Search",
  searchPlaceholder: "Search members...",
  searchByName: "Search by Name",
  searchByEmail: "Search by Email",

  // Other
  items: "items",
  noData: "No data",
  loading: "Loading...",

  // Department Management Page (DingTalk style)
  deptMgmt: {
    adminStructure: "Administrative",
    noOrganization: "No Organization",
    deptId: "Dept ID",
    employeeId: "Employee ID",
    name: "Name",
    loadFailed: "Failed to load departments",
    selectToView:
      "Select a department or organization on the left to view members",
    settings: "Settings",
    selectOrg: "Select Organization",
    addPerspective: "Add Organization",
    addSubDept: "Add Sub-department",
    availableUsers: "Available Users",
    selectedUsers: "Selected",
    clickToAdd: "Click users on the left to add",
    noAvailableUsers: "No available users",
    setOwner: "Set Owner",
    searchOwner: "Search Owner",
    setOwnerSuccess: "Owner set successfully",
    setOwnerFailed: "Failed to set owner",
    noManagerSet: "No Manager Set",
    departmentMembers: "Members",
    includeSubDepartments: "Include sub-department members",
    fixed: "Fixed",
    // Add members dialog
    addMembers: "Add Members",
    searchUserPlaceholder: "Search users...",
    noUsersFound: "No users found",
    loadUsersFailed: "Failed to load users",
    willAddMembers: "Will add {count} members to {name}",
    addButton: "Add",
    membersAdded: "{count} members added",
    addFailed: "Failed to add members",
    // Lark style additions
    memberAndDepartment: "Members and Departments",
    // Department Sidebar
    basicInfo: "Basic Information",
    departmentHead: "Department Head",
    employeeCount: "Employee Count",
    allMembers: "All Members",
    noMembers: "No members",
    resumeWarning:
      "After restoration, this user will be able to log in to the system again and access their original permissions.",
    memberRemoved: "Member removed",

    // Supplement missing keys
    membersTab: "Members",
    departmentsTab: "Departments",
    deletedMembersTab: "Deleted Members",
    searchPlaceholder: "Enter name, email address, phone number, or user ID",
    usersLabel: "Members",
    add: "Add",
    columnSettings: "Column Settings",
    status: "Status",
    department: "Department",
    phone: "Phone",
    manager: "Direct Manager",
    region: "Region",
    source: "Source",
    hiredAt: "Hire Date",
    dragToReorder: "Drag to reorder columns",
    personInCharge: "Person in charge",
    searchDepartment: "Search department",
    noMatchingDepartments: "No matching departments found",
    noMatchingMembers: "No matching members found",
    departmentName: "Department name",
    size: "Size",
    action: "Action",
    noDepartments: "No departments yet",
    addFirstDepartment: "Add your first department",
    deletedMembersWarning:
      "Deleted members can be permanently restored with all data intact.",
    noDeletedMembers: "No deleted members",
    deletedMembersHint: "Deleted members will appear here",
    memberName: "Member Name",
    email: "Email",
    deletedAt: "Deleted At",
    restore: "Restore",
    restoreSuccess: "User restored successfully",
    restoreFailed: "Failed to restore user",
    restoreConfirmTitle: "Confirm Restore User",
    restoreConfirmMessage: 'Are you sure you want to restore user "{name}"?',
    restoreConfirmHint:
      "After restoration, the user will be able to log in again and access their original permissions.",
    confirmRestore: "Confirm Restore",
    restoring: "Restoring...",
    confirmRemoveMember:
      "Are you sure you want to remove this member from the department?",
    removing: "Removing...",
    removeSuccess: "Member removed successfully",
    notFound: "Department not found",
    remove: "Remove",
    confirmDelete: 'Are you sure you want to delete "{name}"?',
    userHasNoDept: "⚠️ The user has no department affiliation",

    // Batch Operations
    batchMove: {
      title: "Batch Move Departments",
      buttonTitle: "Move Parent",
      selectedCount: "Selected {count} departments",
      warningTitle: "Selected {count} departments",
      warningDesc:
        "The parent departments of these departments will be uniformly changed to your selected target department",
      selectTarget: "Select New Parent Department",
      selectTargetPlaceholder: "Please select parent department",
      selectTargetHint:
        "Selected departments cannot be used as target parent department",
      cancel: "Cancel",
      confirm: "Confirm",
      moving: "Moving...",
      success: "Successfully moved {count} departments",
      failed: "Batch move failed",
      selectTargetRequired: "Please select target parent department",
    },

    // Batch Import
    batchImport: {
      title: "Batch Import",
      dialogTitle: "Batch Import Departments",
      steps: {
        title: "Import Steps",
        step1: "Download department import template",
        step2:
          "Fill in department information according to the template format",
        step3: "Upload the completed file",
        step4: "Confirm and submit the import",
      },
      template: {
        title: "Download Import Template",
        downloadBtn: "Download Template",
        downloading: "Downloading...",
        downloaded: "Template downloaded",
        includes:
          "Template includes: Department Name*, Parent Department Name, Description",
        instructionsTitle: "Instructions:",
        fieldName: "Department Name",
        fieldNameDesc: "Required, display name of the department",
        fieldParentName: "Parent Department Name",
        fieldParentNameDesc:
          "Optional, leave empty for top-level departments, fill in the complete parent department name for sub-departments",
        fieldDescription: "Description",
        fieldDescriptionDesc:
          "Optional, description of department responsibilities",
        autoCodeTip:
          "💡 Tip: The system will automatically generate department codes based on department names, no manual input required",
        fileParseInDevelopment: "File parsing feature in development...",
        downloadFilename: "department-import-template.csv",
      },
      upload: {
        title: "Upload File",
        required: "Upload File *",
        placeholder: "Click to select file or drag file here",
        reselect: "Click to reselect file",
        formatHint: "Supports .xlsx, .xls, .csv formats",
        parsing: "Parsing...",
        parseSuccess: "File parsed successfully, {count} valid records",
        parseWarning: "File parsed, found {count} invalid records",
        parseFailed: "Failed to parse file, please check file format",
      },
      preview: {
        title: "Data Preview ({count} records)",
        deptName: "Department Name",
        parentName: "Parent Department Name",
        description: "Description",
        empty: "-",
      },
      actions: {
        cancel: "Cancel",
        confirm: "Start Import",
        importing: "Importing...",
      },
      messages: {
        selectFile: "Please select import file",
        selectOrg: "Please select organization first",
        importSuccess: "Batch import successful! Created {count} departments",
        importFailed: "Batch import failed",
        developing: "Batch import feature is under development...",
      },
    },
  },

  // ✅ User Detail Drawer
  userDetail: {
    title: "Member Details",
    previous: "Previous",
    next: "Next",
    active: "Active",
    inactive: "Inactive",
    suspended: "Suspended",
    terminated: "Terminated",
    loadFailed: "Failed to load user details",
    notFound: "User not found",
    backToList: "Back to list",
    editBasicInfo: "Edit Basic Info",

    // Tabs
    tabs: {
      basicInfo: "Basic Info",
      departments: "Departments",
      rolesPermissions: "Roles & Permissions",
      logs: "Operation Logs",
    },

    // Actions
    actions: {
      edit: "Edit Info",
    },

    // Password Management
    password: {
      resetPassword: "Reset Password",
      confirmResetPassword: "Please set a new password for the user",
      newPassword: "New Password",
      confirmPassword: "Confirm Password",
      pleaseEnterPassword: "Please enter password",
      passwordMismatch: "Passwords do not match",
      passwordTooWeak: "Password is too weak",
      passwordStrength: "Password Strength",
      passwordStrengthWeak: "Weak",
      passwordStrengthMedium: "Medium",
      passwordStrengthStrong: "Strong",
      passwordRules: "Password Rules",
      passwordRule1: "At least 8 characters",
      passwordRule2: "At least one uppercase letter",
      passwordRule3: "At least one lowercase letter",
      passwordRule4: "At least one number",
      resetSuccess: "Password reset successfully",
      resetFailed: "Failed to reset password",
      resetting: "Resetting...",
      confirmReset: "Confirm Reset",
      cancel: "Cancel",
    },

    basicInfo: {
      title: "Basic Information",
      employeeId: "Employee Number",
      phone: "Phone Number",
      workCity: "Work City",
      hiredAt: "Date of Employment",
      createdAt: "Created At",
      lastSyncedAt: "Last Synced At",
    },

    // Departments (restructured)
    departments: {
      title: "Department Assignments",
      addDepartment: "Add Department",
      noDepartments: "No department assignments",
      primaryBadge: "Primary",
      position: "Position",
      jobTitle: "Title",
      jobTitlePlaceholder: "e.g., Senior Engineer",
      manager: "Direct Manager",
      directManager: "Direct Manager",
      setPrimary: "Set as Primary",
      setAsPrimary: "Set as Primary",
      thisDepartment: "This Department",
      confirmRemove:
        'Are you sure you want to remove user from department "{name}"?',
      selectDepartment: "Please select a department",
      loadFailed: "Failed to load department assignments",
      edit: "Edit",
      addSuccess: "Added successfully",
      addFailed: "Failed to add",
      updateSuccess: "Updated successfully",
      updateFailed: "Failed to update",
      setPrimarySuccess: "Set successfully",
      setPrimaryFailed: "Failed to set",
      removeSuccess: "Removed successfully",
      removeFailed: "Failed to remove",
      confirmSetPrimary:
        "Are you sure you want to set this as the primary department?",

      // Add Dialog
      addDialog: {
        title: "Add Department Assignment",
        description: "Add a new department assignment for the user",
        department: "Department",
        departmentRequired: "Please select a department",
        departmentPlaceholder: "Please select a department",
        position: "Position",
        positionPlaceholder: "Please select a position (optional)",
        titleLabel: "Title in Department",
        titlePlaceholder: "e.g., Tech Lead",
        manager: "Direct Manager",
        managerPlaceholder: "Please select a manager (optional)",
        selectDeptFirst: "Please select a department first",
        noPosition: "No Position",
        searchNameOrEmailPlaceholder: "Search by name or email...",
        searchUserPlaceholder: "Search users...",
        descriptionPlaceholder: "Enter department description (optional)",
        noManager: "No other members available as manager in this department",
        cancel: "Cancel",
        confirm: "Confirm",
      },

      // Edit Dialog
      editDialog: {
        title: "Edit Department Assignment",
        description:
          "Modify user position, manager and other information in this department",
        position: "Position",
        positionPlaceholder: "Please select a position (optional)",
        titleLabel: "Title in Department",
        titlePlaceholder: "e.g., Tech Lead",
        manager: "Direct Manager",
        managerPlaceholder: "Please select a manager (optional)",
        noManagersAvailable:
          "No other members available as manager in this department",
        cancel: "Cancel",
        confirm: "Save",
      },
    },

    // Roles & Permissions
    rolesPermissions: {
      rolesSection: "Assigned Roles",
      noRoles: "No roles assigned",
      permissionsSection: "Effective Permissions",
      noPermissions: "No permissions",
      loadFailed: "Failed to load permissions",
      noSearchResults: "No matching permissions found",
      searchPlaceholder: "Search permissions, sources...",
      permissionGroups: {
        user: "User Management",
        department: "Department Management",
        role: "Role Management",
        permission: "Permission Management",
        organization: "Organization Management",
      },
    },

    // Logs
    logs: {
      loadFailed: "Failed to load operation logs",
      noLogs: "No operation logs",
      unknownAction: "Unknown action",
    },

    // Error messages
    errors: {
      loadFailed: "Failed to load user information",
    },

    // Edit Dialog
    editDialog: {
      title: "Edit User",
      externalWarning:
        "This user is from {source}, some information may be overwritten on next sync",
      editBasicInfo: "Modify user basic information",
      username: "Username",
      usernameReadonly: "Username cannot be modified",
      displayName: "Display Name",
      displayNameRequired: "Please enter display name",
      displayNamePlaceholder: "Please enter display name",
      email: "Email",
      emailRequired: "Please enter email",
      emailInvalid: "Invalid email format",
      emailPlaceholder: "Please enter email",
      phone: "Phone Number",
      phonePlaceholder: "Please enter phone number",
      employeeId: "Employee ID",
      employeeIdPlaceholder: "Please enter employee ID",
      workCity: "Work City",
      workCityPlaceholder: "Enter or pick a work city",
      cancel: "Cancel",
      save: "Save",
      updateSuccess: "User information updated successfully",
      updateFailed: "Failed to update user information",
    },

    // Old fields (for backwards compatibility)
    jobDetails: "Job Details",
    customInfo: "Custom Info",

    // Basic Info Fields
    name: "Name",
    username: "Username",
    userId: "User ID",
    phone: "Phone Number",
    email: "Work Email",
    department: "Department",
    employeeId: "Employee Number",
    status: "Status",

    // Job Details Fields
    hiredAt: "Date of Employment",
    region: "Country or Region",
    manager: "Direct Manager",
    position: "Job Title",
    source: "Source",
    allDepartments: "All Departments",
    primary: "Primary",

    // Custom Info
    noCustomInfo: "No custom information available",
    // Note: membersTab, departmentsTab, deletedMembersTab already defined above (lines 938-940), removing duplicates
    add: "Add",
    usersLabel: "Members",
    departmentsTabPlaceholder: "Departments view coming soon",
    deletedMembersTabPlaceholder: "Deleted members view coming soon",
    searchPlaceholder: "Enter name, email address, phone number, or user ID",
    searchDepartment: "Search department",
    departmentName: "Department name",
    memberCount: "Size",
    parentDepartment: "Parent Department",
    action: "Action",
    viewMembers: "View Members",
    noDepartments: "No departments yet",
    addFirstDepartment: "Add your first department",
    deletedMembersWarning:
      "Deleted members can be permanently restored with all data intact.",
    noDeletedMembers: "No deleted members",
    deletedMembersHint: "Deleted members will appear here",
    restore: "Restore",
    restoreConfirmTitle: "Confirm Restore User",
    restoreConfirmMessage: 'Are you sure you want to restore user "{name}"?',
    restoreConfirmHint:
      "After restoration, the user will be able to log in again and access their original permissions.",
    confirmRestore: "Confirm Restore",
    restoring: "Restoring...",
    restoreSuccess: "User restored successfully",
    restoreFailed: "Failed to restore user",
    deletedAt: "Deleted At",
    terminatedAt: "Terminated At",
    includeSubDepartments: "Include sub-department members",
    columnSettings: "Column Settings",
    dragToReorder: "Drag to reorder columns",
    fixed: "Fixed",
    personInCharge: "Person in charge",
    statusAll: "All",
    allMembers: "All members",

    // Batch Operations
    batchMove: {
      title: "Batch Move Departments",
      buttonTitle: "Move Parent",
      selectedCount: "Selected {count} departments",
      warningTitle: "Selected {count} departments",
      warningDesc:
        "The parent departments of these departments will be uniformly changed to your selected target department",
      selectTarget: "Select New Parent Department",
      selectTargetPlaceholder: "Please select parent department",
      selectTargetHint:
        "Selected departments cannot be used as target parent department",
      cancel: "Cancel",
      confirm: "Confirm",
      moving: "Moving...",
      success: "Successfully moved {count} departments",
      failed: "Batch move failed",
      selectTargetRequired: "Please select target parent department",
    },

    // Batch Import
    batchImport: {
      title: "Batch Import",
      dialogTitle: "Batch Import Departments",
      steps: {
        title: "Import Steps",
        step1: "Download department import template",
        step2:
          "Fill in department information according to the template format",
        step3: "Upload the completed file",
        step4: "Confirm and submit the import",
      },
      template: {
        title: "Download Import Template",
        downloadBtn: "Download Template",
        downloading: "Downloading...",
        downloaded: "Template downloaded",
        includes:
          "Template includes: Department Name*, Parent Department Name, Description",
        instructionsTitle: "Instructions:",
        fieldName: "Department Name",
        fieldNameDesc: "Required, display name of the department",
        fieldParentName: "Parent Department Name",
        fieldParentNameDesc:
          "Optional, leave empty for top-level departments, fill in the complete parent department name for sub-departments",
        fieldDescription: "Description",
        fieldDescriptionDesc:
          "Optional, description of department responsibilities",
        autoCodeTip:
          "💡 Tip: The system will automatically generate department codes based on department names, no manual input required",
        fileParseInDevelopment: "File parsing feature in development...",
        downloadFilename: "department-import-template.csv",
      },
      upload: {
        title: "Upload File",
        required: "Upload File *",
        placeholder: "Click to select file or drag file here",
        reselect: "Click to reselect file",
        formatHint: "Supports .xlsx, .xls, .csv formats",
        parsing: "Parsing...",
        parseSuccess: "File parsed successfully, {count} valid records",
        parseWarning: "File parsed, found {count} invalid records",
        parseFailed: "Failed to parse file, please check file format",
      },
      preview: {
        title: "Data Preview ({count} records)",
        deptName: "Department Name",
        parentName: "Parent Department Name",
        description: "Description",
        empty: "-",
      },
      actions: {
        cancel: "Cancel",
        confirm: "Start Import",
        importing: "Importing...",
      },
      messages: {
        selectFile: "Please select import file",
        selectOrg: "Please select organization first",
        importSuccess: "Batch import successful! Created {count} departments",
        importFailed: "Batch import failed",
        developing: "Batch import feature is under development...",
      },
    },
  },

  // Multi-Organization Management
  multiOrg: "Organizations",

  // Common fields supplement
  size: "Size",
  confirmRemoveMember:
    "Are you sure you want to remove this member from the department?",
  confirmRemoveMemberMessage:
    "Are you sure you want to remove {userName} from {deptName}?",
  removing: "Removing...",

  // AI Tools Authorization Management (v2.2 Permissions MVP)
  aiTools: {
    title: "AI Tools Authorization",
    subtitle:
      "Manage extra AI tool access for roles and users. Grants are additive on top of OpenClaw baseline tools and cannot tighten the baseline.",
    subtitleV23: "Manage AI tool access for roles and users. 4 core dialog tools are system-locked and cannot be removed. All other tools can be independently authorized per role/user.",
    viewAuditLog: "View authorization audit log",
    tabs: {
      ruleManagement: "Rule Management",
      effectivePreview: "Effective Preview",
      roleGrants: "Role Grants",
      userGrants: "User Grants",
    },
    subviews: {
      byRole: "By Role",
      byUser: "By User",
      byTool: "By Tool",
    },
    search: {
      rolePlaceholder: "Search role name/code...",
      userPlaceholder: "Search username/email/display name...",
    },
    filters: {
      org: "Organization",
      dept: "Department",
      role: "Role",
      hasExtra: "Has extra grants",
      hasRevoked: "Has revoked tools",
      reset: "Reset filters",
      allOrg: "All Organizations",
      allDept: "All Departments",
      allRoles: "All Roles",
      selectTool: "Select Tool",
      selectToolPlaceholder: "— Please select —",
    },
    categories: {
      core: "Core Dialog Tools",
      fs: "File",
      runtime: "Runtime",
      sessions: "Session Management",
      memory: "Memory",
      web: "Web",
      media: "Media",
      automation: "Automation",
      browser: "Browser",
      productivity: "M365",
    },
    columns: {
      role: "Role",
      user: "User",
      toolName: "Tool",
      reason: "Reason",
      source: "Source",
      createdAt: "Created At",
      updatedAt: "Last Updated",
      actions: "Actions",
      authorizedTools: "Authorized Tools",
      toolCount: "Tool Count",
      roles: "Roles",
      inheritedTools: "Inherited Tools",
      extraDiff: "Extra +/-",
      effectiveTotal: "Effective",
      noRole: "No role",
      items: "items",
    },
    actions: {
      addRoleGrant: "Add Role Grant",
      addUserGrant: "Add User Grant",
      delete: "Delete",
      edit: "Edit",
      filter: "Filter",
      clearFilter: "Clear Filter",
    },
    modal: {
      addRoleGrantTitle: "Add Role Grant",
      addUserGrantTitle: "Add User Grant",
      selectRole: "Select Role",
      selectRolePlaceholder: "Choose a role",
      selectUser: "Select User",
      selectUserPlaceholder: "Search by username / email / display name",
      selectTools: "Select Tools (multi-select)",
      selectTool: "Select Tool",
      reason: "Reason",
      reasonPlaceholder:
        "Why grant this user the tool? e.g. 'Project X temporary need'",
      reasonHint: "Required for audit trail. Max 500 characters.",
      save: "Save",
      cancel: "Cancel",
      saving: "Saving...",
    },
    empty: {
      noRoleGrants: "No role-level grants yet",
      noUserGrants: "No user-level grants yet",
      selectUserPrompt: "Select a user to view effective tools",
      selectToolPrompt: "Select a tool to view granted users",
      noEffectiveTools:
        "This user has no extra grants. Only OpenClaw baseline tools are available.",
      noToolSubjects: "No users currently granted this tool",
    },
    source: {
      fromRole: "Role",
      fromUser: "Direct grant",
      locked: "System locked",
    },
    drawer: {
      editRoleTitle: "Edit Role Grants",
      editUserTitle: "Edit User Grants",
      searchTools: "Search tools...",
      selectAll: "Select All",
      clearAll: "Clear",
      changeSummary: "Change Summary",
      noChanges: "No changes",
      unsavedConfirm: "You have unsaved changes. Close anyway?",
      reasonRequired: "Please enter a reason",
      reasonLabel: "Change Reason (Required)",
      reasonPlaceholder: "e.g. Project X needs browser tool; suspend email access",
      roleChain: "Role chain",
      legendActive: "☑ Active",
      legendRevoked: "◐ Revoked",
      legendOff: "☐ Not granted",
      legendHint: "Click to toggle",
      tagAdded: "+Added",
      collapse: "Collapse",
      expand: "Expand",
    },
    effective: {
      selectUserHint: "Select a user from the left to view effective tools",
      effectiveTools: "Effective Tools",
      locked: "Locked",
      inherited: "Inherited",
      userAdded: "User added",
      userRemoved: "User removed",
      revokedTitle: "Explicitly revoked",
      selectToolHint: "Select a tool to see which users have access",
      noToolSubjects: "No users have been granted this tool",
      noFilterResults: "No users match the filter criteria",
      filterResult: "Filtered {filtered} / Total {total} users",
      totalUsers: "Total {total} users",
    },
    pagination: {
      total: "Total {total} items, Page {page}/{totalPages}",
    },
    toast: {
      roleUpdated: "{role} grants updated: +{added} / -{removed}",
      userUpdated: "{user} grants updated: +{added} / -{removed}",
    },
    delete: {
      confirmTitle: "Delete Grant",
      confirmRoleGrant:
        "Delete the grant of tool '{tool}' for role '{role}'?",
      confirmUserGrant:
        "Delete the direct grant of tool '{tool}' for user '{user}'?",
      success: "Deleted successfully",
    },
    create: {
      successRole:
        "Granted {count} tool(s) to '{role}' (skipped {skipped} existing)",
      successUser: "Granted '{tool}' to '{user}'",
    },
    errors: {
      duplicateGrant: "This grant already exists",
      unknownTool: "Tool is not in the available list",
      reasonRequired: "Reason cannot be empty",
      loadFailed: "Failed to load data",
      saveFailed: "Failed to save",
      deleteFailed: "Failed to delete",
      mustSelectRole: "Please select a role first",
      mustSelectUser: "Please select a user first",
      mustSelectAtLeastOneTool: "Please select at least one tool",
    },
  },

  workCityImport: {
    title: "Batch Import Work City",
    description: "Upload a two-column Excel (Email, Work City); the system compares with known cities and applies changes only after admin confirmation.",
    templateHint: "Template: column 1 Email, column 2 Work City. An optional header row is auto-detected.",
    downloadTemplate: "Download Template",
    selectFile: "Choose File",
    reselectFile: "Choose Another",
    parseFailed: "Failed to parse Excel, please check the file",
    emptyFile: "Excel is empty or missing required columns",
    rowsParsed: "{count} rows parsed",
    preview: "Preview",
    previewing: "Previewing...",
    committing: "Committing...",
    commit: "Confirm Import",
    cancel: "Cancel",
    summary: "{total} rows across {cities} unique cities",
    categoryExactTitle: "Existing cities (exact match)",
    categoryExactHint: "Used directly, no action required",
    categorySimilarTitle: "Similarity warnings",
    categorySimilarHint: "File spelling is close to an existing city — please confirm each entry",
    categoryNewTitle: "Brand-new cities",
    categoryNewHint: "System has no such city yet — please confirm adding",
    actionUse: "Keep as entered",
    actionReplace: "Use existing \"{city}\"",
    actionSkip: "Skip this city",
    actionAddNew: "Add",
    actionSkipNew: "Skip",
    unmatchedTitle: "Emails not matching any user (will be skipped)",
    unmatchedEmpty: "All emails matched",
    rowsCount: "{count} rows",
    distanceHint: "edit distance {distance}",
    similarTo: "Existing: {city}",
    commitSuccess: "Done: {created} created, {updated} updated, {skipped} skipped",
    commitFailed: "Import failed",
    previewFailed: "Preview failed",
  },
};

export type OrganizationTranslations = typeof organizationEn;
