/*
 * 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: '服务',
  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规则吗？',

  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: '请输入'
  },
  none: '无',
  details: '详情',
  debug: '调试',
  distribution: '分布',
  monitor: '监控',
  tracing: '链路追踪',
  event: '事件',

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

export default words
