#ios #uikit #uidatepicker
#iOS #uikit #uidatepicker
Вопрос:
Как я могу локализовать метку «сегодня» в режиме даты и времени UIDatePicker
?
Мне нужен русский язык, поэтому я установил UIDatePicker
locale, установил region и language в настройках устройства, установил «Localization native development region» и свойство «Localizations» в info.plist
значение «ru», но это не имело никакого значения — все метки месяцев и дней являются русскими, но метка «сегодня» по-прежнему «сегодня».
Ответ №1:
С помощью следующего кода весь текст в средстве выбора даты был локализован, включая строку «Сегодня»:
//Localizing the datepicker
NSLocale * locale = [[NSLocale alloc] initWithLocaleIdentifier:NSLocalizedString(@"en_US",nil)];
datePicker.locale = locale;
datePicker.calendar.locale = locale;
Здесь я использую NSLocalizedString для замены «en_US» (ключ) на соответствующий идентификатор локали (значение).Это делается с помощью соответствующего файла Localizable.strings для той конкретной локали / языка, на котором вам нужно добавить:
/*==== Locale identifier ====*/
"en_US"="it_IT";
Здесь я использовал итальянский (Италия).
Комментарии:
1. Здесь datepicker.calendar.locale=locale; является избыточным
Ответ №2:
Проблема была решена путем создания локализованного ресурса .xib (просто добавьте локализацию в IB в .xib с помощью DatePicker и больше ничего не делайте).
Может кто-нибудь объяснить, почему?
Ответ №3:
Да, есть два компонента для локализации. первый — это ваш файл strings.lproj, который содержит ваши пары ключ-значение для каждого языка, а второй, и не менее важный, — это локализованные xibb или раскадровки. Эти два файла автоматически связываются друг с другом с помощью Xcode. Итак, требуется локализуемый файл ru.lproj.strings, а также локализованный русский Xib в вашем случае.