NSLocalizedString(@"Word 1", @"");
NSLocalizedString(@"Word 2", @"");
"Word 1" = "Wort 1";
"Word 2" = "Wort 2";
/* Missing Word 1 */
"Word 2" = "Mot 2";
是否有脚本或编译器设置将检查是否所有本地化字符串都在所有支持的语言环境中进行了翻译?
答案 0 :(得分:2)
您可以在键列表上使用diff
来查看缺少的内容
这是一个shell脚本(我们称其为keys.sh
),用于打印出给定的.strings
文件的密钥,并按stdout
进行排序:
#!/bin/sh
plutil -convert json "$1".lproj/Localizable.strings -o - | ruby -r json -e 'puts JSON.parse(STDIN.read).keys.sort'
然后可以将其与<(cmd)
shell语法结合使用来比较两个本地化之间的键;例如比较您的Base.lproj
和fr.lproj
:
diff <(keys.sh Base) <(keys.sh fr)
答案 1 :(得分:1)
不是您问题的完美解决方案。但您可以使用以下插件在编码时检查本地化字符串。 https://github.com/questbeat/Lin
另外,我用来从Excel文件或Google Sheet中导出本地化字符串表作为练习。这将使事情变得更容易并减少许多错误。
答案 2 :(得分:0)
Check my example on how you can achieve it
总结:您可以在Run Script
下创建一个Build Phase
,在其中执行一个bash script
,就像@AliSoftware所建议的那样比较您的{{1 }},如果一个键与另一个键相比缺少某些键,则可以停止构建并将这些丢失的键作为错误输出,也可以将它们作为错误输出,而不让构建继续进行。
答案 3 :(得分:0)