В то время как я использую PHP скрипт, а я бег это на Mac, так что я думал, что я мог расшевелить приложение командной строки какао, чтобы сделать .strings разбора так или иначе. Что я и сделал.
Код ниже представляет собой утилиту командной строки, которая принимает параметр имени файла (файл строк) и выплескивает содержимое этого файла строк как json (to stdout).
#import <Foundation/Foundation.h>
#import "NSDictionary+BVJSONString.h" // from http://stackoverflow.com/a/20262259/129202
#define ERRORCODE (1)
int main(int argc, const char * argv[])
{
@autoreleasepool {
// insert code here...
//NSLog(@"Hello, World!, argc: %d", argc);
if (argc != 2) {
NSLog(@"Specify file argument!");
return ERRORCODE;
}
NSString* filepath = [NSString stringWithCString:argv[1] encoding:NSASCIIStringEncoding];
NSError* error = nil;
NSStringEncoding usedencoding;
NSString* strings = [NSString stringWithContentsOfFile:filepath usedEncoding:&usedencoding error:&error];
if (error) {
NSLog(@"Error: %@", error);
return ERRORCODE;
}
NSDictionary* dict = [strings propertyList];
NSString* json = [dict bv_jsonStringWithPrettyPrint:NO];
[json writeToFile:@"/dev/stdout" atomically:NO encoding:NSUTF8StringEncoding error:nil];
}
return 0;
}
Это немного грубо - это лучше читать из стандартного ввода или что-то - я не очень привык писать эти вещи, так что не стесняйтесь, чтобы улучшить. Обратите внимание, что это использует собственный код анализа синтаксиса .strings, поэтому он должен быть лучше, чем большинство регулярных выражений.
Я не уверен, что вы хотите в качестве результата – NDM
send-me-the-codez – Amarghosh
Является ли файл .strings Regular? Если нет, вам нужен полный парсер, а не просто регулярное выражение. –