Локализация строк с помощью XCode 4.2 (IOS-IPhone dev) - PullRequest
1 голос
/ 26 января 2012

На некоторых моих экранах в моей программе локализованные строки работают, а на некоторых нет. (Xcode 4.2)

Что я сделал:

  1. Добавлены строки Localizable.strings в папку «Ресурсы»

  2. в моем .h файле внутри @interface ClassViewController: UIViewController {} Я добавил:

    IBOutlet UILable *labelName;
    
  3. Также в .h файле я добавил

    property (nonatomic, assign) IBOutlet UILabel *labelName;
    
  4. В файле .m я добавил:

    @synthetize labelName;
    
  5. Еще в .m файле я добавил внутрь "- (foid) dealloc":

    [labelName release];
    
  6. В - (void) viewDidLoad Я добавил:

    self.labelName.text = [NSString stringWithFormat:@"KEY"];
    
  7. Наконец, в файле xib (с менеджером интерфейса) я связал объект метки с переменной.

Итак, как я уже сказал, этот метод работает на одном экране, а не на других. Есть идеи?

Решение:

Это какая глупая ошибка. строка для ввода текста должна быть:

NSLocalizedString(@"KEY", nil);

Ответы [ 4 ]

4 голосов
/ 26 января 2012

Используйте вместо:

self.labelName.text = NSLocalizedString(@"KEY", "");

Из документации:

  • Имя : NSLocalizedString
  • Описание : NSString * NSLocalizedString (ключ NSString *, комментарий NSString *)
  • Доступность : iOS (2.0 и более поздние версии)
  • Abstract : Возвращает локализованную версию строки.
1 голос
/ 11 мая 2012

В XCode-4.2 вы можете сделать следующее:

  1. Нажмите «target»
  2. Затем выберите «Build Phase»
  3. Выберите «Add Build Phase» и выберите «Add Copy files».
  4. После выберите «copy files (int item)». (Где «int» может быть 1 или 2 или 3 и т. Д., В зависимости от количества элементовранее были созданы). Установите «Назначение» в «Ресурсы».
  5. Теперь нажмите «+» и выберите созданный файл «.string» (например, localization.string).

Это работает, надеюсь, это поможет вам.

1 голос
/ 26 января 2012

Как указал Винс, вам нужно использовать функцию NSLocalizedString.Так что в этом случае код в 6 будет:

    self.labelName.text = NSLocalizedString(@"The key for this label",@"Some comment");

Это должно работать для вас.

0 голосов
/ 26 января 2012

Что, по вашему мнению, делает эта строка?

self.labelName.text = [NSString stringWithFormat:@"KEY"];

Поскольку это функционально эквивалентно написанию этого:

self.labelName.text = @"KEY";

Но я подозреваю, что вместо этого вы хотели написать следующее:

self.labelName.text = NSLocalizedString(@"KEY", @"description");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...