我需要發送我的服務器本地化的列表特定字符串。iPhone/iOS版:我怎樣才能在我的應用程序本地化的所有語言的本地化字符串列表?
意義,如果我的應用程序有一個字符串富被定位爲在俄羅斯的英文@「foo」和@「Фу」,我想向服務器發送一個列表,諸如這樣的:
- 字符串富:
- 英語: 「富」
- 俄羅斯: 「Фу」
我想我需要能夠做的是:
- 我的應用程序本地化爲
- 獲取foo的本地化版本爲每種語言每種語言枚舉本地化字符串
我該怎麼辦(1),我該怎麼辦(2)?
我需要發送我的服務器本地化的列表特定字符串。iPhone/iOS版:我怎樣才能在我的應用程序本地化的所有語言的本地化字符串列表?
意義,如果我的應用程序有一個字符串富被定位爲在俄羅斯的英文@「foo」和@「Фу」,我想向服務器發送一個列表,諸如這樣的:
我想我需要能夠做的是:
我該怎麼辦(1),我該怎麼辦(2)?
您可以通過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));
}
這聽起來很合理;我看到所需的其他選項改寫我們檢索串的方式,但這種方式是微創,看起來像它做什麼,我需要的。我今天會嘗試。 – 2011-06-24 16:39:05
幫我太:) – Swati 2012-09-06 09:03:19
注意,代碼樣本中'pathForResource'第一次調用上面將返回路徑,*電流*本地化,不一定是英語一個(例如,如果你的模擬器/設備設置爲德語,你將得到的路徑'de.lproj/Localizable.strings')。 – Alessandro 2013-03-29 12:24:57
你看過'NSLocalizedStringFromTable'嗎? http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_Functions/Reference/reference.html%23//apple_ref/c/macro/NSLocalizedStringFromTableInBundle – joshpaul 2011-06-10 18:55:43
從表似乎是一個分隔字符串的方式,而不是將它們全部保存在一個默認表中。這不是我想要的。我想獲得特定字符串的所有不同的本地化。 – 2011-06-12 20:12:09