• iOS 本地化应用程序汇总 国际化


     最近要做一个应用要实现本地化,因为使用的是xcode4,应用程序本地化的问题跟以前的版本还是有些不同,在网上找了些资料对于xcode4以上的版本资料还是相对较少,有些最后要通过手动创建文件,这样操作实在是太麻烦,所以经过一个下午的研究,总算是成功了一点点,还是庆幸一下。先给出结果。

    英语:                                                                    中文:



                  

                           

    具体实现如下:

    静态本地化 : 加载的文件,如xib文件,图像文件,还有实现应用程序名本地化

    动态本地化: 显示的字符串本地化

    一。先做准备:设置程序本地化

    在xcode点击程序图标:点击Info选项->Localizationn,点击“+”,选择要添加的语言,简体中文选择Chinese(zh-Hans)

    你会在你工程目录下发现多了个文件夹,“zh-Hans.lproj",x-code使用.lproj作为其本地化文件夹的扩展名。


    二。设置xib文件本地化, 图像本地化的方法是一样道理的,可以根据用户的显示语言加载不同的xib文件

    操作:点击xib文件,在IB窗口中选择选项选择“File Inspecter",也就是第一个选项,选择“Localization->"+"选择添加的语言,

    效果如下,原来的xib文件就会出现三角形,其下有两个文件,因为我的为storyboard,但效果是一样的。就可以实现将其本地化了,非常简单吧


    三。设置应用程序名本地化,

          设置应用程序名存储在应用程序的Info.plist文件中,我们例子实际上为Localize-Info.plist,选择文件,并不需要对文件进行本地化,而是使"Info.strings"本地化就可以了,在Localize.Info.plist,空白处右键,选择Show Raw Keys/Values,就会看到应用程序名实际为CFBundleDisplayName,我们只需要在对应的 Info.plist中添加以下代码就可以了

    英文版:

    C代码  收藏代码
    1. CFBundleDisplayName = "Localization";  

     中文版:

    C代码  收藏代码
    1. CFBundleDisplayName = "本地化";  



     效果图:


    四、加载的字符串本地化,

          原理:在代码中将加入的字符串加入NSLocalizeString宏中,启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。,

    C代码  收藏代码
    1. labelName.text = NSLocalizedString(@"Name", @"The name is ");  
    2. labelPassword.text  = NSLocalizedString(@"Password:",@"The password is");  

     NSlocalizeString 第一个参数是内容,第二个参数将会转化为字符串文件里的注释。

    转化方法如下 :先关闭项目,打开终端,进入到项目的目录,输入genStrings 文件名.m就可以将该文件中的宏转化为相应的字符串文件,


    效果如下:会看到生成"Localizable.strings",

    打开文件,就可以交给翻译人员去翻译了


    ===================

    1、本地化字符串,网上那些方法我就不说了,我只更正一点:如果你的Classes下面有子文件夹会报错,使用下面的命令:

    find . -name \*.m | xargs genstrings -o /Users/apple/(你目标的文件夹)

    2、本地化软件的名字:

    (1)在info.plist文件里做如下设置:

     (2)创建一个InfoPlist.strings文件,里面写如下内容:

    "CFBundleDisplayName"="你软件的名称";

    "CFBundleName"="你软件的名称";

    (3)本地化这个文件即可。

    3、本地化资源,不必细说了,网上资料很多,这里我只说下我的疑惑:图片资源貌似只能用zh-Hans。

    4、本地化icon,目前不支持,所以不要费劲的去本地化icon了。

    5、商店的本地化,也不必细说了,很简单,按照苹果需要的填就可以了。

    ====================

    应用genstrings和NSLocalizedString实现App文本的本地化


    Admin
    2012年3月20日

    App本地化的须要不消讲大师也都熟悉打听,本文将介绍一种简单的办法来实现字符串的本地化。

    在不推敲本地化的景象下,我们若是在代码中给一个Button定义title,一般会如许写:


    btn.titleLable.text = @"Example Button";

    也许我们已经写了很长的代码才推敲到本地化的题目,大可不必头疼,这时辰,我们要做的是把代码从头扫一遍,然后把每个会显示给用户看的字符串做如下批改:
    (对于内部应用的字符串就用不着本地化了)


    btn.titleLable.text = NSLocalizedString(@"btn_title", nil);

    NSLocalizedString是一个定义在NSBundle.h中的宏,其用处是寻找当前体系说话对应的Localizable.strings文件中的某个key的值。
    第一个参数是key的名字,第二个参数是对这个“键值对”的注释,在用genstrings对象生成Localizable.strings文件时会主动加上去。

    到今朝为止,我们还没有生成Localizable.strings文件。这是一个逆向的过程,也就是先写好调用过程,再生成strings资料文件。

    当我们把所有的.m文件都修发好了,就该genstrings对象出场了。
      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中添加方才生成的Localizable.strings文件。
      6. 最后在Localizable.strings文件中,批改每个key所对应的内容,就大功成功了。

    说了一大堆,其实操纵起来还是很简单的,总的来讲就是两条:
      1. 在代码里用NSLocalizedString获取要本地化的字符串
      2. 用genstrings扫描代码文件,生成Localizable.strings,然后加到工程中。 

    最后祝大师的产品早日走向世界。

  • 相关阅读:
    VS2015编译OpenSSL1.0.2源码
    VS2015编译CURL7.54.0源码
    Mac OS Yosemite 文件批量重命名
    https 原理
    把本地仓库导入到Github
    jquery cdn加速注意事项
    关于CSS 里的_width是什么意思???
    HTML的footer置于页面最底部的方法
    html-include
    GitHub Permission to <<repository>> denied to <<username>>
  • 原文地址:https://www.cnblogs.com/rywx/p/2872308.html
Copyright © 2020-2023  润新知