diff --git a/YuMi/Global/YUMIHtmlUrl.h b/YuMi/Global/YUMIHtmlUrl.h index 26e47123..ec4d76d3 100644 --- a/YuMi/Global/YUMIHtmlUrl.h +++ b/YuMi/Global/YUMIHtmlUrl.h @@ -101,6 +101,8 @@ typedef NS_ENUM(NSUInteger, URLType) { kChannelUrl, ///LUDO排行榜路径 kLUDOUrl, + /// CP 規則頁 + kCPRule, }; NSString * const URLWithType(URLType type); diff --git a/YuMi/Global/YUMIHtmlUrl.m b/YuMi/Global/YUMIHtmlUrl.m index 79d135dc..65ebcc69 100644 --- a/YuMi/Global/YUMIHtmlUrl.m +++ b/YuMi/Global/YUMIHtmlUrl.m @@ -22,16 +22,15 @@ NSString * const URLWithType(URLType type) { @(kGoldEarningsRecord) : @"modules/myincome/index.html#/GoldLog",///金币收益记录 @(kCandyTreeRuleURL) : @"modules/rule/newWishingWellRule.html",///糖果树规则 modules/rank/index.html#/wishingWellRule @(kChannelUrl) : @"modules/%@/index.html?channelType=%@&deviceId=%@", - @(kLUDOUrl) : @"modules/gameRank/index.html"///LUDO排行榜路径 + @(kLUDOUrl) : @"modules/gameRank/index.html",///LUDO排行榜路径 + @(kCPRule) : @"molistar/modules/rule/cpRule.html" }; NSString * newUrl = [newDic objectForKey:@(type)]; if(newUrl != nil){ NSString * url = [newDic objectForKey:@(type)]; return [NSString stringWithFormat:@"%@/%@",prefix, url]; } - - - + NSDictionary * dic = @{ @(kPrivacyURL) : @"sPa8x4YF1hFEeCeH5v+RMOulemxgjjZLbxkN8ZrBSM8=",//隐私政策 modules/rule/privacy-wap.html @(kPrivacySDKURL) : @"EXbb0qKoel1tyEL3rQ3//BQ6p/uA56xs9iAOyFI7TRU=",//隐私政策-SDK modules/rule/sdk.html diff --git a/YuMi/Modules/YMMine/View/CPListViewController.m b/YuMi/Modules/YMMine/View/CPListViewController.m index d811d3a5..07fd8717 100644 --- a/YuMi/Modules/YMMine/View/CPListViewController.m +++ b/YuMi/Modules/YMMine/View/CPListViewController.m @@ -7,12 +7,13 @@ #import "CPListViewController.h" -#import "Api+Mine.h" - #import "CPCard.h" +#import "Api+Mine.h" #import "RelationUserVO.h" +#import "XPWebViewController.h" #import "XPMineUserInfoCustomNavView.h" + @interface CPListCardCell : UITableViewCell @property (nonatomic, strong) RelationUserVO *model; @@ -122,7 +123,6 @@ header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor secondTextColor]; _cpCardTableView.mj_header = header; - MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRefresh)]; footer.stateLabel.textColor = [DJDKMIMOMColor secondTextColor]; footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; @@ -159,8 +159,8 @@ } - (void)cancelRelation:(RelationUserVO *)model { - NSString *message = [NSString stringWithFormat:@"I'll pay %@ %ld coins to leave my son lar", model.cpNick, (long)model.cancelGoldNum]; - + NSString *message = [NSString stringWithFormat:YMLocalizedString(@"UserDetail_CP_Toast_1"), @(model.cancelGoldNum), model.cpNick]; + NSString *successMessage = [NSString stringWithFormat:YMLocalizedString(@"UserDetail_CP_Toast_2"), model.cpNick]; @kWeakify(self); [TTPopup alertWithMessage:message confirmHandler:^{ @kStrongify(self); @@ -204,7 +204,9 @@ #pragma mark - XPMineCustomNavViewDelegate - (void)xPMineCustomNavView:(XPMineUserInfoCustomNavView *)view didClickEditButton:(UIButton *)sender { - // TODO: Goto CP rule page + XPWebViewController * webVC =[[XPWebViewController alloc] init]; + webVC.url = URLWithType(kCPRule); + [self.navigationController pushViewController:webVC animated:YES]; } - (void)xPMineCustomNavView:(XPMineUserInfoCustomNavView *)view didClickBackButton:(UIButton *)sender { @@ -216,7 +218,7 @@ if (!_navView) { _navView = [[XPMineUserInfoCustomNavView alloc] init]; _navView.delegate = self; - _navView.titleLabel.text = @"My CPPPPPPPPPPPP"; + _navView.titleLabel.text = @"My CP"; _navView.titleLabel.textColor = [UIColor whiteColor]; [_navView.editButton setImage:[UIImage imageNamed:@"cp_help"] forState:UIControlStateNormal]; [_navView updateBackButtonImage:[UIImage imageNamed:@"home_search_white_back"]]; @@ -252,7 +254,7 @@ make.size.mas_equalTo(CGSizeMake(110, 110)); }]; - UILabel *title = [UILabel labelInitWithText:@"No more data" font:kFontRegular(14) textColor:[UIColor colorWithWhite:1 alpha:0.4]]; + UILabel *title = [UILabel labelInitWithText:YMLocalizedString(@"XPMomentsRecommendViewController0") font:kFontRegular(14) textColor:[UIColor colorWithWhite:1 alpha:0.4]]; [_emptyView addSubview:title]; [title mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.mas_equalTo(_emptyView); diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineGuildTableViewCell.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineGuildTableViewCell.m index 3d20521b..31a82798 100644 --- a/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineGuildTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineGuildTableViewCell.m @@ -80,9 +80,9 @@ - (void)setInfo:(GuildInfo *)info { _info = info; self.avatarImageView.imageUrl = info.avatar; - self.nameLabel.text = info.guildName; - self.guildIDLabel.text = [NSString stringWithFormat:@"Guild ID: %ld", (long)info.guildId]; - self.agentIDLabel.text = [NSString stringWithFormat:@"Agent ID: %ld", (long)info.erbanNo]; + self.nameLabel.text = [NSString stringWithFormat:@"%@%@", YMLocalizedString(@"UserDetail_1"), info.guildName]; + self.guildIDLabel.text = [NSString stringWithFormat:@"%@%ld", YMLocalizedString(@"UserDetail_2"), (long)info.guildId]; + self.agentIDLabel.text = [NSString stringWithFormat:@"%@%ld", YMLocalizedString(@"UserDetail_3"), (long)info.erbanNo]; } #pragma mark - @@ -92,7 +92,7 @@ _avatarImageView.layer.cornerRadius = 8; _avatarImageView.layer.borderColor = UIColorFromRGB(0xFFEEAC).CGColor; _avatarImageView.layer.borderWidth = 1; - _avatarImageView.layer.maskedCorners = YES; + _avatarImageView.layer.masksToBounds = YES; } return _avatarImageView; } diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineMultipleContentTableViewCell.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineMultipleContentTableViewCell.m index 17ec3231..0380ef75 100644 --- a/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineMultipleContentTableViewCell.m +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/XPMineMultipleContentTableViewCell.m @@ -308,8 +308,18 @@ [self.allGifts addObjectsFromArray:luckyGiftWall]; } +- (void)setMedalModel:(MedalModel *)medalModel { + _medalModel = medalModel; +} + - (void)updateCell { [self.contentCollectionView reloadData]; + + if (self.isMedal) { + self.emptyLabel.hidden = self.medalModel.medalCount != 0; + } else { + self.emptyLabel.hidden = self.allGifts.count != 0; + } } #pragma mark - @@ -343,7 +353,7 @@ _medalButton = [UIButton buttonWithType:UIButtonTypeCustom]; _medalButton.tag = 1; _medalButton.selected = YES; - [_medalButton setTitle:@"Medal" forState:UIControlStateNormal]; + [_medalButton setTitle:YMLocalizedString(@"XPMineDataGiftTableViewCell2") forState:UIControlStateNormal]; [_medalButton.titleLabel setFont:kFontSemibold(16)]; [_medalButton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; [_medalButton setTitleColor:[UIColor colorWithWhite:1 alpha:0.6] forState:UIControlStateNormal]; @@ -359,7 +369,7 @@ if (!_giftButton) { _giftButton = [UIButton buttonWithType:UIButtonTypeCustom]; _giftButton.tag = 2; - [_giftButton setTitle:@"Gift" forState:UIControlStateNormal]; + [_giftButton setTitle:YMLocalizedString(@"XPMineUserInfoGiftWallViewController0") forState:UIControlStateNormal]; [_giftButton.titleLabel setFont:kFontRegular(14)]; [_giftButton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; [_giftButton setTitleColor:[UIColor colorWithWhite:1 alpha:0.6] forState:UIControlStateNormal]; diff --git a/YuMi/Modules/YMMine/View/MineInfo/XPMineUserDataViewController.m b/YuMi/Modules/YMMine/View/MineInfo/XPMineUserDataViewController.m index c6d98802..c912fd92 100644 --- a/YuMi/Modules/YMMine/View/MineInfo/XPMineUserDataViewController.m +++ b/YuMi/Modules/YMMine/View/MineInfo/XPMineUserDataViewController.m @@ -250,7 +250,7 @@ typedef enum : NSUInteger { return 1; break; case Guild: - return 1; + return self.guildInfo == nil ? 0 : 1; break; case Medal: return 0; //self.medalInfo.medalCount == 0 ? 0 : 1; @@ -737,7 +737,7 @@ typedef enum : NSUInteger { - (XPMineUserSectionHeader *)guildHeader { if (!_guildHeader) { _guildHeader = [[XPMineUserSectionHeader alloc] init]; - _guildHeader.title = @"Guild"; + _guildHeader.title = YMLocalizedString(@"UserDetail_0"); _guildHeader.hasMore = NO; } return _guildHeader; diff --git a/YuMi/Modules/YMMine/View/SubViews/CPCard.m b/YuMi/Modules/YMMine/View/SubViews/CPCard.m index 1c962081..ecaed69e 100644 --- a/YuMi/Modules/YMMine/View/SubViews/CPCard.m +++ b/YuMi/Modules/YMMine/View/SubViews/CPCard.m @@ -116,7 +116,7 @@ [self.bottomImageView mas_makeConstraints:^(MASConstraintMaker *make) { make.centerX.mas_equalTo(self); make.size.mas_equalTo(CGSizeMake(100, 19)); - make.top.mas_equalTo(90); + make.top.mas_equalTo(heart).offset(55); }]; [self addSubview:self.progressView]; @@ -198,9 +198,9 @@ make.bottom.mas_equalTo(self).offset(-12); }]; - self.progressView.progress = self.relationUser.currentExp / self.relationUser.nextLevelExp; - self.progressUpgradeLabel.text = [NSString stringWithFormat:@"Need %ld to upgrade", (long)(self.relationUser.nextLevelExp - self.relationUser.currentExp)]; - self.progressNumLabel.text = [NSString stringWithFormat:@"(%ld/%ld)", (long)self.relationUser.currentExp, (long)self.relationUser.endExp]; + self.progressView.progress = ((self.relationUser.endExp - self.relationUser.startExp) * 1.0) / (self.relationUser.currentExp * 1.0); + self.progressUpgradeLabel.text = [NSString stringWithFormat:YMLocalizedString(@"UserDetail_CP_List_0"), [NSString formatNumberToKOrM:@(self.relationUser.endExp - self.relationUser.currentExp).stringValue]]; + self.progressNumLabel.text = [NSString stringWithFormat:@"(%@/%@)", [NSString formatNumberToKOrM:@(self.relationUser.currentExp).stringValue], [NSString formatNumberToKOrM:@(self.relationUser.endExp).stringValue]]; } - (void)playSVGA:(NSInteger)level { diff --git a/YuMi/Modules/YMMine/View/SubViews/CPGiftBanner.m b/YuMi/Modules/YMMine/View/SubViews/CPGiftBanner.m index cdf79ea5..484910ce 100644 --- a/YuMi/Modules/YMMine/View/SubViews/CPGiftBanner.m +++ b/YuMi/Modules/YMMine/View/SubViews/CPGiftBanner.m @@ -41,8 +41,8 @@ make.bottom.mas_equalTo(self).offset(-40); }]; - UILabel *label_1 = [self labelWith:@"Send"]; - UILabel *label_2 = [self labelWith:@"CP Gift"]; + UILabel *label_1 = [self labelWith:YMLocalizedString(@"Combo_0")]; + UILabel *label_2 = [self labelWith:[NSString stringWithFormat:@"CP %@", YMLocalizedString(@"XPWishGiftInfoView1")]]; [stack addArrangedSubview:self.avatar_sender]; [stack addArrangedSubview:label_1]; [stack addArrangedSubview:self.avatar_receiver]; @@ -87,18 +87,19 @@ CGFloat width = KScreenWidth; CGFloat height = kGetScaleWidth(145); - CPGiftBanner *bannerView = [[CPGiftBanner alloc] initWithFrame:CGRectMake(KScreenWidth, 50, width, height)]; + CGFloat topSpace = kGetScaleWidth(67); + CPGiftBanner *bannerView = [[CPGiftBanner alloc] initWithFrame:CGRectMake(KScreenWidth, topSpace, width, height)]; bannerView.bannerAttachment = attachment; bannerView.completeDisplay = complete; [superView addSubview:bannerView]; @kWeakify(bannerView); [UIView animateWithDuration:0.25 animations:^{ - bannerView.center = CGPointMake(superView.center.x, height/2 + 50); + bannerView.center = CGPointMake(superView.center.x, height/2 + topSpace); } completion:^(BOOL finished) { dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ [UIView animateWithDuration:0.25 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ - bannerView.frame = CGRectMake(-KScreenWidth, 50, width, height); + bannerView.frame = CGRectMake(-KScreenWidth, topSpace, width, height); } completion:^(BOOL finished) { @kStrongify(bannerView); if (bannerView.completeDisplay) { diff --git a/YuMi/Modules/YMMine/View/SubViews/CPLevelUpAnimation.m b/YuMi/Modules/YMMine/View/SubViews/CPLevelUpAnimation.m index f5243b4b..e0f53a17 100644 --- a/YuMi/Modules/YMMine/View/SubViews/CPLevelUpAnimation.m +++ b/YuMi/Modules/YMMine/View/SubViews/CPLevelUpAnimation.m @@ -24,6 +24,14 @@ @implementation CPLevelUpAnimation +- (void)dealloc +{ + if (_endPlayTimer) { + [self.endPlayTimer invalidate]; + self.endPlayTimer = nil; + } +} + - (instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { [self addSubview:self.backgroundSvga]; @@ -99,27 +107,30 @@ NSString *relationship = @""; switch (level) { case 1: - relationship = @"Dup CP"; + relationship = @"Sweet Duo"; break; case 2: - relationship = @"Best Friends"; + relationship = @"Dynamic Duo"; break; case 3: - relationship = @"Soulmates"; + relationship = @"Ideal Duo"; break; case 4: - relationship = @"Soulmates"; + relationship = @"Ideal Duo"; break; case 5: - relationship = @"Soulmates"; + relationship = @"Perfect Duo"; + break; + case 6: + relationship = @"Divine Couple"; break; default: - relationship = @"Moli Star"; + relationship = @"Cosmic Soulmates"; break; } // 构造文本内容 - NSString *fullText = [NSString stringWithFormat:@"%@ and %@ Become %@", name_1, name_2, relationship]; + NSString *fullText = [NSString stringWithFormat:@"%@ %@ %@ %@ %@", name_1, YMLocalizedString(@"RoomEffect_CP_0"), name_2, YMLocalizedString(@"RoomEffect_CP_1"), relationship]; // 创建可变的 attributed string NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] initWithString:fullText]; @@ -154,7 +165,7 @@ - (void)startTimer { @kWeakify(self); - NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:3 repeats:NO block:^(NSTimer * _Nonnull timer) { + self.endPlayTimer = [NSTimer scheduledTimerWithTimeInterval:30 repeats:NO block:^(NSTimer * _Nonnull timer) { @kStrongify(self); [self removeFromSuperview]; [self.backgroundSvga stopAnimation]; diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m index 9521bf7f..4e5ab312 100644 --- a/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/XPMineUserInfoHeaderView.m @@ -670,16 +670,24 @@ return view;\ - (void)setRelationUser:(RelationUserVO *)relationUser { _relationUser = relationUser; + BOOL hideCPAvatarContent = NO; if (relationUser.showCpAvatar) { - self.avatarView_cp.hidden = [relationUser isEmptyRelation]; - self.cpAvatarHeart.hidden = [relationUser isEmptyRelation]; - self.cpAvatarFlag.hidden = [relationUser isEmptyRelation]; + hideCPAvatarContent = [relationUser isEmptyRelation]; } else { - self.avatarView_cp.hidden = YES; - self.cpAvatarHeart.hidden = YES; - self.cpAvatarFlag.hidden = YES; + hideCPAvatarContent = YES; } + if (hideCPAvatarContent) { + [self.headWearSvgaImageView_cp stopAnimation]; + } else { + [self playCPSVGA:relationUser.cpLevel]; + } + + self.avatarView_cp.hidden = hideCPAvatarContent; + self.cpAvatarHeart.hidden = hideCPAvatarContent; + self.cpAvatarFlag.hidden = hideCPAvatarContent; + self.headWearSvgaImageView_cp.hidden = hideCPAvatarContent; + self.cpCard.isListItem = NO; self.cpCard.usersAvatar = self.userInfo.avatar; [self.cpCard updateForUserPage:relationUser]; @@ -688,7 +696,7 @@ return view;\ NSString *imagePath = [NSString stringWithFormat:@"cp_avatar_flag_lv_%ld", relationUser.cpLevel]; self.cpAvatarFlag.image = kImage(imagePath); - [self playCPSVGA:relationUser.cpLevel]; + } - (void)updateNameAndGenderInfo { @@ -709,8 +717,16 @@ return view;\ - (void)updateIDInfo { NSString *text = [NSString stringWithFormat:@"%ld", (long)self.userInfo.erbanNo]; - self.idLabel.text = [NSString stringWithFormat:@"ID:%@", text]; - self.beautIDView.num = text; + + if (self.userInfo.hasPrettyErbanNo) { + self.idLabel.hidden = YES; + self.beautIDView.hidden = NO; + self.beautIDView.num = text; + } else { + self.idLabel.hidden = NO; + self.beautIDView.hidden = YES; + self.idLabel.text = [NSString stringWithFormat:@"ID:%@", text]; + } } - (void)updateLocateAndRegionInfo { @@ -728,8 +744,6 @@ return view;\ - (void)updateSignatureInfo { self.signatureLabel.text = _userInfo.userDesc.length > 0 ? self.userInfo.userDesc : YMLocalizedString(@"XPMineUserInfoHeaderView6"); -// [self.signatureLabel setTextColor:self.userInfo.userDesc.length > 0 ? UIColorFromRGB(0x1a1a1a) : UIColorRGBAlpha(0x1a1a1a, 0.6)]; -// [self.signatureLabel setFont:self.userInfo.userDesc.length > 0 ? [UIFont systemFontOfSize:12 weight:UIFontWeightMedium] : [UIFont systemFontOfSize:12 weight:UIFontWeightRegular]]; } - (void)updateRelationShipInfo { @@ -753,21 +767,6 @@ return view;\ - (void)playSVGA:(NSString *)svgaUrlString { [self.headWearSvgaImageView setImageName:svgaUrlString]; - return; - - @kWeakify(self); - SVGAParser * parser = [[SVGAParser alloc]init]; - NSURL *url = [NSURL URLWithString:svgaUrlString]; - [parser parseWithURL:url - completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { - @kStrongify(self); - self.headWearSvgaImageView.hidden = NO; - self.headWearSvgaImageView.loops = 0; - self.headWearSvgaImageView.clearsAfterStop = NO; - self.headWearSvgaImageView.videoItem = videoItem; - [self.headWearSvgaImageView startAnimation]; - } - failureBlock:^(NSError * _Nullable error) {}]; } - (void)playCPSVGA:(NSInteger)level { @@ -781,6 +780,8 @@ return view;\ inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { @kStrongify(self); + self.headWearSvgaImageView.hidden = NO; + self.headWearSvgaImageView_cp.hidden = NO; self.headWearSvgaImageView.videoItem = videoItem; [self.headWearSvgaImageView startAnimation]; self.headWearSvgaImageView_cp.videoItem = videoItem; diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m b/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m index d6505dab..21d22d46 100644 --- a/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/XPRoomMenuContainerView.m @@ -542,8 +542,11 @@ _inputButton.titleLabel.numberOfLines = 2; _inputButton.layer.masksToBounds = YES; _inputButton.layer.cornerRadius = 18; - // 设置标题左对齐 - _inputButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + if (isMSRTL()) { + _inputButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentRight; + } else { + _inputButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + } // 设置标题的边距 _inputButton.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0); _inputButton.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; diff --git a/YuMi/Tools/NSString/NSString+Utils.m b/YuMi/Tools/NSString/NSString+Utils.m index 420c33d6..52d2aa4e 100644 --- a/YuMi/Tools/NSString/NSString+Utils.m +++ b/YuMi/Tools/NSString/NSString+Utils.m @@ -74,8 +74,8 @@ NSDecimalNumber *thousand = [NSDecimalNumber decimalNumberWithString:@"1000"]; NSDecimalNumber *nine = [NSDecimalNumber decimalNumberWithString:@"9999"]; NSDecimalNumber *million = [NSDecimalNumber decimalNumberWithString:@"1000000"]; - NSDecimalNumber *billion = [NSDecimalNumber decimalNumberWithString:@"1000000"]; - + NSDecimalNumber *billion = [NSDecimalNumber decimalNumberWithString:@"1000000000"]; + NSDecimalNumber *trillion = [NSDecimalNumber decimalNumberWithString:@"1000000000000"]; // 创建 NSDecimalNumber 对象 NSDecimalNumber *number = [NSDecimalNumber decimalNumberWithString:string]; @@ -91,9 +91,14 @@ // 超过 1000000,用M表示 NSDecimalNumber *result = [number decimalNumberByDividingBy:million]; return [self formatResult:result withUnit:@"M"];//[NSString stringWithFormat:@"%.1fM", result.doubleValue]; - } else { + } else if ([number compare:billion] != NSOrderedAscending && [number compare:trillion] == NSOrderedAscending) { + // 超过十亿,用 B 表示 NSDecimalNumber *result = [number decimalNumberByDividingBy:billion]; - return [self formatResult:result withUnit:@"M"]; + return [self formatResult:result withUnit:@"B"]; + } else { + // 超过一万亿,可以继续增加更高单位 + NSDecimalNumber *result = [number decimalNumberByDividingBy:trillion]; + return [self formatResult:result withUnit:@"T"]; // T 表示万亿 (Trillion) } } diff --git a/YuMi/ar.lproj/Localizable.strings b/YuMi/ar.lproj/Localizable.strings index c5f7c592..6a10cd5b 100644 --- a/YuMi/ar.lproj/Localizable.strings +++ b/YuMi/ar.lproj/Localizable.strings @@ -3908,3 +3908,18 @@ ineHeadView12" = "الحمل"; "Combo_8" = "، وربح عملات معدنية"; "Combo_9" = "مرة"; "Combo_10" = "هل أنت متأكد أنك تريد الذهاب إلى هذه الغرفة؟"; + +"UserDetail_0" = "النقابة"; +"UserDetail_1" = "نيك النقابة"; +"UserDetail_2" = "معرّف النقابة:"; +"UserDetail_3" = "معرّف العميل"; +"UserDetail_4" = "CP"; +"UserDetail_5" = "المعيشة"; +"UserDetail_Setting_0" = "عرض الرسوم المتحركة للصفحة الرئيسية - CP"; +"UserDetail_Setting_1" = "عرض الصور الرمزية للصفحة الرئيسية- CP"; +"UserDetail_CP_List_0" = "تحتاج إلى %@ للترقية"; +"UserDetail_CP_Toast_0" = "نصيحة"; +"UserDetail_CP_Toast_1" = "هل أنت متأكد من أنك تريد إنفاق %@ قطعة نقدية لإلغاء CP الخاص بك مع %@؟"; +"UserDetail_CP_Toast_2" = "لقد نجحت في إلغاء CP الخاص بك مع %@."; +"RoomEffect_CP_0" = "and"; +"RoomEffect_CP_1" = "have become"; diff --git a/YuMi/en.lproj/Localizable.strings b/YuMi/en.lproj/Localizable.strings index b0ec284c..42f31910 100644 --- a/YuMi/en.lproj/Localizable.strings +++ b/YuMi/en.lproj/Localizable.strings @@ -3704,3 +3704,18 @@ "Combo_8" = "win coins"; "Combo_9" = "times"; "Combo_10" = "Are you sure you want to go to this room?"; + +"UserDetail_0" = "Guild"; +"UserDetail_1" = "Guild Nick:"; +"UserDetail_2" = "Guild ID:"; +"UserDetail_3" = "Agent ID:"; +"UserDetail_4" = "CP"; +"UserDetail_5" = "Living"; +"UserDetail_Setting_0" = "Homepage animation display-CP"; +"UserDetail_Setting_1" = "Homepage avatars display-CP"; +"UserDetail_CP_List_0" = "Need %@ to upgrade"; +"UserDetail_CP_Toast_0" = "Tips"; +"UserDetail_CP_Toast_1" = "Are you sure you want to spend %@ coins to cancel your CP with %@?"; +"UserDetail_CP_Toast_2" = "You have successfully cancelled your CP with %@."; +"RoomEffect_CP_0" = "and"; +"RoomEffect_CP_1" = "have become"; diff --git a/YuMi/zh-Hans.lproj/Localizable.strings b/YuMi/zh-Hans.lproj/Localizable.strings index 19b5efb1..80adfa47 100644 --- a/YuMi/zh-Hans.lproj/Localizable.strings +++ b/YuMi/zh-Hans.lproj/Localizable.strings @@ -3368,3 +3368,20 @@ "Combo_8" = "贏得金幣"; "Combo_9" = "倍"; "Combo_10" = "你確定要去這個房間嗎?"; + +"UserDetail_0" = "公会信息"; +"UserDetail_1" = "公会昵称:"; +"UserDetail_2" = "公会ID:"; +"UserDetail_3" = "公会长ID:"; +"UserDetail_4" = "CP"; +"UserDetail_5" = "直播"; +"UserDetail_Setting_0" = "CP主页动效"; +"UserDetail_Setting_1" = "CP主页头像"; +"UserDetail_CP_List_0" = "需要 %@ 到下一级"; +"UserDetail_CP_Toast_0" = "提示"; +"UserDetail_CP_Toast_1" = "你确定要花 %@ 金币解除与 %@ 的CP关系?"; +"UserDetail_CP_Toast_2" = "你已经成功解除和 %@ 的CP。"; +//"RoomEffect_CP_0" = "和"; +//"RoomEffect_CP_1" = "已经成为"; +"RoomEffect_CP_0" = "and"; +"RoomEffect_CP_1" = "have become"; diff --git a/YuMi/zh-Hant.lproj/Localizable.strings b/YuMi/zh-Hant.lproj/Localizable.strings index e4e89040..a4555b66 100644 --- a/YuMi/zh-Hant.lproj/Localizable.strings +++ b/YuMi/zh-Hant.lproj/Localizable.strings @@ -3361,3 +3361,20 @@ "Combo_9" = "倍"; "Combo_10" = "你確定要去這個房間嗎?"; +"UserDetail_0" = "公會"; +"UserDetail_1" = "公會暱稱:"; +"UserDetail_2" = "公會 ID:"; +"UserDetail_3" = "公會長 ID:"; +"UserDetail_4" = "CP"; +"UserDetail_5" = "直播"; +"UserDetail_Setting_0" = "主頁CP進場動效"; +"UserDetail_Setting_1" = "主頁CP頭像"; +"UserDetail_CP_List_0" = "需要 %@ 升級"; +"UserDetail_CP_Toast_0" = "提示"; +"UserDetail_CP_Toast_1" = "您確定要花 %@ 金幣來取消您与 %@ 的 CP 嗎?"; +"UserDetail_CP_Toast_2" = "你已经成功解除和 %@ 的CP。"; +//"RoomEffect_CP_0" = "和"; +//"RoomEffect_CP_1" = "已經成為"; +"RoomEffect_CP_0" = "and"; +"RoomEffect_CP_1" = "have become"; +