美文网首页
iOS 国际化

iOS 国际化

作者: 十一遥 | 来源:发表于2018-01-12 14:24 被阅读16次

    字面意思就是,在app 显示不同的语言.

    大致思路很简单,就是预先吧需要设置的文字内容分几种语言写个文件. app显示内容的时候调用.

    1.新建项目.

    和普通方式一样,新建一个就好,

    2.infoplist里添加国际化

    project -> info -> Localizations 点击 加号 按钮, 选择你要添加的语言. 一直下一步.

    3.创建strings文件

    在项目里创建几个strings 的文件 (至少两个,一个是infoplist的,另一个是是项目中的, 如果未来直观方便调用,可以创建多个,一个大的模块用一个)

    strings创建方式: CMD + N , 在Resource里面勾选 Strings File 然后命名为InfoPlist, 创建完成后, 包含该文件类型的 完整名称是 InfoPlist.strings (这个必须这么起名).

    4.设置文件display name

    打开文件, 在里面输入内容 :"CFBundleDisplayName" ="Languages"; 这个前面的是键名字, 后面是value.
    点击InfoPlist.strings文件,在右边的工具栏, 找到localization.点击咯擦李泽..按钮.然后里面把你要的语言都打钩, 这时候InfoPlist.strings 就可以打开了, 在下面的版本里, 对应的value里, 修改文字就成.

    5.创建Localizable.strings文件

    这个文件是默认的文件. 项目内容中都可以通过它一个是设置,但我感觉,这里写的太多,将来会眼花, 多分几个,方便
    设置方式和之前的是一样的.我就不多说了.

    文档

    #define NSLocalizedString(key, comment) \
            [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:nil]
    #define NSLocalizedStringFromTable(key, tbl, comment) \
            [NSBundle.mainBundle localizedStringForKey:(key) value:@"" table:(tbl)]
    
    这是文档里的, 第一个, 是键名 和描述, comment可以nil.
    第一个, 是键名 、Localizable的文件名 和描述,  tbl就是说你的文件不叫Localizable.strings了,那么就得把它写进去.
    

    使用方式

        contentLab.text = NSLocalizedString(@"contentLabString",@"Localizable");//默认的文件
    
        poetryLab.text = NSLocalizedStringFromTable(@"poetryLabString",@"JeffinControllerLocalizable", nil);//自己又创建的文件
    
    
    好了

    上demo链接点这儿.

    相关文章

      网友评论

          本文标题:iOS 国际化

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