質問

I was wondering if I could define a dictionary of key/value pairs to use as my language localization strings at run time in an ios app. The current method of changing language localization setting depends on an appropriate strings file being defined in the bundle when the app is initially built.

So instead of saying something like

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

Say something like

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

Implementation

+ (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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top