feat: 补充多语言 | 修正自测问题
This commit is contained in:
@@ -101,6 +101,8 @@ typedef NS_ENUM(NSUInteger, URLType) {
|
||||
kChannelUrl,
|
||||
///LUDO排行榜路径
|
||||
kLUDOUrl,
|
||||
/// CP 規則頁
|
||||
kCPRule,
|
||||
};
|
||||
|
||||
NSString * const URLWithType(URLType type);
|
||||
|
@@ -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
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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];
|
||||
|
@@ -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;
|
||||
|
@@ -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 {
|
||||
|
@@ -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) {
|
||||
|
@@ -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];
|
||||
|
@@ -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;
|
||||
|
@@ -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];
|
||||
|
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -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";
|
||||
|
@@ -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";
|
||||
|
@@ -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";
|
||||
|
@@ -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";
|
||||
|
||||
|
Reference in New Issue
Block a user