本地化NSPredicateEditor / NSPredicateEditorRowTemplate

时间:2018-12-05 12:50:07

标签: macos cocoa localization swift4 nspredicateeditor

what I want to get

如何使用NSPredicateEditorRowTemplate进行本地化

它没有充分记录 想起来真是太痛苦了。

所有内容都是以编程方式编写的

我想要法语,意大利语版本等。

https://github.com/thierryH91200/THPredicateEditorSwift

2 个答案:

答案 0 :(得分:0)

本地化NSPredicateEditor比通常的本地化要复杂得多。

首先,您需要在代码中的某个地方进行NSLocalizedString()调用,以便genstrings能够找到它们。

第二,密钥需要遵循一种特殊的格式,该格式将指示genstrings产生给定行的所有组合:

NSLocalizedStringFromTable(@"%[Any, All, None]@ of the following are true", @"Predicate", @"localize the compound row template")
NSLocalizedStringFromTable(@"%[property]@ %[is, is not, contains, begins with, ends with, like, matches]@ %@", @"Predicate", @"localize the string row template")
NSLocalizedStringFromTable(@"%[birthMonth]@ %[is, is not]@ %[January, February, March, April, May, June, July, August, September, October, November, December]@", @"Predicate", @"localize the selection row template")

在上面的示例中,genstrings将查看方括号之间的选项,并为Predicate.strings文件中的所有组合生成一个本地化字符串。

最后,必须通过设置formattingStringsFilename属性让NSPredicateEditor实例知道要使用哪个字符串文件。

有关更多信息,请参见此blog post

答案 1 :(得分:-1)

该博客已有几年历史了。

xcode多年来得到了改善。

问题是重复的,但几年后答案可能会有所不同。

答案很简单。这是xib文件的本地化,效果很好