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/en-US/docs/Web/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/questions/49562997/how-do-you-get-a-country-from-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/tt1825683/?pf_rd_m=A2FGELUUNOQJNL&pf_rd_p=740b2354-425b-4cd3-947b-7f9cb4349875&pf_rd_r=0N0CKVCN6VH19XRS6ZX3&pf_rd_s=right-7&pf_rd_t=15061&pf_rd_i=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