Có thể có cách dễ dàng hơn điều này (xem câu trả lời khác), nhưng điều này là mạnh mẽ nhất, và miễn là nguyên tắc chung của việc bản địa hóa ứng dụng thông qua strings
-file không bị lỗi thời, phương pháp này sẽ làm việc.
Nói chung, bạn không cần phải lấy ngôn ngữ ứng dụng (nhưng đọc tiếp, có thể!) Nếu bạn muốn văn bản được bản địa hóa, bạn sử dụng NSLocalizedString()
. Nếu bạn cần bản địa hóa hình ảnh, bạn sử dụng tài nguyên được bản địa hóa, v.v. Tuy nhiên, có những lý do mà tôi có thể nghĩ đến điều đó sẽ giúp bạn có được "miền địa phương ứng dụng", như bạn gọi nó: ví dụ về phân tích (bạn muốn biết ngôn ngữ ứng dụng của bạn được sử dụng), hoặc để cung cấp giao diện một ngôn ngữ nhất quán cho người dùng nếu bạn sử dụng giao tiếp dựa trên máy chủ (ví dụ: để bản địa hóa thông báo lỗi máy chủ bằng cùng một ngôn ngữ mà người dùng nhìn thấy bên trong ứng dụng.)
Nếu bạn muốn bản địa hóa ứng dụng hiện đang hiển thị, tôi cho rằng bạn có tệp Localizable.strings
cho từng ngôn ngữ được hỗ trợ.Vì vậy, trong Vietnamesisch chuỗi-file, bạn có thể thêm dòng
"lang" = "en";
và trong Pháp chuỗi-file bạn thêm dòng
"lang" = "fr";
sau đó, bạn luôn có thể nhận được các ứng dụng bản địa bằng cách gọi NSLocalizedString("lang")
(nhanh) hoặc NSLocalizedString(@"lang")
(mục tiêu-C). Và tất nhiên, bất cứ khi nào bạn thêm bản địa hóa mới vào ứng dụng của mình, bạn phải đặt mục nhập "lang" vào tệp chuỗi bản địa hóa mới.
Tuyệt vời! Có cách nào tôi có thể chuyển nó sang 'NSLocale'? – Alexandr
http://stackoverflow.com/questions/6177309/nslocale-and-country-name –
Ăn cắp câu trả lời của người khác không phải là điều chúng tôi làm trên Stack Overflow, đặc biệt là không có tín dụng. Nếu câu trả lời cho một câu hỏi khác có thể giải quyết nó thì hãy bỏ phiếu để đóng như trùng lặp. Đừng đánh cắp câu trả lời. – Fogmeister