zoukankan      html  css  js  c++  java
  • IOS软件国际化(本地化Localizable)

    IOS软件国际化(本地化Localizable)

      iPhone是支持语言最多的手机,它支持各国语言及中国少数名族如蒙古等语言,这也是好多少数名族都用苹果的原因。在这一点上我们自主品牌还是要多学习学习。在IOS软件开发中,可以通过几步简单的设置让软件支持多国语言。

      言归正传,现在说说如何让自己开发的应用支持多国语言,具体操作如下:

    一、新建ios工程,工程名随便,我这儿用的是Localizable联系(本地化)

    二、新建完成打开后,点击项目结构树最上面的项目名Localizable联系(本地化)(箭头1指向的位置),会出现右侧内容,然后点击箭头2指向的位置,就会出现项目的Info,这时候肩头三指向的框中就是设置语言的地方。

    三、点击上图中箭头3指向的框中的+号,会弹出各种语言的选择,这里默认已经有一个English的语言,假定我要添加汉语,那就在下拉列表中选择Chinese(Simplified),点击之后会弹出如下确定窗口,让你选择是否把选择的语言添加到故事板和启动画面的故事板,默认两个都选择,我们不做改变,直接Finish。完成之后如右下图所示。

    四、完成以上步骤之后,右键项目资源树,右键点击New File,添加一个String File,如下图所示,文件名为Localizable,注意,必须是Localizable。

    添加完成后在项目树里会出现Localizable.strings这么一个文件 。

    五,选中此文件,然后按照下图所示,打开右侧面板,找到Localizable...这个按钮并点击,弹出一个勾选语言的弹出框,

    点击右侧框住的上下箭头,然后点击语言选择为Chinese(Simplified),然后点击Localize按钮,这样就可以在上图中右侧面板中勾选语言,把English和Chinese(Simplified)都选中。

    六、选中之后,左侧的项目树中Localizable.strings下面多处两个文件,一个是Localizable.strings Chinese(Simplified)另一个是Localizable.strings English。这样就完成了基本的设置。

    接下来我们通过给应用中添加一个按钮,让这个按钮的名称在不同的语言环境下显示不同的语言,即当我的手机语言为English的时候,按钮显示”OK“,当手机语言为汉语的时候,按钮显示“确认”。

    1、在ViewController.m中viewDidLoad方法中添加如下语句,增加一个按钮:

    1 UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(100, 200, 214, 80)];
    2     myBtn.backgroundColor = [UIColor orangeColor];
    3     myBtn.layer.cornerRadius = 20;
    4     myBtn.layer.masksToBounds = YES;
    5     myBtn.enabled = YES;
    6     [myBtn setTitle:NSLocalizedString(@"myBtnTitle", @"这是按钮myBtn的Title") forState:UIControlStateNormal];
    7     [self.view addSubview:myBtn];

    注意在设置按钮的title时,要用第6行的语句,即NSLocalizedString(@"myBtnTitle", @"这是按钮myBtn的Title")来代替原来的字符串,这样我们在后面才可以通过替换myBtnTitle,来设置在不同的语言中按钮显示不同的title。

    然后打开之前第六步中的Localizable.strings Chinese(Simplified),添加一句"myBtnTitle"="确认";

    同理,在Localizable.strings English中添加一句"myBtnTitle"="OK";

    Got it,然后运行,模拟器上显示分别如下图:

    中文状态下按钮显示确认         英文状态下按钮显示OK

    这样就完成了给软件设置不同的语言。很简单吧。

    顺便提一下,给软件改名是设置Info.plist 中的Bundle Name.设置成你想要的名字之后,在手机上这个app的名字就会变成你设置的。

    那应用程序的名称如何国际化?方法如下:

    1.首先要在Project->Info->Localizations里面加上你所需要的语言。(中文有两种简体是zh-Hans,正体是zh-Hant)

    2.然后添加一个StringFile,命名为InfoPlist.strings。并且在文件属性里将所需要的多国语言勾上。

    3.完成2后会在InfoPlist.strings下面多出两个文件,一个是InfoPlist.strings(English),一个是InfoPlist.strings(Simplified Chinese),先右键Info.Plist,使用SourceCode打开然后找到CFBundleName这一条并把这个字段复制出来,在InfoPlist.strings(English)中粘贴,后面加上="APP的英文名";同样的操作在InfoPlist.strings(Simplified Chinese) 中粘贴,后面加上"APP的中文名";具体见下图:

    1 /* 
    2   InfoPlist.strings
    3   软件名字国际化
    4 
    5   Created by mac on 16/4/15.
    6   Copyright © 2016年 mzw. All rights reserved.
    7 */
    8 CFBundleName="EnglishNane";
    1 /* 
    2   InfoPlist.strings
    3   软件名字国际化
    4 
    5   Created by mac on 16/4/15.
    6   Copyright © 2016年 mzw. All rights reserved.
    7 */
    8 CFBundleName="汉语名";

    完成,模拟运行如下:

  • 相关阅读:
    redis数据淘汰策略(转)
    maven中的dependencyManagement
    分布式事务(三)mysql对XA协议的支持
    分布式事务(四)简单样例
    多个@bean无法通过@resource注入对应的bean(org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected single matching bean but found )
    分布式事务(二)Java事务API(JTA)规范
    分布式事务(一)原理概览
    一台电脑支持2个git账号:gitlab+github
    单表千万级数据迁移实践方案-乞丐版,不使用大数据平台
    logback root level logger level 日志级别覆盖?继承?
  • 原文地址:https://www.cnblogs.com/jiwangbujiu/p/5389770.html
Copyright © 2011-2022 走看看