languageName: "English"
languageContribute: "Help Translate Rancher"

##############################
# Really generic things used in multiple places (use sparingly)
##############################
generic:
  actions: Actions
  active: Active
  activate: Activate
  add: Add
  advanced: Advanced
  all: All
  any: Any
  application: application
  as: as
  back: Back
  cancel: Cancel
  closeModal: Close
  cluster: Cluster
  collapse: Collapse
  collapseAll: Collapse All
  comingSoon: Coming Soon
  command: Command
  confirm: Confirm
  containers: Containers
  created: Created
  createdDate: "Created {date}"
  custom: Custom
  customize: Customize
  default: Default
  description: Description
  details: Details
  disable: Disable
  disabled: Disabled
  displayName: Display Name
  dockerId: Docker ID
  domainName: Domain Name
  done: Done
  download: Download
  edit: Edit
  emptyString: ""
  enable: Enable
  enabled: Enabled
  entrypoint: Entrypoint
  environment: Environment
  expand: Expand
  expandAll: Expand All
  experimental: "(experimental)"
  from: from
  false: 'False'
  generic: 'Generic'
  gigabyte: 'GB'
  hardware: Hardware
  healthy: Healthy
  help: Help
  hostname: Hostname
  hours: hours
  hpa: HPA
  id: ID
  image: Image
  import: Import
  internal: Internal
  ipAddress: IP Address
  istioRule: Traffic Rule
  key: Key
  limit: Limit
  limits: Limits
  loading: "Loading..."
  loggingOut: "Logging out..."
  member: Member
  mbps: Mbps
  mibibyte: 'MiB'
  minutes: minutes
  milliseconds: 'Milliseconds'
  missing: "*%MISSING%*"
  moreActions: More Actions
  na: 'n/a'
  name: Name
  namespace: Namespace
  namespaces: Namespaces
  never: Never
  no: "No"
  noRating: No Rating
  node: Node
  none: None
  owner: Owner
  paste: Paste
  pod: pod
  podRestarts: Pod Restarts
  port: Port
  ports: Ports
  prefix: prefix
  project: Project
  persistentVolumeClaim: persistent volume claim
  persistentVolume: persistent volume
  random: Random
  remove: Remove
  restarts: Restarts
  role: Role
  save: Save
  saved: Saved
  saving: Saving
  scope: Scope
  search: Search
  searchOrCustomInput: Search or input your custom value.
  searching: 'Searching...'
  seconds: seconds
  select: Select
  service: Service
  services: Services
  size: Size
  state: State
  tags: Tags
  test: Test
  testing: Testing
  to: To
  total: Total
  true: 'True'
  type: Type
  unknown: Unknown
  unknownUser: Unable to fetch user info
  upload: Upload
  url: URL
  user: User
  uuid: UUID
  value: Value
  version: Version
  yes: "Yes"
  isRequired: is required
  readOnly: Read Only
  readWrite: Read Write
  writeOnly: Write Only
  full: Full
realmNames:
  all: All
  usWest: US West
  usEast: US East
  asia: Asia
  euWest: EU West
  euEast: EU East

##############################
# Routes
##############################
accountsPage:
  detail:
    header: User Details
    table:
      headers:
        permission: Permission
        role: Role
        clusterName: Cluster
        projectName: Project
        active: Active
        created: Granted
      global:
        title: Global Permissions
        description: Access to manage things that affect the entire installation
        admin: This user is an administrator and has all permissions.
        noRoles: This user has no global roles
      cluster:
        title: Cluster Roles
        description: Roles granted to this user for individual clusters
        noRoles: This user has no cluster roles
      project:
        title: Project Roles
        description: Roles granted to this user for individual project
        noRoles: This user has no project roles
      roles:
        title: Roles
  index:
    header: Users
    localLink: Add User
    table:
      id: ID
      kind: Kind
      username: Local Username
      identity: Identity
      noData: There are no users yet
      noMatch: No users match the current search
      noName: None
  new:
    header: Add User
    errors:
      usernameReq: Username is required.
      usernameInExists: Username is already in use. Please choose a new username.
      pwReq: Password is required.
      role: New users are required to have a role. Select a role from the list.
    form:
      username:
        labelText: Username
        placeholder: "e.g. jsmith"
      password:
        labelText: Password
      name:
        labelText: Display Name
        placeholder: "e.g. John Smith"
      type:
        labelText: Account Type
      description:
        labelText: Description
        placeholder: "e.g. This account is for John Smith"
  modal:
    password: Change Password

appDetailPage:
  header: "App: {appName}"
  endpoints:
    title: Endpoints
    detail: 'Public Endpoints of this application'
    endpoint: Endpoint
    protocol: Protocol
    noData: No public endpoints were created for this application.
    noMatch: No public endpoints match the current search.
  answers:
    title: Answers
    detail: Customized answers of this application
    variable: Variable
  notes:
    title: Notes
    detail: 'Instructions on how to use this application'
  workloads:
    title: Workloads
    detail: Workloads created for this application.
    nodata: No workloads were created for this application.
  ingress:
    title: Ingress Rules
    detail: Ingress rules created for this application.
    nodata: No ingress rules were created for this application.
  services:
    title: Services
    detail: Services created with this application
    nodata: No services were created for this application.
  volumes:
    title: Volumes
    detail: Persistent Volume claims created with this application
    nodata: No volume claims were made for this application.
  configMaps:
    title: Config Maps
    detail: Config Maps associated with this application
    nodata: This application has no config maps
  secrets:
    title: Secrets
    detail: Secrets associated with this application
    nodata: This application has no secrets

podSecurityPoliciesPage:
  index:
    header: Pod Security Policies
    description: Apply Policies to Pods created by a user with this Role
    table:
      name: Name
      created: Created Time
      noData: There are no pod security policies defined
      noMatch: No pod security policies match the current search
  addPodSecurityPolicy: Add Policy
  editPodSecurityPolicy: Edit Policy
  detail:
    header: Policy
  saveEdit: Edit
  saveNew: Create
  new:
    errors:
      nameReq: Name is required.
      nameInExists: Name is already exists. Please use a new pod security policy name.
    form:
      name:
        labelText: Name
        placeholder: "e.g. policy"

rolesPage:
  title: Role
  headers:
    global: Global
    cluster: Clusters
    project: Projects
  index:
    localLink: Add Role
    table:
      builtin: Built-In
      created: Created Time
      enabled: Enabled
      name: Name
      noData: There are no roles yet
      noMatch: No roles match the current search
      subjectKind: Kind
      template: Template
      global: New User Default
      cluster: Cluster Creator Default
      project: Project Creator Default
      showDefaults: Show Only Defaults
    errors:
      inherited: "Role {displayName} is inherited by: {roleNames}"
  resources:
    title: Grant Resources
    detail: Grant access to specific operations on Kubernetes resources
  inherit:
    title: Inherit from a Role
    detail: Include all the permissions of another role
  addRole: "Add {context} Role"
  editRole: Edit Role
  saveEdit: Edit
  saveNew: Create
  new:
    errors:
      nameReq: Name is required.
      memberReq: Member is required.
      nameInExists: Name is already exists. Please use a new role name.
      ruleResourceReq: Resource is required for a rule.
      roleTemplate: Role Template is required.
      noSelectedRoles: Please select at least one role for this user.
      roleAlreadyExists: The user already has the "{key}" role.
    form:
      name:
        labelText: Name
        placeholder: "e.g. Developers"
      context:
        labelText: Context
        detail: What scopes this role is appropriate to be shown in.
      locked:
        labelText: Locked
        detail: This does not affect any bindings to the role that already exist.
        enabled: "Yes: New bindings are not allowed to use this role"
        disabled: "No"
      allow:
        create: Create
        delete: Delete
        deletecollection: 'Delete Collection'
        get: Get
        list: List
        patch: Patch
        update: Update
        watch: Watch
        labelText: Allow
        resource: Resource
        addAction: Add Resource
        apiGroups: API Groups
      otherRole:
        labelText: Include other roles
        role: Role
        addAction: Add Role
      policy:
        policy: Policy
        addAction: Add Policy
      default:
        global: New User Default
        cluster: Cluster Creator Default
        project: Project Creator Default
        enabled:
          global: "Yes: Default role for new users"
          cluster: "Yes: Default role for new cluster creation"
          project: "Yes: Default role for new project creation"
        disabled: "No"

apiPage:
  header: API & Keys
  actionButton: Add Key
  currentEndpoint: 'Endpoint:'
  detail: API Keys are tied to your specific user ({name}) and can create, delete, and manipulate all Clusters and Projects which you have access to.
  table:
    state: State
    name: Access Key
    description: Description
    scope: Scope
    created: Created
    expires:
      label: Expires
      never: Never
    noData: There are no API keys defined

authPage:
  saml:
    accessEnabled:
      header: Authentication
      disable: Disable access control
    header:
      disabled:
        label: "{providerName} is not configured"
    enabled:
      authenticated:
        header:
          text: Authentication
      groupsField: 'Groups:'
      displayName: 'Display Name:'
      userName: 'Username:'
      userId: 'User ID:'
    disabled:
      header: '1. Configure {providerName} Account'
      headerDetail: 'Enter your {providerName} account details'
      label: "{providerName} is not configured"
      name:
        labelText: Display Name Field
        display: "Display Name Field:"
      username:
        labelText: User Name Field
        display: "User Name Field:"
      uid:
        labelText: UID Field
        display: "UID Field:"
      rancherApiHost:
        labelText: "{appName} API Host"
        display: "{appName} API Host:"
      groups:
        labelText: Groups Field
        display: "Groups Field:"
      testAuth:
        header: '2. Test and enable authentication'
        subtext: 'Check that your application is configured correctly by testing authentication with it:'
    providerName:
      ping: Ping
      adfs: AD FS
      keycloak: Keycloak
      okta: Okta
    authError: 'Access was not authorized'
    popupError: 'Please disable your pop-up blocker and click "Authenticate" again.'
  ping:
    buttonText:
      pre: 'Authenticate with Ping'
      post: Waiting to hear back from IDP
  keycloak:
    buttonText:
      pre: 'Authenticate with Keycloak'
      post: Waiting to hear back from IDP
  adfs:
    buttonText:
      pre: 'Authenticate with AD FS'
      post: Waiting to hear back from IDP
  okta:
    buttonText:
      pre: 'Authenticate with Okta'
      post: Waiting to hear back from IDP


  shibboleth:
    enabled:
      authenticated:
        header:
          text: Authentication
      disableAccess:
        header: "Danger Zone&trade;"
        warning: '<b class="text-danger">Caution:</b> Disabling access control will give complete control over {appName} to anyone that can reach this page or the API.'
        confirmDisable: "Are you sure?  Click again to disable access control"
        disable: Disable access control
      groupsField: 'Groups:'
      displayName: 'Display Name:'
      userName: 'Username:'
      userId: 'User ID:'
    disabled:
      header: '1. Configure Shibboleth Account'
      label: "{providerName} is not configured"
      name:
        labelText: Display Name Field
      username:
        labelText: User Name Field
      uid:
        labelText: UID Field
      groups:
        labelText: Groups Field
      testAuth:
        header: '2. Test and enable authentication'
        subtext: 'Check that your application is configured correctly by testing authentication with it:'
        buttonText:
          pre: Authenticate with IDP
          post: Waiting to hear back from IDP
    providerName:
      shibboleth: Shibboleth
  root:
    header: Access Control
  github:
    standard: GitHub
    enterprise: GitHub Enterprise
    header:
      disabled:
        label: GitHub is not configured
    authenticated:
      header:
        text: Authentication
        enterpriseHostName: "Enterprise Host:"
        clientId:
          text: "Client ID:"
          helpText: "To change the configured GitHub application, disable access control below and then set it up again."
      disableAccess:
        header: "Danger Zone&trade;"
        warning: '<b class="text-danger">Caution:</b> Disabling access control will give complete control over {appName} to anyone that can reach this page or the API.'
        confirmDisable: "Are you sure?  Click again to disable access control"
        disable: Disable Github access
    notAuthenticated:
      header: "1. Setup a GitHub Application"
      ul:
        li1:
          text: 'For standard GitHub, <a href="https://github.com/settings/developers" target="_blank">click here</a> to go applications settings in a new window.'
          ul:
            li1: "For Github Enterprise, login to your account.  Click on Settings, then Developer settings."
        li2:
          text: 'Click "Register a new application" and fill out the form:'
          ul:
            li1: '<b>Application name:</b> <span class="text-muted">Anything you like, e.g. My {appName}</span>'
            li2: 'Homepage URL:'
            li3: '<b>Application description:</b> <span class="text-muted">Anything you like, optional</span>'
            li4: 'Authorization callback URL:'
        li3:
          text: 'Click "Register application"'
      form:
        header: '2. Configure {appName} to use your application for authentication'
        subtext: 'Copy and paste the Client ID and Client Secret of your newly created application.'
        clientId:
          labelText: Client ID
        clientSecret:
          labelText: Client Secret
        ghEnterprise:
          labelText: Use a private GitHub Enterprise installation
        isGHEnterprise:
          labelText: Use a secure connection
        enterpriseHost:
          labelText: Enterprise Host
          placeholder: 'e.g. github.example.com'
    testAuth:
      header: '3. Test and enable authentication'
      subtext: 'Check that your application is configured correctly by testing authentication with it:'
      buttonText:
        pre: Authenticate with GitHub
        post: Waiting to hear back from GitHub
      authError: 'Github access was not authorized'
      popupError: 'Please disable your pop-up blocker and click "Authenticate" again.'
  googleoauth:
    header:
      disabled:
        label: 'Google is not configured'
    authenticated:
      header:
        text: Authentication
        adminEmail:
          text: "Admin Email: "
      disableAccess:
        header: "Danger Zone&trade;"
        warning: '<b class="text-danger">Caution:</b> Disabling access control will give complete control over {appName} to anyone that can reach this page or the API.'
        confirmDisable: "Are you sure?  Click again to disable access control"
        disable: Disable Google access
    notAuthenticated:
      header: "1. Configure your Google Application settings"
      ul:
        li1:
          text: 'For standard Google, <a href="https://console.developers.google.com/apis/credentials" target="_blank">click here</a> to go to your Google developer console.'
          helpertext: 'Note: The Rancher URL must be proper FQDN.'
          ul:
            li1: 'Login to your account. Navigate to "APIs & Services" and then select "Credentials".'
        li2:
          text: 'Navigate to the "OAuth consent screen" tab and fill in the form:'
          helperText: 'Note: This must be a fully qualified domain name; IP addresses are not valid.'
          ul:
            li1: '<b>Authorized domains:</b> '
            li2: '<b>Application homepage link:</b> '
            li3: 'Under Scopes for Google APIs, enable "email", "profile", and "openid".'
            li4: 'Authorization callback URL:'
        li3:
          text: 'Navigate to the "Credentials" tab to create your OAuth client ID:'
          ul:
            li1: 'Select the "Create Credentials" dropdown, and select OAuth clientID, then select Web application.'
            li2: '<b>Authorized Javascript origins:</b> '
            li3: '<b>Authorized redirect URIs:</b> '
            li4: 'Click "Create", and then click on the Download JSON button.'
        li4:
          text: 'Navigate to the "Credentials" tab again to create your Service account key:'
          ul:
            li1: '<a href="https://cloud.google.com/iam/docs/service-accounts">Click here</a>, for information on creating and managing your service account.'
            li2: 'Select your service account.'
            li3: 'Select JSON for your Key type and then click "Create".'
            li4: 'A JSON file will be automatically saved locally.'
      form:
        header: '2. Configure {appName} to use your application for authentication'
        oauthCredential:
          labelText: OAuth Credentials
          helperText: Copy and paste in the OAuth Credentials JSON which can be found in your Google API developers console (Step 3 above).
        serviceAccountCredential:
          labelText: Service Account Credentials
          helperText: Copy and paste in the Service Account Credentials JSON which can be found in the service accounts section of the Google API developers console (Step 4 above).
        adminEmail:
          labelText: Admin Email
          helperText: Enter the Admin Email associated with your account.
        hostname:
          labelText: Domain
          helperText: Enter the domain of your account.
    testAuth:
      buttonText:
        pre: Authenticate with Google
        post: Waiting to hear back from Google
      authError: 'Google access was not authorized'
      popupError: 'Please disable your pop-up blocker and click "Authenticate" again.'

  azuread:
    header:
      disabled:
        label: "Azure AD is not configured"
    enabled:
      header: 'Danger Zone&trade;'
      reallyDisable: 'Are you sure?  Click again to disable access control'
      promptDisable: Disable Azure AD
      general:
        header: General
    configure:
      header: 'Configure Azure AD Account'
      replyUrl: "Azure AD requires a whitelisted URL for your {appName} server before beginning this setup. Please ensure that the following URL is set in the Reply URL section of your Azure Portal. Please note that is may take up to 5 minutes for the whitelisted URL to propagate."
      help: Enter the Tenant ID, Client ID, and Admin user details to connect to your Azure AD auth account.
      applicationId:
        label: Application ID
        placeholder: A long UUID string
      applicationSecret:
        label: Application Secret
      serverURL:
        label: Rancher Server Url
      azureADEndpoint:
        label: Endpoint
      azureADGraphEndpoint:
        label: Graph Endpoint
      azureADTokenEndpoint:
        label: Token Endpoint
      azureADAuthEndpoint:
        label: Auth Endpoint
      endpoints:
        label: Endpoints
      regions:
        standard: Standard
        china: China
        custom: Custom
      tenantId:
        label: Tenant ID
        placeholder: A long UUID string
        help: From the Azure AD portal
    test:
      header: 'Test and enable authentication'
      help: 'Check that everything is configured correctly by testing authentication with your account:'
      username:
        label: Login Username
        placeholder: 'e.g. jsmith'
      password:
        label: Login Password
      pre: Authenticate with Azure
      post: Waiting to hear back from Azure
      authError: 'Azure access was not authorized'
      popupError: 'Please disable your pop-up blocker and click "Authenticate" again.'
  localAuth:
    header:
      enabled: 'Local Authentication is enabled'
      disabled: 'Local Authentication is not configured'
    subtext:
      enabled:
        text: '{appName} is configured to allow access to accounts in its local database.'
        alwaysOn: 'Local Authentication will always be enabled but you may select another authentication scheme to use in addition to local.'
        linkText: Manage Accounts
      disabled: '{appName} can be configured to restrict access to a set of accounts defined in the {appName} database.  This is not currently set up, so anybody that reach this page (or the API) has full control over the system.'
    accessEnabled:
      header: 'Danger Zone&trade;'
      warning: '<b class="text-danger">Caution:</b> Disabling access control will give complete control over {appName} to anyone that can reach this page or the API.'
      buttonText:
        disable: 'Are you sure?  Click again to disable access control'
        prompt: Disable access control
    accessDisabled:
      header: '1. Setup an Admin user'
      helpText: 'This user will become the admin that has full control over {appName}.'
      form:
        login:
          labelText: Login Username
          placeholder: 'e.g. jsmith'
        name:
          labelText: Full Name
          placeholder: 'e.g. John Smith'
        password:
          labelText: Password
        confirmPassword:
          labelText: Confirm Password
    accessControl:
      header: '2. Enable Access Control'
      helpText: 'Click to enable access control and log in.'
      buttonText:
        pre: Enable Local Auth
        post: 'Enabling...'

backupsPage:
  header: etcd Snapshots
  detail: etcd snapshots, if enabled, are cluster snapshots periodicaly taken at predefined intervals that can be used to restore clusters from a previous version.
  table:
    state: State
    target:
      label: Target
      s3: S3
      local: Local
    name: Name
    created: Created
    noData: There are no etcd snapshots

balancerPage:
  noMatch: No balancers match the current search
  noData: There are no balancers to show.
  table:
    target: Target

catalogPage:
  istio:
    header: Traffic Rules Catalog
  index:
    header: Catalog
    refreshBtn: Refresh
    allCatalogs: All Catalogs
    allCategories: All Categories
    windowsWarning: Most of the applications should be running in Linux clusters. So it might not work if you deploy them in the current cluster.
    manage: Manage
    search:
      label: Search
    filters:
      label: Catalog Filter
    certified:
      rancher:
        rancher: Rancher Labs
        partner: Partner
      pl:
        rancher: Core
        partner: Partner
    noData:
      singular: There are no compatible templates.
      plural: There are no compatible templates in this catalog.
    action:
      launch: View Details
      notCompatible: Not Compatible
      alreadyDeployed: Already Deployed

cloudCredentialsPage:
  header: Cloud Credentials
  rightButtons:
    addKey: Add Cloud Credential
    nodeTemplates: Manage Node Templates
  index:
    table:
      noData: There are no cloud credentials yet
      noMatch: No cloud credentials match the current search

clusterCatalogPage:
  header: Catalogs

certificatesPage:
  cn: Domain Name
  expiresDate: Expires
  fingerprint: Fingerprint
  valid: Valid Beginning
  expires: Expires
  algorithm: Algorithm
  issuer: Issuer
  serialNumber: Serial Number
  domainNames:
    labelText: Domain Names
    single: '<a href="https://{cn}" target="_blank" rel="nofollow noreferrer noopener">{cn} <i class="icon icon-sm icon-external-link"/></a>'
    withSan: |
      <a href="https://{cn}" target="_blank" rel="nofollow nefererrer noopener">{cn} <i class="icon icon-sm icon-external-link"></i></a> +
      {sans, plural,
      =1 {1 other}
      other {# others}
      }
    wildcardSingle: '{cn}'
    wildcardWithSan: |
      {cn} +
      {sans, plural,
      =1 {1 other}
      other {# others}
      }
  detail:
    header: 'Certificate: {name}'
  index:
    header: Certificates
    linkTo: Add Certificate
    noData: There are no certificates defined
  new:
    header: Add Certificate
    form:
      name:
        placeholder: e.g. mydomain.com
      description:
        placeholder: e.g. EV cert for mydomain.com

membersPage:
  title: Members
  add:
    title: 'Add {type} Member'
    form:
      member: Member
      role: Role
      kind: Kind
  index:
    localLink: 'Add Member'
    table:
      name: Name
      created: Created Time
      noData: There are no members yet
      noMatch: No members match the current search
      userId: User
      subjectKind: Kind
      template: Role

namespacesPage:
  header: Namespaces
  addNamespace: Add Namespace
  noMatch: No namespaces match the current search.
  noData: This cluster doesn't have any namespaces defined
  table:
    name:
      label: Namespace
    description:
      label: Description
    project:
      label: Project
    pods:
      label: Pods
    workloads:
      label: Workloads
    created:
      label: Created

clusterPage:
  edit: Edit Cluster
  removeMemberNote: 'Note: Removing User will not remove their project permissions'
  internal: '<b>Caution:</b> This is the cluster that {appName} is using as a data store.  Only administrators should be given write access to this cluster.<br>Users with write access to this cluster can use it to grant themselves access to any other cluster managed by this installation.'

projectsListNamespacePage:
  header: Namespaces
  notIn: Not in a project
  current: In this project

projectsPage:
  header: Projects/Namespaces
  headerNS: Namespaces
  addProject: Add Project
  editProject: Edit Project
  noMatch: No projects match the current search.
  noData: This cluster doesn't have any projects defined
  groups:
    none: List Namespaces
    namespaces: Grouped Projects/Namespaces
  quota:
    label: Resource Quota
  ns:
    label: Namespace Name
    placeholder: e.g. lab
  name:
    label: Project Name
    placeholder: e.g. lab
  created:
    label: Created
  psp:
    label: Pod Security Policy
  resourceQuota:
    title: Resource Quotas
    detail: Configure how much of the resources the project can consume
  containerDefaultLimit:
    title: Container Default Resource Limit
    detail: Configure how much of the resources the container can consume by default
  members:
    title: Members
    detail: Configure who has access to the resources in this project and what permissions they have
    user: User
    group: Group
    serviceaccount: Service Account
    labelText: Members
    addMember: Add Member
    addUser: Add User
    noAddUser: You are the only active registered user.
    addGroup: Add Group
    addServiceAccount: Add Service Account
    multipleRoles: Multiple Roles
    customRoles: Custom Roles
    kind:
      label: Kind
    name:
      label: Name
    role:
      label: Role
    errors:
      nameReq: Name is required.
      nameInExists: Name is already exists. Please use a new project name.
      memberNameReq: Name is required for a member
      memberRoleReq: Role is required for a member

clustersPage:
  header: Clusters
  newCluster: Add Cluster
  newTemplate: "New Template"
  newClusterName: "Add Cluster: {name}"
  editClusterName: "Edit Cluster: {name}"
  clusterLaunchDisabled: "You have not been granted access to any cluster templates."
  launch:
    new: Add Cluster
  cluster:
    label: Cluster Name
  provider:
    label: Provider
  version:
    label: Version
  nodes:
    label: Nodes
  cpu:
    label: CPU
  memory:
    label: RAM
  pod:
    label: Pods
  storage:
    label: Disk
  select:
    provider:
      label: "Add Cluster - Select Cluster Type"
    template:
      label: "Add Cluster - Select Cluster Template"

clusterRibbonNav:
  title: Recent Clusters

clusterTemplatesPage:
  index:
    header: Cluster Templates
    newTemplate: Add Template
  new:
    header: Add Cluster Template
  headers:
    defaultRevisionId: Default Revision
    revisionsCount: Revisions
    created: Created
  newRevision:
    header: New Cluster Template Revision
  select:
    label: Clone from Cluster Template Revision
  table:
    name: Revision Name

ingressPage:
  header: 'Ingress: {name}'
  gkeIngressWarning: 'It may take a few minutes for Kubernetes Engine to allocate an external IP address and prepare the load balancer. In the meanwhile, you may get errors like HTTP 404 and HTTP 500 until the load balancer is ready to serve the traffic.'
  table:
    targets:
      label: Targets
    noMatch: No ingresses match the current search.
    noData: There are no ingress rules defined

containerPage:
  header: 'Container: {name}'
  initContainer:
    label: initContainer
  envTab:
    header: Environment Variables
    detail: 'Environment Variables that were added at creation.'
  portsTab:
    header: Ports
    detail: 'Mappings of container listening ports to host ports on public IP addresses'
    hostPrimaryIp: '({ip})'
  linksTab:
    header: Links
    detail: 'These properties show the links between containers in this container.'
    noData: This Container has no links
  volumesTab:
    header: Volumes
    detail: 'These properties show the volumes attached to your container.'
    table:
      path: Mount Point
      shared: Shared With
      writable: Writable
      noData: This container has no volumes mounted
      noMatch: No volumes match the current search
      noContainers: No other containers
  pod: Pod
podPage:
  header: 'Pod: {name}'
  nodeIp: Node
  podIp: Pod IP
  containerImage: 'Image of {container}'
  image: Image
  displayImage: '{image} + {sidecar, plural, =1 {1 image} other {# images}}'
containersPage:
  table:
    sparkPrefixCpu: "CPU: "
    sparkPrefixMemory: "Memory: "
    sparkPrefixNetwork: "Network: "
    sparkPrefixStorage: "Storage: "
    noData: There are no containers to show.
    noMatch: No containers match the current search.
  welcome:
    container: Get started right away
    containerLink: Add a container
    orchestrator: Install another orchestrator
    kubernetesLink: Install Kubernetes

clusterDashboard:
  systemProject: This is the system project which has all Kubernetes and {appName} system namespaces. Changes made to resources in the system project may harm the cluster.
  notActive: This cluster is currently <b>{state}</b>.
  notReady: This cluster is currently <b>{state}</b>; areas that interact directly with it will not be available until the API is ready.
  used: Used
metricsAction:
  description: Expand to see live metrics
  noData: Not enough data for graph
  sections:
    workload: Workload Metrics
    pod: Pod Metrics
    container: Container Metrics
  grafana:
    label: Grafana
  summary:
    label: Summary
  detail:
    label: Detail
  from:
    label: From
  to:
    label: To
  periods:
    custom: Custom
    5m: 5 minutes
    1h: 1 hour
    6h: 6 hours
    24h: 24 hours
    7d: 7 days
    30d: 30 days

metrics:
  workload-cpu-usage: CPU Utilization
  workload-disk-io: Disk I/O
  workload-memory-usage-bytes-sum: Memory Utilization
  workload-network-io: Network I/O
  workload-network-packet: Network Packets
  pod-cpu-usage: CPU Utilization
  pod-disk-io: Disk I/O
  pod-memory-usage-bytes-sum: Memory Utilization
  pod-network-io: Network I/O
  pod-network-packet: Network Packets
  container-cpu-usage: CPU Utilization
  container-disk-io: Disk I/O
  container-memory-usage-bytes-sum: Memory Utilization
  istio-global-request-volume: Project Request Volume
  istio-global-success-rate: Project Success Rate
  istio-4xxs: Project 4xx Request Count
  istio-5xxs: Project 5xx Request Count
  istio-global-request-volume-top10: Request Volume by Service
  istio-4xxs-top10: 4xx Request Count by Service
  istio-5xxs-top10: 5xx Request Count by Service
  istio-request-duration-p99-top10: P99 Request Latency by Service
  istio-request-duration-p90-top10: P90 Request Latency by Service
  istio-request-duration-p50-top10: P50 Request Latency by Service
dnsPage:
  noMatch: No records match the current search
  noData: There are no DNS records to show
  type:
    arecord: External IP
    cname: Hostname
    alias: Alias
    workload: Workload
    selector: Selector
    clusterIp: Cluster IP
    unknown: Unknown
  table:
    target: Target
    clusterIpDetail: 'Cluster IP: {ip}'

cruHpa:
  title:
    new: Add Horizontal Pod Autoscaler
    edit: Edit Horizontal Pod Autoscaler
    view: "Horizontal Pod Autoscaler: {name}"
  status:
    label: Current Status
  target:
    label: Workload
  name:
    placeholder: e.g. myscaler
  description:
    placeholder: e.g. My scaler
  prompt:
    deployment: Select a Deployment...
  minReplicas:
    label: Min Replicas
    placeholder: e.g. 1
  maxReplicas:
    label: Max Replicas
    placeholder: e.g. 10
  metrics:
    label: Metrics
    noMetrics: No Metrics
    addMetricLabel: Add Metric
    removeMetricLabel: Remove Metric
    selector:
      labels:
        addSelectorLabel: Add Label
        label: Metrics Match Labels
      expressions:
        addSelectorLabel: Add Expression
        label: Metrics Match Expressions
    describedObject:
      label: Described Object
      apiVersion:
        label: Described Object API Version
        placeholder: e.g. extensions/v1beta1
      kind:
        label: Described Object Kind
        placeholder: e.g. Ingress
      name:
        label: Described Object Name
        placeholder: e.g. main-route
    types:
      label: Metric type
      object: Object
      pods: Pods
      resource: Resource
      external: External
      warning:
        resource: "In order to use resource metrics with HPA, you need to deploy the metrics server."
        custom: "In order to use custom metrics with HPA, you need to deploy the custom metrics server such as prometheus adapter."
        external: "In order to use external metrics with HPA, you need to deploy the external metrics server such as prometheus adapter."
        cpu: "CPU reservation is not set in the selected deployment. HPA will not be able to compute the replica count based on CPU utilization."
        memory: "Memory reservation is not set in the selected deployment. HPA will not be able to compute the replica count based on memory utilization."
    name:
      label: Metric Name
      placeholder: e.g. packets-per-second
      resources:
        cpu: CPU
        memory: Memory
    target:
      label: Target Type
      options:
        value: Value
        averageValue: Average Value
        averageUtilization: Average Utilization
    value:
      label: Quantity
      placeholder: e.g. 200
      cpuPlaceholder: e.g. 200m
      utilizationPlaceholder: e.g. 50
editDns:
  title:
    new: Add Record
    edit: Edit Record
    view: "Record: {name}"
  name:
    placeholder: e.g. myapp
  sessionAffinity:
    title: Session Affinity
    detail: Map connections to a consistent target based on their source IP
    label: Enable session affinity
  externalIPs:
    addActionLabel: Add External IP
    placeholder: e.g. 80.11.12.10
    value: External IPs
  loadBalancerIP:
    label: Load Balancer IP
    placeholder: e.g. 78.11.24.19
  loadBalancerSourceRanges:
    addActionLabel: Add Source Range
    placeholder: e.g. 143.231.0.0/16
    value: Load Balancer Source Ranges
  healthCheckNodePort:
    label: Health Check Node Port
    placeholder: e.g. 8080
  externalTrafficPolicy:
    label: External Traffic Policy
    local: Local
    cluster: Cluster
  publishNotReadyAddresses:
    label: Published IP Addresses
    readyOnly: Only ready endpoints
    all: All endpoints
  sessionAffinityConfig:
    label: Session Sticky Time
    placeholder: e.g. 10800
  kind:
    label: As a
    clusterIP: Cluster IP (Internal Only)
    loadBalancer: Layer-4 Load Balancer
    nodePort: NodePort(On every node)
    externalName: ExternalName
    headless: Headless Service
  description:
    placeholder: e.g. Current version of MyApp
  selector:
    label: Container Label Selector
    keyLabel: Label
    addActionLabel: Add Selector
  recordType:
    label: "Resolves To"
    arecord: One or more external IP addresses
    cname: An external hostname
    alias: Alias of another DNS record's value
    workload: One or more workloads
    selector: The set of pods which match a selector
    clusterIp: "Cluster IP"
  target:
    arecord: Target IP Addresses
    cname: Target Hostname
    alias: Target DNS Records
    workload: Target Workloads
    selector: Target Pod Selectors
  add:
    arecord: Add Target IP
    alias: Add Target Record
    workload: Add Target Workload
    selector: Add Target Selector
  placeholder:
    arecord: e.g. 19.82.2.24
    cname: e.g. example.com
  prompt:
    alias: Select a DNS Record...
    workload: Select a Workload...
  errors:
    targetRequired: 'One or more "Targets" are required'
    selectorRequired: 'One or more "Pod selectors" are required'
    mixedAlias: An Alias cannot target a mix of CNAME and other records
    multipleCname: An Alias cannot target more than one CNAME record

cruPersistentVolumeClaim:
  title:
    define: Define Volume Claim
    new: Add Volume Claim
    edit: 'Edit Volume Claim: {name}'
    view: 'Persistent Volume Claim: {name}'
  define:
    addActionLabel: Define
  capacity:
    label: Capacity
    unit: GiB
  name:
    placeholder: e.g. myvol
  source:
    label: Source
    pv: Use an existing persistent volume
    storageClass: Use a Storage Class to provision a new persistent volume
  pv:
    label: Persistent Volume
    prompt: Select a persistent volume...
  storageClass:
    label: Storage Class
    prompt: Use the default class
  secretRequired:
    name: Secret Name
    namespace: Secret Namespace

cruVolumeClaimTemplate:
  title:
    define: Define Volume Claim Template
    new: Add Volume Claim Template
    edit: "Edit Volume Claim Template: {name}"
    view: "Volume Claim Template: {name}"
  define:
    addActionLabel: Define
  capacity:
    label: Capacity
    unit: GiB
  name:
    placeholder: e.g. myvol
  source:
    label: Source
    pv: Use an existing persistent volume to define a template
    storageClass: Use a Storage Class to define a template
  pv:
    label: Persistent Volume
    prompt: Select a persistent volume...
  storageClass:
    label: Storage Class
    prompt: Use the default class
  customize:
    title: Customize
    detail: Customize Advanced options

cruPrivateRegistry:
  title:
    label: Private Registry
    detail: Configure a default private registry for this cluster. When enabled, all images required for cluster provisioning and system add-ons startup will be pulled from this registry.
  noData: This cluster does not have a private registry defined
  defaultError: You must designate one private registry as the default
  add:
    label: Add Private Registry
  registry:
    user:
      label: User
    password:
      label: Password
    url:
      label: URL
    default:
      label: System Default Registry

cruVolume:
  sourcePrompt: Choose a Volume Source above...
  title:
    new: Define Ephemeral Volume
  define:
    addActionLabel: Define
  name:
    placeholder: e.g. myvol
  source:
    label: Source
    title: Source Configuration
    detail: Configure options for the selected volume source
    prompt: Choose a volume source...

globalRegistryPage:
  header: Global Registry
  enabled: Registry is enabled. Click <a href="{url}/registry" target="_blank" rel="nofollow noopener noreferrer">here</a> to open Harbor UI in a new tab.
  disabled: Registry is not enabled yet.
  notReady: Installing registry into the system project of the local cluster...
  confirmDisable: "Are you sure?  Click again to disable Global Registry"
  disable: Disable registry
  enableActionLabel: Enable
  command:
    title: Docker Commands
    detail: Docker commands for the registry
    dockerLogin: Log in to the registry
    dockerPull: Pull an image from the registry
    dockerTag: Tag an image for the registry
    dockerPush: Push an image to the registry
  setting:
    adminPassword:
      label: Admin Password
      placeholder: Harbor Admin password
      helpText: "If you are using an existing PVC with initialized Harbor data, the password will not take effect."
  config:
    header:
      postgresql: PostgreSQL Database
      redis: Redis
      registryPersistence: Registry
      notary: Notary
      clair: Clair
    persistenceStorageclass:
      label: Storage Class
    clairEnabled:
      label: Enable Clair
    notaryEnabled:
      label: Enable Notary
    secretKey:
      label: Encryption Key For Harbor
      description: The key used for encryption. Must be a string of 16 chars
      error: '"Encryption Key For Harbor" must be a string of 16 chars.'
    storageType:
      label: Storage Backend Type
    databaseType:
      label: Config Database Type
    redisType:
      label: Config Redis Type
    registryExistingClaim:
      label: Existing Claim
      prompt: Select a Existing Claim...
    registryPVSize:
      label: Persistent Volume Size
    source:
      pvc: Use an existing persistent volume claim
    storageClass:
      emptyError: 'At least one default storage class is required in "local" cluster'
      sizeRequired: '"{component} Persistent Volume Size" is required'
    databaseRequestCpu:
      label: Database CPU Request
      placeholder: e.g. 1000
    databaseLimitCpu:
      label: Database CPU Limit
      placeholder: e.g. 1000
    databaseRequestMemory:
      label: Database Memory Request
      placeholder: e.g. 1000
    databaseLimitMemory:
      label: Database Memory Limit
      placeholder: e.g. 1000
    redisRequestCpu:
      label: Redis CPU Request
      placeholder: e.g. 1000
    redisLimitCpu:
      label: Redis CPU Limit
      placeholder: e.g. 1000
    redisRequestMemory:
      label: Redis Memory Request
      placeholder: e.g. 1000
    redisLimitMemory:
      label: Redis Memory Limit
      placeholder: e.g. 1000
    redis:
      external:
        host:
          label: Host for Redis
          placeholder: e.g. 192.168.0.2
        port:
          label: Port for Redis
          placeholder: e.g. 6379
        coreDatabaseIndex:
          label: Core Database Index
          placeholder: e.g. 0
        jobserviceDatabaseIndex:
          label: Jobservice Database Index
          placeholder: e.g. 1
        registryDatabaseIndex:
          label: Registry Database Index
          placeholder: e.g. 2
        password:
          label: Password for Redis
          placeholder: Your redis password
    s3:
      region:
        label: S3 Region
        placeholder: e.g. us-west-2
      bucket:
        label: S3 Bucket Name
        placeholder: Your Bucket Name
      accesskey:
        label: S3 Access Key
        placeholder: Your S3 Access Key
      secretkey:
        label: S3 Secret Key
        placeholder: Your S3 Secret Key
      regionendpoint:
        label: S3 Region Endpoint
        placeholder: e.g. s3.us-west-2.amazonaws.com
    database:
      external:
        host:
          label: Host for PostgreSQL
          placeholder: e.g. 192.168.0.1
        port:
          label: Port for PostgreSQL
          placeholder: e.g. 5432
        username:
          label: Username for PostgreSQL
          placeholder: e.g. user
        password:
          label: Password for PostgreSQL
          placeholder: e.g. password
        coreDatabase:
          label: Core Database
          placeholder: e.g. registry
        clairDatabase:
          label: Clair Database
          placeholder: e.g. clair
        notaryServerDatabase:
          label: Notary Server Database
          placeholder: e.g. notary_server
        notarySignerDatabase:
          label: Notary Signer Database
          placeholder: e.g. notary_signer
        sslmode:
          label: SSL Mode for PostgreSQL
      existingClaim:
        label: Existing Claim for PostgreSQL
    exposeIngressHost:
      error: '"{hostName}" is a host name. Require domain name for expose.ingress.host'
  globalRegistryEnabled:
    error: Error saving global-registry-enabled
  insufficientSize:
    total:
      cpu: Please make sure you have at least {minCpu} milli CPUs available to {action} registry.
      memory: Please make sure you have at least {minMemory} MiB of memory available to {action} registry.
      all: Please make sure you have at least {minCpu} milli CPUs and {minMemory} MiB of memory available to {action} registry.
    workload:
      cpu: Please make sure you have at least one node with {cpu} milli CPUs available to enable {component} workload.
      memory: Please make sure you have at least one node with {memory} MiB of memory available to enable {component} workload.
      all: Please make sure you have at least one node with {cpu} milli CPUs and {memory} MiB of memory available to enable {component} workload.
    selectors:
      cpu: Please make sure you have at least one node matches node selectors with {cpu} milli CPUs available to enable {component} workload.
      memory: Please make sure you have at least one node matches node selectors with {memory} MiB of memory available to enable {component} workload.
      all: Please make sure you have at least one node matches node selectors with {cpu} milli CPUs and {memory} MiB of memory available to enable {component} workload.
  nodeSelector:
    addSelectorLabel: Add Selector
    helpText: Select the nodes where {component} workloads will be scheduled to
  notaryAndSigner: Notary server and Notary signer

globalDnsPage:
  header: Global DNS Entries
  newDns: Add DNS Entry
  noDnsMatch: No DNS entries match the current search.
  noDnsData: There are no global DNS entries yet.
  newProvider: Add DNS Provider
  noDnsProviderMatch: No DNS providers match the current search.
  noDnsProviderData: There are no global DNS providers yet.
  noProjects: There are no projects to select
  noApps: No Accessible Multi-Cluster Apps
  noProviders: No Accessible Providers
  entriesPage:
    header:
      new: Add Global DNS Entry
      edit: Edit Global DNS Entry
    options:
      title: Entry Options
      detail: Customize options for the DNS entry
    access:
      noAccessMulti: You do not have access to the target app
      noAccessProvider: You do not have access to the provider
      noAccessProject: You do not have access to the target project
    projectHelp: "To finalize configuring this Global DNS entry, you must add the following annotation ( <code>rancher.io/globalDNS.hostname</code> ) on the ingress in your application or in your project. The value of this annotation should be the hostname used in the routing rules of your ingress and match the FQDN of this Global DNS entry."
    istioHelp: "To make catalog template visable in Traffic Rules Catalog, you must add the following label ( <code>io.rancher.istio=true</code> ) in <code>questions.yaml</code> file of your catalog template."
    table:
      name: Name
      fqdn: FQDN
      target: Target
      provider: Provider ID
    config:
      title: Configure DNS Entry
      detail: Provide your configuration details to add a new global DNS entry
      configType: Resolves To
      multi: Multi-Cluster App
      project: Projects
      fqdn:
        label: FQDN
        placeholder: dev.example.com
      multiCluster:
        label: Multi-Cluster App Target
        placeholder: Select a multi-cluster app
        add:
          label: Add Target
      provider:
        label: Provider
        placeholder: Select a provider
      projects:
        label: Target Projects
      ttl:
        label: DNS TTL
  providersPage:
    title: Global DNS Providers
    header:
      new: Add Global DNS Provider
      edit: Edit Global DNS Provider
    options:
      title: Provider Options
      detail: Customize options for the DNS provider
    members:
      title: Member Access
      detail: Control who has access to the resource
    table:
      name: Name
      provider: Provider Name
      rootDomain: Root Domain
    config:
      root:
        label: Root Domain
        placeholder: Your root domain
      accessKey:
        label: Access Key
        placeholder: Your access key
      secretKey:
        label: Secret Key
        placeholder: Your secret key
        info: Secret key already provided. It is only required when updating the keys themselves.
      apiEmail:
        label: API Email
        placeholder: Your API Email
      apiKey:
        label: API Key
        placeholder: Your API Key
      credentialsPath:
        label: Credential Path
        placeholder: "/.aws"
      proxySetting:
        label: Proxy Setting
      roleArn:
        label: Role ARN
        placeholder: "arn:partition:service:region:account-id:resource"
      region:
        label: Region
        placeholder: us-west-2
      zone:
        label: Zone
        placeholder: public

multiClusterAppsPage:
  header: Multi-Cluster Apps
  noData: There are no multi-cluster apps launched
  error:
    appData: Error loading global app data

# If you change translations here also change the translation in app/utils/constants.js under the FALLBACK_TRANSLATIONS key
# those are present in case we have an error in the app and can not load the translations file
# the error page will at least make a little sense
failWhalePage:
  header: Error
  reloadButton: |
    <a href="#" onclick="window.location.href = window.location.href; return false;">Reload</a> to try again or
  logoutButton: log out

time:
  now: Now
  mins: |
    {mins, plural,
    =1 {# min}
    other {# mins}
    }
  minsAgo: |
    {mins, plural,
    =1 {# min ago}
    other {# mins ago}
    }
  secsAgo: |
    {secs, plural,
    =1 {# second ago}
    other {# seconds ago}
    }

haPage:
  header: High Availability
  setup:
    prefix: "Multiple server containers can be deployed on different hosts so that {appName} keeps running even if one of the hosts fail.  "
    link: See documentation
    suffix: " for information on setup and usage."
  table:
    address: Advertised  Address
    port: Port
    heartbeat: Last Seen
    clustered: Clustered

nodesPage:
  header: Nodes
  editCluster: Edit Cluster
  nodePoolGroup: "Pool: {name}"
  table:
    clusterName: Cluster
    role: Roles
    cpu: CPU
    memory: RAM
    disk: Disk
    pod: Pods
    version: Version
    docker: Docker
    unschedulable: Unschedulable
    instanceState: Container States
    instanceStateWithIcon: States
    noData: This cluster does not have any nodes defined
    noMatch: No nodes match the current search

hostsPage:
  cloudHostsPage:
    addPage:
      launch: Launch
      header: Add Node
      name:
        label: Node Name
        placeholder: e.g. node01
      transferUnit: TB
      instance: 'Type:'
      storage: 'Storage:'
      transfer: 'Transfer:'
      zone: 'Zone:'
      env: 'Environment:'
      size: 'Size:'
      os: 'OS:'
      driver: 'Driver:'
      template: 'Template Name:'
  addContainer: Add Container
  new:
    header:
      customText: Add Custom Host
      text: Add Node
    manageLink: Manage available machine drivers
    custom: Add Custom Host
    name:
      placeholder: e.g. node01
    addCluster:
      label: "Cluster Options"
      description: Attach this new node to a cluster, delegate roles, etc.
      cluster:
        label: Cluster
      roles:
        label: Roles
      table:
        label:
          etcd: Use for etcd
          control: Use for management
          worker: Use as worker node

  hostPage:
    header:
      title: 'Node: {name}'
    hostname: Hostname
    ipAddress: IP Address
    version: Version
    kubeletVersion: Kubelet Version
    kubeProxyVersion: Kube Proxy Version
    dockerVersion: Docker Version
    kernelVersion: Kernel Version
    operatingSystem: OS
    conditions:
      diskSpace: Disk Space
      diskPressure: Disk Pressure
      memoryPressure: Memory Pressure
      ready: Kubelet
    limits:
      cpu: 'CPU Limit:'
      memory: 'Memory Limit:'
      storage: 'Volumes Local Limit:'
    infoMultiStats:
      ip: 'IP'
      cpu: 'CPU'
      memory: 'Memory'
      storage: 'Volumes'
      provider:
        labelText: 'Provider:'
        noHost: Custom
      kernel: 'Kernel'
      docker: 'Docker:'
      os: 'OS'
      milliCpu:
        labelText: mCPU
    containersTab:
      header: Containers
      detail: A list of containers running on this host
    portsTab:
      header: Ports
      detail: 'These properties show what ports have been mapped and where.'
      table:
        header:
          ip: IP Address
          port: Port
          service: Service
          container: Container
        body:
          noData: This host does not have any ports
    storageTab:
      header: Volumes
      detail: 'These properties show the volume details of your host.'
      table:
        header:
          state: State
          hostPath: Host Path
          mounts: Mounts
        body:
          noData: This host does not have any volumes

k8sImport:
  header: Import Existing Kubernetes
  name:
    label: Cluster Name
    placeholder: e.g. my-imported-cluster
  kubeConfig:
    label: Kubeconfig file to import
    placeholder: Import or paste in the Kubeconfig file of the cluster to use.
  actionLabel: Import

k8sPage:
  header: Kubernetes
  dashboard:
    title: Dashboard
    detail: Access the native Kubernetes dashboard.
    button: Launch Dashboard
  shell:
    title: Shell
    detail: Run <code>kubectl</code> commands from your browser.
    button: Launch kubectl
  configFile:
    title: Config File
    detail: Generate a Kubernetes config file to use <code>kubectl</code> on your desktop.
    button: Kubeconfig File
    generating: Generating...
    usage:
      helpText: |
        Put this into <code>~/.kube/config</code>:
      downloadText: |
        Then <a href="{downloadUrl}" target="_blank">download</a> (if needed) and run <code>kubectl</code>

loginPage:
  greeting: "Howdy!<br><span>Welcome to {appName}</span>"
  insecure: "{appName} only works over a <code>https://</code> connection.  You must either:<br><br>Use the TLS support built-in to the server, or <br><br> Provide your own TLS termination in front of the container."
  githubMessage: "{appName} uses GitHub to manage accounts and teams.  Click the button below to log in and give us read-only access to your basic GitHub account information."
  shibbolethMessage: "{appName} uses Shibboleth to manage accounts.  Click the button below to log in to the configured Shibboleth IDP."
  shibbolethError:
    401: "Unauthorized"
    500: "Internal Server Error"
    generic: "There was an error ({errorCode}) while trying to log you in. Please try again."
  error:
    authFailedCreds: "Logging in failed: Check credentials, or your account may not be authorized to log in."
    authFailed: "Logging in failed: Your account may not be authorized to log in."
    unknown: "An unknown error occured while attempting to login. Please contact your system administrator."
    invalidSamlAttrs: "Invalid saml attributes"
    noResponse: "No response received"
  readableProviders:
    ad: Active Directory
    azureAd: Azure AD
    local: a Local User
    openldap: OpenLDAP
    freeipa: FreeIPA

machinePage:
  header: Node Drivers
  inactive: Inactive
  subtext: "Additional <code>docker-machine</code> drivers can be loaded here and used in the Add Node screen."
  add: Add Node Driver
  builtin: Built-In
  url: Location

# If you change translations here also change the translation in app/utils/constants.js under the FALLBACK_TRANSLATIONS key
# those are present in case we have an error in the app and can not load the translations file
# the error page will at least make a little sense
notFoundPage:
  header: "The page you were looking for doesn't exist!"
  linkTo: Go Home

registriesPage:
  index:
    header: Registry Credentials
    linkTo: Add Registry
    noData: "You don't have any registry credentials yet"
    table:
      header:
        state: State
        address: Address
        username: Username
        created: Created

  new:
    header: Add Registry
    form:
      custom:
        labelText: Address
        placeholder: e.g. registry.example.com
        help: Just the hostname or IP address, do not include the protocol (https://)
      username:
        labelText: Username
        placeholder: e.g. username
      password:
        labelText: Password
        placeholder: e.g. password

secretsPage:
  index:
    header: Secrets
    linkTo: Add Secret
    noData: There are no secrets defined
    noMatch: No Secrets match the current search
  table:
    keys: Keys

configMapsPage:
  index:
    header: Config Maps
    linkTo: Add Config Map
    noData: There are no config maps defined
    noMatch: No Config Maps match the current search
  table:
    keys: Keys

servicePage:
  header: 'Workload: {name}'
  globalScale: '{scale} per host'
  endpoints: 'Endpoints'
  multistat:
    type: 'Workload Type'
    fqdn: 'FQDN'
    scale: 'Config Scale'
    image: 'Image'
    namespace: 'Namespace'
    cronSchedule: Cron Schedule
    created: 'Created'
    daemonSetScale: '1 per node'
    currentScale: 'Ready Scale: {count}'
  serviceType:
    deployment: Deployment
    replicaSet: Replica Set
    statefulSet: Stateful Set
    daemonSet: Daemon Set
    replicationController: Replication Controller
    job: Job
    cronJob: Cron Job
    pod: Standalone Pod
  external:
    externalIp: |
      {count, plural,
        =1 {External IP:}
        other {External IPs:}
      }
    externalHostname: 'External Hostname:'
  selector:
    label: 'Selector:'
  containersTab:
    title: 'Containers'
    detail: 'The containers that make up this service.'
  linksTab:
    header: Links
    detail: 'These properties show the links between containers in this service.'
    noData: This Service has no links
  certsTab:
    title: Certificates
    detail: 'Certificates used for TLS-termination of requests.'
    default: Default Certificate
    additional: Additional SNI Certificates
  new:
    form:
      name:
        placeholder: e.g. myapp
      description:
        placeholder: e.g. My application
  newBalancer:
    upgradeImage: "The balancer software image will be upgraded from <code>{from}</code> to <code>{to}</code>."
    form:
      name:
        placeholder: e.g. website
      description:
        placeholder: e.g. Balancer for mycompany.com
  newIngress:
    form:
      name:
        placeholder: e.g. website
      description:
        placeholder: e.g. Ingress for mycompany.com
  portsTab:
    title: Ports
    detail: 'Ports mapped from a host IP to the listening ports of a container.'
    notActive: Ports are only available while the service is Active.
  logTab:
    title: Service Log
    detail: 'Recent orchestration events that have occurred for this service'
  type:
    service: Service
    selectorservice: Selector
    loadbalancerservice: Load Balancer
    dnsservice: Alias
    externalservice-ip: External IP
    externalservice-host: External Name
    kubernetesservice: K8s Service
    composeservice: Compose Service
    networkdriverservice: Network Service
    storagedriverservice: Storage Service
  sidekick:
    tabHeader: Sidecars
    header: Workload & Sidecars
    helpBlock: Select the main container or one of the sidecars

signupPage:
  header: 'Signup for {appName}'
  form:
    button: Register
    labels:
      loginUsername: Name
      email: Email
  emailSuccess:
    header: 'Welcome to {appName}'
    confirm:
      subtext: Confirm your email by clicking the verification link we just sent to your inbox.
      resend: Resend Email

stackPage:
  header:
    singleBanner: Viewing a single Stack
    backLink: Back to all stacks
  basics:
    tagsCopy: Copy Tags as comma separated list
  containers:
    header: Containers
    detail: Standalone Containers and Services contained in this stack
    status: |
      {count, plural,
      =0 {No containers}
      =1 {# container}
      other {# containers}
      }
  loadBalancers:
    header: Load Balancers
    detail: 'Load Balancer containers that are apart of this stack'
    status: |
      {count, plural,
      =0 {No balancers}
      =1 {# balancer}
      other {# balancers}
      }
  dnsServices:
    header: DNS Entries
    detail: 'Load Balancers that are apart of this stack'
    status: |
      {count, plural,
      =0 {No entries}
      =1 {# entry}
      other {# entries}
      }
  scalingGroups:
    header: Scaling groups
    detail: 'Containers existing in this scaling group'
    status: |
      {count, plural,
      =0 {No containers}
      =1 {# container}
      other {# containers}
      }
  volumesTab:
    header: Volumes
    detail: 'These properties show the volumes attached to your container.'
    table:
      path: Mount Point
      shared: Shared With
      writable: Writable
      noData: This stack has no volumes mounted
      noMatch: No volumes match the current search

newStack:
  header: Import YAML
  name:
    placeholder: e.g. myapp
  description:
    placeholder: e.g. MyApp Stack
  files:
    label: Files
    addActionLabel: Add a File
    uploadActionLabel: Read from Disk
    namePlaceholder: File Name
    valuePlaceholder: File Contents
    protipLabel: Supports {appName} <code>compose.yml</code>, <code>docker-compose.yml</code>, and Kubernetes manifest files
  answers:
    label: Answers (variable substitutions)
    addActionLabel: Add Answer

nodeTemplatesPage:
  header: Node Templates
  rightButtons:
    actionButton: Add Template
    cloudCredentials: Manage Cloud Credentials
  detail: Node Templates are used to deploy the nodes that make up a Cluster on an infrastructure provider.
  table:
    state: State
    name: Name
    provider: Provider
    location: Location
    size: Size
    usedBy: Used By
    noData: There are no node templates defined
    usedByNone: No Clusters
    unknown: Unknown

storageClassPage:
  header: Storage Classes
  addActionLabel: Add Class
  noData: There are no storage classes defined
  noMatch: No storage classes match the current search
  provisioner:
    label: Provisioner
  default:
    label: Default

persistentVolumePage:
  header: Persistent Volumes
  addActionLabel: Add Volume
  noData: There are no persistent volumes defined
  noMatch: No persistent volumes match the current search
  source:
    label: Source

userPreferencesPage:
  header: Preferences
  theme:
    header: Theme
    light: Light
    auto: Auto
    autoDetail: Auto will transition to dark from 6pm-6am
    dark: Dark
  generalInfo:
    header: My Account
    name:
      label: Name
    username:
      label: Username
    email:
      label: Email
    password:
      text: Change Password

verifyPage:
  header: "You've successfully verified your email!"
  subtext: We need a few more pieces of information before we can finalize your account.
  account:
    header: Account Created
    subtext: Click the link below to be to taken to the login page.
    linkText: Login

verifyResetPasswordPage:
  header: Reset Password
  button: Update password
  success:
    header: Password Reset!
    subtext: Click the link below to be to taken to the login page.
    linkText: Login


waitingPage:
  hosts:
    setup:
      kubernetes: Setting up Kubernetes

notifierPage:
  notifiers: Notifiers
  testedBtnLabel: OK
  testingBtnLabel: Testing
  deleteErrorMessage: 'Notifier {displayName} is in use by: {alertNames}'
  notifierTypes:
    slack: Slack
    email: Email
    pagerduty: PagerDuty
    webhook: Webhook
    wechat: WeChat
  slack:
    url: URL
    urlPlaceholder: e.g. https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX
    defaultRecipient:
      label: Default Channel
      helpText: Optional. By default, notifications are sent to the default channel of the Incoming WebHook. When configuring an Alert, the channel can be overridden.
    defaultRecipientPlaceholder: 'e.g. #example'
    helpText: |
        Here's how you <a href="https://slack.com/apps/A0F7XDUAZ-incoming-webhooks" target="_blank" rel="nofollow noopener noreferrer">create Incoming WebHooks</a> for Slack.
  smtp:
    server: Smtp Server
    host: Host
    hostPlaceholder: e.g. 192.168.1.121
    port: Port
    portPlaceholder: e.g. 465
    sender: Sender
    userName: Username
    userNamePlaceholder: e.g. John
    password: Password
    passwordPlaceholder: Your Password
    defaultRecipient:
      label: Default Recipient Address
      helpText: When configuring an Alert, the recipient can be overridden.
    defaultRecipientPlaceholder: e.g. admin@example.com
    tls: Use TLS
  pagerduty:
    serviceKey:
      label: Default Integration Key
      helpText: When configuring an Alert, the Integration Key can be overridden.
    serviceKeyPlaceholder: Your PagerDuty Integration Key
    helpText: |
      Here's how you <a href="https://www.pagerduty.com/docs/guides/prometheus-integration-guide/" target="_blank" rel="nofollow noopener noreferrer">create an Integration Key</a> for PagerDuty.
  wechat:
    recipientType:
      label: Recipient Type
      tag: Tag
      party: Party
      user: User
    secret:
      label: Application Secret
      helpText: You can find Secret in <a href="https://work.weixin.qq.com/wework_admin/frame#apps" target="_blank" rel="nofollow noopener noreferrer">app detail</a> page.
    agent:
      label: Application Agent ID
      helpText: You can find AgentId in <a href="https://work.weixin.qq.com/wework_admin/frame#apps" target="_blank" rel="nofollow noopener noreferrer">app detail</a> page.
    corp:
      label: Corporation ID
      helpText: |
        Click <a href="https://work.weixin.qq.com/wework_admin/frame#profile" target="_blank" rel="nofollow noopener noreferrer">here</a> to find your Corporation ID.
    defaultRecipient:
      label: Default Recipient
    secretPlaceholder: Your app secret
    agentPlaceholder: e.g. 1000003
    corpPlaceholder: e.g. wwc0cc3d58f9b021b6
    defaultRecipientPlaceholder: e.g. 2
  proxyUrl:
    label: Proxy URL
    placeholder: e.g. http://my-proxy/

  webhook:
    url: URL
    urlPlaceholder: Your webhook URL
  testAction:
    testing: TESTING
    testOk: Settings validated.
    testFailed: Something's not quite right. Check your inputs.
    test: TEST
  clone: Clone
  index:
    addActionLabel: Add Notifier
    table:
      created: Created
      noData: There are no notifiers defined
      noMatch: No Match
##############################
# Partials
##############################
ldap:
  providerName:
    openldap: OpenLDAP
    ad: Active Directory
    freeipa: FreeIPA
    saveLabels:
      openldap: Authenticate with OpenLDAP
      ad: Authenticate with Active Directory
      freeipa: Authenticate with FreeIPA
  header:
    disabled:
      label: "{providerName} is not configured"
  accessEnabled:
    header: Authentication
    subtext: "To change the server configuration, disable access control below and then set it up again."
    serviceAccountDistinguishedName:
      labelText: "Service Account Distinguished Name:"
    connectionTimeout:
      labelText: "Server Connection Timeout:"
    general:
      header: General
      server: "Server:"
      tls: "TLS:"
      serviceAccount: "Service Account Username:"
      searchBase: "Search Base:"
      defaultDomain: "Default Domain:"
    users:
      header: Users
      objectClass: "Object Class:"
      login: "Login Attribute:"
      name: "Username Attribute:"
      search: "Search Attribute:"
      searchFilter: "Search Filter:"
      enabled: "Status Attribute:"
      disabledBitMask: "Disabled BitMask:"
    group:
      header: Group
      objectClass: "Object Class:"
      name: "Name Attribute:"
      search: "Search Attribute:"
      searchFilter: "Search Filter:"
    disable:
      confirmDisable:
        pre: Disable access control
  accessConfig:
    header: "1. Configure an {providerName} server"
    subtext1: "Enter the address, port, and protocol to connect to your {providerName} server.  <code>389</code> is the standard port for insecure, <code>636</code> for TLS."
    subtext2: "{appName} needs a service account that has (read-only) access to all of the domains that will be able to login, so that we can determine what groups a user is a member of when they make a request with an API key."
    port:
      labelText: Port
      checkbox: TLS
    groupSearchBase:
      labelText: Group Search Base
      placeholder: "e.g. ou=Groups,dc=mycompany,dc=com"
      helpText: "If set, groups will be searched for only under this base instead of under the User Search Base."
    userSearchBase:
      labelText: User Search Base
      placeholder: "e.g. ou=users,dc=mycompany,dc=com"
    defaultDomain:
      helpText: "This domain will be used if a user logs in without specifying one."
      labelText: Default Login Domain
      placeholder: "e.g. mycompany"
    serviceAccountDistinguishedName:
      labelText: Service Account Distinguished Name
    connectionTimeout:
      labelText: Server Connection Timeout
  customizeSchema:
    header: "2. Customize Schema"
    helpText: "If your schema does not match the standard ActiveDirectory format, you can customize it here."
    cert:
      labelText: CA Certificate
      helpText: If needed, enter a CA certificate
      placeholder: "Paste in the certificate, starting with -----BEGIN CERTIFICATE-----"
    users:
      header: Users
      objectClass:
        labelText: Object Class
      login:
        labelText: Login Attribute
      name:
        labelText: Username Attribute
      search:
        labelText: Search Attribute
      searchFilter:
        labelText: Search Filter
      searchBase:
        labelText: User Search Base
      enabledAttribute:
        labelText: User Enabled Attribute
      disabledBitMask:
        labelText: Disabled Status Bitmask
      userMemberAttribute:
        labelText: User Member Attribute
    groups:
      header: Groups
      objectClass:
        labelText: Object Class
      name:
        labelText: Name Attribute
      search:
        labelText: Search Attribute
      searchFilter:
        labelText: Search Filter
      groupMemberUser:
        labelText: Group Member User Attribute
        placeholder: uid
      groupMemberMapping:
        labelText: Group Member Mapping Attribute
      groupDN:
        labelText: Group DN Attribute
        placeholder: distinguishedName
      nestedGroup:
        title: Nested Group Membership
        enabled:
          labelText: Search direct and nested group memberships
          helpText: Nested search may be slower in large directories
        disabled:
          labelText: Search only direct group memberships
  testAuth:
    header: "3. Test and enable authentication"
    helpText: "Check that everything is configured correctly by testing authentication with your {providerName} account:"
    userName:
      labelText: Your Username
    password:
      labelText: Your Password
    authenticate:
      pre: Authenticate
      post: "Testing..."

servicePartial:
  noContainers:
    label: No containers yet.
    inactive:
      start: Start

##############################
# Components
##############################
accordionRow:
  status:
    none: None
    incomplete: Incomplete
    error: Error
    notConfigured: Not Configured
    configured: Configured
    countConfigured: "{count} Configured"
    standard: Default
    custom: Customized
    specific: Specific
    any: Any
    rule: "{count, plural, =1 {# Rule} other {# Rules}}"

advancedSection:
  showText: Show advanced options
  hideText: Hide advanced options

annotationsSection:
  title: Annotations
  detail: Key/value metadata.
  key: Key
  value: Value
  noData: No Annotations
  noMatch: No annotations match the current search

authorizedEndpoint:
  enabled:
    label: Authorized Cluster Endpoint
  fqdn:
    label: FQDN

taintsSection:
  title: Taints
  detail: Ensure workloads only run on appropriate nodes by adding taints to nodes and tolerations to workloads
  key: Key
  value: Value
  effect: Effect
  noData: No taints
  noMatch: No taints match the current search

billingInfo:
  header: Billing Info
  addNew: Add Payment Method
  card: "{brand}: ...{last}"
  noSub: You don't have an active payment method
  table:
    title:
      cardType: "Brand: {brand}"
      last4: "Last Four: {last}"
      exp: "Exp Date: {exp}"
      name: "Name On Card: {name}"
      actions: Actions

cloudProvider:
  title: Cloud Provider
  amazon: Amazon
  azure: Azure
  external:
    label: External
    helpText: 'Please edit the YAML to specify the required addon for cloud controller manager.'
  name: Cloud Provider Name
  custom:
    notInList: 'If your cloud provider is not listed, please use the <b>Custom</b> option.'
    helpText: 'Please edit the YAML to add in any other <a href="http://rancher.com/docs/rke/v0.1.x/en/config-options/cloud-providers/" target="_blank" rel="nofollow noopener noreferrer">cloud providers</a>'

  helpText: |
     Read more about the <a href="https://kubernetes.io/docs/concepts/cluster-administration/cloud-providers/" target="_blank" rel="nofollow noopener noreferrer">Kubernetes cloud providers</a>
  warning:
    Configuring a Cloud Provider in your cluster without configuring the prerequisites will cause your cluster to not provision correctly. Prerequisites needed for supported cloud providers can be found in the documentation.
  azureCloudConfig:
    cloudProviderBackoff:
      description: "Enable exponential backoff to manage resource request retries"
    cloudProviderBackoffDuration:
      description: "Backoff duration"
    cloudProviderBackoffExponent:
      description: "Backoff exponent"
    cloudProviderBackoffJitter:
      description: "Backoff jitter"
    cloudProviderBackoffRetries:
      description: "Backoff retry limit"
    cloudProviderRateLimit:
      description: "Enable rate limiting"
    cloudProviderRateLimitBucket:
      description: "Rate limit Bucket Size"
    cloudProviderRateLimitQPS:
      description: "Rate limit QPS (Read)"
    maximumLoadBalancerRuleCount:
      description: "Maximum allowed LoadBalancer Rule Count is the limit enforced by Azure Load balancer"
    useInstanceMetadata:
      description: "Use instance metadata service where possible"
    useManagedIdentityExtension:
      description: "Use managed service identity for the virtual machine to access Azure ARM APIs"
    aadClientCertPassword:
      description: "The password of the client certificate for an AAD application with RBAC access to talk to Azure RM APIs"
    aadClientCertPath:
      description: "The path of a client certificate for an AAD application with RBAC access to talk to Azure RM APIs"
    aadClientId:
      description: "The ClientID for an AAD application with RBAC access to talk to Azure RM APIs"
    aadClientSecret:
      description: "The ClientSecret for an AAD application with RBAC access to talk to Azure RM APIs"
    cloud:
      description: "The cloud environment identifier. See here for valid entries. See here for valid entries"
    location:
      description: "The location of the resource group that the cluster is deployed in"
    primaryAvailabilitySetName:
      description: "The name of the availability set that should be used as the load balancer backend"
    primaryScaleSetName:
      description: "The name of the scale set that should be used as the load balancer backend"
    resourceGroup:
      description: "The name of the resource group that the cluster is deployed in"
    routeTableName:
      description: "The name of the route table attached to the subnet that the cluster is deployed in"
    securityGroupName:
      description: "The name of the security group attached to the cluster's subnet"
    subnetName:
      description: "The name of the subnet that the cluster is deployed in"
    subscriptionId:
      description: "The ID of the Azure Subscription that the cluster is deployed in"
    tenantId:
      description: "The AAD Tenant ID for the Subscription that the cluster is deployed in"
    vmType:
      description: "The type of azure nodes. Candidate values are: vmss and standard"
    vnetName:
      description: "The name of the VNet that the cluster is deployed in"
    vnetResourceGroup:
      description: "The name of the resource group that the Vnet is deployed in"
    loadBalancerSku:
      description: "Sku of Load Balancer and Public IP. Candidate values are: basic and standard"

catalogSettings:
  header: Catalogs
  notAvailable: "Not available: there is a custom catalog called <code>{name}</code>"
  helpText: Currently only Helm catalogs are supported
  currentCluster: Cluster
  currentProject: Project
  globalCatalog: Global
  library:
    label: Library
    detail: Official repository of curated application templates maintained by {appName}.
  helm:
    stable:
      label: Helm Stable
      detail: Official repository of curated applications maintained by the Kubernetes community.
    incubator:
      label:  Helm Incubator
      detail: Additional beta-quality Helm application templates which are not ready to be promoted to Stable yet.
  certified:
    header:
      rancher: "{appName} Certified Library"
      pl: Certified Library
    detail:
      rancher: Templates required for core features such as Kubernetes orchestration support.  Maintained and supported by Rancher Labs.
      pl: Officially maintained templates required for core features such as Kubernetes.
  community:
    header:
      rancher: Community Contributed
      pl: Community Contributed
    detail:
      rancher: Templates created and maintained by community members.  Not certified by Rancher Labs.
      pl: Templates created and maintained by community members.
  more:
    header: Custom
    helpText:
      header: "You can define your own additional custom catalog sources. Each custom catalog needs the following:"
      help-name: '<strong>Unique name</strong>'
      help-repo: '<strong>Repository URL:</strong>'
      help-git: "Git-based catalog URL, <em class='text-lowercase'>e.g. https://github.com/{appName}/charts.git</em>"
      help-chart: 'Helm Charts server URL, <em>e.g. https://kubernetes-charts.storage.googleapis.com/ (see <a href="https://docs.helm.sh/developing_charts/#hosting-chart-repositories" target="_blank" rel="nofollow noopener noreferrer">Hosting Chart Repositories</a> for specifics)</em>'
    addActionLabel: Add Catalog
    noMatch: No catalogs match the current search.
    noData: There are no custom catalogs defined.
    addHeader: Add Catalog
    editHeader: Edit Catalog
    name:
      label: Name
      placeholder: e.g. mycatalog
    url:
      label: Catalog URL
    kind:
      label: Kind
      native: Native
      helm: Helm
    branch:
      label: Branch
      placeholder: 'e.g. master'
    private:
      label: Use private catalog
    username:
      label: Username
      required: '"Username" is required'
      placeholder: Your username
    password:
      label: Password
      required: '"Password" is required'
      placeholder: Your password
  errors:
    nameInExists: 'You cannot enable {key} as there is a custom catalog already with name {key}.'

clusterRow:
  noMatch: No environments match the current search.
  noData: This cluster doesn't have any environments yet.
  noHosts: External cluster has no nodes
  noClusterMatch: No clusters match the current search.
  noClusterData: There are no clusters yet.
  addHost: Add Nodes
  importCluster: Use existing Kubernetes
  loginDefault: Login

clusterTemplateRow:
  label: 'Cluster Template'

clusterNew:
  header: Select Cluster Type
  advanced:
    helpText: Tabs are not able to be used in the yaml file for parsing.
    cancel: Edit as a Form
    viewCancel: View as a Form
    yaml: Edit as YAML
    viewYaml: View as YAML
  name:
    label: Cluster Name
    placeholder: e.g. sandbox
    required: '"Cluster Name" is required'
  description:
    placeholder: e.g. Cluster for dev and test workloads
  driverLabels:
    cloud: In a hosted Kubernetes provider
    custom: From my own existing nodes
    import: Import existing cluster
    infra: From new nodes in an infrastructure provider
    noCloud: There are no cluster drivers enabled.
    noInfra: There are no node drivers enabled.
  externalError: 'Component could not be loaded. Check URL.'
  members:
    label: Member Roles
    detail: Control who has access to the cluster and what permission they have to change it.
  config:
    label: Provider
    detail: Choose where the nodes for the cluster will come from
  nodes:
    title: Node Options
    detail: Customize the nodes that will be created
  customize:
    title: Cluster Options
  kubernetesOptions:
    title: Kubernetes Options
    detail: Customize the kubernetes cluster options
  security:
    title: Security Options
    detail: Customize the Service Account and Access Scopes
  psp:
    label: Default Pod Security Policy
    prompt: Select a Pod Security Policy...
    none: No policies are defined
    required: A Default Pod Security Policy is required when support is enabled.
  amazoneks:
    label: Amazon Elastic Container Service for Kubernetes
    shortLabel: Amazon EKS
    ingressWarning: "Note: Currently Amazon EKS will not create an ingress controller when launching a new cluster. If you need this functionality you will have to create an ingress controller manually after cluster creation."
    access:
      title: Account Access
      detail: Choose the region and API Key that will be used to launch Amazon EKS
  tencenttke:
    label: Tencent Kubernetes Engine
    shortLabel: Tencent TKE
    access:
      next: "Next: Configure Cluster"
      loading: "Loading VPCs from Tencent Cloud"
      title: Account Access
      detail: Choose the region and API Key that will be used to launch Tencent Kubernetes Service
    cluster:
      title: Cluster Configuration
      detail: Choose the VPC and Kubernetes version that will be used to launch Tencent Kubernetes Service
      next: "Next: Select Instance Type"
      loading: "Loading Availability Zones from Tencent Cloud"
    node:
      title: Instance Type
      detail: Choose the instance type that will be used to launch Tencent Kubernetes Service
      next: "Next: Configure Instance"
      loading: "Loading configuration from Tencent Cloud"
    instance:
      title: Instance Configuration
      detail: Configure the instance that will be used to launch Tencent Kubernetes Service
    subnet:
      label: Subnet
      required: Subnet is required
    os:
      label: Operating System
    disk:
      basic: Local Basic
      ssd: Local SSD
      cloudBasic: Cloud Basic
      cloudPremium: Cloud Premium
      cloudSsd: Cloud SSD
    rootSize:
      label: Root Disk Size
      placeholder: e.g. 25
    rootType:
      label: Root Disk Type
    storageType:
      label: Data Disk Type
    storageSize:
      label: Data Disk Size
      placeholder: e.g. 10
    bandwidth:
      label: Band Width
      placeholder: e.g. 10
    nodeCount:
      label: Node Count
      placeholder: e.g. 3
      required: Node Count is required
      help: The count of nodes will be launched in this Kubernetes cluster
    bandwidthType:
      label: Band Width Type
      hour: Pay By Hour
      traffic: Pay By Traffic
    keyPair:
      label: Key Pair
      required: Key Pair is required
    region:
      label: Region
    secretId:
      label: Secret ID
      placeholder: Your Tencent Cloud secret id
      required: Secret ID is required
    secretKey:
      label: Secret Key
      placeholder: Your Tencent Cloud secret key
      provided: Provided
      required: Secret Key is required
    securityGroup:
      label: Security Group
      required: Security Group is required
    vpc:
      label: VPC
      required: VPC is required
    version:
      label: Kubernetes Version
    cidr:
      label: Container Network CIDR
      placeholder: e.g. 172.16.0.0/16
      required: Container Network CIDR is required
    zone:
      label: Availability Zone
      required: Availability Zone is required
    instanceType:
      label: Instance Type
      required: Instance Type is required
  azureaks:
    label: Azure Container Service
    shortLabel: Azure AKS
    ingressWarning: "Note: Currently Azure AKS will not create an ingress controller when launching a new cluster. If you need this functionality you will have to create an ingress controller manually after cluster creation."
    authenticate:
      next: "Next: Authenticate & configure nodes"
    access:
      title: Account Access
      detail: Configure the Azure Active Directory (AD) Service Principal that will be used to talk to Azure
      help: 'You can find instructions on how to create an Azure AD Service Principal <a href="https://docs.microsoft.com/en-us/azure/aks/kubernetes-service-principal" target="_blank">here</a>.'
    placement:
      label: Placement
    count:
      label: Node Count
      placeholder: e.g. 1
    location:
      label: Location
      prompt: Choose a location...
    accountAccessSection:
      label: Account Access
    subscriptionId:
      label: Subscription ID
      placeholder: Your Azure subscription ID
    machineType:
      label: VM Size
      prompt: Choose a size...
    diskSizeGb:
      label: OS Disk Size
      placeholder: e.g. 100
    dns:
      label: DNS Prefix
      placeholder: "e.g. example"
    ssh:
      label: SSH Public Key
    security:
      label: Security
    members:
      label: Member Roles
    pod:
      label: Pod Security Policies
    kubernetesVersion:
      label: Kubernetes Version
      prompt: Choose a Version...
    admin:
      label: Admin Username
      placeholder: user-1
    tenant:
      label: Tenant ID
      placeholder: Your Azure tenant ID
    image:
      label: Image
      placeholder: 'canonical:UbuntuServer:16.04.0-LTS:latest'
    size:
      label: Size
    dockerPort:
      label: Docker Port
      placeholder: '2376'
    publishSettingsFile:
      label: Publish Settings
      placeholder: Your Publish Settings file
    environment:
      label: Environment
    resourceGroup:
      label: Cluster Resource Group
      placeholder: 'docker-machine'
      helpText: "Use an existing resource group or enter a new resource group name and one will be created for you. Note: Using a resource group containing an existing AKS cluster will create a new resource group. Azure AKS only allows one AKS cluster per resource group."
    networking:
      label: Networking
      default: Default
      advanced: Advanced
      vnet:
        label: Virtual Network - Subnet (Subnet CIDR)
        prompt: Select a Virtual Network/Subnet
      vnetresourcegroup:
        label: Virtual Network Resource Group
        prompt: Please select a Virtual Network
        help:  The Resource Group if your Virtual Network does not exist in the same Resource Group as your cluster.
      subnet:
        label: Subnet
      serviceCidr:
        label: Kubernetes service address range
        help: "A CIDR notation IP range from which to assign service cluster IPs. It must not overlap with any Subnet IP ranges. For example: 10.0.0.0/16."
        prompt: "10.43.0.0/16"
      dnsServiceIp:
        label: Kubernetes DNS service IP address
        help: "An IP address assigned to the Kubernetes DNS service. It must be within the Kubernetes service address range. For example: 10.0.0.10."
        placeholder: e.g. 10.0.0.10
      dockerBridgeCidr:
        label: Docker bridge address
        help: 'An IP address and netmask assigned to Docker Bridge. It must not be in any Subnet IP ranges, or the Kubernetes service address range. For example: 172.17.0.1/16.'
        placeholder: e.g. 172.17.0.1/16
    sshUser:
      label: SSH User
      placeholder: usr1
    storageType:
      label: Storage Type
    vnet:
      label: VNet
      placeholder: '[resourcegroup:]name'
    subnet:
      label: Subnet
      placeholder: example-sub-name
    subnetPrefix:
      label: Subnet Prefix
      placeholder: 128.42.0.0/21
    availabilitySet:
      label: Availability Set
      placeholder: availability-set-name
    openPort:
      label: Open Port
      placeholder: 'Comma-separated, e.g. 80,443'
    privateIpAddress:
      label: Private IP
      placeholder: 127.0.0.1
    usePrivateIp:
      label: Use Private IP To Connect
    staticPublicIp:
      label: Public IP
    noPublicIp:
      label: No Public IP
    clientId:
      label: Client ID
      placeholder: Your Client ID
    clientSecret:
      label: Client Secret
      placeholder: Your Client Secret
    region:
      label: Region
    enableHttpApplicationRouting:
      label: HTTP Application Routing
    enableMonitoring:
      label: Monitoring
    networkPolicy:
      label: Network Policy
      placeholder: Select a Network Policy
    tags:
      label: Tags
      addActionLabel: Add Tag
    errors:
      included:
        serviceCidr: 'Kubernetes service address range must be valid CIDR format.'
        dnsServiceIp: 'Kubernetes DNS service IP address must be valid a ip address.'
        dockerBridgeCidr: 'Docker bridge address must be valid CIDR format.'
        parsedServiceCidr: 'Kubernetes service address range must fall within the selected Virtual Network range.'
        parsedDnsServiceIp: 'Kubernetes DNS service IP address must fall within the entered Kubernetes service address range.'
        parsedDockerBridgeCidr: 'Docker bridge address can not overlap with the selected Virtual Network or the Kubernetes service address range'

  aliyunkcs:
    label: Aliyun Kubernetes Container Service
    shortLabel: Alibaba ACK
    access:
      next: "Next: Configure Cluster"
      loading: "Loading Zones from Alibaba ACK"
      title: Account Access
      detail: Choose the region and API Key that will be used to launch Alibaba Kubernetes Service
    cluster:
      title: Cluster Configuration
      detail: Choose the Zone and Kubernetes version that will be used to launch Alibaba Kubernetes Service
      next: "Next: Configure Master Nodes"
      loading: "Loading Availability Zones from Alibaba"
    clusters:
      k8s: Kubernetes
      managed: Managed Kubernetes
      label: Cluster Type
    master:
      title: Master Nodes
      detail: Configure the master nodes that will be used to launch Alibaba Kubernetes Service
      next: "Next: Configure Worker Nodes"
      loading: "Loading Key Pairs from Alibaba"
    worker:
      title: Worker Nodes
      detail: Configure the worker nodes that will be used to launch Alibaba Kubernetes Service
    disk:
      efficiency: Ultra Disk
      ssd: SSD Disk
    rootSize:
      label: Root Disk Size
      placeholder: e.g. 120
    rootType:
      label: Root Disk Type
    storageType:
      label: Data Disk Type
    storageSize:
      label: Data Disk Size
      placeholder: e.g. 120
    masterNum:
      label: Master Nodes Count
      help: The count of master nodes will be launched in this Kubernetes cluster
    numOfNodes:
      label: Worker Nodes Count
      placeholder: e.g. 3
      required: Worker Nodes Count is required
      help: The count of worker nodes will be launched in this Kubernetes cluster
    keyPair:
      label: Key Pair
      required: Key Pair is required
    regionId:
      label: Region
    accessKeyId:
      label: Access Key
      placeholder: Your Aliyun access key
      required: Access Key is required
    accessKeySecret:
      label: Secret Key
      placeholder: Your Aliyun secret key
      provided: Provided
      required: Secret Key is required
    version:
      label: Kubernetes Version
    zoneId:
      label: Availability Zone
      required: Availability Zone is required
    instanceType:
      label: Instance Type
      required: Instance Type is required
  googlegke:
    label: Google Kubernetes Engine
    shortLabel: Google GKE
    checkServiceAccount: "Next: Configure Nodes"
    checkingServiceAccount: Authenticating...
    credential:
      label: Service Account
      placeholder: Service account private key JSON file
      configured: Configured for {project} project
      helpText: |
        Create a <a href="https://console.cloud.google.com/projectselector/iam-admin/serviceaccounts" target="_blank" rel="nofollow noopener noreferrer">Service Account</a> with a JSON private key and provide the JSON here.  See <a href="https://cloud.google.com/compute/docs/access/create-enable-service-accounts-for-instances" target="_blank" rel="nofollow noopener noreferrer">Google Cloud docs</a> for more info about creating a service account. These IAM roles are required: Compute Viewer (<code>roles/compute.viewer</code>), (Project) Viewer (<code>roles/viewer</code>), Kubernetes Engine Admin (<code>roles/container.admin</code>), Service Account User (<code>roles/iam.serviceAccountUser</code>). More info on roles can be found <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/iam-integration" target="_blank" rel="nofollow noopener noreferrer">here.</a>
    zone:
      label: Zone
      prompt: Choose a Zone...
    project:
      label: Project
      placeholder: e.g. my-project
    machineType:
      label: Machine Type
      prompt: Choose a Type...
    nodeCount:
      label: Node Count
      prompt: Choose a Type...
      required: Node Count is required
      outsideError: "The specified number of nodes in the node pool is outside the specified autoscaling limits"
    diskSizeGb:
      label: Root Disk Size
    masterVersion:
      label: Kubernetes Version
      prompt: Choose a Version...
      warning: When you upgrade the Kubernetes version with GKE only the master version will be upgraded. If you would like to upgrade the nodes as well you will need to do this manually via the Google Cloud Platform.
    clusterIpv4Cidr:
      label: Container Address Range
      placeholder: e.g. 10.42.0.0/16
    alphaFeatures:
      label: Alpha Features
    legacyAuth:
      label: Legacy Authorization
    stackDriverLogging:
      label: Stackdriver Logging
    stackdriverMonitor:
      label: Stackdriver Monitoring
    dashboard:
      label: Kubernetes Dashboard
    httpLB:
      label: Http Load Balancing
    maintenanceWindow:
      label: Maintenance Window
    enableHorizontalPodAutoscaling:
      label: Horizontal Pod Autoscaling
    enableNodepoolAutoscaling:
      label: Node Pool Autoscaling
    minNodeCount:
      label: Minimum Node Count
      required: '"Minimum Node Count" is required'
    maxNodeCount:
      label: Maximum Node Count
      minError: Maximum Node Count should greater Minimum Node Count
      required: '"Maximum Node Count" is required'
    masterAuthUsername:
      label: Master Endpoint Username
      placeholder: Your Master Endpoint Username
      required: '"Master Endpoint Username" is required'
    masterAuthPassword:
      label: Master Endpoint Password
      placeholder: Your Master Endpoint Password
      required: '"Master Endpoint Password" is required'
    issueClientCertificate:
      label: Master Auth
    enableMasterAuthorizedNetwork:
      label: Master Authorized Network
    enablePrivateEndpoint:
      label: Access Master Using Its Internal IP Address
    enablePrivateNodes:
      label: Private Cluster
    masterIpv4CidrBlock:
      label: Master IP range
      placeholder: e.g. 10.42.0.0/28
    useIpAliases:
      label: Use Ip Aliases
    ipPolicySubnetworkName:
      label: Subnetwork Name
      placeholder: Your Subnetwork Name
    ipPolicyCreateSubnetwork:
      label: Create Subnetwork
    ipPolicyClusterSecondaryRangeName:
      label: Cluster Secondary Range Name
      placeholder: Your Cluster Secondary Range Name
    ipPolicyServicesSecondaryRangeName:
      label: Services Secondary Range Name
      placeholder: Your Services Secondary Range Name
    ipPolicyClusterIpv4CidrBlock:
      label: Pod address range
      placeholder: e.g. 10.96.0.0/11
    ipPolicyNodeIpv4CidrBlock:
      label: Node Ipv4 CIDR Block
      placeholder: Your Node Ipv4 CIDR Block
    masterAuthorizedNetworkCidrBlocks:
      label: Master Authorized Network CIDR Blocks
      placeholder: Your Master Authorized Network CIDR Blocks
      addActionLabel: Add CIDR Block
    ipPolicyServicesIpv4CidrBlock:
      label: Service address range
      placeholder: e.g. 10.94.0.0/18
    header:
      iPAllocationPolicy: IP Allocation Policy
      privateCluster: Private Cluster
      masteAuth: Master Auth
      nodePoolAutoscaling: Node Pool Autoscaling
      masterAuthorizedNetwork: Master Authorized Network
    locations:
      label: Additional Zones
    imageType:
      label: Image Type
      UBUNTU: Ubuntu
      COS: Container-Optimized OS
    network:
      label: Network
    subNetwork:
      label: Node Subnet
    nodeLabels:
      label: Node Labels
      addAction: Add Label
    clusterLabels:
      label: Cluster Labels
    localSsdCount:
      label: Local SSD disks
    diskType:
      label: Root disk type
      pd-standard: Standard persistent disk
      pd-ssd: SSD persistent disk
    preemptible:
      label: Preemptible nodes (beta)
    enableAutoUpgrade:
      label: Auto Upgrade
    enableAutoRepair:
      label: Auto Repair
    serviceAccount:
      label: Service Account
    oauthScopes:
      label: Access scopes
      default: Allow default access
      full: Allow full access to all Cloud APIs
      custom: Set access for each API
    userInfo:
      label: User Info
    computeEngine:
      label: Compute Engine
    storage:
      label: Storage
    taskQueue:
      label: Task queue
    bigQuery:
      label: BigQuery
    cloudSQL:
      label: Cloud SQL
    cloudDatastore:
      label: Cloud Datastore
    stackdriverLoggingAPI:
      label: Stackdriver Logging API
    stackdriverMonitoringAPI:
      label: Stackdriver Monitoring API
    cloudPlatform:
      label: Cloud Platform
    bigtableData:
      label: Bigtable Data
    bigtableAdmin:
      label: Bigtable Admin
    cloudPub:
      label: Cloud Pub/Sub
    serviceControl:
      label: Service Control
    serviceManagement:
      label: Service Management
    stackdriverTrace:
      label: Stackdriver Trace
    cloudSourceRepositories:
      label: Cloud Source Repositories
    cloudDebugger:
      label: Cloud Debugger
    taints:
      label: Taints
      addAction: Add Taint
      effect:
        label: Effect
      key:
        label: Key
        placeholder: Key
      value:
        label: Value
        placeholder: Value
      required: 'Taint "key" and "value" are required.'
    tablesOnly: Tables Only
  huaweicce:
    label: Huawei Cloud Container Engine
    shortLabel: Huawei CCE
    name:
      label: Cluster Name
      required: Cluster name is required.
    access:
      title: Account Access
      detail: Choose the region and API Key that will be used to launch Huawei Cloud Container Engine.
    accessKey:
      label: Access Key
      placeholder: Your Huawei access key
      help: You can find instructions on how to create Access Key <a href="https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606340.html" target="_blank">here</a>.
    secretKey:
      label: Secret Key
      placeholder: Your Huawei secret key
      help: You can find instructions on how to obtain Secret Key <a href="https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606340.html" target="_blank">here</a>.
    projectId:
      label: Project Id
      placeholder: Your CCE project id
      help: You can find instructions on how to obtain Project Id <a href="https://support.huaweicloud.com/usermanual-ca/zh-cn_topic_0046606344.html" target="_blank">here</a>.
      required: Project Id is required.
    region:
      label: Region
      helpText: You can find instructions on how to obtain Region <a href="https://developer.huaweicloud.com/endpoint" target="_blank">here</a>.
      required: Region is required.
    business:
      label: Business
    checkAccount: "Next: Configure cluster"
    checkingAccount: Authenticating...
    configureNode: "Next: Configure Node"
    configuringNode: Configuring...
    clusterOption:
      title: Cluster Options
      detail: Customize the cluster that will be used to launch Huawei Cloud Container Engine.
    clusterType:
      label: Cluster Type
    clusterFlavor:
      label: Cluster Flavor
    masterVersion:
      label: Master Version
    vpcId:
      label: VPC Name
    subnetId:
      label: Subnet Name
      none: No subnet in this VPC
    highwaySubnet:
      label: Highway Subnet
      placeholder: Highway Subnet
      none: No Highway Subnet can be used
    nodeOption:
      title: Nodes
      detail: Customize the nodes that will be used to launch Huawei Cloud Container Engine.
    dataVolumeType:
      label: Data Volume Type
    dataVolumeSize:
      label: Data Volume Size
    description:
      label: Description
      placeholder: e.g. Cluster for Huawei CCE
    eipBandwidthSize:
      label: Eip Bandwidth Size
    eipChargeMode:
      label: Eip Charge Mode
    eipCount:
      label: Eip Count
    availableZone:
      label: Zone
    billingMode:
      label: Billing Mode
      payPerUse: Pay-per-use
      yearly: Yearly/Monthly
    containerNetworkCidr:
      label: Container Network Cidr
      placeholder: e.g. 172.16.0.0/16
    containerNetworkMode:
      label: Container Network Mode
      none: No config
    rootVolumeType:
      label: Root Volume Type
    rootVolumeSize:
      label: Root Volume Size
    nodeCount:
      label: Node Count
    nodeFlavor:
      label: Node Flavor
    ssh:
      label: SSH Key Name
    eip:
      label: Eip
    eipSelection:
      none: Disabled
      new: Create Eip
      exist: Select Existed Eip
    eipIds:
      label: Eip
      none: No available Eip
    eipType:
      label: Eip Type
    clusterLabels:
      label: Cluster Label
      none: No label
    nodeLabels:
      label: Node Label
    clusterEipId:
      label: Cluster Eip
      prompt: Choose a Eip...
    externalServerEnabled:
      label: External Server
      enabled: Enabled - Only support in intranet
      disabled: Disabled - Setup cce cluster in the same vpc as Rancher server
    highAvailability:
      label: High Availability
    managementScale:
      label: Management Scale count
    nodeOperationSystem:
      label: Node Operation System
    authenticatingProxyCa:
      label: Certificate
    validityPeriod:
      label: Validity Period
    bmsIsAutoRenew:
      label: Auto Renew
    loginMode:
      label: Login Mode
      password: Password
      keyPair: Key Pair
    password:
      label: Password
      placeholder: Please enter password
    userName:
      label: User Name
    authentiactionMode:
      label: Authentiaction Mode
      rbac: RBAC
      authenticating_proxy: Authenticating Proxy
    eipShareType:
      label: EIP Share Type
  rke:
    clustersSelectTemplate:
      label: "Use an existing cluster template and revision"
      select:
        label: Cluster Templates
        prompt: Select a cluster template
    clustersSelectTemplateRevision:
      select:
        prompt: Select a cluster template revision
    etcd:
      enabled:
        label: Recurring etcd Snapshot Enabled
      backupConfig:
        legacy: "This cluster was configured with a legacy etcd snapshot api. The new api replaces the creation time and retention time durations with a simpler creation time in hours and retention count. We have migrated your creation period automatically. Retention count has been configured to the default of 6 snapshots (current retention duration: {duration}), if you're okay with this setting no further action is required. If not, you may change the setting in the advanced settings section."
        retention:
          label: Recurring etcd Snapshot Retention Count
          placeholder: "12"
        interval:
          label: Recurring etcd Snapshot Creation Period
          placeholder: "6"
        bucketName:
          label: S3 Bucket Name
          placeholder: "e.g. backups"
        region:
          label: S3 Region
          placeholder: "e.g. us-west-2"
        endpoint:
          label: S3 Region Endpoint
          placeholder: "e.g. s3.us-west-2.amazonaws.com"
        folder:
          label: S3 Folder
          placeholder: "e.g. cluster-backup"
        accessKey:
          label: S3 Access Key
          placeholder: Your AWS access key
        secretKey:
          label: S3 Secret Key
          placeholder: Your AWS secret key
          provided: Provided
        customCa:
          label: Custom CA Certificate
          placeholder: "Paste in the certificate and any necessary chain certificates, starting with -----BEGIN CERTIFICATE-----"
      location:
        label: etcd Snapshot Backup Target
        s3:
          label: s3
          help: etcd snapshots will occur locally, subsequently the snapshot will be backed up to the configured s3 target
        local:
          label: local
          help: snapshots only exist locally, no external backups are performed
      heartbeat:
        label: etcd Heartbeat Interval
        placeholder: Time of a heartbeat interval
      election:
        label: etcd Election Timeout
        placeholder: Time for an election to timeout
      snapshot:
        label: Recurring etcd Snapshots
      retention:
        label: Recurring etcd Snapshot Retention Period
        placeholder: "12h"
        help: "acceptable duration units: h, m, s"
      creation:
        label: Recurring etcd Snapshot Creation Period
        placeholder: "6h"
      error: "etcd Snapshot {type} Period Error: You must specify a valid time duration. You entered {entry}"
    nodeName:
      title: Node Name
      detail: Optionally configure the node name as identification instead of the actual hostname
      placeholder: e.g. my-worker-node
    address:
      title: Node Address
      detail: Optionally configure the public address and internal address for machines
      warning: This doesn't look like an address
      public:
        label: Public Address
        placeholder: e.g. 1.2.3.4
      private:
        label: Internal Address
        placeholder: e.g. 1.2.3.4
    label: '{appName} Kubernetes Engine'
    shortLabel: Custom
    customize:
      label: Cluster Options
      detail: "Customize Kubernetes options for the cluster"
    labels:
      title: Node Labels
      detail: Optional labels to be applied to the node
    taints:
      title: Node Taints
      detail: Optional taints to be applied to the node
    nodes:
      title: Node Pools
      detail: Configure the machines that will make up the cluster
      add: Add Node Pool
      addTemplate: Add Node Template
      templatePrompt: "Choose a Template..."
      hostnamePrefix: Name Prefix
      count: Count
      template: Template
      deleteNotReadyAfterSecs: Auto Replace
      deleteNotReadyAfterSecsTooltip: "If greater than 0, nodes that are unreachable for this long will be automatically deleted and replaced."
      taints: Taints
    detected: |
      {count, plural,
        =1 {# new node has registered}
        other {# new nodes have registered}
      }
    done: Done
    info:
      text: Editing node options will update the command you will run on your existing machines
    command:
      instructions: 'Run this command on one or more existing machines already running a supported version of Docker.'
      winInstructions: 'Run this command in <code>CMD</code> on one or more existing machines already running a supported version of Docker and windows server version more than <code class="code-version">{version}</code>.'
    auth:
      label: Auth Provider
      x509: x509
    serviceNodePortRange:
      label: Node Port Range
      placeholder: e.g. 30000-32767
    network:
      title: Networking
      detail: Configure the networking for the cluster
      label: Network Provider
      flannel: Flannel
      flannelCustom: Flannel
      calico: Calico
      canal: Canal (Network Isolation Available)
      weave: Weave
      flannelBackends:
        label: Flannel Backend
        hostgw: Host Gateway (L2bridge)
        vxlan: VXLAN (Overlay)
      options:
        flannel:
          iface:
            label: Interface
        canal:
          iface:
            label: Interface
        calico:
          cloudProvider:
            label: Cloud Provider
      type:
        info: Only support "host-gw" backend
    ingress:
      label: Nginx Ingress
    monitoring:
      label: Metrics Server Monitoring
    networkPolicy:
      label: Project Network Isolation
    version:
      label: Kubernetes Version
    registry:
      label: Pull Kubernetes Images From
      default: The default registry (DockerHub)
      custom: "A custom registry:"
      url:
        label: URL
        placeholder: e.g. quay.io
      user:
        label: Username
      password:
        label: Password
    ignoreDockerVersion:
      label: Docker version on nodes
      enabled: Allow unsupported versions
      disabled: Require a supported Docker version
    podSecurityPolicy:
      label: Pod Security Policy Support
    role:
      pageheader: Customize Node Run Command
      sectionheader: Node Options
      title: Node Role
      detail: Choose what roles the node will have in the cluster
      header:
        etcd: etcd
        controlplane: Control Plane
        worker: Worker
      requirements:
        label: "Number of nodes required:"
        etcd: 1, 3, or 5
        controlplane: 1 or more
        worker: 1 or more
    kubeApi:
      label: Kube API
      ipRange: Service Cluster IP Range
      podSecurityPolicy: Pod Security Policy
    kubeController:
      label: Kube Controller
      cidr: Cluster CIDR
      ipRange: Service Cluster IP Range
    kubelet:
      label: Kubelet
      domain: Cluster Domain
      dns: Cluster DNS Server
    warning:
      etcd:
        even: Setting {count} etcd nodes is a waste of hardware because it doesn't increase the quorum until you have an odd number.
        noEtcd: The number of etcd nodes should not be less than 1.
      aws:
        iam: 'An IAM role name should be provided in node template when using the Cloud Provider Amazon'
    errors:
      etcd: Please select 1, 3, or 5 nodes to use for etcd.
      controlPlane: Please select at least one node to use for the control plane.
      worker: Please select at least one node to use as a worker.
    dockerRootDir:
      placeholder: Default directory is {dir}.
    system:
      title: Node Operating System
      detail: The OS of the node which will be added into the cluster
      linux: Linux
      windows: Windows
    windowsSupport:
      label: Windows Support
      help: Available for Kubernetes 1.14 with Flannel network provider.
      disabled: Not support {plugin} network provider.
    advanced:
      label: Advanced Options
      detail: Customize advanced cluster options
    authorizedEndpoint:
      title: Authorized Endpoint
      detail: "Enabling the authorized cluster endpoint allows direct communication with the cluster, bypassing the API proxy. Authorized endpoints can be retrieved by generating a kubeconfig for the cluster."
      label: Authorized Cluster Endpoint
  custom:
    label: From existing nodes
    shortLabel: Custom
    helpBlock: Create a new Kubernetes cluster out of existing bare-metal servers or virtual machines.
  import:
    label: Import an existing cluster
    shortLabel: Imported
    helpBlock: Import an existing Kubernetes cluster.  The provider that created it will continue to manage the provisioning and configuration of the cluster.
    command:
      instructionsAdminRole: "<b>Note:</b> If you want to import a Google Kubernetes Engine (GKE) cluster (or any cluster that does not supply you with a kubectl configuration file with the ClusterRole <b>cluster-admin</b> bound to it), you need to bind the ClusterRole <b>cluster-admin</b> using the command below.<br/><br/>Replace <b>[USER_ACCOUNT]</b> with your Google account address (you can retrieve this using <b>gcloud config get-value account</b>). If you are not importing a Google Kubernetes Engine cluster, replace <b>[USER_ACCOUNT]</b> with the executing user configured in your kubectl configuration file."
      instructions: "Run the kubectl command below on an existing Kubernetes cluster running a supported Kubernetes version to import it into {appName}:"
      instructionsInsecure: "If you get an error about 'certificate signed by unknown authority' because your {appName} installation is running with an untrusted/self-signed SSL certificate, run the command below instead to bypass the certificate check:"

clusterTemplateNew:
  members:
    label: Member Roles
    detail: Control who has access to the cluster template and what permission they have to change it.

cruClusterTemplate:
  name:
    label: 'Template Name'
  revisionName:
    label: 'Template Revision Name'
    help: 'Not required but a descriptive name is suggested to help in easily locating the correct revision.'
  source:
    label: 'Source Revision'
  default:
    label: 'Default Revision'
  members:
    label: 'Share Template'
    detail: 'Share this cluster template with individual members or make it public to your organization. This affects all template revisions in this cluster template.'
  edit:
    label: 'Edit Cluster Template'
  selectRevision:
    label: 'Select Default Revision'


clusterTemplateQuestions:
  label: 'Cluster Option Overrides'
  detail: 'Parameters and default values that you would like the end consumer to provide data for.'
  table:
    question: 'Override Parameter'
    answer: 'Default Value'
    type: 'Type'
    required: 'Required'
    noMatch: 'No overrides match the current search'
    noData: 'No overrides'
  schemaLabels:
    defaultClusterRoleForProjectMembers: 'Default Cluster Role For Project Memebers'
    defaultPodSecurityPolicyTemplateId: 'Default Pod Security Policy Template Id'
    desiredAgentImage: 'Desired Agent Image'
    desiredAuthImage: 'Desired Auth Image'
    dockerRootDir: 'Docker Root Directory'
    enableClusterAlerting: 'Enable Cluster Alerting'
    enableClusterMonitoring: 'Enable Cluster Monitoring'
    enableNetworkPolicy: 'Enable Network Policy'
    localClusterAuthEndpoint: 'Enable Local CLuster Auth Endpoint'
    caCerts: 'CA Certs'
    fqdn: 'FQDN'
    addonJobTimeout: 'Addon Job Timeout'
    addons: 'Addons'
    addonsInclude: 'Addons Include'
    authentication: 'Authentication'
    authorization: 'Authorization'
    bastionHost: 'Bastion Host'
    cloudProvider: 'Cloud Provider'
    dns: 'DNS Config'
    ignoreDockerVersion: 'Ignore Docker Version'
    ingress: 'Ingress'
    kubernetesVersion: 'Kubernetes Version'
    monitoring: 'Monitoring Config'
    network: 'Network Config'
    prefixPath: 'Prefix Path'
    privateRegistries: 'Private Registry Config'
    restore: 'Restore'
    rotateCertificates: 'Rotate Certificates'
    services: 'Services'
    sshAgentAuth: 'Enable SSH Agent Auth'
    sshCertPath: 'SSH Certificate Path'
    sshKeyPath: 'SSH Key Path'


conditionSections:
  title: Status
  detail: Status of current {resourceType}
  table:
    type: Type
    status: Status
    lastUpdate: Last Update
    reason: Reason
    message: Message
  noData: No Conditions
  noMatch: No conditions match the current search

resourceEventList:
  title: Events
  detail: Events of current {resourceType}
  table:
    type: Type
    lastUpdate: Last Update
    reason: Reason
    message: Message
  noData: No Events
  noMatch: No events match the current search

confirmDelete:
  title: 'Are you sure you want to delete'
  environmentNote: 'Note: All resources inside this Project will be permanently removed, including any namespaces that were created through {appName}.'
  clusterNote: 'Note: Associated resources such as volumes, balancers, and networks that were created in the cloud provider will not be automatically removed.'
  clusterRoleTemplateBindingNote: "Note: User's project permissions will not be removed."
  systemProjectNamespaceNote: 'You are removing the namespaces under system project. It might cause the harmful effects to the cluster if it is removed.'
  systemProjectNote: 'You are removing the system project. It might cause the harmful effects to the cluster if they are removed.'
  protip: 'ProTip: Hold the {key} key while clicking Delete to bypass this confirmation.'
  confirmAction: Delete
  cancelAction: Cancel
  largeDeleteText: '{key} and {othersCount} others'
  systemChartNote: 'You are removing a system app. It may cause issues with the cluster if it is removed.'

containerLogs:
  download: Download Logs
  title: "Logs: "
  onlyCombined: "<b>Note:</b> Only combined stdout/stderr logs are available for this container because it was run with the TTY (-t) flag."
  combined: Combined
  stdout: Standard Out
  stderr: Standard Error
  protip: "ProTip: Hold the {key} key when opening logs to launch a new window."
  scrollTop: Scroll to Top
  scrollBottom: Scroll to Bottom
  clear: Clear Screen
  wrapLines: Wrap lines
  status:
    initializing: Initializing...
    connecting: Connecting...
    connected: Connected
    disconnected: Disconnected
    closed: Closed

containerShell:
  protip: "ProTip: Hold the {key} key when opening shell access to launch a new window."
  status:
    initializing: Initializing...
    error: "Error: {error}"
    connecting: Connecting...
    connected: Connected
    disconnected: Disconnected
    closed: Closed
    code: "Code: {code}"

copyToClipboard:
  tooltip: Copy to Clipboard
  copied: Copied!

cruRegistry:
  title:
    new: Add Registry
    edit: 'Edit Registry: {name}'
    view: 'Registry: {name}'
  address:
    label: Address
    dockerhub: DockerHub
    quay: Quay.io
    custom: Custom
    globalRegistry: Global Registry
    placeholder: e.g. registry.example.com
    artifactory: Artifactory
  multiple: Multiple
  auth:
    label: Auth token
    saved: Saved
  username:
    label: Username
  password:
    label: Password
    saved: Saved

cruPersistentVolume:
  name:
    placeholder: e.g. myvolume
  description:
    placeholder: e.g. Volume for production database
  title:
    new: Add Persistent Volume
    edit: 'Edit Persistent Volume: {name}'
    view: 'Persistent Volume: {name}'
  storageClass:
    label: Assign to Storage Class
    prompt: None
  pvc: Persistent Volume Claim
  reclaimPolicy: Reclaim Policy
  capacity:
    label: Capacity
    unit: GiB
  source:
    label: Volume Plugin
    title: Plugin Configuration
    detail: Configure options for the selected volume plugin
    prompt: Choose a volume plugin...
  nodeAffinity:
    label: Node Affinity
  customize:
    title: Customize
    detail: Customize Advanced options
  mountOptions:
    label: Mount Options
    addActionLabel: Add Option
    noData: No Mount Options
  awsElasticBlockStore:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    readOnly:
      label: Read Only
    partition:
      label: Partition
      placeholder: "e.g. 1; 0 for entire device"
    volumeID:
      label: Volume ID
      placeholder: "e.g. volume1"
  azureDisk:
    cachingMode:
      label: Caching Mode
      none: None
      readOnly: Read Only
      readWrite: Read Write
    diskName:
      label: Disk Name
      placeholder: "e.g. kubernetes-pvc"
    diskURI:
      label: Disk URI
      placeholder: "e.g. https://example.com/disk"
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    kind:
      label: Kind
      dedicated: Dedicated
      managed: Managed
      shared: Shared
    readOnly:
      label: Read Only
  secret:
    defaultMode:
      label: Default Mode
      placeholder: "e.g. 256"
    optional:
      label: Optional
    secretName:
      label: Secret
    certificateName:
      label: Certificate
    items:
      label: Items
  configMap:
    defaultMode:
      label: Default Mode
      placeholder: "e.g. 256"
    optional:
      label: Optional
    name:
      label: Config Map Name
    items:
      label: Items
  emptyDir:
    medium:
      label: Medium
      default: Node's Default Medium
      memory: Memory
    sizeLimit:
      label: Size Limit
      placeholder: "e.g. 300Mi"
  azureFile:
    secretName:
      label: Secret Name
      placeholder: "e.g. secret"
    secretNamespace:
      label: Secret Namespace
      placeholder: "e.g. default"
    shareName:
      label: Share Name
      placeholder: "e.g. abc"
    readOnly:
      label: Read Only
  cephfs:
    monitors:
      label: Monitors
      addActionLabel: Add
    path:
      label: Path
      placeholder: "e.g. /var"
    readOnly:
      label: Read Only
    secretFile:
      label: Secret File
      placeholder: "e.g. secret"
    secretRef:
      name:
        label: Secret Name
        placeholder: "e.g. abc"
      namespace:
        label: Secret Namespace
        placeholder: "e.g. default"
      label: Secret Name
    user:
      label: User
      placeholder: "e.g. root"
  rbd:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    image:
      label: Image
      placeholder: "e.g. image"
    keyring:
      label: Key Ring
      placeholder: "e.g. /etc/ceph/keyring"
    monitors:
      label: Monitors
      addActionLabel: Add
    pool:
      label: Pool
      placeholder: "e.g. rbd"
    readOnly:
      label: Read Only
    secretRef:
      label: Secret Name
      placeholder: "e.g. secret"
    user:
      label: User
      placeholder: "e.g. root"
  fc:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    lun:
      label: Lun
      placeholder: "e.g. 2"
    readOnly:
      label: Read Only
    targetWWNs:
      label: Target WWNs
      addActionLabel: Add
    wwids:
      label: Wwids
      addActionLabel: Add
  flexVolume:
    driver:
      label: Driver
      placeholder: "e.g. driver"
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    options:
      label: Options
      addActionLabel: Add
    readOnly:
      label: Read Only
    secretRef:
      label: Secret Name
      placeholder: "e.g. secret"
  flocker:
    datasetName:
      label: Dataset Name
      placeholder: "e.g. dataset"
    datasetUUID:
      label: Dataset UUID
      placeholder: "e.g. uuid"
  glusterfs:
    endpoints:
      label: Endpoints
      placeholder: "e.g. glusterfs-cluster"
    path:
      label: Path
      placeholder: "e.g. kube_vol"
    readOnly:
      label: Read Only
  gcePersistentDisk:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    partition:
      label: Partition
      placeholder: "e.g. 1; 0 for entire device"
    pdName:
      label: Persistent Disk Name
      placeholder: "e.g. abc"
    readOnly:
      label: Read Only
  iscsi:
    chapAuthDiscovery:
      label: Chap Auth Discovery
    chapAuthSession:
      label: Chap Auth Session
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    initiatorName:
      label: Initiator Name
      placeholder: "e.g. abc"
    iqn:
      label: IQN
      placeholder: "e.g. 2"
    iscsiInterface:
      label: iSCSI Interface
      placeholder: "e.g. interface"
    lun:
      label: Lun
      placeholder: "e.g. 2"
    portals:
      label: Portals
      addActionLabel: Add
    readOnly:
      label: Read Only
    secretRef:
      label: Secret Name
      placeholder: "e.g. secret"
    targetPortal:
      label: Target Portal
      placeholder: "e.g. portal"
  local:
    path:
      label: Path
      placeholder: "e.g. /mnt/disks/ssd1"
  nfs:
    path:
      label: Path
      placeholder: "e.g. /var"
    readOnly:
      label: Read Only
    server:
      label: Server
      placeholder: "e.g. 10.244.1.4"
  cinder:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    readOnly:
      label: Read Only
    volumeID:
      label: Volume ID
      placeholder: "e.g. vol"
    secretRef:
      name:
        label: Secret Name
        placeholder: "e.g. abc"
      namespace:
        label: Secret Namespace
        placeholder: "e.g. default"
      label: Secret Name
  photonPersistentDisk:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    pdID:
      label: PD ID
      placeholder: "e.g. abc"
  portworxVolume:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    readOnly:
      label: Read Only
    volumeID:
      label: Volume ID
      placeholder: "e.g. abc"
  quobyte:
    group:
      label: Group
      placeholder: "e.g. abc"
    readOnly:
      label: Read Only
    registry:
      label: Registry
      placeholder: "e.g. abc"
    user:
      label: User
      placeholder: "e.g. root"
    volume:
      label: Volume
      placeholder: "e.g. vol"
  scaleIO:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    gateway:
      label: Gateway
      placeholder: "e.g. https://localhost:443/api"
    protectionDomain:
      label: Protection Domain
      placeholder: "e.g. pd01"
    readOnly:
      label: Read Only
    secretRef:
      name:
        label: Secret Name
        placeholder: "e.g. secret"
      namespace:
        label: Secret Namespace
        placeholder: "e.g. default"
      label: Secret Name
    sslEnabled:
      label: SSL Enabled
    storageMode:
      label: Storage Mode
      placeholder: "e.g. ThinProvisioned"
    storagePool:
      label: Storage Pool
      placeholder: "e.g. sp01"
    system:
      label: System
      placeholder: "e.g. scaleio"
    volumeName:
      label: Volume Name
      placeholder: "e.g. vol-0"
  storageos:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    readOnly:
      label: Read Only
    secretRef:
      name:
        label: Secret Name
        placeholder: "e.g. secret"
      namespace:
        label: Secret Namespace
        placeholder: "e.g. default"
      label: Secret Name
    volumeName:
      label: Volume Name
      placeholder: "e.g. vol"
    volumeNamespace:
      label: Volume Namespace
      placeholder: "e.g. default"
  vsphereVolume:
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    storagePolicyID:
      label: Storage Policy ID
      placeholder: "e.g. sp1"
    storagePolicyName:
      label: Storage Policy Name
      placeholder: "e.g. sp"
    volumePath:
      label: Volume Path
      placeholder: "e.g. /"

cruStorageClass:
  name:
    placeholder: e.g. storage
  description:
    placeholder: e.g. AWS EBS Storage
  title:
    new: Add Storage Class
    edit: 'Edit Storage Class: {name}'
    view: 'Storage Class: {name}'
  allowVolumeExpansion:
    label: Allow users to expand volumes
  pv:
    title: Persistent Volumes
    detail: Persistent Volumes provisioned by the current storage class.
  mountOptions:
    label: Mount Options
    addActionLabel: Add Option
    noData: No Mount Options
  parameters:
    title: Parameters
    detail: Configure the provider-specific parameters for the storage class
    addActionLabel: Add Parameter
  customize:
    title: Customize
    detail: Customize Advanced options
  provisioner:
    label: Provisioner
  reclaimPolicy:
    label: Reclaim Policy
    Delete: Delete volumes and underlying device when released by workloads
    Retain: Retain the volume for manual cleanup
    Recycle: "Recycle: Empty the contents and then preserve the volume for future workloads"
  aws-ebs:
    type:
      label: Volume Type
      gp2: 'GP2 - General Purpose SSD'
      io1: 'IO1 - Provisioned IOPS SSD'
      st1: 'ST1 - Throughput-Optimized HDD'
      sc1: 'SC1 - Cold-Storage HDD'
    zone:
      label: Availability Zone
      automatic: "Automatic: Zones the cluster has a node in"
      manual: "Manual: Choose specific zones"
      placeholder: "us-east-1d, us-east-1c"
    iopsPerGB:
      label: Provisioned IOPS
      unit: per second, per GB
    encrypted:
      label: Encryption
    kmsKeyId:
      label: KMS Key ID for Encryption
      automatic: "Automatic: Generate a key"
      manual: "Manual: Use a specific key (full ARN)"
  gce-pd:
    type:
      label: Volume Type
      pd-standard: 'Standard'
      pd-ssd: 'SSD'
    zone:
      label: Availability Zone
      automatic: "Automatic: Zones the cluster has a node in"
      manual: "Manual: Choose specific zones"
      placeholder: "us-central1-a, us-central1-b"
  cinder:
    type:
      label: Volume Type
      placeholder: "e.g. fast"
    availability:
      label: Availability Zone
      automatic: "Automatic: Zones the cluster has a node in"
      manual: "Manual: Choose specific zones"
      placeholder: "e.g. nova"
  vsphere-volume:
    diskformat:
      label: Disk Format
      thin: Thin
      zeroedthick: Zeroed Thick
      eagerzeroedthick: Eager Zeroed Thick
    storagePolicyName:
      label: Storage Policy Name
      placeholder: "e.g. gold"
    datastore:
      label: Datastore
      placeholder: "e.g. VSANDatastore"
    fstype:
      label: Filesystem Type
      placeholder: "e.g. ext3"
    hostFailuresToTolerate:
      label: Host Failures To Tolerate
      placeholder: "e.g. 2"
    cachereservation:
      label: Cache Reservation
      placeholder: "e.g. 20"
  azure-disk:
    new: New Azure Disk
    skuName:
      label: Sku Name
      placeholder: "e.g. Standard_LRS"
    location:
      label: Location
      placeholder: "e.g. eastus"
    storageAccount:
      label: Storage Account
      placeholder: "e.g. azure_storage_account_name"
    storageaccounttype:
      label: Storage Account Type
      placeholder: "e.g. Standard_LRS"
    kind:
      label: Kind
      shared: Shared (unmanaged disk)
      dedicated: Dedicated (unmanaged disk)
      managed: Managed
      placeholder: "e.g. Shared"
  azure-file:
    skuName:
      label: Sku Name
      placeholder: "e.g. Standard_LRS"
    location:
      label: Location
      placeholder: "e.g. eastus"
    storageAccount:
      label: Storage Account
      placeholder: "e.g. azure_storage_account_name"
  portworx-volume:
    fs:
      label: Filesystem
      placeholder: "e.g. ext4"
    block_size:
      label: Block Size
      placeholder: "e.g. 32"
    repl:
      label: Repl
      placeholder: "e.g. 1; 0 for entire device"
    io_priority:
      label: I/O Priority
      placeholder: "e.g. low"
    snap_interval:
      label: Snapshots Interval
      placeholder: "e.g. 70"
    aggregation_level:
      label: Aggregation Level
      placeholder: "e.g. 0"
    ephemeral:
      label: Ephemeral
      placeholder: "e.g. true"
  scaleio:
    gateway:
      label: Gateway
      placeholder: "e.g. https://192.168.99.200:443/api"
    system:
      label: System
      placeholder: "e.g. scaleio"
    protectionDomain:
      label: Protection Domain
      placeholder: "e.g. pd0"
    storagePool:
      label: Storage Pool
      placeholder: "e.g. sp1"
    storageMode:
      label: Storage Mode
      ThinProvisioned: Thin Provisioned
      ThickProvisioned: Thick Provisioned
    secretRef:
      label: Secret Ref
      placeholder: "e.g. sio-secret"
    readOnly:
      label: Read Only
      placeholder: "e.g. false"
    fsType:
      label: Filesystem Type
      placeholder: "e.g. xfs"
  storageos:
    pool:
      label: Pool
      placeholder: "e.g. default"
    description:
      label: Description
      placeholder: "e.g. Kubernetes volume"
    adminSecretNamespace:
      label: Admin Secret Namespace
      placeholder: "e.g. default"
    adminSecretName:
      label: Admin Secret Name
      placeholder: "e.g. storageos-secret"
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
  longhorn:
    numberOfReplicas:
      label: Number Of Replicas
      placeholder: "e.g. 3"
    staleReplicaTimeout:
      label: Stale Replica Timeout
      placeholder: "e.g. 30"
    fromBackup:
      label: From Snapshot
      placeholder: ""
  quobyte:
    quobyteAPIServer:
      label: Quobyte API Server
      placeholder: "e.g. http://138.68.74.142:7860"
    registry:
      label: Registry
      placeholder: "e.g. 138.68.74.142:7861"
    adminSecretNamespace:
      label: Admin Secret Namespace
      placeholder: "e.g. kube-system"
    adminSecretName:
      label: Admin Secret Name
      placeholder: "e.g. quobyte-admin-secret"
    user:
      label: User
      placeholder: "e.g. root"
    group:
      label: Group
      placeholder: "e.g. root"
    quobyteConfig:
      label: Quobyte Config
      placeholder: "e.g. BASE"
    quobyteTenant:
      label: Quobyte Tenant
      placeholder: "e.g. DEFAULT"
  rbd:
    monitors:
      label: Monitors
      placeholder: "e.g. 10.16.153.105:6789"
    adminId:
      label: Admin ID
      placeholder: "e.g. kube"
    adminSecretNamespace:
      label: Admin Secret Namespace
      placeholder: "e.g. kube-system"
    adminSecretName:
      label: Admin Secret
      placeholder: "e.g. secret"
    pool:
      label: Pool
      placeholder: "e.g. kube"
    userId:
      label: User ID
      placeholder: "e.g. kube"
    userSecretName:
      label: User Secret Name
      placeholder: "e.g. ceph-secret-user"
    userSecretNamespace:
      label: User Secret Namespace
      placeholder: "e.g. default"
    fsType:
      label: Filesystem Type
      placeholder: "e.g. ext4"
    imageFormat:
      label: Image Format
      placeholder: "e.g. 2"
    imageFeatures:
      label: Image Features
      placeholder: "e.g. layering"
  glusterfs:
    resturl:
      label: REST URL
      placeholder: "e.g. http://127.0.0.1:8081"
    restuser:
      label: REST User
      placeholder: "e.g. admin"
    restuserkey:
      label: REST User Key
      placeholder: "e.g. password"
    secretNamespace:
      label: Secret Namespace
      placeholder: "e.g. default"
    secretName:
      label: Secret Name
      placeholder: "e.g. heketi-secret"
    clusterid:
      label: Cluster ID
      placeholder: "e.g. 630372ccdc720a92c681fb928f27b53f"
    gidMin:
      label: GID MIN
      placeholder: "e.g. 40000"
    gidMax:
      label: GID MAX
      placeholder: "e.g. 50000"
    volumetype:
      label: Volume Type
      placeholder: "e.g. replicate:3"

dangerZone:
  header: Advanced Settings
  subtext: "Typical users will not need to change these.  Proceed with caution, incorrect values can break your {appName} installation.<br/>Settings which have been customized from default settings  are shown in <b>bold</b>."
  showLabel: I understand that I can break things by changing advanced settings.
  show: Show
  hide: Hide
  description:
    'cacerts': "CA Certificates needed to verify the server's certificate."
    'cluster-defaults': 'Override RKE Defaults when creating new clusters.'
    'engine-install-url': 'Default Docker engine installation URL (for most node drivers).'
    'engine-iso-url': 'Default OS installation URL (for vSphere driver).'
    'engine-newest-version': 'The newest supported version of Docker at the time of this release.  A Docker version that does not satisfy supported docker range but is newer than this will be marked as untested.'
    'engine-supported-range': 'Semver range for supported Docker engine versions.  Versions which do not satisfy this range will be marked unsupported in the UI.'
    'ingress-ip-domain': 'Wildcard DNS domain to use for automatically generated Ingress hostnames. <ingress-name>.<namespace-name>.<ip address of ingress controller> will be added to the domain.'
    'server-url': 'Default {appName} install url. Must be HTTPS. All nodes in your cluster must be able to reach this.'
    'system-default-registry': 'Private registry to be used for all system Docker images.'
    'ui-index': 'HTML index location for the UI.'
    'ui-pl': 'Private-Label company name.'
    'telemetry-opt': 'Telemetry reporting opt-in.'
    'auth-user-info-max-age-seconds': 'The maximum age of a users auth tokens before an auth provider group membership sync will be performed.'
    'auth-user-info-resync-cron': 'Default cron schedule for resyncing auth provider group memberships.'
    'cluster-template-enforcement': 'Non-admins will be restricted to launching clusters via preapproved cluster templates only.'

deleteEksCluster:
  title: "Delete {clusterName}?"
  help: This cluster was created with a temporary session token. Please provide keys and token to delete the cluster.
  updateKeys: Update Keys
  updatingKeys: Updating Keys
  deleteCluster: Delete Cluster
  deletingCluster: Deleting Cluster
  accessKey:
    label: Access Key
    placeholder: Your AWS access key
  secretKey:
    label: Secret Key
    placeholder: Your AWS secret key
    provided: Provided
  sessionToken:
    label: "Session Token  <em class='text-muted'>Optional</em>"
    deleteLabel: Session Token
    placeholder: Your AWS session token
    provided: Provided
  error:
    accessKey: Access key is required.
    secretKey: Secret key is required.
    sessionToken: Session token is required.

hpaPage:
  noMatch: No HPA match the current search
  noData: There are no HPA to show
  notSupported: autoscaling/v2beta2 API is not available in the cluster.
  table:
    replicas:
      range: Replicas Range
      current: Current Replicas
      desired: Desired
    lastScaleTime:
      label: Last Scale
    target:
      label: Target Workload

editAccount:
  title: Edit Account
  form:
    name:
      label: Display Name
      placeholder: e.g. John Smith
    kind:
      label: Account Type
      user: Normal User
      admin: "Admin: Full access to manage everything in all clusters"
    description:
      label: Description
      placeholder: e.g. This account is for John Smith
    publicValue:
      label: Username
    oldPassword:
      label: Current Password
    newPassword:
      label: New Password
    confirmPassword:
      label: Confirm Password
    identity:
      label: Identity

editApiKey:
  title:
    justCreated: API Key Created
    editing: Edit API Key
    new: Add API Key
  accessKey: Access Key (username)
  secretKey: Secret Key (password)
  basicAuth: "Access Key and Secret Key can be sent as the username and password for HTTP Basic auth to authorize requests.  You can also combine them to use as a Bearer token:"
  token: Bearer Token
  scope: Scope
  scopeSelect:
    prompt: no scope
    helpText: 'Cluster-scoped tokens can be used to interact directly with the Kubernetes API of clusters configured with an <a href="https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/#authorized-cluster-endpoint" target="_blank" rel="nofollow noreferrer">Authorized Cluster Endpoint</a>'
  ttl:
    label: Automatically Expire
    never: Never
    day: A day from now
    month: A month from now
    year: A year from now
  description:
    placeholder: "Optional: e.g. This key is used by the app servers to deploy containers"
  saveWarning1: Save the info above!  This is the only time you'll be able to see it.
  saveWarning2: If you lose it, you'll need to create a new API key.
  noteOptional: Description is optional to help you remember what this key will be used for.

editCertificate:
  title: Edit Certificate
  name:
    placeholder: e.g. mydomain.com
  description:
    placeholder: e.g. EV cert for mydomain.com
  noteKeyWriteOnly: "Note: The Private Key is intentionally blank because the field is write-only.  You will do not need to provide the Private Key unless you are intending on changing it."

editCluster:
  title:
    new: Add Cluster
    edit: Edit Cluster
  name:
    label: Name
    placeholder: e.g. Sandbox
  description:
    label: Description
    placeholder: e.g. Shared cluster for development
  systemStacks:
    hr: Cluster Options
    title: System Catalog Stacks
    detail: These stacks will be automatically deployed into the System environment for the cluster.
    noData: No stacks will be deployed into the System environment.
    add: Add Stack
    cancel: Cancel Add System Stack
  modal:
    onCluster: "Attention: You are trying to delete the cluster that owns your current environment. Please select a new environment in a different cluster before deleting this cluster."

editContainer:
  title:
    vm: Edit VM
    container: Edit Container
  name:
    placeholder: e.g. myapp
  description:
    placeholder: e.g. My Application

editNodePool:
  title: Node Pool Taints

editHost:
  title: Edit Node
  hostname:
    label: Hostname
    help: As reported by the node operating system.
  customName:
    label: Custom Name
    placeholder: e.g. dev1
    help: If this is left empty, the Hostname will be shown as the Name.
  description:
    label: Description
    placeholder: e.g. My development node
  labels:
    label: Labels
  ips:
    label: Scheduler IPs
    valueLabel: IP Address
    valuePlaceholder: e.g. 1.2.3.4
    addActionLabel: Add IP
    help:  If provided, the scheduler will select and bind published ports to one of the given public IP addresses.
  requireAny:
    label: Require Container Label
    help: If provided, containers must have one or more of the given labels in order to be eligible for scheduling onto this node.  If the value is left empty, a container with a matching key is eligible regardless of value.  <code>io.rancher.container.system</code> is required to allow system containers on to the node.
    addActionLabel: Add Required Label

editService:
  title: Edit Service

editStack:
  title: Edit Namespace
  name:
    label: Name
    error: Namespace name is already in use. Please choose a new namespace name.
    placeholder: e.g. myapp
  project:
    label: Project
    prompt: Select a Project...
  description:
    label: Description
    placeholder: e.g. MyApp namespace
  resourceQuota:
    title: Resource Quotas
    detail: Configure how much of the resources the namespace as a whole can consume
  group:
    label: Tags
    placeholder: e.g. frontend, production
    help: Comma-separated list of tags for the new Stack.  The workload lists can be filtered by individual tags.
  autoInject:
    label: Istio sidecar auto injection
    warning: Any existing workloads in the namespace will need to be re-deployed to leverage the sidecar auto injection.

editUser:
  title: Edit User
  form:
    name:
      label: Display Name
      placeholder: e.g. John Smith
    username:
      label: Username
    otherRoles:
      label: Remove Roles
    password:
      label: Change Password
      new: New Password
      confirm: Confirm New Password
      error: Passwords must match
      mustChangePassword:
        new: Ask user to change their password on first login
        edit: Ask user to change their password on next login

envCatalog:
  header: Catalog
  subtext: You can define your own custom catalog sources here. Catalogs added here will only be available to the environment in which they were added. Each one needs a unique name and a URL that <code>git clone</code> can handle (see <a href="https://git-scm.com/docs/git-clone#_git_urls_a_id_urls_a" target="_blank" rel="nofollow noopener noreferrer">docs</a> for more info).
  addActionLabel: Add Catalog

moveNamespace:
  title: |
    Move {count, plural,
    =1 {namespace: {name}}
    other {# namespaces:}}
  to: "To project:"
  actionLabel: Move

stackHeader:
  title: 'Namespace: {name}'
  outputs: Outputs

stacksPage:
  table:
    standalone: Standalone
    endpoints: Endpoints
    scale: Scale
    instanceState: Container States
    instanceStateWithIcon: States

formatIp:
  noIp: None

formBalancerConfig:
  title: Custom Config File
  detail: Provide your own custom configuration file to be applied on top of the config generated by {appName}
  custom: |
    See <a href="https://cbonte.github.io/haproxy-dconv/1.6/configuration.html" target="_blank" rel="nofollow noopener noreferrer">haproxy documentation</a> for more info about specific options that can go into the the config file.  When overriding the <code>backend</code> or similar lines which include the IP address of the target container, use <code>$IP</code> where the address goes and {appName} will generate the appropriate line(s).
  config:
    prompt: Custom haproxy.cfg content

formNodeAffinity:
  addRuleLabel: Add Node Selector
  noRules: No node Selectors
  removeRuleLabel: Remove this Node Selector

formMembersGlobalAccess:
  title: Members
  detail: Select members who can view this application
  table:
    name: Name
    type: Member Type
    accessType: Access Type
    noData: There are no members yet
    noMatch: No members match the current search
    prompt: Select a Value...


formNodeRequirement:
  label: Rules
  addRuleLabel: Add Rule
  noRules: No Rules
  key:
    label: Key
    placeholder: e.g. kubernetes.io/hostname
  operator:
    label: Operator
  values:
    label: Values
    placeholder: Comma-separated, e.g. node1,node2

formIngress:
  hostMode:
    automatic: Automatically generate a <code>.{domain}</code> hostname
    existing: Keep the existing hostname <code>{domain}</code>
    manual: Specify a hostname to use
    default: Use as the default backend
    defaultDisabled: Ingress controller does not support default backend
  defaultBackend:
    label: Set this rule as default backend
    mark: Default backend
  label: Rules
  addRuleLabel: Add Rule
  removeRuleLabel: Remove this Rule
  noRules: No Rules
  host:
    label: Request Host
    placeholder: "e.g. example.com"
  backendType:
    label: Backend Type
  mode:
    workload: Workload
    service: DNS Record

formIngressBackends:
  label: Target Backend
  noRules: No Backends
  warning: If the target is a service, only the port exposed by the service can be selected. You can go to Service Discovery tab and edit the service to add ports by editing the YAML.
  addServiceLabel: Service
  addWorkloadLabel: Workload
  service:
    label: service
  workload:
    label: workload
  targetPort:
    label: Port
    placeholder: e.g. 80
  path:
    label: Path
    placeholder: e.g. /foo
  target: Target

formBalancerListeners:
  label: Listeners & Target Rules
  detail: Control the mapping of requests coming into the balancer to the desired target.
  status: |
    {count, plural,
    =0 {No rules}
    =1 {# rule}
    other {# rules}
    }
  noRules: No Ports
  addPortLabel: Add a Listening Port
  removePortLabel: Remove this Listening Port
  showBackendLabel: "Customize backend names"
  access:
    label: Access
    public: Public
    internal: Internal
  protocol:
    label: Protocol
  sourceIp:
    label: Host IP
    placeholder: "e.g. 1.2.3.4; Default: All"
  sourcePort:
    label: Listening Port
    placeholder: e.g. 80
  help: "Host and Path rules are matched top-to-bottom in the order shown.  Backends will be named randomly by default; to customize the generated backends, provide a name and then refer to that name in your custom haproxy.cfg."

formBalancerRules:
  label: Target Rules
  detail: Map requests to different targets depending on host, port, path, or IP address.
  status: |
    {count, plural,
    =0 {No rules}
    =1 {# rule}
    other {# rules}
    }
  noRules: No Rules
  addServiceLabel:  Add a Service
  addInstanceLabel: Add a Container
  addSelectorLabel: Add a Selector
  addTargetLabel:   Add a Rule
  access:
    label: Access
    public: Public
    internal: Internal
  protocol:
    label: Protocol
  sourceIp:
    label: Host IP
    placeholder: "e.g. 1.2.3.4; Default: All"
  sourcePort:
    label: Listening Port
    placeholder: e.g. 80
  path:
    label: Path
    placeholder: e.g. /foo
  hostname:
    label: Request Host
    placeholder: e.g. example.com
  backendName:
    label: Backend
    placeholder: e.g. webapp
  targetPort:
    label: Port
    placeholder: e.g. 80
  priority:
    label: Priority
  target: Target
  selector:
    label: Selector
    placeholder: e.g. foo=bar

formCommand:
  title: Command
  detail: Configuration of the executable that will be run when the container is started.
  command:
    label: Command
    placeholder: e.g. /usr/sbin/httpd -f httpd.conf
  entryPoint:
    label: Entrypoint
    placeholder: e.g. /bin/sh
  environment:
    label: Environment Labels
  workingDir:
    label: Working Dir
    placeholder: e.g. /myapp
  uid:
    label: User ID
    placeholder: e.g. 501
  console:
    label: Console
    both: 'Interactive &amp; TTY <span class="text-muted">(-i -t)</span>'
    interactive: 'Interactive <span class="text-muted">(-i)</span>'
    terminal: 'TTY <span class="text-muted">(-t)</span>'
    none: None
  autoRestart:
    label: Auto Restart
    no: Never
    onFailure: 'On failure <span class="text-muted">(non-0 exit code)</span>, forever'
    onFailureCondPrefix: On failure, up to
    onFailureCondSuffix: |
      {limit, plural,
        =1 {time}
        other {times}
      }
    always: Always
  terminationGracePeriodSeconds:
    label: Stop Timeout
    helpText: The container will have this long to stop on its own before it is forcefully terminated.
  fsgid:
    label: Filesystem Group
    placeholder: e.g. 501


formContainerLinks:
  title: Links
  detail: Define relationships between this and other containers.
  addActionLabel: Add Link
  name:
    label: Target Container
  alias:
    label: As Name
    placeholder: e.g. database
  noData: There are no container links
  noMatch: No links match the current search

formCount:
  label: Count

formDisks:
  addDiskLabel: Add Disk
  addRootDiskLabel: Add Root Disk
  name:
    rootDisk: Root Disk
    label: Name
    placeholder: e.g. data
  size:
    label: Size
    rootDisk: Determined by root image
  readIops:
    label: Read Iops
    placeholder: e.g. 1000
  writeIops:
    label: Write Iops
    placeholder: e.g. 1000
  driver:
    label: Driver

formEngineOpts:
  title: Engine Options
  detail: Customize the configuration of the Docker daemon
  engineInstallUrl:
    label: Docker Install URL
    placeholder: e.g. http://get.docker.com/
    recommended: Recommended
    latest: Latest
  engineStorageDriver:
    label: Storage Driver
    placeholder: e.g. overlay
  engineOpts:
    label: Engine Options
    addActionLabel: Add Engine Option
    keyPlaceholder: e.g. log-driver
    valuePlaceholder: e.g. syslog
  engineLabels:
    label: Engine Labels
    addActionLabel: Add Engine Label
    keyLabel: Label
  engineEnv:
    label: Engine Environment
    addActionLabel: Add Environment Variable
    keyLabel: Variable
    keyPlaceholder: e.g. HTTP_PROXY
    valuePlaceholder: e.g. http://your-proxy:8080
  engineInsecureRegistry:
    label: Insecure Registries
    addActionLabel: Add Insecure Registry
    valueLabel: Registry Domain
    valuePlaceholder: e.g. registry.example.com
  engineRegistryMirror:
    label: Registry Mirrors
    addActionLabel: Add Registry Mirror
    valueLabel: Mirror URL
    valuePlaceholder: e.g. https://my-mirror.example.com:5000

formResourceQuota:
  addQuotaLabel: Add Quota
  table:
    type:
      label: Resource Type
    value:
      label: Limit
      placeholder: e.g. 10
      milliCpuPlaceholder: e.g. 500
      memoryPlaceholder: e.g. 1Gi
    resources:
      label: Project Resource Availability
      reserved: Other Namespaces
      namespace: This Namespace
      available: Available
      max: Total
    projectLimit:
      label: Project Limit
      placeholder: e.g. 50
      milliCpuPlaceholder: e.g. 2000
      memoryPlaceholder: e.g. 2048
    namespaceLimit:
      label: Namespace Default Limit
      placeholder: e.g. 10
      milliCpuPlaceholder: e.g. 500
      memoryPlaceholder: e.g. 1024
    noData: There are no resource quotas defined
  errors:
    projectLimitRequired: Project Limit for {resource} is required.
    nsDefaultLimitRequired: Namepsace Default Limit for {resource} is required.
    limitRequired: '{resource} limit is required.'
    invalidLimit: '{used} of {total} {resource} quota has been used. The value should be less than or equal {left}.'
  resources:
    configMaps: Config Maps
    limitsCpu: CPU Limit
    limitsMemory: Memory Limit
    persistentVolumeClaims: Persistent Volume Claims
    pods: Pods
    replicationControllers: Replication Controllers
    requestsCpu: CPU Reservation
    requestsMemory: Memory Reservation
    requestsStorage: Storage Reservation
    secrets: Secrets
    services: Services
    servicesLoadBalancers: Services Load Balancers
    servicesNodePorts: Services Node Ports

formEnvVar:
  title: Environment Variables
  detail: Environment Variables that were added at creation.
  noData: No Environment Variables
  status: |
    {count, plural,
    =0 {Not Configured}
    =1 {# variable}
    other {# variables}
    }
  labels:
    key: Key
    value: Value

formGlobalRoles:
  title: Global Permissions
  description: Controls what access the user has to administer the overall {appName} installation.
  mode:
    admin:
      label: Administrator
      detail: Administrators have full control over the entire installation and all resources in all clusters.
    user:
      label: Standard User
      detail: Standard Users can create new clusters and manage clusters and projects they have been granted access to.
    custom:
      label: Custom
      detail: Choose individual permissions for the user.
  role:
    create-clusters:
      label: Create new Clusters
      detail: Allows the user to create new clusters and become the owner of them.  Standard Users have this permission by default.
    manage-authn:
      label: Configure Authentication
      detail: Allows the user to enable, configure, and disable all Authentication provider settings.
    manage-catalogs:
      label: Configure Catalogs
      detail: Allows the user to add, edit, and remove Catalogs
    manage-clusters:
      label: Manage all Clusters
      detail: Allows the user to manage all clusters, including ones they are not a member of.
    manage-node-drivers:
      label: Configure Node Drivers
      detail: Allows the user to enable, configure, and remove all Node Driver settings
    manage-node-templates:
      label: Manage Node Templates
      detail: Allows the user to define, edit, and remove Node Templates
    manage-roles:
      label: Manage Roles
      detail: Allows the user to define, edit, and remove Role definitions
    manage-users:
      label: Manage Users
      detail: Allows the user to create, remove, and set passwords for all Users
    use-catalogs:
      label: Use Catalogs
      detail: Allows the user to see and deploy Templates from the Catalog.  Standard Users have this permission by default.
    use-node-templates:
      label: Use Node Templates
      detail: Allows the user to deploy new Nodes using any existing Node Templates.
    base:
      label: Login Access
formMembers:
  members:
    user: User
    group: Group
    serviceaccount: Service Account
    labelText: Members
    addMember: Add Member
    addUser: Add User
    noAddUser: You are the only active registered user.
    addGroup: Add Group
    addServiceAccount: Add Service Account
    multipleRoles: Multiple Roles
    customRoles: Custom Roles
    kind:
      label: Kind
    name:
      label: Name
    role:
      label: Role
    errors:
      nameReq: Name is required.
      nameInExists: Name is already exists. Please use a new project name.
      memberNameReq: Name is required for a member
      memberRoleReq: Role is required for a member
      ownerReq: There must be at least one member with the Owner role.

formScopedRoles:
  title: '{type} Permissions'
  description: 'Controls what access users have to the {type}.'
  mode:
    admin:
      label: Owner
      detail: Owners have full control over the {type} and all resources inside it.
    user:
      label: Member
      detail: Members can manage the resources inside the {type} but not change the {type} itself.
    custom:
      label: Custom
      detail: Choose individual roles for this user
    readOnly:
      label: Read Only
      detail: Members can view the resources inside the {type} but not change the {type} itself.
    userDef:
      detail: User defined role.
    role:
      read-only:
        label: Read-Only
        detail: Allows seeing everything, but not changing anything.

formShareMember:
  add: 'Add Member'
  public: 'Make public (read-only)'
  table:
    headers:
      name: 'Name'
      accessType: 'Access Type'
    noMatch: 'No member match your search'
    noData: 'You have not shared this cluster template with anyone'

shareMemberRow:
  table:
    public:
      name: 'Public (all members & groups)'
      accessType: 'Read Only'

formHealthCheck:
  title: Health Check
  detail: Periodically make a request to the container to see if it is alive and responding correctly.
  readiness: Readiness Check
  liveness: Liveness Check
  separateLivenessCheck: Define a separate liveness check
  combinedLivenessCheck: Use the same check for liveness and readiness
  checkType:
    none: None
    tcp: TCP connection opens successfully
    http: HTTP request returns a successful status (2xx or 3xx)
    https: HTTPS request returns  a successful status (2xx or 3xx)
    command: Command run inside the container exits with status 0
  command:
    label: Command
    placeholder: e.g. cat /tmp/health
  path:
    label: Request Path
    placeholder: e.g. /healthcheck
  httpHeaders:
    label: Additional Headers
    addActionLabel: Add Header
    keyLabel: Header Name
    keyPlaceholder: e.g. User-Agent
    valuePlaceholder: e.g. Health-Check
  host:
    label: Host Header
    placeholder: e.g. example.com
  port:
    label: Target Container Port
    placeholder: e.g. 80
  initialDelaySeconds:
    label: Start Checking After
  reinitializingTimeout:
    label: Reinitializing Timeout
  periodSeconds:
    label: Check Interval
  timeoutSeconds:
    label: Check Timeout
  successThreshold:
    label: Healthy After
    unit: successes
  failureThreshold:
    label: Unhealthy After
    unit: failures

formKeyToPath:
  addAction: Add Item
  header: Items
  default: All Keys
  specific: Select Specific Keys
  key:
    label: Key
    placeholder: "e.g. username"
  path:
    label: Path
    placeholder: "e.g. my-group/my-username"
  mode:
    label: Mode
    placeholder: "e.g. 400"

formMatchExpressions:
  addAction: Add Expression
  key:
    label: Key
    placeholder: e.g. region
  value:
    label: Values
    placeholder: e.g. us,eu,ap

formKeyValue:
  addAction: Add Pair
  key:
    label: Key
    placeholder: Key
  separator: "="
  value:
    label: Value
    placeholder: Value
  protip: 'ProTip: Paste lines of key=value pairs into any key field for easy bulk entry.'

formImage:
  label: Docker Image
  container:
    placeholder: "e.g. ubuntu:xenial"

formNameDescription:
  name:
    label: Name
    placeholder: Name
  description:
    label: Description
    placeholder: Description
    expand: Add a Description

formNetwork:
  title: Networking
  detail: Configure the networking and DNS options for the container.
  netMode:
    label: Use Host's Network Namespace
    disable: "No"
    enable: "Yes"
  dnsPolicy:
    label: DNS Policy
    clusterFirstWithHostNet: "Cluster first with host network"
    clusterFirst: "Cluster first"
  dnsConfig:
    nameservers:
      label: DNS Name Server IP Addresses
      addActionLabel: Add Name Server
      placeholder: e.g. 192.168.2.1
    options:
      label: DNS Resolver Options
      addActionLabel: Add Option
      name:
        label: Name
        placeholder: e.g. ndots
      value:
        label: Value
        placeholder: e.g. 5
    searches:
      label: DNS Search Domains
      placeholder: e.g. example.com
      addActionLabel: Add Search Domain
  container:
    label: Container
  requestedIp:
    label: Request IP
    placeholder: Optional; e.g. 10.42.2.24
    help: Request a specific IP in the 10.42.0.0/16 block.  If already in use, a random one will be assigned.
  retainIp:
    label: Retain IP
    reuse: Reuse existing IP on upgrade or replace
  dns:
    label: Service Discovery
    enable: Enable discovery and use local caching resolver
    disable: Disable discovery and directly use remote resolving servers
  hostname:
    label: Hostname
    placeholder: e.g. web
    dockerId: Use the Docker container ID
    hostName: Use the host's hostname
    containerName: Use the container name
    custom: Set a specific hostname
  domainName:
    label: Domain Name
    placeholder: e.g. example.com
  resolvingServers:
    label: Resolving Servers
    addActionLabel: Add Server
    placeholder: e.g. 8.8.4.4
  searchDomains:
    label: Search Domains
    placeholder: e.g. prod.example.com
    addActionLabel: Add Domain
  subdomain:
    label: Subdomain
    placeholder: e.g. foo
  hostAlias:
    addActionLabel: Add Host Alias
    label: Host Aliases (/etc/hosts entries)
    host:
      label: Hostname
      placeholder: e.g. database
    ip:
      label: IP Address
      placeholder: e.g. 192.168.0.1

formCustomMetrics:
  title: Custom Metrics
  detail: Expose the endpoints for Prometheus to collect custom metrics
  port:
    label: Container Port
    placeholder: e.g. 8080
  path:
    label: Path
    placeholder: e.g. /metrics
  protocol:
    label: Protocol
  noPorts: No Endpoints
  addActionLabel: Add Metrics Endpoint

formServicePorts:
  header: Port Mapping
  addAction: Add Port
  noPorts: This service has no port maps.
  name:
    label: Port Name
    placeholder: "e.g. myport"
  port:
    label: Publish the service port
    placeholder: "e.g. 8088"
  protocol:
    label: Protocol
  targetPort:
    label: Target Port
    placeholder: "e.g. 80"
    default: "Same as service port"
  nodePort:
    label: Node Port
    placeholder: "e.g. 30000"
formPorts:
  header: Port Mapping
  addAction: Add Port
  hostPortWarning: 'Host Port is not supported on Windows nodes. See Windows support <a href="https://kubernetes.io/docs/setup/production-environment/windows/intro-windows-in-kubernetes/#limitations" target="_blank">limitations</a> in Kubernetes for more info.'
  warning: This workload is not created by {appName} UI or {appName} API. {appName} will not automatically create related services for port mapping.
  kind:
    label: As a
    NodePort: NodePort (On every node)
    HostPort: HostPort (Nodes running a pod)
    ClusterIP: Cluster IP (Internal only)
    LoadBalancer: Layer-4 Load Balancer
    LoadBalancerDisbaled: 'Layer-4 Load Balancer (disabled)'
    HostPortDisbaled: 'HostPort (disabled)'
  sourcePort:
    label: On listening port
    placeholder: "e.g. 80"
    ipPlaceholder: "e.g. 80 or 19.82.2.24:80"
    clusterIpDefault: "Same as container port"
  nodePort:
    placeholder: "Default node port range is 30000-32767, e.g. 30000"
    customPortRangePlaceholder: "Node port range is {range}, e.g. {port}"
  containerPort:
    label: Publish the container port
    placeholder: "e.g. 8080"
  protocol:
    label: Protocol
  name:
    label: Name
    placeholder: "e.g. backend"
  dnsName:
    label: DNS Name
    placeholder: "e.g. example"
  noPorts: This container has no port maps.
  error:
    privateRequired: Private Container Port is required for each port rule.
    publicRequired: Source Port is required if Host IP is specified.
    hostPort:
      sourcePortRequired: Source Port is required for Nodes running a pod.
    loadBalancer:
      sourcePortRequired: Source Port is required for Load Balancer.
    mixedIpPort: "Port {ip}:{port}/{proto} has more than one mapping."
    mixedPort: "Port {port}/{proto} has more than one mapping."
  showAdvanced: Show Port Naming Options

formScale:
  label: Workload Type
  showAdvanced: More options
  scaleMode:
    deploymentPrefix: "Scalable deployment of"
    replicationControllerPrefix: "Replication Controller of"
    replicaSetPrefix: "Replica Set of"
    statefulSetPrefix: "Stateful set of"
    scaleSuffix: |
      {scale, plural,
        =1 {pod}
        other {pods}
      }
    daemonSet: "Run one pod on each node"
    cronJob: "Run on a cron schedule"
    job: Job
    sidekickInactive: "Sidecar: Add a container to an existing workload"
    sidekickPrefix: "Sidecar: Add a container to"
    sidekickSuffix: ""

formScheduling:
  title: Node Scheduling
  detail: Configure what nodes the pods can be deployed to.
  status: |
    {count, plural,
    =0 {No rules}
    =1 {# rule}
    other {# rules}
    }
  canRequestHost:
    vm: Run <b>all</b> virtual machines on a specific node
    containers: Run <b>all</b> pods for this workload on a specific node
  runSpecific: Run this pod on a specific node
  noRules: No rules.
  noToleration: No tolerations.
  autoRun: "Automatically run on every node matching scheduling rules:"
  autoPick:
    vm: "Automatically pick nodes for each virtual machine matching scheduling rules:"
    container: "Automatically pick nodes for each pod matching scheduling rules:"
    host: "Automatically pick a node matching scheduling rules:"
  addRule: Add Rule
  addCustom: Add Custom Rule
  condition: Condition
  field: Field
  key: Label Key
  value: Value
  operator: Operator
  effect: Effect
  time: Toleration Seconds
  toleration:
    title: Tolerations
    add: Add Toleration
    workloadTitle: Tolerations for {workload} pod
  scaling:
    minMaxDetail: If set, the scale will not be allowed to be adjusted by user or API call above or below these limits.
    incrementDetail: If set, the scale must be a multiple of the increment
    hostMaxDetail: If set, schedule containers for this service to a maximum of this many hosts.
  scaleMin: Minimum Scale
  scaleMax: Maximum Scale
  scaleIncrement: Scale Increment
  hostMax: Maximum Nodes
  perHost: per host
  priority:
    label: Priority
    placeholder: e.g. 3
  priorityClassName:
    label: Priority Class Name
    placeholder: e.g. high
  scheduler:
    label: Scheduler
    placeholder: e.g. myScheduler
  nodeSelector:
    requireAll: "Require ALL of:"
    requireAny: "Require Any of:"
    preferred: "Prefer Any of:"
    operator:
      lt: '<'
      le: |
        &le;
      eq: '='
      ne: |
        &ne;
      gt: '>'
      ge: |
        &ge;
      in: 'in list'
      notIn: 'not in list'
      exists: 'is set'
      notExists: 'is not set'
    multiple:
      placeholder: 'e.g. foo, bar, baz'
    custom:
      placeholder: 'e.g. foo > 42 && bar != baz'

formSources:
  title: Environments From Sources
  detail: Environments from sources allow you to inject passwords, keys, or other information into the containers that need them.
  noData: No Environments From Sources
  noMatch: No Environments From Sources match the current search
  addLabel: Add Source
  type:
    label: Type
  source:
    label: Source
  prefixOrKey:
    label: Key
  prefix:
    label: Prefix or Alias
  field:
    placeholder: e.g. spec.nodeName
  resource:
    placeholder: e.g. requests.cpu
  container:
    placeholder: e.g. my-container

formSecurity:
  title: Security & Host Config
  detail: Grant or limit the abilities of the container to affect the host it is running on.
  pullImage:
    label: Pull Image
    always: Always
    ifNotPresent: Only if not already on the node
  privileged:
    label: Privileged
    disable: "No"
    enable: "Yes: container has full access to the host"
  allowPrivilegeEscalation:
    label: Privilege Escalation
    disable: "No"
    enable: "Yes: container can gain more privileges than its parent process"
  hostIPC:
    label: Use Host's IPC Namespace
  runAsNonRoot:
    label: Run as Non-Root
    disable: "No"
    enable: "Yes: container must run as a non-root user"
  readOnlyRootFilesystem:
    label: Read-Only Root Filesystem
    disable: "No"
    enable: "Yes: container has a read-only root filesystem"
  hostPID:
    label: Use Host's PID Namespace
  memoryLimit:
    label: Memory Limit
    unlimited: No Limit
    set: Limit to
  cpuLimit:
    label: CPU Limit
    unlimited: No Limit
    set: Limit to
    unit: milli CPUs
  swapLimit:
    label: Swap Memory
    unlimited: Unlimited
    set: Limit to
    default: Limit to double the physical limit
    none: Do not allow swap
  swappiness:
    label: Swappiness
    default: Use the host's default
    none: Minimum
    set: Custom (1-100)
  cpuPinning:
    label: CPU Pinning
    placeholder: "e.g. 0,1,3; Default: All"
  shares:
    label: CPU Shares
    placeholder: e.g. 1024
  capabilities:
    add: Add Capabilities
    drop: Drop Capabilities
    helpBlock:
      text: Capabilities allow you to provide fine-grained control over superuser privileges available to the container.
      link: More information
  deviceBinding:
    label: Device Binding
    addActionLabel: Add Binding
    pathHost:
      label: Path in Host
      placeholder: e.g. /dev/sdc
    pathContainer:
      label: Path in Container
      placeholder: e.g. /dev/xsdc
    permissions:
      label: Permissions
  memoryReservation:
    label: Memory Reservation
    placeholder: e.g. 128
  milliCpuReservation:
    label: CPU Reservation
    placeholder: e.g. 1000
    unit: milli CPUs
  gpuReservation:
    label: NVIDIA GPU Reservation
    placeholder: e.g. 1
    unit: GPUs
  isolation:
    label: Isolation
    default: Default (Container)
    hyperv: HyperV (VM)

formSslTermination:
  title: SSL/TLS Certificates
  detail: Configure the certificates that will be presented for requests to encrypted ports.
  defaultCertificate:
    prompt: Default ingress certificate selected...
  default:
    label: Use default ingress controller certificate
    noHosts: Please provide at least one host for the default ingress controller certificate
  custom:
    label: Choose a certificate
    required: Please select a certificate
  alternateCertificate:
    prompt: Choose a Certificate...
  certificate: Certificate
  alternateCerts: Alternate Certs
  addAlternate: Add Alternate Certificate
  noCertificates: There are no certificates to use.
  wildcardCert: Please provide at least one host as {name} is a wildcard certificate.
  noCertificatesConfiged: No Certificates.
  noAlternateCertificates: There are no other certificates to use.
  hosts: Hosts
  noHosts: No Hosts
  host:
    label: Host
    placeholder: e.g. example.com
  addHostLabel: Add Hosts
  helpBlock: |
    "Note: Some older SSL/TLS clients do not support <a href="https://en.wikipedia.org/wiki/Server_Name_Indication" target="_blank">Server Name Indication (SNI)</a>; these clients will always be offered the main Certificate.  Modern clients will be offered an appropriate certificate from the Alternate Certificates list if a match is found."
  notNeeded: There are no SSL/TLS Listening Ports configured with a valid Target Rule.
  removeCertLabel: Remove this Certificate
  addCertLabel: Add Certificate

formNamespace:
  label:
    reuse: Namespace
    create: Namespace
    default: Default Namespace
  toggle:
    simple: Customize
    reuse: Use an existing namespace
    create: Add to a new namespace
  reuse:
    prompt: Choose a Namespace...
  create:
    placeholder: e.g. myapp
  errors:
    noneChosen: You must choose a namespace.
    validation: "Namespace: {error}"

formUserData:
  placeholder: "e.g. Configuration information for the container"
  isVmPlaceholder: "e.g. Configuration information for the virtual machine"
formLabelsAnnotations:
  title: Labels & Annotations
  detail: Key/Value pairs that can be used to label/annotate containers and make scheduling decisions.
formNodeTaints:
  title: Taints
  detail: Taints mark that the node should not accept any pods that do not tolerate the taints.
  addAction: Add Taint
  protip: Taint must be unique by key and effect pair.
  key:
    label: Key
    placeholder: e.g. foo
  value:
    label: Value
    placeholder: e.g. bar
  effect:
    label: Effect

formUserLabels:
  title: Labels
  detail: Labels are key/value pairs that can be used to annotate containers and make scheduling decisions.
  nodeDetail: Labels are key/value pairs that can be applied to nodes and used to make scheduling decisions for containers.
  addAction: Add Label
  key:
    label: Key
    placeholder: e.g. foo
  separator: "="
  value:
    label: Value
    placeholder: e.g. bar
  protip: "ProTip: Paste one or more lines of key=value pairs into any key field for easy bulk entry."

formAccessModes:
  label: Access Modes
  accessRWO: Single Node Read-Write
  accessROX: Many Nodes Read-Only
  accessRWX: Many Nodes Read-Write

formAnnotations:
  addActionLabel: Add Annotation
  title: Annotations
  detail: Configure annotations (key/value metadata) for the container.
  errors:
    invalidJSON: Annotation JSON format is invalid.
    topLevelValueInvalid: Annotation JSON top-level value must be an object.

formAuthCloudCredential:
  add: Add New
  label: Cloud Credentials
  selectCreds:
    prompt: Select a cloud credential


formJobConfig:
  title: Job Configuration
  detail: Configure the desired behavior of jobs.
  times: |
    {count, plural,
      =1 {Time}
      other {Times}
    }
  seconds: |
    {count, plural,
      =1 {Second}
      other {Seconds}
    }
  completions:
    label: Completions
    detail: The number of successfully finished pods the job should be run with.
  parallelism:
    label: Parallelism
    detail: The maximum number of pods the job should run at any given time.
  backoffLimit:
    label: Back Off Limit
    detail: The number of retries before marking this job failed.
  successfulJobsHistoryLimit:
    label: Successful Jobs History Limit
    detail: The number of successful finished jobs to retain.
  failedJobsHistoryLimit:
    label: Failed Jobs History Limit
    detail: The number of failed finished jobs to retain.
  activeDeadlineSeconds:
    label: Active Deadline Seconds
    detail: The duration that the job may be active before the system tries to terminate it.
  suspend:
    label: Suspend

formUpgrade:
  title: Scaling/Upgrade Policy
  detail: Configure how pods are replaced when performing an upgrade.
  strategy:
    label: Upgrade Strategy
    orderedReady: Strict serial update in order and wait for readiness
    parallel: Start all new and stop all old pods in parallel
    onDelete: Start upgraded pods only when old ones are manually deleted
    recreate: Kill ALL pods, then start new
    rollingUpdate: Rolling Update
    startFirst: 'Rolling: start new pods, then stop old'
    stopFirst: 'Rolling: stop old pods, then start new'
    custom: Custom
    batchSize:
      label: Batch Size
      detail: Pods will be started and stopped this many at a time
    maxSurge:
      label: Max Surge
      detail: The maximum number of pods allowed beyond the desired scale at any given time.
    maxUnavailable:
      label: Max Unavailable
      detail: The maximum number of pods which can be unavailable at any given time.
    minReadySeconds:
      label: Minimum Ready Time
      detail: Containers in the pods must be up for at least this long before the pod is considered available.
    progressDeadlineSeconds:
      label: Progress Deadline
      detail: How long to wait without seeing progress before marking the deployment as stalled.


formValueArray:
  addActionLabel: Add Value
  valueLabel: Value
  valuePlaceholder: Value
  noData: No Data
  protip: "ProTip: Paste one or more lines of values into any field for easy bulk entry."

formVersions:
  experimental: "(experimental)"
  unsupported: "(unsupported)"

formIstioHost:
  prompt: Select a host...

formVolumeRow:
  prompt: Select a Persistent Volume Claim...
  name:
    label: Volume Name
    placeholder: e.g. vol1
  volumeClaimTemplateName:
    label: Volume Claim Template Name
    placeholder: e.g. vol1
    vctWarning: Stateful workloads launched with volume claim templates will become uneditable due to a <a href="https://github.com/kubernetes/kubernetes/issues/69041" target="_blank" rel="nofollow noreferrer noopener">upstream bug</a> in Kubernetes. Please be aware that this limitation exists before launching your new workload.
  mode:
    label: Volume Type
    newVolume: Ephemeral Volume
    existingVolume: Existing Volume
    newPvc: New Volume Claim
    existingPvc: Persistent Volume Claim
    existingVct: Volume Claim Template
    bindMount: Bind-Mount
    tmpfs: Tmpfs
    secret: Secret
    configmap: Config Map
    certificate: Certificate
    newVolumeClaimTemplate: New Volume Claim Template
  remove: Remove Volume
  subPath: Sub Path in Volume
  readOnly: Read-Only
  noVolume: The volume will not be mounted in the current container.  It may be used by other containers in the pod.
  addMount: Add Mount
  mounts:
    mountPoint: Mount Point
    subPath: Sub Path in Volume
    readOnly: Read-Only
    helper: The volume will not be mounted in the current container.  It may be used by other containers in the pod.
  customLogPath:
    helpText: We will deploy a flexvolume driver to create a volume and mount the log to the host. This feature is supported on GKE cluster now.

formVolumes:
  title: Volumes
  detail: Persist and share data separate from the lifecycle of an individual container.
  value:
    prompt: Select a Container...
  volumes: Volumes
  volumesFrom: Volumes From
  volumeDriver:
    label: Driver for custom volumes
    placeholder: 'e.g. rancher-nfs; Default: local'
    suggestion: 'Volume drivers in use:'
  noLaunchConfigs: There are no other launch configs in this service to share volumes with.
  noHostContainers: This host has no containers to use the volumes from.
  onlySingleHost: Only available when adding a container to a particular host.
  errors:
    incomplete: Incomplete volume definition
    absoluteMountPoint: Volume mount points must be absolute paths
  add:
    label: Add Volume...
    newVolume: Add an ephemeral volume
    existingVolume: Existing ephemeral volume
    newPvc: Add a new persistent volume (claim)
    existingPvc: Use an existing persistent volume (claim)
    bindMount: Bind-mount a directory from the node
    tmpfs: Add an in-memory tmpfs
    secret: Use a secret
    configMap: Use a config map
    certificate: Use a certificate
    customLogPath: Read log files from a directory
    vct: Add a Volume Claim Template
  table:
    kind: Kind
    source: Source
    mountPoint: Mount Point
    opts: Access/Options

formCapabilityPodSecurityPolicy:
  title: Capability Policies
  detail: Config set of capability Policies
  capabilities:
    allow: Allowed Capabilities
    add: Default Add Capabilities
    drop: Required Drop Capabilities

formVolumePodSecurityPolicy:
  title: Volume Policy
  detail: Control the usage of volume types
  volumes: Volumes

formAllowedHostPathsPodSecurityPolicy:
  title: Allowed Host Paths Policy
  detail: Whitelist of allowed host paths
  path:
    addLabel: Add Path Prefix
    placeholder: e.g. /foo

formFsGroupPodSecurityPolicy:
  title: FS Group Policy
  detail: Allocating an FSGroup that owns the pod’s volumes
  rule:
    mustRunAs: MustRunAs - Requires at least one range to be specified. Uses the minimum value of the first range as the default. Validates against the first ID in the first range.
    runAsAny: RunAsAny - No default provided. Allows any fsGroup ID to be specified.
  range:
    addLabel: Add Range
    max:
      label: Max
      placeholder: e.g. 6
    min:
      label: Min
      placeholder: e.g. 1

formHostPortsPodSecurityPolicy:
  title: Host Ports Policy
  detail: The use of host ports
  port:
    addLabel: Add Port Range
    max:
      label: Max
      placeholder: e.g. 7000
    min:
      label: Min
      placeholder: e.g. 6000

formRunAsUserPodSecurityPolicy:
  title: Run As User Policy
  detail: The user ID
  rule:
    mustRunAs: MustRunAs - Requires a range to be configured. Uses the first value of the range as the default. Validates against the configured range.
    mustRunAsNonRoot: MustRunAsNonRoot - Requires that the pod be submitted with a non-zero runAsUser or have the USER directive defined in the image. No default provided.
    runAsAny: RunAsAny - No default provided. Allows any runAsUser to be specified.
  range:
    addLabel: Add Range
    max:
      label: Max
      placeholder: e.g. 6
    min:
      label: Min
      placeholder: e.g. 1

formSeLinuxodSecurityPolicy:
  title: SELinux Policy
  detail: The SELinux context of the container
  rule:
    mustRunAs: MustRunAs - Uses seLinuxOptions as the default. Validates against seLinuxOptions.
    runAsAny: RunAsAny - Allows any seLinuxOptions to be specified
  level:
    label: Level
    placeholder: e.g. level
  role:
    label: Role
    placeholder: e.g. role
  user:
    label: User
    placeholder: e.g. user

formSupplementalGroupsPodSecurityPolicy:
  title: Supplemental Groups Policy
  detail: Configuring allowable supplemental groups
  rule:
    mustRunAs: MustRunAs - Requires at least one range to be specified. Uses the minimum value of the first range as the default. Validates against all ranges.
    runAsAny: RunAsAny - No default provided. Allows any supplementalGroups to be specified.
  range:
    addLabel: Add Range
    max:
      label: Max
      placeholder: e.g. 6
    min:
      label: Min
      placeholder: e.g. 1

formBasicPodSecurityPolicy:
  title: Basic Policies
  detail: Config basic pod security policies
  allowPrivilegeEscalation:
    label: Allow Privilege Escalation
    enable: "Yes: Running of a container that allow privilege escalation from its parent"
    disable: "No"
  defaultAllowPrivilegeEscalation:
    label: Default Allow Privilege Escalation
    enable: "Yes: Control whether a process can gain more privileges than its parent process"
    disable: "No"
  hostIPC:
    label: Host IPC
    enable: "Yes: The use of host’s IPC namespace"
    disable: "No"
  hostNetwork:
    label: Host Network
    enable: "Yes: The use of host networking"
    disable: "No"
  hostPID:
    label: Host PID
    enable: "Yes: The use of host’s PID namespace"
    disable: "No"
  privileged:
    label: Privileged
    enable: "Yes: Running of privileged containers"
    disable: "No"
  readOnlyRootFilesystem:
    label: Read Only Root Filesystem
    enable: "Yes: Requiring the use of a read only root file system"
    disable: "No"

formReservation:
  limitCpu:
    label: '{component} CPU Limit'
    placeholder: e.g. 1000
  limitMemory:
    label: '{component} Memory Limit'
    placeholder: e.g. 1000
  requestCpu:
    label: '{component} CPU Reservation'
    placeholder: e.g. 1000
  requestMemory:
    label: '{component} Memory Reservation'
    placeholder: e.g. 1000

hostSettings:
  header: Host Registration URL
  subtext: What base URL should hosts use to connect to the {appName} API?
  hostUrl:
    local: "This site's address:"
    new:
      labelText: "Something else:"
      placeholder: "e.g. http://example.com:8080"
  helpText:
    static1: "Don't include <code>/v1</code> or any other path, but if you are doing"
    static2: "in front of {appName}, be sure to use <code>https://</code>."
    isRancher: '<a href="{docsBase}/installing-rancher/installing-server/basic-ssl-config/" target="_blank">SSL termination</a>'
    sslTerm: SSL termination
  notPublic:
    alert: |
      Are you sure all the hosts you will create will be able to reach <code>{activeValue}</code> ?<br/>It looks like a private IP or local network.
  badTld:
    alert: |
      The <code>.local</code> Top-Level Domain is reserved by RFC6762 for Multicast DNS.  Using this as your Registration URL is strongly discouraged and may cause DNS resolution issues as well as problems with addons like secrets and networked storage drivers.  Please choose a different hostname or IP.

hostPod:
  supportState:
    unsupported: Unsupported Docker version
    untested: Untested Docker version
  groupedInstances:
    namespace: 'Namespace:'
    stack: 'Stack:'
    standalone: Standalone Containers

identityBlock:
  loading: Loading...


inputAnswers:
  yaml: Edit as YAML
  config: Configuration Options
  editAsForm: Edit as a Form
  yamlConfig: Paste or Read answers in a yml/yaml format.
  yamlProtip: You can find default configuration in PREVIEW section.
  unknownType: "Unrecognized question type:"
  noConfig: This template has no configuration options
  protip: "Paste and Read actions require their respective answers to be in a yml/yaml format"

inputIdentity:
  placeholder:
    github: Add a GitHub user or organization name
    generic: Add a user or group by name
  dropdownLabel:
    teams: Your Teams and Organizations
    groups: Your Groups

inputPassword:
  buttonText: Generate

inputTextFile:
  tooltip: Read from a file

uploadFile:
  label: Read from File

podsSection:
  title: Pods
  detail: Pods in this workload

containersSection:
  title: Containers
  detail: Containers in this pod
  noData: No Containers
  noMatch: No Containers match the current search
  initContainer: Init Container

labelsSection:
  kind: Kind
  title: Labels
  detail: Key/Value data that can be used in Node Scheduling rules or as part of configuring other advanced options.
  status: |
    {count, plural,
    =0 {No labels}
    =1 {# label}
    other {# labels}
    }
  key: Key
  value: Value
  noData: No labels
  noMatch: No labels match the current search

loginShibboleth:
  buttonText: Log In with Shibboleth

loginGithub:
  buttonText: Log In with GitHub

loginGoogle:
  buttonText: Log In with Google

loginAzure:
  buttonText: Log In with Azure AD

loginSaml:
  ping:
    buttonText: "Log In with Ping"
  adfs:
    buttonText: "Log In with AD FS"
  okta:
    buttonText: "Log In with Okta"
  keycloak:
    buttonText: "Log In with Keycloak"

loginUserPass:
  local: Use a Local User
  externalProvider: Use a {externalName} User
  provider: "{kind}"
  userLabel: Username
  remember: Remember
  userPlaceholder: e.g. jsmith
  genericLoginLabel: Log In
  loginLabel: Log In  with {provider}
  loggingInLabel: Logging In...
  passwordLabel: Password

machineTemplatesPage:
  title: Add Node
  new:
    helpText: Launch a new node or import one already running Docker via SSH.
    btn: Configure
  custom: Custom add an existing node that is already running Docker
  templateBox:
    button: Select
    labels:
      region: Region
      zone: Zone

newCertificate:
  title:
    new: Add Certificate
    edit: 'Edit Certificate: {name}'
    view: 'Certificate: {name}'
  key:
    label: Private Key
    required: Private Key is required.
    invalidFormat: Private Key is invalid.
    placeholder: "Paste in the private key, typically starting with -----BEGIN RSA PRIVATE KEY-----"
  cert:
    label: Certificate
    required: Certificate is required.
    invalidFormat: Certificate is invalid.
    placeholder: "Paste in the certificate and any necessary chain certificates, starting with -----BEGIN CERTIFICATE-----"
    protip: Please include any chain certificates that are needed.
  certChain:
    label: Chain Certs
    placeholder: "Optional; Paste in the additional chained certificates, starting with -----BEGIN CERTIFICATE-----"
  metaXML:
    label: Metadata XML
    placeholder: "Paste in the IDP Metadata XML"
  publicKey:
    label: SSH Public Key
    required: Public Key is required.
    invalidFormat: Public Key is invalid.
    placeholder: "Paste in the public key, typically starting with 'ssh-rsa', 'ssh-dss', 'ssh-ed25519', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', or 'ecdsa-sha2-nistp521'"
  errors:
    encrypted: The private key cannot be password-protected.
    key:
      required: Private Key is required.
      invalidFormat: Private Key is invalid. Please make sure it is a RSA key.
    cert:
      required: Certificate is required.
      invalidFormat: Certificate is invalid.

modalAboutComponent:
  component: Component
  version: Version
  cattle: Cattle
  cli: CLI
  ui: User Interface
  helm: Helm
  machine: Machine

modalAddPayment:
  header: Add New Payment Method
  save: Save
  errors:
    cc: Invalid credit card number
    exp: Invalid Expiry
    cvc: Invalid CVC number
    street: A street is required.
    city: A city is required.
    state: A state is required.
    zip: A zipcode is required.
  form:
    currency:
      label: Select your currency
    cc:
      label: Credit Card Number
      placeholder: '•••• •••• •••• ••••'
    default:
      label: Default Card
    name:
      label: Name On Credit Card
      placeholder: 'John Smith'
    exp:
      label: Expiration
      placeholder: '••/••'
    cvc:
      label: CVC
      placeholder: '•••'
    address:
      addressLine1:
        label: Address
        placeholder: 742 Evergreen Terrace
      addressLine2:
        label: Address (cont)
        placeholder: Apt. 123
      city:
        label: City
        placeholder: Springfield
      state:
        label: State
        placeholder: OR
      zip:
        label: Zip Code
        placeholder: '99999'
      country:
        label: Country
        placeholder: United States
  currencies:
    yuan: "Chinese Yuan (¥)"
    euro: "Euro (€)"
    dollar: "US Dollar ($)"

modalAddCloudKey:
  name:
    placeholder: 'e.g. production-credentials'
  description:
    placeholder: 'e.g. cloud credential for production'
  header:
    new: Add Cloud Credential
    edit: Edit Cloud Credential
  type: Cloud Credential Type
  saving:
    validating: Validating Keys
  errors:
    validation: '{ status }: There was a problem validating your keys. Enter valid credentials and try again.'
    region: You must select a region in order to validate your keys
  typeSelect:
    prompt: Choose a cloud credential provider type
  amazonec2:
    accessKey:
      label: Access Key
      placeholder: Your AWS access key
    secretKey:
      label: Secret Key
      placeholder: Your AWS secret key
  azure:
    clientId:
      label: Client ID
      placeholder: Your Client ID
    clientSecret:
      label: Client Secret
      placeholder: Your Client Secret
  digitalocean:
    accessToken:
      label: Access Token
      placeholder: Your DigitalOcean API access token
      help: |
        Paste in a Personal Access Token from the DigitalOcean
        <a href="https://cloud.digitalocean.com/settings/api/tokens" target="_blank" rel="nofollow noreferrer noopener">Applications & API</a> screen
  linode:
    token:
      label: Access Token
      placeholder: Your Linode API access token
      help: |
        Paste in a Personal Access Token from the Linode
        <a href="https://cloud.linode.com/profile/tokens" target="_blank" rel="nofollow noreferrer noopener">API Tokens</a> screen
    authAccountButton: 'Next: Configure Instance'
  vmwarevsphere:
    password:
      label: Password

modalConfirmYaml2Form:
  header: "You are about to switch from yaml to form based editing"
  helpText: "Data loss may occur when switching back to form based editing. The following fields have been identified as fields that will be lost. Please note this list is not all-inclusive, you should verify your answers before saving the application. Please make sure you intended to switch or that you are okay losing the data before selecting confirm."
  confirm: Confirm

modalContainerStop:
  header: "Are you sure you want to stop"
  helpText: "The container will be forcibly terminated if it does not stop itself before the timeout expires"
  protip: "ProTip: Hold the {key} key while clicking stop to bypass this confirmation."
  label: Timeout
  button: Stop


modalConfirmDeactivate:
  header: Are you sure you want to
  protip: "ProTip: Hold the {key} key while clicking {isServiceButton} to bypass this confirmation."
  cancel: Cancel
  buttons:
    project:
      message: deactivate your environment
      button: Deactivate
    environment:
      message: stop services for
      button: Stop Services
    default:
      message: deactivate
      button: Deactivate

modalConfirmRemovePayment:
  header: 'Confirm Payment Removal'
  title: 'Are you sure you want to delete'
  card: 'Card ending in {card}'

modalEditDriver:
  header:
    create: "Add {type} Driver"
    edit: "Edit {type} Driver"
  url:
    label: Download URL
    help: The URL to download the machine driver binary for 64-bit Linux.
  uiUrl:
    label: Custom UI URL
    help: "Optional: The URL to load for customized Add Nodes screen for this driver."
    link: See <a href="https://github.com/rancher/ui-driver-skel" target="_blank">ui-driver-skel</a> for more info.
  checksum:
    label: Checksum
    help: "Optional: Verify that the downloaded driver matches the expected checksum."
  whitelist:
    label: Whitelist Domains
    addActionLabel: Add Domain
    noData: No Domains


modalEditSetting:
  title: Edit Advanced Setting
  name:
    label: Name
  value:
    label: Value
    prompt: Select a Value...
  reset:
    label: Reset to Default

modalEditPassword:
  firstLogin:
    title: Welcome to {appName}
    help: The first order of business is to set a strong password for the default <code>admin</code> user.
    actionButton: Continue
  edit:
    title: Change Password
    help: Please choose a new password
  current: Current Password
  new: New Password
  confirm: Confirm Password
  mismatch: Passwords do not match
  actionButton: Change
  mode:
    generate: 'Use a new randomly generated password:'
    manual: 'Set a specific password to use:'

modalFeedback:
  header: Welcome to {appName}!
  subtitle: "Before you get started, please tell us a little about yourself..."
  send: Get Started

modalHostEvacuate:
  header: "Are you sure you want to evacuate"
  helpText: "This will deactivate the host(s) and delete all non-infrastructure containers running on it."
  protip: "ProTip: Hold the {key} key while clicking stop to bypass this confirmation."
  button: Evacuate

modalImport:
  title: Import YAML
  mode:
    label: Import Mode
    cluster: "Cluster: Direct import of any resources into this cluster"
    project: "Project: Import resources into this project"
    namespace: "Namespace: Import all resources into a specific namespace"
  detail:
    cluster1: Namespaces the resources specify will be created as needed, but will not be automatically added to this project.
    cluster2: If a resource does not specify a namespace, it will be imported into <code>default</code>.
    cluster3: This mode also supports resources which are not namespaced, e.g. RoleTemplates.

    project1: Resources that do not specify a namespace will be imported into the selected default.
    project2: If a resource specifies a namespace that doesn't exist, it will be created and added to this project.

    namespace1: All resources will be imported into the selected namespace.
    namespace2: If a resource specifies a different namespace, importing will fail.


modalProcessError:
  header: Exception Info
  cause: "Cause:"
  none: N/A
  stackTrace: "Stack Trace:"
  close: Close

modalDrainNode:
  titleOne: 'Drain "{name}"'
  titleMultiple: 'Drain {count} Nodes'
  action: Drain
  mode: Mode
  safe:
    label: Safe
    helpText: If a node has standalone pods or ephemeral data it will be cordoned but not drained.
  aggressive:
    label: Aggressive
    helpText: <b>Permanently delete</b>:<ul class="m-0"><li>Standalone Pods and their data</li><li>Pods with "Empty Dir" volumes and their data.</li></ul>
  gracePeriod:
    title: Grace period for pods to terminate themselves
    default: Honor the default from each pod
    placeholder: e.g. 30
    custom: "Ignore the defaults and give each pod:"
  timeout:
    title: "Drain timeout"
    default: Keep trying forever
    placeholder: e.g. 60
    custom: "Give up after:"

modalRevertSettings:
  title: "Revert {setting} to default value?"
  current: Current Value
  default: Default Value

modalRestoreBackup:
  title: Restore Snapshot
  backups: Available Snapshots
  error: A snapshot is required
  fetching: Fetching new snapshots
  select:
    all: Select an available snapshot

modalRotateCertificates:
  title: Rotate Cluster Certificates
  caCerts: Rotate the CA and all service certificates
  servicesCa: Rotate all service certificates (keep the same CA)
  services: Rotate all service certificates
  single: Rotate an individual service
  dropdownLabel: Services
  select:
    all: Select a service
  expiring:
    until: '{ cert } (expires { expiresIn })'
    from: '{ cert } (expired { expiresIn })'

modalRollbackService:
  title: 'Rollback "{instanceName}"'
  titleWithSidekicks: 'Rollback "{instanceName}" & {count, plural, =1 {# sidecar} other {# sidecar}}'
  action: Rollback
  current:
    label: Current Revision
  revisionId:
    label: Rollback to Revision
    prompt: Choose a Revision...
  difference:
    label: Differences

modalRollbackApp:
  title: 'Rollback "{appName}"'
  action: Rollback
  current:
    label: Current Revision
  revision:
    label: Rollback to Revision
    prompt: Choose a Revision...
  difference:
    label: Differences

modalShell:
  title: "Shell: "

modalShortcuts:
  world: World
  time: Time
  title:
    rancher: "WELCOME TO WARP ZONE!"
    pl: Keyboard Shortcuts
  global: Global
  cluster: Cluster
  project: Project
  other: Other Stuff
  shift: Shift-{key}
  delete: Delete selected (in table views)
  kubectl: Kubectl Shell

  viewGroup: Toggle view grouping
  nextTab: Next page tab
  search: Focus the search field
  shortcuts: You are here

modalYaml:
  title:
    new: Import {type} YAML
    edit: 'Edit YAML: {name}'
    view: 'View YAML: {name}'
  noData: There is no {name} resources.

modalWelcome:
  header: Welcome to {appName}!
  closeModal: Got It

namespaceGroup:
  label: "Namespace: {name}"
  none: Pod
  project: "Namespace: All"

nodeGroup:
  label: "Node: {name}"

newIngress:
  header:
    add: Add Ingress
    edit: Edit Ingress
  error:
    noRules: "You must have one or more rules"
newBalancer:
  header:
    add: Add Load Balancer
    edit: Edit Load Balancer
    upgrade: Upgrade Load Balancer
  error:
    noRules: "You must have one or more listening ports and target rules"
    noSourcePort: "Source Port is required on each rule"
    invalidSourcePort: "Invalid source port: '{num}'"
    invalidTargetPort: "Invalid target port: '{num}'"
    mixedPort: "Port {num} has multiple rules with conflicting access/protocols"
    noTarget: "Target is required on each rule"
    noTargetPort: "Target Port is required on each rule"
    needsCertificate: "A certificate is required because there are SSL/TLS port rules"
    stackName: "A new stack needs a name"

newCatalog:
  istio:
    catalog: 'Traffic Rules Catalog:'
    saveNew: 'Create'
  answers:
    label: Answers
    addAction: Add Answer
  catalog: "Catalog:"
  category: "Category:"
  config: Configuration Options
  helm:
    label: Configuration Options
    protip: Helm templates accept a comma separated list of strings
  kind: "Catalog Kind:"
  license: "License:"
  maintainedBy: Maintained by community members
  maintainer: "Maintainer:"
  newNamespace: New Namespace
  customizeNamespace: "This application will be deployed into the <code>{namespaceId}</code> namespace"
  newAppDetail: Choose application version and namespace for the application
  appInfo: Detailed Descriptions
  appInfoDetail: Application information and user guide
  noConfig: This template has no configuration options
  official: Officially Certified
  preview: Preview
  forceUpgrade: Delete and recreate resources if needed during the upgrade
  forceRollback: Delete and recreate resources if needed during the rollback
  templateFiles: Template Files
  requiredNamespace: Required Namespace
  seeMore: More information...
  saveConfigure: Configure
  saveNew: Launch
  saveUpgrade: Upgrade
  selectVersionAdd: Select a version of the template to deploy
  selectVersionConfigure: Select a version of the template to configure
  selectVersionUpgrade: Select a version of the template to upgrade to
  startService: Start services after creating
  support: "Support:"
  templateVersion: Template Version
  titleAdd: "Add {name} App"
  titleConfigure: "Configure {name} App"
  titleUpgrade: "Upgrade {name} App"
  txt: answers.txt
  unknownType: "Unrecognized question type:"
  upgrade: "Upgrade:"
  url: "Project URL:"
  version:
    prompt: Choose a version...
    default: The default at the time (currently {version})
  error:
    appData: Error loading app data

newMultiClusterApp:
  answers:
    label: Answers
    addAction: Add Answer
  access:
    noAccessLink: You do not have access to the target project
  catalog: "Catalog:"
  category: "Category:"
  config: Configuration Options
  helm:
    label: Configuration Options
    protip: Helm templates accept a comma separated list of strings
  kind: "Catalog Kind:"
  license: "License:"
  maintainedBy: Maintained by community members
  maintainer: "Maintainer:"
  newNamespace: New Namespace
  customizeNamespace: "This application will be deployed into the <code>{namespaceId}</code> namespace"
  newAppDetail: Choose application version and namespace for the application
  appInfo: Detailed Descriptions
  appInfoDetail: Application information and user guide
  noConfig: This template has no configuration options
  official: Officially Certified
  preview: Preview
  templateFiles: Template Files
  seeMore: More information...
  saveConfigure: Configure
  saveNew: Launch
  saveUpgrade: Upgrade
  selectVersionAdd: Select a version of the template to deploy
  selectVersionConfigure: Select a version of the template to configure
  selectVersionUpgrade: Select a version of the template to upgrade to
  startService: Start services after creating
  support: "Support:"
  targets:
    label: Target Projects
    add: Add Target
    prompt: Add a target project
    target: Target
    cluster: Cluster
    project: Project
    noData: There are no targets
  targetDivider:
    label: Targets
  upgradeDivider:
    label: Upgrades
  rolesDivider:
    label: Roles
  templateVersion: Template Version
  titleAdd: "Add {name} App"
  titleConfigure: "Configure {name} App"
  titleUpgrade: "Upgrade {name} App"
  txt: answers.txt
  unknownType: "Unrecognized question type:"
  upgrade: "Upgrade:"
  url: "Project URL:"
  version:
    prompt: Choose a version...
    default: The default at the time (currently {version})
  overrides:
    label: Answer Overrides
    detail: Override individual answers on a per cluster/project basis
    dropdown:
      allProjects: "All projects in cluster {clusterName}"
      clusterGroup: "Cluster: {clusterName}"
    add:
      label: Add Override
    table:
      scope: Scope
      question: Question
      answer: Answer
      noData: There are no overrides
      noMatch: No overrides match the current search
    scopeOverride:
      placeholder: Select a scope
    questionOverride:
      placeholder: Select a question
    answerOverride:
      placeholder: Question required
  roles:
    title: Application Access Roles
    detail: Select a role to assign this app given this app the selected access.
    label: Available Roles
    radios:
      cluster: "Cluster - This app will be able access and manage all resources in the clusters in which it is deployed"
      project: "Project - This app will be able to access and manage resources in the projects in which it is deployed"
    help: "Note: This may not be the full list of roles. The list is limited to the roles available to your user. If you are missing a required role, please ask your system administrator."
    additionalRoles: Existing Roles
    noRoles: "You can not add new roles because you do not have any roles available. Please speak to your system administrator about gaining role access."
    table:
      role: Role
      name: Name
      builtIn: Built In
      external: External
      noData: There are no roles yet
      noMatch: No roles match the current search
      prompt: "Select a Role..."
  members:
    title: Members
    detail: Select members who can view this application
    table:
      name: Name
      type: Member Type
      accessType: Access Type
      noData: There are no members yet
      noMatch: No members match the current search
      prompt: Select a Value...
  upgradeApp:
    title: Upgrade Strategy
    disabled: Upgrade all apps simultaneously
    enabled: Rolling update (batched)
    batch: Batch size
    interval: Interval

newContainer:
  add:
    container: Deploy Pod
    service: Deploy Workload
    globalService: Deploy Global Workload
    sidekick: 'Deploy Sidecar'
    sidekickName: 'Deploy Sidecar of "{name}"'
  upgrade:
    container: Edit Container
    service: Edit Workload
    globalService: Edit Global Service
    sidekick: Edit Sidecar
    sidekickName: 'Edit Sidecar of "{name}"'
  saveUpgrade: Save
  saveNew: Launch
  windows: Windows
  linux: Linux
  all: Any
  os: Target OS
  name:
    placeholder: e.g. myapp
  description:
    placeholder: e.g. My Application
  environment:
    label: Environment Variables
    from: Inject Values From Another Resource
    detail: Set the environment that will be visible to the container, including injecting values from other resources like Secrets.
    addAction: Add Variable
    addFrom: Add From Source
    keyLabel: Variable
    keyPlaceholder: e.g. FOO
    valueLabel: Value
    valuePlaceholder: e.g. bar
  sidekick:
    header: Edit Workload
    title: Select container to edit
    detail: '"{service}" has sidecars.  Which container do you want to edit?'
    primary: Primary
    sidekick: Sidecar
  containerType:
    title: Sidecar Type
    standard: Standard Container
    init: Init Container

  errors:
    noSidekick: Choose a workload to add the sidecar to
    duplicateName: 'There is already a sidecar named "{name}" in the workload "{service}"'
    quotaRequired: '"{key}" is required as resource quota is enforced on the project'

newPassword:
  placeholder: New Password
  password: New Password
  confirmPassword: Confirm Password
  passwordNoMatch: Passwords do not match

newSecret:
  title:
    new: Add Secret
    edit: 'Edit Secret: {name}'
    view: 'Secret: {name}'
  name:
    placeholder: e.g. api-key
  description:
    placeholder: e.g. S3 key pair
  values:
    label: Secrets Values
  addActionLabel: Add Secret Value

customDrivers:
  nodes: Node Drivers
  clusters: Cluster Drivers

clusterDrivers:
  add: Add Cluster Driver
  builtIn: Built-In
  table:
    noData: This cluster does not have any nodes defined
    noMatch: No nodes match the current search

kontainerDriver:
  displayName:
    aliyunkubernetescontainerservice: Alibaba ACK
    amazonElasticContainerService: Amazon EKS
    azureKubernetesService: Azure AKS
    googleKubernetesEngine: Google GKE
    huaweicontainercloudengine: Huawei CCE
    import: Import
    rancherKubernetesEngine: Rancher RKE
    tencentkubernetesengine: Tencent TKE


nodeDriver:
  addTemplate: Add Node Template
  editTemplate: "Edit node template: {name}"
  cloneTemplate: "Clone node template from: {name}"
  editWarning: Editing a node template will only affect new nodes created by a node pool; existing nodes will not be updated or replaced automatically.<br>If you delete nodes from a pool, new ones will be created using the new settings in the template.
  externalError: "There was an error trying to load custom driver { driverName }. Please verify the custom node driver settings."
  cloudCredentialError: A cloud credential is required
  nameError: A name is required
  displayName:
    aliyunecs: Aliyun ECS
    aliyunkcs: Alibaba ACK
    amazonec2: Amazon EC2
    amazoneks: Amazon EKS
    azure: Azure
    azureaks: Azure AKS
    cloudca: Cloud.ca
    digitalocean: DigitalOcean
    exoscale: Exoscale
    googlegke: Google GKE
    huaweicce: Huawei CCE
    linode: Linode
    openstack: OpenStack
    otc: Open Telekom Cloud
    packet: Packet
    rackspace: RackSpace
    softlayer: SoftLayer
    tencenttke: Tencent TKE
    upcloud: UpCloud
    vmwarevsphere: vSphere
    zstack: ZStack
  driverOptions: "{driver} Options"
  templateOptions: "{appName} Template"
  amazoneks:
    access:
      next: "Next: Configure Cluster"
      loading: Loading Cluster Option from Amazon...
      help: "Paste in your AWS key pair here. Use only IAM access keys, using keys generated from the root user will make the cluster unreachable."
    clusterOption:
      title: Cluster Options
      detail: Customize the cluster that will be used to launch EKS Instances
    kubernetesVersion:
      label: Kubernetes Version
      placeholder: Select the Kubernetes Version to install
    keyPairs:
      label: SSH Key
      prompt: none selected
    role:
      label: Service Role
      noneSelected: "Rancher created role"
      help: "You may choose to not select a Service Role and one will be created for you."
      radio:
        default: "Standard: Service role is automatically created"
        custom: "Custom: Choose from your existing service roles"
      next: "Next: Select VPC & Subnet"
      loading: "Loading VPCs from Amazon..."
    vpc:
      title: VPC & Subnet
      detail: Choose the VPC for that will be used for EKS Instances
      next: "Next: Select Subnets"
      loading: "Loading Subnets from Amazon..."
      nextRancherDefault: "Next: Select Instance Options"
      loadingRancherDefault: "Loading Instance options..."
      noneSelected: "Rancher created VPC and Subnet"
      radio:
        default: "Standard: VPC and Subnet are automatically created"
        custom: "Custom: Choose from your existing VPC and Subnets"
    subnet:
      title: Subnet
      help: 2 subnets required
      next: "Next: Select Security Group"
      loading: "Loading Security Groups from Amazon..."
    associateWorkerNodePublicIp:
      title: Public IP for Worker Nodes
      radio:
        default: Yes
        off: 'No: Private IPs only'
    securityGroup:
      title: Security Groups
      detail: Choose the security groups that will be applied to EKS Instances
      choose:  Choose one or more existing groups
      defaultExisting: "Standard: Use the existing <code>{groupName}</code> group"
      defaultCreate: "Standard: Automatically create a new security group"
      next: "Next: Set Instance options"
      loading: Loading Instance options...
    ami:
      label: Custom AMI Override
      help: "You may override the default AMI based on your region"
    max:
      label: Maximum ASG Size
    min:
      label: Minimum ASG Size
    userData:
      label: User Data
      help: Pass user-data to the nodes to perform automated configuration tasks
      placeholder: Paste in the script
    nodeVolumeSize:
      label: Node Volume Size
      placeholder: e.g. 20
    accessKey:
      label: Access Key
      placeholder: Your AWS access key
    secretKey:
      label: Secret Key
      placeholder: Your AWS secret key
      provided: Provided
    sessionToken:
      label: "Session Token  <em class='text-muted'>Optional</em>"
      placeholder: Your AWS session token
      provided: Provided
    region:
      label: Region
  amazonec2:
    access:
      title: 1. Account Access
      detail: Choose the region and API Key that will be used to launch EC2 Instances
      next: "Next: Authenticate & configure nodes"
      loading: Loading Availability Zone and VPC info from EC2...
      help: "Paste in your AWS key pair here. We'll use this key to create your new Instances."
    zone:
      title: 2. Zone and Network
      detail: Select the Availability Zone and VPC/Subnet for Instances
      next: "Next: Select a Security Group"
      loading: Loading security group info from EC2...
    accessKey:
      label: Access Key
      placeholder: Your AWS access key
    secretKey:
      label: Secret Key
      placeholder: Your AWS secret key
      provided: Provided
    region:
      label: Region
    availabilityZone: Availability Zone
    subnet: VPC/Subnet
    noSubnet: There are no subnets to choose from
    securityGroup:
      title: 3. Security Groups
      detail: Choose the security groups that will be applied to Instances
      choose:  Choose one or more existing groups
      defaultExisting: "Standard: Use the existing <code>{groupName}</code> group"
      defaultCreate: "Standard: Automatically create a <code>{groupName}</code> group"
      next: "Next: Set Instance options"
      loading: Loading Instance options...
    tags:
      addActionLabel: Add AWS Tag
      valueLabel: Tags
      placeholder: e.g. dev
    instance:
      title: 4. Instance
      detail: Customize the EC2 Instance that will be created.
    portHelp:
      link: Learn more
      text: about the ports that will be opened.
    needs:
      label: "For {appName} to work correctly your security group will need to allow traffic:"
      item1: From the {appName} server to <code>TCP</code> port <code>22</code> <span class="text-muted">(SSH to install and configure Docker)</span>
      item2: From and To all other hosts on <code>UDP</code> ports <code>500</code> and <code>4500</code> <span class="text-muted">(for IPsec networking)</span></li>
      item3: These rules will <b>not</b> be added automatically.
    instanceType:
      label: Instance Type
    rootSize:
      label: Root Disk Size
      unit: GB
    ami:
      label: AMI
      placeholder: An Ubuntu AMI
      rancherList: RancherOS AMI List
    sshUser:
      label: SSH User
      placeholder: e.g. ubuntu
    iam:
      label: IAM Instance Profile Name
      placeholder: my-k8s-profile
    privateIp:
      label: Private IP
    onlyPrivate:
      label: Use only private IP address
    requestSpotInstance:
      label: Spot Instance
      enable: Request spot instance
    spotPrice:
      label: Spot Price
      unit: $
  digitalocean:
    droplet:
      title: Droplet Options
      detail: Configure the options for the Droplets that will be created by this template.
    sizeLabel: |
      {highMem, select, true {High Memory: } other {}}{memoryGb} GB RAM, {disk} GB Disk, {vcpus, plural,
        =1 {# vCPU}
        other {# vCPUs}
      }
    authAccountButton: 'Next: Configure Droplet'
    accessToken:
      label: Access Token
      placeholder: Your DigitalOcean API access token
      help: |
        Paste in a Personal Access Token from the DigitalOcean
        <a href="https://cloud.digitalocean.com/settings/api/tokens" target="_blank" rel="nofollow noreferrer noopener">Applications & API</a> screen
    image:
      label: Image
    sshUser:
      label: SSH User
      placeholder: 'e.g. root'
    size:
      label: Droplet Size
    region:
      label: Region
    optionsSection: Options
    backups:
      label: Enable Snapshots
    ipv6:
      label: Enable IPv6
    privateNetworking:
      label: Enable Private Networking
    monitoring:
      label: Enable Monitoring
    tags:
      addActionLabel: Add Droplet Tag
      valueLabel: Tags
      placeholder: e.g. dev
    errors:
      hostnamePrefix: '"Name Prefix" can not contain "_"'
  exoscale:
    accountSection: Account Access
    apiKey:
      label: API Key
      placeholder: Your Exoscale API Key
    secretKey:
      label: Secret Key
      placeholder: Your Exoscale secret key
      provided: Provided
    accountHelp: Paste in your Exoscale key pair here.  We'll use this key to create your new Instances.
    loginAction: "Next: Authenticate & select a Zone"
    loadingSecurity: Loading security group info from Exoscale...
    securityGroupSection: Security Group
    securityGroup:
      label: Security Group
      defaultExisting: "Standard: Use the existing <code>{groupName}</code> group"
      defaultCreate: "Standard: Automatically create a <code>{groupName}</code> group"
      custom: "Custom: Choose an existing group"
      updating: Updating Security Group...
      creating: Creating Security Group...
    loadingZone: Loading zone info from Exoscale...
    zoneSection: Zone
    selectZoneAction: "Next: Select a Security Group"
    zone:
      label: Zone
    portHelp:
      link: Learn more
      text: about the ports that will be opened.
    needs:
      label: "For {appName} to work correctly your security group will need to allow traffic:"
      item1: From the {appName} server to <code>TCP</code> port <code>22</code> <span class="text-muted">(SSH to install and configure Docker)</span>
      item2: From and To all other hosts on <code>UDP</code> ports <code>500</code> and <code>4500</code> <span class="text-muted">(for IPsec networking)</span></li>
      item3: These rules will <b>not</b> be added automatically.
    selectSecurityGroupAction: "Next: Set Instance options"
    loadingInstance: Fetching available Instance settings...
    instanceSection: Instance
    instanceProfile:
      label: Instance Profile
    diskSize:
      label: Root Size
    sshUser:
      label: SSH User
      placeholder: 'picked by default by docker-machine'
    template:
      label: Template
  packet:
    accountSection: Account Access
    projectId:
      label: Project ID
      placeholder: Your Packet project ID
    apiKey:
      label: Account API Key
      placeholder: Your Packet API key
    apiKeyHelp: From the Packet <a href="https://app.packet.net/users/0/api-keys" target="_blank">API Keys</a> screen
    instanceSection: Instance
    instanceOptionsSection: Instance Options
    loginAction: "Next: Authenticate & select an instance"
    authentication: Authenticating
    location: Location
    planDetails:
      label: Instance Details
      cpu: CPUs
      memory: Memory
      drives: Drives
      network: NICs
    image:
      label: Image
    size:
      label: Size
    regionSection: Region
    region:
      label: Region
  rackspace:
    account:
      title: 1. Account Access
      detail: Username and API Key will be used to launch Rackspace Instances.
    username:
      label: Username
      placeholder: Your RackSpace username
    apiKey:
      label: API Key
      placeholder: Your RackSpace API key
    accountHelp: From the Account Settings screen of the RackSpace control panel
    region:
      title: 2. Region and Flavor
      detail: Choose the region and flavor that will be used to launch Rackspace Instances.
      label: Region
    flavor:
      label: Flavor
  vmwarevsphere:
    access:
      title: 1. Account Access
      detail: Configure where to find the VCenter or ESXi server
      help: "Note: The free ESXi license does not support API access.  Only servers with a valid or evaluation license are supported."
    instance:
      title: 2. Instance Options
      detail: Choose the size and OS of the virtual machine
    scheduling:
      title: 3. Scheduling
      detail: Choose what hypervisor the virtual machine will be scheduled to
    vappOptions:
      title: 4. vApp Options
      detail: Choose OVF environment properties
    vcenter:
      label: vCenter or ESXi Server
      placeholder: vCenter or ESXi hostname/IP
    vcenterPort:
      label: Port
    username:
      label: Username
    password:
      label: Password
    instanceSection: Instance
    instanceOptionsSection: Instance Options
    cpuCount:
      label: CPUs
      unit: '{cores, plural, =1 {Core} other {Cores}}'
    memorySize:
      label: Memory
      unit: MB
    diskSize:
      label: Disk
      unit: MB
    boot2dockerUrl:
      label: OS ISO URL
      placeholder: "Default: Latest rancheros-vmware image"
    schedulingSection: Scheduling
    dataCenter:
      label: Data Center
      placeholder: "e.g. datacenter_name"
      help: "Data Center to create VM in (leave blank for standalone ESXi)"
    pool:
      label: Pool
      placeholder: "e.g. /dc_name/host/host_name/Resources/pool_name"
      help: "Resource Pool to create VM in (leave blank for standalone ESXi)"
    host:
      label: Host
      placeholder: "e.g. cluster_name/host_name"
      help: "Specific host to create VM on (leave blank for standalone ESXi or for cluster with DRS)"
    network:
      label: Network
      placeholder: "e.g. VM Network"
      help: "Network to attach VM to"
    dataStore:
      label: Data Store
      placeholder: "e.g. datastore_cluster_name/datastore_name"
      help: "Datastore to create VM disk on"
    cloudinit:
      label: Cloud Init
      placeholder: "e.g. http://my_host/cloud-config.yml"
      help: "Cloud-init file or url to set in the guestinfo"
    folder:
      label: Folder
      placeholder: "e.g. /folder"
      help: "Folder for the VM. This folder must already exist in the datacenter."
    cfgparam:
      key:
        placeholder: "e.g. guestinfo.hostname"
      value:
        placeholder: "e.g. myrancherhost"
      label: Configuration Parameters used for guestinfo
      addActionLabel: Add Parameter
    vappHelp: "Note: standalone ESXI does not support vApp options and network protocol profiles"
    vappMode:
      disabled: "Do not use vApp"
      auto: "Use vApp to configure networks with network protocol profiles"
      manual: "Provide a custom vApp config"
    vappTransport:
      label: OVF environment transport
      placeholder: "e.g. com.vmware.guestInfo"
      help: "com.vmware.guestInfo or iso"
    vappIpprotocol:
      label: vApp IP protocol
      placeholder: "e.g. IPv4"
      help: "IPv4 or IPv6"
    vappIpallocationpolicy:
      label: vApp IP allocation policy
      placeholder: "e.g. fixedAllocated"
      help: "dhcp, fixed, transient or fixedAllocated"
    vappProperty:
      key:
        placeholder: "e.g. guestinfo.interface.0.ip.0.address"
      value:
        placeholder: "e.g. ip:VM Network, expression or string"
      label: vApp properties
      addActionLabel: Add Property
  azure:
    placement:
      title: Placement
      detail: Select the placement for the instances that will be created by this template.
    access:
      title: Account Access
      detail: API Keys will be used to launch Azure Instances.
    network:
      title: Network
      detail: Configure the network for the instances that will be created by this template.
    instance:
      title: Instance
      detail: Customize the Azure Instance that will be created.
    subscriptionId:
      label: Subscription ID
      placeholder: Your Azure subscription ID
    subscriptionCert:
      label: Subscription Cert
      placeholder: Your Azure subscription certificate
    image:
      label: Image
      placeholder: 'canonical:UbuntuServer:16.04.0-LTS:latest'
    diskSize:
      label: Disk Size
      placeholder: e.g. 30
    managedDisks:
      label: Disk Type
      unmanaged: Unmanaged Disk
      managed: Managed Disk
    updateDomainCount:
      label: Update Domain Count
      placeholder: e.g. 5
      helpText: If the availability set has already been created, the update domain count will be ignored.
    faultDomainCount:
      label: Fault Domain Count
      placeholder: e.g. 3
      helpText: If the availability set has already been created, the fault domain count will be ignored.
    size:
      label: Size
    dockerPort:
      label: Docker Port
      placeholder: '2376'
    publishSettingsFile:
      label: Publish Settings
      placeholder: Your Publish Settings file
    environment:
      label: Environment
      placeholder: 'AzurePublicCloud'
    resourceGroup:
      label: Resource Group
      placeholder: 'docker-machine'
    sshUser:
      label: SSH User
      placeholder: usr1
    storageType:
      label: Storage Type
    vnet:
      label: VNet
      placeholder: '[resourcegroup:]name'
    subnet:
      label: Subnet
      placeholder: example-sub-name
    subnetPrefix:
      label: Subnet Prefix
      placeholder: 128.42.0.0/21
    availabilitySet:
      label: Availability Set
      placeholder: availability-set-name
    openPort:
      label: Open Port
      placeholder: 'Comma-separated, e.g. 80,443'
    privateIpAddress:
      label: Private IP
      placeholder: 127.0.0.1
    usePrivateIp:
      label: Use Private IP To Connect
    staticPublicIp:
      label: Public IP
    noPublicIp:
      label: No Public IP
    clientId:
      label: Client ID
      placeholder: Your Client ID
    clientSecret:
      label: Client Secret
      placeholder: Your Client Secret
    region:
      label: Region
  aliyunecs:
    accountSection:
      label: 1. Account Access
      detail: API Keys will be used to launch Aliyun ECS Instances.
      next: "Next: Authenticate & Config network options"
      loading: Loading Regions from Aliyun ECS...
    accessKey:
      label: Access Key
      placeholder: Your Aliyun Account Access Key
    accessKeySecret:
      label: Access Key Secret
      placeholder: Your Aliyun Account Access Key Secret
      provided: Provided
    apiEndpoint:
      label: API Endpoint (Optional)
      placeholder: Private Aliyun API Server Endpoint
    instanceOptionsSection:
      label: Instance
      detail: Customize the Aliyun ECS Instance that will be created.
    instanceDescription:
      label: Instance Description
      placeholder: Instance Description
    instanceType:
      label: Instance Type
      placeholder: Instance Type
    systemImage:
      label: System image
      placeholder: System image
    internetMaxBandwidth:
      label: Internet Max Bandwidth
      placeholder: 1 to 100
    aliyunSLB:
      label: Aliyun SLB ID
      placeholder: Aliyun SLB ID
    storageSection:
      label: Storage
      detail: Configure the storage for the instances that will be created by this template.
      next: "Next: Config Aliyun ECS Instance options"
      loading: Loading Instance Types and Images from Aliyun ECS...
    ioOptimized:
      label: Instance Storage I/O Optimized
      optimized: Optimized
      none: None
    systemDiskCategory:
      label: System Disk Category
    dataDiskCategory:
      label: Data Disk Category
    dataDiskSize:
      label: Data Disk Size
      placeholder: Disk Size
    region:
      label: Region
      placeholder: Region
    zone:
      label: Available Zone
      prompt: Choose a Available Zone...
    networkSection:
      label: Network
      detail: Configure the network for the instances that will be created by this template.
      next: "Next: Config Storage Options"
      loading: Loading Storage Types from Aliyun ECS...
    routeCIDR:
      label: Route CIDR
      placeholder: e.g. 192.168.1.0/24
    vpcId:
      label: VPC
      prompt: Choose a VPC...
    vswitchId:
      label: VSwitch
      prompt: Choose a VSwitch...
    privateIp:
      label: Private IP
      placeholder: Private IP in Private Network
    privateAddressOnly:
      label: Private Address Only
    securitySection:
      label: Security
      detail: Choose the security groups that will be applied to Instances
    securityGroup:
      label: Security Group
      placeholder: Security Group
      prompt: Choose a Security Group...
      defaultCreate: "Automatically create a <code>{groupName}</code> group"
    sshPassword:
      label: SSH Password
      placeholder: Set Instance SSH Password (Optional)
      provided: Provided
    tags:
      addActionLabel: Add Instance Tag
      valueLabel: Tags
      placeholder: e.g. dev
    errors:
      vpcIdRequired: VPC is required.
      vswitchIdRequired: VSwitch is required.
      accessKeyRequired: Access Key is required.
      accessSecretRequired: Access Secret Key is required.
      sshPasswordLengthNotValid: The length of SSH password must between eight and thirty.
      sshPasswordInvalidCharacter: SSH password contains invalid characters.
      sshPasswordFormatError: "SSH password must contain at least three out of four kinds of following characters: uppercase letter, lowercase letters, numbers, and special characters."
      nameNotValidForApp: The name is invalid according to the {appName} hostname rule.
  zstack:
    access:
      title: 1. Account Access
      detail: Choose the endpoint, account name and account password that will be used to launch ZStack Instances
      next: "Next: Authenticate & select a network"
      loading: Loading Zone, Cluster, Network info from ZStack...
    endpoint:
      label: Endpoint
      placeholder: e.g. https://192.168.1.42:8443/
    accountName:
      label: Account Name
      placeholder: Your account name
    accountPassword:
      label: Account Password
      placeholder: Your account password
      provided: Provided
    zone:
      title: 2. Zone, Cluster and Network
      detail: Select the Zone, Cluster and Network for Instances
      next: "Next: Set Instance options"
      loading: Loading instance options from ZStack...
      label: Zone
    cluster:
      label: Cluster
    network:
      defaultCreate: "Standard: Automatically create a <code>{groupName}</code> network"
      choose:  Choose existing network
      label: Network
    portHelp:
      link: Learn more
      text: about the ports that will be opened.
    instance:
      title: 3. Instance
      detail: Customize the EC2 Instance that will be created.
    instanceOffering:
      label: Instance Type
    systemDiskOffering:
      label: System Disk
    imageName:
      label: Image Name
    dataDiskOffering:
      label: Data Disk

newConfigMap:
  title:
    new: Add Config Map
    edit: 'Edit Config Map: {name}'
    view: 'Config Map: {name}'
  name:
    placeholder: e.g. map
  description:
    placeholder: e.g. app
  values:
    label: Config Map Values
  addActionLabel: Add Config Map Value

projectGroup:
  label: "Project: {name}"
  none: Namespace
  project: Not in a project
  noNS: This project contains no namespaces

optionallyNamespaced:
  scope:
    label: Scope
    project: Available to all namespaces in this project
    namespace: Available to a single namespace

orchestrationWelcome:
  simple:
    title: Simple
  enhanced:
    title: Enhanced with Kubernetes

pageFooter:
  notARelease: (Not a Release)
  help: 'Help & Docs'
  issues: File an Issue
  forums: Forums
  slack: Slack
  download:
    link: Download CLI
    mac: macOS
    windows: Windows
    linux: Linux
  showSystem: Show System

pagination:
  catalog: |
    {pages, plural,
    =0 {No Catalogs}
    =1 {{count} {count, plural, =1 {Catalog} other {Catalogs}}}
    other {{from} - {to} of {count} Catalogs}}
  certificate: |
    {pages, plural,
    =0 {No Certificates}
    =1 {{count} {count, plural, =1 {Certificate} other {Certificates}}}
    other {{from} - {to} of {count} Certificates}}
  container: |
    {pages, plural,
    =0 {No Containers}
    =1 {{count} {count, plural, =1 {Container} other {Containers}}}
    other {{from} - {to} of {count} Containers}}
  cluster: |
    {pages, plural,
    =0 {No Clusters}
    =1 {{count} {count, plural, =1 {Cluster} other {Clusters}}}
    other {{from} - {to} of {count} Clusters}}
  dnsRecord: |
    {pages, plural,
    =0 {No DNS Records}
    =1 {{count} {count, plural, =1 {DNS Record} other {DNS Records}}}
    other {{from} - {to} of {count} DNS Records}}
  driver: |
    {pages, plural,
    =0 {No Drivers}
    =1 {{count} {count, plural, =1 {Driver} other {Drivers}}}
    other {{from} - {to} of {count} Drivers}}
  driverOptions: |
    {pages, plural,
    =0 {No Options}
    =1 {{count} {count, plural, =1 {Driver Option} other {Driver Options}}}
    other {{from} - {to} of {count} Driver Options}}
  destinationRules: |
    {pages, plural,
    =0 {No Options}
    =1 {{count} {count, plural, =1 {Destination Rule} other {Destination Rules}}}
    other {{from} - {to} of {count} Destination Rules}}
  entry: |
    {pages, plural,
    =0 {No Entries}
    =1 {{count} {count, plural, =1 {Entry} other {Entries}}}
    other {{from} - {to} of {count} Entries}}
  event: |
    {pages, plural,
    =0 {No Events}
    =1 {{count} {count, plural, =1 {Event} other {Events}}}
    other {{from} - {to} of {count} Events}}
  generic: |
    {pages, plural,
    =0 {No Items}
    =1 {{count} {count, plural, =1 {Item} other {Items}}}
    other {{from} - {to} of {count} Items}}
  hpa: |
    {pages, plural,
    =0 {No Horizontal Pod Autoscalers}
    =1 {{count} {count, plural, =1 {Horizontal Pod Autoscaler} other {Horizontal Pod Autoscalers}}}
    other {{from} - {to} of {count} Horizontal Pod Autoscalers}}
  image: |
    {pages, plural,
    =0 {No Images}
    =1 {{count} {count, plural, =1 {Image} other {Images}}}
    other {{from} - {to} of {count} Images}}
  istioRule: |
    {pages, plural,
    =0 {No Traffic Rules}
    =1 {{count} {count, plural, =1 {Traffic Rule} other {Traffic Rules}}}
    other {{from} - {to} of {count} Traffic Rules}}
  link: |
    {pages, plural,
    =0 {No Links}
    =1 {{count} {count, plural, =1 {Link} other {Links}}}
    other {{from} - {to} of {count} Links}}
  loadBalancer: |
    {pages, plural,
    =0 {No Load Balancers}
    =1 {{count} {count, plural, =1 {Load Balancer} other {Load Balancers}}}
    other {{from} - {to} of {count} Load Balancers}}
  ingress: |
    {pages, plural,
    =0 {No Ingresses}
    =1 {{count} {count, plural, =1 {Ingress} other {Ingresses}}}
    other {{from} - {to} of {count} Ingresses}}
  member: |
    {pages, plural,
    =0 {No Members}
    =1 {{count} {count, plural, =1 {Member} other {Members}}}
    other {{from} - {to} of {count} Members}}
  mount: |
    {pages, plural,
    =0 {No Mounts}
    =1 {{count} {count, plural, =1 {Mount} other {Mounts}}}
    other {{from} - {to} of {count} Mounts}}
  namespace: |
    {pages, plural,
    =0 {No Namespaces}
    =1 {{count} {count, plural, =1 {Namespace} other {Namespaces}}}
    other {{from} - {to} of {count} Namespaces}}
  node: |
    {pages, plural,
    =0 {No Nodes}
    =1 {{count} {count, plural, =1 {Node} other {Nodes}}}
    other {{from} - {to} of {count} Nodes}}
  nodePool: |
    {pages, plural,
    =0 {No Node Pools}
    =1 {{count} {count, plural, =1 {Node Pool} other {Node Pools}}}
    other {{from} - {to} of {count} Node Pools}}
  nodeTemplate: |
    {pages, plural,
    =0 {No Node Templates}
    =1 {{count} {count, plural, =1 {Node Template} other {Node Templates}}}
    other {{from} - {to} of {count} Node NodeTemplates}}
  pod: |
    {pages, plural,
    =0 {No Pods}
    =1 {{count} {count, plural, =1 {Pod} other {Pods}}}
    other {{from} - {to} of {count} Pods}}
  podHighlightSubset: "<b>{subset} of {count}</b> Pods"
  podNoSubset: "0 of {count} Pods"
  podLabel: |
    {count, plural,
      =1 {Pod}
      other {Pods}
    }
  port: |
    {pages, plural,
    =0 {No Ports}
    =1 {{count} {count, plural, =1 {Port} other {Ports}}}
    other {{from} - {to} of {count} Ports}}
  project: |
    {pages, plural,
    =0 {No Projects}
    =1 {{count} {count, plural, =1 {Project} other {Projects}}}
    other {{from} - {to} of {count} Projects}}
  rule: |
    {pages, plural,
    =0 {No Rules}
    =1 {{count} {count, plural, =1 {Rule} other {Rules}}}
    other {{from} - {to} of {count} Rules}}
  role: |
    {pages, plural,
    =0 {No Roles}
    =1 {{count} {count, plural, =1 {Role} other {Roles}}}
    other {{from} - {to} of {count} Roles}}
  service: |
    {pages, plural,
    =0 {No Services}
    =1 {{count} {count, plural, =1 {Service} other {Services}}}
    other {{from} - {to} of {count} Services}}
  storageClass: |
    {pages, plural,
    =0 {No Storage Classes}
    =1 {{count} {count, plural, =1 {Storage Class} other {Storage Classes}}}
    other {{from} - {to} of {count} Storage Classes}}
  volume: |
    {pages, plural,
    =0 {No Volumes}
    =1 {{count} {count, plural, =1 {Volume} other {Volumes}}}
    other {{from} - {to} of {count} Volumes}}
  virtualServices: |
    {pages, plural,
    =0 {No Options}
    =1 {{count} {count, plural, =1 {Virtual Service} other {Virtual Services}}}
    other {{from} - {to} of {count} Virtual Services}}
  workload: |
    {pages, plural,
    =0 {No Workloads}
    =1 {{count} {count, plural, =1 {Workload} other {Workloads}}}
    other {{from} - {to} of {count} Workloads}}

projectRow:
  none: No description
  orchestration: Orchestration

publicEndpoints:
  endpoint: Endpoint
  bindIpAddress: Bind IP
  publicPort: Public Port
  target: Target
  privatePort: Container Port
  noData: There are no published ports
  noMatch: No ports match the current search

physicalStats:
  title: Physical Attributes
  detail: Physical machine attributes

registryRow:
  address: Address
  username: Username
  created: Created

reservationParameters:
  label: Resource Limit
  memory:
    labelText: 'Memory'
    placeholder: 'Default: Entire host'
    unit: 'MB'
  milliCpu:
    labelText: CPU
    placeholder: 'Default: Entire host'
    unit: 'mCPU'

saveCancel:
  saving: Saving...
  saved: Saved!
  edit: Save
  next: Next
  create: Create
  cancel: Cancel

schema:
  inputBoolean:
    y: "True"
    n: "False"
  inputCertificate:
    prompt: Choose a Certificate...
  inputContainer:
    prompt: Choose a Container...
  inputConfigMap:
    prompt: Choose a Config Map...
  inputEnum:
    option: Choose an option...
  inputHost:
    label: Choose a Host...
  inputService:
    prompt: Choose a Workload...
    custom: Custom
  inputDnsRecord:
    prompt: Choose a Service...
  inputStorageClass:
    prompt: Use the default class...
  inputSecret:
    secret: Choose a Secret...
    certificate: Choose a Certificate...

schedulingRuleRow:
  theHost: The host
  must: must
  should: should
  shouldNot: should not
  mustNot: must not
  haveA: have a
  of: of
  hostLabel: host label
  containerLabel: container with label
  serviceName: service with the name
  containerName: container with the name

serverUrl:
  header:
    label: Rancher Server URL
    detail: "What URL should be used for this {appName} installation? All the nodes in your clusters will need to be able to reach this."
  button:
    save: Save URL

siteAccess:
  header: Site Access
  helpText: "Configure who should be allowed to log in and use {appName}."
  unrestricted: "Allow any valid {individuals}"
  restricted: "Allow members of Clusters, Projects, plus Authorized {individuals} and {collection}"
  required: "Restrict access to only Authorized {individuals} and {collection}"
  listHeader: "Authorized {individuals} and {collection}"
  dupe: "User access already enabled"
  minimum: 'You must add at least one authorized entry'
  noIdentity: None
  users: Users
  groups: Groups
  organizations: Organizations
  refreshGroups: Refresh Group Memberships
  refreshHelp: This will trigger a refresh of all Groups and update their user lists.
  helpLabel: Whats this?

systemInfoSection:
  title: System Information
  detail: System and kubernetes information.
  key: Key
  value: Value
  noData: No Data
  arch: Architecture
  dockerVersion: Docker Version
  kernelVersion: Kernel Version
  kubeletVersion: Kubelet Version
  kubeProxyVersion: Kube Proxy Version
  operatingSystem: Operating System Image
  osType: Operating System
  noMatch: No system information match the current search

tableCountSelect:
  header: Table Rows per Page

telemetryOpt:
  header: Statistics
  subtext: |
    Rancher Labs would like to collect anonymous information about the configuration of your installation to help make {appName} better.<br/>Your data will not be shared with anyone else, and no specific resource names or addresses are collected.
  learnMore:
    label: Learn More
  label: Allow collection of anonymous statistics

tooltipLink:
  list: List
  composeYaml: Compose YAML

tooltipWarning:
  notConfigured: Access Control Not Configured
  dismiss: Dismiss

tooltipExpire:
  label: 'This cluster has certs that are expiring or have expired.'
  link: 'Rotate Now'

tooltipToggleOverride:
  label: 'Allow user override for <br/>{ path }?'

upgradeBtn:
  version:
    current: 'Current'
  status:
    none: 'Upgrade: None'
    loading: 'Checking upgrades...'
    current: 'Up to date'
    available: 'Upgrade available'
    inprogress: 'Upgrade in progress'
    upgraded: 'Upgraded: Finish Upgrade'
    notfound: 'Catalog Template not found'
    error: 'Error checking for upgrade'
    required: 'Upgrade required'

jsonEditor:
  placeholder: "Please input in JSON format"

viewEditDescription:
  form:
    name:
      placeholder: e.g. lab
    description:
      placeholder: e.g. Environment for developer experimentation

volumesPage:
  title: Volume Claims
  addActionLabel: Add Volume Claim
  noData: There are no persistent volume claims defined
  noMatch: No persistent volume claims match the current search
  claimName:
    label: Claim Name
  volume:
    label: Persistent Volume
  storageClass:
    label: Storage Class


vmConsole:
  header: "Console:"
  protip: "ProTip: Hold the {key} key when opening shell access to launch a new window."
  canvas: Canvas not supported.
  footerActions:
    buttonSend: Send Ctrl-Alt-Delete
    buttonCancel: Close

volumeRow:
  mounts:
    readOnly: "(read-only)"

waitOrchestration:
  count: '({sub} of {count})'

waitKubernetes:
  addHost: 'Add at least one host'
  activateHost: 'Waiting for a host to be active'
  createStack: 'Creating Kubernetes system stack'
  startServices: 'Starting services'
  waitApi: 'Waiting for Kubernetes API'

searchableSelect:
  noMatch: No match
  noOptions: No available options

##############################
# Mixins
##############################
containerChoices:
  hostGroup: "Host: {name}"
  hostGroupWithState: "Host: {name} ({state})"
  unknownHost: "Host: ???"
  containerOption: "{name}"

##############################
# Services
##############################
allWorkloads:
  namespace: "Namespace: {name}"

##############################
# Navigation
##############################
nav:
  srToggleDropdown: Toggle Dropdown
  projectDropdown:
    label: Scope
    clusters: Clusters
    projects: Projects
    projectsIn: Projects in {cluster}
    clustersNoData: You don't have any clusters
    projectsNoData: Select a cluster
    projectNoData: This cluster has no projects
    clustersNoMatch: 'No clusters match "{searchInput}"'
    projectsNoMatch: 'No projects match "{searchInput}"'
    projectNotReady: 'Cluster not ready'
    projectInCluster: 'in {cluster}'
    search: "Search..."
  cluster:
    dashboard: Cluster
    members: Members
    nodes: Nodes
    namespaces: Namespaces
    storage:
      tab: Storage
      classes: Storage Classes
      volumes: Persistent Volumes
    projects: Projects/Namespaces
  containers:
    tab: Workloads
    systemTab: System
    ingresses: Load Balancing
    containers: Workloads
    dns: Service Discovery
    hpa: HPA
    volumes: Volumes
    pipelines: Pipelines
    deploy: Deploy
    addContainer: Add Container
    addBalancer: Add Balancer
    addIngress: Add Ingress
    addDns: Add Record
    addHpa: Add HPA
    addVolume: Add Volume
    importCompose: Import YAML
  group:
    none: Flat List
    node: Group by Node
    workload: Group by Workload
    namespace: Group by Namespace
    namespaceWorkload: Group by Namespace/Workload
  hosts:
    tab: Nodes
    addHost: Add Nodes
  catalog:
    all: All
    library: Library
    community: Community
  apps:
    tab: Apps
    apps: Apps
    noData: No apps launched
    launch: Launch
    manage: Manage Catalogs
  infra:
    tab: Resources
    storagePage: Storage
    certificates: Certificates
    configMaps: Config
    registries: Registries
    secrets: Secrets
    members: Members
    hpa: HPA
    pipelines: Pipelines
  admin:
    tab: Global
    accounts: Users
    clusters: Clusters
    machines: Nodes
    drivers: Drivers
    catalogs: Catalogs
    globalDns: Global DNS
    globalDnsEntries: Global DNS Entries
    globalDnsProviders: Global DNS Providers
    globalRegistry: Global Registry
    multiClusterApps: Apps
    security:
      cloudCredentials: Cloud Credentials
      tab: Security
      roles: Roles
      members: Members
      podSecurityPolicies: Pod Security Policies
      authentication: Authentication
    settings:
      tab: Settings
      auth: Access Control
      registration: Host Registration
      advanced: Advanced
  user:
    label: "User Menu: {username}"
    logout: Log Out
  userPreferences:
    link: "Preferences"
  nodeTemplates:
    link: "Node Templates"
  clusterTemplates:
    link: Cluster Templates
  api:
    link: "API & Keys"
  settings:
    tab: Settings
    advanced: Advanced
  tools:
    alerts: Alerts
    backups: Snapshots
    catalogs: Catalogs
    logging: Logging
    monitoring: Monitoring
    notifiers: Notifiers
    pipeline: Pipeline
    tab: Tools
    istio: Istio
  project:
    none: Grouped Projects/Namespaces
    namespaces: Namespaces


##############################
# Resource Actions
##############################
action:
  activate: Activate
  addContainer: Deploy Pod
  addSidekick: Add a Sidecar
  backupEtcd: Snapshot Now
  backupEtcdMessage:
    success:
      title: Snapshot initiated
      message: "A { backupType } snapshot has been started for { clusterId }"
  clone: Clone
  cloneRevision: Clone Revision
  console: Open Console
  convertToService: Convert to Service
  cordon: Cordon
  deactivate: Deactivate
  downloadYaml: Download YAML
  drain: Drain
  edit: Edit
  editConfig: Edit Config
  editService: Edit Service
  editYaml: View/Edit YAML
  evacuate: Evacuate
  execute: Execute Shell
  exportConfig: Export Config
  garbageCollect: Cleanup
  logs: View Logs
  makeDefault: Set as Default
  move: Move
  mute: Mute
  nodeConfig: Download Keys
  pause: Pause Orchestration
  pauseAll: Pause All
  redeploy: Redeploy
  refreshAuthProviderAccess:
    label: Refresh Group Memberships
    success:
      title: Refresh Successful
      message: A group memebership refresh has been triggered
    allSuccess:
      title: Refresh Successful
      message: A group memebership refresh has been triggered for all users.
  remove: Delete
  replay: Replay
  resetDefault: Reset default
  restart: Restart
  restoreFromEtcdBackup: Restore Snapshot
  resume: Resume Orchestration
  resumeCronjob: Resume
  retry: Retry
  revert: Revert to Default
  revision: New Revision from Default
  rollback: Rollback
  rotate: Rotate Certificates
  setDefault: Set as Login Environment
  setDefaultRevision:
    success:
      title: Success
      message: '{ name } has been set at the default revision on { ctName }.'
  setting: Setting
  start: Start
  startAll: Start All
  stop: Stop
  stopAll: Stop All
  stopDrain: Stop Drain
  suspend: Suspend
  test: Test
  uncordon: Uncordon
  unmute: Unmute
  upgrade: Upgrade
  upgradeOrEdit: Upgrade/Edit
  viewConfig: View Config
  viewGraph: View Graph
  viewInApi: View in API
  viewInGrafana: Go to Grafana
  viewInstance: View Instance
  viewYaml: View YAML
  enableAutoInject: Enable Istio Auto Injection
  disableAutoInject: Disable Istio Auto Injection

##############################
# Resource Actions
##############################
validation:
  required: '"{key}" is required'
  arrayLength:
    exactly: '"{key}" should contain {count, plural, =1 {# item} other {# items}}'
    between: '"{key}" should contain between {min} and {max} {max, plural, =1 {item} other {items}}'
    min: '"{key}" should contain at least {count} {count, plural, =1 {item} other {items}}'
    max: '"{key}" should contain at most {count} {count, plural, =1 {item} other {items}}'
  stringLength:
    exactly: '"{key}" should be {count, plural, =1 {# character} other {# characters}}'
    between: '"{key}" should be between {min} and {max} {max, plural, =1 {character} other {characters}}'
    min: '"{key}" should be at least {count} {count, plural, =1 {character} other {characters}}'
    max: '"{key}" should be at most {count} {count, plural, =1 {character} other {characters}}'
  number:
    exactly: '"{key}" should be exactly {val}'
    between: '"{key}" should be between {min} and {max}'
    min: '"{key}" should be at least {val}'
    max: '"{key}" should be at most {val}'
  chars: '"{key}" contains {count, plural, =1 {an invalid character} other {# invalid characters}}: {chars}'
  dns:
    doubleHyphen: Cannot contain two consecutive hyphens
    hostname:
      startDot: '"{key}" cannot start with a dot'
      endDot: '"{key}" cannot end with a dot'
      empty: '"{key}" must be at least one character'
      tooLong: '"{key}" cannot be longer than {max} characters'
      startNumber: '"{key}" cannot start with a number'
      startHyphen: '"{key}" cannot start with a hyphen'
      endHyphen: '"{key}" cannot end with a hyphen'
      emptyLabel: '"{key}" cannot contain two consecutive dots'
      tooLongLabel: '"{key}" cannot contain a section longer than {max} characters'
    label:
      startNumber: '"{key}" cannot start with a number'
      startHyphen: '"{key}" cannot start with a hyphen'
      endHyphen: '"{key}" cannot end with a hyphen'
      emptyLabel: '"{key}" cannot be empty'
      tooLongLabel: '"{key}" cannot be more than {max} characters'
  k8s:
    identifier:
      startLetter: '"{key}" must start with a letter or number'
      endLetter: '"{key}" must end with a letter or number'
      emptyPrefix: '"{key}" cannot have an empty prefix'
      tooLongPrefix: '"{key}" cannot have a prefix longer than {max} characters'
      emptyLabel: '"{key}" cannot have an empty key'
      tooLongKey: '"{key}" cannot have a key longer than {max} characters'
  targets:
    missingProjectId: A target must have a project selected.

##############################
# Model Properties
##############################
model:
  account:
    kind:
      registeredAgent: Registered Agent
      agent: Agent
      service: Service
      user: User
      admin: Admin
      project: Environment
  cluster:
      name: Cluster Name
  identity:
    displayType:
      user: User
      team: Team
      group: Group
      org: Organization
      localUser: Local User
      unknown: "{type}?"
  ingress:
    displayKind: L7 Ingress
  machine:
    role:
      worker: Worker
      etcd: etcd
      controlPlane: Control Plane
  openldapconfig:
    server:
      label: Hostname or IP Address
    serviceAccountUsername:
      label: Service Account Username
    serviceAccountPassword:
      label: Service Account Password
    domain:
      label: User Search Base
      placeholder: "e.g. ou=Users,dc=mycompany,dc=com"
      help: "Only users below this base will be used."
  projectMember:
    role:
      member: Member
      owner: Owner
      readonly: Read-Only
      restricted: Restricted
  service:
    displayKind:
      generic: Service
      loadBalancer: L4 Balancer

growl:
  dismiss: Dismiss All Notifications
  webSocket:
    connecting:
      title: Error connecting to WebSocket
      warning: Unable to establish a WebSocket connection to the server.  If your server is behind a proxy or SSL-termination device, Browser can not connect to WebSocket. If you run the server behind a proxy, please make sure the proxy supports WebSockets.  Streaming stats, logs, shell/console, and auto-updating of the state of resources may not work until this is resolved.
      safariCertWarning: Another possible cause is that Safari does not allow WebSocket connections using an unrecognized certificate, even if you say to Continue to bypass the warning.  The server must have a certificate signed by a recognized authority Safari automatically trusts.
      disconnectedWarning: "Disconnected from server, attempting to reconnect..."

storageClass:
  aws-ebs:
    title: Amazon EBS Disk
  azure-disk:
    title: Azure Disk
  azure-file:
    title: Azure File
  cinder:
    title: Openstack Cinder Volume
  gce-pd:
    title: Google Persistent Disk
  glusterfs:
    title: Gluster Volume
  local:
    title: Local Node Disk
  longhorn:
    title: Longhorn
  portworx-volume:
    title: Portworx Volume
  quobyte:
    title: Quobyte Volume
  rbd:
    title: Ceph RBD
  scaleio:
    title: ScaleIO Volume
  storageos:
    title: StorageOS
  vsphere-volume:
    title: VMWare vSphere Volume

volumeSource:
  aws-ebs:
    title: Amazon EBS Disk
  azure-disk:
    title: Azure Disk
  azure-file:
    title: Azure Filesystem
  cephfs:
    title: Ceph Filesystem
  config-map:
    title: Config Map Volume
  cinder:
    title: Openstack Cinder Volume
  secret:
    title: Secret Volume
  empty-dir:
    title: Empty Dir Volume
  fc:
    title: Fibre Channel
  flex-volume:
    title: Flex Volume
  flex-volume-longhorn:
    title: Longhorn
  flocker:
    title: Flocker
  gce-pd:
    title: Google Persistent Disk
  glusterfs:
    title: Gluster Volume
  host-path:
    title: Local Node Path
    path:
      label: Path on the Node
      placeholder: e.g. /data
    kind:
      label: The Path on the Node must be
      Any: "Anything: do no check the target path"
      DirectoryOrCreate: A directory, or create if it does not exist
      FileOrCreate: A file, or create if it does not exist
      Directory: An existing directory
      File: An existing file
      Socket: An existing socket
      CharDevice: An existing character device
      BlockDevice: An existing block device
  iscsi:
    title: iSCSI Target
  local:
    title: Local Node Disk
  nfs:
    title: NFS Share
  photon:
    title: Photon Volume
  portworx:
    title: Portworx Volume
  quobyte:
    title: Quobyte Volume
  rbd:
    title: Ceph RBD
  scaleio:
    title: ScaleIO Volume
  storageos:
    title: StorageOS
  vsphere-volume:
    title: VMWare vSphere Volume
  customLogPath:
    mountPath:
      label: Log Path
      placeholder: e.g. /var/www
      helpText: Your log path inside the container.
    logFormat:
      label: Log Format
      useCustomRegex: Use a custom Fluentd regex
      useExistingLogFormat: Use an existing log format
      helpText: You can test your regex <a href="http://fluentular.herokuapp.com/" target="_blank">here</a>.

yamlPage:
  errors: There are errors in the yaml.

rkeConfigComment:
  ingress: |
    ""
    "# Currently only nginx ingress provider is supported."
    "# To disable ingress controller, set `provider: none`"
    "# To enable ingress on specific nodes, use the node_selector, eg:"
    "   provider: nginx"
    "   node_selector:"
    "     app: ingress"
  network: |
    ""
    "  If you are using calico on AWS"
    ""
    "   network:"
    "     plugin: calico"
    "     calico_network_provider:"
    "       cloud_provider: aws"
    ""
    "# To specify flannel interface"
    ""
    "   network:"
    "     plugin: flannel"
    "     flannel_network_provider:"
    "     iface: eth1"
    ""
    "# To specify flannel interface for canal plugin"
    ""
    "   network:"
    "     plugin: canal"
    "     canal_network_provider:"
    "       iface: eth1"
  services: |
    ""
    "   services:"
    "     kube-api:"
    "       service_cluster_ip_range: 10.43.0.0/16"
    "     kube-controller:"
    "       cluster_cidr: 10.42.0.0/16"
    "       service_cluster_ip_range: 10.43.0.0/16"
    "     kubelet:"
    "       cluster_domain: cluster.local"
    "       cluster_dns_server: 10.43.0.10"
  rancher_kubernetes_engine_config: |
    ""
    "Rancher Config"
  clusterConfig: |
    ""
    "Cluster Config"

units:
  percent: '%'
  cpu: milli CPUs

windowsCluster:
  logging:
    vxlanWarning: |
      {appName} Logging doesn't work with VxLan mode currently due to <a href="https://github.com/kubernetes/kubernetes/issues/79359" target="_blank">kubernetes/kubernetes#79359</a>. We are working with Microsoft to fix it in Kubernetes side.
    kafka:
      brokerTypeHelpText: Use the Broker list as the Kafka connection entry point.
    helpText: We will use fluentd to collect stdout/stderr logs from each container and the log files which exist under path <code >/var/log/containers/</code> on each <b>Linux</b> host and <code >c:/var/log/containers/</code> on each <b>Windows</b> host. The logs can be shipped to a target you configure below.
