From 743e827234f65104ef8b685cb49cdc7b8aec8b38 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 18 Apr 2026 22:04:38 +0900 Subject: [PATCH 001/215] New translations web.json (Japanese) --- ja/web.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ja/web.json b/ja/web.json index c9e6334..34ea75b 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1217,7 +1217,7 @@ "variableKey": "変数名", "variableKeyPlaceholder": "例: myVar", "variableValue": "値", - "variableValuePlaceholder": "例: '{{user.name}}'", + "variableValuePlaceholder": "例: {{user.name}}'", "ephemeral": "エフェメラル(本人のみ表示)", "replyContent": "返信内容(省略可)", "replyContentPlaceholder": "返信メッセージ...", @@ -1247,11 +1247,11 @@ "buttonCustomIdHint": "内部識別子(英数字・ハイフン)", "buttonCustomIdPlaceholder": "例: confirm-btn", "buttonModeCustomId": "カスタムID", - "buttonModeLinked": "ワークフロー連携", - "buttonLinkedWorkflow": "連携するワークフロー", - "buttonLinkedWorkflowHint": "ボタンを押したときに実行されるワークフロー", + "buttonModeLinked": "ワークフローを連携する", + "buttonLinkedWorkflow": "ワークフローを連携しました", + "buttonLinkedWorkflowHint": "ボタンがクリックされたときに実行するワークフロー", "buttonLinkedWorkflowPlaceholder": "ワークフローを選択...", - "buttonLinkedWorkflowNone": "ワークフローが見つかりません", + "buttonLinkedWorkflowNone": "ワークフローが見つかりませんでした。", "buttonStyle": "スタイル", "buttonStylePrimary": "プライマリ(青)", "buttonStyleSecondary": "セカンダリ(灰)", @@ -1301,8 +1301,8 @@ "enabled": "有効", "disabled": "無効", "noSettings": "設定項目はありません", - "varNote": "set_variableノードでセットした変数は '{{変数名}}' で参照できます", - "webhookPayloadHint": "受信したJSONの各キーは '{{webhook.payload.keyName}}' で参照できます", + "varNote": "Set Variable ノードで設定された変数は、'{{変数名}} ' として参照できます。", + "webhookPayloadHint": "受信した JSON の各キーは '{{webhook.payload.keyName}}' として利用できます", "webhookHeaders": "カスタムヘッダー", "webhookHeadersHint": "Authorization: Bearer token など", "webhookAddHeader": "ヘッダーを追加", From 17aed95430d8811b33633d8e25387b40a5e70d69 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 18 Apr 2026 23:06:42 +0900 Subject: [PATCH 002/215] Update source file web.json --- en/web.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/en/web.json b/en/web.json index cb352b6..fa79816 100644 --- a/en/web.json +++ b/en/web.json @@ -317,6 +317,9 @@ "selectDesc": "Choose the server you want to purchase for" }, "purchaseFlow": { + "purchaseSuccess": "Thank you for your purchase!", + "purchaseSuccessDesc": "Returning to dashboard in {seconds} seconds...", + "backToDashboard": "Back to Dashboard", "subscriptionTitle": "Subscription", "ccTitle": "Buy Cube Credit", "popular": "Popular", From 4bd2ce31688dc4c08349c5b4d182a3476d286ed5 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 18 Apr 2026 23:06:47 +0900 Subject: [PATCH 003/215] New translations web.json (Japanese) --- ja/web.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ja/web.json b/ja/web.json index 34ea75b..ddf917d 100644 --- a/ja/web.json +++ b/ja/web.json @@ -317,6 +317,9 @@ "selectDesc": "購入するサーバーを選んでください" }, "purchaseFlow": { + "purchaseSuccess": "ご購入ありがとうございます!", + "purchaseSuccessDesc": "{seconds}秒後にダッシュボードに戻ります...", + "backToDashboard": "ダッシュボードに戻る", "subscriptionTitle": "サブスクリプション", "ccTitle": "Cubeクレジットを購入", "popular": "人気", From 61e86d07d92e03942559ceb39046eb19f0133891 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 00:16:21 +0900 Subject: [PATCH 004/215] Update source file web.json --- en/web.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index fa79816..4463699 100644 --- a/en/web.json +++ b/en/web.json @@ -25,7 +25,8 @@ "notSet": "Not set", "buy": "Buy", "processing": "Processing...", - "soon": "Soon" + "soon": "Soon", + "back": "Back" }, "authBlocked": { "title": "Access blocked", @@ -317,6 +318,7 @@ "selectDesc": "Choose the server you want to purchase for" }, "purchaseFlow": { + "purchaseFailed": "The purchase is incomplete or the session is invalid.", "purchaseSuccess": "Thank you for your purchase!", "purchaseSuccessDesc": "Returning to dashboard in {seconds} seconds...", "backToDashboard": "Back to Dashboard", @@ -460,7 +462,11 @@ "changePlanChanging": "Changing...", "changePlanNote": "Changes will take effect from your next billing date.", "downgradeNotAllowed": "Downgrade is not allowed. Please cancel your current plan and resubscribe to a lower tier.", - "addNew": "Add new plan" + "addNew": "Add new plan", + "pagination": { + "prev": "Previous", + "next": "Next" + } }, "pricing": { "title": "Pricing", From b455c781d13a342d9239addfee8eb3c559ec3691 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 00:16:23 +0900 Subject: [PATCH 005/215] New translations web.json (Japanese) --- ja/web.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index ddf917d..c0ff7cf 100644 --- a/ja/web.json +++ b/ja/web.json @@ -25,7 +25,8 @@ "notSet": "未設定", "buy": "購入する", "processing": "処理中...", - "soon": "近日公開" + "soon": "近日公開", + "back": "戻る" }, "authBlocked": { "title": "アクセスが制限されています", @@ -317,6 +318,7 @@ "selectDesc": "購入するサーバーを選んでください" }, "purchaseFlow": { + "purchaseFailed": "購入処理が完了していないか、セッションが無効です。", "purchaseSuccess": "ご購入ありがとうございます!", "purchaseSuccessDesc": "{seconds}秒後にダッシュボードに戻ります...", "backToDashboard": "ダッシュボードに戻る", @@ -460,7 +462,11 @@ "changePlanChanging": "変更中...", "changePlanNote": "変更は次の請求日から適用されます。", "downgradeNotAllowed": "ダウングレードはできません。一度解約してから下位プランに再契約してください。", - "addNew": "新しいプランを追加" + "addNew": "新しいプランを追加", + "pagination": { + "prev": "前へ", + "next": "次へ" + } }, "pricing": { "title": "料金プラン", From 5afe29eba624b48317b0741febde9cae971607cd Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 11:06:47 +0900 Subject: [PATCH 006/215] Update source file web.json --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index 4463699..53cfc2c 100644 --- a/en/web.json +++ b/en/web.json @@ -1022,6 +1022,8 @@ "webhookNoToken": "Webhook token not yet generated. It will appear after saving.", "allVoiceChannels": "All Voice Channels", "webhookUrlCopy": "Copy URL", + "webhookRegenerateTitle": "Regenerate URL", + "webhookRegenerateConfirm": "Regenerating the Webhook URL will invalidate the current URL. Continue?", "webhookUrlCopied": "Copied!", "webhookUrlDesc": "Send a POST request to this URL to trigger the workflow. JSON body fields are available as '{{webhook.payload.key}}'." }, From d5b6c219fbf1ac5f98d38a67dfbfe0546907a1c2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 11:06:54 +0900 Subject: [PATCH 007/215] New translations web.json (Japanese) --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index c0ff7cf..a6b0e2e 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1022,6 +1022,8 @@ "webhookNoToken": "Webhookトークンはまだ生成されていません。保存後に表示されます。", "allVoiceChannels": "すべてのVCチャンネル", "webhookUrlCopy": "URLをコピー", + "webhookRegenerateTitle": "URLを再生成", + "webhookRegenerateConfirm": "Webhook URLを再生成すると、現在のURLは無効になります。続行しますか?", "webhookUrlCopied": "コピーしました", "webhookUrlDesc": "このURLにPOSTリクエストを送るとワークフローが起動します。JSONボディは '{{webhook.payload.key}}' で参照できます。" }, From 049cc367852e2457795f815823fe5ab97eb9d282 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 13:33:25 +0900 Subject: [PATCH 008/215] Update source file web.json --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index 53cfc2c..a24bf4a 100644 --- a/en/web.json +++ b/en/web.json @@ -1259,6 +1259,8 @@ "buttonCustomIdPlaceholder": "e.g. confirm-btn", "buttonModeCustomId": "Custom ID", "buttonModeLinked": "Link Workflow", + "buttonModeContinue": "Continue", + "buttonModeContinueHint": "Clicking this button continues the same workflow. Use {{button.label}} and {{button.index}} to identify which button was pressed.", "buttonLinkedWorkflow": "Linked Workflow", "buttonLinkedWorkflowHint": "Workflow to run when this button is clicked", "buttonLinkedWorkflowPlaceholder": "Select a workflow...", From 22b59776fa6e8af7a50cb600bb56ec0fff0e8454 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 13:33:32 +0900 Subject: [PATCH 009/215] New translations web.json (Japanese) --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index a6b0e2e..1da219d 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1259,6 +1259,8 @@ "buttonCustomIdPlaceholder": "例: confirm-btn", "buttonModeCustomId": "カスタムID", "buttonModeLinked": "ワークフローを連携する", + "buttonModeContinue": "続けて実行", + "buttonModeContinueHint": "このボタンが押されると、同じワークフローの続きが実行されます。{{button.label}} と {{button.index}} で押されたボタンを判別できます。", "buttonLinkedWorkflow": "ワークフローを連携しました", "buttonLinkedWorkflowHint": "ボタンがクリックされたときに実行するワークフロー", "buttonLinkedWorkflowPlaceholder": "ワークフローを選択...", From 3846cc76b2318062c4bb43d02a38549b8903aa0d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 14:35:08 +0900 Subject: [PATCH 010/215] Update source file web.json --- en/web.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index a24bf4a..5db07c0 100644 --- a/en/web.json +++ b/en/web.json @@ -1260,7 +1260,7 @@ "buttonModeCustomId": "Custom ID", "buttonModeLinked": "Link Workflow", "buttonModeContinue": "Continue", - "buttonModeContinueHint": "Clicking this button continues the same workflow. Use {{button.label}} and {{button.index}} to identify which button was pressed.", + "buttonModeContinueHint": "Clicking this button continues the same workflow. Use '{{button.label}}' and '{{button.index}}' to identify which button was pressed.", "buttonLinkedWorkflow": "Linked Workflow", "buttonLinkedWorkflowHint": "Workflow to run when this button is clicked", "buttonLinkedWorkflowPlaceholder": "Select a workflow...", From a2af6efc3e6aff3169832ca311ffaaea158bd398 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 14:35:10 +0900 Subject: [PATCH 011/215] New translations web.json (Japanese) --- ja/web.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 1da219d..10d693f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1260,7 +1260,7 @@ "buttonModeCustomId": "カスタムID", "buttonModeLinked": "ワークフローを連携する", "buttonModeContinue": "続けて実行", - "buttonModeContinueHint": "このボタンが押されると、同じワークフローの続きが実行されます。{{button.label}} と {{button.index}} で押されたボタンを判別できます。", + "buttonModeContinueHint": "このボタンが押されると、同じワークフローの続きが実行されます。'{{button.label}}' と '{{button.index}}' で押されたボタンを判別できます。", "buttonLinkedWorkflow": "ワークフローを連携しました", "buttonLinkedWorkflowHint": "ボタンがクリックされたときに実行するワークフロー", "buttonLinkedWorkflowPlaceholder": "ワークフローを選択...", From 4ace1234aafc0e2493e6894bbda0b923fa195842 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 21:52:27 +0900 Subject: [PATCH 012/215] Update source file web.json --- en/web.json | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/en/web.json b/en/web.json index 5db07c0..b9329dc 100644 --- a/en/web.json +++ b/en/web.json @@ -1348,5 +1348,160 @@ "executionCount": "{count} executions", "planViolationBadge": "Plan limit", "duplicateError": "Failed to duplicate workflow" + }, + "admin": { + "title": "Cube Admin", + "loggedInAs": "Logged in as", + "exitAdmin": "Back to Dashboard", + "cancel": "Cancel", + "create": "Create", + "save": "Save", + "saving": "Saving...", + "add": "Add", + "nav": { + "dashboard": "Dashboard", + "subscriptions": "Subscriptions", + "users": "Users", + "guilds": "Servers", + "blacklist": "Blacklist", + "economy": "Economy" + }, + "dashboard": { + "title": "System Status", + "desc": "Real-time shard monitoring and control", + "totalGuilds": "Total Guilds", + "avgPing": "Avg Ping", + "totalMemory": "Total Memory", + "shards": "Shards", + "refresh": "Refresh", + "noShards": "No shard data available", + "errorShards": "Failed to load shard status", + "leaveBtn": "Leave", + "reloadI18nBtn": "Reload i18n", + "restartAllBtn": "Restart All", + "confirmRestartAll": "Are you sure you want to restart ALL shards? This will disconnect all bots momentarily.", + "confirmRestartShard": "Are you sure you want to restart Shard {id}?", + "confirmReloadI18n": "Are you sure you want to reload translation files?", + "confirmLeaveGuild": "Are you sure you want to force leave guild {id}?", + "restartAllOk": "Restart sequence initiated", + "restartAllFail": "Failed to initiate restart", + "restartShardOk": "Shard {id} restart initiated", + "restartShardFail": "Failed to restart shard", + "reloadI18nOk": "Translations reloaded successfully", + "reloadI18nFail": "Failed to reload translations", + "leaveGuildOk": "Left guild {id}", + "leaveGuildFail": "Failed to leave guild" + }, + "subscriptions": { + "title": "Subscriptions", + "create": "Create", + "createTitle": "Create Subscription", + "searchPlaceholder": "Search by name, email or guild...", + "colUser": "User", + "colGuild": "Guild", + "colStatus": "Status", + "colExpiry": "Expires", + "extend": "Extend", + "extendOk": "Subscription extended", + "extendFail": "Failed to extend subscription", + "empty": "No subscriptions found", + "syncBtn": "Sync with Stripe", + "confirmSync": "Sync all subscriptions from Stripe to DB?", + "syncOk": "Synced {synced} subscriptions (errors: {errors})", + "syncFail": "Sync failed", + "cancelAtEnd": "cancels at period end" + }, + "blacklist": { + "title": "Blacklist", + "add": "Add", + "addTitle": "Add to Blacklist", + "addBtn": "Add", + "reason": "Reason", + "isBlacklisted": "Banned", + "isMuted": "GC Muted", + "searchPlaceholder": "Search by User ID or reason...", + "confirmRemove": "Remove user {userId} from blacklist?", + "removeOk": "Removed from blacklist", + "removeFail": "Failed to remove", + "empty": "Blacklist is empty" + }, + "guilds": { + "title": "Server List", + "searchPlaceholder": "Search by name or ID...", + "colName": "Server Name", + "confirmDelete": "Delete all data for {name}? This cannot be undone.", + "deleteOk": "Server data deleted", + "deleteFail": "Failed to delete", + "empty": "No servers found", + "syncBtn": "Sync Bot", + "confirmSync": "Sync servers the Bot has joined to the DB?", + "syncOk": "Synced {synced} servers", + "syncFail": "Sync failed", + "notFound": "Server not found", + "saveOk": "Settings saved", + "saveFail": "Failed to save", + "detailSettings": "Settings", + "detailLang": "Language", + "detailCreated": "Created", + "detailUpdated": "Updated", + "detailCredits": "Credits", + "creditPaid": "Paid", + "creditBonus": "Bonus", + "creditTotal": "Total", + "detailSubscription": "Subscription", + "noSubscription": "No subscription", + "detailExpiry": "Expires", + "detailFeatures": "Feature flags", + "addPurge": "Add Auto Purge", + "purgeDesc": "{msgLimit} msgs / every {interval} min", + "msgLimit": "Message Limit", + "msgs": "msgs", + "purgeInterval": "Purge Interval", + "min": "min", + "addReact": "Add Auto React", + "emoji": "Emoji", + "roleKeeperTitle": "Role Keeper", + "rkEnable": "Enable", + "rkEnableDesc": "Enable the Role Keeper module", + "rkExcludeAdmin": "Exclude admin roles", + "rkExcludeAdminDesc": "Skip roles with administrator permissions", + "rkExcludeMod": "Exclude mod roles", + "rkExcludeModDesc": "Skip roles with moderation permissions", + "addSticky": "Add Sticky Message", + "stickyContent": "Message Content", + "workflowTitle": "Workflows", + "noWorkflows": "No workflows found", + "execCount": "{count} executions", + "confirmDeleteWorkflow": "Delete this workflow? This cannot be undone." + }, + "economy": { + "title": "Economy Management", + "grantTitle": "Grant Credits", + "grantAllTitle": "Grant to All Servers", + "grantAllDesc": "Grant bonus credits to all active servers. A confirm key is required.", + "amount": "Amount", + "type": "Type", + "reason": "Reason", + "confirmKey": "Confirm Key", + "confirmGrantAll": "Grant {amount} CC to all servers?", + "confirmKeyMismatch": "Confirm key does not match", + "grantBtn": "Grant", + "grantAllBtn": "Grant to All", + "grantOk": "Credits granted", + "grantFail": "Failed to grant credits", + "grantAllOk": "Bulk grant executed", + "grantAllFail": "Failed to execute bulk grant" + }, + "users": { + "title": "User Lookup", + "searchPlaceholder": "Discord ID or User ID", + "searchBtn": "Search", + "notFound": "User not found", + "economyTitle": "Credit Balance", + "confirmDelete": "Delete all data for {name}? This cannot be undone.", + "deleteBtn": "Delete User", + "deleteOk": "User data deleted", + "deleteFail": "Failed to delete user" + } } } From e5acba6eb6fec72ce5eb7ac341b88c539cf4c125 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 19 Apr 2026 21:52:40 +0900 Subject: [PATCH 013/215] New translations web.json (Japanese) --- ja/web.json | 155 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 155 insertions(+) diff --git a/ja/web.json b/ja/web.json index 10d693f..b6b0526 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1348,5 +1348,160 @@ "executionCount": "{count} 回実行", "planViolationBadge": "プラン制限", "duplicateError": "複製に失敗しました" + }, + "admin": { + "title": "Cube Admin", + "loggedInAs": "ログイン中", + "exitAdmin": "ダッシュボードへ戻る", + "cancel": "キャンセル", + "create": "作成", + "save": "保存", + "saving": "保存中...", + "add": "追加", + "nav": { + "dashboard": "ダッシュボード", + "subscriptions": "サブスクリプション", + "users": "ユーザー", + "guilds": "サーバー", + "blacklist": "ブラックリスト", + "economy": "エコノミー" + }, + "dashboard": { + "title": "システム状況", + "desc": "シャードのリアルタイム監視と管理", + "totalGuilds": "総サーバー数", + "avgPing": "平均 Ping", + "totalMemory": "合計メモリ", + "shards": "シャード", + "refresh": "更新", + "noShards": "シャード情報がありません", + "errorShards": "シャード情報の取得に失敗しました", + "leaveBtn": "退出", + "reloadI18nBtn": "i18n 再読み込み", + "restartAllBtn": "全再起動", + "confirmRestartAll": "全シャードを再起動しますか?Botが一時的に切断されます。", + "confirmRestartShard": "Shard {id} を再起動しますか?", + "confirmReloadI18n": "翻訳ファイルを再読み込みしますか?", + "confirmLeaveGuild": "ギルド {id} から強制退出しますか?", + "restartAllOk": "全シャードの再起動を開始しました", + "restartAllFail": "再起動の開始に失敗しました", + "restartShardOk": "Shard {id} の再起動を開始しました", + "restartShardFail": "シャードの再起動に失敗しました", + "reloadI18nOk": "翻訳ファイルを再読み込みしました", + "reloadI18nFail": "再読み込みに失敗しました", + "leaveGuildOk": "ギルド {id} から退出しました", + "leaveGuildFail": "ギルドからの退出に失敗しました" + }, + "subscriptions": { + "title": "サブスクリプション", + "create": "作成", + "createTitle": "サブスクリプション作成", + "searchPlaceholder": "ユーザー名・メール・ギルド名で検索...", + "colUser": "ユーザー", + "colGuild": "ギルド", + "colStatus": "ステータス", + "colExpiry": "有効期限", + "extend": "期間延長", + "extendOk": "期間を延長しました", + "extendFail": "期間延長に失敗しました", + "empty": "サブスクリプションがありません", + "syncBtn": "Stripe同期", + "confirmSync": "StripeとDBのサブスクリプション情報を同期しますか?", + "syncOk": "{synced}件同期しました(エラー: {errors}件)", + "syncFail": "同期に失敗しました", + "cancelAtEnd": "期間終了時にキャンセル" + }, + "blacklist": { + "title": "ブラックリスト", + "add": "追加", + "addTitle": "ブラックリストに追加", + "addBtn": "追加", + "reason": "理由", + "isBlacklisted": "BAN", + "isMuted": "グロチャミュート", + "searchPlaceholder": "User ID・理由で検索...", + "confirmRemove": "ユーザー {userId} をブラックリストから削除しますか?", + "removeOk": "ブラックリストから削除しました", + "removeFail": "削除に失敗しました", + "empty": "ブラックリストが空です" + }, + "guilds": { + "title": "サーバー一覧", + "searchPlaceholder": "サーバー名・IDで検索...", + "colName": "サーバー名", + "confirmDelete": "{name} のデータを削除しますか?この操作は取り消せません。", + "deleteOk": "サーバーデータを削除しました", + "deleteFail": "削除に失敗しました", + "empty": "サーバーがありません", + "syncBtn": "Bot同期", + "confirmSync": "Botが参加しているサーバーをDBに同期しますか?", + "syncOk": "{synced} 件のサーバーを同期しました", + "syncFail": "同期に失敗しました", + "notFound": "サーバーが見つかりません", + "saveOk": "設定を保存しました", + "saveFail": "保存に失敗しました", + "detailSettings": "設定", + "detailLang": "言語", + "detailCreated": "作成日", + "detailUpdated": "更新日", + "detailCredits": "クレジット", + "creditPaid": "有料", + "creditBonus": "ボーナス", + "creditTotal": "合計", + "detailSubscription": "サブスクリプション", + "noSubscription": "サブスクリプションなし", + "detailExpiry": "有効期限", + "detailFeatures": "機能フラグ", + "addPurge": "Auto Purge 追加", + "purgeDesc": "{msgLimit}件 / {interval}分ごとに削除", + "msgLimit": "メッセージ上限", + "msgs": "件", + "purgeInterval": "削除間隔", + "min": "分", + "addReact": "Auto React 追加", + "emoji": "絵文字", + "roleKeeperTitle": "Role Keeper", + "rkEnable": "有効化", + "rkEnableDesc": "Role Keeper を有効にします", + "rkExcludeAdmin": "管理者権限を除外", + "rkExcludeAdminDesc": "管理者権限のあるロールの自動ロール保持を除外します", + "rkExcludeMod": "モデレーター権限を除外", + "rkExcludeModDesc": "モデレーター権限のあるロールの自動ロール保持を除外します", + "addSticky": "Sticky Message 追加", + "stickyContent": "メッセージ内容", + "workflowTitle": "ワークフロー", + "noWorkflows": "ワークフローがありません", + "execCount": "{count} 回実行", + "confirmDeleteWorkflow": "このワークフローを削除しますか?この操作は取り消せません。" + }, + "economy": { + "title": "エコノミー管理", + "grantTitle": "クレジット付与", + "grantAllTitle": "全サーバーへ一括付与", + "grantAllDesc": "稼働中の全サーバーへボーナスクレジットを付与します。確認キーの入力が必要です。", + "amount": "付与量", + "type": "種別", + "reason": "理由", + "confirmKey": "確認キー", + "confirmGrantAll": "{amount} CC を全サーバーへ付与しますか?", + "confirmKeyMismatch": "確認キーが一致しません", + "grantBtn": "付与する", + "grantAllBtn": "全サーバーへ付与", + "grantOk": "クレジットを付与しました", + "grantFail": "付与に失敗しました", + "grantAllOk": "一括付与を実行しました", + "grantAllFail": "一括付与に失敗しました" + }, + "users": { + "title": "ユーザー検索", + "searchPlaceholder": "Discord ID または User ID", + "searchBtn": "検索", + "notFound": "ユーザーが見つかりません", + "economyTitle": "クレジット残高", + "confirmDelete": "{name} の全データを削除しますか?この操作は取り消せません。", + "deleteBtn": "ユーザー削除", + "deleteOk": "ユーザーデータを削除しました", + "deleteFail": "削除に失敗しました" + } } } From 05b3ffa6ae9b82f815b679e6180b38e1f212c9e1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 20 Apr 2026 01:58:56 +0900 Subject: [PATCH 014/215] Update source file web.json --- en/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/en/web.json b/en/web.json index b9329dc..e7b5bb9 100644 --- a/en/web.json +++ b/en/web.json @@ -1437,6 +1437,10 @@ "confirmSync": "Sync servers the Bot has joined to the DB?", "syncOk": "Synced {synced} servers", "syncFail": "Sync failed", + "leaveBtn": "Leave", + "confirmLeave": "Remove the Bot from {name}?", + "leaveOk": "Bot left the server", + "leaveFail": "Failed to leave", "notFound": "Server not found", "saveOk": "Settings saved", "saveFail": "Failed to save", From 9f2f419593b8106d2691b1cb44479e90aeb3a408 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 20 Apr 2026 01:59:03 +0900 Subject: [PATCH 015/215] New translations web.json (Japanese) --- ja/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ja/web.json b/ja/web.json index b6b0526..792da03 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1437,6 +1437,10 @@ "confirmSync": "Botが参加しているサーバーをDBに同期しますか?", "syncOk": "{synced} 件のサーバーを同期しました", "syncFail": "同期に失敗しました", + "leaveBtn": "退出", + "confirmLeave": "{name} からBotを退出させますか?", + "leaveOk": "Botがサーバーから退出しました", + "leaveFail": "退出に失敗しました", "notFound": "サーバーが見つかりません", "saveOk": "設定を保存しました", "saveFail": "保存に失敗しました", From d8d057033925bdb8a29e4ea3a1e0b87f7b2141a4 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 20 Apr 2026 03:37:46 +0900 Subject: [PATCH 016/215] Update source file web.json --- en/web.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/en/web.json b/en/web.json index e7b5bb9..ea73f31 100644 --- a/en/web.json +++ b/en/web.json @@ -168,6 +168,11 @@ "messages": "Messages", "workflow": "Workflow" }, + "featureGate": { + "title": "This feature is not available", + "desc": "The corresponding plan or feature flag is required to use this page.", + "upgrade": "Upgrade plan" + }, "overview": { "desc": "Check your server status and available features", "balance": "Credit Balance", @@ -1456,6 +1461,8 @@ "noSubscription": "No subscription", "detailExpiry": "Expires", "detailFeatures": "Feature flags", + "featureFromPlan": "plan", + "featureRawValue": "Raw value", "addPurge": "Add Auto Purge", "purgeDesc": "{msgLimit} msgs / every {interval} min", "msgLimit": "Message Limit", From 2698c224162527be7195be384419186f024a8c73 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 20 Apr 2026 03:37:48 +0900 Subject: [PATCH 017/215] New translations web.json (Japanese) --- ja/web.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ja/web.json b/ja/web.json index 792da03..711d30f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -168,6 +168,11 @@ "messages": "メッセージ送信", "workflow": "ワークフロー" }, + "featureGate": { + "title": "この機能はご利用いただけません", + "desc": "このページの機能を使用するには、対応するプランまたは機能フラグが必要です。", + "upgrade": "プランをアップグレード" + }, "overview": { "desc": "サーバーの状態と利用可能な機能を確認できます", "balance": "クレジット残高", @@ -1456,6 +1461,8 @@ "noSubscription": "サブスクリプションなし", "detailExpiry": "有効期限", "detailFeatures": "機能フラグ", + "featureFromPlan": "プラン", + "featureRawValue": "フラグ値", "addPurge": "Auto Purge 追加", "purgeDesc": "{msgLimit}件 / {interval}分ごとに削除", "msgLimit": "メッセージ上限", From 2a7a387bbf3759b4042f82b1b26a627822853570 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 21 Apr 2026 19:12:51 +0900 Subject: [PATCH 018/215] Update source file web.json --- en/web.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index ea73f31..1dc48e0 100644 --- a/en/web.json +++ b/en/web.json @@ -1166,7 +1166,10 @@ "validationThreadChannelEmpty": "\"Create Thread\" nodes require a target channel.", "validationRenameChannelEmpty": "\"Rename Channel\" nodes require a channel and a new name.", "validationAccountAgeEmpty": "\"Account Age\" nodes require a minimum number of days.", - "validationVarKeyEmpty": "\"Variable Value\" nodes require a variable name." + "validationVarKeyEmpty": "\"Variable Value\" nodes require a variable name.", + "validationScheduledCronMissing": "Scheduled triggers require a cron expression (the cron field).", + "validationScheduledCronInvalid": "Invalid cron expression. Use standard 5-field format (e.g. */5 * * * *).", + "validationScheduledCronTooFrequent": "Minimum execution interval is 5 minutes (e.g. */5 * * * *)." }, "logs": { "empty": "No execution logs", From 7399dbb470395850cd2ccd8e72085dadcf237d78 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 21 Apr 2026 19:13:00 +0900 Subject: [PATCH 019/215] New translations web.json (Japanese) --- ja/web.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 711d30f..678bbe9 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1166,7 +1166,10 @@ "validationThreadChannelEmpty": "「スレッド作成」ノードには対象チャンネルが必要です。", "validationRenameChannelEmpty": "「チャンネル名変更」ノードにはチャンネルと新しい名前が必要です。", "validationAccountAgeEmpty": "「アカウント作成日数」ノードには最小日数が必要です。", - "validationVarKeyEmpty": "「変数の値」ノードには変数名が必要です。" + "validationVarKeyEmpty": "「変数の値」ノードには変数名が必要です。", + "validationScheduledCronMissing": "scheduledトリガーにはcron式(cron フィールド)の指定が必要です", + "validationScheduledCronInvalid": "無効なcron式です。標準の5フィールド形式(例: */5 * * * *)で指定してください", + "validationScheduledCronTooFrequent": "最短実行間隔は5分です(例: */5 * * * *)" }, "logs": { "empty": "実行ログがありません", From e5ff4b2bc90ebbbc7420a30dba981222f17e01ee Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 22 Apr 2026 01:20:08 +0900 Subject: [PATCH 020/215] Update source file web.json --- en/web.json | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 1dc48e0..54d0077 100644 --- a/en/web.json +++ b/en/web.json @@ -1013,6 +1013,36 @@ "messageDeleteTitle": "Message Delete Settings", "modalSubmitTitle": "Modal Submit Settings", "webhookReceiveTitle": "Webhook Receive Settings", + "rssPollTitle": "RSS Monitor Settings", + "youtubeWebsubTitle": "YouTube Post Notification Settings", + "twitchEventsubTitle": "Twitch Event Notification Settings", + "rssFeedUrl": "RSS Feed URL", + "rssFeedUrlHint": "Specify the RSS/Atom feed URL to monitor (http/https)", + "rssFeedUrlPlaceholder": "e.g. https://example.com/feed.xml", + "rssInterval": "Check Interval", + "rssIntervalHint": "Choose how often to check for new posts", + "rssIntervals": { + "5m": "Every 5 minutes", + "15m": "Every 15 minutes", + "30m": "Every 30 minutes", + "1h": "Every 1 hour", + "6h": "Every 6 hours", + "12h": "Every 12 hours", + "24h": "Every 24 hours" + }, + "youtubeChannelId": "YouTube Channel ID", + "youtubeChannelIdHint": "Specify the YouTube channel ID to receive notifications from", + "youtubeChannelIdPlaceholder": "e.g. UCxxxxxxxxxxxxxxxxxxxxxx", + "twitchBroadcasterUserId": "Twitch Broadcaster User ID", + "twitchBroadcasterUserIdHint": "Specify the broadcaster's numeric user ID", + "twitchBroadcasterUserIdPlaceholder": "e.g. 123456789", + "twitchSubscriptionTypes": "Event Types", + "twitchSubscriptionTypesHint": "Select which Twitch events should trigger the workflow", + "twitchSubscriptionTypeLabels": { + "stream_online": "Stream Online (stream.online)", + "stream_offline": "Stream Offline (stream.offline)", + "channel_update": "Channel Update (channel.update)" + }, "customIdFilter": "Custom ID (Optional)", "customIdFilterHint": "Only trigger for custom IDs starting with this value. Empty means all.", "customIdPlaceholder": "e.g. my-button", @@ -1099,6 +1129,18 @@ "webhook_receive": { "label": "Webhook Receive", "desc": "When a webhook request is received" + }, + "rss_poll": { + "label": "RSS Post", + "desc": "When a new item is published in the RSS feed" + }, + "youtube_websub": { + "label": "YouTube Post", + "desc": "When a new video is published on the channel" + }, + "twitch_eventsub": { + "label": "Twitch Event", + "desc": "When a selected Twitch event is received" } }, "conditions": { @@ -1169,7 +1211,15 @@ "validationVarKeyEmpty": "\"Variable Value\" nodes require a variable name.", "validationScheduledCronMissing": "Scheduled triggers require a cron expression (the cron field).", "validationScheduledCronInvalid": "Invalid cron expression. Use standard 5-field format (e.g. */5 * * * *).", - "validationScheduledCronTooFrequent": "Minimum execution interval is 5 minutes (e.g. */5 * * * *)." + "validationScheduledCronTooFrequent": "Minimum execution interval is 5 minutes (e.g. */5 * * * *).", + "validationRssFeedUrlMissing": "RSS triggers require a feed URL.", + "validationRssFeedUrlInvalid": "RSS feed URL must be a valid http:// or https:// URL.", + "validationRssIntervalInvalid": "RSS interval is invalid.", + "validationYoutubeChannelIdMissing": "YouTube triggers require a channel ID.", + "validationTwitchBroadcasterUserIdMissing": "Twitch triggers require a broadcaster user ID.", + "validationTwitchBroadcasterUserIdInvalid": "Broadcaster user ID must contain numbers only.", + "validationTwitchSubscriptionTypesMissing": "Select at least one Twitch subscription type.", + "validationTwitchSubscriptionTypeInvalid": "Twitch subscription types include an invalid value." }, "logs": { "empty": "No execution logs", From 972995cbf4d4cc9069486a3bc73debe7d6924dc1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 22 Apr 2026 01:20:19 +0900 Subject: [PATCH 021/215] New translations web.json (Japanese) --- ja/web.json | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 678bbe9..b6f7d3f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1013,6 +1013,36 @@ "messageDeleteTitle": "メッセージ削除設定", "modalSubmitTitle": "モーダル送信設定", "webhookReceiveTitle": "Webhook受信設定", + "rssPollTitle": "RSS監視設定", + "youtubeWebsubTitle": "YouTube投稿通知設定", + "twitchEventsubTitle": "Twitchイベント通知設定", + "rssFeedUrl": "RSSフィードURL", + "rssFeedUrlHint": "監視するRSS/AtomフィードのURLを指定します(http/https)", + "rssFeedUrlPlaceholder": "例: https://example.com/feed.xml", + "rssInterval": "確認間隔", + "rssIntervalHint": "新着投稿の確認頻度を選択します", + "rssIntervals": { + "5m": "5分ごと", + "15m": "15分ごと", + "30m": "30分ごと", + "1h": "1時間ごと", + "6h": "6時間ごと", + "12h": "12時間ごと", + "24h": "24時間ごと" + }, + "youtubeChannelId": "YouTubeチャンネルID", + "youtubeChannelIdHint": "通知を受け取りたいYouTubeチャンネルのIDを指定します", + "youtubeChannelIdPlaceholder": "例: UCxxxxxxxxxxxxxxxxxxxxxx", + "twitchBroadcasterUserId": "Twitch配信者ユーザーID", + "twitchBroadcasterUserIdHint": "通知を受け取りたい配信者の数値ユーザーIDを指定します", + "twitchBroadcasterUserIdPlaceholder": "例: 123456789", + "twitchSubscriptionTypes": "通知タイプ", + "twitchSubscriptionTypesHint": "受け取りたいTwitchイベントを選択します", + "twitchSubscriptionTypeLabels": { + "stream_online": "配信開始 (stream.online)", + "stream_offline": "配信終了 (stream.offline)", + "channel_update": "チャンネル更新 (channel.update)" + }, "customIdFilter": "カスタムID(任意)", "customIdFilterHint": "特定のカスタムIDから始まるものだけを対象にします。空欄で全て対象", "customIdPlaceholder": "例: my-button", @@ -1099,6 +1129,18 @@ "webhook_receive": { "label": "Webhook受信", "desc": "Webhookリクエストを受信したとき" + }, + "rss_poll": { + "label": "RSS投稿", + "desc": "RSSフィードに新着記事が追加されたとき" + }, + "youtube_websub": { + "label": "YouTube投稿", + "desc": "指定チャンネルに新しい動画が公開されたとき" + }, + "twitch_eventsub": { + "label": "Twitchイベント", + "desc": "Twitchの指定イベントを受信したとき" } }, "conditions": { @@ -1169,7 +1211,15 @@ "validationVarKeyEmpty": "「変数の値」ノードには変数名が必要です。", "validationScheduledCronMissing": "scheduledトリガーにはcron式(cron フィールド)の指定が必要です", "validationScheduledCronInvalid": "無効なcron式です。標準の5フィールド形式(例: */5 * * * *)で指定してください", - "validationScheduledCronTooFrequent": "最短実行間隔は5分です(例: */5 * * * *)" + "validationScheduledCronTooFrequent": "最短実行間隔は5分です(例: */5 * * * *)", + "validationRssFeedUrlMissing": "RSSトリガーにはフィードURLの指定が必要です。", + "validationRssFeedUrlInvalid": "RSSフィードURLは http:// または https:// で始まる有効なURLを指定してください。", + "validationRssIntervalInvalid": "RSSの実行間隔が不正です。", + "validationYoutubeChannelIdMissing": "YouTubeトリガーにはチャンネルIDの指定が必要です。", + "validationTwitchBroadcasterUserIdMissing": "Twitchトリガーには配信者ユーザーIDの指定が必要です。", + "validationTwitchBroadcasterUserIdInvalid": "配信者ユーザーIDは数字のみで指定してください。", + "validationTwitchSubscriptionTypesMissing": "Twitchトリガーには少なくとも1つの購読タイプが必要です。", + "validationTwitchSubscriptionTypeInvalid": "Twitchの購読タイプに不正な値が含まれています。" }, "logs": { "empty": "実行ログがありません", From ce3f5614ffb358ab8ea6cc605df01a28c16ff777 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 22 Apr 2026 03:06:06 +0900 Subject: [PATCH 022/215] Update source file web.json --- en/web.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index 54d0077..a5cb92b 100644 --- a/en/web.json +++ b/en/web.json @@ -471,7 +471,11 @@ "pagination": { "prev": "Previous", "next": "Next" - } + }, + "syncBtn": "Sync with Stripe", + "syncOk": "Subscription info synced successfully", + "syncFail": "Sync failed", + "syncNote": "If your subscription isn't showing up correctly, you can manually sync with Stripe using the button above" }, "pricing": { "title": "Pricing", @@ -1467,7 +1471,9 @@ "confirmSync": "Sync all subscriptions from Stripe to DB?", "syncOk": "Synced {synced} subscriptions (errors: {errors})", "syncFail": "Sync failed", - "cancelAtEnd": "cancels at period end" + "cancelAtEnd": "cancels at period end", + "syncUserPlaceholder": "User ID", + "confirmSyncUser": "Sync subscription info for user {userId}?" }, "blacklist": { "title": "Blacklist", From a2d5dbb6f56cf17de97bab31eed9b315d91079e1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 22 Apr 2026 03:06:13 +0900 Subject: [PATCH 023/215] New translations web.json (Japanese) --- ja/web.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index b6f7d3f..b491924 100644 --- a/ja/web.json +++ b/ja/web.json @@ -471,7 +471,11 @@ "pagination": { "prev": "前へ", "next": "次へ" - } + }, + "syncBtn": "情報を最新化", + "syncOk": "サブスクリプション情報を同期しました", + "syncFail": "同期に失敗しました", + "syncNote": "Stripeのデータと同期が取れていない場合は、上のボタンで手動同期できます" }, "pricing": { "title": "料金プラン", @@ -1467,7 +1471,9 @@ "confirmSync": "StripeとDBのサブスクリプション情報を同期しますか?", "syncOk": "{synced}件同期しました(エラー: {errors}件)", "syncFail": "同期に失敗しました", - "cancelAtEnd": "期間終了時にキャンセル" + "cancelAtEnd": "期間終了時にキャンセル", + "syncUserPlaceholder": "User ID", + "confirmSyncUser": "ユーザー {userId} のサブスクリプション情報を同期しますか?" }, "blacklist": { "title": "ブラックリスト", From b3ae91ca974ab6cc20a56cae10aea950421909e6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 22 Apr 2026 12:14:02 +0900 Subject: [PATCH 024/215] Update source file web.json --- en/web.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index a5cb92b..0261c02 100644 --- a/en/web.json +++ b/en/web.json @@ -472,10 +472,10 @@ "prev": "Previous", "next": "Next" }, - "syncBtn": "Sync with Stripe", + "syncBtn": "Sync Subscription", "syncOk": "Subscription info synced successfully", "syncFail": "Sync failed", - "syncNote": "If your subscription isn't showing up correctly, you can manually sync with Stripe using the button above" + "syncNote": "If your purchased subscription isn't showing up, click the sync button to fetch the latest info" }, "pricing": { "title": "Pricing", From ade46fc305dc7a1d9e8541c91f7283c680522d5a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 22 Apr 2026 12:14:11 +0900 Subject: [PATCH 025/215] New translations web.json (Japanese) --- ja/web.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index b491924..7e33f86 100644 --- a/ja/web.json +++ b/ja/web.json @@ -472,10 +472,10 @@ "prev": "前へ", "next": "次へ" }, - "syncBtn": "情報を最新化", + "syncBtn": "サブスクリプションを同期", "syncOk": "サブスクリプション情報を同期しました", "syncFail": "同期に失敗しました", - "syncNote": "Stripeのデータと同期が取れていない場合は、上のボタンで手動同期できます" + "syncNote": "購入済みのサブスクリプションが表示されない場合は、同期ボタンで最新情報を取得できます" }, "pricing": { "title": "料金プラン", From 602ef940326807432c16850858068b5353a420b1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 27 Apr 2026 23:46:04 +0900 Subject: [PATCH 026/215] Update source file web.json --- en/web.json | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 0261c02..fd55cb8 100644 --- a/en/web.json +++ b/en/web.json @@ -166,7 +166,8 @@ "manageSubscription": "Manage Subscription", "logout": "Log Out", "messages": "Messages", - "workflow": "Workflow" + "workflow": "Workflow", + "automod": "Moderation" }, "featureGate": { "title": "This feature is not available", @@ -1573,5 +1574,71 @@ "deleteOk": "User data deleted", "deleteFail": "Failed to delete user" } + }, + "automod": { + "title": "Auto Moderation", + "desc": "Configure AutoMod, AntiRaid, and JoinGate settings", + "automodSection": "AutoMod", + "automodDesc": "Automatically detects and responds to spam and suspicious messages", + "enabled": "Enabled", + "disabled": "Disabled", + "heatPresetLabel": "Heat Preset", + "heatPresetDesc": "Adjust sensitivity to violations and the strength of sanctions", + "lenientLabel": "Lenient", + "lenientDesc": "Tolerates minor violations", + "standardLabel": "Standard", + "standardDesc": "Balanced default configuration", + "strictLabel": "Strict", + "strictDesc": "Responds quickly to even minor violations", + "logChannelLabel": "Log Channel", + "logChannelDesc": "Channel to receive moderation action notifications", + "noChannel": "No channel", + "quarantineRoleLabel": "Quarantine Role", + "quarantineRoleDesc": "Role assigned to quarantined users", + "noRole": "No role", + "panicModeLabel": "Panic Mode", + "panicModeDesc": "When enabled, significantly lowers the action threshold for all users", + "antiNukeSection": "AntiNuke", + "antiNukeDesc": "Detects and responds to destructive server actions (channel deletion, mass bans, etc.)", + "antiNukeChannelDeleteLabel": "Channel delete", + "antiNukeRoleDeleteLabel": "Role delete", + "antiNukeWebhookCreateLabel": "Webhook create", + "antiNukeBanKickLabel": "Ban/Kick", + "antiNukeRoleGrantLabel": "Role grant", + "antiNukeLimitSuffix": "actions trigger", + "antiNukeWindowSuffix": "sec window", + "antiRaidSection": "AntiRaid", + "antiRaidDesc": "Detects and responds to raid attacks (mass joins)", + "antiRaidJoinRateLabel": "Join Rate Limit", + "antiRaidJoinRateDesc": "Triggers raid detection when this many users join within the time window", + "antiRaidWindowLabel": "Join Window (seconds)", + "antiRaidAccountAgeLabel": "Account Age (days)", + "antiRaidAccountAgeDesc": "Accounts newer than this many days add to the raid score", + "joinGateSection": "JoinGate", + "joinGateDesc": "Quarantines and requires verification from suspicious new joiners", + "joinGateFilterNoAvatarLabel": "Filter Default Avatars", + "joinGateFilterNoAvatarDesc": "Quarantine accounts with no profile picture", + "joinGateFilterNewAccountLabel": "Filter New Accounts (days)", + "joinGateFilterNewAccountDesc": "Quarantine accounts newer than this many days. 0 to disable", + "joinGateFilterAdvertisingLabel": "Filter Advertising Accounts", + "joinGateFilterAdvertisingDesc": "Quarantine accounts with invite links or banned URLs in their profile", + "powGateSection": "PoW Gate (Human Verification)", + "powGateDesc": "Require Cloudflare Turnstile human verification to prevent bots and raiders", + "powGateAllUsersLabel": "Apply to All New Members", + "powGateAllUsersDesc": "When off, only targets users who triggered JoinGate filters", + "powGateRoleLabel": "Restricted Role", + "powGateRoleDesc": "Role assigned before verification (automatically removed after success)", + "powGateChannelLabel": "Verification Channel", + "powGateChannelDesc": "Fallback channel when DM fails (permissions auto-adjusted on save)", + "powGateTimeoutLabel": "Timeout", + "powGateTimeoutDesc": "Minutes before auto-kicking unverified users (0 to disable)", + "minutes": "min", + "save": "Save", + "saving": "Saving...", + "saved": "Saved", + "saveError": "Failed to save", + "days": "days", + "people": "people", + "seconds": "sec" } } From 92c073fe9c55f09c2b071486d7e1b82bf69fe28c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 27 Apr 2026 23:46:13 +0900 Subject: [PATCH 027/215] New translations web.json (Japanese) --- ja/web.json | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 7e33f86..b6364e5 100644 --- a/ja/web.json +++ b/ja/web.json @@ -166,7 +166,8 @@ "manageSubscription": "サブスクリプション管理", "logout": "ログアウト", "messages": "メッセージ送信", - "workflow": "ワークフロー" + "workflow": "ワークフロー", + "automod": "統合モデレーション" }, "featureGate": { "title": "この機能はご利用いただけません", @@ -1573,5 +1574,71 @@ "deleteOk": "ユーザーデータを削除しました", "deleteFail": "削除に失敗しました" } + }, + "automod": { + "title": "自動モデレーション", + "desc": "AutoMod・AntiRaid・JoinGate の設定を行います", + "automodSection": "AutoMod", + "automodDesc": "スパムや不審なメッセージを自動検知・対応します", + "enabled": "有効", + "disabled": "無効", + "heatPresetLabel": "熱量プリセット", + "heatPresetDesc": "違反への感度と制裁の強さを調整します", + "lenientLabel": "緩め", + "lenientDesc": "軽微な違反は許容", + "standardLabel": "標準", + "standardDesc": "バランスの取れたデフォルト", + "strictLabel": "厳格", + "strictDesc": "軽い違反にも即対応", + "logChannelLabel": "ログチャンネル", + "logChannelDesc": "モデレーションアクションを通知するチャンネル", + "noChannel": "チャンネルなし", + "quarantineRoleLabel": "隔離ロール", + "quarantineRoleDesc": "隔離対象ユーザーに付与するロール", + "noRole": "ロールなし", + "panicModeLabel": "パニックモード", + "panicModeDesc": "有効時、全ユーザーへの制裁閾値を大幅に下げます", + "antiNukeSection": "AntiNuke", + "antiNukeDesc": "サーバーへの破壊的な操作(チャンネル削除・一括BAN等)を検知・対応します", + "antiNukeChannelDeleteLabel": "チャンネル削除", + "antiNukeRoleDeleteLabel": "ロール削除", + "antiNukeWebhookCreateLabel": "Webhook作成", + "antiNukeBanKickLabel": "BAN/Kick", + "antiNukeRoleGrantLabel": "ロール一括付与", + "antiNukeLimitSuffix": "回で発動", + "antiNukeWindowSuffix": "秒以内", + "antiRaidSection": "AntiRaid", + "antiRaidDesc": "レイド攻撃(大量参加)を検知・対応します", + "antiRaidJoinRateLabel": "参加レート上限", + "antiRaidJoinRateDesc": "設定した時間内にこの人数以上が参加するとレイドと判定します", + "antiRaidWindowLabel": "参加ウィンドウ(秒)", + "antiRaidAccountAgeLabel": "アカウント年齢(日)", + "antiRaidAccountAgeDesc": "この日数未満のアカウントはレイドスコアが加算されます", + "joinGateSection": "JoinGate", + "joinGateDesc": "不審な条件に合致した新規参加者を隔離・認証させます", + "joinGateFilterNoAvatarLabel": "デフォルトアバターをフィルター", + "joinGateFilterNoAvatarDesc": "プロフィール画像を設定していないアカウントを隔離", + "joinGateFilterNewAccountLabel": "新規アカウントをフィルター(日数)", + "joinGateFilterNewAccountDesc": "指定日数未満のアカウントを隔離。0で無効", + "joinGateFilterAdvertisingLabel": "広告アカウントをフィルター", + "joinGateFilterAdvertisingDesc": "プロフィールに招待リンク等を含むアカウントを隔離", + "powGateSection": "PoW Gate(人間証明)", + "powGateDesc": "Cloudflare Turnstileで人間確認を要求し、BOTや荒らしを防ぐ", + "powGateAllUsersLabel": "全新規メンバーに適用", + "powGateAllUsersDesc": "オフ時はJoinGateフィルターに引っかかったユーザーのみ対象", + "powGateRoleLabel": "制限ロール", + "powGateRoleDesc": "認証前のユーザーに付与するロール(認証後に自動削除)", + "powGateChannelLabel": "認証チャンネル", + "powGateChannelDesc": "DMが届かない場合の案内チャンネル(設定時に自動権限調整)", + "powGateTimeoutLabel": "タイムアウト", + "powGateTimeoutDesc": "認証未完了ユーザーを自動キックするまでの時間(0で無効)", + "minutes": "分", + "save": "保存", + "saving": "保存中...", + "saved": "保存しました", + "saveError": "保存に失敗しました", + "days": "日", + "people": "人", + "seconds": "秒" } } From 2ec0608e06510284776e8971cc99e0e21b8fa34c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 1 May 2026 11:05:35 +0900 Subject: [PATCH 028/215] Update source file web.json [ci skip] --- en/web.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/en/web.json b/en/web.json index fd55cb8..e95de26 100644 --- a/en/web.json +++ b/en/web.json @@ -1633,6 +1633,31 @@ "powGateTimeoutLabel": "Timeout", "powGateTimeoutDesc": "Minutes before auto-kicking unverified users (0 to disable)", "minutes": "min", + "messages": "msgs", + "automodRules": "Rule Settings", + "quarantineSetupBanner": "Quarantine Role Not Configured", + "quarantineSetupBannerDesc": "Moderation features are enabled but the quarantine role is not set up. Click the button to have the bot auto-create the role and configure channel permissions.", + "quarantineSetupBtn": "Setup Now", + "quarantineSetupRequesting": "Setting up...", + "quarantineSetupDone": "Setup requested. Changes will apply in a few seconds.", + "ruleSpam": "Spam", + "ruleSpamDesc": "Detect rate limit violations within a time window", + "ruleMentionSpam": "Mention Spam", + "ruleMentionSpamDesc": "Detect mass mentions per message or cumulative in window", + "ruleInviteLink": "Invite Links", + "ruleInviteLinkDesc": "Detect unauthorized Discord invite URLs", + "ruleEmojiSpam": "Emoji Spam", + "ruleEmojiSpamDesc": "Detect messages exceeding the emoji count limit", + "ruleCharSpam": "Character Spam", + "ruleCharSpamDesc": "Detect repeated characters or Zalgo text", + "ruleUrlScan": "URL Scanning", + "ruleUrlScanDesc": "Expand short URLs → check with Safe Browsing API", + "ruleImageHash": "Image Hash", + "ruleImageHashDesc": "Match against known spam/NSFW images (pHash)", + "ruleCrossChannel": "Cross-Channel", + "ruleCrossChannelDesc": "Detect similar posts across multiple channels in short time", + "rulePhishing": "Phishing", + "rulePhishingDesc": "Detect known phishing domains and scam URL patterns", "save": "Save", "saving": "Saving...", "saved": "Saved", From d41a2b37b1658582695b6ee044396e95b4b49a6b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 1 May 2026 11:05:41 +0900 Subject: [PATCH 029/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/ja/web.json b/ja/web.json index b6364e5..38e6023 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1633,6 +1633,31 @@ "powGateTimeoutLabel": "タイムアウト", "powGateTimeoutDesc": "認証未完了ユーザーを自動キックするまでの時間(0で無効)", "minutes": "分", + "messages": "件", + "automodRules": "ルール設定", + "quarantineSetupBanner": "隔離ロールが未セットアップです", + "quarantineSetupBannerDesc": "モデレーション機能が有効ですが、隔離ロールが設定されていません。ボタンを押すとBotが自動でロール作成・チャンネル権限設定を行います。", + "quarantineSetupBtn": "今すぐセットアップ", + "quarantineSetupRequesting": "セットアップ中...", + "quarantineSetupDone": "セットアップをリクエストしました。数秒後に反映されます。", + "ruleSpam": "スパム", + "ruleSpamDesc": "一定時間内のレート超過を検知", + "ruleMentionSpam": "メンションスパム", + "ruleMentionSpamDesc": "1メッセージ内の大量メンション・時間内累積を検知", + "ruleInviteLink": "招待リンク", + "ruleInviteLinkDesc": "無断の Discord 招待URLを検知", + "ruleEmojiSpam": "絵文字スパム", + "ruleEmojiSpamDesc": "1メッセージ内の絵文字数が上限を超えた場合に検知", + "ruleCharSpam": "文字スパム", + "ruleCharSpamDesc": "同一文字の連続・Zalgoテキストを検知", + "ruleUrlScan": "URLスキャン", + "ruleUrlScanDesc": "短縮URL展開 → Safe Browsing APIで悪意あるURLを検知", + "ruleImageHash": "画像ハッシュ", + "ruleImageHashDesc": "既知スパム・NSFW画像の照合(pHash)", + "ruleCrossChannel": "クロスチャンネル", + "ruleCrossChannelDesc": "短時間に複数チャンネルへの類似投稿を検知", + "rulePhishing": "フィッシング", + "rulePhishingDesc": "既知フィッシングドメイン・詐欺URLパターンを検知", "save": "保存", "saving": "保存中...", "saved": "保存しました", From 3914493787d02a482e16bf036b4b809bf1856570 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 2 May 2026 21:47:38 +0900 Subject: [PATCH 030/215] Update source file web.json [ci skip] --- en/web.json | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/en/web.json b/en/web.json index e95de26..c001ae9 100644 --- a/en/web.json +++ b/en/web.json @@ -1640,14 +1640,12 @@ "quarantineSetupBtn": "Setup Now", "quarantineSetupRequesting": "Setting up...", "quarantineSetupDone": "Setup requested. Changes will apply in a few seconds.", - "ruleSpam": "Spam", - "ruleSpamDesc": "Detect rate limit violations within a time window", "ruleMentionSpam": "Mention Spam", - "ruleMentionSpamDesc": "Detect mass mentions per message or cumulative in window", + "ruleMentionSpamDesc": "Adds heat for @user / @role / @here / @everyone mentions", "ruleInviteLink": "Invite Links", "ruleInviteLinkDesc": "Detect unauthorized Discord invite URLs", "ruleEmojiSpam": "Emoji Spam", - "ruleEmojiSpamDesc": "Detect messages exceeding the emoji count limit", + "ruleEmojiSpamDesc": "+1% per emoji, capped at +20% per message", "ruleCharSpam": "Character Spam", "ruleCharSpamDesc": "Detect repeated characters or Zalgo text", "ruleUrlScan": "URL Scanning", @@ -1658,6 +1656,25 @@ "ruleCrossChannelDesc": "Detect similar posts across multiple channels in short time", "rulePhishing": "Phishing", "rulePhishingDesc": "Detect known phishing domains and scam URL patterns", + "ruleBlacklistWord": "Blacklist Words", + "ruleBlacklistWordDesc": "Add heat to messages containing admin-configured words", + "blacklistWordAdd": "Add Word", + "blacklistWordPlaceholder": "Enter forbidden word", + "blacklistWordHeat": "Heat Value", + "blacklistWordHeatHelp": "1–100 (default 30%)", + "ruleInactiveChannel": "Inactive Channel Post", + "ruleInactiveChannelDesc": "Add +3% heat for posting in channels with no recent activity", + "inactiveChannelThreshold": "Inactivity threshold (minutes)", + "suspicionTriggers": "Suspicion Triggers", + "suspicionTriggersDesc": "Detect suspicious signals (new account, default avatar, etc.) and assign Suspicion Level", + "newAccountDays": "New account threshold (days)", + "newAccountDaysHelp": "Assign Suspicion Lv1 to accounts younger than N days", + "timezone": "Moderation Timezone", + "timezoneDesc": "Timezone for night-time policy shift (e.g. Asia/Tokyo)", + "spamHashManagement": "Known Spam Image Hashes", + "spamHashAdd": "Add Hash", + "spamHashPlaceholder": "dHash bit string (64 chars)", + "spamHashLabelPlaceholder": "Label (optional)", "save": "Save", "saving": "Saving...", "saved": "Saved", From ffe47ab7ea43382235e6c88bb8afe2f1cf62401b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 2 May 2026 21:47:43 +0900 Subject: [PATCH 031/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/ja/web.json b/ja/web.json index 38e6023..ad1bb4f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1640,14 +1640,12 @@ "quarantineSetupBtn": "今すぐセットアップ", "quarantineSetupRequesting": "セットアップ中...", "quarantineSetupDone": "セットアップをリクエストしました。数秒後に反映されます。", - "ruleSpam": "スパム", - "ruleSpamDesc": "一定時間内のレート超過を検知", "ruleMentionSpam": "メンションスパム", - "ruleMentionSpamDesc": "1メッセージ内の大量メンション・時間内累積を検知", + "ruleMentionSpamDesc": "@user / @role / @here / @everyone のメンションをheatとして加算", "ruleInviteLink": "招待リンク", "ruleInviteLinkDesc": "無断の Discord 招待URLを検知", "ruleEmojiSpam": "絵文字スパム", - "ruleEmojiSpamDesc": "1メッセージ内の絵文字数が上限を超えた場合に検知", + "ruleEmojiSpamDesc": "絵文字1個につき+1%(上限20%/メッセージ)", "ruleCharSpam": "文字スパム", "ruleCharSpamDesc": "同一文字の連続・Zalgoテキストを検知", "ruleUrlScan": "URLスキャン", @@ -1658,6 +1656,25 @@ "ruleCrossChannelDesc": "短時間に複数チャンネルへの類似投稿を検知", "rulePhishing": "フィッシング", "rulePhishingDesc": "既知フィッシングドメイン・詐欺URLパターンを検知", + "ruleBlacklistWord": "ブラックリストワード", + "ruleBlacklistWordDesc": "管理者が設定したワードを含むメッセージにheatを加算", + "blacklistWordAdd": "ワードを追加", + "blacklistWordPlaceholder": "禁止ワードを入力", + "blacklistWordHeat": "Heat値", + "blacklistWordHeatHelp": "1〜100(デフォルト30%)", + "ruleInactiveChannel": "非活性チャンネルへの投稿", + "ruleInactiveChannelDesc": "長時間投稿がなかったチャンネルへの投稿に+3%を加算", + "inactiveChannelThreshold": "非活性判定時間(分)", + "suspicionTriggers": "Suspicionトリガー", + "suspicionTriggersDesc": "新規アカウント・デフォルトアバター等の不審シグナルを検知しSuspicion Levelを付与", + "newAccountDays": "新規アカウント判定(日数)", + "newAccountDaysHelp": "作成からN日未満のアカウントにSuspicion Lv1を付与", + "timezone": "モデレーションタイムゾーン", + "timezoneDesc": "夜間ポリシーシフトに使用するタイムゾーン(例: Asia/Tokyo)", + "spamHashManagement": "既知スパム画像ハッシュ管理", + "spamHashAdd": "ハッシュを追加", + "spamHashPlaceholder": "dHashビット列(64文字)", + "spamHashLabelPlaceholder": "ラベル(任意)", "save": "保存", "saving": "保存中...", "saved": "保存しました", From 6f6914861fe41153d047e36c941c5b7ee38309f6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 3 May 2026 02:32:21 +0900 Subject: [PATCH 032/215] Update source file bot.json [ci skip] --- en/bot.json | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/en/bot.json b/en/bot.json index b5f95c2..e88aaac 100644 --- a/en/bot.json +++ b/en/bot.json @@ -548,6 +548,16 @@ "delete": { "success": "Deleted sticky message." } + }, + "sus": { + "added": "✅ Granted Suspicion Level {level} to <@{userId}>.", + "removed": "✅ Removed Suspicion Level from <@{userId}>." + }, + "report": { + "self_error": "You cannot report yourself.", + "default_reason": "Report", + "reporter_prefix": "Reported by: {moderatorTag} — {reason}", + "success": "✅ Reported <@{userId}>. A moderator will review it shortly." } }, "info": { @@ -932,5 +942,70 @@ "thread_update": "Thread Updated", "thread_delete": "Thread Deleted" } + }, + "moderation": { + "mod_log": { + "title": "🚨 Moderation Action", + "body": "**User:** <@{userId}> ({userTag})\n**Action(s):** {actions}\n**Reason:** {reason}", + "default_reason": "Automod Action", + "btn_ban": "BAN", + "btn_kick": "Kick", + "btn_unquarantine": "False Positive (Release)" + }, + "warn": { + "dm_title": "⚠️ Warning", + "dm_body": "You have received a warning from **{guildName}**'s auto-moderation. Please review the server rules." + }, + "notify_owner": { + "dm_title": "⚠️ Owner Notification", + "dm_body": "**Server:** {guildName}\n**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n\nThis user had a high trust score so a 24-hour timeout was applied. Please review manually." + }, + "appeal_dm": { + "quarantine_title": "⚠️ Quarantine Applied", + "timeout_title": "⚠️ Timeout Applied", + "body": "**Server:** {guildName}\n\nAuto-moderation has applied a {label} to your account. If you believe this is a false positive, you can submit an appeal using the button below.", + "quarantine_label": "Quarantine", + "timeout_label": "Timeout", + "btn_appeal": "Submit Appeal" + }, + "appeal_modal": { + "title": "Submit Appeal", + "reason_label": "Reason for Appeal", + "reason_placeholder": "Please describe why you believe this action was a false positive.", + "success": "✅ Your appeal has been submitted. A moderator will review it shortly.", + "log_title": "📩 Appeal Received", + "log_body": "**Appellant:** <@{userId}> ({userTag})\n**Message:**\n{reason}" + }, + "mod_ban": { + "success": "Successfully banned user <@{userId}>.", + "failed": "Failed to ban user <@{userId}>.", + "reason": "Banned by {moderatorTag} via Mod-Log" + }, + "mod_kick": { + "success": "Successfully kicked user <@{userId}>.", + "failed": "Failed to kick user <@{userId}>.", + "reason": "Kicked by {moderatorTag} via Mod-Log" + }, + "mod_unquarantine": { + "not_found": "Failed to find quarantine snapshot for user <@{userId}>.", + "not_in_server": "User <@{userId}> is no longer in the server.", + "success": "Successfully unquarantined user <@{userId}> and restored roles.", + "failed": "Failed to unquarantine user <@{userId}>." + }, + "join_gate": { + "dm_title": "🔒 Verification Required", + "dm_body": "Verification is required to join **{guildName}**.\n\n[Click here to verify]({verifyUrl})\n\nThis link is valid for **10 minutes**.", + "channel_fallback": "<@{userId}> Verification is required. Click the button below to get your verification link." + }, + "pow_gate": { + "channel_title": "🔒 Verification Required", + "channel_body": "Verification is required to join this server.\nClick the button below to get your verification link.", + "channel_note": "-# Verification link is valid for 10 minutes", + "btn_label": "Get Verification Link", + "no_guild": "Failed to retrieve verification information.", + "no_settings": "Verification settings not found.", + "not_needed": "Verification is not required.", + "link_reply": "Please verify using the following link (**valid for 10 minutes**):\n{verifyUrl}" + } } } From 536bac19fb35ce7257f009a6b01a9505c144541a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 3 May 2026 02:32:29 +0900 Subject: [PATCH 033/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 5c9bc05..380483a 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -548,6 +548,16 @@ "delete": { "success": "ピン留めメッセージを削除しました。" } + }, + "sus": { + "added": "✅ <@{userId}> に Suspicion Level {level} を付与しました。", + "removed": "✅ <@{userId}> の Suspicion Level を解除しました。" + }, + "report": { + "self_error": "自分自身を通報することはできません。", + "default_reason": "通報", + "reporter_prefix": "通報者: {moderatorTag} — {reason}", + "success": "✅ <@{userId}> を通報しました。モデレーターが確認します。" } }, "info": { @@ -932,5 +942,70 @@ "thread_update": "スレッド更新", "thread_delete": "スレッド削除" } + }, + "moderation": { + "mod_log": { + "title": "🚨 Moderation Action", + "body": "**User:** <@{userId}> ({userTag})\n**Action(s):** {actions}\n**Reason:** {reason}", + "default_reason": "Automod Action", + "btn_ban": "BAN", + "btn_kick": "Kick", + "btn_unquarantine": "誤検知(解除) / Unquarantine" + }, + "warn": { + "dm_title": "⚠️ 警告", + "dm_body": "**{guildName}** の自動モデレーションにより警告を受けました。サーバーのルールを確認してください。" + }, + "notify_owner": { + "dm_title": "⚠️ 管理者通知", + "dm_body": "**サーバー:** {guildName}\n**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n\nこのユーザーは信頼スコアが高いため24時間タイムアウトを適用しました。手動確認してください。" + }, + "appeal_dm": { + "quarantine_title": "⚠️ 隔離(Quarantine)が適用されました", + "timeout_title": "⚠️ タイムアウトが適用されました", + "body": "**サーバー:** {guildName}\n\n自動モデレーションにより {label} が適用されました。誤検知と思われる場合は、下のボタンから異議申し立てができます。", + "quarantine_label": "隔離(Quarantine)", + "timeout_label": "タイムアウト", + "btn_appeal": "異議申し立て" + }, + "appeal_modal": { + "title": "異議申し立て", + "reason_label": "申し立ての理由", + "reason_placeholder": "誤検知と思われる理由や状況を詳しく入力してください。", + "success": "✅ 異議申し立てを受け付けました。モデレーターが確認次第、対応します。", + "log_title": "📩 異議申し立て", + "log_body": "**申立人:** <@{userId}> ({userTag})\n**内容:**\n{reason}" + }, + "mod_ban": { + "success": "ユーザー <@{userId}> をBANしました。", + "failed": "ユーザー <@{userId}> のBANに失敗しました。", + "reason": "{moderatorTag} が Mod-Log からBANしました" + }, + "mod_kick": { + "success": "ユーザー <@{userId}> をKickしました。", + "failed": "ユーザー <@{userId}> のKickに失敗しました。", + "reason": "{moderatorTag} が Mod-Log からKickしました" + }, + "mod_unquarantine": { + "not_found": "ユーザー <@{userId}> の隔離スナップショットが見つかりません。", + "not_in_server": "ユーザー <@{userId}> はすでにサーバーにいません。", + "success": "ユーザー <@{userId}> の隔離を解除し、ロールを復元しました。", + "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。" + }, + "join_gate": { + "dm_title": "🔒 認証が必要です", + "dm_body": "**{guildName}** に参加するには認証が必要です。\n\n[こちらをクリックして認証してください]({verifyUrl})\n\nリンクは **10分間** 有効です。", + "channel_fallback": "<@{userId}> 認証が必要です。下のボタンをクリックして認証リンクを取得してください。" + }, + "pow_gate": { + "channel_title": "🔒 認証が必要です", + "channel_body": "このサーバーに参加するには認証が必要です。\n下のボタンをクリックして認証リンクを取得してください。", + "channel_note": "-# 認証リンクは10分間有効です", + "btn_label": "認証リンクを取得", + "no_guild": "認証情報を取得できませんでした。", + "no_settings": "認証設定が見つかりません。", + "not_needed": "認証は不要です。", + "link_reply": "以下のリンクから認証してください(**10分間有効**):\n{verifyUrl}" + } } } From 928371b913975d9970738520ca7d5e292afa3cac Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 03:09:57 +0900 Subject: [PATCH 034/215] Update source file web.json [ci skip] --- en/web.json | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/en/web.json b/en/web.json index c001ae9..a5a190a 100644 --- a/en/web.json +++ b/en/web.json @@ -1665,12 +1665,9 @@ "ruleInactiveChannel": "Inactive Channel Post", "ruleInactiveChannelDesc": "Add +3% heat for posting in channels with no recent activity", "inactiveChannelThreshold": "Inactivity threshold (minutes)", - "suspicionTriggers": "Suspicion Triggers", - "suspicionTriggersDesc": "Detect suspicious signals (new account, default avatar, etc.) and assign Suspicion Level", - "newAccountDays": "New account threshold (days)", - "newAccountDaysHelp": "Assign Suspicion Lv1 to accounts younger than N days", - "timezone": "Moderation Timezone", - "timezoneDesc": "Timezone for night-time policy shift (e.g. Asia/Tokyo)", + "nightTimeRange": "Night Hours (UTC)", + "nightTimeRangeDesc": "Severity threshold is lowered during this window (night-time policy)", + "nightTimeRangeTo": "to", "spamHashManagement": "Known Spam Image Hashes", "spamHashAdd": "Add Hash", "spamHashPlaceholder": "dHash bit string (64 chars)", @@ -1681,6 +1678,32 @@ "saveError": "Failed to save", "days": "days", "people": "people", - "seconds": "sec" + "seconds": "sec", + "alwaysOnRulesWhitelist": "Always-on Rule Exemptions", + "ruleMessageSend": "Message Send", + "ruleMessageSendDesc": "Every message sent (+2% always)", + "ruleMessageRepeat": "Repeated Messages", + "ruleMessageRepeatDesc": "Content similar to the previous message (+8% always)", + "ruleAttachment": "Attachments", + "ruleAttachmentDesc": "Image and file attachments (+4% each, always)", + "whitelistSection": "Whitelist", + "whitelistUsers": "Exempt Users", + "whitelistRoles": "Exempt Roles", + "whitelistChannels": "Exempt Channels", + "whitelistAddPlaceholder": "Enter ID", + "whitelistEmpty": "No exemptions set", + "mastersSection": "Moderation Admins (Master)", + "mastersDesc": "Users who can modify moderation settings (independent of Discord admin permissions)", + "trustedSection": "Exempt Users (Trusted)", + "trustedDesc": "Users exempt from Heat, AI, AntiNuke and other enforcement actions", + "addMaster": "Add Master", + "addTrusted": "Add Trusted", + "userIdPlaceholder": "Discord UserID", + "remove": "Remove", + "permissionDenied": "You don't have Master permission to change settings", + "exemptHeatLane": "Heat Lane Exempt", + "exemptAiLane": "AI Lane Exempt", + "exemptAntinuke": "AntiNuke Exempt", + "exemptAntiraid": "AntiRaid Exempt" } } From dae66f30f6e7b2c0df7a1add8a367f503d98e42b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 03:10:02 +0900 Subject: [PATCH 035/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/ja/web.json b/ja/web.json index ad1bb4f..a550efd 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1665,12 +1665,9 @@ "ruleInactiveChannel": "非活性チャンネルへの投稿", "ruleInactiveChannelDesc": "長時間投稿がなかったチャンネルへの投稿に+3%を加算", "inactiveChannelThreshold": "非活性判定時間(分)", - "suspicionTriggers": "Suspicionトリガー", - "suspicionTriggersDesc": "新規アカウント・デフォルトアバター等の不審シグナルを検知しSuspicion Levelを付与", - "newAccountDays": "新規アカウント判定(日数)", - "newAccountDaysHelp": "作成からN日未満のアカウントにSuspicion Lv1を付与", - "timezone": "モデレーションタイムゾーン", - "timezoneDesc": "夜間ポリシーシフトに使用するタイムゾーン(例: Asia/Tokyo)", + "nightTimeRange": "夜間時間帯(UTC)", + "nightTimeRangeDesc": "この時間帯は深刻度閾値が低く設定される(夜間ポリシー)", + "nightTimeRangeTo": "〜", "spamHashManagement": "既知スパム画像ハッシュ管理", "spamHashAdd": "ハッシュを追加", "spamHashPlaceholder": "dHashビット列(64文字)", @@ -1681,6 +1678,32 @@ "saveError": "保存に失敗しました", "days": "日", "people": "人", - "seconds": "秒" + "seconds": "秒", + "alwaysOnRulesWhitelist": "常時適用ルールの除外設定", + "ruleMessageSend": "メッセージ送信", + "ruleMessageSendDesc": "すべてのメッセージ送信ごとに +2%(常時適用)", + "ruleMessageRepeat": "繰り返しメッセージ", + "ruleMessageRepeatDesc": "直前と類似した内容の繰り返し送信に +8%(常時適用)", + "ruleAttachment": "添付ファイル", + "ruleAttachmentDesc": "画像・ファイルの添付ごとに +4%(常時適用)", + "whitelistSection": "ホワイトリスト", + "whitelistUsers": "ユーザー除外", + "whitelistRoles": "ロール除外", + "whitelistChannels": "チャンネル除外", + "whitelistAddPlaceholder": "IDを入力", + "whitelistEmpty": "除外設定なし", + "mastersSection": "モデレーション管理者(Master)", + "mastersDesc": "統合モデレーション設定を変更できるユーザー(Discord管理者権限とは独立)", + "trustedSection": "免除ユーザー(Trusted)", + "trustedDesc": "Heat・AI・AntiNukeなどの処罰アクションを免除するユーザー", + "addMaster": "Masterを追加", + "addTrusted": "Trustedを追加", + "userIdPlaceholder": "Discord UserID", + "remove": "削除", + "permissionDenied": "Master権限がないため設定を変更できません", + "exemptHeatLane": "Heatレーン免除", + "exemptAiLane": "AIレーン免除", + "exemptAntinuke": "AntiNuke免除", + "exemptAntiraid": "AntiRaid免除" } } From 4347ca928c53e7566fa7a3a7d31b4956bcd194e8 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 13:17:14 +0900 Subject: [PATCH 036/215] Update source file bot.json [ci skip] --- en/bot.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index e88aaac..194e51d 100644 --- a/en/bot.json +++ b/en/bot.json @@ -963,11 +963,15 @@ "appeal_dm": { "quarantine_title": "⚠️ Quarantine Applied", "timeout_title": "⚠️ Timeout Applied", - "body": "**Server:** {guildName}\n\nAuto-moderation has applied a {label} to your account. If you believe this is a false positive, you can submit an appeal using the button below.", + "body": "**Server:** {guildName}\n**Reason:** {reason}\n\nAuto-moderation has applied a {label} to your account. If you believe this is a false positive, you can submit an appeal using the button below.", "quarantine_label": "Quarantine", "timeout_label": "Timeout", "btn_appeal": "Submit Appeal" }, + "notify": { + "channel_title": "🚨 Auto Moderation", + "channel_body": "Applied punishment to <@{userId}>.\n**Action:** {action}\n**Reason:** {reason}" + }, "appeal_modal": { "title": "Submit Appeal", "reason_label": "Reason for Appeal", From 069897f693861dad746faa344c9b628e2c148aa3 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 13:17:19 +0900 Subject: [PATCH 037/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index 380483a..955ea2a 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -963,11 +963,15 @@ "appeal_dm": { "quarantine_title": "⚠️ 隔離(Quarantine)が適用されました", "timeout_title": "⚠️ タイムアウトが適用されました", - "body": "**サーバー:** {guildName}\n\n自動モデレーションにより {label} が適用されました。誤検知と思われる場合は、下のボタンから異議申し立てができます。", + "body": "**サーバー:** {guildName}\n**理由:** {reason}\n\n自動モデレーションにより {label} が適用されました。誤検知と思われる場合は、下のボタンから異議申し立てができます。", "quarantine_label": "隔離(Quarantine)", "timeout_label": "タイムアウト", "btn_appeal": "異議申し立て" }, + "notify": { + "channel_title": "🚨 自動モデレーション", + "channel_body": "<@{userId}> に対して処罰を実施しました。\n**処罰:** {action}\n**理由:** {reason}" + }, "appeal_modal": { "title": "異議申し立て", "reason_label": "申し立ての理由", From 395d851e60d2b35c11d9721922b374dadb0f09ec Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 14:22:49 +0900 Subject: [PATCH 038/215] Update source file bot.json [ci skip] --- en/bot.json | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 194e51d..40f2c17 100644 --- a/en/bot.json +++ b/en/bot.json @@ -891,7 +891,11 @@ "message_content": "Message Content", "before_embed_preview": "Embed Before Edit", "after_embed_preview": "Embed After Edit", - "removed": "Removed" + "removed": "Removed", + "embeds_deleted_threaded": "Deleted message embeds (see thread for details)", + "embed_deleted_thread_name": "deleted-embed-{id}", + "embed_deleted_thread_intro": "This thread stores the embed preview of the deleted message.", + "deleted_embed_preview": "Deleted Embed" }, "events": { "guild_update": "Server Updated", @@ -977,6 +981,7 @@ "reason_label": "Reason for Appeal", "reason_placeholder": "Please describe why you believe this action was a false positive.", "success": "✅ Your appeal has been submitted. A moderator will review it shortly.", + "already_submitted": "❌ You have already submitted an appeal. Please wait for a moderator to review it.", "log_title": "📩 Appeal Received", "log_body": "**Appellant:** <@{userId}> ({userTag})\n**Message:**\n{reason}" }, @@ -1010,6 +1015,39 @@ "no_settings": "Verification settings not found.", "not_needed": "Verification is not required.", "link_reply": "Please verify using the following link (**valid for 10 minutes**):\n{verifyUrl}" + }, + "actions": { + "QUARANTINE": "Quarantine", + "TIMEOUT_1H": "1 Hour Timeout", + "TIMEOUT_24H": "24 Hour Timeout", + "DELETE_MESSAGE": "Message Deletion", + "WARN": "Warning", + "SEND_TO_REVIEW_QUEUE": "Send to Manual Review", + "ADD_SUSPICION_LEVEL_1": "Add Suspicion Level 1", + "NOTIFY_OWNER": "Notify Owner", + "MARK_COHORT_SUSPICION_LV2": "Add Cohort Suspicion Level 2" + }, + "rules": { + "MESSAGE_SEND": "Sending Messages", + "MESSAGE_REPEAT": "Repeating Same Message", + "LINE_BREAK_SPAM": "Line Break Spam", + "ATTACHMENT": "Sending Attachments", + "EMOJI": "Emoji Spam", + "ZALGO": "Zalgo Text", + "LONG_TEXT": "Sending Long Text", + "URL": "Sending URLs", + "MENTION_USER": "User Mentions", + "MENTION_ROLE": "Role Mentions", + "MENTION_HERE": "Here Mention", + "MENTION_EVERYONE": "Everyone Mention", + "INVITATION": "Invite Link", + "PHISHING": "Phishing Link", + "IMAGE_HASH": "Inappropriate Image", + "CROSS_CHANNEL": "Cross-channel Spam", + "BLACKLIST_WORD": "Blacklisted Word", + "INACTIVE_CHANNEL": "Posting in Inactive Channel", + "NSFW_URL": "NSFW Link", + "ANTINUKE": "Anti-Nuke Detection" } } } From 6e1d7266078e50b25e2ecaa750f48eddf96de1d7 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 14:22:50 +0900 Subject: [PATCH 039/215] Update source file web.json [ci skip] --- en/web.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index a5a190a..43474af 100644 --- a/en/web.json +++ b/en/web.json @@ -1665,7 +1665,7 @@ "ruleInactiveChannel": "Inactive Channel Post", "ruleInactiveChannelDesc": "Add +3% heat for posting in channels with no recent activity", "inactiveChannelThreshold": "Inactivity threshold (minutes)", - "nightTimeRange": "Night Hours (UTC)", + "nightTimeRange": "Night Hours (JST)", "nightTimeRangeDesc": "Severity threshold is lowered during this window (night-time policy)", "nightTimeRangeTo": "to", "spamHashManagement": "Known Spam Image Hashes", From f48bd0758e7e55666579d2ee8cb6f2fa5bd922cb Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 14:23:04 +0900 Subject: [PATCH 040/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index 955ea2a..1cdf71a 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -891,7 +891,11 @@ "message_content": "メッセージ内容", "before_embed_preview": "編集前Embed", "after_embed_preview": "編集後Embed", - "removed": "削除" + "removed": "削除", + "embeds_deleted_threaded": "削除されたメッセージのEmbed(詳細はスレッド)", + "embed_deleted_thread_name": "deleted-embed-{id}", + "embed_deleted_thread_intro": "このスレッドには削除されたメッセージのEmbedプレビューが保存されています。", + "deleted_embed_preview": "削除前Embed" }, "events": { "guild_update": "サーバー設定更新", @@ -977,6 +981,7 @@ "reason_label": "申し立ての理由", "reason_placeholder": "誤検知と思われる理由や状況を詳しく入力してください。", "success": "✅ 異議申し立てを受け付けました。モデレーターが確認次第、対応します。", + "already_submitted": "❌ 異議申し立てはすでに送信済みです。モデレーターの確認をお待ちください。", "log_title": "📩 異議申し立て", "log_body": "**申立人:** <@{userId}> ({userTag})\n**内容:**\n{reason}" }, @@ -1010,6 +1015,39 @@ "no_settings": "認証設定が見つかりません。", "not_needed": "認証は不要です。", "link_reply": "以下のリンクから認証してください(**10分間有効**):\n{verifyUrl}" + }, + "actions": { + "QUARANTINE": "隔離(Quarantine)", + "TIMEOUT_1H": "1時間のタイムアウト", + "TIMEOUT_24H": "24時間のタイムアウト", + "DELETE_MESSAGE": "メッセージ削除", + "WARN": "警告", + "SEND_TO_REVIEW_QUEUE": "手動レビューへ送信", + "ADD_SUSPICION_LEVEL_1": "監視レベル1追加", + "NOTIFY_OWNER": "オーナー通知", + "MARK_COHORT_SUSPICION_LV2": "連座制による監視レベル2付与" + }, + "rules": { + "MESSAGE_SEND": "メッセージの連続送信", + "MESSAGE_REPEAT": "同一メッセージの反復", + "LINE_BREAK_SPAM": "改行スパム", + "ATTACHMENT": "添付ファイル送信", + "EMOJI": "絵文字スパム", + "ZALGO": "Zalgoテキスト", + "LONG_TEXT": "長文送信", + "URL": "URL送信", + "MENTION_USER": "ユーザーメンション", + "MENTION_ROLE": "ロールメンション", + "MENTION_HERE": "Hereメンション", + "MENTION_EVERYONE": "Everyoneメンション", + "INVITATION": "招待リンク", + "PHISHING": "フィッシングリンク", + "IMAGE_HASH": "不適切画像", + "CROSS_CHANNEL": "複数チャンネルへのスパム", + "BLACKLIST_WORD": "禁止ワード", + "INACTIVE_CHANNEL": "非アクティブチャンネルへの投稿", + "NSFW_URL": "NSFWリンク", + "ANTINUKE": "破壊行為(Anti-Nuke)の検出" } } } From 7c0e612a9598e95a36427199a9f8914a35f5cede Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 14:23:05 +0900 Subject: [PATCH 041/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index a550efd..8a0bb1f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1665,7 +1665,7 @@ "ruleInactiveChannel": "非活性チャンネルへの投稿", "ruleInactiveChannelDesc": "長時間投稿がなかったチャンネルへの投稿に+3%を加算", "inactiveChannelThreshold": "非活性判定時間(分)", - "nightTimeRange": "夜間時間帯(UTC)", + "nightTimeRange": "夜間時間帯(JST)", "nightTimeRangeDesc": "この時間帯は深刻度閾値が低く設定される(夜間ポリシー)", "nightTimeRangeTo": "〜", "spamHashManagement": "既知スパム画像ハッシュ管理", From 682080c76423eb687159572bb6142876f42fbed6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 20:19:37 +0900 Subject: [PATCH 042/215] Update source file web.json [ci skip] --- en/web.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 43474af..35d7ff2 100644 --- a/en/web.json +++ b/en/web.json @@ -1576,8 +1576,14 @@ } }, "automod": { - "title": "Auto Moderation", + "title": "Unified Moderation", "desc": "Configure AutoMod, AntiRaid, and JoinGate settings", + "tabFilters": "Filters", + "tabProtection": "Protection", + "tabVerification": "Verification", + "tabPermissions": "Permissions", + "tabWhitelist": "Whitelists", + "whitelistDesc": "Configure users, roles, and channels to be exempt from each rule", "automodSection": "AutoMod", "automodDesc": "Automatically detects and responds to spam and suspicious messages", "enabled": "Enabled", @@ -1640,6 +1646,9 @@ "quarantineSetupBtn": "Setup Now", "quarantineSetupRequesting": "Setting up...", "quarantineSetupDone": "Setup requested. Changes will apply in a few seconds.", + "setupBtn": "Setup", + "requesting": "Processing...", + "setupDone": "Done", "ruleMentionSpam": "Mention Spam", "ruleMentionSpamDesc": "Adds heat for @user / @role / @here / @everyone mentions", "ruleInviteLink": "Invite Links", From 8a2ea24eaaf5a31d482f7ed389b6f131a2000d4c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 20:19:45 +0900 Subject: [PATCH 043/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 8a0bb1f..25e6d04 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1576,8 +1576,14 @@ } }, "automod": { - "title": "自動モデレーション", + "title": "統合モデレーション", "desc": "AutoMod・AntiRaid・JoinGate の設定を行います", + "tabFilters": "フィルター", + "tabProtection": "保護", + "tabVerification": "認証", + "tabPermissions": "権限", + "tabWhitelist": "除外設定", + "whitelistDesc": "特定のユーザー、ロール、チャンネルを各ルールの対象外に設定します", "automodSection": "AutoMod", "automodDesc": "スパムや不審なメッセージを自動検知・対応します", "enabled": "有効", @@ -1640,6 +1646,9 @@ "quarantineSetupBtn": "今すぐセットアップ", "quarantineSetupRequesting": "セットアップ中...", "quarantineSetupDone": "セットアップをリクエストしました。数秒後に反映されます。", + "setupBtn": "セットアップ", + "requesting": "処理中...", + "setupDone": "完了", "ruleMentionSpam": "メンションスパム", "ruleMentionSpamDesc": "@user / @role / @here / @everyone のメンションをheatとして加算", "ruleInviteLink": "招待リンク", From 1780a64ba8696cadac018d9186e387dd71fb783f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 22:44:17 +0900 Subject: [PATCH 044/215] Update source file bot.json [ci skip] --- en/bot.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/bot.json b/en/bot.json index 40f2c17..94762de 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1018,6 +1018,7 @@ }, "actions": { "QUARANTINE": "Quarantine", + "UNQUARANTINE": "Unquarantine", "TIMEOUT_1H": "1 Hour Timeout", "TIMEOUT_24H": "24 Hour Timeout", "DELETE_MESSAGE": "Message Deletion", From 0502121941718a631f5ee628f4697f97ce25acf5 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 22:44:18 +0900 Subject: [PATCH 045/215] Update source file web.json [ci skip] --- en/web.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/en/web.json b/en/web.json index 35d7ff2..044a410 100644 --- a/en/web.json +++ b/en/web.json @@ -1640,6 +1640,9 @@ "powGateTimeoutDesc": "Minutes before auto-kicking unverified users (0 to disable)", "minutes": "min", "messages": "msgs", + "limit": "Limit", + "window": "Window", + "age": "Age", "automodRules": "Rule Settings", "quarantineSetupBanner": "Quarantine Role Not Configured", "quarantineSetupBannerDesc": "Moderation features are enabled but the quarantine role is not set up. Click the button to have the bot auto-create the role and configure channel permissions.", From ab8338057939a8e557076dc36c633cf1f57c5f04 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 22:44:33 +0900 Subject: [PATCH 046/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 1cdf71a..dc75fbe 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -949,12 +949,12 @@ }, "moderation": { "mod_log": { - "title": "🚨 Moderation Action", - "body": "**User:** <@{userId}> ({userTag})\n**Action(s):** {actions}\n**Reason:** {reason}", - "default_reason": "Automod Action", + "title": "🚨 モデレーション実行", + "body": "**対象:** <@{userId}> ({userTag})\n**実施アクション:** {actions}\n**理由:** {reason}", + "default_reason": "自動モデレーションによる処罰", "btn_ban": "BAN", - "btn_kick": "Kick", - "btn_unquarantine": "誤検知(解除) / Unquarantine" + "btn_kick": "キック", + "btn_unquarantine": "誤検知(隔離解除)" }, "warn": { "dm_title": "⚠️ 警告", @@ -1018,6 +1018,7 @@ }, "actions": { "QUARANTINE": "隔離(Quarantine)", + "UNQUARANTINE": "隔離解除", "TIMEOUT_1H": "1時間のタイムアウト", "TIMEOUT_24H": "24時間のタイムアウト", "DELETE_MESSAGE": "メッセージ削除", From f551cd12010cd715e9f475271ff7627202fa8fd1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 22:44:35 +0900 Subject: [PATCH 047/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ja/web.json b/ja/web.json index 25e6d04..41ade67 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1640,6 +1640,9 @@ "powGateTimeoutDesc": "認証未完了ユーザーを自動キックするまでの時間(0で無効)", "minutes": "分", "messages": "件", + "limit": "上限", + "window": "期間", + "age": "年齢", "automodRules": "ルール設定", "quarantineSetupBanner": "隔離ロールが未セットアップです", "quarantineSetupBannerDesc": "モデレーション機能が有効ですが、隔離ロールが設定されていません。ボタンを押すとBotが自動でロール作成・チャンネル権限設定を行います。", From 333fa1275867993bd02dac18afc1e5288cdf41ab Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 23:39:36 +0900 Subject: [PATCH 048/215] Update source file bot.json [ci skip] --- en/bot.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/en/bot.json b/en/bot.json index 94762de..824b6ec 100644 --- a/en/bot.json +++ b/en/bot.json @@ -550,8 +550,9 @@ } }, "sus": { - "added": "✅ Granted Suspicion Level {level} to <@{userId}>.", - "removed": "✅ Removed Suspicion Level from <@{userId}>." + "added": "✅ Added Suspicion Level {level} to <@{userId}>.", + "removed": "✅ Removed Suspicion Level from <@{userId}>.", + "already_exists": "User <@{userId}> is already in that state or the action was skipped." }, "report": { "self_error": "You cannot report yourself.", @@ -999,7 +1000,8 @@ "not_found": "Failed to find quarantine snapshot for user <@{userId}>.", "not_in_server": "User <@{userId}> is no longer in the server.", "success": "Successfully unquarantined user <@{userId}> and restored roles.", - "failed": "Failed to unquarantine user <@{userId}>." + "failed": "Failed to unquarantine user <@{userId}>.", + "already_exists": "User <@{userId}> is not currently quarantined." }, "join_gate": { "dm_title": "🔒 Verification Required", @@ -1048,7 +1050,8 @@ "BLACKLIST_WORD": "Blacklisted Word", "INACTIVE_CHANNEL": "Posting in Inactive Channel", "NSFW_URL": "NSFW Link", - "ANTINUKE": "Anti-Nuke Detection" + "ANTINUKE": "Anti-Nuke Detection", + "ANTINUKE_ROLE_GRANT": "Granted dangerous permissions to a role" } } } From 9840fbc1efc0ffde0ff3c6ca5bbaad737535aae0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 4 May 2026 23:39:42 +0900 Subject: [PATCH 049/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index dc75fbe..09e6879 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -551,7 +551,8 @@ }, "sus": { "added": "✅ <@{userId}> に Suspicion Level {level} を付与しました。", - "removed": "✅ <@{userId}> の Suspicion Level を解除しました。" + "removed": "✅ <@{userId}> の Suspicion Level を解除しました。", + "already_exists": "ユーザー <@{userId}> はすでにその状態であるか、処罰をスキップしました。" }, "report": { "self_error": "自分自身を通報することはできません。", @@ -999,7 +1000,8 @@ "not_found": "ユーザー <@{userId}> の隔離スナップショットが見つかりません。", "not_in_server": "ユーザー <@{userId}> はすでにサーバーにいません。", "success": "ユーザー <@{userId}> の隔離を解除し、ロールを復元しました。", - "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。" + "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。", + "already_exists": "ユーザー <@{userId}> は現在隔離されていません。" }, "join_gate": { "dm_title": "🔒 認証が必要です", @@ -1048,7 +1050,8 @@ "BLACKLIST_WORD": "禁止ワード", "INACTIVE_CHANNEL": "非アクティブチャンネルへの投稿", "NSFW_URL": "NSFWリンク", - "ANTINUKE": "破壊行為(Anti-Nuke)の検出" + "ANTINUKE": "破壊行為(Anti-Nuke)の検出", + "ANTINUKE_ROLE_GRANT": "ロールへの危険な権限の付与" } } } From e0ca017f5f70200f16b64ad7f65bafb63080a017 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 01:09:28 +0900 Subject: [PATCH 050/215] Update source file web.json [ci skip] --- en/web.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index 044a410..4453dd9 100644 --- a/en/web.json +++ b/en/web.json @@ -1602,7 +1602,7 @@ "quarantineRoleLabel": "Quarantine Role", "quarantineRoleDesc": "Role assigned to quarantined users", "noRole": "No role", - "panicModeLabel": "Panic Mode", + "panicModeLabel": "Emergency Mode", "panicModeDesc": "When enabled, significantly lowers the action threshold for all users", "antiNukeSection": "AntiNuke", "antiNukeDesc": "Detects and responds to destructive server actions (channel deletion, mass bans, etc.)", @@ -1676,7 +1676,7 @@ "blacklistWordHeatHelp": "1–100 (default 30%)", "ruleInactiveChannel": "Inactive Channel Post", "ruleInactiveChannelDesc": "Add +3% heat for posting in channels with no recent activity", - "inactiveChannelThreshold": "Inactivity threshold (minutes)", + "inactiveChannelThreshold": "Inactivity threshold (days)", "nightTimeRange": "Night Hours (JST)", "nightTimeRangeDesc": "Severity threshold is lowered during this window (night-time policy)", "nightTimeRangeTo": "to", From 9ff7f9c8267c38e89ebb2e8b74cd1dd1932a87c0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 01:09:38 +0900 Subject: [PATCH 051/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ja/web.json b/ja/web.json index 41ade67..9d93427 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1413,7 +1413,7 @@ "duplicateError": "複製に失敗しました" }, "admin": { - "title": "Cube Admin", + "title": "Cube 管理者", "loggedInAs": "ログイン中", "exitAdmin": "ダッシュボードへ戻る", "cancel": "キャンセル", @@ -1473,7 +1473,7 @@ "syncOk": "{synced}件同期しました(エラー: {errors}件)", "syncFail": "同期に失敗しました", "cancelAtEnd": "期間終了時にキャンセル", - "syncUserPlaceholder": "User ID", + "syncUserPlaceholder": "ユーザーID", "confirmSyncUser": "ユーザー {userId} のサブスクリプション情報を同期しますか?" }, "blacklist": { @@ -1531,7 +1531,7 @@ "min": "分", "addReact": "Auto React 追加", "emoji": "絵文字", - "roleKeeperTitle": "Role Keeper", + "roleKeeperTitle": "ロールキーパー", "rkEnable": "有効化", "rkEnableDesc": "Role Keeper を有効にします", "rkExcludeAdmin": "管理者権限を除外", @@ -1602,7 +1602,7 @@ "quarantineRoleLabel": "隔離ロール", "quarantineRoleDesc": "隔離対象ユーザーに付与するロール", "noRole": "ロールなし", - "panicModeLabel": "パニックモード", + "panicModeLabel": "エマージェンシーモード", "panicModeDesc": "有効時、全ユーザーへの制裁閾値を大幅に下げます", "antiNukeSection": "AntiNuke", "antiNukeDesc": "サーバーへの破壊的な操作(チャンネル削除・一括BAN等)を検知・対応します", @@ -1674,9 +1674,9 @@ "blacklistWordPlaceholder": "禁止ワードを入力", "blacklistWordHeat": "Heat値", "blacklistWordHeatHelp": "1〜100(デフォルト30%)", - "ruleInactiveChannel": "非活性チャンネルへの投稿", + "ruleInactiveChannel": "活発でないチャンネルへの投稿", "ruleInactiveChannelDesc": "長時間投稿がなかったチャンネルへの投稿に+3%を加算", - "inactiveChannelThreshold": "非活性判定時間(分)", + "inactiveChannelThreshold": "非活性判定時間(日)", "nightTimeRange": "夜間時間帯(JST)", "nightTimeRangeDesc": "この時間帯は深刻度閾値が低く設定される(夜間ポリシー)", "nightTimeRangeTo": "〜", @@ -1710,7 +1710,7 @@ "trustedDesc": "Heat・AI・AntiNukeなどの処罰アクションを免除するユーザー", "addMaster": "Masterを追加", "addTrusted": "Trustedを追加", - "userIdPlaceholder": "Discord UserID", + "userIdPlaceholder": "Discord ユーザーID", "remove": "削除", "permissionDenied": "Master権限がないため設定を変更できません", "exemptHeatLane": "Heatレーン免除", From 0d42b22f9f18cbe77b63d813660459f1d09203c0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 03:19:19 +0900 Subject: [PATCH 052/215] Update source file bot.json [ci skip] --- en/bot.json | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/en/bot.json b/en/bot.json index 824b6ec..2264ea6 100644 --- a/en/bot.json +++ b/en/bot.json @@ -378,6 +378,67 @@ }, "ping": { "description": "Ping the bot." + }, + "sus": { + "description": "Manually manage Suspicion Level.", + "add": { + "description": "Grant Suspicion Level to a user.", + "options": { + "user": { + "description": "Target user" + }, + "level": { + "description": "Level to grant (1=GRAY, 2=BLACKISH, 3=DANGER)" + } + } + }, + "remove": { + "description": "Remove Suspicion Level from a user.", + "options": { + "user": { + "description": "Target user" + } + } + } + }, + "mod": { + "description": "Advanced moderation commands.", + "quarantine": { + "description": "Quarantine a user (apply quarantine role and strip permissions).", + "options": { + "user": { + "description": "User to quarantine" + }, + "reason": { + "description": "Reason for quarantine" + } + } + }, + "unquarantine": { + "description": "Unquarantine a user.", + "options": { + "user": { + "description": "User to unquarantine" + }, + "reason": { + "description": "Reason for unquarantine" + } + } + }, + "info": { + "description": "Show user's moderation status (Heat, Suspicion, etc.).", + "title": "Moderation Info for {{user}}", + "heat": "Current Heat", + "suspicion": "Suspicion Level", + "last_violation": "Last Violation", + "trust_status": "Trust Status", + "violations": "Violation History Counts", + "options": { + "user": { + "description": "User to show info for" + } + } + } } }, "context": { From f803f9e04857e5af9f0eac5bb5dc94b32e5e9785 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 03:19:21 +0900 Subject: [PATCH 053/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 09e6879..a7261ee 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -378,6 +378,67 @@ }, "ping": { "description": "Ping値を表示します" + }, + "sus": { + "description": "不審者(Suspicion)レベルを手動で管理します。", + "add": { + "description": "ユーザーに不審者レベルを付与します。", + "options": { + "user": { + "description": "対象のユーザー" + }, + "level": { + "description": "付与するレベル (1:GRAY, 2:BLACKISH, 3:DANGER)" + } + } + }, + "remove": { + "description": "ユーザーの不審者レベルを解除します。", + "options": { + "user": { + "description": "対象のユーザー" + } + } + } + }, + "mod": { + "description": "高度なモデレーションコマンド", + "quarantine": { + "description": "ユーザーを隔離(隔離ロール付与+権限剥奪)します。", + "options": { + "user": { + "description": "隔離するユーザー" + }, + "reason": { + "description": "隔離の理由" + } + } + }, + "unquarantine": { + "description": "ユーザーの隔離を解除します。", + "options": { + "user": { + "description": "解除するユーザー" + }, + "reason": { + "description": "解除の理由" + } + } + }, + "info": { + "description": "ユーザーのモデレーションステータス(Heat, Suspicion等)を表示します。", + "title": "{{user}} のモデレーション情報", + "heat": "現在のHeat", + "suspicion": "不審者レベル", + "last_violation": "最終違反日時", + "trust_status": "信頼ステータス", + "violations": "違反履歴カウント", + "options": { + "user": { + "description": "情報を表示するユーザー" + } + } + } } }, "context": { From 07914976238c08e7ddb09896924b520d4a6eed56 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 17:17:18 +0900 Subject: [PATCH 054/215] Update source file bot.json [ci skip] --- en/bot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 2264ea6..8522659 100644 --- a/en/bot.json +++ b/en/bot.json @@ -427,7 +427,7 @@ }, "info": { "description": "Show user's moderation status (Heat, Suspicion, etc.).", - "title": "Moderation Info for {{user}}", + "title": "Moderation Info for {user}", "heat": "Current Heat", "suspicion": "Suspicion Level", "last_violation": "Last Violation", From c1bd7016e392aadf3ae39f262bc065a49992cb43 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 17:17:24 +0900 Subject: [PATCH 055/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index a7261ee..141005a 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -427,7 +427,7 @@ }, "info": { "description": "ユーザーのモデレーションステータス(Heat, Suspicion等)を表示します。", - "title": "{{user}} のモデレーション情報", + "title": "{user} のモデレーション情報", "heat": "現在のHeat", "suspicion": "不審者レベル", "last_violation": "最終違反日時", From 750346ca303d56a7b331d3c76d721373099321f0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 23:42:27 +0900 Subject: [PATCH 056/215] Update source file web.json [ci skip] --- en/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/web.json b/en/web.json index 4453dd9..370f5e7 100644 --- a/en/web.json +++ b/en/web.json @@ -1427,6 +1427,7 @@ "users": "Users", "guilds": "Servers", "blacklist": "Blacklist", + "spamPatterns": "Spam Patterns", "economy": "Economy" }, "dashboard": { From 0920961b0e5aab1cb8ed9caad15877e1d81f83a1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 5 May 2026 23:42:36 +0900 Subject: [PATCH 057/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ja/web.json b/ja/web.json index 9d93427..951fc68 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1427,6 +1427,7 @@ "users": "ユーザー", "guilds": "サーバー", "blacklist": "ブラックリスト", + "spamPatterns": "スパムパターン", "economy": "エコノミー" }, "dashboard": { From 9130b1e7d08219d5ff115d2a3c2a68d08a2b68c4 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 12:08:57 +0900 Subject: [PATCH 058/215] Update source file web.json [ci skip] --- en/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/en/web.json b/en/web.json index 370f5e7..5a83777 100644 --- a/en/web.json +++ b/en/web.json @@ -1629,6 +1629,10 @@ "joinGateFilterNewAccountDesc": "Quarantine accounts newer than this many days. 0 to disable", "joinGateFilterAdvertisingLabel": "Filter Advertising Accounts", "joinGateFilterAdvertisingDesc": "Quarantine accounts with invite links or banned URLs in their profile", + "joinGateFilterUnverifiedBotLabel": "Filter Unverified Bots", + "joinGateFilterUnverifiedBotDesc": "Quarantine bot accounts that are not verified by Discord", + "joinGateFilterUnauthorizedBotLabel": "Filter Unauthorized Bots", + "joinGateFilterUnauthorizedBotDesc": "Quarantine bots added by members without Master permissions", "powGateSection": "PoW Gate (Human Verification)", "powGateDesc": "Require Cloudflare Turnstile human verification to prevent bots and raiders", "powGateAllUsersLabel": "Apply to All New Members", From 62dcf75204719fa8528e04b77ac1596ebd814c61 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 12:09:05 +0900 Subject: [PATCH 059/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ja/web.json b/ja/web.json index 951fc68..db2d17c 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1629,6 +1629,10 @@ "joinGateFilterNewAccountDesc": "指定日数未満のアカウントを隔離。0で無効", "joinGateFilterAdvertisingLabel": "広告アカウントをフィルター", "joinGateFilterAdvertisingDesc": "プロフィールに招待リンク等を含むアカウントを隔離", + "joinGateFilterUnverifiedBotLabel": "未認証Botをフィルター", + "joinGateFilterUnverifiedBotDesc": "Discord未認証のBotアカウントを隔離", + "joinGateFilterUnauthorizedBotLabel": "未承認Botをフィルター", + "joinGateFilterUnauthorizedBotDesc": "Masterでないメンバーが追加したBotを隔離", "powGateSection": "PoW Gate(人間証明)", "powGateDesc": "Cloudflare Turnstileで人間確認を要求し、BOTや荒らしを防ぐ", "powGateAllUsersLabel": "全新規メンバーに適用", From 81144c501ffb308c314e6484975cb0de9bedae7a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 22:17:36 +0900 Subject: [PATCH 060/215] Update source file bot.json [ci skip] --- en/bot.json | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/en/bot.json b/en/bot.json index 8522659..e5dfcae 100644 --- a/en/bot.json +++ b/en/bot.json @@ -616,10 +616,39 @@ "already_exists": "User <@{userId}> is already in that state or the action was skipped." }, "report": { - "self_error": "You cannot report yourself.", - "default_reason": "Report", + "self_error": "You cannot report yourself or the bot.", "reporter_prefix": "Reported by: {moderatorTag} — {reason}", - "success": "✅ Reported <@{userId}>. A moderator will review it shortly." + "success": "✅ Reported <@{userId}>. A moderator will review it shortly.", + "modal_title": "Report Message", + "modal_reason_label": "Reason for report", + "modal_reason_placeholder": "Spam, harassment, rule violation, etc.", + "no_content": "no text content", + "log_title": "Message Reported", + "log_reporter": "Reporter", + "log_target": "Reported User", + "log_channel": "Channel", + "log_reason": "Reason", + "log_message": "Message Content" + }, + "verify": { + "not_found": "Member not found.", + "no_role_configured": "PoW Gate verification role is not configured.", + "not_in_gate": "<@{userId}> is not pending verification.", + "success": "✅ Manually verified <@{userId}>." + }, + "quarantine": { + "cannot_quarantine_self": "You cannot quarantine yourself or the bot.", + "modal_title": "Quarantine Member", + "modal_reason_label": "Reason (optional)", + "modal_reason_placeholder": "e.g. Spam, suspicious behavior, etc.", + "not_found": "Member not found.", + "manual_prefix": "Manual quarantine by moderator", + "success": "✅ Quarantined <@{userId}>.", + "already_quarantined": "<@{userId}> is already quarantined." + }, + "flag_suspicious": { + "cannot_flag_self": "You cannot flag yourself or the bot as suspicious.", + "success": "✅ Added Suspicion Level 1 (Gray) to <@{userId}>." } }, "info": { From d46911766234ea2ac43ad4c6331413f2580921e2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 22:17:37 +0900 Subject: [PATCH 061/215] Update source file web.json [ci skip] --- en/web.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/en/web.json b/en/web.json index 5a83777..755e8ff 100644 --- a/en/web.json +++ b/en/web.json @@ -1633,6 +1633,11 @@ "joinGateFilterUnverifiedBotDesc": "Quarantine bot accounts that are not verified by Discord", "joinGateFilterUnauthorizedBotLabel": "Filter Unauthorized Bots", "joinGateFilterUnauthorizedBotDesc": "Quarantine bots added by members without Master permissions", + "powGateSectionInner": "Verification Flow (PoW Gate)", + "powGateRoleReady": "Configured", + "powGateRoleNotReady": "Not set (auto-created after setup)", + "quarantineRoleReady": "Configured", + "quarantineRoleNotReady": "Not configured", "powGateSection": "PoW Gate (Human Verification)", "powGateDesc": "Require Cloudflare Turnstile human verification to prevent bots and raiders", "powGateAllUsersLabel": "Apply to All New Members", From 7f98cf45e52e09ebe5b62e902bfa4f10eae498fd Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 22:17:56 +0900 Subject: [PATCH 062/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 141005a..64fc237 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -616,10 +616,39 @@ "already_exists": "ユーザー <@{userId}> はすでにその状態であるか、処罰をスキップしました。" }, "report": { - "self_error": "自分自身を通報することはできません。", - "default_reason": "通報", + "self_error": "自分自身やBotを通報することはできません。", "reporter_prefix": "通報者: {moderatorTag} — {reason}", - "success": "✅ <@{userId}> を通報しました。モデレーターが確認します。" + "success": "✅ <@{userId}> を通報しました。モデレーターが確認します。", + "modal_title": "メッセージを通報", + "modal_reason_label": "通報理由", + "modal_reason_placeholder": "スパム、ハラスメント、規約違反など…", + "no_content": "テキストなし", + "log_title": "メッセージ通報", + "log_reporter": "通報者", + "log_target": "対象ユーザー", + "log_channel": "チャンネル", + "log_reason": "理由", + "log_message": "メッセージ内容" + }, + "verify": { + "not_found": "メンバーが見つかりませんでした。", + "no_role_configured": "認証ロール(PoW Gate)が設定されていません。", + "not_in_gate": "<@{userId}> は認証待ちではありません。", + "success": "✅ <@{userId}> の認証を完了しました。" + }, + "quarantine": { + "cannot_quarantine_self": "自分自身またはBotを隔離することはできません。", + "modal_title": "メンバーを隔離", + "modal_reason_label": "理由(任意)", + "modal_reason_placeholder": "例: スパム行為、不審な行動など", + "not_found": "メンバーが見つかりませんでした。", + "manual_prefix": "モデレーターによる手動隔離", + "success": "✅ <@{userId}> を隔離しました。", + "already_quarantined": "<@{userId}> はすでに隔離されています。" + }, + "flag_suspicious": { + "cannot_flag_self": "自分自身またはBotにSuspicion Levelを付与することはできません。", + "success": "✅ <@{userId}> にSuspicion Level 1(グレー)を付与しました。" } }, "info": { From fbb4a80804e22019b8b34754f023754958de91a2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 22:17:58 +0900 Subject: [PATCH 063/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ja/web.json b/ja/web.json index db2d17c..ff25199 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1633,6 +1633,11 @@ "joinGateFilterUnverifiedBotDesc": "Discord未認証のBotアカウントを隔離", "joinGateFilterUnauthorizedBotLabel": "未承認Botをフィルター", "joinGateFilterUnauthorizedBotDesc": "Masterでないメンバーが追加したBotを隔離", + "powGateSectionInner": "認証フロー(PoW Gate)", + "powGateRoleReady": "設定済み", + "powGateRoleNotReady": "未設定(セットアップ後に自動作成)", + "quarantineRoleReady": "設定済み", + "quarantineRoleNotReady": "未設定", "powGateSection": "PoW Gate(人間証明)", "powGateDesc": "Cloudflare Turnstileで人間確認を要求し、BOTや荒らしを防ぐ", "powGateAllUsersLabel": "全新規メンバーに適用", From 8a1643d0d4f6c8bb42eca60f8072fb6544ac13d1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 23:43:58 +0900 Subject: [PATCH 064/215] Update source file web.json [ci skip] --- en/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/web.json b/en/web.json index 755e8ff..3014763 100644 --- a/en/web.json +++ b/en/web.json @@ -1577,6 +1577,7 @@ } }, "automod": { + "unknownUser": "Unknown", "title": "Unified Moderation", "desc": "Configure AutoMod, AntiRaid, and JoinGate settings", "tabFilters": "Filters", From 4c82507e5a596846aeffd0e6683e60119a79eba3 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 6 May 2026 23:44:01 +0900 Subject: [PATCH 065/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ja/web.json b/ja/web.json index ff25199..f874d85 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1577,6 +1577,7 @@ } }, "automod": { + "unknownUser": "Unknown", "title": "統合モデレーション", "desc": "AutoMod・AntiRaid・JoinGate の設定を行います", "tabFilters": "フィルター", From c6922b5fdc96d3c8791f6e3a106b9b62cee8abad Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 7 May 2026 00:58:11 +0900 Subject: [PATCH 066/215] Update source file bot.json [ci skip] --- en/bot.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/en/bot.json b/en/bot.json index e5dfcae..3eb4b6d 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1036,6 +1036,25 @@ "thread_create": "Thread Created", "thread_update": "Thread Updated", "thread_delete": "Thread Deleted" + }, + "reason": { + "role_keeper_regrant": "RoleKeeper: Re-granting previously held roles", + "pow_gate_success": "PoW Gate: Verification successful", + "role_add_manual": "Role command: Added by {userTag}", + "role_remove_manual": "Role command: Removed by {userTag}", + "role_add_bulk": "Role command (Bulk): Added by {userTag}", + "role_remove_bulk": "Role command (Bulk): Removed by {userTag}", + "workflow_role_add": "Workflow: Role granted", + "workflow_role_remove": "Workflow: Role removed", + "workflow_timeout_add": "Workflow: Timeout applied", + "workflow_timeout_remove": "Workflow: Timeout removed", + "workflow_thread_create": "Workflow: Thread created", + "workflow_thread_delete": "Workflow: Thread deleted", + "workflow_kick": "Workflow: Kicked", + "workflow_ban": "Workflow: Banned", + "join_gate_pow": "JoinGate: PoW Gate requirement", + "verify_manual": "Context Verify: Verified manually by {userTag}", + "audit_test": "Audit Test" } }, "moderation": { From 0a8f88d041780e6b222912d8ccaeb48a2ba3081d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 7 May 2026 00:58:14 +0900 Subject: [PATCH 067/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 64fc237..8af1153 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1036,6 +1036,25 @@ "thread_create": "スレッド作成", "thread_update": "スレッド更新", "thread_delete": "スレッド削除" + }, + "reason": { + "role_keeper_regrant": "RoleKeeper: 以前保持していたロールの再付与", + "pow_gate_success": "PoW Gate: 認証成功", + "role_add_manual": "Role コマンド: {userTag} により付与", + "role_remove_manual": "Role コマンド: {userTag} により剥奪", + "role_add_bulk": "Role コマンド (一括): {userTag} により付与", + "role_remove_bulk": "Role コマンド (一括): {userTag} により剥奪", + "workflow_role_add": "ワークフロー: ロール付与", + "workflow_role_remove": "ワークフロー: ロール剥奪", + "workflow_timeout_add": "ワークフロー: タイムアウト", + "workflow_timeout_remove": "ワークフロー: タイムアウト解除", + "workflow_thread_create": "ワークフロー: スレッド作成", + "workflow_thread_delete": "ワークフロー: スレッド削除", + "workflow_kick": "ワークフロー: キック", + "workflow_ban": "ワークフロー: BAN", + "join_gate_pow": "JoinGate: PoW Gate による要求", + "verify_manual": "Context Verify: {userTag} による手動認証", + "audit_test": "監査ログテスト" } }, "moderation": { From e287d25d0ae36ad52bad148e79ceca4a71a8870a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 7 May 2026 02:04:33 +0900 Subject: [PATCH 068/215] Update source file bot.json [ci skip] --- en/bot.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 3eb4b6d..14fbf81 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1125,7 +1125,9 @@ "no_guild": "Failed to retrieve verification information.", "no_settings": "Verification settings not found.", "not_needed": "Verification is not required.", - "link_reply": "Please verify using the following link (**valid for 10 minutes**):\n{verifyUrl}" + "link_reply": "Please verify using the following link (**valid for 10 minutes**):\n{verifyUrl}", + "log_title": "Verification Complete (PoW Gate)", + "log_body": "User: <@{userId}> ({userTag})\n**Time:** " }, "actions": { "QUARANTINE": "Quarantine", From ad47997c10ea03869d1097f2442f02ee628f8eb9 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 7 May 2026 02:04:35 +0900 Subject: [PATCH 069/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index 8af1153..68c02e3 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1125,7 +1125,9 @@ "no_guild": "認証情報を取得できませんでした。", "no_settings": "認証設定が見つかりません。", "not_needed": "認証は不要です。", - "link_reply": "以下のリンクから認証してください(**10分間有効**):\n{verifyUrl}" + "link_reply": "以下のリンクから認証してください(**10分間有効**):\n{verifyUrl}", + "log_title": "認証完了 (PoW Gate)", + "log_body": "ユーザー: <@{userId}> ({userTag})\n**日時:** " }, "actions": { "QUARANTINE": "隔離(Quarantine)", From 54fa069a0eba03e59608943bce2c7e933c755e1e Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 7 May 2026 22:26:21 +0900 Subject: [PATCH 070/215] Update source file web.json [ci skip] --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index 3014763..f0e4350 100644 --- a/en/web.json +++ b/en/web.json @@ -1606,6 +1606,8 @@ "noRole": "No role", "panicModeLabel": "Emergency Mode", "panicModeDesc": "When enabled, significantly lowers the action threshold for all users", + "crossServerOptInLabel": "Cross-Server Risk Sharing", + "crossServerOptInDesc": "When enabled, anonymously contributes violation data to the cross-server risk database to improve threat detection across servers", "antiNukeSection": "AntiNuke", "antiNukeDesc": "Detects and responds to destructive server actions (channel deletion, mass bans, etc.)", "antiNukeChannelDeleteLabel": "Channel delete", From bdcf8dbf74e2dcc10c917696617039b906fd8e9f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 7 May 2026 22:26:32 +0900 Subject: [PATCH 071/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index f874d85..f7d007c 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1606,6 +1606,8 @@ "noRole": "ロールなし", "panicModeLabel": "エマージェンシーモード", "panicModeDesc": "有効時、全ユーザーへの制裁閾値を大幅に下げます", + "crossServerOptInLabel": "クロスサーバーリスク共有", + "crossServerOptInDesc": "有効時、このサーバーの違反情報を匿名でクロスサーバーリスクデータベースに提供し、他サーバーの脅威検知精度を向上します", "antiNukeSection": "AntiNuke", "antiNukeDesc": "サーバーへの破壊的な操作(チャンネル削除・一括BAN等)を検知・対応します", "antiNukeChannelDeleteLabel": "チャンネル削除", From 2945bd5cedb7b1f273f4e3351c096c38023515d3 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 8 May 2026 00:10:43 +0900 Subject: [PATCH 072/215] Update source file web.json [ci skip] --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index f0e4350..47e8b63 100644 --- a/en/web.json +++ b/en/web.json @@ -18,6 +18,8 @@ "save": "Save", "saving": "Saving...", "saved": "Saved", + "unsavedChanges": "Unsaved changes", + "discard": "Discard changes", "cancel": "Cancel", "close": "Close", "loading": "Loading...", From 91f45f07f176f737a723aca628801b9c0399ead0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 8 May 2026 00:11:01 +0900 Subject: [PATCH 073/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ja/web.json b/ja/web.json index f7d007c..03ae4de 100644 --- a/ja/web.json +++ b/ja/web.json @@ -18,6 +18,8 @@ "save": "保存", "saving": "保存中...", "saved": "保存しました", + "unsavedChanges": "未保存の変更があります", + "discard": "変更を破棄", "cancel": "キャンセル", "close": "閉じる", "loading": "読み込み中...", @@ -1577,7 +1579,7 @@ } }, "automod": { - "unknownUser": "Unknown", + "unknownUser": "不明", "title": "統合モデレーション", "desc": "AutoMod・AntiRaid・JoinGate の設定を行います", "tabFilters": "フィルター", @@ -1606,7 +1608,7 @@ "noRole": "ロールなし", "panicModeLabel": "エマージェンシーモード", "panicModeDesc": "有効時、全ユーザーへの制裁閾値を大幅に下げます", - "crossServerOptInLabel": "クロスサーバーリスク共有", + "crossServerOptInLabel": "サーバー間のリスク共有", "crossServerOptInDesc": "有効時、このサーバーの違反情報を匿名でクロスサーバーリスクデータベースに提供し、他サーバーの脅威検知精度を向上します", "antiNukeSection": "AntiNuke", "antiNukeDesc": "サーバーへの破壊的な操作(チャンネル削除・一括BAN等)を検知・対応します", @@ -1633,7 +1635,7 @@ "joinGateFilterAdvertisingLabel": "広告アカウントをフィルター", "joinGateFilterAdvertisingDesc": "プロフィールに招待リンク等を含むアカウントを隔離", "joinGateFilterUnverifiedBotLabel": "未認証Botをフィルター", - "joinGateFilterUnverifiedBotDesc": "Discord未認証のBotアカウントを隔離", + "joinGateFilterUnverifiedBotDesc": "Discordで認証されていないBotアカウントを隔離する", "joinGateFilterUnauthorizedBotLabel": "未承認Botをフィルター", "joinGateFilterUnauthorizedBotDesc": "Masterでないメンバーが追加したBotを隔離", "powGateSectionInner": "認証フロー(PoW Gate)", From c61e8f2d8d5c157024c4bd8a42f30c83e9eadd8f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 8 May 2026 02:04:12 +0900 Subject: [PATCH 074/215] Update source file bot.json [ci skip] --- en/bot.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/en/bot.json b/en/bot.json index 14fbf81..b89add1 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1132,6 +1132,9 @@ "actions": { "QUARANTINE": "Quarantine", "UNQUARANTINE": "Unquarantine", + "TIMEOUT_5M": "5 Minute Timeout", + "TIMEOUT_10M": "10 Minute Timeout", + "TIMEOUT_30M": "30 Minute Timeout", "TIMEOUT_1H": "1 Hour Timeout", "TIMEOUT_24H": "24 Hour Timeout", "DELETE_MESSAGE": "Message Deletion", From eeadbc83585bf880ec9223cdb65465b557a92425 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 8 May 2026 02:04:15 +0900 Subject: [PATCH 075/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 68c02e3..688499c 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1132,6 +1132,9 @@ "actions": { "QUARANTINE": "隔離(Quarantine)", "UNQUARANTINE": "隔離解除", + "TIMEOUT_5M": "5分のタイムアウト", + "TIMEOUT_10M": "10分のタイムアウト", + "TIMEOUT_30M": "30分のタイムアウト", "TIMEOUT_1H": "1時間のタイムアウト", "TIMEOUT_24H": "24時間のタイムアウト", "DELETE_MESSAGE": "メッセージ削除", From 7c0f8b2e09ee5a505fff5e18b4d4bbc5c6fcd401 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 8 May 2026 16:13:07 +0900 Subject: [PATCH 076/215] Update source file bot.json [ci skip] --- en/bot.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/en/bot.json b/en/bot.json index b89add1..5998e23 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1066,6 +1066,10 @@ "btn_kick": "Kick", "btn_unquarantine": "False Positive (Release)" }, + "review_queue": { + "title": "🔍 Review Required (Gray Zone)", + "body": "**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n\nAutomatic detection confidence was low. Please review this case manually." + }, "warn": { "dm_title": "⚠️ Warning", "dm_body": "You have received a warning from **{guildName}**'s auto-moderation. Please review the server rules." From 31b21001d8259e72f4badc756ac6a5309c1742e0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 8 May 2026 16:13:12 +0900 Subject: [PATCH 077/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 688499c..61c7034 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1066,6 +1066,10 @@ "btn_kick": "キック", "btn_unquarantine": "誤検知(隔離解除)" }, + "review_queue": { + "title": "🔍 要審査(グレーゾーン)", + "body": "**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n\n自動判定の信頼度が低いため、モデレーターによる手動確認が必要です。" + }, "warn": { "dm_title": "⚠️ 警告", "dm_body": "**{guildName}** の自動モデレーションにより警告を受けました。サーバーのルールを確認してください。" From b4a62410a21dc643821fa40fe3eb88d3cdcc8acc Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 10 May 2026 00:31:37 +0900 Subject: [PATCH 078/215] Update source file web.json [ci skip] --- en/web.json | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index 47e8b63..805b5a6 100644 --- a/en/web.json +++ b/en/web.json @@ -46,7 +46,9 @@ "inviteBot": "Invite Bot", "viewDashboard": "View Dashboard", "pricing": "Pricing", - "changelog": "Changelog" + "changelog": "Changelog", + "security": "Security", + "subscription": "Subscription" }, "top": { "featuresSectionLabel": "Features", @@ -153,7 +155,9 @@ "open": "Open", "invite": "Add Bot", "reload": "Reload", - "refreshHint": "Don't see your server? Try refreshing after adding the bot." + "refreshHint": "Don't see your server? Try refreshing after adding the bot.", + "passkeyBtn": "Log in with Passkey", + "orDivider": "or" }, "sidebar": { "overview": "Overview", @@ -1732,5 +1736,22 @@ "exemptAiLane": "AI Lane Exempt", "exemptAntinuke": "AntiNuke Exempt", "exemptAntiraid": "AntiRaid Exempt" + }, + "accountSecurity": { + "title": "Security", + "desc": "Register passkeys to log in even if you lose access to Discord", + "passkeyTitle": "Passkeys", + "passkeyDesc": "Use registered passkeys to log in during emergencies", + "addPasskey": "Add Passkey", + "adding": "Registering...", + "noPasskeys": "No passkeys registered", + "noPasskeysDesc": "Add a passkey so you can log in even if you lose your Discord account", + "deletePasskey": "Delete", + "deleting": "Deleting...", + "addSuccess": "Passkey registered", + "addError": "Failed to register passkey", + "deleteSuccess": "Passkey deleted", + "deleteError": "Failed to delete passkey", + "registeredAt": "Registered" } } From 265439b77918699795b677bb359ae6ef8042c5e8 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 10 May 2026 00:31:45 +0900 Subject: [PATCH 079/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index 03ae4de..eaff46e 100644 --- a/ja/web.json +++ b/ja/web.json @@ -46,7 +46,9 @@ "inviteBot": "Botを招待", "viewDashboard": "ダッシュボードを見る", "pricing": "料金プラン", - "changelog": "更新履歴" + "changelog": "更新履歴", + "security": "セキュリティ", + "subscription": "サブスクリプション" }, "top": { "featuresSectionLabel": "機能", @@ -153,7 +155,9 @@ "open": "開く", "invite": "Botを追加", "reload": "再読み込み", - "refreshHint": "サーバーが表示されない場合は、Bot追加後に更新してください。" + "refreshHint": "サーバーが表示されない場合は、Bot追加後に更新してください。", + "passkeyBtn": "パスキーでログイン", + "orDivider": "または" }, "sidebar": { "overview": "概要", @@ -1732,5 +1736,22 @@ "exemptAiLane": "AIレーン免除", "exemptAntinuke": "AntiNuke免除", "exemptAntiraid": "AntiRaid免除" + }, + "accountSecurity": { + "title": "セキュリティ", + "desc": "パスキーを登録して、Discordにアクセスできない場合でもログインできます", + "passkeyTitle": "パスキー", + "passkeyDesc": "登録済みのパスキーを使って緊急時にログインできます", + "addPasskey": "パスキーを追加", + "adding": "登録中...", + "noPasskeys": "パスキーが登録されていません", + "noPasskeysDesc": "パスキーを追加すると、Discordアカウントを失った場合でもログインできます", + "deletePasskey": "削除", + "deleting": "削除中...", + "addSuccess": "パスキーを登録しました", + "addError": "パスキーの登録に失敗しました", + "deleteSuccess": "パスキーを削除しました", + "deleteError": "パスキーの削除に失敗しました", + "registeredAt": "登録日" } } From ebc4ae9bd55598b73d2d42bd48ba822c5109c147 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 10 May 2026 03:12:55 +0900 Subject: [PATCH 080/215] Update source file web.json [ci skip] --- en/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/web.json b/en/web.json index 805b5a6..244cf3b 100644 --- a/en/web.json +++ b/en/web.json @@ -170,6 +170,7 @@ "credits": "Credits", "allServers": "All Servers", "manageSubscription": "Manage Subscription", + "security": "Security", "logout": "Log Out", "messages": "Messages", "workflow": "Workflow", From 09345f6f1813d9eae8d2ed5a67207dc487ea5dcd Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 10 May 2026 03:13:01 +0900 Subject: [PATCH 081/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ja/web.json b/ja/web.json index eaff46e..018dcec 100644 --- a/ja/web.json +++ b/ja/web.json @@ -170,6 +170,7 @@ "credits": "クレジット", "allServers": "すべてのサーバー", "manageSubscription": "サブスクリプション管理", + "security": "セキュリティ", "logout": "ログアウト", "messages": "メッセージ送信", "workflow": "ワークフロー", From 3b511e3a0f568235b7fa4bbee91643265a1105a8 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 10 May 2026 04:45:48 +0900 Subject: [PATCH 082/215] Update source file web.json [ci skip] --- en/web.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 244cf3b..71f7353 100644 --- a/en/web.json +++ b/en/web.json @@ -1753,6 +1753,10 @@ "addError": "Failed to register passkey", "deleteSuccess": "Passkey deleted", "deleteError": "Failed to delete passkey", - "registeredAt": "Registered" + "registeredAt": "Registered", + "addModalTitle": "Name your Passkey", + "addModalDesc": "Enter a name that helps you identify this device.", + "addModalPlaceholder": "e.g. My iPhone, Work PC", + "addModalBtn": "Start Registration" } } From f5472076a0c12568219c93e5e2b9e63059785d33 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 10 May 2026 04:45:50 +0900 Subject: [PATCH 083/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 018dcec..cd243d1 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1753,6 +1753,10 @@ "addError": "パスキーの登録に失敗しました", "deleteSuccess": "パスキーを削除しました", "deleteError": "パスキーの削除に失敗しました", - "registeredAt": "登録日" + "registeredAt": "登録日", + "addModalTitle": "パスキーに名前を付ける", + "addModalDesc": "このデバイスを識別しやすい名前を入力してください。", + "addModalPlaceholder": "例: 私のiPhone、メインPC", + "addModalBtn": "登録を開始" } } From 0c58bf4684965896c16085ccb774be623c681327 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 12 May 2026 18:34:03 +0900 Subject: [PATCH 084/215] Update source file bot.json [ci skip] --- en/bot.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 5998e23..143ac6d 100644 --- a/en/bot.json +++ b/en/bot.json @@ -986,7 +986,9 @@ "embeds_deleted_threaded": "Deleted message embeds (see thread for details)", "embed_deleted_thread_name": "deleted-embed-{id}", "embed_deleted_thread_intro": "This thread stores the embed preview of the deleted message.", - "deleted_embed_preview": "Deleted Embed" + "deleted_embed_preview": "Deleted Embed", + "emoji": "Emoji", + "message": "Message" }, "events": { "guild_update": "Server Updated", @@ -1003,6 +1005,8 @@ "message_update": "Message Edited", "message_update_embed_before": "Embed Preview Before Edit", "message_update_embed_after": "Embed Preview After Edit", + "message_reaction_add": "Reaction Added", + "message_reaction_remove": "Reaction Removed", "member_add": "Member Joined", "member_remove": "Member Left", "member_kick": "Member Kicked", From 0d604710f2cbbac802f9df1d209e5254cda4885e Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 12 May 2026 18:34:05 +0900 Subject: [PATCH 085/215] Update source file web.json [ci skip] --- en/web.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/en/web.json b/en/web.json index 71f7353..97abcc4 100644 --- a/en/web.json +++ b/en/web.json @@ -736,6 +736,14 @@ "name": "Message Update", "desc": "Log Message Update events" }, + "message_reaction_add": { + "name": "Message Reaction Add", + "desc": "Log Message Reaction Add events" + }, + "message_reaction_remove": { + "name": "Message Reaction Remove", + "desc": "Log Message Reaction Remove events" + }, "member_kick": { "name": "Member Kick", "desc": "Log Member Kick events" From 3477c4c5920f734b4360ecc00c0a49f9f746e584 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 12 May 2026 18:34:14 +0900 Subject: [PATCH 086/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index 61c7034..e69220e 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -986,7 +986,9 @@ "embeds_deleted_threaded": "削除されたメッセージのEmbed(詳細はスレッド)", "embed_deleted_thread_name": "deleted-embed-{id}", "embed_deleted_thread_intro": "このスレッドには削除されたメッセージのEmbedプレビューが保存されています。", - "deleted_embed_preview": "削除前Embed" + "deleted_embed_preview": "削除前Embed", + "emoji": "絵文字", + "message": "メッセージ" }, "events": { "guild_update": "サーバー設定更新", @@ -1003,6 +1005,8 @@ "message_update": "メッセージ編集", "message_update_embed_before": "編集前Embedプレビュー", "message_update_embed_after": "編集後Embedプレビュー", + "message_reaction_add": "リアクション追加", + "message_reaction_remove": "リアクション削除", "member_add": "メンバー参加", "member_remove": "メンバー退出", "member_kick": "メンバーキック", From 90ed01482ecb1a389e5de62d23ff970323c7b8c9 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 12 May 2026 18:34:16 +0900 Subject: [PATCH 087/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ja/web.json b/ja/web.json index cd243d1..96b89bf 100644 --- a/ja/web.json +++ b/ja/web.json @@ -736,6 +736,14 @@ "name": "メッセージ編集", "desc": "メッセージ編集のログを記録します" }, + "message_reaction_add": { + "name": "リアクション追加", + "desc": "メッセージへのリアクション追加のログを記録します" + }, + "message_reaction_remove": { + "name": "リアクション削除", + "desc": "メッセージへのリアクション削除のログを記録します" + }, "member_kick": { "name": "メンバーキック", "desc": "メンバーキックのログを記録します" From 727a73ddfb6ae1d2df25a645ea8c135dabe6d20d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 15 May 2026 13:00:22 +0900 Subject: [PATCH 088/215] Update source file web.json [ci skip] --- en/web.json | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 97abcc4..ef0d3f3 100644 --- a/en/web.json +++ b/en/web.json @@ -1744,7 +1744,33 @@ "exemptHeatLane": "Heat Lane Exempt", "exemptAiLane": "AI Lane Exempt", "exemptAntinuke": "AntiNuke Exempt", - "exemptAntiraid": "AntiRaid Exempt" + "exemptAntiraid": "AntiRaid Exempt", + "tabSchedule": "Schedule", + "scheduleSection": "Scheduled Security Rules", + "scheduleSectionDesc": "Automatically change server security settings during specific times or periods.", + "scheduleAddRule": "Add Rule", + "scheduleRuleType": "Action", + "scheduleRuleTypeInviteDisable": "Disable Invites", + "scheduleRuleTypeSecurityLevel": "Change Verification Level", + "scheduleScheduleType": "Schedule Type", + "scheduleTimeRange": "Daily Time Range", + "scheduleDateRange": "One-time Date Range", + "scheduleStartTime": "Start Time (UTC)", + "scheduleEndTime": "End Time (UTC)", + "scheduleStartDate": "Start Date", + "scheduleEndDate": "End Date", + "scheduleSecurityLevel": "Verification Level", + "scheduleSecurityLevelNone": "None (0)", + "scheduleSecurityLevelLow": "Low (1)", + "scheduleSecurityLevelMedium": "Medium (2)", + "scheduleSecurityLevelHigh": "High (3)", + "scheduleSecurityLevelVeryHigh": "Very High (4)", + "scheduleLabel": "Label (optional)", + "scheduleLabelPlaceholder": "e.g. Nightly security boost", + "scheduleEnabled": "Enabled", + "scheduleDeleteConfirm": "Delete this rule?", + "scheduleNoRules": "No schedule rules", + "scheduleAddRuleTitle": "Add Rule" }, "accountSecurity": { "title": "Security", From b49874899b51788b7cc8c94fe4c61cb9b57e4f10 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 15 May 2026 13:00:29 +0900 Subject: [PATCH 089/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 96b89bf..e7696b3 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1744,7 +1744,33 @@ "exemptHeatLane": "Heatレーン免除", "exemptAiLane": "AIレーン免除", "exemptAntinuke": "AntiNuke免除", - "exemptAntiraid": "AntiRaid免除" + "exemptAntiraid": "AntiRaid免除", + "tabSchedule": "スケジュール", + "scheduleSection": "スケジュールセキュリティルール", + "scheduleSectionDesc": "特定の時間帯・期間にサーバーのセキュリティ設定を自動で変更します", + "scheduleAddRule": "ルールを追加", + "scheduleRuleType": "アクション", + "scheduleRuleTypeInviteDisable": "招待リンクを無効化", + "scheduleRuleTypeSecurityLevel": "認証レベルを変更", + "scheduleScheduleType": "スケジュール種別", + "scheduleTimeRange": "毎日繰り返し(時間帯)", + "scheduleDateRange": "一回限り(期間指定)", + "scheduleStartTime": "開始時刻 (UTC)", + "scheduleEndTime": "終了時刻 (UTC)", + "scheduleStartDate": "開始日時", + "scheduleEndDate": "終了日時", + "scheduleSecurityLevel": "認証レベル", + "scheduleSecurityLevelNone": "なし (0)", + "scheduleSecurityLevelLow": "低 (1)", + "scheduleSecurityLevelMedium": "中 (2)", + "scheduleSecurityLevelHigh": "高 (3)", + "scheduleSecurityLevelVeryHigh": "最高 (4)", + "scheduleLabel": "ラベル(任意)", + "scheduleLabelPlaceholder": "例: 深夜帯セキュリティ強化", + "scheduleEnabled": "有効", + "scheduleDeleteConfirm": "このルールを削除しますか?", + "scheduleNoRules": "スケジュールルールがありません", + "scheduleAddRuleTitle": "ルールを追加" }, "accountSecurity": { "title": "セキュリティ", From 5a2e39947f84919c93553c1fc7a3cd97fed94a54 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 15 May 2026 14:02:40 +0900 Subject: [PATCH 090/215] Update source file web.json [ci skip] --- en/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/web.json b/en/web.json index ef0d3f3..d0ebc66 100644 --- a/en/web.json +++ b/en/web.json @@ -1751,6 +1751,7 @@ "scheduleAddRule": "Add Rule", "scheduleRuleType": "Action", "scheduleRuleTypeInviteDisable": "Disable Invites", + "scheduleRuleTypeDmDisable": "Disable DMs", "scheduleRuleTypeSecurityLevel": "Change Verification Level", "scheduleScheduleType": "Schedule Type", "scheduleTimeRange": "Daily Time Range", From 4de563da4135947bb31deff286e25dd2b04d359f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 15 May 2026 14:02:45 +0900 Subject: [PATCH 091/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ja/web.json b/ja/web.json index e7696b3..23871e0 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1751,6 +1751,7 @@ "scheduleAddRule": "ルールを追加", "scheduleRuleType": "アクション", "scheduleRuleTypeInviteDisable": "招待リンクを無効化", + "scheduleRuleTypeDmDisable": "DM を無効化", "scheduleRuleTypeSecurityLevel": "認証レベルを変更", "scheduleScheduleType": "スケジュール種別", "scheduleTimeRange": "毎日繰り返し(時間帯)", From 7d984a81a3fd12a497df2dc27e59123bcf8e1223 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 23 May 2026 21:02:10 +0900 Subject: [PATCH 092/215] Update source file web.json [ci skip] --- en/web.json | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index d0ebc66..a5948c0 100644 --- a/en/web.json +++ b/en/web.json @@ -174,7 +174,8 @@ "logout": "Log Out", "messages": "Messages", "workflow": "Workflow", - "automod": "Moderation" + "automod": "Moderation", + "activityLog": "Activity Log" }, "featureGate": { "title": "This feature is not available", @@ -1793,5 +1794,39 @@ "addModalDesc": "Enter a name that helps you identify this device.", "addModalPlaceholder": "e.g. My iPhone, Work PC", "addModalBtn": "Start Registration" + }, + "activityLog": { + "title": "Activity Log", + "desc": "View the history of settings changes and actions performed in the dashboard", + "empty": "No activity logs found", + "loadMore": "Load more", + "loading": "Loading...", + "filterAll": "All", + "page": "Page", + "of": "of", + "total": "entries", + "categories": { + "module": "Module", + "workflow": "Workflow", + "audit_log": "Audit Log Settings", + "guild": "Server Settings", + "moderation": "Moderation", + "ai_moderation": "AI Moderation", + "general": "General" + }, + "actions": { + "auto_purge_updated": "Updated auto purge settings", + "auto_purge_deleted": "Deleted auto purge settings", + "auto_react_updated": "Updated auto react settings", + "auto_react_deleted": "Deleted auto react settings", + "role_keeper_updated": "Updated role keeper settings", + "role_keeper_deleted": "Deleted role keeper settings", + "workflow_created": "Created workflow", + "workflow_updated": "Updated workflow", + "workflow_deleted": "Deleted workflow", + "audit_log_channel_set": "Set audit log channel", + "guild_settings_updated": "Updated server settings", + "moderation_settings_updated": "Updated moderation settings" + } } } From 8825e6d5bdcffd1385c2a916c61b851e0096813b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 23 May 2026 21:02:17 +0900 Subject: [PATCH 093/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 23871e0..2d92782 100644 --- a/ja/web.json +++ b/ja/web.json @@ -174,7 +174,8 @@ "logout": "ログアウト", "messages": "メッセージ送信", "workflow": "ワークフロー", - "automod": "統合モデレーション" + "automod": "統合モデレーション", + "activityLog": "操作ログ" }, "featureGate": { "title": "この機能はご利用いただけません", @@ -1793,5 +1794,39 @@ "addModalDesc": "このデバイスを識別しやすい名前を入力してください。", "addModalPlaceholder": "例: 私のiPhone、メインPC", "addModalBtn": "登録を開始" + }, + "activityLog": { + "title": "操作ログ", + "desc": "ダッシュボードでの設定変更・操作の履歴を確認できます", + "empty": "操作ログがありません", + "loadMore": "さらに読み込む", + "loading": "読み込み中...", + "filterAll": "すべて", + "page": "ページ", + "of": "/", + "total": "件", + "categories": { + "module": "モジュール", + "workflow": "ワークフロー", + "audit_log": "監査ログ設定", + "guild": "サーバー設定", + "moderation": "モデレーション", + "ai_moderation": "AIモデレーション", + "general": "一般" + }, + "actions": { + "auto_purge_updated": "自動削除設定を更新", + "auto_purge_deleted": "自動削除設定を削除", + "auto_react_updated": "自動リアクション設定を更新", + "auto_react_deleted": "自動リアクション設定を削除", + "role_keeper_updated": "ロールキーパー設定を更新", + "role_keeper_deleted": "ロールキーパー設定を削除", + "workflow_created": "ワークフローを作成", + "workflow_updated": "ワークフローを更新", + "workflow_deleted": "ワークフローを削除", + "audit_log_channel_set": "監査ログチャンネルを設定", + "guild_settings_updated": "サーバー設定を更新", + "moderation_settings_updated": "モデレーション設定を更新" + } } } From 2fbf36fa8609e708b0ed7433ebcc72268d04276e Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 00:14:52 +0900 Subject: [PATCH 094/215] Update source file web.json [ci skip] --- en/web.json | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index a5948c0..0cd0f5b 100644 --- a/en/web.json +++ b/en/web.json @@ -900,6 +900,36 @@ "contentOptional": "(optional)", "contentPlaceholder": "Enter message content...", "addEmbed": "Add Embed", + "addActionRow": "Add Action Row", + "actionRow": { + "rowN": "Action Row {n}", + "typeButtons": "Buttons", + "typeSelect": "Select Menu", + "addButton": "Add Button", + "buttonLabel": "Label", + "buttonLabelPlaceholder": "Button text", + "buttonStyle": "Style", + "buttonStylePrimary": "Primary (Blue)", + "buttonStyleSecondary": "Secondary (Gray)", + "buttonStyleSuccess": "Success (Green)", + "buttonStyleDanger": "Danger (Red)", + "buttonStyleLink": "Link (URL)", + "customId": "Custom ID", + "customIdPlaceholder": "ID used in workflow", + "linkUrl": "URL", + "linkUrlPlaceholder": "https://...", + "selectCustomId": "Custom ID", + "selectCustomIdPlaceholder": "ID used in workflow", + "selectPlaceholder": "Placeholder", + "selectPlaceholderPlaceholder": "Please select", + "addOption": "Add Option", + "optionLabel": "Label", + "optionLabelPlaceholder": "Display text", + "optionValue": "Value", + "optionValuePlaceholder": "Value used in workflow", + "optionDescription": "Description (optional)", + "optionN": "Option {n}" + }, "send": "Send", "update": "Update", "cancel": "Cancel", @@ -942,7 +972,8 @@ "title": "Sent Messages", "desc": "List of messages sent by Cube", "empty": "No sent messages yet", - "embedCount": "{count} embed(s)" + "embedCount": "{count} embed(s)", + "componentCount": "{count} component(s)" } }, "workflow": { From 97da640b4e754a0112cfd0a35d3c1a50da9a45b1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 00:14:59 +0900 Subject: [PATCH 095/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 2d92782..3713636 100644 --- a/ja/web.json +++ b/ja/web.json @@ -900,6 +900,36 @@ "contentOptional": "(任意)", "contentPlaceholder": "メッセージの内容を入力...", "addEmbed": "Embedを追加", + "addActionRow": "Action Row を追加", + "actionRow": { + "rowN": "Action Row {n}", + "typeButtons": "ボタン", + "typeSelect": "セレクトメニュー", + "addButton": "ボタンを追加", + "buttonLabel": "ラベル", + "buttonLabelPlaceholder": "ボタンのテキスト", + "buttonStyle": "スタイル", + "buttonStylePrimary": "Primary(青)", + "buttonStyleSecondary": "Secondary(グレー)", + "buttonStyleSuccess": "Success(緑)", + "buttonStyleDanger": "Danger(赤)", + "buttonStyleLink": "Link(URL)", + "customId": "カスタムID", + "customIdPlaceholder": "ワークフローで使用するID", + "linkUrl": "URL", + "linkUrlPlaceholder": "https://...", + "selectCustomId": "カスタムID", + "selectCustomIdPlaceholder": "ワークフローで使用するID", + "selectPlaceholder": "プレースホルダー", + "selectPlaceholderPlaceholder": "選択してください", + "addOption": "オプションを追加", + "optionLabel": "ラベル", + "optionLabelPlaceholder": "表示テキスト", + "optionValue": "値", + "optionValuePlaceholder": "ワークフローで使用する値", + "optionDescription": "説明(任意)", + "optionN": "オプション {n}" + }, "send": "送信", "update": "更新", "cancel": "キャンセル", @@ -942,7 +972,8 @@ "title": "送信済みメッセージ", "desc": "送信済みのメッセージ一覧です", "empty": "送信済みメッセージはありません", - "embedCount": "{count}件のEmbed" + "embedCount": "{count}件のEmbed", + "componentCount": "{count}個のコンポーネント" } }, "workflow": { From ac2ea678f82def039feda894fc7e9fa357a1b8fb Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 02:24:50 +0900 Subject: [PATCH 096/215] Update source file web.json [ci skip] --- en/web.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/en/web.json b/en/web.json index 0cd0f5b..fbdabdf 100644 --- a/en/web.json +++ b/en/web.json @@ -198,6 +198,16 @@ "aimod": { "label": "AI Moderation", "desc": "AI monitors and responds to chat in real time" + }, + "analytics": { + "title": "Analytics", + "messages": "Messages", + "members": "Member Changes", + "joins": "Joins", + "leaves": "Leaves", + "range7": "7 days", + "range30": "30 days", + "noData": "No data available" } }, "general": { From 0caebdbce65ad6c808445483c9c2b32be269bd99 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 02:24:52 +0900 Subject: [PATCH 097/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/ja/web.json b/ja/web.json index 3713636..d377839 100644 --- a/ja/web.json +++ b/ja/web.json @@ -198,6 +198,16 @@ "aimod": { "label": "AI モデレーション", "desc": "AI がリアルタイムでチャットを監視・対応" + }, + "analytics": { + "title": "アナリティクス", + "messages": "メッセージ数", + "members": "メンバー増減", + "joins": "参加", + "leaves": "退出", + "range7": "7日間", + "range30": "30日間", + "noData": "データがありません" } }, "general": { From 1c4d06ad3a62b2fc3054397ce41058a677af3e9c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 10:16:24 +0900 Subject: [PATCH 098/215] Update source file web.json [ci skip] --- en/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/en/web.json b/en/web.json index fbdabdf..bce2a04 100644 --- a/en/web.json +++ b/en/web.json @@ -208,6 +208,10 @@ "range7": "7 days", "range30": "30 days", "noData": "No data available" + }, + "widget": { + "customize": "Customize", + "done": "Done" } }, "general": { From e8bd9e56f0b2cac74df881b9b4e9837d0e6793b3 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 10:16:32 +0900 Subject: [PATCH 099/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ja/web.json b/ja/web.json index d377839..d2117f2 100644 --- a/ja/web.json +++ b/ja/web.json @@ -208,6 +208,10 @@ "range7": "7日間", "range30": "30日間", "noData": "データがありません" + }, + "widget": { + "customize": "カスタマイズ", + "done": "完了" } }, "general": { From 08e3f11fc23e46e89f8d8d2346582f5c375ed223 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 14:36:57 +0900 Subject: [PATCH 100/215] Update source file web.json [ci skip] --- en/web.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index bce2a04..0bc4184 100644 --- a/en/web.json +++ b/en/web.json @@ -409,7 +409,20 @@ "Priority support" ], "confirmTitle": "Purchase {plan} plan?", - "confirmDesc": "You will be billed ¥{price}/month. Cancel anytime." + "confirmDesc": "You will be billed ¥{price}/month. Cancel anytime.", + "consentTitle": "Before You Continue", + "consentDesc": "To proceed with your purchase, we need to verify your age and obtain your consent.", + "consentDob": "Date of birth", + "consentYear": "Year", + "consentMonth": "Month", + "consentDay": "Day", + "consentTermsLabel": "I agree to the Terms of Service and Privacy Policy", + "consentParentalLabel": "I have obtained parental permission to make this purchase", + "consentMinorNotice": "Because you are under 18, parental consent is required.", + "consentUnderageError": "Sorry, users under 13 are not eligible to make purchases.", + "consentDataNote": "Your date of birth is used solely for age verification and will be shared with Stripe for payment processing.", + "consentContinue": "Agree and continue", + "consentSubmitting": "Verifying..." }, "accountSub": { "title": "Subscription Management", From 7477d976b895832ebda123cebd9946556d0b63b0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 14:37:04 +0900 Subject: [PATCH 101/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index d2117f2..f4a1fbe 100644 --- a/ja/web.json +++ b/ja/web.json @@ -409,7 +409,20 @@ "優先サポート" ], "confirmTitle": "{plan} プランを購入しますか?", - "confirmDesc": "月額 ¥{price} が請求されます。いつでもキャンセルできます。" + "confirmDesc": "月額 ¥{price} が請求されます。いつでもキャンセルできます。", + "consentTitle": "購入前の確認", + "consentDesc": "購入手続きを進めるにあたり、生年月日の確認と利用規約への同意が必要です。", + "consentDob": "生年月日", + "consentYear": "年", + "consentMonth": "月", + "consentDay": "日", + "consentTermsLabel": "利用規約およびプライバシーポリシーに同意します", + "consentParentalLabel": "保護者から購入の許可を得ています", + "consentMinorNotice": "18歳未満の方は、保護者の同意が必要です。", + "consentUnderageError": "申し訳ありませんが、13歳未満の方はご購入いただけません。", + "consentDataNote": "入力された生年月日は年齢確認のためにのみ使用され、決済処理のためStripeと共有されます。", + "consentContinue": "同意して続ける", + "consentSubmitting": "確認中..." }, "accountSub": { "title": "サブスクリプション管理", From edb3480d8a1384284864762a112cae3b888837ed Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 17:07:04 +0900 Subject: [PATCH 102/215] Update source file web.json [ci skip] --- en/web.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/en/web.json b/en/web.json index 0bc4184..060deed 100644 --- a/en/web.json +++ b/en/web.json @@ -212,6 +212,24 @@ "widget": { "customize": "Customize", "done": "Done" + }, + "fastaccess": { + "title": "Quick Access" + }, + "recentwork": { + "title": "Recent Work", + "empty": "No recent activity yet", + "justNow": "Just now", + "minutesAgo": "{n}m ago", + "hoursAgo": "{n}h ago", + "daysAgo": "{n}d ago" + }, + "analyticsummary": { + "title": "This Week's Summary", + "messages": "Messages", + "joins": "Joins", + "leaves": "Leaves", + "netChange": "Net Change" } }, "general": { From 92dce03332c26c875a04eba10ea5712562ba2a8b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 24 May 2026 17:07:10 +0900 Subject: [PATCH 103/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/ja/web.json b/ja/web.json index f4a1fbe..38de672 100644 --- a/ja/web.json +++ b/ja/web.json @@ -212,6 +212,24 @@ "widget": { "customize": "カスタマイズ", "done": "完了" + }, + "fastaccess": { + "title": "クイックアクセス" + }, + "recentwork": { + "title": "最近の作業", + "empty": "まだ作業履歴がありません", + "justNow": "たった今", + "minutesAgo": "{n}分前", + "hoursAgo": "{n}時間前", + "daysAgo": "{n}日前" + }, + "analyticsummary": { + "title": "今週のサマリー", + "messages": "メッセージ数", + "joins": "参加", + "leaves": "退出", + "netChange": "純増減" } }, "general": { From 65d0f28d4271cd2c0c17ba4b4cc1b8efbb491783 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 28 May 2026 14:14:12 +0900 Subject: [PATCH 104/215] Update source file bot.json [ci skip] --- en/bot.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 143ac6d..f66b96a 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1068,7 +1068,9 @@ "default_reason": "Automod Action", "btn_ban": "BAN", "btn_kick": "Kick", - "btn_unquarantine": "False Positive (Release)" + "btn_unquarantine": "Release", + "btn_false_positive": "False Positive", + "btn_confirm_spam": "Confirm Spam" }, "review_queue": { "title": "🔍 Review Required (Gray Zone)", @@ -1120,6 +1122,15 @@ "failed": "Failed to unquarantine user <@{userId}>.", "already_exists": "User <@{userId}> is not currently quarantined." }, + "mod_false_positive": { + "success": "Successfully released user <@{userId}> as a false positive.", + "failed": "Failed to unquarantine user <@{userId}>.", + "already_exists": "User <@{userId}> is not currently quarantined." + }, + "mod_confirm_spam": { + "success": "✅ Spam pattern has been registered.", + "no_data": "Pattern data not found (may have expired)." + }, "join_gate": { "dm_title": "🔒 Verification Required", "dm_body": "Verification is required to join **{guildName}**.\n\n[Click here to verify]({verifyUrl})\n\nThis link is valid for **10 minutes**.", From 77452d18855b79406c13a4ddc29f2283d2dd28db Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 28 May 2026 14:14:18 +0900 Subject: [PATCH 105/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index e69220e..fc45984 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1068,7 +1068,9 @@ "default_reason": "自動モデレーションによる処罰", "btn_ban": "BAN", "btn_kick": "キック", - "btn_unquarantine": "誤検知(隔離解除)" + "btn_unquarantine": "隔離解除", + "btn_false_positive": "誤検知として解除", + "btn_confirm_spam": "スパム確認" }, "review_queue": { "title": "🔍 要審査(グレーゾーン)", @@ -1120,6 +1122,15 @@ "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。", "already_exists": "ユーザー <@{userId}> は現在隔離されていません。" }, + "mod_false_positive": { + "success": "ユーザー <@{userId}> を誤検知として隔離解除しました。", + "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。", + "already_exists": "ユーザー <@{userId}> は現在隔離されていません。" + }, + "mod_confirm_spam": { + "success": "✅ スパムパターンを登録しました。", + "no_data": "パターンデータが見つかりませんでした(有効期限切れの可能性があります)。" + }, "join_gate": { "dm_title": "🔒 認証が必要です", "dm_body": "**{guildName}** に参加するには認証が必要です。\n\n[こちらをクリックして認証してください]({verifyUrl})\n\nリンクは **10分間** 有効です。", From 88af2189d994f846090c36597698ed20ab038f53 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 29 May 2026 17:18:57 +0900 Subject: [PATCH 106/215] Update source file web.json [ci skip] --- en/web.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 060deed..04609ef 100644 --- a/en/web.json +++ b/en/web.json @@ -1520,7 +1520,9 @@ "guilds": "Servers", "blacklist": "Blacklist", "spamPatterns": "Spam Patterns", - "economy": "Economy" + "economy": "Economy", + "features": "Feature Flags", + "testGroups": "Test Groups" }, "dashboard": { "title": "System Status", From d5ae0a08ba0ffa71aed78ca73e84be9d3eee6c73 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 29 May 2026 17:19:11 +0900 Subject: [PATCH 107/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 38de672..28544f9 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1520,7 +1520,9 @@ "guilds": "サーバー", "blacklist": "ブラックリスト", "spamPatterns": "スパムパターン", - "economy": "エコノミー" + "economy": "エコノミー", + "features": "フィーチャーフラグ", + "testGroups": "テストグループ" }, "dashboard": { "title": "システム状況", From 8e2cac146b8e4b365372069a8ea3c537a62032b1 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 2 Jun 2026 19:31:47 +0900 Subject: [PATCH 108/215] Update source file web.json [ci skip] --- en/web.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/en/web.json b/en/web.json index 04609ef..97d084d 100644 --- a/en/web.json +++ b/en/web.json @@ -1769,16 +1769,24 @@ "ruleCharSpamDesc": "Detect repeated characters or Zalgo text", "ruleUrlScan": "URL Scanning", "ruleUrlScanDesc": "Expand short URLs → check with Safe Browsing API", - "ruleImageHash": "Image Hash", - "ruleImageHashDesc": "Match against known spam/NSFW images (pHash)", + "ruleImageHash": "Spam Image Blocking", + "ruleImageHashDesc": "Compares images against Cube's spam/NSFW database and auto-removes matches", "ruleCrossChannel": "Cross-Channel", "ruleCrossChannelDesc": "Detect similar posts across multiple channels in short time", "rulePhishing": "Phishing", "rulePhishingDesc": "Detect known phishing domains and scam URL patterns", "ruleBlacklistWord": "Blacklist Words", "ruleBlacklistWordDesc": "Add heat to messages containing admin-configured words", - "blacklistWordAdd": "Add Word", + "blacklistWordAdd": "Add", "blacklistWordPlaceholder": "Enter forbidden word", + "blacklistWordPlaceholder_text": "Enter forbidden word (substring match)", + "blacklistWordPlaceholder_wildcard": "e.g. *badword* or spam*", + "blacklistWordPlaceholder_regex": "e.g. (bad|spam)\\w+", + "blacklistWordType_text": "Text", + "blacklistWordType_wildcard": "Wildcard", + "blacklistWordType_regex": "Regex", + "blacklistWordWildcardHint": "* matches any sequence of characters. e.g. *word* for substring, word* for prefix", + "blacklistWordRegexHint": "JavaScript regex supported (up to 10 regex patterns are synced to Discord AutoMod)", "blacklistWordHeat": "Heat Value", "blacklistWordHeatHelp": "1–100 (default 30%)", "ruleInactiveChannel": "Inactive Channel Post", From c5031aa387ed871a6bda0827e500b288a6cb1542 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 2 Jun 2026 19:32:00 +0900 Subject: [PATCH 109/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ja/web.json b/ja/web.json index 28544f9..54d5932 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1769,16 +1769,24 @@ "ruleCharSpamDesc": "同一文字の連続・Zalgoテキストを検知", "ruleUrlScan": "URLスキャン", "ruleUrlScanDesc": "短縮URL展開 → Safe Browsing APIで悪意あるURLを検知", - "ruleImageHash": "画像ハッシュ", - "ruleImageHashDesc": "既知スパム・NSFW画像の照合(pHash)", + "ruleImageHash": "スパム画像ブロック", + "ruleImageHashDesc": "Cubeのスパム・NSFW画像データベースと照合し、一致した画像を自動削除します", "ruleCrossChannel": "クロスチャンネル", "ruleCrossChannelDesc": "短時間に複数チャンネルへの類似投稿を検知", "rulePhishing": "フィッシング", "rulePhishingDesc": "既知フィッシングドメイン・詐欺URLパターンを検知", "ruleBlacklistWord": "ブラックリストワード", "ruleBlacklistWordDesc": "管理者が設定したワードを含むメッセージにheatを加算", - "blacklistWordAdd": "ワードを追加", + "blacklistWordAdd": "追加", "blacklistWordPlaceholder": "禁止ワードを入力", + "blacklistWordPlaceholder_text": "禁止ワードを入力(部分一致)", + "blacklistWordPlaceholder_wildcard": "例: *悪い言葉* または spam*", + "blacklistWordPlaceholder_regex": "例: (bad|spam)\\w+", + "blacklistWordType_text": "テキスト", + "blacklistWordType_wildcard": "ワイルドカード", + "blacklistWordType_regex": "正規表現", + "blacklistWordWildcardHint": "* は任意の文字列に一致します。例: *word* で部分一致、word* で前方一致", + "blacklistWordRegexHint": "JavaScript 正規表現が使用できます(最大10件まで Discord AutoMod に同期されます)", "blacklistWordHeat": "Heat値", "blacklistWordHeatHelp": "1〜100(デフォルト30%)", "ruleInactiveChannel": "活発でないチャンネルへの投稿", From c72dc59a349172375a5bcee7987f6207c157d5c5 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 14:34:19 +0900 Subject: [PATCH 110/215] Update source file bot.json [ci skip] --- en/bot.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/en/bot.json b/en/bot.json index f66b96a..ce87de6 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1069,6 +1069,7 @@ "btn_ban": "BAN", "btn_kick": "Kick", "btn_unquarantine": "Release", + "btn_untimeout": "Remove Timeout", "btn_false_positive": "False Positive", "btn_confirm_spam": "Confirm Spam" }, @@ -1122,6 +1123,12 @@ "failed": "Failed to unquarantine user <@{userId}>.", "already_exists": "User <@{userId}> is not currently quarantined." }, + "mod_untimeout": { + "success": "Successfully removed timeout for user <@{userId}>.", + "not_timed_out": "User <@{userId}> is not currently timed out.", + "not_found": "User <@{userId}> not found.", + "failed": "Failed to remove timeout for user <@{userId}>." + }, "mod_false_positive": { "success": "Successfully released user <@{userId}> as a false positive.", "failed": "Failed to unquarantine user <@{userId}>.", From 14fd8f93ff4dadc13fcf8490166b9624f598664a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 14:34:20 +0900 Subject: [PATCH 111/215] Update source file web.json [ci skip] --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index 97d084d..1cef614 100644 --- a/en/web.json +++ b/en/web.json @@ -19,6 +19,7 @@ "saving": "Saving...", "saved": "Saved", "unsavedChanges": "Unsaved changes", + "leaveWarning": "You have unsaved changes. Leave this page?", "discard": "Discard changes", "cancel": "Cancel", "close": "Close", @@ -169,6 +170,7 @@ "subscription": "Subscription", "credits": "Credits", "allServers": "All Servers", + "searchServers": "Search servers...", "manageSubscription": "Manage Subscription", "security": "Security", "logout": "Log Out", From efc622bad38ab13170a00445d4ad309e21e01608 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 14:34:25 +0900 Subject: [PATCH 112/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index fc45984..4613341 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1069,6 +1069,7 @@ "btn_ban": "BAN", "btn_kick": "キック", "btn_unquarantine": "隔離解除", + "btn_untimeout": "Remove Timeout", "btn_false_positive": "誤検知として解除", "btn_confirm_spam": "スパム確認" }, @@ -1122,6 +1123,12 @@ "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。", "already_exists": "ユーザー <@{userId}> は現在隔離されていません。" }, + "mod_untimeout": { + "success": "Successfully removed timeout for user <@{userId}>.", + "not_timed_out": "User <@{userId}> is not currently timed out.", + "not_found": "User <@{userId}> not found.", + "failed": "Failed to remove timeout for user <@{userId}>." + }, "mod_false_positive": { "success": "ユーザー <@{userId}> を誤検知として隔離解除しました。", "failed": "ユーザー <@{userId}> の隔離解除に失敗しました。", From a0b54dfe9f5d2f5dddf2c800ab20c14b8fc59bc2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 14:34:27 +0900 Subject: [PATCH 113/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index 54d5932..849ed04 100644 --- a/ja/web.json +++ b/ja/web.json @@ -19,6 +19,7 @@ "saving": "保存中...", "saved": "保存しました", "unsavedChanges": "未保存の変更があります", + "leaveWarning": "未保存の変更があります。ページを離れますか?", "discard": "変更を破棄", "cancel": "キャンセル", "close": "閉じる", @@ -169,6 +170,7 @@ "subscription": "サブスクリプション", "credits": "クレジット", "allServers": "すべてのサーバー", + "searchServers": "サーバーを検索...", "manageSubscription": "サブスクリプション管理", "security": "セキュリティ", "logout": "ログアウト", From dcf90be62906235ff77e99e55a93de03e640b0a2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 16:17:02 +0900 Subject: [PATCH 114/215] Update source file bot.json [ci skip] --- en/bot.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/en/bot.json b/en/bot.json index ce87de6..c422f36 100644 --- a/en/bot.json +++ b/en/bot.json @@ -649,6 +649,13 @@ "flag_suspicious": { "cannot_flag_self": "You cannot flag yourself or the bot as suspicious.", "success": "✅ Added Suspicion Level 1 (Gray) to <@{userId}>." + }, + "setup": { + "owner_only": "❌ Only the server owner can run this command.", + "already_setup": "❌ This server is already set up.", + "success": "✅ Setup completed successfully.", + "no_manage_roles": "❌ The bot is missing the **Manage Roles** permission. Please grant it and try again.", + "role_too_low": "❌ The bot's role (**{roleName}**) is too low. Please move it to the top 3 in the role list and try again." } }, "info": { From b9344abc9a43f2a5ac7e1edd87a5b3871e01b51f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 16:17:15 +0900 Subject: [PATCH 115/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 4613341..6cdb480 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -649,6 +649,13 @@ "flag_suspicious": { "cannot_flag_self": "自分自身またはBotにSuspicion Levelを付与することはできません。", "success": "✅ <@{userId}> にSuspicion Level 1(グレー)を付与しました。" + }, + "setup": { + "owner_only": "❌ このコマンドはサーバーオーナーのみ実行できます。", + "already_setup": "❌ 既にセットアップ済みです。", + "success": "✅ セットアップが完了しました。", + "no_manage_roles": "❌ Botに **ロールの管理** 権限がありません。権限を付与してから再度お試しください。", + "role_too_low": "❌ Botのロール(**{roleName}**)が低すぎます。ロール一覧の上から3番目以内に移動してから再度お試しください。" } }, "info": { @@ -1069,7 +1076,7 @@ "btn_ban": "BAN", "btn_kick": "キック", "btn_unquarantine": "隔離解除", - "btn_untimeout": "Remove Timeout", + "btn_untimeout": "タイムアウト解除", "btn_false_positive": "誤検知として解除", "btn_confirm_spam": "スパム確認" }, @@ -1124,10 +1131,10 @@ "already_exists": "ユーザー <@{userId}> は現在隔離されていません。" }, "mod_untimeout": { - "success": "Successfully removed timeout for user <@{userId}>.", - "not_timed_out": "User <@{userId}> is not currently timed out.", - "not_found": "User <@{userId}> not found.", - "failed": "Failed to remove timeout for user <@{userId}>." + "success": "ユーザー <@{userId}> のタイムアウトを解除しました。", + "not_timed_out": "ユーザー <@{userId}> は現在タイムアウト中ではありません。", + "not_found": "ユーザー <@{userId}> が見つかりません。", + "failed": "ユーザー <@{userId}> のタイムアウト解除に失敗しました。" }, "mod_false_positive": { "success": "ユーザー <@{userId}> を誤検知として隔離解除しました。", From b96b055b230c69ace895784abe36ffea966a30fa Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 18:55:15 +0900 Subject: [PATCH 116/215] Update source file web.json [ci skip] --- en/web.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 1cef614..32585bb 100644 --- a/en/web.json +++ b/en/web.json @@ -1761,6 +1761,10 @@ "setupBtn": "Setup", "requesting": "Processing...", "setupDone": "Done", + "discordRegistered": "Registered in Discord", + "discordNotRegistered": "Not registered in Discord", + "discordRegisterBtn": "Register in Discord", + "discordRegistering": "Registering...", "ruleMentionSpam": "Mention Spam", "ruleMentionSpamDesc": "Adds heat for @user / @role / @here / @everyone mentions", "ruleInviteLink": "Invite Links", @@ -1816,7 +1820,6 @@ "ruleAttachment": "Attachments", "ruleAttachmentDesc": "Image and file attachments (+4% each, always)", "whitelistSection": "Whitelist", - "whitelistUsers": "Exempt Users", "whitelistRoles": "Exempt Roles", "whitelistChannels": "Exempt Channels", "whitelistAddPlaceholder": "Enter ID", From 97840707d7240408562259dd6e71bbb0db215577 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 18:55:37 +0900 Subject: [PATCH 117/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 849ed04..cc938c4 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1761,6 +1761,10 @@ "setupBtn": "セットアップ", "requesting": "処理中...", "setupDone": "完了", + "discordRegistered": "Discord登録済み", + "discordNotRegistered": "Discord未登録", + "discordRegisterBtn": "Discordに登録", + "discordRegistering": "登録中...", "ruleMentionSpam": "メンションスパム", "ruleMentionSpamDesc": "@user / @role / @here / @everyone のメンションをheatとして加算", "ruleInviteLink": "招待リンク", @@ -1816,7 +1820,6 @@ "ruleAttachment": "添付ファイル", "ruleAttachmentDesc": "画像・ファイルの添付ごとに +4%(常時適用)", "whitelistSection": "ホワイトリスト", - "whitelistUsers": "ユーザー除外", "whitelistRoles": "ロール除外", "whitelistChannels": "チャンネル除外", "whitelistAddPlaceholder": "IDを入力", From bc4f3f7a165870486f037cf8a0164bc72f095f44 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 21:23:40 +0900 Subject: [PATCH 118/215] Update source file bot.json [ci skip] --- en/bot.json | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/en/bot.json b/en/bot.json index c422f36..e11a57a 100644 --- a/en/bot.json +++ b/en/bot.json @@ -995,7 +995,34 @@ "embed_deleted_thread_intro": "This thread stores the embed preview of the deleted message.", "deleted_embed_preview": "Deleted Embed", "emoji": "Emoji", - "message": "Message" + "message": "Message", + "enabled": "Enabled", + "disabled": "Disabled", + "afk_channel": "AFK Channel", + "afk_timeout": "AFK Timeout", + "mfa_level": "2FA Requirement", + "widget_enabled": "Widget", + "widget_channel": "Widget Channel", + "preferred_locale": "Preferred Language", + "safety_alerts_channel": "Safety Alerts Channel", + "nsfw_level": "NSFW Level", + "public_updates_channel": "Community Updates Channel", + "features_added": "Features Added", + "features_removed": "Features Removed", + "automod_trigger": "Trigger Type", + "automod_trigger_keyword": "Keyword", + "automod_trigger_spam": "Spam", + "automod_trigger_preset": "Keyword Preset", + "automod_trigger_mention_spam": "Mention Spam", + "automod_trigger_member_profile": "Member Profile", + "automod_actions": "Actions", + "automod_action_block": "Block Message", + "automod_action_alert": "Send Alert", + "automod_action_timeout": "Timeout", + "automod_action_block_interaction": "Block Interaction", + "automod_enabled": "Enabled", + "automod_exempt_roles": "Exempt Roles", + "automod_exempt_channels": "Exempt Channels" }, "events": { "guild_update": "Server Updated", @@ -1046,7 +1073,10 @@ "guild_scheduled_event_delete": "Event Deleted", "thread_create": "Thread Created", "thread_update": "Thread Updated", - "thread_delete": "Thread Deleted" + "thread_delete": "Thread Deleted", + "automod_rule_create": "AutoMod Rule Created", + "automod_rule_update": "AutoMod Rule Updated", + "automod_rule_delete": "AutoMod Rule Deleted" }, "reason": { "role_keeper_regrant": "RoleKeeper: Re-granting previously held roles", From 2dbe7ab10aa73d7081493f83dd4fed6557492f5f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 21:23:42 +0900 Subject: [PATCH 119/215] Update source file web.json [ci skip] --- en/web.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/en/web.json b/en/web.json index 32585bb..9e2403e 100644 --- a/en/web.json +++ b/en/web.json @@ -732,6 +732,10 @@ "threads": { "name": "Threads", "desc": "Thread lifecycle changes" + }, + "automod": { + "name": "AutoMod", + "desc": "AutoMod rule create, update, and delete" } } }, @@ -923,6 +927,18 @@ "thread_delete": { "name": "Thread Delete", "desc": "Log Thread Delete events" + }, + "automod_rule_create": { + "name": "AutoMod Rule Created", + "desc": "Logs AutoMod rule creation events" + }, + "automod_rule_update": { + "name": "AutoMod Rule Updated", + "desc": "Logs AutoMod rule update events" + }, + "automod_rule_delete": { + "name": "AutoMod Rule Deleted", + "desc": "Logs AutoMod rule deletion events" } }, "options": { From e52db7bcd7993fc81a93448a44582acb5b9279ca Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 21:23:44 +0900 Subject: [PATCH 120/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 6cdb480..13d7b9b 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -995,7 +995,34 @@ "embed_deleted_thread_intro": "このスレッドには削除されたメッセージのEmbedプレビューが保存されています。", "deleted_embed_preview": "削除前Embed", "emoji": "絵文字", - "message": "メッセージ" + "message": "メッセージ", + "enabled": "有効", + "disabled": "無効", + "afk_channel": "AFKチャンネル", + "afk_timeout": "AFKタイムアウト", + "mfa_level": "2段階認証要件", + "widget_enabled": "ウィジェット", + "widget_channel": "ウィジェットチャンネル", + "preferred_locale": "優先言語", + "safety_alerts_channel": "セーフティアラートチャンネル", + "nsfw_level": "NSFWレベル", + "public_updates_channel": "コミュニティアップデートチャンネル", + "features_added": "追加された機能", + "features_removed": "削除された機能", + "automod_trigger": "トリガータイプ", + "automod_trigger_keyword": "キーワード", + "automod_trigger_spam": "スパム", + "automod_trigger_preset": "キーワードプリセット", + "automod_trigger_mention_spam": "メンションスパム", + "automod_trigger_member_profile": "メンバープロフィール", + "automod_actions": "アクション", + "automod_action_block": "メッセージをブロック", + "automod_action_alert": "アラート送信", + "automod_action_timeout": "タイムアウト", + "automod_action_block_interaction": "インタラクションをブロック", + "automod_enabled": "有効化", + "automod_exempt_roles": "除外ロール", + "automod_exempt_channels": "除外チャンネル" }, "events": { "guild_update": "サーバー設定更新", @@ -1046,7 +1073,10 @@ "guild_scheduled_event_delete": "イベント削除", "thread_create": "スレッド作成", "thread_update": "スレッド更新", - "thread_delete": "スレッド削除" + "thread_delete": "スレッド削除", + "automod_rule_create": "AutoModルール作成", + "automod_rule_update": "AutoModルール更新", + "automod_rule_delete": "AutoModルール削除" }, "reason": { "role_keeper_regrant": "RoleKeeper: 以前保持していたロールの再付与", From 7203fb75b892dd2e5e0691b536d006bfd9511182 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 3 Jun 2026 21:23:46 +0900 Subject: [PATCH 121/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/ja/web.json b/ja/web.json index cc938c4..feb463e 100644 --- a/ja/web.json +++ b/ja/web.json @@ -732,6 +732,10 @@ "threads": { "name": "スレッド", "desc": "スレッドの作成・更新・削除" + }, + "automod": { + "name": "AutoMod", + "desc": "AutoModルールの作成・更新・削除" } } }, @@ -923,6 +927,18 @@ "thread_delete": { "name": "スレッド削除", "desc": "スレッド削除のログを記録します" + }, + "automod_rule_create": { + "name": "AutoModルール作成", + "desc": "AutoModルール作成のログを記録します" + }, + "automod_rule_update": { + "name": "AutoModルール更新", + "desc": "AutoModルール更新のログを記録します" + }, + "automod_rule_delete": { + "name": "AutoModルール削除", + "desc": "AutoModルール削除のログを記録します" } }, "options": { From f0069cf785643290723e24d61d550433107532a0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 4 Jun 2026 00:11:12 +0900 Subject: [PATCH 122/215] Update source file web.json [ci skip] --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index 9e2403e..8ab4925 100644 --- a/en/web.json +++ b/en/web.json @@ -1720,6 +1720,8 @@ "panicModeDesc": "When enabled, significantly lowers the action threshold for all users", "crossServerOptInLabel": "Cross-Server Risk Sharing", "crossServerOptInDesc": "When enabled, anonymously contributes violation data to the cross-server risk database to improve threat detection across servers", + "trustedRolesLabel": "Trusted Roles (AutoMod Bypass)", + "trustedRolesDesc": "Members with these roles will bypass all AutoMod detection", "antiNukeSection": "AntiNuke", "antiNukeDesc": "Detects and responds to destructive server actions (channel deletion, mass bans, etc.)", "antiNukeChannelDeleteLabel": "Channel delete", From 6d1054a40c5ed2354de1cfa0f604a79e4cf78b7f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 4 Jun 2026 00:11:23 +0900 Subject: [PATCH 123/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index feb463e..9845f52 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1720,6 +1720,8 @@ "panicModeDesc": "有効時、全ユーザーへの制裁閾値を大幅に下げます", "crossServerOptInLabel": "サーバー間のリスク共有", "crossServerOptInDesc": "有効時、このサーバーの違反情報を匿名でクロスサーバーリスクデータベースに提供し、他サーバーの脅威検知精度を向上します", + "trustedRolesLabel": "信頼ロール(AutoMod完全免除)", + "trustedRolesDesc": "このロールを持つメンバーはすべてのAutoMod検知をスキップします", "antiNukeSection": "AntiNuke", "antiNukeDesc": "サーバーへの破壊的な操作(チャンネル削除・一括BAN等)を検知・対応します", "antiNukeChannelDeleteLabel": "チャンネル削除", From 3da9c011a5d27e37be4f74d2133abfd2e973c0b0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 00:53:47 +0900 Subject: [PATCH 124/215] Update source file bot.json [ci skip] --- en/bot.json | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/en/bot.json b/en/bot.json index e11a57a..f534b29 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1229,6 +1229,54 @@ "NSFW_URL": "NSFW Link", "ANTINUKE": "Anti-Nuke Detection", "ANTINUKE_ROLE_GRANT": "Granted dangerous permissions to a role" + }, + "legacy_automod": { + "category": { + "harassment": "Harassment", + "harassment/threatening": "Harassment (Threatening)", + "hate": "Hate", + "hate/threatening": "Hate (Threatening)", + "sexual": "Sexual", + "sexual/minors": "Sexual (Minors)", + "violence": "Violence", + "violence/graphic": "Violence (Graphic)", + "self-harm": "Self-harm", + "self-harm/intent": "Self-harm (Intent)", + "self-harm/instructions": "Self-harm (Instructions)", + "illicit": "Illicit", + "illicit/violent": "Illicit (Violent)" + }, + "thread_delete_reason": "Auto-deleted by Legacy AI Moderation", + "report": { + "title": "🛡️ Legacy AI Moderation Detection", + "thread_title": "🛡️ Legacy AI Moderation Detection (Thread)", + "author": "**Author:** <@{userId}> (`{userTag}`)", + "content": "**Content:**\n{content}", + "high_score": "**High-score categories:** {categories}", + "flagged": "**Flagged categories:** {categories}", + "auto_action": "**Auto action:** {action}", + "action_deleted": "Deleted", + "action_none": "None", + "jump": "[Jump to message]({url})", + "btn_delete": "Delete Message", + "btn_warn": "Send Warning" + }, + "delete": { + "success": "Message deleted.", + "failed": "Failed to delete the message.", + "not_found": "The target message was not found." + }, + "warn": { + "modal_title": "Send Warning", + "reason_label": "Warning Reason", + "reason_placeholder": "Enter the reason for the warning", + "bot_not_allowed": "You cannot send a warning to a bot.", + "success": "Sent a warning to <@{userId}>.", + "dm_failed": "Failed to DM <@{userId}> (their DMs may be closed).", + "dm_title": "⚠️ Warning", + "dm_body": "You have received a warning from **{guildName}**.\n**Reason:** {reason}", + "log_appended": "✅ <@{moderatorId}> sent a warning to <@{userId}>.\n**Reason:** {reason}" + } } } } From 67402245dddb61e193d18c0ddf9162f7da3b496b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 00:53:48 +0900 Subject: [PATCH 125/215] Update source file web.json [ci skip] --- en/web.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 8ab4925..f696cbe 100644 --- a/en/web.json +++ b/en/web.json @@ -1881,7 +1881,31 @@ "scheduleEnabled": "Enabled", "scheduleDeleteConfirm": "Delete this rule?", "scheduleNoRules": "No schedule rules", - "scheduleAddRuleTitle": "Add Rule" + "scheduleAddRuleTitle": "Add Rule", + "aiModerationModeLabel": "AI Moderation Mode", + "aiModerationModeDesc": "Select the AI moderation mode using omni-moderation scores", + "aiModerationModeOff": "Off", + "aiModerationModeOffDesc": "Disable AI moderation", + "aiModerationModeLegacy": "Legacy (Free)", + "aiModerationModeLegacyDesc": "Simple AI moderation using score thresholds only", + "aiModerationModeAdvanced": "Advanced (Coming Soon)", + "aiModerationModeAdvancedDesc": "High-capability moderation using AI lanes (coming soon)", + "legacyAiSection": "Legacy AI Moderation Settings", + "legacyAiDesc": "Automatically reports and deletes messages based on omni-moderation scores", + "legacyAiLogChannelLabel": "Log Channel", + "legacyAiReportScoreLabel": "Report Score Threshold", + "legacyAiReportScoreDesc": "Report to log when score reaches this value (0–1)", + "legacyAiDeleteScoreLabel": "Delete Score Threshold", + "legacyAiDeleteScoreDesc": "Auto-delete messages when score reaches this value (0–1, recommended ≥ report score)", + "legacyAiScoreRecommend": "Delete score should be greater than or equal to report score", + "legacyAiBypassChannelsLabel": "Bypass Channels", + "legacyAiBypassChannelsDesc": "Messages in these channels skip AI moderation", + "legacyAiBypassRolesLabel": "Bypass Roles", + "legacyAiBypassRolesDesc": "Users with these roles skip AI moderation", + "legacyAiBypassStringsLabel": "Bypass Strings", + "legacyAiBypassStringsDesc": "Messages containing these strings are skipped", + "legacyAiBypassStringPlaceholder": "Enter string to bypass", + "legacyAiBypassStringAdd": "Add" }, "accountSecurity": { "title": "Security", From 248a6a6fea2d5eac1609970c7324c84eabba2db5 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 00:54:06 +0900 Subject: [PATCH 126/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 13d7b9b..08cf294 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1229,6 +1229,54 @@ "NSFW_URL": "NSFWリンク", "ANTINUKE": "破壊行為(Anti-Nuke)の検出", "ANTINUKE_ROLE_GRANT": "ロールへの危険な権限の付与" + }, + "legacy_automod": { + "category": { + "harassment": "嫌がらせ", + "harassment/threatening": "嫌がらせ(脅迫)", + "hate": "ヘイト", + "hate/threatening": "ヘイト(脅迫)", + "sexual": "性的", + "sexual/minors": "性的(未成年)", + "violence": "暴力", + "violence/graphic": "暴力(描写)", + "self-harm": "自傷", + "self-harm/intent": "自傷(意図)", + "self-harm/instructions": "自傷(手段)", + "illicit": "違法行為", + "illicit/violent": "違法行為(暴力)" + }, + "thread_delete_reason": "レガシーAIモデレーションによる自動削除", + "report": { + "title": "🛡️ レガシーAIモデレーション検知", + "thread_title": "🛡️ レガシーAIモデレーション検知(スレッド)", + "author": "**送信者:** <@{userId}> (`{userTag}`)", + "content": "**内容:**\n{content}", + "high_score": "**高スコアカテゴリ:** {categories}", + "flagged": "**フラグ付きカテゴリ:** {categories}", + "auto_action": "**自動対応:** {action}", + "action_deleted": "削除", + "action_none": "なし", + "jump": "[メッセージへ移動]({url})", + "btn_delete": "メッセージ削除", + "btn_warn": "警告を送信" + }, + "delete": { + "success": "メッセージを削除しました。", + "failed": "メッセージの削除に失敗しました。", + "not_found": "対象のメッセージが見つかりませんでした。" + }, + "warn": { + "modal_title": "警告の送信", + "reason_label": "警告理由", + "reason_placeholder": "警告の理由を入力してください", + "bot_not_allowed": "Botへ警告を送信することはできません。", + "success": "<@{userId}> へ警告を送信しました。", + "dm_failed": "<@{userId}> へのDM送信に失敗しました(DMが閉じられている可能性があります)。", + "dm_title": "⚠️ 警告", + "dm_body": "**{guildName}** から警告を受けました。\n**理由:** {reason}", + "log_appended": "✅ <@{moderatorId}> が <@{userId}> へ警告を送信しました。\n**理由:** {reason}" + } } } } From 22d258d3d72289980a44bb9f760ef8ac5c468d18 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 00:54:07 +0900 Subject: [PATCH 127/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 9845f52..7fde290 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1881,7 +1881,31 @@ "scheduleEnabled": "有効", "scheduleDeleteConfirm": "このルールを削除しますか?", "scheduleNoRules": "スケジュールルールがありません", - "scheduleAddRuleTitle": "ルールを追加" + "scheduleAddRuleTitle": "ルールを追加", + "aiModerationModeLabel": "AIモデレーションモード", + "aiModerationModeDesc": "omni-moderationスコアを使った自動AIモデレーションのモードを選択します", + "aiModerationModeOff": "無効", + "aiModerationModeOffDesc": "AIモデレーションを使用しない", + "aiModerationModeLegacy": "レガシー(無料)", + "aiModerationModeLegacyDesc": "スコア閾値のみで判定するシンプルなAIモデレーション", + "aiModerationModeAdvanced": "次世代(準備中)", + "aiModerationModeAdvancedDesc": "AIレーンを使った高度なモデレーション(近日公開)", + "legacyAiSection": "レガシーAIモデレーション設定", + "legacyAiDesc": "omni-moderationのスコアを基に自動でレポート・削除を行います", + "legacyAiLogChannelLabel": "ログチャンネル", + "legacyAiReportScoreLabel": "レポートスコア閾値", + "legacyAiReportScoreDesc": "このスコア以上でログに報告します(0〜1)", + "legacyAiDeleteScoreLabel": "削除スコア閾値", + "legacyAiDeleteScoreDesc": "このスコア以上でメッセージを自動削除します(0〜1、レポート以上推奨)", + "legacyAiScoreRecommend": "削除スコアはレポートスコア以上を推奨します", + "legacyAiBypassChannelsLabel": "バイパスチャンネル", + "legacyAiBypassChannelsDesc": "このチャンネルのメッセージはAIモデレーションをスキップします", + "legacyAiBypassRolesLabel": "バイパスロール", + "legacyAiBypassRolesDesc": "このロールを持つユーザーはAIモデレーションをスキップします", + "legacyAiBypassStringsLabel": "バイパス文字列", + "legacyAiBypassStringsDesc": "この文字列を含むメッセージはスキップします", + "legacyAiBypassStringPlaceholder": "バイパスする文字列を入力", + "legacyAiBypassStringAdd": "追加" }, "accountSecurity": { "title": "セキュリティ", From 0adefc215d1b3ee669177fc8165ce87e35f51e78 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 17:54:24 +0900 Subject: [PATCH 128/215] Update source file web.json [ci skip] --- en/web.json | 50 ++++++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/en/web.json b/en/web.json index f696cbe..d589ecf 100644 --- a/en/web.json +++ b/en/web.json @@ -312,7 +312,29 @@ "statusRunning": "Running", "statusStopped": "Stopped", "logTitle": "Moderation Logs", - "logEmpty": "No logs" + "logEmpty": "No logs", + "legacyAiSection": "Legacy AI Moderation Settings", + "legacyAiDesc": "Automatically reports and deletes messages based on omni-moderation scores", + "legacyAiLogChannelLabel": "Log Channel", + "legacyAiReportScoreLabel": "Report Score Threshold", + "legacyAiReportScoreDesc": "Report to log when score reaches this value (0–1)", + "legacyAiDeleteScoreLabel": "Delete Score Threshold", + "legacyAiDeleteScoreDesc": "Auto-delete messages when score reaches this value (0–1, recommended ≥ report score)", + "legacyAiScoreRecommend": "Delete score should be greater than or equal to report score", + "legacyAiBypassChannelsLabel": "Bypass Channels", + "legacyAiBypassChannelsDesc": "Messages in these channels skip AI moderation", + "legacyAiBypassRolesLabel": "Bypass Roles", + "legacyAiBypassRolesDesc": "Users with these roles skip AI moderation", + "legacyAiBypassStringsLabel": "Bypass Strings", + "legacyAiBypassStringsDesc": "Messages containing these strings are skipped", + "legacyAiBypassStringPlaceholder": "Enter string to bypass", + "legacyAiBypassStringAdd": "Add", + "noChannel": "No channel", + "noRole": "No role", + "permissionDenied": "You don't have Master permission to change settings", + "saveError": "Failed to save", + "forbiddenTitle": "Access Denied", + "forbiddenDesc": "You need Master permission to view or edit moderation settings for this server." }, "subscription": { "title": "Subscription", @@ -1881,31 +1903,7 @@ "scheduleEnabled": "Enabled", "scheduleDeleteConfirm": "Delete this rule?", "scheduleNoRules": "No schedule rules", - "scheduleAddRuleTitle": "Add Rule", - "aiModerationModeLabel": "AI Moderation Mode", - "aiModerationModeDesc": "Select the AI moderation mode using omni-moderation scores", - "aiModerationModeOff": "Off", - "aiModerationModeOffDesc": "Disable AI moderation", - "aiModerationModeLegacy": "Legacy (Free)", - "aiModerationModeLegacyDesc": "Simple AI moderation using score thresholds only", - "aiModerationModeAdvanced": "Advanced (Coming Soon)", - "aiModerationModeAdvancedDesc": "High-capability moderation using AI lanes (coming soon)", - "legacyAiSection": "Legacy AI Moderation Settings", - "legacyAiDesc": "Automatically reports and deletes messages based on omni-moderation scores", - "legacyAiLogChannelLabel": "Log Channel", - "legacyAiReportScoreLabel": "Report Score Threshold", - "legacyAiReportScoreDesc": "Report to log when score reaches this value (0–1)", - "legacyAiDeleteScoreLabel": "Delete Score Threshold", - "legacyAiDeleteScoreDesc": "Auto-delete messages when score reaches this value (0–1, recommended ≥ report score)", - "legacyAiScoreRecommend": "Delete score should be greater than or equal to report score", - "legacyAiBypassChannelsLabel": "Bypass Channels", - "legacyAiBypassChannelsDesc": "Messages in these channels skip AI moderation", - "legacyAiBypassRolesLabel": "Bypass Roles", - "legacyAiBypassRolesDesc": "Users with these roles skip AI moderation", - "legacyAiBypassStringsLabel": "Bypass Strings", - "legacyAiBypassStringsDesc": "Messages containing these strings are skipped", - "legacyAiBypassStringPlaceholder": "Enter string to bypass", - "legacyAiBypassStringAdd": "Add" + "scheduleAddRuleTitle": "Add Rule" }, "accountSecurity": { "title": "Security", From 3bf32c7a45b2943b1544472e8acbfbd8ce8fa107 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 17:54:35 +0900 Subject: [PATCH 129/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 50 ++++++++++++++++++++++++-------------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/ja/web.json b/ja/web.json index 7fde290..40ea4c9 100644 --- a/ja/web.json +++ b/ja/web.json @@ -312,7 +312,29 @@ "statusRunning": "実行中", "statusStopped": "停止中", "logTitle": "モデレーションログ", - "logEmpty": "ログはありません" + "logEmpty": "ログはありません", + "legacyAiSection": "レガシーAIモデレーション設定", + "legacyAiDesc": "omni-moderationのスコアを基に自動でレポート・削除を行います", + "legacyAiLogChannelLabel": "ログチャンネル", + "legacyAiReportScoreLabel": "レポートスコア閾値", + "legacyAiReportScoreDesc": "このスコア以上でログに報告します(0〜1)", + "legacyAiDeleteScoreLabel": "削除スコア閾値", + "legacyAiDeleteScoreDesc": "このスコア以上でメッセージを自動削除します(0〜1、レポート以上推奨)", + "legacyAiScoreRecommend": "削除スコアはレポートスコア以上を推奨します", + "legacyAiBypassChannelsLabel": "バイパスチャンネル", + "legacyAiBypassChannelsDesc": "このチャンネルのメッセージはAIモデレーションをスキップします", + "legacyAiBypassRolesLabel": "バイパスロール", + "legacyAiBypassRolesDesc": "このロールを持つユーザーはAIモデレーションをスキップします", + "legacyAiBypassStringsLabel": "バイパス文字列", + "legacyAiBypassStringsDesc": "この文字列を含むメッセージはスキップします", + "legacyAiBypassStringPlaceholder": "バイパスする文字列を入力", + "legacyAiBypassStringAdd": "追加", + "noChannel": "チャンネルなし", + "noRole": "ロールなし", + "permissionDenied": "Master権限がないため設定を変更できません", + "saveError": "保存に失敗しました", + "forbiddenTitle": "アクセス権限がありません", + "forbiddenDesc": "このサーバーのモデレーション設定を閲覧・編集するにはMaster権限が必要です。" }, "subscription": { "title": "サブスクリプション", @@ -1881,31 +1903,7 @@ "scheduleEnabled": "有効", "scheduleDeleteConfirm": "このルールを削除しますか?", "scheduleNoRules": "スケジュールルールがありません", - "scheduleAddRuleTitle": "ルールを追加", - "aiModerationModeLabel": "AIモデレーションモード", - "aiModerationModeDesc": "omni-moderationスコアを使った自動AIモデレーションのモードを選択します", - "aiModerationModeOff": "無効", - "aiModerationModeOffDesc": "AIモデレーションを使用しない", - "aiModerationModeLegacy": "レガシー(無料)", - "aiModerationModeLegacyDesc": "スコア閾値のみで判定するシンプルなAIモデレーション", - "aiModerationModeAdvanced": "次世代(準備中)", - "aiModerationModeAdvancedDesc": "AIレーンを使った高度なモデレーション(近日公開)", - "legacyAiSection": "レガシーAIモデレーション設定", - "legacyAiDesc": "omni-moderationのスコアを基に自動でレポート・削除を行います", - "legacyAiLogChannelLabel": "ログチャンネル", - "legacyAiReportScoreLabel": "レポートスコア閾値", - "legacyAiReportScoreDesc": "このスコア以上でログに報告します(0〜1)", - "legacyAiDeleteScoreLabel": "削除スコア閾値", - "legacyAiDeleteScoreDesc": "このスコア以上でメッセージを自動削除します(0〜1、レポート以上推奨)", - "legacyAiScoreRecommend": "削除スコアはレポートスコア以上を推奨します", - "legacyAiBypassChannelsLabel": "バイパスチャンネル", - "legacyAiBypassChannelsDesc": "このチャンネルのメッセージはAIモデレーションをスキップします", - "legacyAiBypassRolesLabel": "バイパスロール", - "legacyAiBypassRolesDesc": "このロールを持つユーザーはAIモデレーションをスキップします", - "legacyAiBypassStringsLabel": "バイパス文字列", - "legacyAiBypassStringsDesc": "この文字列を含むメッセージはスキップします", - "legacyAiBypassStringPlaceholder": "バイパスする文字列を入力", - "legacyAiBypassStringAdd": "追加" + "scheduleAddRuleTitle": "ルールを追加" }, "accountSecurity": { "title": "セキュリティ", From a3a5e9d92984478763757b2f6ffc093da826ca0b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 19:45:13 +0900 Subject: [PATCH 130/215] Update source file web.json [ci skip] --- en/web.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/en/web.json b/en/web.json index d589ecf..f9db23b 100644 --- a/en/web.json +++ b/en/web.json @@ -317,9 +317,9 @@ "legacyAiDesc": "Automatically reports and deletes messages based on omni-moderation scores", "legacyAiLogChannelLabel": "Log Channel", "legacyAiReportScoreLabel": "Report Score Threshold", - "legacyAiReportScoreDesc": "Report to log when score reaches this value (0–1)", + "legacyAiReportScoreDesc": "Lower is more sensitive; flagged messages are reported to the log", "legacyAiDeleteScoreLabel": "Delete Score Threshold", - "legacyAiDeleteScoreDesc": "Auto-delete messages when score reaches this value (0–1, recommended ≥ report score)", + "legacyAiDeleteScoreDesc": "Messages above this value are auto-deleted (recommended ≥ report value)", "legacyAiScoreRecommend": "Delete score should be greater than or equal to report score", "legacyAiBypassChannelsLabel": "Bypass Channels", "legacyAiBypassChannelsDesc": "Messages in these channels skip AI moderation", @@ -334,7 +334,15 @@ "permissionDenied": "You don't have Master permission to change settings", "saveError": "Failed to save", "forbiddenTitle": "Access Denied", - "forbiddenDesc": "You need Master permission to view or edit moderation settings for this server." + "forbiddenDesc": "You need Master permission to view or edit moderation settings for this server.", + "modeLabel": "Moderation mode", + "modeDesc": "Choose how messages are automatically monitored", + "modeOff": "Off", + "modeOffDesc": "No automatic monitoring", + "modeLegacy": "Legacy", + "modeLegacyDesc": "Automatically detects, reports and removes inappropriate messages (free)", + "modeAdvanced": "Next-gen", + "modeAdvancedDesc": "Advanced AI moderation that understands context" }, "subscription": { "title": "Subscription", From a78a6939696d68120be44d0e76a05cee64eadbfe Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 5 Jun 2026 19:45:15 +0900 Subject: [PATCH 131/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ja/web.json b/ja/web.json index 40ea4c9..997f73b 100644 --- a/ja/web.json +++ b/ja/web.json @@ -317,9 +317,9 @@ "legacyAiDesc": "omni-moderationのスコアを基に自動でレポート・削除を行います", "legacyAiLogChannelLabel": "ログチャンネル", "legacyAiReportScoreLabel": "レポートスコア閾値", - "legacyAiReportScoreDesc": "このスコア以上でログに報告します(0〜1)", + "legacyAiReportScoreDesc": "低いほど敏感に検知し、ログに通知します", "legacyAiDeleteScoreLabel": "削除スコア閾値", - "legacyAiDeleteScoreDesc": "このスコア以上でメッセージを自動削除します(0〜1、レポート以上推奨)", + "legacyAiDeleteScoreDesc": "この値を超えたメッセージを自動削除します(通知の値以上を推奨)", "legacyAiScoreRecommend": "削除スコアはレポートスコア以上を推奨します", "legacyAiBypassChannelsLabel": "バイパスチャンネル", "legacyAiBypassChannelsDesc": "このチャンネルのメッセージはAIモデレーションをスキップします", @@ -334,7 +334,15 @@ "permissionDenied": "Master権限がないため設定を変更できません", "saveError": "保存に失敗しました", "forbiddenTitle": "アクセス権限がありません", - "forbiddenDesc": "このサーバーのモデレーション設定を閲覧・編集するにはMaster権限が必要です。" + "forbiddenDesc": "このサーバーのモデレーション設定を閲覧・編集するにはMaster権限が必要です。", + "modeLabel": "モデレーションモード", + "modeDesc": "メッセージの自動監視方法を選択します", + "modeOff": "なし", + "modeOffDesc": "自動監視を行いません", + "modeLegacy": "レガシー版", + "modeLegacyDesc": "不適切なメッセージを自動で検知・通知・削除します(無料)", + "modeAdvanced": "次世代", + "modeAdvancedDesc": "文脈を理解する高度な AI モデレーション" }, "subscription": { "title": "サブスクリプション", From 6bfb8deff5c1a4f872780af293ba06f06362f057 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 00:12:10 +0900 Subject: [PATCH 132/215] Update source file bot.json [ci skip] --- en/bot.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index f534b29..732e79b 100644 --- a/en/bot.json +++ b/en/bot.json @@ -551,7 +551,8 @@ "success": "✅ Successfully gave role to {user}.", "cant_find_role_or_member": "❌ We couldn't find the role or member.", "failed_add_role": "❌ Failed to give role to {user}.\nPlease check role hierarchy and permissions.", - "already_has_role": "ℹ️ {user} already has the role." + "already_has_role": "ℹ️ {user} already has the role.", + "dangerous_role_blocked": "❌ This role has dangerous permissions. Only users with AntiNuke exemption can grant it." }, "remove": { "success": "✅ Successfully removed role from {user}.", From 512fdbd10a995c7b143c05704960d12b0679b607 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 00:12:15 +0900 Subject: [PATCH 133/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index 08cf294..c93e24b 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -551,7 +551,8 @@ "success": "✅ {user} にロールを与えました。", "cant_find_role_or_member": "❌ ロールまたはメンバーが見つかりませんでした。", "failed_add_role": "❌ {user}にロールを与えられませんでした。\nロールの順序と権限を確認してください。", - "already_has_role": "❌ {user} already has the role." + "already_has_role": "❌ {user} already has the role.", + "dangerous_role_blocked": "❌ このロールは危険な権限を持っているため、AntiNuke免除のないユーザーは付与できません。" }, "remove": { "success": "✅ {user} からロールを削除しました。", From 5f4916c908002a241da6c0c575c7e2b13d409eba Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 20:35:00 +0900 Subject: [PATCH 134/215] Update source file web.json [ci skip] --- en/web.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index f9db23b..2aa8132 100644 --- a/en/web.json +++ b/en/web.json @@ -1911,7 +1911,8 @@ "scheduleEnabled": "Enabled", "scheduleDeleteConfirm": "Delete this rule?", "scheduleNoRules": "No schedule rules", - "scheduleAddRuleTitle": "Add Rule" + "scheduleAddRuleTitle": "Add Rule", + "scheduleEditRuleTitle": "Edit Rule" }, "accountSecurity": { "title": "Security", From 42242f5b095e178b26e2a2ca445f0d7f637d2b81 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 20:35:07 +0900 Subject: [PATCH 135/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 997f73b..7a0f6c4 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1911,7 +1911,8 @@ "scheduleEnabled": "有効", "scheduleDeleteConfirm": "このルールを削除しますか?", "scheduleNoRules": "スケジュールルールがありません", - "scheduleAddRuleTitle": "ルールを追加" + "scheduleAddRuleTitle": "ルールを追加", + "scheduleEditRuleTitle": "ルールを編集" }, "accountSecurity": { "title": "セキュリティ", From d233359eb254e8f93d375adb8925e5bad9583d4d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 21:45:42 +0900 Subject: [PATCH 136/215] Update source file web.json [ci skip] --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index 2aa8132..032367b 100644 --- a/en/web.json +++ b/en/web.json @@ -1756,6 +1756,8 @@ "antiNukeDesc": "Detects and responds to destructive server actions (channel deletion, mass bans, etc.)", "antiNukeChannelDeleteLabel": "Channel delete", "antiNukeRoleDeleteLabel": "Role delete", + "antiNukeChannelCreateLabel": "Channel create", + "antiNukeRoleCreateLabel": "Role create", "antiNukeWebhookCreateLabel": "Webhook create", "antiNukeBanKickLabel": "Ban/Kick", "antiNukeRoleGrantLabel": "Role grant", From 49126eec90ac83c9dd925ee284be58cd67fdc9de Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 21:45:44 +0900 Subject: [PATCH 137/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index 7a0f6c4..8da3cf5 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1756,6 +1756,8 @@ "antiNukeDesc": "サーバーへの破壊的な操作(チャンネル削除・一括BAN等)を検知・対応します", "antiNukeChannelDeleteLabel": "チャンネル削除", "antiNukeRoleDeleteLabel": "ロール削除", + "antiNukeChannelCreateLabel": "チャンネル作成", + "antiNukeRoleCreateLabel": "ロール作成", "antiNukeWebhookCreateLabel": "Webhook作成", "antiNukeBanKickLabel": "BAN/Kick", "antiNukeRoleGrantLabel": "ロール一括付与", From 7fdaf66c8a69e1174df4a8d69dd87b1bbb28e799 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 7 Jun 2026 23:53:55 +0900 Subject: [PATCH 138/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index 8da3cf5..6f2d182 100644 --- a/ja/web.json +++ b/ja/web.json @@ -995,7 +995,7 @@ "addEmbed": "Embedを追加", "addActionRow": "Action Row を追加", "actionRow": { - "rowN": "Action Row {n}", + "rowN": "アクション行{n}", "typeButtons": "ボタン", "typeSelect": "セレクトメニュー", "addButton": "ボタンを追加", @@ -1818,7 +1818,7 @@ "ruleMentionSpam": "メンションスパム", "ruleMentionSpamDesc": "@user / @role / @here / @everyone のメンションをheatとして加算", "ruleInviteLink": "招待リンク", - "ruleInviteLinkDesc": "無断の Discord 招待URLを検知", + "ruleInviteLinkDesc": "Discord 招待URLを検知", "ruleEmojiSpam": "絵文字スパム", "ruleEmojiSpamDesc": "絵文字1個につき+1%(上限20%/メッセージ)", "ruleCharSpam": "文字スパム", From bb09bb3db32a85fed36e9a2a8ebfbedeb93e5ac6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 11:36:10 +0900 Subject: [PATCH 139/215] Update source file bot.json [ci skip] --- en/bot.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/bot.json b/en/bot.json index 732e79b..0d46258 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1104,6 +1104,8 @@ "title": "🚨 Moderation Action", "body": "**User:** <@{userId}> ({userTag})\n**Action(s):** {actions}\n**Reason:** {reason}", "default_reason": "Automod Action", + "failed_title": "⚠️ Moderation Action Failed", + "failed_body": "**User:** <@{userId}> ({userTag})\n**Attempted action(s):** {actions}\n**Reason:** {reason}\n\nThe action could not be performed because the target has administrator permission or a role higher than the bot. Please handle this manually.", "btn_ban": "BAN", "btn_kick": "Kick", "btn_unquarantine": "Release", From 0b2381845f97941772da5801460df0792fe3eb95 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 11:36:11 +0900 Subject: [PATCH 140/215] Update source file web.json [ci skip] --- en/web.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/en/web.json b/en/web.json index 032367b..7164842 100644 --- a/en/web.json +++ b/en/web.json @@ -1811,10 +1811,10 @@ "setupBtn": "Setup", "requesting": "Processing...", "setupDone": "Done", - "discordRegistered": "Registered in Discord", - "discordNotRegistered": "Not registered in Discord", - "discordRegisterBtn": "Register in Discord", - "discordRegistering": "Registering...", + "discordRegistered": "Synced with Discord", + "discordNotRegistered": "Not synced with Discord", + "discordRegisterBtn": "Sync with Discord", + "discordRegistering": "Syncing...", "ruleMentionSpam": "Mention Spam", "ruleMentionSpamDesc": "Adds heat for @user / @role / @here / @everyone mentions", "ruleInviteLink": "Invite Links", @@ -1898,8 +1898,8 @@ "scheduleScheduleType": "Schedule Type", "scheduleTimeRange": "Daily Time Range", "scheduleDateRange": "One-time Date Range", - "scheduleStartTime": "Start Time (UTC)", - "scheduleEndTime": "End Time (UTC)", + "scheduleStartTime": "Start Time (JST)", + "scheduleEndTime": "End Time (JST)", "scheduleStartDate": "Start Date", "scheduleEndDate": "End Date", "scheduleSecurityLevel": "Verification Level", From 140b884c27f927836c41c305574e1725688aa34d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 11:36:26 +0900 Subject: [PATCH 141/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index c93e24b..57ad362 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1104,6 +1104,8 @@ "title": "🚨 モデレーション実行", "body": "**対象:** <@{userId}> ({userTag})\n**実施アクション:** {actions}\n**理由:** {reason}", "default_reason": "自動モデレーションによる処罰", + "failed_title": "⚠️ モデレーション実行失敗", + "failed_body": "**対象:** <@{userId}> ({userTag})\n**試行アクション:** {actions}\n**理由:** {reason}\n\n対象が管理者権限を持っている、またはBotより上位のロールを持っているため、アクションを実行できませんでした。手動で対応してください。", "btn_ban": "BAN", "btn_kick": "キック", "btn_unquarantine": "隔離解除", From ac239b8b801912a3b14844592059f75febae031c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 11:36:28 +0900 Subject: [PATCH 142/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ja/web.json b/ja/web.json index 6f2d182..0604bc8 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1811,10 +1811,10 @@ "setupBtn": "セットアップ", "requesting": "処理中...", "setupDone": "完了", - "discordRegistered": "Discord登録済み", - "discordNotRegistered": "Discord未登録", - "discordRegisterBtn": "Discordに登録", - "discordRegistering": "登録中...", + "discordRegistered": "Discordと同期済み", + "discordNotRegistered": "Discord未同期", + "discordRegisterBtn": "Discordと同期", + "discordRegistering": "同期中...", "ruleMentionSpam": "メンションスパム", "ruleMentionSpamDesc": "@user / @role / @here / @everyone のメンションをheatとして加算", "ruleInviteLink": "招待リンク", @@ -1898,8 +1898,8 @@ "scheduleScheduleType": "スケジュール種別", "scheduleTimeRange": "毎日繰り返し(時間帯)", "scheduleDateRange": "一回限り(期間指定)", - "scheduleStartTime": "開始時刻 (UTC)", - "scheduleEndTime": "終了時刻 (UTC)", + "scheduleStartTime": "開始時刻 (JST)", + "scheduleEndTime": "終了時刻 (JST)", "scheduleStartDate": "開始日時", "scheduleEndDate": "終了日時", "scheduleSecurityLevel": "認証レベル", From 88c79d4b820be751d1c9201158bc068b0b3215b8 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 19:14:23 +0900 Subject: [PATCH 143/215] Update source file bot.json [ci skip] --- en/bot.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/en/bot.json b/en/bot.json index 0d46258..7530069 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1122,8 +1122,9 @@ "dm_body": "You have received a warning from **{guildName}**'s auto-moderation. Please review the server rules." }, "notify_owner": { - "dm_title": "⚠️ Owner Notification", - "dm_body": "**Server:** {guildName}\n**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n\nThis user had a high trust score so a 24-hour timeout was applied. Please review manually." + "dm_title": "🛡️ Anti-Nuke Detected (Owner Notification)", + "dm_body": "**Server:** {guildName}\n**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n**Action applied:** {action}\n\nAnti-Nuke detected a destructive action. Please verify manually that this is not a false positive.", + "no_action": "Could not be applied (manual action required)" }, "appeal_dm": { "quarantine_title": "⚠️ Quarantine Applied", @@ -1231,6 +1232,12 @@ "INACTIVE_CHANNEL": "Posting in Inactive Channel", "NSFW_URL": "NSFW Link", "ANTINUKE": "Anti-Nuke Detection", + "ANTINUKE_CHANNEL_DELETE": "Mass channel deletion", + "ANTINUKE_ROLE_DELETE": "Mass role deletion", + "ANTINUKE_CHANNEL_CREATE": "Mass channel creation", + "ANTINUKE_ROLE_CREATE": "Mass role creation", + "ANTINUKE_WEBHOOK_CREATE": "Mass webhook creation", + "ANTINUKE_BAN_KICK": "Mass member ban/kick", "ANTINUKE_ROLE_GRANT": "Granted dangerous permissions to a role" }, "legacy_automod": { From 5ed15bfe98e6af14bb1cf7ed685d77f7ee583e3a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 19:14:24 +0900 Subject: [PATCH 144/215] Update source file web.json [ci skip] --- en/web.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/en/web.json b/en/web.json index 7164842..851c1b0 100644 --- a/en/web.json +++ b/en/web.json @@ -1913,6 +1913,17 @@ "scheduleEnabled": "Enabled", "scheduleDeleteConfirm": "Delete this rule?", "scheduleNoRules": "No schedule rules", + "scheduleRuleTypeInviteDisableDesc": "Pauses server invite links during the selected time window.", + "scheduleRuleTypeDmDisableDesc": "Pauses member-to-member DMs through the server during the selected time window.", + "scheduleRuleTypeSecurityLevelDesc": "Raises the verification level only during the window, then restores the original level automatically.", + "scheduleTimeRangeHint": "Applied repeatedly every day during this window (JST). Overnight ranges (e.g. 22:00→08:00) are supported.", + "scheduleDateRangeHint": "Applied once between the start and end date/time.", + "schedulePreviewLabel": "Preview", + "schedulePreviewTimeRange": "Every day from {start} to {end} JST, {action}", + "schedulePreviewDateRange": "Between {start} and {end}, {action}", + "scheduleActionInviteDisable": "invite links are paused.", + "scheduleActionDmDisable": "member DMs are paused.", + "scheduleActionSecurityLevel": "the verification level is raised to \"{level}\".", "scheduleAddRuleTitle": "Add Rule", "scheduleEditRuleTitle": "Edit Rule" }, From 404ccbdb05b0b161b5d4de97d00af575d4f1d43e Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 19:14:41 +0900 Subject: [PATCH 145/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 57ad362..eed48dd 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1122,8 +1122,9 @@ "dm_body": "**{guildName}** の自動モデレーションにより警告を受けました。サーバーのルールを確認してください。" }, "notify_owner": { - "dm_title": "⚠️ 管理者通知", - "dm_body": "**サーバー:** {guildName}\n**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n\nこのユーザーは信頼スコアが高いため24時間タイムアウトを適用しました。手動確認してください。" + "dm_title": "🛡️ Anti-Nuke 検知(オーナー通知)", + "dm_body": "**サーバー:** {guildName}\n**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n**適用アクション:** {action}\n\nAnti-Nuke が破壊的な操作を検知しました。誤検知でないか手動でご確認ください。", + "no_action": "適用できませんでした(手動対応が必要)" }, "appeal_dm": { "quarantine_title": "⚠️ 隔離(Quarantine)が適用されました", @@ -1231,6 +1232,12 @@ "INACTIVE_CHANNEL": "非アクティブチャンネルへの投稿", "NSFW_URL": "NSFWリンク", "ANTINUKE": "破壊行為(Anti-Nuke)の検出", + "ANTINUKE_CHANNEL_DELETE": "チャンネルの大量削除", + "ANTINUKE_ROLE_DELETE": "ロールの大量削除", + "ANTINUKE_CHANNEL_CREATE": "チャンネルの大量作成", + "ANTINUKE_ROLE_CREATE": "ロールの大量作成", + "ANTINUKE_WEBHOOK_CREATE": "Webhookの大量作成", + "ANTINUKE_BAN_KICK": "メンバーの大量BAN/キック", "ANTINUKE_ROLE_GRANT": "ロールへの危険な権限の付与" }, "legacy_automod": { From 8a991598606ff6945216edb5f62b97c9347d6a7d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 8 Jun 2026 19:14:43 +0900 Subject: [PATCH 146/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ja/web.json b/ja/web.json index 0604bc8..4457f33 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1913,6 +1913,17 @@ "scheduleEnabled": "有効", "scheduleDeleteConfirm": "このルールを削除しますか?", "scheduleNoRules": "スケジュールルールがありません", + "scheduleRuleTypeInviteDisableDesc": "指定した時間帯はサーバーの招待リンクを一時停止します。", + "scheduleRuleTypeDmDisableDesc": "指定した時間帯はサーバー経由のメンバー間 DM を一時停止します。", + "scheduleRuleTypeSecurityLevelDesc": "指定した時間帯だけ認証レベルを引き上げ、時間外は元のレベルへ自動で戻します。", + "scheduleTimeRangeHint": "毎日この時間帯に繰り返し適用されます(JST)。日をまたぐ指定(例: 22:00→08:00)も可能です。", + "scheduleDateRangeHint": "指定した開始〜終了日時の一度きりで適用されます。", + "schedulePreviewLabel": "プレビュー", + "schedulePreviewTimeRange": "毎日 {start}〜{end} JST の間、{action}", + "schedulePreviewDateRange": "{start} 〜 {end} の間、{action}", + "scheduleActionInviteDisable": "招待リンクを一時停止します。", + "scheduleActionDmDisable": "メンバー間 DM を一時停止します。", + "scheduleActionSecurityLevel": "認証レベルを「{level}」に引き上げます。", "scheduleAddRuleTitle": "ルールを追加", "scheduleEditRuleTitle": "ルールを編集" }, From bf3c92b1d0c214368a42136206b321a25758bd2d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 9 Jun 2026 02:39:22 +0900 Subject: [PATCH 147/215] Update source file bot.json [ci skip] --- en/bot.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/en/bot.json b/en/bot.json index 7530069..ee1622c 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1126,6 +1126,17 @@ "dm_body": "**Server:** {guildName}\n**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n**Action applied:** {action}\n\nAnti-Nuke detected a destructive action. Please verify manually that this is not a false positive.", "no_action": "Could not be applied (manual action required)" }, + "scheduled_security": { + "started_title": "🔒 Scheduled Security Started", + "started_body": "**{action}** has started.\nActive window: {range}", + "ended_title": "🔓 Scheduled Security Ended", + "ended_body": "**{action}** has ended and the original state was restored.", + "type": { + "invite_disable": "Invite pause", + "dm_disable": "Member DM pause", + "security_level": "Raised verification level" + } + }, "appeal_dm": { "quarantine_title": "⚠️ Quarantine Applied", "timeout_title": "⚠️ Timeout Applied", From ff46b4cba7e95f52bee844aa20fab3db9fa29990 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 9 Jun 2026 02:39:24 +0900 Subject: [PATCH 148/215] Update source file web.json [ci skip] --- en/web.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 851c1b0..3c37738 100644 --- a/en/web.json +++ b/en/web.json @@ -1925,7 +1925,18 @@ "scheduleActionDmDisable": "member DMs are paused.", "scheduleActionSecurityLevel": "the verification level is raised to \"{level}\".", "scheduleAddRuleTitle": "Add Rule", - "scheduleEditRuleTitle": "Edit Rule" + "scheduleEditRuleTitle": "Edit Rule", + "scheduleSave": "Save", + "scheduleSaved": "Saved", + "scheduleDailyHint": "Applied automatically during this window every day (JST). Overnight ranges (e.g. 22:00 → 08:00 next day) are supported.", + "scheduleEnableLog": "Enable logging", + "scheduleEnableLogDesc": "Send a log when this starts and ends.", + "scheduleLogChannel": "Log channel", + "scheduleSelectChannel": "Select a channel", + "scheduleLevelLowDesc": "Only email-verified accounts", + "scheduleLevelMediumDesc": "Only accounts registered on Discord for more than 5 minutes", + "scheduleLevelHighDesc": "Only accounts in this server for more than 10 minutes", + "scheduleLevelVeryHighDesc": "Only phone-verified accounts" }, "accountSecurity": { "title": "Security", From 8a2b0a0f295f8b5c59b94d4f53ae08e216d6b29f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 9 Jun 2026 02:39:37 +0900 Subject: [PATCH 149/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index eed48dd..25593f1 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1126,6 +1126,17 @@ "dm_body": "**サーバー:** {guildName}\n**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n**適用アクション:** {action}\n\nAnti-Nuke が破壊的な操作を検知しました。誤検知でないか手動でご確認ください。", "no_action": "適用できませんでした(手動対応が必要)" }, + "scheduled_security": { + "started_title": "🔒 スケジュールセキュリティ開始", + "started_body": "**{action}** を開始しました。\n適用時間帯: {range}", + "ended_title": "🔓 スケジュールセキュリティ終了", + "ended_body": "**{action}** を終了し、元の状態に戻しました。", + "type": { + "invite_disable": "招待リンクの一時停止", + "dm_disable": "メンバー間DMの一時停止", + "security_level": "認証レベルの引き上げ" + } + }, "appeal_dm": { "quarantine_title": "⚠️ 隔離(Quarantine)が適用されました", "timeout_title": "⚠️ タイムアウトが適用されました", From 30f1f0829f88e21ea5b7fe18268e7c07c52dffd0 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 9 Jun 2026 02:39:39 +0900 Subject: [PATCH 150/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 4457f33..f4547c7 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1925,7 +1925,18 @@ "scheduleActionDmDisable": "メンバー間 DM を一時停止します。", "scheduleActionSecurityLevel": "認証レベルを「{level}」に引き上げます。", "scheduleAddRuleTitle": "ルールを追加", - "scheduleEditRuleTitle": "ルールを編集" + "scheduleEditRuleTitle": "ルールを編集", + "scheduleSave": "保存", + "scheduleSaved": "保存しました", + "scheduleDailyHint": "毎日この時間帯に自動で適用されます(JST)。日をまたぐ指定(例: 22:00→翌08:00)も可能です。", + "scheduleEnableLog": "ログを有効にする", + "scheduleEnableLogDesc": "開始・終了時にログを送信します。", + "scheduleLogChannel": "ログを送信するチャンネル", + "scheduleSelectChannel": "チャンネルを選択", + "scheduleLevelLowDesc": "メール認証済みのアカウントのみ", + "scheduleLevelMediumDesc": "Discord登録から5分以上経過したアカウントのみ", + "scheduleLevelHighDesc": "サーバー参加から10分以上経過したアカウントのみ", + "scheduleLevelVeryHighDesc": "電話番号認証済みのアカウントのみ" }, "accountSecurity": { "title": "セキュリティ", From a9a033fed0f909d0f244fe912ad1f60a9810fbf6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 13:30:28 +0900 Subject: [PATCH 151/215] Update source file bot.json [ci skip] --- en/bot.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/en/bot.json b/en/bot.json index ee1622c..ab6ee3f 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1117,6 +1117,18 @@ "title": "🔍 Review Required (Gray Zone)", "body": "**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n\nAutomatic detection confidence was low. Please review this case manually." }, + "ai_lane": { + "review": { + "title": "🤖 AI Moderation — Review Required", + "author": "**Target:** <@{userId}> ({userTag})", + "verdict": "**Verdict:** {label} (confidence {confidence}%)", + "categories": "**Categories:** {categories}", + "reason": "**Reason:** {reason}", + "jump": "[Jump to message]({url})", + "label_gray": "Gray", + "label_violation": "Violation" + } + }, "warn": { "dm_title": "⚠️ Warning", "dm_body": "You have received a warning from **{guildName}**'s auto-moderation. Please review the server rules." From 011f4ad004da46e55d3e4e808341c6ae2d8dbee4 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 13:30:33 +0900 Subject: [PATCH 152/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 25593f1..ddbbe95 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1117,6 +1117,18 @@ "title": "🔍 要審査(グレーゾーン)", "body": "**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n\n自動判定の信頼度が低いため、モデレーターによる手動確認が必要です。" }, + "ai_lane": { + "review": { + "title": "🤖 AIモデレーション 要確認", + "author": "**対象:** <@{userId}> ({userTag})", + "verdict": "**判定:** {label}(信頼度 {confidence}%)", + "categories": "**カテゴリ:** {categories}", + "reason": "**理由:** {reason}", + "jump": "[メッセージへ移動]({url})", + "label_gray": "グレー", + "label_violation": "違反" + } + }, "warn": { "dm_title": "⚠️ 警告", "dm_body": "**{guildName}** の自動モデレーションにより警告を受けました。サーバーのルールを確認してください。" From fe34c2b816fbcb56e6c66137ee44472d24d75340 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 15:06:51 +0900 Subject: [PATCH 153/215] Update source file web.json [ci skip] --- en/web.json | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 189 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 3c37738..dd616ab 100644 --- a/en/web.json +++ b/en/web.json @@ -342,7 +342,195 @@ "modeLegacy": "Legacy", "modeLegacyDesc": "Automatically detects, reports and removes inappropriate messages (free)", "modeAdvanced": "Next-gen", - "modeAdvancedDesc": "Advanced AI moderation that understands context" + "modeAdvancedDesc": "Advanced AI moderation that understands context", + "advancedLaneSectionTitle": "AI Lane Settings", + "advancedLaneSectionDesc": "Configure detailed settings for next-gen AI moderation (advanced mode)", + "naturalLanguageRulesLabel": "Natural Language Rules", + "naturalLanguageRulesDesc": "Describe server-specific moderation rules in plain language. The AI will understand and apply them during evaluation", + "naturalLanguageRulesPlaceholder": "e.g.\n- No political or religious debates\n- No content inappropriate for users under 18\n- Remove insulting remarks directed at other users", + "advancedViolationStorageLabel": "Advanced Violation Storage", + "advancedViolationStorageDesc": "AI classifies and stores violation reasons in detail. Useful for richer moderation logs, but consumes 1 CC per violation", + "nodeEditorLinkLabel": "Node Editor", + "nodeEditorLinkDesc": "Visually build and edit the moderation pipeline with nodes", + "nodeEditorLockedTooltip": "The node editor is available on a higher plan (NODE_EDITOR)", + "nodeEditorSectionTitle": "Node Editor", + "nodeEditorSectionDesc": "Build your AI moderation flow with the visual pipeline builder", + "nodeEditorOpenBtn": "Open Node Editor", + "nodeEditorAdvancedOnly": "Works in advanced mode only", + "modeOffFeature": "No monitoring", + "modeLegacyFeature": "Free · OpenAI score · Threshold-based deletion", + "modeAdvancedFeature": "Gemini context · CC cost · Auto punishment" + }, + "aimodEditor": { + "title": "Node Editor", + "back": "Back", + "save": "Save", + "saving": "Saving...", + "saved": "Saved", + "saveError": "Failed to save", + "paletteTitle": "Add node", + "close": "Close", + "deleteNode": "Delete node", + "noParams": "This node has no settings", + "stringListPlaceholder": "Type and press Enter to add", + "costBadge": "{cost}CC", + "categories": { + "input": "Input", + "utility": "Utility", + "mechanical": "Mechanical", + "ai": "AI", + "action": "Action" + }, + "handles": { + "next": "Next", + "true": "Match", + "false": "No match", + "safe": "Safe", + "gray": "Gray", + "violation": "Violation", + "else": "Else" + }, + "validation": { + "errorNoEntry": "A MessageReceived node is required", + "errorMultipleEntry": "Only one input node is allowed", + "warningDisconnected": "There are disconnected nodes" + }, + "fields": { + "channel": "Channel", + "category": "Category", + "user": "User", + "role": "Role", + "joinAge": "Time since join", + "report_type": "Report type", + "velocity_limit": "Velocity limit", + "detect_bots": "Detect bots", + "block_invites": "Block invites", + "block_scams": "Block scams", + "custom_patterns": "Custom patterns", + "max_mentions": "Max mentions", + "sensitivity": "Sensitivity", + "model": "Model", + "summary": "Generate summary", + "threshold": "Threshold", + "message": "Message", + "duration": "Duration", + "delete_message": "Delete message range", + "content": "Content" + }, + "nodes": { + "MessageReceived": { + "label": "Message Received", + "desc": "Pipeline entry point. Every message starts here" + }, + "Rule": { + "label": "Rule", + "desc": "Evaluates natural-language rules" + }, + "Condition": { + "label": "Condition", + "desc": "Branches on channel/category/user/role/join age" + }, + "TimeWindowCondition": { + "label": "Time Window", + "desc": "Branches based on the time of day" + }, + "ParallelStart": { + "label": "Parallel Start", + "desc": "Start of parallel processing" + }, + "ParallelEnd": { + "label": "Parallel End", + "desc": "Join point of parallel processing" + }, + "SummaryReport": { + "label": "Summary Report", + "desc": "Outputs the verdict as a report (1CC)" + }, + "HistorySummarizer": { + "label": "History Summarizer", + "desc": "Summarizes conversation history" + }, + "ReviewQueue": { + "label": "Review Queue", + "desc": "Adds to a human review queue" + }, + "AntiRaid": { + "label": "Anti-Raid", + "desc": "Detects mass joins/posts in a short window (0CC)" + }, + "RegexBlock": { + "label": "Regex Block", + "desc": "Blocks invites, scams and custom patterns (0CC)" + }, + "TextFilter": { + "label": "Text Filter", + "desc": "Mechanical checks such as mention count (0CC)" + }, + "ThreatDb": { + "label": "Threat DB", + "desc": "Matches against a known threat database (0CC)" + }, + "Screen": { + "label": "Screen", + "desc": "Lightweight AI first-pass screening (0CC)" + }, + "LiteLlm": { + "label": "Lite LLM", + "desc": "Lite LLM judging safe/gray/violation (1CC)" + }, + "DetailLlm": { + "label": "Detail LLM", + "desc": "Detailed high-accuracy LLM judgment (3CC)" + }, + "Confidence": { + "label": "Confidence", + "desc": "Branches on a confidence threshold (1CC)" + }, + "AdvancedLlm": { + "label": "Advanced LLM", + "desc": "Judges with the most advanced LLM" + }, + "ActionPolicy": { + "label": "Action Policy", + "desc": "Decides the policy for actions to take" + }, + "ExecuteAction": { + "label": "Execute Action", + "desc": "Executes the decided actions together" + }, + "MessageDelete": { + "label": "Message Delete", + "desc": "Deletes the target message" + }, + "Timeout": { + "label": "Timeout", + "desc": "Times out the user for a period" + }, + "Kick": { + "label": "Kick", + "desc": "Kicks the user from the server" + }, + "Ban": { + "label": "Ban", + "desc": "Bans the user" + }, + "Warn": { + "label": "Warn", + "desc": "Sends a warning to the user" + }, + "MessageSend": { + "label": "Message Send", + "desc": "Sends a message" + } + }, + "unsavedChanges": "Unsaved changes", + "unsavedDot": "●", + "emptyTitle": "No nodes yet", + "emptyDesc": "Drag nodes from the palette or start from a template", + "loadTemplate": "Load standard template", + "searchPlaceholder": "Search nodes...", + "unsavedTooltip": "You have unsaved changes", + "deleteEdge": "Delete edge" }, "subscription": { "title": "Subscription", From 388ad59d2bf662041aea008934f5ed7cf0e7d5ef Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 15:06:54 +0900 Subject: [PATCH 154/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 190 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 189 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index f4547c7..d4b6b8f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -342,7 +342,195 @@ "modeLegacy": "レガシー版", "modeLegacyDesc": "不適切なメッセージを自動で検知・通知・削除します(無料)", "modeAdvanced": "次世代", - "modeAdvancedDesc": "文脈を理解する高度な AI モデレーション" + "modeAdvancedDesc": "文脈を理解する高度な AI モデレーション", + "advancedLaneSectionTitle": "AIレーン設定", + "advancedLaneSectionDesc": "次世代 AI モデレーション(advanced モード)の詳細設定を行います", + "naturalLanguageRulesLabel": "自然言語ルール", + "naturalLanguageRulesDesc": "このサーバー固有のモデレーションルールを自然言語で記述します。AI がルールを理解し、判定に反映します", + "naturalLanguageRulesPlaceholder": "例:\n- 政治・宗教の議論は禁止\n- 18歳未満に不適切なコンテンツを送ってはならない\n- 他のユーザーへの侮辱的な発言は削除する", + "advancedViolationStorageLabel": "高度な違反保存", + "advancedViolationStorageDesc": "AI が違反理由を分類して保存します。モデレーションログの詳細化に役立ちますが、1CC/件 のクレジットを消費します", + "nodeEditorLinkLabel": "ノードエディター", + "nodeEditorLinkDesc": "パイプラインをノードで視覚的に構築・編集します", + "nodeEditorLockedTooltip": "ノードエディターは上位プラン (NODE_EDITOR) で利用できます", + "nodeEditorSectionTitle": "ノードエディター", + "nodeEditorSectionDesc": "視覚的なパイプラインビルダーで AI モデレーションフローを構築します", + "nodeEditorOpenBtn": "ノードエディターを開く", + "nodeEditorAdvancedOnly": "advancedモードでのみ動作します", + "modeOffFeature": "自動監視: なし", + "modeLegacyFeature": "無料 · OpenAIスコア · 閾値ベース削除", + "modeAdvancedFeature": "Gemini文脈判定 · CC消費 · 自動処罰" + }, + "aimodEditor": { + "title": "ノードエディター", + "back": "戻る", + "save": "保存", + "saving": "保存中...", + "saved": "保存しました", + "saveError": "保存に失敗しました", + "paletteTitle": "ノードを追加", + "close": "閉じる", + "deleteNode": "ノードを削除", + "noParams": "このノードに設定項目はありません", + "stringListPlaceholder": "入力して Enter で追加", + "costBadge": "{cost}CC", + "categories": { + "input": "入力", + "utility": "ユーティリティ", + "mechanical": "メカニカル", + "ai": "AI", + "action": "アクション" + }, + "handles": { + "next": "次へ", + "true": "一致", + "false": "不一致", + "safe": "安全", + "gray": "グレー", + "violation": "違反", + "else": "それ以外" + }, + "validation": { + "errorNoEntry": "MessageReceived ノードが必要です", + "errorMultipleEntry": "入力ノードは1つだけ配置できます", + "warningDisconnected": "未接続のノードがあります" + }, + "fields": { + "channel": "チャンネル", + "category": "カテゴリ", + "user": "ユーザー", + "role": "ロール", + "joinAge": "参加からの経過時間", + "report_type": "レポート種別", + "velocity_limit": "速度上限", + "detect_bots": "Bot を検知", + "block_invites": "招待リンクをブロック", + "block_scams": "詐欺をブロック", + "custom_patterns": "カスタムパターン", + "max_mentions": "最大メンション数", + "sensitivity": "感度", + "model": "モデル", + "summary": "要約を生成", + "threshold": "閾値", + "message": "メッセージ", + "duration": "期間", + "delete_message": "メッセージ削除範囲", + "content": "本文" + }, + "nodes": { + "MessageReceived": { + "label": "メッセージ受信", + "desc": "パイプラインの開始点。すべてのメッセージがここから流れます" + }, + "Rule": { + "label": "ルール", + "desc": "自然言語ルールを評価します" + }, + "Condition": { + "label": "条件", + "desc": "チャンネル/カテゴリ/ユーザー/ロール/参加経過で分岐します" + }, + "TimeWindowCondition": { + "label": "時間帯条件", + "desc": "特定の時間帯かどうかで分岐します" + }, + "ParallelStart": { + "label": "並列開始", + "desc": "並列処理の開始点" + }, + "ParallelEnd": { + "label": "並列終了", + "desc": "並列処理の合流点" + }, + "SummaryReport": { + "label": "サマリーレポート", + "desc": "判定結果をレポートとして出力します (1CC)" + }, + "HistorySummarizer": { + "label": "履歴要約", + "desc": "会話履歴を要約します" + }, + "ReviewQueue": { + "label": "レビューキュー", + "desc": "人間によるレビュー用キューに追加します" + }, + "AntiRaid": { + "label": "アンチレイド", + "desc": "短時間の大量参加・投稿を検知します (0CC)" + }, + "RegexBlock": { + "label": "正規表現ブロック", + "desc": "招待・詐欺・カスタムパターンをブロックします (0CC)" + }, + "TextFilter": { + "label": "テキストフィルター", + "desc": "メンション数などの機械的な条件で判定します (0CC)" + }, + "ThreatDb": { + "label": "脅威DB", + "desc": "既知の脅威データベースと照合します (0CC)" + }, + "Screen": { + "label": "スクリーニング", + "desc": "軽量AIで一次スクリーニングを行います (0CC)" + }, + "LiteLlm": { + "label": "軽量LLM", + "desc": "軽量LLMで safe/gray/violation を判定します (1CC)" + }, + "DetailLlm": { + "label": "詳細LLM", + "desc": "高精度LLMで詳細に判定します (3CC)" + }, + "Confidence": { + "label": "確信度", + "desc": "確信度の閾値で分岐します (1CC)" + }, + "AdvancedLlm": { + "label": "高度LLM", + "desc": "最も高度なLLMで判定します" + }, + "ActionPolicy": { + "label": "アクションポリシー", + "desc": "実行するアクションの方針を決定します" + }, + "ExecuteAction": { + "label": "アクション実行", + "desc": "決定されたアクションをまとめて実行します" + }, + "MessageDelete": { + "label": "メッセージ削除", + "desc": "対象メッセージを削除します" + }, + "Timeout": { + "label": "タイムアウト", + "desc": "ユーザーを一定期間タイムアウトします" + }, + "Kick": { + "label": "キック", + "desc": "ユーザーをサーバーからキックします" + }, + "Ban": { + "label": "BAN", + "desc": "ユーザーをBANします" + }, + "Warn": { + "label": "警告", + "desc": "ユーザーに警告を送ります" + }, + "MessageSend": { + "label": "メッセージ送信", + "desc": "メッセージを送信します" + } + }, + "unsavedChanges": "未保存の変更", + "unsavedDot": "●", + "emptyTitle": "ノードがありません", + "emptyDesc": "パレットからノードをドラッグするか、テンプレートから始めてください", + "loadTemplate": "標準テンプレートを読み込む", + "searchPlaceholder": "ノードを検索...", + "unsavedTooltip": "未保存の変更があります", + "deleteEdge": "エッジを削除" }, "subscription": { "title": "サブスクリプション", From 4d76afae077341420b8fd447bbcb06e7f469867e Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 20:08:36 +0900 Subject: [PATCH 155/215] Update source file bot.json [ci skip] --- en/bot.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/en/bot.json b/en/bot.json index ab6ee3f..b848430 100644 --- a/en/bot.json +++ b/en/bot.json @@ -478,6 +478,12 @@ } }, "manage": { + "warn": { + "cannot_warn_self": "❌ You cannot warn yourself or a bot.", + "dm_title": "⚠️ Warning", + "dm_body": "You have received a warning from the moderators of **{guildName}**.\n**Reason:** {reason}\n\nPlease review the server rules.", + "success": "✅ Recorded a warning for <@{userId}>.\n**Reason:** {reason}" + }, "clear": { "confirm_description": "This message and all messages after it will be deleted.", "error": { From 443aaf48834955c1a5fe66d2f0cac42d1ed1aa94 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 20:08:37 +0900 Subject: [PATCH 156/215] Update source file web.json [ci skip] --- en/web.json | 109 +++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 78 insertions(+), 31 deletions(-) diff --git a/en/web.json b/en/web.json index dd616ab..dd05146 100644 --- a/en/web.json +++ b/en/web.json @@ -359,7 +359,38 @@ "nodeEditorAdvancedOnly": "Works in advanced mode only", "modeOffFeature": "No monitoring", "modeLegacyFeature": "Free · OpenAI score · Threshold-based deletion", - "modeAdvancedFeature": "Gemini context · CC cost · Auto punishment" + "modeAdvancedFeature": "Gemini context · CC cost · Auto punishment", + "presetLabel": "Detection preset", + "presetDesc": "Pick how strict detection should be. Choose Custom to fine-tune each value", + "preset_lenient_name": "Lenient", + "preset_lenient_desc": "Only auto-punishes very high-confidence verdicts", + "preset_lenient_trait": "False positives: minimal / Cost: low / Misses: more", + "preset_balanced_name": "Balanced", + "preset_balanced_desc": "A balanced default trading off confidence and cost", + "preset_balanced_trait": "False positives: medium / Cost: medium / Misses: medium", + "preset_strict_name": "Strict", + "preset_strict_desc": "Analyzes gray cases broadly to minimize misses", + "preset_strict_trait": "False positives: higher / Cost: high / Misses: minimal", + "preset_custom_name": "Custom", + "preset_custom_desc": "Set each threshold manually", + "preset_custom_trait": "Tune every value by hand", + "cfgConfidenceLabel": "Confidence threshold", + "cfgConfidenceDesc": "Only verdicts at or above this confidence are auto-punished. Higher is more cautious", + "cfgGrayLabel": "Gray detail-analysis threshold", + "cfgGrayDesc": "How aggressively ambiguous (gray) messages are sent to detailed AI analysis. Higher uses detailed analysis more (more cost)", + "cfgMinLenLabel": "Minimum content length", + "cfgMinLenDesc": "Messages shorter than this character count are excluded from AI analysis", + "cfgTrustedLabel": "Trusted-user sampling rate", + "cfgTrustedDesc": "What share of trusted users (no violation history) to spot-check. 0% skips them entirely", + "cfgScreenLabel": "First-pass screening sensitivity", + "cfgScreenDesc": "Sensitivity of the mechanical first-pass before AI analysis. Higher sends more messages to deeper analysis", + "cfgScreenLow": "Low", + "cfgScreenMedium": "Medium", + "cfgScreenHigh": "High", + "cfgDetailLlmLabel": "Detailed LLM analysis", + "cfgDetailLlmDesc": "Enable high-accuracy detailed AI analysis including prior history (increases CC cost)", + "cfgOn": "On", + "cfgOff": "Off" }, "aimodEditor": { "title": "Node Editor", @@ -397,106 +428,122 @@ }, "fields": { "channel": "Channel", + "channel_hint": "Channels to target. Leave empty to target all channels", "category": "Category", + "category_hint": "Categories to target. All channels under them are included", "user": "User", + "user_hint": "User IDs to target. Leave empty to target all users", "role": "Role", + "role_hint": "Roles to target. Users with these roles are included", "joinAge": "Time since join", + "joinAge_hint": "Filter by time since joining the server (e.g. 7d, 24h)", "report_type": "Report type", + "report_type_hint": "How detailed the log report is. Normal = standard / Minimum = minimal / Debug = verbose", "velocity_limit": "Velocity limit", + "velocity_limit_hint": "More joins/posts than this in a short window is treated as a raid", "detect_bots": "Detect bots", + "detect_bots_hint": "Also detect mass joins/posts from bots", "block_invites": "Block invites", + "block_invites_hint": "Block messages containing Discord invite links", "block_scams": "Block scams", + "block_scams_hint": "Block messages matching known scam or phishing patterns", "custom_patterns": "Custom patterns", + "custom_patterns_hint": "Add your own regex patterns to block", "max_mentions": "Max mentions", + "max_mentions_hint": "A message with more mentions than this is flagged as a violation", "sensitivity": "Sensitivity", - "model": "Model", - "summary": "Generate summary", - "threshold": "Threshold", - "message": "Message", + "sensitivity_hint": "Screening sensitivity. Higher sends more messages downstream as suspects", + "threshold": "Confidence threshold", + "threshold_hint": "If the latest verdict's confidence is at or above this, branch to true", + "message": "Target message", + "message_hint": "The message to act on. Use 'current' for the current message", "duration": "Duration", + "duration_hint": "Punishment duration (e.g. 1h, 1d). Leave empty for permanent", "delete_message": "Delete message range", - "content": "Content" + "delete_message_hint": "How far back to delete messages on ban (e.g. 1d). Empty deletes nothing", + "content": "Content", + "content_hint": "The body of the message to send" }, "nodes": { "MessageReceived": { "label": "Message Received", - "desc": "Pipeline entry point. Every message starts here" + "desc": "The pipeline entry point. Each posted message flows from here to the next node" }, "Rule": { "label": "Rule", - "desc": "Evaluates natural-language rules" + "desc": "Evaluates against your natural-language rules and passes the result to the next node" }, "Condition": { "label": "Condition", - "desc": "Branches on channel/category/user/role/join age" + "desc": "Branches into match / no-match based on channel/category/user/role/join age" }, "TimeWindowCondition": { "label": "Time Window", - "desc": "Branches based on the time of day" + "desc": "Branches into match / no-match based on whether now falls in the given time window" }, "ParallelStart": { "label": "Parallel Start", - "desc": "Start of parallel processing" + "desc": "Runs several branches at once from here; they rejoin at Parallel End" }, "ParallelEnd": { "label": "Parallel End", - "desc": "Join point of parallel processing" + "desc": "Waits for all branches from Parallel Start, then merges into one and continues" }, "SummaryReport": { "label": "Summary Report", - "desc": "Outputs the verdict as a report (1CC)" + "desc": "Sends the verdict so far to the log channel as a report (1CC)" }, "HistorySummarizer": { "label": "History Summarizer", - "desc": "Summarizes conversation history" + "desc": "Summarizes recent conversation history so downstream AI nodes have context" }, "ReviewQueue": { "label": "Review Queue", - "desc": "Adds to a human review queue" + "desc": "Adds to a human moderator review queue instead of auto-punishing" }, "AntiRaid": { "label": "Anti-Raid", - "desc": "Detects mass joins/posts in a short window (0CC)" + "desc": "Detects mass joins/posts in a short window and branches match / no-match (0CC)" }, "RegexBlock": { "label": "Regex Block", - "desc": "Blocks invites, scams and custom patterns (0CC)" + "desc": "Checks invites, scams and custom regex patterns and branches match / no-match (0CC)" }, "TextFilter": { "label": "Text Filter", - "desc": "Mechanical checks such as mention count (0CC)" + "desc": "Branches match / no-match on mechanical rules such as mention count (0CC)" }, "ThreatDb": { "label": "Threat DB", - "desc": "Matches against a known threat database (0CC)" + "desc": "Matches against a known threat database and branches match / no-match (0CC)" }, "Screen": { "label": "Screen", - "desc": "Lightweight AI first-pass screening (0CC)" + "desc": "Lightweight AI first pass; branches match / no-match so only suspects go to downstream LLMs (0CC)" }, "LiteLlm": { "label": "Lite LLM", - "desc": "Lite LLM judging safe/gray/violation (1CC)" + "desc": "A lightweight AI (Gemini) reads the content and routes it to safe/gray/violation (1CC)" }, "DetailLlm": { "label": "Detail LLM", - "desc": "Detailed high-accuracy LLM judgment (3CC)" + "desc": "A high-accuracy AI (Gemini) judges in detail including prior history, branching match / no-match (3CC)" }, "Confidence": { "label": "Confidence", - "desc": "Branches on a confidence threshold (1CC)" + "desc": "Compares the latest verdict's confidence to a threshold and branches match / no-match (1CC)" }, "AdvancedLlm": { "label": "Advanced LLM", - "desc": "Judges with the most advanced LLM" + "desc": "A high-accuracy AI (Gemini) produces a verdict and passes it straight to the next node (3CC)" }, "ActionPolicy": { "label": "Action Policy", - "desc": "Decides the policy for actions to take" + "desc": "Decides which punishment to take based on the verdict so far and passes it on" }, "ExecuteAction": { "label": "Execute Action", - "desc": "Executes the decided actions together" + "desc": "Executes the punishments decided by Action Policy together" }, "MessageDelete": { "label": "Message Delete", @@ -504,23 +551,23 @@ }, "Timeout": { "label": "Timeout", - "desc": "Times out the user for a period" + "desc": "Times out (mutes) the target user for the given period" }, "Kick": { "label": "Kick", - "desc": "Kicks the user from the server" + "desc": "Kicks the target user from the server" }, "Ban": { "label": "Ban", - "desc": "Bans the user" + "desc": "Bans the target user. You can also set how far back to delete their messages" }, "Warn": { "label": "Warn", - "desc": "Sends a warning to the user" + "desc": "Records and notifies a warning to the target user" }, "MessageSend": { "label": "Message Send", - "desc": "Sends a message" + "desc": "Sends a message with the given content to the channel" } }, "unsavedChanges": "Unsaved changes", From c9b6f137097d800e6ab169fbf054743bce2f5663 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 20:08:58 +0900 Subject: [PATCH 157/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index ddbbe95..0278950 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -478,6 +478,12 @@ } }, "manage": { + "warn": { + "cannot_warn_self": "❌ 自分自身または Bot に警告を送ることはできません。", + "dm_title": "⚠️ 警告", + "dm_body": "**{guildName}** のモデレーターから警告を受けました。\n**理由:** {reason}\n\nサーバーのルールを確認してください。", + "success": "✅ <@{userId}> に警告を記録しました。\n**理由:** {reason}" + }, "clear": { "confirm_description": "これより後のメッセージが削除されます。", "error": { From 56067f942cbd1d2454f3543d57fe55dd49d2d818 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Thu, 11 Jun 2026 20:09:00 +0900 Subject: [PATCH 158/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 117 ++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 82 insertions(+), 35 deletions(-) diff --git a/ja/web.json b/ja/web.json index d4b6b8f..bb7edec 100644 --- a/ja/web.json +++ b/ja/web.json @@ -359,7 +359,38 @@ "nodeEditorAdvancedOnly": "advancedモードでのみ動作します", "modeOffFeature": "自動監視: なし", "modeLegacyFeature": "無料 · OpenAIスコア · 閾値ベース削除", - "modeAdvancedFeature": "Gemini文脈判定 · CC消費 · 自動処罰" + "modeAdvancedFeature": "Gemini文脈判定 · CC消費 · 自動処罰", + "presetLabel": "検知プリセット", + "presetDesc": "検知の厳しさをプリセットから選びます。細かく調整したい場合は「カスタム」を選択してください", + "preset_lenient_name": "緩め", + "preset_lenient_desc": "確信度が非常に高いものだけを自動処罰します", + "preset_lenient_trait": "誤検知: 最小 / コスト: 低 / 見逃し: 多め", + "preset_balanced_name": "標準", + "preset_balanced_desc": "確信度とコストのバランスを取った標準設定です", + "preset_balanced_trait": "誤検知: 中 / コスト: 中 / 見逃し: 中", + "preset_strict_name": "厳格", + "preset_strict_desc": "グレーも広く詳細分析し、見逃しを最小にします", + "preset_strict_trait": "誤検知: やや多め / コスト: 高 / 見逃し: 最小", + "preset_custom_name": "カスタム", + "preset_custom_desc": "各しきい値を自分で細かく設定します", + "preset_custom_trait": "各項目を手動で調整", + "cfgConfidenceLabel": "確信度しきい値", + "cfgConfidenceDesc": "この確信度以上の判定のみ自動処罰します。高いほど慎重になります", + "cfgGrayLabel": "グレー詳細分析しきい値", + "cfgGrayDesc": "判定が曖昧(グレー)なメッセージを詳細AI分析に回す度合い。高いほど詳細分析を多用します(コスト増)", + "cfgMinLenLabel": "最小解析文字数", + "cfgMinLenDesc": "この文字数未満の短いメッセージはAI解析の対象外にします", + "cfgTrustedLabel": "高信頼ユーザー検査率", + "cfgTrustedDesc": "違反履歴のない高信頼ユーザーをどの割合で抜き取り検査するか。0%で完全にスキップします", + "cfgScreenLabel": "一次スクリーニング感度", + "cfgScreenDesc": "AI解析の前段で行う機械的な一次判定の感度。高いほど多くのメッセージを精査に回します", + "cfgScreenLow": "低", + "cfgScreenMedium": "中", + "cfgScreenHigh": "高", + "cfgDetailLlmLabel": "詳細LLM分析", + "cfgDetailLlmDesc": "前科を含めた高精度な詳細AI分析を有効にします(CC消費が増えます)", + "cfgOn": "オン", + "cfgOff": "オフ" }, "aimodEditor": { "title": "ノードエディター", @@ -397,130 +428,146 @@ }, "fields": { "channel": "チャンネル", + "channel_hint": "対象とするチャンネル。空欄ですべてのチャンネルが対象になります", "category": "カテゴリ", + "category_hint": "対象とするカテゴリ。配下のチャンネルすべてが対象になります", "user": "ユーザー", + "user_hint": "対象とするユーザーID。空欄ですべてのユーザーが対象になります", "role": "ロール", + "role_hint": "対象とするロール。このロールを持つユーザーが対象になります", "joinAge": "参加からの経過時間", + "joinAge_hint": "サーバー参加からの経過時間で絞り込みます(例: 7d, 24h)", "report_type": "レポート種別", + "report_type_hint": "ログに出力するレポートの詳しさ。Normal=標準 / Minimum=最小 / Debug=詳細", "velocity_limit": "速度上限", + "velocity_limit_hint": "短時間にこの件数を超える参加・投稿があるとレイドと判定します", "detect_bots": "Bot を検知", + "detect_bots_hint": "Bot による大量参加・投稿も検知対象に含めます", "block_invites": "招待リンクをブロック", + "block_invites_hint": "Discord の招待リンクを含むメッセージをブロックします", "block_scams": "詐欺をブロック", + "block_scams_hint": "既知の詐欺・フィッシングパターンを含むメッセージをブロックします", "custom_patterns": "カスタムパターン", + "custom_patterns_hint": "ブロックする独自の正規表現パターンを追加します", "max_mentions": "最大メンション数", + "max_mentions_hint": "1メッセージあたりのメンションがこの数を超えると違反と判定します", "sensitivity": "感度", - "model": "モデル", - "summary": "要約を生成", - "threshold": "閾値", - "message": "メッセージ", + "sensitivity_hint": "スクリーニングの感度。high ほど多くのメッセージを違反候補として下流に流します", + "threshold": "確信度しきい値", + "threshold_hint": "直近の判定の確信度がこの値以上なら true 側へ分岐します", + "message": "対象メッセージ", + "message_hint": "操作対象のメッセージ。current で現在のメッセージを指します", "duration": "期間", + "duration_hint": "処罰の期間(例: 1h, 1d)。空欄で無期限になります", "delete_message": "メッセージ削除範囲", - "content": "本文" + "delete_message_hint": "BAN時にさかのぼって削除するメッセージの範囲(例: 1d)。空欄で削除しません", + "content": "本文", + "content_hint": "送信するメッセージの本文" }, "nodes": { "MessageReceived": { "label": "メッセージ受信", - "desc": "パイプラインの開始点。すべてのメッセージがここから流れます" + "desc": "パイプラインの開始点です。送信された各メッセージがここから次のノードへ流れます" }, "Rule": { "label": "ルール", - "desc": "自然言語ルールを評価します" + "desc": "設定した自然言語ルールに照らして判定し、結果を次のノードへ渡します" }, "Condition": { - "label": "条件", - "desc": "チャンネル/カテゴリ/ユーザー/ロール/参加経過で分岐します" + "label": "条件分岐", + "desc": "チャンネル/カテゴリ/ユーザー/ロール/参加経過のいずれかに一致するかで、一致/不一致の2方向へ分岐します" }, "TimeWindowCondition": { - "label": "時間帯条件", - "desc": "特定の時間帯かどうかで分岐します" + "label": "時間帯分岐", + "desc": "現在が指定した時間帯に入っているかで、一致/不一致の2方向へ分岐します" }, "ParallelStart": { "label": "並列開始", - "desc": "並列処理の開始点" + "desc": "ここから複数の処理を同時に走らせます。各分岐は並列終了で合流します" }, "ParallelEnd": { "label": "並列終了", - "desc": "並列処理の合流点" + "desc": "並列開始から分かれた処理をすべて待ち合わせ、1本にまとめて次へ進みます" }, "SummaryReport": { "label": "サマリーレポート", - "desc": "判定結果をレポートとして出力します (1CC)" + "desc": "ここまでの判定結果をまとめてログチャンネルにレポートとして送ります (1CC)" }, "HistorySummarizer": { "label": "履歴要約", - "desc": "会話履歴を要約します" + "desc": "直近の会話履歴を要約し、後続のAI判定が文脈を踏まえられるようにします" }, "ReviewQueue": { "label": "レビューキュー", - "desc": "人間によるレビュー用キューに追加します" + "desc": "自動処罰せず、人間のモデレーターが確認するキューに追加します" }, "AntiRaid": { "label": "アンチレイド", - "desc": "短時間の大量参加・投稿を検知します (0CC)" + "desc": "短時間の大量参加・投稿を検知し、レイドかどうかで一致/不一致へ分岐します (0CC)" }, "RegexBlock": { "label": "正規表現ブロック", - "desc": "招待・詐欺・カスタムパターンをブロックします (0CC)" + "desc": "招待リンク・詐欺・カスタムパターンに該当するかを正規表現で判定し、一致/不一致へ分岐します (0CC)" }, "TextFilter": { "label": "テキストフィルター", - "desc": "メンション数などの機械的な条件で判定します (0CC)" + "desc": "メンション数などの機械的な条件に違反するかで、一致/不一致へ分岐します (0CC)" }, "ThreatDb": { "label": "脅威DB", - "desc": "既知の脅威データベースと照合します (0CC)" + "desc": "既知の脅威データベースと照合し、ヒットするかで一致/不一致へ分岐します (0CC)" }, "Screen": { "label": "スクリーニング", - "desc": "軽量AIで一次スクリーニングを行います (0CC)" + "desc": "軽量AIで一次判定し、違反の疑いがあるかで一致/不一致へ分岐します。疑わしいものだけを下流のLLMへ流せます (0CC)" }, "LiteLlm": { "label": "軽量LLM", - "desc": "軽量LLMで safe/gray/violation を判定します (1CC)" + "desc": "軽量AI(Gemini)が内容を読み、safe/gray/violation のいずれかの結果に振り分けて分岐します (1CC)" }, "DetailLlm": { "label": "詳細LLM", - "desc": "高精度LLMで詳細に判定します (3CC)" + "desc": "前科を含めて高精度AI(Gemini)が詳しく判定し、違反かどうかで一致/不一致へ分岐します (3CC)" }, "Confidence": { - "label": "確信度", - "desc": "確信度の閾値で分岐します (1CC)" + "label": "確信度分岐", + "desc": "直近のAI判定の確信度をしきい値と比較し、しきい値以上かで一致/不一致へ分岐します (1CC)" }, "AdvancedLlm": { "label": "高度LLM", - "desc": "最も高度なLLMで判定します" + "desc": "高精度AI(Gemini)が判定結果を作り、後続ノードへそのまま渡します (3CC)" }, "ActionPolicy": { "label": "アクションポリシー", - "desc": "実行するアクションの方針を決定します" + "desc": "ここまでの判定をもとに、実行すべき処罰の方針を決めて次へ渡します" }, "ExecuteAction": { "label": "アクション実行", - "desc": "決定されたアクションをまとめて実行します" + "desc": "アクションポリシーで決まった処罰をまとめて実行します" }, "MessageDelete": { "label": "メッセージ削除", - "desc": "対象メッセージを削除します" + "desc": "対象のメッセージを削除します" }, "Timeout": { "label": "タイムアウト", - "desc": "ユーザーを一定期間タイムアウトします" + "desc": "対象ユーザーを指定期間タイムアウト(発言不可)にします" }, "Kick": { "label": "キック", - "desc": "ユーザーをサーバーからキックします" + "desc": "対象ユーザーをサーバーからキックします" }, "Ban": { "label": "BAN", - "desc": "ユーザーをBANします" + "desc": "対象ユーザーをBANします。過去メッセージの削除範囲も指定できます" }, "Warn": { "label": "警告", - "desc": "ユーザーに警告を送ります" + "desc": "対象ユーザーに警告を記録・通知します" }, "MessageSend": { "label": "メッセージ送信", - "desc": "メッセージを送信します" + "desc": "指定した本文のメッセージをチャンネルに送信します" } }, "unsavedChanges": "未保存の変更", From 3e2fe17f578d3ab80170774e3b954190bcf3c366 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 00:22:12 +0900 Subject: [PATCH 159/215] Update source file web.json [ci skip] --- en/web.json | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/en/web.json b/en/web.json index dd05146..a056f58 100644 --- a/en/web.json +++ b/en/web.json @@ -308,6 +308,8 @@ "aimod": { "title": "AI Moderation", "desc": "Configure automatic chat monitoring and response by AI", + "logChannelLabel": "Log Channel", + "logChannelDesc": "Specify the channel to send AI moderation logs and review notices", "statusNotSet": "Not configured", "statusRunning": "Running", "statusStopped": "Stopped", @@ -347,9 +349,11 @@ "advancedLaneSectionDesc": "Configure detailed settings for next-gen AI moderation (advanced mode)", "naturalLanguageRulesLabel": "Natural Language Rules", "naturalLanguageRulesDesc": "Describe server-specific moderation rules in plain language. The AI will understand and apply them during evaluation", + "naturalLanguageRulesSurcharge": "Rules add +{cc} CC per judgment based on length (+1 CC per 500 characters)", + "naturalLanguageRulesNoSurcharge": "No additional CC — no rules set", "naturalLanguageRulesPlaceholder": "e.g.\n- No political or religious debates\n- No content inappropriate for users under 18\n- Remove insulting remarks directed at other users", "advancedViolationStorageLabel": "Advanced Violation Storage", - "advancedViolationStorageDesc": "AI classifies and stores violation reasons in detail. Useful for richer moderation logs, but consumes 1 CC per violation", + "advancedViolationStorageDesc": "AI classifies and stores violation reasons in detail. Useful for richer moderation logs, but consumes 2 CC per violation", "nodeEditorLinkLabel": "Node Editor", "nodeEditorLinkDesc": "Visually build and edit the moderation pipeline with nodes", "nodeEditorLockedTooltip": "The node editor is available on a higher plan (NODE_EDITOR)", @@ -523,19 +527,19 @@ }, "LiteLlm": { "label": "Lite LLM", - "desc": "A lightweight AI (Gemini) reads the content and routes it to safe/gray/violation (1CC)" + "desc": "A lightweight AI (Gemini) reads the content and routes it to safe/gray/violation (2CC)" }, "DetailLlm": { "label": "Detail LLM", - "desc": "A high-accuracy AI (Gemini) judges in detail including prior history, branching match / no-match (3CC)" + "desc": "A high-accuracy AI (Gemini) judges in detail including prior history, branching match / no-match (5CC)" }, "Confidence": { "label": "Confidence", - "desc": "Compares the latest verdict's confidence to a threshold and branches match / no-match (1CC)" + "desc": "Compares the latest verdict's confidence to a threshold and branches match / no-match (2CC)" }, "AdvancedLlm": { "label": "Advanced LLM", - "desc": "A high-accuracy AI (Gemini) produces a verdict and passes it straight to the next node (3CC)" + "desc": "A high-accuracy AI (Gemini) produces a verdict and passes it straight to the next node (5CC)" }, "ActionPolicy": { "label": "Action Policy", From 07a227fc4ac66799291e2ade657b47e3d331f598 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 00:22:43 +0900 Subject: [PATCH 160/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ja/web.json b/ja/web.json index bb7edec..9de0de6 100644 --- a/ja/web.json +++ b/ja/web.json @@ -308,6 +308,8 @@ "aimod": { "title": "AI モデレーション", "desc": "AI によるチャットの自動監視・対応を設定します", + "logChannelLabel": "ログチャンネル", + "logChannelDesc": "AIモデレーションのログやレビュー通知を送信するチャンネルを指定します", "statusNotSet": "未設定", "statusRunning": "実行中", "statusStopped": "停止中", @@ -347,6 +349,8 @@ "advancedLaneSectionDesc": "次世代 AI モデレーション(advanced モード)の詳細設定を行います", "naturalLanguageRulesLabel": "自然言語ルール", "naturalLanguageRulesDesc": "このサーバー固有のモデレーションルールを自然言語で記述します。AI がルールを理解し、判定に反映します", + "naturalLanguageRulesSurcharge": "ルールの長さにより判定1回あたり +{cc}CC が追加されます(500文字ごとに +1CC)", + "naturalLanguageRulesNoSurcharge": "ルール未設定のため追加CCはありません", "naturalLanguageRulesPlaceholder": "例:\n- 政治・宗教の議論は禁止\n- 18歳未満に不適切なコンテンツを送ってはならない\n- 他のユーザーへの侮辱的な発言は削除する", "advancedViolationStorageLabel": "高度な違反保存", "advancedViolationStorageDesc": "AI が違反理由を分類して保存します。モデレーションログの詳細化に役立ちますが、1CC/件 のクレジットを消費します", From 6c856c3ab1970ab4397d572ff8c4df6853d0081a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 21:28:50 +0900 Subject: [PATCH 161/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 54 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 49 insertions(+), 5 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 0278950..2352a9c 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1112,6 +1112,17 @@ "default_reason": "自動モデレーションによる処罰", "failed_title": "⚠️ モデレーション実行失敗", "failed_body": "**対象:** <@{userId}> ({userTag})\n**試行アクション:** {actions}\n**理由:** {reason}\n\n対象が管理者権限を持っている、またはBotより上位のロールを持っているため、アクションを実行できませんでした。手動で対応してください。", + "v2_target": "**対象:** <@{userId}>\n`{userTag}`", + "v2_actions": "**⚡ 実施アクション:** {actions}", + "v2_failed_actions": "**⚡ 試行アクション:** {actions}", + "v2_reason": "**📝 理由:** {reason}", + "v2_confidence": "**🎯 信頼度:** `{gauge}`", + "v2_severity": "**🔥 深刻度:** `{gauge}`", + "v2_categories": "**🏷️ カテゴリ:** {categories}", + "v2_triggers": "**🚦 発火ルール:** {triggers}", + "v2_executor": "**👮 実行者:** <@{executorId}>", + "v2_jump": "[📨 対象メッセージへ移動]({url})", + "v2_failed_hint": "-# 対象が管理者権限を持っている、またはBotより上位のロールを持っているため自動処罰できませんでした。下のボタンから手動で対応してください。", "btn_ban": "BAN", "btn_kick": "キック", "btn_unquarantine": "隔離解除", @@ -1126,13 +1137,38 @@ "ai_lane": { "review": { "title": "🤖 AIモデレーション 要確認", - "author": "**対象:** <@{userId}> ({userTag})", + "author": "**対象:** <@{userId}>\n`{userTag}`", "verdict": "**判定:** {label}(信頼度 {confidence}%)", - "categories": "**カテゴリ:** {categories}", - "reason": "**理由:** {reason}", - "jump": "[メッセージへ移動]({url})", + "verdict_label": "**⚖️ 判定:** {label}", + "confidence": "**🎯 信頼度:** `{gauge}`", + "severity": "**🔥 深刻度:** `{gauge}`", + "categories": "**🏷️ カテゴリ:** {categories}", + "triggers": "**🚦 発火ルール:** {triggers}", + "reason": "**📝 理由:** {reason}", + "jump": "[📨 メッセージへ移動]({url})", "label_gray": "グレー", "label_violation": "違反" + }, + "categories": { + "harassment": "嫌がらせ", + "hate": "ヘイト", + "sexual": "性的", + "violence": "暴力", + "self_harm": "自傷", + "spam": "スパム", + "scam_phishing": "詐欺・フィッシング", + "advertising": "宣伝・広告", + "nsfw": "NSFW", + "server_rule": "サーバールール違反" + }, + "pipeline_stage": { + "omni": "一次スクリーニング(Omni)", + "lite_llm": "軽量LLM判定", + "detail_llm": "詳細LLM判定", + "heuristic": "ヒューリスティック判定" + }, + "pipeline": { + "summary": "-# ⚙️ パイプライン: {stage} で判定が確定しました" } }, "warn": { @@ -1267,7 +1303,15 @@ "ANTINUKE_ROLE_CREATE": "ロールの大量作成", "ANTINUKE_WEBHOOK_CREATE": "Webhookの大量作成", "ANTINUKE_BAN_KICK": "メンバーの大量BAN/キック", - "ANTINUKE_ROLE_GRANT": "ロールへの危険な権限の付与" + "ANTINUKE_ROLE_GRANT": "ロールへの危険な権限の付与", + "AI_HARASSMENT": "AI検知: 嫌がらせ", + "AI_HATE": "AI検知: ヘイト", + "AI_SEXUAL": "AI検知: 性的コンテンツ", + "AI_VIOLENCE": "AI検知: 暴力", + "AI_SELF_HARM": "AI検知: 自傷", + "AI_SCAM_PHISHING": "AI検知: 詐欺・フィッシング", + "AI_SERVER_RULE": "AI検知: サーバールール違反", + "AI_SPAM": "AI検知: スパム" }, "legacy_automod": { "category": { From ed53ad4184fb1126ea883a24a0556b7da4a923fa Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 21:28:52 +0900 Subject: [PATCH 162/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 117 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index 9de0de6..79df51c 100644 --- a/ja/web.json +++ b/ja/web.json @@ -232,6 +232,36 @@ "joins": "参加", "leaves": "退出", "netChange": "純増減" + }, + "moderationMetrics": { + "title": "AI モデレーション", + "screened": "スクリーニング総数", + "actions": "アクション実行数", + "detections": "検出数", + "range7": "7日間", + "range30": "30日間", + "categoryTitle": "上位カテゴリ", + "timeseriesTitle": "日別検出数", + "noData": "データがありません", + "empty": "モデレーションの記録はまだありません", + "error": "モデレーション指標の読み込みに失敗しました", + "categories": { + "harassment": "嫌がらせ", + "harassment/threatening": "嫌がらせ(脅迫)", + "hate": "差別的表現", + "hate/threatening": "差別的表現(脅迫)", + "sexual": "性的", + "sexual/minors": "性的(未成年)", + "violence": "暴力", + "violence/graphic": "暴力(描写)", + "self-harm": "自傷", + "self-harm/intent": "自傷(意図)", + "self-harm/instructions": "自傷(手段)", + "illicit": "違法行為", + "illicit/violent": "違法行為(暴力)", + "spam": "スパム", + "other": "その他" + } } }, "general": { @@ -394,7 +424,45 @@ "cfgDetailLlmLabel": "詳細LLM分析", "cfgDetailLlmDesc": "前科を含めた高精度な詳細AI分析を有効にします(CC消費が増えます)", "cfgOn": "オン", - "cfgOff": "オフ" + "cfgOff": "オフ", + "detections": { + "title": "最近の検出", + "desc": "AI モデレーションが検出した最新のメッセージ", + "empty": "まだ検出はありません", + "error": "検出の読み込みに失敗しました", + "filterAll": "すべて", + "confidence": "信頼度", + "action": "アクション", + "reason": "理由", + "viewMessage": "メッセージを表示", + "sourceAuto": "AI", + "sourceManual": "手動", + "user": "ユーザー", + "justNow": "たった今", + "minutesAgo": "{n}分前", + "hoursAgo": "{n}時間前", + "daysAgo": "{n}日前", + "page": "ページ", + "of": "/", + "total": "件", + "categories": { + "harassment": "嫌がらせ", + "harassment/threatening": "嫌がらせ(脅迫)", + "hate": "差別的表現", + "hate/threatening": "差別的表現(脅迫)", + "sexual": "性的", + "sexual/minors": "性的(未成年)", + "violence": "暴力", + "violence/graphic": "暴力(描写)", + "self-harm": "自傷", + "self-harm/intent": "自傷(意図)", + "self-harm/instructions": "自傷(手段)", + "illicit": "違法行為", + "illicit/violent": "違法行為(暴力)", + "spam": "スパム", + "other": "その他" + } + } }, "aimodEditor": { "title": "ノードエディター", @@ -581,7 +649,54 @@ "loadTemplate": "標準テンプレートを読み込む", "searchPlaceholder": "ノードを検索...", "unsavedTooltip": "未保存の変更があります", - "deleteEdge": "エッジを削除" + "deleteEdge": "エッジを削除", + "test": { + "open": "テスト実行", + "title": "テスト実行", + "subtitle": "現在のパイプライン(未保存の変更を含む)にサンプルメッセージを流し、各ノードの判定をトレースします", + "inputLabel": "サンプルメッセージ", + "inputPlaceholder": "テストするメッセージを入力(例: 「今すぐ参加 https://discord.gg/...」)", + "charCount": "{count} / {max}", + "run": "実行", + "running": "実行中...", + "rerun": "もう一度実行", + "clear": "クリア", + "close": "閉じる", + "emptyHint": "サンプルメッセージを入力して実行すると、各ノードがどう判定するかを確認できます。", + "noTrace": "実行されたノードはありません", + "traceTitle": "トレース", + "stepLabel": "ステップ {n}", + "branchTaken": "分岐: {branch}", + "result": "結果: {result}", + "llmCalled": "LLM", + "duration": "{ms}ms", + "wouldExecute": "実行予定: {actions}", + "verdict": { + "label": "判定", + "confidence": "確信度 {percent}%", + "severity": "深刻度 {severity}", + "categories": "カテゴリ", + "reason": "理由" + }, + "finalVerdict": "最終判定", + "noFinalVerdict": "最終判定なし", + "footer": { + "llmCalls": "LLM呼び出し", + "estimatedCost": "推定コスト", + "cost": "{cc}CC", + "charged": "課金あり", + "free": "無料(課金なし)", + "freeRemaining": "本日の無料実行残り: {count}回" + }, + "errors": { + "title": "テスト実行に失敗しました", + "noFunds": "本日の無料テスト回数を使い切り、Cubeクレジットも不足しています。クレジットを追加するか、明日もう一度お試しください。", + "forbidden": "このサーバーでテストを実行する権限がありません。", + "botMissing": "Botがまだこのサーバーに参加していません。Botを招待してからテストを実行してください。", + "noConfig": "AIモデレーションがまだ設定されていません。ノードを1つ以上追加してからお試しください。", + "generic": "テスト実行中に問題が発生しました。もう一度お試しください。" + } + } }, "subscription": { "title": "サブスクリプション", From 413249870b7ba67ad0006ba47d20e16ddb169f88 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 22:36:53 +0900 Subject: [PATCH 163/215] Update source file bot.json [ci skip] --- en/bot.json | 60 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/en/bot.json b/en/bot.json index b848430..678e69e 100644 --- a/en/bot.json +++ b/en/bot.json @@ -884,6 +884,9 @@ "user": "User", "author": "Author", "deleted_by": "Deleted By", + "deleted_by_moderation": "Cube (Auto Moderation)", + "deleted_by_moderation_with_reason": "Cube (Auto Moderation) — {reason}", + "deleted_by_unknown_self": "Unknown (possibly self-deleted)", "kicked_by": "Kicked By", "banned_by": "Banned By", "unbanned_by": "Unbanned By", @@ -1112,6 +1115,18 @@ "default_reason": "Automod Action", "failed_title": "⚠️ Moderation Action Failed", "failed_body": "**User:** <@{userId}> ({userTag})\n**Attempted action(s):** {actions}\n**Reason:** {reason}\n\nThe action could not be performed because the target has administrator permission or a role higher than the bot. Please handle this manually.", + "v2_target": "**User:** <@{userId}>\n`{userTag}`", + "v2_actions": "**⚡ Action(s):** {actions}", + "v2_failed_actions": "**⚡ Attempted action(s):** {actions}", + "v2_reason": "**📝 Reason:** {reason}", + "v2_confidence": "**🎯 Confidence:** `{gauge}`", + "v2_severity": "**🔥 Severity:** `{gauge}`", + "v2_categories": "**🏷️ Categories:** {categories}", + "v2_triggers": "**🚦 Triggered rules:** {triggers}", + "v2_executor": "**👮 Executor:** <@{executorId}>", + "v2_jump": "[📨 Jump to message]({url})", + "btn_jump": "📨 Jump to message", + "v2_failed_hint": "-# Auto-moderation could not act because the target has administrator permission or a role higher than the bot. Please handle this manually using the buttons below.", "btn_ban": "BAN", "btn_kick": "Kick", "btn_unquarantine": "Release", @@ -1126,13 +1141,39 @@ "ai_lane": { "review": { "title": "🤖 AI Moderation — Review Required", - "author": "**Target:** <@{userId}> ({userTag})", + "author": "**Target:** <@{userId}>\n`{userTag}`", "verdict": "**Verdict:** {label} (confidence {confidence}%)", - "categories": "**Categories:** {categories}", - "reason": "**Reason:** {reason}", - "jump": "[Jump to message]({url})", + "verdict_label": "**⚖️ Verdict:** {label}", + "confidence": "**🎯 Confidence:** `{gauge}`", + "severity": "**🔥 Severity:** `{gauge}`", + "categories": "**🏷️ Categories:** {categories}", + "triggers": "**🚦 Triggered rules:** {triggers}", + "reason": "**📝 Reason:** {reason}", + "jump": "[📨 Jump to message]({url})", + "btn_jump": "📨 Jump to message", "label_gray": "Gray", "label_violation": "Violation" + }, + "categories": { + "harassment": "Harassment", + "hate": "Hate", + "sexual": "Sexual", + "violence": "Violence", + "self_harm": "Self-harm", + "spam": "Spam", + "scam_phishing": "Scam / Phishing", + "advertising": "Advertising", + "nsfw": "NSFW", + "server_rule": "Server rule violation" + }, + "pipeline_stage": { + "omni": "Primary screening (Omni)", + "lite_llm": "Lite LLM verdict", + "detail_llm": "Detailed LLM verdict", + "heuristic": "Heuristic verdict" + }, + "pipeline": { + "summary": "-# ⚙️ Pipeline: verdict finalized at {stage}" } }, "warn": { @@ -1267,7 +1308,15 @@ "ANTINUKE_ROLE_CREATE": "Mass role creation", "ANTINUKE_WEBHOOK_CREATE": "Mass webhook creation", "ANTINUKE_BAN_KICK": "Mass member ban/kick", - "ANTINUKE_ROLE_GRANT": "Granted dangerous permissions to a role" + "ANTINUKE_ROLE_GRANT": "Granted dangerous permissions to a role", + "AI_HARASSMENT": "AI Detection: Harassment", + "AI_HATE": "AI Detection: Hate Speech", + "AI_SEXUAL": "AI Detection: Sexual Content", + "AI_VIOLENCE": "AI Detection: Violence", + "AI_SELF_HARM": "AI Detection: Self-harm", + "AI_SCAM_PHISHING": "AI Detection: Scam / Phishing", + "AI_SERVER_RULE": "AI Detection: Server Rule Violation", + "AI_SPAM": "AI Detection: Spam" }, "legacy_automod": { "category": { @@ -1297,6 +1346,7 @@ "action_deleted": "Deleted", "action_none": "None", "jump": "[Jump to message]({url})", + "btn_jump": "📨 Jump to message", "btn_delete": "Delete Message", "btn_warn": "Send Warning" }, From 316f079cbc35615352927ff2f5f146be5df3671d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 22:36:54 +0900 Subject: [PATCH 164/215] Update source file web.json [ci skip] --- en/web.json | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 118 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index a056f58..e322ede 100644 --- a/en/web.json +++ b/en/web.json @@ -232,6 +232,36 @@ "joins": "Joins", "leaves": "Leaves", "netChange": "Net Change" + }, + "moderationMetrics": { + "title": "AI Moderation", + "screened": "Messages Screened", + "actions": "Actions Taken", + "detections": "Detections", + "range7": "7 days", + "range30": "30 days", + "categoryTitle": "Top Categories", + "timeseriesTitle": "Daily Detections", + "noData": "No data available", + "empty": "No moderation activity yet", + "error": "Failed to load moderation metrics", + "categories": { + "harassment": "Harassment", + "harassment/threatening": "Harassment (Threatening)", + "hate": "Hate", + "hate/threatening": "Hate (Threatening)", + "sexual": "Sexual", + "sexual/minors": "Sexual (Minors)", + "violence": "Violence", + "violence/graphic": "Violence (Graphic)", + "self-harm": "Self-harm", + "self-harm/intent": "Self-harm (Intent)", + "self-harm/instructions": "Self-harm (Instructions)", + "illicit": "Illicit", + "illicit/violent": "Illicit (Violent)", + "spam": "Spam", + "other": "Other" + } } }, "general": { @@ -394,7 +424,45 @@ "cfgDetailLlmLabel": "Detailed LLM analysis", "cfgDetailLlmDesc": "Enable high-accuracy detailed AI analysis including prior history (increases CC cost)", "cfgOn": "On", - "cfgOff": "Off" + "cfgOff": "Off", + "detections": { + "title": "Recent Detections", + "desc": "Latest messages flagged by AI moderation", + "empty": "No detections yet", + "error": "Failed to load detections", + "filterAll": "All", + "confidence": "Confidence", + "action": "Action", + "reason": "Reason", + "viewMessage": "View message", + "sourceAuto": "AI", + "sourceManual": "Manual", + "user": "User", + "justNow": "Just now", + "minutesAgo": "{n}m ago", + "hoursAgo": "{n}h ago", + "daysAgo": "{n}d ago", + "page": "Page", + "of": "of", + "total": "detections", + "categories": { + "harassment": "Harassment", + "harassment/threatening": "Harassment (Threatening)", + "hate": "Hate", + "hate/threatening": "Hate (Threatening)", + "sexual": "Sexual", + "sexual/minors": "Sexual (Minors)", + "violence": "Violence", + "violence/graphic": "Violence (Graphic)", + "self-harm": "Self-harm", + "self-harm/intent": "Self-harm (Intent)", + "self-harm/instructions": "Self-harm (Instructions)", + "illicit": "Illicit", + "illicit/violent": "Illicit (Violent)", + "spam": "Spam", + "other": "Other" + } + } }, "aimodEditor": { "title": "Node Editor", @@ -581,7 +649,55 @@ "loadTemplate": "Load standard template", "searchPlaceholder": "Search nodes...", "unsavedTooltip": "You have unsaved changes", - "deleteEdge": "Delete edge" + "deleteEdge": "Delete edge", + "test": { + "open": "Test run", + "title": "Test run", + "subtitle": "Run a sample message through the current pipeline (unsaved changes included) and trace each node", + "inputLabel": "Sample message", + "inputPlaceholder": "Type a message to test, e.g. \"Join now https://discord.gg/...\"", + "charCount": "{count} / {max}", + "run": "Run", + "running": "Running...", + "rerun": "Run again", + "clear": "Clear", + "close": "Close", + "emptyHint": "Enter a sample message and press Run to see how each node judges it.", + "noTrace": "No nodes were executed", + "traceTitle": "Trace", + "stepLabel": "Step {n}", + "branchTaken": "Branch: {branch}", + "result": "Result: {result}", + "llmCalled": "LLM", + "duration": "{ms}ms", + "wouldExecute": "Would run: {actions}", + "verdict": { + "label": "Verdict", + "confidence": "Confidence {percent}%", + "severity": "Severity {severity}", + "categories": "Categories", + "reason": "Reason" + }, + "finalVerdict": "Final verdict", + "noFinalVerdict": "No final verdict", + "footer": { + "llmCalls": "LLM calls", + "estimatedCost": "Est. cost", + "cost": "{cc}CC", + "charged": "Charged", + "free": "Free (no charge)", + "freeRemaining": "Free runs left today: {count}", + "partialShortfall": "Some checks were skipped due to insufficient credits" + }, + "errors": { + "title": "Test run failed", + "noFunds": "Free test runs for today are used up and you don't have enough Cube Credit. Add credits or try again tomorrow.", + "forbidden": "You don't have permission to run a test on this server.", + "botMissing": "The bot isn't in this server yet. Invite the bot before running a test.", + "noConfig": "AI moderation isn't set up yet. Add at least one node and try again.", + "generic": "Something went wrong while running the test. Please try again." + } + } }, "subscription": { "title": "Subscription", From 777935392269270b8e0631445ee9aef80de4d939 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 22:37:10 +0900 Subject: [PATCH 165/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 2352a9c..580a1f8 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -884,6 +884,9 @@ "user": "ユーザー", "author": "送信者", "deleted_by": "削除者", + "deleted_by_moderation": "Cube(自動モデレーション)", + "deleted_by_moderation_with_reason": "Cube(自動モデレーション)— {reason}", + "deleted_by_unknown_self": "不明(自己削除の可能性)", "kicked_by": "キック実行者", "banned_by": "BAN実行者", "unbanned_by": "BAN解除者", @@ -1122,6 +1125,7 @@ "v2_triggers": "**🚦 発火ルール:** {triggers}", "v2_executor": "**👮 実行者:** <@{executorId}>", "v2_jump": "[📨 対象メッセージへ移動]({url})", + "btn_jump": "📨 対象メッセージへ移動", "v2_failed_hint": "-# 対象が管理者権限を持っている、またはBotより上位のロールを持っているため自動処罰できませんでした。下のボタンから手動で対応してください。", "btn_ban": "BAN", "btn_kick": "キック", @@ -1146,6 +1150,7 @@ "triggers": "**🚦 発火ルール:** {triggers}", "reason": "**📝 理由:** {reason}", "jump": "[📨 メッセージへ移動]({url})", + "btn_jump": "📨 対象メッセージへ移動", "label_gray": "グレー", "label_violation": "違反" }, @@ -1341,6 +1346,7 @@ "action_deleted": "削除", "action_none": "なし", "jump": "[メッセージへ移動]({url})", + "btn_jump": "📨 対象メッセージへ移動", "btn_delete": "メッセージ削除", "btn_warn": "警告を送信" }, From 47e7ef0ad011b844edd4bc2fd00f0b4995bd0f41 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sat, 13 Jun 2026 22:37:11 +0900 Subject: [PATCH 166/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 79df51c..4cb454f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -686,7 +686,8 @@ "cost": "{cc}CC", "charged": "課金あり", "free": "無料(課金なし)", - "freeRemaining": "本日の無料実行残り: {count}回" + "freeRemaining": "本日の無料実行残り: {count}回", + "partialShortfall": "残高不足のため一部の判定をスキップしました" }, "errors": { "title": "テスト実行に失敗しました", From a7039de4db140f7e2eb8d3e76118f8e73844fa5e Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 14 Jun 2026 18:28:25 +0900 Subject: [PATCH 167/215] Update source file bot.json [ci skip] --- en/bot.json | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/en/bot.json b/en/bot.json index 678e69e..79280fc 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1125,6 +1125,9 @@ "v2_triggers": "**🚦 Triggered rules:** {triggers}", "v2_executor": "**👮 Executor:** <@{executorId}>", "v2_jump": "[📨 Jump to message]({url})", + "compact_line": "🚨 <@{userId}> ・ ⚡ {actions}", + "compact_category": "🏷️ {category}", + "compact_confidence": "🎯 {percent}%", "btn_jump": "📨 Jump to message", "v2_failed_hint": "-# Auto-moderation could not act because the target has administrator permission or a role higher than the bot. Please handle this manually using the buttons below.", "btn_ban": "BAN", @@ -1178,7 +1181,11 @@ }, "warn": { "dm_title": "⚠️ Warning", - "dm_body": "You have received a warning from **{guildName}**'s auto-moderation. Please review the server rules." + "dm_body": "You have received a warning from **{guildName}**'s auto-moderation. Please review the server rules.", + "v2_body": "You have received a warning from **{guildName}**'s auto-moderation.", + "v2_reason": "**📝 Reason:** {reason}", + "v2_categories": "**🏷️ Categories:** {categories}", + "v2_guide": "-# Please review the server rules. Repeated violations may result in stronger action." }, "notify_owner": { "dm_title": "🛡️ Anti-Nuke Detected (Owner Notification)", @@ -1199,14 +1206,18 @@ "appeal_dm": { "quarantine_title": "⚠️ Quarantine Applied", "timeout_title": "⚠️ Timeout Applied", - "body": "**Server:** {guildName}\n**Reason:** {reason}\n\nAuto-moderation has applied a {label} to your account. If you believe this is a false positive, you can submit an appeal using the button below.", + "body": "Auto-moderation has applied a **{label}** to your account.\n\n**🏠 Server:** {guildName}\n**📝 Reason:** {reason}\n\n-# If you believe this is a false positive, you can submit an appeal using the button below.", "quarantine_label": "Quarantine", "timeout_label": "Timeout", "btn_appeal": "Submit Appeal" }, "notify": { "channel_title": "🚨 Auto Moderation", - "channel_body": "Applied punishment to <@{userId}>.\n**Action:** {action}\n**Reason:** {reason}" + "channel_body": "Applied punishment to <@{userId}>.\n**Action:** {action}\n**Reason:** {reason}", + "v2_target": "**👤 Target:** <@{userId}>", + "v2_action": "**⚡ Action:** {action}", + "v2_reason": "**📝 Reason:** {reason}", + "v2_categories": "**🏷️ Categories:** {categories}" }, "appeal_modal": { "title": "Submit Appeal", From e3bd16c14821d8eef9543763384705e2b6c8428d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 14 Jun 2026 18:28:26 +0900 Subject: [PATCH 168/215] Update source file web.json [ci skip] --- en/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/web.json b/en/web.json index e322ede..0def84b 100644 --- a/en/web.json +++ b/en/web.json @@ -384,6 +384,8 @@ "naturalLanguageRulesPlaceholder": "e.g.\n- No political or religious debates\n- No content inappropriate for users under 18\n- Remove insulting remarks directed at other users", "advancedViolationStorageLabel": "Advanced Violation Storage", "advancedViolationStorageDesc": "AI classifies and stores violation reasons in detail. Useful for richer moderation logs, but consumes 2 CC per violation", + "modLogCompactLabel": "Compact Log", + "modLogCompactDesc": "Show moderator logs as a concise one-line entry. When off (default), logs are shown in detail with thumbnails and confidence gauges", "nodeEditorLinkLabel": "Node Editor", "nodeEditorLinkDesc": "Visually build and edit the moderation pipeline with nodes", "nodeEditorLockedTooltip": "The node editor is available on a higher plan (NODE_EDITOR)", From 1ecb9ad357b39b10d9aecc492e5bf7ff614b1efe Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 14 Jun 2026 18:28:46 +0900 Subject: [PATCH 169/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 580a1f8..10ff634 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1125,6 +1125,9 @@ "v2_triggers": "**🚦 発火ルール:** {triggers}", "v2_executor": "**👮 実行者:** <@{executorId}>", "v2_jump": "[📨 対象メッセージへ移動]({url})", + "compact_line": "🚨 <@{userId}> ・ ⚡ {actions}", + "compact_category": "🏷️ {category}", + "compact_confidence": "🎯 {percent}%", "btn_jump": "📨 対象メッセージへ移動", "v2_failed_hint": "-# 対象が管理者権限を持っている、またはBotより上位のロールを持っているため自動処罰できませんでした。下のボタンから手動で対応してください。", "btn_ban": "BAN", @@ -1178,7 +1181,11 @@ }, "warn": { "dm_title": "⚠️ 警告", - "dm_body": "**{guildName}** の自動モデレーションにより警告を受けました。サーバーのルールを確認してください。" + "dm_body": "**{guildName}** の自動モデレーションにより警告を受けました。サーバーのルールを確認してください。", + "v2_body": "**{guildName}** の自動モデレーションにより警告を受けました。", + "v2_reason": "**📝 理由:** {reason}", + "v2_categories": "**🏷️ カテゴリ:** {categories}", + "v2_guide": "-# サーバーのルールを今一度ご確認ください。違反が続くと、より重い措置が取られる場合があります。" }, "notify_owner": { "dm_title": "🛡️ Anti-Nuke 検知(オーナー通知)", @@ -1199,14 +1206,18 @@ "appeal_dm": { "quarantine_title": "⚠️ 隔離(Quarantine)が適用されました", "timeout_title": "⚠️ タイムアウトが適用されました", - "body": "**サーバー:** {guildName}\n**理由:** {reason}\n\n自動モデレーションにより {label} が適用されました。誤検知と思われる場合は、下のボタンから異議申し立てができます。", + "body": "自動モデレーションにより **{label}** が適用されました。\n\n**🏠 サーバー:** {guildName}\n**📝 理由:** {reason}\n\n-# 誤検知と思われる場合は、下のボタンから異議申し立てができます。", "quarantine_label": "隔離(Quarantine)", "timeout_label": "タイムアウト", "btn_appeal": "異議申し立て" }, "notify": { "channel_title": "🚨 自動モデレーション", - "channel_body": "<@{userId}> に対して処罰を実施しました。\n**処罰:** {action}\n**理由:** {reason}" + "channel_body": "<@{userId}> に対して処罰を実施しました。\n**処罰:** {action}\n**理由:** {reason}", + "v2_target": "**👤 対象:** <@{userId}>", + "v2_action": "**⚡ 処罰:** {action}", + "v2_reason": "**📝 理由:** {reason}", + "v2_categories": "**🏷️ カテゴリ:** {categories}" }, "appeal_modal": { "title": "異議申し立て", From 613111979c9f2bfdd69c1cc29b51135db20bd216 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 14 Jun 2026 18:28:48 +0900 Subject: [PATCH 170/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/web.json b/ja/web.json index 4cb454f..57be2ce 100644 --- a/ja/web.json +++ b/ja/web.json @@ -384,6 +384,8 @@ "naturalLanguageRulesPlaceholder": "例:\n- 政治・宗教の議論は禁止\n- 18歳未満に不適切なコンテンツを送ってはならない\n- 他のユーザーへの侮辱的な発言は削除する", "advancedViolationStorageLabel": "高度な違反保存", "advancedViolationStorageDesc": "AI が違反理由を分類して保存します。モデレーションログの詳細化に役立ちますが、1CC/件 のクレジットを消費します", + "modLogCompactLabel": "コンパクトログ", + "modLogCompactDesc": "モデレーターログを簡潔な1行表示にします。オフ(既定)では、サムネイルや信頼度ゲージを含む詳細表示になります", "nodeEditorLinkLabel": "ノードエディター", "nodeEditorLinkDesc": "パイプラインをノードで視覚的に構築・編集します", "nodeEditorLockedTooltip": "ノードエディターは上位プラン (NODE_EDITOR) で利用できます", From e91be100914e3301b799238e64346cc09ffbda38 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 14 Jun 2026 21:01:44 +0900 Subject: [PATCH 171/215] Update source file web.json [ci skip] --- en/web.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 0def84b..365ebe9 100644 --- a/en/web.json +++ b/en/web.json @@ -697,7 +697,8 @@ "forbidden": "You don't have permission to run a test on this server.", "botMissing": "The bot isn't in this server yet. Invite the bot before running a test.", "noConfig": "AI moderation isn't set up yet. Add at least one node and try again.", - "generic": "Something went wrong while running the test. Please try again." + "generic": "Something went wrong while running the test. Please try again.", + "unavailable": "The bot is temporarily unavailable. Please try again in a moment." } } }, From ee04560f63adf045c280c74e6bc7d5f25607332b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 14 Jun 2026 21:01:47 +0900 Subject: [PATCH 172/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 57be2ce..115d588 100644 --- a/ja/web.json +++ b/ja/web.json @@ -697,7 +697,8 @@ "forbidden": "このサーバーでテストを実行する権限がありません。", "botMissing": "Botがまだこのサーバーに参加していません。Botを招待してからテストを実行してください。", "noConfig": "AIモデレーションがまだ設定されていません。ノードを1つ以上追加してからお試しください。", - "generic": "テスト実行中に問題が発生しました。もう一度お試しください。" + "generic": "テスト実行中に問題が発生しました。もう一度お試しください。", + "unavailable": "Botが一時的に応答していません。しばらくしてからもう一度お試しください。" } } }, From 337efecbd1e918fc0f3f3e5352b78dadec866ca2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 10:32:00 +0900 Subject: [PATCH 173/215] Update source file bot.json [ci skip] --- en/bot.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/en/bot.json b/en/bot.json index 79280fc..eba9fa7 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1124,6 +1124,8 @@ "v2_categories": "**🏷️ Categories:** {categories}", "v2_triggers": "**🚦 Triggered rules:** {triggers}", "v2_executor": "**👮 Executor:** <@{executorId}>", + "v2_message": "**📄 Target message:**\n{content}", + "v2_message_empty": "**📄 Target message:** -# (no text content; attachment only)", "v2_jump": "[📨 Jump to message]({url})", "compact_line": "🚨 <@{userId}> ・ ⚡ {actions}", "compact_category": "🏷️ {category}", From 876ad86678b376d1f2654fa1f664de744a84649d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 10:32:01 +0900 Subject: [PATCH 174/215] Update source file web.json [ci skip] --- en/web.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/en/web.json b/en/web.json index 365ebe9..a4525c5 100644 --- a/en/web.json +++ b/en/web.json @@ -699,6 +699,15 @@ "noConfig": "AI moderation isn't set up yet. Add at least one node and try again.", "generic": "Something went wrong while running the test. Please try again.", "unavailable": "The bot is temporarily unavailable. Please try again in a moment." + }, + "actionsTitle": "Actions in production", + "noActions": "No actions (safe)", + "actions": { + "message.delete": "Delete message", + "member.timeout": "Timeout", + "member.kick": "Kick", + "member.ban": "Ban", + "warn": "Warn" } } }, From 935d14b22df5311f87d1332783452950ea57dc2a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 10:32:15 +0900 Subject: [PATCH 175/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ja/bot.json b/ja/bot.json index 10ff634..f78b6b3 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1124,6 +1124,8 @@ "v2_categories": "**🏷️ カテゴリ:** {categories}", "v2_triggers": "**🚦 発火ルール:** {triggers}", "v2_executor": "**👮 実行者:** <@{executorId}>", + "v2_message": "**📄 対象メッセージ:**\n{content}", + "v2_message_empty": "**📄 対象メッセージ:** -# (本文なし・添付のみ)", "v2_jump": "[📨 対象メッセージへ移動]({url})", "compact_line": "🚨 <@{userId}> ・ ⚡ {actions}", "compact_category": "🏷️ {category}", From 9b1bc8f3995299df1089575efcca6a1b0e4cf5ae Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 10:32:16 +0900 Subject: [PATCH 176/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ja/web.json b/ja/web.json index 115d588..e7d246e 100644 --- a/ja/web.json +++ b/ja/web.json @@ -699,6 +699,15 @@ "noConfig": "AIモデレーションがまだ設定されていません。ノードを1つ以上追加してからお試しください。", "generic": "テスト実行中に問題が発生しました。もう一度お試しください。", "unavailable": "Botが一時的に応答していません。しばらくしてからもう一度お試しください。" + }, + "actionsTitle": "本番で実行されるアクション", + "noActions": "アクションなし(safe)", + "actions": { + "message.delete": "メッセージ削除", + "member.timeout": "タイムアウト", + "member.kick": "キック", + "member.ban": "BAN", + "warn": "警告" } } }, From 38e497ceac63856cc97484fd34ff6d89503dd780 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 12:53:03 +0900 Subject: [PATCH 177/215] Update source file bot.json [ci skip] --- en/bot.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/bot.json b/en/bot.json index eba9fa7..94fdf84 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1119,6 +1119,7 @@ "v2_actions": "**⚡ Action(s):** {actions}", "v2_failed_actions": "**⚡ Attempted action(s):** {actions}", "v2_reason": "**📝 Reason:** {reason}", + "v2_suppressed": "**🛑 Suppressed by policy:** {actions}", "v2_confidence": "**🎯 Confidence:** `{gauge}`", "v2_severity": "**🔥 Severity:** `{gauge}`", "v2_categories": "**🏷️ Categories:** {categories}", From 39d3f3570be34a08c135625e0d96abd98417ff06 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 12:53:04 +0900 Subject: [PATCH 178/215] Update source file web.json [ci skip] --- en/web.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index a4525c5..628c2f3 100644 --- a/en/web.json +++ b/en/web.json @@ -498,6 +498,7 @@ "validation": { "errorNoEntry": "A MessageReceived node is required", "errorMultipleEntry": "Only one input node is allowed", + "errorCycle": "Cannot save: the pipeline contains a cycle (it would cause an infinite loop)", "warningDisconnected": "There are disconnected nodes" }, "fields": { @@ -536,7 +537,9 @@ "delete_message": "Delete message range", "delete_message_hint": "How far back to delete messages on ban (e.g. 1d). Empty deletes nothing", "content": "Content", - "content_hint": "The body of the message to send" + "content_hint": "The body of the message to send", + "deniedActions": "Denied actions (denylist)", + "deniedActions_hint": "Actions listed here are excluded right before execution, even if the AI or policy decides to take them. Leave empty to keep the default behavior. Valid keys: QUARANTINE, TIMEOUT_24H, TIMEOUT_1H, TIMEOUT_30M, TIMEOUT_10M, TIMEOUT_5M, DELETE_MESSAGE, WARN, SEND_TO_REVIEW_QUEUE, ADD_SUSPICION_LEVEL_1, NOTIFY_OWNER, MARK_COHORT_SUSPICION_LV2, UNQUARANTINE" }, "nodes": { "MessageReceived": { From aa6eb1256e7e4365eef560e3d0ecc9431bb1adb2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 12:53:23 +0900 Subject: [PATCH 179/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ja/bot.json b/ja/bot.json index f78b6b3..e7796dd 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1119,6 +1119,7 @@ "v2_actions": "**⚡ 実施アクション:** {actions}", "v2_failed_actions": "**⚡ 試行アクション:** {actions}", "v2_reason": "**📝 理由:** {reason}", + "v2_suppressed": "**🛑 ポリシーにより抑制:** {actions}", "v2_confidence": "**🎯 信頼度:** `{gauge}`", "v2_severity": "**🔥 深刻度:** `{gauge}`", "v2_categories": "**🏷️ カテゴリ:** {categories}", From cd04935f4e9f19f906ca05d1ef28d525185a8a9b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 12:53:25 +0900 Subject: [PATCH 180/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index e7d246e..68c99e8 100644 --- a/ja/web.json +++ b/ja/web.json @@ -498,6 +498,7 @@ "validation": { "errorNoEntry": "MessageReceived ノードが必要です", "errorMultipleEntry": "入力ノードは1つだけ配置できます", + "errorCycle": "循環があるため保存できません(無限ループの原因になります)", "warningDisconnected": "未接続のノードがあります" }, "fields": { @@ -536,7 +537,9 @@ "delete_message": "メッセージ削除範囲", "delete_message_hint": "BAN時にさかのぼって削除するメッセージの範囲(例: 1d)。空欄で削除しません", "content": "本文", - "content_hint": "送信するメッセージの本文" + "content_hint": "送信するメッセージの本文", + "deniedActions": "許可しないアクション (denylist)", + "deniedActions_hint": "ここに列挙したアクションは、AI やポリシーが決定しても実行直前に除外されます。空欄なら従来どおりの挙動です。有効なキー: QUARANTINE, TIMEOUT_24H, TIMEOUT_1H, TIMEOUT_30M, TIMEOUT_10M, TIMEOUT_5M, DELETE_MESSAGE, WARN, SEND_TO_REVIEW_QUEUE, ADD_SUSPICION_LEVEL_1, NOTIFY_OWNER, MARK_COHORT_SUSPICION_LV2, UNQUARANTINE" }, "nodes": { "MessageReceived": { From e9adc4d1220fc775610f5f2a71821b780c0790d6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 23:58:26 +0900 Subject: [PATCH 181/215] Update source file bot.json [ci skip] --- en/bot.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 94fdf84..842d59f 100644 --- a/en/bot.json +++ b/en/bot.json @@ -1158,7 +1158,21 @@ "jump": "[📨 Jump to message]({url})", "btn_jump": "📨 Jump to message", "label_gray": "Gray", - "label_violation": "Violation" + "label_violation": "Violation", + "recommended": "**🤖 Recommended policy action:** {actions}", + "btn_apply": "Apply", + "btn_reject": "Reject (false positive)", + "btn_override": "Other action", + "no_data": "Pending review data not found (it may have expired or already been handled).", + "applied": "✅ <@{executorId}> applied the recommended action to <@{userId}>.", + "apply_failed": "Failed to apply the recommended action to <@{userId}>.", + "rejected": "🚫 <@{executorId}> rejected the verdict for <@{userId}> as a false positive.", + "reject_failed": "Failed to reject for <@{userId}>.", + "override_prompt": "Select another action to apply.", + "override_placeholder": "Select an action", + "override_invalid": "An invalid action was selected.", + "overridden": "✅ <@{executorId}> applied **{action}** to <@{userId}>.", + "override_failed": "Failed to apply the action to <@{userId}>." }, "categories": { "harassment": "Harassment", From e3a50c65de6c2eeaccff2a57c3ece8e5d2e89936 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 23:58:27 +0900 Subject: [PATCH 182/215] Update source file web.json [ci skip] --- en/web.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/en/web.json b/en/web.json index 628c2f3..243f7ef 100644 --- a/en/web.json +++ b/en/web.json @@ -427,6 +427,14 @@ "cfgDetailLlmDesc": "Enable high-accuracy detailed AI analysis including prior history (increases CC cost)", "cfgOn": "On", "cfgOff": "Off", + "enforcementModeLabel": "Enforcement mode", + "enforcementModeDesc": "Choose how far AI verdicts are enforced automatically", + "enforcement_review_all_name": "Review everything", + "enforcement_review_all_desc": "Moderators review everything (AI never auto-punishes)", + "enforcement_auto_lowrisk_name": "Auto for low risk only (recommended)", + "enforcement_auto_lowrisk_desc": "Auto-punish only clear low-risk cases; everything else goes to review", + "enforcement_auto_full_name": "Full auto enforcement", + "enforcement_auto_full_desc": "Enforce automatically per policy verdict (trusted users always go to review)", "detections": { "title": "Recent Detections", "desc": "Latest messages flagged by AI moderation", From 6adc142c8d9258ae629a11280fbf1a189ce3eefc Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 23:58:40 +0900 Subject: [PATCH 183/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index e7796dd..9a64c69 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1158,7 +1158,21 @@ "jump": "[📨 メッセージへ移動]({url})", "btn_jump": "📨 対象メッセージへ移動", "label_gray": "グレー", - "label_violation": "違反" + "label_violation": "違反", + "recommended": "**🤖 Recommended policy action:** {actions}", + "btn_apply": "Apply", + "btn_reject": "Reject (false positive)", + "btn_override": "Other action", + "no_data": "Pending review data not found (it may have expired or already been handled).", + "applied": "✅ <@{executorId}> applied the recommended action to <@{userId}>.", + "apply_failed": "Failed to apply the recommended action to <@{userId}>.", + "rejected": "🚫 <@{executorId}> rejected the verdict for <@{userId}> as a false positive.", + "reject_failed": "Failed to reject for <@{userId}>.", + "override_prompt": "Select another action to apply.", + "override_placeholder": "Select an action", + "override_invalid": "An invalid action was selected.", + "overridden": "✅ <@{executorId}> applied **{action}** to <@{userId}>.", + "override_failed": "Failed to apply the action to <@{userId}>." }, "categories": { "harassment": "嫌がらせ", From f37d26c971aa8c0962893523144d0ed66117665f Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 15 Jun 2026 23:58:42 +0900 Subject: [PATCH 184/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ja/web.json b/ja/web.json index 68c99e8..193f577 100644 --- a/ja/web.json +++ b/ja/web.json @@ -427,6 +427,14 @@ "cfgDetailLlmDesc": "前科を含めた高精度な詳細AI分析を有効にします(CC消費が増えます)", "cfgOn": "オン", "cfgOff": "オフ", + "enforcementModeLabel": "執行モード", + "enforcementModeDesc": "AI の判定結果をどこまで自動で執行するかを選びます", + "enforcement_review_all_name": "全てレビュー", + "enforcement_review_all_desc": "全てモデレーターがレビューします(AI は自動処罰しません)", + "enforcement_auto_lowrisk_name": "低リスクのみ自動(推奨)", + "enforcement_auto_lowrisk_desc": "明白な低リスクのみ自動で処罰し、それ以外はレビューに回します", + "enforcement_auto_full_name": "完全自動執行", + "enforcement_auto_full_desc": "ポリシー判定どおりに自動執行します(信頼ユーザーは常にレビュー)", "detections": { "title": "最近の検出", "desc": "AI モデレーションが検出した最新のメッセージ", From 4fb7902559e3f6fb63f88d090b2f2733f08770eb Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 16 Jun 2026 01:25:22 +0900 Subject: [PATCH 185/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/ja/bot.json b/ja/bot.json index 9a64c69..bd42980 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -1159,20 +1159,20 @@ "btn_jump": "📨 対象メッセージへ移動", "label_gray": "グレー", "label_violation": "違反", - "recommended": "**🤖 Recommended policy action:** {actions}", - "btn_apply": "Apply", - "btn_reject": "Reject (false positive)", - "btn_override": "Other action", - "no_data": "Pending review data not found (it may have expired or already been handled).", - "applied": "✅ <@{executorId}> applied the recommended action to <@{userId}>.", - "apply_failed": "Failed to apply the recommended action to <@{userId}>.", - "rejected": "🚫 <@{executorId}> rejected the verdict for <@{userId}> as a false positive.", - "reject_failed": "Failed to reject for <@{userId}>.", - "override_prompt": "Select another action to apply.", - "override_placeholder": "Select an action", - "override_invalid": "An invalid action was selected.", - "overridden": "✅ <@{executorId}> applied **{action}** to <@{userId}>.", - "override_failed": "Failed to apply the action to <@{userId}>." + "recommended": "**🤖 ポリシー推奨アクション:** {actions}", + "btn_apply": "適用", + "btn_reject": "却下(誤検知)", + "btn_override": "別アクション", + "no_data": "このレビューの保留データが見つかりませんでした(有効期限切れ、または既に処理済みの可能性があります)。", + "applied": "✅ <@{executorId}> が <@{userId}> に推奨アクションを適用しました。", + "apply_failed": "<@{userId}> への推奨アクション適用に失敗しました。", + "rejected": "🚫 <@{executorId}> が <@{userId}> の判定を誤検知として却下しました。", + "reject_failed": "<@{userId}> の却下処理に失敗しました。", + "override_prompt": "適用する別のアクションを選択してください。", + "override_placeholder": "アクションを選択", + "override_invalid": "無効なアクションが選択されました。", + "overridden": "✅ <@{executorId}> が <@{userId}> に **{action}** を適用しました。", + "override_failed": "<@{userId}> へのアクション適用に失敗しました。" }, "categories": { "harassment": "嫌がらせ", From 00f2152862425a2a225b1cc009dde5a7675d5e92 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 16 Jun 2026 21:16:37 +0900 Subject: [PATCH 186/215] Update source file web.json [ci skip] --- en/web.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/en/web.json b/en/web.json index 243f7ef..2fe029e 100644 --- a/en/web.json +++ b/en/web.json @@ -435,6 +435,9 @@ "enforcement_auto_lowrisk_desc": "Auto-punish only clear low-risk cases; everything else goes to review", "enforcement_auto_full_name": "Full auto enforcement", "enforcement_auto_full_desc": "Enforce automatically per policy verdict (trusted users always go to review)", + "aiActiveLabel": "Enable AI moderation", + "aiActiveDesc": "Runs AI verdicts for the advanced lane. When OFF, the bot will not run any verdicts even if advanced mode is selected", + "aiActiveOffWarning": "Currently OFF, so the bot will not run any verdicts even if advanced mode is selected", "detections": { "title": "Recent Detections", "desc": "Latest messages flagged by AI moderation", From 9424decf2f644dd03855989e072e938e79bc2812 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 16 Jun 2026 21:16:50 +0900 Subject: [PATCH 187/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ja/web.json b/ja/web.json index 193f577..ac25995 100644 --- a/ja/web.json +++ b/ja/web.json @@ -435,6 +435,9 @@ "enforcement_auto_lowrisk_desc": "明白な低リスクのみ自動で処罰し、それ以外はレビューに回します", "enforcement_auto_full_name": "完全自動執行", "enforcement_auto_full_desc": "ポリシー判定どおりに自動執行します(信頼ユーザーは常にレビュー)", + "aiActiveLabel": "AI モデレーションを有効化", + "aiActiveDesc": "高度なモードの AI 判定を実行します。OFF にすると高度なモードを選んでいてもボットは判定を実行しません", + "aiActiveOffWarning": "現在 OFF のため、高度なモードを選んでいてもボットは判定を実行しません", "detections": { "title": "最近の検出", "desc": "AI モデレーションが検出した最新のメッセージ", From 8f81f469dec496bfd9270bc8d3358268bca6d2d7 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 17 Jun 2026 19:33:14 +0900 Subject: [PATCH 188/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/ja/web.json b/ja/web.json index ac25995..5c2ba2d 100644 --- a/ja/web.json +++ b/ja/web.json @@ -438,6 +438,8 @@ "aiActiveLabel": "AI モデレーションを有効化", "aiActiveDesc": "高度なモードの AI 判定を実行します。OFF にすると高度なモードを選んでいてもボットは判定を実行しません", "aiActiveOffWarning": "現在 OFF のため、高度なモードを選んでいてもボットは判定を実行しません", + "imageModerationLabel": "画像解析(AI による画像内容の判定)", + "imageModerationDesc": "OFF にするとテキストのみ解析し、画像は AI に送りません(CC 節約)", "detections": { "title": "最近の検出", "desc": "AI モデレーションが検出した最新のメッセージ", @@ -755,6 +757,39 @@ "buy": "クレジットを購入", "history": "取引履歴", "noHistory": "取引履歴がありません", + "spent": "消費合計 (過去{days}日)", + "spentAi": "AIモデレーション (過去{days}日)", + "cc": "{amount} CC", + "charts": { + "usageTrend": "消費推移", + "byCategory": "カテゴリ別内訳", + "balanceTrend": "残高推移", + "daily": "日次", + "weekly": "週次", + "noData": "消費データがありません", + "consumed": "消費", + "balance": "残高" + }, + "filter": { + "label": "絞り込み", + "all": "すべて", + "ai": "AIモデレーション", + "purchase": "購入", + "other": "その他" + }, + "category": { + "ai_screen": "AIスクリーニング", + "ai_lite": "AI判定 (Lite)", + "ai_detail": "AI判定 (Detail)", + "ai_advanced": "AI判定 (Advanced)", + "ai_violation": "違反分類", + "purchase": "購入", + "subscription": "サブスク", + "admin": "付与", + "manual": "手動調整", + "refund": "返金", + "other": "その他" + }, "lots": { "title": "有効期限", "noLots": "アクティブなクレジットロットがありません", From 97a46afb11d9f54f59c9133e9127786d3dd2cef2 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 21 Jun 2026 13:29:51 +0900 Subject: [PATCH 189/215] Update source file web.json [ci skip] --- en/web.json | 65 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 58 insertions(+), 7 deletions(-) diff --git a/en/web.json b/en/web.json index 2fe029e..a83d170 100644 --- a/en/web.json +++ b/en/web.json @@ -438,6 +438,8 @@ "aiActiveLabel": "Enable AI moderation", "aiActiveDesc": "Runs AI verdicts for the advanced lane. When OFF, the bot will not run any verdicts even if advanced mode is selected", "aiActiveOffWarning": "Currently OFF, so the bot will not run any verdicts even if advanced mode is selected", + "imageModerationLabel": "Image analysis (AI judges image contents)", + "imageModerationDesc": "When OFF, only text is analyzed and images are not sent to the AI (saves CC)", "detections": { "title": "Recent Detections", "desc": "Latest messages flagged by AI moderation", @@ -549,8 +551,23 @@ "delete_message_hint": "How far back to delete messages on ban (e.g. 1d). Empty deletes nothing", "content": "Content", "content_hint": "The body of the message to send", - "deniedActions": "Denied actions (denylist)", - "deniedActions_hint": "Actions listed here are excluded right before execution, even if the AI or policy decides to take them. Leave empty to keep the default behavior. Valid keys: QUARANTINE, TIMEOUT_24H, TIMEOUT_1H, TIMEOUT_30M, TIMEOUT_10M, TIMEOUT_5M, DELETE_MESSAGE, WARN, SEND_TO_REVIEW_QUEUE, ADD_SUSPICION_LEVEL_1, NOTIFY_OWNER, MARK_COHORT_SUSPICION_LV2, UNQUARANTINE" + "deniedActions": "Excluded actions", + "deniedActions_hint": "Selected actions will not be executed" + }, + "actionKeys": { + "QUARANTINE": "Quarantine", + "TIMEOUT_24H": "Timeout 24h", + "TIMEOUT_1H": "Timeout 1h", + "TIMEOUT_30M": "Timeout 30m", + "TIMEOUT_10M": "Timeout 10m", + "TIMEOUT_5M": "Timeout 5m", + "DELETE_MESSAGE": "Delete Message", + "WARN": "Warn", + "SEND_TO_REVIEW_QUEUE": "Send to Review", + "ADD_SUSPICION_LEVEL_1": "Suspicion Lv1", + "NOTIFY_OWNER": "Notify Owner", + "MARK_COHORT_SUSPICION_LV2": "Suspicion Lv2", + "UNQUARANTINE": "Unquarantine" }, "nodes": { "MessageReceived": { @@ -717,13 +734,14 @@ "actionsTitle": "Actions in production", "noActions": "No actions (safe)", "actions": { - "message.delete": "Delete message", - "member.timeout": "Timeout", - "member.kick": "Kick", - "member.ban": "Ban", + "message_delete": "Delete message", + "member_timeout": "Timeout", + "member_kick": "Kick", + "member_ban": "Ban", "warn": "Warn" } - } + }, + "mobileAddNode": "Add node" }, "subscription": { "title": "Subscription", @@ -755,6 +773,39 @@ "buy": "Buy Credits", "history": "Transaction History", "noHistory": "No transaction history", + "spent": "Spent (last {days}d)", + "spentAi": "AI Moderation (last {days}d)", + "cc": "{amount} CC", + "charts": { + "usageTrend": "Consumption Trend", + "byCategory": "Consumption by Category", + "balanceTrend": "Balance Trend", + "daily": "Daily", + "weekly": "Weekly", + "noData": "No consumption data", + "consumed": "Consumed", + "balance": "Balance" + }, + "filter": { + "label": "Filter", + "all": "All", + "ai": "AI Moderation", + "purchase": "Purchase", + "other": "Other" + }, + "category": { + "ai_screen": "AI Screening", + "ai_lite": "AI Judgment (Lite)", + "ai_detail": "AI Judgment (Detail)", + "ai_advanced": "AI Judgment (Advanced)", + "ai_violation": "Violation Classification", + "purchase": "Purchase", + "subscription": "Subscription", + "admin": "Grant", + "manual": "Manual Adjustment", + "refund": "Refund", + "other": "Other" + }, "lots": { "title": "Expiry", "noLots": "No active credit lots", From 0d9d73aa83f5dda39adcfc67922e1364bdfa0016 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 21 Jun 2026 13:30:02 +0900 Subject: [PATCH 190/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/ja/web.json b/ja/web.json index 5c2ba2d..3179d25 100644 --- a/ja/web.json +++ b/ja/web.json @@ -551,8 +551,23 @@ "delete_message_hint": "BAN時にさかのぼって削除するメッセージの範囲(例: 1d)。空欄で削除しません", "content": "本文", "content_hint": "送信するメッセージの本文", - "deniedActions": "許可しないアクション (denylist)", - "deniedActions_hint": "ここに列挙したアクションは、AI やポリシーが決定しても実行直前に除外されます。空欄なら従来どおりの挙動です。有効なキー: QUARANTINE, TIMEOUT_24H, TIMEOUT_1H, TIMEOUT_30M, TIMEOUT_10M, TIMEOUT_5M, DELETE_MESSAGE, WARN, SEND_TO_REVIEW_QUEUE, ADD_SUSPICION_LEVEL_1, NOTIFY_OWNER, MARK_COHORT_SUSPICION_LV2, UNQUARANTINE" + "deniedActions": "除外するアクション", + "deniedActions_hint": "選択したアクションは実行されません" + }, + "actionKeys": { + "QUARANTINE": "隔離", + "TIMEOUT_24H": "24h停止", + "TIMEOUT_1H": "1h停止", + "TIMEOUT_30M": "30m停止", + "TIMEOUT_10M": "10m停止", + "TIMEOUT_5M": "5m停止", + "DELETE_MESSAGE": "メッセージ削除", + "WARN": "警告", + "SEND_TO_REVIEW_QUEUE": "レビュー送信", + "ADD_SUSPICION_LEVEL_1": "疑惑Lv1", + "NOTIFY_OWNER": "オーナー通知", + "MARK_COHORT_SUSPICION_LV2": "疑惑Lv2", + "UNQUARANTINE": "隔離解除" }, "nodes": { "MessageReceived": { @@ -719,13 +734,14 @@ "actionsTitle": "本番で実行されるアクション", "noActions": "アクションなし(safe)", "actions": { - "message.delete": "メッセージ削除", - "member.timeout": "タイムアウト", - "member.kick": "キック", - "member.ban": "BAN", + "message_delete": "メッセージ削除", + "member_timeout": "タイムアウト", + "member_kick": "キック", + "member_ban": "BAN", "warn": "警告" } - } + }, + "mobileAddNode": "ノードを追加" }, "subscription": { "title": "サブスクリプション", From a124dfb946e86d21c2b8360c602f91938986950b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 21 Jun 2026 21:33:25 +0900 Subject: [PATCH 191/215] Update source file web.json [ci skip] --- en/web.json | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/en/web.json b/en/web.json index a83d170..db8b3b1 100644 --- a/en/web.json +++ b/en/web.json @@ -177,7 +177,8 @@ "messages": "Messages", "workflow": "Workflow", "automod": "Moderation", - "activityLog": "Activity Log" + "activityLog": "Activity Log", + "analytics": "Analytics" }, "featureGate": { "title": "This feature is not available", @@ -644,7 +645,7 @@ }, "ActionPolicy": { "label": "Action Policy", - "desc": "Decides which punishment to take based on the verdict so far and passes it on" + "desc": "Determines the punishment policy based on the verdict so far" }, "ExecuteAction": { "label": "Execute Action", @@ -719,7 +720,7 @@ "cost": "{cc}CC", "charged": "Charged", "free": "Free (no charge)", - "freeRemaining": "Free runs left today: {count}", + "freeRemaining": "Free CC left today: {cc}", "partialShortfall": "Some checks were skipped due to insufficient credits" }, "errors": { @@ -2424,5 +2425,57 @@ "guild_settings_updated": "Updated server settings", "moderation_settings_updated": "Updated moderation settings" } + }, + "analytics": { + "title": "Moderation Analytics", + "rangePicker": { + "7d": "Last 7 days", + "30d": "Last 30 days" + }, + "flow": { + "title": "Flow Analysis", + "totalExecutions": "Total Executions", + "nodeType": "Node", + "entered": "Entered", + "passed": "Passed", + "passRate": "Pass Rate", + "noData": "No data available" + }, + "verdict": { + "title": "Verdict Distribution", + "safe": "Safe", + "gray": "Gray", + "violation": "Violation" + }, + "category": { + "title": "Category Distribution" + }, + "ccUsage": { + "title": "CC Usage", + "totalCc": "Total CC", + "date": "Date", + "cc": "CC", + "byNodeType": "By Node Type" + }, + "userStats": { + "title": "Top Violating Users", + "userId": "User ID", + "violations": "Violations", + "categories": "Categories", + "lastViolation": "Last Violation", + "noUsers": "No users found", + "viewDetails": "View Details" + }, + "userViolations": { + "title": "Violation Log", + "back": "Back", + "ruleType": "Rule", + "reason": "Reason", + "action": "Action", + "content": "Content", + "noViolations": "No violation logs", + "retentionNote": "Your current plan ({plan}) shows the last {days} days", + "page": "Page {page} of {total}" + } } } From 8bacc49634a62b7b4d1a48c040222ad55c4a155d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 21 Jun 2026 21:33:36 +0900 Subject: [PATCH 192/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 56 insertions(+), 3 deletions(-) diff --git a/ja/web.json b/ja/web.json index 3179d25..f78c769 100644 --- a/ja/web.json +++ b/ja/web.json @@ -177,7 +177,8 @@ "messages": "メッセージ送信", "workflow": "ワークフロー", "automod": "統合モデレーション", - "activityLog": "操作ログ" + "activityLog": "操作ログ", + "analytics": "アナリティクス" }, "featureGate": { "title": "この機能はご利用いただけません", @@ -644,7 +645,7 @@ }, "ActionPolicy": { "label": "アクションポリシー", - "desc": "ここまでの判定をもとに、実行すべき処罰の方針を決めて次へ渡します" + "desc": "ここまでの判定をもとに、実行すべき処罰の方針を決めます" }, "ExecuteAction": { "label": "アクション実行", @@ -719,7 +720,7 @@ "cost": "{cc}CC", "charged": "課金あり", "free": "無料(課金なし)", - "freeRemaining": "本日の無料実行残り: {count}回", + "freeRemaining": "本日の無料枠残り: {cc} CC", "partialShortfall": "残高不足のため一部の判定をスキップしました" }, "errors": { @@ -2424,5 +2425,57 @@ "guild_settings_updated": "サーバー設定を更新", "moderation_settings_updated": "モデレーション設定を更新" } + }, + "analytics": { + "title": "モデレーション アナリティクス", + "rangePicker": { + "7d": "過去7日", + "30d": "過去30日" + }, + "flow": { + "title": "フロー分析", + "totalExecutions": "総実行数", + "nodeType": "ノード", + "entered": "通過", + "passed": "パス", + "passRate": "パス率", + "noData": "データがありません" + }, + "verdict": { + "title": "判定分布", + "safe": "安全", + "gray": "グレー", + "violation": "違反" + }, + "category": { + "title": "カテゴリ分布" + }, + "ccUsage": { + "title": "CC 消費量", + "totalCc": "合計 CC", + "date": "日付", + "cc": "CC", + "byNodeType": "ノード別" + }, + "userStats": { + "title": "違反ユーザー ランキング", + "userId": "ユーザー ID", + "violations": "違反数", + "categories": "カテゴリ", + "lastViolation": "最終違反", + "noUsers": "該当なし", + "viewDetails": "詳細を見る" + }, + "userViolations": { + "title": "違反ログ", + "back": "戻る", + "ruleType": "ルール", + "reason": "理由", + "action": "アクション", + "content": "内容", + "noViolations": "違反ログはありません", + "retentionNote": "現在のプラン ({plan}) では過去 {days} 日分を表示可能です", + "page": "ページ {page} / {total}" + } } } From eebb4fc9aa8c45f8162934eb47de24c2b9b85462 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 26 Jun 2026 11:11:24 +0900 Subject: [PATCH 193/215] Update source file web.json [ci skip] --- en/web.json | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index db8b3b1..dc0f3f9 100644 --- a/en/web.json +++ b/en/web.json @@ -478,6 +478,35 @@ "spam": "Spam", "other": "Other" } + }, + "logs": { + "title": "Moderation Logs", + "desc": "View AI moderation execution logs", + "backToSettings": "Back to settings", + "filters": "Filters", + "clearFilters": "Clear", + "filterAction": "Action", + "filterActionPlaceholder": "e.g. delete, warn", + "filterStatus": "Status", + "filterStatusAll": "All", + "filterNodeType": "Node type", + "filterNodeTypePlaceholder": "e.g. screen, llm", + "statusCompleted": "Completed", + "statusFailed": "Failed", + "statusSkipped": "Skipped", + "statusPending": "Pending", + "error": "Failed to load logs", + "empty": "No logs yet", + "confidence": "Confidence", + "cost": "Cost", + "reason": "Reason", + "logId": "Log ID", + "messageRef": "Message ref", + "nodeId": "Node ID", + "nodeType": "Node type", + "actionParams": "Action parameters", + "pipelineTrace": "Pipeline trace", + "pageLabel": "Page" } }, "aimodEditor": { @@ -513,7 +542,8 @@ "errorNoEntry": "A MessageReceived node is required", "errorMultipleEntry": "Only one input node is allowed", "errorCycle": "Cannot save: the pipeline contains a cycle (it would cause an infinite loop)", - "warningDisconnected": "There are disconnected nodes" + "warningDisconnected": "There are disconnected nodes", + "errorMultipleOnError": "Only one error handler node is allowed" }, "fields": { "channel": "Channel", @@ -674,6 +704,10 @@ "MessageSend": { "label": "Message Send", "desc": "Sends a message with the given content to the channel" + }, + "OnError": { + "label": "Error Handler", + "desc": "Continues from here when a node throws an error during execution. Connect to DM/message nodes for error notifications" } }, "unsavedChanges": "Unsaved changes", From 81f06cff5ab19b3a8a8c945134890693b104dca6 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 26 Jun 2026 11:11:35 +0900 Subject: [PATCH 194/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index f78c769..de9d4c7 100644 --- a/ja/web.json +++ b/ja/web.json @@ -478,6 +478,35 @@ "spam": "スパム", "other": "その他" } + }, + "logs": { + "title": "モデレーションログ", + "desc": "AIモデレーションの実行ログを確認します", + "backToSettings": "設定に戻る", + "filters": "フィルター", + "clearFilters": "クリア", + "filterAction": "アクション", + "filterActionPlaceholder": "例: delete, warn", + "filterStatus": "ステータス", + "filterStatusAll": "すべて", + "filterNodeType": "ノードタイプ", + "filterNodeTypePlaceholder": "例: screen, llm", + "statusCompleted": "完了", + "statusFailed": "失敗", + "statusSkipped": "スキップ", + "statusPending": "保留中", + "error": "ログの読み込みに失敗しました", + "empty": "ログはありません", + "confidence": "信頼度", + "cost": "コスト", + "reason": "理由", + "logId": "ログID", + "messageRef": "メッセージ参照", + "nodeId": "ノードID", + "nodeType": "ノードタイプ", + "actionParams": "アクションパラメータ", + "pipelineTrace": "パイプライントレース", + "pageLabel": "ページ" } }, "aimodEditor": { @@ -513,7 +542,8 @@ "errorNoEntry": "MessageReceived ノードが必要です", "errorMultipleEntry": "入力ノードは1つだけ配置できます", "errorCycle": "循環があるため保存できません(無限ループの原因になります)", - "warningDisconnected": "未接続のノードがあります" + "warningDisconnected": "未接続のノードがあります", + "errorMultipleOnError": "エラーハンドラーノードは1つだけ配置できます" }, "fields": { "channel": "チャンネル", @@ -674,6 +704,10 @@ "MessageSend": { "label": "メッセージ送信", "desc": "指定した本文のメッセージをチャンネルに送信します" + }, + "OnError": { + "label": "エラーハンドラー", + "desc": "ノードの実行中にエラーが発生した場合に、ここから処理を続行します。DMやメッセージ送信ノードと繋いでエラー通知に使えます" } }, "unsavedChanges": "未保存の変更", From 3a51aa255af490e7f2ecfd3483df317e2024aba4 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 26 Jun 2026 14:57:08 +0900 Subject: [PATCH 195/215] Update source file web.json [ci skip] --- en/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/en/web.json b/en/web.json index dc0f3f9..4dd906e 100644 --- a/en/web.json +++ b/en/web.json @@ -1681,6 +1681,7 @@ "config": "Config", "match": "✓ Match", "unmatch": "✗ No Match", + "errorHandle": "Error", "triggers": { "member_join": { "label": "Member Join", From 083ac93036c0f98976398cfff7bc496d7b92da29 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 26 Jun 2026 14:57:19 +0900 Subject: [PATCH 196/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 1 + 1 file changed, 1 insertion(+) diff --git a/ja/web.json b/ja/web.json index de9d4c7..a0a81b7 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1681,6 +1681,7 @@ "config": "設定", "match": "✓ 一致", "unmatch": "✗ 不一致", + "errorHandle": "エラー", "triggers": { "member_join": { "label": "メンバー参加", From d2cebe413064e31cf4ceb0997194bbeead00f70d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 26 Jun 2026 16:15:29 +0900 Subject: [PATCH 197/215] Update source file web.json [ci skip] --- en/web.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index 4dd906e..bbbacab 100644 --- a/en/web.json +++ b/en/web.json @@ -1681,7 +1681,7 @@ "config": "Config", "match": "✓ Match", "unmatch": "✗ No Match", - "errorHandle": "Error", + "errorTrigger": "Error", "triggers": { "member_join": { "label": "Member Join", From a50d56ce6338e810769234132c9711bf594e0cbc Mon Sep 17 00:00:00 2001 From: Cube Team Date: Fri, 26 Jun 2026 16:15:38 +0900 Subject: [PATCH 198/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index a0a81b7..ed9f201 100644 --- a/ja/web.json +++ b/ja/web.json @@ -1681,7 +1681,7 @@ "config": "設定", "match": "✓ 一致", "unmatch": "✗ 不一致", - "errorHandle": "エラー", + "errorTrigger": "エラー", "triggers": { "member_join": { "label": "メンバー参加", From c3c1ded448d40663e282cf6c4312fe5c3df030c4 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 15:35:52 +0900 Subject: [PATCH 199/215] Update source file web.json [ci skip] --- en/web.json | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/en/web.json b/en/web.json index bbbacab..13ccbbe 100644 --- a/en/web.json +++ b/en/web.json @@ -2038,7 +2038,8 @@ "spamPatterns": "Spam Patterns", "economy": "Economy", "features": "Feature Flags", - "testGroups": "Test Groups" + "testGroups": "Test Groups", + "aiStats": "AI Stats" }, "dashboard": { "title": "System Status", @@ -2511,6 +2512,30 @@ "noViolations": "No violation logs", "retentionNote": "Your current plan ({plan}) shows the last {days} days", "page": "Page {page} of {total}" + }, + "aiStats": { + "title": "AI Moderation Stats", + "desc": "Workflow node reach rates and token consumption", + "guildIdPlaceholder": "Enter Guild ID", + "search": "Search", + "period": "Period", + "days7": "7 days", + "days30": "30 days", + "days90": "90 days", + "totalMessages": "Messages Processed", + "reachRate": "Reach Rate", + "tokenUsage": "Token Usage", + "inputTokens": "Input Tokens", + "outputTokens": "Output Tokens", + "thinkingTokens": "Thinking Tokens", + "totalTokens": "Total Tokens", + "screen": "Screen", + "lite": "LiteLLM", + "detail": "DetailLLM", + "noData": "No data. Enter a Guild ID and search.", + "loading": "Loading...", + "dailyTrend": "Daily Trend", + "nodeBreakdown": "Node Breakdown" } } } From 6e446a5f4314404735329e41d9f3b4f9a70c11f3 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 15:35:59 +0900 Subject: [PATCH 200/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index ed9f201..808f5be 100644 --- a/ja/web.json +++ b/ja/web.json @@ -2038,7 +2038,8 @@ "spamPatterns": "スパムパターン", "economy": "エコノミー", "features": "フィーチャーフラグ", - "testGroups": "テストグループ" + "testGroups": "テストグループ", + "aiStats": "AI統計" }, "dashboard": { "title": "システム状況", @@ -2511,6 +2512,30 @@ "noViolations": "違反ログはありません", "retentionNote": "現在のプラン ({plan}) では過去 {days} 日分を表示可能です", "page": "ページ {page} / {total}" + }, + "aiStats": { + "title": "AIモデレーション統計", + "desc": "ワークフローノードの到達率とトークン消費量", + "guildIdPlaceholder": "Guild ID を入力", + "search": "検索", + "period": "期間", + "days7": "7日間", + "days30": "30日間", + "days90": "90日間", + "totalMessages": "処理メッセージ数", + "reachRate": "到達率", + "tokenUsage": "トークン消費量", + "inputTokens": "入力トークン", + "outputTokens": "出力トークン", + "thinkingTokens": "思考トークン", + "totalTokens": "合計トークン", + "screen": "Screen", + "lite": "LiteLLM", + "detail": "DetailLLM", + "noData": "データがありません。Guild IDを入力して検索してください。", + "loading": "読み込み中...", + "dailyTrend": "日別推移", + "nodeBreakdown": "ノード別内訳" } } } From 8715ab2b335044197bdeba88727670c127e7611c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 21:23:39 +0900 Subject: [PATCH 201/215] Update source file web.json [ci skip] --- en/web.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/en/web.json b/en/web.json index 13ccbbe..820b7d5 100644 --- a/en/web.json +++ b/en/web.json @@ -582,6 +582,8 @@ "delete_message_hint": "How far back to delete messages on ban (e.g. 1d). Empty deletes nothing", "content": "Content", "content_hint": "The body of the message to send", + "enableDynamicContext": "Dynamic Context Expansion", + "enableDynamicContext_hint": "When AI determines more context is needed, fetches additional messages and re-analyzes (+5CC)", "deniedActions": "Excluded actions", "deniedActions_hint": "Selected actions will not be executed" }, @@ -669,10 +671,6 @@ "label": "Confidence", "desc": "Compares the latest verdict's confidence to a threshold and branches match / no-match (2CC)" }, - "AdvancedLlm": { - "label": "Advanced LLM", - "desc": "A high-accuracy AI (Gemini) produces a verdict and passes it straight to the next node (5CC)" - }, "ActionPolicy": { "label": "Action Policy", "desc": "Determines the punishment policy based on the verdict so far" From 653b7ed5726c0107cf11bd03f92b8d58559ce89c Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 21:23:56 +0900 Subject: [PATCH 202/215] New translations bot.json (Japanese) [ci skip] --- ja/bot.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ja/bot.json b/ja/bot.json index bd42980..aac2d2f 100644 --- a/ja/bot.json +++ b/ja/bot.json @@ -781,7 +781,11 @@ "invalid_format": "❌無効な時間形式です。例: 5s, 2m, 1h", "blacklisted": "❌ ブラックリストに登録されています。", "no_permission": "❌ このコマンドを実行するには {permission} 権限が必要です。", - "no_available": "❌ このコマンド/機能は利用できません。" + "no_available": "❌ このコマンド/機能は利用できません。", + "missing_permissions": "❌ The bot is missing required permissions. Please check your server settings.", + "missing_access": "❌ The bot cannot access this channel. Please check the channel permissions.", + "unknown_message": "❌ The target message was not found. It may have already been deleted.", + "cannot_send_dm": "❌ Cannot send a DM to this user. They may have DMs disabled." }, "yes": "はい", "no": "いいえ", From 485e5dd07a85b26ea68adf1e94e537da6f602684 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 21:23:58 +0900 Subject: [PATCH 203/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/ja/web.json b/ja/web.json index 808f5be..12e6af1 100644 --- a/ja/web.json +++ b/ja/web.json @@ -582,6 +582,8 @@ "delete_message_hint": "BAN時にさかのぼって削除するメッセージの範囲(例: 1d)。空欄で削除しません", "content": "本文", "content_hint": "送信するメッセージの本文", + "enableDynamicContext": "動的コンテキスト拡張", + "enableDynamicContext_hint": "AIが文脈不足と判断した場合、追加メッセージを取得して再分析します(+5CC)", "deniedActions": "除外するアクション", "deniedActions_hint": "選択したアクションは実行されません" }, @@ -669,10 +671,6 @@ "label": "確信度分岐", "desc": "直近のAI判定の確信度をしきい値と比較し、しきい値以上かで一致/不一致へ分岐します (1CC)" }, - "AdvancedLlm": { - "label": "高度LLM", - "desc": "高精度AI(Gemini)が判定結果を作り、後続ノードへそのまま渡します (3CC)" - }, "ActionPolicy": { "label": "アクションポリシー", "desc": "ここまでの判定をもとに、実行すべき処罰の方針を決めます" From 8e298dee902df7e341224ffefbb39d6a97c47b6b Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 22:20:54 +0900 Subject: [PATCH 204/215] Update source file bot.json [ci skip] --- en/bot.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/en/bot.json b/en/bot.json index 842d59f..8b2a27a 100644 --- a/en/bot.json +++ b/en/bot.json @@ -781,7 +781,11 @@ "invalid_format": "❌ Invalid time format. Example: 5s, 2m, 1h", "blacklisted": "❌ You are blacklisted.", "no_permission": "❌ This command requires {permission} permission.", - "no_available": "❌ This command/feature is not available." + "no_available": "❌ This command/feature is not available.", + "missing_permissions": "❌ The bot is missing required permissions. Please check your server settings.", + "missing_access": "❌ The bot cannot access this channel. Please check the channel permissions.", + "unknown_message": "❌ The target message was not found. It may have already been deleted.", + "cannot_send_dm": "❌ Cannot send a DM to this user. They may have DMs disabled." }, "yes": "Yes", "no": "No", From cc4eaa216bba67b85c3c63802d6a9a61452fa840 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 22:20:55 +0900 Subject: [PATCH 205/215] Update source file web.json [ci skip] --- en/web.json | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/en/web.json b/en/web.json index 820b7d5..e1e8a8f 100644 --- a/en/web.json +++ b/en/web.json @@ -2183,6 +2183,30 @@ "deleteBtn": "Delete User", "deleteOk": "User data deleted", "deleteFail": "Failed to delete user" + }, + "aiStats": { + "title": "AI Moderation Stats", + "desc": "Workflow node reach rates and token consumption", + "guildIdPlaceholder": "Enter Guild ID", + "search": "Search", + "period": "Period", + "days7": "7 days", + "days30": "30 days", + "days90": "90 days", + "totalMessages": "Messages Processed", + "reachRate": "Reach Rate", + "tokenUsage": "Token Usage", + "inputTokens": "Input Tokens", + "outputTokens": "Output Tokens", + "thinkingTokens": "Thinking Tokens", + "totalTokens": "Total Tokens", + "screen": "Screen", + "lite": "LiteLLM", + "detail": "DetailLLM", + "noData": "No data. Enter a Guild ID and search.", + "loading": "Loading...", + "dailyTrend": "Daily Trend", + "nodeBreakdown": "Node Breakdown" } }, "automod": { @@ -2510,30 +2534,6 @@ "noViolations": "No violation logs", "retentionNote": "Your current plan ({plan}) shows the last {days} days", "page": "Page {page} of {total}" - }, - "aiStats": { - "title": "AI Moderation Stats", - "desc": "Workflow node reach rates and token consumption", - "guildIdPlaceholder": "Enter Guild ID", - "search": "Search", - "period": "Period", - "days7": "7 days", - "days30": "30 days", - "days90": "90 days", - "totalMessages": "Messages Processed", - "reachRate": "Reach Rate", - "tokenUsage": "Token Usage", - "inputTokens": "Input Tokens", - "outputTokens": "Output Tokens", - "thinkingTokens": "Thinking Tokens", - "totalTokens": "Total Tokens", - "screen": "Screen", - "lite": "LiteLLM", - "detail": "DetailLLM", - "noData": "No data. Enter a Guild ID and search.", - "loading": "Loading...", - "dailyTrend": "Daily Trend", - "nodeBreakdown": "Node Breakdown" } } } From 847baa5cc9c3c307c782e22d0592617da7895679 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 22:20:57 +0900 Subject: [PATCH 206/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/ja/web.json b/ja/web.json index 12e6af1..90dc62f 100644 --- a/ja/web.json +++ b/ja/web.json @@ -2183,6 +2183,30 @@ "deleteBtn": "ユーザー削除", "deleteOk": "ユーザーデータを削除しました", "deleteFail": "削除に失敗しました" + }, + "aiStats": { + "title": "AIモデレーション統計", + "desc": "ワークフローノードの到達率とトークン消費量", + "guildIdPlaceholder": "Guild ID を入力", + "search": "検索", + "period": "期間", + "days7": "7日間", + "days30": "30日間", + "days90": "90日間", + "totalMessages": "処理メッセージ数", + "reachRate": "到達率", + "tokenUsage": "トークン消費量", + "inputTokens": "入力トークン", + "outputTokens": "出力トークン", + "thinkingTokens": "思考トークン", + "totalTokens": "合計トークン", + "screen": "Screen", + "lite": "LiteLLM", + "detail": "DetailLLM", + "noData": "データがありません。Guild IDを入力して検索してください。", + "loading": "読み込み中...", + "dailyTrend": "日別推移", + "nodeBreakdown": "ノード別内訳" } }, "automod": { @@ -2510,30 +2534,6 @@ "noViolations": "違反ログはありません", "retentionNote": "現在のプラン ({plan}) では過去 {days} 日分を表示可能です", "page": "ページ {page} / {total}" - }, - "aiStats": { - "title": "AIモデレーション統計", - "desc": "ワークフローノードの到達率とトークン消費量", - "guildIdPlaceholder": "Guild ID を入力", - "search": "検索", - "period": "期間", - "days7": "7日間", - "days30": "30日間", - "days90": "90日間", - "totalMessages": "処理メッセージ数", - "reachRate": "到達率", - "tokenUsage": "トークン消費量", - "inputTokens": "入力トークン", - "outputTokens": "出力トークン", - "thinkingTokens": "思考トークン", - "totalTokens": "合計トークン", - "screen": "Screen", - "lite": "LiteLLM", - "detail": "DetailLLM", - "noData": "データがありません。Guild IDを入力して検索してください。", - "loading": "読み込み中...", - "dailyTrend": "日別推移", - "nodeBreakdown": "ノード別内訳" } } } From 6e19f41f0bb5d5c387b88cc5c95d2682ae86f522 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Sun, 28 Jun 2026 23:45:52 +0900 Subject: [PATCH 207/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/ja/web.json b/ja/web.json index 90dc62f..c0d5c61 100644 --- a/ja/web.json +++ b/ja/web.json @@ -385,7 +385,7 @@ "naturalLanguageRulesPlaceholder": "例:\n- 政治・宗教の議論は禁止\n- 18歳未満に不適切なコンテンツを送ってはならない\n- 他のユーザーへの侮辱的な発言は削除する", "advancedViolationStorageLabel": "高度な違反保存", "advancedViolationStorageDesc": "AI が違反理由を分類して保存します。モデレーションログの詳細化に役立ちますが、1CC/件 のクレジットを消費します", - "modLogCompactLabel": "コンパクトログ", + "modLogCompactLabel": "コンパクトなログ", "modLogCompactDesc": "モデレーターログを簡潔な1行表示にします。オフ(既定)では、サムネイルや信頼度ゲージを含む詳細表示になります", "nodeEditorLinkLabel": "ノードエディター", "nodeEditorLinkDesc": "パイプラインをノードで視覚的に構築・編集します", @@ -486,7 +486,7 @@ "filters": "フィルター", "clearFilters": "クリア", "filterAction": "アクション", - "filterActionPlaceholder": "例: delete, warn", + "filterActionPlaceholder": "例: 削除, 警告", "filterStatus": "ステータス", "filterStatusAll": "すべて", "filterNodeType": "ノードタイプ", @@ -590,10 +590,10 @@ "actionKeys": { "QUARANTINE": "隔離", "TIMEOUT_24H": "24h停止", - "TIMEOUT_1H": "1h停止", - "TIMEOUT_30M": "30m停止", - "TIMEOUT_10M": "10m停止", - "TIMEOUT_5M": "5m停止", + "TIMEOUT_1H": "1時間タイムアウト", + "TIMEOUT_30M": "30分間タイムアウト", + "TIMEOUT_10M": "10分間タイムアウト", + "TIMEOUT_5M": "5分間タイムアウト", "DELETE_MESSAGE": "メッセージ削除", "WARN": "警告", "SEND_TO_REVIEW_QUEUE": "レビュー送信", @@ -734,7 +734,7 @@ "stepLabel": "ステップ {n}", "branchTaken": "分岐: {branch}", "result": "結果: {result}", - "llmCalled": "LLM", + "llmCalled": "自然言語処理モデル", "duration": "{ms}ms", "wouldExecute": "実行予定: {actions}", "verdict": { @@ -2200,9 +2200,9 @@ "outputTokens": "出力トークン", "thinkingTokens": "思考トークン", "totalTokens": "合計トークン", - "screen": "Screen", - "lite": "LiteLLM", - "detail": "DetailLLM", + "screen": "スクリーニング", + "lite": "軽量LLM", + "detail": "詳細LLM", "noData": "データがありません。Guild IDを入力して検索してください。", "loading": "読み込み中...", "dailyTrend": "日別推移", From 37a53d11343cc02a56cc63c9aea92c20d12149fa Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 29 Jun 2026 22:02:18 +0900 Subject: [PATCH 208/215] Update source file web.json [ci skip] --- en/web.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/en/web.json b/en/web.json index e1e8a8f..4d41eac 100644 --- a/en/web.json +++ b/en/web.json @@ -441,6 +441,13 @@ "aiActiveOffWarning": "Currently OFF, so the bot will not run any verdicts even if advanced mode is selected", "imageModerationLabel": "Image analysis (AI judges image contents)", "imageModerationDesc": "When OFF, only text is analyzed and images are not sent to the AI (saves CC)", + "imageModerationSurchargeNote": "When images are actually sent to Gemini, image analysis adds +{cc} CC per image.", + "aiBypassSectionLabel": "AI bypass exclusions", + "aiBypassSectionDesc": "These exclusions skip the entire advanced AI lane, including both the default preset and node workflow lanes.", + "aiBypassChannelsLabel": "AI bypass channels", + "aiBypassChannelsDesc": "Messages in these channels skip advanced AI moderation. Threads also match the selected parent channel.", + "aiBypassRolesLabel": "AI bypass roles", + "aiBypassRolesDesc": "Users with these roles skip advanced AI moderation.", "detections": { "title": "Recent Detections", "desc": "Latest messages flagged by AI moderation", @@ -517,6 +524,7 @@ "saved": "Saved", "saveError": "Failed to save", "paletteTitle": "Add node", + "imageSurchargeNote": "Node costs exclude image surcharge. Lite/Detail add +{cc}CC per image only when images are sent to Gemini.", "close": "Close", "deleteNode": "Delete node", "noParams": "This node has no settings", From 09b81470ed25a0d2b4601ad2291fa5c99fa7596a Mon Sep 17 00:00:00 2001 From: Cube Team Date: Mon, 29 Jun 2026 22:02:32 +0900 Subject: [PATCH 209/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ja/web.json b/ja/web.json index c0d5c61..307a924 100644 --- a/ja/web.json +++ b/ja/web.json @@ -441,6 +441,13 @@ "aiActiveOffWarning": "現在 OFF のため、高度なモードを選んでいてもボットは判定を実行しません", "imageModerationLabel": "画像解析(AI による画像内容の判定)", "imageModerationDesc": "OFF にするとテキストのみ解析し、画像は AI に送りません(CC 節約)", + "imageModerationSurchargeNote": "画像が実際に Gemini へ送信された場合、画像解析は1枚あたり +{cc}CC です。", + "aiBypassSectionLabel": "AIバイパス除外", + "aiBypassSectionDesc": "ここで指定した対象は、デフォルトプリセットとノードワークフローの両方を含む高度なAIレーン全体をスキップします。", + "aiBypassChannelsLabel": "AIバイパスチャンネル", + "aiBypassChannelsDesc": "このチャンネルのメッセージは高度なAIモデレーションをスキップします。スレッドは親チャンネル指定にも一致します。", + "aiBypassRolesLabel": "AIバイパスロール", + "aiBypassRolesDesc": "このロールを持つユーザーは高度なAIモデレーションをスキップします。", "detections": { "title": "最近の検出", "desc": "AI モデレーションが検出した最新のメッセージ", @@ -517,6 +524,7 @@ "saved": "保存しました", "saveError": "保存に失敗しました", "paletteTitle": "ノードを追加", + "imageSurchargeNote": "ノードのコストは画像追加分を含みません。Lite/Detail は画像を Gemini に送る場合のみ1枚あたり +{cc}CC です。", "close": "閉じる", "deleteNode": "ノードを削除", "noParams": "このノードに設定項目はありません", From 140877dc667af9da644cbf887d334f6c23772c06 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 30 Jun 2026 22:32:53 +0900 Subject: [PATCH 210/215] Update source file web.json [ci skip] --- en/web.json | 41 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index 4d41eac..9c1024d 100644 --- a/en/web.json +++ b/en/web.json @@ -2194,7 +2194,7 @@ }, "aiStats": { "title": "AI Moderation Stats", - "desc": "Workflow node reach rates and token consumption", + "desc": "Real AI moderation usage, CC, estimated provider cost, and profitability", "guildIdPlaceholder": "Enter Guild ID", "search": "Search", "period": "Period", @@ -2202,8 +2202,26 @@ "days30": "30 days", "days90": "90 days", "totalMessages": "Messages Processed", + "laneMessages": "Default / Workflow", "reachRate": "Reach Rate", "tokenUsage": "Token Usage", + "ccUsage": "CC Usage", + "estimatedCc": "Estimated CC", + "paidBonusFreeCc": "Paid / Bonus / Free CC", + "consumedCc": "Consumed CC", + "billableCc": "Consumed CC", + "paidCc": "Paid CC", + "bonusCc": "Bonus CC", + "freeCc": "Free CC", + "billableFreeCc": "Billable / Free CC", + "avgCcPerMessage": "Avg CC/message", + "providerCost": "Estimated Provider Cost", + "grossProfit": "Estimated Gross Profit", + "grossMargin": "Gross Margin", + "avgTokens": "Avg Tokens/Call", + "summaryNote": "Average tokens/message: {avgTokens}. Estimated revenue from paid CC only: {revenue}.", + "unmeasured": "Unmeasured", + "unmeasuredCostNote": "Some provider costs are unmeasured, so gross profit and margin are N/A.", "inputTokens": "Input Tokens", "outputTokens": "Output Tokens", "thinkingTokens": "Thinking Tokens", @@ -2211,10 +2229,29 @@ "screen": "Screen", "lite": "LiteLLM", "detail": "DetailLLM", + "confidence": "Confidence", + "classify": "Classify", "noData": "No data. Enter a Guild ID and search.", "loading": "Loading...", "dailyTrend": "Daily Trend", - "nodeBreakdown": "Node Breakdown" + "nodeBreakdown": "Node Breakdown", + "laneMessages": "Default / Workflow", + "estimatedCc": "Estimated CC", + "avgCcPerMessage": "Avg CC / Message", + "paidBonusFreeCc": "Paid / Bonus / Free CC", + "consumedCc": "Consumed CC", + "billableCc": "Consumed CC", + "paidCc": "Paid CC", + "bonusCc": "Bonus CC", + "freeCc": "Free CC", + "providerCost": "Provider Cost", + "grossProfit": "Gross Profit", + "grossMargin": "Gross Margin", + "ccUsage": "CC Usage", + "avgTokens": "Avg Tokens", + "summaryNote": "Average tokens/message: {avgTokens}. Estimated revenue from paid CC only: {revenue}.", + "unmeasured": "Unmeasured", + "unmeasuredCostNote": "Some provider costs are unmeasured, so gross profit and margin are N/A." } }, "automod": { From fc267a65254c3e776487550aeb5d2ca720b62c26 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Tue, 30 Jun 2026 22:33:31 +0900 Subject: [PATCH 211/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 307a924..36e3049 100644 --- a/ja/web.json +++ b/ja/web.json @@ -2194,7 +2194,7 @@ }, "aiStats": { "title": "AIモデレーション統計", - "desc": "ワークフローノードの到達率とトークン消費量", + "desc": "AIモデレーションの実利用・CC・推定原価・採算", "guildIdPlaceholder": "Guild ID を入力", "search": "検索", "period": "期間", @@ -2202,8 +2202,26 @@ "days30": "30日間", "days90": "90日間", "totalMessages": "処理メッセージ数", + "laneMessages": "Default / Workflow", "reachRate": "到達率", "tokenUsage": "トークン消費量", + "ccUsage": "CC使用量", + "estimatedCc": "推定CC", + "paidBonusFreeCc": "有償 / ボーナス / 無料CC", + "consumedCc": "消費CC", + "billableCc": "消費CC", + "paidCc": "有償CC", + "bonusCc": "ボーナスCC", + "freeCc": "無料CC", + "billableFreeCc": "課金 / 無料 CC", + "avgCcPerMessage": "平均CC/メッセージ", + "providerCost": "推定プロバイダ原価", + "grossProfit": "推定粗利", + "grossMargin": "粗利率", + "avgTokens": "平均トークン/回", + "summaryNote": "平均トークン/メッセージ: {avgTokens}。推定売上は有償CCのみから算出: {revenue}。", + "unmeasured": "未計測", + "unmeasuredCostNote": "一部のプロバイダー原価が未計測のため、粗利と粗利率は N/A です。", "inputTokens": "入力トークン", "outputTokens": "出力トークン", "thinkingTokens": "思考トークン", @@ -2211,6 +2229,8 @@ "screen": "スクリーニング", "lite": "軽量LLM", "detail": "詳細LLM", + "confidence": "Confidence", + "classify": "Classify", "noData": "データがありません。Guild IDを入力して検索してください。", "loading": "読み込み中...", "dailyTrend": "日別推移", From 16fdb31a0b2d4baaeff50730fae024b8d992316d Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 1 Jul 2026 00:55:45 +0900 Subject: [PATCH 212/215] Update source file web.json [ci skip] --- en/web.json | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/en/web.json b/en/web.json index 9c1024d..2bbc5ce 100644 --- a/en/web.json +++ b/en/web.json @@ -2196,6 +2196,12 @@ "title": "AI Moderation Stats", "desc": "Real AI moderation usage, CC, estimated provider cost, and profitability", "guildIdPlaceholder": "Enter Guild ID", + "scopeLabel": "Scope", + "scopeGlobal": "Overall", + "scopeGuild": "Guild-specific", + "allGuilds": "All guilds", + "guildIdLabel": "Guild ID", + "guildCount": "Guilds: {count}", "search": "Search", "period": "Period", "days7": "7 days", @@ -2231,27 +2237,10 @@ "detail": "DetailLLM", "confidence": "Confidence", "classify": "Classify", - "noData": "No data. Enter a Guild ID and search.", + "noData": "No data. Select a scope and search.", "loading": "Loading...", "dailyTrend": "Daily Trend", - "nodeBreakdown": "Node Breakdown", - "laneMessages": "Default / Workflow", - "estimatedCc": "Estimated CC", - "avgCcPerMessage": "Avg CC / Message", - "paidBonusFreeCc": "Paid / Bonus / Free CC", - "consumedCc": "Consumed CC", - "billableCc": "Consumed CC", - "paidCc": "Paid CC", - "bonusCc": "Bonus CC", - "freeCc": "Free CC", - "providerCost": "Provider Cost", - "grossProfit": "Gross Profit", - "grossMargin": "Gross Margin", - "ccUsage": "CC Usage", - "avgTokens": "Avg Tokens", - "summaryNote": "Average tokens/message: {avgTokens}. Estimated revenue from paid CC only: {revenue}.", - "unmeasured": "Unmeasured", - "unmeasuredCostNote": "Some provider costs are unmeasured, so gross profit and margin are N/A." + "nodeBreakdown": "Node Breakdown" } }, "automod": { From 82574f175d27db870edcc2413cf6d58330e88ba4 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 1 Jul 2026 00:55:52 +0900 Subject: [PATCH 213/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ja/web.json b/ja/web.json index 36e3049..54ae27c 100644 --- a/ja/web.json +++ b/ja/web.json @@ -2196,6 +2196,12 @@ "title": "AIモデレーション統計", "desc": "AIモデレーションの実利用・CC・推定原価・採算", "guildIdPlaceholder": "Guild ID を入力", + "scopeLabel": "表示範囲", + "scopeGlobal": "全体", + "scopeGuild": "Guild指定", + "allGuilds": "全Guild", + "guildIdLabel": "Guild ID", + "guildCount": "対象Guild数: {count}", "search": "検索", "period": "期間", "days7": "7日間", @@ -2231,7 +2237,7 @@ "detail": "詳細LLM", "confidence": "Confidence", "classify": "Classify", - "noData": "データがありません。Guild IDを入力して検索してください。", + "noData": "データがありません。表示範囲を選択して検索してください。", "loading": "読み込み中...", "dailyTrend": "日別推移", "nodeBreakdown": "ノード別内訳" From eea953fd0139bdfe752641b1fd060788a8e195e5 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 1 Jul 2026 02:04:27 +0900 Subject: [PATCH 214/215] Update source file web.json [ci skip] --- en/web.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/en/web.json b/en/web.json index 2bbc5ce..effdb90 100644 --- a/en/web.json +++ b/en/web.json @@ -2195,7 +2195,7 @@ "aiStats": { "title": "AI Moderation Stats", "desc": "Real AI moderation usage, CC, estimated provider cost, and profitability", - "guildIdPlaceholder": "Enter Guild ID", + "guildIdPlaceholder": "Guild ID (blank for overall stats)", "scopeLabel": "Scope", "scopeGlobal": "Overall", "scopeGuild": "Guild-specific", @@ -2237,7 +2237,7 @@ "detail": "DetailLLM", "confidence": "Confidence", "classify": "Classify", - "noData": "No data. Select a scope and search.", + "noData": "No data. Guild ID is optional; leave it blank and search to show overall stats.", "loading": "Loading...", "dailyTrend": "Daily Trend", "nodeBreakdown": "Node Breakdown" From 9d4407e5b61f3ec8227453349d95f50007e73122 Mon Sep 17 00:00:00 2001 From: Cube Team Date: Wed, 1 Jul 2026 02:04:29 +0900 Subject: [PATCH 215/215] New translations web.json (Japanese) [ci skip] --- ja/web.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ja/web.json b/ja/web.json index 54ae27c..989c8ab 100644 --- a/ja/web.json +++ b/ja/web.json @@ -2195,7 +2195,7 @@ "aiStats": { "title": "AIモデレーション統計", "desc": "AIモデレーションの実利用・CC・推定原価・採算", - "guildIdPlaceholder": "Guild ID を入力", + "guildIdPlaceholder": "Guild ID(空欄で全体統計)", "scopeLabel": "表示範囲", "scopeGlobal": "全体", "scopeGuild": "Guild指定", @@ -2237,7 +2237,7 @@ "detail": "詳細LLM", "confidence": "Confidence", "classify": "Classify", - "noData": "データがありません。表示範囲を選択して検索してください。", + "noData": "データがありません。Guild ID は任意です。空欄で検索すると全体統計を表示します。", "loading": "読み込み中...", "dailyTrend": "日別推移", "nodeBreakdown": "ノード別内訳"