Skip to content

Rename user-facing "mod(erator) note" to "message from the moderators" #9207

Description

@claude

Background

Split out from PR #9150 (reviewing email copy before localization). During review, @jesseallhands suggested rewording the moderator-note email/push copy from "moderator note" to "message from the moderators" (e.g. subject → "You have received a message from the moderators", view action → "View moderator message").

We deferred this because "mod(erator) note" is a term we use consistently across many surfaces, so changing the user-facing wording in one place would make it inconsistent with the rest. It should be done holistically in its own PR.

cc @aapeliv @jesseallhands — let's align on the exact target wording before someone picks this up. Candidates raised so far: "message from the moderators" / "moderator message".

Scope

This is a user-facing copy change only. The term currently appears in ~232 places across 61 files, but most are internal identifiers that should not change.

Should change (user-visible strings)

Email copy:

  • app/backend/src/couchers/email/locales/en.jsonmoderator_note.subject / .purpose / .view_action (around L271-274)

Push / notification copy:

  • app/backend/src/couchers/notifications/locales/en.jsonevent_description, title ("New moderator note"), ios_title, body (around L330-334)

Backend i18n / error messages:

  • app/backend/src/couchers/i18n/locales/en.jsonmoderator_note_need_to_acknowledge, moderator_note_not_found (L144-145)

Web jail UI copy:

  • app/web/features/auth/locales/en.jsontitle, description, note_title (L161-163)
  • app/web/features/mod/locales/en.jsonpending_mod_notes_count, acknowledged_mod_notes_count labels (L24-25)

Note: the non-English locale JSONs hold the same keys, but since this copy is about to be (re)localized, the translation side can be handled through the normal localization flow.

Should NOT change (keep as-is)

  • Proto fields/messages (ModNote, SendModNote, mod_notes, has_pending_mod_notes, etc. in account.proto, admin.proto, jail.proto) — field numbers and names are permanent wire format; renaming them is off-limits.
  • DB schemamod_note table / model (models/mod_note.py, migration 0069_add_mod_notes.py).
  • Code symbols (servicer methods, web service functions, component names like ModNoteSection/ModNoteCard) — optional internal-consistency churn, not required for the user-facing goal. If we do touch them it should be clearly separated from the copy change.

Open questions

  1. Final wording: "message from the moderators" vs "moderator message" vs something else? (subject lines, push titles, and the jail UI heading should all match)
  2. Do we want to also rename internal code symbols for consistency, or keep them as ModNote to avoid a large diff?

Related: PR #9150

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions