2026-04-17 09:09:50 +08:00
|
|
|
|
export default {
|
|
|
|
|
|
// ログイン
|
|
|
|
|
|
login: {
|
|
|
|
|
|
title: 'Hermes Web UI',
|
|
|
|
|
|
description: 'アクセストークンを入力して続行してください。サーバーの起動ログで確認できます。',
|
|
|
|
|
|
placeholder: 'アクセストークン',
|
|
|
|
|
|
submit: 'ログイン',
|
|
|
|
|
|
tokenRequired: 'アクセストークンを入力してください',
|
|
|
|
|
|
invalidToken: '無効なトークンです',
|
|
|
|
|
|
connectionFailed: 'サーバーに接続できません',
|
2026-04-22 20:27:33 +08:00
|
|
|
|
passwordLogin: 'パスワード',
|
|
|
|
|
|
tokenLogin: 'トークン',
|
|
|
|
|
|
usernamePlaceholder: 'ユーザー名',
|
|
|
|
|
|
passwordPlaceholder: 'パスワード',
|
|
|
|
|
|
credentialsRequired: 'ユーザー名とパスワードを入力してください',
|
|
|
|
|
|
invalidCredentials: 'ユーザー名またはパスワードが正しくありません',
|
|
|
|
|
|
passwordMismatch: 'パスワードが一致しません',
|
|
|
|
|
|
passwordTooShort: 'パスワードは6文字以上必要です',
|
|
|
|
|
|
setupSuccess: 'パスワードログインが設定されました',
|
|
|
|
|
|
passwordChanged: 'パスワードが変更されました',
|
|
|
|
|
|
passwordRemoved: 'パスワードログインが削除されました',
|
|
|
|
|
|
setupPassword: 'パスワードログインを設定',
|
|
|
|
|
|
changePassword: 'パスワードを変更',
|
|
|
|
|
|
changeUsername: 'ユーザー名を変更',
|
|
|
|
|
|
removePasswordLogin: '削除',
|
|
|
|
|
|
username: 'ユーザー名',
|
|
|
|
|
|
currentPassword: '現在のパスワード',
|
|
|
|
|
|
newPassword: '新しいパスワード',
|
|
|
|
|
|
confirmPassword: 'パスワード確認',
|
|
|
|
|
|
newUsername: '新しいユーザー名',
|
|
|
|
|
|
usernameChanged: 'ユーザー名が変更されました',
|
|
|
|
|
|
usernameTooShort: 'ユーザー名は2文字以上必要です',
|
|
|
|
|
|
setupDescription: 'ユーザー名とパスワードを設定して、簡単にログインできるようにします。アクセストークンは引き続きバックアップとして使用できます。',
|
|
|
|
|
|
removeConfirm: 'パスワードログインを削除しますか?アクセストークンを使用してログインする必要があります。',
|
|
|
|
|
|
passwordLoginNotConfigured: 'パスワードログイン未設定',
|
|
|
|
|
|
passwordLoginConfigured: 'パスワードログイン有効({username})',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 共通
|
|
|
|
|
|
common: {
|
|
|
|
|
|
loading: '読み込み中...',
|
|
|
|
|
|
cancel: 'キャンセル',
|
2026-04-17 23:11:57 +08:00
|
|
|
|
retry: '再試行',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
delete: '削除',
|
|
|
|
|
|
edit: '編集',
|
|
|
|
|
|
save: '保存',
|
|
|
|
|
|
saved: '保存しました',
|
|
|
|
|
|
update: '更新',
|
|
|
|
|
|
create: '作成',
|
|
|
|
|
|
saveFailed: '保存に失敗しました',
|
|
|
|
|
|
ok: 'OK',
|
|
|
|
|
|
copied: 'コピーしました',
|
|
|
|
|
|
copy: 'コピー',
|
|
|
|
|
|
noData: 'データがありません',
|
|
|
|
|
|
fetch: '取得',
|
|
|
|
|
|
add: '追加',
|
|
|
|
|
|
enable: '有効化',
|
|
|
|
|
|
disable: '無効化',
|
|
|
|
|
|
configured: '設定済み',
|
|
|
|
|
|
notConfigured: '未設定',
|
|
|
|
|
|
confirm: '確認',
|
|
|
|
|
|
expand: '展開',
|
|
|
|
|
|
collapse: '折りたたむ',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// サイドバー
|
|
|
|
|
|
sidebar: {
|
|
|
|
|
|
chat: 'チャット',
|
|
|
|
|
|
jobs: 'ジョブ',
|
|
|
|
|
|
models: 'モデル',
|
|
|
|
|
|
profiles: 'プロファイル',
|
|
|
|
|
|
skills: 'スキル',
|
|
|
|
|
|
memory: 'メモリ',
|
|
|
|
|
|
logs: 'ログ',
|
|
|
|
|
|
usage: '使用量',
|
|
|
|
|
|
channels: 'チャンネル',
|
|
|
|
|
|
terminal: 'ターミナル',
|
2026-04-23 14:10:14 +08:00
|
|
|
|
files: 'ファイル',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
settings: '設定',
|
|
|
|
|
|
connected: '接続済み',
|
|
|
|
|
|
disconnected: '未接続',
|
|
|
|
|
|
updateTip: 'ターミナルで "hermes-web-ui update" を実行して更新してください',
|
|
|
|
|
|
updateVersion: 'v{version} にアップグレード',
|
|
|
|
|
|
updating: '更新中...',
|
|
|
|
|
|
updateSuccess: '更新が完了しました。サーバーを再起動してください',
|
|
|
|
|
|
updateFailed: '更新に失敗しました',
|
2026-04-22 20:27:33 +08:00
|
|
|
|
logout: 'ログアウト',
|
2026-04-24 02:31:42 +02:00
|
|
|
|
nodeVersionWarning: 'Node.js v{version} が検出されました。バージョン23以降にアップグレードしてください。',
|
2026-04-22 20:27:33 +08:00
|
|
|
|
changelog: '更新履歴',
|
|
|
|
|
|
noChangelog: '更新履歴はありません',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// チャット
|
|
|
|
|
|
chat: {
|
2026-04-22 16:14:50 +08:00
|
|
|
|
contextRemaining: '残り',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
emptyState: 'Hermes Agent と会話を開始しましょう',
|
|
|
|
|
|
inputPlaceholder: 'メッセージを入力... (Enter で送信、Shift+Enter で改行)',
|
|
|
|
|
|
attachFiles: 'ファイルを添付',
|
|
|
|
|
|
stop: '停止',
|
|
|
|
|
|
send: '送信',
|
|
|
|
|
|
contextUsed: 'コンテキスト使用量:',
|
|
|
|
|
|
sessions: 'セッション',
|
|
|
|
|
|
noSessions: 'セッションがありません',
|
|
|
|
|
|
newChat: '新しいチャット',
|
|
|
|
|
|
deleteSession: 'このセッションを削除しますか?',
|
|
|
|
|
|
sessionDeleted: 'セッションを削除しました',
|
|
|
|
|
|
rename: '名前変更',
|
2026-04-22 02:09:58 +02:00
|
|
|
|
pin: 'ピン留め',
|
|
|
|
|
|
unpin: 'ピン留め解除',
|
|
|
|
|
|
pinned: 'ピン留め',
|
|
|
|
|
|
chatMode: 'チャット',
|
|
|
|
|
|
liveMode: 'ライブ',
|
|
|
|
|
|
liveSessions: 'ライブセッション',
|
|
|
|
|
|
recentBadge: '最近',
|
|
|
|
|
|
linkedSessions: '{count} 件の関連',
|
|
|
|
|
|
noVisibleMessages: '人間向けに表示できるメッセージはありません。',
|
|
|
|
|
|
monitorRoleUser: 'ユーザー',
|
|
|
|
|
|
monitorRoleAssistant: 'アシスタント',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
copySessionId: 'セッション ID をコピー',
|
|
|
|
|
|
renamed: '名前を変更しました',
|
|
|
|
|
|
renameFailed: '名前の変更に失敗しました',
|
|
|
|
|
|
renameSession: 'セッション名の変更',
|
|
|
|
|
|
enterNewTitle: '新しいタイトルを入力',
|
|
|
|
|
|
other: 'その他',
|
|
|
|
|
|
runFailed: '実行に失敗しました',
|
|
|
|
|
|
error: 'エラー',
|
|
|
|
|
|
tool: 'ツール',
|
|
|
|
|
|
arguments: '引数',
|
|
|
|
|
|
result: '結果',
|
|
|
|
|
|
truncated: '... (省略)',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// スケジュールジョブ
|
|
|
|
|
|
jobs: {
|
|
|
|
|
|
title: 'スケジュールジョブ',
|
|
|
|
|
|
createJob: 'ジョブを作成',
|
|
|
|
|
|
editJob: 'ジョブを編集',
|
|
|
|
|
|
noJobs: 'スケジュールジョブがありません。作成して始めましょう。',
|
|
|
|
|
|
name: '名前',
|
|
|
|
|
|
namePlaceholder: 'ジョブ名',
|
|
|
|
|
|
schedule: 'スケジュール (Cron 式)',
|
|
|
|
|
|
schedulePlaceholder: '例: 0 9 * * *',
|
|
|
|
|
|
quickPresets: 'クイックプリセット',
|
|
|
|
|
|
selectPreset: 'プリセットを選択...',
|
|
|
|
|
|
presetEveryMinute: '毎分',
|
|
|
|
|
|
presetEvery5Min: '5分ごと',
|
|
|
|
|
|
presetEveryHour: '毎時',
|
|
|
|
|
|
presetEveryDay: '毎日 00:00',
|
|
|
|
|
|
presetEveryDay9: '毎日 09:00',
|
|
|
|
|
|
presetEveryMonday: '毎週月曜 09:00',
|
|
|
|
|
|
presetEveryMonth: '毎月1日 09:00',
|
|
|
|
|
|
prompt: 'プロンプト',
|
|
|
|
|
|
promptPlaceholder: '実行するプロンプト',
|
|
|
|
|
|
deliverTarget: '配信先',
|
|
|
|
|
|
origin: '配信元',
|
|
|
|
|
|
local: 'ローカル',
|
|
|
|
|
|
repeatCount: '繰り返し回数(任意)',
|
|
|
|
|
|
repeatPlaceholder: '空白の場合は無制限',
|
|
|
|
|
|
jobCreated: 'ジョブを作成しました',
|
|
|
|
|
|
jobUpdated: 'ジョブを更新しました',
|
|
|
|
|
|
nameRequired: '名前は必須です',
|
|
|
|
|
|
scheduleRequired: 'スケジュールは必須です',
|
|
|
|
|
|
loadFailed: 'ジョブの読み込みに失敗しました',
|
|
|
|
|
|
jobPaused: 'ジョブを一時停止しました',
|
|
|
|
|
|
jobResumed: 'ジョブを再開しました',
|
|
|
|
|
|
jobTriggered: 'ジョブをトリガーしました',
|
|
|
|
|
|
jobDeleted: 'ジョブを削除しました',
|
|
|
|
|
|
status: {
|
|
|
|
|
|
running: '実行中',
|
|
|
|
|
|
paused: '一時停止',
|
|
|
|
|
|
disabled: '無効',
|
|
|
|
|
|
scheduled: 'スケジュール済み',
|
|
|
|
|
|
},
|
|
|
|
|
|
info: {
|
|
|
|
|
|
schedule: 'スケジュール',
|
|
|
|
|
|
lastRun: '前回実行',
|
|
|
|
|
|
nextRun: '次回実行',
|
|
|
|
|
|
deliver: '配信',
|
|
|
|
|
|
repeat: '繰り返し',
|
|
|
|
|
|
},
|
|
|
|
|
|
action: {
|
|
|
|
|
|
pause: '一時停止',
|
|
|
|
|
|
pauseJob: 'ジョブを一時停止',
|
|
|
|
|
|
resume: '再開',
|
|
|
|
|
|
resumeJob: 'ジョブを再開',
|
|
|
|
|
|
runNow: '今すぐ実行',
|
|
|
|
|
|
triggerImmediately: 'すぐにトリガー',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// スキル
|
|
|
|
|
|
skills: {
|
|
|
|
|
|
title: 'スキル',
|
|
|
|
|
|
searchPlaceholder: 'スキルを検索...',
|
|
|
|
|
|
noMatch: '検索に一致するスキルがありません',
|
|
|
|
|
|
noSkills: 'スキルがありません',
|
|
|
|
|
|
backTo: '戻る',
|
|
|
|
|
|
attachedFiles: '添付ファイル',
|
|
|
|
|
|
loadFailed: 'スキルの読み込みに失敗しました',
|
|
|
|
|
|
fileLoadFailed: 'ファイルの読み込みに失敗しました',
|
|
|
|
|
|
toggleFailed: 'スキルの切り替えに失敗しました',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// メモリ
|
|
|
|
|
|
memory: {
|
|
|
|
|
|
title: 'メモリ',
|
|
|
|
|
|
refresh: '更新',
|
|
|
|
|
|
loadFailed: 'メモリの読み込みに失敗しました',
|
|
|
|
|
|
myNotes: 'メモ',
|
|
|
|
|
|
noNotes: 'メモはまだありません。',
|
|
|
|
|
|
notesPlaceholder: 'メモを入力...',
|
|
|
|
|
|
userProfile: 'ユーザープロファイル',
|
|
|
|
|
|
noProfile: 'プロファイルはまだありません。',
|
|
|
|
|
|
profilePlaceholder: 'プロファイルを入力...',
|
|
|
|
|
|
soul: 'ソウル',
|
|
|
|
|
|
noSoul: 'ソウル設定はまだありません。',
|
|
|
|
|
|
soulPlaceholder: 'ソウル設定を入力...',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// モデル
|
|
|
|
|
|
models: {
|
|
|
|
|
|
title: 'モデル',
|
|
|
|
|
|
addProvider: 'プロバイダーを追加',
|
|
|
|
|
|
providerType: 'プロバイダー種別',
|
|
|
|
|
|
preset: 'プリセット',
|
|
|
|
|
|
custom: 'カスタム',
|
|
|
|
|
|
selectProvider: 'プロバイダーを選択',
|
|
|
|
|
|
chooseProvider: 'プロバイダーを選択...',
|
|
|
|
|
|
name: '名前',
|
|
|
|
|
|
autoGeneratedName: 'ベース URL から自動生成',
|
|
|
|
|
|
baseUrl: 'ベース URL',
|
|
|
|
|
|
baseUrlPlaceholder: '例: https://api.example.com/v1',
|
|
|
|
|
|
apiKey: 'API キー',
|
|
|
|
|
|
apiKeyPlaceholder: 'sk-...',
|
|
|
|
|
|
defaultModel: 'デフォルトモデル',
|
2026-04-17 22:05:06 +08:00
|
|
|
|
selectOrInput: 'モデルを選択または入力...',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
selectModel: 'モデルを選択...',
|
|
|
|
|
|
providerAdded: 'プロバイダーを追加しました',
|
|
|
|
|
|
providerDeleted: 'プロバイダーを削除しました',
|
|
|
|
|
|
deleteProvider: 'プロバイダーを削除',
|
|
|
|
|
|
deleteConfirm: '「{name}」を削除しますか?',
|
2026-04-17 23:11:57 +08:00
|
|
|
|
codexLoginTitle: 'OpenAI Codex ログイン',
|
|
|
|
|
|
codexWaiting: '認証ページで以下のコードを入力してログインしてください:',
|
|
|
|
|
|
codexCopyCode: 'コードをコピーしました',
|
|
|
|
|
|
codexOpenLink: '認証ページを開く',
|
|
|
|
|
|
codexApproved: 'ログイン成功',
|
|
|
|
|
|
codexExpired: '認証の有効期限が切れました。もう一度お試しください。',
|
2026-04-23 08:39:19 +08:00
|
|
|
|
nousLoginTitle: 'Nous Portal ログイン',
|
|
|
|
|
|
nousWaiting: '認証ページでこのコードを入力してください:',
|
|
|
|
|
|
nousCopyCode: 'コードをコピーしました',
|
|
|
|
|
|
nousOpenLink: '認証ページを開く',
|
|
|
|
|
|
nousApproved: 'ログイン成功',
|
|
|
|
|
|
nousDenied: '認証が拒否されました',
|
|
|
|
|
|
nousExpired: '認証の有効期限が切れました',
|
2026-04-24 08:49:45 +08:00
|
|
|
|
customBadge: 'カスタム',
|
|
|
|
|
|
customModelPlaceholder: 'カスタムモデル名',
|
|
|
|
|
|
customModelHint: 'Enterで読み込み',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
noProviders: 'プロバイダーがありません。カスタムプロバイダーを追加して始めましょう。',
|
|
|
|
|
|
builtIn: '組み込み',
|
|
|
|
|
|
customType: 'カスタム',
|
|
|
|
|
|
provider: 'プロバイダー',
|
2026-04-24 11:18:11 +08:00
|
|
|
|
contextLength: 'コンテキスト長',
|
|
|
|
|
|
contextLengthPlaceholder: '例: 200000(任意)',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
local: 'ローカル ({host})',
|
|
|
|
|
|
selectProviderRequired: 'プロバイダーを選択してください',
|
|
|
|
|
|
baseUrlRequired: 'ベース URL は必須です',
|
|
|
|
|
|
apiKeyRequired: 'API キーは必須です',
|
|
|
|
|
|
modelRequired: 'デフォルトモデルは必須です',
|
|
|
|
|
|
enterBaseUrl: 'ベース URL を先に入力してください',
|
|
|
|
|
|
unexpectedFormat: '予期しないレスポンス形式です',
|
|
|
|
|
|
foundModels: '{count} 個のモデルが見つかりました',
|
|
|
|
|
|
fetchFailed: 'モデルの取得に失敗しました',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// プロファイル
|
|
|
|
|
|
profiles: {
|
|
|
|
|
|
title: 'プロファイル',
|
|
|
|
|
|
create: 'プロファイルを作成',
|
|
|
|
|
|
import: 'インポート',
|
|
|
|
|
|
export: 'エクスポート',
|
|
|
|
|
|
rename: '名前変更',
|
|
|
|
|
|
delete: '削除',
|
|
|
|
|
|
switchTo: '切り替え',
|
|
|
|
|
|
switchConfirm: 'プロファイル「{name}」に切り替えるとゲートウェイが再起動されます。続行しますか?',
|
|
|
|
|
|
switchSuccess: 'プロファイル「{name}」に切り替えました',
|
|
|
|
|
|
switchFailed: 'プロファイルの切り替えに失敗しました。ゲートウェイの手動再起動が必要な場合があります。',
|
|
|
|
|
|
createSuccess: 'プロファイル「{name}」を作成しました',
|
|
|
|
|
|
createFailed: 'プロファイルの作成に失敗しました',
|
|
|
|
|
|
renameSuccess: 'プロファイル名を変更しました',
|
|
|
|
|
|
renameFailed: 'プロファイル名の変更に失敗しました',
|
|
|
|
|
|
deleteConfirm: 'プロファイル「{name}」を削除しますか?',
|
|
|
|
|
|
deleteSuccess: 'プロファイルを削除しました',
|
|
|
|
|
|
deleteFailed: 'プロファイルの削除に失敗しました',
|
|
|
|
|
|
exportSuccess: 'プロファイルをエクスポートしました',
|
|
|
|
|
|
exportFailed: 'プロファイルのエクスポートに失敗しました',
|
|
|
|
|
|
importSuccess: 'プロファイルをインポートしました',
|
|
|
|
|
|
importFailed: 'プロファイルのインポートに失敗しました',
|
|
|
|
|
|
importSelectFile: 'アーカイブファイルを選択',
|
|
|
|
|
|
importInvalidFile: '有効なアーカイブファイルを選択してください (.tar.gz, .tgz, .gz, .zip)',
|
|
|
|
|
|
name: 'プロファイル名',
|
|
|
|
|
|
namePlaceholder: '英数字、ハイフンのみ',
|
|
|
|
|
|
newName: '新しい名前',
|
|
|
|
|
|
newNamePlaceholder: '新しい名前を入力',
|
|
|
|
|
|
cloneFromCurrent: '現在のプロファイルから複製',
|
|
|
|
|
|
archivePath: 'アーカイブパス',
|
|
|
|
|
|
archivePathPlaceholder: 'アーカイブファイルのサーバーパス',
|
|
|
|
|
|
importName: 'プロファイル名(任意)',
|
|
|
|
|
|
importNamePlaceholder: '空白の場合はアーカイブ名を使用',
|
|
|
|
|
|
active: 'アクティブ',
|
|
|
|
|
|
model: 'モデル',
|
|
|
|
|
|
gateway: 'ゲートウェイ',
|
|
|
|
|
|
alias: 'エイリアス',
|
|
|
|
|
|
provider: 'プロバイダー',
|
|
|
|
|
|
path: 'パス',
|
|
|
|
|
|
skills: 'スキル',
|
|
|
|
|
|
hasEnv: '.env あり',
|
|
|
|
|
|
hasSoulMd: 'soul.md あり',
|
|
|
|
|
|
noProfiles: 'プロファイルがありません。作成して始めましょう。',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// ログ
|
|
|
|
|
|
logs: {
|
|
|
|
|
|
title: 'ログ',
|
|
|
|
|
|
all: 'すべて',
|
|
|
|
|
|
searchPlaceholder: '検索...',
|
|
|
|
|
|
refresh: '更新',
|
|
|
|
|
|
noEntries: 'ログエントリがありません',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 設定
|
|
|
|
|
|
settings: {
|
|
|
|
|
|
title: '設定',
|
|
|
|
|
|
saved: '保存しました',
|
|
|
|
|
|
saveFailed: '保存に失敗しました',
|
|
|
|
|
|
tabs: {
|
|
|
|
|
|
display: '表示',
|
2026-04-22 20:27:33 +08:00
|
|
|
|
account: 'アカウント',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
agent: 'エージェント',
|
|
|
|
|
|
memory: 'メモリ',
|
|
|
|
|
|
session: 'セッション',
|
|
|
|
|
|
privacy: 'プライバシー',
|
|
|
|
|
|
apiServer: 'API サーバー',
|
|
|
|
|
|
},
|
|
|
|
|
|
display: {
|
|
|
|
|
|
streaming: 'ストリームレスポンス',
|
|
|
|
|
|
streamingHint: 'AI の返信をリアルタイムで表示',
|
|
|
|
|
|
compact: 'コンパクトモード',
|
|
|
|
|
|
compactHint: 'メッセージの間隔を狭める',
|
|
|
|
|
|
showReasoning: '推論過程を表示',
|
|
|
|
|
|
showReasoningHint: 'モデルの思考プロセスを表示',
|
|
|
|
|
|
showCost: 'コストを表示',
|
|
|
|
|
|
showCostHint: '返信にトークン使用量を表示',
|
|
|
|
|
|
inlineDiffs: 'インライン差分',
|
|
|
|
|
|
inlineDiffsHint: 'コード変更をインラインで表示',
|
|
|
|
|
|
bellOnComplete: '完了通知音',
|
|
|
|
|
|
bellOnCompleteHint: 'AI の応答完了時に通知音を再生',
|
|
|
|
|
|
busyInputMode: '処理中入力モード',
|
|
|
|
|
|
busyInputModeHint: 'AI 処理中でも入力を許可',
|
|
|
|
|
|
theme: 'テーマ',
|
|
|
|
|
|
themeHint: 'ライト、ダーク、またはシステム設定に従う',
|
|
|
|
|
|
themeLight: 'ライト',
|
|
|
|
|
|
themeDark: 'ダーク',
|
|
|
|
|
|
themeSystem: 'システム',
|
|
|
|
|
|
},
|
|
|
|
|
|
agent: {
|
|
|
|
|
|
maxTurns: '最大ターン数',
|
|
|
|
|
|
maxTurnsHint: '1回の会話の最大インタラクション回数',
|
|
|
|
|
|
gatewayTimeout: 'ゲートウェイタイムアウト',
|
|
|
|
|
|
gatewayTimeoutHint: 'リクエストタイムアウト(秒)',
|
|
|
|
|
|
restartDrainTimeout: '再起動ドレインタイムアウト',
|
|
|
|
|
|
restartDrainTimeoutHint: '再起動前のドレインタイムアウト(秒)',
|
|
|
|
|
|
toolEnforcement: 'ツール実行ポリシー',
|
|
|
|
|
|
toolEnforcementHint: 'ツール呼び出しの実行モードを制御',
|
|
|
|
|
|
auto: '自動',
|
|
|
|
|
|
always: '常に',
|
|
|
|
|
|
never: 'しない',
|
|
|
|
|
|
},
|
|
|
|
|
|
memory: {
|
|
|
|
|
|
enabled: 'メモリを有効化',
|
|
|
|
|
|
enabledHint: 'AI に会話コンテキストを記憶させる',
|
|
|
|
|
|
userProfile: 'ユーザープロファイル',
|
|
|
|
|
|
userProfileHint: 'AI にユーザーの設定を記憶させる',
|
|
|
|
|
|
charLimit: 'メモリ文字数上限',
|
|
|
|
|
|
charLimitHint: 'MEMORY.md の最大文字数',
|
|
|
|
|
|
userCharLimit: 'ユーザープロファイル文字数上限',
|
|
|
|
|
|
userCharLimitHint: 'USER.md の最大文字数',
|
|
|
|
|
|
},
|
|
|
|
|
|
session: {
|
|
|
|
|
|
mode: 'リセットモード',
|
|
|
|
|
|
modeHint: 'セッションリセットのトリガー条件',
|
|
|
|
|
|
modeBoth: 'アイドル + スケジュール',
|
|
|
|
|
|
modeIdle: 'アイドルのみ',
|
|
|
|
|
|
modeHourly: 'スケジュールのみ',
|
|
|
|
|
|
idleMinutes: 'アイドルタイムアウト',
|
|
|
|
|
|
idleMinutesHint: '自動リセットまでの待機時間(分)',
|
|
|
|
|
|
atHour: 'スケジュールリセット時刻',
|
2026-04-22 02:09:58 +02:00
|
|
|
|
humanOnly: '人間のセッションのみ表示',
|
|
|
|
|
|
humanOnlyHint: 'サブエージェントやセッション監視ノイズを既定で隠します',
|
|
|
|
|
|
liveMonitorHumanOnly: 'ライブモニター: 人間のセッションのみ表示',
|
|
|
|
|
|
liveMonitorHumanOnlyHint: 'ライブモニターでサブエージェントやセッション監視ノイズを既定で隠します',
|
2026-04-17 09:09:50 +08:00
|
|
|
|
atHourHint: '毎日指定時刻にセッションをリセット',
|
|
|
|
|
|
},
|
|
|
|
|
|
privacy: {
|
|
|
|
|
|
redactPii: '個人情報のマスキング',
|
|
|
|
|
|
redactPiiHint: '機密情報を自動検出して隠す(パスワード、キーなど)',
|
|
|
|
|
|
},
|
|
|
|
|
|
apiServer: {
|
|
|
|
|
|
enable: '有効化',
|
|
|
|
|
|
enableHint: 'API サーバーを有効にする',
|
|
|
|
|
|
host: 'ホスト',
|
|
|
|
|
|
hostHint: 'リッスンアドレス',
|
|
|
|
|
|
port: 'ポート',
|
|
|
|
|
|
portHint: 'リッスンポート',
|
|
|
|
|
|
key: 'キー',
|
|
|
|
|
|
keyHint: 'API アクセスキー',
|
|
|
|
|
|
cors: 'CORS 許可元',
|
|
|
|
|
|
corsHint: '許可するクロスオリジン',
|
|
|
|
|
|
},
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// プラットフォームチャンネル設定
|
|
|
|
|
|
platform: {
|
|
|
|
|
|
requireMention: "メンションが必要",
|
|
|
|
|
|
requireMentionGroup: "グループで応答するには {'@'}メンションが必要",
|
|
|
|
|
|
requireMentionChannel: "チャンネルで応答するには {'@'}メンションが必要",
|
|
|
|
|
|
requireMentionRoom: "ルームで応答するには {'@'}メンションが必要",
|
|
|
|
|
|
reactions: 'リアクション',
|
|
|
|
|
|
reactionsHint: 'メッセージに絵文字でリアクションする',
|
|
|
|
|
|
freeResponseChats: '自由応答チャット',
|
|
|
|
|
|
freeResponseChatsHint: "{'@'}メンションなしで応答するチャット ID(カンマ区切り)",
|
|
|
|
|
|
freeResponseChannels: '自由応答チャンネル',
|
|
|
|
|
|
freeResponseChannelsHint: "{'@'}メンションなしで応答するチャンネル ID(カンマ区切り)",
|
|
|
|
|
|
freeResponseRooms: '自由応答ルーム',
|
|
|
|
|
|
freeResponseRoomsHint: "{'@'}メンションなしで応答するルーム ID(カンマ区切り)",
|
|
|
|
|
|
mentionPatterns: 'カスタムメンションパターン',
|
|
|
|
|
|
mentionPatternsHint: '追加のトリガーパターン',
|
|
|
|
|
|
autoThread: '自動スレッド',
|
|
|
|
|
|
autoThreadHint: "{'@'}メンション後に自動で返信スレッドを作成",
|
|
|
|
|
|
autoThreadHintRoom: 'ルームで自動的に返信スレッドを作成',
|
|
|
|
|
|
dmMentionThreads: 'DM メンションスレッド',
|
|
|
|
|
|
dmMentionThreadsHint: 'DM 内のメンションにスレッド返信を使用',
|
|
|
|
|
|
allowBots: 'ボットメッセージを許可',
|
|
|
|
|
|
allowBotsHint: '他のボットからのメッセージに応答する',
|
|
|
|
|
|
allowedChannels: '許可チャンネル',
|
|
|
|
|
|
allowedChannelsHint: 'ホワイトリストのチャンネル ID(カンマ区切り)',
|
|
|
|
|
|
ignoredChannels: '除外チャンネル',
|
|
|
|
|
|
ignoredChannelsHint: 'ボットが応答しないチャンネル ID(カンマ区切り)',
|
|
|
|
|
|
noThreadChannels: 'スレッドなしチャンネル',
|
|
|
|
|
|
noThreadChannelsHint: 'スレッドなしで応答するチャンネル ID(カンマ区切り)',
|
|
|
|
|
|
botToken: 'ボットトークン',
|
|
|
|
|
|
botTokenHint: '開発者ポータルから取得したボットトークン',
|
|
|
|
|
|
accessToken: 'アクセストークン',
|
|
|
|
|
|
accessTokenHint: 'Matrix アクセストークン',
|
|
|
|
|
|
homeserver: 'Homeserver URL',
|
|
|
|
|
|
homeserverHint: 'Matrix ホームサーバー URL',
|
|
|
|
|
|
appId: 'App ID',
|
|
|
|
|
|
appIdHint: 'Feishu App ID',
|
|
|
|
|
|
appSecret: 'App Secret',
|
|
|
|
|
|
appSecretHint: 'Feishu App Secret',
|
|
|
|
|
|
clientId: 'Client ID',
|
|
|
|
|
|
clientIdHint: 'DingTalk Client ID',
|
|
|
|
|
|
clientSecret: 'Client Secret',
|
|
|
|
|
|
clientSecretHint: 'DingTalk Client Secret',
|
|
|
|
|
|
botId: 'Bot ID',
|
|
|
|
|
|
botIdHint: 'WeCom Bot ID',
|
|
|
|
|
|
wecomSecretHint: 'WeCom Bot Secret',
|
|
|
|
|
|
waEnabled: 'WhatsApp を有効化',
|
|
|
|
|
|
waEnabledHint: 'QR コードペアリングで WhatsApp を有効にする',
|
|
|
|
|
|
weixinToken: 'Weixin トークン',
|
|
|
|
|
|
weixinTokenHint: 'weixin CLI の QR ログインから取得 (hermes weixin)',
|
|
|
|
|
|
accountId: 'Account ID',
|
|
|
|
|
|
accountIdHint: 'Weixin アカウント ID',
|
|
|
|
|
|
qrLogin: 'QR ログイン',
|
|
|
|
|
|
qrRelogin: '再ログイン',
|
|
|
|
|
|
qrFetching: 'QR コードを取得中...',
|
|
|
|
|
|
qrScanHint: 'WeChat でスキャンしてログイン',
|
|
|
|
|
|
qrScanedHint: 'スキャン済み、スマートフォンで確認してください...',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 言語
|
|
|
|
|
|
language: {
|
|
|
|
|
|
label: '言語',
|
|
|
|
|
|
zh: '中文',
|
|
|
|
|
|
en: 'English',
|
|
|
|
|
|
ja: '日本語',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// ターミナル
|
|
|
|
|
|
terminal: {
|
|
|
|
|
|
sessions: 'セッション',
|
|
|
|
|
|
newTab: '新しいターミナル',
|
|
|
|
|
|
closeSession: 'このセッションを閉じますか?',
|
|
|
|
|
|
sessionExited: '終了しました',
|
|
|
|
|
|
processExited: 'プロセスが終了しました(コード {code})',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// 使用統計
|
|
|
|
|
|
usage: {
|
|
|
|
|
|
title: '使用統計',
|
|
|
|
|
|
refresh: '更新',
|
|
|
|
|
|
totalTokens: '総トークン数',
|
|
|
|
|
|
inputTokens: '入力',
|
|
|
|
|
|
outputTokens: '出力',
|
|
|
|
|
|
totalSessions: '総セッション数',
|
|
|
|
|
|
avgPerDay: '1日平均 ~{n}',
|
|
|
|
|
|
estimatedCost: '推定コスト',
|
|
|
|
|
|
cacheHitRate: 'キャッシュヒット率',
|
|
|
|
|
|
modelBreakdown: 'モデル別内訳',
|
|
|
|
|
|
dailyTrend: '日別使用量(過去30日間)',
|
|
|
|
|
|
date: '日付',
|
|
|
|
|
|
tokens: 'トークン',
|
|
|
|
|
|
cache: 'キャッシュ',
|
|
|
|
|
|
sessions: 'セッション',
|
|
|
|
|
|
cost: 'コスト',
|
|
|
|
|
|
noData: '使用データがありません',
|
|
|
|
|
|
},
|
2026-04-22 20:27:33 +08:00
|
|
|
|
|
|
|
|
|
|
// 更新履歴
|
|
|
|
|
|
changelog: {
|
|
|
|
|
|
new_0_4_3_1: 'トークン認証に加えてユーザー名/パスワードログインを追加',
|
|
|
|
|
|
new_0_4_3_2: '資格情報管理のためのアカウント設定を追加',
|
|
|
|
|
|
new_0_4_3_3: 'サイドバーにログアウトボタンを追加',
|
|
|
|
|
|
new_0_4_3_4: 'バージョン番号クリックで更新履歴ポップアップを追加',
|
|
|
|
|
|
new_0_4_2_1: 'トークン使用量追跡と動的コンテキスト長を追加',
|
|
|
|
|
|
new_0_4_2_2: 'セッション検索モーダルを追加',
|
|
|
|
|
|
new_0_4_2_3: 'Socket.IOとSQLiteによるグループチャットシステムを復元',
|
|
|
|
|
|
new_0_4_2_4: 'チャットページにピン留めセッションとライブモニターを追加',
|
|
|
|
|
|
new_0_4_2_5: '組み込みプロバイダー検出とモデルマッチングを修正',
|
|
|
|
|
|
new_0_4_1_1: '認証バイパスとSPAファイル配信を修正',
|
|
|
|
|
|
},
|
2026-04-23 14:10:14 +08:00
|
|
|
|
|
|
|
|
|
|
// ファイル
|
|
|
|
|
|
files: {
|
|
|
|
|
|
title: 'ファイル',
|
|
|
|
|
|
tree: 'ディレクトリツリー',
|
|
|
|
|
|
list: 'ファイル一覧',
|
|
|
|
|
|
breadcrumbRoot: 'ホーム',
|
|
|
|
|
|
newFile: '新規ファイル',
|
|
|
|
|
|
newFolder: '新規フォルダ',
|
|
|
|
|
|
upload: 'アップロード',
|
|
|
|
|
|
refresh: '更新',
|
|
|
|
|
|
open: '開く',
|
|
|
|
|
|
edit: '編集',
|
|
|
|
|
|
preview: 'プレビュー',
|
|
|
|
|
|
download: 'ダウンロード',
|
|
|
|
|
|
copyPath: 'パスをコピー',
|
|
|
|
|
|
rename: '名前の変更',
|
|
|
|
|
|
delete: '削除',
|
|
|
|
|
|
name: '名前',
|
|
|
|
|
|
size: 'サイズ',
|
|
|
|
|
|
modified: '更新日時',
|
|
|
|
|
|
actions: '操作',
|
|
|
|
|
|
emptyDir: '空のディレクトリ',
|
|
|
|
|
|
loading: '読み込み中...',
|
|
|
|
|
|
confirmDelete: '「{name}」を削除してもよろしいですか?',
|
|
|
|
|
|
confirmDeleteDir: 'ディレクトリ「{name}」とそのすべての内容を削除してもよろしいですか?',
|
|
|
|
|
|
deleteFailed: '削除に失敗しました',
|
|
|
|
|
|
deleted: '削除しました',
|
|
|
|
|
|
renameTo: '名前を変更',
|
|
|
|
|
|
newFileName: 'ファイル名',
|
|
|
|
|
|
newFolderName: 'フォルダ名',
|
|
|
|
|
|
created: '作成しました',
|
|
|
|
|
|
createFailed: '作成に失敗しました',
|
|
|
|
|
|
renamed: '名前を変更しました',
|
|
|
|
|
|
renameFailed: '名前の変更に失敗しました',
|
|
|
|
|
|
uploadSuccess: '{count} 個のファイルをアップロードしました',
|
|
|
|
|
|
uploadFailed: 'アップロードに失敗しました',
|
|
|
|
|
|
saveFailed: '保存に失敗しました',
|
|
|
|
|
|
saved: '保存しました',
|
|
|
|
|
|
unsavedChanges: '未保存の変更があります。破棄しますか?',
|
|
|
|
|
|
pathCopied: 'パスをコピーしました',
|
|
|
|
|
|
fileTooLarge: 'ファイルが大きすぎます(最大10MB)',
|
|
|
|
|
|
permissionDenied: '保護されたファイルは変更できません',
|
|
|
|
|
|
notFound: 'ファイルまたはディレクトリが見つかりません',
|
|
|
|
|
|
backendError: 'ファイル操作に失敗しました',
|
|
|
|
|
|
dragDropHint: 'ここにファイルをドラッグしてアップロード',
|
|
|
|
|
|
closeEditor: 'エディタを閉じる',
|
|
|
|
|
|
closePreview: '閉じる',
|
|
|
|
|
|
saveFile: '保存',
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
// ダウンロード
|
|
|
|
|
|
download: {
|
|
|
|
|
|
downloading: 'ダウンロード中...',
|
|
|
|
|
|
downloadFailed: 'ダウンロードに失敗しました',
|
|
|
|
|
|
fileNotFound: 'ファイルが見つからないか削除されています',
|
|
|
|
|
|
fileTooLarge: 'ファイルが大きすぎます(制限超過)',
|
|
|
|
|
|
backendError: 'ファイルの読み取りに失敗しました。リモート環境が利用できない可能性があります',
|
|
|
|
|
|
backendTimeout: 'ファイルの読み取りがタイムアウトしました',
|
|
|
|
|
|
unsupportedBackend: '現在のターミナルバックエンドはファイルのダウンロードに対応していません',
|
|
|
|
|
|
invalidPath: '無効なファイルパス',
|
|
|
|
|
|
download: 'ダウンロード',
|
2026-04-24 02:31:42 +02:00
|
|
|
|
downloadFile: 'ファイルをダウンロード',
|
2026-04-23 14:10:14 +08:00
|
|
|
|
},
|
2026-04-17 09:09:50 +08:00
|
|
|
|
}
|