Skip to content

Commit ed944ff

Browse files
committed
feat: add guest comment support
1 parent 2b49076 commit ed944ff

12 files changed

Lines changed: 612 additions & 342 deletions

File tree

client/public/locales/en/translation.json

Lines changed: 76 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,11 @@
9999
},
100100
"submit": "Submit Comment",
101101
"success": "Comment successful",
102-
"title": "Comment"
102+
"title": "Comment",
103+
"guest_name_required": "Guest name is required",
104+
"guest_name_placeholder": "Name (required)",
105+
"guest_email_placeholder": "Email (optional)",
106+
"guest_website_placeholder": "Website (optional)"
103107
},
104108
"comparison": "Comparison",
105109
"confirm": "Confirm",
@@ -281,47 +285,47 @@
281285
"success": "Favicon update was successful"
282286
}
283287
},
284-
"footer": {
285-
"desc": "Set the footer content of the site (HTML)",
286-
"title": "Footer"
287-
},
288-
"webhook": {
289-
"title": "Webhook",
290-
"url": {
291-
"title": "Webhook URL",
292-
"desc": "Set the webhook endpoint used for comment and friend-link notifications. Template variables are supported here too, which is useful for GET query strings."
293-
},
294-
"method": {
295-
"title": "Webhook Method",
296-
"desc": "Set the HTTP method used for webhook requests, such as POST, PUT, or PATCH"
297-
},
298-
"content_type": {
299-
"title": "Webhook Content-Type",
300-
"desc": "Set the Content-Type header sent with webhook requests, for example application/json or text/plain"
301-
},
302-
"headers": {
303-
"title": "Webhook Headers",
304-
"desc": "Customize webhook headers as a JSON object template. Available variables are the same as the body template.",
305-
"label": "Webhook headers JSON"
306-
},
307-
"body_template": {
308-
"title": "Webhook Body Template",
309-
"desc": "Customize the outgoing webhook payload. Available variables: {{event}}, {{message}}, {{title}}, {{url}}, {{username}}, {{content}}, {{description}}.",
310-
"label": "Webhook body template"
311-
},
312-
"test": {
313-
"title": "Send Test Webhook",
314-
"desc": "Send a test request with the current webhook settings. Unsaved values in this page are used directly.",
315-
"button": "Send Test",
316-
"sending": "Sending...",
317-
"placeholder": "Optional test message. Leave empty to use the default test payload.",
318-
"success": "Webhook test sent successfully",
319-
"failed": "Webhook test failed"
320-
}
321-
},
322-
"maintenance": {
323-
"title": "Maintenance"
324-
},
288+
"footer": {
289+
"desc": "Set the footer content of the site (HTML)",
290+
"title": "Footer"
291+
},
292+
"webhook": {
293+
"title": "Webhook",
294+
"url": {
295+
"title": "Webhook URL",
296+
"desc": "Set the webhook endpoint used for comment and friend-link notifications. Template variables are supported here too, which is useful for GET query strings."
297+
},
298+
"method": {
299+
"title": "Webhook Method",
300+
"desc": "Set the HTTP method used for webhook requests, such as POST, PUT, or PATCH"
301+
},
302+
"content_type": {
303+
"title": "Webhook Content-Type",
304+
"desc": "Set the Content-Type header sent with webhook requests, for example application/json or text/plain"
305+
},
306+
"headers": {
307+
"title": "Webhook Headers",
308+
"desc": "Customize webhook headers as a JSON object template. Available variables are the same as the body template.",
309+
"label": "Webhook headers JSON"
310+
},
311+
"body_template": {
312+
"title": "Webhook Body Template",
313+
"desc": "Customize the outgoing webhook payload. Available variables: {{event}}, {{message}}, {{title}}, {{url}}, {{username}}, {{content}}, {{description}}.",
314+
"label": "Webhook body template"
315+
},
316+
"test": {
317+
"title": "Send Test Webhook",
318+
"desc": "Send a test request with the current webhook settings. Unsaved values in this page are used directly.",
319+
"button": "Send Test",
320+
"sending": "Sending...",
321+
"placeholder": "Optional test message. Leave empty to use the default test payload.",
322+
"success": "Webhook test sent successfully",
323+
"failed": "Webhook test failed"
324+
}
325+
},
326+
"maintenance": {
327+
"title": "Maintenance"
328+
},
325329
"friend": {
326330
"apply": {
327331
"desc": "Allow other users to apply for friend links (requires review)",
@@ -574,33 +578,33 @@
574578
"summary": "login.enabled is disabled.",
575579
"suggestion": "Enable login in settings if this instance needs interactive admin access."
576580
},
577-
"missing": {
578-
"impact": "Users can see the login entry but no working login method is configured.",
579-
"summary": "Neither GitHub OAuth nor password login is configured.",
580-
"suggestion": "Configure RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET or ADMIN_USERNAME/ADMIN_PASSWORD."
581-
},
582-
"default_password": {
583-
"impact": "The admin account is still using the default username and password, which is a critical security risk.",
584-
"summary": "ADMIN_USERNAME/ADMIN_PASSWORD are still set to admin / admin123.",
585-
"suggestion": "Change the default username or password immediately before exposing the site."
586-
},
587-
"oauth_missing": {
588-
"impact": "Only the local password account can sign in. Other users cannot log in and comment through OAuth.",
589-
"summary": "GitHub OAuth is not configured.",
590-
"suggestion": "Configure RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET if you expect other users to log in."
591-
},
592-
"ready": {
593-
"impact": "Admin sign-in is available.",
594-
"summary": "OAuth login is configured and the current password login configuration is not using the default credentials.",
595-
"suggestion": "No action required."
596-
},
597-
"details": {
598-
"github_configured": "GitHub OAuth: configured",
599-
"github_missing": "GitHub OAuth: missing",
600-
"password_configured": "Password login: configured",
601-
"password_missing": "Password login: missing",
602-
"password_default": "Password login: using default credentials"
603-
}
581+
"missing": {
582+
"impact": "Users can see the login entry but no working login method is configured.",
583+
"summary": "Neither GitHub OAuth nor password login is configured.",
584+
"suggestion": "Configure RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET or ADMIN_USERNAME/ADMIN_PASSWORD."
585+
},
586+
"default_password": {
587+
"impact": "The admin account is still using the default username and password, which is a critical security risk.",
588+
"summary": "ADMIN_USERNAME/ADMIN_PASSWORD are still set to admin / admin123.",
589+
"suggestion": "Change the default username or password immediately before exposing the site."
590+
},
591+
"oauth_missing": {
592+
"impact": "Only the local password account can sign in. Other users cannot log in and comment through OAuth.",
593+
"summary": "GitHub OAuth is not configured.",
594+
"suggestion": "Configure RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET if you expect other users to log in."
595+
},
596+
"ready": {
597+
"impact": "Admin sign-in is available.",
598+
"summary": "OAuth login is configured and the current password login configuration is not using the default credentials.",
599+
"suggestion": "No action required."
600+
},
601+
"details": {
602+
"github_configured": "GitHub OAuth: configured",
603+
"github_missing": "GitHub OAuth: missing",
604+
"password_configured": "Password login: configured",
605+
"password_missing": "Password login: missing",
606+
"password_default": "Password login: using default credentials"
607+
}
604608
},
605609
"storage": {
606610
"title": "Object storage",
@@ -719,5 +723,6 @@
719723
},
720724
"sort_latest": "Latest",
721725
"sort_popular": "Popular",
722-
"total_tags": "Total {{count}} tags"
723-
}
726+
"total_tags": "Total {{count}} tags",
727+
"anonymous": "Anonymous"
728+
}

client/public/locales/ja/translation.json

Lines changed: 76 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,11 @@
9999
},
100100
"submit": "コメントを投稿",
101101
"success": "コメントに成功しました",
102-
"title": "コメント"
102+
"title": "コメント",
103+
"guest_name_required": "ゲスト名は必須です",
104+
"guest_name_placeholder": "名前(必須)",
105+
"guest_email_placeholder": "メール(任意)",
106+
"guest_website_placeholder": "ウェブサイト(任意)"
103107
},
104108
"comparison": "対比",
105109
"confirm": "確認",
@@ -272,47 +276,47 @@
272276
"success": "ファビコンの更新が成功しました"
273277
}
274278
},
275-
"footer": {
276-
"desc": "サイトのフッターコンテンツを設定する(HTML)",
277-
"title": "フッター"
278-
},
279-
"webhook": {
280-
"title": "Webhook",
281-
"url": {
282-
"title": "Webhook URL",
283-
"desc": "コメント通知と友達リンク通知に使う webhook URL を設定します。ここでもテンプレート変数が使えるので、GET の query string にも利用できます。"
284-
},
285-
"method": {
286-
"title": "Webhook Method",
287-
"desc": "webhook リクエストで使う HTTP Method を設定します。GET、POST、PUT、PATCH などに対応します。"
288-
},
289-
"content_type": {
290-
"title": "Webhook Content-Type",
291-
"desc": "Webhook リクエスト送信時の Content-Type を設定します。例: application/json, text/plain"
292-
},
293-
"headers": {
294-
"title": "Webhook Headers",
295-
"desc": "JSON テンプレートで webhook ヘッダーをカスタマイズします。使える変数は本文テンプレートと同じです。",
296-
"label": "Webhook headers JSON"
297-
},
298-
"body_template": {
299-
"title": "Webhook ボディテンプレート",
300-
"desc": "送信する webhook リクエスト本文をカスタマイズします。使用可能変数: {{event}}, {{message}}, {{title}}, {{url}}, {{username}}, {{content}}, {{description}}。",
301-
"label": "Webhook ボディテンプレート"
302-
},
303-
"test": {
304-
"title": "テスト Webhook を送信",
305-
"desc": "このページ上の現在の webhook 設定でテストリクエストを送信します。未保存の値もそのまま使われます。",
306-
"button": "テスト送信",
307-
"sending": "送信中...",
308-
"placeholder": "任意のテストメッセージ。空の場合は既定のテスト payload を使います。",
309-
"success": "Webhook テストの送信に成功しました",
310-
"failed": "Webhook テストの送信に失敗しました"
311-
}
312-
},
313-
"maintenance": {
314-
"title": "メンテナンス"
315-
},
279+
"footer": {
280+
"desc": "サイトのフッターコンテンツを設定する(HTML)",
281+
"title": "フッター"
282+
},
283+
"webhook": {
284+
"title": "Webhook",
285+
"url": {
286+
"title": "Webhook URL",
287+
"desc": "コメント通知と友達リンク通知に使う webhook URL を設定します。ここでもテンプレート変数が使えるので、GET の query string にも利用できます。"
288+
},
289+
"method": {
290+
"title": "Webhook Method",
291+
"desc": "webhook リクエストで使う HTTP Method を設定します。GET、POST、PUT、PATCH などに対応します。"
292+
},
293+
"content_type": {
294+
"title": "Webhook Content-Type",
295+
"desc": "Webhook リクエスト送信時の Content-Type を設定します。例: application/json, text/plain"
296+
},
297+
"headers": {
298+
"title": "Webhook Headers",
299+
"desc": "JSON テンプレートで webhook ヘッダーをカスタマイズします。使える変数は本文テンプレートと同じです。",
300+
"label": "Webhook headers JSON"
301+
},
302+
"body_template": {
303+
"title": "Webhook ボディテンプレート",
304+
"desc": "送信する webhook リクエスト本文をカスタマイズします。使用可能変数: {{event}}, {{message}}, {{title}}, {{url}}, {{username}}, {{content}}, {{description}}。",
305+
"label": "Webhook ボディテンプレート"
306+
},
307+
"test": {
308+
"title": "テスト Webhook を送信",
309+
"desc": "このページ上の現在の webhook 設定でテストリクエストを送信します。未保存の値もそのまま使われます。",
310+
"button": "テスト送信",
311+
"sending": "送信中...",
312+
"placeholder": "任意のテストメッセージ。空の場合は既定のテスト payload を使います。",
313+
"success": "Webhook テストの送信に成功しました",
314+
"failed": "Webhook テストの送信に失敗しました"
315+
}
316+
},
317+
"maintenance": {
318+
"title": "メンテナンス"
319+
},
316320
"friend": {
317321
"apply": {
318322
"desc": "他のユーザーが友人リンクを申請できるようにする(審査が必要)",
@@ -565,33 +569,33 @@
565569
"summary": "login.enabled が無効です。",
566570
"suggestion": "このインスタンスで対話的な管理アクセスが必要なら、設定でログインを有効にしてください。"
567571
},
568-
"missing": {
569-
"impact": "ログイン入口は表示されますが、利用可能なログイン方法がありません。",
570-
"summary": "GitHub OAuth とパスワードログインのどちらも設定されていません。",
571-
"suggestion": "RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET または ADMIN_USERNAME/ADMIN_PASSWORD を設定してください。"
572-
},
573-
"default_password": {
574-
"impact": "管理者アカウントがまだ既定のユーザー名とパスワードを使っており、重大なセキュリティリスクです。",
575-
"summary": "ADMIN_USERNAME/ADMIN_PASSWORD が admin / admin123 のままです。",
576-
"suggestion": "サイトを公開する前に既定のユーザー名またはパスワードを直ちに変更してください。"
577-
},
578-
"oauth_missing": {
579-
"impact": "現在はローカルのパスワードアカウントしか使えず、他のユーザーは OAuth でログインしてコメントできません。",
580-
"summary": "GitHub OAuth が設定されていません。",
581-
"suggestion": "他のユーザーにもログインを許可するなら、RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET を設定してください。"
582-
},
583-
"ready": {
584-
"impact": "管理ログインが利用可能です。",
585-
"summary": "OAuth ログインが設定済みで、現在のパスワードログインも既定の認証情報を使っていません。",
586-
"suggestion": "対応は不要です。"
587-
},
588-
"details": {
589-
"github_configured": "GitHub OAuth: 設定済み",
590-
"github_missing": "GitHub OAuth: 未設定",
591-
"password_configured": "パスワードログイン: 設定済み",
592-
"password_missing": "パスワードログイン: 未設定",
593-
"password_default": "パスワードログイン: 既定の認証情報を使用中"
594-
}
572+
"missing": {
573+
"impact": "ログイン入口は表示されますが、利用可能なログイン方法がありません。",
574+
"summary": "GitHub OAuth とパスワードログインのどちらも設定されていません。",
575+
"suggestion": "RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET または ADMIN_USERNAME/ADMIN_PASSWORD を設定してください。"
576+
},
577+
"default_password": {
578+
"impact": "管理者アカウントがまだ既定のユーザー名とパスワードを使っており、重大なセキュリティリスクです。",
579+
"summary": "ADMIN_USERNAME/ADMIN_PASSWORD が admin / admin123 のままです。",
580+
"suggestion": "サイトを公開する前に既定のユーザー名またはパスワードを直ちに変更してください。"
581+
},
582+
"oauth_missing": {
583+
"impact": "現在はローカルのパスワードアカウントしか使えず、他のユーザーは OAuth でログインしてコメントできません。",
584+
"summary": "GitHub OAuth が設定されていません。",
585+
"suggestion": "他のユーザーにもログインを許可するなら、RIN_GITHUB_CLIENT_ID/RIN_GITHUB_CLIENT_SECRET を設定してください。"
586+
},
587+
"ready": {
588+
"impact": "管理ログインが利用可能です。",
589+
"summary": "OAuth ログインが設定済みで、現在のパスワードログインも既定の認証情報を使っていません。",
590+
"suggestion": "対応は不要です。"
591+
},
592+
"details": {
593+
"github_configured": "GitHub OAuth: 設定済み",
594+
"github_missing": "GitHub OAuth: 未設定",
595+
"password_configured": "パスワードログイン: 設定済み",
596+
"password_missing": "パスワードログイン: 未設定",
597+
"password_default": "パスワードログイン: 既定の認証情報を使用中"
598+
}
595599
},
596600
"storage": {
597601
"title": "オブジェクトストレージ",
@@ -710,5 +714,6 @@
710714
},
711715
"sort_latest": "新着",
712716
"sort_popular": "人気",
713-
"total_tags": "全 {{count}} 個のタグ"
714-
}
717+
"total_tags": "全 {{count}} 個のタグ",
718+
"anonymous": "匿名"
719+
}

0 commit comments

Comments
 (0)