在Xcode中,我们有一个Localizable.string文件,我们用它来支持我们的应用程序中的多种语言。我想 拼写检查 Localizable.string文件。 当我使用此脚本时,输出将打印到控制台
cat ~/Desktop/Localizable.strings
但是当我尝试逐行阅读使用此脚本进行拼写检查时,会在控制台上打印出一堆空行。
cat ~/Desktop/Localizable.strings | while read line; do
echo $line
done
这是Localizable.strings文件的样子。它有一个key
和一个value
。我只想查看Value
"SOME_KEY" = "Spell check this";
有什么想法吗?
答案 0 :(得分:1)
我找不到可用于此的实用程序。我发现的最接近的是/usr/libexec/PlistBuddy
(但它不能让你枚举键或值,只能打印已知的键)和Erica Sadun的plutil
,但这是为iOS编译的只是而且不是开源。
因此,您似乎需要为此编写一个简单的实用程序:
#import <Foundation/Foundation.h>
int main(int argc, char *argv[])
{
@autoreleasepool {
NSString *fname = [NSString stringWithUTF8String:argv[1]];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:fname];
for (NSString *value in dict.allValues) {
printf("%s\n", value.UTF8String);
}
}
return 0;
}
调用:./<BINARY> Localizable.strings
。这将打印包含字符串的任何有效属性列表文件的所有值,包括.strings
个文件。
答案 1 :(得分:0)
这将打印指定Localizable.strings
文件的所有值
plutil -p $FILE_PATH | grep '" *=> *"' | while read line; do
key=$(echo "$line" | sed -E 's/(.*)=>(.*)/\2/')
echo $key
done