美文网首页
App语言的国际化之跟随系统语言(二)

App语言的国际化之跟随系统语言(二)

作者: 春风依旧 | 来源:发表于2017-02-12 12:18 被阅读16次
本将要国际化的内容是:
  • 图片国际化
  • storyboard/xib国际化

(一)图片的国际化

方式一:

对于同一张图片,每种语言设置一张,这种设置方式适用于图片上内容只有会哪种语言的人才知道什么意思


屏幕快照 2017-02-12 下午1.30.41.png

代码方式就是像字符串本地化一样

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(80, 300, width - 160, 200)];
    imageView.image = [UIImage imageNamed:NSLocalizedString(@"imageName", nil)];
    [self.view addSubview:imageView];
方式二:

首先需要添加需要本地化的语言,由于之前添加过了,所以就不需要在设置了。具体步骤如下:

1、将图片拖入工程中,然后选中图片.展开Xcode右侧的file Inspection,点击Localize,设置语言,如下图:
屏幕快照 2017-02-12 下午1.39.50.png
2、贴出代码:
    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(80, 300, width - 160, 200)];
    NSString *imageName = NSLocalizedString(@"icon.jpeg", nil);
    imageView.image = [UIImage imageNamed:imageName];
    
    [self.view addSubview:imageView];

(二)多人开发情况下的字符串本地化

多人开发为了避免冲突,需要修改你的strings文件名字不是Localizable,那么你可以使用NSLocalizedStringFromTable这个宏来读取本地化字符串。NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>)
1、key:系统根据key取字符串
2、tbl:自定义strings文件的名字
3、comment:可以不传
附上效果图 及代码:


屏幕快照 2017-02-12 下午3.17.10.png
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(50, 380, width - 100, 30);
    NSString *title = NSLocalizedStringFromTable(@"title", @"zMj", nil);
    [btn setTitle:title forState:UIControlStateNormal];
    [btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
    [self.view addSubview:btn];
    

(三)国际化语言的切换

原理:应用启动时,首先会读取NSUserDefaults中的key为AppleLanguages对应的value,该value是一个String数组

相关文章

网友评论

      本文标题:App语言的国际化之跟随系统语言(二)

      本文链接:https://www.haomeiwen.com/subject/haraittx.html