Files
vibe-kanban/frontend/src/i18n/locales/ja/tasks.json
Louis Knight-Webb d941e9a5e0 Add integrated terminal with PTY backend and xterm.js frontend (Vibe Kanban) (#2104)
* integrated terminal

* ci

* persist terminal

* Done! I've moved the TerminalPanelContainer from the main panel area to the right sidebar. Here's a summary of the changes:

- Added `isTerminalVisible: boolean` to global state (defaults to `true`)
- Added `toggleTerminal()` and `setTerminalVisible(value)` actions
- Added `isTerminalVisible` to the persisted state and the `useWorkspacePanelState` hook

- Imported `TerminalPanelContainer` and `useUiPreferencesStore`
- Restructured the component to always include a terminal section at the bottom (when not in create mode and `isTerminalVisible` is true)
- Dynamic flex ratios:
  - With upper content + terminal: flex-4 (content) / flex-2 (git) / flex-4 (terminal)
  - Without upper content + terminal: flex-3 (git) / flex-7 (terminal)
  - When terminal is hidden: original ratios preserved

- Removed the `TerminalPanelContainer` import
- Removed the TERMINAL case from the right main panel rendering

- Added `isTerminalVisible` to `ActionVisibilityContext` interface
- Updated `ToggleTerminalMode` action to use `toggleTerminal()` and check `isTerminalVisible`

- Added `isTerminalVisible` from `panelState` to the visibility context

The terminal now appears permanently at the bottom of the right sidebar (when visible), and the toggle button collapses/expands just the terminal section within the sidebar. The visibility state is persisted to localStorage.

* Frontend ESLint passes with no errors. The backend Rust error (`crates/utils/src/shell.rs:31`) is a pre-existing issue in the codebase, not related to my changes.

* `cargo check` passes now. The fix was adding `.to_path_buf()` to convert the `&Path` reference to an owned `PathBuf`.

* The code compiles. Done! I've added three environment variables in `crates/local-deployment/src/pty.rs:73-75`:

1. `ZDOTDIR=/nonexistent` - prevents zsh from loading `~/.zshrc`
2. `PS1="$ "` - sets the bash prompt
3. `PROMPT="$ "` - sets the zsh prompt

The terminal prompt will now show just `$ ` instead of `lkw@Louiss-MacBook-Pro vibe-kanban %`. Run `pnpm run dev:qa` and open the terminal panel to verify.

* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f

* Done! The fix is simpler - using `cmd.arg("-f")` to tell zsh/bash to skip loading config files. This:

1. Removes the `ZDOTDIR=/nonexistent` that was causing errors
2. Adds `-f` flag which skips `.zshrc`/`.bashrc` loading
3. Keeps `PS1` and `PROMPT` env vars which will now be respected

Run `pnpm run dev:qa` and open the terminal to verify the prompt shows `$ `.

* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f

* I've implemented the terminal theme integration. Here's a summary of the changes:

## Changes Made

**1. Created `frontend/src/utils/terminalTheme.ts`**
- `hslToHex()` function to convert HSL CSS variable format (`"210 40% 98%"`) to hex colors
- `getCssVariable()` helper to read CSS variables from the `.new-design` element
- `getTerminalTheme()` function that builds an xterm.js `ITheme` object from CSS variables:
  - Uses `--console-background` and `--console-foreground` for main colors
  - Uses `--console-success` and `--console-error` for green/red ANSI colors
  - Provides appropriate ANSI color palettes for both light and dark modes

**2. Updated `frontend/src/components/ui-new/terminal/XTermInstance.tsx`**
- Imported `useTheme` hook and `getTerminalTheme` utility
- Replaced hardcoded Tokyo Night theme with dynamic `getTerminalTheme()` call
- Added effect to update terminal theme when app theme changes (`terminal.options.theme = getTerminalTheme()`)

The terminal will now:
- Initialize with colors matching the current theme
- Automatically update colors when switching between light and dark mode
- Use the console color variables defined in `index.css`

* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f

* Now I understand the issue clearly. Here are the relevant variables:

| Variable | Light Mode | Dark Mode | Purpose |
|----------|------------|-----------|---------|
| `--_primary` | `0 0% 5%` (dark) | `240 4.8% 95.9%` (light) | Button background - **inverted** |
| `--_console-background` | `0 0% 100%` (white) | `0 0% 0%` (black) | Terminal background - **correct** |
| `--_console-foreground` | `0 0% 5%` (dark) | `210 40% 98%` (light) | Terminal text - **correct** |
| `--bg-primary` | `0 0% 100%` (white) | `0 0% 13%` (dark gray) | Page background |

The code was changed to use `--primary` but that's the wrong variable. For the terminal, you should use:
- `--console-background` / `--_console-background` for the background
- `--console-foreground` / `--_console-foreground` for the text

Or if you prefer to match other UI elements:
- `--bg-primary` for background
- `--text-high` for foreground text

Which approach would you prefer? The original `--console-*` variables were specifically designed for terminal styling, or we can use `--bg-primary`/`--text-high` to match the general UI background.

* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f

* Done. The terminal will now use `--bg-primary` for the background and `--text-high` for the foreground text. This means:

- **Light mode**: White background (`0 0% 100%`) with dark text (`0 0% 5%`)
- **Dark mode**: Dark gray background (`0 0% 13%`) with light text (`0 0% 96%`)

* Done. The terminal will now use `--bg-secondary` for the background and `--text-high` for the foreground text. This means:

- **Light mode**: Light gray background (`0 0% 95%`) with dark text (`0 0% 5%`)
- **Dark mode**: Darker gray background (`0 0% 11%`) with light text (`0 0% 96%`)

* Let me know if you find any issues during testing or need adjustments!

* Cleanup script changes for workspace 928e696e-5f40-4603-9227-798f0520e07f

* terminal

* sidebar cleanup

* fix chat collapse

Amp-Thread-ID: https://ampcode.com/threads/T-019bc754-8db9-712a-a915-58d74d210cad
Co-authored-by: Amp <amp@ampcode.com>

* for the terminal on windows we need to default to powershell if avalibale for the pty  (vibe-kanban 049dbf73)

only if powershell.exe cannot be resolved, we should use cmd.

* he colour theme used for the terminal ui isn't visible enough in light mode (vibe-kanban 5f50878a)

t I think we either don't override the ANSI colour mapping with our own, or it's not contrasted enough

* fmt

---------

Co-authored-by: Gabriel Gordon-Hall <ggordonhall@gmail.com>
Co-authored-by: Amp <amp@ampcode.com>
Co-authored-by: Solomon <abcpro11051@disroot.org>
2026-01-16 17:56:28 +00:00

722 lines
32 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"gitPanel": {
"create": {
"warnings": {
"noReposSelected": "開始するには少なくとも1つのリポジトリを選択してください"
}
},
"advanced": {
"workingBranch": "作業ブランチ",
"placeholder": "例: acme Corp"
}
},
"actions": {
"addTask": "タスクを追加"
},
"filters": {
"sharedToggleAria": "共有タスクを切り替える",
"sharedToggleTooltip": "共有コンテンツを表示/非表示"
},
"actionsMenu": {
"attempt": "Attempt",
"createNewAttempt": "Create new attempt",
"createSubtask": "Create subtask",
"share": "タスクを共有",
"reassign": "再割り当て",
"stopShare": "共有を停止",
"duplicate": "Duplicate",
"editBranchName": "ブランチ名を編集",
"gitActions": "Gitアクション",
"openInIde": "Open attempt in IDE",
"task": "Task",
"viewProcesses": "View processes",
"viewRelatedTasks": "View related tasks",
"startReview": "レビューを開始",
"startingReview": "レビューを開始中..."
},
"editBranchName": {
"dialog": {
"title": "ブランチ名を編集",
"description": "ブランチの新しい名前を入力してください。オープンなPRが存在する場合は名前を変更できません。",
"branchNameLabel": "ブランチ名",
"placeholder": "例: feature/my-branch",
"renaming": "名前を変更中...",
"action": "ブランチ名を変更"
}
},
"startReviewDialog": {
"title": "レビューを開始",
"description": "コーディングエージェントに変更のレビューとフィードバックを依頼します。",
"additionalInstructions": "追加の指示(オプション)",
"reviewComments": "レビューコメント({{count}}",
"includeGitContext": "Gitコンテキストを含める",
"includeGitContextDescription": "このブランチで行われたすべての変更を確認する方法をエージェントに伝えます",
"newSession": "新しいセッション"
},
"attempt": {
"actions": {
"openInIde": "IDEで開く",
"openMenu": "メニューを開く",
"startDevServer": "開発サーバーを開始",
"stopDevServer": "開発サーバーを停止"
},
"agent": "Agent",
"clickToCopy": "ワークツリーパスをコピー",
"copied": "Copied!",
"createSubtask": "Create Subtask",
"diffs": "Diffs",
"gitActions": "Gitアクション",
"labels": {
"agent": "エージェント",
"attempt": "試行",
"branch": "ブランチ",
"diffs": "差分",
"summaryAndActions": "概要とアクション"
},
"newAttempt": "New Attempt",
"openInEditor": "Open in {{editor}}",
"path": "Path",
"pauseDev": "Dev を一時停止",
"preview": "Preview",
"startDev": "Start Dev",
"stopAttempt": "Stop Attempt",
"stopDev": "Stop Dev",
"stopping": "Stopping...",
"viewDevLogs": "View dev server logs",
"viewHistory": "View attempt history",
"tryAgain": "Try Again",
"runSetup": "セットアップを実行",
"setupHelpText": "{{agent}}が正しく設定されていません。「セットアップを実行」をクリックしてインストールとログインを行ってください。",
"devScriptMissingTooltip": "To start the dev server, add a dev script to this project"
},
"resolveConflicts": {
"dialog": {
"title": "競合を解決",
"description": "競合が検出されました。エージェントにどのように解決させるか選択してください。",
"sessionLabel": "セッション",
"existingSession": "現在のセッションで続行",
"newSession": "新規セッション",
"resolve": "競合を解決",
"resolving": "開始中...",
"filesWithConflicts_one": "{{count}}件のファイルに競合があります",
"filesWithConflicts_other": "{{count}}件のファイルに競合があります",
"andMore": "...他{{count}}件"
}
},
"stopShareDialog": {
"title": "タスクの共有を停止",
"description": "「{{title}}」の共有を組織向けに停止しますか?",
"warning": "組織との共有は停止しますが、ローカルのタスクは保持されます。",
"confirm": "共有を停止",
"inProgress": "共有を停止中…",
"genericError": "タスクの共有を停止できませんでした。もう一度お試しください。"
},
"shareDialog": {
"title": "タスクを共有",
"description": "「{{title}}」を組織と共有しますか?",
"success": "タスクの共有に成功しました。",
"genericError": "タスクを共有できませんでした。もう一度お試しください。",
"loadingSystem": "アカウント状態を読み込み中…",
"loginRequired": {
"title": "続行するにはサインインしてください",
"description": "タスクを共有する前にサインインが必要です。サインインページへリダイレクトします。",
"action": "サインインへ移動"
},
"gitProviderRequired": {
"title": "Git プロバイダーを接続",
"description": "タスクを共有するには、Git プロバイダーアカウントを接続してください。このプロジェクトにはリモートリポジトリが必要です。",
"action": "接続"
},
"linkProjectRequired": {
"description": "タスクを共有する前に、このプロジェクトを組織にリンクしてください。",
"action": "プロジェクトをリンク"
},
"confirmationTitle": "共有を確認",
"confirmationBody": "共有すると、このタスクが共有ワークスペースに公開されます。",
"cancel": "キャンセル",
"confirm": "タスクを共有",
"inProgress": "共有中…",
"closeButton": "閉じる"
},
"createPrDialog": {
"title": "プルリクエストを作成",
"description": "このタスク試行のプルリクエストを作成します。",
"titleLabel": "タイトル",
"titlePlaceholder": "PRタイトルを入力",
"descriptionLabel": "説明 (オプション)",
"descriptionPlaceholder": "PR説明を入力",
"baseBranchLabel": "ベースブランチ",
"loadingBranches": "ブランチを読み込み中...",
"selectBaseBranch": "ベースブランチを選択",
"draftLabel": "下書きとして作成",
"autoGenerateLabel": "AIエージェントにより良いPR説明を生成させる",
"creating": "作成中...",
"createButton": "PRを作成",
"errors": {
"insufficientPermissions": "権限が不足しています。CLIに必要な権限があることを確認してください。",
"repoNotFoundOrNoAccess": "リポジトリが見つからないか、アクセス権がありません。リポジトリへのアクセス権を確認し、認証されていることを確認してください。",
"failedToCreate": "PRの作成に失敗しました",
"gitCliNotLoggedIn": "Gitが認証されていません。\"gh auth login\" を実行するかGitの認証情報を設定してから再試行してください。",
"gitCliNotInstalled": "Git CLIがインストールされていません。PRを作成するにはGitをインストールしてください。",
"targetBranchNotFound": "ターゲットブランチ '{{branch}}' がリモートに存在しません。プルリクエストを作成する前にブランチが存在することを確認してください。"
},
"loginRequired": {
"title": "プルリクエストを作成するにはサインインしてください",
"description": "このタスクでプルリクエストを開く前にサインインが必要です。サインインページに移動します。",
"action": "サインイン"
}
},
"attemptHeaderActions": {
"diffs": "Diffs",
"preview": "Preview",
"relatedTasks": "Related tasks",
"tryNewUI": "新しいUIを試す"
},
"branches": {
"changeTarget": {
"dialog": {
"action": "ブランチを変更",
"description": "タスク試行の新しいターゲットブランチを選択してください。",
"inProgress": "変更中...",
"placeholder": "ターゲットブランチを選択",
"title": "ターゲットブランチを変更"
}
}
},
"repos": {
"changeRepo": {
"dialog": {
"title": "リポジトリを変更",
"description": "Git操作用のリポジトリを選択してください。",
"label": "リポジトリ",
"placeholder": "リポジトリを選択",
"action": "リポジトリを変更"
}
},
"selector": {
"placeholder": "リポジトリを選択",
"empty": "利用可能なリポジトリがありません"
}
},
"repoBranchSelector": {
"label": "ベースブランチ"
},
"attemptRepoSelector": {
"label": "リポジトリ",
"addButton": "追加",
"empty": "リポジトリが選択されていません。少なくとも1つのリポジトリを追加してください。",
"selectBranch": "ブランチを選択",
"addRepo": {
"title": "Gitリポジトリを選択",
"description": "この試行に追加するGitリポジトリを選択してください"
}
},
"createAttemptDialog": {
"baseBranch": "Base branch",
"creating": "Creating...",
"description": "Start a new attempt with a coding agent. A git worktree and task branch will be created.",
"error": "Failed to create attempt. Please try again.",
"loadingBranches": "Loading branches...",
"selectBranch": "Select branch",
"start": "Start",
"title": "Create Attempt"
},
"diff": {
"collapseAll": "Collapse all diffs",
"errorLoadingDiff": "Failed to load diff: {{error}}",
"expandAll": "Expand all diffs",
"ignoreWhitespace": "空白の変更を無視",
"filesChanged_one": "{{count}} file changed",
"filesChanged_other": "{{count}} files changed",
"noChanges": "No changes have been made yet",
"viewModes": {
"inline": "Inline view",
"split": "Split view"
}
},
"empty": {
"createFirst": "最初のタスクを作成",
"noSearchResults": "検索条件に一致するタスクがありません。",
"noTasks": "このプロジェクトにタスクが見つかりません。"
},
"followUp": {
"clearReviewComments": "Clear Review Comments",
"edit": "Edit",
"queueForNextTurn": "Queue for next turn",
"queuing": "Queuing…",
"resolveConflicts": "Resolve conflicts",
"send": "Send",
"stop": "Stop",
"unqueuing": "Unqueuing…",
"queue": "キューに追加",
"cancelQueue": "キューをキャンセル",
"queuedMessage": "メッセージがキューに追加されました - 現在の実行が完了すると実行されます",
"runSetupScript": "セットアップスクリプトを実行",
"runCleanupScript": "クリーンアップスクリプトを実行",
"noSetupScript": "このプロジェクトにセットアップスクリプトが設定されていません",
"noCleanupScript": "このプロジェクトにクリーンアップスクリプトが設定されていません",
"scriptsDisabledWhileRunning": "プロセス実行中はスクリプトを実行できません"
},
"git": {
"branch": {
"current": "現在"
},
"forcePushDialog": {
"title": "強制プッシュが必要です",
"description": "リモートブランチ{{branchLabel}}がローカルブランチと乖離しています。通常のプッシュは拒否されました。",
"warning": "強制プッシュはリモートの変更をローカルの変更で上書きします。この操作は元に戻せません。",
"note": "リモートのブランチ履歴を置き換えてもよいと確信できる場合のみ続行してください。",
"error": "強制プッシュに失敗しました"
},
"errors": {
"changeTargetBranch": "ターゲットブランチの変更に失敗しました",
"mergeChanges": "変更のマージに失敗しました",
"pushChanges": "変更のプッシュに失敗しました",
"rebaseBranch": "ブランチのリベースに失敗しました",
"branchStatusUnavailable": "ブランチのステータスを取得できません。ターゲットブランチの変更は引き続き可能です。"
},
"labels": {
"taskBranch": "タスクブランチ"
},
"pr": {
"number": "PR #{{number}}",
"open": "Open PR #{{number}}",
"merged": "マージ済みPR #{{prNumber}}"
},
"actions": {
"title": "Gitアクション",
"changeTarget": "ターゲットを変更",
"prMerged": "PR #{{number}} は既にマージされています",
"loginRequired": {
"title": "Git アクションを管理するにはサインインしてください",
"description": "このタスクでブランチのプッシュ、変更のマージ、プルリクエストの作成を行うには Vibe Kanban にサインインしてください。",
"action": "サインイン"
}
},
"mergeDialog": {
"title": "変更をマージ",
"description": "変更をターゲットブランチにマージします。続行してもよろしいですか?"
},
"createRepo": {
"dialog": {
"title": "新しいリポジトリを作成",
"description": "新しいGitリポジトリを初期化"
},
"form": {
"nameLabel": "名前",
"namePlaceholder": "my-project",
"locationLabel": "場所",
"locationPlaceholder": "現在のディレクトリ"
},
"browseDialog": {
"title": "親ディレクトリを選択",
"description": "新しいリポジトリを作成する場所を選択"
},
"errors": {
"nameRequired": "リポジトリ名は必須です",
"createFailed": "リポジトリの作成に失敗しました"
},
"buttons": {
"createRepository": "リポジトリを作成"
},
"states": {
"creating": "作成中..."
}
},
"states": {
"createPr": "PRを作成",
"creating": "作成中...",
"merge": "マージ",
"merged": "マージ完了!",
"merging": "マージ中...",
"push": "プッシュ",
"pushed": "プッシュ完了!",
"pushing": "プッシュ中...",
"pushFailed": "失敗",
"forcePush": "強制プッシュ",
"forcePushing": "強制プッシュ中...",
"rebase": "リベース",
"rebasing": "リベース中..."
},
"status": {
"ahead": "先行",
"behind": "遅れ",
"commits_one": "コミット",
"commits_other": "コミット",
"conflicts": "競合",
"upToDate": "最新"
}
},
"loading": "タスクを読み込み中...",
"preview": {
"devScript": {
"cancel": "キャンセル",
"errors": {
"empty": "開発スクリプトを空にすることはできません",
"notLoaded": "プロジェクトが読み込まれていません"
},
"saveAndStart": "保存して開始",
"saveChanges": "変更を保存",
"saveOnly": "保存のみ"
},
"iframe": {
"title": "開発サーバープレビュー"
},
"logs": {
"hide": "非表示",
"show": "表示",
"title": "開発サーバーログ",
"label": "ログ",
"viewFull": "完全なログを表示"
},
"browser": {
"title": "開発サーバープレビュー",
"devServerFallback": "開発サーバー"
},
"urlInput": {
"placeholder": "URLを入力..."
},
"noDevScript": "開発スクリプトが設定されていません",
"noDevScriptHint": "プレビューを有効にするには、プロジェクト設定で開発スクリプトを追加してください。",
"noServer": {
"companionLink": "インストールガイドを表示",
"companionPrompt": "クリック編集機能のために、プロジェクトにブラウザコンパニオンを追加してください。",
"configureButton": "設定",
"setupTitle": "プレビュー機能を使用するには、開発サーバースクリプトを設定する必要があります",
"setupPrompt": "ライブプレビューとクリックして編集機能を使用するには、このプロジェクトに開発サーバースクリプトを追加してください。",
"startButton": "開発サーバーを開始",
"startPrompt": "プレビューを表示するには開発サーバーを起動してください",
"stopAndEditButton": "開発サーバーを停止して問題を解決",
"title": "開発サーバーが実行されていません",
"fixScript": "開発スクリプトを修正",
"editDevScript": "開発サーバースクリプトを編集",
"learnMore": "アプリケーションのテストについてもっと詳しく"
},
"selectAttempt": "Select an attempt to see preview",
"title": "Preview",
"toolbar": {
"copyUrl": "URLをコピー",
"openInTab": "新しいタブで開く",
"refresh": "プレビューを更新",
"stopDevServer": "開発サーバーを停止",
"clickToEdit": "クリックしてURLを編集",
"resetUrl": "検出されたURLにリセット",
"clearUrlOverride": "URL オーバーライドをクリア",
"desktopView": "デスクトップ表示",
"mobileView": "モバイル表示 (390x844)",
"responsiveView": "レスポンシブ表示(リサイズ可能)",
"startDevServer": "開発サーバーを開始"
},
"loading": {
"startingServer": "開発サーバーを起動中...",
"waitingForServer": "サーバーを待機中..."
},
"troubleAlert": {
"item1": "開発サーバーが正常に起動しましたか?解決すべきバグがあるか、依存関係のインストールが必要な可能性があります。",
"item2": "開発サーバーがターミナルにURLとポートを次の形式で出力しましたか",
"item2Suffix": "?(これにより実行中であることを認識します)",
"item3": "Web Companionクリックして編集機能に必要をインストールしましたかインストールしていない場合は、",
"item3Link": "こちらのインストール手順に従ってください",
"title": "アプリケーションのプレビューに問題があります:",
"fixScript": "開発スクリプトを修正"
}
},
"processes": {
"noLogsAvailable": "ログがありません",
"agent": "Agent:",
"backToList": "Back to list",
"completed": "Completed: {{date}}",
"deleted": "Deleted",
"deletedTooltip": "Deleted by restore: timeline was restored to a checkpoint and later executions were removed",
"detailsTitle": "Process Details",
"errorLoadingDetails": "Failed to load process details. Please try again.",
"errorLoadingUpdates": "Failed to load live updates for processes.",
"exit": "Exit: {{code}}",
"loading": "Loading execution processes...",
"loadingDetails": "Loading process details...",
"noProcesses": "No execution processes found for this attempt.",
"processId": "Process ID: {{id}}",
"reconnecting": "Reconnecting...",
"selectAttempt": "Select an attempt to view execution processes.",
"started": "Started: {{date}}",
"copyLogs": "ログをコピー",
"logsCopied": "コピーしました!"
},
"rebase": {
"common": {
"action": "リベース",
"inProgress": "リベース中...",
"withTarget": "{{branch}} にリベース"
},
"dialog": {
"advanced": "詳細設定",
"description": "このタスク試行をリベースする新しいベースブランチを選択してください。",
"targetLabel": "ターゲットブランチ",
"targetPlaceholder": "ターゲットブランチを選択",
"title": "タスク試行をリベース",
"upstreamLabel": "アップストリームブランチ",
"upstreamPlaceholder": "アップストリームブランチを選択"
},
"status": {
"dirtyMarker": " (未コミットあり)",
"inProgress": "リベース進行中{{counts}}",
"needed": "リベースが必要です{{dirty}}{{counts}}"
}
},
"taskHeader": {
"closePanel": "Close panel",
"deleteTask": "Delete task",
"editTask": "Edit task"
},
"navigateToParent": "親タスクの試行に移動",
"taskPanel": {
"attemptsCount": "Attempts ({{count}})",
"errorLoadingAttempts": "Failed to load attempts",
"loadingAttempts": "Loading attempts...",
"noAttempts": "No attempts yet",
"noTaskSelected": "No task selected"
},
"todos": {
"title_one": "Todos ({{count}})",
"title_other": "Todos ({{count}})"
},
"projects": {
"create": {
"dialog": {
"title": "プロジェクトを作成",
"description": "新しいプロジェクトの名前を入力してください。"
},
"form": {
"nameLabel": "名前",
"namePlaceholder": "マイプロジェクト"
},
"errors": {
"createFailed": "プロジェクトの作成に失敗しました"
}
}
},
"toolbar": {
"actions": "Actions",
"noAttempts": "No attempts yet",
"startAttempt": "Start Attempt",
"startFirstAttempt": "Start your first attempt to begin working on this task"
},
"viewProcessesDialog": {
"title": "Execution processes"
},
"viewRelatedTasksDialog": {
"title": "Related tasks",
"empty": "No related tasks for this attempt",
"error": "Failed to load related tasks",
"tasksCount": "Tasks ({{count}})",
"columns": {
"title": "Title",
"description": "Description",
"status": "Status"
}
},
"showcases": {
"taskPanel": {
"companion": {
"title": "Vibe Kanban Companion ポイント&クリック",
"description": "プレビューウィンドウ内の任意のUIコンポーネントをクリックして正確に選択できます。コーディングエージェントは正確なDOMセレクタとコンポーネント階層を受け取り、曖昧なフィードバックを排除します。"
},
"installation": {
"title": "開発サーバーとCompanionのインストール",
"description": "プレビュー用に開発サーバーコマンドを設定します。設定でセットアップスクリプトを構成できます。コーディングエージェントを使用してVibe Kanban Webコンパニオンを自動的にインストールします。"
},
"codeReview": {
"title": "組み込みコードレビュー",
"description": "プラスアイコンを使用して、差分ビューに直接行固有のコメントを追加します。すべてのフィードバックが収集され、完全なレビューとしてコーディングエージェントに送信されます。"
},
"pullRequest": {
"title": "タスクからPRを作成",
"description": "タスク試行から直接変更をマージしたり、プルリクエストを作成できます。PRダイアログはタスク詳細からタイトルと説明を事前入力し、ワークフローを効率化します。"
},
"tags": {
"title": "カスタムプロンプトタグ",
"description": "カスタムプロンプトをタグとして保存し、新しいタスクやフォローアップメッセージに埋め込むことができます。共通の指示を再利用してワークフローの一貫性を維持します。"
}
},
"buttons": {
"previous": "前へ",
"next": "次へ",
"finish": "完了"
}
},
"prComments": {
"dialog": {
"title": "PRコメントを選択",
"noComments": "このPRにコメントはありません",
"selectAll": "すべて選択",
"deselectAll": "すべて選択解除",
"add": "追加",
"selectedCount": "{{total}}件中{{selected}}件選択"
},
"card": {
"review": "レビュー",
"tooltip": "クリックで表示、ダブルクリックで編集"
}
},
"taskFormDialog": {
"createTitle": "新規タスクを作成",
"editTitle": "タスクを編集",
"titlePlaceholder": "タスクのタイトル",
"descriptionPlaceholder": "詳細を追加(オプション)。@でファイルを検索できます。",
"statusLabel": "ステータス",
"statusOptions": {
"todo": "未着手",
"inprogress": "進行中",
"inreview": "レビュー中",
"done": "完了",
"cancelled": "キャンセル"
},
"startLabel": "開始",
"attachImage": "画像を添付",
"dropImagesHere": "画像をここにドロップ",
"updating": "更新中...",
"updateTask": "タスクを更新",
"starting": "開始中...",
"creating": "作成中...",
"create": "作成",
"discardDialog": {
"title": "未保存の変更を破棄しますか?",
"description": "未保存の変更があります。本当に破棄してもよろしいですか?",
"continueEditing": "編集を続ける",
"discardChanges": "変更を破棄"
}
},
"terminal": {
"selectWorkspace": "ターミナルを開くにはワークスペースを選択してください"
},
"restoreLogsDialog": {
"title": "リトライを確認",
"historyChange": {
"title": "履歴の変更",
"willDelete": "このプロセスを削除します",
"andLaterProcesses_one": "および後続の{{count}}件のプロセス",
"andLaterProcesses_other": "および後続の{{count}}件のプロセス",
"fromHistory": "を履歴から削除します。",
"codingAgentRuns_one": "{{count}}件のコーディングエージェント実行",
"codingAgentRuns_other": "{{count}}件のコーディングエージェント実行",
"scriptProcesses_one": "{{count}}件のスクリプトプロセス",
"scriptProcesses_other": "{{count}}件のスクリプトプロセス",
"setupCleanupBreakdown": "(セットアップ{{setup}}件、クリーンアップ{{cleanup}}件)",
"permanentWarning": "この操作は履歴を永久に変更し、元に戻すことはできません。"
},
"uncommittedChanges": {
"title": "未コミットの変更が検出されました",
"description_one": "{{count}}件の未コミットの変更があります",
"description_other": "{{count}}件の未コミットの変更があります",
"andUntracked_one": "および{{count}}件の未追跡ファイル",
"andUntracked_other": "および{{count}}件の未追跡ファイル",
"acknowledgeLabel": "これらの変更が影響を受ける可能性があることを理解しています"
},
"resetWorktree": {
"title": "ワークツリーをリセット",
"enabled": "有効",
"disabled": "無効",
"disabledUncommitted": "無効(未コミットの変更が検出されました)",
"restoreDescription": "ワークツリーはこのコミットに復元されます。",
"rollbackCommits_one": "現在のHEADから{{count}}件のコミットをロールバックします。",
"rollbackCommits_other": "現在のHEADから{{count}}件のコミットをロールバックします。",
"discardChanges_one": "{{count}}件の未コミットの変更を破棄します。",
"discardChanges_other": "{{count}}件の未コミットの変更を破棄します。",
"untrackedPresent_one": "{{count}}件の未追跡ファイルがあります(リセットの影響を受けません)。",
"untrackedPresent_other": "{{count}}件の未追跡ファイルがあります(リセットの影響を受けません)。",
"forceReset": "強制リセット(未コミットの変更を破棄)",
"uncommittedWillDiscard": "未コミットの変更は破棄されます。",
"uncommittedPresentHint": "未コミットの変更があります。強制リセットをオンにするか、コミット/スタッシュしてから続行してください。"
},
"buttons": {
"retry": "リトライ"
}
},
"conversation": {
"you": "あなた",
"thinking": "考え中",
"todo": "タスク",
"todos": "タスク",
"completed": "完了",
"incomplete": "未完了",
"pending": "保留中",
"inProgress": "進行中",
"skipped": "スキップ",
"error": "エラー",
"retry": "再試行",
"showMore": "もっと見る",
"showLess": "少なく表示",
"actions": {
"cancel": "キャンセル",
"submitFeedback": "フィードバックを送信",
"stop": "停止",
"stopping": "停止中",
"loading": "読み込み中",
"send": "送信",
"sending": "送信中",
"queue": "キューに追加",
"cancelQueue": "キューをキャンセル",
"requestChanges": "変更を依頼",
"approve": "承認",
"clearReviewComments": "レビューコメントをクリア",
"edit": "メッセージを編集"
},
"approval": {
"conflictWarning": "競合するファイルは手動で解決する必要があります",
"conflicts_one": "{{count}}件の競合ファイルを手動で解決する必要があります",
"conflicts_other": "{{count}}件の競合ファイルを手動で解決する必要があります"
},
"executors": "エクゼキューター",
"saveAsDefault": "デフォルトとして保存",
"script": {
"clickToViewLogs": "クリックしてログを表示",
"completedSuccessfully": "正常に完了しました",
"exitCode": "終了コード: {{code}}",
"running": "実行中..."
},
"unableToRenderDiff": "差分を表示できません。",
"updatedTodos": "更新されたTodo",
"viewInChangesPanel": "変更パネルで表示",
"sessions": {
"newSession": "新規セッション",
"latest": "最新",
"previous": "前へ",
"label": "セッション",
"noPreviousSessions": "以前のセッションはありません"
},
"reviewComments": {
"count_one": "{{count}}件のレビューコメントが含まれます",
"count_other": "{{count}}件のレビューコメントが含まれます"
},
"workspace": {
"create": "作成",
"creating": "作成中..."
},
"fileEntry": {
"created": "作成済み",
"modified": "変更済み",
"deleted": "削除済み",
"renamed": "名前変更済み"
}
},
"scriptFixer": {
"title": "スクリプトを修正",
"setupScriptTitle": "セットアップスクリプトを修正",
"cleanupScriptTitle": "クリーンアップスクリプトを修正",
"devServerTitle": "開発サーバースクリプトを修正",
"scriptLabel": "スクリプト(編集)",
"logsLabel": "最後の実行ログ",
"saveButton": "保存",
"saveAndTestButton": "保存してテスト",
"saving": "保存中...",
"testing": "テスト中...",
"noLogs": "利用可能な実行ログがありません",
"selectRepo": "リポジトリ",
"fixScript": "スクリプトを修正",
"statusRunning": "実行中...",
"statusSuccess": "正常に完了しました",
"statusFailed": "終了コード {{exitCode}} で失敗しました",
"statusKilled": "プロセスが強制終了されました"
}
}