/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

import type { I18nType } from './type.ts'

const words: I18nType = {
  instanceDomain: {
    CPU: 'CPU',
    enableAppInstanceLogs: '开启该应用所有实例的访问日志',
    appServiceLoadBalance: '调整应用提供服务的负载均衡策略',
    appServiceNegativeClusteringMethod: '调整应用提供服务的的集群方式',
    appServiceRetries: '调整该应用提供服务的重试次数',
    appServiceTimeout: '调整应用提供服务的超时时间',
    close: '关闭',
    enable: '开启',
    executionLog: '执行日志',
    retryCount: '重试次数',
    clusterApproach: '集群方式',
    timeout_ms: '超时时间(ms)',
    details: '详情',
    loadBalance: '负载均衡',
    monitor: '监控',
    linkTracking: '链路追踪',
    configuration: '配置',
    event: '事件',
    healthExamination_k8s: '健康检查(k8s)',
    instanceLabel: '实例标签',
    instanceImage_k8s: '镜像(k8s)',
    owningWorkload_k8s: '所属工作负载(k8s)',
    node: '节点',
    whichApplication: '所属应用',
    registerCluster: '注册集群',
    dubboPort: 'Dubbo端口',
    instanceIP: '实例IP',
    ip: 'IP',
    name: '实例名称',
    deployState: '部署状态',
    deployCluster: '部署集群',
    registerStates: '注册状态',
    registerClusters: '注册集群',
    cpu: 'CPU',
    memory: '内存',
    startTime: '启动时间',
    registerTime: '注册时间',
    labels: '标签',
    instanceName: '实例名称',
    creationTime_k8s: '创建时间(k8s)',
    startTime_k8s: '启动时间(k8s)'
  },
  service: '服务',
  versionGroup: '版本&分组',
  avgQPS: '近1min QPS',
  avgRT: '近1min RT',
  requestTotal: '近1min 请求总量',
  serviceSearch: '服务查询',
  serviceGovernance: '路由规则',
  trafficManagement: '流量管控',
  serviceMetrics: '服务统计',
  serviceRelation: '服务关系',
  routingRule: '条件路由',
  tagRule: '标签路由',
  meshRule: 'Mesh路由',
  dynamicConfig: '动态配置',
  accessControl: '黑白名单',
  weightAdjust: '权重调整',
  loadBalance: '负载均衡',
  serviceTest: '服务测试',
  serviceMock: '服务Mock',
  services: '服务',
  providers: '提供者',
  consumers: '消费者',
  application: '应用',
  instance: '实例',
  all: '全部',
  common: '通用',

  metrics: '可观测',
  relation: '关系',
  group: '组',
  version: '版本',
  app: '应用',
  ip: 'IP地址',
  qps: 'qps',
  rt: 'rt',
  successRate: '成功率',
  serviceInfo: '服务信息',
  port: '端口',
  timeout: '超时(毫秒)',
  serialization: '序列化',
  appName: '应用名',
  instanceNum: '实例数量',
  deployCluster: '部署集群',
  registerClusters: '注册集群列表',
  serviceName: '服务名',
  registrySource: '注册来源',
  instanceRegistry: '应用级',
  interfaceRegistry: '接口级',
  allRegistry: '应用级/接口级',
  operation: '操作',
  searchResult: '查询结果',
  search: '搜索',
  methodName: '方法名',
  enabled: '开启',
  disabled: '禁用',
  method: '方法',
  weight: '权重',
  create: '创建',
  save: '保存',
  cancel: '取消',
  close: '关闭',
  confirm: '确认',
  ruleContent: '规则内容',
  createNewRoutingRule: '创建新路由规则',
  createNewTagRule: '创建新标签规则',
  createMeshTagRule: '创建新mesh规则',
  createNewDynamicConfigRule: '创建新动态配置规则',
  createNewWeightRule: '新建权重规则',
  createNewLoadBalanceRule: '新建负载均衡规则',
  createTimeoutRule: '创建超时时间规则',
  createRetryRule: '创建重试规则',
  createRegionRule: '创建同区域优先规则',
  createArgumentRule: '创建参数路由规则',
  createMockCircuitRule: '创建调用降级规则',
  createAccesslogRule: '创建访问日志规则',
  createGrayRule: '创建灰度隔离规则',
  createWeightRule: '创建权重比例规则',
  serviceIdHint: '服务名',
  view: '查看',
  edit: '编辑',
  delete: '删除',
  searchRoutingRule: '搜索路由规则',
  searchAccessRule: '搜索黑白名单',
  searchWeightRule: '搜索权重调整规则',
  dataIdClassHint: '服务接口的类完整包路径',
  dataIdVersionHint: '服务接口的Version,根据接口实际情况选填',
  dataIdGroupHint: '服务接口的Group,根据接口实际情况选填',
  agree: '同意',
  disagree: '不同意',
  searchDynamicConfig: '搜索动态配置',
  appNameHint: '服务所属的应用名称',
  basicInfo: '基础信息',
  metaData: '元数据',
  methodMetrics: '服务方法统计',
  searchDubboService: '搜索Dubbo服务或应用',
  serviceSearchHint: '服务ID, org.apache.dubbo.demo.api.DemoService, * 代表所有服务',
  ipSearchHint: '在指定的IP地址上查找目标服务器提供的所有服务',
  appSearchHint: '输入应用名称以查找由一个特定应用提供的所有服务, * 代表所有',
  searchTagRule: '根据应用名搜索标签规则',
  searchMeshRule: '根据应用名搜索mesh规则',
  searchSingleMetrics: '输入IP搜索Metrics信息',
  searchBalanceRule: '搜索负载均衡规则',
  parameterList: '参数列表',
  returnType: '返回值',
  noMetadataHint:
    '无元数据信息，请升级至Dubbo2.7及以上版本，或者查看application.properties中关于config center的配置，详见',
  here: '这里',
  configAddress:
    'https://github.com/apache/incubator-dubbo-admin/wiki/Dubbo-Admin%E9%85%8D%E7%BD%AE%E8%AF%B4%E6%98%8E',
  whiteList: '白名单',
  whiteListHint: '白名单IP列表, 多个地址用逗号分隔: 1.1.1.1,2.2.2.2',
  blackList: '黑名单',
  blackListHint: '黑名单IP列表, 多个地址用逗号分隔: 3.3.3.3,4.4.4.4',
  address: '地址列表',
  weightAddressHint: '此权重设置的IP地址,用逗号分隔: 1.1.1.1,2.2.2.2',
  weightHint: '权重值，默认100',
  methodHint: '负载均衡生效的方法，*代表所有方法',
  strategy: '策略',
  balanceStrategyHint: '负载均衡策略',
  goIndex: '返回首页',
  releaseLater: '在后续版本中发布，敬请期待',
  later: {
    metrics: 'Metrics会在后续版本中发布，敬请期待',
    serviceTest: '服务测试会在后续版本中发布，敬请期待',
    serviceMock: '服务Mock会在后续版本中发布，敬请期待'
  },
  by: '按',
  $vuetify: {
    dataIterator: {
      rowsPerPageText: '每页记录数：',
      rowsPerPageAll: '全部',
      pageText: '{0}-{1} 共 {2} 条',
      noResultsText: '没有找到匹配记录',
      nextPage: '下一页',
      prevPage: '上一页'
    },
    dataTable: {
      rowsPerPageText: '每页行数：'
    },
    noDataText: '无可用数据'
  },
  configManage: '配置管理',
  configCenterAddress: '配置中心地址',
  searchDubboConfig: '搜索Dubbo配置',
  createNewDubboConfig: '新建Dubbo配置',
  scope: '范围',
  name: '名称',
  warnDeleteConfig: ' 是否要删除Dubbo配置: ',
  warnDeleteRouteRule: '是否要删除路由规则',
  warnDeleteDynamicConfig: '是否要删除动态配置',
  warnDeleteBalancing: '是否要删除负载均衡规则',
  warnDeleteAccessControl: '是否要删除黑白名单',
  warnDeleteTagRule: '是否要删除标签路由',
  warnDeleteMeshRule: '是否要删除mesh路由',
  warnDeleteWeightAdjust: '是否要删除权重规则',
  configNameHint: '配置所属的应用名, global 表示全局配置',
  configContent: '配置内容',
  testMethod: '测试方法',
  execute: '执行',
  result: '结果: ',
  success: ' 成功',
  fail: '失败',
  detail: '详情',
  more: '更多',
  copyUrl: '复制 URL',
  copy: '复制',
  url: 'URL',
  copySuccessfully: '已复制',
  test: '测试',
  placeholders: {
    searchService: '通过服务名搜索服务'
  },
  methods: '方法列表',
  testModule: {
    searchServiceHint: '完整服务ID, org.apache.dubbo.demo.api.DemoService, 按回车键查询'
  },
  userName: '用户名',
  password: '密码',
  login: '登录',
  apiDocs: '接口文档',
  apiDocsRes: {
    dubboProviderIP: 'Dubbo 提供者Ip',
    dubboProviderPort: 'Dubbo 提供者端口',
    loadApiList: '加载接口列表',
    apiListText: '接口列表',
    apiForm: {
      missingInterfaceInfo: '缺少接口信息',
      getApiInfoErr: '获取接口信息异常',
      api404Err: '接口名称不正确,没有查找到接口参数和响应信息',
      apiRespDecShowLabel: '响应说明',
      apiNameShowLabel: '接口名称',
      apiPathShowLabel: '接口位置',
      apiMethodParamInfoLabel: '接口参数',
      apiVersionShowLabel: '接口版本',
      apiGroupShowLabel: '接口分组',
      apiDescriptionShowLabel: '接口说明',
      isAsyncFormLabel: '是否异步调用(此参数不可修改,根据接口定义的是否异步显示)',
      apiModuleFormLabel: '接口模块(此参数不可修改)',
      apiFunctionNameFormLabel: '接口方法名(此参数不可修改)',
      registryCenterUrlFormLabel: '注册中心地址, 如果为空将使用Dubbo 提供者Ip和端口进行直连',
      paramNameLabel: '参数名',
      paramPathLabel: '参数位置',
      paramDescriptionLabel: '说明',
      paramRequiredLabel: '该参数为必填',
      doTestBtn: '测试',
      responseLabel: '响应',
      responseExampleLabel: '响应示例',
      apiResponseLabel: '接口响应',
      LoadingLabel: '加载中...',
      requireTip: '有未填写的必填项',
      requireItemTip: '该项为必填!',
      requestApiErrorTip: '请求接口发生异常,请检查提交的数据,特别是JSON类数据和其中的枚举部分',
      unsupportedHtmlTypeTip: '暂不支持的表单类型',
      none: '无'
    }
  },
  authFailed: '权限验证失败',

  ruleList: '规则列表',
  mockRule: '规则配置',
  mockData: '模拟数据',
  globalDisable: '全局禁用',
  globalEnable: '全局启用',
  saveRuleSuccess: '保存规则成功',
  deleteRuleSuccess: '删除成功',
  disableRuleSuccess: '禁用成功',
  enableRuleSuccess: '启用成功',
  methodNameHint: '服务方法名',
  createMockRule: '创建规则',
  editMockRule: '修改规则',
  deleteRuleTitle: '确定要删除此服务Mock规则吗？',

  ruleName: '规则名',
  ruleGranularity: '规则粒度',
  createTime: '创建时间',
  lastModifiedTime: '最后修改时间',
  enable: '是否启用',
  protection: '容错保护',
  trafficTimeout: '超时时间',
  trafficRetry: '调用重试',
  trafficRegion: '同区域优先',
  trafficIsolation: '环境隔离',
  trafficWeight: '权重比例',
  trafficArguments: '参数路由',
  trafficMock: '调用降级',
  trafficAccesslog: '访问日志',
  trafficHost: '固定机器导流',
  trafficGray: '流量灰度',

  homePage: '集群概览',
  serviceManagement: '开发测试',

  groupInputPrompt: '请输入服务group(可选)',
  versionInputPrompt: '请输入服务version(可选)',
  resources: '资源详情',
  applications: '应用',
  instances: '实例',
  applicationDomain: {
    operatorLog: '执行日志',
    flowWeight: '流量权重',
    gray: '灰度隔离',
    name: '应用名',
    detail: '详情',
    instance: '实例',
    service: '服务',
    monitor: '监控',
    tracing: '链路追踪',
    config: '配置',
    event: '事件',
    appName: '应用名',
    rpcProtocols: 'RPC 协议',
    dubboVersions: 'Dubbo 版本',
    dubboPorts: 'Dubbo 端口',
    serialProtocols: '序列化协议',
    appTypes: '应用类型',
    images: '应用镜像',
    workloads: '工作负载',
    deployCluster: '部署集群',
    registerCluster: '注册集群',
    registerMode: '注册模式'
  },

  searchDomain: {
    total: '共计',
    unit: '条'
  },
  messageDomain: {
    success: {
      copy: '您已经成功复制一条信息'
    }
  },
  backHome: '回到首页',
  noPageTip: '抱歉，你访问的页面不存在',
  globalSearchTip: '搜索ip，应用，实例，服务',

  placeholder: {
    typeAppName: '请输入应用名，支持前缀搜索',
    typeDefault: '请输入',
    typeRoutingRules: '搜索路由规则，支持前缀过滤'
  },
  none: '无',
  details: '详情',
  debug: '调试',
  distribution: '分布',
  monitor: '监控',
  tracing: '链路追踪',
  event: '事件',

  provideService: '提供服务',
  dependentService: '依赖服务',
  idx: '序号',
  submit: '提交',
  reset: '重置'
}

export default words
