From 26b8bc3d133f50d82bd10eb908d5be7fbf37721a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 7 Aug 2025 07:45:37 +0000 Subject: [PATCH 1/5] Add Chinese (zh_CN) localization for Connect Wallet UI Co-authored-by: yashjoisar --- .../ConnectWallet/locale/getConnectLocale.ts | 3 + .../react/web/ui/ConnectWallet/locale/zh.ts | 121 ++++++++++++++++++ packages/thirdweb/src/react/web/ui/types.ts | 3 +- 3 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts diff --git a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts index 8c6f2802104..b0eb9df8dd6 100644 --- a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts +++ b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/getConnectLocale.ts @@ -30,6 +30,9 @@ export async function getConnectLocale(localeId: LocaleId) { case "pt_BR": { return (await import("./br.js")).default; } + case "zh_CN": { + return (await import("./zh.js")).default; + } default: { return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts new file mode 100644 index 00000000000..e725d462faf --- /dev/null +++ b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts @@ -0,0 +1,121 @@ +import type { ConnectLocale } from "./types.js"; + +const connectLocaleZh: ConnectLocale = { + agreement: { + and: "和", + prefix: "连接即表示您同意", + privacyPolicy: "隐私政策", + termsOfService: "服务条款", + }, + backupWallet: "备份钱包", + buy: "购买", + confirmInWallet: "在钱包中确认", + connectAWallet: "连接钱包", + connectedToSmartWallet: "智能账户", + connecting: "连接中", + continueAsGuest: "以访客身份继续", + copyAddress: "复制地址", + currentNetwork: "当前网络", + defaultButtonTitle: "连接", + defaultModalTitle: "登录", + disconnectWallet: "断开钱包连接", + getStarted: "开始使用", + goBackButton: "返回", + guest: "访客", + guestWalletWarning: + "这是一个临时访客钱包。如果您不想失去访问权限,请备份钱包", + id: "zh_CN", + installed: "已安装", + manageWallet: { + connectAnApp: "连接应用", + exportPrivateKey: "导出私钥", + linkedProfiles: "已关联配置文件", + linkProfile: "关联配置文件", + title: "管理钱包", + }, + networkSelector: { + addCustomNetwork: "添加自定义网络", + allNetworks: "全部", + categoryLabel: { + others: "所有网络", + popular: "热门", + recentlyUsed: "最近使用", + }, + failedToSwitch: "网络切换失败", + inputPlaceholder: "搜索网络或链 ID", + loading: "加载中", + mainnets: "主网", + testnets: "测试网", + title: "选择网络", + }, + newToWallets: "刚接触钱包?", + or: "或", + passkeys: { + linkPasskey: "关联通行密钥", + title: "通行密钥", + }, + payTransactions: "法币交易", + personalWallet: "个人钱包", + receive: "接收", + receiveFundsScreen: { + instruction: "复制地址以向此钱包发送资金", + title: "接收资金", + }, + recommended: "推荐", + requestTestnetFunds: "申请测试网资金", + send: "发送", + sendFundsScreen: { + amount: "金额", + insufficientFunds: "余额不足", + invalidAddress: "地址无效", + noTokensFound: "未找到代币", + searchToken: "搜索或粘贴代币地址", + selectTokenTitle: "选择代币", + sending: "发送中", + sendTo: "发送到", + submitButton: "发送", + successMessage: "交易成功", + title: "发送资金", + token: "代币", + transactionFailed: "交易失败", + transactionRejected: "交易被拒绝", + }, + signatureScreen: { + instructionScreen: { + disconnectWallet: "断开钱包连接", + instruction: "请在您的钱包中签署消息请求以继续", + signInButton: "登录", + title: "登录", + }, + signingScreen: { + approveTransactionInSafe: "在 Safe 中批准交易", + failedToSignIn: "登录失败", + inProgress: "等待确认", + prompt: "在您的钱包中签署签名请求", + promptForSafe: "在您的钱包中签署签名请求并在 Safe 中批准交易", + title: "登录中", + tryAgain: "重试", + }, + }, + signIn: "登录", + smartWallet: "智能钱包", + switchAccount: "切换账户", + switchingNetwork: "网络切换中", + switchNetwork: "切换网络", + switchTo: "切换到", + transactions: "交易", + viewAllTransactions: "查看所有交易", + viewFunds: { + title: "查看资产", + viewAssets: "查看资产", + viewNFTs: "查看 NFT", + viewTokens: "查看代币", + }, + walletTransactions: "钱包交易", + welcomeScreen: { + defaultSubtitle: "连接钱包以开始使用", + defaultTitle: "您通往去中心化世界的门户", + }, +}; + +export default connectLocaleZh; \ No newline at end of file diff --git a/packages/thirdweb/src/react/web/ui/types.ts b/packages/thirdweb/src/react/web/ui/types.ts index 99ef9963fbb..81aa2076c2a 100644 --- a/packages/thirdweb/src/react/web/ui/types.ts +++ b/packages/thirdweb/src/react/web/ui/types.ts @@ -9,4 +9,5 @@ export type LocaleId = | "de_DE" | "fr_FR" | "ru_RU" - | "pt_BR"; + | "pt_BR" + | "zh_CN"; From 3d82a3599bd02c8c8361e02a9c095cc7a73f0a8d Mon Sep 17 00:00:00 2001 From: Yash <67926590+Yash094@users.noreply.github.com> Date: Thu, 7 Aug 2025 15:32:43 +0530 Subject: [PATCH 2/5] changeset and fix --- .changeset/ripe-wombats-warn.md | 5 +++++ .../thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts | 8 ++++---- 2 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 .changeset/ripe-wombats-warn.md diff --git a/.changeset/ripe-wombats-warn.md b/.changeset/ripe-wombats-warn.md new file mode 100644 index 00000000000..ecbc181d84e --- /dev/null +++ b/.changeset/ripe-wombats-warn.md @@ -0,0 +1,5 @@ +--- +"thirdweb": patch +--- + +Add chinese locale support diff --git a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts index e725d462faf..064daf9932e 100644 --- a/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts +++ b/packages/thirdweb/src/react/web/ui/ConnectWallet/locale/zh.ts @@ -11,7 +11,7 @@ const connectLocaleZh: ConnectLocale = { buy: "购买", confirmInWallet: "在钱包中确认", connectAWallet: "连接钱包", - connectedToSmartWallet: "智能账户", + connectedToSmartWallet: "智能钱包", connecting: "连接中", continueAsGuest: "以访客身份继续", copyAddress: "复制地址", @@ -51,7 +51,7 @@ const connectLocaleZh: ConnectLocale = { newToWallets: "刚接触钱包?", or: "或", passkeys: { - linkPasskey: "关联通行密钥", + linkPasskey: "添加通行密钥", title: "通行密钥", }, payTransactions: "法币交易", @@ -108,7 +108,7 @@ const connectLocaleZh: ConnectLocale = { viewFunds: { title: "查看资产", viewAssets: "查看资产", - viewNFTs: "查看 NFT", + viewNFTs: "查看NFT资产", viewTokens: "查看代币", }, walletTransactions: "钱包交易", @@ -118,4 +118,4 @@ const connectLocaleZh: ConnectLocale = { }, }; -export default connectLocaleZh; \ No newline at end of file +export default connectLocaleZh; From 7c3f240268d4b29ccdb6985abf3311c25188b827 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 7 Aug 2025 10:19:45 +0000 Subject: [PATCH 3/5] Add Chinese (zh_CN) localization for wallet connection screens Co-authored-by: yashjoisar --- .../locale/getInjectedWalletLocale.ts | 2 + .../react/web/wallets/injected/locale/zh.ts | 27 ++++++++ .../wallets/shared/locale/getConnectLocale.ts | 2 + .../src/react/web/wallets/shared/locale/zh.ts | 61 +++++++++++++++++++ .../locale/getSmartWalletLocale.ts | 2 + .../web/wallets/smartWallet/locale/zh.ts | 13 ++++ 6 files changed, 107 insertions(+) create mode 100644 packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts create mode 100644 packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts create mode 100644 packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts diff --git a/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts b/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts index 1d265713d77..2a9f4fd37ad 100644 --- a/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts +++ b/packages/thirdweb/src/react/web/wallets/injected/locale/getInjectedWalletLocale.ts @@ -27,6 +27,8 @@ export async function getInjectedWalletLocale( case "pt_BR": { return (await import("./br.js")).default; } + case "zh_CN": + return (await import("./zh.js")).default; default: return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts b/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts new file mode 100644 index 00000000000..4fc8d957c1f --- /dev/null +++ b/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts @@ -0,0 +1,27 @@ +import type { InjectedWalletLocale } from "./types.js"; + +/** + * @internal + */ +const injectedWalletLocaleZh = (wallet: string): InjectedWalletLocale => ({ + connectionScreen: { + failed: "连接失败", + inProgress: "等待确认", + instruction: `请在 ${wallet} 中接受连接请求`, + retry: "重试", + }, + download: { + android: "在 Google Play 下载", + chrome: "下载 Chrome 扩展", + iOS: "在 App Store 下载", + }, + getStartedLink: `没有 ${wallet}?`, + getStartedScreen: { + instruction: `扫描二维码下载 ${wallet} 应用`, + }, + scanScreen: { + instruction: `使用 ${wallet} 应用扫描二维码以连接`, + }, +}); + +export default injectedWalletLocaleZh; \ No newline at end of file diff --git a/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts b/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts index 184235597d5..2ba3fefc981 100644 --- a/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts +++ b/packages/thirdweb/src/react/web/wallets/shared/locale/getConnectLocale.ts @@ -27,6 +27,8 @@ export async function getInAppWalletLocale( case "pt_BR": { return (await import("./br.js")).default; } + case "zh_CN": + return (await import("./zh.js")).default; default: return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts b/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts new file mode 100644 index 00000000000..80d1e9b2975 --- /dev/null +++ b/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts @@ -0,0 +1,61 @@ +import type { InAppWalletLocale } from "./types.js"; + +export default { + createPassword: { + confirmation: "我已保存密码", + failedToSetPassword: "设置密码失败", + inputPlaceholder: "输入您的密码", + instruction: + "为您的账户设置密码。从新设备连接时需要此密码。", + saveInstruction: "请务必保存密码", + submitButton: "设置密码", + title: "创建密码", + }, + emailLoginScreen: { + enterCodeSendTo: "输入发送至以下地址的验证码", + enterRecoveryCode: + "输入您首次注册时发送至邮箱的恢复码", + failedToSendCode: "发送验证码失败", + invalidCode: "验证码无效", + invalidCodeOrRecoveryCode: "验证码或恢复码无效", + newDeviceDetected: "检测到新设备", + resendCode: "重新发送验证码", + sendingCode: "正在发送验证码", + title: "登录", + verify: "验证", + }, + emailPlaceholder: "邮箱地址", + emailRequired: "邮箱地址为必填项", + enterPassword: { + inputPlaceholder: "输入您的密码", + instruction: "输入您账户的密码", + submitButton: "验证", + title: "输入密码", + wrongPassword: "密码错误", + }, + invalidEmail: "邮箱地址无效", + invalidPhone: "手机号码无效", + linkWallet: "关联钱包", + loginAsGuest: "以访客身份继续", + maxAccountsExceeded: + "账户数量已达上限。请联系应用开发者。", + or: "或", + passkey: "通行密钥", + phonePlaceholder: "手机号码", + phoneRequired: "手机号码为必填项", + signIn: "登录", + signInWithApple: "Apple", + signInWithDiscord: "Discord", + signInWithEmail: "使用邮箱登录", + signInWithFacebook: "Facebook", + signInWithGoogle: "Google", + signInWithPhone: "使用手机号登录", + signInWithWallet: "使用钱包登录", + socialLoginScreen: { + failed: "登录失败", + instruction: "在弹出窗口中登录您的账户", + retry: "重试", + title: "登录", + }, + submitEmail: "继续", +} satisfies InAppWalletLocale; \ No newline at end of file diff --git a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts index 3231d821d6f..77b32b1099a 100644 --- a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts +++ b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/getSmartWalletLocale.ts @@ -27,6 +27,8 @@ export async function getSmartWalletLocale( case "pt_BR": { return (await import("./br.js")).default; } + case "zh_CN": + return (await import("./zh.js")).default; default: return (await import("./en.js")).default; } diff --git a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts new file mode 100644 index 00000000000..d8e83a713ee --- /dev/null +++ b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts @@ -0,0 +1,13 @@ +import type { SmartWalletLocale } from "./types.js"; + +const smartWalletLocalZh: SmartWalletLocale = { + connecting: "正在连接智能账户", + failedToConnect: "连接智能账户失败", + wrongNetworkScreen: { + failedToSwitch: "网络切换失败", + subtitle: "您的钱包未连接到所需的网络", + title: "网络错误", + }, +}; + +export default smartWalletLocalZh; \ No newline at end of file From 4f16cb66cf91772e60ec6ec025fd402fe7087058 Mon Sep 17 00:00:00 2001 From: Yash <67926590+Yash094@users.noreply.github.com> Date: Thu, 7 Aug 2025 19:12:23 +0530 Subject: [PATCH 4/5] fix --- .../react/web/wallets/injected/locale/zh.ts | 10 ++++---- .../src/react/web/wallets/shared/locale/zh.ts | 25 ++++++++----------- .../web/wallets/smartWallet/locale/zh.ts | 4 +-- 3 files changed, 18 insertions(+), 21 deletions(-) diff --git a/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts b/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts index 4fc8d957c1f..9bd457fde0f 100644 --- a/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts +++ b/packages/thirdweb/src/react/web/wallets/injected/locale/zh.ts @@ -6,22 +6,22 @@ import type { InjectedWalletLocale } from "./types.js"; const injectedWalletLocaleZh = (wallet: string): InjectedWalletLocale => ({ connectionScreen: { failed: "连接失败", - inProgress: "等待确认", + inProgress: "等待用户确认", instruction: `请在 ${wallet} 中接受连接请求`, retry: "重试", }, download: { - android: "在 Google Play 下载", + android: "从 Google Play 下载", chrome: "下载 Chrome 扩展", - iOS: "在 App Store 下载", + iOS: "从 App Store 下载", }, getStartedLink: `没有 ${wallet}?`, getStartedScreen: { instruction: `扫描二维码下载 ${wallet} 应用`, }, scanScreen: { - instruction: `使用 ${wallet} 应用扫描二维码以连接`, + instruction: `用 ${wallet} 扫描二维码连接`, }, }); -export default injectedWalletLocaleZh; \ No newline at end of file +export default injectedWalletLocaleZh; diff --git a/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts b/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts index 80d1e9b2975..28bbc9174b5 100644 --- a/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts +++ b/packages/thirdweb/src/react/web/wallets/shared/locale/zh.ts @@ -4,17 +4,15 @@ export default { createPassword: { confirmation: "我已保存密码", failedToSetPassword: "设置密码失败", - inputPlaceholder: "输入您的密码", - instruction: - "为您的账户设置密码。从新设备连接时需要此密码。", - saveInstruction: "请务必保存密码", + inputPlaceholder: "输入密码", + instruction: "为账户设置密码。使用新设备登录时需要此密码。", + saveInstruction: "请妥善保存密码", submitButton: "设置密码", title: "创建密码", }, emailLoginScreen: { - enterCodeSendTo: "输入发送至以下地址的验证码", - enterRecoveryCode: - "输入您首次注册时发送至邮箱的恢复码", + enterCodeSendTo: "输入发送至您邮箱的验证码", + enterRecoveryCode: "输入您首次注册时邮箱收到的恢复码", failedToSendCode: "发送验证码失败", invalidCode: "验证码无效", invalidCodeOrRecoveryCode: "验证码或恢复码无效", @@ -25,7 +23,7 @@ export default { verify: "验证", }, emailPlaceholder: "邮箱地址", - emailRequired: "邮箱地址为必填项", + emailRequired: "请输入邮箱地址", enterPassword: { inputPlaceholder: "输入您的密码", instruction: "输入您账户的密码", @@ -35,10 +33,9 @@ export default { }, invalidEmail: "邮箱地址无效", invalidPhone: "手机号码无效", - linkWallet: "关联钱包", + linkWallet: "连接钱包", loginAsGuest: "以访客身份继续", - maxAccountsExceeded: - "账户数量已达上限。请联系应用开发者。", + maxAccountsExceeded: "账户数量已达上限。请联系应用开发者。", or: "或", passkey: "通行密钥", phonePlaceholder: "手机号码", @@ -46,16 +43,16 @@ export default { signIn: "登录", signInWithApple: "Apple", signInWithDiscord: "Discord", - signInWithEmail: "使用邮箱登录", + signInWithEmail: "邮箱登录", signInWithFacebook: "Facebook", signInWithGoogle: "Google", signInWithPhone: "使用手机号登录", signInWithWallet: "使用钱包登录", socialLoginScreen: { failed: "登录失败", - instruction: "在弹出窗口中登录您的账户", + instruction: "请在弹窗中登录账户", retry: "重试", title: "登录", }, submitEmail: "继续", -} satisfies InAppWalletLocale; \ No newline at end of file +} satisfies InAppWalletLocale; diff --git a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts index d8e83a713ee..9285efc6de2 100644 --- a/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts +++ b/packages/thirdweb/src/react/web/wallets/smartWallet/locale/zh.ts @@ -5,9 +5,9 @@ const smartWalletLocalZh: SmartWalletLocale = { failedToConnect: "连接智能账户失败", wrongNetworkScreen: { failedToSwitch: "网络切换失败", - subtitle: "您的钱包未连接到所需的网络", + subtitle: "钱包未连接至所需网络", title: "网络错误", }, }; -export default smartWalletLocalZh; \ No newline at end of file +export default smartWalletLocalZh; From 59f6ac9c5899bec434779f82ac926cba373619a9 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 7 Aug 2025 11:13:15 +0000 Subject: [PATCH 5/5] Add Chinese (Simplified) locale to LocaleFormControl Co-authored-by: yashjoisar --- .../src/app/wallets/sign-in/components/LocaleFormControl.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/playground-web/src/app/wallets/sign-in/components/LocaleFormControl.tsx b/apps/playground-web/src/app/wallets/sign-in/components/LocaleFormControl.tsx index 1fda6537dac..cbbfae34c85 100644 --- a/apps/playground-web/src/app/wallets/sign-in/components/LocaleFormControl.tsx +++ b/apps/playground-web/src/app/wallets/sign-in/components/LocaleFormControl.tsx @@ -47,6 +47,10 @@ const locales: { id: "fr_FR", name: "French", }, + { + id: "zh_CN", + name: "Chinese (Simplified)", + }, ]; export function LocaleFormControl(props: {