artalk 2.8.5 → 2.8.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/i18n/jp.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const e="ArtalkI18n";const o=(n="jp",t={placeholder:"内容を入力してください...",noComment:"コメントなし",send:"コメントを送信",save:"コメントを保存",nick:"ニックネーム",email:"Eメール",link:"ウェブサイト",emoticon:"絵文字",preview:"プレビュー",uploadImage:"画像をアップロード",uploadFail:"アップロードに失敗しました",commentFail:"コメントに失敗しました",restoredMsg:"内容が自動的に復元されました",onlyAdminCanReply:"管理者のみがコメントできます",uploadLoginMsg:"名前とメールアドレスを入力してからアップロードしてください",counter:"{count}件のコメント",sortLatest:"最新",sortOldest:"最古",sortBest:"人気",sortAuthor:"著者",openComment:"コメントを表示",closeComment:"コメントを非表示",listLoadFailMsg:"コメントリストのデータを取得できません",listRetry:"再試行するにはクリック",loadMore:"もっと読み込む",admin:"管理者",reply:"返信",voteUp:"賛成",voteDown:"反対",voteFail:"投票に失敗しました",readMore:"続きを読む",actionConfirm:"操作を確認",collapse:"折り畳む",collapsed:"折りたたまれた",collapsedMsg:"このコメントはシステムまたは管理者によって折りたたまれました",expand:"展開",approved:"承認済み",pending:"保留中",pendingMsg:"審査中、自分自身のみが表示できます。",edit:"編集",editCancel:"編集をキャンセル",delete:"削除",deleteConfirm:"削除を確認",pin:"ピン留め",unpin:"ピン留めを解除",seconds:"秒前",minutes:"分前",hours:"時間前",days:"日前",now:"たった今",adminCheck:"管理者として認証するにはパスワードを入力してください:",captchaCheck:"続行するにはキャプチャを入力してください:",confirm:"確認",cancel:"キャンセル",msgCenter:"通知センター",ctrlCenter:"コントロールセンター",emailVerified:"メールアドレスが確認されました",frontend:"フロントエンド",backend:"バックエンド",loading:"読み込み中",loadFail:"読み込みに失敗しました",editing:"編集中",editFail:"編集に失敗しました",deleting:"削除中",deleteFail:"削除に失敗しました",reqGot:"リクエストが受信されました",reqAborted:"リクエストがタイムアウトまたは予期せず中止されました",updateMsg:"Artalk {name} を更新して、より良い体験をしてください!",currentVersion:"現在のバージョン",ignore:"無視",open:"開く",openName:"{name}を開く"},a=["jp-JP"],window[e]||(window[e]={}),window[e][n]=t,a&&a.forEach((o=>{window[e][o]=t})),t);var n,t,a;module.exports=o;
1
+ "use strict";const e="ArtalkI18n";const o=(n="jp",t={placeholder:"内容を入力してください...",noComment:"コメントなし",send:"コメントを送信",signIn:"サインイン",signUp:"サインアップ",save:"コメントを保存",nick:"ニックネーム",email:"Eメール",link:"ウェブサイト",emoticon:"絵文字",preview:"プレビュー",uploadImage:"画像をアップロード",uploadFail:"アップロードに失敗しました",commentFail:"コメントに失敗しました",restoredMsg:"内容が自動的に復元されました",onlyAdminCanReply:"管理者のみがコメントできます",uploadLoginMsg:"名前とメールアドレスを入力してからアップロードしてください",counter:"{count}件のコメント",sortLatest:"最新",sortOldest:"最古",sortBest:"人気",sortAuthor:"著者",openComment:"コメントを表示",closeComment:"コメントを非表示",listLoadFailMsg:"コメントリストのデータを取得できません",listRetry:"再試行するにはクリック",loadMore:"もっと読み込む",admin:"管理者",reply:"返信",voteUp:"賛成",voteDown:"反対",voteFail:"投票に失敗しました",readMore:"続きを読む",actionConfirm:"操作を確認",collapse:"折り畳む",collapsed:"折りたたまれた",collapsedMsg:"このコメントはシステムまたは管理者によって折りたたまれました",expand:"展開",approved:"承認済み",pending:"保留中",pendingMsg:"審査中、自分自身のみが表示できます。",edit:"編集",editCancel:"編集をキャンセル",delete:"削除",deleteConfirm:"削除を確認",pin:"ピン留め",unpin:"ピン留めを解除",seconds:"秒前",minutes:"分前",hours:"時間前",days:"日前",now:"たった今",adminCheck:"管理者として認証するにはパスワードを入力してください:",captchaCheck:"続行するにはキャプチャを入力してください:",confirm:"確認",cancel:"キャンセル",msgCenter:"通知センター",ctrlCenter:"コントロールセンター",noAccountPrompt:"アカウントがありませんか?",haveAccountPrompt:"アカウントをお持ちですか?",forgetPassword:"パスワードを忘れた",resetPassword:"パスワードをリセット",verificationCode:"検証コード",verifySend:"検証",verifyResend:"再送信",waitSeconds:"{seconds}秒待つ",emailVerified:"メールアドレスが確認されました",password:"パスワード",username:"ユーザー名",nextStep:"次のステップ",skipNotVerify:"スキップ、検証しない",logoutConfirm:"ログアウトしてもよろしいですか?",accountMergeNotice:"あなたのメールには異なるIDを持つ複数のアカウントがあります。",accountMergeSelectOne:"すべてのデータを統合するアカウントを選択してください。",accountMergeConfirm:"すべてのデータは1つのアカウントに統合されます。そのIDは{id}です。",dismiss:"閉じる",merge:"統合する",frontend:"フロントエンド",backend:"バックエンド",loading:"読み込み中",loadFail:"読み込みに失敗しました",editing:"編集中",editFail:"編集に失敗しました",deleting:"削除中",deleteFail:"削除に失敗しました",reqGot:"リクエストが受信されました",reqAborted:"リクエストがタイムアウトまたは予期せず中止されました",updateMsg:"Artalk {name} を更新して、より良い体験をしてください!",currentVersion:"現在のバージョン",ignore:"無視",open:"開く",openName:"{name}を開く"},i=["jp-JP"],window[e]||(window[e]={}),window[e][n]=t,i&&i.forEach((o=>{window[e][o]=t})),t);var n,t,i;module.exports=o;
package/dist/i18n/jp.js CHANGED
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).jp=n()}(this,(function(){"use strict";const e="ArtalkI18n";var n,o,t;return n="jp",o={placeholder:"内容を入力してください...",noComment:"コメントなし",send:"コメントを送信",save:"コメントを保存",nick:"ニックネーム",email:"Eメール",link:"ウェブサイト",emoticon:"絵文字",preview:"プレビュー",uploadImage:"画像をアップロード",uploadFail:"アップロードに失敗しました",commentFail:"コメントに失敗しました",restoredMsg:"内容が自動的に復元されました",onlyAdminCanReply:"管理者のみがコメントできます",uploadLoginMsg:"名前とメールアドレスを入力してからアップロードしてください",counter:"{count}件のコメント",sortLatest:"最新",sortOldest:"最古",sortBest:"人気",sortAuthor:"著者",openComment:"コメントを表示",closeComment:"コメントを非表示",listLoadFailMsg:"コメントリストのデータを取得できません",listRetry:"再試行するにはクリック",loadMore:"もっと読み込む",admin:"管理者",reply:"返信",voteUp:"賛成",voteDown:"反対",voteFail:"投票に失敗しました",readMore:"続きを読む",actionConfirm:"操作を確認",collapse:"折り畳む",collapsed:"折りたたまれた",collapsedMsg:"このコメントはシステムまたは管理者によって折りたたまれました",expand:"展開",approved:"承認済み",pending:"保留中",pendingMsg:"審査中、自分自身のみが表示できます。",edit:"編集",editCancel:"編集をキャンセル",delete:"削除",deleteConfirm:"削除を確認",pin:"ピン留め",unpin:"ピン留めを解除",seconds:"秒前",minutes:"分前",hours:"時間前",days:"日前",now:"たった今",adminCheck:"管理者として認証するにはパスワードを入力してください:",captchaCheck:"続行するにはキャプチャを入力してください:",confirm:"確認",cancel:"キャンセル",msgCenter:"通知センター",ctrlCenter:"コントロールセンター",emailVerified:"メールアドレスが確認されました",frontend:"フロントエンド",backend:"バックエンド",loading:"読み込み中",loadFail:"読み込みに失敗しました",editing:"編集中",editFail:"編集に失敗しました",deleting:"削除中",deleteFail:"削除に失敗しました",reqGot:"リクエストが受信されました",reqAborted:"リクエストがタイムアウトまたは予期せず中止されました",updateMsg:"Artalk {name} を更新して、より良い体験をしてください!",currentVersion:"現在のバージョン",ignore:"無視",open:"開く",openName:"{name}を開く"},t=["jp-JP"],window[e]||(window[e]={}),window[e][n]=o,t&&t.forEach((n=>{window[e][n]=o})),o}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).jp=o()}(this,(function(){"use strict";const e="ArtalkI18n";var o,n,t;return o="jp",n={placeholder:"内容を入力してください...",noComment:"コメントなし",send:"コメントを送信",signIn:"サインイン",signUp:"サインアップ",save:"コメントを保存",nick:"ニックネーム",email:"Eメール",link:"ウェブサイト",emoticon:"絵文字",preview:"プレビュー",uploadImage:"画像をアップロード",uploadFail:"アップロードに失敗しました",commentFail:"コメントに失敗しました",restoredMsg:"内容が自動的に復元されました",onlyAdminCanReply:"管理者のみがコメントできます",uploadLoginMsg:"名前とメールアドレスを入力してからアップロードしてください",counter:"{count}件のコメント",sortLatest:"最新",sortOldest:"最古",sortBest:"人気",sortAuthor:"著者",openComment:"コメントを表示",closeComment:"コメントを非表示",listLoadFailMsg:"コメントリストのデータを取得できません",listRetry:"再試行するにはクリック",loadMore:"もっと読み込む",admin:"管理者",reply:"返信",voteUp:"賛成",voteDown:"反対",voteFail:"投票に失敗しました",readMore:"続きを読む",actionConfirm:"操作を確認",collapse:"折り畳む",collapsed:"折りたたまれた",collapsedMsg:"このコメントはシステムまたは管理者によって折りたたまれました",expand:"展開",approved:"承認済み",pending:"保留中",pendingMsg:"審査中、自分自身のみが表示できます。",edit:"編集",editCancel:"編集をキャンセル",delete:"削除",deleteConfirm:"削除を確認",pin:"ピン留め",unpin:"ピン留めを解除",seconds:"秒前",minutes:"分前",hours:"時間前",days:"日前",now:"たった今",adminCheck:"管理者として認証するにはパスワードを入力してください:",captchaCheck:"続行するにはキャプチャを入力してください:",confirm:"確認",cancel:"キャンセル",msgCenter:"通知センター",ctrlCenter:"コントロールセンター",noAccountPrompt:"アカウントがありませんか?",haveAccountPrompt:"アカウントをお持ちですか?",forgetPassword:"パスワードを忘れた",resetPassword:"パスワードをリセット",verificationCode:"検証コード",verifySend:"検証",verifyResend:"再送信",waitSeconds:"{seconds}秒待つ",emailVerified:"メールアドレスが確認されました",password:"パスワード",username:"ユーザー名",nextStep:"次のステップ",skipNotVerify:"スキップ、検証しない",logoutConfirm:"ログアウトしてもよろしいですか?",accountMergeNotice:"あなたのメールには異なるIDを持つ複数のアカウントがあります。",accountMergeSelectOne:"すべてのデータを統合するアカウントを選択してください。",accountMergeConfirm:"すべてのデータは1つのアカウントに統合されます。そのIDは{id}です。",dismiss:"閉じる",merge:"統合する",frontend:"フロントエンド",backend:"バックエンド",loading:"読み込み中",loadFail:"読み込みに失敗しました",editing:"編集中",editFail:"編集に失敗しました",deleting:"削除中",deleteFail:"削除に失敗しました",reqGot:"リクエストが受信されました",reqAborted:"リクエストがタイムアウトまたは予期せず中止されました",updateMsg:"Artalk {name} を更新して、より良い体験をしてください!",currentVersion:"現在のバージョン",ignore:"無視",open:"開く",openName:"{name}を開く"},t=["jp-JP"],window[e]||(window[e]={}),window[e][o]=n,t&&t.forEach((o=>{window[e][o]=n})),n}));
package/dist/i18n/jp.mjs CHANGED
@@ -16,6 +16,8 @@ const jp = defineLocaleExternal(
16
16
  placeholder: "内容を入力してください...",
17
17
  noComment: "コメントなし",
18
18
  send: "コメントを送信",
19
+ signIn: "サインイン",
20
+ signUp: "サインアップ",
19
21
  save: "コメントを保存",
20
22
  nick: "ニックネーム",
21
23
  email: "Eメール",
@@ -74,7 +76,26 @@ const jp = defineLocaleExternal(
74
76
  /* Sidebar */
75
77
  msgCenter: "通知センター",
76
78
  ctrlCenter: "コントロールセンター",
79
+ /* Auth */
80
+ noAccountPrompt: "アカウントがありませんか?",
81
+ haveAccountPrompt: "アカウントをお持ちですか?",
82
+ forgetPassword: "パスワードを忘れた",
83
+ resetPassword: "パスワードをリセット",
84
+ verificationCode: "検証コード",
85
+ verifySend: "検証",
86
+ verifyResend: "再送信",
87
+ waitSeconds: "{seconds}秒待つ",
77
88
  emailVerified: "メールアドレスが確認されました",
89
+ password: "パスワード",
90
+ username: "ユーザー名",
91
+ nextStep: "次のステップ",
92
+ skipNotVerify: "スキップ、検証しない",
93
+ logoutConfirm: "ログアウトしてもよろしいですか?",
94
+ accountMergeNotice: "あなたのメールには異なるIDを持つ複数のアカウントがあります。",
95
+ accountMergeSelectOne: "すべてのデータを統合するアカウントを選択してください。",
96
+ accountMergeConfirm: "すべてのデータは1つのアカウントに統合されます。そのIDは{id}です。",
97
+ dismiss: "閉じる",
98
+ merge: "統合する",
78
99
  /* General */
79
100
  frontend: "フロントエンド",
80
101
  backend: "バックエンド",
@@ -1 +1 @@
1
- "use strict";const e="ArtalkI18n";const o=(n="zh-TW",t={placeholder:"輸入內容...",noComment:"「此時無聲勝有聲」",send:"發送",save:"保存",nick:"暱稱",email:"電子郵件",link:"網址",emoticon:"表情",preview:"預覽",uploadImage:"上傳圖片",uploadFail:"上傳失敗",commentFail:"評論失敗",restoredMsg:"內容已自動恢復",onlyAdminCanReply:"僅管理員可評論",uploadLoginMsg:"填入你的名字郵箱才能上傳哦",counter:"{count} 條評論",sortLatest:"最新",sortOldest:"最舊",sortBest:"最熱",sortAuthor:"作者",openComment:"打開評論",closeComment:"關閉評論",listLoadFailMsg:"無法獲取評論列表數據",listRetry:"點擊重新獲取",loadMore:"加載更多",admin:"管理員",reply:"回覆",voteUp:"贊同",voteDown:"反對",voteFail:"投票失敗",readMore:"閱讀更多",actionConfirm:"確認操作",collapse:"折疊",collapsed:"已折疊",collapsedMsg:"該評論已被系統或管理員折疊",expand:"展開",approved:"已審",pending:"待審",pendingMsg:"審核中,僅本人可見。",edit:"編輯",editCancel:"取消編輯",delete:"刪除",deleteConfirm:"確認刪除",pin:"置頂",unpin:"取消置頂",seconds:"秒前",minutes:"分鐘前",hours:"小時前",days:"天前",now:"剛剛",adminCheck:"輸入密碼來驗證管理員身份:",captchaCheck:"輸入驗證碼繼續:",confirm:"確認",cancel:"取消",msgCenter:"通知中心",ctrlCenter:"控制中心",emailVerified:"郵箱已驗證",frontend:"前端",backend:"後端",loading:"加載中",loadFail:"加載失敗",editing:"修改中",editFail:"修改失敗",deleting:"刪除中",deleteFail:"刪除失敗",reqGot:"請求已接收",reqAborted:"請求超時或意外終止",updateMsg:"請更新 Artalk {name} 以獲得更好的體驗!",currentVersion:"當前版本",ignore:"忽略",open:"打開",openName:"打開{name}"},window[e]||(window[e]={}),window[e][n]=t,a&&a.forEach((o=>{window[e][o]=t})),t);var n,t,a;module.exports=o;
1
+ "use strict";const e="ArtalkI18n";const o=(n="zh-TW",t={placeholder:"輸入內容...",noComment:"「此時無聲勝有聲」",send:"發送",signIn:"登入",signUp:"註冊",save:"保存",nick:"暱稱",email:"電子郵件",link:"網址",emoticon:"表情",preview:"預覽",uploadImage:"上傳圖片",uploadFail:"上傳失敗",commentFail:"評論失敗",restoredMsg:"內容已自動恢復",onlyAdminCanReply:"僅管理員可評論",uploadLoginMsg:"填入你的名字郵箱才能上傳哦",counter:"{count} 條評論",sortLatest:"最新",sortOldest:"最舊",sortBest:"最熱",sortAuthor:"作者",openComment:"打開評論",closeComment:"關閉評論",listLoadFailMsg:"無法獲取評論列表數據",listRetry:"點擊重新獲取",loadMore:"加載更多",admin:"管理員",reply:"回覆",voteUp:"贊同",voteDown:"反對",voteFail:"投票失敗",readMore:"閱讀更多",actionConfirm:"確認操作",collapse:"折疊",collapsed:"已折疊",collapsedMsg:"該評論已被系統或管理員折疊",expand:"展開",approved:"已審",pending:"待審",pendingMsg:"審核中,僅本人可見。",edit:"編輯",editCancel:"取消編輯",delete:"刪除",deleteConfirm:"確認刪除",pin:"置頂",unpin:"取消置頂",seconds:"秒前",minutes:"分鐘前",hours:"小時前",days:"天前",now:"剛剛",adminCheck:"輸入密碼來驗證管理員身份:",captchaCheck:"輸入驗證碼繼續:",confirm:"確認",cancel:"取消",msgCenter:"通知中心",ctrlCenter:"控制中心",noAccountPrompt:"沒有帳號?",haveAccountPrompt:"已有帳號?",forgetPassword:"忘記密碼",resetPassword:"重置密碼",verificationCode:"驗證碼",verifySend:"發送驗證碼",verifyResend:"重新發送",waitSeconds:"等待 {seconds}秒",emailVerified:"郵箱已驗證",password:"密碼",username:"用戶名",nextStep:"下一步",skipNotVerify:"跳過,不驗證",logoutConfirm:"確定要登出嗎?",accountMergeNotice:"您的電子郵件下有多個不同 ID 的帳戶。",accountMergeSelectOne:"請選擇要將所有數據合併到其中的一個。",accountMergeConfirm:"所有數據將合併到 ID 為 {id} 的帳戶中。",dismiss:"忽略",merge:"合併",frontend:"前端",backend:"後端",loading:"加載中",loadFail:"加載失敗",editing:"修改中",editFail:"修改失敗",deleting:"刪除中",deleteFail:"刪除失敗",reqGot:"請求已接收",reqAborted:"請求超時或意外終止",updateMsg:"請更新 Artalk {name} 以獲得更好的體驗!",currentVersion:"當前版本",ignore:"忽略",open:"打開",openName:"打開{name}"},window[e]||(window[e]={}),window[e][n]=t,t);var n,t;module.exports=o;
@@ -1 +1 @@
1
- !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self)["zh-TW"]=n()}(this,(function(){"use strict";const e="ArtalkI18n";var n,o,t;return n="zh-TW",o={placeholder:"輸入內容...",noComment:"「此時無聲勝有聲」",send:"發送",save:"保存",nick:"暱稱",email:"電子郵件",link:"網址",emoticon:"表情",preview:"預覽",uploadImage:"上傳圖片",uploadFail:"上傳失敗",commentFail:"評論失敗",restoredMsg:"內容已自動恢復",onlyAdminCanReply:"僅管理員可評論",uploadLoginMsg:"填入你的名字郵箱才能上傳哦",counter:"{count} 條評論",sortLatest:"最新",sortOldest:"最舊",sortBest:"最熱",sortAuthor:"作者",openComment:"打開評論",closeComment:"關閉評論",listLoadFailMsg:"無法獲取評論列表數據",listRetry:"點擊重新獲取",loadMore:"加載更多",admin:"管理員",reply:"回覆",voteUp:"贊同",voteDown:"反對",voteFail:"投票失敗",readMore:"閱讀更多",actionConfirm:"確認操作",collapse:"折疊",collapsed:"已折疊",collapsedMsg:"該評論已被系統或管理員折疊",expand:"展開",approved:"已審",pending:"待審",pendingMsg:"審核中,僅本人可見。",edit:"編輯",editCancel:"取消編輯",delete:"刪除",deleteConfirm:"確認刪除",pin:"置頂",unpin:"取消置頂",seconds:"秒前",minutes:"分鐘前",hours:"小時前",days:"天前",now:"剛剛",adminCheck:"輸入密碼來驗證管理員身份:",captchaCheck:"輸入驗證碼繼續:",confirm:"確認",cancel:"取消",msgCenter:"通知中心",ctrlCenter:"控制中心",emailVerified:"郵箱已驗證",frontend:"前端",backend:"後端",loading:"加載中",loadFail:"加載失敗",editing:"修改中",editFail:"修改失敗",deleting:"刪除中",deleteFail:"刪除失敗",reqGot:"請求已接收",reqAborted:"請求超時或意外終止",updateMsg:"請更新 Artalk {name} 以獲得更好的體驗!",currentVersion:"當前版本",ignore:"忽略",open:"打開",openName:"打開{name}"},window[e]||(window[e]={}),window[e][n]=o,t&&t.forEach((n=>{window[e][n]=o})),o}));
1
+ !function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self)["zh-TW"]=o()}(this,(function(){"use strict";const e="ArtalkI18n";var o,n;return o="zh-TW",n={placeholder:"輸入內容...",noComment:"「此時無聲勝有聲」",send:"發送",signIn:"登入",signUp:"註冊",save:"保存",nick:"暱稱",email:"電子郵件",link:"網址",emoticon:"表情",preview:"預覽",uploadImage:"上傳圖片",uploadFail:"上傳失敗",commentFail:"評論失敗",restoredMsg:"內容已自動恢復",onlyAdminCanReply:"僅管理員可評論",uploadLoginMsg:"填入你的名字郵箱才能上傳哦",counter:"{count} 條評論",sortLatest:"最新",sortOldest:"最舊",sortBest:"最熱",sortAuthor:"作者",openComment:"打開評論",closeComment:"關閉評論",listLoadFailMsg:"無法獲取評論列表數據",listRetry:"點擊重新獲取",loadMore:"加載更多",admin:"管理員",reply:"回覆",voteUp:"贊同",voteDown:"反對",voteFail:"投票失敗",readMore:"閱讀更多",actionConfirm:"確認操作",collapse:"折疊",collapsed:"已折疊",collapsedMsg:"該評論已被系統或管理員折疊",expand:"展開",approved:"已審",pending:"待審",pendingMsg:"審核中,僅本人可見。",edit:"編輯",editCancel:"取消編輯",delete:"刪除",deleteConfirm:"確認刪除",pin:"置頂",unpin:"取消置頂",seconds:"秒前",minutes:"分鐘前",hours:"小時前",days:"天前",now:"剛剛",adminCheck:"輸入密碼來驗證管理員身份:",captchaCheck:"輸入驗證碼繼續:",confirm:"確認",cancel:"取消",msgCenter:"通知中心",ctrlCenter:"控制中心",noAccountPrompt:"沒有帳號?",haveAccountPrompt:"已有帳號?",forgetPassword:"忘記密碼",resetPassword:"重置密碼",verificationCode:"驗證碼",verifySend:"發送驗證碼",verifyResend:"重新發送",waitSeconds:"等待 {seconds}秒",emailVerified:"郵箱已驗證",password:"密碼",username:"用戶名",nextStep:"下一步",skipNotVerify:"跳過,不驗證",logoutConfirm:"確定要登出嗎?",accountMergeNotice:"您的電子郵件下有多個不同 ID 的帳戶。",accountMergeSelectOne:"請選擇要將所有數據合併到其中的一個。",accountMergeConfirm:"所有數據將合併到 ID 為 {id} 的帳戶中。",dismiss:"忽略",merge:"合併",frontend:"前端",backend:"後端",loading:"加載中",loadFail:"加載失敗",editing:"修改中",editFail:"修改失敗",deleting:"刪除中",deleteFail:"刪除失敗",reqGot:"請求已接收",reqAborted:"請求超時或意外終止",updateMsg:"請更新 Artalk {name} 以獲得更好的體驗!",currentVersion:"當前版本",ignore:"忽略",open:"打開",openName:"打開{name}"},window[e]||(window[e]={}),window[e][o]=n,n}));
@@ -3,10 +3,6 @@ function defineLocaleExternal(lang, locale, aliases) {
3
3
  if (!window[GLOBAL_LOCALES_KEY])
4
4
  window[GLOBAL_LOCALES_KEY] = {};
5
5
  window[GLOBAL_LOCALES_KEY][lang] = locale;
6
- if (aliases)
7
- aliases.forEach((l) => {
8
- window[GLOBAL_LOCALES_KEY][l] = locale;
9
- });
10
6
  return locale;
11
7
  }
12
8
  const zhTW = defineLocaleExternal("zh-TW", {
@@ -14,6 +10,8 @@ const zhTW = defineLocaleExternal("zh-TW", {
14
10
  placeholder: "輸入內容...",
15
11
  noComment: "「此時無聲勝有聲」",
16
12
  send: "發送",
13
+ signIn: "登入",
14
+ signUp: "註冊",
17
15
  save: "保存",
18
16
  nick: "暱稱",
19
17
  email: "電子郵件",
@@ -72,7 +70,26 @@ const zhTW = defineLocaleExternal("zh-TW", {
72
70
  /* Sidebar */
73
71
  msgCenter: "通知中心",
74
72
  ctrlCenter: "控制中心",
73
+ /* Auth */
74
+ noAccountPrompt: "沒有帳號?",
75
+ haveAccountPrompt: "已有帳號?",
76
+ forgetPassword: "忘記密碼",
77
+ resetPassword: "重置密碼",
78
+ verificationCode: "驗證碼",
79
+ verifySend: "發送驗證碼",
80
+ verifyResend: "重新發送",
81
+ waitSeconds: "等待 {seconds}秒",
75
82
  emailVerified: "郵箱已驗證",
83
+ password: "密碼",
84
+ username: "用戶名",
85
+ nextStep: "下一步",
86
+ skipNotVerify: "跳過,不驗證",
87
+ logoutConfirm: "確定要登出嗎?",
88
+ accountMergeNotice: "您的電子郵件下有多個不同 ID 的帳戶。",
89
+ accountMergeSelectOne: "請選擇要將所有數據合併到其中的一個。",
90
+ accountMergeConfirm: "所有數據將合併到 ID 為 {id} 的帳戶中。",
91
+ dismiss: "忽略",
92
+ merge: "合併",
76
93
  /* General */
77
94
  frontend: "前端",
78
95
  backend: "後端",
package/dist/main.d.cts CHANGED
@@ -1,5 +1,3 @@
1
- import { marked } from 'marked';
2
-
3
1
  /**
4
2
  * 通用操作按钮
5
3
  */
@@ -8,7 +6,7 @@ declare class ActionBtn {
8
6
  $el: HTMLElement;
9
7
  isLoading: boolean;
10
8
  msgRecTimer?: number;
11
- msgRecTimerFunc?: Function;
9
+ msgRecTimerFunc?: () => void;
12
10
  get isMessaging(): boolean;
13
11
  isConfirming: boolean;
14
12
  confirmRecTimer?: number;
@@ -19,7 +17,7 @@ declare class ActionBtn {
19
17
  /** 获取按钮文字(动态/静态) */
20
18
  private getText;
21
19
  /** 设置点击事件 */
22
- setClick(func: Function): void;
20
+ setClick(func: () => void): void;
23
21
  /** 文字刷新(动态/静态) */
24
22
  updateText(text?: (() => string) | string): void;
25
23
  /** 设置加载状态 */
@@ -31,7 +29,7 @@ declare class ActionBtn {
31
29
  /** 成功消息 */
32
30
  setSuccess(text: string): void;
33
31
  /** 设置消息 */
34
- setMsg(text: string, className?: string, duringTime?: number, after?: Function): void;
32
+ setMsg(text: string, className?: string, duringTime?: number, after?: () => void): void;
35
33
  /** 设置消息复原操作定时器 */
36
34
  private setMsgRecTimer;
37
35
  /** 立刻触发器复原定时器 */
@@ -75,6 +73,115 @@ declare class Api extends Api_2<void> {
75
73
  * Artalk is a modern comment system based on Golang.
76
74
  */
77
75
  declare class Api_2<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> {
76
+ auth: {
77
+ /**
78
+ * @description Login by email with verify code (Need send email verify code first) or password
79
+ *
80
+ * @tags Auth
81
+ * @name LoginByEmail
82
+ * @summary Login by email
83
+ * @request POST:/auth/email/login
84
+ * @response `200` `HandlerResponseUserLogin` OK
85
+ * @response `400` `(HandlerMap & {
86
+ msg?: string,
87
+
88
+ })` Bad Request
89
+ * @response `500` `(HandlerMap & {
90
+ msg?: string,
91
+
92
+ })` Internal Server Error
93
+ */
94
+ loginByEmail: (data: HandlerRequestAuthEmailLogin, params?: RequestParams) => Promise<HttpResponse<HandlerResponseUserLogin, HandlerMap & {
95
+ msg?: string | undefined;
96
+ }>>;
97
+ /**
98
+ * @description Register by email and verify code (if user exists, will update user, like forget password. Need send email verify code first)
99
+ *
100
+ * @tags Auth
101
+ * @name RegisterByEmail
102
+ * @summary Register by email
103
+ * @request POST:/auth/email/register
104
+ * @response `200` `HandlerResponseUserLogin` OK
105
+ * @response `400` `(HandlerMap & {
106
+ msg?: string,
107
+
108
+ })` Bad Request
109
+ * @response `500` `(HandlerMap & {
110
+ msg?: string,
111
+
112
+ })` Internal Server Error
113
+ */
114
+ registerByEmail: (data: HandlerRequestAuthEmailRegister, params?: RequestParams) => Promise<HttpResponse<HandlerResponseUserLogin, HandlerMap & {
115
+ msg?: string | undefined;
116
+ }>>;
117
+ /**
118
+ * @description Send email including verify code to user
119
+ *
120
+ * @tags Auth
121
+ * @name SendVerifyEmail
122
+ * @summary Send verify email
123
+ * @request POST:/auth/email/send
124
+ * @response `200` `(HandlerMap & {
125
+ msg?: string,
126
+
127
+ })` OK
128
+ * @response `400` `(HandlerMap & {
129
+ msg?: string,
130
+
131
+ })` Bad Request
132
+ * @response `500` `(HandlerMap & {
133
+ msg?: string,
134
+
135
+ })` Internal Server Error
136
+ */
137
+ sendVerifyEmail: (data: HandlerRequestAuthEmailSend, params?: RequestParams) => Promise<HttpResponse<HandlerMap & {
138
+ msg?: string | undefined;
139
+ }, HandlerMap & {
140
+ msg?: string | undefined;
141
+ }>>;
142
+ /**
143
+ * @description Get all users with same email, if there are more than one user with same email, need merge
144
+ *
145
+ * @tags Auth
146
+ * @name CheckDataMerge
147
+ * @summary Check data merge
148
+ * @request GET:/auth/merge
149
+ * @secure
150
+ * @response `200` `HandlerResponseAuthDataMergeCheck` OK
151
+ * @response `400` `(HandlerMap & {
152
+ msg?: string,
153
+
154
+ })` Bad Request
155
+ * @response `500` `(HandlerMap & {
156
+ msg?: string,
157
+
158
+ })` Internal Server Error
159
+ */
160
+ checkDataMerge: (params?: RequestParams) => Promise<HttpResponse<HandlerResponseAuthDataMergeCheck, HandlerMap & {
161
+ msg?: string | undefined;
162
+ }>>;
163
+ /**
164
+ * @description This function is to solve the problem of multiple users with the same email address, should be called after user login and then check, and perform data merge.
165
+ *
166
+ * @tags Auth
167
+ * @name ApplyDataMerge
168
+ * @summary Apply data merge
169
+ * @request POST:/auth/merge
170
+ * @secure
171
+ * @response `200` `HandlerResponseAuthDataMergeApply` OK
172
+ * @response `400` `(HandlerMap & {
173
+ msg?: string,
174
+
175
+ })` Bad Request
176
+ * @response `500` `(HandlerMap & {
177
+ msg?: string,
178
+
179
+ })` Internal Server Error
180
+ */
181
+ applyDataMerge: (data: HandlerRequestAuthDataMergeApply, params?: RequestParams) => Promise<HttpResponse<HandlerResponseAuthDataMergeApply, HandlerMap & {
182
+ msg?: string | undefined;
183
+ }>>;
184
+ };
78
185
  cache: {
79
186
  /**
80
187
  * @description Flush all cache on the server
@@ -323,6 +430,22 @@ declare class Api_2<SecurityDataType extends unknown> extends HttpClient<Securit
323
430
  * @response `200` `CommonConfData` OK
324
431
  */
325
432
  conf: (params?: RequestParams) => Promise<HttpResponse<CommonConfData, any>>;
433
+ /**
434
+ * @description Get social login providers
435
+ *
436
+ * @tags System
437
+ * @name GetSocialLoginProviders
438
+ * @summary Get Social Login Providers
439
+ * @request GET:/conf/auth/providers
440
+ * @response `200` `HandlerResponseConfAuthProviders` OK
441
+ * @response `404` `(HandlerMap & {
442
+ msg?: string,
443
+
444
+ })` Not Found
445
+ */
446
+ getSocialLoginProviders: (params?: RequestParams) => Promise<HttpResponse<HandlerResponseConfAuthProviders, HandlerMap & {
447
+ msg?: string | undefined;
448
+ }>>;
326
449
  /**
327
450
  * @description Get Domain Info
328
451
  *
@@ -1078,8 +1201,8 @@ declare interface ApiHandlerPayload {
1078
1201
  img_data?: string;
1079
1202
  iframe?: string;
1080
1203
  };
1081
- need_login: {};
1082
- need_auth_login: {};
1204
+ need_login: object;
1205
+ need_auth_login: object;
1083
1206
  }
1084
1207
 
1085
1208
  declare interface ApiHandlers {
@@ -1207,6 +1330,8 @@ export declare interface ArtalkConfig {
1207
1330
  countEl: string;
1208
1331
  /** PV 数绑定元素 Selector */
1209
1332
  pvEl: string;
1333
+ /** 统计组件 PageKey 属性名 */
1334
+ statPageKeyAttr: string;
1210
1335
  /** 夜间模式 */
1211
1336
  darkMode: boolean | 'auto';
1212
1337
  /** 请求超时(单位:秒) */
@@ -1225,6 +1350,8 @@ export declare interface ArtalkConfig {
1225
1350
  imgUpload: boolean;
1226
1351
  /** 图片上传器 */
1227
1352
  imgUploader?: (file: File) => Promise<string>;
1353
+ /** Image lazy load */
1354
+ imgLazyLoad?: 'native' | 'data-src';
1228
1355
  /** 版本检测 */
1229
1356
  versionCheck: boolean;
1230
1357
  /** 引用后端配置 */
@@ -1237,6 +1364,8 @@ export declare interface ArtalkConfig {
1237
1364
  pluginURLs?: string[];
1238
1365
  /** Replacer for marked */
1239
1366
  markedReplacers?: ((raw: string) => string)[];
1367
+ /** Marked options */
1368
+ markedOptions?: any;
1240
1369
  /** 列表请求参数修改器 */
1241
1370
  listFetchParamsModifier?: (params: any) => void;
1242
1371
  remoteConfModifier?: (conf: Partial<ArtalkConfig>) => void;
@@ -1282,6 +1411,13 @@ declare namespace ArtalkType {
1282
1411
  }
1283
1412
  export { ArtalkType }
1284
1413
 
1414
+ declare interface AuthAuthProviderInfo {
1415
+ icon: string;
1416
+ label: string;
1417
+ name: string;
1418
+ path?: string;
1419
+ }
1420
+
1285
1421
  declare type CancelToken = Symbol | string | number;
1286
1422
 
1287
1423
  declare interface Checker<T = any> {
@@ -1483,7 +1619,7 @@ declare type CommentNode_2 = {
1483
1619
 
1484
1620
  declare interface CommentOptions {
1485
1621
  onAfterRender?: () => void;
1486
- onDelete?: Function;
1622
+ onDelete?: (c: CommentNode) => void;
1487
1623
  /** The comment being replied to (linked comment) */
1488
1624
  replyTo?: CommentData;
1489
1625
  flatMode: boolean;
@@ -1548,7 +1684,7 @@ export declare interface ContextApi extends EventManagerFuncs<EventPayloadMap> {
1548
1684
  /** 配置对象 */
1549
1685
  conf: ArtalkConfig;
1550
1686
  /** marked 依赖对象 */
1551
- getMarked(): TMarked | undefined;
1687
+ getMarked(): any | undefined;
1552
1688
  /** 获取 API 以供 HTTP 请求 */
1553
1689
  getApi(): Api;
1554
1690
  /** Get API handlers */
@@ -1805,6 +1941,8 @@ declare const en: {
1805
1941
  placeholder: string;
1806
1942
  noComment: string;
1807
1943
  send: string;
1944
+ signIn: string;
1945
+ signUp: string;
1808
1946
  save: string;
1809
1947
  nick: string;
1810
1948
  email: string;
@@ -1858,7 +1996,25 @@ declare const en: {
1858
1996
  cancel: string;
1859
1997
  msgCenter: string;
1860
1998
  ctrlCenter: string;
1999
+ noAccountPrompt: string;
2000
+ haveAccountPrompt: string;
2001
+ forgetPassword: string;
2002
+ resetPassword: string;
2003
+ verificationCode: string;
2004
+ verifySend: string;
2005
+ verifyResend: string;
2006
+ waitSeconds: string;
1861
2007
  emailVerified: string;
2008
+ password: string;
2009
+ username: string;
2010
+ nextStep: string;
2011
+ skipNotVerify: string;
2012
+ logoutConfirm: string;
2013
+ accountMergeNotice: string;
2014
+ accountMergeSelectOne: string;
2015
+ accountMergeConfirm: string;
2016
+ dismiss: string;
2017
+ merge: string;
1862
2018
  frontend: string;
1863
2019
  backend: string;
1864
2020
  loading: string;
@@ -1914,6 +2070,7 @@ declare interface EntityCookedNotify {
1914
2070
 
1915
2071
  declare interface EntityCookedPage {
1916
2072
  admin_only: boolean;
2073
+ date: string;
1917
2074
  id: number;
1918
2075
  key: string;
1919
2076
  pv: number;
@@ -2154,7 +2311,7 @@ declare interface HandlerParamsSiteUpdate {
2154
2311
  }
2155
2312
 
2156
2313
  declare interface HandlerParamsTransferImport {
2157
- /** Automatically answer yes for all questions. */
2314
+ /** Automatically answer yes for all questions */
2158
2315
  assumeyes?: boolean;
2159
2316
  /** The JSON data */
2160
2317
  json_data?: string;
@@ -2164,6 +2321,8 @@ declare interface HandlerParamsTransferImport {
2164
2321
  target_site_name?: string;
2165
2322
  /** The target site url */
2166
2323
  target_site_url?: string;
2324
+ /** Keep domain */
2325
+ url_keep_domain?: boolean;
2167
2326
  /** Enable URL resolver */
2168
2327
  url_resolver?: boolean;
2169
2328
  }
@@ -2222,11 +2381,47 @@ declare interface HandlerParamsVote {
2222
2381
  name?: string;
2223
2382
  }
2224
2383
 
2384
+ declare interface HandlerRequestAuthDataMergeApply {
2385
+ user_name: string;
2386
+ }
2387
+
2388
+ declare interface HandlerRequestAuthEmailLogin {
2389
+ code?: string;
2390
+ email: string;
2391
+ password?: string;
2392
+ }
2393
+
2394
+ declare interface HandlerRequestAuthEmailRegister {
2395
+ code: string;
2396
+ email: string;
2397
+ link?: string;
2398
+ name?: string;
2399
+ password: string;
2400
+ }
2401
+
2402
+ declare interface HandlerRequestAuthEmailSend {
2403
+ email: string;
2404
+ }
2405
+
2225
2406
  declare interface HandlerResponseAdminUserList {
2226
2407
  count: number;
2227
2408
  users: EntityCookedUserForAdmin[];
2228
2409
  }
2229
2410
 
2411
+ declare interface HandlerResponseAuthDataMergeApply {
2412
+ deleted_user_count: number;
2413
+ update_comments_count: number;
2414
+ update_notifies_count: number;
2415
+ update_votes_count: number;
2416
+ /** Empty if login user is target user no need to re-login */
2417
+ user_token: string;
2418
+ }
2419
+
2420
+ declare interface HandlerResponseAuthDataMergeCheck {
2421
+ need_merge: boolean;
2422
+ user_names: string[];
2423
+ }
2424
+
2230
2425
  declare interface HandlerResponseCaptchaGet {
2231
2426
  img_data: string;
2232
2427
  }
@@ -2303,6 +2498,11 @@ declare interface HandlerResponseCommentUpdate {
2303
2498
  vote_up: number;
2304
2499
  }
2305
2500
 
2501
+ declare interface HandlerResponseConfAuthProviders {
2502
+ anonymous: boolean;
2503
+ providers: AuthAuthProviderInfo[];
2504
+ }
2505
+
2306
2506
  declare interface HandlerResponseConfDomain {
2307
2507
  /** Is the domain trusted */
2308
2508
  is_trusted: boolean;
@@ -2317,6 +2517,7 @@ declare interface HandlerResponseNotifyList {
2317
2517
 
2318
2518
  declare interface HandlerResponsePageFetch {
2319
2519
  admin_only: boolean;
2520
+ date: string;
2320
2521
  id: number;
2321
2522
  key: string;
2322
2523
  pv: number;
@@ -2349,6 +2550,7 @@ declare interface HandlerResponsePagePV {
2349
2550
 
2350
2551
  declare interface HandlerResponsePageUpdate {
2351
2552
  admin_only: boolean;
2553
+ date: string;
2352
2554
  id: number;
2353
2555
  key: string;
2354
2556
  pv: number;
@@ -2808,6 +3010,7 @@ declare class SidebarLayer extends Component {
2808
3010
  private authCheck;
2809
3011
  private initLayer;
2810
3012
  private createIframe;
3013
+ private getDarkMode;
2811
3014
  private iframeLoad;
2812
3015
  }
2813
3016
 
@@ -2838,8 +3041,6 @@ declare type TKeysOnlyReturn<T extends TObjectWithFuncs, V> = {
2838
3041
  [K in keyof T]: ReturnType<T[K]> extends V ? K : never;
2839
3042
  }[keyof T];
2840
3043
 
2841
- declare type TMarked = typeof marked;
2842
-
2843
3044
  declare type TObjectWithFuncs = {
2844
3045
  [k: string]: (...args: any) => any;
2845
3046
  };