diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-09-12 13:48:09 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-09-12 16:36:54 +0200 |
| commit | 98e27c8f251022320020716a9ef7a5b892ad2b61 (patch) | |
| tree | 7cfb3f397c3f001768413676a739fe147743c824 /packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js | |
| parent | e671b931fd594a39fc840916c81b5d4b1f1e3227 (diff) | |
| download | meshbay-98e27c8f251022320020716a9ef7a5b892ad2b61.tar.gz | |
feat(hub): the mail bounds are settings, with a panel to change them
They were constants in two modules, so an operator could not touch them
without editing code and redeploying — and the hour a budget runs out is not
when anyone wants to do that.
`[mail]` in hub.toml carries the defaults; the live values live in
`hub_settings`, read at each use. A missing row falls back to what the
configuration file says, so an instance that never opens the panel behaves as
its file describes. The panel sends only what changed, the hub clamps each
value to a stated range and refuses a key it does not know, and the response
is what gets rendered — so a clamped value is never shown as stored.
`GET /v1/admin/mail` is the other half. There was no way to see any of this:
a refusal was a line in the journal, so an instance that had stopped sending
sign-up codes looked, from the panel, exactly like one with no sign-ups. It
reports the hour's use, what is left for sign-ups, and what is left for
recovery — the difference between those two being the reserved share made
visible.
Labels in all ten catalogues.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T4YmK41VsEURWFdop4EEeT
Diffstat (limited to 'packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js')
| -rw-r--r-- | packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js index 75728f8..c7f2c76 100644 --- a/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js +++ b/packages/meshbay-hub/src/meshbay_hub/static/locales/ja.js @@ -478,6 +478,19 @@ export default { 'admin.general_groups_heading': "Groups", 'admin.allow_public_groups_label': "Allow members to create public groups", 'admin.allow_public_groups_hint': "When off, new groups can only be private and invite-only. Existing public groups are left as they are — suspend them one by one from the Groups tab.", + 'admin.mail_heading': "送信メール", + 'admin.mail_hint': "このハブが送信する内容と量です。重要なのは 2 つ、アカウント数では上げられない 1 時間あたりの上限と、受信者 1 人あたりの 1 日の上限です。後者が、大量に送りつけられる人が実際に受け取る数です。", + 'admin.mail_this_hour': "この 1 時間の送信数", + 'admin.mail_remaining': "登録とアドレス変更に残り {general} 件、パスフレーズ再設定と招待に {recovery} 件。", + 'admin.mail_hourly_budget': "1 時間あたりの通数(インスタンス全体)", + 'admin.mail_hourly_reserved_for_recovery': "うち再設定と招待のために確保する数", + 'admin.mail_destination_daily_cap': "同一受信者への 1 日あたりの通数", + 'admin.mail_destination_cooldown_seconds': "同一受信者への送信間隔(秒)", + 'admin.mail_verification_resend_cooldown': "登録コード再送の間隔(秒)", + 'admin.mail_reset_cooldown': "再設定コード再送の間隔(秒)", + 'admin.mail_email_change_cooldown': "別のアドレスを申請できるようになるまでの秒数", + 'admin.mail_save': "メール制限を保存", + 'admin.mail_reset_defaults': "既定値に戻す", 'admin.settings_readonly': "Only an admin can change these settings.", // Admin stats |