feat: implement account settings dialog for managing user passwords and binding Space accounts

This commit is contained in:
Junyan Qin
2025-12-26 23:20:51 +08:00
parent 1d4c5bbdf1
commit 24c15b4479
13 changed files with 901 additions and 206 deletions
+23
View File
@@ -51,6 +51,7 @@ const enUS = {
loginWithSpace: 'Login with Space',
spaceLoginRecommended: 'Recommended: Sync models and credits from Space',
loginLocal: 'Login with local account',
loginWithPassword: 'Login with password',
spaceLoginTitle: 'Login with Space',
spaceLoginDescription:
'Scan the QR code or visit the link below to authorize',
@@ -69,6 +70,7 @@ const enUS = {
spaceLoginError: 'Login Failed',
spaceLoginNoCode: 'Missing authorization code',
backToLogin: 'Back to Login',
backToHome: 'Back to Home',
spaceAccountCannotChangePassword:
'Space accounts cannot change password here',
theme: 'Theme',
@@ -707,6 +709,7 @@ const enUS = {
initWithSpace: 'Initialize with Space',
spaceRecommended: 'Recommended: Sync models and credits from Space',
registerLocal: 'Register local account',
registerWithPassword: 'Register with email and password',
initSuccess: 'Initialization successful, please login',
initFailed: 'Initialization failed: ',
},
@@ -749,6 +752,26 @@ const enUS = {
viewUpdateGuide: 'View Update Guide',
noReleaseNotes: 'No release notes available',
},
account: {
settings: 'Account Settings',
setPassword: 'Set Password',
passwordSetSuccess: 'Password set successfully',
bindSpace: 'Bind Space Account',
bindSpaceDescription:
'Link your local account to a Space account to sync models and credits',
bindSpaceButton: 'Bind Space Account',
bindSpaceConfirmTitle: 'Confirm Binding',
bindSpaceConfirmDescription:
'You are about to bind your local account to a Space account',
bindSpaceWarning:
'After binding, your login email will be changed to the Space account email. You can still use email/password login if you have set a password.',
bindSpaceSuccess: 'Space account bound successfully',
bindSpaceFailed: 'Failed to bind Space account',
bindSpaceInvalidState:
'Invalid bind request. Please try again from account settings.',
setPasswordHint:
'After setting a password, you can login with email and password',
},
};
export default enUS;
+23
View File
@@ -52,6 +52,7 @@ const jaJP = {
loginWithSpace: 'Space でログイン',
spaceLoginRecommended: 'おすすめ:Space からモデルとクレジットを同期',
loginLocal: 'ローカルアカウントでログイン',
loginWithPassword: 'パスワードでログイン',
spaceLoginTitle: 'Space でログイン',
spaceLoginDescription:
'QRコードをスキャンするか、下のリンクにアクセスして認証してください',
@@ -71,6 +72,7 @@ const jaJP = {
spaceLoginError: 'ログインに失敗しました',
spaceLoginNoCode: '認証コードがありません',
backToLogin: 'ログインに戻る',
backToHome: 'ホームに戻る',
spaceAccountCannotChangePassword:
'Space アカウントはここでパスワードを変更できません',
theme: 'テーマ',
@@ -715,6 +717,7 @@ const jaJP = {
initWithSpace: 'Space で初期化',
spaceRecommended: 'おすすめ:Space からモデルとクレジットを同期',
registerLocal: 'ローカルアカウントを登録',
registerWithPassword: 'メールアドレスとパスワードで登録',
initSuccess: '初期化に成功しました。ログインしてください',
initFailed: '初期化に失敗しました:',
},
@@ -757,6 +760,26 @@ const jaJP = {
viewUpdateGuide: 'アップデート方法を見る',
noReleaseNotes: 'リリースノートはありません',
},
account: {
settings: 'アカウント設定',
setPassword: 'パスワードを設定',
passwordSetSuccess: 'パスワードの設定に成功しました',
bindSpace: 'Space アカウントを連携',
bindSpaceDescription:
'ローカルアカウントを Space アカウントに連携して、モデルとクレジットを同期します',
bindSpaceButton: 'Space アカウントを連携',
bindSpaceConfirmTitle: '連携を確認',
bindSpaceConfirmDescription:
'ローカルアカウントを Space アカウントに連携しようとしています',
bindSpaceWarning:
'連携後、ログインメールアドレスは Space アカウントのメールアドレスに変更されます。パスワードを設定している場合は、引き続きメールアドレスとパスワードでログインできます。',
bindSpaceSuccess: 'Space アカウントの連携に成功しました',
bindSpaceFailed: 'Space アカウントの連携に失敗しました',
bindSpaceInvalidState:
'無効な連携リクエストです。アカウント設定から再度お試しください。',
setPasswordHint:
'パスワードを設定すると、メールアドレスとパスワードでログインできます',
},
};
export default jaJP;
+19
View File
@@ -51,6 +51,7 @@ const zhHans = {
loginWithSpace: '通过 Space 登录',
spaceLoginRecommended: '推荐:从 Space 同步模型和点数',
loginLocal: '使用本地账号登录',
loginWithPassword: '通过密码登录',
spaceLoginTitle: '通过 Space 登录',
spaceLoginDescription: '扫描二维码或访问下方链接进行授权',
spaceLoginUserCode: '您的验证码',
@@ -67,6 +68,7 @@ const zhHans = {
spaceLoginError: '登录失败',
spaceLoginNoCode: '缺少授权码',
backToLogin: '返回登录',
backToHome: '返回首页',
spaceAccountCannotChangePassword: 'Space 账户无法在此修改密码',
theme: '主题',
changePassword: '修改密码',
@@ -680,6 +682,7 @@ const zhHans = {
initWithSpace: '通过 Space 初始化',
spaceRecommended: '推荐:从 Space 同步模型和点数',
registerLocal: '注册本地账号',
registerWithPassword: '通过邮箱密码组合注册',
initSuccess: '初始化成功 请登录',
initFailed: '初始化失败:',
},
@@ -720,6 +723,22 @@ const zhHans = {
viewUpdateGuide: '查看更新方式',
noReleaseNotes: '暂无更新日志',
},
account: {
settings: '账户设置',
setPassword: '设置密码',
passwordSetSuccess: '密码设置成功',
bindSpace: '绑定 Space 账户',
bindSpaceDescription: '将本地账户关联到 Space 账户,以同步模型和点数',
bindSpaceButton: '绑定 Space 账户',
bindSpaceConfirmTitle: '确认绑定',
bindSpaceConfirmDescription: '您即将把本地账户绑定到 Space 账户',
bindSpaceWarning:
'绑定后,您的登录邮箱将更改为 Space 账户的邮箱。如果您已设置密码,仍可使用邮箱密码登录。',
bindSpaceSuccess: 'Space 账户绑定成功',
bindSpaceFailed: '绑定 Space 账户失败',
bindSpaceInvalidState: '无效的绑定请求,请从账户设置重新发起',
setPasswordHint: '设置密码后,您可使用邮箱、密码组合登录',
},
};
export default zhHans;
+19
View File
@@ -51,6 +51,7 @@ const zhHant = {
loginWithSpace: '透過 Space 登入',
spaceLoginRecommended: '推薦:從 Space 同步模型和點數',
loginLocal: '使用本地帳號登入',
loginWithPassword: '透過密碼登入',
spaceLoginTitle: '透過 Space 登入',
spaceLoginDescription: '掃描二維碼或訪問下方連結進行授權',
spaceLoginUserCode: '您的驗證碼',
@@ -67,6 +68,7 @@ const zhHant = {
spaceLoginError: '登入失敗',
spaceLoginNoCode: '缺少授權碼',
backToLogin: '返回登入',
backToHome: '返回首頁',
spaceAccountCannotChangePassword: 'Space 帳戶無法在此修改密碼',
theme: '主題',
changePassword: '修改密碼',
@@ -677,6 +679,7 @@ const zhHant = {
initWithSpace: '透過 Space 初始化',
spaceRecommended: '推薦:從 Space 同步模型和點數',
registerLocal: '註冊本地帳號',
registerWithPassword: '透過電子郵件密碼組合註冊',
initSuccess: '初始化成功 請登入',
initFailed: '初始化失敗:',
},
@@ -717,6 +720,22 @@ const zhHant = {
viewUpdateGuide: '查看更新方式',
noReleaseNotes: '暫無更新日誌',
},
account: {
settings: '帳戶設定',
setPassword: '設定密碼',
passwordSetSuccess: '密碼設定成功',
bindSpace: '綁定 Space 帳戶',
bindSpaceDescription: '將本地帳戶關聯到 Space 帳戶,以同步模型和點數',
bindSpaceButton: '綁定 Space 帳戶',
bindSpaceConfirmTitle: '確認綁定',
bindSpaceConfirmDescription: '您即將把本地帳戶綁定到 Space 帳戶',
bindSpaceWarning:
'綁定後,您的登入電子郵件將更改為 Space 帳戶的電子郵件。如果您已設定密碼,仍可使用電子郵件密碼登入。',
bindSpaceSuccess: 'Space 帳戶綁定成功',
bindSpaceFailed: '綁定 Space 帳戶失敗',
bindSpaceInvalidState: '無效的綁定請求,請從帳戶設定重新發起',
setPasswordHint: '設定密碼後,您可使用電子郵件、密碼組合登入',
},
};
export default zhHant;