手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆

本地格式字符串

首页 > 苹果相关 >

昨天晚上在查资料的时候,发现这个博客,上面的四篇文章不错,我一一转过来先。

来源:http://hi.baidu.com/tangly888/blog/item/9c85cfaaae68e9e71f17a249.html

地址:翻译:tangly

http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/ApplePushService/ApplePushService.html#//apple_ref/doc/uid/TP40008194-CH100-SW9

本地格式字符串

你可以用两种方式来显示本地提示信息,通知服务器的本地化文本;要做到这一点,它必须发现当前设备的语言偏好,或者客户端应用程序可以存储器绑定的提示消息字符串并支持将其翻译成本地化语言。供应商再通知负载的aps字典里面指定了loc-keyloc-args属性,当设备接收到通知(应用程序没有运行)

他使用这些APS字典的属性来查找和使用本地化字符串来格式化当前消息,然后再显示给用户

这里介绍第二种

一个IOS应用可以支持国际化资源,如图像,声音,文字的每一种语言的表示,国际通用化这些资源,然后将其分成两部分捆绑再一个子目录中:语言代码和.lproj后缀格式的扩展(如fr.lpor),编程显示本地化的字符串放在一个文件名为Localizable.strings的文件中,在这个文件中的每个条目有一个键和一个本地化的字符串值在这个文件中的每个条目有一个键和一个本地化的字符串值

字符串值可以有格式说明符来进行替代。当一个应用程序要求一个特定资源,说一个本地化的字符串,它得到的是当前用户选择的语言本地化的资源

例如,首选语言是法语,相应的提升消息字符串值将到应用程序目录的fr.lproj中获取Localizable.stringsIOS通过NSLocalizedString的宏来实现这种要求)

注意:当action-loc-key属性是个字符串,一般都是如此,这个字符串是一个本地化目录Localizable.strings当前选定的语言的关键ios使用这个键来获得提示消息按钮中右边按钮的标题(“action”按钮)

为了更清楚,我们来举个例子,供应商指定了以下指定了以下字典作为alert属性的值

"alert" : { "loc-key" : "GAME_PLAY_REQUEST_FORMAT", "loc-args" : [ "Jenna", "Frank"] }

当用户收到通知消息,它使用"GAME_PLAY_REQUEST_FORMAT"作为键在Localizable.strings文件的.lproj字典中查找相关的字符串值作为当前语言的值,

假设当前本地中有个Localizable.strings,如下:

"GAME_PLAY_REQUEST_FORMAT" = "%@ and %@ have invited you to play Monopoly";

设备会显示这样一条提示信息:“Jenna and Frank have inveited you to play Monopoly

除了使用格式符号%@,你可以再字符变量值的位置用“%n$@"代替,n代表了loc-args的下标(1开始)(这也可以用两个%%符号来表示一个百分号标记(%))

所有如果在localizable.strings条目如下:

"GAME_PLAY_REQUEST_FORMAT" = "%2$@ and %1$@ have invited you to play Monopoly";

设备就回显示这样一条提示信息:”Frank and Jenna have invited you to play monopoly

对于通知消息负载使用的loc-keyloc-arg属性的完整列子,请看下一个列子“Examples of JSON payloads,为了学习更多关于ios国际通用化的知识,请看Build-Time Configuration Details” in iOS Application Programming Guide,对于国际通用化的一般信息,请看 Internationalization Programming Topics

JSON例子

下面通知有效负载内容的例子说明了表3-1中的属性再实际应用中的使用

带有“acm”属性的键是用户自定的负载内容。这些例子包含了空格和换行来提高可读性,为了更好的执行,供应商应该删除这些空格和换行

例子自己看去

膘叔:骗子啊,最后一段哪有例子。。。




本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):