开发项目的时候不用管显示语言的问题,在代码中任何地方要显示文字都这样调用:
NSLocalizedString(@"aaa", @"bbb");
这里aaa相当于关键字,它用于以后从文件中取出相应语言对应该的文字。bbb相当于注释,翻译人员可以根据bbb的内容来翻译aaa,这里的aaa与显示的内容可以一点关系也没有,只要程序员自己能看懂就行。比如,一个页面用于显示联系人列表,这里调用可以这样写。
NSLocalizedString(@"shit_or_anything_you_want", @"联系人列表标题");

项目写好后,取出全部的文字内容送给翻译去翻译。这里取出所有的文字列表很简单。使用Mac的genstrings命令。方法如下:
1. 打开控制台,切换到项目所在目录。
2. 输入命令:genstrings ./Classes/*.m。
3. 这时在项目目录中会有一个Localizable.strings文件。其中内容如下:
/* 联系人列表标题 */
"shit_or_anything_you_want" = "shit_or_anything_you_want";
4. 翻译只需将等号右边改好就行了。这里如果是英文,修改后如下:
/* 联系人列表标题 */
"shit_or_anything_you_want" = "Buddies";
如果是法文,翻译后如下:
/* 联系人列表标题 */
"shit_or_anything_you_want" = "Copains";

语言文件翻译好以后,将英语文件拖入项目中,再右击->Get Info,选择Make Localization。XCode会自动拷贝文件到English.lproj目录下。再添加其它语言。

在编译程序后,运行在iPhone上,程序会根据当前系统设置的语言来自动选择相应的语言包。

注意:genstrings产生的文件拖入XCode中可能是乱码,这时只要在XCode中右击文件->Get Info->General->File Encoding下选择UTF-16即可解决。

Cocoa Touch国际化相关推荐

  1. 《从零开始学Swift》学习笔记(Day 65)——Cocoa Touch设计模式及应用之选择器

    原创文章,欢迎转载.转载请注明:关东升的博客 实现目标与动作关联使用UIControl类addTarget(_:action:forControlEvents:)方法,示例代码如下: button.a ...

  2. ios中静态库的创建和使用、制作通用静态库(Cocoa Touch Static Library)

    创建静态库可能出于以下几个理由: 1.你想将工具类代码或者第三方插件快捷的分享给其他人而无需拷贝大量文件. 2.你想让一些通用代码处于自己的掌控之下,以便于修复和升级. 3.你想将库共享给其他人,但不 ...

  3. Cocoa Touch 层

    Cocoa Touch层包含创建 iOS应用程序所需的关键框架.上至实现应用程序可视界面,下至与高级系统服务交互,都需要该层技术提供底层基础.在开发应用程序的时候,请尽可能不要使用更底层的框架,尽可能 ...

  4. WWDC2017 笔记 - Cocoa Touch 中的新特性

    这篇文章是 What's New in Cocoa Touch / UIKit Session 201 的一些整理.[基于OC] 转自我的 Blog: Danny's Dream Drag Drop ...

  5. Cocoa Touch事件处理流程--响应者链

    一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Moti ...

  6. IOS创建静态库Cocoa Touch Static Library

    转自:http://blog.csdn.net/ahopedog/article/details/7873385 为了系统的安全,ios只允许使用静态库(静态连编到程序中),不能用动态库(程序运行时才 ...

  7. Cocoa Touch Layer

    Cocoa Touch Layer Cocoa Touch层包含了关键的库来构建iOS应用.这些库定义了应用的表现.他们提供应用的基本空间和提供关键技术,如多任务,以接触为基础的输入,消息推送,和许多 ...

  8. NeXT,NEXTSTEP,OPENSTEP,Cocoa,Cocoa Touch,GNUstep,xcode

    NeXT电脑公司(随后更名为NeXT软件公司)是一间设立在美国加利福尼亚州红木城的电脑公司,专门制造和开发高等教育和商业市场上的工作站电脑.NeXT是由苹果公司(当时称为苹果电脑)的创办人史蒂夫·乔布 ...

  9. iOS 4层结构(iOS技术概要)—— Cocoa Touch 层(一)

            苹果公司的iOS平台强力推动了iOS开发,引来了不少人从事iOS开发,也成就了一批一批的开发者,如果你是新手,请把本文作为iOS技术一览,便于你对iOS开发有个粗略的认识:如果你已经是 ...

最新文章

  1. opencv2生成图像的梯度图
  2. Linux设备模型(总结)
  3. mybatis初学习
  4. 美团外卖回应佣金争议;苹果回应戴口罩解锁 iPhone;新 Edge 浏览器明年将不再支持 Win7 | 极客头条...
  5. 编程基本功训练:流程图画法及练�
  6. 《Java开发实战经典》笔记
  7. 勒索病毒:解密工具整理
  8. 银行软件测试测试用例,银行测试用例设计经验总结,应该怎样去设计测试用例?...
  9. VSCrawler 爬取美女图片
  10. win10安装串口驱动pl2303 ch340 cp2102时安装不上的一些解决办法
  11. MQTT Essentials(Basics(1-5) And Features(6-10))
  12. TestNG跳过某个测试方法
  13. C++---常见秋招、春招问题汇总(持续更新)
  14. MATLAB-视频的前景目标提取
  15. C/C++ 语言中.h文件和.c文件详细解析 引用 .c和.h文件的区别
  16. OSChina 周四乱弹 ——老司机的幼年日常
  17. 数组指针(用几个例子来看看用法)
  18. 落谷P3712少女与战车(疑似CSDN首发)
  19. 一文通关苦涩难懂的Java泛型
  20. 运维人必备:日志分析工具日志易之银行业解决方案

热门文章

  1. WCF的事务(5篇)
  2. 字符文本中的字符太多
  3. SugarCRM 去掉 模块标题左边的 问号 和 帮助
  4. QEvent的accept()和ignore()函数功能
  5. Qt-Focus事件处理,重写qpushbutton实现背景切换鼠标样式及eventFilter的用法
  6. c# 通过鼠标点击绘制多边形
  7. Log4j2解决方案与复现略图
  8. 如何查找历史线程阻塞原因_学习 Web Worker(js中的“多线程”)
  9. Android开发之将Android SVG 转 VectorDrawable矢量图的方法
  10. linux fpga通信,基于Linux的FPGA通信技术研究与实现