2009-07-20 8 views
9

Próbuję zlokalizować UIDatePicker. Dokumenty Apple mówią, że powinien on automatycznie wykrywać aktualne ustawienia narodowe, ale język pozostaje taki sam, bez względu na wybrany język. Co mam do zrobienia?Czy mogę zlokalizować UIDatePicker?

Odpowiedz

0

UIDatePicker ma właściwość locale; jeśli go nie ustawisz, powinno to być domyślne ustawienie regionalne użytkownika. Kiedy mówisz "bez względu na wybrany język", co masz na myśli - czy programujesz programowo ustawienia regionalne, czy zmieniasz domyślne ustawienia regionalne urządzenia na stronie Ustawienia?

+0

Mam na myśli ustawienie międzynarodowe w Preferencjach. Mam wszystko inne skonfigurowane na NSLocalizedString, i to wszystko tłumaczy wspaniale. Powiedzmy jednak, że ustawiłem język na francuski w Preferencjach. Mój UIDatePicker nie wyświetli miesięcy w języku francuskim. Nie ustawiłem w ogóle ustawień regionalnych, więc uznałem, że powinno to wyświetlać poprawne ustawienia narodowe. Jednak tak nie jest. –

+0

w jaki sposób inicjujesz wybór daty? czy pozostawiasz ustawienia narodowe i właściwości kalendarza ustawione na zero, czy też je ustawiasz? –

+0

Są ustawione na zero. –

11

Właściwość ustawień narodowych (i wszystkie inne właściwości formatu dla danego kraju) domyślnie przyjmuje wartość zwróconą przez currentLocale, która z kolei zależy od ustawień kraju iphone, a nie ustawień językowych. Musisz ustawić odpowiedni kraj w ogólnych ustawieniach iphone.

+2

locale dla NSDatepicker jest przestarzałe w iOS 5.1 – Raj

+0

Sprawdź kraag22 i komentarze Dave Delong pod adresem FunkyKat odpowiedź poniżej –

5

NSLocale w UIDatePicker powraca od iOS 6. Ustawienia telefonu w iOS 6 są ignorowane i używane pl locale domyślnie, więc trzeba ustawić ustawienia regionalne w kodzie

+1

jeśli ustawisz właściwość locale w iOS 5.1.1 również działa dobrze. Ustawienia telefonu/pad są również ignorowane. – kraag22

+2

Jeśli programistycznie utworzysz 'UIDatePicker', zostanie on zainicjalizowany za pomocą' [NSLocale currentLocale] '. Jeśli tworzysz go na xib, upewnij się, że wartość atrybutu "Lokalizacja" to "Domyślna", a * nie * "Angielska (Stany Zjednoczone)". –

2

Z mojego doświadczenia, w iOS5 UIDatePicker zdaje się ignorować zestaw ustawień i użyj ustawień narodowych podanych w ustawieniach ogólnych. Ale powinno działać dobrze w iOS6.

+0

czy przetestowałeś go na iOS6? – Rob

+0

Tak, zrobiłem. Była to aplikacja opracowana wyłącznie dla języka arabskiego. Ustawiłem ustawienia regionalne z storyboardu i ** viewDidLoad **, a ustawieniem narodowym selektora daty było język angielski, pod iOS5, zgodnie z ustawieniami symulatora. To jednak działało na iOS6 tylko z storyboardu bez ustawiania go z ** viewDidLoad **. Przepraszam za spóźnioną odpowiedź, właśnie zobaczyłem twój komentarz. –

Powiązane problemy