iOS多语言设置
最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程。如有不对的地方,欢迎各位大神指正。下面就详细介绍下设置的过程:
1、基本设置
第一步:首先在 项目工程-PTROJECT-Info中添加需要支持的语言
如上点击“+”号会弹出提供的语言列表,我们选择项目需要支持的语言就可以了
第二步:创建Localizable.strings(⚠️:该文件名不要随意更改)作为多语言资源对应的词典,存储多语言
创建好后,接下来需要继续做如下操作:
(1)选中Localizable.strings文件,点击右侧栏对应的Localize...
(2)在Localization里添加所要支持的语言,并勾选
第三步,经过以上几步,前期的基本设置完成了,可以在Localizable.strings里设置所需要的语言了。如下所示
第四步,设置好对应的语言后,就可以去使用了。那么可以按以下方式去使用
NSString * tempStr = NSLocalizedString(@"test_label", nil);
⚠️:
以上是对应的创建以Localizable为名字的文件调用方式。如果设置的是自定义的名字,如test.strings,调用的方式为:
NSLocalizedStringFromTable("name", "test", nil);
2、StoryBoard和Xib设置
storyBoard和xib设置同Localizable.strings类似。点那个我们创建Localizable.strings对应的语言文件时,系统自动的生成了app中现有storyBoard对应的系统文件。对于后加的文件,我们可以选中文件,点击右侧的Localize...并勾选对应的语言即可。
比如在storyBoard和xib中有一个Label,它对以会有一个Object ID了。我们可以通过这个ID来设置对应的语言文本
不过这个建议是所有的UI界面都设置完成后,再去设置多语言。当然可以通过对控件拖线,在代码实现中设置多语言
3、应用名等相关权限多语言设置
应用名等设置与上面的几个多语言设置的步骤是基本一致的,只是在创建strings文件的时候文件名要为InfoPlist。
这里以中文为例,设置app名称:"CFBundleDisplayName" = "测试";
4、判断系统的语言
NSArray *languages = [NSLocale preferredLanguages]; NSString *currentLanguage = [languages objectAtIndex:]; NSLog(@"%@", currentLanguage);
⚠️:通过[NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]]设置app语言后,一定要记得重新设置window的rootViewController
好了,以上就是iOS多语言的相关内容
iOS多语言设置的更多相关文章
- ios多语言设置,操作
多语言在应用程序中一般有两种做法:一.程序中提供给用户自己选择的机会: NSArray *languages = [NSLocale preferredLanguages]; NSString *cu ...
- XCODE 4.5 IOS多语言设置 及NSLocalizedString和NSLocalizedStringFromTable的用法。
前 些天升级到Xcode4.5,现在正在用Xcode4.5+IOS6开发项目,当使用国际化时,遇到了一点问题,之前版本Xcode上新建 Localizable.strings后,添加语言的“+”号不见 ...
- iOS 国际化多语言设置 xcode7
iOS 国际化多语言设置 方式一: 1. 在storyboard中创建好UI,然后在 project 里面 Localizables 栏目里面,添加你需要的语言:默认是Englist; 比如这里我添 ...
- 【转】iOS多语言本地化(国际化)设置
原文网址:http://www.jianshu.com/p/2b7743ae9c90 讨论的iOS应用中的多语言设置,Ok 一般是两种情况: 1.根据当前设备语言自动切换显示 2.在应用中可进行语言设 ...
- iOS应用的语言设置
首先需要明确两个名词的区别:“当前手机的系统语言”.“应用内部的语言设置” 要解决的问题的情景: 在iOS应用中,有时候会调用系统的一些UI控件,例如: 1.在UIWebView中长按会弹出系统的上下 ...
- iOS开发--应用设置及用户默认设置【1、bundle的运用】
在iphone里面,应用都会在“设置”里面有个专属的应用设置,选择该菜单界面,用户便可以在其中输入和更改各种选项,协助用户更便捷设置个人喜好与习惯. 在这一节中,希望能通过对捆绑包(bu ...
- iOS开发--应用设置及用户默认设置——转载
[链接]iOS开发--应用设置及用户默认设置[1.bundlehttp://www.jianshu.com/p/6f2913f6b218 在iphone里面,应用都会在“设置”里面有个专属的应用设置, ...
- iOS多语言备选机制
近期伊书突然接到一些外国用户的投诉,说伊书界面变成了中文,但他们系统语言不是中文,是法文俄文日文等,伊书只支持中文跟英文,在不支持系统所用语言的时候,理应会自动选用英文,不知为什么会选成了中文,经过艰 ...
- iOS 多语言的实现(本地化和国际化)
配置需要国际化的语言 配置需要国际化的语言,这也是国际化之前的准备工作,无论我们是国际化App名称.代码中的字符串.图片.还是storyboard和xib,都需要进行这一步的准备工作(一个项目中需要且 ...
随机推荐
- 前端之body标签中相关标签(一)
一 字体标签 字体标签包含:h1~h6.<font>.<u>.<b>.<strong><em>.<sup>.<sub& ...
- JS学习-基础运动
多物体运动 多个物体用同一个函数时,函数里定义的定时器应该要每个物体对应一个定时器名称,不然会导致未完成运动就被关闭了,因为定时器名称一样,而开启定时器前会清除一下. obj.timer 多值同时运动 ...
- Windows API编程----枚举系统进程
1.该函数可以检索系统中的每个进程的标识符(进程ID) BOOL WINAPI EnumProcesses( _Out_ DWORD *pProcessIds, _In_ DWORD cb, _Ou ...
- Glide实现查看图片和保存图片到手机
两种方式, 推荐方式一 方式一 downloadOnly 创建一个 ImageActivity public class ImageActivity extends AppCompatActivity ...
- 21.拉取&删除远程分支
拉取 当 git fetch 命令从服务器上抓取本地没有的数据时,它并不会修改工作目录中的内容. 它只会获取数据然后让你自己合并. 然而,有一个命令叫作 git pull 在大多数情况下它的含义是一个 ...
- centOS 7 简单设置(虚拟机)
1.修改主机名 hostnamectl set-hostname 2.ssh连接慢的问题解决 vim /etc/ssh/sshd_config UseDNS=no GSSAPIAuthenticati ...
- 安装skype for business server组件 报错“未满足先决条件”和安装KB2982006补丁提示“此更新不适用于你的计算机”
安装skype for business server组件 报错“未满足先决条件” 上网经查询发现是没有安装KB2982006-x64 更新补丁 去官网上找这个补丁,发现这个补丁要热更新啥的,还要写邮 ...
- iptables:no config file
防火墙规则默认都是在/etc/sysconfig/iptables这个文件中的 出现这个问题,是因为在/etc/sysconfig/目录下没有找到iptables这个文件 可以使用service ip ...
- linux系统开机突然黑屏,只有光标
以前系统都是好好的,今天开机黑屏了,只有一个光标可以看见其他东西都看不见了. 经过检查发现是磁盘满了,将不用的文件删除之后可以正常开机了.特此记录一下!!! 有人问黑屏了怎么删文件? 我采用的方法是W ...
- 三、基于任务的异步模式(TAP),推荐使用
一.引言 在上两个专题中我为大家介绍.NET 1.0中的APM和.NET 2.0中的EAP,在使用前面两种模式进行异步编程的时候,大家多多少少肯定会感觉到实现起来比较麻烦, 首先我个人觉得,当使用AP ...