WWDC 2016聚焦:iOS 10国际化和本地化
将您的应用程序翻译成多种语言并进行国际兼容性设计对于将其应用范围扩大到全球市场至关重要。 许多iOS开发人员可能已经熟悉用于本地化的NSLocalizedString和可本地化的情节提要,但是iOS 10提供了新的选项来使国际化和本地化过程更加顺畅。 让我们看一下iOS 10可用的一些更新,这些更新对开发人员会有所帮助。
新键盘
有一个新的数字键盘,支持本地数字。 有时,您只需要ASCII数字,例如信用卡号,电话号码和IP地址。 在这些情况下,应使用UIKeyboardTypeASCIICapableNumberPad作为键盘类型。
分析仪设置
有一个名为“ Missing Localizability”的新静态分析器设置。如果将其打开,则不必担心忘记使用NSLocalizedString 。 编译器会警告您。 如果您省略了注释,则称为“缺少本地化上下文注释”的其他设置甚至可以警告您。
格式化程序
尽可能使用格式化程序,以避免其他语言的UI看起来很奇怪。 例如,在中国,通常会在时间之后加上“ am”或“ pm”。 在那上面显示过。 欧洲大陆大部分地区都使用24小时制。 格式化程序会在所有情况下显示适当的变体。
有一个新的NSPersonNameComponentsFormatter ,可以为它提供一个全名的字符串,它将解析其组成部分,例如给定名称,中间名和姓氏。 某些语言和地区将姓氏放在首位,然后是给定名称,而其他语言则相反。 格式化程序可以很好地处理此问题。
可以使用称为NSMeasurementFormatter的新度量格式器在不同单位之间转换值,例如升和加仑。 千克,磅和盎司; 英里和公里。 它根据您的语言环境来执行此操作,或者您可以指定一个语言环境。
更多资源
App Store使应用程序可在150多个国家/地区使用。 有关为不同受众群体准备应用的更多信息,请查看:
- 国际化和本地化指南
- 国际化最佳实践
- 国际用户界面中的新增功能
我要感谢MartínAdoue和 Rebekah Wolf 的投入。
- 使用iOS中的Firebase和Geolocator(或任何Swift插件)构建错误(Flutter)
- 如何在iOS(AVFoundation或其他第三方库)中使用HLS时间平移function,如Android中的ExoPlayer?
- Firebase Swift 3完成处理程序Bool
- 无法将文本从UITextField添加到数组
- 如何在iOS 7.1中使用NSURLSessiontestingHTTP请求和响应?
- 不填充tableview与结构数组
- Xcode 7:链接器命令失败,退出代码1(使用-v再次查看调用)
- 是否有可能在没有Mac的情况下为iOS创buildPhoneGap应用程序?
- 在ios应用程序中使用@synthesize