### Ban reasons: the coded categories of beta decision A6 as the moderator sees them on inline ### buttons (R11 I4), and the reason-change questions of beta decisions Q4.3 and Q4.4. The ### stored reason code is not a translation; it belongs to the record owner (#29, #30). ### reason-label maps the neutral internal code to its label (docs/architecture.md section 4.3). reason-spam = Spam reason-harassment = Harassment reason-off-topic = Off-topic reason-illegal-content = Illegal content # Exact wording decided 2026-10-03 (research/BETA-DECISIONS.md, the model section, point 2). reason-serious-violation = Serious violation of Telegram's terms reason-other = Other # The variant keys are the stored reason codes of src/records/reasons.ts (A6; records README # section 8): spam, harassment, off_topic, illegal_content, other. The category's stored value is # not a Fluent identifier, so the caller passes serious-violation for it (card 0072; #27 confirms). reason-label = { $code -> [spam] { reason-spam } [harassment] { reason-harassment } [off_topic] { reason-off-topic } [illegal_content] { reason-illegal-content } [serious-violation] { reason-serious-violation } *[other] { reason-other } } reason-prompt = Choose a reason for the ban. # The owner's "reason required" setting (R11 I12, locked ban logging). reason-required = This group requires a reason for every ban. Choose one before the ban is carried out. # /reason names a user who has no current ban in this group (src/bot/README.md sections 4 and 7). reason-unavailable = That user has no current ban here to change. # Beta decision Q4.3: moving a ban to the fifth category asks first. reason-change-serious-question = You are moving this ban to the category "{ reason-serious-violation }". The message text and the written reason will be deleted for good. Continue? reason-change-serious-done = The ban is now in the category "{ reason-serious-violation }". The message text and the written reason have been deleted. The ban no longer ends by itself. # Beta decision Q4.4: moving a ban back after a mistake. reason-change-back-prompt = Choose the new reason. The ban becomes an ordinary ban again, with its end counted from the original ban. Deleted text does not come back. reason-change-back-done = The ban is now an ordinary ban with the reason "{ $reason }". It ends on { DATETIME($until, dateStyle: "medium", timeStyle: "short") }. Deleted text does not come back.