2011-07-02 11 views

Odpowiedz

13

Nie można, ponieważ do przechowywania języka używany jest język, a nie kraj. Może zawierać język dla określonego kraju i dla konkretnego wariantu w tym kraju, ale jest to język pierwszy. I nie ma relacji jeden do jednego między językiem a krajem. Większość języków jest używanych w różnych krajach, a wiele krajów ma kilka języków.

Jeśli masz kod kraju dla języka, możesz użyć new Locale(code). Ale z kodem kraju, wszystko, co możesz zrobić, to zadzwonić pod numer getAvailableLocales, przejrzeć wyniki i znaleźć taki, który ma twój kod kraju. Ale może być ich kilka.

2

You można też utworzyć ustawienia regionalne,

new Locale("en", "US") 
new Locale("fr", "FR") 

lub

iterację Locale.getAvailableLocales() dopóki nie znajdziesz swojego lokum, a następnie użyć tej instancji.

1

W języku Java7 jest Locale.Builder, ale przed etyką nie ma łatwego sposobu. Można jednak utworzyć metodę użytkowy:

  1. pętlę Locale.getAvailableLocales()
  2. dla każdego sprawdzić, czy locale.getCountryCode().equals(countryCodeParam) i powrócić to
2

Locale jest określona przede wszystkim przez ISO 639 kod języka, możliwa również kod kraju ISO-3166 i wariant. Klasa Locale zawiera konstruktory, które pobierają tylko kod języka, lub dodatkowo kod kraju lub dodatkowo wariant.

Jeśli posiadasz tylko numer kierunkowy kraju, potrzebujesz najpierw mapy, która zamienia ją na kod języka - ale to niekoniecznie daje unikalny wynik, wiele krajów używa więcej niż jednego języka urzędowego.

Powiązane problemy