fix: 统一应用名称为 "E-Party" 并更新相关描述
主要变更: 1. 在 Info.plist 中将应用名称和描述中的 "E-Parti" 替换为 "E-Party"。 2. 更新多个本地化字符串和提示信息,确保一致性。 3. 修改部分代码中的错误提示信息,使用本地化字符串替代硬编码文本。 此更新旨在提升品牌一致性,确保用户在使用过程中获得统一的体验。
This commit is contained in:
@@ -13560,7 +13560,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
APP_DISPLAY_NAME = "E-Parti DEBUG";
|
||||
APP_DISPLAY_NAME = "E-Party DEBUG";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = YuMi/YuMi.entitlements;
|
||||
@@ -13810,6 +13810,7 @@
|
||||
SUPPORTS_MACCATALYST = NO;
|
||||
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "YuMi/YuMi-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
@@ -13821,7 +13822,7 @@
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */;
|
||||
buildSettings = {
|
||||
APP_DISPLAY_NAME = "E-Parti";
|
||||
APP_DISPLAY_NAME = "E-Party";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||
CODE_SIGN_ENTITLEMENTS = YuMi/YuMiRelease.entitlements;
|
||||
|
@@ -58,7 +58,7 @@ class EPImageUploader {
|
||||
lock.unlock()
|
||||
semaphore.signal()
|
||||
DispatchQueue.main.async {
|
||||
failure("图片压缩失败")
|
||||
failure(YMLocalizedString("error.image_compress_failed"))
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@@ -35,13 +35,13 @@ import Foundation
|
||||
|
||||
if let hud = currentHUD {
|
||||
// 更新现有 HUD
|
||||
hud.label.text = "上传中 \(uploaded)/\(total)"
|
||||
hud.label.text = String(format: YMLocalizedString("upload.progress_format"), uploaded, total)
|
||||
hud.progress = Float(uploaded) / Float(total)
|
||||
} else {
|
||||
// 创建新 HUD
|
||||
let hud = MBProgressHUD.showAdded(to: window, animated: true)
|
||||
hud.mode = .determinateHorizontalBar
|
||||
hud.label.text = "上传中 \(uploaded)/\(total)"
|
||||
hud.label.text = String(format: YMLocalizedString("upload.progress_format"), uploaded, total)
|
||||
hud.progress = Float(uploaded) / Float(total)
|
||||
hud.removeFromSuperViewOnHide = true
|
||||
currentHUD = hud
|
||||
@@ -49,6 +49,36 @@ import Foundation
|
||||
}
|
||||
}
|
||||
|
||||
/// 显示错误提示
|
||||
/// - Parameter message: 错误信息
|
||||
@objc static func showError(_ message: String) {
|
||||
DispatchQueue.main.async {
|
||||
guard let window = keyWindow else { return }
|
||||
|
||||
let hud = MBProgressHUD.showAdded(to: window, animated: true)
|
||||
hud.mode = .text
|
||||
hud.label.text = message
|
||||
hud.label.numberOfLines = 0
|
||||
hud.removeFromSuperViewOnHide = true
|
||||
hud.hide(animated: true, afterDelay: 2.0)
|
||||
}
|
||||
}
|
||||
|
||||
/// 显示成功提示
|
||||
/// - Parameter message: 成功信息
|
||||
@objc static func showSuccess(_ message: String) {
|
||||
DispatchQueue.main.async {
|
||||
guard let window = keyWindow else { return }
|
||||
|
||||
let hud = MBProgressHUD.showAdded(to: window, animated: true)
|
||||
hud.mode = .text
|
||||
hud.label.text = message
|
||||
hud.label.numberOfLines = 0
|
||||
hud.removeFromSuperViewOnHide = true
|
||||
hud.hide(animated: true, afterDelay: 2.0)
|
||||
}
|
||||
}
|
||||
|
||||
/// 关闭 HUD
|
||||
@objc static func dismiss() {
|
||||
DispatchQueue.main.async {
|
||||
|
@@ -65,7 +65,7 @@ import Foundation
|
||||
ensureQCloudReady { [weak self] isReady, errorMsg in
|
||||
guard let self = self, isReady else {
|
||||
DispatchQueue.main.async {
|
||||
failure(errorMsg ?? "QCloud 初始化失败")
|
||||
failure(errorMsg ?? YMLocalizedString("error.qcloud_init_failed"))
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -164,7 +164,7 @@ import Foundation
|
||||
self.qcloudInitCallbacks.removeAll()
|
||||
self.lock.unlock()
|
||||
|
||||
let errorMsg = msg ?? "获取 QCloud 配置失败"
|
||||
let errorMsg = msg ?? YMLocalizedString("error.qcloud_config_failed")
|
||||
DispatchQueue.main.async {
|
||||
callbacks.forEach { $0(false, errorMsg) }
|
||||
}
|
||||
@@ -209,7 +209,7 @@ import Foundation
|
||||
) {
|
||||
guard let config = qcloudConfig else {
|
||||
let error = NSError(domain: "com.yumi.qcloud", code: -1,
|
||||
userInfo: [NSLocalizedDescriptionKey: "QCloud 配置未初始化"])
|
||||
userInfo: [NSLocalizedDescriptionKey: YMLocalizedString("error.qcloud_config_not_initialized")])
|
||||
compelete(nil, error)
|
||||
return
|
||||
}
|
||||
@@ -235,7 +235,7 @@ import Foundation
|
||||
) {
|
||||
guard let config = qcloudConfig else {
|
||||
let error = NSError(domain: "com.yumi.qcloud", code: -1,
|
||||
userInfo: [NSLocalizedDescriptionKey: "QCloud 配置未初始化"])
|
||||
userInfo: [NSLocalizedDescriptionKey: YMLocalizedString("error.qcloud_config_not_initialized")])
|
||||
continueBlock(nil, error)
|
||||
return
|
||||
}
|
||||
|
@@ -33,6 +33,14 @@ import UIKit
|
||||
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
// 验证 DEBUG 编译条件
|
||||
#if DEBUG
|
||||
print("✅ [EPLogin] DEBUG 模式已激活")
|
||||
#else
|
||||
print("⚠️ [EPLogin] 当前为 Release 模式")
|
||||
#endif
|
||||
|
||||
navigationController?.setNavigationBarHidden(true, animated: false)
|
||||
setupUI()
|
||||
loadPolicyStatus()
|
||||
@@ -76,9 +84,9 @@ import UIKit
|
||||
make.height.equalTo(EPLoginConfig.Layout.logoHeight)
|
||||
}
|
||||
|
||||
// E-PARTI 标题
|
||||
// E-PARTY 标题
|
||||
view.addSubview(epartiTitleLabel)
|
||||
epartiTitleLabel.text = "E-PARTI"
|
||||
epartiTitleLabel.text = "E-PARTY"
|
||||
epartiTitleLabel.font = .systemFont(ofSize: EPLoginConfig.Layout.epartiTitleFontSize, weight: .bold)
|
||||
epartiTitleLabel.textColor = EPLoginConfig.Colors.textLight
|
||||
epartiTitleLabel.transform = CGAffineTransform(a: 1, b: 0, c: -0.2, d: 1, tx: 0, ty: 0) // 斜体效果
|
||||
@@ -160,6 +168,7 @@ import UIKit
|
||||
}
|
||||
|
||||
private func setupNavigationBar() {
|
||||
#if DEBUG
|
||||
view.addSubview(feedbackButton)
|
||||
feedbackButton.setTitle(YMLocalizedString(EPLoginConfig.LocalizedKeys.feedback), for: .normal)
|
||||
feedbackButton.titleLabel?.font = .systemFont(ofSize: EPLoginConfig.Layout.smallFontSize)
|
||||
@@ -173,7 +182,6 @@ import UIKit
|
||||
make.height.equalTo(EPLoginConfig.Layout.feedbackButtonHeight)
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
view.addSubview(debugButton)
|
||||
debugButton.setTitle("切换环境", for: .normal)
|
||||
debugButton.setTitleColor(.blue, for: .normal)
|
||||
@@ -183,7 +191,7 @@ import UIKit
|
||||
make.leading.equalToSuperview().offset(EPLoginConfig.Layout.compactHorizontalPadding)
|
||||
make.top.equalTo(view.safeAreaLayoutGuide).offset(8)
|
||||
}
|
||||
#endif
|
||||
#endif // DEBUG
|
||||
}
|
||||
|
||||
// MARK: - Actions
|
||||
|
@@ -39,11 +39,11 @@ struct EPLoginConfig {
|
||||
/// Logo 距离顶部的距离
|
||||
static let logoTopOffset: CGFloat = 80
|
||||
|
||||
/// E-PARTI 标题字号
|
||||
/// E-PARTY 标题字号
|
||||
static let epartiTitleFontSize: CGFloat = 56
|
||||
/// E-PARTI 标题距离 view leading
|
||||
/// E-PARTY 标题距离 view leading
|
||||
static let epartiTitleLeading: CGFloat = 40
|
||||
/// E-PARTI 标题距离 logoImage bottom 的偏移(负值表示向上)
|
||||
/// E-PARTY 标题距离 logoImage bottom 的偏移(负值表示向上)
|
||||
static let epartiTitleBottomOffset: CGFloat = -30
|
||||
|
||||
/// 输入框之间的垂直间距
|
||||
|
@@ -36,10 +36,10 @@ import Foundation
|
||||
AccountInfoStorage.instance().saveAccountInfo(accountModel)
|
||||
completion(accountModel)
|
||||
} else {
|
||||
failure(Int(code), "账号信息解析失败")
|
||||
failure(Int(code), YMLocalizedString("error.account_parse_failed"))
|
||||
}
|
||||
} else {
|
||||
failure(Int(code), "操作失败")
|
||||
failure(Int(code), YMLocalizedString("error.operation_failed"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,10 +61,10 @@ import Foundation
|
||||
let ticket = firstTicket["ticket"] as? String {
|
||||
completion(ticket)
|
||||
} else {
|
||||
failure(Int(code), "Ticket 解析失败")
|
||||
failure(Int(code), YMLocalizedString("error.ticket_parse_failed"))
|
||||
}
|
||||
} else {
|
||||
failure(Int(code), msg ?? "请求 Ticket 失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.request_ticket_failed"))
|
||||
}
|
||||
}, access_token: accessToken, issue_type: "multi")
|
||||
}
|
||||
@@ -89,7 +89,7 @@ import Foundation
|
||||
if code == 200 {
|
||||
completion()
|
||||
} else {
|
||||
failure(Int(code), msg ?? "发送邮箱验证码失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.send_email_code_failed"))
|
||||
}
|
||||
}, emailAddress: encryptedEmail, type: NSNumber(value: type))
|
||||
}
|
||||
@@ -114,7 +114,7 @@ import Foundation
|
||||
if code == 200 {
|
||||
completion()
|
||||
} else {
|
||||
failure(Int(code), msg ?? "发送手机验证码失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.send_phone_code_failed"))
|
||||
}
|
||||
}, mobile: encryptedPhone, type: String(type), phoneAreaCode: areaCode)
|
||||
}
|
||||
@@ -142,7 +142,7 @@ import Foundation
|
||||
code: Int64(code),
|
||||
completion: completion,
|
||||
failure: { errorCode, _ in
|
||||
failure(errorCode, msg ?? "登录失败")
|
||||
failure(errorCode, msg ?? YMLocalizedString("error.login_failed"))
|
||||
})
|
||||
},
|
||||
phone: encryptedId,
|
||||
@@ -173,7 +173,7 @@ import Foundation
|
||||
code: Int64(code),
|
||||
completion: completion,
|
||||
failure: { errorCode, _ in
|
||||
failure(errorCode, msg ?? "登录失败")
|
||||
failure(errorCode, msg ?? YMLocalizedString("error.login_failed"))
|
||||
})
|
||||
},
|
||||
email: encryptedEmail,
|
||||
@@ -206,7 +206,7 @@ import Foundation
|
||||
code: Int64(code),
|
||||
completion: completion,
|
||||
failure: { errorCode, _ in
|
||||
failure(errorCode, msg ?? "登录失败")
|
||||
failure(errorCode, msg ?? YMLocalizedString("error.login_failed"))
|
||||
})
|
||||
},
|
||||
phone: encryptedPhone,
|
||||
@@ -241,7 +241,7 @@ import Foundation
|
||||
if code == 200 {
|
||||
completion()
|
||||
} else {
|
||||
failure(Int(code), msg ?? "重置密码失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.reset_password_failed"))
|
||||
}
|
||||
}, email: encryptedEmail, newPwd: encryptedPassword, code: code)
|
||||
}
|
||||
@@ -269,7 +269,7 @@ import Foundation
|
||||
if code == 200 {
|
||||
completion()
|
||||
} else {
|
||||
failure(Int(code), msg ?? "重置密码失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.reset_password_failed"))
|
||||
}
|
||||
}, phone: encryptedPhone, newPwd: encryptedPassword, smsCode: code, phoneAreaCode: areaCode)
|
||||
}
|
||||
@@ -293,7 +293,7 @@ import Foundation
|
||||
code: Int64(code),
|
||||
completion: completion,
|
||||
failure: { errorCode, _ in
|
||||
failure(errorCode, msg ?? "快速登录失败")
|
||||
failure(errorCode, msg ?? YMLocalizedString("error.quick_login_failed"))
|
||||
})
|
||||
},
|
||||
accessToken: accessToken,
|
||||
|
@@ -89,13 +89,35 @@ class EPPolicyLabel: UILabel {
|
||||
|
||||
textContainer.lineFragmentPadding = 0
|
||||
textContainer.maximumNumberOfLines = numberOfLines
|
||||
textContainer.lineBreakMode = lineBreakMode
|
||||
|
||||
let locationOfTouchInLabel = gesture.location(in: self)
|
||||
let textBoundingBox = layoutManager.usedRect(for: textContainer)
|
||||
let textContainerOffset = CGPoint(x: (bounds.width - textBoundingBox.width) / 2,
|
||||
|
||||
// 根据 textAlignment 计算偏移
|
||||
var textContainerOffset = CGPoint.zero
|
||||
switch textAlignment {
|
||||
case .left, .natural, .justified:
|
||||
textContainerOffset = CGPoint(x: 0, y: (bounds.height - textBoundingBox.height) / 2)
|
||||
case .center:
|
||||
textContainerOffset = CGPoint(x: (bounds.width - textBoundingBox.width) / 2,
|
||||
y: (bounds.height - textBoundingBox.height) / 2)
|
||||
case .right:
|
||||
textContainerOffset = CGPoint(x: bounds.width - textBoundingBox.width,
|
||||
y: (bounds.height - textBoundingBox.height) / 2)
|
||||
@unknown default:
|
||||
textContainerOffset = CGPoint(x: 0, y: (bounds.height - textBoundingBox.height) / 2)
|
||||
}
|
||||
|
||||
let locationOfTouchInTextContainer = CGPoint(x: locationOfTouchInLabel.x - textContainerOffset.x,
|
||||
y: locationOfTouchInLabel.y - textContainerOffset.y)
|
||||
|
||||
// 确保点击在文本区域内
|
||||
guard textBoundingBox.contains(locationOfTouchInTextContainer) else {
|
||||
print("[EPPolicyLabel] Tap outside text bounds")
|
||||
return
|
||||
}
|
||||
|
||||
let indexOfCharacter = layoutManager.characterIndex(for: locationOfTouchInTextContainer,
|
||||
in: textContainer,
|
||||
fractionOfDistanceBetweenInsertionPoints: nil)
|
||||
|
@@ -338,7 +338,7 @@ class EPEditSettingViewController: BaseViewController {
|
||||
self?.hideHUD()
|
||||
|
||||
// 显示错误提示
|
||||
let errorMsg = msg ?? "昵称更新失败,请稍后重试"
|
||||
let errorMsg = msg ?? YMLocalizedString("setting.nickname_update_failed")
|
||||
self?.showErrorToast(errorMsg)
|
||||
|
||||
print("[EPEditSetting] 昵称更新失败: \(code) - \(errorMsg)")
|
||||
@@ -453,7 +453,7 @@ extension EPEditSettingViewController: UITableViewDataSource, UITableViewDelegat
|
||||
|
||||
// 添加用户昵称标签
|
||||
let nicknameLabel = UILabel()
|
||||
nicknameLabel.text = userInfo?.nick ?? "未设置"
|
||||
nicknameLabel.text = userInfo?.nick ?? YMLocalizedString("user.not_set")
|
||||
nicknameLabel.textColor = .lightGray
|
||||
nicknameLabel.font = UIFont.systemFont(ofSize: 16)
|
||||
cell.contentView.addSubview(nicknameLabel)
|
||||
@@ -576,8 +576,8 @@ extension EPEditSettingViewController: UIImagePickerControllerDelegate, UINaviga
|
||||
|
||||
// 显示错误提示
|
||||
DispatchQueue.main.async {
|
||||
let alert = UIAlertController(title: "上传失败", message: errorMsg, preferredStyle: .alert)
|
||||
alert.addAction(UIAlertAction(title: "确定", style: .default))
|
||||
let alert = UIAlertController(title: YMLocalizedString("common.upload_failed"), message: errorMsg, preferredStyle: .alert)
|
||||
alert.addAction(UIAlertAction(title: YMLocalizedString("common.confirm"), style: .default))
|
||||
self?.present(alert, animated: true)
|
||||
}
|
||||
}
|
||||
@@ -601,11 +601,11 @@ extension EPEditSettingViewController: UIImagePickerControllerDelegate, UINaviga
|
||||
// 显示错误提示
|
||||
DispatchQueue.main.async {
|
||||
let alert = UIAlertController(
|
||||
title: "更新失败",
|
||||
message: msg ?? "头像更新失败,请稍后重试",
|
||||
title: YMLocalizedString("common.update_failed"),
|
||||
message: msg ?? YMLocalizedString("setting.avatar_update_failed"),
|
||||
preferredStyle: .alert
|
||||
)
|
||||
alert.addAction(UIAlertAction(title: "确定", style: .default))
|
||||
alert.addAction(UIAlertAction(title: YMLocalizedString("common.confirm"), style: .default))
|
||||
self?.present(alert, animated: true)
|
||||
}
|
||||
})
|
||||
|
@@ -16,6 +16,9 @@
|
||||
/// 头像视图
|
||||
@property (nonatomic, strong) UIImageView *avatarImageView;
|
||||
|
||||
/// 呼吸光晕层
|
||||
@property (nonatomic, strong) CALayer *glowLayer;
|
||||
|
||||
/// 昵称标签
|
||||
@property (nonatomic, strong) UILabel *nicknameLabel;
|
||||
|
||||
@@ -36,13 +39,21 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)layoutSubviews {
|
||||
[super layoutSubviews];
|
||||
|
||||
// 更新光晕层 frame(跟随头像位置)
|
||||
if (self.glowLayer) {
|
||||
self.glowLayer.frame = CGRectInset(self.avatarImageView.frame, -8, -8);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setupUI {
|
||||
// 大圆形头像
|
||||
self.avatarImageView = [[UIImageView alloc] init];
|
||||
self.avatarImageView.layer.cornerRadius = 60;
|
||||
self.avatarImageView.layer.masksToBounds = NO; // 改为 NO 以显示阴影
|
||||
self.avatarImageView.layer.borderWidth = 3;
|
||||
self.avatarImageView.layer.borderColor = [UIColor whiteColor].CGColor;
|
||||
self.avatarImageView.layer.borderWidth = 0; // 移除边框
|
||||
self.avatarImageView.backgroundColor = [UIColor whiteColor];
|
||||
self.avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
|
||||
|
||||
@@ -100,7 +111,7 @@
|
||||
|
||||
- (void)updateWithUserInfo:(NSDictionary *)userInfoDict {
|
||||
// 更新昵称
|
||||
NSString *nickname = userInfoDict[@"nickname"] ?: @"未设置昵称";
|
||||
NSString *nickname = userInfoDict[@"nickname"] ?: YMLocalizedString(@"user.nickname_not_set");
|
||||
self.nicknameLabel.text = nickname;
|
||||
|
||||
// 更新 ID
|
||||
@@ -129,9 +140,8 @@
|
||||
// 有专属颜色,使用该颜色
|
||||
UIColor *color = [self colorFromHex:signatureColor];
|
||||
|
||||
// 设置边框颜色
|
||||
self.avatarImageView.layer.borderColor = color.CGColor;
|
||||
self.avatarImageView.layer.borderWidth = 4; // 稍微加粗边框
|
||||
// 取消边框
|
||||
self.avatarImageView.layer.borderWidth = 0;
|
||||
|
||||
// 设置阴影(使用情绪颜色)
|
||||
self.avatarImageView.layer.shadowColor = color.CGColor;
|
||||
@@ -140,18 +150,74 @@
|
||||
self.avatarImageView.layer.shadowRadius = 12;
|
||||
|
||||
NSLog(@"[EPMineHeaderView] 应用专属颜色: %@", signatureColor);
|
||||
|
||||
// 应用呼吸光晕动效 ⭐
|
||||
[self applyBreathingGlow];
|
||||
} else {
|
||||
// 没有专属颜色,使用默认白色边框
|
||||
self.avatarImageView.layer.borderColor = [UIColor whiteColor].CGColor;
|
||||
self.avatarImageView.layer.borderWidth = 3;
|
||||
// 没有专属颜色,保持无边框
|
||||
self.avatarImageView.layer.borderWidth = 0;
|
||||
|
||||
// 默认轻微阴影
|
||||
self.avatarImageView.layer.shadowColor = [UIColor blackColor].CGColor;
|
||||
self.avatarImageView.layer.shadowOffset = CGSizeMake(0, 2);
|
||||
self.avatarImageView.layer.shadowOpacity = 0.2;
|
||||
self.avatarImageView.layer.shadowRadius = 8;
|
||||
|
||||
// 移除光晕层
|
||||
if (self.glowLayer) {
|
||||
[self.glowLayer removeFromSuperlayer];
|
||||
self.glowLayer = nil;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// 应用呼吸光晕动效
|
||||
- (void)applyBreathingGlow {
|
||||
NSString *signatureColor = [EPEmotionColorStorage userSignatureColor];
|
||||
if (!signatureColor) return;
|
||||
|
||||
UIColor *color = [self colorFromHex:signatureColor];
|
||||
|
||||
// 创建光晕层(如果不存在)
|
||||
if (!self.glowLayer) {
|
||||
self.glowLayer = [CALayer layer];
|
||||
self.glowLayer.frame = CGRectInset(self.avatarImageView.frame, -8, -8); // 比头像大 16pt
|
||||
self.glowLayer.cornerRadius = 68; // 头像 60 + 扩展 8
|
||||
self.glowLayer.backgroundColor = [color colorWithAlphaComponent:0.75].CGColor; // 大幅加深
|
||||
|
||||
// 插入到头像 layer 下方
|
||||
[self.layer insertSublayer:self.glowLayer below:self.avatarImageView.layer];
|
||||
} else {
|
||||
// 更新颜色
|
||||
self.glowLayer.backgroundColor = [color colorWithAlphaComponent:0.75].CGColor; // 大幅加深
|
||||
}
|
||||
|
||||
// 移除旧动画
|
||||
[self.glowLayer removeAllAnimations];
|
||||
|
||||
// 创建呼吸动画组
|
||||
CAAnimationGroup *breathingGroup = [CAAnimationGroup animation];
|
||||
breathingGroup.duration = 1.8; // 加速
|
||||
breathingGroup.repeatCount = HUGE_VALF; // 无限循环
|
||||
breathingGroup.autoreverses = YES;
|
||||
breathingGroup.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
|
||||
|
||||
// 动画 1:透明度变化(呼吸亮度)
|
||||
CABasicAnimation *opacityAnim = [CABasicAnimation animationWithKeyPath:@"opacity"];
|
||||
opacityAnim.fromValue = @(0.65);
|
||||
opacityAnim.toValue = @(1.0); // 接近完全不透明,颜色饱和
|
||||
|
||||
// 动画 2:缩放变化(呼吸扩散)
|
||||
CABasicAnimation *scaleAnim = [CABasicAnimation animationWithKeyPath:@"transform.scale"];
|
||||
scaleAnim.fromValue = @(1.0);
|
||||
scaleAnim.toValue = @(1.1);
|
||||
|
||||
breathingGroup.animations = @[opacityAnim, scaleAnim];
|
||||
|
||||
[self.glowLayer addAnimation:breathingGroup forKey:@"breathing"];
|
||||
|
||||
NSLog(@"[EPMineHeaderView] 启动呼吸光晕动效");
|
||||
}
|
||||
|
||||
/// Hex 转 UIColor
|
||||
- (UIColor *)colorFromHex:(NSString *)hexString {
|
||||
|
@@ -200,8 +200,7 @@ NSString *const EPMomentPublishSuccessNotification = @"EPMomentPublishSuccessNot
|
||||
|
||||
// 验证:文本或图片至少有一项
|
||||
if (self.textView.text.length == 0 && self.images.count == 0) {
|
||||
// TODO: 显示错误提示 "请输入内容或选择图片"
|
||||
NSLog(@"请输入内容或选择图片");
|
||||
[EPProgressHUD showError:YMLocalizedString(@"publish.content_or_image_required")];
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -336,7 +335,7 @@ NSString *const EPMomentPublishSuccessNotification = @"EPMomentPublishSuccessNot
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [UILabel new];
|
||||
_titleLabel.text = @"图文发布";
|
||||
_titleLabel.text = YMLocalizedString(@"publish.title");
|
||||
_titleLabel.textColor = [UIColor whiteColor]; // 白色适配深色背景
|
||||
_titleLabel.font = [UIFont systemFontOfSize:17];
|
||||
}
|
||||
@@ -345,7 +344,7 @@ NSString *const EPMomentPublishSuccessNotification = @"EPMomentPublishSuccessNot
|
||||
- (UIButton *)publishButton {
|
||||
if (!_publishButton) {
|
||||
_publishButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[_publishButton setTitle:@"发布" forState:UIControlStateNormal];
|
||||
[_publishButton setTitle:YMLocalizedString(@"common.publish") forState:UIControlStateNormal];
|
||||
[_publishButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
|
||||
_publishButton.titleLabel.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium];
|
||||
_publishButton.layer.cornerRadius = 25;
|
||||
|
@@ -85,7 +85,7 @@
|
||||
UIImage *addIcon = [UIImage imageNamed:@"icon_moment_add"];
|
||||
UIButton *publishButton = [UIButton buttonWithType:UIButtonTypeCustom];
|
||||
[publishButton setImage:addIcon forState:UIControlStateNormal];
|
||||
publishButton.frame = CGRectMake(0, 0, 40, 50);
|
||||
publishButton.frame = CGRectMake(0, 0, 40, 40);
|
||||
[publishButton addTarget:self action:@selector(onPublishButtonTapped) forControlEvents:UIControlEventTouchUpInside];
|
||||
UIBarButtonItem *publishItem = [[UIBarButtonItem alloc] initWithCustomView:publishButton];
|
||||
self.navigationItem.rightBarButtonItem = publishItem;
|
||||
@@ -105,10 +105,10 @@
|
||||
}
|
||||
|
||||
- (void)showAlertWithMessage:(NSString *)message {
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示"
|
||||
UIAlertController *alert = [UIAlertController alertControllerWithTitle:YMLocalizedString(@"common.tips")
|
||||
message:message
|
||||
preferredStyle:UIAlertControllerStyleAlert];
|
||||
[alert addAction:[UIAlertAction actionWithTitle:@"确定" style:UIAlertActionStyleDefault handler:nil]];
|
||||
[alert addAction:[UIAlertAction actionWithTitle:YMLocalizedString(@"common.confirm") style:UIAlertActionStyleDefault handler:nil]];
|
||||
[self presentViewController:alert animated:YES completion:nil];
|
||||
}
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
__weak typeof(self) weakSelf = self;
|
||||
_listView.onSelectMoment = ^(NSInteger index) {
|
||||
__strong typeof(weakSelf) self = weakSelf;
|
||||
[self showAlertWithMessage:[NSString stringWithFormat:@"点击了第 %ld 条动态", (long)index]];
|
||||
[self showAlertWithMessage:[NSString stringWithFormat:YMLocalizedString(@"moment.item_clicked"), (long)index]];
|
||||
};
|
||||
}
|
||||
return _listView;
|
||||
|
@@ -37,7 +37,7 @@ import Foundation
|
||||
completion([], "")
|
||||
}
|
||||
} else {
|
||||
failure(Int(code), msg ?? "请求失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.request_failed"))
|
||||
}
|
||||
}, dynamicId: nextID, pageSize: pageSize, types: types)
|
||||
}
|
||||
@@ -57,7 +57,7 @@ import Foundation
|
||||
failure: @escaping (Int, String) -> Void
|
||||
) {
|
||||
guard let uid = AccountInfoStorage.instance().getUid() else {
|
||||
failure(-1, "用户未登录")
|
||||
failure(-1, YMLocalizedString("error.not_logged_in"))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ import Foundation
|
||||
if code == 200 {
|
||||
completion()
|
||||
} else {
|
||||
failure(Int(code), msg ?? "发布失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.publish_failed"))
|
||||
}
|
||||
}, uid: uid, type: type, worldId: "", content: content, resList: resList)
|
||||
}
|
||||
@@ -92,7 +92,7 @@ import Foundation
|
||||
failure: @escaping (Int, String) -> Void
|
||||
) {
|
||||
guard let uid = AccountInfoStorage.instance().getUid() else {
|
||||
failure(-1, "用户未登录")
|
||||
failure(-1, YMLocalizedString("error.not_logged_in"))
|
||||
return
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ import Foundation
|
||||
if code == 200 {
|
||||
completion()
|
||||
} else {
|
||||
failure(Int(code), msg ?? "点赞操作失败")
|
||||
failure(Int(code), msg ?? YMLocalizedString("error.like_failed"))
|
||||
}
|
||||
}, dynamicId: dynamicId, uid: uid, status: status, likedUid: likedUid, worldId: worldIdStr)
|
||||
}
|
||||
|
@@ -21,6 +21,9 @@
|
||||
/// 卡片容器
|
||||
@property (nonatomic, strong) UIView *cardView;
|
||||
|
||||
/// 彩色背景层(毛玻璃下方)
|
||||
@property (nonatomic, strong) UIView *colorBackgroundView;
|
||||
|
||||
/// 毛玻璃效果视图
|
||||
@property (nonatomic, strong) UIVisualEffectView *blurEffectView;
|
||||
|
||||
@@ -83,7 +86,13 @@
|
||||
make.bottom.equalTo(self.contentView).offset(-8);
|
||||
}];
|
||||
|
||||
// 毛玻璃效果视图
|
||||
// 彩色背景层(最底层)
|
||||
[self.cardView addSubview:self.colorBackgroundView];
|
||||
[self.colorBackgroundView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.cardView);
|
||||
}];
|
||||
|
||||
// 毛玻璃效果视图(在彩色背景层之上)
|
||||
[self.cardView addSubview:self.blurEffectView];
|
||||
[self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
|
||||
make.edges.equalTo(self.cardView);
|
||||
@@ -153,7 +162,7 @@
|
||||
self.currentModel = model;
|
||||
|
||||
// 配置用户名
|
||||
self.nameLabel.text = model.nick ?: @"匿名用户";
|
||||
self.nameLabel.text = model.nick ?: YMLocalizedString(@"user.anonymous");
|
||||
|
||||
// 配置时间(将时间戳转换为 MM/dd 格式)
|
||||
self.timeLabel.text = [self formatTimestampToDate:model.publishTime];
|
||||
@@ -176,20 +185,21 @@
|
||||
[self applyEmotionColorEffect:model.emotionColor];
|
||||
}
|
||||
|
||||
/// 应用情绪颜色视觉效果(Border + Shadow)
|
||||
/// 应用情绪颜色视觉效果(Background + Shadow)
|
||||
- (void)applyEmotionColorEffect:(NSString *)emotionColorHex {
|
||||
NSString *displayColorHex = emotionColorHex;
|
||||
|
||||
// 如果没有保存的颜色,使用随机颜色(不持久化)
|
||||
if (!displayColorHex) {
|
||||
displayColorHex = [EPEmotionColorStorage randomEmotionColor];
|
||||
// 获取颜色(已在列表加载时处理,这里直接使用)
|
||||
if (!emotionColorHex) {
|
||||
NSLog(@"[EPMomentCell] 警告:emotionColorHex 为 nil");
|
||||
return;
|
||||
}
|
||||
|
||||
UIColor *color = [self colorFromHex:displayColorHex];
|
||||
UIColor *color = [self colorFromHex:emotionColorHex];
|
||||
|
||||
// 设置 border
|
||||
self.cardView.layer.borderWidth = 3.0;
|
||||
self.cardView.layer.borderColor = color.CGColor;
|
||||
// 移除边框
|
||||
self.cardView.layer.borderWidth = 0;
|
||||
|
||||
// 设置彩色背景(50% 透明度,在毛玻璃下方)
|
||||
self.colorBackgroundView.backgroundColor = [color colorWithAlphaComponent:0.5];
|
||||
|
||||
// 设置 shadow(使用情绪颜色)
|
||||
self.cardView.layer.shadowColor = color.CGColor;
|
||||
@@ -295,18 +305,18 @@
|
||||
|
||||
/// 格式化时间戳为相对时间
|
||||
- (NSString *)formatTimeInterval:(NSInteger)timestamp {
|
||||
if (timestamp <= 0) return @"刚刚";
|
||||
if (timestamp <= 0) return YMLocalizedString(@"time.just_now");
|
||||
|
||||
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] - timestamp / 1000.0;
|
||||
|
||||
if (interval < 60) {
|
||||
return @"刚刚";
|
||||
return YMLocalizedString(@"time.just_now");
|
||||
} else if (interval < 3600) {
|
||||
return [NSString stringWithFormat:@"%.0f分钟前", interval / 60];
|
||||
return [NSString stringWithFormat:YMLocalizedString(@"time.minutes_ago"), interval / 60];
|
||||
} else if (interval < 86400) {
|
||||
return [NSString stringWithFormat:@"%.0f小时前", interval / 3600];
|
||||
return [NSString stringWithFormat:YMLocalizedString(@"time.hours_ago"), interval / 3600];
|
||||
} else if (interval < 604800) {
|
||||
return [NSString stringWithFormat:@"%.0f天前", interval / 86400];
|
||||
return [NSString stringWithFormat:YMLocalizedString(@"time.days_ago"), interval / 86400];
|
||||
} else {
|
||||
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
|
||||
formatter.dateFormat = @"yyyy-MM-dd";
|
||||
@@ -415,14 +425,23 @@
|
||||
- (UIView *)cardView {
|
||||
if (!_cardView) {
|
||||
_cardView = [[UIView alloc] init];
|
||||
_cardView.backgroundColor = [UIColor clearColor]; // 透明背景,毛玻璃效果由 blurEffectView 提供
|
||||
_cardView.backgroundColor = [UIColor clearColor]; // 透明背景,颜色由 colorBackgroundView 提供
|
||||
_cardView.layer.cornerRadius = 12; // 圆角
|
||||
// Shadow 和 Border 将由 applyEmotionColorEffect 动态设置
|
||||
// Shadow 将由 applyEmotionColorEffect 动态设置
|
||||
_cardView.layer.masksToBounds = NO;
|
||||
}
|
||||
return _cardView;
|
||||
}
|
||||
|
||||
- (UIView *)colorBackgroundView {
|
||||
if (!_colorBackgroundView) {
|
||||
_colorBackgroundView = [[UIView alloc] init];
|
||||
_colorBackgroundView.layer.cornerRadius = 12;
|
||||
_colorBackgroundView.layer.masksToBounds = YES;
|
||||
}
|
||||
return _colorBackgroundView;
|
||||
}
|
||||
|
||||
- (UIVisualEffectView *)blurEffectView {
|
||||
if (!_blurEffectView) {
|
||||
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];
|
||||
|
@@ -154,8 +154,13 @@
|
||||
NSString *savedColor = [EPEmotionColorStorage colorForDynamicId:model.dynamicId];
|
||||
if (savedColor) {
|
||||
model.emotionColor = savedColor;
|
||||
} else {
|
||||
// 无保存颜色,生成随机颜色并立即持久化
|
||||
NSString *randomColor = [EPEmotionColorStorage randomEmotionColor];
|
||||
model.emotionColor = randomColor;
|
||||
[EPEmotionColorStorage saveColor:randomColor forDynamicId:model.dynamicId];
|
||||
NSLog(@"[EPMomentListView] 为动态 %@ 分配随机颜色: %@", model.dynamicId, randomColor);
|
||||
}
|
||||
// 不设置则保持 nil,Cell 渲染时会随机生成
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,7 +224,7 @@
|
||||
|
||||
// MJRefresh Footer - 加载更多
|
||||
__weak typeof(self) weakSelf = self;
|
||||
_tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
|
||||
MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
|
||||
__strong typeof(weakSelf) self = weakSelf;
|
||||
if (!self.isLoading && self.nextID.length > 0) {
|
||||
[self requestNextPage];
|
||||
@@ -229,6 +234,10 @@
|
||||
[self.tableView.mj_footer endRefreshing];
|
||||
}
|
||||
}];
|
||||
// 设置白色文字和指示器
|
||||
footer.stateLabel.textColor = [UIColor whiteColor];
|
||||
footer.loadingView.color = [UIColor whiteColor];
|
||||
_tableView.mj_footer = footer;
|
||||
}
|
||||
return _tableView;
|
||||
}
|
||||
@@ -236,6 +245,7 @@
|
||||
- (UIRefreshControl *)refreshControl {
|
||||
if (!_refreshControl) {
|
||||
_refreshControl = [[UIRefreshControl alloc] init];
|
||||
_refreshControl.tintColor = [UIColor whiteColor]; // 白色加载指示器
|
||||
[_refreshControl addTarget:self action:@selector(reloadFirstPage) forControlEvents:UIControlEventValueChanged];
|
||||
}
|
||||
return _refreshControl;
|
||||
|
@@ -197,7 +197,7 @@ import SnapKit
|
||||
selectedIndex = newIndex
|
||||
}
|
||||
|
||||
let tabNames = ["动态", "我的"]
|
||||
let tabNames = [YMLocalizedString("tab.moment"), YMLocalizedString("tab.mine")]
|
||||
NSLog("[EPTabBarController] 选中 Tab: \(tabNames[newIndex])")
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ import SnapKit
|
||||
let blankVC1 = UIViewController()
|
||||
blankVC1.view.backgroundColor = .white
|
||||
blankVC1.tabBarItem = createTabBarItem(
|
||||
title: "动态",
|
||||
title: YMLocalizedString("tab.moment"),
|
||||
normalImage: "tab_moment_normal",
|
||||
selectedImage: "tab_moment_selected"
|
||||
)
|
||||
@@ -262,7 +262,7 @@ import SnapKit
|
||||
let blankVC2 = UIViewController()
|
||||
blankVC2.view.backgroundColor = .white
|
||||
blankVC2.tabBarItem = createTabBarItem(
|
||||
title: "我的",
|
||||
title: YMLocalizedString("tab.mine"),
|
||||
normalImage: "tab_mine_normal",
|
||||
selectedImage: "tab_mine_selected"
|
||||
)
|
||||
@@ -313,20 +313,20 @@ import SnapKit
|
||||
|
||||
// 创建动态页
|
||||
let momentVC = EPMomentViewController()
|
||||
momentVC.title = "动态"
|
||||
momentVC.title = YMLocalizedString("tab.moment")
|
||||
let momentNav = createTransparentNavigationController(
|
||||
rootViewController: momentVC,
|
||||
tabTitle: "动态",
|
||||
tabTitle: YMLocalizedString("tab.moment"),
|
||||
normalImage: "tab_moment_normal",
|
||||
selectedImage: "tab_moment_selected"
|
||||
)
|
||||
|
||||
// 创建我的页
|
||||
let mineVC = EPMineViewController()
|
||||
mineVC.title = "我的"
|
||||
mineVC.title = YMLocalizedString("tab.mine")
|
||||
let mineNav = createTransparentNavigationController(
|
||||
rootViewController: mineVC,
|
||||
tabTitle: "我的",
|
||||
tabTitle: YMLocalizedString("tab.mine"),
|
||||
normalImage: "tab_mine_normal",
|
||||
selectedImage: "tab_mine_selected"
|
||||
)
|
||||
|
@@ -57,7 +57,7 @@
|
||||
<key>FacebookClientToken</key>
|
||||
<string>189d1a90712cc61cedded4cf1372cb21</string>
|
||||
<key>FacebookDisplayName</key>
|
||||
<string>E-Parti</string>
|
||||
<string>E-Party</string>
|
||||
<key>ITSAppUsesNonExemptEncryption</key>
|
||||
<false/>
|
||||
<key>LSApplicationQueriesSchemes</key>
|
||||
@@ -96,17 +96,17 @@
|
||||
<true/>
|
||||
</dict>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>"E-Parti"需要您的同意,才可以访问进行拍照并上传您的图片,然后展示在您的个人主页上,便于他人查看</string>
|
||||
<string>"E-Party"需要您的同意,才可以访问进行拍照并上传您的图片,然后展示在您的个人主页上,便于他人查看</string>
|
||||
<key>NSLocalNetworkUsageDescription</key>
|
||||
<string>此App将可发现和连接到您所用网络上的设备。</string>
|
||||
<key>NSLocationWhenInUseUsageDescription</key>
|
||||
<string>"E-Parti"需要您的同意,才可以进行定位服务,推荐附近好友</string>
|
||||
<string>"E-Party"需要您的同意,才可以进行定位服务,推荐附近好友</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>"E-Parti"需要您的同意,才可以进行语音聊天</string>
|
||||
<string>"E-Party"需要您的同意,才可以进行语音聊天</string>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
<string>"E-Parti"需要您的同意,才可以存储相片到相册</string>
|
||||
<string>"E-Party"需要您的同意,才可以存储相片到相册</string>
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>"E-Parti"需要您的同意,才可以访问相册并选择您需要上传的图片,然后展示在您的个人主页上,便于他人查看</string>
|
||||
<string>"E-Party"需要您的同意,才可以访问相册并选择您需要上传的图片,然后展示在您的个人主页上,便于他人查看</string>
|
||||
<key>NSUserTrackingUsageDescription</key>
|
||||
<string>請允許我們獲取您的IDFA權限,可以為您提供個性化活動和服務。未經您的允許,您的信息將不作其他用途。</string>
|
||||
<key>UIApplicationSupportsIndirectInputEvents</key>
|
||||
|
@@ -274,7 +274,7 @@
|
||||
- (UILabel *)titleLabel {
|
||||
if (!_titleLabel) {
|
||||
_titleLabel = [[UILabel alloc] init];
|
||||
_titleLabel.text = @"Welcome to E-Parti!";
|
||||
_titleLabel.text = @"Welcome to E-Party!";
|
||||
_titleLabel.font = kFontBold(28);
|
||||
_titleLabel.textColor = UIColorFromRGB(0x1F1B4F);
|
||||
}
|
||||
|
@@ -108,7 +108,7 @@ static __weak UIViewController *_presentingVC = nil;
|
||||
NSMutableArray *shareItems = [NSMutableArray array];
|
||||
|
||||
// 1. 添加纯文本(用于备忘录等文本应用)
|
||||
NSString *plainText = [NSString stringWithFormat:@"🎵 发现精彩内容\n\n%@\n\n🔗 %@\n\n—— 来自 E-Parti ——",
|
||||
NSString *plainText = [NSString stringWithFormat:@"🎵 发现精彩内容\n\n%@\n\n🔗 %@\n\n—— 来自 E-Party ——",
|
||||
subtitle, url.absoluteString ?: @""];
|
||||
[shareItems addObject:plainText];
|
||||
|
||||
@@ -219,8 +219,8 @@ static __weak UIViewController *_presentingVC = nil;
|
||||
|
||||
// 1. 准备分享内容
|
||||
NSString *title = @"🎵 Apple Music 专辑推荐:Imagine Dragons";
|
||||
NSString *subtitle = @"来自E-Parti的精彩推荐";
|
||||
NSString *appName = @"E-Parti";
|
||||
NSString *subtitle = @"来自E-Party的精彩推荐";
|
||||
NSString *appName = @"E-Party";
|
||||
NSURL *albumURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", API_HOST_URL, urlString]];
|
||||
UIImage *albumImage = image;
|
||||
|
||||
|
@@ -21,7 +21,7 @@
|
||||
if (self) {
|
||||
_title = title ?: @"";
|
||||
_subtitle = subtitle ?: @"";
|
||||
_appName = appName ?: @"E-Parti";
|
||||
_appName = appName ?: @"E-Party";
|
||||
_url = url;
|
||||
_image = image;
|
||||
_appIcon = appIcon;
|
||||
|
@@ -689,7 +689,7 @@
|
||||
|
||||
"XPLoginPwdViewController4" = "تسجيل الدخول برقم الهاتف";
|
||||
"XPLoginPwdViewController5" = "نسيت كلمة المرور";
|
||||
"XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Parti";
|
||||
"XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Party";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "ربط الهاتف";
|
||||
"XPLoginBindPhoneResultViewController1" = "رقم الهاتف المرتبط حاليًا هو";
|
||||
@@ -727,7 +727,7 @@
|
||||
"XPShareView5" = "فشلت عملية المشاركة";
|
||||
"XPShareView6" = "إلغاء المشاركة";
|
||||
"XPShareView7" = "إلغاء";
|
||||
"XPShareView8" = "تعال إلى E-Parti واكتشف صوتك الخاص";
|
||||
"XPShareView8" = "تعال إلى E-Party واكتشف صوتك الخاص";
|
||||
"XPShareView9" = "التطبيق غير مثبت، فشلت عملية المشاركة";
|
||||
|
||||
///XPFirstRechargeViewController.m
|
||||
@@ -1904,7 +1904,7 @@ ineHeadView12" = "الحمل";
|
||||
"RoomHeaderView2" = "متصل: %ld ID: %ld";
|
||||
|
||||
"RoomHeaderView3" = "نسخ الرابط";
|
||||
"RoomHeaderView4" = "تعال إلى E-Parti، ولنلعب ونتعارف ونلعب ألعابًا";
|
||||
"RoomHeaderView4" = "تعال إلى E-Party، ولنلعب ونتعارف ونلعب ألعابًا";
|
||||
"RoomHeaderView5" = "شخص جميل وصوت حلو يحقق الانتصارات، هيا لنلعب معًا~";
|
||||
"RoomHeaderView6" = "تمت الإضافة للمفضلة بنجاح";
|
||||
"RoomHeaderView7" = "تمت المشاركة بنجاح";
|
||||
@@ -2883,7 +2883,7 @@ ineHeadView12" = "الحمل";
|
||||
"XPLoginPwdViewController3" = "من فضلك إدخل الرقم السري";
|
||||
"XPLoginPwdViewController4" = "تسجيل الدخول باستخدام رقم الهاتف";
|
||||
"XPLoginPwdViewController5" = "نسيت كلمة المرور";
|
||||
"XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Parti الخاص بك";
|
||||
"XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Party الخاص بك";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "ربط الهاتف";
|
||||
"XPLoginBindPhoneResultViewController1" = "رقم الهاتف المرتبط بك حاليًا هو";
|
||||
@@ -3623,7 +3623,7 @@ ineHeadView12" = "الحمل";
|
||||
"PIMessageContentServiceReplyView0"="كيفية الشحن:";
|
||||
"PIMessageContentServiceReplyView1"="نسخ";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1. للصوت - 【الشحن بالعملات】 للقيام بشحن الرصيد E-Parti اذهب إلى قسم 【الخاص بي】 داخل تطبيق";
|
||||
"PIMessageContentServiceReplyView2"="1. للصوت - 【الشحن بالعملات】 للقيام بشحن الرصيد E-Party اذهب إلى قسم 【الخاص بي】 داخل تطبيق";
|
||||
"PIMessageContentServiceReplyView3"="2. ٢. اتصل بخدمة العملاء";
|
||||
"PIMessageContentServiceReplyView4"="WeChat لخدمة العملاء: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Line لخدمة العملاء: %@ ";
|
||||
@@ -4120,7 +4120,7 @@ ineHeadView12" = "الحمل";
|
||||
"1.0.37_text_52" = "لا يمكنك استخدام هذه الميزة.";
|
||||
|
||||
"20.20.51_text_1" = "تسجيل الدخول بالبريد الإلكتروني";
|
||||
"20.20.51_text_2" = "Welcome to E-Parti";
|
||||
"20.20.51_text_2" = "Welcome to E-Party";
|
||||
"20.20.51_text_3" = "الرجاء إدخال المعرف";
|
||||
"20.20.51_text_4" = "يرجى إدخال البريد الإلكتروني";
|
||||
"20.20.51_text_7" = "يرجى إدخال رمز التحقق";
|
||||
|
@@ -1,9 +1,9 @@
|
||||
|
||||
|
||||
NSCameraUsageDescription ="\"E-Parti\" needs your consent before you can visit, take photos and upload your pictures, and then display them on your personal homepage for others to view";
|
||||
NSCameraUsageDescription ="\"E-Party\" needs your consent before you can visit, take photos and upload your pictures, and then display them on your personal homepage for others to view";
|
||||
NSLocalNetworkUsageDescription ="The app will discover and connect to devices on your network";
|
||||
NSLocationWhenInUseUsageDescription = "Your consent is required before you can use location services and recommend nearby friends";
|
||||
NSMicrophoneUsageDescription = "\"E-Parti\" needs your consent before it can conduct voice chat";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" needs your consent before it can store photos in the album";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Parti\" needs your consent before you can access the album and select the pictures you need to upload, and then display them on your personal homepage for others to view";
|
||||
NSMicrophoneUsageDescription = "\"E-Party\" needs your consent before it can conduct voice chat";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Party\" needs your consent before it can store photos in the album";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Party\" needs your consent before you can access the album and select the pictures you need to upload, and then display them on your personal homepage for others to view";
|
||||
NSUserTrackingUsageDescription = "Please allow us to obtain your idfa permission to provide you with personalized activities and services. your information will not be used for other purposes without your permission";
|
||||
|
@@ -393,7 +393,7 @@
|
||||
|
||||
"XPLoginPwdViewController4" = "Phone number login";
|
||||
"XPLoginPwdViewController5" = "Forgot password";
|
||||
"XPLoginPwdViewController6" = "Please enter a E-Parti account";
|
||||
"XPLoginPwdViewController6" = "Please enter a E-Party account";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Bind phone";
|
||||
"XPLoginBindPhoneResultViewController1" = "Your current bound phone number is";
|
||||
@@ -455,7 +455,7 @@
|
||||
"XPShareView5" = "Share failed";
|
||||
"XPShareView6" = "Cancel sharing";
|
||||
"XPShareView7" = "Cancel";
|
||||
"XPShareView8" = "Come to E-Parti and meet your exclusive voice";
|
||||
"XPShareView8" = "Come to E-Party and meet your exclusive voice";
|
||||
"XPShareView9" = "Failed to share due to the absence of related apps";
|
||||
"XPFirstRechargeViewController0" = "1. Each person can only receive the first recharge benefit once\n2. Each ID and device can only participate once.";
|
||||
"XPFirstRechargeViewController1" = "Recharge now";
|
||||
@@ -511,12 +511,12 @@
|
||||
"HttpRequestHelper1" = "Please check network connection";
|
||||
"HttpRequestHelper2" = "Please check network connection";
|
||||
"HttpRequestHelper3" = "Login session has expired";
|
||||
"HttpRequestHelper4" = "E-Parti is taking a break Please try again later";
|
||||
"HttpRequestHelper4" = "E-Party is taking a break Please try again later";
|
||||
"HttpRequestHelper5" = "Unknown error from server";
|
||||
"HttpRequestHelper6" = "Please check network connection";
|
||||
"HttpRequestHelper7" = "Login session has expired.";
|
||||
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
|
||||
"XPMineNotificaPresenter0" = "System Notifications";
|
||||
"XPMineNotificaPresenter1" = "When turned off, system messages and official assistants will no longer prompt";
|
||||
@@ -932,7 +932,7 @@
|
||||
"XPIAPRechargeViewController2" = "Confirm Recharge";
|
||||
"XPIAPRechargeViewController3" = "《User Recharge Agreement》";
|
||||
"XPIAPRechargeViewController4" = "I have read and agree";
|
||||
"XPIAPRechargeViewController5" = "For any questions, please contact customer service, E-Parti ID";
|
||||
"XPIAPRechargeViewController5" = "For any questions, please contact customer service, E-Party ID";
|
||||
"XPIAPRechargeViewController6" = "My Account";
|
||||
"XPIAPRechargeViewController7" = "Reminder";
|
||||
"XPIAPRechargeViewController8" = "Recharge failed. Please contact customer service for assistance.";
|
||||
@@ -1640,7 +1640,7 @@
|
||||
"RoomHeaderView1" = "Online: %ld ID: %ld";
|
||||
"RoomHeaderView2" = "Online: %ld ID: %ld";
|
||||
"RoomHeaderView3" = "Copy Link";
|
||||
"RoomHeaderView4" = "Come to E-Parti, play games and make friends";
|
||||
"RoomHeaderView4" = "Come to E-Party, play games and make friends";
|
||||
"RoomHeaderView5" = "Beautiful people with sweet voices win points, let's play together~";
|
||||
"RoomHeaderView6" = "Bookmark Successful";
|
||||
"RoomHeaderView7" = "Share Successful";
|
||||
@@ -2315,7 +2315,7 @@
|
||||
"XPLoginPwdViewController3" = "Please enter password";
|
||||
"XPLoginPwdViewController4" = "Phone Number Login";
|
||||
"XPLoginPwdViewController5" = "Forget Password";
|
||||
"XPLoginPwdViewController6" = "Please enter your E-Parti account";
|
||||
"XPLoginPwdViewController6" = "Please enter your E-Party account";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Bind Phone";
|
||||
"XPLoginBindPhoneResultViewController1" = "The current bound phone number is";
|
||||
@@ -3418,7 +3418,7 @@
|
||||
"PIMessageContentServiceReplyView0"="How to Top-Up:";
|
||||
"PIMessageContentServiceReplyView1"="Copy";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1. Go to 【My】-- 【Top-Up Coins】 inside E-Parti Voice App to top-up";
|
||||
"PIMessageContentServiceReplyView2"="1. Go to 【My】-- 【Top-Up Coins】 inside E-Party Voice App to top-up";
|
||||
"PIMessageContentServiceReplyView3"="2. Contact customer service";
|
||||
"PIMessageContentServiceReplyView4"="Customer Service WeChat: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Customer Service Line: %@ ";
|
||||
@@ -3908,7 +3908,7 @@
|
||||
"1.0.37_text_52" = "Your cannot use this feature.";
|
||||
|
||||
"20.20.51_text_1" = "Email Login";
|
||||
"20.20.51_text_2" = "Welcome to E-Parti";
|
||||
"20.20.51_text_2" = "Welcome to E-Party";
|
||||
"20.20.51_text_3" = "Please enter ID";
|
||||
"20.20.51_text_4" = "Please enter email";
|
||||
"20.20.51_text_7" = "Please enter verification code";
|
||||
@@ -4066,3 +4066,149 @@
|
||||
"EPEditSetting.LogoutConfirm" = "Are you sure you want to log out?";
|
||||
"EPEditSetting.Cancel" = "Cancel";
|
||||
"EPEditSetting.Confirm" = "Confirm";
|
||||
|
||||
/* EP Module Keys - Added for English localization */
|
||||
|
||||
/*
|
||||
* EP Module - English Localization Keys
|
||||
* 用于替换 EP 模块中所有硬编码中文
|
||||
*/
|
||||
|
||||
// MARK: - Common 通用
|
||||
"common.tips" = "Tips";
|
||||
"common.confirm" = "Confirm";
|
||||
"common.cancel" = "Cancel";
|
||||
"common.ok" = "OK";
|
||||
"common.publish" = "Publish";
|
||||
"common.save" = "Save";
|
||||
"common.delete" = "Delete";
|
||||
"common.upload_failed" = "Upload Failed";
|
||||
"common.update_failed" = "Update Failed";
|
||||
"common.loading" = "Loading...";
|
||||
"common.success" = "Success";
|
||||
"common.failed" = "Failed";
|
||||
|
||||
// MARK: - User 用户相关
|
||||
"user.anonymous" = "Anonymous";
|
||||
"user.nickname_not_set" = "Nickname Not Set";
|
||||
"user.not_set" = "Not Set";
|
||||
|
||||
// MARK: - Time 时间格式化
|
||||
"time.just_now" = "Just now";
|
||||
"time.minutes_ago" = "%.0f minutes ago";
|
||||
"time.hours_ago" = "%.0f hours ago";
|
||||
"time.days_ago" = "%.0f days ago";
|
||||
|
||||
// MARK: - Tab Bar Tab 标题
|
||||
"tab.moment" = "Moments";
|
||||
"tab.mine" = "Mine";
|
||||
|
||||
// MARK: - Moment 动态相关
|
||||
"moment.title" = "Enjoy your Life Time";
|
||||
"moment.item_clicked" = "Clicked item %ld";
|
||||
"moment.under_review" = "Moment is under review, cannot like";
|
||||
"moment.like" = "Like";
|
||||
"moment.unlike" = "Unlike";
|
||||
"moment.like_success" = "Like success";
|
||||
"moment.unlike_success" = "Unlike success";
|
||||
"moment.like_failed" = "Like failed: %@";
|
||||
"moment.click_image_index" = "Clicked image index: %ld";
|
||||
|
||||
// MARK: - Publish 发布相关
|
||||
"publish.title" = "Publish";
|
||||
"publish.content_or_image_required" = "Please enter content or select image";
|
||||
"publish.publish_failed" = "Publish failed: %ld - %@";
|
||||
"publish.upload_failed" = "Upload failed: %@";
|
||||
|
||||
// MARK: - Mine 我的页面
|
||||
"mine.settings_clicked" = "Settings button clicked";
|
||||
"mine.not_logged_in" = "User not logged in";
|
||||
"mine.load_user_info_failed" = "Failed to load user info";
|
||||
"mine.load_user_info_failed_msg" = "Failed to load user info: %@";
|
||||
"mine.item_clicked" = "Clicked item %ld (Mine)";
|
||||
"mine.open_settings" = "Open settings page with user info";
|
||||
"mine.avatar_updated" = "Avatar updated: %@";
|
||||
|
||||
// MARK: - Settings 设置页面
|
||||
"setting.nickname_update_success" = "Nickname updated: %@";
|
||||
"setting.nickname_update_failed" = "Nickname update failed, please try again later";
|
||||
"setting.nickname_update_failed_msg" = "Nickname update failed: %ld - %@";
|
||||
"setting.avatar_update_failed" = "Avatar update failed, please try again later";
|
||||
"setting.avatar_upload_success" = "Avatar uploaded: %@";
|
||||
"setting.avatar_upload_failed" = "Avatar upload failed: %@";
|
||||
"setting.avatar_upload_no_url" = "Avatar uploaded but no URL returned";
|
||||
"setting.avatar_update_success" = "Avatar updated";
|
||||
"setting.avatar_update_failed_msg" = "Avatar update failed: %ld - %@";
|
||||
"setting.image_not_selected" = "Image not selected";
|
||||
"setting.account_not_found" = "Account info not found";
|
||||
"setting.redirected_to_login" = "Redirected to login page";
|
||||
"setting.feature_reserved" = "[%@] - Feature reserved for future implementation";
|
||||
"setting.user_info_updated" = "User info updated: %@";
|
||||
|
||||
// MARK: - Login 登录相关
|
||||
"login.debug_mode_active" = "✅ DEBUG mode active";
|
||||
"login.release_mode" = "⚠️ Currently in Release mode";
|
||||
"login.switch_env" = "Switch Environment";
|
||||
"login.feedback_placeholder" = "Feedback - Placeholder, Phase 2 implementation";
|
||||
"login.debug_placeholder" = "Debug - Placeholder, Phase 2 implementation";
|
||||
"login.area_selection_placeholder" = "Area selection - Placeholder, Phase 2 implementation";
|
||||
"login.id_login_success" = "ID login success: %@";
|
||||
"login.email_login_success" = "Email login success: %@";
|
||||
"login.phone_login_success" = "Phone login success: %@";
|
||||
|
||||
// MARK: - Login Manager 登录管理
|
||||
"login_manager.account_incomplete" = "Account info incomplete, cannot continue";
|
||||
"login_manager.access_token_empty" = "access_token is empty, cannot continue";
|
||||
"login_manager.login_success" = "Login success, switched to EPTabBarController";
|
||||
"login_manager.request_ticket_failed" = "Request Ticket failed: %ld - %@";
|
||||
"login_manager.request_ticket_failed_redirect" = "Ticket request failed, still redirect to home page";
|
||||
"login_manager.apple_login_placeholder" = "Apple Login - Placeholder, Phase 2 implementation";
|
||||
"login_manager.debug_show_color_guide" = "Debug mode: Show signature color guide (has color: %d)";
|
||||
"login_manager.user_selected_color" = "User selected signature color: %@";
|
||||
"login_manager.user_skipped_color" = "User skipped signature color selection";
|
||||
|
||||
// MARK: - API Errors API 错误
|
||||
"error.not_logged_in" = "Not logged in";
|
||||
"error.request_failed" = "Request failed";
|
||||
"error.publish_failed" = "Publish failed";
|
||||
"error.like_failed" = "Like operation failed";
|
||||
"error.account_parse_failed" = "Account info parse failed";
|
||||
"error.operation_failed" = "Operation failed";
|
||||
"error.ticket_parse_failed" = "Ticket parse failed";
|
||||
"error.request_ticket_failed" = "Request Ticket failed";
|
||||
"error.send_email_code_failed" = "Send email verification code failed";
|
||||
"error.send_phone_code_failed" = "Send phone verification code failed";
|
||||
"error.login_failed" = "Login failed";
|
||||
"error.reset_password_failed" = "Reset password failed";
|
||||
"error.quick_login_failed" = "Quick login failed";
|
||||
"error.image_compress_failed" = "Image compress failed";
|
||||
"error.qcloud_init_failed" = "QCloud initialization failed";
|
||||
"error.qcloud_config_failed" = "Get QCloud config failed";
|
||||
"error.qcloud_config_not_initialized" = "QCloud config not initialized";
|
||||
|
||||
// MARK: - Upload 上传相关
|
||||
"upload.progress_format" = "Uploading %ld/%ld";
|
||||
|
||||
// MARK: - Color Storage 颜色存储
|
||||
"color_storage.save_signature_color" = "Save user signature color: %@";
|
||||
"color_storage.clear_signature_color" = "Clear user signature color";
|
||||
|
||||
// MARK: - Tab Bar Controller TabBar 控制器
|
||||
"tabbar.init_complete" = "Floating TabBar initialization complete";
|
||||
"tabbar.released" = "Released";
|
||||
"tabbar.setup_complete" = "Floating TabBar setup complete";
|
||||
"tabbar.selected_tab" = "Selected Tab: %@";
|
||||
"tabbar.global_manager_setup" = "Global manager setup complete (v0.2 - No MiniRoom)";
|
||||
"tabbar.initial_vcs_setup" = "Initial ViewControllers setup complete";
|
||||
"tabbar.refresh_login_status" = "TabBar refreshed, login status: %d";
|
||||
"tabbar.login_vcs_created" = "Post-login ViewControllers created - Moment & Mine";
|
||||
"tabbar.show_tabbar_root" = "Show TabBar - Root page";
|
||||
"tabbar.hide_tabbar_child" = "Hide TabBar - Child page (level: %ld)";
|
||||
|
||||
// MARK: - Debug Logs 调试日志(建议直接用英文重写,这里仅供参考)
|
||||
"debug.apply_signature_color" = "Apply signature color: %@";
|
||||
"debug.start_breathing_glow" = "Start breathing glow animation";
|
||||
"debug.warning_emotion_color_nil" = "Warning: emotionColorHex is nil";
|
||||
"debug.assign_random_color" = "Assign random color for moment %@: %@";
|
||||
|
||||
/* End EP Module Keys */
|
||||
|
@@ -1,7 +1,7 @@
|
||||
NSCameraUsageDescription = "\"E-Parti\" necesita su consentimiento para que pueda visitar, tomar fotos y cargar sus imágenes, y luego mostrarlas en su página de inicio personal para que otras personas las vean";
|
||||
NSCameraUsageDescription = "\"E-Party\" necesita su consentimiento para que pueda visitar, tomar fotos y cargar sus imágenes, y luego mostrarlas en su página de inicio personal para que otras personas las vean";
|
||||
NSLocalNetworkUsageDescription = "La aplicación descubrirá y se conectará a dispositivos en su red";
|
||||
NSLocationWhenInUseUsageDescription = "Se requiere su consentimiento antes de que pueda usar los servicios de ubicación y recomendar amigos cercanos";
|
||||
NSMicrophoneUsageDescription = "\"E-Parti\" necesita su consentimiento antes de poder realizar una conversación de voz";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" necesita su consentimiento antes de poder almacenar fotos en el álbum";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Parti\" necesita su consentimiento para que pueda acceder al álbum y seleccionar las imágenes que necesita cargar, y luego mostrarlas en su página de inicio personal para que otras personas las vean";
|
||||
NSMicrophoneUsageDescription = "\"E-Party\" necesita su consentimiento antes de poder realizar una conversación de voz";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Party\" necesita su consentimiento antes de poder almacenar fotos en el álbum";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Party\" necesita su consentimiento para que pueda acceder al álbum y seleccionar las imágenes que necesita cargar, y luego mostrarlas en su página de inicio personal para que otras personas las vean";
|
||||
NSUserTrackingUsageDescription = "Permítanos obtener su permiso de idfa para proporcionarle actividades y servicios personalizados. Su información no se utilizará para otros fines sin su permiso";
|
||||
|
@@ -391,7 +391,7 @@
|
||||
|
||||
"XPLoginPwdViewController4" = "Inicio de sesión con número de teléfono";
|
||||
"XPLoginPwdViewController5" = "Olvidé la contraseña";
|
||||
"XPLoginPwdViewController6" = "Por favor ingresa una cuenta E-Parti";
|
||||
"XPLoginPwdViewController6" = "Por favor ingresa una cuenta E-Party";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Vincular teléfono";
|
||||
"XPLoginBindPhoneResultViewController1" = "Tu número de teléfono vinculado actual es";
|
||||
@@ -453,7 +453,7 @@
|
||||
"XPShareView5" = "Compartir fallido";
|
||||
"XPShareView6" = "Cancelar compartir";
|
||||
"XPShareView7" = "Cancelar";
|
||||
"XPShareView8" = "Ven a E-Parti y conoce tu voz exclusiva";
|
||||
"XPShareView8" = "Ven a E-Party y conoce tu voz exclusiva";
|
||||
"XPShareView9" = "Error al compartir debido a la ausencia de aplicaciones relacionadas";
|
||||
"XPFirstRechargeViewController0" = "1. Cada persona solo puede recibir el beneficio de la primera recarga una vez\n2. Cada ID y dispositivo solo puede participar una vez.";
|
||||
"XPFirstRechargeViewController1" = "Recargar ahora";
|
||||
@@ -509,12 +509,12 @@
|
||||
"HttpRequestHelper1" = "Por favor comprueba la conexión a internet";
|
||||
"HttpRequestHelper2" = "Por favor comprueba la conexión a internet";
|
||||
"HttpRequestHelper3" = "La sesión de inicio de sesión ha expirado";
|
||||
"HttpRequestHelper4" = "E-Parti está descansando Por favor intenta más tarde";
|
||||
"HttpRequestHelper4" = "E-Party está descansando Por favor intenta más tarde";
|
||||
"HttpRequestHelper5" = "Error desconocido del servidor";
|
||||
"HttpRequestHelper6" = "Por favor comprueba la conexión a internet";
|
||||
"HttpRequestHelper7" = "La sesión de inicio de sesión ha expirado.";
|
||||
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
|
||||
"XPMineNotificaPresenter0" = "Notificaciones del sistema";
|
||||
"XPMineNotificaPresenter1" = "Cuando está apagado, los mensajes del sistema y los asistentes oficiales ya no se mostrarán";
|
||||
@@ -930,7 +930,7 @@
|
||||
"XPIAPRechargeViewController2" = "Confirmar Recarga";
|
||||
"XPIAPRechargeViewController3" = "《Acuerdo de Recarga de Usuario》";
|
||||
"XPIAPRechargeViewController4" = "He leído y acepto";
|
||||
"XPIAPRechargeViewController5" = "Para cualquier pregunta, por favor contacte al servicio al cliente, ID E-Parti";
|
||||
"XPIAPRechargeViewController5" = "Para cualquier pregunta, por favor contacte al servicio al cliente, ID E-Party";
|
||||
"XPIAPRechargeViewController6" = "Mi Cuenta";
|
||||
"XPIAPRechargeViewController7" = "Recordatorio";
|
||||
"XPIAPRechargeViewController8" = "Recarga fallida. Por favor contacte al servicio al cliente para obtener ayuda.";
|
||||
@@ -1638,7 +1638,7 @@
|
||||
"RoomHeaderView1" = "En línea: %ld ID: %ld";
|
||||
"RoomHeaderView2" = "En línea: %ld ID: %ld";
|
||||
"RoomHeaderView3" = "Copiar Enlace";
|
||||
"RoomHeaderView4" = "Ven a E-Parti, juega y haz amigos";
|
||||
"RoomHeaderView4" = "Ven a E-Party, juega y haz amigos";
|
||||
"RoomHeaderView5" = "Gente hermosa con voces dulces gana puntos, ¡juguemos juntos~";
|
||||
"RoomHeaderView6" = "Marcador Guardado";
|
||||
"RoomHeaderView7" = "Compartido con Éxito";
|
||||
@@ -2313,7 +2313,7 @@
|
||||
"XPLoginPwdViewController3" = "Please enter password";
|
||||
"XPLoginPwdViewController4" = "Phone Number Login";
|
||||
"XPLoginPwdViewController5" = "Forget Password";
|
||||
"XPLoginPwdViewController6" = "Please enter your E-Parti account";
|
||||
"XPLoginPwdViewController6" = "Please enter your E-Party account";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Bind Phone";
|
||||
"XPLoginBindPhoneResultViewController1" = "The current bound phone number is";
|
||||
@@ -3416,7 +3416,7 @@
|
||||
"PIMessageContentServiceReplyView0"="How to Top-Up:";
|
||||
"PIMessageContentServiceReplyView1"="Copy";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1. Go to 【My】-- 【Top-Up Coins】 inside E-Parti Voice App to top-up";
|
||||
"PIMessageContentServiceReplyView2"="1. Go to 【My】-- 【Top-Up Coins】 inside E-Party Voice App to top-up";
|
||||
"PIMessageContentServiceReplyView3"="2. Contact customer service";
|
||||
"PIMessageContentServiceReplyView4"="Customer Service WeChat: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Customer Service Line: %@ ";
|
||||
@@ -3930,7 +3930,7 @@
|
||||
"1.0.37_text_52" = "No puedes usar esta función.";
|
||||
|
||||
"20.20.51_text_1" = "Inicio de sesión por correo electrónico";
|
||||
"20.20.51_text_2" = "Bienvenido a E-Parti";
|
||||
"20.20.51_text_2" = "Bienvenido a E-Party";
|
||||
"20.20.51_text_3" = "Por favor ingresa ID";
|
||||
"20.20.51_text_4" = "Por favor ingresa correo electrónico";
|
||||
"20.20.51_text_7" = "Por favor ingresa el código de verificación";
|
||||
|
@@ -1,13 +1,13 @@
|
||||
NSCameraUsageDescription = "O \"E-Parti\" precisa do seu consentimento antes que você possa visitar, tirar fotos e enviar suas imagens, e depois exibi-las em sua página pessoal para que outros possam visualizar";
|
||||
NSCameraUsageDescription = "O \"E-Party\" precisa do seu consentimento antes que você possa visitar, tirar fotos e enviar suas imagens, e depois exibi-las em sua página pessoal para que outros possam visualizar";
|
||||
|
||||
NSLocalNetworkUsageDescription = "O aplicativo irá descobrir e conectar-se a dispositivos em sua rede";
|
||||
|
||||
NSLocationWhenInUseUsageDescription = "O seu consentimento é necessário antes que você possa usar os serviços de localização e recomendar amigos próximos";
|
||||
|
||||
NSMicrophoneUsageDescription = "O \"E-Parti\" precisa do seu consentimento antes de poder realizar chat de voz";
|
||||
NSMicrophoneUsageDescription = "O \"E-Party\" precisa do seu consentimento antes de poder realizar chat de voz";
|
||||
|
||||
NSPhotoLibraryAddUsageDescription = "O \"E-Parti\" precisa do seu consentimento antes de poder armazenar fotos no álbum";
|
||||
NSPhotoLibraryAddUsageDescription = "O \"E-Party\" precisa do seu consentimento antes de poder armazenar fotos no álbum";
|
||||
|
||||
NSPhotoLibraryUsageDescription = "O \"E-Parti\" precisa do seu consentimento antes que você possa acessar o álbum e selecionar as imagens que deseja enviar, e depois exibi-las em sua página pessoal para que outros possam visualizar";
|
||||
NSPhotoLibraryUsageDescription = "O \"E-Party\" precisa do seu consentimento antes que você possa acessar o álbum e selecionar as imagens que deseja enviar, e depois exibi-las em sua página pessoal para que outros possam visualizar";
|
||||
|
||||
NSUserTrackingUsageDescription = "Por favor, permita-nos obter sua permissão IDFA para fornecer a você atividades e serviços personalizados. Suas informações não serão usadas para outros fins sem a sua permissão";
|
||||
|
@@ -305,7 +305,7 @@
|
||||
"XPLoginPwdViewController2" = "Por favor insira número de telefone/ID";
|
||||
"XPLoginPwdViewController4" = "Login com número de telefone";
|
||||
"XPLoginPwdViewController5" = "Esqueceu a senha";
|
||||
"XPLoginPwdViewController6" = "Por favor insira uma conta E-Parti";
|
||||
"XPLoginPwdViewController6" = "Por favor insira uma conta E-Party";
|
||||
"XPLoginBindPhoneResultViewController0" = "Vincular telefone";
|
||||
"XPLoginBindPhoneResultViewController1" = "Seu número de telefone vinculado atual é";
|
||||
"XPLoginBindPhoneResultViewController2" = "Alterar número de telefone";
|
||||
@@ -363,7 +363,7 @@
|
||||
"XPShareView5" = "Compartilhamento falhou";
|
||||
"XPShareView6" = "Cancelar compartilhamento";
|
||||
"XPShareView7" = "Cancelar";
|
||||
"XPShareView8" = "Venha para E-Parti e conheça sua voz exclusiva";
|
||||
"XPShareView8" = "Venha para E-Party e conheça sua voz exclusiva";
|
||||
"XPShareView9" = "Falha ao compartilhar devido à ausência de aplicativos relacionados";
|
||||
"XPFirstRechargeViewController0" = "1. Cada pessoa só pode receber o benefício da primeira recarga uma vez\n2. Cada ID e dispositivo só pode participar uma vez.";
|
||||
"XPFirstRechargeViewController1" = "Recarregar agora";
|
||||
@@ -412,11 +412,11 @@
|
||||
"HttpRequestHelper1" = "Por favor verifique a conexão de rede";
|
||||
"HttpRequestHelper2" = "Por favor verifique a conexão de rede";
|
||||
"HttpRequestHelper3" = "A sessão de login expirou";
|
||||
"HttpRequestHelper4" = "E-Parti está fazendo uma pausa Por favor tente novamente mais tarde";
|
||||
"HttpRequestHelper4" = "E-Party está fazendo uma pausa Por favor tente novamente mais tarde";
|
||||
"HttpRequestHelper5" = "Erro desconhecido do servidor";
|
||||
"HttpRequestHelper6" = "Por favor verifique a conexão de rede";
|
||||
"HttpRequestHelper7" = "A sessão de login expirou.";
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
"XPMineNotificaPresenter0" = "Notificações do sistema";
|
||||
"XPMineNotificaPresenter1" = "Quando desligado, mensagens do sistema e assistentes oficiais não avisarão mais";
|
||||
"XPMineNotificaPresenter2" = "Notificações ao vivo";
|
||||
@@ -753,7 +753,7 @@
|
||||
"XPIAPRechargeViewController2" = "Confirmar Recarga";
|
||||
"XPIAPRechargeViewController3" = "《Termos de Recarga do Usuário》";
|
||||
"XPIAPRechargeViewController4" = "Li e concordo";
|
||||
"XPIAPRechargeViewController5" = "Para dúvidas, entre em contato com o atendimento, ID E-Parti";
|
||||
"XPIAPRechargeViewController5" = "Para dúvidas, entre em contato com o atendimento, ID E-Party";
|
||||
"XPIAPRechargeViewController6" = "Minha Conta";
|
||||
"XPIAPRechargeViewController7" = "Lembrete";
|
||||
"XPIAPRechargeViewController8" = "Falha na recarga. Entre em contato com o atendimento para assistência.";
|
||||
@@ -1351,7 +1351,7 @@
|
||||
"RoomHeaderView1" = "Online: %ld ID: %ld";
|
||||
"RoomHeaderView2" = "Online: %ld ID: %ld";
|
||||
"RoomHeaderView3" = "Copiar Link";
|
||||
"RoomHeaderView4" = "Venha para E-Parti, jogue e faça amigos";
|
||||
"RoomHeaderView4" = "Venha para E-Party, jogue e faça amigos";
|
||||
"RoomHeaderView5" = "Pessoas bonitas com vozes doces ganham pontos, vamos jogar juntos~";
|
||||
"RoomHeaderView6" = "Favoritado com Sucesso";
|
||||
"RoomHeaderView7" = "Compartilhado com Sucesso";
|
||||
@@ -1917,7 +1917,7 @@
|
||||
"XPLoginPwdViewController3" = "Digite a senha";
|
||||
"XPLoginPwdViewController4" = "Login com Número de Telefone";
|
||||
"XPLoginPwdViewController5" = "Esqueci a Senha";
|
||||
"XPLoginPwdViewController6" = "Digite sua conta E-Parti";
|
||||
"XPLoginPwdViewController6" = "Digite sua conta E-Party";
|
||||
"XPLoginBindPhoneResultViewController0" = "Vincular Telefone";
|
||||
"XPLoginBindPhoneResultViewController1" = "O número de telefone vinculado atualmente é";
|
||||
"XPLoginBindPhoneResultViewController2" = "Alterar Número de Telefone";
|
||||
@@ -2748,7 +2748,7 @@
|
||||
"XPCandyTreeBuyView0"="Por favor, selecione ou insira o número de martelos para comprar";
|
||||
"PIMessageContentServiceReplyView0"="Como Recarregar:";
|
||||
"PIMessageContentServiceReplyView1"="Copiar";
|
||||
"PIMessageContentServiceReplyView2"="1. Vá para 【Meu】-- 【Recarregar Moedas】 dentro do aplicativo E-Parti Voice para recarregar";
|
||||
"PIMessageContentServiceReplyView2"="1. Vá para 【Meu】-- 【Recarregar Moedas】 dentro do aplicativo E-Party Voice para recarregar";
|
||||
"PIMessageContentServiceReplyView3"="2. Contate o atendimento ao cliente";
|
||||
"PIMessageContentServiceReplyView4"="WeChat do Atendimento: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Linha do Atendimento: %@ ";
|
||||
@@ -3204,7 +3204,7 @@
|
||||
"1.0.37_text_51" = "Presentes foram colocados na bolsa!";
|
||||
"1.0.37_text_52" = "Você não pode usar este recurso.";
|
||||
"20.20.51_text_1" = "Login por Email";
|
||||
"20.20.51_text_2" = "Bem-vindo ao E-Parti";
|
||||
"20.20.51_text_2" = "Bem-vindo ao E-Party";
|
||||
"20.20.51_text_3" = "Digite o ID";
|
||||
"20.20.51_text_4" = "Digite o email";
|
||||
"20.20.51_text_7" = "Digite o código de verificação";
|
||||
|
@@ -1,8 +1,8 @@
|
||||
|
||||
NSCameraUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как вы можете посетить, фотографировать и загружать ваши изображения, а затем отображать их на вашей персональной странице для просмотра другими людьми";
|
||||
NSCameraUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как вы можете посетить, фотографировать и загружать ваши изображения, а затем отображать их на вашей персональной странице для просмотра другими людьми";
|
||||
NSLocalNetworkUsageDescription = "Приложение обнаружит и подключится к устройствам в вашей сети";
|
||||
NSLocationWhenInUseUsageDescription = "Вам необходимо дать согласие, прежде чем вы сможете использовать службы определения местоположения и рекомендовать близких друзей";
|
||||
NSMicrophoneUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как он может проводить голосовый чат";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как он может хранить фотографии в альбоме";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как вы можете получить доступ к альбому и выбрать изображения, которые вам нужно загрузить, а затем отобразить их на вашей персональной странице для просмотра другими людьми";
|
||||
NSMicrophoneUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как он может проводить голосовый чат";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как он может хранить фотографии в альбоме";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как вы можете получить доступ к альбому и выбрать изображения, которые вам нужно загрузить, а затем отобразить их на вашей персональной странице для просмотра другими людьми";
|
||||
NSUserTrackingUsageDescription = "Пожалуйста, разрешите нам получить ваше разрешение на idfa, чтобы предоставить вам персонализированные мероприятия и услуги. ваша информация не будет использоваться для других целей без вашего разрешения";
|
||||
|
@@ -390,7 +390,7 @@
|
||||
|
||||
"XPLoginPwdViewController4" = "Вход по номеру телефона";
|
||||
"XPLoginPwdViewController5" = "Забыли пароль";
|
||||
"XPLoginPwdViewController6" = "Пожалуйста, введите аккаунт E-Parti";
|
||||
"XPLoginPwdViewController6" = "Пожалуйста, введите аккаунт E-Party";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Привязать телефон";
|
||||
"XPLoginBindPhoneResultViewController1" = "Ваш текущий привязанный номер телефона";
|
||||
@@ -452,7 +452,7 @@
|
||||
"XPShareView5" = "Ошибка при отправке";
|
||||
"XPShareView6" = "Отменить отправку";
|
||||
"XPShareView7" = "Отмена";
|
||||
"XPShareView8" = "Приходите в E-Parti и встречайте свой эксклюзивный голос";
|
||||
"XPShareView8" = "Приходите в E-Party и встречайте свой эксклюзивный голос";
|
||||
"XPShareView9" = "Ошибка при отправке из-за отсутствия связанных приложений";
|
||||
"XPFirstRechargeViewController0" = "1. Каждый человек может получить преимущество за первый пополнение только один раз\n2. Каждая учетная запись и устройство могут участвовать только один раз.";
|
||||
"XPFirstRechargeViewController1" = "Пополнить сейчас";
|
||||
@@ -508,12 +508,12 @@
|
||||
"HttpRequestHelper1" = "Пожалуйста, проверьте интернет-подключение";
|
||||
"HttpRequestHelper2" = "Пожалуйста, проверьте интернет-подключение";
|
||||
"HttpRequestHelper3" = "Сессия входа истекла";
|
||||
"HttpRequestHelper4" = "E-Parti отдыхает Пожалуйста, попробуйте позже";
|
||||
"HttpRequestHelper4" = "E-Party отдыхает Пожалуйста, попробуйте позже";
|
||||
"HttpRequestHelper5" = "Неизвестная ошибка сервера";
|
||||
"HttpRequestHelper6" = "Пожалуйста, проверьте интернет-подключение";
|
||||
"HttpRequestHelper7" = "Сессия входа истекла.";
|
||||
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
|
||||
"XPMineNotificaPresenter0" = "Системные уведомления";
|
||||
"XPMineNotificaPresenter1" = "При отключении системные сообщения и официальные помощники больше не будут появляться";
|
||||
@@ -929,7 +929,7 @@
|
||||
"XPIAPRechargeViewController2" = "Подтвердить пополнение";
|
||||
"XPIAPRechargeViewController3" = "《Соглашение о пополнении баланса пользователя》";
|
||||
"XPIAPRechargeViewController4" = "Я прочел(а) и согласен(а)";
|
||||
"XPIAPRechargeViewController5" = "По всем вопросам обращайтесь в службу поддержки, E-Parti ID";
|
||||
"XPIAPRechargeViewController5" = "По всем вопросам обращайтесь в службу поддержки, E-Party ID";
|
||||
"XPIAPRechargeViewController6" = "Мой аккаунт";
|
||||
"XPIAPRechargeViewController7" = "Напоминание";
|
||||
"XPIAPRechargeViewController8" = "Пополнение не удалось. Пожалуйста, обратитесь в службу поддержки за помощью.";
|
||||
@@ -1637,7 +1637,7 @@
|
||||
"RoomHeaderView1" = "Онлайн: %ld ID: %ld";
|
||||
"RoomHeaderView2" = "Онлайн: %ld ID: %ld";
|
||||
"RoomHeaderView3" = "Копировать ссылку";
|
||||
"RoomHeaderView4" = "Приходите на E-Parti, играйте в игры и заводите друзей";
|
||||
"RoomHeaderView4" = "Приходите на E-Party, играйте в игры и заводите друзей";
|
||||
"RoomHeaderView5" = "Красивые люди с сладкими голосами зарабатывают очки, давайте играть вместе~";
|
||||
"RoomHeaderView6" = "Закладка успешно создана";
|
||||
"RoomHeaderView7" = "Поделка успешно выполнена";
|
||||
@@ -2312,7 +2312,7 @@
|
||||
"XPLoginPwdViewController3" = "Введите пароль";
|
||||
"XPLoginPwdViewController4" = "Вход по номеру телефона";
|
||||
"XPLoginPwdViewController5" = "Забыли пароль";
|
||||
"XPLoginPwdViewController6" = "Введите ваш аккаунт E-Parti";
|
||||
"XPLoginPwdViewController6" = "Введите ваш аккаунт E-Party";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Привязать телефон";
|
||||
"XPLoginBindPhoneResultViewController1" = "Текущий привязанный номер телефона";
|
||||
@@ -3415,7 +3415,7 @@
|
||||
"PIMessageContentServiceReplyView0"="Как пополнить баланс:";
|
||||
"PIMessageContentServiceReplyView1"="Скопировать";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1. Перейдите в 【Мой】-- 【Пополнить монеты】 внутри приложения E-Parti Voice для пополнения баланса";
|
||||
"PIMessageContentServiceReplyView2"="1. Перейдите в 【Мой】-- 【Пополнить монеты】 внутри приложения E-Party Voice для пополнения баланса";
|
||||
"PIMessageContentServiceReplyView3"="2. Свяжитесь с поддержкой";
|
||||
"PIMessageContentServiceReplyView4"="WeChat поддержки: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Телефон поддержки: %@ ";
|
||||
@@ -3925,7 +3925,7 @@
|
||||
"1.0.37_text_52" = "Вы не можете использовать эту функцию.";
|
||||
|
||||
"20.20.51_text_1" = "Вход по электронной почте";
|
||||
"20.20.51_text_2" = "Добро пожаловать в E-Parti";
|
||||
"20.20.51_text_2" = "Добро пожаловать в E-Party";
|
||||
"20.20.51_text_3" = "Пожалуйста, введите ID";
|
||||
"20.20.51_text_4" = "Пожалуйста, введите электронную почту";
|
||||
"20.20.51_text_7" = "Пожалуйста, введите код подтверждения";
|
||||
|
@@ -1,7 +1,7 @@
|
||||
NSCameraUsageDescription = "\"E-Parti\"'ın ziyaret etmeden önce, fotoğraf çekip yüklemeden önce onayınıza ihtiyacı var, ardından bunlar kişisel ana sayfanızda başkalarının görmesi için görüntülenecektir";
|
||||
NSCameraUsageDescription = "\"E-Party\"'ın ziyaret etmeden önce, fotoğraf çekip yüklemeden önce onayınıza ihtiyacı var, ardından bunlar kişisel ana sayfanızda başkalarının görmesi için görüntülenecektir";
|
||||
NSLocalNetworkUsageDescription = "Uygulama, ağınızdaki cihazları keşfedecek ve bağlanacaktır";
|
||||
NSLocationWhenInUseUsageDescription = "Konum hizmetlerini kullanabilmeniz ve yakındaki arkadaşları önerebilmemiz için onayınız gereklidir";
|
||||
NSMicrophoneUsageDescription = "\"E-Parti\"'ın sesli sohbet gerçekleştirebilmesi için onayınıza ihtiyacı var";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Parti\"'ın albüme fotoğraf kaydedebilmesi için onayınıza ihtiyacı var";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Parti\"'ın albüme erişebilmesi, yüklemek için gerekli fotoğrafları seçebilmeniz ve ardından bunları kişisel ana sayfanızda başkalarının görmesi için görüntüleyebilmeniz için onayınıza ihtiyacı var";
|
||||
NSMicrophoneUsageDescription = "\"E-Party\"'ın sesli sohbet gerçekleştirebilmesi için onayınıza ihtiyacı var";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Party\"'ın albüme fotoğraf kaydedebilmesi için onayınıza ihtiyacı var";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Party\"'ın albüme erişebilmesi, yüklemek için gerekli fotoğrafları seçebilmeniz ve ardından bunları kişisel ana sayfanızda başkalarının görmesi için görüntüleyebilmeniz için onayınıza ihtiyacı var";
|
||||
NSUserTrackingUsageDescription = "Size kişiselleştirilmiş etkinlikler ve hizmetler sunabilmemiz için lütfen IDFA izninizi vermemize izin verin. İzniniz olmadan bilgileriniz başka amaçlar için kullanılmayacaktır";
|
||||
|
@@ -50,7 +50,7 @@
|
||||
"XPShareView5" = "Paylaşım başarısız oldu";
|
||||
"XPShareView6" = "Paylaşımı iptal et";
|
||||
"XPShareView7" = "İptal";
|
||||
"XPShareView8" = "E-Parti'a gel, özel sesinle tanış";
|
||||
"XPShareView8" = "E-Party'a gel, özel sesinle tanış";
|
||||
"XPShareView9" = "İlgili uygulama yüklü değil, paylaşım başarısız oldu";
|
||||
///XPFirstRechargeViewController.m
|
||||
"XPFirstRechargeViewController0" = "1. Herkes sadece bir kez ilk yükleme avantajı alabilir\n2. Her ID ve cihaz sadece bir kez katılabilir.";
|
||||
@@ -119,12 +119,12 @@
|
||||
"HttpRequestHelper1" = "Lütfen internet bağlantınızı kontrol edin";
|
||||
"HttpRequestHelper2" = "Lütfen internet bağlantınızı kontrol edin";
|
||||
"HttpRequestHelper3" = "Giriş süresi aşıldı";
|
||||
"HttpRequestHelper4" = "E-Parti hata veriyor, lütfen daha sonra tekrar deneyin";
|
||||
"HttpRequestHelper4" = "E-Party hata veriyor, lütfen daha sonra tekrar deneyin";
|
||||
"HttpRequestHelper5" = "API hatası, bilinmeyen bilgiler";
|
||||
"HttpRequestHelper6" = "Lütfen internet bağlantınızı kontrol edin";
|
||||
"HttpRequestHelper7" = "Giriş süresi aşıldı";
|
||||
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
|
||||
"XPMineNotificaPresenter0" = "Sistem bildirimleri";
|
||||
"XPMineNotificaPresenter1" = "Kapatıldığında, sistem mesajları ve resmi asistan artık size bildirim göstermeyecek";
|
||||
@@ -531,7 +531,7 @@
|
||||
"XPIAPRechargeViewController2" = "Şarj Et";
|
||||
"XPIAPRechargeViewController3" = "Kullanıcı yükleme sözleşmesi";
|
||||
"XPIAPRechargeViewController4" = "Okudum ve kabul ediyorum";
|
||||
"XPIAPRechargeViewController5" = "Herhangi bir sorunuz varsa lütfen müşteri hizmetleri ile iletişime geçin, E-Parti numarası";
|
||||
"XPIAPRechargeViewController5" = "Herhangi bir sorunuz varsa lütfen müşteri hizmetleri ile iletişime geçin, E-Party numarası";
|
||||
"XPIAPRechargeViewController6" = "Hesabım";
|
||||
"XPIAPRechargeViewController7" = "Uyarı";
|
||||
"XPIAPRechargeViewController8" = "Şarj başarısız, lütfen müşteri hizmetleri ile iletişime geçin~";
|
||||
@@ -1237,7 +1237,7 @@
|
||||
"RoomHeaderView1" = "Çevrimiçi:%ld ID:%ld";
|
||||
"RoomHeaderView2" = "Çevrimiçi:%ld ID:%ld";
|
||||
"RoomHeaderView3" = "Bağlantıyı Kopyala";
|
||||
"RoomHeaderView4" = "E-Parti'a gel, oyun oyna ve arkadaş edin";
|
||||
"RoomHeaderView4" = "E-Party'a gel, oyun oyna ve arkadaş edin";
|
||||
"RoomHeaderView5" = "Güzel ve tatlı sesli, beraber oynayalım~";
|
||||
"RoomHeaderView6" = "Favorilere Eklendi";
|
||||
"RoomHeaderView7" = "Paylaşım Başarılı";
|
||||
@@ -2159,7 +2159,7 @@
|
||||
"XPLoginPwdViewController3" = "Şifre girin";
|
||||
"XPLoginPwdViewController4" = "Telefon ile Giriş";
|
||||
"XPLoginPwdViewController5" = "Şifremi Unuttum";
|
||||
"XPLoginPwdViewController6" = "E-Parti hesabınızı girin";
|
||||
"XPLoginPwdViewController6" = "E-Party hesabınızı girin";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Telefon Bağlama Başarılı";
|
||||
"XPLoginBindPhoneResultViewController1" = "Şu anda bağlı olduğunuz telefon numarası";
|
||||
@@ -2884,7 +2884,7 @@
|
||||
"PIMessageContentServiceReplyView0"="Nasıl yüklenir:";
|
||||
"PIMessageContentServiceReplyView1"="Kopyala";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1. E-Parti Ses Uygulaması içinde 【Benim】 - 【Parayı Yükle】'ye gidin ve yükleme yapın";
|
||||
"PIMessageContentServiceReplyView2"="1. E-Party Ses Uygulaması içinde 【Benim】 - 【Parayı Yükle】'ye gidin ve yükleme yapın";
|
||||
"PIMessageContentServiceReplyView3"="2. Müşteri hizmetleri ile iletişime geçin ve yükleme bağlantısını alın";
|
||||
"PIMessageContentServiceReplyView4"="Müşteri Hizmetleri WeChat: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Müşteri Hizmetleri Line: %@ ";
|
||||
@@ -3702,7 +3702,7 @@
|
||||
"1.0.37_text_52" = "Bu özelliği kullanamazsınız.";
|
||||
|
||||
"20.20.51_text_1" = "E-posta Girişi";
|
||||
"20.20.51_text_2" = "Welcome to E-Parti";
|
||||
"20.20.51_text_2" = "Welcome to E-Party";
|
||||
"20.20.51_text_3" = "Lütfen kimlik girin";
|
||||
"20.20.51_text_4" = "Lütfen e-posta girin";
|
||||
"20.20.51_text_7" = "Lütfen doğrulama kodunu girin";
|
||||
|
@@ -1,7 +1,7 @@
|
||||
NSCameraUsageDescription = "\"E-Parti\" sizning rozilingizni talab qiladi, siz tashrif buyurish, fotosurat olish va rasmlaringizni yuklashdan oldin, keyin ularni shaxsiy asosiy sahifangizda boshqalar ko'rishi uchun ko'rsatish";
|
||||
NSCameraUsageDescription = "\"E-Party\" sizning rozilingizni talab qiladi, siz tashrif buyurish, fotosurat olish va rasmlaringizni yuklashdan oldin, keyin ularni shaxsiy asosiy sahifangizda boshqalar ko'rishi uchun ko'rsatish";
|
||||
NSLocalNetworkUsageDescription = "Ilova tarmog'ingizdagi qurilmalarni topadi va ulanadi";
|
||||
NSLocationWhenInUseUsageDescription = "Siz joylashuv xizmatlaridan foydalanishingiz va yaqin do'stlarni tavsiya qilishingizdan oldin rozilingiz kerak";
|
||||
NSMicrophoneUsageDescription = "\"E-Parti\" ovozli suhbat olib borishdan oldin sizning rozilingizni talab qiladi";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" fotosuratlarni albomda saqlashdan oldin sizning rozilingizni talab qiladi";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Parti\" albomga kirish va yuklash kerak bo'lgan rasmlarni tanlashdan oldin sizning rozilingizni talab qiladi, keyin ularni shaxsiy asosiy sahifangizda boshqalar ko'rishi uchun ko'rsatish";
|
||||
NSMicrophoneUsageDescription = "\"E-Party\" ovozli suhbat olib borishdan oldin sizning rozilingizni talab qiladi";
|
||||
NSPhotoLibraryAddUsageDescription = "\"E-Party\" fotosuratlarni albomda saqlashdan oldin sizning rozilingizni talab qiladi";
|
||||
NSPhotoLibraryUsageDescription = "\"E-Party\" albomga kirish va yuklash kerak bo'lgan rasmlarni tanlashdan oldin sizning rozilingizni talab qiladi, keyin ularni shaxsiy asosiy sahifangizda boshqalar ko'rishi uchun ko'rsatish";
|
||||
NSUserTrackingUsageDescription = "Iltimos, sizga shaxsiy aktivlar va xizmatlarni taqdim etish uchun idfa ruxsatini olishimizga ruxsat bering. Sizning ma'lumotlaringiz sizning ruxsatingizsiz boshqa maqsadlar uchun ishlatilmaydi";
|
||||
|
@@ -393,7 +393,7 @@
|
||||
|
||||
"XPLoginPwdViewController4" = "Telefon raqami orqali tizimga kirish";
|
||||
"XPLoginPwdViewController5" = "Parolni unutdingiz";
|
||||
"XPLoginPwdViewController6" = "Iltimos E-Parti hisobini kiriting";
|
||||
"XPLoginPwdViewController6" = "Iltimos E-Party hisobini kiriting";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Telefonni bog'lash";
|
||||
"XPLoginBindPhoneResultViewController1" = "Sizning hozirgi bog'langan telefon raqamingiz";
|
||||
@@ -455,7 +455,7 @@
|
||||
"XPShareView5" = "Ulashish muvaffaqiyatsiz";
|
||||
"XPShareView6" = "Ulashishni bekor qilish";
|
||||
"XPShareView7" = "Bekor qilish";
|
||||
"XPShareView8" = "E-Parti ga kelib, o'z eksklyuziv ovozingizni toping";
|
||||
"XPShareView8" = "E-Party ga kelib, o'z eksklyuziv ovozingizni toping";
|
||||
"XPShareView9" = "Tegishli ilovalar yo'qligi sababli ulashish muvaffaqiyatsiz bo'ldi";
|
||||
"XPFirstRechargeViewController0" = "1. Har bir kishi faqat birinchi to'ldirish afzalligini bir marta olishi mumkin\n2. Har bir ID va qurilma faqat bir marta ishtirok etishi mumkin.";
|
||||
"XPFirstRechargeViewController1" = "Hozir to'ldirish";
|
||||
@@ -511,12 +511,12 @@
|
||||
"HttpRequestHelper1" = "Iltimos tarmoq ulanishini tekshiring";
|
||||
"HttpRequestHelper2" = "Iltimos tarmoq ulanishini tekshiring";
|
||||
"HttpRequestHelper3" = "Tizimga kirish sessiyasi muddati tugagan";
|
||||
"HttpRequestHelper4" = "E-Parti dam olmoqda, iltimos keyinroq urunib ko'ring";
|
||||
"HttpRequestHelper4" = "E-Party dam olmoqda, iltimos keyinroq urunib ko'ring";
|
||||
"HttpRequestHelper5" = "Serverdan noma'lum xato";
|
||||
"HttpRequestHelper6" = "Iltimos tarmoq ulanishini tekshiring";
|
||||
"HttpRequestHelper7" = "Tizimga kirish sessiyasi muddati tugagan.";
|
||||
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
|
||||
"XPMineNotificaPresenter0" = "Tizim bildirishnomalari";
|
||||
"XPMineNotificaPresenter1" = "O'chirilganda, tizim xabarlar va rasmiy yordamchilar endi ogohlantirmaydi";
|
||||
@@ -911,7 +911,7 @@
|
||||
"XPIAPRechargeViewController2" = "To'ldirishni tasdiqlash";
|
||||
"XPIAPRechargeViewController3" = "《Foydalanuvchi To'ldirish Shartnomasi》";
|
||||
"XPIAPRechargeViewController4" = "Men o'qidim va qabul qildim";
|
||||
"XPIAPRechargeViewController5" = "Savollar bo'lsa, iltimos mijozlar xizmatiga murojaat qiling, E-Parti ID";
|
||||
"XPIAPRechargeViewController5" = "Savollar bo'lsa, iltimos mijozlar xizmatiga murojaat qiling, E-Party ID";
|
||||
"XPIAPRechargeViewController6" = "Mening hisobim";
|
||||
"XPIAPRechargeViewController7" = "Eslatma";
|
||||
"XPIAPRechargeViewController8" = "To'ldirish muvaffaqiyatsiz. Iltimos yordam uchun mijozlar xizmatiga murojaat qiling.";
|
||||
@@ -1608,7 +1608,7 @@
|
||||
"RoomHeaderView1" = "Onlayn: %ld ID: %ld";
|
||||
"RoomHeaderView2" = "Onlayn: %ld ID: %ld";
|
||||
"RoomHeaderView3" = "Havolani nusxalash";
|
||||
"RoomHeaderView4" = "E-Parti-ga keling, o'yinlar o'ynang va do'stlar orttiring";
|
||||
"RoomHeaderView4" = "E-Party-ga keling, o'yinlar o'ynang va do'stlar orttiring";
|
||||
"RoomHeaderView5" = "Go'zal ovozli chiroyli odamlar ball yutishadi, birga o'ynaylik~";
|
||||
"RoomHeaderView6" = "Xatcho'p muvaffaqiyatli yaratildi";
|
||||
"RoomHeaderView7" = "Ulashish muvaffaqiyatli amalga oshirildi";
|
||||
@@ -2283,7 +2283,7 @@ Tasdiqlangandan so'ng, sekretar sizga uni chop etishda yordam beradi va sizni xa
|
||||
"XPLoginPwdViewController3" = "Iltimos, parolni kiriting";
|
||||
"XPLoginPwdViewController4" = "Telefon raqami orqali tizimga kirish";
|
||||
"XPLoginPwdViewController5" = "Parolni unutdingiz";
|
||||
"XPLoginPwdViewController6" = "Iltimos, E-Parti akkauntingizni kiriting";
|
||||
"XPLoginPwdViewController6" = "Iltimos, E-Party akkauntingizni kiriting";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "Telefonni bog'lash";
|
||||
"XPLoginBindPhoneResultViewController1" = "Joriy bog'langan telefon raqami";
|
||||
@@ -3386,7 +3386,7 @@ Tasdiqlangandan so'ng, sekretar sizga uni chop etishda yordam beradi va sizni xa
|
||||
"PIMessageContentServiceReplyView0"="Qanday to'ldirish kerak:";
|
||||
"PIMessageContentServiceReplyView1"="Nusxalash";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1. E-Parti Voice ilovasidagi 【Mening】-- 【Tanga to'ldirish】 bo'limiga o'ting va to'ldiring";
|
||||
"PIMessageContentServiceReplyView2"="1. E-Party Voice ilovasidagi 【Mening】-- 【Tanga to'ldirish】 bo'limiga o'ting va to'ldiring";
|
||||
"PIMessageContentServiceReplyView3"="2. Xizmat ko'rsatuvchi bilan bog'laning";
|
||||
"PIMessageContentServiceReplyView4"="Xizmat ko'rsatuvchi WeChat: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="Xizmat ko'rsatuvchi telefon: %@ ";
|
||||
@@ -3896,7 +3896,7 @@ Tasdiqlangandan so'ng, sekretar sizga uni chop etishda yordam beradi va sizni xa
|
||||
"1.0.37_text_52" = "Siz bu funksiyadan foydalan olmaysiz.";
|
||||
|
||||
"20.20.51_text_1" = "Email Login";
|
||||
"20.20.51_text_2" = "E-Parti ga xush kelibsiz";
|
||||
"20.20.51_text_2" = "E-Party ga xush kelibsiz";
|
||||
"20.20.51_text_3" = "Iltimos ID kiriting";
|
||||
"20.20.51_text_4" = "Iltimos email kiriting";
|
||||
"20.20.51_text_7" = "Iltimos tasdiqlash kodi kiriting";
|
||||
|
@@ -1,8 +1,8 @@
|
||||
|
||||
NSCameraUsageDescription = "「E-Parti」需要您的同意,才可以訪問進行拍照並上傳您的圖片,然後展示在您的個人主頁上,便於他人查看";
|
||||
NSCameraUsageDescription = "「E-Party」需要您的同意,才可以訪問進行拍照並上傳您的圖片,然後展示在您的個人主頁上,便於他人查看";
|
||||
NSLocalNetworkUsageDescription = "此App將可發現和連接到您所用網絡上的設備";
|
||||
NSLocationWhenInUseUsageDescription = "需要您的同意,才可以進行定位服務,推薦附近好友";
|
||||
NSMicrophoneUsageDescription = "「E-Parti」需要您的同意,才可以進行語音聊天";
|
||||
NSPhotoLibraryAddUsageDescription = "「E-Parti」需要您的同意,才可以存儲相片到相冊";
|
||||
NSPhotoLibraryUsageDescription = "「E-Parti」需要您的同意,才可以訪問相冊並選擇您需要上傳的圖片,然後展示在您的個人主頁上,便於他人查看";
|
||||
NSMicrophoneUsageDescription = "「E-Party」需要您的同意,才可以進行語音聊天";
|
||||
NSPhotoLibraryAddUsageDescription = "「E-Party」需要您的同意,才可以存儲相片到相冊";
|
||||
NSPhotoLibraryUsageDescription = "「E-Party」需要您的同意,才可以訪問相冊並選擇您需要上傳的圖片,然後展示在您的個人主頁上,便於他人查看";
|
||||
NSUserTrackingUsageDescription = "請允許我們獲取您的IDFA權限,可以為您提供個性化活動和服務。未經您的允許,您的信息將不作其他用途。";
|
||||
|
@@ -60,7 +60,7 @@
|
||||
"XPShareView5" = "分享失敗";
|
||||
"XPShareView6" = "取消分享";
|
||||
"XPShareView7" = "取消";
|
||||
"XPShareView8" = "來E-Parti,邂逅你的專屬聲音";
|
||||
"XPShareView8" = "來E-Party,邂逅你的專屬聲音";
|
||||
"XPShareView9" = "未安装相关App,分享失败";
|
||||
///XPFirstRechargeViewController.m
|
||||
"XPFirstRechargeViewController0" = "1.每人僅可獲得1次首充福利\n2.每個ID、設備僅能參加一次。";
|
||||
@@ -128,13 +128,13 @@
|
||||
"HttpRequestHelper1" = "請檢查網絡連接";
|
||||
"HttpRequestHelper2" = "請檢查網絡連接";
|
||||
"HttpRequestHelper3" = "登錄已過期";
|
||||
"HttpRequestHelper4" = "E-Parti開小差中~請稍後再試";
|
||||
"HttpRequestHelper4" = "E-Party開小差中~請稍後再試";
|
||||
"HttpRequestHelper5" = "接口報錯信息未知";
|
||||
"HttpRequestHelper6" = "請檢查網絡連接";
|
||||
"HttpRequestHelper7" = "登錄已過期。";
|
||||
|
||||
|
||||
"AppDelegate_ThirdConfig0" = "E-Parti";
|
||||
"AppDelegate_ThirdConfig0" = "E-Party";
|
||||
|
||||
"XPMineNotificaPresenter0" = "系統通知";
|
||||
"XPMineNotificaPresenter1" = "關閉後,系統消息和官方小秘書不再提示";
|
||||
@@ -545,7 +545,7 @@
|
||||
"XPIAPRechargeViewController2" = "確定充值";
|
||||
"XPIAPRechargeViewController3" = "《用戶充值協議》";
|
||||
"XPIAPRechargeViewController4" = "已閱讀並同意";
|
||||
"XPIAPRechargeViewController5" = "如有任何問題請咨詢客服,E-Parti號";
|
||||
"XPIAPRechargeViewController5" = "如有任何問題請咨詢客服,E-Party號";
|
||||
"XPIAPRechargeViewController6" = "我的賬戶";
|
||||
"XPIAPRechargeViewController7" = "提示";
|
||||
"XPIAPRechargeViewController8" = "儲值失敗,請聯系客服處理~";
|
||||
@@ -1263,7 +1263,7 @@
|
||||
"RoomHeaderView1" = "在線:%ld ID:%ld";
|
||||
"RoomHeaderView2" = "在線:%ld ID:%ld";
|
||||
"RoomHeaderView3" = "複製鏈接";
|
||||
"RoomHeaderView4" = "來E-Parti,開黑交友玩遊戲";
|
||||
"RoomHeaderView4" = "來E-Party,開黑交友玩遊戲";
|
||||
"RoomHeaderView5" = "人美聲甜帶上分,一起來玩吧~";
|
||||
"RoomHeaderView6" = "收藏成功";
|
||||
"RoomHeaderView7" = "分享成功";
|
||||
@@ -2204,7 +2204,7 @@
|
||||
"XPLoginPwdViewController3" = "請輸入密碼";
|
||||
"XPLoginPwdViewController4" = "手機號登錄";
|
||||
"XPLoginPwdViewController5" = "忘記密碼";
|
||||
"XPLoginPwdViewController6" = "請輸入E-Parti賬號";
|
||||
"XPLoginPwdViewController6" = "請輸入E-Party賬號";
|
||||
|
||||
"XPLoginBindPhoneResultViewController0" = "綁定手機";
|
||||
"XPLoginBindPhoneResultViewController1" = "您當前綁定的手機號為";
|
||||
@@ -3075,7 +3075,7 @@
|
||||
"PIMessageContentServiceReplyView0"="如何儲值:";
|
||||
"PIMessageContentServiceReplyView1"="復製";
|
||||
|
||||
"PIMessageContentServiceReplyView2"="1.在E-Parti語音App內前往【我的】-- 【儲值金幣】進行儲值";
|
||||
"PIMessageContentServiceReplyView2"="1.在E-Party語音App內前往【我的】-- 【儲值金幣】進行儲值";
|
||||
"PIMessageContentServiceReplyView3"="2.聯系客服獲取儲值鏈接";
|
||||
"PIMessageContentServiceReplyView4"="客服WeChat: %@ ";
|
||||
"PIMessageContentServiceReplyView5"="客服Line:%@ ";
|
||||
@@ -3572,7 +3572,7 @@
|
||||
|
||||
|
||||
"20.20.51_text_1" = "Email 登入";
|
||||
"20.20.51_text_2" = "Welcome to E-Parti";
|
||||
"20.20.51_text_2" = "Welcome to E-Party";
|
||||
"20.20.51_text_3" = "請輸入ID";
|
||||
"20.20.51_text_4" = "請輸入信箱";
|
||||
"20.20.51_text_7" = "請輸入驗證碼";
|
||||
|
Reference in New Issue
Block a user