Skip to content
Open
34 changes: 34 additions & 0 deletions en/bot.json
Original file line number Diff line number Diff line change
Expand Up @@ -1152,6 +1152,9 @@
"body": "**Target:** <@{userId}> ({userTag})\n**Reason:** {reason}\n\nAutomatic detection confidence was low. Please review this case manually."
},
"ai_lane": {
"support_crisis": {
"notice": "This is not a warning or punishment. If you are in crisis, please do not face it alone—reach out to someone you trust or a local crisis service. If you are in immediate danger, contact your local emergency services now."
},
"review": {
"title": "🤖 AI Moderation — Review Required",
"author": "**Target:** <@{userId}>\n`{userTag}`",
Expand Down Expand Up @@ -1243,6 +1246,37 @@
"v2_reason": "**📝 Reason:** {reason}",
"v2_categories": "**🏷️ Categories:** {categories}"
},
"attribution": {
"footer": "-# 🧊 Protected by cube — https://cubeteam.app"
},
"ai_digest": {
"title": "🧊 **Weekly Moderation Report** ・{range}",
"messages_monitored": "## {count} messages monitored",
"summary_line": "🚨 Detected {detected} ・ 🔨 Actions {actions} ・ 👀 Review {review}",
"category_heading": "Category Breakdown",
"category_row": "{label} {bar} {count}",
"cc_paid": "💳 CC used {consumed} ・ remaining {remaining}",
"cc_free": "💳 {percent}% of monthly free quota used",
"dashboard_button": "📊 View details on dashboard"
},
"antiraid_summary": {
"title": "Raid Lockdown Report",
"blocked_count": "### Blocked {count} accounts",
"duration_line": "⏱️ Detection to convergence: **{duration}**",
"action_breakdown": "🔨 {breakdown}",
"reasons_line": "🧠 Detection basis: {reasons}",
"timeline": {
"detected": "`{time}` 🔍 Suspicious joins detected",
"lockdown": "`{time}` 🔒 Lockdown activated",
"tally": "`{time}` 🔨 Actions tallied",
"converged": "`{time}` ✅ Converged"
},
"reasons": {
"account_age": "Recently created account",
"no_avatar": "No avatar set",
"join_rate": "High-volume join burst"
}
},
"appeal_modal": {
"title": "Submit Appeal",
"reason_label": "Reason for Appeal",
Expand Down
88 changes: 84 additions & 4 deletions en/web.json
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,8 @@
"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",
"aiDigestEnabledLabel": "Weekly Digest",
"aiDigestEnabledDesc": "Automatically post a summary of last week's moderation activity to the mod log every Monday",
"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)",
Expand Down Expand Up @@ -519,6 +521,8 @@
},
"aimodEditor": {
"title": "Node Editor",
"loadError": "Failed to load the current pipeline. Editing is locked to protect the saved configuration.",
"retry": "Retry",
"back": "Back",
"save": "Save",
"saving": "Saving...",
Expand Down Expand Up @@ -776,7 +780,7 @@
"cost": "{cc}CC",
"charged": "Charged",
"free": "Free (no charge)",
"freeRemaining": "Free CC left today: {cc}",
"freeRemaining": "Free CC left this month: {cc}",
"partialShortfall": "Some checks were skipped due to insufficient credits"
},
"errors": {
Expand Down Expand Up @@ -1085,6 +1089,12 @@
"title": "Subscription",
"desc": "Expand your server's features with a monthly plan"
},
"sizeGuide": {
"lite": "Ideal for servers with up to ~200 messages/day",
"basic": "Ideal for servers with up to ~500 messages/day",
"pro": "Ideal for servers with up to ~1,000 messages/day",
"note": "These are rough estimates for a typical server. Actual usage varies with how active your server is, the volume of images, and your rule settings."
},
"cc": {
"title": "Cube Credit",
"desc": "One-time credits you can buy as needed"
Expand Down Expand Up @@ -2127,7 +2137,8 @@
"syncFail": "Sync failed",
"cancelAtEnd": "cancels at period end",
"syncUserPlaceholder": "User ID",
"confirmSyncUser": "Sync subscription info for user {userId}?"
"confirmSyncUser": "Sync subscription info for user {userId}?",
"openRefundConsole": "Refund Console"
},
"blacklist": {
"title": "Blacklist",
Expand Down Expand Up @@ -2216,6 +2227,56 @@
"grantAllOk": "Bulk grant executed",
"grantAllFail": "Failed to execute bulk grant"
},
"refund": {
"title": "Stripe Refund & CC Clawback",
"loadConfig": "Load settings",
"proratedEnabled": "Allow prorated refunds as an exception",
"deductPlatformFee": "Deduct actual platform fee for customer exceptions",
"policyWindowDays": "Policy window (days)",
"fixedFeeJpy": "Customer fixed fee (JPY)",
"saveConfig": "Save settings",
"configSaved": "Refund settings saved",
"configSaveFail": "Failed to save refund settings",
"configReason": "Reason for configuration change (audited)",
"confirmConfigChange": "Change refund settings?\nBefore: {before}\nAfter: {after}\nThe reason and both values will be audited.",
"configLoadFail": "Failed to load refund settings",
"ccPurchase": "CC Purchase (Checkout Session)",
"subscriptionInvoice": "Subscription (Invoice)",
"targetId": "Stripe Session / Invoice ID",
"full": "Full refund",
"prorated": "Prorated refund",
"reasonDuplicate": "Duplicate charge",
"reasonTeamFault": "Team fault",
"reasonUnavailable": "Permanent unavailability",
"reasonCustomer": "Customer exception",
"overrideReason": "Reason for policy override (saved to audit log)",
"preview": "Preview refund",
"previewFail": "Could not calculate refund",
"previewAmount": "Refund: {amount} {currency}",
"previewCc": "CC clawback: {clawback} / consumed shortfall: {shortfall}",
"confirmExecute": "Issue this Stripe refund and claw back the associated CC?",
"execute": "Execute refund",
"executeOk": "Refund started ({id}) — {status}",
"executeFail": "Failed to execute refund",
"history": "Refund operations",
"refresh": "Refresh",
"reconcile": "Reconcile with Stripe",
"confirmReconcile": "Reconcile this operation with Stripe? No new refund will be created.",
"reconcileFail": "Failed to reconcile with Stripe",
"historyLoading": "Loading refund history...",
"historyRetry": "Retry refund history",
"historyEmpty": "No refund operations",
"historyUnknown": "Unknown",
"historyError": "Error: {error}",
"statusPreparing": "Preparing",
"statusSubmitting": "Submitting to Stripe",
"statusPending": "Pending",
"statusPendingUnknown": "Submission result unknown",
"statusUnknown": "Reconciliation pending",
"statusRequiresAction": "Manual action required",
"statusSucceeded": "Succeeded",
"statusFailed": "Failed"
},
"economyStats": {
"title": "CC Stats & Payment Services Act Monitoring",
"desc": "Shows total issued credits and their trend, plus the status against the Payment Services Act threshold (¥10,000,000 unused balance).",
Expand All @@ -2240,7 +2301,19 @@
"consumed": "Consumed",
"loadError": "Failed to load data",
"noData": "No data",
"retry": "Retry"
"retry": "Retry",
"utilizationTitle": "CC Utilization by Plan",
"utilizationNote": "Annual-billed subscriptions only. Monthly-billed grants cannot be reliably attributed to a subscription plan.",
"utilizationPlan": "Plan",
"utilizationGuildCount": "Guilds",
"utilizationAvg": "Avg",
"utilizationP50": "P50",
"utilizationP90": "P90",
"utilizationHighCount": "Over 90% Guilds",
"highUtilizationTitle": "High Utilization Guilds (Annual, Latest Period)",
"highUtilizationGuildId": "Guild ID",
"highUtilizationMonth": "Month",
"highUtilizationRate": "Utilization"
},
"users": {
"title": "User Lookup",
Expand Down Expand Up @@ -2285,6 +2358,9 @@
"providerCost": "Estimated Provider Cost",
"grossProfit": "Estimated Gross Profit",
"grossMargin": "Gross Margin",
"grossProfitLite": "Estimated Gross Profit (Lite basis)",
"grossMarginLite": "Gross Margin (Lite basis)",
"referenceRateNote": "Reference figures only. Revenue is estimated from paid CC at two flat unit-price baselines (¥0.0667/CC = Basic/Pro effective rate, ¥0.0769/CC = Lite effective rate); actual per-plan revenue allocation is out of scope.",
"avgTokens": "Avg Tokens/Call",
"summaryNote": "Average tokens/message: {avgTokens}. Estimated revenue from paid CC only: {revenue}.",
"unmeasured": "Unmeasured",
Expand Down Expand Up @@ -2596,6 +2672,8 @@
},
"analytics": {
"title": "Moderation Analytics",
"loadError": "Some analytics data could not be loaded. Available results are still shown.",
"retry": "Retry",
"rangePicker": {
"7d": "Last 7 days",
"30d": "Last 30 days"
Expand Down Expand Up @@ -2636,6 +2714,8 @@
},
"userViolations": {
"title": "Violation Log",
"loadError": "Failed to load violation logs.",
"retry": "Retry",
"back": "Back",
"ruleType": "Rule",
"reason": "Reason",
Expand All @@ -2646,4 +2726,4 @@
"page": "Page {page} of {total}"
}
}
}
}
54 changes: 44 additions & 10 deletions ja/bot.json
Original file line number Diff line number Diff line change
Expand Up @@ -427,7 +427,7 @@
},
"info": {
"description": "ユーザーのモデレーションステータス(Heat, Suspicion等)を表示します。",
"title": "{user} のモデレーション情報",
"title": "{{user}} のモデレーション情報",
"heat": "現在のHeat",
"suspicion": "不審者レベル",
"last_violation": "最終違反日時",
Expand Down Expand Up @@ -623,7 +623,7 @@
"already_exists": "ユーザー <@{userId}> はすでにその状態であるか、処罰をスキップしました。"
},
"report": {
"self_error": "自分自身やBotを通報することはできません。",
"self_error": "自分自身を通報することはできません。",
"reporter_prefix": "通報者: {moderatorTag} — {reason}",
"success": "✅ <@{userId}> を通報しました。モデレーターが確認します。",
"modal_title": "メッセージを通報",
Expand Down Expand Up @@ -1139,7 +1139,7 @@
"v2_failed_hint": "-# 対象が管理者権限を持っている、またはBotより上位のロールを持っているため自動処罰できませんでした。下のボタンから手動で対応してください。",
"btn_ban": "BAN",
"btn_kick": "キック",
"btn_unquarantine": "隔離解除",
"btn_unquarantine": "誤検知(隔離解除",
"btn_untimeout": "タイムアウト解除",
"btn_false_positive": "誤検知として解除",
"btn_confirm_spam": "スパム確認",
Expand All @@ -1152,17 +1152,20 @@
"body": "**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n\n自動判定の信頼度が低いため、モデレーターによる手動確認が必要です。"
},
"ai_lane": {
"support_crisis": {
"notice": "あなたを責めたり、罰したりするための通知ではありません。今とてもつらい状況なら、ひとりで抱え込まず、信頼できる人や地域の相談窓口に話してください。今すぐ危険がある場合は、地域の緊急通報先へ連絡してください。"
},
"review": {
"title": "🤖 AIモデレーション 要確認",
"author": "**対象:** <@{userId}>\n`{userTag}`",
"author": "**対象:** <@{userId}> ({userTag})",
"verdict": "**判定:** {label}(信頼度 {confidence}%)",
"verdict_label": "**⚖️ 判定:** {label}",
"confidence": "**🎯 信頼度:** `{gauge}`",
"severity": "**🔥 深刻度:** `{gauge}`",
"categories": "**🏷️ カテゴリ:** {categories}",
"categories": "**カテゴリ:** {categories}",
"triggers": "**🚦 発火ルール:** {triggers}",
"reason": "**📝 理由:** {reason}",
"jump": "[📨 メッセージへ移動]({url})",
"reason": "**理由:** {reason}",
"jump": "[メッセージへ移動]({url})",
"btn_jump": "📨 対象メッセージへ移動",
"label_gray": "グレー",
"label_violation": "違反",
Expand Down Expand Up @@ -1212,8 +1215,8 @@
"v2_guide": "-# サーバーのルールを今一度ご確認ください。違反が続くと、より重い措置が取られる場合があります。"
},
"notify_owner": {
"dm_title": "🛡️ Anti-Nuke 検知(オーナー通知)",
"dm_body": "**サーバー:** {guildName}\n**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n**適用アクション:** {action}\n\nAnti-Nuke が破壊的な操作を検知しました。誤検知でないか手動でご確認ください。",
"dm_title": "⚠️ 管理者通知",
"dm_body": "**サーバー:** {guildName}\n**対象:** <@{userId}> ({userTag})\n**理由:** {reason}\n\nこのユーザーは信頼スコアが高いため24時間タイムアウトを適用しました。手動確認してください。",
"no_action": "適用できませんでした(手動対応が必要)"
},
"scheduled_security": {
Expand All @@ -1230,7 +1233,7 @@
"appeal_dm": {
"quarantine_title": "⚠️ 隔離(Quarantine)が適用されました",
"timeout_title": "⚠️ タイムアウトが適用されました",
"body": "自動モデレーションにより **{label}** が適用されました。\n\n**🏠 サーバー:** {guildName}\n**📝 理由:** {reason}\n\n-# 誤検知と思われる場合は、下のボタンから異議申し立てができます。",
"body": "**サーバー:** {guildName}\n\n自動モデレーションにより {label} が適用されました。誤検知と思われる場合は、下のボタンから異議申し立てができます。",
"quarantine_label": "隔離(Quarantine)",
"timeout_label": "タイムアウト",
"btn_appeal": "異議申し立て"
Expand All @@ -1243,6 +1246,37 @@
"v2_reason": "**📝 理由:** {reason}",
"v2_categories": "**🏷️ カテゴリ:** {categories}"
},
"attribution": {
"footer": "-# 🧊 Protected by cube — https://cubeteam.app"
},
"ai_digest": {
"title": "🧊 **今週のモデレーションレポート** ・{range}",
"messages_monitored": "## {count} メッセージを監視",
"summary_line": "🚨 検知 {detected} ・ 🔨 処罰 {actions} ・ 👀 レビュー {review}",
"category_heading": "カテゴリ内訳",
"category_row": "{label} {bar} {count}",
"cc_paid": "💳 CC 消費 {consumed} ・ 残 {remaining}",
"cc_free": "💳 今月の無料枠 {percent}% 消化",
"dashboard_button": "📊 詳細をダッシュボードで"
},
"antiraid_summary": {
"title": "レイド鎮圧レポート",
"blocked_count": "### {count}アカウントをブロック",
"duration_line": "⏱️ 検知から収束まで **{duration}**",
"action_breakdown": "🔨 {breakdown}",
"reasons_line": "🧠 検知根拠: {reasons}",
"timeline": {
"detected": "`{time}` 🔍 異常な参加を検知",
"lockdown": "`{time}` 🔒 ロックダウン発動",
"tally": "`{time}` 🔨 処罰を集計",
"converged": "`{time}` ✅ 収束"
},
"reasons": {
"account_age": "アカウント作成日が新しい",
"no_avatar": "アバター未設定",
"join_rate": "短時間の大量参加"
}
},
"appeal_modal": {
"title": "異議申し立て",
"reason_label": "申し立ての理由",
Expand Down
Loading