Локализация с помощью NSLocalizedString или в .xib

Я ищу информацию, которую я не нашел в Интернете. Я хотел бы знать, в какой версии iOS появился NSLocalizedString? (может оно здесь еще с первой версии iOS?)

Я также хотел бы знать, в каком случае использовать локализацию в .xib и в каком случае использовать NSLocalizedString?

Я задаю этот вопрос, потому что я работаю над проектом iOS, используя локализацию в файлах .xib И NSLocalizedString, и я действительно не знаю, почему используются эти два метода... (это старый проект, поэтому я задаю первый вопрос ^^)

Последний вопрос, для нового проекта, какой из этих двух методов вы бы предпочли?

Извините за все эти вопросы, и спасибо за ответ! знак равно


person Aïto    schedule 02.07.2015    source источник


Ответы (4)


Локализация с использованием xib-файлов используется, когда мы хотим локализовать элементы в пользовательском интерфейсе, например, когда вы хотите показать разные изображения с локализованным текстом для определенного UIButton.
Этого можно добиться с помощью локализованных xib-файлов. Для каждого языка будут отдельные файлы xib. И когда вы устанавливаете любой текст в пользовательском интерфейсе с вашего контроллера, NSLocalizedString.
Надеюсь, это поможет.

person shoan    schedule 02.07.2015

NSLocalizedString было впервые доступно в версии 10.0

Поэтому я программно локализую с помощью NSLocalizedString, потому что таким образом я могу хранить все свои строки в одном месте.

Вместо .xib генерации локализации, потому что при этом у вас будет файл строк для каждого xib, который у вас есть.

Однако если у вас есть .xib, который вы не изменяете программно (т. е. у вас нет пользовательского класса, установленного как file's owner), вы не сможете программно установить NSLocalizedStrings. В этом случае вам придется сгенерировать файлы строк через файл .xib.

Кроме того, немного сложнее получить доступ к строковым файлам, связанным с .xib, потому что они напрямую связаны с .xib.

person A O    schedule 02.07.2015

NSLocalizedString существует с iOS 1.

В основном вам нужно NSLocalizedString для всех динамически создаваемых строк.

В новом проекте я бы рекомендовал AutoLayout и Base Localization. Существует один файл .xib, и все локализации и настройки макета выполняются во время выполнения с помощью файлов .strings.

person vadian    schedule 02.07.2015

Вероятно, этот вопрос мертв, но я прыгнул сюда в поисках метода локализации строк xib, и эта страница была первым результатом.

Вы можете использовать как NSLocalizedString, так и xib. Посмотрите этот ответ: https://stackoverflow.com/a/21443515/907720 подробно обсуждается здесь: https://medium.com/zendesk-engineering/ios-how-to-add-adaptive-constraints-to-support-a-universal-app-273663475b12

person makeroo    schedule 02.10.2019