Storyboard创建APP 的国际化操作

最近在看《X-code江湖录》这本书,看到了APP 国际化这点,刚刚也简单的实践了一下。现在和大家分享分享!

写的这个简单的Demo全都是用 Storyboard 写的,用 Storyboard 做项目孩纸们也知道我们这个最重要的就是 mian.Storyboard 这个文件了。UI创建也全是在这个文件里面,那这个文件国际化了,你创建的导航,标签等等也就上面的文字也就相应的国际化了。首先给你的项目添加 你需要的语言,我这里添加的是日语,当然不是我喜欢日语,我是想看看岛国剽窃的大中华的多少文字!!(其实,纯属无聊,哈哈)。。。

特别强调!!

****  大家特别注意一下,我选中这个target 之后,选的不是 Target 下面的 StoryboardTest 这个项目。选中的是  Project 下面的 Storyboard !!选错了就找到的不是相应的 info  和 Build Setting 了。。

选中之后就可以点击  info  去寻找 Localizations 这一项,在里面添加你需要的相应的国际化语言,比如,宝宝添加的 “日语”!

好了,添加完了,你就可以在你项目的 mian.Storyboard 这个文件夹下面看到下面这些文件!    

点击(Japanese)文件进去,哎呀··自己用  Storyboard 创建的那些UI 上面的标题 还有其他文字都帮我翻译好了,可惜,翻译的是什么鬼!!哈哈哈

这里再说一点,文件内容大家可以看到有注释,需要的内容是以  Key —— Value 的形式存在的!

这里面的红圈圈起来的两个地方是我自己改的,一个是 “下一页” ,一个是 “久久为伴”。 你改完之后 把你的模拟机的语言环境改成日语的去看看,没问题了!

大家对比一下在简体中文环境下和日语环境下的不同吧。

          

还有一种情况, 比如在项目中我们的一些文字,比如你 Label 上的文字,或者你 Button 的名字再或者里面的一段文字说明什么的,你是写在自己代码里的,那怎么办呢,下面来说说。 你的去创建一个 .String 文件了,Command + N 你懂得! Resource ——> Strings File

*****  这里强调一下,这个文件的命名吧。你就用 “Localizable” 这个名字吧,原因我在书中又看到,你在后面的代码中要用到 NSLocalizedString 这个方法,这个方法默认就是前往 本地化项目内部的应用程序包中找名为 “Localizable.Strings” 的文件,不然就要本地化失败了!

上面重要的地方我也都做了标注了,找到 Localization 勾选你需要的 国际化语言,然后在左边的  “Localizable.Strings” 文件下面就多出了 相应的语言文件!

在这里相应的语言文件下面,就可以添加你需要的字符串了,在日语文件里面我添加了这样一句,这里添加的形式是以  Key -  Value 的形式添加的!前面的是键,后面的是值了!

"GOOD_morning" = "おはようございます";

在简体中文的文件下面我添加的是

"GOOD_morning" = "早上好";

然后就是一段在调用的一段代码调用了,就写了一个 Label 。

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view. // 国际化
NSString * _morning = NSLocalizedString(@"GOOD_morning", nil);
UILabel * label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 100)];
label.text = _morning;
label.textColor=[UIColor redColor];
[self.view addSubview:label]; }

最后对比看看效果,和前面的一样,切换你自己的模拟机的语言环境!

            

上面就是一些简单的国际化的操作,其实还有 图片的国际化处理,比较的少见,但知道有这个处理,有需要的就可以做相应的处理了。

参考: http://www.cocoachina.com/industry/20140526/8554.html (Cocoachina 的国际化教程)

iOS Storyboard创建APP 的国际化操作的更多相关文章

  1. iOS基础框架的搭建/国际化操作

    1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...

  2. ios开发者创建app应用开发授权文件 实战方法:

    收到apple邮件成为合法的开发者后,进入https://developer.apple.com/account/ios/profile/profileList.action页面 总的有4步操作: 1 ...

  3. iOS开发创建UI的耗时操作处理

    项目中有网络请求.读写操作等一系列耗时操作时,为了避免阻塞主线程,我们会把这些耗时操作放到子线程中去处理,当处理完成后,再回到主线程更新UI,这样就不会阻塞主线程.但是创建UI的时候一般都是在主线程中 ...

  4. iOS基础框架的搭建 / 及国际化操作

    1.基础框架的搭建 1.1 pod引入常用的第三方类库 1.2 创建基础文件夹结构/目录结构 Resource———存放声音/图片/xib/storyboard 等资源文件 Define——宏定义, ...

  5. iOS: 设置App的国际化和本地化

    原文链接:http://www.cocoachina.com/appstore/20160310/15632.html 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的 ...

  6. 【转】iOS 设置APP的名称(浅述APP版本国际化与本地化)

    原文网址:http://www.jianshu.com/p/a3a70f0398c4 前言 App的名字设置方式有很多种,如果在App打包上线时不做修改,最终App的名字就是Xcode在建立工程时的名 ...

  7. iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期

    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...

  8. IOS开发创建开发证书及发布App应用(一)——流程说明

    之前在自己做的博客网站上面发布了这个系列的文章,当时还是不错的,帮助了很多跟我一样的新手朋友,不过由于服务器出现问题,丢失了一年了,现在终于找到了,所以发到博客园给大家共享一下,也是为我自己做个参考 ...

  9. ios 推送app badge 数字累加操作

    ios 推送app badge 数字累加操作: 一:此数字需要后台配合: 二:大致原理: 后台发推送时,第一次 传badge 为1,往后,依次累加操作即可: 当用户打开app时,app向后台发送请求, ...

随机推荐

  1. memcache细节解析

    转自:原链接 Memcached内存管理采取预分配.分组管理的方式,分组管理就是划分slab class,按照chunk的大小slab被分为很多种类.   slab Slab是一个内存块,它是memc ...

  2. LPC1768的SPI通讯

    SPI是一种全双工串行接口,可处理多个连接到指定总线上的主机和从机.在数据传输过程中总线上只能有一个主机和一个从机通信.在数据传输中,主机总是会向从机发送一帧8到16个位的数据,而从机也总会向主机发送 ...

  3. 将ADS1.2的工程迁移到KEIL上-基于2440

    裸机程序应该是一个很好的选择 1. 不拷贝启动代码,因为我们用自己的启动代码 2.       建立工程目录分级,建立完成后如下所示 拷贝相应代码到对应目录中 Option中拷贝 Core中拷贝 建立 ...

  4. WebView点击图片看大图效果

    在webViewDelegate里面添加如下代码: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 - (voi ...

  5. JQuery EasyUI DataGrid 获取属性值

    在Jquery EasyUI中返回操作的时候,根据当前页返回到数据选取页: var grid = $('#datagrid'); var options = grid.datagrid('getPag ...

  6. Grunt构建工具插件篇——之less工具2

    Grunt任务分为两部分,一部分是任务,即Grunt要执行的代码,找到对应功能的插件就成.所以等会要下载grunt-contrib- less包,这个插件便是把less文件编译成能直接使用的css.另 ...

  7. 一个完整的PHP类包含的七种语法说明

    类中的七种语法说明 -属性 -静态属性 -方法 -静态方法 -类常量 -构造函数 -析构函数 <?php class Student { // 类里的属性.方法和函数的访问权限有 (函数和方法是 ...

  8. mysql 常用技巧

    1.正则使用 比 LIKE 会牺牲很多的系统资源 尽量不要用 正则的语法和JS PHP 差不多 select * from t1 where email REGEXP "@163[,.]co ...

  9. js模块化开发——require.js的用法

    这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战. 我采用的是一个非常流行的库require.js. 一.为什么要用require.js? 最早的 ...

  10. 滚轮事件的防冒泡、阻止默认行为的代码(效果是:只让当前div滚动,连当前文档都不滚动的效果)

    //用firefox变量表示火狐代理var firefox = navigator.userAgent.indexOf('Firefox') != -1;function MouseWheel(e){ ...