• IOS开发之国际化篇第二章:文本信息国际化


    本文是以XCode7.2.1为开发平台

    在第一章中,我们基本了解了国际化是怎么一会事,介绍到有3种国际化,接下来的几章就会分别介绍这3种国际化,第一个是文本信息国际化

    文本信息国际化包含一下几点

    • 系统按钮和信息国际化
    • 应用名称国际化
    • 程序代码中输出的静态文本国际化

    -系统按钮和信息国际化

    系统本身会自带一些系统的信息,系统按钮等,这一些系统自带的信息提示,按钮文本都是由Cocoa本身自带的,他们都是统一又系统管理,例如Done在英文环境中是Done,还有系统提示信息,如下图,在不同语言环境系统会显示不同的提示语言

    我们先来看看没有国际化前的效果,下面我们会先拉出一个UIToolBar然后把自带的那个UIToolBarItem里面的种类设成Cancal,运行后正常,正是我们要的,接下来我们在设置那里换一下语言环境换成韩文,再次运行,结果没变化,还是英文显示cancal,这是因为我们没有设置程序的韩文支持

    现在我们来添加一下韩文的支持在Projct->Info->Locallizations,按+号,然后添加需要支持的语言,我们这里添加韩文,运行后机会得到预期效果

    -应用名称国际化

    应用名称国际化从字面上看很容易理解,就是应用在桌面展示时的中英文名称,这个名称一般由开发者确定,现在先看看系统自带的一些app如:设置,日历等,他们国际化后的效果

    在正常的情况下文件的结构如图

    如果增加了一种以上的语言支持后,它有可能会多了一个InfoPlist.String文件,文件下会带有该种语言的文本翻译文件,如果没有可手动添加,切记这个文件名字必须是InfoPlist,添加方式如下:

    右键菜单->New File...在弹出的窗口找到Strings File,然后创建,记得名称必须是InfoPlist

    创建成功后,在文件结构里看到多出一个文件,InfoPlist.strings,点击文件后,会在右手边的设置里面,显示如图,然后点击Localize...按钮,然后就需要选取需要国际化的语言,这里的选项会因添加的支持语言而变化,例如添加了韩文支持,那就有韩文选择,如有中文,就有中文的选项

    按Localize按钮后,右手边属性栏会有所变化,变成了这样,打沟的部分为刚才所选的国际化语言,而文件结构那边是没有任何的变化

    如果需要添加其它的国际化语言,只需在右边的,沟上想国际化的语言即可(前提是必须支持该种语言的国际化,如不懂怎样添加支持的语言种类,可参考本章前面的内容),沟选了对应的国际化后,InfoPlist.strings文件下会多出了想国际化的文本文件,文件括号后面跟的是语言的种类,如:English代表英文 如图:

    打开文件,就可以在里面编写需要国际化的键值对,这里我们要国际化的时候app的展示名称,app的展示名称的Key是CFBundleDisplayName,分别在

    *.strings(Simplified)文件内写上CFBundleDisplayName="国际化";

    *.strings(English)文件内写上CFBundleDisplayName="Internationalization";

    然后用各自用简体中文和英文环境运行一下应用,在桌面上,会看到效果

    -程序代码国际化

    首先我们要建立一个国际化文件是用于代码内的国际化,如上面的教程一样,新建一个*.string文件,文件名为Localizable.strings,必须要以这个名字命名。然后跟上面教程一样,创建它对应的国际化支持文件,

    然后就可以在文件内编写键值对,我们这里用Name作键,做一个测试,分别在中文和英文的国际化文件内编写Name这个键对应的值

    英文国际化:Name="International Test";

    中文国际化:Name="国际化测试";

     然后在相应需要国际化的地方使用以下代码,本例子是在控制台上打印一个语句

    - (IBAction)buttonOnClick:(id)sender {
        NSString *text = @"Name";
        NSLog(@"%@",NSLocalizedString(text, @"Name"));
    }

    主要关注的方法是,NSLocalizedString(@“”,@“”);这里有两个参数,第一个参数就是在国际化文件内的键值,第二个参数是默认值,当找不到国际化文件或在国际化文件中找不到对应的键时,默认会显示这个默认值

  • 相关阅读:
    gerrit 在git review的时候碰上miss unkown + hash值
    centos7 rc.local脚本执行不成功
    python脚本之日期格式显示
    redis集群本地搭建
    php安装与注意事项
    nginx理解--如何处理一个请求
    数据同步 rsync+notify架构
    gitlab+gerrit+jenkins代码托管、审核、持续集成架构搭建
    RHEL6关于Header V3 DSA signature: NOKEY, key ID错误解决方法
    python脚本之traceroute生成路由跟踪图片
  • 原文地址:https://www.cnblogs.com/oscar1987121/p/5241748.html
Copyright © 2020-2023  润新知