在运行时在ios应用程序中设置和创建本地化字符串

时间:2014-04-03 12:18:02

标签: ios localization

我想知道我是否可以在ios应用程序中定义一个键/值对的字典,以用作我在运行时的语言本地化字符串。当前更改语言本地化设置的方法取决于最初构建应用程序时在包中定义的相应字符串文件。

所以不要说像

这样的东西
NSLocalizedStringFromTableInBundle(@"Greeting", nil, localeBundle, nil);

说出类似

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

1 个答案:

答案 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;
}