Xcode无法生成xliff本地化文件,错误本地化无法读取字符串文件。请查看系统日志以获取更多详细信息。有谁知道我在哪里可以找到这些日志?这是Xcode 6.3.2 GM,但我也尝试过6.3.1版本。用6.3.1。错误是在特定文件上,但在该文件内并不是什么不寻常的。此外,我试图删除该文件,但我收到相同的错误,虽然该文件不再存在。有谁知道为什么?
答案 0 :(得分:7)
有谁知道我在哪里可以找到这些日志?
打开Console
个应用。例如,搜索system.log
“字符串”。
有谁想到为什么?
有几个问题会导致此错误:
Localizable.strings
档案。解决方案:只需添加评论
即可 /** no localizable strings **/
到这个文件,问题就消失了。
\
解决方案:删除它并找出与您的特殊字符有关的内容。并且您的导出过程可能会完成而不会出错。
P.S。
Version 6.4 (6E35b)
答案 1 :(得分:5)
最后,我通过从代码中删除所有NSLocalizedString宏来解决这个问题,因为xliff导出器会查找代码并根据结果查找字符串文件。奇怪的是他也会扫描评论,所以只需评论不需要的NSLocalizedString宏就不会有帮助。
答案 2 :(得分:4)
我有类似的问题。在系统日志中检查条目“Xcode:[MT] DVTAssertions”。 (Applciations->实用程序 - > Console.app)
例如:
X::~X
详细信息:无法读取字符串文件“Controllers / FindMyPhone / fr.lproj / TILMarkPhoneLostMessageViewController.strings”,基本错误:
评论解析器输出:
5/13/16 3:08:24.675 PM Xcode[15546]: [MT] DVTAssertions: Warning in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-10188.1/IDEFoundation/Localization/IDELocalizationWork.m:355
不匹配:
{
"OGQ-Dm-sLB.text" = "Au secours, je suis perdu**U00A0**! Veuillez appeler mon propri\U00e9taire.";
"reH-FM-KQF.text" = "Envoyez un message \U00e0 la personne qui trouve votre t\U00e9l\U00e9phoneU00A0; celui-ci s\U2019affiche sur l\U2019\U00e9cran de verrouillage, accompagn\U00e9 de votre num\U00e9ro de t\U00e9l\U00e9phone. ";
}
对象: 方法: - 工作 线程:{number = 1,name = main}
请在http://bugreport.apple.com处提交错误,并附上此警告消息以及您可以提供的任何有用信息。
正如您在我的案例中所看到的,问题与'NO-BREAK SPACE'(U + 00A0)unicode字符有关。导出本地化时,xcode期望代码为{
"OGQ-Dm-sLB.text" = "Au secours, je suis perdu\U00a0! Veuillez appeler mon propri\U00e9taire.";
"reH-FM-KQF.text" = "Envoyez un message \U00e0 la personne qui trouve votre t\U00e9l\U00e9phone\U00a0; celui-ci s\U2019affiche sur l\U2019\U00e9cran de verrouillage, accompagn\U00e9 de votre num\U00e9ro de t\U00e9l\U00e9phone. ";
}
,但在我的字符串文件中为\\U00A0
(否则应用会显示字符而不是空格...)。听起来像xcode中的一个bug给我。如果你想要一个快速而肮脏的解决方案,我会说在\U00A0
的所有项目中搜索并仅为导出替换\U00A0
(并且一旦你让xliff再次撤消这些更改)。
系统日志:
答案 3 :(得分:1)
尝试使用指定了自己的NSLocalizedString
的{{1}}时遇到了同样的问题。我已经通过重新定义NSBundle
函数来解决这个问题:
NSLocalizedString
将public func NSLocalizedString(key: String, tableName: String? = nil, bundle: NSBundle = NSBundle.mainBundle(), value: String = "", comment: String) -> String
{
return yourBundleHere.localizedStringForKey(key, value: value, table: tableName)
}
替换为yourBundleHere
或您想要的任何内容。