app的国际化 ios
2016-03-20 12:07:24 yaoliangjun306 阅读数 447

文件国际化

1. 新建名为Localizable.strings的空文件 (名字为固定的“Localizable”,千万不要搞错,否则不能被识别)


2. 点击项目 -> PROJECT -> Info -> Localizations  添加需要国际化的语言



3. 点击Localizable.strings文件,在右侧添加需要国际化的语言

 


4. 在需要国际化的地方使用 NSLocalizedString(@"key",@"comment") 国际化



5. 在对应的国际化文件里添加对应的"key" = "value"键值对,以分号结束






Info.plist国际化

1.新建一个名为“InfoPlist.strings”的空文件,注意:文件名字固定为“InfoPlist”,否则不能被识别

2.点击项目 -> PROJECT -> Info -> Localizations  添加需要国际化的语言



3. 点击InfoPlist.strings文件,在右侧添加需要国际化的语言



4.右键Info.plist文件,选择Open as Source Code,把需要国际化的key拷贝到对应的国际化文件里面,按照"key" = "value";的方式做国际化即可,Info.plist国际化的步骤和文件的国际化步骤是类似的。






启动页的国际化

1.首先把各个尺寸的图片拖入到工程里面,添加国际化语言。这里需要注意,不能把启动图片放到Assets.xcassets里面,不然识别不了,iOS11的的图片名字好像比较特别,自定义的就识别不了,最终查找了下官方的写法:Default-iOS11-812h@3x




2.在Info.plist中添加UILaunchImages字段,类型是数组,里面装的是各个尺寸的图片字典,官方文件里面说的是

UILaunchImageName和UILaunchImageMinimumOSVersion这两个字段是必填字段,但实际测试图片大小的字段UILaunchImageSize也是必须的.以下的图片名称和图片大小和拖进工程的图片对应上就可以了。

	<key>UILaunchImages</key>
	<array>
		<dict>
			<key>UILaunchImageName</key>
			<string>LaunchImage_640x960</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageSize</key>
			<string>{320, 480}</string>
		</dict>
		<dict>
			<key>UILaunchImageName</key>
			<string>LaunchImage_640x1136</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageSize</key>
			<string>{320, 568}</string>
		</dict>
		<dict>
			<key>UILaunchImageName</key>
			<string>LaunchImage_750x1334</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageSize</key>
			<string>{375,667}</string>
		</dict>
		<dict>
			<key>UILaunchImageName</key>
			<string>LaunchImage_1242x2208</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageSize</key>
			<string>{414,736}</string>
		</dict>
		<dict>
			<key>UILaunchImageName</key>
			<string>Default-iOS11-812h</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>11.0</string>
			<key>UILaunchImageSize</key>
			<string></string>
		</dict>
		<dict>
			<key>UILaunchImageName</key>
			<string>LaunchImage_768x1024</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageSize</key>
			<string>{768,1024}</string>
		</dict>
		<dict>
			<key>UILaunchImageName</key>
			<string>LaunchImage_1536x2048</string>
			<key>UILaunchImageOrientation</key>
			<string>Portrait</string>
			<key>UILaunchImageMinimumOSVersion</key>
			<string>8.0</string>
			<key>UILaunchImageSize</key>
			<string>{768,1024}</string>
		</dict>
	</array>


3.把Launch Images Source选项设置成Use Asset Catalog,然后卸载掉app重新运行应该就可以了






普通图片的国际化

普通图片的国际化有两种方法,一种方法是自己写一个方法来判断当前语言,加载不同语言下的图片,还有一种就是以下的方法,和启动图片的方式差不多。


1.步骤和前面差不多,把图片拖进项目中,选中图片,添加需要国际化的语言




2.添加了对应的语言后,在图片下面会多出两个语言的文件夹




3.右键Show in Finder 把对应的图片替换掉就可以了,注意:图片名字需要保持一致




导出国际化字符串

如果每次加了一个本地化字符串,就得手动去Localizable.strings添加对应的key,那就太麻烦了,幸好苹果提供了快捷导出本地化key的命令。下面以en.lproj的生成为例:

1.首先,我们进入程序工程所在的目录,用命令建立en.lproj 文件,如果已经存在该文件则忽略此步骤。

mkdir en.lproj

2.然后我们遍历所有的子目录文件(以下命令只导出了.m文件),去生成Localizable.strings,命令如下:

find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj

Tips:使用Xcode查找项目中的中文字符串

打开”Find Navigator”,切换搜索模式到 “Find > Regular Expression”
输入@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?"  (swift请去掉”@” 输入@"[^"]*[\u4E00-\u9FA5]+[^"\n]*?" 就可以匹配中文了)




2014-01-13 16:13:33 u011700462 阅读数 345
    最近做的一个国际化版本,其实挺简单的,就是在Localizable.strings的文件里添加两个不同string类型文件,一般中英文就ok了,当然如果你需要定制别的语言,还可以继续加。
个人觉得要注意的事项有这几点:
@1 :调用NSLocalizedString(@"Key", nil)取得不同系统版本对应字符串,其中显示的就是key,所以在chinese和english两个string类型文件里,key一定要是一致的。
@2 :每一个key,value键值对末尾一定要用英文状态下的分号,如果有一个没注意,编译就会出错。
@3 :取key的名字尽量要注意语法的准确性,如果有欧美籍同事可以请他们帮助一下,google还是有些不太准确。
2015-12-26 10:49:51 boring_cat 阅读数 578
加班途中来发一贴 关于app的国际化步骤操作

(以下不适用于xib,适用于固定文字)
1.新建Source分类里面的String File文件 命名必须是:Localizable.strings
①建文件步骤





②成功后







2. ①来到工程页
 - PROJECT  - Info - Localizations 点击加号 添加你要的语言


②工程页添加完成 来到左边文件栏 选择Localizable.strings 之后在右边栏的选项 点击Localizable按钮添加语言



③成功后 Localizable.strings展开会出现你选择的文字选项








3.新建字符串类别 String+Localizable.h (名字可以随便取)
@interface NSString (Localizble)  类扩展
②实现方法 减方法
-(NSString)L;





实现方法







3. 来到Localizable.strings 
选择你要用的语言 (此处选择繁体) 在里面输入一些你会在app内部使用的字
"订单状态" = "訂單狀態";
"地图定位" = "地圖定位";
"电话联系" = "電話聯繫"






4.然后把头文件 引入到pch里面去 就可以用了
使用方法 字符串.L   例如:  用的时候 :@"订单状态".L




 看到里面的字符串后面的 .L  了吗!!!


5.注意:
①一般只能国际化一些固定的文字,网络获取的数据, 没法国际化,除非自己做一个简繁转换,网络获取的数据,简体就是简体,繁体就是繁体
②如果系统繁体, 那就显示繁体,如果系统不是繁体, 不管是什么都显示中文.系统根据当前语言环境自动做处理

(xib国际化部分  后续更新)
==================2015 12 29================
今天来更新一下xib的国际化部分 
点击xib  来到右边的部分 点击国际化 如图


然后把简体中文改成繁体字就可以了 !  就是这么简单!
2017-03-18 09:59:00 weixin_34395205 阅读数 19

看图不说话,步骤都如图所示:

2025463-6991f334d8732be6.png
Snip20170318_1.png
2025463-4416aab31ff22810.png
Snip20170318_2.png
2025463-21b2d2a9c99bdd7f.png
Snip20170318_3.png
2025463-ee8bc775459b31e1.png
Snip20170318_4.png
2025463-ba1a415118d8797e.png
Snip20170318_5.png
2025463-cd3de46fc3067608.png
Snip20170318_6.png
2025463-dc26c2bdb57366cd.png
Snip20170318_7.png
2025463-47c35346c8861c43.png
Snip20170318_8.png
2025463-dba08daaa09b61a2.png
Snip20170318_9.png
2025463-29f0513feba7ee28.png
Snip20170318_10.png
2025463-a6061832af8b8378.png
Snip20170318_11.png
2025463-0aeec78ef34347d1.png
Snip20170318_12.png
2025463-6c5cddfd693c4f4d.png
Snip20170318_13.png
2025463-b778579b2cab6936.png
Snip20170318_14.png
2025463-036cfda9eefecc26.png
Snip20170318_15.png
2025463-7e19444a056dcc79.png
Snip20170318_16.png
2015-03-19 11:35:00 ZzzzzzXJ 阅读数 455

1.首先要在Project->Info->Localizations里面加上你所需要的语言。(中文有两种简体是zh-Hans,正体是zh-Hant)

2.然后添加一个StringFile,命名为InfoPlist.strings。并且在文件属性里将所需要的多国语言勾上。

3.添加一条新的多语言记录,CFBundleDisplayName,并对其做多语言处理。

4.在targets->info里面添加一条新的记录,Application has localized display name, 并将值设为YES。

iOS App多语言国际化

阅读数 1432

没有更多推荐了,返回首页