AGPL source offer and name cleanup

Every build writes the exact source it was built from, uncommitted work and
new files included, as source.tar.gz next to the app, named after that tree.
Docker builds, which have no git, pack the build context and name it by a
hash of its files. The sign-in page and Settings > About link to it instead of
a repository that can drift.

What users, operators and packagers see no longer names the upstream server:
- interface text, in all nine catalogues, with a token-session line for
  Security;
- server messages;
- the settings, now MAIL_SERVER_URL, MAIL_SERVERS_FILE, ADMIN_URL and
  MAIL_SERVER_FOLLOW_ADVERTISED_URLS, and mail-servers.example.json;
- the Tenants notice, which is gone;
- the README, CONTRIBUTING and SECURITY.

ihasmail's own FEATURES, KNOWN-ISSUES and ROADMAP stay with public ihasmail,
and INBUXA.md is folded into the README.
This commit is contained in:
2026-09-19 00:13:12 -07:00
parent 9d2de725c9
commit bb25355c23
59 changed files with 444 additions and 2436 deletions
+11 -12
View File
@@ -138,8 +138,8 @@ export const catalog: Catalog = {
"The numbers your role can see, as the server reports them.": "あなたのロールで見られる数値を、サーバーの報告どおりに表示します。",
"Nothing to show": "表示するものはありません",
"Could not be loaded": "読み込めませんでした",
"Detailed metrics, the delivery queue, logs and server settings are in Stalwart's own administration.": "詳しいメトリクス、配キュー、ログ、サーバー設定は Stalwart 自体の管理画面にあります。",
"Open Stalwart admin": "Stalwart の管理画面を開く",
"Detailed metrics, the delivery queue, logs and server settings are in INBUXA Admin.": "詳細なメトリクス、配キュー、ログ、サーバー設定は INBUXA Admin にあります。",
"Open INBUXA Admin": "INBUXA Admin を開く",
"Default group role": "グループの既定ロール",
"A group needs an address.": "グループにはアドレスが必要です。",
"New group": "新しいグループ",
@@ -208,10 +208,10 @@ export const catalog: Catalog = {
"New role": "新しいロール",
"This role carries permissions yours doesn't, so you can view it but not change it.": "このロールにはあなたのロールにない権限があるため、閲覧はできますが変更はできません。",
"Your role lets you view roles but not change them.": "あなたのロールでは、ロールの閲覧はできますが変更はできません。",
"Stalwart gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "Stalwart はこのロールを既定で {kinds} に付与しています。ここでの変更は、の方法でこのロールを持つ全員に及びます。",
"The mail server gives this role by default to {kinds}. A change here reaches everyone who has it that way.": "メールサーバーはこのロールを既定で {kinds} に付与します。ここでの変更は、の方法でロールを持つ全員に反映されます。",
"Builds on": "継承元",
"Permissions": "権限",
"Stalwart gives this role by default, so it can't be deleted. Change the defaults in Stalwart's own administration first.": "Stalwart が既定で付与するロールのため、削除できません。先に Stalwart 自体の管理画面で既定値を変更してください。",
"The mail server gives this role by default, so it can't be deleted. Change the defaults in INBUXA Admin first.": "メールサーバーがこのロールを既定で付与するため、削除できません。先に INBUXA Admin で既定値を変更してください。",
"This role carries permissions yours doesn't.": "このロールにはあなたのロールにない権限があります。",
"Create role": "ロールを作成",
"builds on this one": "このロールを継承しています",
@@ -238,7 +238,7 @@ export const catalog: Catalog = {
"Delete role": "ロールを削除",
"It can't be undone.": "元に戻せません。",
"Type {name} to confirm": "確認のため {name} と入力してください",
"Stalwart's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "Stalwart の権限一覧を読み込めなかったため、ここでは権限を変更できません。{reason}",
"The mail server's list of permissions could not be loaded, so permissions can't be changed here. ({reason})": "メールサーバーの権限一覧を読み込めなかったため、ここでは権限を変更できません。({reason})",
"Named sets of permissions, given to accounts, groups and tenants.": "アカウント、グループ、テナントに付与する、名前付きの権限のまとまりです。",
"Search roles": "ロールを検索",
"No roles match": "一致するロールはありません",
@@ -261,11 +261,11 @@ export const catalog: Catalog = {
"{used} used": "{used} 使用中",
"Your role lets you view tenants but not change them.": "あなたのロールでは、テナントの閲覧はできますが変更はできません。",
"Logo": "ロゴ",
"An https address or a data URL of an image. Stalwart shows it to the tenant's people where it shows a logo.": "https アドレスまたは画像の data URL です。Stalwart はロゴを表示する場所でテナントの利用者に表示します。",
"An https address or a data URL of an image. The mail server shows it to the tenant's people where it shows a logo.": "画像の https アドレスまたはデータ URL。メールサーバーは、ロゴを表示する場所でテナントのユーザーにこれを表示します。",
"What it holds": "含まれるもの",
"{n} of {limit}": "{limit} 件中 {n} 件",
"Limits": "上限",
"Stalwart refuses to create more than a limit allows. An empty field is no limit.": "Stalwart は上限を超える作成を拒否します。空欄は上限なしす。",
"The mail server refuses to create more than a limit allows. An empty field is no limit.": "メールサーバーは上限を超える作成を拒否します。空欄は上限なしを意味します。",
"The most anyone in this tenant can be allowed: their own roles are cut down to what these grant. Only roles whose permissions you hold yourself are offered.": "このテナント内の誰にでも許可できる最大の範囲です。各自のロールは、これらが付与する範囲に絞られます。表示されるのは、あなた自身が権限を持つロールだけです。",
"Checking what is still in this tenant…": "このテナントに残っているものを確認しています…",
"It still holds accounts, domains or other things. Move them out first.": "まだアカウント、ドメインなどが含まれています。先に移動してください。",
@@ -281,7 +281,6 @@ export const catalog: Catalog = {
"Still holds {things}. Move them out first.": "まだ {things} が含まれています。先に移動してください。",
"Delete tenant": "テナントを削除",
"Separate organizations on one server, each with its own people, domains and limits.": "1 台のサーバー上の別々の組織で、それぞれに利用者、ドメイン、上限があります。",
"Tenants are a Stalwart Enterprise feature.": "テナントは Stalwart Enterprise の機能です。",
"Search tenants": "テナントを検索",
"No tenants match": "一致するテナントはありません",
"No tenants yet": "まだテナントがありません",
@@ -1096,16 +1095,15 @@ export const catalog: Catalog = {
"Your mail server delivers these straight to your browser, so they arrive with no ihasmail tab open, naming the sender and subject. Your browser still has to be running — if you quit it completely, notifications wait and arrive when you open it again.": "メールサーバーが通知をブラウザーへ直接届けるため、ihasmail のタブを開いていなくても、差出人と件名つきで届きます。ただしブラウザーは起動している必要があります。完全に終了すると、通知は次に起動したときにまとめて届きます。",
"Your mail server can wake this browser, but will not include the sender or subject. Your browser still has to be running.": "メールサーバーはこのブラウザーを呼び起こせますが、差出人や件名は含めません。ブラウザーは起動している必要があります。",
"This is what a new-mail notification looks like.": "新着メールの通知はこのように表示されます。",
"You're signed in as {user}. Your password is never stored in the browser; the server keeps it encrypted per-session for talking to Stalwart.": "{user} としてサインインしています。パスワードがブラウザーに保存されることはありません。サーバーが Stalwart との通信のために、セッションごとに暗号化して保持します。",
"You're signed in as {user}. Your password is never stored in the browser; the server keeps it encrypted per-session for talking to the mail server.": "{user} としてサインインしています。パスワードがブラウザーに保存されることはありません。メールサーバーとの通信用に、サーバーがセッションごとに暗号化して保持します。",
"App passwords are managed by your mail administrator.": "アプリパスワードはメール管理者が管理しています。",
"Changing your password signs out your other webmail sessions. Any app passwords keep working.": "パスワードを変更すると、他のウェブメールのセッションはサインアウトされます。アプリパスワードはそのまま使えます。",
"This account has two-factor authentication on. ihasmail can't sign you in with a code yet, so signing in on another device needs an app password — or you can turn two-factor authentication off here.": "このアカウントでは 2 段階認証が有効です。ihasmail はまだ確認コードでのサインインに対応していないため、他のデバイスからサインインするにはアプリパスワードが必要です。ここで 2 段階認証をオフにすることもできます。",
"A separate password for a mail app or device, which you can revoke on its own. App passwords skip two-factor codes, so they keep working in apps that can't ask for one.": "メールアプリやデバイスごとに用意する別のパスワードで、単独で無効化できます。アプリパスワードは 2 段階認証の確認コードを省くため、コードを入力できないアプリでも使えます。",
"Copy it into {name} now — it isn't shown again.": "いま {name} にコピーしてください。二度と表示されません。",
"No other users found in the directory, so nobody new can be added. Sharing already in place is listed below and can still be removed.": "ディレクトリに他のユーザーが見つからないため、新しく追加することはできません。すでに設定されている共有は下に表示され、解除はできます。",
"Stalwart does not publish its version number to mail clients, so ihasmail reports the edition where the server gives one. ihasmail requires 0.16 or newer, and sign-in refuses anything older.": "Stalwart はメールクライアントにバージョン番号を公開しないため、ihasmail はサーバーが示すエディションだけを表示します。ihasmail には 0.16 以降が必要で、それより古いサーバーへのサインインは拒否されます。",
"ihasmail's own version is the date of the commit it was built from, followed by where that commit came from: {example} was built from a commit dated the 30th of August 2026 that arrived through pull request 129. A commit that did not come through one carries its short SHA instead — {sha}. The version deliberately says nothing about Stalwart; what this build needs from the server is the line above.": "ihasmail 自身のバージョンは、ビルド元となったコミットの日付と、そのコミットの出どころを並べたものです。{example} は 2026 年 8 月 30 日付のコミットから作られ、そのコミットはプルリクエスト 129 を通って届きました。プルリクエストを経ていないコミットは、代わりに短い SHA が付きます — {sha}。バージョンには Stalwart に関する情報をあえて含めていません。このビルドがサーバーに求めるものは、上の行に示されています。",
"This webmail works with the INBUXA mail server, and sign-in refuses a server that doesn't offer what it needs.": "このウェブメールは INBUXA メールサーバーで動作し、必要な機能を提供しないサーバーへのサインインは拒否されます。",
"ihasmail's own version is the date of the commit it was built from, followed by where that commit came from: {example} was built from a commit dated the 30th of August 2026 that arrived through pull request 129. A commit that did not come through one carries its short SHA instead — {sha}. The version deliberately says nothing about the mail server; what this build needs from the server is the line above.": "ihasmail 自身のバージョンは、ビルド元となったコミットの日付と、そのコミットの出どころを並べたものです。{example} は 2026 年 8 月 30 日付のコミットから作られ、そのコミットはプルリクエスト 129 を通って届きました。プルリクエストを経ていないコミットは、代わりに短い SHA が付きます — {sha}。バージョンには メールサーバーに関する情報をあえて含めていません。このビルドがサーバーに求めるものは、上の行に示されています。",
// ── Constant labels ────────────────────────────────────────────────
"Add": "追加",
"Create subfolders": "サブフォルダーの作成",
@@ -1223,6 +1221,7 @@ export const catalog: Catalog = {
"Could not save filters: {error}": "フィルターを保存できませんでした: {error}",
"Could not send the receipt: {error}": "開封確認を送信できませんでした: {error}",
"Could not sign in.": "サインインできませんでした。",
"You're signed in as {user}. This webmail never sees your password: it holds a sign-in token from your mail server, encrypted per session.": "{user} としてサインインしています。このウェブメールがパスワードを見ることはありません。メールサーバーから受け取ったサインイン用トークンを、セッションごとに暗号化して保持します。",
"About INBUXA webmail": "INBUXA ウェブメールについて",
"Mail server": "メールサーバー",
"You'll enter your password on your mail server's sign-in page.": "パスワードはメールサーバーのサインインページで入力します。",