iOS 国际化多语言设置 xcode7
iOS 国际化多语言设置
方式一:
1. 在storyboard中创建好UI,然后在 project 里面 Localizables 栏目里面,添加你需要的语言;默认是Englist; 比如这里我添加了 简体中文
2.添加完之后,原来的Main.storyboard 就会多了一个国际化的语言配置文件
3. 点击 Main.strings 文件,就可以在这里配置中文的语言;里面自动添加现在storyboard上面创建好的UI控件的代码,直接在这里修改即可;此时sotyboard上设计的理解为 英文状态;这里是运行时的中文状态;
/* Class = "UILabel"; text = "LABEL A"; ObjectID = "I0M-DM-Gzt"; */
"I0M-DM-Gzt.text" = "标题 A"; /* Class = "UIButton"; normalTitle = "BUTTON B"; ObjectID = "XJX-jB-S2s"; */
"XJX-jB-S2s.normalTitle" = "按钮 B"; "cRs-Hi-BTS.text" = "标题 C";
4. 那么以后我们在storyboard上另外添加新的ui控件时,这里的文件不会自动更新怎么办呢;
这时我们就要自己找到新添加控件的 object-id; 就是上面 cRs-Hi-BTS 这样的东西,标识id,然后手动添加上述类似的代码;
如何回去已经添加新控件的 object-id; 在storybrad上选中相应的控件,然后右边属性栏里面找 object-id
方式二:手动创建 Localizable.strings文件
新建文件,创建 Localizable.strings 文件; 先选中一个 English 或是 添加的中文;最后 点击 文件;在右边属性栏的 反正是勾选你需要国际化的语言;
我这里就是 中文 和英文;选中之后,同样 Localizable.strings 就会展开变成国际化开发的两个文件
分别在这两个文件 里面以 key = value 写;
english 里面: TName = "Name";
Simplified 里面:TName = "名字";
在代码中使用的时候:
self.titleLabel.text = NSLocalizedString(@"TName", nil);
即可
三:另外关于 app 显示名称的国际化处理
和上面差不多;只需要手动创建一个 InfoPlist.strings 文件;同样选中 需要国际化的语言;
在 English文件和 中文文件 里面;
写上对应的
CFBundleDisplayName = "ABS-EN";
CFBundleDisplayName = "ABS-CN";
即可;
四:另外关于图片的国际化
可以准备多套图片,然后在 strings 文件 里面,处理名称即可
参考:http://www.cocoachina.com/ios/20150114/10911.html
iOS 国际化多语言设置 xcode7的更多相关文章
- iOS国际化多语言设置
一.创建工程.添加语言
- Unity 国际化 多语言设置
很多游戏中都有语言设置选项,NGUI插件中自带了国际化脚本,但是灵活性较低,而且目前项目是UGUI,以下是修改后,以便记录. Localization和NGUI中用法一样,挂在在一个不销毁的游戏物体上 ...
- iOS应用的语言设置
首先需要明确两个名词的区别:“当前手机的系统语言”.“应用内部的语言设置” 要解决的问题的情景: 在iOS应用中,有时候会调用系统的一些UI控件,例如: 1.在UIWebView中长按会弹出系统的上下 ...
- yii2 api接口 实现国际化多语言设置
1) 在 /config/main.php 下添加如下代码: 'components' => [ 'language' => 'zh-CN', 'i18n' => [ 'transl ...
- 【Swift 3.0】iOS 国际化切换语言
有的 App 可能有切换语言的选项,结合系统自动切换最简单的办法: fileprivate var localizedBundle: Bundle = { return Bundle(path: Bu ...
- iOS开发——iOS国际化 APP内语言切换
最近一个一直在迭代的老项目收到一份新的开发需求,项目需要做国际化适配,简体中文+英文.由于项目中采用了storyboard和纯代码两种布局方式,所以国际化也要同时实现.上网查了些资料,实现了更改系统语 ...
- iOS多语言设置
最近公司做的项目需要向国外推广,因此app需要添加相应的语言设置,为此整理记录下多语言设置的过程.如有不对的地方,欢迎各位大神指正.下面就详细介绍下设置的过程: 1.基本设置 第一步:首先在 项目工程 ...
- iOS 学习笔记六 【APP中的文字和APP名字的国际化多语言处理】
今天为新手解决下APP中的文字和APP名字的国际化多语言处理, 不多说了,直接上步骤: 1.打开你的项目,单机project名字,选中project,直接看图吧: 2.创建Localizable.st ...
- 详述iOS国际化
在真正将国际化实践前,只知道通过NSLocalizedString方法将相应语言的字符串加载进来即可.但最近公司项目的新需求增加英文版本,并支持应用内无死角切换~,这才跳过各种坑实现了应用内切换语言, ...
随机推荐
- Thread的六种状态
线程共有6种状态:在某一时刻只能是这6种状态之一.这些状态由Thread.State这个枚举类型表示,并且可以通过getState()方法获得当前具体的状态类型. 包括(new,runnable,bl ...
- 无边框窗体、用户控件、Timer控件
一.无边框窗体1 最大化.最小化以及关闭按钮制作实际上就是更换点击前.指向时.点击时的图片 (1)将图片放在该文件夹的Debug中,获取图片的路径Application.StartupPath + & ...
- out 传值
public void Out(out int a, out int b) {//out相当于return返回值 //可以返回多个值 //拿过来变量名的时候,里面默认为空值 a=1; b=2; } s ...
- java7-files读写文件
package com.du20150311Files; import java.io.BufferedReader; import java.io.BufferedWriter; import ja ...
- Java动态代理 cglib
代理模式:为某些对象提供代理以实现对这个对象的访问. 对一个对象进行访问控制的原因是为了只有在我们确实需要这个对象时才对它进行创建和初始化. 一般包括以下组件: 被代理者接口:提供被代理者的访问途径. ...
- Mysql错误问题记录
① Incorrect string value: '\xE6\x94\xBE\xE5\xA4\xA7...' for column 'name' at row 1 Query…… 原因:编码不匹配. ...
- 如何查看PowerShell版本
Click Start, click All Programs, click Accessories, click Windows PowerShell, and then click Windows ...
- Serialize----序列化django对象
django的序列化框架提供了一个把django对象转换成其他格式的机制,通常这些其他的格式都是基于文本的并且用于通过一个管道发送django对象,但一个序列器是可能处理任何一个格式的(基于文本或者不 ...
- MyBatis 内连接association 左外连接collection
前提条件: 学生表 (多 子表) 年级表(一 主表) 1,第一种情况:先查子表所有 student.sql.xml文件如何配 由于有多表连接,无法把查询结果直接封装成一个实体对象--------& ...
- UML分析与设计
考点: 掌握面向对象的分析与设计 掌握UML描述方法 用例图.类图.序列图.状态转换图 类图:类的属性.方法的识别:类间的各种关系 类图:实体.联系 各种关系图例: 泛化:取公共属性 关联分为聚合.组 ...