Tôi đang cố gắng bản địa hóa UIDatePicker. Tài liệu của Apple nói rằng nó nên tự động phát hiện ngôn ngữ hiện tại, nhưng ngôn ngữ vẫn như cũ, bất kể ngôn ngữ tôi chọn là gì. Tôi phải làm gì đây?Tôi có thể bản địa hóa UIDatePicker không?
Trả lời
UIDatePicker có thuộc tính locale; nếu bạn không đặt nó, nó sẽ mặc định là ngôn ngữ ưa thích của người dùng. Khi bạn nói "không có vấn đề gì ngôn ngữ tôi chọn" ý của bạn là gì - bạn đang cố thay đổi ngôn ngữ lập trình hay bạn đang thay đổi ngôn ngữ mặc định của thiết bị bằng cách sử dụng trang Cài đặt?
Thuộc tính miền địa phương (và tất cả các thuộc tính định dạng cụ thể theo quốc gia khác) mặc định là giá trị trả về bởi currentLocale, lần lượt tùy thuộc vào cài đặt quốc gia của iphone chứ không phải cài đặt ngôn ngữ. Bạn cần đặt quốc gia phù hợp trong cài đặt chung của iphone.
locale cho NSDatepicker bị phản đối ở ios 5.1 – Raj
Kiểm tra kraag22 và ý kiến Dave DeLong tại FunkyKat câu trả lời dưới đây –
NSLocale trong UIDatePicker là trở lại kể từ khi iOS 6. Cài đặt điện thoại trong iOS 6 sẽ được bỏ qua và sử dụng en_US locale theo mặc định, vì vậy bạn phải thiết lập miền địa phương trong mã
nếu bạn thiết lập thuộc tính địa phương trong iOS 5.1.1 nó cũng hoạt động tốt. Cài đặt điện thoại/Pad được bỏ qua quá – kraag22
Nếu bạn tạo một 'UIDatePicker' theo lập trình, nó sẽ được khởi tạo với' [NSLocale currentLocale] '. Nếu bạn đang tạo nó trong một xib, thì hãy đảm bảo giá trị của thuộc tính "Locale" là "Mặc định" và * không * "tiếng Anh (Hoa Kỳ)". –
Từ kinh nghiệm của tôi, trong iOS5 UIDatePicker dường như bỏ qua vị trí đã đặt và sử dụng ngôn ngữ được cung cấp từ cài đặt chung. Nhưng nó sẽ hoạt động tốt trong iOS6.
bạn đã thử nghiệm trên iOS6 chưa? – Rob
Vâng, tôi đã làm. Nó là một ứng dụng được phát triển hoàn toàn cho tiếng Ả Rập. Tôi đặt ngôn ngữ từ bảng phân cảnh và ** viewDidLoad ** và miền địa phương của bộ chọn ngày là tiếng Anh, dưới iOS5, như cài đặt của trình mô phỏng. Tuy nhiên, nó hoạt động cho iOS6 ngay từ bảng phân cảnh mà không cần cài đặt từ ** viewDidLoad **. Xin lỗi vì trả lời muộn, tôi vừa thấy bình luận của bạn. –
Tôi đang tham khảo cài đặt Quốc tế trong Tùy chọn. Tôi có mọi thứ khác được thiết lập để trở thành một NSLocalizedString, và tất cả đều dịch tuyệt vời. Tuy nhiên, nói rằng tôi đặt ngôn ngữ sang tiếng Pháp trong Preferences. UIDatePicker của tôi sẽ không hiển thị tháng bằng tiếng Pháp. Tôi đã không đặt ngôn ngữ ở tất cả, vì vậy tôi figured rằng điều này sẽ hiển thị miền địa phương chính xác. Tuy nhiên, nó không phải. –
Bạn đang khởi tạo bộ chọn ngày như thế nào? bạn có để lại thuộc tính lịch và địa phương được đặt thành 0 hay không hoặc bạn có đặt chúng thành thứ gì đó không? –
Chúng được đặt thành 0. –