iOS 本地化 国际化 相关的工具,命令,和可能遇到的问题
来源:互联网 发布:人工智能未来的发展 编辑:程序博客网 时间:2024/06/05 05:57
- 使用Base Internationalization来对用storyboard或xib创建的UI界面布局进行国际化。
- 使用InfoPlist.strings文件来对应用程序的名称国际化。
- 使用Localizable.strings文件来对应用程序中Co
de创建会使用的字符串进行国际化。
- 用Base Internationalization国际化
选择“Localizations”表格下方的“Use Base Internationalization”选项。
Xcode 显示一张表单,要求您选择要用于“Base Internationalization”的storyboard。(在选择这个选项之前你可以先将storyboard都先点击打开看看,有的时候表单中没有列出他们,只要点击打开过就会列出来了。这可能是xcode的bug吧;如果创建失败就重启下xcode然后再试试吧。)
/* Class = "IBUITextField"; accessibilityHint = "Type your name"; ObjectID = "PzI-FE-QQF"; */
"PzI-FE-QQF.accessibilityHint" = "Type your name";
/* Class = "IBUITextField"; placeholder = "Your Name"; ObjectID = "PzI-FE-QQF"; */
"PzI-FE-QQF.placeholder" = "Your Name";
/* Class = "IBUIButton"; normalTitle = "Hello"; ObjectID = "fYK-eX-amY"; */
"fYK-eX-amY.normalTitle" = "Hello";
/* The name of the app displayed on the device*/CFBundleDisplayName = "您好,世界";
在程序中使用宏定义NSLocalizedString来从Localizable.strings文件获取当前本地化语言的本地化字符串。/* The string displayed */"HELLO" = "您好,%@";
该宏中的第一个参数,采用字符串文件中的一个键,第二个参数采用给本地化人员的注释。该宏会返回与用户首选语言相对应的本地化语言中键的值。您可能想知道此示例将给本地化人员的注释作为该宏的参数的原因;毕竟,您已经在 Localizable.strings 文件中,为英文和中文写了一则注释。NSString *greeting = [[NSString alloc] initWithFormat:NSLocalizedString(@"HELLO", @"The string displayed"), nameString];
大型应用程序项目,通常使用名称为 genstrings
有一种情况是当我们已经对Storyboard进行了国际化。此时如果我们又修改了此Storyboard,比如添加了其他的控件,此时MainStoryboard.strings文件与"Base Internationalization"文件的 MainStoryboard.strings就不同步了,我们同样需要对这些新添加的控件进行国际化。我们可以使用命令行工具ibtool,从"Base Internationalization"文件的 MainStoryboard.strings 生成新字符串文件,然后将该新字符串文件条目添加到现有的MainStoryboard.strings文件中。
启动“终端”应用程序。
此应用程序位于“/应用程序/实用工具”中。
在“终端”的“Shell”中,连接到项目文件夹的 "Base.lproj
de" 目录。 例如:
cd /Users/UserName/Projects/HelloWorld/HelloWorld/Base.lproj
在提示符后输入以下命令:
ibtool MainStoryboard.storyboard --generate-strings-file NewStuff.strings
可以给输出文件命名随您选取的任何名称(本示例是用 "NewStuff.strings")。
在 Xcode 中,打开生成的输出文件,并将新字符串文件条目(即“Your Name:”标签的注释和键-值对)拷贝到中文
"MainStoryboard.strings" 文件。 翻译新字符串值。
在Interface Builder设计时的界面
若系统设定为English则显示英文界面
若系统设定为繁体中文则显示为繁体中文界面
如何建立自定义的语系文件:
1.在Resources分类下新增文件 [右键/Add/New File...]
2.在分类中选择Other后再选择 Strings File
3.将文件名设定为 Localizable.strings
4.在 Localizable.strings 檔案上按右鍵並選擇 Get Info
5.选择左下方的 Make File Localizable
6.将分页标签换至General
7.选择左下方的 Add Localization
8.输入新的语系名称 zh_TW 然后 Add
9.您会看到目前您设定了English及zh_TW两种语系
10.在文件清单中您将看到 Localizable Strings (English) 及 Localizable String (zh_TW)
11.开启后编辑预言字符串就可以啦,如下:
Localizable.strings (English)Localizable.strings (zh_TW)MultiLanguageDemoViewController.hMultiLanguageDemoViewController.m
- iOS 本地化 国际化 相关的工具,命令,和可能遇到的问题
- iOS 本地化遇到的问题
- iOS-应用的国际化和本地化
- iOS国际化遇到的问题
- 关于iOS App 国际化和本地化 的一些总结:国际化 vs 本地化(Internationalization vs Localization)
- iOS本地化国际化(续):不更随系统,手动选择APP语言 本地化和国际化的实现
- android的国际化和本地化
- android的国际化和本地化
- android的国际化和本地化 .
- android的国际化和本地化
- iOS 国际化和本地化
- iOS开发 APP的国际化与本地化
- Swift - iOS应用的国际化与本地化
- Java程序的国际化和本地化介绍
- Rails的国际化和本地化技术教程
- Linux的国际化和本地化机制简介
- Java程序的国际化和本地化介绍
- Java程序的国际化和本地化实例
- 文章链接
- 画图+使用数组来标记,和图像01存储有点像
- 配置Android的SDK、NDK、ANT
- [OPENGL][转] opengl里的坐标系
- 编程过程中Android项目中R文件忽然丢失
- iOS 本地化 国际化 相关的工具,命令,和可能遇到的问题
- UITextField 使用
- linux常用命令(20):find命令之exec
- Uva1600 - Patrol Robot(bfs解法)
- JBPM 用foreach做动态任务分配,另加驳回操作
- 安卓监听滑屏事件
- 博客one day
- 15/9/8/BroadcastReceiver实现定时功能/Service
- Unity热更新专题(六)uLua简介