Smartling.i18n 1.0.14

Smartling.i18n 1.0.14

测试已测试
语言语言 CC
许可证 定制
发布上次发布2017年8月

Emilien HuetScott Rossillo 维护。



  • Pavel Ivashkov

Smartling.i18n.framework

iOS 6+ 字符串本地化库

iOS(iOS 7之前)的本地化没有默认支持复数功能。该 ios-i18n 库旨在填补这一空白,并允许开发者将复数功能无缝集成到其本地化应用程序中,无论有多少地区。

从 iOS 7 和 Mac OS X 10.9 Mavericks 开始,Foundation 有能力根据复数和语法规则指定本地化字符串。您可以在国际化本地化指南中选择《处理名词复数和测量单位》部分了解更多信息。

ios-i18n 不兼容 Apple 的实现,并且不处理新的 ".stringsdict" 资源文件。

安装

框架包

  1. 下载 [Smartling.i18n.framework.tar.gz] fw
  2. 解压并将 Smartling.i18n.framework 拖到项目中的 Frameworks 组。
  3. 在目标中,将 -ObjC 添加到 Other Linker Flags 中的 Build Settings
  4. #import <Smartling.i18n/SLLocalization.h>

使用方法

复数

int number = 42;
NSString *format = SLPluralizedString(@"%d apples", number, @"Comment");
NSString *text = [NSString stringWithFormat:format, number];

SLPluralizedString...

有四个函数用于检索复数字符串,与NSLocalizedString 类似。

NSString * SLPluralizedString(NSString *key, number, NSString *comment)
NSString * SLPluralizedStringFromTable(NSString *key,
    NSString *tableName,
    number,
    NSString *comment)
NSString * SLPluralizedStringFromTableInBundle(NSString *key,
    NSString *tableName,
    NSBundle *bundle,
    number,
    NSString *comment)
NSString * SLPluralizedStringWithDefaultValue(NSString *key,
    NSString *tableName,
    NSBundle *bundle,
    number,
    NSString *defaultValue,
    NSString *comment)

number 可以是任何原始类型(int、long、float、double)或 NSNumber。

注意

基础国际化

在使用基础国际化时,本地化 .strings 文件应位于特定语言的文件夹中(如 en.lproj),而不是 Base.lproj 文件夹中。

后备

ios-i18n 为每个键查询实现了资源回退。在运行时,SLPluralizedString 会检索与用户首选语言最接近的本地化字符串。

相比之下,Apple 实现的 NSLocalizedString 首先选择适当的本地化表,然后在此表中进行所有后续查询。有关此机制更详细的信息,请参阅[国际化支持] applei18n

扩展的 .strings 格式

ios-i18n 使用复数变体扩展了标准 .strings 文件格式

键的扩展语法为:KEY##{规则}。其中 KEY 是原始字符串键,而 规则 是以下复数规则之一:zeroonetwofewmanyother

完整键的规则部分符合CLDR规范中的复数形式。iOS-i18n 库将按照 CLDR 中定义的相同规则加载特定的翻译。

以下是对字符串键 %d 首歌曲找到 的示例资源文件

en.lproj/Localizable.strings
/* Number of songs from search results */
"%d songs found##{one}" = "One song found";
"%d songs found##{other}" = "%d songs found";
ru.lproj/Localizable.strings
/* Number of songs from search results */
"%d songs found##{one}" = "Найдена %d песня";
"%d songs found##{few}" = "Найдено %d песни";
"%d songs found##{many}" = "Найдено %d песен";
"%d songs found##{other}" = "Найдено %d песен";

版权和许可证

版权所有 2013 Smartling, Inc.

根据 Apache License 2.0 版本("许可证");除非符合许可证,否则您不得使用此作品。您可以在 LICENSE 文件中或通过以下链接获得许可证:

https://apache.ac.cn/licenses/LICENSE-2.0

除非适用法律要求或书面协议,否则在本许可证下分发的软件按“原样”分词,不提供任何形式的保证或条件,无论是明示的还是隐含的。有关许可证的特定语言如何在许可证中规定权限和限制,请参阅许可证。