From 3f0cc256dc444fe4de945d92cbe1fb05849ed13f Mon Sep 17 00:00:00 2001 From: Mar0xy Date: Wed, 18 Oct 2023 03:00:48 +0200 Subject: [PATCH] add: locales for approval feature --- locales/en-US.yml | 10 ++++++++++ locales/index.d.ts | 10 ++++++++++ locales/ja-JP.yml | 10 ++++++++++ .../frontend/src/components/MkSignupDialog.form.vue | 6 +++--- .../frontend/src/components/MkVisitorDashboard.vue | 2 +- packages/frontend/src/pages/admin-user.vue | 13 +++++++------ packages/frontend/src/pages/admin/moderation.vue | 2 +- 7 files changed, 42 insertions(+), 11 deletions(-) diff --git a/locales/en-US.yml b/locales/en-US.yml index a231f22716..465b579f61 100644 --- a/locales/en-US.yml +++ b/locales/en-US.yml @@ -142,6 +142,7 @@ unsuspend: "Unsuspend" blockConfirm: "Are you sure that you want to block this account?" unblockConfirm: "Are you sure that you want to unblock this account?" suspendConfirm: "Are you sure that you want to suspend this account?" +approveConfirm: "Are you sure that you want to approve this account?" unsuspendConfirm: "Are you sure that you want to unsuspend this account?" selectList: "Select a list" editList: "Edit list" @@ -871,6 +872,7 @@ itsOff: "Disabled" on: "On" off: "Off" emailRequiredForSignup: "Require email address for sign-up" +approvalRequiredForSignup: "Require approval for new users" unread: "Unread" filter: "Filter" controlPanel: "Control Panel" @@ -929,6 +931,11 @@ requireAdminForView: "You must log in with an administrator account to view this isSystemAccount: "An account created and automatically operated by the system." typeToConfirm: "Please enter {x} to confirm" deleteAccount: "Delete account" +approveAccount: "Approve" +denyAccount: "Deny & Delete" +approved: "Approved" +notApproved: "Not Approved" +approvalStatus: "Approval Status" document: "Documentation" numberOfPageCache: "Number of cached pages" numberOfPageCacheDescription: "Increasing this number will improve convenience for but cause more load as more memory usage on the user's device." @@ -1020,6 +1027,7 @@ disableFederationConfirm: "Really disable federation?" disableFederationConfirmWarn: "Even if defederated, posts will continue to be public unless set otherwise. You usually do not need to do this." disableFederationOk: "Disable" invitationRequiredToRegister: "This instance is invite-only. You must enter a valid invite code sign up." +approvalRequiredToRegister: "This instance is only accepting users who specify a reason for registration." emailNotSupported: "This instance does not support sending emails" postToTheChannel: "Post to channel" cannotBeChangedLater: "This cannot be changed later." @@ -1540,6 +1548,8 @@ _signup: almostThere: "Almost there" emailAddressInfo: "Please enter your email address. It will not be made public." emailSent: "A confirmation email has been sent to your email address ({email}). Please click the included link to complete account creation." + approvalPending: "Your account has been created and is awaiting approval." + reasonInfo: "Please enter a reason as to why you want to join the instance." _accountDelete: accountDelete: "Delete account" mayTakeTime: "As account deletion is a resource-heavy process, it may take some time to complete depending on how much content you have created and how many files you have uploaded." diff --git a/locales/index.d.ts b/locales/index.d.ts index fd9a2cb7e0..8109ffb346 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -145,6 +145,7 @@ export interface Locale { "blockConfirm": string; "unblockConfirm": string; "suspendConfirm": string; + "approveConfirm": string; "unsuspendConfirm": string; "selectList": string; "editList": string; @@ -869,6 +870,7 @@ export interface Locale { "on": string; "off": string; "emailRequiredForSignup": string; + "approvalRequiredForSignup": string; "unread": string; "filter": string; "controlPanel": string; @@ -927,6 +929,11 @@ export interface Locale { "isSystemAccount": string; "typeToConfirm": string; "deleteAccount": string; + "approveAccount": string; + "denyAccount": string; + "approved": string; + "notApproved": string; + "approvalStatus": string; "document": string; "numberOfPageCache": string; "numberOfPageCacheDescription": string; @@ -1018,6 +1025,7 @@ export interface Locale { "disableFederationConfirmWarn": string; "disableFederationOk": string; "invitationRequiredToRegister": string; + "approvalRequiredToRegister": string; "emailNotSupported": string; "postToTheChannel": string; "cannotBeChangedLater": string; @@ -1627,6 +1635,8 @@ export interface Locale { "almostThere": string; "emailAddressInfo": string; "emailSent": string; + "approvalPending": string; + "reasonInfo": string; }; "_accountDelete": { "accountDelete": string; diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml index deab375c1a..cc93204f1f 100644 --- a/locales/ja-JP.yml +++ b/locales/ja-JP.yml @@ -142,6 +142,7 @@ unsuspend: "解凍" blockConfirm: "ブロックしますか?" unblockConfirm: "ブロック解除しますか?" suspendConfirm: "凍結しますか?" +approveConfirm: "このアカウントを承認してもよろしいですか?" unsuspendConfirm: "解凍しますか?" selectList: "リストを選択" editList: "リストを編集" @@ -866,6 +867,7 @@ itsOff: "オフになっています" on: "オン" off: "オフ" emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする" +approvalRequiredForSignup: "新規ユーザーの承認が必要" unread: "未読" filter: "フィルタ" controlPanel: "コントロールパネル" @@ -924,6 +926,11 @@ requireAdminForView: "閲覧するには管理者アカウントでログイン isSystemAccount: "システムにより自動で作成・管理されているアカウントです。" typeToConfirm: "この操作を行うには {x} と入力してください" deleteAccount: "アカウント削除" +approveAccount: "承認する" +denyAccount: "拒否と削除" +approved: "承認済み" +notApproved: "承認されていない" +approvalStatus: "承認状況" document: "ドキュメント" numberOfPageCache: "ページキャッシュ数" numberOfPageCacheDescription: "多くすると利便性が向上しますが、負荷とメモリ使用量が増えます。" @@ -1015,6 +1022,7 @@ disableFederationConfirm: "連合なしにしますか?" disableFederationConfirmWarn: "連合なしにしても投稿は非公開になりません。ほとんどの場合、連合なしにする必要はありません。" disableFederationOk: "連合なしにする" invitationRequiredToRegister: "現在このサーバーは招待制です。招待コードをお持ちの方のみ登録できます。" +approvalRequiredToRegister: "このインスタンスは、登録理由を指定したユーザーのみを受け入れています。" emailNotSupported: "このサーバーではメール配信はサポートされていません" postToTheChannel: "チャンネルに投稿" cannotBeChangedLater: "後から変更できません。" @@ -1546,6 +1554,8 @@ _signup: almostThere: "ほとんど完了です" emailAddressInfo: "あなたが使っているメールアドレスを入力してください。メールアドレスが公開されることはありません。" emailSent: "入力されたメールアドレス({email})宛に確認のメールが送信されました。メールに記載されたリンクにアクセスすると、アカウントの作成が完了します。" + approvalPending: "アカウントが作成され、承認待ちの状態です。" + reasonInfo: "インスタンスに参加したい理由を入力してください。" _accountDelete: accountDelete: "アカウントの削除" diff --git a/packages/frontend/src/components/MkSignupDialog.form.vue b/packages/frontend/src/components/MkSignupDialog.form.vue index 8975842c63..389acb82bc 100644 --- a/packages/frontend/src/components/MkSignupDialog.form.vue +++ b/packages/frontend/src/components/MkSignupDialog.form.vue @@ -62,8 +62,8 @@ SPDX-License-Identifier: AGPL-3.0-only - - + + @@ -271,7 +271,7 @@ async function onSubmit(): Promise { os.alert({ type: 'success', title: i18n.ts._signup.almostThere, - text: i18n.t('_signup.emailSent', { email }), + text: i18n.ts._signup.approvalPending, }); emit('approvalPending'); } else { diff --git a/packages/frontend/src/components/MkVisitorDashboard.vue b/packages/frontend/src/components/MkVisitorDashboard.vue index 412f58363c..5f269409b7 100644 --- a/packages/frontend/src/components/MkVisitorDashboard.vue +++ b/packages/frontend/src/components/MkVisitorDashboard.vue @@ -22,7 +22,7 @@ SPDX-License-Identifier: AGPL-3.0-only {{ i18n.ts.invitationRequiredToRegister }}
- This instance is only accepting users who specify a reason for registration.
You must enter a reason during sign up as to why you want to join this instance.
+ {{ i18n.ts.approvalRequiredToRegister }}
{{ i18n.ts.joinThisServer }} diff --git a/packages/frontend/src/pages/admin-user.vue b/packages/frontend/src/pages/admin-user.vue index dce74c0ea9..47b4b1b14d 100644 --- a/packages/frontend/src/pages/admin-user.vue +++ b/packages/frontend/src/pages/admin-user.vue @@ -15,7 +15,8 @@ SPDX-License-Identifier: AGPL-3.0-only @{{ acct(user) }} - Not Approved + {{ i18n.ts.notApproved }} + {{ i18n.ts.approved }} Suspended Silenced Moderator @@ -180,16 +181,16 @@ SPDX-License-Identifier: AGPL-3.0-only
- - + + - Approve - Deny & Delete + {{ i18n.ts.approveAccount }} + {{ i18n.ts.denyAccount }}
@@ -369,7 +370,7 @@ async function deleteAccount() { async function approveAccount() { const confirm = await os.confirm({ type: 'warning', - text: i18n.ts.suspendConfirm, + text: i18n.ts.approveConfirm, }); if (confirm.canceled) return; await os.api('admin/approve-user', { userId: user.id }); diff --git a/packages/frontend/src/pages/admin/moderation.vue b/packages/frontend/src/pages/admin/moderation.vue index 379a78580d..193dd9f089 100644 --- a/packages/frontend/src/pages/admin/moderation.vue +++ b/packages/frontend/src/pages/admin/moderation.vue @@ -19,7 +19,7 @@ SPDX-License-Identifier: AGPL-3.0-only - + {{ i18n.ts.serverRules }}