我需要向服务器发送特定字符串的本地化列表。
意思是,如果我的应用程序有一个字符串Foo,其本地化为英语为@“Foo”,俄语为@“Фу”,我想向服务器发送如下列表:
我认为我需要做的是:
我该怎么做(1)以及如何做(2)?
答案 0 :(得分:33)
您可以通过将English.lproj / Localizable.strings作为字典读取并获取其键来检索所有字符串键:
NSString *stringsPath = [[NSBundle mainBundle] pathForResource:@"Localizable" ofType:@"strings"];
NSDictionary *dictionary = [NSDictionary dictionaryWithContentsOfFile:stringsPath];
要获取每种语言的翻译,您可以迭代每个英语密钥的语言并使用NSLocalizedStringFromTableInBundle
:
for (NSString *language in [[NSUserDefaults standardUserDefaults] objectForKey:@"AppleLanguages"]) {
NSBundle *bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]];
NSLog(@"%@: %@", language, NSLocalizedStringFromTableInBundle(@"Testing", @"Localizable", bundle, nil));
}