iOS本地化

本地化与相机中显示英文

一.当你发现相机中显示英文,可以通过它设置 添加一项“Localized resources can be mixed”,值设置为“yes”即可!在InfoPlist文件中

  1. NSLocalizedString(key, comment),在代码中使用NSLocalizedString(key, comment)来读取本地化字符串,key是Localizable.strings文件中等号左边的字符串,comment纯粹是注释

    如:NSString *tip = NSLocalizedString(@"Tip", nil);

    NSString *ok = NSLocalizedString(@"Ok", nil);

    注意:如果你的字符串资源文件名不是Localizable.strings,如mj.strings,那么你就得使用NSLocalizedStringFromTable()来读取本地化字符串:

    1. NSLocalizedStringFromTable(@"Tip", @"mj", nil);

    2.如果使用NSLocalizedStringFromTable(key, tbl, comment)来获取字符串,资源文件会以tbl参数作为文件名,比如

    1. NSString *tip = NSLocalizedStringFromTable(@"Tip", @"mj", @"dialog title");
    2. NSString *ok = NSLocalizedStringFromTable(@"Ok", @"mj", @"dialog button");
  2. 创建的方法

http://www.cnblogs.com/lyanet/archive/2012/12/03/2800257.html 本地化创建过程

添加一项“Localized resources can be mixed”,值设置为“yes”即可!

最近要对一款游戏进行多语言本地化,在网上找了一些方案,加上自己的一点点想法整理出一套方案和大家分享!

多语言在应用程序中一般有两种做法:
一、程序中提供给用户自己选择的机会;
二、根据当前用户当前移动设备的语言自动将我们的app切换对应语言。

第一种做法比较简单完全靠自己的发挥了,这里主要讲第二种做法,主要分一下几点:

1.本地化应用程序名称
2.本地化字符串
3.本地化图片
4.本地化其他文件

1.本地化应用程序名称

(1)点击“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标。创建这个文件,命名为“InfoPlist”(一定是这个文件名) 就生成一个InfoPlist.strings文件;

(2)选中InfoPlist.strings 点击 XCode-> View-> Utilities -> File Inspector,在Localization中点“+”,添加chinese (zh-Hans)类型的为简体中文,english 应该会自动添加上。然后在InfoPlish.strings 左边会多出一个三角形,点击展开后可以看到InfoPlish.strings(english)和InfoPlish.strings(chinese)两个版本的文件;

(3)在InfoPlish.strings(english)文件中加入:

  1. CFBundleDisplayName ="Program";

其中“Program”为英文应用程序名称,同理在InfoPlish.strings(chinese)文件中加入:

  1. CFBundleDisplayName ="应用程序";

其中“应用程序”为中文名称,注意:CFBundleDisplayName加不加双引号都行

(4)编辑Info.plist,添加一个新的属性Application has localized display name, 设置其类型为boolean,并将其value设置为YES即可

 2.本地化字符串

(1)类似“本地化应用程序名称”第一步,点击“new file”然后在弹出窗口左侧选择IOS的resource项,在右侧就可以看到“String File”的图标。创建这个文件,命名为“Localizable”(一定是这个文件名否则后面调用会有一些区别)就生成一个Localizable.strings文件;

(2)类似“本地化应用程序名称”第二第三步,在Localizable.strings(english)文件中加入:

  1. "welcome"="Click on the screen to continue...";

同理在Localizable.strings(chinese)文件中加入:

  1. "welcome"="点击屏幕继续...";

(3)在代码中使用NSLocalizedString(<#key#>, <#comment#>)来读取本地化字符串,代码如下:

  1. CCLabelTTF *label = [CCLabelTTF labelWithString:NSLocalizedString(@"welcome", nil) fontName:@"Marker Felt" fontSize:18];
  2. CGSize size = [[CCDirector sharedDirector] winSize];
  3. label.position =  ccp( size.width /2 , size.height/2+30 );
  4. [self addChild: label];

注意:如果你的strings文件名字不是Localizable而是自定义的话,如wang.strings,那么你就得使用NSLocalizedStringFromTable()来读取本地化字符串:

  1. NSLocalizedStringFromTable(@"welcome",@"wang", nil)

 3.本地化图片

这里又分两种方法,第一种和本地化字符串方法类似,把中英文图片的名字分别存到中英文对应的strings文件,然后通过NSLocalizedString)来获取图片名称,如:

Localizable.strings(english)文件中加入:

  1. "BtnCancel"="BtnCancelEn.png";

Localizable.strings(chinese)文件中加入:

  1. "BtnCancel"="BtnCancelCn.png";

然后在代码中使用NSLocalizedString)来获取图片名称:

  1. CCSprite *btnCancel = [CCSprite spriteWithSpriteFrameName:NSLocalizedString(@"BtnCancel", nil)];
  2. btnCancel.position=ccp(s.width/2,s.height/2-40);
  3. [self addChild:btnCancel z:2 tag:104];

第二种就比较正规化了:点中你要本地化的图片,如“icon.png”,然后XCode-> View-> Utilities -> File Inspector,在Localization中点“+”添加chinese (zh-Hans);在图片左边就会出现一个倒三角,点开就会出现(english)和(chinese)的2张图,并且在项目文件夹中会出现en.lproj文件和zh-Hans.lproj文件;en.lproj文件存放的是英文版图片,zh-Hans.lproj存放的是中文版图片,中英文图片名字一样,我们在文件夹中直接替换图片就可以了,最后使用时直接使用正常名字就行了,如:“icon.png”。

4.本地化其他文件

本地化其他文件和本地化图片第二种方法类似,先在Localization中添加语言,然后把对应版本拷贝到en.lproj和zh-Hans.lproj文件夹中,最后引用就行了。

5.添加本地化遇到的错误

如添加的本地化文件为kerrorManager.strings,之后报这样的错,Read faild: the Data Couldn,t be read because it isn,t in the correct format (读取失败,因为它不是正确的格式),是你添加内容时没有加;(封号)所致,如"123" = "你好"  后面没有;号

时间: 2024-10-23 09:30:34

iOS本地化的相关文章

IOS本地化应用程序

BK项目已经完成得七七八八了,在项目的后期需要将其翻译成多国语言版本,以适应全球多个国家多个店面的使用. 应用本地化是分别对字符串.图片和 xib 或 storyboard 文件本地化,而传统的做法是对 xib 上的字符串(包括UILabel和UIButton.UITextField等)关联一个变量,通过NSLocalizedString这个函数去查找 Localizeable .strings 文件中的key值进行本地化操作,或者是生成同一个xib文件的不同语言版本,如 MainVC.xib(

IOS本地化应用

BK项目已完成7788,在项目的后期需要被翻译成多国语言版.为了适应全球多个国家使用多个存储. 应用本地化是分别对字符串.图片和 xib 或 storyboard 文件本地化,而传统的做法是对 xib 上的字符串(包含UILabel和UIButton.UITextField等)关联一个变量,通过NSLocalizedString这个函数去查找 Localizeable .strings 文件里的key值进行本地化操作,或者是生成同一个xib文件的不同语言版本号.如 MainVC.xib(Germ

iOS,本地化字符

iOS字符本地化 1.本地化资源库 1.1.新建Bundle作为本地化资源库 1.2.将本地化资源库改成如下 1.3.配置各个语言的本地字符(Localizable.strings)资源 //英语 "Group" = "Group"; "Name" = "Name"; //简体中文 "Group" = "群组"; "Name" = "一线天"; /

iOS 本地化

iOS 可以对界面,图片,string 等进行本地化. 设置可以到 1. PRJECT -> INFO -> Localizations 添加语言. 2. TARGETS -> INFO 里面添加 Localizations 项,并添加语言. 3. 到 string 文件里,信息那里点 Localize 进行本地化设置. 4. 如果用模拟器测试,在模拟器界面下调整语言是无效的.需要到 Xcode 的顶端工具栏,停止模拟器按钮旁边的 Target 图标那里点一下,然后选 Edit Sche

ios本地化支持

ios应用本地化 第一步:首先,在xcode左侧选中当前工程, 第二步:接下来注意,以为默认的悬着是Targets,而我们在这里需要的是Project, 第三部:点击进入project下的我们的工程名.选中info 第四部:有选项Localizations,点击下面的加号,选择我们需要提供支持的语言. 第五部:这一步走有两种方法可以实现a:有storyboar的本地化,b:无storyboard的本地化.进过了解我们的项目使用b方案,比较靠谱 第六步:选族需要进行本地化的文件,在xcode右栏选

SQLite3及iOS本地化存储

(一)SQLite3: (1)定义:是一款轻量级的,嵌入式的数据库.是一个进程内的库,本质就是一个文件,不需要依赖外部,不需要服务器,不需要安装或者管理,就是一个单一的磁盘文件.而服务端的数据库往往都很大,例如Orcal,MySql,SQL Server,这些需要独立的服务器,安装配置并且需要大量人员的维护. (2)数据类型:五个数据类型,integer整数,real小数,text字符串,blob二进制数据(把一段图片,音频,视频塞进去,一般不塞,数据库是查询检索的,而不是保存的,没法检索,一般

iOS本地化程序的一些坑

XLIFF(storyboard.xib)本地化导出Xcode-Editor-ExportLocalization...自定义xib内容无法导出: Debug联调时,尽管修改了设备语言环境,还是一直是英文(en),需要修改Target,编辑EditScheme-Run-Options ApplicationLanguage修改为SystemLanguage

ios本地化多语言支持

1.在Supporting Files文件夹右键,NewFile… -> iOS -> Resources -> String Files,命名为Localizable.strings 2.选中Localizable.strings 点击 XCode-> View-> Utilities -> File Inspector,在Localization中点+添加语言比如中文英文 1 2 3 4 5 6 7 8 9 "title"="当前系统语

iOS本地化(国际化)过程中只能添加xib本地化,storyboard不能本地化

这是一个很蛋疼的问题,花了我好多时间,其实也就需要将storyboard右侧的base没打勾的打上勾就可以了