美文网首页本地化
iOS国际化(三):.strings文件和NSLocalized

iOS国际化(三):.strings文件和NSLocalized

作者: 金风细细 | 来源:发表于2016-10-26 16:35 被阅读57次

    场景

    1. 用户可以在手机设置->通用->语言和地区中,设置语言
    2. app希望通过用户设置的语言,app显示不同的文本

    步骤:

    1.新建一个.string文件

    是在Source里面去找:


    1__#$!@%!#__Pasted Graphic 1.jpg

    2. 写法:

    "ivykey" = "ivy中文";

    3. 添加语言:

    3-1

    先选base,其他的后面再勾选都可以的

    3-2

    去查看工程目录
    多了en.lproj和zh-Hans.lproj.它们分别存放需要国际化的strings文件,如果勾选了base,则Base.lproj里也会有strings文件

    4. 代码使用:

    1. 如果.strings文件的名字是:Localizable.strings
      则用NSLocalizedString宏 就可以了
    NSString * strLocalizable = NSLocalizedString(@"ivykey",        @"comment");
    
    1. 如果.strings文件的名字是自定义的,则要用这个宏, 第二个参数是名字
    NSString * str  =    NSLocalizedStringFromTable(@"ivykey", @"ivy", @"comment");
    

    这2个宏,很有意思:它们调用的是这个方法
    [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]

    • If key is nil and value is nil, returns an empty string.
    • If key is nil and value is non-nil, returns value.
    • If key is not found and value is nil or an empty string, returns key.
    • If key is not found and value is non-nil and not empty, return value.
    总之,就是谁不为nil且存在,就返回谁.

    5. 添加其他语言

    这个见我另一个文章的最后面

    相关文章

      网友评论

        本文标题:iOS国际化(三):.strings文件和NSLocalized

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