From 7254e2dbd9bb39c9a2850fb00c82a3fc06ba1a90 Mon Sep 17 00:00:00 2001 From: CodeST <694468528@qq.com> Date: Mon, 17 Nov 2025 20:55:11 +0800 Subject: [PATCH] 2 --- CustomKeyboard/View/KBFunctionView.m | 2 +- .../Localization/en.lproj/Localizable.strings | 18 +-- .../zh-Hans.lproj/Localizable.strings | 151 +++++++++--------- keyBoard/Class/Base/VC/BaseTabBarController.m | 2 +- keyBoard/Class/Common/V/KBAlert.m | 2 +- keyBoard/Class/Home/VC/HomeSheetVC.m | 4 +- keyBoard/Class/Shop/VC/KBShopVC.m | 2 +- 7 files changed, 88 insertions(+), 93 deletions(-) diff --git a/CustomKeyboard/View/KBFunctionView.m b/CustomKeyboard/View/KBFunctionView.m index 161acf2..ee2cc5e 100644 --- a/CustomKeyboard/View/KBFunctionView.m +++ b/CustomKeyboard/View/KBFunctionView.m @@ -595,7 +595,7 @@ static void KBULDarwinCallback(CFNotificationCenterRef center, void *observer, C _deleteButtonInternal.layer.cornerRadius = 12.0; _deleteButtonInternal.layer.masksToBounds = YES; _deleteButtonInternal.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; - [_deleteButtonInternal setTitle:KBLocalized(@"删除") forState:UIControlStateNormal]; + [_deleteButtonInternal setTitle:KBLocalized(@"Delete") forState:UIControlStateNormal]; [_deleteButtonInternal setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [_deleteButtonInternal addTarget:self action:@selector(onTapDelete) forControlEvents:UIControlEventTouchUpInside]; } diff --git a/Shared/Localization/en.lproj/Localizable.strings b/Shared/Localization/en.lproj/Localizable.strings index 5cbdda9..1c548f1 100644 --- a/Shared/Localization/en.lproj/Localizable.strings +++ b/Shared/Localization/en.lproj/Localizable.strings @@ -33,7 +33,7 @@ "请切换到主App完成登录" = "Please switch to the main app to finish signing in"; // Generic buttons & tips -"好" = "OK"; +"OK" = "OK"; "Confirm" = "Confirm"; "Cancel" = "Cancel"; "Close" = "Close"; @@ -80,8 +80,8 @@ "Shop" = "Shop"; "Circle" = "Circle"; "Mine" = "Mine"; -"热门" = "Hot"; -"排行" = "Rank"; +"Hot" = "Hot"; +"Rank" = "Rank"; // Search & history "Clear history" = "Clear history"; @@ -91,14 +91,14 @@ "Loaded more successfully" = "Loaded more successfully"; // Skins & shop -"皮肤中心" = "Skin Center"; +"Skin Center" = "Skin Center"; "No skins yet" = "No skins yet"; "Pull down to refresh" = "Pull down to refresh"; -"下载并应用" = "Download & Apply"; -"已应用,切到键盘查看" = "Applied. Switch to the keyboard to view."; -"应用失败" = "Apply failed"; +"Download & Apply" = "Download & Apply"; +"Applied. Switch to the keyboard to view." = "Applied. Switch to the keyboard to view."; +"Apply failed" = "Apply failed"; "Open agreement" = "Open agreement"; -"购物商城" = "Shop Mall"; +"Shop Mall" = "Shop Mall"; // Skin sample names "极光" = "Aurora"; @@ -126,7 +126,7 @@ // Payment & IAP "Payment successful" = "Payment successful"; "Payment failed" = "Payment failed"; -"购买:%@ Coins %@" = "Purchase: %@ Coins %@"; +"Purchase: %@ Coins %@" = "Purchase: %@ Coins %@"; "Pay clicked" = "Pay clicked"; // Example categories/items diff --git a/Shared/Localization/zh-Hans.lproj/Localizable.strings b/Shared/Localization/zh-Hans.lproj/Localizable.strings index 0e9f743..aadac04 100644 --- a/Shared/Localization/zh-Hans.lproj/Localizable.strings +++ b/Shared/Localization/zh-Hans.lproj/Localizable.strings @@ -19,47 +19,44 @@ "current_lang" = "当前:%@"; "common_back" = "返回"; -// 登录与账号 -"登录" = "登录"; -"登录成功" = "登录成功"; -"登录失败" = "登录失败"; -"登录后可使用全部功能" = "登录后可使用全部功能"; -"我们将使用 Apple 进行快速安全登录" = "我们将使用 Apple 进行快速安全登录"; +// 登录与账号(以英文 key 为准) +"Log In" = "登录"; +"Signed in successfully" = "登录成功"; +"Sign-in failed" = "登录失败"; +"Sign in to unlock all features" = "登录后可使用全部功能"; +"We'll use Apple for a quick, secure sign-in" = "我们将使用 Apple 进行快速安全登录"; "Apple 登录需要 iOS 13 及以上版本" = "Apple 登录需要 iOS 13 及以上版本"; -"需要 iOS13+ 才能使用 Apple 登录" = "需要 iOS13+ 才能使用 Apple 登录"; -"无效的登录凭证" = "无效的登录凭证"; -"未返回 token" = "未返回 token"; -"保存登录态失败" = "保存登录态失败"; +"Sign in with Apple requires iOS 13 or later" = "需要 iOS13+ 才能使用 Apple 登录"; +"Invalid login credential" = "无效的登录凭证"; +"No token returned" = "未返回 token"; +"Failed to save login state" = "保存登录态失败"; "请切换到主App完成登录" = "请切换到主App完成登录"; -// 英文 key 映射(用于代码中直接使用英文 key) -"Failed to save login state" = "保存登录态失败"; +// 通用按钮与提示(英文 key) +"OK" = "好"; +"Confirm" = "确定"; +"Cancel" = "取消"; +"Close" = "关闭"; +"Delete" = "删除"; +"Clear" = "清空"; +"Paste" = "粘贴"; +"Send" = "发送"; +"Retry" = "重试"; +"Success" = "成功"; +"Failed" = "失败"; +"Network error" = "网络错误"; +"Saved" = "已保存"; +"Copy Success" = "复制成功"; -// 通用按钮与提示 -"好" = "好"; -"确定" = "确定"; -"取消" = "取消"; -"关闭" = "关闭"; -"删除" = "删除"; -"清空" = "清空"; -"粘贴" = "粘贴"; -"发送" = "发送"; -"重试" = "重试"; -"成功" = "成功"; -"失败" = "失败"; -"网络错误" = "网络错误"; -"已保存" = "已保存"; -"复制成功" = "复制成功"; - -// 网络相关 -"网络不可用" = "网络不可用"; -"网络未启用(可能未开启完全访问)" = "网络未启用(可能未开启完全访问)"; -"无效的URL" = "无效的URL"; -"无效的响应" = "无效的响应"; -"无数据" = "无数据"; -"JSON解析失败" = "JSON解析失败"; -"解析失败" = "解析失败"; -"未获取到数据" = "未获取到数据"; +// 网络相关(英文 key) +"Network unavailable" = "网络不可用"; +"Network disabled (Full Access may be off)" = "网络未启用(可能未开启完全访问)"; +"Invalid URL" = "无效的URL"; +"Invalid response" = "无效的响应"; +"No data" = "无数据"; +"Failed to parse JSON" = "JSON解析失败"; +"Parse failed" = "解析失败"; +"No data received" = "未获取到数据"; "请求失败\nURL: %@\n状态: %ld\n错误: %@\nUserInfo: %@" = "请求失败\nURL: %@\n状态: %ld\n错误: %@\nUserInfo: %@"; "响应成功(JSON)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@" = "响应成功(JSON)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@"; "响应成功(Data)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@" = "响应成功(Data)\nURL: %@\n状态: %ld\nContent-Type: %@\n数据: %@"; @@ -69,41 +66,40 @@ "网络不可用\n请在“设置”中检查本应用的无线数据权限或网络连接。" = "网络不可用\n请在“设置”中检查本应用的无线数据权限或网络连接。"; "请在“设置”中检查本应用的无线数据权限或网络连接。" = "请在“设置”中检查本应用的无线数据权限或网络连接。"; -// 权限与引导 -"使用引导" = "使用引导"; -"开启【允许完全访问】,体验完整功能" = "开启【允许完全访问】,体验完整功能"; -"允许完全访问" = "允许完全访问"; -"请按路径:设置→通用→键盘→键盘→%@→允许完全访问" = "请按路径:设置→通用→键盘→键盘→%@→允许完全访问"; -"去开启" = "去开启"; -"去设置" = "去设置"; -"网络未启用(可能未开启完全访问)" = "网络未启用(可能未开启完全访问)"; -"在键盘粘贴对话后,选择回复方式" = "在键盘粘贴对话后,选择回复方式"; -"当前:%@" = "当前:%@"; +// 权限与引导(英文 key) +"Usage Guide" = "使用引导"; +"Turn on Allow Full Access to experience all features" = "开启【允许完全访问】,体验完整功能"; +"Allow Full Access" = "允许完全访问"; +"Follow: Settings → General → Keyboard → Keyboards → %@ → Allow Full Access" = "请按路径:设置→通用→键盘→键盘→%@→允许完全访问"; +"Go enable" = "去开启"; +"Open Settings" = "去设置"; +"After pasting the conversation in the keyboard, choose a reply style" = "在键盘粘贴对话后,选择回复方式"; +"Current: %@" = "当前:%@"; -// 首页 / Tab 文案 -"首页" = "首页"; -"商城" = "商城"; -"社区" = "社区"; -"我的" = "我的"; -"热门" = "热门"; -"排行" = "排行"; +// 首页 / Tab 文案(英文 key) +"Home" = "首页"; +"Shop" = "商城"; +"Circle" = "社区"; +"Mine" = "我的"; +"Hot" = "热门"; +"Rank" = "排行"; -// 搜索与历史 -"清空历史" = "清空历史"; -"是否删除所有历史记录?" = "是否删除所有历史记录?"; -"删除该标签?" = "删除该标签?"; -"删除后不可恢复" = "删除后不可恢复"; -"加载更多成功" = "加载更多成功"; +// 搜索与历史(英文 key) +"Clear history" = "清空历史"; +"Delete all history?" = "是否删除所有历史记录?"; +"Delete this tag?" = "删除该标签?"; +"This action cannot be undone" = "删除后不可恢复"; +"Loaded more successfully" = "加载更多成功"; -// 皮肤与商城 -"皮肤中心" = "皮肤中心"; -"暂无皮肤" = "暂无皮肤"; -"下拉刷新试试" = "下拉刷新试试"; -"下载并应用" = "下载并应用"; -"已应用,切到键盘查看" = "已应用,切到键盘查看"; -"应用失败" = "应用失败"; -"跳转协议" = "跳转协议"; -"购物商城" = "购物商城"; +// 皮肤与商城(英文 key) +"Skin Center" = "皮肤中心"; +"No skins yet" = "暂无皮肤"; +"Pull down to refresh" = "下拉刷新试试"; +"Download & Apply" = "下载并应用"; +"Applied. Switch to the keyboard to view." = "已应用,切到键盘查看"; +"Apply failed" = "应用失败"; +"Open agreement" = "跳转协议"; +"Shop Mall" = "购物商城"; // 皮肤示例名称 "极光" = "极光"; @@ -128,10 +124,10 @@ "🎉 如您遇到其他问题,可点击在线客服帮您解决~" = "🎉 如您遇到其他问题,可点击在线客服帮您解决~"; "👋 欢迎使用『Lovekey 键盘』" = "👋 欢迎使用『Lovekey 键盘』"; -// 支付与内购 -"支付成功" = "支付成功"; -"支付失败" = "支付失败"; -"购买:%@ Coins %@" = "购买:%@ Coins %@"; +// 支付与内购(英文 key) +"Payment successful" = "支付成功"; +"Payment failed" = "支付失败"; +"Purchase: %@ Coins %@" = "购买:%@ Coins %@"; "Pay clicked" = "Pay clicked"; // 示例商品/分类 @@ -187,11 +183,10 @@ "橡胶大蛇炮" = "橡胶大蛇炮"; // 其它 -"测试" = "测试"; -"暂无数据" = "暂无数据"; -"这里是设置内容占位" = "这里是设置内容占位"; -"设置" = "设置"; -"使用引导" = "使用引导"; +"Test" = "测试"; +"暂无数据" = "暂无数据"; // 已有英文 key "No data" +"Settings" = "设置"; +"Usage Guide" = "使用引导"; "螃蟹啊斯柯达积分卡" = "螃蟹啊斯柯达积分卡"; "❎不是自己的键盘" = "❎不是自己的键盘"; "是自己的键盘" = "是自己的键盘"; diff --git a/keyBoard/Class/Base/VC/BaseTabBarController.m b/keyBoard/Class/Base/VC/BaseTabBarController.m index d875cc9..85bac38 100644 --- a/keyBoard/Class/Base/VC/BaseTabBarController.m +++ b/keyBoard/Class/Base/VC/BaseTabBarController.m @@ -44,7 +44,7 @@ // 社区 KBCommunityVC *community = [[KBCommunityVC alloc] init]; - community.title = KBLocalized(@"社区"); +// community.title = KBLocalized(@"Circle"); BaseNavigationController *navCommunity = [[BaseNavigationController alloc] initWithRootViewController:community]; navCommunity.tabBarItem = [self tabItemWithTitle:KBLocalized(@"Circle") image:@"tab_shequ" diff --git a/keyBoard/Class/Common/V/KBAlert.m b/keyBoard/Class/Common/V/KBAlert.m index 7ccebcb..36b9007 100644 --- a/keyBoard/Class/Common/V/KBAlert.m +++ b/keyBoard/Class/Common/V/KBAlert.m @@ -94,7 +94,7 @@ static __weak UIViewController *sDefaultPresenter = nil; // 可选外部指定 [self _markFinishedAndContinue]; return; } - NSString *ok = button ?: (NSLocalizedString(@"OK", nil).length ? NSLocalizedString(@"OK", nil) : KBLocalized(@"好")); + NSString *ok = button ?: (NSLocalizedString(@"OK", nil).length ? NSLocalizedString(@"OK", nil) : KBLocalized(@"OK")); UIAlertController *ac = [UIAlertController alertControllerWithTitle:(title ?: @"") message:(message ?: @"") preferredStyle:UIAlertControllerStyleAlert]; diff --git a/keyBoard/Class/Home/VC/HomeSheetVC.m b/keyBoard/Class/Home/VC/HomeSheetVC.m index 94bcaab..03e6cd8 100644 --- a/keyBoard/Class/Home/VC/HomeSheetVC.m +++ b/keyBoard/Class/Home/VC/HomeSheetVC.m @@ -137,7 +137,7 @@ // 两个按钮 self.hotButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [self.hotButton setTitle:KBLocalized(@"热门") forState:UIControlStateNormal]; + [self.hotButton setTitle:KBLocalized(@"Hot") forState:UIControlStateNormal]; [self.hotButton setTitleColor:[UIColor darkTextColor] forState:UIControlStateNormal]; [self.hotButton setTitleColor:[UIColor blackColor] forState:UIControlStateSelected]; self.hotButton.titleLabel.font = [UIFont boldSystemFontOfSize:16]; @@ -146,7 +146,7 @@ [self.topBar addSubview:self.hotButton]; self.rankButton = [UIButton buttonWithType:UIButtonTypeCustom]; - [self.rankButton setTitle:KBLocalized(@"排行") forState:UIControlStateNormal]; + [self.rankButton setTitle:KBLocalized(@"Rank") forState:UIControlStateNormal]; [self.rankButton setTitleColor:[UIColor darkTextColor] forState:UIControlStateNormal]; [self.rankButton setTitleColor:[UIColor blackColor] forState:UIControlStateSelected]; self.rankButton.titleLabel.font = [UIFont boldSystemFontOfSize:16]; diff --git a/keyBoard/Class/Shop/VC/KBShopVC.m b/keyBoard/Class/Shop/VC/KBShopVC.m index be800a5..8f108fc 100644 --- a/keyBoard/Class/Shop/VC/KBShopVC.m +++ b/keyBoard/Class/Shop/VC/KBShopVC.m @@ -150,7 +150,7 @@ static const CGFloat JXheightForHeaderInSection = 50; self.naviBGView.frame = CGRectMake(0, 0, KB_SCREEN_WIDTH, KB_NAV_TOTAL_HEIGHT); [self.view addSubview:self.naviBGView]; UILabel *naviTitleLabel = [[UILabel alloc] init]; - naviTitleLabel.text = KBLocalized(@"商城"); + naviTitleLabel.text = KBLocalized(@"Shop"); naviTitleLabel.textAlignment = NSTextAlignmentCenter; naviTitleLabel.frame = CGRectMake(0, KB_STATUSBAR_HEIGHT, self.view.bounds.size.width, 44); [self.naviBGView addSubview:naviTitleLabel];