前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >iOS本地化字符串指定参数顺序(应用场景:app内的多语言切换)

iOS本地化字符串指定参数顺序(应用场景:app内的多语言切换)

作者头像
公众号iOS逆向
发布2021-01-18 15:58:50
1.4K0
发布2021-01-18 15:58:50
举报
文章被收录于专栏:iOS逆向与安全iOS逆向与安全

文章目录

  • 前言
  • I 、 例子
    • 1.1 效果
  • see also

前言

  • 完整的demo源码:https://github.com/zhangkn/LanguageManager

对于在中英文语法的区别,在本地化字符串的时候,我们常常需要调整stringWithFormat的参数顺序

  • 原理:在%和@中间加上数值(1,2

I 、 例子

代码语言:javascript
复制
elf.FORMATLab.text =   [NSString stringWithFormat:KNLocal(@"FORMAT", nil), @"csdn", @"https://kunnan.blog.csdn.net/article/details/103733872"];
  • en.lproj/Localizable.strings
代码语言:javascript
复制
"FORMAT" = "I am %2$@ from '%1$@'";
  • zh-Hans.lproj/Localizable.strings
代码语言:javascript
复制
"FORMAT" = "我是来自“%1$@”的%2$@";

1.1 效果


  • 中文
  • 英文

see also

  • 【iOS APP 内的国际化切换】1、字符串的本地化、2、自定义解析本地化字符串的工具类LanguageManager、3、例子:登录界面切换中英文。

代码语言:javascript
复制
@interface ViewController ()
/**
 中英文lab,用于切换语言:处理切换中英文语言的动作事件
 */
@property (weak, nonatomic) UILabel *languageLab;

/**
 用于测试指定参数顺序: 在%和@中间加上1$,2$等等就可以啦,数字代表参数的顺序。
 */
@property (weak, nonatomic) UILabel *FORMATLab;


@end

@implementation ViewController

- (void)viewDidLoad {
    
    
    [super viewDidLoad];
    [self languageLab];

    self.view.backgroundColor = UIColor.whiteColor;
    
    
    
    self.FORMATLab.text =   [NSString stringWithFormat:KNLocal(@"FORMAT", nil), @"csdn", @"https://kunnan.blog.csdn.net/article/details/103733872"];
    
    
    
    
    
    
    if (@available(iOS 13.0, *)) {

    
    
    [self testUIPageControl];
        
    }
    
}

- (UILabel *)FORMATLab{
    if (!_FORMATLab) {
        UILabel *tmp = [[UILabel alloc]init];
        
        _FORMATLab = tmp;
        
        tmp.textColor = rgb(51,51,51);
        
        tmp.font = kBoldFont(15);
        
        tmp.numberOfLines = 0;
        
        
        tmp.textAlignment = NSTextAlignmentCenter;
        

        
        
        [self.view addSubview:tmp];
        
        __weak __typeof__(self) weakSelf = self;

        [tmp mas_makeConstraints:^(MASConstraintMaker *make) {
           
            make.centerY.equalTo(weakSelf.view).offset(kAdjustRatio(-80));
            

            make.centerX.equalTo(weakSelf.view).offset(-kAdjustRatio(0));
            
            make.left.equalTo(weakSelf.view).offset(-kAdjustRatio(10));
            make.right.equalTo(weakSelf.view).offset(-kAdjustRatio(10));

            
//            make.size.mas_equalTo(CGSizeMake(kAdjustRatio(100), kAdjustRatio(40)));
                        
            
            
        }];
        
        
        
    }
    return _FORMATLab;
}

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iOS逆向 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • I 、 例子
    • 1.1 效果
    • see also
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档