POLocalizedString 1.1.1

POLocalizedString 1.1.1

Maxime Epain 维护。



  • 作者
  • Maxime Epain

CI Status Version License Platform Carthage


POLocalizedString 是一个替代 Apple 翻译系统的 gettext 翻译框架。

POLocalizedString 初始是 pomo-iphone 的一个分支。

特性

  • 支持 mopo 格式。
  • 支持 复数 形式。
  • 支持多个捆绑包。

基本用法

Objective-C
#import <POLocalizedString/POLocalizedString.h>

NSInteger numApples = 10;

// Translate single string
NSLog(@"Gettext translated string: %@", POLocalizedString(@"Hi, this is gettext!") );

// Translate plural string
NSLog(@"Gettext translated plural: %@", POLocalizedPluralFormat(@"%d apple", @"%d apples", numApples) );

// Translate and format altogether
NSLog(@"Gettext translated plural: %@", [NSString stringWithFormat:POLocalizedPluralFormat(@"%d apple", @"%d apples", numApples), numApples]);
Swift
@import POLocalizedString

let numApples = 10

// Translate single string
print("Gettext translated string: %@", "Hi, this is gettext!".localized);

// Translate plural string
print("Gettext translated plural: %@", "%d apple".localized(plural: "%d apples", n: numApples) );

// Translate and format altogether
print("Gettext translated plural: %@", "%d apple".localized(plural: "%d apples", n: numApples, with: numApples);

POLocalizedString 会寻找以下模式的 .mo.po 文件

%app-bundle-path/%language.%extension

其中 %language 是一个两位语言代码(例如 ru, en, es 等),%extension 通常为 mopo。由于 mo 文件格式更紧凑并且适合分发,它们具有更高的优先级。

例如,路径可能看起来是这样的

/MyApp.app/es.mo

安装

POLocalizedString 通过 CocoaPods 提供。要安装它,只需将以下行添加到您的 Podfile 中即可

pod "POLocalizedString"

Poedit

设置

如果您使用 Poedit,请按照以下说明设置 Objective-C 解析器。

转到 Poedit > 预设,并使用以下设置添加新解析器

  • 扩展名列表:*.m;*.mm;*.h;*.swift;

  • 解析器命令:xgettext --force-po -o %o %C %K %F -L ObjectiveC

  • 关键字列表中的一个项目:-k%k

  • 输入文件中的一个项目:%f

  • 源代码字符集:--from-code=%c

您还可以在解析器命令中使用 --add-comments=/ 标志来启用翻译者注释。在这个例子中,所有以三个斜杠开始的注释将被视为翻译者注释。

目录

为您的目录设置以下关键字,以便 Poedit 与源代码一起工作

_
POLocalizedString
POLocalizedStringFromContext:2c,1
POLocalizedPluralString:3c,1,2
POLocalizedPluralStringFromContext:4c,1,2
POLocalizedStringInBundle:2
POLocalizedStringFromContextInBundle:3c,2
POLocalizedPluralStringInBundle:2,3
POLocalizedPluralStringFromContextInBundle:5c,2,3

许可

POLocalizedString 在 MIT 许可下可用。有关更多信息,请参阅 LICENSE 文件。