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方法中添加如下语句,增加一个按钮:
UIButton *myBtn = [[UIButton alloc]initWithFrame:CGRectMake(, , , )];
myBtn.backgroundColor = [UIColor orangeColor];
myBtn.layer.cornerRadius = ;
myBtn.layer.masksToBounds = YES;
myBtn.enabled = YES;
[myBtn setTitle:NSLocalizedString(@"myBtnTitle", @"这是按钮myBtn的Title") forState:UIControlStateNormal];
[self.view addSubview:myBtn];
注意在设置按钮的title时,要用第6行的语句,即NSLocalizedString(@"myBtnTitle", @"这是按钮myBtn的Title")来代替原来的字符串,这样我们在后面才可以通过替换myBtnTitle,来设置在不同的语言中按钮显示不同的title。
然后打开之前第六步中的Localizable.strings Chinese(Simplified),添加一句"myBtnTitle"="确认";
同理,在Localizable.strings English中添加一句"myBtnTitle"="OK";
Got it,然后运行,模拟器上显示分别如下图:

这样就完成了给软件设置不同的语言。很简单吧。
顺便提一下,给软件改名是设置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的中文名";具体见下图:
/*
InfoPlist.strings
软件名字国际化 Created by mac on 16/4/15.
Copyright © 2016年 mzw. All rights reserved.
*/
CFBundleName="EnglishNane";
/*
InfoPlist.strings
软件名字国际化 Created by mac on 16/4/15.
Copyright © 2016年 mzw. All rights reserved.
*/
CFBundleName="汉语名";
完成,模拟运行如下:


IOS软件国际化(本地化Localizable)的更多相关文章
- iOS开发——国际化支持Localizable.strings
这篇写的不多,但是绝对诚意满满.不会像别人一样,要不不详细,要不罗里吧嗦一堆. 1.创建Localizable.strings文件 Command+N—>iOS—>Resource—> ...
- iOS - 实现语言本地化/国际化
实现iOS语言本地化/国际化(图文详解) 前言 语言本地化,又叫做语言国际化.是指根据用户操作系统的语言设置,自动将应用程序的语言设置为和用户操作系统语言一致的语言.往往一些应用程序需要提供给多个 ...
- 08-IOSCore - App Store、国际化/本地化
App Store 1. 帐号身份 0. 有Xcode 写程序,在虚拟机上运行 1. 成为苹果使用者 appleid 验证邮箱 权限: 能下载应用程序 2. 成为苹果开发者 https://devel ...
- iOS应用国际化教程(2014版)
本文转载至 http://www.cocoachina.com/industry/20140526/8554.html 这篇教程将通过一款名为iLikeIt的应用带你了解最基础的国际化概念,并为你的应 ...
- iOS Programming Localization 本地化
iOS Programming Localization 本地化 Internationalization is making sure your native cultural informatio ...
- iOS APP 国际化
pp Store 中很多流行的应用程序有多种语言版本.虽然这些应用程序可能因为很多因素而变得流行,但是具有多种本地化版本,肯定是其中一个因素.越多的人可以理解并使用您的应用程序,潜在的买家也就越多. ...
- iOS应用国际化教程
开发一款伟大的iOS应用程序是件了不起的事情,但是还有比优秀的代码.华丽的设计以及直观化交互更多的事要做.跻身在App Store排行榜前列还需要正合时宜的产品营销.扩大用户群的能力.实用的工具以及尽 ...
- Atitit 软件国际化原理与概论
Atitit 软件国际化原理与概论 语言和文化习俗因地域不同而差别很大.对某一特定的地域的 语言环境称为"locale".它不仅包括语言和货币单位,而且还包括 数字标示格式, 日期 ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
随机推荐
- 转:Loadrunner学习知多少--脚本录制下载操作
在很多时候我们可能需要对系统进行这样的脚本开发,模拟用户点击一个下载链接,然后弹出下载框,选择保存,用来测试在大量用户下载时服务器的性能.但是现在大家对于这种脚本的处理方式往往是通过关联和C 语言的文 ...
- android:contentDescription的作用是什么
在写Android的XML布局文件时,在ImageView或ImageButton中经常会碰到一个提示: Missing contentDescription attribute on image. ...
- 利用未文档化API:RtlGetNtVersionNumbers 获取系统版本号
问题一:Windows SDK 8.1版本中的VersionHelper.h文件当中没有IsWindows10ORGreater,所以当你用IsWindows8Point1ORGreater判断出版本 ...
- 使用PHP实现文件上传和多文件上传
PHP 2013 年 9 月 4 日 暂无评论 在PHP程序开发中,文件上传是一个使用非常普遍的功能,也是PHP程序员的必备技能之一.值得高兴的是,在PHP中实现文件上传功能要比在Java.C#等语言 ...
- hdu_2546_饭卡(01背包)
题目连接:hdu_2546_饭卡 题意:中文,不解释 题解:先拿5元来买最贵的,最后就是一个01背包,这里也算用到贪心的思想 #include<bits/stdc++.h> #define ...
- JSP文件上传--FileUpload组件
如果使用上传操作,并且没有使用框架之类,最好使用Smartupload,因为FileUpdate太难使用. 下载组件: fileupload包:http://commons.apache.org/pr ...
- linux export将PATH环境变量误删了的解决办法
今天新增环境变量的时候不小心把冒号错打成了分号 export PATH=/usr/local/php5/bin;$PATH; 导致PATH变量为/usr/local/php/bin 解决办法:[ubu ...
- zf-关于注册码过期
Webroot-index.jsp下 少写了个函数 导致登陆进去不能弹出注册码过期的对话框,函数如下 window.onload = function() { <ww:iterator valu ...
- gen_compile.sql
set echo off pagesize 0 feedback off define v_input_un = &1define v_input_pw = & ...
- FusionCharts使用问题及解决方法(四)-FusionCharts常见问题大全
在前3篇文章中,我们总结了FusionCharts图表的一些常见问题(FAQ)及解决方法,本文继续讨论FusionCharts使用者常见的一些复杂的报错及解决方法. 问题描述:使用FusionChar ...