`
chenjohney
  • 浏览: 40862 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

iOS 本地化应用程序汇总

阅读更多

      最近要做一个应用要实现本地化,因为使用的是xcode4,应用程序本地化的问题跟以前的版本还是有些不同,在网上找了些资料对于xcode4以上的版本资料还是相对较少,有些最后要通过手动创建文件,这样操作实在是太麻烦,所以经过一个下午的研究,总算是成功了一点点,还是庆幸一下。先给出结果。

英语:                                                                    中文:



             

                      

具体实现如下:

静态本地化 加载的文件,如xib文件,图像文件,还有实现应用程序名本地化

动态本地化: 显示的字符串本地化

 

一。先做准备:设置程序本地化

在xcode点击程序图标:点击Info选项->Localizationn,点击“+”,选择要添加的语言,简体中文选择Chinese(zh-Hans)

你会在你工程目录下发现多了个文件夹,“zh-Hans.lproj",x-code使用.lproj作为其本地化文件夹的扩展名。


 

二。设置xib文件本地化, 图像本地化的方法是一样道理的,可以根据用户的显示语言加载不同的xib文件

操作:点击xib文件,在IB窗口中选择选项选择“File Inspecter",也就是第一个选项,选择“Localization->"+"选择添加的语言,

效果如下,原来的xib文件就会出现三角形,其下有两个文件,因为我的为storyboard,但效果是一样的。就可以实现将其本地化了,非常简单吧

 


 

三。设置应用程序名本地化,

      设置应用程序名存储在应用程序的Info.plist文件中,我们例子实际上为Localize-Info.plist,选择文件,并不需要对文件进行本地化,而是使"Info.strings"本地化就可以了,在Localize.Info.plist,空白处右键,选择Show Raw Keys/Values,就会看到应用程序名实际为CFBundleDisplayName,我们只需要在对应的 Info.plist中添加以下代码就可以了

英文版:

CFBundleDisplayName = "Localization";

 中文版:

CFBundleDisplayName = "本地化";



 效果图:


 

 

四、加载的字符串本地化,

      原理:在代码中将加入的字符串加入NSLocalizeString宏中,启动程序时,系统将根据语言加载相应的文件得到其对应的字符串文件,这个字符串可以通过系统将NSLocalizedString中的宏生成名为“Localizable.strings”的文件,当然你可以自己去创建这个文件,然后手动是添加对应的字符串。,

    labelName.text = NSLocalizedString(@"Name", @"The name is ");
    labelPassword.text  = NSLocalizedString(@"Password:",@"The password is");

 NSlocalizeString 第一个参数是内容,第二个参数将会转化为字符串文件里的注释。

转化方法如下 :先关闭项目,打开终端,进入到项目的目录,输入genStrings 文件名.m就可以将该文件中的宏转化为相应的字符串文件,


效果如下:会看到生成"Localizable.strings",

打开文件,就可以交给翻译人员去翻译了


 

 

最后附上例子,这是必须的

总算把截图搞上去了,分享一下。

  • 大小: 13.7 KB
  • 大小: 12.8 KB
  • 大小: 93.2 KB
  • 大小: 80.1 KB
  • 大小: 176.4 KB
  • 大小: 43.6 KB
  • 大小: 43.6 KB
  • 大小: 43.6 KB
  • 大小: 109.3 KB
  • 大小: 78.5 KB
分享到:
评论
3 楼 白色蜻蜓 2013-06-03  
2 楼 caoyu_1106 2012-10-08  
谢谢   试试
1 楼 tackwin 2012-08-11  
非常感谢   非常实用的例子  谢谢

相关推荐

    iOS开发技巧大汇总

    此外,还需要创建本地化的字符串文件来存储不同语言下的文本内容。 #### 十一、使程序支持iTunes这样的设备 如果您希望用户能够通过iTunes或其他工具向应用程序的Documents目录中拖放文件,您需要确保您的应用程序...

    iOS中指纹识别常见问题汇总

    - **敏感信息保护**:指纹数据不会被应用程序访问,而是由系统安全地处理,因此不要试图存储或获取用户的指纹信息。 - **错误处理**:当用户连续多次验证失败导致设备锁定时,应该提供合适的反馈,并允许用户通过...

    iOS开发工具类汇总,包含各种常用功能,用简单的宏定义使iOS开发简单、快捷、高效.zip

    这个压缩包“iOS开发工具类汇总”显然提供了一组实用的宏定义,旨在简化iOS应用程序的开发过程,提高开发效率。其中包含的“CoreEditText-master”可能是一个专门针对文本编辑的工具库。 `CoreEditText-master`很...

    Beginning iOS 5 Application Development

    ### 开发iOS 5应用程序入门知识点汇总 #### 一、iOS 5开发概述与环境搭建 - **目标读者**:本书面向的是希望开始学习iOS 5应用开发的新手程序员。 - **开发工具**:主要使用Xcode进行开发,它是苹果官方提供的集成...

    Delphi 学习汇总与进阶使用

    通过字符串表和资源文件,可以轻松实现应用程序的国际化和本地化。 9. **设计模式**:理解并应用设计模式,如工厂模式,可以帮助编写更加灵活、可维护的代码。在Delphi中,可以使用“工厂”模式来创建对象实例,...

    timy-messenger:Timy-开源的移动应用程序,供团体进行交流和组织。 内置颤振

    英语和德语本地化。 活动的RSVP。 项目结构 这是一个针对Android和iOS的Flutter移动应用。 Flutter应用程序的代码包含在lib ,不同的本机应用程序包含在android和ios 。 额外的项目资产包含在assets和fonts 。 ...

    Professional iPhone and iPad Application Development

    ### 专业iPhone与iPad应用程序开发知识点汇总 #### 一、导言 本书《专业iPhone与iPad应用程序开发》是一本深入探讨iOS平台应用开发的专业书籍,旨在帮助开发者掌握iOS应用程序开发的核心技术和最佳实践。作者Gene ...

    记账APP小账单源码

    【记账APP小账单源码】是一款个人业余时间独立开发的应用程序,旨在帮助用户进行日常财务管理,已在Appstore上架。这个项目的核心是提供一个简单易用的记账工具,让用户可以方便地记录和追踪自己的收支情况,实现...

    DevExpress12.0

    9. **国际化和本地化**:DevExpress控件支持多语言和区域设置,方便全球化的应用开发。 10. **持续更新和支持**:DevExpress公司会定期发布更新,修复已知问题,增加新特性,并提供全面的技术支持和文档资源。 ...

    FireMonkey GridPack for delphi XE3

    6. **多语言支持**:GridPack支持国际化和本地化,方便创建多语言应用程序。 7. **触摸友好**:针对移动设备的触摸操作进行了优化,使得在触屏设备上的交互更加自然。 8. **皮肤和主题**:提供多种预设皮肤和主题...

    《iPhone开发基础教程》

    - **主要内容**:本教程旨在为初学者提供一套全面的iPhone应用程序开发入门指南。 #### 二、基础知识准备 - **Objective-C语言**:Objective-C是iOS开发的主要编程语言之一,教程将详细介绍其语法、面向对象编程...

    keg-hub:桶和相关存储库的Mono Repo

    应用程序初始化代码处理所有锅炉板以进行设置 与多个代码打包器兼容 Webpack(Web) 地铁(本地) 汇总(组件) 被水龙头消耗 点击将keg-core安装为node_module 基本文件以增加Tap的代码 范本 全局样式(仅网络...

    Countly移动分析应用-其他

    它从移动,桌面,Web收集数据包括Apple Watch,TvOS和其他互联网连接设备的应用程序,并将这些信息可视化以分析应用程序使用情况和最终用户行为。 借助于Javascript SDK,Countly是一个Web分析平台,其功能与移动SDK...

    React Native 基础学习笔记.rar

    React Native 是一个由Facebook开发的开源框架,它允许开发者使用JavaScript和React库来构建原生移动应用程序。这个“React Native基础学习笔记”很可能是对这一跨平台开发技术的详细讲解和实践经验的汇总。React ...

    Flutter实战1

    - 跨平台框架允许开发者使用单一代码库为多个平台(如iOS和Android)构建应用程序。 - 这种方式能够显著减少开发时间和成本,并且更容易维护。 #### 二、Flutter简介 1. **Flutter简介**: - Flutter是由Google...

    近乎v5.0源码 Almostv50.rar

    v5.0对SQL注入、跨站脚本攻击(XSS)、跨站请求伪造(CSRF)等主要威胁进行了系统的处理,实现了灵活、细致的权限管理功能,充分构筑了应用程序级安全。 8、易于扩展,便于开发 v5.0站点导航可自定义、可快速增加...

Global site tag (gtag.js) - Google Analytics