在ios应用程序的运行时设置和创build本地化string

我想知道是否可以定义一个键/值对字典作为我的语言本地化string在运行时在iOS应用程序中使用。 当前改变语言本地化设置的方法取决于最初构build应用程序时在包中定义的适当的string文件。

所以不要这样说

NSLocalizedStringFromTableInBundle(@"Greeting", nil, localeBundle, nil); 

说一些像

 NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Hello", @"Greeting"]; NSLocalizedStringFromTableInBundle(@"Greeting", nil, myDictionary, nil); 

Haeder

 #define MyLocalizedString(key, dict) \ [LocalizationUtils localizedStringWithKey:(key) fromDict:(dict)] @interface LocalizationUtils : NSObject + (NSString *) localizedStringWithKey:(NSString *)key fromDict:(NSDictionary *)dict; @end 

履行

 + (NSString *) localizedStringWithKey:(NSString *)key fromDict:(NSDictionary *)dict { NSString *localizedString; if (!dict) { // use NSLocalizedString or sth as a fallback. // ... } // get your string from dict return localizedString; }