本地化

1. 本地化(国际化)

为解决同一app在设备的不同语言下显示对应语言的内容。

实现本地化可分为“可视化”,“纯代码”两种方式。

可视化方式:

    > 点击工程名,在Info(注意是Project下,而不是Targets下) 下,在Localizations 栏目下,添加语言

> 点击xib或storyboard ,在最右侧中选择File Inspector(第一个选项卡),在Localization 栏目下,选择语言,会发现原来的xib,storyboard 文件会自动创建对应语言下的文件

> 在不同语言下的xib,storyboard的文件中,设置视图的文字。

纯代码方式

> 在工程目录下添加 Localizable.strings 文件,注意名字必须是Localizable,否则无法实现本地化

> 将此文件设置本地化,选中文件,在File Inspector ->Localization 下添加语言

> 在此文件不同语言版本中分别添加如下格式的内容:"a1"="abc"; 注意要带着分号,否则解析错误 ,并且名字a1在两个文件中要一样。

> 在代码里 lb.text = NSLocalizedString(@"a1", nil)

实际开发过程中,两种方式配合使用,因为不同语言因为文字的不同,所占据的空间不同而导致控件的大小会有差异,有时需要在界面文件调整。

2. 应用程序名字本地化

> 在Info.plist中添加 Bundle display name

> 在Info.plist文件空白处右键 选择 Show Raw Keys/Values (原生底层键值)

> 将CFBundleDisplayName(对应 Bundle display name ) 拷贝

> 新建 InfoPlist.strings文件,[注意名字,否则也无法本地化],并将此文件本地化,选中文件,在File Inspector ->Localization 下添加语言

> 在此文件不同语言版本中分别添加如下格式的内容 :CFBundleDisplayName ="myapp";

3. 应用程序动态获取的数据本地化,因为这些内容一般是由网络访问获取,不同语言的内容由服务器提供,app只需要提供当前设备的语言给服务器,由服务器返回给定语言的内容。

> 获取设备的语言

[NSLocale preferredLanguages]  // 语言偏好列表,第一个就是设备当前的语言

时间: 2024-08-10 14:54:22

本地化的相关文章

13.如何自学Struts2之Struts2本地化[视频]

13.如何自学Struts2之Struts2本地化[视频] 之前写了一篇"打算做一个视频教程探讨如何自学计算机相关的技术",优酷上传不了,只好传到百度云上: http://pan.baidu.com/s/1kTDsa95 这节课讲的过程中碰到了些问题,同时处理问题费了些时间,有问题可以直接回复这篇文章. 碰到问题:不能显示本地化的字符 解决方案:之前在Tomcat8.0的properties文件放在src下是可以的,但是在我本机用Tomcat7.0不知道为什么就不行,只要尝试放在Web

在CLR中本地化正在运行的.NET窗口

前段时间在研究某游戏辅助,老外出品,支持七种语言,可这辅助相关的插件却少有中文,因为作者都是老外,并且他们不愿意添加中文.有一些没有加密的插件就被善良的国内用户使用工具软件手工汉化了,但是经过混淆加密的插件就比较困难了,一是需要解密,二是插件数量多更新快,最后弄得只好放弃.有一天,一位用户问我,能不能做一个补丁程序,不去解密也不去修改源程序,只是在窗口显示的时候把文字汉化,他的意思就是hook窗体显示的过程,显然,这是个很不错的想法. 很多年前,曾经流行过一个名叫“南极星”的软件,后来又出了个“

iOS应用本地化

一.简介   * 使用本地化功能,可以轻松地将应用程序翻译成多种语言,甚至可以翻译成同一语言的多种方言 * 如果要添加本地化功能,需要为每种支持的语言创建一个子目录,称为”本地化文件夹”,通常使用.lproj作为拓展名 * 当本地化的应用程序需要载入某一资源时,如图像.属性列表.nib文件,应用程序会检查用户的语言和地区,并查找相匹配的本地化文件夹.如果找到了相应的文件夹,就会载入这个文件夹中的资源 * 为了节约时间我就以李明杰老师的博客上进行修改说明(有点懒,不过程序员不喜欢偷懒怎么能写出好东

DDD开发框架ABP之本地化/多语言支持

本地化(Localization)也就是多语言功能,借此用户能够选择他的母语或熟悉的语言来使用系统,这显然非常有利于软件系统推向国际化.一个应用程序的UI界面至少有一种语言,DDD开发框架ABP就提供了一个弹性的多语言框架,可以简化我们在多语言方面的开发时间.利用ABP完整实现多语言只需要简单地完成三个步骤:建立资源.配置资源以及使用资源. 一.建立资源 本地化的内容主要是文本字符串,ABP提供三种方式存储本地化资源的方式,分别是ASP.NET自带的资源文件.XML文件以及自定义的资源获取方式.

Android本地化存储Cookie(针对HttpClient)

因为最近有人问我怎么保存HttpClient的Cookie, 所以这里写下, 顺便记录总结吧. 当然, 有Android网络编程经历的童鞋一看就懂喇~ 就不多说了, 直接上代码: /** * 本地存储Cookie * @param response */ private void saveCookies(HttpResponse response) { SharedPreferences preferences = getSharedPreferences("cookies", MOD

iOS国际化和genstrings所有子文件夹本地化字符串

在最近的一个繁忙的对外工程.每天加班.没有时间更新博客.简单谈一下知识的国际化. 首先,我们使用串.必须NSLocalizedString(key,comment),所以,我们是不同的Localizable.strings对key指定不同的值,系统会依据当前系统语言.去不同的lproj找不同的字符串.用个图显示吧: 我们应用仅仅支持中文,英文,所以仅仅建了zh-Hans.lproj和en.lproj,然后在Localizable.strings指定了不同的值.举比例如以下: 这样程序就能依据系统

iOS 开发之本地化 国际化

多语言在应用程序中一般有两种做法: 一.程序中提供给用户自己选择的机会:二.根据当前用户当前移动设备的语言自动将我们的app切换对应语言. 第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点: 1.本地化应用程序名称2.本地化字符串3.本地化图片4.本地化其他文件 1.本地化应用程序名称 (1)点击“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标.创建这个文件,命名为“InfoPlist”(一定是这个文

本地化下按首字母分组排序的神器——UILocalizedIndexedCollation

最近在整一个很简单的通讯录相关的项目,通讯录当然就少不了按首字母或者汉字拼音首字母分组排序索引.因为按照我一贯的的做法,都是想要做成更通用的.支持本地化的,所以这就纠结了,世界各地的语言啊我去,我顶多也就认识中文和英语,这就不能用以前的那些比如把汉字转成拼音再排序的方法了,效率不高不说,对其他国家的本地化更是行不通.一个偶然的机会,我才发现SDK里已经提供了一个实现此功能的神器——UILocalizedIndexedCollation. 首先提一下,UILocalizedIndexedColla

Xcode5和6上新建工程如何本地化启动页面

建议阅读本篇文章前先具备iOS本地化的基本知识,Google中搜索“iOS本地化”,有成片的教程~~ 最近有个app需要支持英语.简体中文.繁体中文,由于启动页面上有文字,所以也不得不做下本地化处理.有一定开发经验的开发者都知道,从Xcode5开始,引入了Images.xcassets来管理图标.启动页面以及其它使用的图片等.不得不说,这是个好东西,我们不需要再自己记各种标准尺寸了 但是在Images.xcassets里设置的启动页面怎么本地化呢?在自己摸索加上StackOverFlow后,目前

IOS开发之本地化--字符串表的生产

IOS开发时,本地化需要使用字符串表,mac提供了自动生成工具-genstrings.可以使用genstrings从.m文件生成字符串表. 1.在mac设备上打开终端应用程序. 2.导航到代码目录.实现这一点的最简单的方法是在终端窗口输入cd空格,然后从finder打开程序文件夹,拖拽到终端窗口,一个长路径名就会出现,回车即可.可以通过ls命令查看目录内容确认. 3.通过以下代码生产字符串表: genstrings -o Base.lproj *m -o:指明输出的文件夹 *.m:告诉genst