2015-07-01 48 views
6

Tôi có các yêu cầu này mà tôi cần phải chuyển đổi mã quốc gia tương đương thành tên quốc gia bằng tiếng Đức. Tôi đang sử dụng trình tạo miền địa phương cho mã của mình.Thay đổi tên quốc gia bằng tiếng Anh sang tiếng Đức bằng cách sử dụng Locale

Dưới đây là mã của tôi:

Người đầu tiên tôi đã làm là thế này:

Locale locale = new Locale("GERMANY", "AT"); 

tạo đầu ra: German (Austria)

Thứ hai:

Locale aLocale = new Locale.Builder().setLanguage("de").setRegion("AT").build(); 

sản lượng tạo: German (Austria)

Điều tôi cần là Chuyển đổi mã quốc gia "AT" thành tiếng Áo sang tiếng Đức và cần tạo Österreich.

Trả lời

2

Phương pháp này getDisplayCountry() của Locale có thể mất một lập luận Locale mà ngôn ngữ để cố gắng hiển thị nó trong Ví dụ:.

Locale locale = new Locale("de", "AT"); 
System.out.println(locale.getDisplayCountry(locale)); 

in cho tôi

Österreich 

Nếu bạn muốn toàn bộ ngôn ngữ của , chỉ cần sử dụng getDisplayName() với thông số thay vì getDisplayCountry().

này không được bảo đảm để làm việc cho mỗi sự kết hợp của miền địa phương. Theo các tài liệu:

Nếu tên trở lại không thể được định vị theo [các quy Locale tham số] (nói, chúng tôi không có một cái tên tiếng Nhật cho Croatia), chức năng này rơi trở lại vào tên tiếng Anh, và cuối cùng trên mã ISO là giá trị cuối cùng.

Cũng lưu ý rằng mã ngôn ngữ cho Đức là "de", không "GERMANY".

+0

hi @ Dan, nó làm việc. Cảm ơn bạn rất nhiều :) – pinkpanther

2

Java Locale s không phải là dịch vụ dịch thuật. Chúng được sử dụng để mô tả các thành phần được bản địa hóa, ví dụ: bạn có thể có một Map<Locale, String> austria có chứa ánh xạ từ en đến "Austria"de_AT đến "Österreich". Nhiều khả năng, bạn sẽ sử dụng Gói tài nguyên để ánh xạ Locale giây cho một số bản dịch mà bạn có thể sử dụng trong suốt ứng dụng của mình. Đây là số ResourceBundle tutorial.

Nếu bạn muốn dịch văn bản sang ngôn ngữ khác, bạn sẽ cần phải sử dụng một số loại dịch vụ dịch thuật, như Google's Translate API.

Các vấn đề liên quan