iOS App国际化

文件国际化

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]*?" 就可以匹配中文了)




1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值