如何在 Xcode 中自动检查缺少的本地化?

Rob*_*ert 4 xcode ios

源文件.m

NSLocalizedString(@"Word 1", @"");
NSLocalizedString(@"Word 2", @"");
Run Code Online (Sandbox Code Playgroud)

de.lproj/Localizable.strings

"Word 1" = "Wort 1";
"Word 2" = "Wort 2";
Run Code Online (Sandbox Code Playgroud)

fr.lproj/Localizable.strings

/* Missing Word 1 */
"Word 2" = "Mot 2";
Run Code Online (Sandbox Code Playgroud)

是否有脚本或编译器设置可以检查所有本地化字符串是否在所有支持的语言环境中进行了翻译?

Ali*_*are 5

您可以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'
Run Code Online (Sandbox Code Playgroud)

然后,您可以将它与<(cmd)shell 语法结合使用来比较两个本地化之间的键;例如比较你Base.lprojfr.lproj

diff <(keys.sh Base) <(keys.sh fr)
Run Code Online (Sandbox Code Playgroud)


Var*_*una 1

不是您问题的完美解决方案。但是您可以使用以下插件在编码时检查本地化字符串。 https://github.com/questbeat/Lin

另外,我还习惯从 Excel 文件或 Google Sheet 导出本地化字符串表。这将使事情变得更容易并减少很多错误。