export default {
  common: {
    inputText: 'Please input',
    selectText: 'Please select',
    startTimeText: 'Start time',
    endTimeText: 'End time',
    login: 'Login',
    required: 'This is required',
    loginOut: 'Login out',
    document: 'Document',
    profile: 'User Center',
    reminder: 'Reminder',
    loginOutMessage: 'Exit the system?',
    back: 'Back',
    ok: 'OK',
    save: 'Save',
    cancel: 'Cancel',
    close: 'Close',
    reload: 'Reload current',
    success: 'Success',
    closeTab: 'Close current',
    closeTheLeftTab: 'Close left',
    closeTheRightTab: 'Close right',
    closeOther: 'Close other',
    closeAll: 'Close all',
    prevLabel: 'Prev',
    nextLabel: 'Next',
    skipLabel: 'Jump',
    doneLabel: 'End',
    menu: 'Menu',
    menuDes: 'Menu bar rendered in routed structure',
    collapse: 'Collapse',
    collapseDes: 'Expand and zoom the menu bar',
    tagsView: 'Tags view',
    tagsViewDes: 'Used to record routing history',
    tool: 'Tool',
    toolDes: 'Used to set up custom systems',
    query: 'Query',
    reset: 'Reset',
    shrink: 'Put away',
    expand: 'Expand',
    confirmTitle: 'System Hint',
    exportMessage: 'Whether to confirm export data item?',
    importMessage: 'Whether to confirm import data item?',
    createSuccess: 'Create Success',
    updateSuccess: 'Update Success',
    total: 'Total',
    delMessage: 'Delete the selected data?',
    delDataMessage: 'Delete the data?',
    delNoData: 'Please select the data to delete',
    delSuccess: 'Deleted successfully',
    index: 'Index',
    status: 'Status',
    createTime: 'Create Time',
    updateTime: 'Update Time',
    operate: 'Operation',
    copy: 'Copy',
    copySuccess: 'Copy Success',
    copyError: 'Copy Error',
    code:'Auto-generate on Save'
  },
  ErpStock: {
    Warehouse: {
      name: 'Warehouse Name',
      status: 'Warehouse Status',
      address: 'Warehouse Address',
      warehousePrice: 'Storage Fee',
      truckagePrice: 'Truckage Fee',
      principal: 'Principal',
      remark: 'Remark',
      sort: 'Sort',
      defaultStatus: 'Default Status',
      createTime: 'Create Time',
      placeholderName: 'Please enter warehouse name',
      placeholderStatus: 'Please select warehouse status',
      placeholderAddress: 'Please enter warehouse address',
      placeholderPrincipal: 'Please enter principal',
      placeholderSort: 'Please enter sort',
      placeholderRemark: 'Please enter remark',
      validatorNameRequired: 'Warehouse name is required',
      validatorSortRequired: 'Sort is required',
      validatorStatusRequired: 'Status is required',
      confirmDefaultStatus: 'Are you sure to {action} "{name}" as default?',
      set: 'set',
      cancel: 'cancel',
      exportName: 'Warehouse.xls'
    },
    Stock: {
      product: 'Product',
      warehouse: 'Warehouse',
      code: 'Code',
      name: 'Name',
      category: 'Category',
      unit: 'Unit',
      count: 'Stock Quantity',
      placeholderProduct: 'Please select product',
      placeholderWarehouse: 'Please select warehouse',
      exportName: 'Product Stock.xls'
    },
    In: {
      no: 'Inbound No',
      product: 'Product',
      inTime: 'Inbound Time',
      warehouse: 'Warehouse',
      creator: 'Creator',
      status: 'Status',
      remark: 'Remark',
      supplier: 'Supplier',
      productInfo: 'Product Info',
      count: 'Quantity',
      price: 'Amount',
      totalPrice: 'Total Price',
      inType: 'Inbound Type',
      file: 'Attachment',
      tabProduct: 'Product Inbound',
      tabMaterial: 'Material Inbound',
      tabPart: 'Part Inbound',
      tabOther: 'Other Inbound',
      placeholderNo: 'Please enter inbound no',
      placeholderNoAuto: 'Auto-generated on save',
      placeholderProduct: 'Please select product',
      placeholderWarehouse: 'Please select warehouse',
      placeholderCreator: 'Please select creator',
      placeholderStatus: 'Please select status',
      placeholderRemark: 'Please enter remark',
      placeholderSupplier: 'Please select supplier',
      placeholderInTime: 'Select inbound time',
      placeholderInType: 'Please select inbound type',
      validatorInTimeRequired: 'Inbound time is required',
      validatorInTypeRequired: 'Inbound type is required',
      confirmApprove: 'Are you sure to approve this inbound order?',
      confirmReverseApprove: 'Are you sure to reverse approve this inbound order?',
      approveSuccess: 'Approve success',
      reverseApproveSuccess: 'Reverse approve success',
      exportName: 'Other Inbound Order.xls',
      list: 'Inbound Product List',
      addItem: 'Add Inbound Product'
    },
    Out: {
      no: 'Outbound No',
      customer: 'Customer',
      outTime: 'Outbound Time',
      outType: 'Outbound Type',
      warehouse: 'Warehouse',
      remark: 'Remark',
      file: 'Attachment',
      list: 'Outbound Product List',
      tabOther: 'Other Outbound',
      tabPart: 'Part Outbound',
      tabMaterial: 'Material Outbound',
      tabProduct: 'Product Outbound',
      tabPick: 'Pick Outbound',
      placeholderNo: 'Auto-generated on save',
      placeholderCustomer: 'Please select customer',
      placeholderOutTime: 'Select outbound time',
      placeholderOutType: 'Please select outbound type',
      placeholderRemark: 'Please enter remark',
      validatorOutTimeRequired: 'Outbound time is required',
      validatorOutTypeRequired: 'Outbound type is required',
      confirmApprove: 'Are you sure to approve this outbound order?',
      confirmReverseApprove: 'Are you sure to reverse approve this outbound order?',
      approveSuccess: 'Approve success',
      reverseApproveSuccess: 'Reverse approve success',
      exportName: 'Other Outbound Order.xls',
      addItem: 'Add Outbound Product'
    },
    Item: {
      index: 'Index',
      warehouse: 'Warehouse Name',
      product: 'Product Name',
      stock: 'Stock',
      barcode: 'Barcode',
      unit: 'Unit',
      count: 'Quantity',
      price: 'Price',
      totalPrice: 'Total Price',
      remark: 'Remark',
      action: 'Action',
      placeholderWarehouse: 'Please select warehouse',
      placeholderProduct: 'Please select product',
      validatorWarehouseRequired: 'Warehouse is required',
      validatorProductRequired: 'Product is required',
      validatorCountRequired: 'Quantity is required'
    },
    Check: {
      no: 'Check No',
      product: 'Product',
      checkTime: 'Check Time',
      warehouse: 'Warehouse',
      creator: 'Creator',
      status: 'Status',
      remark: 'Remark',
      productNames: 'Product Names',
      count: 'Quantity',
      price: 'Amount',
      totalPrice: 'Total Price',
      placeholderNo: 'Please enter check no',
      placeholderNoAuto: 'Auto-generated on save',
      placeholderProduct: 'Please select product',
      placeholderWarehouse: 'Please select warehouse',
      placeholderCreator: 'Please select creator',
      placeholderStatus: 'Please select status',
      placeholderRemark: 'Please enter remark',
      placeholderCheckTime: 'Select check time',
      validatorCheckTimeRequired: 'Check time is required',
      confirmApprove: 'Are you sure to approve this check order?',
      confirmReverseApprove: 'Are you sure to reverse approve this check order?',
      approveSuccess: 'Approve success',
      reverseApproveSuccess: 'Reverse approve success',
      exportName: 'Check Order.xls',
      list: 'Check Product List',
      addItem: 'Add Check Product',
      item: {
        warehouse: 'Warehouse Name',
        bookStock: 'Book Stock',
        actualStock: 'Actual Stock',
        profitLoss: 'Profit/Loss',
        placeholderWarehouse: 'Please select warehouse name',
        validatorWarehouseRequired: 'Warehouse name is required'
      }
    },
    Record: {
      product: 'Product',
      warehouse: 'Warehouse',
      bizType: 'Type',
      bizNo: 'Business No',
      categoryProduct: 'Product',
      categoryMaterial: 'Material',
      categorySpare: 'Spare Part',
      categoryTool: 'Tool',
      categoryConsumable: 'Consumable',
      categoryOther: 'Other',
      productName: 'Product Name',
      categoryName: 'Product Category',
      unitName: 'Unit',
      warehouseName: 'Warehouse Code',
      count: 'In/Out Quantity',
      totalCount: 'Stock Quantity',
      recordTime: 'In/Out Date',
      createTime: 'Create Date',
      creatorName: 'Operator',
      placeholderProduct: 'Please select product',
      placeholderWarehouse: 'Please select warehouse',
      placeholderBizType: 'Please select type',
      placeholderBizNo: 'Please input business no',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      exportName: 'ProductStockRecord.xls'
    },
    Move: {
      no: 'Transfer No',
      product: 'Product',
      moveTime: 'Transfer Time',
      fromWarehouse: 'Warehouse',
      creator: 'Creator',
      status: 'Status',
      remark: 'Remark',
      productNames: 'Product Info',
      count: 'Quantity',
      price: 'Amount',
      totalPrice: 'Total Price',
      placeholderNo: 'Please enter transfer no',
      placeholderNoAuto: 'Auto-generated on save',
      placeholderProduct: 'Please select product',
      placeholderWarehouse: 'Please select warehouse',
      placeholderCreator: 'Please select creator',
      placeholderStatus: 'Please select status',
      placeholderRemark: 'Please enter remark',
      placeholderMoveTime: 'Select transfer time',
      validatorMoveTimeRequired: 'Transfer time is required',
      confirmApprove: 'Are you sure to approve this transfer order?',
      confirmReverseApprove: 'Are you sure to reverse approve this transfer order?',
      approveSuccess: 'Approve success',
      reverseApproveSuccess: 'Reverse approve success',
      exportName: 'Stock Transfer Order.xls',
      list: 'Transfer Product List',
      addItem: 'Add Transfer Product',
      item: {
        fromWarehouse: 'From Warehouse',
        toWarehouse: 'To Warehouse',
        placeholderFromWarehouse: 'Please select from warehouse',
        placeholderToWarehouse: 'Please select to warehouse',
        validatorFromWarehouseRequired: 'From warehouse is required',
        validatorToWarehouseRequired: 'To warehouse is required'
      }
    }
  },
  lock: {
    lockScreen: 'Lock screen',
    lock: 'Lock',
    lockPassword: 'Lock screen password',
    unlock: 'Click to unlock',
    backToLogin: 'Back to login',
    entrySystem: 'Entry the system',
    placeholder: 'Please enter the lock screen password',
    message: 'Lock screen password error'
  },
  error: {
    noPermission: `Sorry, you don't have permission to access this page.`,
    pageError: 'Sorry, the page you visited does not exist.',
    networkError: 'Sorry, the server reported an error.',
    returnToHome: 'Return to home'
  },
  permission: {
    hasPermission: `Please set the operation permission label value`,
    hasRole: `Please set the role permission tag value`
  },
  setting: {
    projectSetting: 'Project setting',
    theme: 'Theme',
    layout: 'Layout',
    systemTheme: 'System theme',
    menuTheme: 'Menu theme',
    interfaceDisplay: 'Interface display',
    breadcrumb: 'Breadcrumb',
    breadcrumbIcon: 'Breadcrumb icon',
    collapseMenu: 'Collapse menu',
    hamburgerIcon: 'Hamburger icon',
    screenfullIcon: 'Screenfull icon',
    sizeIcon: 'Size icon',
    localeIcon: 'Locale icon',
    messageIcon: 'Message icon',
    tagsView: 'Tags view',
    logo: 'Logo',
    greyMode: 'Grey mode',
    fixedHeader: 'Fixed header',
    headerTheme: 'Header theme',
    cutMenu: 'Cut Menu',
    copy: 'Copy',
    clearAndReset: 'Clear cache and reset',
    copySuccess: 'Copy success',
    copyFailed: 'Copy failed',
    footer: 'Footer',
    uniqueOpened: 'Unique opened',
    tagsViewIcon: 'Tags view icon',
    reExperienced: 'Please exit the login experience again',
    fixedMenu: 'Fixed menu'
  },
  size: {
    default: 'Default',
    large: 'Large',
    small: 'Small'
  },
  login: {
    welcome: 'Welcome to the system',
    message: 'Backstage management system',
    tenantname: 'TenantName',
    username: 'Username',
    password: 'Password',
    code: 'verification code',
    login: 'Sign in',
    relogin: 'Sign in again',
    otherLogin: 'Sign in with',
    register: 'Register',
    checkPassword: 'Confirm password',
    remember: 'Remember me',
    hasUser: 'Existing account? Go to login',
    forgetPassword: 'Forget password?',
    tenantNamePlaceholder: 'Please Enter Tenant Name',
    usernamePlaceholder: 'Please Enter Username',
    passwordPlaceholder: 'Please Enter Password',
    codePlaceholder: 'Please Enter Verification Code',
    mobileTitle: 'Mobile sign in',
    mobileNumber: 'Mobile Number',
    mobileNumberPlaceholder: 'Plaease Enter Mobile Number',
    backLogin: 'back',
    getSmsCode: 'Get SMS Code',
    btnMobile: 'Mobile sign in',
    btnQRCode: 'QR code sign in',
    qrcode: 'Scan the QR code to log in',
    btnRegister: 'Sign up',
    SmsSendMsg: 'code has been sent'
  },
  captcha: {
    verification: 'Please complete security verification',
    slide: 'Swipe right to complete verification',
    point: 'Please click',
    success: 'Verification succeeded',
    fail: 'verification failed'
  },
  router: {
    login: 'Login',
    home: 'Home',
    analysis: 'Analysis',
    workplace: 'Workplace'
  },
  analysis: {
    newUser: 'New user',
    unreadInformation: 'Unread information',
    transactionAmount: 'Transaction amount',
    totalShopping: 'Total Shopping',
    monthlySales: 'Monthly sales',
    userAccessSource: 'User access source',
    january: 'January',
    february: 'February',
    march: 'March',
    april: 'April',
    may: 'May',
    june: 'June',
    july: 'July',
    august: 'August',
    september: 'September',
    october: 'October',
    november: 'November',
    december: 'December',
    estimate: 'Estimate',
    actual: 'Actual',
    directAccess: 'Airect access',
    mailMarketing: 'Mail marketing',
    allianceAdvertising: 'Alliance advertising',
    videoAdvertising: 'Video advertising',
    searchEngines: 'Search engines',
    weeklyUserActivity: 'Weekly user activity',
    activeQuantity: 'Active quantity',
    monday: 'Monday',
    tuesday: 'Tuesday',
    wednesday: 'Wednesday',
    thursday: 'Thursday',
    friday: 'Friday',
    saturday: 'Saturday',
    sunday: 'Sunday'
  },
  workplace: {
    welcome: 'Hello',
    happyDay: 'Wish you happy every day!',
    toady: `It's sunny today`,
    notice: 'Announcement',
    project: 'Project',
    access: 'Project access',
    toDo: 'To do',
    introduction: 'A serious introduction',
    shortcutOperation: 'Quick entry',
    operation: 'Operation',
    index: 'Index',
    personal: 'Personal',
    team: 'Team',
    quote: 'Quote',
    contribution: 'Contribution',
    hot: 'Hot',
    yield: 'Yield',
    dynamic: 'Dynamic',
    push: 'push',
    follow: 'Follow'
  },
  form: {
    input: 'Input',
    inputNumber: 'InputNumber',
    default: 'Default',
    icon: 'Icon',
    mixed: 'Mixed',
    textarea: 'Textarea',
    slot: 'Slot',
    position: 'Position',
    autocomplete: 'Autocomplete',
    select: 'Select',
    selectGroup: 'Select Group',
    selectV2: 'SelectV2',
    cascader: 'Cascader',
    switch: 'Switch',
    rate: 'Rate',
    colorPicker: 'Color Picker',
    transfer: 'Transfer',
    render: 'Render',
    radio: 'Radio',
    button: 'Button',
    checkbox: 'Checkbox',
    slider: 'Slider',
    datePicker: 'Date Picker',
    shortcuts: 'Shortcuts',
    today: 'Today',
    yesterday: 'Yesterday',
    aWeekAgo: 'A week ago',
    week: 'Week',
    year: 'Year',
    month: 'Month',
    dates: 'Dates',
    daterange: 'Date Range',
    monthrange: 'Month Range',
    dateTimePicker: 'DateTimePicker',
    dateTimerange: 'Datetime Range',
    timePicker: 'Time Picker',
    timeSelect: 'Time Select',
    inputPassword: 'input Password',
    passwordStrength: 'Password Strength',
    operate: 'operate',
    change: 'Change',
    restore: 'Restore',
    disabled: 'Disabled',
    disablement: 'Disablement',
    delete: 'Delete',
    add: 'Add',
    setValue: 'Set value',
    resetValue: 'Reset value',
    set: 'Set',
    subitem: 'Subitem',
    formValidation: 'Form validation',
    verifyReset: 'Verify reset',
    remark: 'Remark'
  },
  watermark: {
    watermark: 'Watermark'
  },
  table: {
    table: 'Table',
    index: 'Index',
    title: 'Title',
    author: 'Author',
    createTime: 'Create time',
    action: 'Action',
    pagination: 'pagination',
    reserveIndex: 'Reserve index',
    restoreIndex: 'Restore index',
    showSelections: 'Show selections',
    hiddenSelections: 'Restore selections',
    showExpandedRows: 'Show expanded rows',
    hiddenExpandedRows: 'Hidden expanded rows',
    header: 'Header'
  },
  action: {
    create: 'Create',
    add: 'Add',
    del: 'Delete',
    delete: 'Delete',
    edit: 'Edit',
    update: 'Update',
    copy: 'Copy',
    preview: 'Preview',
    more: 'More',
    sync: 'Sync',
    save: 'Save',
    detail: 'Detail',
    export: 'Export',
    import: 'Import',
    approve: 'Approve',
    unapprove: 'Unapprove',
    generate: 'Generate',
    logout: 'Login Out',
    test: 'Test',
    typeCreate: 'Dict Type Create',
    typeUpdate: 'Dict Type Eidt',
    dataCreate: 'Dict Data Create',
    dataUpdate: 'Dict Data Eidt',
    fileUpload: 'File Upload',
    select: 'Select'
  },
  dialog: {
    dialog: 'Dialog',
    open: 'Open',
    close: 'Close'
  },
  sys: {
    api: {
      operationFailed: 'Operation failed',
      errorTip: 'Error Tip',
      errorMessage: 'The operation failed, the system is abnormal!',
      timeoutMessage: 'Login timed out, please log in again!',
      apiTimeoutMessage: 'The interface request timed out, please refresh the page and try again!',
      apiRequestFailed: 'The interface request failed, please try again later!',
      networkException: 'network anomaly',
      networkExceptionMsg:
        'Please check if your network connection is normal! The network is abnormal',

      errMsg401: 'The user does not have permission (token, user name, password error)!',
      errMsg403: 'The user is authorized, but access is forbidden!',
      errMsg404: 'Network request error, the resource was not found!',
      errMsg405: 'Network request error, request method not allowed!',
      errMsg408: 'Network request timed out!',
      errMsg500: 'Server error, please contact the administrator!',
      errMsg501: 'The network is not implemented!',
      errMsg502: 'Network Error!',
      errMsg503: 'The service is unavailable, the server is temporarily overloaded or maintained!',
      errMsg504: 'Network timeout!',
      errMsg505: 'The http version does not support the request!',
      errMsg901: 'Demo mode, no write operations are possible!'
    },
    app: {
      logoutTip: 'Reminder',
      logoutMessage: 'Confirm to exit the system?',
      menuLoading: 'Menu loading...'
    },
    exception: {
      backLogin: 'Back Login',
      backHome: 'Back Home',
      subTitle403: "Sorry, you don't have access to this page.",
      subTitle404: 'Sorry, the page you visited does not exist.',
      subTitle500: 'Sorry, the server is reporting an error.',
      noDataTitle: 'No data on the current page.',
      networkErrorTitle: 'Network Error',
      networkErrorSubTitle:
        'Sorry, Your network connection has been disconnected, please check your network!'
    },
    lock: {
      unlock: 'Click to unlock',
      alert: 'Lock screen password error',
      backToLogin: 'Back to login',
      entry: 'Enter the system',
      placeholder: 'Please enter the lock screen password or user password'
    },
    login: {
      backSignIn: 'Back sign in',
      mobileSignInFormTitle: 'Mobile sign in',
      qrSignInFormTitle: 'Qr code sign in',
      signInFormTitle: 'Sign in',
      signUpFormTitle: 'Sign up',
      forgetFormTitle: 'Reset password',

      signInTitle: 'Backstage management system',
      signInDesc: 'Enter your personal details and get started!',
      policy: 'I agree to the xxx Privacy Policy',
      scanSign: `scanning the code to complete the login`,

      loginButton: 'Sign in',
      registerButton: 'Sign up',
      rememberMe: 'Remember me',
      forgetPassword: 'Forget Password?',
      otherSignIn: 'Sign in with',

      // notify
      loginSuccessTitle: 'Login successful',
      loginSuccessDesc: 'Welcome back',

      // placeholder
      accountPlaceholder: 'Please input username',
      passwordPlaceholder: 'Please input password',
      smsPlaceholder: 'Please input sms code',
      mobilePlaceholder: 'Please input mobile',
      policyPlaceholder: 'Register after checking',
      diffPwd: 'The two passwords are inconsistent',

      userName: 'Username',
      password: 'Password',
      confirmPassword: 'Confirm Password',
      email: 'Email',
      smsCode: 'SMS code',
      mobile: 'Mobile'
    }
  },
  profile: {
    user: {
      title: 'Personal Information',
      username: 'User Name',
      nickname: 'Nick Name',
      mobile: 'Phone Number',
      email: 'User Mail',
      dept: 'Department',
      posts: 'Position',
      roles: 'Own Role',
      sex: 'Sex',
      man: 'Man',
      woman: 'Woman',
      createTime: 'Created Date'
    },
    info: {
      title: 'Basic Information',
      basicInfo: 'Basic Information',
      resetPwd: 'Reset Password',
      userSocial: 'Social Information'
    },
    rules: {
      nickname: 'Please Enter User Nickname',
      mail: 'Please Input The Email Address',
      truemail: 'Please Input The Correct Email Address',
      phone: 'Please Enter The Phone Number',
      truephone: 'Please Enter The Correct Phone Number'
    },
    password: {
      oldPassword: 'Old PassWord',
      newPassword: 'New Password',
      confirmPassword: 'Confirm Password',
      oldPwdMsg: 'Please Enter Old Password',
      newPwdMsg: 'Please Enter New Password',
      cfPwdMsg: 'Please Enter Confirm Password',
      diffPwd: 'The Passwords Entered Twice No Match'
    }
  },
  cropper: {
    selectImage: 'Select Image',
    uploadSuccess: 'Uploaded success!',
    modalTitle: 'Avatar upload',
    okText: 'Confirm and upload',
    btn_reset: 'Reset',
    btn_rotate_left: 'Counterclockwise rotation',
    btn_rotate_right: 'Clockwise rotation',
    btn_scale_x: 'Flip horizontal',
    btn_scale_y: 'Flip vertical',
    btn_zoom_in: 'Zoom in',
    btn_zoom_out: 'Zoom out',
    preview: 'Preivew'
  },
  SystemManagement: {
    Dept: {
      name: 'Department Name',
      statusLabel: 'Department Status',
      status: 'Status',
      leader: 'Leader',
      sort: 'Sort',
      phone: 'Phone',
      email: 'Email',
      parent: 'Parent Department',
      createTime: 'Create Time',
      actions: 'Actions',
      searchNamePlaceholder: 'Please input department name',
      searchStatusPlaceholder: 'Please select department status',
      parentPlaceholder: 'Please select parent department',
      leaderPlaceholder: 'Please select leader',
      phonePlaceholder: 'Please input phone number',
      emailPlaceholder: 'Please input email',
      statusPlaceholder: 'Please select status',
      parentRequired: 'Parent department is required',
      nameRequired: 'Department name is required',
      sortRequired: 'Sort is required',
      emailInvalid: 'Please input a valid email address',
      phoneInvalid: 'Please input a valid mobile number',
      statusRequired: 'Status is required',
      toggleExpand: 'Expand / Collapse'
    },
    User: {
      workNo: 'Work No',
      username: 'User Name',
      nickname: 'Nickname',
      dept: 'Department',
      mobile: 'Mobile',
      email: 'Email',
      sex: 'User Gender',
      post: 'Post',
      remark: 'Remark',
      status: 'Status',
      createTime: 'Create Time',
      actions: 'Actions',
      password: 'User Password',
      role: 'Role',
      import: 'User Import',
      importDragText: 'Drag file here, or',
      importClickText: 'click to upload',
      importUpdateSupport: 'Update existing user data if present',
      importFormatLimit: 'Only xls, xlsx format files are allowed.',
      importDownloadTemplate: 'Download template',
      searchWorkNoPlaceholder: 'Please input work No',
      searchUsernamePlaceholder: 'Please input user name',
      searchMobilePlaceholder: 'Please input mobile',
      searchStatusPlaceholder: 'Please select status',
      searchCreateTimeStartPlaceholder: 'Start date',
      searchCreateTimeEndPlaceholder: 'End date',
      deptPlaceholder: 'Please select department',
      sexPlaceholder: 'Please select',
      postPlaceholder: 'Please select',
      remarkPlaceholder: 'Please input content',
      usernamePlaceholder: 'Please input user name',
      passwordPlaceholder: 'Please input user password',
      workNoPlaceholder: 'Please input work No',
      mobilePlaceholder: 'Please input mobile',
      emailPlaceholder: 'Please input email',
      usernameRequired: 'User name is required',
      workNoRequired: 'Work No is required',
      passwordRequired: 'User password is required',
      deptRequired: 'Department is required',
      emailInvalid: 'Please input a valid email address',
      mobileInvalid: 'Please input a valid mobile number',
      importFileRequired: 'Please upload file',
      importSuccessTip: 'Upload success: {createCount}; Update success: {updateCount}; Update failed: {failureCount};',
      importFailed: 'Upload failed, please upload again!',
      importFileLimit: 'Only one file can be uploaded!',
      resetPasswordTitle: 'Please input new password for "{username}"',
      resetPasswordSuccess: 'Modified successfully, new password is: {password}',
      resetPassword: 'Reset Password',
      assignRole: 'Assign Role',
      changeStatusConfirm: 'Are you sure to {action} user "{username}"?'
    },
    Post: {
      code: 'Post Code',
      name: 'Post Name',
      sort: 'Post Order',
      remark: 'Post Remark',
      status: 'Status',
      createTime: 'Create Time',
      actions: 'Actions',
      searchNamePlaceholder: 'Please input post name',
      searchCodePlaceholder: 'Please input post code',
      searchStatusPlaceholder: 'Please select status',
      codePlaceholder: 'Please input post code',
      namePlaceholder: 'Please input post name',
      sortPlaceholder: 'Please input post order',
      statusPlaceholder: 'Please select status',
      remarkPlaceholder: 'Please input remark',
      codeRequired: 'Post code is required',
      nameRequired: 'Post name is required',
      sortRequired: 'Post order is required',
      statusRequired: 'Post status is required'
    },
    Role: {
      code: 'Role Code',
      name: 'Role Name',
      type: 'Role Type',
      sort: 'Display Order',
      remark: 'Remark',
      status: 'Status',
      menuPermission: 'Menu Permission',
      dataPermission: 'Data Permission',
      dataScope: 'Permission Scope',
      selectAll: 'Select/Deselect All',
      expandCollapse: 'Expand/Collapse All',
      parentChildLink: 'Parent-child linkage (select parent to select children)',
      yes: 'Yes',
      no: 'No',
      loadingText: 'Loading, please wait',
      searchCodePlaceholder: 'Please input role code',
      searchNamePlaceholder: 'Please input role name',
      searchStatusPlaceholder: 'Please select status',
      codePlaceholder: 'Please input role code',
      namePlaceholder: 'Please input role name',
      sortPlaceholder: 'Please input display order',
      statusPlaceholder: 'Please select status',
      remarkPlaceholder: 'Please input remark',
      codeRequired: 'Role code is required',
      nameRequired: 'Role name is required',
      sortRequired: 'Display order is required',
      statusRequired: 'Status is required'
    },
    Menu: {
      name: 'Menu Name',
      enName: 'Menu English Name',
      parent: 'Parent Menu',
      type: 'Menu Type',
      icon: 'Menu Icon',
      path: 'Route Path',
      component: 'Component Path',
      componentName: 'Component Name',
      permission: 'Permission',
      sort: 'Display Order',
      status: 'Menu Status',
      visible: 'Visible',
      alwaysShow: 'Always Show',
      keepAlive: 'Keep Alive',
      actions: 'Actions',
      searchNamePlaceholder: 'Please input menu name',
      searchStatusPlaceholder: 'Please select menu status',
      namePlaceholder: 'Please input menu name',
      enNamePlaceholder: 'Please input menu English name',
      pathPlaceholder: 'Please input route path',
      componentPlaceholder: 'For example: system/user/index',
      componentNamePlaceholder: 'For example: SystemUser',
      permissionPlaceholder: 'Please input permission',
      sortPlaceholder: 'Please input display order',
      toggleExpand: 'Expand / Collapse',
      refreshCache: 'Refresh Menu Cache',
      updateCacheConfirm: 'The cache will be updated and the browser will be refreshed!',
      updateCacheTitle: 'Refresh Menu Cache',
      visibleShow: 'Show',
      visibleHide: 'Hide',
      always: 'Always',
      notAlways: 'Not Always',
      keep: 'Cache',
      notKeep: 'No Cache',
      parentRoot: 'Root Menu',
      nameRequired: 'Menu name is required',
      sortRequired: 'Menu order is required',
      pathRequired: 'Route path is required',
      statusRequired: 'Status is required',
      pathMustStartWithSlash: 'Path must start with /',
      pathMustNotStartWithSlash: 'Path must not start with /',
      pathTooltipTitle: 'Route Path',
      pathTooltipMessage:
        'Route path to access, such as `user`. For external link, start with `http(s)://`.',
      permissionTooltipTitle: 'Permission',
      permissionTooltipMessage:
        "Permission string on Controller method, e.g. @PreAuthorize(`@ss.hasPermission('system:user:list')`)",
      visibleTooltipTitle: 'Visible',
      visibleTooltipMessage:
        'When hidden is selected, the route will not appear in the sidebar but can still be accessed',
      alwaysShowTooltipTitle: 'Always Show',
      alwaysShowTooltipMessage:
        'When not selected, if the menu has only one child, the parent will be hidden and the child will be displayed directly',
      keepAliveTooltipTitle: 'Keep Alive',
      keepAliveTooltipMessage:
        'When cached is selected, it will be cached by `keep-alive`, and the "Component Name" field must be filled in'
    },
    Dict: {
      id: 'Dict ID',
      name: 'Dict Name',
      type: 'Dict Type',
      label: 'Dict Label',
      value: 'Dict Value',
      sort: 'Dict Sort',
      status: 'Status',
      remark: 'Remark',
      colorType: 'Color Type',
      cssClass: 'CSS Class',
      createTime: 'Create Time',
      actions: 'Actions',
      data: 'Data',
      searchNamePlaceholder: 'Please input dict name',
      searchTypePlaceholder: 'Please input dict type',
      searchStatusPlaceholder: 'Please select dict status',
      searchLabelPlaceholder: 'Please input dict label',
      searchDataStatusPlaceholder: 'Please select data status',
      namePlaceholder: 'Please input dict name',
      typePlaceholder: 'Please input dict type',
      labelPlaceholder: 'Please input data label',
      valuePlaceholder: 'Please input data value',
      sortPlaceholder: 'Please input data order',
      remarkPlaceholder: 'Please input content',
      statusPlaceholder: 'Please select status',
      colorTypePlaceholder: 'Please select color type',
      cssClassPlaceholder: 'Please input CSS Class',
      nameRequired: 'Dict name is required',
      typeRequired: 'Dict type is required',
      statusRequired: 'Status is required',
      labelRequired: 'Data label is required',
      valueRequired: 'Data value is required',
      sortRequired: 'Data order is required',
      colorTypeDefault: 'Default',
      colorTypePrimary: 'Primary',
      colorTypeSuccess: 'Success',
      colorTypeInfo: 'Info',
      colorTypeWarning: 'Warning',
      colorTypeDanger: 'Danger',
      typeExportFilename: 'DictType.xls',
      dataExportFilename: 'DictData.xls'
    }
  },
  basedata: {
    product: {
      category: {
        name: 'name'
      }
    }
  },
  // Equipment Management
  EquipmentManagement: {
    // Equipment Classification
    EquipmentClassification: {
      code: 'Code',
      name: 'Name',
      createTime: 'Create Time',
      id: 'ID',
      remark: 'Remark',
      sort: 'Sort',
      operate: 'Operate',
      add: 'Add',
      edit: 'Edit',
      delete: 'Delete',
      detail: 'Detail',
      placeholderCode: 'Please input code',
      placeholderName: 'Please input name',
      placeholderRemark: 'Please input remark',
      placeholderSort: 'Please input sort'
    },
    // Equipment Ledger
    EquipmentLedger: {
      deviceCode: 'Code',
      deviceName: 'Name',
      deviceStatus: 'Status',
      deviceType: 'Type',
      deviceSpec: 'Spec',
      deviceModel: 'Model',
      productionDate: 'Production Date',
      factoryEntryDate: 'Factory Entry Date',
      deviceLocation: 'Location',
      deviceManagerName: 'Manager',
      remark: 'Remark',
      creatorName: 'Creator',
      createTime: 'Create Time',
      updateTime: 'Update Time',
      operate: 'Operate',
      detail: 'Detail',
      edit: 'Edit',
      delete: 'Delete',
      batchDelete: 'Batch Delete',
      placeholderDeviceCode: 'Please input code',
      placeholderDeviceName: 'Please input name',
      placeholderDeviceStatus: 'Please select status',
      placeholderDeviceType: 'Please select type',
      placeholderDeviceModel: 'Please input model',
      placeholderDeviceSpec: 'Please input spec',
      placeholderProductionDate: 'Please select production date',
      placeholderFactoryEntryDate: 'Please select factory entry date',
      placeholderDeviceLocation: 'Please input location',
      placeholderDeviceManagerIds: 'Please select manager',
      placeholderRemark: 'Please input remark',
      placeholderComponentIds: 'Please select critical component',
      placeholderBeijianIds: 'Please select spare part',
      deviceNo: 'Device No',
      deviceBrand: 'Device Brand',
      supplier: 'Supplier',
      workshop: 'Workshop',
      systemOrg: 'System Org',
      checkHistory: 'Check History',
      maintainHistory: 'Maintain History',
      repairHistory: 'Repair History',
      criticalComponent: 'Critical Component',
      sparePart: 'Spare Part',
      mold: 'Mold',
      startTime: 'Start Time',
      endTime: 'End Time',
      query: 'Query',
      reset: 'Reset',
      export: 'Export',
      operator: 'Operator',
      checkMethod: 'Check Method',
      criteria: 'Criteria',
      checkTime: 'Check Time',
      maintainMethod: 'Maintain Method',
      maintainTime: 'Maintain Time',
      projectName: 'Project Content',
      repairResult: 'Repair Result',
      finishDate: 'Finish Date',
      componentCode: 'Code',
      componentName: 'Name',
      componentDesc: 'Description',
      spareCode: 'Spare Code',
      spareName: 'Spare Name',
      category: 'Category',
      unit: 'Unit',
      moldCode: 'Code',
      moldName: 'Name',
      moldRemark: 'Remark',
      fileUrl: 'File',
      serialNumber: 'No.',
      dvName: 'Device Name',
      dvId: 'Please select device'
    },
    // Critical Component
    EquipmentKeyItems: {
      code: 'Code',
      name: 'Name',
      description: 'Description',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',
      edit: 'Edit',
      delete: 'Delete',
      placeholderCode: 'Please input code',
      placeholderName: 'Please input name',
      placeholderDescription: 'Please input description',
      placeholderRemark: 'Please input remark'
    },
    // Maintenance Project (Project Maintenance)
    DvSubject: {
      code: 'Code',
      name: 'Name',
      inspectionMethod: 'Inspection Method',
      valueType: 'Value Type',
      judgmentCriteria: 'Judgment Criteria',
      upperVal: 'Upper Value',
      lowerVal: 'Lower Value',
      creatorName: 'Creator',
      createTime: 'Create Time',
      operate: 'Operate',
      projectCode: 'Project Code',
      projectName: 'Project Name',
      isEnable: 'Is Enable',
      edit: 'Edit',
      delete: 'Delete',
      batchDelete: 'Batch Delete',
      placeholderCode: 'Please input code',
      placeholderName: 'Please input name',
      placeholderJudgmentCriteria: 'Please input judgment criteria',
      placeholderProjectCode: 'Please input project code',
      placeholderProjectName: 'Please input project name',
      placeholderInspectionMethod: 'Please select inspection method',
      placeholderValueType: 'Please select value type',
      placeholderUpperVal: 'Please input upper value',
      placeholderLowerVal: 'Please input lower value',
    },
    // Plan Maintenance
    PlanMaintenance: {
      planName: 'Plan Name',
      planType: 'Plan Type',
      planTypeMaintain: 'Maintenance',
      planTypeInspect: 'Inspection',
      description: 'Description',
      creatorName: 'Creator',
      createTime: 'Create Time',
      updateTime: 'Update Time',
      operate: 'Operate',
      index: 'No.',
      subjectCode: 'Code',
      subjectName: 'Name',
      inspectionMethod: 'Inspection Method',
      judgmentCriteria: 'Judgment Criteria',
      batchDelete: 'Batch Delete',
      placeholderPlanName: 'Please input plan name',
      placeholderDescription: 'Please input description',
      placeholderPlanType: 'Please select plan type',
      placeholderSubjectName: 'Please input name',
      placeholderSubjectDescription: 'Please input description',
      placeholderSubjectSelect: 'Please select related project',
      selectDeleteTip: 'Please select data to delete',
      exportFilename: 'PlanMaintenance.xls'
    },

    // Task Management
    TaskManagement: {
      name: 'Name',
      taskType: 'Type',
      taskTypeInspect: 'Inspection',
      taskTypeMaintain: 'Maintenance',
      projectForm: 'Project Form',
      startDate: 'Start Date',
      endDate: 'End Date',
      cronExpression: 'Cron Expression',
      enabled: 'Enabled',
      creatorName: 'Creator',
      createTime: 'Create Time',
      updateTime: 'Update Time',
      operate: 'Operate',
      index: 'No.',
      deviceList: 'Device List',
      moldList: 'Mold List',
      dateRange: 'Date Range',
      operableUsers: 'Operable Users',
      createWorkOrder: 'Create Work Order',
      placeholderName: 'Please input name',
      placeholderTaskType: 'Please select type',
      placeholderProjectForm: 'Please select project form',
      placeholderDeviceList: 'Please select device list',
      placeholderMoldList: 'Please select mold list',
      placeholderStartDate: 'Please select start date',
      placeholderEndDate: 'Please select end date',
      placeholderDateRange: 'Please select date range',
      placeholderOperableUsers: 'Please select operable users',
      placeholderCronExpression: 'Please input cron expression',
      placeholderEnabled: 'Please select enabled status',
      selectCronBeforeEnable: 'Please fill in cron expression before enabling task',
      cronAlertTitle: 'Tip',
      cronAlertConfirm: 'Got it',
      createTicketSuccess: 'Create work order successfully',
      createTicketFail: 'Create work order failed',
      updateEnabledSuccess: 'Update enabled status successfully',
      updateEnabledFail: 'Update enabled status failed',
      exportFilename: 'TaskManagement.xls'
    },

    // Work Order Management
    WorkOrderManagement: {
      planNo: 'Order No',
      planType: 'Type',
      planTypeInspect: 'Inspection',
      planTypeMaintain: 'Maintenance',
      jobStatus: 'Job Status',
      jobResult: 'Result',
      deviceName: 'Device Name',
      configName: 'Plan Config Name',
      operatorName: 'Operator',
      taskTime: 'Job Time',
      taskEndTime: 'Planned End Time',
      createTime: 'Create Time',
      index: 'No.',
      cancelTask: 'Cancel Task',
      jobResultPending: 'Pending',
      jobResultOk: 'Pass',
      jobResultNg: 'Fail',
      inspectionItemName: 'Inspection Item Name',
      inspectionMethod: 'Inspection Method',
      judgmentCriteria: 'Judgment Criteria',
      inspectionResult: 'Inspection Result',
      images: 'Images',
      remark: 'Remark',
      operate: 'Operate',
      dialogTitleDefault: 'Inspection Result',
      cancelConfirm: 'Confirm to cancel selected tasks?',
      cancelSuccess: 'Cancel task successfully',
      cancelFail: 'Cancel task failed',
      selectAllDecisionError: 'Please select pass or fail for all pending records first',
      selectDecisionError: 'Please select pass or fail for pending records first',
      updateSuccess: 'Update successfully',
      updateFail: 'Update failed',
      placeholderPlanNo: 'Please input order no',
      placeholderPlanType: 'Please select type',
      placeholderJobStatus: 'Please select job status',
      placeholderJobResult: 'Please select result',
      ok: 'Pass',
      ng: 'Fail',
      dialogCancel: 'Cancel',
      dialogSave: 'Save'
    },

    // Repair Order
    DvRepair: {
      repairCode: 'Repair Order No',
      repairName: 'Repair Order',
      machineryName: 'Device Name',
      machineryCode: 'Device Code',
      machinerySpec: 'Spec Model',
      machineryTypeId: 'Device Type',
      device: 'Device',
      component: 'Key Component',
      acceptedBy: 'Repairer',
      confirmBy: 'Inspector',
      requireDate: 'Request Date',
      finishDate: 'Finish Date',
      confirmDate: 'Accept Date',
      repairResult: 'Repair Result',
      repairStatus: 'Result',
      status: 'Order Status',
      deviceTypeDevice: 'Device',
      deviceTypeComponent: 'Key Component',
      repairLineTitle: 'Device Repair Line Items',
      lineSubjectCode: 'Repair Code',
      lineSubjectName: 'Repair Name',
      lineSubjectContent: 'Repair Content',
      lineRemark: 'Remark',
      lineResult: 'Result',
      lineResultOk: 'Pass',
      lineResultNg: 'Fail',
      repair: 'Repair',
      index: 'No.',
      machineryType: 'Device Type',
      machineryTypeDevice: 'Device',
      machineryTypeKeyItem: 'Key Component',
      repairResultPending: 'Pending Repair',
      repairResultOk: 'Pass',
      repairResultNg: 'Fail',
      statusPending: 'Pending',
      statusFinished: 'Finished',
      creatorName: 'Creator',
      createTime: 'Create Time',
      operate: 'Operate',
      batchDelete: 'Batch Delete',
      exportFilename: 'DeviceRepair.xlsx',
      selectDeleteTip: 'Please select data to delete',
      placeholderRepairCode: 'Please input repair order no',
      placeholderRepairName: 'Please input repair order name',
      placeholderMachineryName: 'Please input device name',
      placeholderAcceptedBy: 'Please input repairer',
      placeholderConfirmBy: 'Please input inspector',
      placeholderStatus: 'Please select order status',
      placeholderDevice: 'Please select device',
      placeholderComponent: 'Please select key component',
      placeholderRequireDate: 'Select request date',
      placeholderFinishDate: 'Select finish date',
      placeholderConfirmDate: 'Select accept date',
      placeholderAutoFill: 'Auto fill',
      placeholderLineSubjectCode: 'Please input repair code',
      placeholderLineSubjectName: 'Please input repair name',
      placeholderLineSubjectContent: 'Please input repair content',
      placeholderLineRemark: 'Please input remark',
      validatorRepairCodeRequired: 'Repair order no can not be empty',
      validatorMachineryIdRequired: 'Device ID can not be empty',
      validatorMachineryCodeRequired: 'Device code can not be empty',
      validatorMachineryNameRequired: 'Device name can not be empty',
      validatorMachineryTypeIdRequired: 'Device type can not be empty',
      validatorRequireDateRequired: 'Request date can not be empty',
      validatorFinishDateRequired: 'Finish date can not be empty',
      validatorConfirmDateRequired: 'Accept date can not be empty',
      validatorRepairResultRequired: 'Repair result can not be empty',
      validatorLineRepairIdRequired: 'Repair order ID can not be empty',
      validatorLineSubjectIdRequired: 'Item ID can not be empty',
      validatorLineSubjectCodeRequired: 'Item code can not be empty',
      validatorLineSubjectContentRequired: 'Item content can not be empty',
      validatorLineRemarkRequired: 'Remark can not be empty',
      validatorLineResultRequired: 'Result can not be empty'
    },

    // Repair Items
    RepairItems: {
      subjectCode: 'Repair Code',
      subjectName: 'Repair Name',
      deviceType: 'Device Type',
      device: 'Device',
      component: 'Key Component',
      projectContent: 'Repair Content',
      createTime: 'Create Time',
      deviceName: 'Device Name',
      componentName: 'Key Component Name',
      isEnable: 'Enabled',
      deviceTypeDevice: 'Device',
      deviceTypeComponent: 'Key Component',
      operate: 'Operate',
      batchDelete: 'Batch Delete',
      exportFilename: 'RepairItems.xlsx',
      selectDeleteTip: 'Please select data to delete',
      placeholderSubjectCode: 'Please input repair code',
      placeholderSubjectName: 'Please input repair name',
      placeholderDeviceType: 'Please select device type',
      placeholderProjectContent: 'Please input repair content',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      placeholderDevice: 'Please select device',
      placeholderComponent: 'Please select key component',
      validatorSubjectCodeRequired: 'Item code can not be empty',
      validatorSubjectNameRequired: 'Item name can not be empty',
      validatorDeviceTypeRequired: 'Device type can not be empty',
      validatorDeviceRequired: 'Device can not be empty',
      validatorComponentRequired: 'Key component can not be empty',
      validatorIsEnableRequired: 'Enabled can not be empty'
    }
  },

  SparePartsManagement: {
    SpareInfo: {
      name: 'Spare Part Name',
      code: 'Spare Part Code',
      standard: 'Specification',
      expiryDay: 'Shelf Life (days)',
      category: 'Category',
      unit: 'Unit',
      safetyNumber: 'Safety Stock',
      status: 'Status',
      createTime: 'Create Time',
      operate: 'Operate',
      remark: 'Remark',
      exportFilename: 'SparePartsInfo.xls',
      placeholderName: 'Please input name',
      placeholderCode: 'Please input code',
      placeholderUnit: 'Please select unit',
      placeholderSafetyNumber: 'Please input safety stock',
      placeholderRemark: 'Please input remark',
      placeholderStandard: 'Please input specification',
      placeholderExpiryDay: 'Please input shelf life (days)',
      validatorNameRequired: 'Spare part name can not be empty',
      validatorCodeRequired: 'Spare part code can not be empty',
      validatorCategoryRequired: 'Category can not be empty',
      validatorUnitRequired: 'Unit can not be empty',
      validatorStatusRequired: 'Status can not be empty'
    },

    SpareStock: {
      product: 'Spare Part',
      warehouse: 'Warehouse',
      category: 'Category',
      count: 'Stock Quantity',
      unit: 'Unit',
      exportFilename: 'SparePartsStock.xls',
      placeholderProduct: 'Please select spare part',
      placeholderWarehouse: 'Please select warehouse'
    },

    SpareRecord: {
      product: 'Spare Part',
      warehouse: 'Warehouse',
      unit: 'Unit',
      bizType: 'Type',
      bizNo: 'Stock In/Out No',
      count: 'In/Out Quantity',
      totalCount: 'Stock Quantity',
      recordTime: 'In/Out Date',
      createTime: 'Create Date',
      creatorName: 'Operator',
      exportFilename: 'SparePartsRecord.xls',
      placeholderProduct: 'Please select spare part',
      placeholderWarehouse: 'Please select warehouse',
      placeholderBizNo: 'Please input business no',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date'
    },

    SpareIn: {
      product: 'Spare Part',
      inTime: 'Stock In Time',
      supplier: 'Supplier',
      warehouse: 'Warehouse',
      remark: 'Remark',
      status: 'Status',
      inType: 'Stock In Type',
      no: 'Stock In No',
      creatorName: 'Creator',
      totalCount: 'Quantity',
      totalPrice: 'Amount',
      operate: 'Operate',
      tabUnAudit: 'Unaudited',
      tabAudited: 'Audited',
      tabAll: 'All',
      detail: 'Detail',
      edit: 'Edit',
      approve: 'Approve',
      unapprove: 'Unapprove',
      delete: 'Delete',
      itemListTitle: 'Stock In Item List',
      itemIndex: 'No.',
      itemWarehouseName: 'Warehouse Name',
      itemProductName: 'Spare Part Name',
      itemStockCount: 'Stock',
      itemProductCode: 'Spare Part Code',
      itemUnitName: 'Unit',
      itemCount: 'Quantity',
      itemProductPrice: 'Spare Part Price',
      itemTotalPrice: 'Total Amount',
      itemRemark: 'Remark',
      itemOperate: 'Operate',
      itemAddButton: 'Add Stock In Spare Part',
      sumLabel: 'Total',
      exportFilename: 'SparePartsIn.xls',
      placeholderProduct: 'Please select spare part',
      placeholderInTimeStart: 'Start Date',
      placeholderInTimeEnd: 'End Date',
      placeholderSupplier: 'Please select supplier',
      placeholderWarehouse: 'Please select warehouse',
      placeholderRemark: 'Please input remark',
      placeholderInType: 'Please select stock in type',
      placeholderInTime: 'Select stock in time',
      placeholderNoAuto: 'Auto generated when saved',
      validatorInTimeRequired: 'Stock in time can not be empty',
      validatorInTypeRequired: 'Stock in type can not be empty',
      validatorItemInIdRequired: 'Stock in id can not be empty',
      validatorItemWarehouseRequired: 'Warehouse can not be empty',
      validatorItemProductRequired: 'Spare part can not be empty',
      validatorItemCountRequired: 'Spare part quantity can not be empty',
      confirmApprove: 'Confirm to approve this stock in order?',
      confirmUnapprove: 'Confirm to unapprove this stock in order?',
      approveSuccess: 'Approve successfully',
      unapproveSuccess: 'Unapprove successfully'
    },

    SpareOut: {
      no: 'Stock Out No',
      product: 'Spare Part',
      outTime: 'Stock Out Time',
      warehouse: 'Warehouse',
      remark: 'Remark',
      customer: 'Customer',
      status: 'Status',
      totalCount: 'Quantity',
      totalPrice: 'Amount',
      creatorName: 'Creator',
      operate: 'Operate',
      tabUnAudit: 'Unaudited',
      tabAudited: 'Audited',
      tabAll: 'All',
      detail: 'Detail',
      edit: 'Edit',
      approve: 'Approve',
      unapprove: 'Unapprove',
      delete: 'Delete',
      itemListTitle: 'Stock Out Item List',
      itemIndex: 'No.',
      itemWarehouseName: 'Warehouse Name',
      itemProductName: 'Spare Part Name',
      itemStockCount: 'Stock',
      itemProductCode: 'Spare Part Code',
      itemUnitName: 'Unit',
      itemCount: 'Quantity',
      itemProductPrice: 'Price',
      itemTotalPrice: 'Total Amount',
      itemRemark: 'Remark',
      itemOperate: 'Operate',
      itemAddButton: 'Add Stock Out Spare Part',
      sumLabel: 'Total',
      exportFilename: 'SparePartsOut.xls',
      placeholderNo: 'Please input stock out no',
      placeholderProduct: 'Please select spare part',
      placeholderOutTimeStart: 'Start Date',
      placeholderOutTimeEnd: 'End Date',
      placeholderWarehouse: 'Please select warehouse',
      placeholderRemark: 'Please input remark',
      placeholderOutType: 'Please select stock out type',
      placeholderOutTime: 'Select stock out time',
      placeholderNoAuto: 'Auto generated when saved',
      validatorOutTimeRequired: 'Stock out time can not be empty',
      validatorOutTypeRequired: 'Stock out type can not be empty',
      validatorItemOutIdRequired: 'Stock out id can not be empty',
      validatorItemWarehouseRequired: 'Warehouse can not be empty',
      validatorItemProductRequired: 'Spare part can not be empty',
      validatorItemCountRequired: 'Spare part quantity can not be empty'
    }
  },

  FactoryModeling: {
    FactoryStructure: {
      moduleName: 'Factory Structure',
      searchCodeLabel: 'Organization Code',
      searchCodePlaceholder: 'Please enter organization code',
      searchParentLabel: 'Parent Organization',
      searchParentPlaceholder: 'Please select parent organization',
      searchNameLabel: 'Organization Name',
      searchNamePlaceholder: 'Please enter organization name',
      searchOrgClassLabel: 'Organization Level',
      searchOrgClassPlaceholder: 'Please select organization level',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      expandButtonText: 'Expand/Collapse',
      tableCodeColumn: 'Organization Code',
      tableNameColumn: 'Organization Name',
      tableSortColumn: 'Display Order',
      tableMachineColumn: 'Related Device',
      tableOrgClassColumn: 'Organization Level',
      tableOrgTypeColumn: 'Process',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogCodeLabel: 'Code',
      dialogCodeTooltip: 'Factory structure code',
      dialogCodePlaceholder: 'Code is auto generated after saving',
      dialogParentLabel: 'Parent Organization',
      dialogParentPlaceholder: 'Please select parent organization',
      dialogNameLabel: 'Organization Name',
      dialogNamePlaceholder: 'Please enter organization name',
      dialogOrgClassLabel: 'Organization Level',
      dialogSortLabel: 'Display Order',
      dialogSortTooltip: 'Same parent nodes are sorted in ascending order',
      dialogSortPlaceholder: 'Please enter display order',
      dialogOrgTypeLabel: 'Process',
      dialogOrgTypeTooltip: 'Source: Data dictionary - Process',
      dialogOrgTypePlaceholder: 'Please select type',
      dialogMachineLabel: 'Related Device',
      dialogMachinePlaceholder: 'Please select device',
      dialogCancelButton: 'Cancel',
      dialogSubmitButton: 'Confirm',
      orgTreeRootName: 'Top Organization',
      validatorNameRequired: 'Organization name can not be empty',
      validatorParentRequired: 'Parent organization can not be empty',
      validatorOrgClassRequired: 'Organization level can not be empty'
    },
    FactoryWorker: {
      moduleName: 'Workstation Worker',
      searchNameLabel: 'Organization Name',
      searchNamePlaceholder: 'Please enter organization name',
      searchStatusLabel: 'Organization Status',
      searchStatusPlaceholder: 'Please select organization status',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      exportButtonText: 'Export',
      expandButtonText: 'Expand/Collapse',
      tabsZhijiang: 'Pulping',
      tabsChengxing: 'Forming',
      tabsHonggan: 'Drying',
      tabsZhuanyi: 'Transfer',
      tabsJiashi: 'Humidifying',
      tabsReya: 'Hot Press',
      tabsQiebian: 'Trimming',
      tabsPanjian: 'Inspection',
      tabsDabao: 'Packing',
      tabsTiebiao: 'Labeling',
      tabsPinyin: 'Printing',
      tabsSufeng: 'Sealing',
      tabsAll: 'All',
      tableNameColumn: 'Organization Name',
      tableOrgClassColumn: 'Organization Level',
      tableOrgTypeColumn: 'Type',
      tableWorkerColumn: 'Today Worker',
      tableOperateColumn: 'Operation',
      tableDispatchAction: 'Dispatch',
      exportFileName: 'Workstation.xls'
    },
    ProductCategory: {
      moduleName: 'Product Material Category',
      searchNameLabel: 'Category Name',
      searchNamePlaceholder: 'Please enter category name',
      searchStatusLabel: 'Enable Status',
      searchStatusPlaceholder: 'Please select enable status',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      expandButtonText: 'Expand/Collapse',
      tableCodeColumn: 'Category Code',
      tableNameColumn: 'Category Name',
      tableSortColumn: 'Sort',
      tableStatusColumn: 'Status',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogParentLabel: 'Parent Category',
      dialogParentPlaceholder: 'Please select parent category',
      dialogCodeLabel: 'Code',
      dialogCodePlaceholder: 'Please enter code',
      dialogNameLabel: 'Name',
      dialogNamePlaceholder: 'Please enter name',
      dialogSortLabel: 'Sort',
      dialogSortPlaceholder: 'Please enter sort',
      dialogStatusLabel: 'Status',
      dialogCancelButton: 'Cancel',
      dialogSubmitButton: 'Confirm',
      treeRootName: 'Top Product Category',
      validatorParentRequired: 'Parent category can not be empty',
      validatorNameRequired: 'Name can not be empty',
      validatorCodeRequired: 'Code can not be empty',
      validatorSortRequired: 'Sort can not be empty',
      validatorStatusRequired: 'Status can not be empty'
    },
    ProductInformation: {
      moduleName: 'Product Material Information',
      searchNameLabel: 'Name',
      searchNamePlaceholder: 'Please enter name',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      tableBarCodeColumn: 'Code',
      tableNameColumn: 'Name',
      tableStandardColumn: 'Specification',
      tableCategoryColumn: 'Category',
      tableUnitColumn: 'Unit',
      tableStatusColumn: 'Status',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogBarCodeLabel: 'Code',
      dialogBarCodePlaceholder: 'Please enter code',
      dialogNameLabel: 'Name',
      dialogNamePlaceholder: 'Please enter name',
      dialogCategoryLabel: 'Category',
      dialogCategoryPlaceholder: 'Please select category',
      dialogUnitLabel: 'Unit',
      dialogUnitPlaceholder: 'Please select unit',
      dialogStandardLabel: 'Specification',
      dialogStandardPlaceholder: 'Please enter specification',
      dialogExpiryDayLabel: 'Shelf Life (Days)',
      dialogExpiryDayPlaceholder: 'Please enter shelf life (days)',
      dialogWeightLabel: 'Weight (g)',
      dialogWeightPlaceholder: 'Please enter weight (g)',
      dialogPurchasePriceLabel: 'Purchase Price',
      dialogPurchasePricePlaceholder: 'Please enter purchase price (CNY)',
      dialogSalePriceLabel: 'Sale Price',
      dialogSalePricePlaceholder: 'Please enter sale price (CNY)',
      dialogMinPriceLabel: 'Minimum Price',
      dialogMinPricePlaceholder: 'Please enter minimum price (CNY)',
      dialogStatusLabel: 'Status',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogCancelButton: 'Cancel',
      dialogSubmitButton: 'Confirm',
      validatorNameRequired: 'Product name can not be empty',
      validatorBarCodeRequired: 'Product barcode can not be empty',
      validatorCategoryRequired: 'Product category id can not be empty',
      validatorUnitRequired: 'Unit id can not be empty',
      validatorStatusRequired: 'Product status can not be empty'
    },
    AutocodeRule: {
      moduleName: 'Code Rules',
      searchRuleCodeLabel: 'Rule Code',
      searchRuleCodePlaceholder: 'Please enter rule code',
      searchRuleNameLabel: 'Rule Name',
      searchRuleNamePlaceholder: 'Please enter rule name',
      searchRuleDescLabel: 'Description',
      searchRuleDescPlaceholder: 'Please enter description',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',
      searchIsEnableLabel: 'Enabled',
      searchIsEnablePlaceholder: 'Please select enabled',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      tableRuleCodeColumn: 'Rule Code',
      tableRuleNameColumn: 'Rule Name',
      tableRuleDescColumn: 'Description',
      tableMaxLengthColumn: 'Max Length',
      tableIsPaddedColumn: 'Pad',
      tablePaddedCharColumn: 'Pad Char',
      tablePaddedMethodColumn: 'Pad Method',
      tableIsEnableColumn: 'Enabled',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      tableTestCodeAction: 'Test Code',
      listPartTabLabel: 'Code Parts',
      dialogPartTabLabel: 'Code Rule Parts',
      exportFilename: 'CodeRules.xls',
      dialogRuleCodeLabel: 'Rule Code',
      dialogRuleCodePlaceholder: 'Please enter rule code',
      dialogRuleNameLabel: 'Rule Name',
      dialogRuleNamePlaceholder: 'Please enter rule name',
      dialogRuleDescLabel: 'Description',
      dialogRuleDescPlaceholder: 'Please enter description',
      dialogMaxLengthLabel: 'Max Length',
      dialogMaxLengthPlaceholder: 'Please enter max length',
      dialogIsPaddedLabel: 'Pad',
      dialogPaddedCharLabel: 'Pad Char',
      dialogPaddedCharPlaceholder: 'Please enter pad char',
      dialogPaddedMethodLabel: 'Pad Method',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogIsEnableLabel: 'Enabled',
      validatorIsEnableRequired: 'Enabled can not be empty',
      validatorRuleIdRequired: 'Rule id can not be empty',
      validatorPartIndexRequired: 'Part index can not be empty',
      validatorPartLengthRequired: 'Part length can not be empty',
      partTableIndexColumn: 'Index',
      partTableIdColumn: 'ID',
      partTablePartIndexColumn: 'Part Index',
      partTablePartTypeColumn: 'Part Type',
      partTablePartCodeColumn: 'Part Code',
      partTablePartNameColumn: 'Part Name',
      partTablePartLengthColumn: 'Part Length',
      partTableDatetimeFormatColumn: 'Datetime Format',
      partTableInputCharacterColumn: 'Input Char',
      partTableFixCharacterColumn: 'Fixed Char',
      partTableSeriaStartNoColumn: 'Serial Start',
      partTableSeriaStepColumn: 'Serial Step',
      partTableSeriaNowNoColumn: 'Serial Current',
      partTableCycleFlagColumn: 'Serial Cycle',
      partTableCycleMethodColumn: 'Cycle Method',
      partTableRemarkColumn: 'Remark',
      partTableIsEnableColumn: 'Enabled',
      partTableCreateTimeColumn: 'Create Time',
      partTableOperateColumn: 'Operation',
      partPlaceholderPartIndex: 'Please enter part index',
      partPlaceholderPartCode: 'Please enter part code',
      partPlaceholderPartName: 'Please enter part name',
      partPlaceholderPartLength: 'Please enter part length',
      partPlaceholderDatetimeFormat: 'Please enter datetime format',
      partPlaceholderInputCharacter: 'Please enter input char',
      partPlaceholderFixCharacter: 'Please enter fixed char',
      partPlaceholderSeriaStartNo: 'Please enter serial start',
      partPlaceholderSeriaStep: 'Please enter serial step',
      partPlaceholderSeriaNowNo: 'Please enter current serial',
      partPlaceholderRemark: 'Please enter remark',
      addPartButtonText: 'Add Code Rule Part'
    },
    ProductBOM: {
      moduleName: 'Product BOM',
      searchCodeLabel: 'BOM Code',
      searchCodePlaceholder: 'Please enter BOM code',
      searchProductLabel: 'Product',
      searchProductPlaceholder: 'Please select product',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',
      searchEnableLabel: 'Enable Status',
      searchEnablePlaceholder: 'Please select enable status',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      tableCodeColumn: 'BOM Code',
      tableVersionColumn: 'BOM Version',
      tableProductColumn: 'Product',
      tableUnitColumn: 'Unit',
      tableYieldRateColumn: 'Yield Rate %',
      tableRemarkColumn: 'Remark',
      tableEnableColumn: 'Enabled',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      detailTabLabel: 'Product BOM Detail',
      dialogCodeLabel: 'BOM Code',
      dialogCodePlaceholder: 'Please enter BOM code',
      dialogVersionLabel: 'BOM Version',
      dialogVersionPlaceholder: 'Please enter BOM version',
      dialogProductLabel: 'Product',
      dialogProductPlaceholder: 'Please select product',
      dialogUnitLabel: 'Unit',
      dialogUnitPlaceholder: 'Please select unit',
      dialogYieldRateLabel: 'Yield Rate %',
      dialogYieldRatePlaceholder: 'Please enter yield rate',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogEnableLabel: 'Enabled',
      dialogCancelButton: 'Cancel',
      dialogSubmitButton: 'Confirm',
      detailTableIndexColumn: 'No.',
      detailTableMaterialColumn: 'Material',
      detailTableUsageNumberColumn: 'Usage Quantity',
      detailTableUnitColumn: 'Unit',
      detailTableLossRateColumn: 'Loss Rate %',
      detailTableRemarkColumn: 'Remark',
      detailTableOperateColumn: 'Operation',
      detailMaterialPlaceholder: 'Please select material',
      detailUnitPlaceholder: 'Please select unit',
      detailUsageNumberPlaceholder: 'Please enter usage quantity',
      detailLossRatePlaceholder: 'Please enter loss rate',
      detailRemarkPlaceholder: 'Please enter remark',
      detailAddButtonText: 'Add Product BOM Detail',
      validatorCodeRequired: 'BOM code can not be empty',
      validatorVersionRequired: 'BOM version can not be empty',
      validatorProductRequired: 'Product can not be empty',
      validatorUnitRequired: 'Unit can not be empty',
      validatorEnableRequired: 'Enable status can not be empty',
      validatorDetailMaterialRequired: 'Material can not be empty',
      validatorDetailBomRequired: 'BOM id can not be empty',
      validatorDetailUsageNumberRequired: 'Usage quantity can not be empty'
    },
    WorkTeam: {
      moduleName: 'Work Team Management',
      searchTeamNameLabel: 'Team Name',
      searchTeamNamePlaceholder: 'Please enter team name',
      searchProcessLabel: 'Process',
      searchProcessPlaceholder: 'Please select process',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      tabsAll: 'All',
      tabsDay: 'Day Shift',
      tabsNight: 'Night Shift',
      tabsLongDay: 'Long Day Shift',
      tableTeamNameColumn: 'Team Name',
      tableLeaderColumn: 'Leader',
      tableGroupTypeColumn: 'Team Type',
      tableWorkTimeColumn: 'Working Time',
      tableProcessColumn: 'Process',
      tableRemarkColumn: 'Remark',
      tableEnableColumn: 'Enabled',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      detailTabLabel: 'Team Members',
      dialogTeamNameLabel: 'Team Name',
      dialogTeamNamePlaceholder: 'Please enter team name',
      dialogProcessLabel: 'Process',
      dialogProcessTooltip: 'Source: Data dictionary - Process',
      dialogGroupTypeLabel: 'Team Type',
      dialogGroupTypeTooltip: 'Source: Data dictionary - Team Type',
      dialogWorkTimeLabel: 'Working Time',
      dialogWorkTimeRangeSeparator: 'To',
      dialogWorkTimeStartPlaceholder: 'Start Time',
      dialogWorkTimeEndPlaceholder: 'End Time',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogEnableLabel: 'Enabled',
      dialogCancelButton: 'Cancel',
      dialogSubmitButton: 'Confirm',
      detailAddButtonText: 'Add',
      detailTableJobNoColumn: 'Job No.',
      detailTableRoleColumn: 'Role',
      detailTableRemarkColumn: 'Remark',
      detailTableCreateTimeColumn: 'Create Time',
      detailTableOperateColumn: 'Operation',
      detailDialogJobNoLabel: 'Job No.',
      detailDialogJobNoPlaceholder: 'Please select job no.',
      detailDialogRoleLabel: 'Role',
      detailDialogRoleTooltip: 'Source: Data dictionary - Team Member Role',
      detailDialogRemarkLabel: 'Remark',
      detailDialogRemarkPlaceholder: 'Please enter remark',
      detailDialogMemberSuffix: 'Member',
      validatorTeamNameRequired: 'Team name can not be empty',
      validatorProcessRequired: 'Process type can not be empty',
      validatorGroupTypeRequired: 'Team type can not be empty',
      validatorEnableRequired: 'Enable status can not be empty',
      validatorDetailUserRequired: 'User id can not be empty',
      validatorDetailRoleRequired: 'Role can not be empty',
      validatorSelectWorkTeamFirst: 'Please select a work team first'
    },

    ProductUnit: {
      moduleName: 'Unit Management',
      searchNameLabel: 'Unit Name',
      searchNamePlaceholder: 'Please enter unit name',
      searchStatusLabel: 'Unit Status',
      searchStatusPlaceholder: 'Please select unit status',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',
      tableNameColumn: 'Unit Name',
      tablePrimaryFlagColumn: 'Is Primary Unit',
      tableChangeRateColumn: 'Conversion Rate to Primary Unit',
      tableStatusColumn: 'Status',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogNameLabel: 'Unit Name',
      dialogNamePlaceholder: 'Please enter unit name',
      dialogPrimaryFlagLabel: 'Is Primary Unit',
      dialogPrimaryUnitLabel: 'Related Primary Unit',
      dialogPrimaryUnitPlaceholder: 'Please select primary unit',
      dialogChangeRateLabel: 'Conversion Rate',
      dialogChangeRatePlaceholder: 'Please enter conversion rate',
      dialogStatusLabel: 'Unit Status',
      dialogCancelButton: 'Cancel',
      dialogSubmitButton: 'Confirm',
      validatorNameRequired: 'Unit name can not be empty',
      validatorStatusRequired: 'Unit status can not be empty',
      validatorPrimaryFlagRequired: 'Primary unit flag can not be empty'
    }
  },

  MoldManagement: {
    MoldBrand: {
      code: 'Model Code',
      name: 'Model Name',
      moldType: 'Specification',
      orgType: 'Process',
      moldSize: 'Cavity Number',
      useTime: 'Expected Life (Times)',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',
      tabMold: 'Mold',
      emptyTip: 'Please select a mold model in the above list first',
      exportFilename: 'MoldBrand.xls',
      placeholderCode: 'Please input model code',
      placeholderName: 'Please input model name',
      placeholderOrgType: 'Please select process',
      placeholderMoldType: 'Please input specification',
      placeholderMoldSize: 'Please input cavity number',
      placeholderUseTime: 'Input expected life (times)',
      placeholderRemark: 'Please input remark',
      validatorCodeRequired: 'Model code can not be empty',
      validatorNameRequired: 'Model name can not be empty',
      validatorMoldTypeRequired: 'Specification can not be empty',
      validatorProductRequired: 'Product id can not be empty',
      validatorMoldSizeRequired: 'Cavity number can not be empty',
      orgTypeTooltip: 'Source: Data dictionary - Process'
    },

    Mold: {
      code: 'Mold Code',
      name: 'Mold Name',
      unit: 'Unit',
      inTime: 'Stock In Time',
      status: 'Status',
      images: 'Mold Images',
      remark: 'Remark',
      isEnable: 'Is Enable',
      fileUrl: 'File',
      machineName: 'Machine',
      useTime: 'Used Times',
      moldSize: 'Cavity Number',
      createTime: 'Create Time',
      operate: 'Operate',
      detail: 'Detail',
      add: 'Add',
      edit: 'Edit',
      delete: 'Delete',
      placeholderCode: 'Please input mold code',
      placeholderName: 'Please input mold name',
      placeholderUnit: 'Please select unit',
      placeholderInTime: 'Select stock in time',
      placeholderRemark: 'Please input remark',
      placeholderStatus: 'Please select status',
      validatorCodeRequired: 'Mold code can not be empty',
      validatorNameRequired: 'Mold name can not be empty',
      validatorUnitRequired: 'Unit can not be empty',
      validatorInTimeRequired: 'Stock in time can not be empty',
      validatorIsEnableRequired: 'Is enable can not be empty',
      validatorBrandRequired: 'Model can not be empty',
      selectBrandTip: 'Please select a mold model',
      statusTooltip: 'Source: Data dictionary - Mold status'
    },

    MoldReturn: {
      moduleName: 'Mold Stock In',
      no: 'Stock In No',
      mold: 'Mold',
      moldInfo: 'Mold Info',
      inTime: 'Stock In Time',
      warehouse: 'Warehouse',
      creator: 'Creator',
      status: 'Status',
      remark: 'Remark',
      select: 'Select',
      operate: 'Operate',
      detail: 'Detail',
      edit: 'Edit',
      approve: 'Approve',
      unapprove: 'Unapprove',
      delete: 'Delete',
      export: 'Export',
      add: 'Add',
      inType: 'Stock In Type',
      inNo: 'Stock In No',
      inTimeSingle: 'Stock In Time',
      remarkSingle: 'Remark',
      attachment: 'Attachment',
      itemListTitle: 'Mold Stock In List',
      itemIndex: 'No',
      itemWarehouseName: 'Warehouse Name',
      itemMoldName: 'Mold Name',
      itemStockCount: 'Stock',
      itemMoldCode: 'Mold Code',
      itemUnitName: 'Unit',
      itemCount: 'Quantity',
      itemRemark: 'Remark',
      itemOperate: 'Operate',
      itemAddButton: 'Add Stock In Mold',
      sumLabel: 'Total',
      exportFilename: 'MoldStockIn.xls',
      placeholderNo: 'Please input stock in no',
      placeholderMold: 'Please select mold',
      placeholderInTimeStart: 'Start Date',
      placeholderInTimeEnd: 'End Date',
      placeholderWarehouse: 'Please select warehouse',
      placeholderCreator: 'Please select creator',
      placeholderStatus: 'Please select status',
      placeholderRemark: 'Please input remark',
      placeholderInType: 'Please select stock in type',
      placeholderInTime: 'Select stock in time',
      placeholderInNoAuto: 'Auto generated when saved',
      validatorInTimeRequired: 'Stock in time can not be empty',
      validatorInTypeRequired: 'Stock in type can not be empty',
      validatorItemInIdRequired: 'Stock in id can not be empty',
      validatorItemWarehouseRequired: 'Warehouse can not be empty',
      validatorItemMoldRequired: 'Mold can not be empty',
      validatorItemCountRequired: 'Quantity can not be empty',
      approveConfirm: 'Confirm approve this stock in order?',
      unapproveConfirm: 'Confirm unapprove this stock in order?',
      approveSuccess: 'Approve successful',
      unapproveSuccess: 'Unapprove successful'
    },

    MoldGet: {
      moduleName: 'Mold Stock Out',
      no: 'Mold Order No',
      mold: 'Mold',
      outTime: 'Stock Out Time',
      warehouse: 'Warehouse',
      creator: 'Creator',
      status: 'Status',
      remark: 'Remark',
      select: 'Select',
      operate: 'Operate',
      detail: 'Detail',
      edit: 'Edit',
      approve: 'Approve',
      unapprove: 'Unapprove',
      delete: 'Delete',
      export: 'Export',
      add: 'Add',
      outType: 'Stock Out Type',
      outNo: 'Stock Out No',
      outTimeSingle: 'Stock Out Time',
      remarkSingle: 'Remark',
      attachment: 'Attachment',
      itemListTitle: 'Mold Stock Out List',
      itemIndex: 'No',
      itemWarehouseName: 'Warehouse Name',
      itemMoldName: 'Mold Name',
      itemStockCount: 'Stock',
      itemMoldCode: 'Mold Code',
      itemUnitName: 'Unit',
      itemCount: 'Quantity',
      itemRemark: 'Remark',
      itemOperate: 'Operate',
      itemAddButton: 'Add Stock Out Mold',
      sumLabel: 'Total',
      exportFilename: 'MoldStockOut.xls',
      placeholderNo: 'Please input mold order no',
      placeholderMold: 'Please select mold',
      placeholderOutTimeStart: 'Start Date',
      placeholderOutTimeEnd: 'End Date',
      placeholderWarehouse: 'Please select warehouse',
      placeholderCreator: 'Please select creator',
      placeholderStatus: 'Please select status',
      placeholderRemark: 'Please input remark',
      placeholderOutType: 'Please select stock out type',
      placeholderOutTime: 'Select stock out time',
      placeholderOutNoAuto: 'Auto generated when saved',
      validatorOutTimeRequired: 'Stock out time can not be empty',
      validatorOutTypeRequired: 'Stock out type can not be empty',
      validatorItemOutIdRequired: 'Stock out id can not be empty',
      validatorItemWarehouseRequired: 'Warehouse can not be empty',
      validatorItemMoldRequired: 'Mold can not be empty',
      validatorItemCountRequired: 'Quantity can not be empty'
    },

    MoldInspectionItems: {
      moduleName: 'Inspection Items',
      code: 'Code',
      name: 'Name',
      inspectionMethod: 'Inspection Method',
      valueType: 'Value Type',
      judgmentCriteria: 'Judgment Criteria',
      isEnable: 'Is Enable',
      creatorName: 'Creator',
      createTime: 'Create Time',
      operate: 'Operate',
      index: 'Index',
      add: 'Add',
      batchDelete: 'Batch Delete',
      export: 'Export',
      edit: 'Edit',
      delete: 'Delete',
      exportFilename: 'InspectionItems.xls',
      placeholderCode: 'Please input code',
      placeholderName: 'Please input name',
      placeholderJudgmentCriteria: 'Please input judgment criteria',
      placeholderSubjectCode: 'Please input item code',
      placeholderSubjectName: 'Please input item name',
      placeholderInspectionMethod: 'Please select inspection method',
      placeholderValueType: 'Please select value type',
      placeholderIsEnable: 'Please select enable status',
      placeholderJudgmentCriteriaForm: 'Please input judgment criteria',
      validatorSubjectCodeRequired: 'Item code can not be empty',
      validatorSubjectNameRequired: 'Item name can not be empty',
      validatorInspectionMethodRequired: 'Inspection method can not be empty',
      validatorValueTypeRequired: 'Value type can not be empty',
      validatorJudgmentCriteriaRequired: 'Judgment criteria can not be empty',
      validatorIsEnableRequired: 'Enable status can not be empty',
      selectDeleteTip: 'Please select the data to delete'
    },

    MoldInspectionPlan: {
      moduleName: 'Inspection Plan',
      planName: 'Plan Name',
      planType: 'Plan Type',
      planTypeMaintain: 'Maintenance',
      planTypeInspect: 'Inspection',
      description: 'Description',
      creatorName: 'Creator',
      createTime: 'Create Time',
      updateTime: 'Update Time',
      operate: 'Operate',
      index: 'Index',
      subjectCode: 'Item Code',
      subjectName: 'Related Items',
      inspectionMethod: 'Inspection Method',
      judgmentCriteria: 'Judgment Criteria',
      add: 'Add',
      edit: 'Edit',
      delete: 'Delete',
      batchDelete: 'Batch Delete',
      export: 'Export',
      placeholderPlanName: 'Please input plan name',
      placeholderDescription: 'Please input description',
      placeholderPlanType: 'Please select plan type',
      placeholderSubjectName: 'Please input item name',
      placeholderSubjectDescription: 'Please input description',
      placeholderSubjectSelect: 'Please select related items',
      selectDeleteTip: 'Please select data to delete',
      exportFilename: 'MoldInspectionPlan.xls',
      validatorPlanNameRequired: 'Plan name can not be empty',
      validatorPlanTypeRequired: 'Plan type can not be empty'
    },

    MoldRepair: {
      moduleName: 'Mold Repair',
      repairCode: 'Repair Order No',
      repairName: 'Repair Order',
      mold: 'Mold',
      moldCode: 'Mold Code',
      moldName: 'Mold Name',
      repairUser: 'Repair User',
      confirmUser: 'Acceptance User',
      requireDate: 'Request Date',
      finishDate: 'Finish Date',
      confirmDate: 'Acceptance Date',
      repairResult: 'Repair Result',
      repairResultPending: 'Pending Repair',
      repairResultOk: 'Pass',
      repairResultNg: 'Fail',
      repairStatus: 'Result',
      status: 'Order Status',
      statusPending: 'Pending',
      statusDone: 'Completed',
      acceptUser: 'Repair User',
      confirmUserShort: 'Acceptance User',
      creator: 'Creator',
      createTime: 'Create Time',
      updateTime: 'Update Time',
      operate: 'Operate',
      index: 'Index',
      remark: 'Remark',
      listTitle: 'Mold Repair Records',
      add: 'Add',
      edit: 'Edit',
      delete: 'Delete',
      batchDelete: 'Batch Delete',
      export: 'Export',
      exportFilename: 'MoldRepairRecords.xls',
      repair: 'Repair',
      placeholderRepairCode: 'Please input repair order no',
      placeholderRepairName: 'Please input repair order name',
      placeholderMoldCode: 'Please input mold code',
      placeholderMoldName: 'Please input mold name',
      placeholderRequireDateStart: 'Start Date',
      placeholderRequireDateEnd: 'End Date',
      placeholderFinishDateStart: 'Start Date',
      placeholderFinishDateEnd: 'End Date',
      placeholderConfirmDateStart: 'Start Date',
      placeholderConfirmDateEnd: 'End Date',
      placeholderRepairUser: 'Please input repair user',
      placeholderStatus: 'Please select order status',
      placeholderMold: 'Please select mold',
      placeholderAcceptUser: 'Please select repair user',
      placeholderConfirmUser: 'Please select acceptance user',
      placeholderRequireDate: 'Select request date',
      placeholderFinishDate: 'Select finish date',
      placeholderConfirmDate: 'Select acceptance date',
      placeholderMoldNameAuto: 'Auto filled',
      placeholderMoldCodeAuto: 'Auto filled',
      search: 'Search',
      reset: 'Reset',
      selectDeleteTip: 'Please select the data to delete',
      validatorRepairCodeRequired: 'Repair order no can not be empty',
      validatorRepairNameRequired: 'Repair order can not be empty',
      validatorMoldRequired: 'Mold can not be empty',
      tabMoldRepairLine: 'Mold Repair Line Items',
      dialogTitleCreate: 'Create Repair Order',
      dialogTitleUpdate: 'Edit Repair Order',
      dialogTitleRepair: 'Repair'
    },

    MoldRepairLine: {
      index: 'Index',
      subjectCode: 'Repair Code',
      subjectName: 'Repair Name',
      subjectContent: 'Repair Content',
      remark: 'Remark',
      result: 'Result',
      resultOk: 'Pass',
      resultNg: 'Fail',
      addLine: 'Add Repair Item',
      placeholderSubjectCode: 'Please input repair code',
      placeholderSubjectName: 'Please input repair name',
      placeholderSubjectContent: 'Please input repair content',
      placeholderRemark: 'Please input remark',
      validatorRepairIdRequired: 'Repair order id can not be empty',
      validatorSubjectIdRequired: 'Item id can not be empty',
      validatorSubjectCodeRequired: 'Item code can not be empty',
      validatorSubjectContentRequired: 'Item content can not be empty'
    },

    MoldRepairItems: {
      moduleName: 'Repair Items',
      subjectCode: 'Repair Code',
      subjectName: 'Repair Name',
      moldName: 'Mold Name',
      projectContent: 'Repair Content',
      isEnable: 'Is Enable',
      createTime: 'Create Time',
      operate: 'Operate',
      index: 'Index',
      add: 'Add',
      edit: 'Edit',
      delete: 'Delete',
      batchDelete: 'Batch Delete',
      export: 'Export',
      exportFilename: 'MoldRepairItems.xls',
      placeholderSubjectCode: 'Please input repair code',
      placeholderSubjectName: 'Please input repair name',
      placeholderProjectContent: 'Please input repair content',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      search: 'Search',
      reset: 'Reset',
      selectDeleteTip: 'Please select the data to delete',
      dialogSubjectCode: 'Repair Code',
      dialogSubjectName: 'Repair Name',
      dialogMold: 'Mold',
      dialogProjectContent: 'Repair Content',
      dialogIsEnable: 'Is Enable',
      placeholderDialogSubjectCode: 'Please input repair code',
      placeholderDialogSubjectName: 'Please input repair name',
      placeholderDialogMold: 'Please select mold',
      placeholderDialogProjectContent: 'Please input repair content',
      validatorSubjectCodeRequired: 'Item code can not be empty',
      validatorSubjectNameRequired: 'Item name can not be empty',
      validatorMoldRequired: 'Mold can not be empty',
      validatorIsEnableRequired: 'Enable status can not be empty'
    },

    MoldOperate: {
      moduleName: 'Mold Up/Down',
      operateType: 'Operation Type',
      operateTypeUp: 'Mold Up',
      operateTypeDown: 'Mold Down',
      mold: 'Mold',
      moldName: 'Mold Name',
      lowerMold: 'Lower Mold',
      device: 'Device',
      deviceName: 'Device Name',
      remark: 'Remark',
      creatorName: 'Operator',
      createTime: 'Operation Time',
      operate: 'Operate',
      tabUp: 'Mold Up',
      tabDown: 'Mold Down',
      index: 'Index',
      add: 'Add',
      delete: 'Delete',
      export: 'Export',
      exportFilename: 'MoldOperate.xls',
      placeholderMold: 'Please select mold',
      placeholderLowerMold: 'Please select lower mold',
      placeholderRemark: 'Please input remark',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      placeholderDevice: 'Please select device',
      search: 'Search',
      reset: 'Reset',
      validatorOperateTypeRequired: 'Operation type can not be empty',
      validatorDeviceRequired: 'Device can not be empty',
      validatorMoldRequired: 'Mold can not be empty',
      validatorLowerMoldRequired: 'Lower mold can not be empty',
      alertNeedRemoveMoldFirst: 'Please remove the mold from this device first!',
      alertNoMoldOnDevice: 'No mold is installed on this device!'
    },

    MoldWorkOrderInquiry: {
      moduleName: 'Work Order Inquiry',
      planNo: 'Order No',
      planType: 'Type',
      planTypeInspect: 'Inspection',
      planTypeMaintain: 'Maintenance',
      jobStatus: 'Job Status',
      jobResult: 'Result',
      jobResultOk: 'OK',
      jobResultNg: 'NG',
      moldName: 'Mold Name',
      configName: 'Plan Config Name',
      operatorName: 'Operator',
      taskTime: 'Job Time',
      taskEndTime: 'Planned End Time',
      createTime: 'Create Time',
      index: 'Index',
      remark: 'Remark',
      select: 'Select',
      cancelTask: 'Cancel Task',
      placeholderPlanNo: 'Please input order no',
      placeholderPlanType: 'Please select type',
      placeholderJobStatus: 'Please select job status',
      placeholderJobResult: 'Please select result',
      query: 'Query',
      reset: 'Reset',
      cancelConfirm: 'Confirm cancel selected tasks?',
      cancelSuccess: 'Cancel task successful',
      inspectResultTitlePrefix: 'Inspection Result-',
      inspectResultTitle: 'Inspection Result'
    },

    TicketResultDialog: {
      moduleName: 'Inspection Result',
      index: 'Index',
      inspectionItemName: 'Inspection Item Name',
      inspectionMethod: 'Inspection Method',
      judgmentCriteria: 'Judgment Criteria',
      inspectionResult: 'Inspection Result',
      inspectionResultPending: 'Pending',
      inspectionResultPass: 'Pass',
      inspectionResultFail: 'Fail',
      images: 'Images',
      remark: 'Remark',
      operate: 'Operate',
      pass: 'Pass',
      fail: 'Fail',
      save: 'Save',
      cancel: 'Cancel',
      selectDecisionTip: 'Please select pass or fail for pending records first',
      updateSuccess: 'Update successful',
      updateFail: 'Update failed'
    }
  },
  QualityManagement: {
    ZjType: {
      moduleName: 'Inspection Type',
      code: 'Code',
      name: 'Name',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',
      exportFilename: 'Quality-InspectionType.xls',
      placeholderCode: 'Please input code',
      placeholderName: 'Please input name',
      placeholderRemark: 'Please input remark',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      validatorCodeRequired: 'Code can not be empty',
      validatorNameRequired: 'Name can not be empty'
    },
    ZjItem: {
      moduleName: 'Inspection Item',
      zjType: 'Inspection Type',
      name: 'Name',
      tool: 'Operation Method',
      standardVal: 'Standard Value',
      upperVal: 'Upper Limit',
      lowerVal: 'Lower Limit',
      unit: 'Unit',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',
      exportFilename: 'Quality-InspectionItem.xls',
      placeholderZjType: 'Please select inspection type',
      placeholderName: 'Please input name',
      placeholderTool: 'Please input operation method',
      placeholderStandardVal: 'Please input standard value',
      placeholderUpperVal: 'Please input upper limit',
      placeholderLowerVal: 'Please input lower limit',
      placeholderUnit: 'Please select unit',
      placeholderRemark: 'Please input remark',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      validatorNameRequired: 'Name can not be empty',
      validatorZjTypeRequired: 'Inspection type can not be empty'
    },
    ZjSchema: {
      moduleName: 'Inspection Scheme',
      name: 'Name',
      type: 'Type',
      sampleMethod: 'Sampling Method',
      val: 'Value',
      item: 'Related Items',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',
      source: 'Source',
      target: 'Target',
      filterPlaceholder: 'Filter',
      selectItemDialogTitle: 'Select Inspection Items',
      exportFilename: 'Quality-InspectionScheme.xls',
      placeholderName: 'Please input name',
      placeholderType: 'Please select type',
      placeholderSampleMethod: 'Please select sampling method',
      placeholderVal: 'Please input value',
      placeholderItem: 'Please select inspection items',
      placeholderRemark: 'Please input remark',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      validatorNameRequired: 'Name can not be empty',
      validatorTypeRequired: 'Type can not be empty',
      validatorSampleMethodRequired: 'Sampling method can not be empty',
      validatorValRequired: 'Value can not be empty'
    },
    ZjTask: {
      moduleName: 'Inspection Task',
      index: 'Index',
      code: 'Code',
      type: 'Inspection Category',
      status: 'Status',
      ticketCode: 'Work Order',
      orgType: 'Process',
      schemaName: 'Inspection Scheme',
      managerName: 'Manager',
      executorName: 'Executor',
      executeTime: 'Execute Time',
      remark: 'Remark',
      result: 'Result',
      resultPass: 'Pass',
      resultFail: 'Fail',
      createTime: 'Create Time',
      operate: 'Operate',
      inspect: 'Inspect',
      cancelTask: 'Cancel Task',
      cancelSuccess: 'Cancel task successfully',
      exportFilename: 'Quality-InspectionTask.xls',
      placeholderCode: 'Please input code',
      placeholderType: 'Please select inspection category',
      placeholderOrgType: 'Please select process',
      placeholderStatus: 'Please select status',
      placeholderResult: 'Please input result',
      placeholderCreateTimeStart: 'Start Date',
      placeholderCreateTimeEnd: 'End Date',
      formCode: 'Code',
      formType: 'Inspection Category',
      formSchema: 'Inspection Scheme',
      formTicketType: 'Work Order Type',
      formTicket: 'Production Plan',
      formOrgType: 'Process',
      formManager: 'Manager',
      formRemark: 'Remark',
      ticketTypeProcess: 'Production Process',
      ticketTypeStorage: 'Product Storage',
      placeholderFormCode: 'Please input code',
      placeholderFormType: 'Please select inspection category',
      placeholderFormSchema: 'Please select inspection scheme',
      placeholderFormTicket: 'Please select production plan',
      placeholderFormOrgType: 'Please select process',
      placeholderFormManager: 'Please select manager',
      placeholderFormRemark: 'Please input remark',
      validatorCodeRequired: 'Code can not be empty',
      validatorTypeRequired: 'Inspection category can not be empty',
      validatorSchemaRequired: 'Inspection scheme can not be empty',
      validatorTicketRequired: 'Work order can not be empty',
      validatorOrgTypeRequired: 'Process can not be empty',
      validatorTicketTypeRequired: 'Work order type can not be empty'
    },
    TicketResultDialog: {
      moduleName: 'Inspection Result',
      index: 'Index',
      inspectionItemName: 'Inspection Item Name',
      inspectionMethod: 'Inspection Method',
      judgmentCriteria: 'Judgment Criteria',
      unit: 'Unit',
      upperVal: 'Upper Limit',
      lowerVal: 'Lower Limit',
      inspectionResult: 'Inspection Result',
      inspectionResultPending: 'Pending',
      inspectionResultPass: 'Pass',
      inspectionResultFail: 'Fail',
      images: 'Images',
      remark: 'Remark',
      operate: 'Operate',
      pass: 'Pass',
      fail: 'Fail',
      save: 'Save',
      cancel: 'Cancel',
      selectDecisionTip: 'Please select pass or fail for pending records first',
      updateSuccess: 'Update successful',
      updateFail: 'Update failed'
    }
  },
  RecipeManagement: {
    RecipeType: {
      moduleName: 'Recipe Type',
      searchNameLabel: 'Name',
      searchNamePlaceholder: 'Please enter name',
      searchProcessLabel: 'Process',
      searchProcessPlaceholder: 'Please select process',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      createButtonText: 'Add',
      exportButtonText: 'Export',
      tableNameColumn: 'Name',
      tableProcessColumn: 'Process',
      tableRemarkColumn: 'Remark',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogCreateTitle: 'Create Recipe Type',
      dialogEditTitle: 'Edit Recipe Type',
      dialogNameLabel: 'Name',
      dialogNamePlaceholder: 'Please enter name',
      dialogProcessLabel: 'Process',
      dialogProcessPlaceholder: 'Please select process',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogCancelButton: 'Cancel',
      dialogSaveButton: 'Save',
      validatorNameRequired: 'Name cannot be empty',
      validatorProcessRequired: 'Process cannot be empty',
      exportNoSelectionMessage: 'Please select data to export',
      exportFileName: 'RecipeType.xls'
    },
    RecipeConfig: {
      moduleName: 'Recipe Config',
      searchRecipeCodeLabel: 'Recipe Code',
      searchRecipeCodePlaceholder: 'Please enter recipe code',
      searchNameLabel: 'Recipe Name',
      searchNamePlaceholder: 'Please enter recipe name',
      searchProductNameLabel: 'Product Name',
      searchProductNamePlaceholder: 'Please enter product name',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      createButtonText: 'Add',
      exportButtonText: 'Export',
      tableRecipeCodeColumn: 'Recipe Code',
      tableNameColumn: 'Recipe Name',
      tableRecipeTypeColumn: 'Recipe Type',
      tableProductNameColumn: 'Related Product',
      tableMachineNameColumn: 'Related Device',
      tableRecipeDescColumn: 'Recipe Description',
      tableOperateColumn: 'Operation',
      tableConfigAction: 'Config',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogCreateTitle: 'Create Recipe Config',
      dialogEditTitle: 'Edit Recipe Config',
      dialogRecipeCodeLabel: 'Recipe Code',
      dialogRecipeCodePlaceholder: 'Please enter recipe code',
      dialogNameLabel: 'Recipe Name',
      dialogNamePlaceholder: 'Please enter recipe name',
      dialogRecipeTypeLabel: 'Recipe Type',
      dialogRecipeTypePlaceholder: 'Please select recipe type',
      dialogProductNameLabel: 'Related Product',
      dialogProductNamePlaceholder: 'Please select related product',
      dialogMachineNameLabel: 'Related Device',
      dialogMachineNamePlaceholder: 'Please select related device',
      dialogRecipeDescLabel: 'Recipe Description',
      dialogRecipeDescPlaceholder: 'Please enter recipe description',
      dialogCancelButton: 'Cancel',
      dialogSaveButton: 'Save',
      validatorRecipeCodeRequired: 'Recipe code cannot be empty',
      validatorNameRequired: 'Recipe name cannot be empty',
      exportNoSelectionMessage: 'Please select data to export',
      exportFileName: 'RecipeConfig.xls',
      detailCollapseButton: 'Collapse',
      detailTabDetailLabel: 'Detail',
      detailTabManualLabel: 'Manual Parameters',
      detailConfigButton: 'Config',
      detailIndexColumn: 'Index',
      detailPointNameColumn: 'Point Name',
      detailPointTypeColumn: 'Point Type',
      detailDataTypeColumn: 'Data Type',
      detailDataUnitColumn: 'Unit',
      manualCreateButton: 'Add',
      manualTableNameColumn: 'Name',
      manualTableMaxColumn: 'Upper Limit',
      manualTableMinColumn: 'Lower Limit',
      manualTableDataUnitColumn: 'Unit',
      manualTableRemarkColumn: 'Remark',
      manualTableOperateColumn: 'Operation',
      manualTableEditAction: 'Edit',
      manualTableDeleteAction: 'Delete',
      manualDialogCreateTitle: 'Create Parameter',
      manualDialogEditTitle: 'Edit Parameter',
      manualDialogNameLabel: 'Name',
      manualDialogNamePlaceholder: 'Please enter name',
      manualDialogMaxLabel: 'Upper Limit',
      manualDialogMaxPlaceholder: 'Please enter upper limit',
      manualDialogMinLabel: 'Lower Limit',
      manualDialogMinPlaceholder: 'Please enter lower limit',
      manualDialogDataTypeLabel: 'Data Type',
      manualDialogDataTypePlaceholder: 'Please select data type',
      manualDialogDataUnitLabel: 'Unit',
      manualDialogDataUnitPlaceholder: 'Please select unit',
      manualDialogRemarkLabel: 'Remark',
      manualDialogRemarkPlaceholder: 'Please enter remark',
      manualDialogCancelButton: 'Cancel',
      manualDialogSaveButton: 'Save',
      manualValidatorNameRequired: 'Name cannot be empty',
      manualValidatorMaxRequired: 'Upper limit cannot be empty',
      manualValidatorMinRequired: 'Lower limit cannot be empty',
      manualValidatorDataTypeRequired: 'Data type cannot be empty',
      manualValidatorDataUnitRequired: 'Unit cannot be empty',
      configDialogTitle: 'Config',
      configSourceTitle: 'Source',
      configTargetTitle: 'Target',
      configFilterPlaceholder: 'Filter',
      configMoveToTargetButton: 'Add to Target',
      configMoveToSourceButton: 'Move to Source',
      configCancelButton: 'Cancel',
      configSaveButton: 'Save',
      configDeviceLabelFallback: '-',
      configSourceCountLabel: 'Source Count',
      configTargetCountLabel: 'Target Count'
    },
    RecipeLibrary: {
      moduleName: 'Recipe Library',
      searchCodeLabel: 'Code',
      searchCodePlaceholder: 'Please enter code',
      searchNameLabel: 'Name',
      searchNamePlaceholder: 'Please enter name',
      searchRecipeLabel: 'Recipe Name',
      searchRecipePlaceholder: 'Please select recipe',
      searchPlanLabel: 'Related Plan',
      searchPlanPlaceholder: 'Please select plan',
      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      createButtonText: 'Add',
      exportButtonText: 'Export',
      tableCodeColumn: 'Code',
      tableNameColumn: 'Name',
      tableRecipeNameColumn: 'Recipe Name',
      tablePlanCodeColumn: 'Related Plan',
      tableCreatorColumn: 'Creator',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',
      tableReadAction: 'Read',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',
      dialogCodeLabel: 'Code',
      dialogCodePlaceholder: 'Please enter code',
      dialogNameLabel: 'Name',
      dialogNamePlaceholder: 'Please enter name',
      dialogRecipeLabel: 'Recipe',
      dialogRecipePlaceholder: 'Please select recipe',
      dialogPlanLabel: 'Related Plan',
      dialogPlanPlaceholder: 'Please select plan',
      dialogSourceLabel: 'Source',
      dialogSourcePlaceholder: 'Please select source',
      dialogCancelButton: 'Cancel',
      dialogSaveButton: 'Save',
      validatorCodeRequired: 'Code cannot be empty',
      validatorNameRequired: 'Name cannot be empty',
      validatorRecipeRequired: 'Related recipe cannot be empty',
      validatorPlanRequired: 'Related plan cannot be empty',
      exportFileName: 'RecipeLibrary.xls',
      sourceOptionNewLabel: 'New',
      sourceOptionProducingLabel: 'In Production',
      readDialogTitle: 'Read',
      readDialogNameColumn: 'Name',
      readDialogDataTypeColumn: 'Data Type',
      readDialogDataUnitColumn: 'Unit',
      readDialogMaxColumn: 'Upper Limit',
      readDialogMinColumn: 'Lower Limit',
      readDialogRemarkColumn: 'Remark',
      readDialogReferColumn: 'Collected Value',
      readDialogReferPlaceholder: 'Please enter collected value',
      readDialogSubmitButtonText: 'Read',
      readDialogCancelButton: 'Cancel',
      readDeviceConfirmMessage: 'Do you want to read device data?',
      readDialogOverwriteTip: 'Reading again will overwrite existing device data and manual parameters',
      detailTabDeviceDataLabel: 'Device Data',
      detailTabManualLabel: 'Manual Parameters',
      detailDevicePointNameColumn: 'Point Name',
      detailDeviceDataTypeColumn: 'Data Type',
      detailDeviceDataUnitColumn: 'Unit',
      detailDeviceValueColumn: 'Collected Value',
      manualTableNameColumn: 'Name',
      manualTableDataTypeColumn: 'Data Type',
      manualTableDataUnitColumn: 'Unit',
      manualTableReferColumn: 'Reference Value',
      manualTableRemarkColumn: 'Remark'
    }
  },
  EnergyManagement: {
    EnergyType: {
      moduleName: 'Energy Type',

      searchCodeLabel: 'Energy Type Code',
      searchCodePlaceholder: 'Please enter energy type code',
      searchNameLabel: 'Energy Type Name',
      searchNamePlaceholder: 'Please enter energy type name',
      searchUnitLabel: 'Unit',
      searchUnitPlaceholder: 'Please enter unit',
      searchCreateTimeLabel: 'Create Time',
      searchCreateTimeStartPlaceholder: 'Start Date',
      searchCreateTimeEndPlaceholder: 'End Date',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      addButtonText: 'Add',
      exportButtonText: 'Export',

      tableCodeColumn: 'Energy Type Code',
      tableNameColumn: 'Energy Type Name',
      tableUnitColumn: 'Unit',
      tableIsEnableColumn: 'Enabled',
      tableRemarkColumn: 'Remark',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operation',

      dialogCodeLabel: 'Energy Type Code',
      dialogCodePlaceholder: 'Please enter energy type code',
      dialogNameLabel: 'Energy Type Name',
      dialogNamePlaceholder: 'Please enter energy type name',
      dialogUnitLabel: 'Unit',
      dialogUnitPlaceholder: 'Please enter unit',
      dialogIsEnableLabel: 'Enabled',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogOkButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      validatorCodeRequired: 'Energy type code can not be empty',
      validatorNameRequired: 'Energy type name can not be empty',
      validatorUnitRequired: 'Unit can not be empty',
      validatorIsEnableRequired: 'Enabled can not be empty',

      exportFilename: 'EnergyType.xls',
    },
    EnergyDeviceCheck: {
      moduleName: 'Energy Report',

      searchNameLabel: 'Meter Name',
      searchNamePlaceholder: 'Please enter meter name',
      searchOrgLabel: 'Area',
      searchOrgPlaceholder: 'Please select area',
      searchTimeRangeLabel: 'Time Range',
      searchTimeRangeStartPlaceholder: 'Please select start time',
      searchTimeRangeEndPlaceholder: 'Please select end time',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      exportButtonText: 'Export',

      tableExpandPointNameColumn: 'Parameter Name',
      tableExpandEarliestValueColumn: 'Earliest Value',
      tableExpandEarliestTimeColumn: 'Earliest Time',
      tableExpandLatestValueColumn: 'Latest Value',
      tableExpandLatestTimeColumn: 'Latest Time',
      tableExpandDifferenceColumn: 'Energy Usage',

      tableNameColumn: 'Meter Name',
      tableEnergyTypeColumn: 'Energy Type',
      tableOrgColumn: 'Area',
      tableEnergyConsumptionColumn: 'Energy Consumption',
      tableStartTimeColumn: 'Start Time',
      tableEndTimeColumn: 'End Time',

      exportFileName: 'EnergyReport.xls',

      dialogDeviceIdLabel: 'Energy Device ID',
      dialogDeviceIdPlaceholder: 'Please enter energy device ID',
      dialogLastCheckTimeLabel: 'Last Reading Time',
      dialogLastCheckTimePlaceholder: 'Please select last reading time',
      dialogLastCheckValueLabel: 'Last Reading',
      dialogLastCheckValuePlaceholder: 'Please enter last reading',
      dialogCheckTimeLabel: 'Reading Time',
      dialogCheckTimePlaceholder: 'Please select reading time',
      dialogCheckValueLabel: 'Reading',
      dialogCheckValuePlaceholder: 'Please enter reading',
      dialogDiffValueLabel: 'Difference',
      dialogDiffValuePlaceholder: 'Please enter difference',
      dialogUnitPriceLabel: 'Unit Price',
      dialogUnitPricePlaceholder: 'Please enter unit price',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogOkButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      validatorDeviceIdRequired: 'Energy device ID cannot be empty',
      validatorCheckValueRequired: 'Reading cannot be empty'
    },
    EnergyDevice: {
      moduleName: 'Energy Device',

      searchNameLabel: 'Device Name',
      searchNamePlaceholder: 'Please enter device name',
      searchEnergyTypeLabel: 'Energy Type',
      searchEnergyTypePlaceholder: 'Please select energy type',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      createButtonText: 'Add',
      exportButtonText: 'Export',

      tableCodeColumn: 'Device Code',
      tableNameColumn: 'Device Name',
      tableEnergyTypeColumn: 'Energy Type',
      tableOrgColumn: 'Area',
      tableIsEnableColumn: 'Enabled',
      tableUpdateTimeColumn: 'Update Time',
      tableOperateColumn: 'Operation',
      tableEditAction: 'Edit',
      tableDeleteAction: 'Delete',

      exportFileName: 'EnergyDevice.xls',

      dialogCodeLabel: 'Device Code',
      dialogCodePlaceholder: 'Please enter device code',
      dialogNameLabel: 'Device Name',
      dialogNamePlaceholder: 'Please enter device name',
      dialogEnergyTypeLabel: 'Energy Type',
      dialogEnergyTypePlaceholder: 'Please select energy type',
      dialogOrgLabel: 'Area',
      dialogOrgTreePlaceholder: 'Please select area',
      dialogRulesLabel: 'Calculation Rule',
      dialogRulesPointPlaceholder: 'Please select device point',
      dialogOperatorPlaceholder: 'Please select operator',
      dialogIsEnableLabel: 'Enabled',
      dialogSubmitButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      validatorNameRequired: 'Device name cannot be empty',
      validatorCodeRequired: 'Device code cannot be empty',
      validatorOrgRequired: 'Area cannot be empty',
      validatorIsEnableRequired: 'Enabled cannot be empty',
      validatorRulesRequired: 'Calculation rule cannot be empty',
      validatorRulesPointRequired: 'Device point cannot be empty',
      validatorRulesOperatorRequired: 'Operator cannot be empty'
    }
  },
  ProductionPlan: {
    Task: {
      moduleName: 'Production Task',

      searchCodeLabel: 'Code',
      searchCodePlaceholder: 'Please enter code',
      searchOrderLabel: 'Order',
      searchOrderStartPlaceholder: 'Start Date',
      searchOrderEndPlaceholder: 'End Date',
      searchDeliveryLabel: 'Delivery',
      searchDeliveryStartPlaceholder: 'Start Date',
      searchDeliveryEndPlaceholder: 'End Date',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',
      searchCreateTimeLabel: 'Create Time',
      searchCreateTimeStartPlaceholder: 'Start Date',
      searchCreateTimeEndPlaceholder: 'End Date',

      buttonSearchText: 'Search',
      buttonResetText: 'Reset',
      buttonCreateText: 'Add',
      buttonExportText: 'Export',

      tabAllLabel: 'All',
      tabDraftLabel: 'Draft',
      tabSubmitLabel: 'To Submit',
      tabIssuedLabel: 'Issued',
      tabPlanLabel: 'Planned',
      tabStartLabel: 'Started',
      tabFinishedLabel: 'Finished',
      tabStoredLabel: 'Stored',

      tableCodeColumn: 'Code',
      tableOrderDateColumn: 'Order Date',
      tableDeliveryDateColumn: 'Delivery Date',
      tableTaskTypeColumn: 'Type',
      tableStatusColumn: 'Status',
      tableRemarkColumn: 'Remark',
      tableOperateColumn: 'Operate',

      actionSubmitLabel: 'Submit',
      actionApproveLabel: 'Approve',
      actionMaterialLabel: 'Material',
      actionEditLabel: 'Edit',
      actionDeleteLabel: 'Delete',

      detailTabTaskDetailLabel: 'Task Detail',

      dialogCodeLabel: 'Task Code',
      dialogCodeTooltip: 'Task code',
      dialogCodePlaceholder: 'Code will be generated automatically after saving',
      dialogDeliveryDateLabel: 'Delivery Date',
      dialogDeliveryDatePlaceholder: 'Select delivery date',
      dialogTaskTypeLabel: 'Task Type',
      dialogTaskTypeTooltip: 'Source: Data Dictionary - Task Type',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogSubmitButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      validatorDeliveryDateRequired: 'Delivery date cannot be empty',
      validatorTaskTypeRequired: 'Task type cannot be empty',

      saleDialogCodeLabel: 'Code',
      saleDialogCodePlaceholder: 'Please enter task code',
      saleDialogDeliveryDateLabel: 'Delivery Date',
      saleDialogDeliveryDatePlaceholder: 'Select delivery date',
      saleDialogRemarkLabel: 'Remark',
      saleDialogRemarkPlaceholder: 'Please enter remark',
      saleDialogTaskTypeLabel: 'Task Type',
      saleDetailTabTaskDetailLabel: 'Production Task Detail',
      saleValidatorCodeRequired: 'Code cannot be empty',
      saleValidatorDeliveryDateRequired: 'Delivery date cannot be empty',
      saleValidatorTaskTypeRequired: 'Task type cannot be empty',

      detailListCreateButtonText: 'Add',
      detailListProductCodeColumn: 'Product Code',
      detailListProductNameColumn: 'Product Name',
      detailListUnitColumn: 'Unit',
      detailListNumberColumn: 'Quantity',
      detailListPlanNumberColumn: 'Planned',
      detailListFinishDateColumn: 'Delivery Date',
      detailListTechRequirementsColumn: 'Technical Requirement',
      detailListOperateColumn: 'Operate',
      detailListViewActionText: 'Detail',
      detailListMaterialActionText: 'Material',
      detailListEditActionText: 'Edit',
      detailListDeleteActionText: 'Delete',

      detailDialogProductLabel: 'Product',
      detailDialogProductPlaceholder: 'Please select product',
      detailDialogUnitLabel: 'Unit',
      detailDialogUnitPlaceholder: 'Please select product',
      detailDialogNumberLabel: 'Quantity',
      detailDialogNumberPlaceholder: 'Please enter quantity',
      detailDialogProjectLabel: 'Project',
      detailDialogProjectPlaceholder: 'Please enter project name',
      detailDialogPackageSizeLabel: 'Quantity per Package',
      detailDialogPackageSizePlaceholder: 'Please enter packing requirement',
      detailDialogPackageNumberLabel: 'Package Quantity',
      detailDialogPackageNumberPlaceholder: 'Please enter quantity',
      detailDialogTechRequirementsLabel: 'Technical Requirement',
      detailDialogTechRequirementsPlaceholder: 'Please enter technical requirement',
      detailDialogFinishDateLabel: 'Factory Completion',
      detailDialogFinishDatePlaceholder: 'Select factory completion date',
      detailFormDeliveryDateLabel: 'Delivery Date',
      detailFormDeliveryDatePlaceholder: 'Select delivery date',
      detailDialogBoxingDateLabel: 'Boxing Date',
      detailDialogBoxingDatePlaceholder: 'Select boxing date',
      detailDialogArriveDateLabel: 'Arrival Date',
      detailDialogArriveDatePlaceholder: 'Select arrival date',
      detailDialogRemarkLabel: 'Remark:',
      detailDialogSubmitButtonText: 'Confirm',
      detailDialogCancelButtonText: 'Cancel',

      validatorDetailProductIdRequired: 'Product ID cannot be empty',
      validatorDetailUnitIdRequired: 'Unit ID cannot be empty',
      validatorDetailTaskIdRequired: 'Task ID cannot be empty',
      validatorDetailNumberRequired: 'Quantity cannot be empty',
      validatorDetailPackageSizeRequired: 'Packing requirement cannot be empty',

      saleDetailTableIndexColumn: 'No.',
      saleDetailTableProductColumn: 'Product',
      saleDetailTableUnitColumn: 'Unit',
      saleDetailTableNumberColumn: 'Quantity',
      saleDetailTablePackageSizeColumn: 'Per Package',
      saleDetailTablePackageNumberColumn: 'Package Quantity',
      saleDetailTableProjectNameColumn: 'Project Name',
      saleDetailTableTechRequirementsColumn: 'Technical Requirement',
      saleDetailTableRemarkColumn: 'Remark',
      saleDetailTableFinishDateColumn: 'Factory Completion',
      saleDetailTableBoxingDateColumn: 'Boxing Time',
      saleDetailTableArriveDateColumn: 'Arrival Time',
      saleDetailTableBarCodeColumn: 'Barcode',
      saleDetailTableOperateColumn: 'Operate',
      saleDetailAddRowButtonText: '+ Add Task Detail',
      saleDetailAddFromOrderButtonText: '+ Add From Sales Order',
      saleDetailProductPlaceholder: 'Please select',
      validatorRowProductRequired: 'Product cannot be empty',
      validatorRowUnitRequired: 'Unit cannot be empty',
      validatorRowTaskRequired: 'Production task cannot be empty',
      validatorRowNumberRequired: 'Quantity cannot be empty',

      itemNeedDialogTitlePrefix: 'Material Requirement: ',
      itemNeedTableItemNameColumn: 'Material',
      itemNeedTableUnitNameColumn: 'Unit',
      itemNeedTableNumberColumn: 'Required Qty',
      itemNeedTableStockNumberColumn: 'Stock',
      itemNeedDialogCloseButtonText: 'Close',
      itemNeedDialogUnknownTypeMessage: 'Unknown material analysis type!',

      planDialogTaskCodeLabel: 'Product',
      planDialogTaskCodePlaceholder: 'Please enter',
      planDialogNumberLabel: 'Total',
      planDialogNumberPlaceholder: 'Please enter',
      planDialogPlanNumberLabel: 'Unfinished',
      planDialogPlanNumberPlaceholder: 'Please enter',
      planDialogProductsOfPlanLabel: 'Planned Output',
      planDialogPlanDateLabel: 'Date',
      planDialogPlanDatePlaceholder: 'Please select scheduling dates',
      planDialogAutoButtonText: 'Auto Schedule',
      planDialogResetButtonText: 'Clear Result',
      planDialogTabPlanLabel: 'Pre-schedule Plan',
      planDialogTabFinishPlanLabel: 'Scheduled Plan',
      planDialogSubmitButtonText: 'Submit',
      planDialogCancelButtonText: 'Cancel',
      validatorPlanTaskIdRequired: 'Task order cannot be empty',
      validatorPlanProductsOfPlanRequired: 'Planned quantity per plan cannot be empty',
      planDialogTitlePrefix: 'Product Scheduling: ',
      planDialogEmptyPlanMessage: 'Please do not submit empty plan!',

      selectTaskTip: 'Please select a production task order'
    },

    TaskSummary: {
      moduleName: 'Task Order Scheduling',

      searchCodeLabel: 'Task Order Code',
      searchCodePlaceholder: 'Please input code',
      searchOrderLabel: 'Order Date',
      searchOrderStartPlaceholder: 'Start Date',
      searchOrderEndPlaceholder: 'End Date',
      searchDeliveryLabel: 'Delivery Date',
      searchDeliveryStartPlaceholder: 'Start Date',
      searchDeliveryEndPlaceholder: 'End Date',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please input remark',
      searchCreateTimeLabel: 'Create Time',
      searchCreateTimeStartPlaceholder: 'Start Date',
      searchCreateTimeEndPlaceholder: 'End Date',

      buttonSearchText: 'Search',
      buttonResetText: 'Reset',
      buttonExportText: 'Export',

      tabAllLabel: 'All',
      tabIssuedLabel: 'Issued',
      tabPlanLabel: 'Planned',
      tabStartLabel: 'Started',
      tabFinishedLabel: 'Finished',
      tabStoredLabel: 'Stored',

      tableTaskCodeColumn: 'Task Order',
      tableOrderDateColumn: 'Order Date',
      tableDeliveryDateColumn: 'Delivery Date',
      tableStatusColumn: 'Status',
      tableRemarkColumn: 'Remark',
      tableOperateColumn: 'Operate',

      actionMaterialLabel: 'Material',
      actionViewPlanLabel: 'View Plan',
      detailTabSummaryLabel: 'Task Order Summary Details',

      detailTableTaskCodeColumn: 'Task Order',
      detailTableProductCodeColumn: 'Product Code',
      detailTableProductNameColumn: 'Product Name',
      detailTableTotalNumberColumn: 'Total Quantity',
      detailTablePlanNumberColumn: 'Planned',
      detailTableUnplanNumberColumn: 'Unplanned',
      detailTableOperateColumn: 'Operate',
      detailActionMaterialLabel: 'Material',
      detailActionViewPlanLabel: 'View Plan',
      detailActionCreatePlanLabel: 'Add Plan',
      detailSelectTaskTip: 'Please select a production task order',

      planDialogTaskIdLabel: 'Task Order',
      planDialogTaskCodeLabel: 'Task Order',
      planDialogProductsOfPlanLabel: 'Planned Output',
      planDialogPlanDateLabel: 'Date',
      planDialogPlanDatePlaceholder: 'Please select scheduling date',
      planDialogAutoButtonText: 'Auto Schedule',
      planDialogResetButtonText: 'Clear Result',
      planDialogTabPlanLabel: 'Pre-scheduling Plan',
      planDialogTabFinishPlanLabel: 'Scheduled Plan',
      planDialogSubmitButtonText: 'Submit',
      planDialogCancelButtonText: 'Cancel',
      planDialogTitlePrefix: 'Task Order Scheduling: ',
      validatorPlanTaskIdRequired: 'Task order can not be empty',
      validatorPlanProductsOfPlanRequired: 'Planned quantity per batch can not be empty',
      planDialogEmptyPlanMessage: 'Please do not submit empty plan!',

      planFormIndexColumn: 'No.',
      planFormCodeColumn: 'Plan Code',
      planFormCodePlaceholder: 'Please input plan code',
      planFormProductColumn: 'Product',
      planFormProductIdPlaceholder: 'Please input product ID',
      planFormProductNamePlaceholder: 'Please input product',
      planFormPlanNumberColumn: 'Quantity',
      planFormPlanNumberPlaceholder: 'Please input quantity',
      planFormPlanStartTimeColumn: 'Plan Start Time',
      planFormPlanStartTimePlaceholder: 'Select plan start time',
      planFormPlanEndTimeColumn: 'Plan End Time',
      planFormPlanEndTimePlaceholder: 'Select plan end time',
      planFormRemarkColumn: 'Remark',
      planFormOperateColumn: 'Operate',
      planFormCopyButtonText: 'Copy',
      planFormDeleteButtonText: 'Delete',
      validatorPlanFormProductIdRequired: 'Product can not be empty',
      validatorPlanFormTaskIdRequired: 'Task order can not be empty',
      validatorPlanFormPlanNumberRequired: 'Quantity can not be empty',
      validatorPlanFormPlanStartTimeRequired: 'Plan start time can not be empty',
      validatorPlanFormPlanEndTimeRequired: 'Plan end time can not be empty'
    },

    Plan: {
      moduleName: 'Production Plan',

      searchTaskLabel: 'Task Order',
      searchTaskPlaceholder: 'Please select task order',
      searchCodeLabel: 'Plan Code',
      searchCodePlaceholder: 'Please enter plan code',
      searchProductLabel: 'Product',
      searchProductPlaceholder: 'Please select product',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',
      searchPlanStartLabel: 'Plan Start',
      searchPlanStartStartPlaceholder: 'Start Date',
      searchPlanStartEndPlaceholder: 'End Date',
      searchPlanEndLabel: 'Plan End',
      searchPlanEndStartPlaceholder: 'Start Date',
      searchPlanEndEndPlaceholder: 'End Date',

      buttonSearchText: 'Search',
      buttonResetText: 'Reset',
      buttonExportText: 'Export',

      tabPlannedLabel: 'Scheduled',
      tabTrialLabel: 'Trial',
      tabMassLabel: 'Mass Production',
      tabPausedLabel: 'Paused',
      tabToStoreLabel: 'To Store',
      tabStoredLabel: 'Stored',

      detailItemRequisitionTabLabel: 'Material Details',
      detailInspectTabLabel: 'Inspection Details',
      detailBaogongRecordTabLabel: 'Report Records',

      tableCodeColumn: 'Plan Code',
      tableProductColumn: 'Product',
      tableFeedingPipelineColumn: 'Production Line',
      tablePlanNumberColumn: 'Planned Qty',
      tableFinishNumberColumn: 'Finished Qty',
      tablePassRateColumn: 'Pass Rate(%)',
      tablePlanStartTimeColumn: 'Plan Start Time',
      tablePlanEndTimeColumn: 'Plan End Time',
      tableStatusColumn: 'Status',
      tableIsZjColumn: 'Inspected',
      tableOperateColumn: 'Operate',

      actionDetailLabel: 'Detail',
      actionEditLabel: 'Edit',
      actionMaterialLabel: 'Material',
      actionDispatchFeedingLabel: 'Feeding Dispatch',
      actionDispatchProcessLabel: 'Process Dispatch',
      actionTrialLabel: 'Trial',
      actionInspectLabel: 'Inspect',
      actionMassLabel: 'Mass Production',
      actionBaogongLabel: 'Report',
      actionPauseLabel: 'Pause',
      actionFinishLabel: 'Finish',
      actionStoreLabel: 'Store',
      actionDeleteLabel: 'Delete',

      statusConfirmTitle: 'Prompt',
      statusConfirmMessage: 'Plan: {code} confirm {action}?',
      inspectConfirmTitle: 'Prompt',
      inspectConfirmMessage: 'Plan: {code} confirm inspection?',

      dialogTaskLabel: 'Task Order',
      dialogTaskPlaceholder: 'Please select task order',
      dialogTaskDetailLabel: 'Detail Item',
      dialogTaskDetailPlaceholder: 'Please select detail item',
      dialogCodeLabel: 'Plan Code',
      dialogCodeTooltip: 'Production plan code',
      dialogCodePlaceholder: 'Code will be generated automatically after saving',
      dialogFeedingPipelineLabel: 'Production Line',
      dialogFeedingPipelinePlaceholder: 'Please select production line',
      dialogWorkerLabel: 'Feeding Worker',
      dialogWorkerPlaceholder: 'Please select worker',
      dialogPlanNumberLabel: 'Quantity',
      dialogPreProductionLabel: 'Trial Production',
      dialogPlanStartLabel: 'Plan Start',
      dialogPlanStartPlaceholder: 'Select plan start time',
      dialogPlanEndLabel: 'Plan End',
      dialogPlanEndPlaceholder: 'Select plan end time',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogSubmitButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      validatorTaskDetailRequired: 'Detail item cannot be empty',
      validatorTaskRequired: 'Task order cannot be empty',
      validatorPlanNumberRequired: 'Quantity cannot be empty',
      validatorPlanStartRequired: 'Plan start time cannot be empty',
      validatorPlanEndRequired: 'Plan end time cannot be empty',
      validatorFeedingPipelineRequired: 'Production line cannot be empty',
      validatorWorkerRequired: 'Feeding worker cannot be empty',
      validatorPreProductionRequired: 'Trial production cannot be empty',

      dispatchDialogPlanLabel: 'Plan',
      dispatchDialogPlanPlaceholder: 'Please enter plan ID',
      dispatchDialogFeedingPipelineLabel: 'Pulp Line',
      dispatchDialogFeedingPipelinePlaceholder: 'Please select pulp line',
      dispatchDialogWorkerLabel: 'Worker',
      dispatchDialogWorkerPlaceholder: 'Please select worker',
      dispatchDialogRequisitionDateLabel: 'Planned Feeding',
      dispatchDialogRequisitionDatePlaceholder: 'Select feeding time',
      dispatchDialogRemarkLabel: 'Remark',
      dispatchDialogRemarkPlaceholder: 'Please enter remark',
      dispatchDialogSubmitButtonText: 'Submit',
      dispatchDialogCancelButtonText: 'Cancel',
      dispatchDialogTitle: 'Plan Dispatch: {code}',
      dispatchSuccessMessage: 'Dispatch succeeded!',

      typeDispatchDialogPipelineLabel: 'Production Line',
      typeDispatchDialogPipelinePlaceholder: 'Please select production line',
      typeDispatchDialogPaigongNumLabel: 'Dispatch Quantity',
      typeDispatchDialogPaigongNumPlaceholder: 'Please enter quantity',
      typeDispatchDialogPreProductionLabel: 'Trial Production',
      typeDispatchDialogSubmitButtonText: 'Submit',
      typeDispatchDialogCancelButtonText: 'Cancel',

      validatorDispatchPlanRequired: 'Plan cannot be empty',
      validatorDispatchFeedingPipelineRequired: 'Pulp line cannot be empty',
      validatorDispatchWorkerRequired: 'Feeding worker cannot be empty',
      validatorTypeDispatchPipelineRequired: 'Production line cannot be empty',
      validatorTypeDispatchPreProductionRequired: 'Trial production cannot be empty',
      validatorTypeDispatchPaigongNumRequired: 'Dispatch quantity cannot be empty',

      baogongDialogPlanLabel: 'Plan',
      baogongDialogPlanPlaceholder: 'Please enter plan ID',
      baogongDialogQualifiedNumberLabel: 'Qualified Qty',
      baogongDialogQualifiedNumberPlaceholder: 'Please enter quantity',
      baogongDialogUnqualifiedNumberLabel: 'Unqualified Qty',
      baogongDialogUnqualifiedNumberPlaceholder: 'Please enter quantity',
      baogongDialogReasonLabel: 'Reason',
      baogongDialogReasonPlaceholder: 'Please enter reason',
      baogongDialogSubmitButtonText: 'Submit',
      baogongDialogCancelButtonText: 'Cancel',
      baogongDialogTitle: 'Plan Report: {code}',
      validatorBaogongQualifiedRequired: 'Quantity cannot be empty',
      validatorBaogongUnqualifiedRequired: 'Quantity cannot be empty',
      baogongSuccessMessage: 'Report succeeded!',

      detailDialogTitle: 'Detail',
      detailDialogTaskLabel: 'Task Order',
      detailDialogTaskPlaceholder: 'Please enter task order',
      detailDialogProductLabel: 'Detail Item',
      detailDialogProductPlaceholder: 'Please enter product',
      detailDialogCodeLabel: 'Plan Code',
      detailDialogCodePlaceholder: 'Please enter plan code',
      detailDialogFeedingPipelineLabel: 'Production Line',
      detailDialogFeedingPipelinePlaceholder: 'Please enter production line name',
      detailDialogWorkerLabel: 'Worker',
      detailDialogWorkerPlaceholder: 'Please enter worker',
      detailDialogPlanNumberLabel: 'Quantity',
      detailDialogPreProductionLabel: 'Trial Production',
      detailDialogPlanStartLabel: 'Plan Start',
      detailDialogPlanStartPlaceholder: 'Select plan start time',
      detailDialogPlanEndLabel: 'Plan End',
      detailDialogPlanEndPlaceholder: 'Select plan end time',
      detailDialogRemarkLabel: 'Remark',
      detailDialogRemarkPlaceholder: 'Please enter remark',
      detailDialogCloseButtonText: 'Close',

      itemNeedDialogPlanTitlePrefix: 'Plan-',

      treeRootLabel: 'Top Production Line Station',

      exportFilename: 'ProductionPlan.xls'
    },

    FeedingRecord: {
      moduleName: 'Production Feeding',

      searchCodeLabel: 'Record No.',
      searchCodePlaceholder: 'Please enter record No.',
      searchPipelineLabel: 'Pulp Line',
      searchPipelinePlaceholder: 'Please select pulp line',
      searchFeedingTimeLabel: 'Feeding Time',
      searchFeedingTimeStartPlaceholder: 'Start Date',
      searchFeedingTimeEndPlaceholder: 'End Date',
      searchUserLabel: 'Recorder',
      searchUserPlaceholder: 'Please enter recorder',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',

      buttonSearchText: 'Search',
      buttonResetText: 'Reset',
      buttonCreateText: 'Add',
      buttonExportText: 'Export',

      tabAllLabel: 'All',
      tabOrgLabel: 'Material',
      tabDryLabel: 'Dry Scrap',
      tabWetLabel: 'Wet Scrap',

      detailTabFeedingDetailLabel: 'Feeding Detail',

      tableCodeColumn: 'Record No.',
      tablePipelineColumn: 'Pulp Line',
      tableFeedingTypeColumn: 'Feeding Type',
      tableWeightColumn: 'Quantity',
      tableUserColumn: 'Recorder',
      tableRemarkColumn: 'Remark',
      tableFeedingTimeColumn: 'Feeding Time',
      tableOperateColumn: 'Operate',

      actionDeleteLabel: 'Delete',
      actionFeedingLabel: 'Feed',

      updateStatusConfirmMessage: 'Confirm to submit feeding record?',
      updateStatusConfirmTitle: 'Once submitted, it cannot be undone!',
      updateStatusSuccessMessage: 'Submitted successfully!',

      dialogCodeLabel: 'Record No.',
      dialogCodeTooltip: 'Record No.',
      dialogCodePlaceholder: 'Code will be generated automatically after saving',
      dialogFeedingTypeLabel: 'Feeding Type',
      dialogFeedingTypeTooltip: 'Source: Data Dictionary - Production Feeding Type',
      dialogPlanLabel: 'Production Plan',
      dialogPlanPlaceholder: 'Please select production plan',
      dialogPipelineLabel: 'Pulp Line',
      dialogPipelinePlaceholder: 'Please select pulp line',
      dialogProductLabel: 'Product',
      dialogProductPlaceholder: 'Please select product',
      dialogWeightLabel: 'Weight(kg)',
      dialogWeightPlaceholder: 'Please enter weight',
      dialogFeedingTimeLabel: 'Feeding Time',
      dialogFeedingTimePlaceholder: 'Select feeding time',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',
      dialogSubmitButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      validatorFeedingTypeRequired: 'Feeding type cannot be empty',
      validatorPipelineRequired: 'Pulp line cannot be empty',
      validatorPlanRequired: 'Production plan cannot be empty',
      validatorDetailWeightRequired: 'Quantity cannot be empty',
      validatorDetailItemRequired: 'Material cannot be empty',
      validatorDetailUnitRequired: 'Unit cannot be empty',

      detailTableIndexColumn: 'No.',
      detailTableItemColumn: 'Material',
      detailTableUnitColumn: 'Unit',
      detailTableWeightColumn: 'Quantity',

      detailListItemColumn: 'Material',
      detailListWeightColumn: 'Quantity',
      detailListUnitColumn: 'Unit',
      detailListFeedingTimeColumn: 'Feeding Time',

      treeRootLabel: 'Top Production Line Station',

      exportFilename: 'FeedingRecord.xls'
    },

    FormingRecord: {
      moduleName: 'Forming Record',

      searchOrganizationLabel: 'Station',
      searchOrganizationPlaceholder: 'Please enter station',
      searchMachineLabel: 'Machine',
      searchMachinePlaceholder: 'Please enter machine',
      searchTeamLabel: 'Team',
      searchTeamPlaceholder: 'Please enter team',
      searchRemarkLabel: 'Remark',
      searchRemarkPlaceholder: 'Please enter remark',
      searchStartTimeLabel: 'Start Time',
      searchStartTimeStartPlaceholder: 'Start Date',
      searchStartTimeEndPlaceholder: 'End Date',
      searchEndTimeLabel: 'End Time',
      searchEndTimeStartPlaceholder: 'Start Date',
      searchEndTimeEndPlaceholder: 'End Date',

      buttonSearchText: 'Search',
      buttonResetText: 'Reset',
      buttonCreateText: 'Add',
      buttonExportText: 'Export',

      tableNameColumn: 'Name',
      tableOrganizationColumn: 'Station',
      tableMachineColumn: 'Machine',
      tableTeamColumn: 'Team',
      tableStartTimeColumn: 'Start Time',
      tableEndTimeColumn: 'End Time',
      tableStatusColumn: 'Status',
      tableProcessColumn: 'Process',
      tableRemarkColumn: 'Remark',
      tableCreateTimeColumn: 'Create Time',
      tableOperateColumn: 'Operate',

      tabFormingRecordLabel: 'Forming Record',

      dialogTeamLabel: 'Team',
      dialogTeamPlaceholder: 'Please enter team',
      dialogOrganizationLabel: 'Station',
      dialogOrganizationPlaceholder: 'Please enter station',
      dialogMachineLabel: 'Machine',
      dialogMachinePlaceholder: 'Please enter machine',
      dialogStartTimeLabel: 'Start Time',
      dialogStartTimePlaceholder: 'Select start time',
      dialogEndTimeLabel: 'End Time',
      dialogEndTimePlaceholder: 'Select end time',
      dialogStatusLabel: 'Status',
      dialogProcessLabel: 'Process',
      dialogProcessPlaceholder: 'Please select process',
      dialogRemarkLabel: 'Remark',
      dialogRemarkPlaceholder: 'Please enter remark',

      validatorOrganizationRequired: 'Station cannot be empty',
      validatorStartTimeRequired: 'Start time cannot be empty',
      validatorEndTimeRequired: 'End time cannot be empty',
      validatorProcessRequired: 'Process cannot be empty',

      detailListCreateTimeColumn: 'Create Time',
      detailListCreatorColumn: 'Creator',
      detailListXijiangColumn: 'Pulp Suction Time(S)',
      detailListTuoshuiColumn: 'Dehydration Time(S)',
      detailListXimuColumn: 'Mold Washing Time(S)',
      detailListProductColumn: 'Product',
      detailListAppearanceColumn: 'Product Appearance',
      detailListProductWeightColumn: 'Wet Weight(g)',
      detailListRemarkColumn: 'Remark',
      detailListStartTimeColumn: 'Start-up Time',
      detailListEndTimeColumn: 'Shutdown Time',
      detailListOperateColumn: 'Operate',

      detailDialogStartTimeLabel: 'Start-up Time',
      detailDialogStartTimePlaceholder: 'Select start-up time',
      detailDialogEndTimeLabel: 'Shutdown Time',
      detailDialogEndTimePlaceholder: 'Select shutdown time',
      detailDialogXijiangLabel: 'Pulp Suction Time(S)',
      detailDialogXijiangPlaceholder: 'Please enter pulp suction time(S)',
      detailDialogTuoshuiLabel: 'Dehydration Time(S)',
      detailDialogTuoshuiPlaceholder: 'Please enter dehydration time(S)',
      detailDialogXimuLabel: 'Mold Washing Time(S)',
      detailDialogXimuPlaceholder: 'Please enter mold washing time(S)',
      detailDialogProductLabel: 'Product',
      detailDialogProductPlaceholder: 'Please select product',
      detailDialogAppearanceLabel: 'Product Appearance',
      detailDialogAppearancePlaceholder: 'Please enter product appearance',
      detailDialogProductWeightLabel: 'Wet Weight(g)',
      detailDialogProductWeightPlaceholder: 'Please enter wet weight(g)',
      detailDialogRemarkLabel: 'Remark',
      detailDialogRemarkPlaceholder: 'Please enter remark',

      dialogSubmitButtonText: 'Confirm',
      dialogCancelButtonText: 'Cancel',

      detailValidatorRecordIdRequired: 'Record id cannot be empty',
      detailValidatorXijiangRequired: 'Pulp suction time(S) cannot be empty',
      detailValidatorTuoshuiRequired: 'Dehydration time(S) cannot be empty',
      detailValidatorXimuRequired: 'Mold washing time(S) cannot be empty',
      detailValidatorProductRequired: 'Product cannot be empty',
      detailValidatorAppearanceRequired: 'Product appearance cannot be empty',
      detailValidatorProductWeightRequired: 'Wet weight(g) cannot be empty',

      messageSelectRecordRequired: 'Please select a record table',

      actionEditLabel: 'Edit',
      actionDeleteLabel: 'Delete',

      exportFilename: 'FormingRecord.xls'
    }
  },
  DataCollection: {
    DeviceAttributeType: {
      moduleName: 'Acquisition Point Type',
      index: 'Index',
      code: 'Type Code',
      name: 'Type Name',
      sort: 'Display Order',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',

      search: 'Search',
      reset: 'Reset',
      create: 'Create',
      batchDelete: 'Batch Delete',
      export: 'Export',

      placeholderCode: 'Please enter type code',
      placeholderName: 'Please enter type name',
      placeholderSort: 'Please enter display order',
      placeholderRemark: 'Please enter remark',

      dialogOk: 'Confirm',
      dialogCancel: 'Cancel',

      validatorCodeRequired: 'Type code can not be empty',
      validatorNameRequired: 'Type name can not be empty',
      validatorSortRequired: 'Display order can not be empty',

      exportFilename: 'AcquisitionPointType.xls'
    },
    DeviceModel: {
      moduleName: 'Acquisition Device Model',
      index: 'Index',
      code: 'Model Code',
      name: 'Model Name',
      protocol: 'Protocol',
      remark: 'Remark',
      createTime: 'Create Time',
      operate: 'Operate',

      search: 'Search',
      reset: 'Reset',
      create: 'Create',
      batchDelete: 'Batch Delete',
      export: 'Export',

      placeholderCode: 'Please enter model code',
      placeholderName: 'Please enter model name',
      placeholderProtocol: 'Please select protocol',
      placeholderRemark: 'Please enter remark',

      dialogOk: 'Confirm',
      dialogCancel: 'Cancel',

      validatorCodeRequired: 'Model code can not be empty',
      validatorNameRequired: 'Model name can not be empty',
      validatorProtocolRequired: 'Protocol can not be empty',
      validatorDataTypeRequired: 'Data type can not be empty',

      exportFilename: 'AcquisitionDeviceModel.xls',

      attributeModuleName: 'Point Management',
      attributeCode: 'Point Code',
      attributeName: 'Point Name',
      attributeType: 'Point Type',
      dataType: 'Data Type',
      address: 'Register Address',
      dataUnit: 'Unit',
      ratio: 'Ratio',

      placeholderAttributeCode: 'Please enter point code',
      placeholderAttributeName: 'Please enter point name',
      placeholderAttributeType: 'Please select point type',
      placeholderDataType: 'Please select data type',
      placeholderAddress: 'Please enter register address',
      placeholderDataUnit: 'Please select unit',
      placeholderRatio: 'Please enter ratio',
      placeholderAttributeRemark: 'Please enter remark',

      validatorAttributeCodeRequired: 'Point code can not be empty',
      validatorAttributeNameRequired: 'Point name can not be empty',

      attributeExportFilename: 'AcquisitionDeviceModelPoint.xls',

      ruleTabLabel: 'Point Rule',
      ruleIdentifier: 'Identifier',
      ruleFieldName: 'Name',
      ruleFieldRule: 'Rule',
      ruleDefaultValue: 'Default Value',
      ruleCreateTime: 'Create Time',
      ruleOperate: 'Operate',

      ruleSearchIdentifierPlaceholder: 'Please enter identifier',
      ruleSearchFieldNamePlaceholder: 'Please enter name',
      ruleSearchDefaultValuePlaceholder: 'Please enter default value',

      ruleSearch: 'Search',
      ruleReset: 'Reset',

      ruleCreateButton: 'Add Alarm Rule',
      ruleEditRuleButton: 'Edit',
      ruleDeleteRuleButton: 'Delete',

      ruleDialogTitle: 'Edit Point Rule',
      ruleDialogIdentifier: 'Identifier',
      ruleDialogFieldName: 'Name',
      ruleDialogDefaultValue: 'Default Value',
      ruleDialogAlarmLevel: 'Alarm Level',
      ruleDialogFieldRule: 'Point Rule',
      ruleDialogRule: 'Rule',
      ruleDialogRuleAttribute: 'Point',
      ruleDialogRuleOperator: 'Condition',
      ruleDialogRuleValue: 'Value',

      ruleDialogAlarmLevelPlaceholder: 'Please select alarm level',
      ruleDialogFieldRulePlaceholder: 'Please select point rule',
      ruleDialogRuleAttributePlaceholder: 'Please select point',
      ruleDialogRuleOperatorPlaceholder: 'Please select condition',
      ruleDialogRuleValuePlaceholder: 'Please enter value'
    },
    Device: {
      moduleName: 'Acquisition Device',
      index: 'Index',

      deviceCode: 'Device Code',
      deviceName: 'Device Name',
      operatingStatus: 'Operating Status',
      protocol: 'Protocol',
      status: 'Connection Status',
      sampleCycle: 'Sample Cycle(s)',
      isEnable: 'Enabled',
      collectionTime: 'Collection Time',
      operate: 'Operation',

      search: 'Search',
      reset: 'Reset',
      create: 'Create',
      batchDelete: 'Batch Delete',
      export: 'Export',

      placeholderDeviceCode: 'Please enter device code',
      placeholderDeviceName: 'Please enter device name',
      placeholderModel: 'Please select device model',
      placeholderSampleCycle: 'Please enter sample cycle',
      placeholderUrl: 'Please enter endpoint URL',
      placeholderUsername: 'Please enter username',
      placeholderPassword: 'Please enter password',
      placeholderTopic: 'Please enter subscription topic',

      model: 'Device Model',
      url: 'Endpoint URL',
      username: 'Username',
      password: 'Password',
      topic: 'Subscription Topic',

      settingDialogTitle: 'Device Settings',

      connect: 'Connect',
      disconnect: 'Disconnect',

      attributeModuleName: 'Point',
      attributeCode: 'Point Code',
      attributeName: 'Point Name',
      attributeType: 'Point Type',
      dataType: 'Data Type',
      address: 'Register Address',
      dataUnit: 'Unit',
      ratio: 'Ratio',
      remark: 'Remark',
      deviceAttributeTabLabel: 'Device Attributes',
      deviceRuleTabLabel: 'Point Rules',

      currentDeviceLabel: 'Current Device: ',

      alarmHistoryTitle: 'Device Alarm History Data',
      alarmRuleName: 'Rule Name',
      alarmPointName: 'Point Name',
      alarmPointValue: 'Point Value',
      alarmLevel: 'Alarm Level',
      alarmTime: 'Alarm Time',

      emptyDescription: 'Click "Point" in the device list to view points and rules',

      exportFilename: 'IoTDevice.xls',
      attributeExportFilename: 'AcquisitionDevice-Point.xls',

      attributeLatestValue: 'Latest Value',
      attributeLatestCollectionTime: 'Latest Collection Time',
      attributeSort: 'Order',
      attributePlaceholderSort: 'Please enter order',

      placeholderAttributeCode: 'Please enter point code',
      placeholderAttributeName: 'Please enter point name',
      placeholderAttributeType: 'Please select point type',
      placeholderDataType: 'Please select data type',
      placeholderAddress: 'Please enter register address',
      placeholderDataUnit: 'Please enter unit',
      placeholderRatio: 'Please enter ratio',
      placeholderRemark: 'Please enter remark',

      validatorDeviceCodeRequired: 'Device code can not be empty',
      validatorDeviceNameRequired: 'Device name can not be empty',
      validatorSampleCycleRequired: 'Sample cycle can not be empty',
      validatorIsEnableRequired: 'Enable status can not be empty',
      validatorUrlRequired: 'Endpoint URL can not be empty',

      attributeValidatorCodeRequired: 'Point code can not be empty',
      attributeValidatorNameRequired: 'Point name can not be empty',
      attributeValidatorCodeNoChinese: 'Point code can not contain Chinese characters',
      attributeValidatorSortNumber: 'Order must contain only numbers',
      attributeValidatorRemarkTooLong: 'Remark can not exceed 100 characters',

      messageSelectDeviceRequired: 'Please select a device',
      messageDeviceInfoMissingForRules: 'Device information is missing, unable to load point rules'
    },
    RunReport: {
      moduleName: 'Device Operation Report',

      searchDeviceCodeLabel: 'Device Code',
      searchDeviceCodePlaceholder: 'Please enter device code',
      searchDeviceNameLabel: 'Device Name',
      searchDeviceNamePlaceholder: 'Please enter device name',
      searchTimeRangeLabel: 'Device Running Time',
      searchTimeRangeStartPlaceholder: 'Start Time',
      searchTimeRangeEndPlaceholder: 'End Time',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      exportButtonText: 'Export',

      tableDeviceCodeColumn: 'Device Code',
      tableDeviceNameColumn: 'Device Name',
      tableRunningTimeColumn: 'Running Time (Hours)',
      tableStandbyTimeColumn: 'Standby Time (Hours)',
      tableFaultTimeColumn: 'Fault Time (Hours)',
      tableWarningTimeColumn: 'Warning Time (Hours)',
      tableUtilizationRateColumn: 'Utilization Rate',
      tableStartTimeColumn: 'Device Run Start Time',
      tableEndTimeColumn: 'Device Run End Time',

      exportFilename: 'DeviceOperationReport.xls'
    },
    RealTimeMonitoring: {
      moduleName: 'Real-time Data Monitoring',

      searchLineCodeLabel: 'Line Code',
      searchLineCodePlaceholder: 'Please enter line code',
      searchLineNameLabel: 'Line Name',
      searchLineNamePlaceholder: 'Please enter line name',
      searchDeviceCodeLabel: 'Device Code',
      searchDeviceCodePlaceholder: 'Please enter device code',
      searchDeviceNameLabel: 'Device Name',
      searchDeviceNamePlaceholder: 'Please enter device name',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      exportButtonText: 'Export',

      tableLineCodeColumn: 'Line Code',
      tableLineNameColumn: 'Line Name',
      tableDeviceCodeColumn: 'Device Code',
      tableDeviceNameColumn: 'Device Name',
      tableStatusColumn: 'Connection Status',
      tableCollectionTimeColumn: 'Latest Collection Time',
      tableOperateColumn: 'Operation',
      tableActionSingleMonitorLabel: 'Single Device Monitoring',

      dialogTitle: 'Single Device Monitoring',
      dialogDeviceNameLabel: 'Device Name: ',
      dialogCollectionTimeLabel: 'Collection Time: ',

      emptyDescription: 'No data',
      defaultGroupName: 'Default',
      defaultFieldLabelPrefix: 'Field ',

      messageDeviceInfoIncomplete: 'Device information is incomplete',

      exportFilename: 'RealTimeMonitoringDevice.xls'
    },
    HistoryData: {
      moduleName: 'History Record Query',

      searchLineCodeLabel: 'Line Code',
      searchLineCodePlaceholder: 'Please enter line code',
      searchLineNameLabel: 'Line Name',
      searchLineNamePlaceholder: 'Please enter line name',
      searchDeviceCodeLabel: 'Device Code',
      searchDeviceCodePlaceholder: 'Please enter device code',
      searchDeviceNameLabel: 'Device Name',
      searchDeviceNamePlaceholder: 'Please enter device name',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',
      exportButtonText: 'Export',

      tableLineCodeColumn: 'Line Code',
      tableLineNameColumn: 'Line Name',
      tableDeviceCodeColumn: 'Device Code',
      tableDeviceNameColumn: 'Device Name',
      tableCollectionTimeColumn: 'Collection Time',
      tableOperateColumn: 'Operation',
      tableActionHistoryLabel: 'History',

      dialogTitlePrefix: 'History: ',
      dialogCollectionTimeLabel: 'Collection Time',
      dialogCollectionTimeStartPlaceholder: 'Start Time',
      dialogCollectionTimeEndPlaceholder: 'End Time',
      dialogSearchButtonText: 'Search',
      dialogResetButtonText: 'Reset',
      dialogRecordCollectionTimePrefix: 'Collection Time: ',

      emptyDescription: 'No data',
      defaultFieldLabelPrefix: 'Field ',

      exportFilename: 'HistoryDataDevice.xls'
    },
    DeviceParamAnalysis: {
      moduleName: 'Device Operation Parameter Analysis',

      treeSearchPlaceholder: 'Search device or parameter',

      formTimeLabel: 'Time',
      formTimeStartPlaceholder: 'Start Date',
      formTimeEndPlaceholder: 'End Date',

      shortcutLast7Days: 'Last 7 Days',
      shortcutLastWeek: 'Last Week',
      shortcutLastMonth: 'Last Month',
      shortcutLast3Months: 'Last 3 Months',

      searchButtonText: 'Search',
      resetButtonText: 'Reset',

      emptyDescription: 'No data',
      emptySelectNodeDescription: 'Please select a node on the left',

      selectedParamTitle: 'Node: {label}{unit}',
      defaultSeriesName: 'Parameter',

      messageLoadTreeFailed: 'Failed to load tree data',
      messageNodeNoParams: 'No parameters under this node',
      messageDeviceNoParams: 'No parameters under this device',
      messageFetchChartFailed: 'Failed to load chart data'
    }
  }
}
