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,都需要进行这一步的准备工作(一个项目中需要且 ...
随机推荐
- Linux-学习笔记(PHP向)<一>
Linux常用命令 使用PHP服务器端脚本编程语言进行网站开发,需要在lamp环境下进行,Linux作为”四剑客”之一是有必要了解熟悉的,而Linux系统并不像windows操作系统那样,以图形化的界 ...
- JSTL数据格式化
日期表示 <fmt:formatDate value="${DATE1}" pattern="yyyy-MM-dd hh:mm:ss" type=&quo ...
- css3阴影
<!DOCTYPE html> <html> <head> <style> div { margin-top:100px; margin-left:10 ...
- C++基础--回调的应用
一.类成员函数的回调 1. 类成员函数的回调,函数的调用必须通过类来调用: CallBack.h #pragma once class CallBack { public: CallBack(); ~ ...
- UNIX/Linux系统管理技术手册(2)----bash脚本编程
1. 一个简单的例子: $ vim readname.sh #file:readname.sh#!/bin/bash echo -n "Enter your name: " rea ...
- C语言数组指针(指向数组的指针)
注意:数组指针的定义,与指针数组的区别 转载:http://c.biancheng.net/cpp/biancheng/view/162.html 指向多维数组元素的指针变量 ① 指向数组元素的指针变 ...
- Sql Server中利用ISNULL方法判断数字并预设值
1.ISNULL方法有两个参数,ISNULL(a,b),表达式含义为如果a为NULL,则设置该字段内容为b. 例如 table tab id sum 1 1 2 null select t.id,is ...
- SVNKit学习——使用低级别的API(ISVNEditor接口)直接操作Repository的目录和文件(五)
本文是参考官方文档的实现,官方wiki:https://wiki.svnkit.com/Committing_To_A_Repository 本文核心使用的是ISVNEditor这个接口直接对Re ...
- Maven库下载很慢解决办法,利用中央仓库
以下四个都是可用的: http://mirrors.ibiblio.org/maven2/ http://mvnrepository.com/ http://repository.jboss.org/ ...
- java word转pdf 工具类
package com.elitel.hljhr.comm.web.main.controller; import java.io.File; import java.io.FileOutputStr ...