Преобразование "fr_FR" в "французский (Франция)" в обоих направлениях. (Objective-C iPhone) - PullRequest
0 голосов
/ 21 мая 2010

Я могу легко изменить короткий код региона (en_US) в более длинную строку ... но есть ли простой способ также двигаться в другом направлении?

[displayInEnglish displayNameForKey:NSLocaleIdentifier value:regionCountryCode];

"en_US" становится "Английский (США) ".

" Английский (США) "становится" en_US ".

В настоящее время я сохраняю короткий код региона в базе данных .... но когда я показываюнекоторые совокупные результаты ... Мне нужно отобразить более длинные строки для пользователя.

Или я должен просто сохранить более длинные строки прямо в базе данных ... и даже не беспокоиться об их "преобразовании" позже?

Я пытаюсь показать «общее количество долларов» для каждой страны.

Если бы вы были пользователем ... который вы, скорее всего, хотели бы видеть (для списка по общей валюте)?

  • Всего по «французскому»
  • Всего по «Франции»
  • Всего по «французскому»
  • A «fr_Fr»всего?

Ответы [ 2 ]

1 голос
/ 21 мая 2010

Один из вариантов - построить карту самостоятельно и сохранить ее. У вас есть все коды, которые вы хотите, и вы можете преобразовать их в более длинную строку, поэтому просто сохраните более длинную строку => отображение кода:

NSMutableDictionary * nameToCode = [NSMutableDictionary dictionary];
NSArray * codes = [NSArray arrayWithObjects:@"en_US", @"en_GB", @"fr_FR", @"pt_PT"];
NSLocale * english = [[NSLocale alloc] initWithLocaleIdentifier:@"en"];

for (NSString * code in codes) {
  NSString * displayName = [english displayNameForKey:NSLocaleIdentifier value:code];
  [nameToCode setObject:code forKey:displayName];
}

Тогда вы можете сделать:

NSString * code = [nameToCode objectForKey:@"French (France)"];
0 голосов
/ 21 мая 2010

Я согласен с Дэвидом (который печатает быстрее меня): создайте справочную таблицу. Просто. Дешевые. быстрый. Если вы знаете, что уже вызывали displayInEnglish, то структурируйте его как кеш, а не создавайте большую таблицу с ненужными записями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...