import { template } from 'lodash'
import { ja } from 'vuetify/locale'

const messages = {
  navigation: {
    pipelines: 'パイプライン',
    templates: 'テンプレート',
    activity: 'アクティビティ',
    addOns: 'アドオン',
    accounts: 'アカウント',
    settings: '設定',
    logout: 'ログアウト',
    theme: 'ダーク/ライトモード',
    documentation: 'ドキュメント',
    general: '一般',
    runpacks: 'ランパック',
    podSizes: 'Podサイズ',
    notifications: '通知',
    kuberoAPI: 'Kubero API',
    github: 'GitHub',
    discord: 'Discord',
  },
  accounts: {
    users: 'ユーザー',
    teams: 'チーム',
    roles: 'ロール',
    tokens: 'トークン',
  },
  teams: {
    name: 'チーム',
    search: 'チームを検索',
    actions: {
      create: 'チームを作成',
      edit: 'チームを編集',
    },
    form: {
      name: 'チーム名',
      description: '説明',
    },
  },
  roles: {
    name: 'ロール',
    search: 'ロールを検索',
    permission: '権限',
    actions: {
      create: 'ロールを作成',
      edit: 'ロールを編集',
    },
    form: {
      name: 'ロール名',
      description: '説明',
      permissionsRead: '読み取り',
      permissionsWrite: '書き込み',
      permissions: {
        apps: 'アプリ',
        name: '権限',
        pipelines: 'パイプライン',
        accounts: 'アカウント',
        settings: '設定',
        security: 'セキュリティ',
        tokens: 'トークン',
        audit: '監査',
        console: 'コンソール',
        logs: 'ログ',
        reboot: '再起動',
      },
    },
  },
  tokens: {
    name: 'トークン',
    search: 'トークンを検索',
    form: {
      id: 'トークンID',
      name: 'トークン名',
      expiresAt: '有効期限',
      owner: '所有者',
    },
  },
  global: {
    name: "名前",
    value: "値",
    repository: "リポジトリ",
    annotation: "アノテーション",
    size: "サイズ",
    create: "作成",
    update: "更新",
    abort: "中止",
    cancel: "キャンセル",
    save: "保存",
    applyChanges: "変更を適用",
  },
  pipeline: {
    name: 'パイプライン',
    buttons: {
      new: '新しいパイプライン',
      edit: 'パイプラインを編集',
      delete: 'パイプラインを削除',
      create: 'パイプラインを作成',
      update: 'パイプラインを更新',
      connect: '接続',
      disconnect: '切断',
      reconnect: '再接続',
    },
    phases: {
      production: 'プロダクション',
      stage: 'ステージ',
      test: 'テスト',
      review: 'レビュー',
    },
    form: {
      label: {
        name: '名前',
        fqdnDomain: 'FQDNドメイン',
        teamAccess: 'チームアクセス',
        enableBuilds: 'ソースからのビルドを有効にする',
      },
      title:{
        continuousDeployment: '継続的デプロイメント',
        environments: '環境',
      },
      help: {
        gitrepo: '接続されている場合、Webhookとデプロイメントキーはリポジトリに保存されます。これにより、このプロジェクトで構成されたアプリは「git push」で自動的に再デプロイされ、PRを開くと「レビュー」フェーズで新しいインスタンスが開始されます。',
      },
    },
  },
  app: {
    nav: {
      overview: '概要',
      builds: 'ビルド',
      metrics: 'メトリクス',
      logs: 'ログ',
      events: 'イベント',
      vulnerabilities: '脆弱性',
    },
    actions: {
      name: 'アクション',
      edit: '編集',
      openApp: 'アプリを開く',
      restart: '再起動',
      openConsole: 'コンソールを開く',
      openLogs: 'ログを開く',
      downloadTemplate: 'テンプレートをダウンロード',
      delete: '削除',
      update: '更新',
    },
    domains: 'ドメイン',
    deploymentStrategy: 'デプロイメント戦略',
    runpack: 'Runpack',
    buildStrategy: 'ビルド戦略',
    gitRepo: 'Gitリポジトリ',
    autodeploy: '自動デプロイ',
    podSize: 'Podサイズ',
    autoscale: 'オートスケール',
    webReplicas: 'Webレプリカ',
    workerReplicas: 'ワーカーレプリカ',
    cpu: 'CPU',
    memory: 'Memory',
    pod: 'Pod',
    titles: {
      advanced: '高度なアプリ設定',
      consumption: 'リソース消費',
      environmentVariables: '環境変数',
      cronjobs: 'Cronジョブ',
      activities: 'アクティビティ',
      deployment: 'デプロイメント',
      resources: 'リソース',
      serviceAccountAnnotations: 'サービスアカウントアノテーション',
      volumes: 'ボリューム',
      addOns: 'アドオン',
      basicAuth: 'ベーシック認証',
      security: 'セキュリティ',
      networking: 'ネットワーキング',
      kubernetes: 'Kubernetes',
      healthChecks: 'ヘルスチェック',
    },
    form: {
      createNewApp: '{pipeline}に新しいアプリを作成',
      editApp: '{pipeline}の{app}を編集',
      warning: 'すべてのパスワード、トークンを変更し、クラスタに適したstorageClassを選択してください。',
      appName: 'アプリ名',
      domain: 'ドメイン',
      containerPort: 'コンテナポート',
      strategy: '戦略',
      advancedAppConfig: '高度なアプリ設定',
      repository: 'リポジトリ',
      branch: 'ブランチ',
      autodeploy: '自動デプロイ',
      runpack: 'Runpack',
      buildcommand: 'ビルドコマンド',
      runcommand: '実行コマンド',
      containerImage: 'コンテナイメージ',
      tag: 'タグ',
      command: 'コマンド',
      basicAuthEnabled: 'ベーシック認証を有効にする',
      basicAuthRealm: 'Realm/タイトル',
      basicAuthUser: 'ユーザー名',
      basicAuthPass: 'パスワード',
      readOnlyAppStorage: '読み取り専用アプリボリューム',
      readOnlyRootFilesystem: '読み取り専用ルートファイルシステム',
      vulnerabililityScan: 'Trivy脆弱性スキャンを有効にする',
      privilegeEscalation: '特権昇格を許可',
      runAsNonRoot: '非rootで実行',
      runAsUser: 'ユーザーとして実行',
      runAsGroup: 'グループとして実行',
      capabilitiesAdd: '追加するケーパビリティ',
      capabilitiesDrop: '削除するケーパビリティ',
      whitelistSourceRange: '許可するソース範囲',
      denylistSourceRange: '拒否するソース範囲',
      forceSSLRedirect: 'SSLリダイレクトを強制',
      proxyBufferSize: 'プロキシバッファサイズ',
      ingressClassName: 'Ingressクラス名',
      corsEnable: 'CORSを有効にする',
      corsAllowOrigin: 'CORS許可オリジン',
      corsAllowMethods: 'CORS許可メソッド',
      corsAllowHeaders: 'CORS許可ヘッダー',
      corsExposeHeaders: 'CORS公開ヘッダー',
      corsAllowCredentials: 'CORS認証情報を許可',
      corsMaxAge: 'CORS最大年齢',
      storageClass: 'ストレージクラス',
      mountPath: 'マウントパス',
      accessMode: 'アクセスモード',
      healthCheckEnabled: 'ヘルスチェックを有効にする',
      healthCheckPath: 'ヘルスチェックパス',
      healthCheckStartupSeconds: '起動秒数',
      healthCheckTimeoutSeconds: 'タイムアウト秒数',
      healthCheckIntervalSeconds: 'インターバル秒数',
      noNewEnvVarsFound: 'アップロードされたファイルに新しい環境変数が見つかりませんでした',
      envVarConflicts: '環境変数の競合',
      envVarConflictsDescription: 'アップロードされた.envファイルには、既に存在する変数が含まれています。保持する値を選択してください:',
      variableName: '変数名',
      currentValue: '現在の値',
      newValue: '新しい値',
      envNameRequired: '環境変数名は必須です',
      envNameTooLong: '名前は60文字未満である必要があります',
      envNameInvalidChars: '文字、数字、アンダースコアのみ使用可能。文字またはアンダースコアで開始する必要があります',
      duplicateEnvVar: '環境変数名は既に存在しています',
    },
    strategy: {
      name: '戦略',
      containerImage: 'コンテナイメージ',
      fromSource: 'ソースコード',
      runpacks: 'Runpacks',
      runpackExplanation: 'コードは公式イメージ上でビルド・実行されます。各Podでinitコンテナとしてビルドされます。これは最速の方法ですが、レプリカが増えるほど非効率になります。',
      externalCICD: '外部CI/CD',
      externalCICDExplanation: '外部CI/CDでイメージをビルドし、API経由でタグを変更してデプロイします。',
      nixpacks: 'Nixpacks',
      nixpacksExplanation: '<a href="https://nixpacks.com/" target="_blank" style="text-decoration: underline;">Nixpacks</a>はnixでDockerイメージをビルドするオープンソースプロジェクトです。Dockerfileなしで再現可能なビルドプロセスを実現したい場合に適しています。',
      buildpacks: 'Buildpacks',
      buildpacksExplanation: '<a href="https://buildpacks.io/" target="_blank" style="text-decoration: underline;">Buildpacks</a>は、アプリケーションのソースコードをデプロイ可能なイメージに変換するためのスクリプトとバイナリのセットであり、ビルド・構成・デプロイを自動化します。',
      dockerfile: 'Dockerfile',
      dockerfileExplanation: 'GitルートディレクトリのDockerfileに基づいてイメージをビルドします。最大限のカスタマイズが可能です。',
      noBuildPipeline: 'ビルドパイプラインが構成されていません',
      noBuildPipelineExplanation: 'ソースコードからアプリをビルドできません。Buildpacks、Nixpacks、Dockerfileビルドパイプラインを使用するにはレジストリを構成してください。',
    },
    cronjobs: {
      name: 'Cronジョブ',
      schedule: 'スケジュール',
      command: 'コマンド',
      image: 'イメージ',
      env: '環境変数',
      actions: {
        new: '新しいCronジョブ',
        edit: 'Cronジョブを編集',
        delete: 'Cronジョブを削除',
        create: 'Cronジョブを作成',
      },
    },
    volumes: {
      name: 'ボリューム',
      size: 'サイズ',
      accessMode: 'アクセスモード',
    },
    events: {
      name: 'イベント',
      description: '<strong>{app}</strong>のKubernetesイベントストリーム',
      empty: {
        title: '{app}のイベントはありません',
        message: 'Kube-APIのイベントのデフォルトTTLは1時間です。古いイベントを表示したい場合は、Kube-apiserverでTTLを増やす必要があります。',
        link: 'Kubernetesドキュメント',
      }
    },
    vulnerabilities: {
      lastScan: '最終スキャン',
      artefact: 'アーティファクト',
      arch: 'アーキテクチャ',
      created: '作成日',
      os: 'OS',
      layers: 'レイヤー',
      workingDir: '作業ディレクトリ',
      exposedPorts: '公開ポート',
      summary: '概要',
      empty: {
        title: '{app}の脆弱性スキャンはありません',
        message: 'このアプリを脆弱性スキャンするには、再スキャンを実行してください。',
      },
      actions: {
        rescan: '再スキャン',
      }
    },
  },
  profile: {
    titles: {
      apiTokens: 'APIトークン',
      profileDetails: 'プロフィール詳細',
    },
    avatar: {
      edit: 'アバターを編集',
      limitMessage: '画像サイズは100KB以下にしてください。',
      uploadAvatar: '新しいアバターをアップロード',
    },
    token: {
      create: 'トークンを作成',
      expiresAt: '有効期限',
      noTokens: 'トークンが見つかりません。',
      details: 'トークン詳細',
      warningMessage: 'このトークンは<strong>二度と表示されません</strong>。今すぐコピーして安全に保存してください。',
      copyToken: 'トークンをコピー',
      copiedMessage: 'トークンがクリップボードにコピーされました！',
      close: '閉じる',
    },
    actions: {
      editProfile: 'プロフィールを編集',
    },
  },
  user: {
    name: 'ユーザー',
    email: 'Eメール',
    username: 'ユーザー名',
    firstName: '名',
    lastName: '姓',
    role: '役割',
    teams: 'チーム',
    provider: 'プロバイダー',
    status: 'ステータス',
    password: 'パスワード',
    changePassword: 'パスワードを変更',
    changePasswordFor: '{user}のパスワードを変更',
    currentPassword: '現在のパスワード',
    newPassword: '新しいパスワード',
    confirmPassword: 'パスワードを確認',
    errors: {
      passwordMismatch: 'パスワードが一致しません',
      passwordConfirm: 'パスワードを確認してください',
      firstNameRequired: '名が必要です',
      lastNameRequired: '姓が必要です',
      emailRequired: 'メールアドレスが必要です',
      emailValid: '有効なメールアドレスである必要があります',
      currentPasswordRequired: '現在のパスワードが必要です',
      newPasswordRequired: '新しいパスワードが必要です',
      passwordMinLength: 'パスワードは8文字以上である必要があります',
    },
    actions: {
      name: 'アクション',
      create: 'ユーザーを作成',
      edit: 'ユーザーを編集',
      search: 'ユーザーを検索',
    }
  },
  notifications: {
    name: '通知',
    helpTitle: '通知とは？',
    helpText: '<p><strong>通知</strong>を使うと、Kuberoアプリケーションのイベントに関するアラートを受け取ることができます。Slack、Discord、Webhook通知を設定して、デプロイやエラー、その他の重要なイベントを把握しましょう。</p><p class="mt-2"><a href="https://www.kubero.dev/docs/usermanual/notifications/" target="_blank" rel="noopener">Kuberoドキュメントで詳細を読む</a></p>',
    form: {
      name: '名前',
      type: 'タイプ',
      enabled: '有効',
      pipelines: 'パイプライン',
      events: 'イベント',
      config: '設定',
      url: 'URL',
      channel: 'チャンネル',
      secret: 'シークレット',
      slackWebhookUrl: 'Slack Webhook URL',
      discordWebhookUrl: 'Discord Webhook URL',
      webhookUrl: 'Webhook URL',
      pipelinesHint: 'パイプライン名、または全ての場合は「all」と入力',
      eventsHint: '監視するイベント名を入力',
    },
    actions: {
      create: '通知を作成',
      edit: '通知を編集',
      delete: '通知を削除',
    },
    errors: {
      load: '通知の読み込みエラー',
      edit: '通知詳細の読み込みエラー',
      create: '通知の作成エラー',
      save: '通知の保存エラー',
      delete: '通知の削除エラー',
    },
  },
  runpacks: {
    name: 'ランパック',
    helpTitle: 'ランパックとは？',
    helpText: '<p><strong>ランパック</strong>は、Kubernetesクラスター内でアプリケーションがどのように取得、ビルド、実行されるかを定義します。各ランパックは3つの段階で構成されています：</p><ul class="ma-4"><li><strong>Fetch</strong>：コンテナイメージを使用してGitリポジトリからコードを取得します。デフォルトを使用するか、カスタマイズできます。</li><li><strong>Build</strong>：選択したコンテナ（任意のDockerイメージ）でビルドコマンドを実行します。ここで依存関係がインストールされるか、アプリがコンパイルされます。</li><li><strong>Run</strong>：最終的なコンテナを起動します。<em>web</em>ポッドはインターネットに公開され、<em>worker</em>ポッドはバックグラウンドジョブ用です。</li></ul><p>ランパックは非常に柔軟で、さまざまな言語やフレームワークに合わせてカスタマイズできます。公開されているコンテナイメージに依存しています。<a href="https://github.com/kubero-dev/runpacks/tree/main/packs" target="_blank" rel="noopener">kubero-dev/runpacks</a>でランパックの例を見つけることができます。</p><p class="mt-2"><a href="https://www.kubero.dev/docs/usermanual/runpacks/" target="_blank" rel="noopener">Kuberoドキュメントで詳細を読む</a></p>',
    table: {
      name: '名前',
      language: '言語',
      fetch: 'Fetch',
      build: 'Build',
      run: 'Run',
      actions: 'アクション',
    },
    details: {
      repository: 'リポジトリ',
      command: 'コマンド',
      readOnlyAppStorage: '読み取り専用アプリストレージ',
      securityContext: 'セキュリティコンテキスト',
      showDetails: '詳細を表示',
      runAsUser: 'runAsUser',
      runAsGroup: 'runAsGroup',
      allowPrivilegeEscalation: 'allowPrivilegeEscalation',
      readOnlyRootFilesystem: 'readOnlyRootFilesystem',
      runAsNonRoot: 'runAsNonRoot',
      capabilities: 'ケイパビリティ',
      add: '追加',
      drop: '削除',
      yes: 'はい',
      no: 'いいえ',
    },
    form: {
      name: '名前',
      language: '言語',
      search: 'ランパックを検索',
      repository: 'リポジトリ',
      tag: 'タグ',
      runAsUser: 'ユーザーとして実行',
      runAsGroup: 'グループとして実行',
      readOnlyAppVolume: '読み取り専用アプリボリューム',
      readOnlyRootFilesystem: '読み取り専用ルートファイルシステム',
      allowPrivilegeEscalation: '特権昇格を許可',
      runAsNonRoot: '非ルートとして実行',
      capabilitiesAdd: 'ケイパビリティを追加',
      capabilitiesDrop: 'ケイパビリティを削除',
      selectOneOrMore: '1つまたは複数を選択',
      required: '必須',
      mustBeNumber: '数値である必要があります',
    },
    actions: {
      create: 'ランパックを作成',
      edit: 'ランパックを編集',
      delete: 'ランパックを削除',
      save: '保存',
      abort: '中止',
    },
    errors: {
      load: 'ランパック詳細の読み込みエラー',
    },
    stages: {
      fetch: 'Fetch',
      build: 'Build',
      run: 'Run',
    },
  },
  settings: {
    deployment: {
      title: 'リポジトリの接続',
      configAlert: '設定の変更は、Kubero UIコンテナを手動で再起動するまで有効になりません。',
      webhookEndpoint: 'Webhookエンドポイント',
      url: 'URL',
      secret: 'シークレット',
      github: {
        title: 'Github',
        baseUrl: 'github ベースURL',
        personalAccessToken: 'github パーソナルアクセストークン',
        instructions: '次からパーソナルアクセストークンを取得する方法の説明',
      },
      gitea: {
        title: 'Gitea',
        baseUrl: 'Gitea ベースURL',
        personalAccessToken: 'Gitea パーソナルアクセストークン',
        instructions: '次のパーソナルアクセストークンを取得する方法の説明',
      },
      gogs: {
        title: 'Gogs',
        baseUrl: 'Gogs ベースURL',
        personalAccessToken: 'Gogs パーソナルアクセストークン',
      },
      gitlab: {
        title: 'Gitlab',
        baseUrl: 'Gitlab ベースURL',
        personalAccessToken: 'Gitlab パーソナルアクセストークン',
      },
      bitbucket: {
        title: 'Bitbucket',
        username: 'Bitbucket ユーザー名',
        appPassword: 'Bitbucket アプリパスワード',
      },
    },
    general: {
      title: '一般的なKubero設定',
      description: '一部の設定値を有効にするには、ブラウザの更新(*)またはポッドの再起動(**)が必要です。',
      namespace: 'Kubero ネームスペース',
      readonlyMode: '読み取り専用モード (**)',
      adminDisabled: '管理者無効',
      ttyConsoleEnabled: 'TTYコンソール有効',
      banner: {
        title: 'バナー',
        enabled: '有効 (*)',
        backgroundColor: '背景色',
        fontColor: 'フォント色',
        message: 'メッセージ',
      },
      authentication: {
        title: '認証',
        github: {
          enabled: 'Github',
          id: 'ID',
          organization: '組織',
          callbackUrl: 'コールバックURL',
          secret: 'シークレット',
        },
        oauth2: {
          enabled: 'Oauth2',
          name: '名前',
          id: 'ID',
          authUrl: '認証URL',
          tokenUrl: 'トークンURL',
          callbackUrl: 'コールバックURL',
          scopes: 'スコープ',
          secret: 'シークレット',
        },
      },
      auditLogs: {
        title: '監査ログ',
        enabled: '有効 (**)',
        storageClass: 'ストレージクラス',
        limit: '制限',
        size: 'サイズ',
      },
    },
  },
  podsizes: {
    name: 'Podサイズ',
    helpTitle: 'Podサイズとは？',
    helpText: '<p><strong>Podサイズ</strong>は、KuberoでアプリケーションのPodに割り当てるリソース要求と制限を定義します。ワークロード要件に合わせてPodサイズを作成、編集、削除できます。</p><p class="mt-2"><a href="https://www.kubero.dev/docs/usermanual/podsizes/" target="_blank" rel="noopener">Kuberoドキュメントで詳細を読む</a></p>',
    form: {
      name: 'Podサイズ名',
      description: '説明',
      cpuRequest: 'CPUリクエスト (m)',
      cpuLimit: 'CPUリミット (m)',
      memoryRequest: 'メモリリクエスト (Gi)',
      memoryLimit: 'メモリリミット (Gi)',
      cpu: 'CPU',
      memory: 'メモリ',
    },
    actions: {
      create: 'Podサイズを作成',
      edit: 'Podサイズを編集',
    },
    errors: {
      loadinPodsize: 'Podサイズの読み込みエラー',
    },
  },
  templates: {
    search: 'テンプレートを検索',
    category: 'カテゴリー',
    pipeline: 'パイプライン',
    phase: 'フェーズ',
    actions: {
      install: 'インストール',
      loadTemplate: 'テンプレートを読み込む',
    },
  },
  $vuetify: {
    ...ja,
  },
}

export default messages