我想知道我是否可以在ios应用程序中定义一个键/值对的字典,以用作我在运行时的语言本地化字符串。当前更改语言本地化设置的方法取决于最初构建应用程序时在包中定义的相应字符串文件。
所以不要说像
这样的东西NSLocalizedStringFromTableInBundle(@"Greeting", nil, localeBundle, nil);
说出类似
的内容NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"Hello", @"Greeting"];
NSLocalizedStringFromTableInBundle(@"Greeting", nil, myDictionary, nil);
答案 0 :(得分:1)
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;
}