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