Jak uzyskać państwo z języka?

0

Jeśli mam przeglądarkę w języku angielskim (US), to nagłówek zwraca mi en_US. Otrzymuję tutaj kod kraju USA. Ale na przykład, kiedy używam języka japońskiego i pobieram nagłówek, otrzymuję ja. Otrzymuję tylko kod języka. Nie podano kodu kraju, np. JP. Czy możliwe jest uzyskanie kodu kraju w jakiś sposób w oparciu o język? Języki takie jak angielski lub arabski są używane w wielu krajach, ich kod wygląda tak jak en-CA en-IE en-NZ ar-DZ ar-BH ar-EG. Jednak takie języki, jak duński lub polski, są używane tylko przez jeden kraj. Dlatego ich kod wygląda na tak da pl. I dlatego, jeśli otrzymam tylko język, chciałbym uzyskać kod kraju, np. Dla języka duńskiego byłby to DK. Jest to możliwe?

1

Tam jest kod kraju, ale nie wiem czy o taki Ci chodzi.
To jest kraj z którego dany wariant języka pochodzi.
Nic nie stoi na przeszkodzie żeby ktoś w Warszawie ustawił sobie kod języka en_UK (np. konsultant który przyjechał na 1 projekt).
Co wtedy zrobisz ze swoją logiką? Czy na pewno będzie dobrze działać?

Wersja brute force:


    public static void main (String[] args) throws java.lang.Exception
    {
        Scanner sc = new Scanner(System.in);
        String lang;

        while((lang = sc.nextLine()) != null) {
            if (lang.length() % 5 > 0) {
                lang = lang + "_" + lang.toUpperCase();
            }
            System.out.println(lang);
        }
    }

https://ideone.com/rRcfPt

Więcej: http://www.oracle.com/us/technologies/java/locale-140624.html

1

Na drugiej pozycji wcale nie musi być kod regionu. Poprawnym identyfikatorem jest np. sr-Latn oznaczający serbski zapisany alfabetem łacińskim bez określania regionu, już nie wspominając o kodzie sl-Cyrl-YU-rozaj-solba-1994 ;).

A odpowiadając bezpośrednio na Twoje pytanie - tak, musisz sobie zbudować mapę język => kraj.

PS. Co temat ma wspólnego z Javą?

1

@Czarek12: Zacznij od informacji podstawowej - standardy które opisują podane przez Ciebie źródło:
https://developer.mozilla.org[...]HTTP/Headers/Content-Language

A potem to już googlasz: java convert language to country code iso 639
i wychodzi:

1

Dzięki, ale dostałem już na SO https://stackoverflow.com/que[...]om-language/49565137#49565137 odpowiedź. Że nie wpadłem na to.

PS: Robię to w taki sposób, bo chcę uzyskać efekt podobny do tego jaki występuje na stronie IMDB. Czyli jeśli mam przeglądarkę w języku polskim i konkretny film posiada zapisany inny tytuł w języku polskim, to chcę go wyświetlić na stronie filmu zamiast oryginalnego. Wejdźcie sobie np. na stronę filmu Black Panether http://www.imdb.com/title/tt1[...]7&pf_rd_t=15061&pf_rdi=homepage&ref=hm_cht_t1. IMDB identyfikuje kraj i w miejscu gdzie powinien być oryginalny język stawia ten odpowiedni dla regionu klienta.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0