fix: 统一应用名称为 "E-Party" 并更新相关描述

主要变更:
1. 在 Info.plist 中将应用名称和描述中的 "E-Parti" 替换为 "E-Party"。
2. 更新多个本地化字符串和提示信息,确保一致性。
3. 修改部分代码中的错误提示信息,使用本地化字符串替代硬编码文本。

此更新旨在提升品牌一致性,确保用户在使用过程中获得统一的体验。
This commit is contained in:
edwinQQQ
2025-10-15 19:11:01 +08:00
parent 2d0063396c
commit 90360448a1
35 changed files with 498 additions and 197 deletions

View File

@@ -13560,7 +13560,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */; baseConfigurationReference = 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */;
buildSettings = { buildSettings = {
APP_DISPLAY_NAME = "E-Parti DEBUG"; APP_DISPLAY_NAME = "E-Party DEBUG";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = YuMi/YuMi.entitlements; CODE_SIGN_ENTITLEMENTS = YuMi/YuMi.entitlements;
@@ -13810,6 +13810,7 @@
SUPPORTS_MACCATALYST = NO; SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO; SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_XR_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_OBJC_BRIDGING_HEADER = "YuMi/YuMi-Bridging-Header.h";
SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_VERSION = 5.0; SWIFT_VERSION = 5.0;
@@ -13821,7 +13822,7 @@
isa = XCBuildConfiguration; isa = XCBuildConfiguration;
baseConfigurationReference = B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */; baseConfigurationReference = B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */;
buildSettings = { buildSettings = {
APP_DISPLAY_NAME = "E-Parti"; APP_DISPLAY_NAME = "E-Party";
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_ENTITLEMENTS = YuMi/YuMiRelease.entitlements; CODE_SIGN_ENTITLEMENTS = YuMi/YuMiRelease.entitlements;

View File

@@ -58,7 +58,7 @@ class EPImageUploader {
lock.unlock() lock.unlock()
semaphore.signal() semaphore.signal()
DispatchQueue.main.async { DispatchQueue.main.async {
failure("图片压缩失败") failure(YMLocalizedString("error.image_compress_failed"))
} }
return return
} }

View File

@@ -35,13 +35,13 @@ import Foundation
if let hud = currentHUD { if let hud = currentHUD {
// HUD // HUD
hud.label.text = "上传中 \(uploaded)/\(total)" hud.label.text = String(format: YMLocalizedString("upload.progress_format"), uploaded, total)
hud.progress = Float(uploaded) / Float(total) hud.progress = Float(uploaded) / Float(total)
} else { } else {
// HUD // HUD
let hud = MBProgressHUD.showAdded(to: window, animated: true) let hud = MBProgressHUD.showAdded(to: window, animated: true)
hud.mode = .determinateHorizontalBar 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.progress = Float(uploaded) / Float(total)
hud.removeFromSuperViewOnHide = true hud.removeFromSuperViewOnHide = true
currentHUD = hud 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 /// HUD
@objc static func dismiss() { @objc static func dismiss() {
DispatchQueue.main.async { DispatchQueue.main.async {

View File

@@ -65,7 +65,7 @@ import Foundation
ensureQCloudReady { [weak self] isReady, errorMsg in ensureQCloudReady { [weak self] isReady, errorMsg in
guard let self = self, isReady else { guard let self = self, isReady else {
DispatchQueue.main.async { DispatchQueue.main.async {
failure(errorMsg ?? "QCloud 初始化失败") failure(errorMsg ?? YMLocalizedString("error.qcloud_init_failed"))
} }
return return
} }
@@ -164,7 +164,7 @@ import Foundation
self.qcloudInitCallbacks.removeAll() self.qcloudInitCallbacks.removeAll()
self.lock.unlock() self.lock.unlock()
let errorMsg = msg ?? "获取 QCloud 配置失败" let errorMsg = msg ?? YMLocalizedString("error.qcloud_config_failed")
DispatchQueue.main.async { DispatchQueue.main.async {
callbacks.forEach { $0(false, errorMsg) } callbacks.forEach { $0(false, errorMsg) }
} }
@@ -209,7 +209,7 @@ import Foundation
) { ) {
guard let config = qcloudConfig else { guard let config = qcloudConfig else {
let error = NSError(domain: "com.yumi.qcloud", code: -1, let error = NSError(domain: "com.yumi.qcloud", code: -1,
userInfo: [NSLocalizedDescriptionKey: "QCloud 配置未初始化"]) userInfo: [NSLocalizedDescriptionKey: YMLocalizedString("error.qcloud_config_not_initialized")])
compelete(nil, error) compelete(nil, error)
return return
} }
@@ -235,7 +235,7 @@ import Foundation
) { ) {
guard let config = qcloudConfig else { guard let config = qcloudConfig else {
let error = NSError(domain: "com.yumi.qcloud", code: -1, let error = NSError(domain: "com.yumi.qcloud", code: -1,
userInfo: [NSLocalizedDescriptionKey: "QCloud 配置未初始化"]) userInfo: [NSLocalizedDescriptionKey: YMLocalizedString("error.qcloud_config_not_initialized")])
continueBlock(nil, error) continueBlock(nil, error)
return return
} }

View File

@@ -33,6 +33,14 @@ import UIKit
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
// DEBUG
#if DEBUG
print("✅ [EPLogin] DEBUG 模式已激活")
#else
print("⚠️ [EPLogin] 当前为 Release 模式")
#endif
navigationController?.setNavigationBarHidden(true, animated: false) navigationController?.setNavigationBarHidden(true, animated: false)
setupUI() setupUI()
loadPolicyStatus() loadPolicyStatus()
@@ -76,9 +84,9 @@ import UIKit
make.height.equalTo(EPLoginConfig.Layout.logoHeight) make.height.equalTo(EPLoginConfig.Layout.logoHeight)
} }
// E-PARTI // E-PARTY
view.addSubview(epartiTitleLabel) view.addSubview(epartiTitleLabel)
epartiTitleLabel.text = "E-PARTI" epartiTitleLabel.text = "E-PARTY"
epartiTitleLabel.font = .systemFont(ofSize: EPLoginConfig.Layout.epartiTitleFontSize, weight: .bold) epartiTitleLabel.font = .systemFont(ofSize: EPLoginConfig.Layout.epartiTitleFontSize, weight: .bold)
epartiTitleLabel.textColor = EPLoginConfig.Colors.textLight epartiTitleLabel.textColor = EPLoginConfig.Colors.textLight
epartiTitleLabel.transform = CGAffineTransform(a: 1, b: 0, c: -0.2, d: 1, tx: 0, ty: 0) // 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() { private func setupNavigationBar() {
#if DEBUG
view.addSubview(feedbackButton) view.addSubview(feedbackButton)
feedbackButton.setTitle(YMLocalizedString(EPLoginConfig.LocalizedKeys.feedback), for: .normal) feedbackButton.setTitle(YMLocalizedString(EPLoginConfig.LocalizedKeys.feedback), for: .normal)
feedbackButton.titleLabel?.font = .systemFont(ofSize: EPLoginConfig.Layout.smallFontSize) feedbackButton.titleLabel?.font = .systemFont(ofSize: EPLoginConfig.Layout.smallFontSize)
@@ -173,7 +182,6 @@ import UIKit
make.height.equalTo(EPLoginConfig.Layout.feedbackButtonHeight) make.height.equalTo(EPLoginConfig.Layout.feedbackButtonHeight)
} }
#if DEBUG
view.addSubview(debugButton) view.addSubview(debugButton)
debugButton.setTitle("切换环境", for: .normal) debugButton.setTitle("切换环境", for: .normal)
debugButton.setTitleColor(.blue, for: .normal) debugButton.setTitleColor(.blue, for: .normal)
@@ -183,7 +191,7 @@ import UIKit
make.leading.equalToSuperview().offset(EPLoginConfig.Layout.compactHorizontalPadding) make.leading.equalToSuperview().offset(EPLoginConfig.Layout.compactHorizontalPadding)
make.top.equalTo(view.safeAreaLayoutGuide).offset(8) make.top.equalTo(view.safeAreaLayoutGuide).offset(8)
} }
#endif #endif // DEBUG
} }
// MARK: - Actions // MARK: - Actions

View File

@@ -39,11 +39,11 @@ struct EPLoginConfig {
/// Logo /// Logo
static let logoTopOffset: CGFloat = 80 static let logoTopOffset: CGFloat = 80
/// E-PARTI /// E-PARTY
static let epartiTitleFontSize: CGFloat = 56 static let epartiTitleFontSize: CGFloat = 56
/// E-PARTI view leading /// E-PARTY view leading
static let epartiTitleLeading: CGFloat = 40 static let epartiTitleLeading: CGFloat = 40
/// E-PARTI logoImage bottom /// E-PARTY logoImage bottom
static let epartiTitleBottomOffset: CGFloat = -30 static let epartiTitleBottomOffset: CGFloat = -30
/// ///

View File

@@ -36,10 +36,10 @@ import Foundation
AccountInfoStorage.instance().saveAccountInfo(accountModel) AccountInfoStorage.instance().saveAccountInfo(accountModel)
completion(accountModel) completion(accountModel)
} else { } else {
failure(Int(code), "账号信息解析失败") failure(Int(code), YMLocalizedString("error.account_parse_failed"))
} }
} else { } else {
failure(Int(code), "操作失败") failure(Int(code), YMLocalizedString("error.operation_failed"))
} }
} }
@@ -61,10 +61,10 @@ import Foundation
let ticket = firstTicket["ticket"] as? String { let ticket = firstTicket["ticket"] as? String {
completion(ticket) completion(ticket)
} else { } else {
failure(Int(code), "Ticket 解析失败") failure(Int(code), YMLocalizedString("error.ticket_parse_failed"))
} }
} else { } else {
failure(Int(code), msg ?? "请求 Ticket 失败") failure(Int(code), msg ?? YMLocalizedString("error.request_ticket_failed"))
} }
}, access_token: accessToken, issue_type: "multi") }, access_token: accessToken, issue_type: "multi")
} }
@@ -89,7 +89,7 @@ import Foundation
if code == 200 { if code == 200 {
completion() completion()
} else { } else {
failure(Int(code), msg ?? "发送邮箱验证码失败") failure(Int(code), msg ?? YMLocalizedString("error.send_email_code_failed"))
} }
}, emailAddress: encryptedEmail, type: NSNumber(value: type)) }, emailAddress: encryptedEmail, type: NSNumber(value: type))
} }
@@ -114,7 +114,7 @@ import Foundation
if code == 200 { if code == 200 {
completion() completion()
} else { } else {
failure(Int(code), msg ?? "发送手机验证码失败") failure(Int(code), msg ?? YMLocalizedString("error.send_phone_code_failed"))
} }
}, mobile: encryptedPhone, type: String(type), phoneAreaCode: areaCode) }, mobile: encryptedPhone, type: String(type), phoneAreaCode: areaCode)
} }
@@ -142,7 +142,7 @@ import Foundation
code: Int64(code), code: Int64(code),
completion: completion, completion: completion,
failure: { errorCode, _ in failure: { errorCode, _ in
failure(errorCode, msg ?? "登录失败") failure(errorCode, msg ?? YMLocalizedString("error.login_failed"))
}) })
}, },
phone: encryptedId, phone: encryptedId,
@@ -173,7 +173,7 @@ import Foundation
code: Int64(code), code: Int64(code),
completion: completion, completion: completion,
failure: { errorCode, _ in failure: { errorCode, _ in
failure(errorCode, msg ?? "登录失败") failure(errorCode, msg ?? YMLocalizedString("error.login_failed"))
}) })
}, },
email: encryptedEmail, email: encryptedEmail,
@@ -206,7 +206,7 @@ import Foundation
code: Int64(code), code: Int64(code),
completion: completion, completion: completion,
failure: { errorCode, _ in failure: { errorCode, _ in
failure(errorCode, msg ?? "登录失败") failure(errorCode, msg ?? YMLocalizedString("error.login_failed"))
}) })
}, },
phone: encryptedPhone, phone: encryptedPhone,
@@ -241,7 +241,7 @@ import Foundation
if code == 200 { if code == 200 {
completion() completion()
} else { } else {
failure(Int(code), msg ?? "重置密码失败") failure(Int(code), msg ?? YMLocalizedString("error.reset_password_failed"))
} }
}, email: encryptedEmail, newPwd: encryptedPassword, code: code) }, email: encryptedEmail, newPwd: encryptedPassword, code: code)
} }
@@ -269,7 +269,7 @@ import Foundation
if code == 200 { if code == 200 {
completion() completion()
} else { } else {
failure(Int(code), msg ?? "重置密码失败") failure(Int(code), msg ?? YMLocalizedString("error.reset_password_failed"))
} }
}, phone: encryptedPhone, newPwd: encryptedPassword, smsCode: code, phoneAreaCode: areaCode) }, phone: encryptedPhone, newPwd: encryptedPassword, smsCode: code, phoneAreaCode: areaCode)
} }
@@ -293,7 +293,7 @@ import Foundation
code: Int64(code), code: Int64(code),
completion: completion, completion: completion,
failure: { errorCode, _ in failure: { errorCode, _ in
failure(errorCode, msg ?? "快速登录失败") failure(errorCode, msg ?? YMLocalizedString("error.quick_login_failed"))
}) })
}, },
accessToken: accessToken, accessToken: accessToken,

View File

@@ -89,13 +89,35 @@ class EPPolicyLabel: UILabel {
textContainer.lineFragmentPadding = 0 textContainer.lineFragmentPadding = 0
textContainer.maximumNumberOfLines = numberOfLines textContainer.maximumNumberOfLines = numberOfLines
textContainer.lineBreakMode = lineBreakMode
let locationOfTouchInLabel = gesture.location(in: self) let locationOfTouchInLabel = gesture.location(in: self)
let textBoundingBox = layoutManager.usedRect(for: textContainer) let textBoundingBox = layoutManager.usedRect(for: textContainer)
let textContainerOffset = CGPoint(x: (bounds.width - textBoundingBox.width) / 2,
y: (bounds.height - textBoundingBox.height) / 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, let locationOfTouchInTextContainer = CGPoint(x: locationOfTouchInLabel.x - textContainerOffset.x,
y: locationOfTouchInLabel.y - textContainerOffset.y) y: locationOfTouchInLabel.y - textContainerOffset.y)
//
guard textBoundingBox.contains(locationOfTouchInTextContainer) else {
print("[EPPolicyLabel] Tap outside text bounds")
return
}
let indexOfCharacter = layoutManager.characterIndex(for: locationOfTouchInTextContainer, let indexOfCharacter = layoutManager.characterIndex(for: locationOfTouchInTextContainer,
in: textContainer, in: textContainer,
fractionOfDistanceBetweenInsertionPoints: nil) fractionOfDistanceBetweenInsertionPoints: nil)

View File

@@ -338,7 +338,7 @@ class EPEditSettingViewController: BaseViewController {
self?.hideHUD() self?.hideHUD()
// //
let errorMsg = msg ?? "昵称更新失败,请稍后重试" let errorMsg = msg ?? YMLocalizedString("setting.nickname_update_failed")
self?.showErrorToast(errorMsg) self?.showErrorToast(errorMsg)
print("[EPEditSetting] 昵称更新失败: \(code) - \(errorMsg)") print("[EPEditSetting] 昵称更新失败: \(code) - \(errorMsg)")
@@ -453,7 +453,7 @@ extension EPEditSettingViewController: UITableViewDataSource, UITableViewDelegat
// //
let nicknameLabel = UILabel() let nicknameLabel = UILabel()
nicknameLabel.text = userInfo?.nick ?? "未设置" nicknameLabel.text = userInfo?.nick ?? YMLocalizedString("user.not_set")
nicknameLabel.textColor = .lightGray nicknameLabel.textColor = .lightGray
nicknameLabel.font = UIFont.systemFont(ofSize: 16) nicknameLabel.font = UIFont.systemFont(ofSize: 16)
cell.contentView.addSubview(nicknameLabel) cell.contentView.addSubview(nicknameLabel)
@@ -576,8 +576,8 @@ extension EPEditSettingViewController: UIImagePickerControllerDelegate, UINaviga
// //
DispatchQueue.main.async { DispatchQueue.main.async {
let alert = UIAlertController(title: "上传失败", message: errorMsg, preferredStyle: .alert) let alert = UIAlertController(title: YMLocalizedString("common.upload_failed"), message: errorMsg, preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "确定", style: .default)) alert.addAction(UIAlertAction(title: YMLocalizedString("common.confirm"), style: .default))
self?.present(alert, animated: true) self?.present(alert, animated: true)
} }
} }
@@ -599,13 +599,13 @@ extension EPEditSettingViewController: UIImagePickerControllerDelegate, UINaviga
print("[EPEditSetting] 头像更新失败: \(code) - \(msg ?? "未知错误")") print("[EPEditSetting] 头像更新失败: \(code) - \(msg ?? "未知错误")")
// //
DispatchQueue.main.async { DispatchQueue.main.async {
let alert = UIAlertController( let alert = UIAlertController(
title: "更新失败", title: YMLocalizedString("common.update_failed"),
message: msg ?? "头像更新失败,请稍后重试", message: msg ?? YMLocalizedString("setting.avatar_update_failed"),
preferredStyle: .alert preferredStyle: .alert
) )
alert.addAction(UIAlertAction(title: "确定", style: .default)) alert.addAction(UIAlertAction(title: YMLocalizedString("common.confirm"), style: .default))
self?.present(alert, animated: true) self?.present(alert, animated: true)
} }
}) })

View File

@@ -16,6 +16,9 @@
/// ///
@property (nonatomic, strong) UIImageView *avatarImageView; @property (nonatomic, strong) UIImageView *avatarImageView;
///
@property (nonatomic, strong) CALayer *glowLayer;
/// ///
@property (nonatomic, strong) UILabel *nicknameLabel; @property (nonatomic, strong) UILabel *nicknameLabel;
@@ -36,13 +39,21 @@
return self; return self;
} }
- (void)layoutSubviews {
[super layoutSubviews];
// frame
if (self.glowLayer) {
self.glowLayer.frame = CGRectInset(self.avatarImageView.frame, -8, -8);
}
}
- (void)setupUI { - (void)setupUI {
// //
self.avatarImageView = [[UIImageView alloc] init]; self.avatarImageView = [[UIImageView alloc] init];
self.avatarImageView.layer.cornerRadius = 60; self.avatarImageView.layer.cornerRadius = 60;
self.avatarImageView.layer.masksToBounds = NO; // NO self.avatarImageView.layer.masksToBounds = NO; // NO
self.avatarImageView.layer.borderWidth = 3; self.avatarImageView.layer.borderWidth = 0; //
self.avatarImageView.layer.borderColor = [UIColor whiteColor].CGColor;
self.avatarImageView.backgroundColor = [UIColor whiteColor]; self.avatarImageView.backgroundColor = [UIColor whiteColor];
self.avatarImageView.contentMode = UIViewContentModeScaleAspectFill; self.avatarImageView.contentMode = UIViewContentModeScaleAspectFill;
@@ -100,7 +111,7 @@
- (void)updateWithUserInfo:(NSDictionary *)userInfoDict { - (void)updateWithUserInfo:(NSDictionary *)userInfoDict {
// //
NSString *nickname = userInfoDict[@"nickname"] ?: @"未设置昵称"; NSString *nickname = userInfoDict[@"nickname"] ?: YMLocalizedString(@"user.nickname_not_set");
self.nicknameLabel.text = nickname; self.nicknameLabel.text = nickname;
// ID // ID
@@ -129,9 +140,8 @@
// 使 // 使
UIColor *color = [self colorFromHex:signatureColor]; UIColor *color = [self colorFromHex:signatureColor];
// //
self.avatarImageView.layer.borderColor = color.CGColor; self.avatarImageView.layer.borderWidth = 0;
self.avatarImageView.layer.borderWidth = 4; //
// 使 // 使
self.avatarImageView.layer.shadowColor = color.CGColor; self.avatarImageView.layer.shadowColor = color.CGColor;
@@ -140,19 +150,75 @@
self.avatarImageView.layer.shadowRadius = 12; self.avatarImageView.layer.shadowRadius = 12;
NSLog(@"[EPMineHeaderView] 应用专属颜色: %@", signatureColor); NSLog(@"[EPMineHeaderView] 应用专属颜色: %@", signatureColor);
//
[self applyBreathingGlow];
} else { } else {
// 使 //
self.avatarImageView.layer.borderColor = [UIColor whiteColor].CGColor; self.avatarImageView.layer.borderWidth = 0;
self.avatarImageView.layer.borderWidth = 3;
// //
self.avatarImageView.layer.shadowColor = [UIColor blackColor].CGColor; self.avatarImageView.layer.shadowColor = [UIColor blackColor].CGColor;
self.avatarImageView.layer.shadowOffset = CGSizeMake(0, 2); self.avatarImageView.layer.shadowOffset = CGSizeMake(0, 2);
self.avatarImageView.layer.shadowOpacity = 0.2; self.avatarImageView.layer.shadowOpacity = 0.2;
self.avatarImageView.layer.shadowRadius = 8; 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 /// Hex UIColor
- (UIColor *)colorFromHex:(NSString *)hexString { - (UIColor *)colorFromHex:(NSString *)hexString {
unsigned rgbValue = 0; unsigned rgbValue = 0;

View File

@@ -200,8 +200,7 @@ NSString *const EPMomentPublishSuccessNotification = @"EPMomentPublishSuccessNot
// //
if (self.textView.text.length == 0 && self.images.count == 0) { if (self.textView.text.length == 0 && self.images.count == 0) {
// TODO: "请输入内容或选择图片" [EPProgressHUD showError:YMLocalizedString(@"publish.content_or_image_required")];
NSLog(@"请输入内容或选择图片");
return; return;
} }
@@ -336,7 +335,7 @@ NSString *const EPMomentPublishSuccessNotification = @"EPMomentPublishSuccessNot
- (UILabel *)titleLabel { - (UILabel *)titleLabel {
if (!_titleLabel) { if (!_titleLabel) {
_titleLabel = [UILabel new]; _titleLabel = [UILabel new];
_titleLabel.text = @"图文发布"; _titleLabel.text = YMLocalizedString(@"publish.title");
_titleLabel.textColor = [UIColor whiteColor]; // _titleLabel.textColor = [UIColor whiteColor]; //
_titleLabel.font = [UIFont systemFontOfSize:17]; _titleLabel.font = [UIFont systemFontOfSize:17];
} }
@@ -345,7 +344,7 @@ NSString *const EPMomentPublishSuccessNotification = @"EPMomentPublishSuccessNot
- (UIButton *)publishButton { - (UIButton *)publishButton {
if (!_publishButton) { if (!_publishButton) {
_publishButton = [UIButton buttonWithType:UIButtonTypeCustom]; _publishButton = [UIButton buttonWithType:UIButtonTypeCustom];
[_publishButton setTitle:@"发布" forState:UIControlStateNormal]; [_publishButton setTitle:YMLocalizedString(@"common.publish") forState:UIControlStateNormal];
[_publishButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [_publishButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
_publishButton.titleLabel.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium]; _publishButton.titleLabel.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium];
_publishButton.layer.cornerRadius = 25; _publishButton.layer.cornerRadius = 25;

View File

@@ -85,7 +85,7 @@
UIImage *addIcon = [UIImage imageNamed:@"icon_moment_add"]; UIImage *addIcon = [UIImage imageNamed:@"icon_moment_add"];
UIButton *publishButton = [UIButton buttonWithType:UIButtonTypeCustom]; UIButton *publishButton = [UIButton buttonWithType:UIButtonTypeCustom];
[publishButton setImage:addIcon forState:UIControlStateNormal]; [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]; [publishButton addTarget:self action:@selector(onPublishButtonTapped) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *publishItem = [[UIBarButtonItem alloc] initWithCustomView:publishButton]; UIBarButtonItem *publishItem = [[UIBarButtonItem alloc] initWithCustomView:publishButton];
self.navigationItem.rightBarButtonItem = publishItem; self.navigationItem.rightBarButtonItem = publishItem;
@@ -105,10 +105,10 @@
} }
- (void)showAlertWithMessage:(NSString *)message { - (void)showAlertWithMessage:(NSString *)message {
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"提示" UIAlertController *alert = [UIAlertController alertControllerWithTitle:YMLocalizedString(@"common.tips")
message:message message:message
preferredStyle:UIAlertControllerStyleAlert]; 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]; [self presentViewController:alert animated:YES completion:nil];
} }
@@ -133,7 +133,7 @@
__weak typeof(self) weakSelf = self; __weak typeof(self) weakSelf = self;
_listView.onSelectMoment = ^(NSInteger index) { _listView.onSelectMoment = ^(NSInteger index) {
__strong typeof(weakSelf) self = weakSelf; __strong typeof(weakSelf) self = weakSelf;
[self showAlertWithMessage:[NSString stringWithFormat:@"点击了第 %ld 条动态", (long)index]]; [self showAlertWithMessage:[NSString stringWithFormat:YMLocalizedString(@"moment.item_clicked"), (long)index]];
}; };
} }
return _listView; return _listView;

View File

@@ -37,7 +37,7 @@ import Foundation
completion([], "") completion([], "")
} }
} else { } else {
failure(Int(code), msg ?? "请求失败") failure(Int(code), msg ?? YMLocalizedString("error.request_failed"))
} }
}, dynamicId: nextID, pageSize: pageSize, types: types) }, dynamicId: nextID, pageSize: pageSize, types: types)
} }
@@ -57,7 +57,7 @@ import Foundation
failure: @escaping (Int, String) -> Void failure: @escaping (Int, String) -> Void
) { ) {
guard let uid = AccountInfoStorage.instance().getUid() else { guard let uid = AccountInfoStorage.instance().getUid() else {
failure(-1, "用户未登录") failure(-1, YMLocalizedString("error.not_logged_in"))
return return
} }
@@ -70,7 +70,7 @@ import Foundation
if code == 200 { if code == 200 {
completion() completion()
} else { } else {
failure(Int(code), msg ?? "发布失败") failure(Int(code), msg ?? YMLocalizedString("error.publish_failed"))
} }
}, uid: uid, type: type, worldId: "", content: content, resList: resList) }, uid: uid, type: type, worldId: "", content: content, resList: resList)
} }
@@ -92,7 +92,7 @@ import Foundation
failure: @escaping (Int, String) -> Void failure: @escaping (Int, String) -> Void
) { ) {
guard let uid = AccountInfoStorage.instance().getUid() else { guard let uid = AccountInfoStorage.instance().getUid() else {
failure(-1, "用户未登录") failure(-1, YMLocalizedString("error.not_logged_in"))
return return
} }
@@ -103,7 +103,7 @@ import Foundation
if code == 200 { if code == 200 {
completion() completion()
} else { } else {
failure(Int(code), msg ?? "点赞操作失败") failure(Int(code), msg ?? YMLocalizedString("error.like_failed"))
} }
}, dynamicId: dynamicId, uid: uid, status: status, likedUid: likedUid, worldId: worldIdStr) }, dynamicId: dynamicId, uid: uid, status: status, likedUid: likedUid, worldId: worldIdStr)
} }

View File

@@ -21,6 +21,9 @@
/// ///
@property (nonatomic, strong) UIView *cardView; @property (nonatomic, strong) UIView *cardView;
///
@property (nonatomic, strong) UIView *colorBackgroundView;
/// ///
@property (nonatomic, strong) UIVisualEffectView *blurEffectView; @property (nonatomic, strong) UIVisualEffectView *blurEffectView;
@@ -83,7 +86,13 @@
make.bottom.equalTo(self.contentView).offset(-8); 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.cardView addSubview:self.blurEffectView];
[self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) { [self.blurEffectView mas_makeConstraints:^(MASConstraintMaker *make) {
make.edges.equalTo(self.cardView); make.edges.equalTo(self.cardView);
@@ -153,7 +162,7 @@
self.currentModel = model; self.currentModel = model;
// //
self.nameLabel.text = model.nick ?: @"匿名用户"; self.nameLabel.text = model.nick ?: YMLocalizedString(@"user.anonymous");
// MM/dd // MM/dd
self.timeLabel.text = [self formatTimestampToDate:model.publishTime]; self.timeLabel.text = [self formatTimestampToDate:model.publishTime];
@@ -176,20 +185,21 @@
[self applyEmotionColorEffect:model.emotionColor]; [self applyEmotionColorEffect:model.emotionColor];
} }
/// Border + Shadow /// Background + Shadow
- (void)applyEmotionColorEffect:(NSString *)emotionColorHex { - (void)applyEmotionColorEffect:(NSString *)emotionColorHex {
NSString *displayColorHex = emotionColorHex; // 使
if (!emotionColorHex) {
// 使 NSLog(@"[EPMomentCell] 警告emotionColorHex 为 nil");
if (!displayColorHex) { return;
displayColorHex = [EPEmotionColorStorage randomEmotionColor];
} }
UIColor *color = [self colorFromHex:displayColorHex]; UIColor *color = [self colorFromHex:emotionColorHex];
// border //
self.cardView.layer.borderWidth = 3.0; self.cardView.layer.borderWidth = 0;
self.cardView.layer.borderColor = color.CGColor;
// 50%
self.colorBackgroundView.backgroundColor = [color colorWithAlphaComponent:0.5];
// shadow使 // shadow使
self.cardView.layer.shadowColor = color.CGColor; self.cardView.layer.shadowColor = color.CGColor;
@@ -295,18 +305,18 @@
/// ///
- (NSString *)formatTimeInterval:(NSInteger)timestamp { - (NSString *)formatTimeInterval:(NSInteger)timestamp {
if (timestamp <= 0) return @"刚刚"; if (timestamp <= 0) return YMLocalizedString(@"time.just_now");
NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] - timestamp / 1000.0; NSTimeInterval interval = [[NSDate date] timeIntervalSince1970] - timestamp / 1000.0;
if (interval < 60) { if (interval < 60) {
return @"刚刚"; return YMLocalizedString(@"time.just_now");
} else if (interval < 3600) { } else if (interval < 3600) {
return [NSString stringWithFormat:@"%.0f分钟前", interval / 60]; return [NSString stringWithFormat:YMLocalizedString(@"time.minutes_ago"), interval / 60];
} else if (interval < 86400) { } else if (interval < 86400) {
return [NSString stringWithFormat:@"%.0f小时前", interval / 3600]; return [NSString stringWithFormat:YMLocalizedString(@"time.hours_ago"), interval / 3600];
} else if (interval < 604800) { } else if (interval < 604800) {
return [NSString stringWithFormat:@"%.0f天前", interval / 86400]; return [NSString stringWithFormat:YMLocalizedString(@"time.days_ago"), interval / 86400];
} else { } else {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"yyyy-MM-dd"; formatter.dateFormat = @"yyyy-MM-dd";
@@ -415,14 +425,23 @@
- (UIView *)cardView { - (UIView *)cardView {
if (!_cardView) { if (!_cardView) {
_cardView = [[UIView alloc] init]; _cardView = [[UIView alloc] init];
_cardView.backgroundColor = [UIColor clearColor]; // blurEffectView _cardView.backgroundColor = [UIColor clearColor]; // colorBackgroundView
_cardView.layer.cornerRadius = 12; // _cardView.layer.cornerRadius = 12; //
// Shadow Border applyEmotionColorEffect // Shadow applyEmotionColorEffect
_cardView.layer.masksToBounds = NO; _cardView.layer.masksToBounds = NO;
} }
return _cardView; return _cardView;
} }
- (UIView *)colorBackgroundView {
if (!_colorBackgroundView) {
_colorBackgroundView = [[UIView alloc] init];
_colorBackgroundView.layer.cornerRadius = 12;
_colorBackgroundView.layer.masksToBounds = YES;
}
return _colorBackgroundView;
}
- (UIVisualEffectView *)blurEffectView { - (UIVisualEffectView *)blurEffectView {
if (!_blurEffectView) { if (!_blurEffectView) {
UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight]; UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleLight];

View File

@@ -154,8 +154,13 @@
NSString *savedColor = [EPEmotionColorStorage colorForDynamicId:model.dynamicId]; NSString *savedColor = [EPEmotionColorStorage colorForDynamicId:model.dynamicId];
if (savedColor) { if (savedColor) {
model.emotionColor = savedColor; model.emotionColor = savedColor;
} else {
//
NSString *randomColor = [EPEmotionColorStorage randomEmotionColor];
model.emotionColor = randomColor;
[EPEmotionColorStorage saveColor:randomColor forDynamicId:model.dynamicId];
NSLog(@"[EPMomentListView] 为动态 %@ 分配随机颜色: %@", model.dynamicId, randomColor);
} }
// nilCell
} }
} }
@@ -219,7 +224,7 @@
// MJRefresh Footer - // MJRefresh Footer -
__weak typeof(self) weakSelf = self; __weak typeof(self) weakSelf = self;
_tableView.mj_footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{ MJRefreshAutoNormalFooter *footer = [MJRefreshAutoNormalFooter footerWithRefreshingBlock:^{
__strong typeof(weakSelf) self = weakSelf; __strong typeof(weakSelf) self = weakSelf;
if (!self.isLoading && self.nextID.length > 0) { if (!self.isLoading && self.nextID.length > 0) {
[self requestNextPage]; [self requestNextPage];
@@ -229,6 +234,10 @@
[self.tableView.mj_footer endRefreshing]; [self.tableView.mj_footer endRefreshing];
} }
}]; }];
//
footer.stateLabel.textColor = [UIColor whiteColor];
footer.loadingView.color = [UIColor whiteColor];
_tableView.mj_footer = footer;
} }
return _tableView; return _tableView;
} }
@@ -236,6 +245,7 @@
- (UIRefreshControl *)refreshControl { - (UIRefreshControl *)refreshControl {
if (!_refreshControl) { if (!_refreshControl) {
_refreshControl = [[UIRefreshControl alloc] init]; _refreshControl = [[UIRefreshControl alloc] init];
_refreshControl.tintColor = [UIColor whiteColor]; //
[_refreshControl addTarget:self action:@selector(reloadFirstPage) forControlEvents:UIControlEventValueChanged]; [_refreshControl addTarget:self action:@selector(reloadFirstPage) forControlEvents:UIControlEventValueChanged];
} }
return _refreshControl; return _refreshControl;

View File

@@ -197,7 +197,7 @@ import SnapKit
selectedIndex = newIndex selectedIndex = newIndex
} }
let tabNames = ["动态", "我的"] let tabNames = [YMLocalizedString("tab.moment"), YMLocalizedString("tab.mine")]
NSLog("[EPTabBarController] 选中 Tab: \(tabNames[newIndex])") NSLog("[EPTabBarController] 选中 Tab: \(tabNames[newIndex])")
} }
@@ -254,7 +254,7 @@ import SnapKit
let blankVC1 = UIViewController() let blankVC1 = UIViewController()
blankVC1.view.backgroundColor = .white blankVC1.view.backgroundColor = .white
blankVC1.tabBarItem = createTabBarItem( blankVC1.tabBarItem = createTabBarItem(
title: "动态", title: YMLocalizedString("tab.moment"),
normalImage: "tab_moment_normal", normalImage: "tab_moment_normal",
selectedImage: "tab_moment_selected" selectedImage: "tab_moment_selected"
) )
@@ -262,7 +262,7 @@ import SnapKit
let blankVC2 = UIViewController() let blankVC2 = UIViewController()
blankVC2.view.backgroundColor = .white blankVC2.view.backgroundColor = .white
blankVC2.tabBarItem = createTabBarItem( blankVC2.tabBarItem = createTabBarItem(
title: "我的", title: YMLocalizedString("tab.mine"),
normalImage: "tab_mine_normal", normalImage: "tab_mine_normal",
selectedImage: "tab_mine_selected" selectedImage: "tab_mine_selected"
) )
@@ -313,20 +313,20 @@ import SnapKit
// //
let momentVC = EPMomentViewController() let momentVC = EPMomentViewController()
momentVC.title = "动态" momentVC.title = YMLocalizedString("tab.moment")
let momentNav = createTransparentNavigationController( let momentNav = createTransparentNavigationController(
rootViewController: momentVC, rootViewController: momentVC,
tabTitle: "动态", tabTitle: YMLocalizedString("tab.moment"),
normalImage: "tab_moment_normal", normalImage: "tab_moment_normal",
selectedImage: "tab_moment_selected" selectedImage: "tab_moment_selected"
) )
// //
let mineVC = EPMineViewController() let mineVC = EPMineViewController()
mineVC.title = "我的" mineVC.title = YMLocalizedString("tab.mine")
let mineNav = createTransparentNavigationController( let mineNav = createTransparentNavigationController(
rootViewController: mineVC, rootViewController: mineVC,
tabTitle: "我的", tabTitle: YMLocalizedString("tab.mine"),
normalImage: "tab_mine_normal", normalImage: "tab_mine_normal",
selectedImage: "tab_mine_selected" selectedImage: "tab_mine_selected"
) )

View File

@@ -57,7 +57,7 @@
<key>FacebookClientToken</key> <key>FacebookClientToken</key>
<string>189d1a90712cc61cedded4cf1372cb21</string> <string>189d1a90712cc61cedded4cf1372cb21</string>
<key>FacebookDisplayName</key> <key>FacebookDisplayName</key>
<string>E-Parti</string> <string>E-Party</string>
<key>ITSAppUsesNonExemptEncryption</key> <key>ITSAppUsesNonExemptEncryption</key>
<false/> <false/>
<key>LSApplicationQueriesSchemes</key> <key>LSApplicationQueriesSchemes</key>
@@ -96,17 +96,17 @@
<true/> <true/>
</dict> </dict>
<key>NSCameraUsageDescription</key> <key>NSCameraUsageDescription</key>
<string>"E-Parti"需要您的同意,才可以访问进行拍照并上传您的图片,然后展示在您的个人主页上,便于他人查看</string> <string>"E-Party"需要您的同意,才可以访问进行拍照并上传您的图片,然后展示在您的个人主页上,便于他人查看</string>
<key>NSLocalNetworkUsageDescription</key> <key>NSLocalNetworkUsageDescription</key>
<string>此App将可发现和连接到您所用网络上的设备。</string> <string>此App将可发现和连接到您所用网络上的设备。</string>
<key>NSLocationWhenInUseUsageDescription</key> <key>NSLocationWhenInUseUsageDescription</key>
<string>"E-Parti"需要您的同意,才可以进行定位服务,推荐附近好友</string> <string>"E-Party"需要您的同意,才可以进行定位服务,推荐附近好友</string>
<key>NSMicrophoneUsageDescription</key> <key>NSMicrophoneUsageDescription</key>
<string>"E-Parti"需要您的同意,才可以进行语音聊天</string> <string>"E-Party"需要您的同意,才可以进行语音聊天</string>
<key>NSPhotoLibraryAddUsageDescription</key> <key>NSPhotoLibraryAddUsageDescription</key>
<string>"E-Parti"需要您的同意,才可以存储相片到相册</string> <string>"E-Party"需要您的同意,才可以存储相片到相册</string>
<key>NSPhotoLibraryUsageDescription</key> <key>NSPhotoLibraryUsageDescription</key>
<string>"E-Parti"需要您的同意,才可以访问相册并选择您需要上传的图片,然后展示在您的个人主页上,便于他人查看</string> <string>"E-Party"需要您的同意,才可以访问相册并选择您需要上传的图片,然后展示在您的个人主页上,便于他人查看</string>
<key>NSUserTrackingUsageDescription</key> <key>NSUserTrackingUsageDescription</key>
<string>請允許我們獲取您的IDFA權限可以為您提供個性化活動和服務。未經您的允許您的信息將不作其他用途。</string> <string>請允許我們獲取您的IDFA權限可以為您提供個性化活動和服務。未經您的允許您的信息將不作其他用途。</string>
<key>UIApplicationSupportsIndirectInputEvents</key> <key>UIApplicationSupportsIndirectInputEvents</key>

View File

@@ -274,7 +274,7 @@
- (UILabel *)titleLabel { - (UILabel *)titleLabel {
if (!_titleLabel) { if (!_titleLabel) {
_titleLabel = [[UILabel alloc] init]; _titleLabel = [[UILabel alloc] init];
_titleLabel.text = @"Welcome to E-Parti"; _titleLabel.text = @"Welcome to E-Party";
_titleLabel.font = kFontBold(28); _titleLabel.font = kFontBold(28);
_titleLabel.textColor = UIColorFromRGB(0x1F1B4F); _titleLabel.textColor = UIColorFromRGB(0x1F1B4F);
} }

View File

@@ -108,7 +108,7 @@ static __weak UIViewController *_presentingVC = nil;
NSMutableArray *shareItems = [NSMutableArray array]; NSMutableArray *shareItems = [NSMutableArray array];
// 1. // 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 ?: @""]; subtitle, url.absoluteString ?: @""];
[shareItems addObject:plainText]; [shareItems addObject:plainText];
@@ -219,8 +219,8 @@ static __weak UIViewController *_presentingVC = nil;
// 1. // 1.
NSString *title = @"🎵 Apple Music 专辑推荐Imagine Dragons"; NSString *title = @"🎵 Apple Music 专辑推荐Imagine Dragons";
NSString *subtitle = @"来自E-Parti的精彩推荐"; NSString *subtitle = @"来自E-Party的精彩推荐";
NSString *appName = @"E-Parti"; NSString *appName = @"E-Party";
NSURL *albumURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", API_HOST_URL, urlString]]; NSURL *albumURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", API_HOST_URL, urlString]];
UIImage *albumImage = image; UIImage *albumImage = image;

View File

@@ -21,7 +21,7 @@
if (self) { if (self) {
_title = title ?: @""; _title = title ?: @"";
_subtitle = subtitle ?: @""; _subtitle = subtitle ?: @"";
_appName = appName ?: @"E-Parti"; _appName = appName ?: @"E-Party";
_url = url; _url = url;
_image = image; _image = image;
_appIcon = appIcon; _appIcon = appIcon;

View File

@@ -689,7 +689,7 @@
"XPLoginPwdViewController4" = "تسجيل الدخول برقم الهاتف"; "XPLoginPwdViewController4" = "تسجيل الدخول برقم الهاتف";
"XPLoginPwdViewController5" = "نسيت كلمة المرور"; "XPLoginPwdViewController5" = "نسيت كلمة المرور";
"XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Parti"; "XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Party";
"XPLoginBindPhoneResultViewController0" = "ربط الهاتف"; "XPLoginBindPhoneResultViewController0" = "ربط الهاتف";
"XPLoginBindPhoneResultViewController1" = "رقم الهاتف المرتبط حاليًا هو"; "XPLoginBindPhoneResultViewController1" = "رقم الهاتف المرتبط حاليًا هو";
@@ -727,7 +727,7 @@
"XPShareView5" = "فشلت عملية المشاركة"; "XPShareView5" = "فشلت عملية المشاركة";
"XPShareView6" = "إلغاء المشاركة"; "XPShareView6" = "إلغاء المشاركة";
"XPShareView7" = "إلغاء"; "XPShareView7" = "إلغاء";
"XPShareView8" = "تعال إلى E-Parti واكتشف صوتك الخاص"; "XPShareView8" = "تعال إلى E-Party واكتشف صوتك الخاص";
"XPShareView9" = "التطبيق غير مثبت، فشلت عملية المشاركة"; "XPShareView9" = "التطبيق غير مثبت، فشلت عملية المشاركة";
///XPFirstRechargeViewController.m ///XPFirstRechargeViewController.m
@@ -1904,7 +1904,7 @@ ineHeadView12" = "الحمل";
"RoomHeaderView2" = "متصل: %ld ID: %ld"; "RoomHeaderView2" = "متصل: %ld ID: %ld";
"RoomHeaderView3" = "نسخ الرابط"; "RoomHeaderView3" = "نسخ الرابط";
"RoomHeaderView4" = "تعال إلى E-Parti، ولنلعب ونتعارف ونلعب ألعابًا"; "RoomHeaderView4" = "تعال إلى E-Party، ولنلعب ونتعارف ونلعب ألعابًا";
"RoomHeaderView5" = "شخص جميل وصوت حلو يحقق الانتصارات، هيا لنلعب معًا~"; "RoomHeaderView5" = "شخص جميل وصوت حلو يحقق الانتصارات، هيا لنلعب معًا~";
"RoomHeaderView6" = "تمت الإضافة للمفضلة بنجاح"; "RoomHeaderView6" = "تمت الإضافة للمفضلة بنجاح";
"RoomHeaderView7" = "تمت المشاركة بنجاح"; "RoomHeaderView7" = "تمت المشاركة بنجاح";
@@ -2883,7 +2883,7 @@ ineHeadView12" = "الحمل";
"XPLoginPwdViewController3" = "من فضلك إدخل الرقم السري"; "XPLoginPwdViewController3" = "من فضلك إدخل الرقم السري";
"XPLoginPwdViewController4" = "تسجيل الدخول باستخدام رقم الهاتف"; "XPLoginPwdViewController4" = "تسجيل الدخول باستخدام رقم الهاتف";
"XPLoginPwdViewController5" = "نسيت كلمة المرور"; "XPLoginPwdViewController5" = "نسيت كلمة المرور";
"XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Parti الخاص بك"; "XPLoginPwdViewController6" = "الرجاء إدخال حساب E-Party الخاص بك";
"XPLoginBindPhoneResultViewController0" = "ربط الهاتف"; "XPLoginBindPhoneResultViewController0" = "ربط الهاتف";
"XPLoginBindPhoneResultViewController1" = "رقم الهاتف المرتبط بك حاليًا هو"; "XPLoginBindPhoneResultViewController1" = "رقم الهاتف المرتبط بك حاليًا هو";
@@ -3623,7 +3623,7 @@ ineHeadView12" = "الحمل";
"PIMessageContentServiceReplyView0"="كيفية الشحن:"; "PIMessageContentServiceReplyView0"="كيفية الشحن:";
"PIMessageContentServiceReplyView1"="نسخ"; "PIMessageContentServiceReplyView1"="نسخ";
"PIMessageContentServiceReplyView2"="1. للصوت - 【الشحن بالعملات】 للقيام بشحن الرصيد E-Parti اذهب إلى قسم 【الخاص بي】 داخل تطبيق"; "PIMessageContentServiceReplyView2"="1. للصوت - 【الشحن بالعملات】 للقيام بشحن الرصيد E-Party اذهب إلى قسم 【الخاص بي】 داخل تطبيق";
"PIMessageContentServiceReplyView3"="2. ٢. اتصل بخدمة العملاء"; "PIMessageContentServiceReplyView3"="2. ٢. اتصل بخدمة العملاء";
"PIMessageContentServiceReplyView4"="WeChat لخدمة العملاء: %@ "; "PIMessageContentServiceReplyView4"="WeChat لخدمة العملاء: %@ ";
"PIMessageContentServiceReplyView5"="Line لخدمة العملاء: %@ "; "PIMessageContentServiceReplyView5"="Line لخدمة العملاء: %@ ";
@@ -4120,7 +4120,7 @@ ineHeadView12" = "الحمل";
"1.0.37_text_52" = "لا يمكنك استخدام هذه الميزة."; "1.0.37_text_52" = "لا يمكنك استخدام هذه الميزة.";
"20.20.51_text_1" = "تسجيل الدخول بالبريد الإلكتروني"; "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_3" = "الرجاء إدخال المعرف";
"20.20.51_text_4" = "يرجى إدخال البريد الإلكتروني"; "20.20.51_text_4" = "يرجى إدخال البريد الإلكتروني";
"20.20.51_text_7" = "يرجى إدخال رمز التحقق"; "20.20.51_text_7" = "يرجى إدخال رمز التحقق";

View File

@@ -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"; 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"; 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"; NSMicrophoneUsageDescription = "\"E-Party\" needs your consent before it can conduct voice chat";
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" needs your consent before it can store photos in the album"; NSPhotoLibraryAddUsageDescription = "\"E-Party\" 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"; 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"; 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";

View File

@@ -393,7 +393,7 @@
"XPLoginPwdViewController4" = "Phone number login"; "XPLoginPwdViewController4" = "Phone number login";
"XPLoginPwdViewController5" = "Forgot password"; "XPLoginPwdViewController5" = "Forgot password";
"XPLoginPwdViewController6" = "Please enter a E-Parti account"; "XPLoginPwdViewController6" = "Please enter a E-Party account";
"XPLoginBindPhoneResultViewController0" = "Bind phone"; "XPLoginBindPhoneResultViewController0" = "Bind phone";
"XPLoginBindPhoneResultViewController1" = "Your current bound phone number is"; "XPLoginBindPhoneResultViewController1" = "Your current bound phone number is";
@@ -455,7 +455,7 @@
"XPShareView5" = "Share failed"; "XPShareView5" = "Share failed";
"XPShareView6" = "Cancel sharing"; "XPShareView6" = "Cancel sharing";
"XPShareView7" = "Cancel"; "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"; "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."; "XPFirstRechargeViewController0" = "1. Each person can only receive the first recharge benefit once\n2. Each ID and device can only participate once.";
"XPFirstRechargeViewController1" = "Recharge now"; "XPFirstRechargeViewController1" = "Recharge now";
@@ -511,12 +511,12 @@
"HttpRequestHelper1" = "Please check network connection"; "HttpRequestHelper1" = "Please check network connection";
"HttpRequestHelper2" = "Please check network connection"; "HttpRequestHelper2" = "Please check network connection";
"HttpRequestHelper3" = "Login session has expired"; "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"; "HttpRequestHelper5" = "Unknown error from server";
"HttpRequestHelper6" = "Please check network connection"; "HttpRequestHelper6" = "Please check network connection";
"HttpRequestHelper7" = "Login session has expired."; "HttpRequestHelper7" = "Login session has expired.";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "System Notifications"; "XPMineNotificaPresenter0" = "System Notifications";
"XPMineNotificaPresenter1" = "When turned off, system messages and official assistants will no longer prompt"; "XPMineNotificaPresenter1" = "When turned off, system messages and official assistants will no longer prompt";
@@ -932,7 +932,7 @@
"XPIAPRechargeViewController2" = "Confirm Recharge"; "XPIAPRechargeViewController2" = "Confirm Recharge";
"XPIAPRechargeViewController3" = "《User Recharge Agreement》"; "XPIAPRechargeViewController3" = "《User Recharge Agreement》";
"XPIAPRechargeViewController4" = "I have read and agree"; "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"; "XPIAPRechargeViewController6" = "My Account";
"XPIAPRechargeViewController7" = "Reminder"; "XPIAPRechargeViewController7" = "Reminder";
"XPIAPRechargeViewController8" = "Recharge failed. Please contact customer service for assistance."; "XPIAPRechargeViewController8" = "Recharge failed. Please contact customer service for assistance.";
@@ -1640,7 +1640,7 @@
"RoomHeaderView1" = "Online: %ld   ID: %ld"; "RoomHeaderView1" = "Online: %ld   ID: %ld";
"RoomHeaderView2" = "Online: %ld   ID: %ld"; "RoomHeaderView2" = "Online: %ld   ID: %ld";
"RoomHeaderView3" = "Copy Link"; "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~"; "RoomHeaderView5" = "Beautiful people with sweet voices win points, let's play together~";
"RoomHeaderView6" = "Bookmark Successful"; "RoomHeaderView6" = "Bookmark Successful";
"RoomHeaderView7" = "Share Successful"; "RoomHeaderView7" = "Share Successful";
@@ -2315,7 +2315,7 @@
"XPLoginPwdViewController3" = "Please enter password"; "XPLoginPwdViewController3" = "Please enter password";
"XPLoginPwdViewController4" = "Phone Number Login"; "XPLoginPwdViewController4" = "Phone Number Login";
"XPLoginPwdViewController5" = "Forget Password"; "XPLoginPwdViewController5" = "Forget Password";
"XPLoginPwdViewController6" = "Please enter your E-Parti account"; "XPLoginPwdViewController6" = "Please enter your E-Party account";
"XPLoginBindPhoneResultViewController0" = "Bind Phone"; "XPLoginBindPhoneResultViewController0" = "Bind Phone";
"XPLoginBindPhoneResultViewController1" = "The current bound phone number is"; "XPLoginBindPhoneResultViewController1" = "The current bound phone number is";
@@ -3418,7 +3418,7 @@
"PIMessageContentServiceReplyView0"="How to Top-Up:"; "PIMessageContentServiceReplyView0"="How to Top-Up:";
"PIMessageContentServiceReplyView1"="Copy"; "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"; "PIMessageContentServiceReplyView3"="2. Contact customer service";
"PIMessageContentServiceReplyView4"="Customer Service WeChat: %@ "; "PIMessageContentServiceReplyView4"="Customer Service WeChat: %@ ";
"PIMessageContentServiceReplyView5"="Customer Service Line: %@ "; "PIMessageContentServiceReplyView5"="Customer Service Line: %@ ";
@@ -3908,7 +3908,7 @@
"1.0.37_text_52" = "Your cannot use this feature."; "1.0.37_text_52" = "Your cannot use this feature.";
"20.20.51_text_1" = "Email Login"; "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_3" = "Please enter ID";
"20.20.51_text_4" = "Please enter email"; "20.20.51_text_4" = "Please enter email";
"20.20.51_text_7" = "Please enter verification code"; "20.20.51_text_7" = "Please enter verification code";
@@ -4066,3 +4066,149 @@
"EPEditSetting.LogoutConfirm" = "Are you sure you want to log out?"; "EPEditSetting.LogoutConfirm" = "Are you sure you want to log out?";
"EPEditSetting.Cancel" = "Cancel"; "EPEditSetting.Cancel" = "Cancel";
"EPEditSetting.Confirm" = "Confirm"; "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 */

View File

@@ -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"; 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"; 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"; NSMicrophoneUsageDescription = "\"E-Party\" 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"; NSPhotoLibraryAddUsageDescription = "\"E-Party\" 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"; 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"; 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";

View File

@@ -391,7 +391,7 @@
"XPLoginPwdViewController4" = "Inicio de sesión con número de teléfono"; "XPLoginPwdViewController4" = "Inicio de sesión con número de teléfono";
"XPLoginPwdViewController5" = "Olvidé la contraseña"; "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"; "XPLoginBindPhoneResultViewController0" = "Vincular teléfono";
"XPLoginBindPhoneResultViewController1" = "Tu número de teléfono vinculado actual es"; "XPLoginBindPhoneResultViewController1" = "Tu número de teléfono vinculado actual es";
@@ -453,7 +453,7 @@
"XPShareView5" = "Compartir fallido"; "XPShareView5" = "Compartir fallido";
"XPShareView6" = "Cancelar compartir"; "XPShareView6" = "Cancelar compartir";
"XPShareView7" = "Cancelar"; "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"; "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."; "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"; "XPFirstRechargeViewController1" = "Recargar ahora";
@@ -509,12 +509,12 @@
"HttpRequestHelper1" = "Por favor comprueba la conexión a internet"; "HttpRequestHelper1" = "Por favor comprueba la conexión a internet";
"HttpRequestHelper2" = "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"; "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"; "HttpRequestHelper5" = "Error desconocido del servidor";
"HttpRequestHelper6" = "Por favor comprueba la conexión a internet"; "HttpRequestHelper6" = "Por favor comprueba la conexión a internet";
"HttpRequestHelper7" = "La sesión de inicio de sesión ha expirado."; "HttpRequestHelper7" = "La sesión de inicio de sesión ha expirado.";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "Notificaciones del sistema"; "XPMineNotificaPresenter0" = "Notificaciones del sistema";
"XPMineNotificaPresenter1" = "Cuando está apagado, los mensajes del sistema y los asistentes oficiales ya no se mostrarán"; "XPMineNotificaPresenter1" = "Cuando está apagado, los mensajes del sistema y los asistentes oficiales ya no se mostrarán";
@@ -930,7 +930,7 @@
"XPIAPRechargeViewController2" = "Confirmar Recarga"; "XPIAPRechargeViewController2" = "Confirmar Recarga";
"XPIAPRechargeViewController3" = "《Acuerdo de Recarga de Usuario》"; "XPIAPRechargeViewController3" = "《Acuerdo de Recarga de Usuario》";
"XPIAPRechargeViewController4" = "He leído y acepto"; "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"; "XPIAPRechargeViewController6" = "Mi Cuenta";
"XPIAPRechargeViewController7" = "Recordatorio"; "XPIAPRechargeViewController7" = "Recordatorio";
"XPIAPRechargeViewController8" = "Recarga fallida. Por favor contacte al servicio al cliente para obtener ayuda."; "XPIAPRechargeViewController8" = "Recarga fallida. Por favor contacte al servicio al cliente para obtener ayuda.";
@@ -1638,7 +1638,7 @@
"RoomHeaderView1" = "En línea: %ld ID: %ld"; "RoomHeaderView1" = "En línea: %ld ID: %ld";
"RoomHeaderView2" = "En línea: %ld ID: %ld"; "RoomHeaderView2" = "En línea: %ld ID: %ld";
"RoomHeaderView3" = "Copiar Enlace"; "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~"; "RoomHeaderView5" = "Gente hermosa con voces dulces gana puntos, ¡juguemos juntos~";
"RoomHeaderView6" = "Marcador Guardado"; "RoomHeaderView6" = "Marcador Guardado";
"RoomHeaderView7" = "Compartido con Éxito"; "RoomHeaderView7" = "Compartido con Éxito";
@@ -2313,7 +2313,7 @@
"XPLoginPwdViewController3" = "Please enter password"; "XPLoginPwdViewController3" = "Please enter password";
"XPLoginPwdViewController4" = "Phone Number Login"; "XPLoginPwdViewController4" = "Phone Number Login";
"XPLoginPwdViewController5" = "Forget Password"; "XPLoginPwdViewController5" = "Forget Password";
"XPLoginPwdViewController6" = "Please enter your E-Parti account"; "XPLoginPwdViewController6" = "Please enter your E-Party account";
"XPLoginBindPhoneResultViewController0" = "Bind Phone"; "XPLoginBindPhoneResultViewController0" = "Bind Phone";
"XPLoginBindPhoneResultViewController1" = "The current bound phone number is"; "XPLoginBindPhoneResultViewController1" = "The current bound phone number is";
@@ -3416,7 +3416,7 @@
"PIMessageContentServiceReplyView0"="How to Top-Up:"; "PIMessageContentServiceReplyView0"="How to Top-Up:";
"PIMessageContentServiceReplyView1"="Copy"; "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"; "PIMessageContentServiceReplyView3"="2. Contact customer service";
"PIMessageContentServiceReplyView4"="Customer Service WeChat: %@ "; "PIMessageContentServiceReplyView4"="Customer Service WeChat: %@ ";
"PIMessageContentServiceReplyView5"="Customer Service Line: %@ "; "PIMessageContentServiceReplyView5"="Customer Service Line: %@ ";
@@ -3930,7 +3930,7 @@
"1.0.37_text_52" = "No puedes usar esta función."; "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_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_3" = "Por favor ingresa ID";
"20.20.51_text_4" = "Por favor ingresa correo electrónico"; "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"; "20.20.51_text_7" = "Por favor ingresa el código de verificación";

View File

@@ -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"; 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"; 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"; 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";

View File

@@ -305,7 +305,7 @@
"XPLoginPwdViewController2" = "Por favor insira número de telefone/ID"; "XPLoginPwdViewController2" = "Por favor insira número de telefone/ID";
"XPLoginPwdViewController4" = "Login com número de telefone"; "XPLoginPwdViewController4" = "Login com número de telefone";
"XPLoginPwdViewController5" = "Esqueceu a senha"; "XPLoginPwdViewController5" = "Esqueceu a senha";
"XPLoginPwdViewController6" = "Por favor insira uma conta E-Parti"; "XPLoginPwdViewController6" = "Por favor insira uma conta E-Party";
"XPLoginBindPhoneResultViewController0" = "Vincular telefone"; "XPLoginBindPhoneResultViewController0" = "Vincular telefone";
"XPLoginBindPhoneResultViewController1" = "Seu número de telefone vinculado atual é"; "XPLoginBindPhoneResultViewController1" = "Seu número de telefone vinculado atual é";
"XPLoginBindPhoneResultViewController2" = "Alterar número de telefone"; "XPLoginBindPhoneResultViewController2" = "Alterar número de telefone";
@@ -363,7 +363,7 @@
"XPShareView5" = "Compartilhamento falhou"; "XPShareView5" = "Compartilhamento falhou";
"XPShareView6" = "Cancelar compartilhamento"; "XPShareView6" = "Cancelar compartilhamento";
"XPShareView7" = "Cancelar"; "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"; "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."; "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"; "XPFirstRechargeViewController1" = "Recarregar agora";
@@ -412,11 +412,11 @@
"HttpRequestHelper1" = "Por favor verifique a conexão de rede"; "HttpRequestHelper1" = "Por favor verifique a conexão de rede";
"HttpRequestHelper2" = "Por favor verifique a conexão de rede"; "HttpRequestHelper2" = "Por favor verifique a conexão de rede";
"HttpRequestHelper3" = "A sessão de login expirou"; "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"; "HttpRequestHelper5" = "Erro desconhecido do servidor";
"HttpRequestHelper6" = "Por favor verifique a conexão de rede"; "HttpRequestHelper6" = "Por favor verifique a conexão de rede";
"HttpRequestHelper7" = "A sessão de login expirou."; "HttpRequestHelper7" = "A sessão de login expirou.";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "Notificações do sistema"; "XPMineNotificaPresenter0" = "Notificações do sistema";
"XPMineNotificaPresenter1" = "Quando desligado, mensagens do sistema e assistentes oficiais não avisarão mais"; "XPMineNotificaPresenter1" = "Quando desligado, mensagens do sistema e assistentes oficiais não avisarão mais";
"XPMineNotificaPresenter2" = "Notificações ao vivo"; "XPMineNotificaPresenter2" = "Notificações ao vivo";
@@ -753,7 +753,7 @@
"XPIAPRechargeViewController2" = "Confirmar Recarga"; "XPIAPRechargeViewController2" = "Confirmar Recarga";
"XPIAPRechargeViewController3" = "《Termos de Recarga do Usuário》"; "XPIAPRechargeViewController3" = "《Termos de Recarga do Usuário》";
"XPIAPRechargeViewController4" = "Li e concordo"; "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"; "XPIAPRechargeViewController6" = "Minha Conta";
"XPIAPRechargeViewController7" = "Lembrete"; "XPIAPRechargeViewController7" = "Lembrete";
"XPIAPRechargeViewController8" = "Falha na recarga. Entre em contato com o atendimento para assistência."; "XPIAPRechargeViewController8" = "Falha na recarga. Entre em contato com o atendimento para assistência.";
@@ -1351,7 +1351,7 @@
"RoomHeaderView1" = "Online: %ld   ID: %ld"; "RoomHeaderView1" = "Online: %ld   ID: %ld";
"RoomHeaderView2" = "Online: %ld   ID: %ld"; "RoomHeaderView2" = "Online: %ld   ID: %ld";
"RoomHeaderView3" = "Copiar Link"; "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~"; "RoomHeaderView5" = "Pessoas bonitas com vozes doces ganham pontos, vamos jogar juntos~";
"RoomHeaderView6" = "Favoritado com Sucesso"; "RoomHeaderView6" = "Favoritado com Sucesso";
"RoomHeaderView7" = "Compartilhado com Sucesso"; "RoomHeaderView7" = "Compartilhado com Sucesso";
@@ -1917,7 +1917,7 @@
"XPLoginPwdViewController3" = "Digite a senha"; "XPLoginPwdViewController3" = "Digite a senha";
"XPLoginPwdViewController4" = "Login com Número de Telefone"; "XPLoginPwdViewController4" = "Login com Número de Telefone";
"XPLoginPwdViewController5" = "Esqueci a Senha"; "XPLoginPwdViewController5" = "Esqueci a Senha";
"XPLoginPwdViewController6" = "Digite sua conta E-Parti"; "XPLoginPwdViewController6" = "Digite sua conta E-Party";
"XPLoginBindPhoneResultViewController0" = "Vincular Telefone"; "XPLoginBindPhoneResultViewController0" = "Vincular Telefone";
"XPLoginBindPhoneResultViewController1" = "O número de telefone vinculado atualmente é"; "XPLoginBindPhoneResultViewController1" = "O número de telefone vinculado atualmente é";
"XPLoginBindPhoneResultViewController2" = "Alterar Número de Telefone"; "XPLoginBindPhoneResultViewController2" = "Alterar Número de Telefone";
@@ -2748,7 +2748,7 @@
"XPCandyTreeBuyView0"="Por favor, selecione ou insira o número de martelos para comprar"; "XPCandyTreeBuyView0"="Por favor, selecione ou insira o número de martelos para comprar";
"PIMessageContentServiceReplyView0"="Como Recarregar:"; "PIMessageContentServiceReplyView0"="Como Recarregar:";
"PIMessageContentServiceReplyView1"="Copiar"; "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"; "PIMessageContentServiceReplyView3"="2. Contate o atendimento ao cliente";
"PIMessageContentServiceReplyView4"="WeChat do Atendimento: %@ "; "PIMessageContentServiceReplyView4"="WeChat do Atendimento: %@ ";
"PIMessageContentServiceReplyView5"="Linha do Atendimento: %@ "; "PIMessageContentServiceReplyView5"="Linha do Atendimento: %@ ";
@@ -3204,7 +3204,7 @@
"1.0.37_text_51" = "Presentes foram colocados na bolsa!"; "1.0.37_text_51" = "Presentes foram colocados na bolsa!";
"1.0.37_text_52" = "Você não pode usar este recurso."; "1.0.37_text_52" = "Você não pode usar este recurso.";
"20.20.51_text_1" = "Login por Email"; "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_3" = "Digite o ID";
"20.20.51_text_4" = "Digite o email"; "20.20.51_text_4" = "Digite o email";
"20.20.51_text_7" = "Digite o código de verificação"; "20.20.51_text_7" = "Digite o código de verificação";

View File

@@ -1,8 +1,8 @@
NSCameraUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как вы можете посетить, фотографировать и загружать ваши изображения, а затем отображать их на вашей персональной странице для просмотра другими людьми"; NSCameraUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как вы можете посетить, фотографировать и загружать ваши изображения, а затем отображать их на вашей персональной странице для просмотра другими людьми";
NSLocalNetworkUsageDescription = "Приложение обнаружит и подключится к устройствам в вашей сети"; NSLocalNetworkUsageDescription = "Приложение обнаружит и подключится к устройствам в вашей сети";
NSLocationWhenInUseUsageDescription = "Вам необходимо дать согласие, прежде чем вы сможете использовать службы определения местоположения и рекомендовать близких друзей"; NSLocationWhenInUseUsageDescription = "Вам необходимо дать согласие, прежде чем вы сможете использовать службы определения местоположения и рекомендовать близких друзей";
NSMicrophoneUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как он может проводить голосовый чат"; NSMicrophoneUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как он может проводить голосовый чат";
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как он может хранить фотографии в альбоме"; NSPhotoLibraryAddUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как он может хранить фотографии в альбоме";
NSPhotoLibraryUsageDescription = "\"E-Parti\" нужен ваш consentimiento перед тем, как вы можете получить доступ к альбому и выбрать изображения, которые вам нужно загрузить, а затем отобразить их на вашей персональной странице для просмотра другими людьми"; NSPhotoLibraryUsageDescription = "\"E-Party\" нужен ваш consentimiento перед тем, как вы можете получить доступ к альбому и выбрать изображения, которые вам нужно загрузить, а затем отобразить их на вашей персональной странице для просмотра другими людьми";
NSUserTrackingUsageDescription = "Пожалуйста, разрешите нам получить ваше разрешение на idfa, чтобы предоставить вам персонализированные мероприятия и услуги. ваша информация не будет использоваться для других целей без вашего разрешения"; NSUserTrackingUsageDescription = "Пожалуйста, разрешите нам получить ваше разрешение на idfa, чтобы предоставить вам персонализированные мероприятия и услуги. ваша информация не будет использоваться для других целей без вашего разрешения";

View File

@@ -390,7 +390,7 @@
"XPLoginPwdViewController4" = "Вход по номеру телефона"; "XPLoginPwdViewController4" = "Вход по номеру телефона";
"XPLoginPwdViewController5" = "Забыли пароль"; "XPLoginPwdViewController5" = "Забыли пароль";
"XPLoginPwdViewController6" = "Пожалуйста, введите аккаунт E-Parti"; "XPLoginPwdViewController6" = "Пожалуйста, введите аккаунт E-Party";
"XPLoginBindPhoneResultViewController0" = "Привязать телефон"; "XPLoginBindPhoneResultViewController0" = "Привязать телефон";
"XPLoginBindPhoneResultViewController1" = "Ваш текущий привязанный номер телефона"; "XPLoginBindPhoneResultViewController1" = "Ваш текущий привязанный номер телефона";
@@ -452,7 +452,7 @@
"XPShareView5" = "Ошибка при отправке"; "XPShareView5" = "Ошибка при отправке";
"XPShareView6" = "Отменить отправку"; "XPShareView6" = "Отменить отправку";
"XPShareView7" = "Отмена"; "XPShareView7" = "Отмена";
"XPShareView8" = "Приходите в E-Parti и встречайте свой эксклюзивный голос"; "XPShareView8" = "Приходите в E-Party и встречайте свой эксклюзивный голос";
"XPShareView9" = "Ошибка при отправке из-за отсутствия связанных приложений"; "XPShareView9" = "Ошибка при отправке из-за отсутствия связанных приложений";
"XPFirstRechargeViewController0" = "1. Каждый человек может получить преимущество за первый пополнение только один раз\n2. Каждая учетная запись и устройство могут участвовать только один раз."; "XPFirstRechargeViewController0" = "1. Каждый человек может получить преимущество за первый пополнение только один раз\n2. Каждая учетная запись и устройство могут участвовать только один раз.";
"XPFirstRechargeViewController1" = "Пополнить сейчас"; "XPFirstRechargeViewController1" = "Пополнить сейчас";
@@ -508,12 +508,12 @@
"HttpRequestHelper1" = "Пожалуйста, проверьте интернет-подключение"; "HttpRequestHelper1" = "Пожалуйста, проверьте интернет-подключение";
"HttpRequestHelper2" = "Пожалуйста, проверьте интернет-подключение"; "HttpRequestHelper2" = "Пожалуйста, проверьте интернет-подключение";
"HttpRequestHelper3" = "Сессия входа истекла"; "HttpRequestHelper3" = "Сессия входа истекла";
"HttpRequestHelper4" = "E-Parti отдыхает Пожалуйста, попробуйте позже"; "HttpRequestHelper4" = "E-Party отдыхает Пожалуйста, попробуйте позже";
"HttpRequestHelper5" = "Неизвестная ошибка сервера"; "HttpRequestHelper5" = "Неизвестная ошибка сервера";
"HttpRequestHelper6" = "Пожалуйста, проверьте интернет-подключение"; "HttpRequestHelper6" = "Пожалуйста, проверьте интернет-подключение";
"HttpRequestHelper7" = "Сессия входа истекла."; "HttpRequestHelper7" = "Сессия входа истекла.";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "Системные уведомления"; "XPMineNotificaPresenter0" = "Системные уведомления";
"XPMineNotificaPresenter1" = "При отключении системные сообщения и официальные помощники больше не будут появляться"; "XPMineNotificaPresenter1" = "При отключении системные сообщения и официальные помощники больше не будут появляться";
@@ -929,7 +929,7 @@
"XPIAPRechargeViewController2" = "Подтвердить пополнение"; "XPIAPRechargeViewController2" = "Подтвердить пополнение";
"XPIAPRechargeViewController3" = "《Соглашение о пополнении баланса пользователя》"; "XPIAPRechargeViewController3" = "《Соглашение о пополнении баланса пользователя》";
"XPIAPRechargeViewController4" = "Я прочел(а) и согласен(а)"; "XPIAPRechargeViewController4" = "Я прочел(а) и согласен(а)";
"XPIAPRechargeViewController5" = "По всем вопросам обращайтесь в службу поддержки, E-Parti ID"; "XPIAPRechargeViewController5" = "По всем вопросам обращайтесь в службу поддержки, E-Party ID";
"XPIAPRechargeViewController6" = "Мой аккаунт"; "XPIAPRechargeViewController6" = "Мой аккаунт";
"XPIAPRechargeViewController7" = "Напоминание"; "XPIAPRechargeViewController7" = "Напоминание";
"XPIAPRechargeViewController8" = "Пополнение не удалось. Пожалуйста, обратитесь в службу поддержки за помощью."; "XPIAPRechargeViewController8" = "Пополнение не удалось. Пожалуйста, обратитесь в службу поддержки за помощью.";
@@ -1637,7 +1637,7 @@
"RoomHeaderView1" = "Онлайн: %ld   ID: %ld"; "RoomHeaderView1" = "Онлайн: %ld   ID: %ld";
"RoomHeaderView2" = "Онлайн: %ld   ID: %ld"; "RoomHeaderView2" = "Онлайн: %ld   ID: %ld";
"RoomHeaderView3" = "Копировать ссылку"; "RoomHeaderView3" = "Копировать ссылку";
"RoomHeaderView4" = "Приходите на E-Parti, играйте в игры и заводите друзей"; "RoomHeaderView4" = "Приходите на E-Party, играйте в игры и заводите друзей";
"RoomHeaderView5" = "Красивые люди с сладкими голосами зарабатывают очки, давайте играть вместе~"; "RoomHeaderView5" = "Красивые люди с сладкими голосами зарабатывают очки, давайте играть вместе~";
"RoomHeaderView6" = "Закладка успешно создана"; "RoomHeaderView6" = "Закладка успешно создана";
"RoomHeaderView7" = "Поделка успешно выполнена"; "RoomHeaderView7" = "Поделка успешно выполнена";
@@ -2312,7 +2312,7 @@
"XPLoginPwdViewController3" = "Введите пароль"; "XPLoginPwdViewController3" = "Введите пароль";
"XPLoginPwdViewController4" = "Вход по номеру телефона"; "XPLoginPwdViewController4" = "Вход по номеру телефона";
"XPLoginPwdViewController5" = "Забыли пароль"; "XPLoginPwdViewController5" = "Забыли пароль";
"XPLoginPwdViewController6" = "Введите ваш аккаунт E-Parti"; "XPLoginPwdViewController6" = "Введите ваш аккаунт E-Party";
"XPLoginBindPhoneResultViewController0" = "Привязать телефон"; "XPLoginBindPhoneResultViewController0" = "Привязать телефон";
"XPLoginBindPhoneResultViewController1" = "Текущий привязанный номер телефона"; "XPLoginBindPhoneResultViewController1" = "Текущий привязанный номер телефона";
@@ -3415,7 +3415,7 @@
"PIMessageContentServiceReplyView0"="Как пополнить баланс:"; "PIMessageContentServiceReplyView0"="Как пополнить баланс:";
"PIMessageContentServiceReplyView1"="Скопировать"; "PIMessageContentServiceReplyView1"="Скопировать";
"PIMessageContentServiceReplyView2"="1. Перейдите в 【Мой】-- 【Пополнить монеты】 внутри приложения E-Parti Voice для пополнения баланса"; "PIMessageContentServiceReplyView2"="1. Перейдите в 【Мой】-- 【Пополнить монеты】 внутри приложения E-Party Voice для пополнения баланса";
"PIMessageContentServiceReplyView3"="2. Свяжитесь с поддержкой"; "PIMessageContentServiceReplyView3"="2. Свяжитесь с поддержкой";
"PIMessageContentServiceReplyView4"="WeChat поддержки: %@ "; "PIMessageContentServiceReplyView4"="WeChat поддержки: %@ ";
"PIMessageContentServiceReplyView5"="Телефон поддержки: %@ "; "PIMessageContentServiceReplyView5"="Телефон поддержки: %@ ";
@@ -3925,7 +3925,7 @@
"1.0.37_text_52" = "Вы не можете использовать эту функцию."; "1.0.37_text_52" = "Вы не можете использовать эту функцию.";
"20.20.51_text_1" = "Вход по электронной почте"; "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_3" = "Пожалуйста, введите ID";
"20.20.51_text_4" = "Пожалуйста, введите электронную почту"; "20.20.51_text_4" = "Пожалуйста, введите электронную почту";
"20.20.51_text_7" = "Пожалуйста, введите код подтверждения"; "20.20.51_text_7" = "Пожалуйста, введите код подтверждения";

View File

@@ -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"; 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"; 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"; NSMicrophoneUsageDescription = "\"E-Party\"'ı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"; NSPhotoLibraryAddUsageDescription = "\"E-Party\"'ı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"; 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"; 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";

View File

@@ -50,7 +50,7 @@
"XPShareView5" = "Paylaşım başarısız oldu"; "XPShareView5" = "Paylaşım başarısız oldu";
"XPShareView6" = "Paylaşımı iptal et"; "XPShareView6" = "Paylaşımı iptal et";
"XPShareView7" = "İptal"; "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"; "XPShareView9" = "İlgili uygulama yüklü değil, paylaşım başarısız oldu";
///XPFirstRechargeViewController.m ///XPFirstRechargeViewController.m
"XPFirstRechargeViewController0" = "1. Herkes sadece bir kez ilk yükleme avantajı alabilir\n2. Her ID ve cihaz sadece bir kez katılabilir."; "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"; "HttpRequestHelper1" = "Lütfen internet bağlantınızı kontrol edin";
"HttpRequestHelper2" = "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ı"; "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"; "HttpRequestHelper5" = "API hatası, bilinmeyen bilgiler";
"HttpRequestHelper6" = "Lütfen internet bağlantınızı kontrol edin"; "HttpRequestHelper6" = "Lütfen internet bağlantınızı kontrol edin";
"HttpRequestHelper7" = "Giriş süresi aşıldı"; "HttpRequestHelper7" = "Giriş süresi aşıldı";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "Sistem bildirimleri"; "XPMineNotificaPresenter0" = "Sistem bildirimleri";
"XPMineNotificaPresenter1" = "Kapatıldığında, sistem mesajları ve resmi asistan artık size bildirim göstermeyecek"; "XPMineNotificaPresenter1" = "Kapatıldığında, sistem mesajları ve resmi asistan artık size bildirim göstermeyecek";
@@ -531,7 +531,7 @@
"XPIAPRechargeViewController2" = "Şarj Et"; "XPIAPRechargeViewController2" = "Şarj Et";
"XPIAPRechargeViewController3" = "Kullanıcı yükleme sözleşmesi"; "XPIAPRechargeViewController3" = "Kullanıcı yükleme sözleşmesi";
"XPIAPRechargeViewController4" = "Okudum ve kabul ediyorum"; "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"; "XPIAPRechargeViewController6" = "Hesabım";
"XPIAPRechargeViewController7" = "Uyarı"; "XPIAPRechargeViewController7" = "Uyarı";
"XPIAPRechargeViewController8" = "Şarj başarısız, lütfen müşteri hizmetleri ile iletişime geçin~"; "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"; "RoomHeaderView1" = "Çevrimiçi:%ld ID:%ld";
"RoomHeaderView2" = "Çevrimiçi:%ld ID:%ld"; "RoomHeaderView2" = "Çevrimiçi:%ld ID:%ld";
"RoomHeaderView3" = "Bağlantıyı Kopyala"; "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~"; "RoomHeaderView5" = "Güzel ve tatlı sesli, beraber oynayalım~";
"RoomHeaderView6" = "Favorilere Eklendi"; "RoomHeaderView6" = "Favorilere Eklendi";
"RoomHeaderView7" = "Paylaşım Başarılı"; "RoomHeaderView7" = "Paylaşım Başarılı";
@@ -2159,7 +2159,7 @@
"XPLoginPwdViewController3" = "Şifre girin"; "XPLoginPwdViewController3" = "Şifre girin";
"XPLoginPwdViewController4" = "Telefon ile Giriş"; "XPLoginPwdViewController4" = "Telefon ile Giriş";
"XPLoginPwdViewController5" = "Şifremi Unuttum"; "XPLoginPwdViewController5" = "Şifremi Unuttum";
"XPLoginPwdViewController6" = "E-Parti hesabınızı girin"; "XPLoginPwdViewController6" = "E-Party hesabınızı girin";
"XPLoginBindPhoneResultViewController0" = "Telefon Bağlama Başarılı"; "XPLoginBindPhoneResultViewController0" = "Telefon Bağlama Başarılı";
"XPLoginBindPhoneResultViewController1" = "Şu anda bağlı olduğunuz telefon numarası"; "XPLoginBindPhoneResultViewController1" = "Şu anda bağlı olduğunuz telefon numarası";
@@ -2884,7 +2884,7 @@
"PIMessageContentServiceReplyView0"="Nasıl yüklenir:"; "PIMessageContentServiceReplyView0"="Nasıl yüklenir:";
"PIMessageContentServiceReplyView1"="Kopyala"; "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"; "PIMessageContentServiceReplyView3"="2. Müşteri hizmetleri ile iletişime geçin ve yükleme bağlantısını alın";
"PIMessageContentServiceReplyView4"="Müşteri Hizmetleri WeChat: %@ "; "PIMessageContentServiceReplyView4"="Müşteri Hizmetleri WeChat: %@ ";
"PIMessageContentServiceReplyView5"="Müşteri Hizmetleri Line: %@ "; "PIMessageContentServiceReplyView5"="Müşteri Hizmetleri Line: %@ ";
@@ -3702,7 +3702,7 @@
"1.0.37_text_52" = "Bu özelliği kullanamazsınız."; "1.0.37_text_52" = "Bu özelliği kullanamazsınız.";
"20.20.51_text_1" = "E-posta Girişi"; "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_3" = "Lütfen kimlik girin";
"20.20.51_text_4" = "Lütfen e-posta girin"; "20.20.51_text_4" = "Lütfen e-posta girin";
"20.20.51_text_7" = "Lütfen doğrulama kodunu girin"; "20.20.51_text_7" = "Lütfen doğrulama kodunu girin";

View File

@@ -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"; NSLocalNetworkUsageDescription = "Ilova tarmog'ingizdagi qurilmalarni topadi va ulanadi";
NSLocationWhenInUseUsageDescription = "Siz joylashuv xizmatlaridan foydalanishingiz va yaqin do'stlarni tavsiya qilishingizdan oldin rozilingiz kerak"; 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"; NSMicrophoneUsageDescription = "\"E-Party\" ovozli suhbat olib borishdan oldin sizning rozilingizni talab qiladi";
NSPhotoLibraryAddUsageDescription = "\"E-Parti\" fotosuratlarni albomda saqlashdan oldin sizning rozilingizni talab qiladi"; NSPhotoLibraryAddUsageDescription = "\"E-Party\" 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"; 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"; NSUserTrackingUsageDescription = "Iltimos, sizga shaxsiy aktivlar va xizmatlarni taqdim etish uchun idfa ruxsatini olishimizga ruxsat bering. Sizning ma'lumotlaringiz sizning ruxsatingizsiz boshqa maqsadlar uchun ishlatilmaydi";

View File

@@ -393,7 +393,7 @@
"XPLoginPwdViewController4" = "Telefon raqami orqali tizimga kirish"; "XPLoginPwdViewController4" = "Telefon raqami orqali tizimga kirish";
"XPLoginPwdViewController5" = "Parolni unutdingiz"; "XPLoginPwdViewController5" = "Parolni unutdingiz";
"XPLoginPwdViewController6" = "Iltimos E-Parti hisobini kiriting"; "XPLoginPwdViewController6" = "Iltimos E-Party hisobini kiriting";
"XPLoginBindPhoneResultViewController0" = "Telefonni bog'lash"; "XPLoginBindPhoneResultViewController0" = "Telefonni bog'lash";
"XPLoginBindPhoneResultViewController1" = "Sizning hozirgi bog'langan telefon raqamingiz"; "XPLoginBindPhoneResultViewController1" = "Sizning hozirgi bog'langan telefon raqamingiz";
@@ -455,7 +455,7 @@
"XPShareView5" = "Ulashish muvaffaqiyatsiz"; "XPShareView5" = "Ulashish muvaffaqiyatsiz";
"XPShareView6" = "Ulashishni bekor qilish"; "XPShareView6" = "Ulashishni bekor qilish";
"XPShareView7" = "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"; "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."; "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"; "XPFirstRechargeViewController1" = "Hozir to'ldirish";
@@ -511,12 +511,12 @@
"HttpRequestHelper1" = "Iltimos tarmoq ulanishini tekshiring"; "HttpRequestHelper1" = "Iltimos tarmoq ulanishini tekshiring";
"HttpRequestHelper2" = "Iltimos tarmoq ulanishini tekshiring"; "HttpRequestHelper2" = "Iltimos tarmoq ulanishini tekshiring";
"HttpRequestHelper3" = "Tizimga kirish sessiyasi muddati tugagan"; "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"; "HttpRequestHelper5" = "Serverdan noma'lum xato";
"HttpRequestHelper6" = "Iltimos tarmoq ulanishini tekshiring"; "HttpRequestHelper6" = "Iltimos tarmoq ulanishini tekshiring";
"HttpRequestHelper7" = "Tizimga kirish sessiyasi muddati tugagan."; "HttpRequestHelper7" = "Tizimga kirish sessiyasi muddati tugagan.";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "Tizim bildirishnomalari"; "XPMineNotificaPresenter0" = "Tizim bildirishnomalari";
"XPMineNotificaPresenter1" = "O'chirilganda, tizim xabarlar va rasmiy yordamchilar endi ogohlantirmaydi"; "XPMineNotificaPresenter1" = "O'chirilganda, tizim xabarlar va rasmiy yordamchilar endi ogohlantirmaydi";
@@ -911,7 +911,7 @@
"XPIAPRechargeViewController2" = "To'ldirishni tasdiqlash"; "XPIAPRechargeViewController2" = "To'ldirishni tasdiqlash";
"XPIAPRechargeViewController3" = "《Foydalanuvchi To'ldirish Shartnomasi》"; "XPIAPRechargeViewController3" = "《Foydalanuvchi To'ldirish Shartnomasi》";
"XPIAPRechargeViewController4" = "Men o'qidim va qabul qildim"; "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"; "XPIAPRechargeViewController6" = "Mening hisobim";
"XPIAPRechargeViewController7" = "Eslatma"; "XPIAPRechargeViewController7" = "Eslatma";
"XPIAPRechargeViewController8" = "To'ldirish muvaffaqiyatsiz. Iltimos yordam uchun mijozlar xizmatiga murojaat qiling."; "XPIAPRechargeViewController8" = "To'ldirish muvaffaqiyatsiz. Iltimos yordam uchun mijozlar xizmatiga murojaat qiling.";
@@ -1608,7 +1608,7 @@
"RoomHeaderView1" = "Onlayn: %ld ID: %ld"; "RoomHeaderView1" = "Onlayn: %ld ID: %ld";
"RoomHeaderView2" = "Onlayn: %ld ID: %ld"; "RoomHeaderView2" = "Onlayn: %ld ID: %ld";
"RoomHeaderView3" = "Havolani nusxalash"; "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~"; "RoomHeaderView5" = "Go'zal ovozli chiroyli odamlar ball yutishadi, birga o'ynaylik~";
"RoomHeaderView6" = "Xatcho'p muvaffaqiyatli yaratildi"; "RoomHeaderView6" = "Xatcho'p muvaffaqiyatli yaratildi";
"RoomHeaderView7" = "Ulashish muvaffaqiyatli amalga oshirildi"; "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"; "XPLoginPwdViewController3" = "Iltimos, parolni kiriting";
"XPLoginPwdViewController4" = "Telefon raqami orqali tizimga kirish"; "XPLoginPwdViewController4" = "Telefon raqami orqali tizimga kirish";
"XPLoginPwdViewController5" = "Parolni unutdingiz"; "XPLoginPwdViewController5" = "Parolni unutdingiz";
"XPLoginPwdViewController6" = "Iltimos, E-Parti akkauntingizni kiriting"; "XPLoginPwdViewController6" = "Iltimos, E-Party akkauntingizni kiriting";
"XPLoginBindPhoneResultViewController0" = "Telefonni bog'lash"; "XPLoginBindPhoneResultViewController0" = "Telefonni bog'lash";
"XPLoginBindPhoneResultViewController1" = "Joriy bog'langan telefon raqami"; "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:"; "PIMessageContentServiceReplyView0"="Qanday to'ldirish kerak:";
"PIMessageContentServiceReplyView1"="Nusxalash"; "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"; "PIMessageContentServiceReplyView3"="2. Xizmat ko'rsatuvchi bilan bog'laning";
"PIMessageContentServiceReplyView4"="Xizmat ko'rsatuvchi WeChat: %@ "; "PIMessageContentServiceReplyView4"="Xizmat ko'rsatuvchi WeChat: %@ ";
"PIMessageContentServiceReplyView5"="Xizmat ko'rsatuvchi telefon: %@ "; "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."; "1.0.37_text_52" = "Siz bu funksiyadan foydalan olmaysiz.";
"20.20.51_text_1" = "Email Login"; "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_3" = "Iltimos ID kiriting";
"20.20.51_text_4" = "Iltimos email kiriting"; "20.20.51_text_4" = "Iltimos email kiriting";
"20.20.51_text_7" = "Iltimos tasdiqlash kodi kiriting"; "20.20.51_text_7" = "Iltimos tasdiqlash kodi kiriting";

View File

@@ -1,8 +1,8 @@
NSCameraUsageDescription = "「E-Parti」需要您的同意,才可以訪問進行拍照並上傳您的圖片,然後展示在您的個人主頁上,便於他人查看"; NSCameraUsageDescription = "「E-Party」需要您的同意,才可以訪問進行拍照並上傳您的圖片,然後展示在您的個人主頁上,便於他人查看";
NSLocalNetworkUsageDescription = "此App將可發現和連接到您所用網絡上的設備"; NSLocalNetworkUsageDescription = "此App將可發現和連接到您所用網絡上的設備";
NSLocationWhenInUseUsageDescription = "需要您的同意,才可以進行定位服務,推薦附近好友"; NSLocationWhenInUseUsageDescription = "需要您的同意,才可以進行定位服務,推薦附近好友";
NSMicrophoneUsageDescription = "「E-Parti」需要您的同意,才可以進行語音聊天"; NSMicrophoneUsageDescription = "「E-Party」需要您的同意,才可以進行語音聊天";
NSPhotoLibraryAddUsageDescription = "「E-Parti」需要您的同意,才可以存儲相片到相冊"; NSPhotoLibraryAddUsageDescription = "「E-Party」需要您的同意,才可以存儲相片到相冊";
NSPhotoLibraryUsageDescription = "「E-Parti」需要您的同意,才可以訪問相冊並選擇您需要上傳的圖片,然後展示在您的個人主頁上,便於他人查看"; NSPhotoLibraryUsageDescription = "「E-Party」需要您的同意,才可以訪問相冊並選擇您需要上傳的圖片,然後展示在您的個人主頁上,便於他人查看";
NSUserTrackingUsageDescription = "請允許我們獲取您的IDFA權限可以為您提供個性化活動和服務。未經您的允許您的信息將不作其他用途。"; NSUserTrackingUsageDescription = "請允許我們獲取您的IDFA權限可以為您提供個性化活動和服務。未經您的允許您的信息將不作其他用途。";

View File

@@ -60,7 +60,7 @@
"XPShareView5" = "分享失敗"; "XPShareView5" = "分享失敗";
"XPShareView6" = "取消分享"; "XPShareView6" = "取消分享";
"XPShareView7" = "取消"; "XPShareView7" = "取消";
"XPShareView8" = "來E-Parti,邂逅你的專屬聲音"; "XPShareView8" = "來E-Party,邂逅你的專屬聲音";
"XPShareView9" = "未安装相关App分享失败"; "XPShareView9" = "未安装相关App分享失败";
///XPFirstRechargeViewController.m ///XPFirstRechargeViewController.m
"XPFirstRechargeViewController0" = "1.每人僅可獲得1次首充福利\n2.每個ID、設備僅能參加一次。"; "XPFirstRechargeViewController0" = "1.每人僅可獲得1次首充福利\n2.每個ID、設備僅能參加一次。";
@@ -128,13 +128,13 @@
"HttpRequestHelper1" = "請檢查網絡連接"; "HttpRequestHelper1" = "請檢查網絡連接";
"HttpRequestHelper2" = "請檢查網絡連接"; "HttpRequestHelper2" = "請檢查網絡連接";
"HttpRequestHelper3" = "登錄已過期"; "HttpRequestHelper3" = "登錄已過期";
"HttpRequestHelper4" = "E-Parti開小差中~請稍後再試"; "HttpRequestHelper4" = "E-Party開小差中~請稍後再試";
"HttpRequestHelper5" = "接口報錯信息未知"; "HttpRequestHelper5" = "接口報錯信息未知";
"HttpRequestHelper6" = "請檢查網絡連接"; "HttpRequestHelper6" = "請檢查網絡連接";
"HttpRequestHelper7" = "登錄已過期。"; "HttpRequestHelper7" = "登錄已過期。";
"AppDelegate_ThirdConfig0" = "E-Parti"; "AppDelegate_ThirdConfig0" = "E-Party";
"XPMineNotificaPresenter0" = "系統通知"; "XPMineNotificaPresenter0" = "系統通知";
"XPMineNotificaPresenter1" = "關閉後,系統消息和官方小秘書不再提示"; "XPMineNotificaPresenter1" = "關閉後,系統消息和官方小秘書不再提示";
@@ -545,7 +545,7 @@
"XPIAPRechargeViewController2" = "確定充值"; "XPIAPRechargeViewController2" = "確定充值";
"XPIAPRechargeViewController3" = "《用戶充值協議》"; "XPIAPRechargeViewController3" = "《用戶充值協議》";
"XPIAPRechargeViewController4" = "已閱讀並同意"; "XPIAPRechargeViewController4" = "已閱讀並同意";
"XPIAPRechargeViewController5" = "如有任何問題請咨詢客服E-Parti號"; "XPIAPRechargeViewController5" = "如有任何問題請咨詢客服E-Party號";
"XPIAPRechargeViewController6" = "我的賬戶"; "XPIAPRechargeViewController6" = "我的賬戶";
"XPIAPRechargeViewController7" = "提示"; "XPIAPRechargeViewController7" = "提示";
"XPIAPRechargeViewController8" = "儲值失敗,請聯系客服處理~"; "XPIAPRechargeViewController8" = "儲值失敗,請聯系客服處理~";
@@ -1263,7 +1263,7 @@
"RoomHeaderView1" = "在線:%ld ID:%ld"; "RoomHeaderView1" = "在線:%ld ID:%ld";
"RoomHeaderView2" = "在線:%ld ID:%ld"; "RoomHeaderView2" = "在線:%ld ID:%ld";
"RoomHeaderView3" = "複製鏈接"; "RoomHeaderView3" = "複製鏈接";
"RoomHeaderView4" = "來E-Parti,開黑交友玩遊戲"; "RoomHeaderView4" = "來E-Party,開黑交友玩遊戲";
"RoomHeaderView5" = "人美聲甜帶上分,一起來玩吧~"; "RoomHeaderView5" = "人美聲甜帶上分,一起來玩吧~";
"RoomHeaderView6" = "收藏成功"; "RoomHeaderView6" = "收藏成功";
"RoomHeaderView7" = "分享成功"; "RoomHeaderView7" = "分享成功";
@@ -2204,7 +2204,7 @@
"XPLoginPwdViewController3" = "請輸入密碼"; "XPLoginPwdViewController3" = "請輸入密碼";
"XPLoginPwdViewController4" = "手機號登錄"; "XPLoginPwdViewController4" = "手機號登錄";
"XPLoginPwdViewController5" = "忘記密碼"; "XPLoginPwdViewController5" = "忘記密碼";
"XPLoginPwdViewController6" = "請輸入E-Parti賬號"; "XPLoginPwdViewController6" = "請輸入E-Party賬號";
"XPLoginBindPhoneResultViewController0" = "綁定手機"; "XPLoginBindPhoneResultViewController0" = "綁定手機";
"XPLoginBindPhoneResultViewController1" = "您當前綁定的手機號為"; "XPLoginBindPhoneResultViewController1" = "您當前綁定的手機號為";
@@ -3075,7 +3075,7 @@
"PIMessageContentServiceReplyView0"="如何儲值:"; "PIMessageContentServiceReplyView0"="如何儲值:";
"PIMessageContentServiceReplyView1"="復製"; "PIMessageContentServiceReplyView1"="復製";
"PIMessageContentServiceReplyView2"="1.在E-Parti語音App內前往【我的】-- 【儲值金幣】進行儲值"; "PIMessageContentServiceReplyView2"="1.在E-Party語音App內前往【我的】-- 【儲值金幣】進行儲值";
"PIMessageContentServiceReplyView3"="2.聯系客服獲取儲值鏈接"; "PIMessageContentServiceReplyView3"="2.聯系客服獲取儲值鏈接";
"PIMessageContentServiceReplyView4"="客服WeChat: %@ "; "PIMessageContentServiceReplyView4"="客服WeChat: %@ ";
"PIMessageContentServiceReplyView5"="客服Line%@ "; "PIMessageContentServiceReplyView5"="客服Line%@ ";
@@ -3572,7 +3572,7 @@
"20.20.51_text_1" = "Email 登入"; "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_3" = "請輸入ID";
"20.20.51_text_4" = "請輸入信​​箱"; "20.20.51_text_4" = "請輸入信​​箱";
"20.20.51_text_7" = "請輸入驗證碼"; "20.20.51_text_7" = "請輸入驗證碼";