zoukankan      html  css  js  c++  java
  • 【转】使用genstring和NSLocalizedString实现App文本的本地化

    原地址:http://www.cnblogs.com/U-tansuo/p/IOS_NSLocalizedString.html

    iOS提供了简便的方法来实现本地化,其中用的最多的就是NSLocalizedString。
    首先查看下NSLocalizedString是什么:
    #define NSLocalizedString(key,comment)
    [[NSBundle mainBundle]localizedStringForKey:(key) value:@"" table:nil];
    这 是一个宏,本质上调用了函数localizedStringForKey:这样,这个宏做的其实就是在当前bundle中查找资源文件名 Localizable.strings中键值key所指向的字符串,这样就不难理解还有诸如:NSLocalizedStringFromTable的 宏了。
     

    在不考虑本地化的情况下,外面如果在代码中给一个Button定义title,一般会这样写:

    btn.titleLabel.text = @"Example Button";
    当虚考虑本地化的问题时,把要显示给用户看的字符串做如下修改:(对于内部使用的字符串就用不着本地化了)
    btn.titileLabel.text = NSLocalizedString(@"btn_title",nil);
    NSLocalizedString是一个定义在NSBundle.h中的宏,气用途是寻找当前系统语言对应的Localizable.strings文件中的某个key的值。
    第一个参数是key的名字,第二个参数是对这个“键值对”的注释,在用genstrings工具生成Loclizable.strings文件时会自动加上去。
     
    到目前为止,外面还没有生成Localizable.strings文件,这个一个逆向的过程,也就是先写好调用过程,再生成strings资源文件。
    当外面把所有的.m文件都修改好以后,就该genstring工具了。
    1.启动终端,进入工程所在的目录
    2.新建两个目录,推荐放在资源目录下
    目录名会作用到Localizable.strings文件对应的语言,不能写错了。这里zh-Hans指简体中文,注意不能用zh.lproj表示。
    mkdir zh-Hans.lproj
    mkdir en.lproj
    3.生成Localizable.strings文件
    genstrings -o zh-Hans.lproj *.m
    genstrings -o en.lproj *.m
    -o<文件夹>,指定生成的Localizable.strings文件放置的目录
    *.m,扫描所有的.m文件,这里支持的文件还包括.h,.java等
    4.右键点击工程的Resources目录,选择“New group”,添加两个目录zh-Hans.lproj和en.lproj
    5.在新建的group中添加刚刚生成的Loclizable.strings文件
    6.最后在Localizable.strings文件中,修改每个key所对应的内容,就可以了。
     
    总结:
    1.在代码里用NSLocalizedString获取要本地化的字符串
    2.用genstrings扫描代码文件,生成Localizable.strings,然后加到工程中。
  • 相关阅读:
    pdfobject (前台展示PDF插件)
    ERROR 19608 --- [ost-startStop-1] c.atomikos.persistence.imp.LogFileLock : ERROR: the specified log seems to be in use already: tmlog in D: ools omcatapache-tomcat-8.5.51in ransaction-logs
    文件上传下载(四) 读 txt 文本 ajaxfileupload
    1129
    centos服务器上部署项目(二) -tomcat
    Guns 打包
    centos服务器上部署项目(一) -jdk,mysql
    layui 学习笔记(四) 复杂表头前台Excel导出
    SpringCloud项目搭建(四) zuul
    sql的基本查询语句
  • 原文地址:https://www.cnblogs.com/123ing/p/3703964.html
Copyright © 2011-2022 走看看