initWithNibName: bundle: всегда загружать английское перо - PullRequest
2 голосов
/ 06 апреля 2011

Я локализовал свой файл ContactView.xib на английский и французский языки, и обычно он должен загружаться автоматически.Я использую initWithNibName: bundle: метод UIViewController для инициализации объекта, но результат всегда один и тот же: загруженный файл - английский!

Я очистил проект, переустановил приложение и так далее,но ничего не работает, французская версия моего xib-файла просто игнорируется!

Я знаю, что есть связанный пост ( здесь ), но проблема не совсем та, она постоянная, несмотря намои усилия.

Вот пример кода, который я написал:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil contact:(Contact *)aContact
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self != nil)
    {
        self.contact = aContact;
    }
    return self;
}

Есть ли что-нибудь еще, чтобы загрузить файл в соответствующей локали?Я проверил настройки на устройстве (или симуляторе) и загруженном в модуль и локали каждый раз на французском.

Заранее спасибо,

Geoffroy.

Ответы [ 2 ]

4 голосов
/ 06 апреля 2011

У меня была очень похожая проблема сегодня, и я потратил на нее около 2 часов.

В конце я удалил локализованный XIB через "-" в локализации меню. Затем мне пришлось удалить .XIB файл в проекте

(обязательно сохраните его где-нибудь, прежде чем что-то удалять - вы не сможете его вернуть !!).

Затем я перетащил файл .XIB обратно в проект. И наконец это сработало

После всего, что я мог правильно локализовать, и это сработало. Но позвольте мне сказать вам, я НИКОГДА не начну локализовать, пока приложение не будет готово на 200%. Кажется, в xCode4 есть серьезная ошибка. (Он даже пару раз падал на меня - наверное, потому что там была ссылка на какой-то xib, который нигде не мог найти на HDD.

Эта ошибка исчезла только после описанной процедуры. Даже удаление файла .XIB из проекта и удаление его с жесткого диска все равно не помогло. XCode с радостью начал с этого .XIB (откуда бы он его ни взял).

Удачи! (Я потратил слишком много времени на это сегодня!)

0 голосов
/ 20 марта 2015

Для справки, думаю, я выяснил, что вызывает эту проблему:

Вы локализовали свою французскую версию как файл "Strings"? Если так, попробуйте это:

  • Выберите .xib (корневая запись, а не локализованная версия)

  • В инспекторе отметьте: Документ Интерфейсного Разработчика → Редактирование документов → Сборки для

В моем случае было написано «OS X 10.7 и более поздние версии», и я столкнулся с той же проблемой. Я установил его на «OS X 10.10» и после очередной чистой сборки все работает.

Я подозреваю, что ваша французская локализация не была загружена, поскольку формат файла .xib еще не был совместим с локализацией .strings (я не совсем помню, когда это было введено).

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