Вопрос по uidatepicker, objective-c, iphone, localization – Могу ли я локализовать UIDatePicker?

9

Я пытаюсь локализовать UIDatePicker. Документы Apple говорят, что он должен автоматически определять текущую локаль, но язык остается неизменным, независимо от того, какой язык я выберу. Что мне нужно сделать?

Ваш Ответ

4   ответа
5

NSLocale в UIDatePicker вернулся с iOS 6. Настройки телефона в iOS 6 игнорируются и по умолчанию используют локаль en_US, поэтому вы должны установить локаль в коде

если вы установите свойство locale в iOS 5.1.1, оно тоже будет работать. Настройки телефона / планшета тоже игнорируются
Если вы создаетеUIDatePicker программно он будет инициализирован с[NSLocale currentLocale], Если вы создаете его в xib-файле, убедитесь, что указано значение & quot; Locale & quot; атрибут "По умолчанию" иnot & quot; Английский (США) & quot ;.
11

Свойство locale (и все остальные свойства формата, специфичные для данной страны) по умолчанию имеет значение, возвращаемоеcurrentLocaleчто, в свою очередь, зависит от настроек страны в iphone, а не от языковых настроек. Вам необходимо установить соответствующую страну в общих настройках iphone.

Посмотрите комментарии kraag22 и Дейва Делонга на ответе FunkyKat ниже
локаль для NSDatepicker устарела в ios 5.1
0

UIDatePicker имеетместо действия имущество; если вы не установите его, он должен по умолчанию использовать предпочтительный языковой стандарт для пользователя. Когда вы говорите «независимо от того, какой язык я выбираю» что вы имеете в виду - пытаетесь ли вы программно изменить языковой стандарт или меняете языковой стандарт устройства по умолчанию на странице настроек?

Я имею в виду международную настройку в настройках. У меня все остальное настроено как NSLocalizedString, и все это прекрасно транслируется. Однако, скажем, я установил язык на французский в настройках. Мой UIDatePicker не будет отображать месяцы на французском языке. Я вообще не установил локаль, поэтому решил, что это должно отображать правильную локаль. Однако это не так.
как вы инициализируете выбор даты? Вы оставляете для свойства locale и calendar значение nil или задаете для них значение?
Они установлены в ноль.
Также я полностью инициализирую datePicker с помощью кода. Вот мой код на pastebin.pastebin.com/m51df66f7
Свойство bty locale UIDatePicker устарело в iOS5.
2

Из моего опыта, вiOS5 UIDatePicker, кажется, игнорирует установленную локаль и использует локаль, предоставленную из общих настроек. Но это должно нормально работать вiOS6.

Вы проверяли это на iOS6?
Да, я сделал. Это было приложение, разработанное полностью для арабского языка. Я установил локаль из раскадровки иviewDidLoad и язык выбора даты был английский, под iOS5, как и настройки симулятора. Тем не менее, он работал для iOS6 только из раскадровки, не устанавливая его изviewDidLoad, Извините за поздний ответ, я только что видел ваш комментарий.

Похожие вопросы