0

在 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";

有任何想法吗?

4

2 回答 2

1

我找不到可用于此的实用程序。我发现的最接近的是/usr/libexec/PlistBuddy(但它不能让您枚举键或值,只能打印已知键)和plutilErica Sadun,但它仅针对 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文件。

于 2013-03-15T07:06:11.470 回答
0

这将打印指定Localizable.strings文件的所有值

plutil -p $FILE_PATH | grep '" *=> *"' | while read line; do key=$(echo "$line" | sed -E 's/(.*)=>(.*)/\2/') echo $key done

于 2018-05-10T06:49:23.157 回答