Jak uzyskać państwo z języka?

Jak uzyskać państwo z języka?
C1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:87
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?

vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
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:

Kopiuj

	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

zyxist
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 6 lat
  • Postów:101
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ą?


vpiotr
Pewnie chodzi o API. To co podałeś raczej nie pasuje chyba do ISO 3166?
zyxist
ISO 3166 definiuje tylko kody i nic więcej. Stringi, o które pyta autor to element specyfikacji Unicode CLDR, która po prostu te kody wykorzystuje i całkowicie poprawny jest zapis sr-Latn: http://cldr.unicode.org , https://unicode.org/cldr/utility/languageid.jsp?a=sr-Cyrl&l=en
vpiotr
Skąd pomysł że chodzi o standard Unicode też nie wiem.
zyxist
Bo autor pisze, że wyciągnął to z nagłówka HTTP, a ten opisuje Locale wg specyfikacji RFC 5646, a praktyczna implementacja to Unicode CLDR? https://tools.ietf.org/html/rfc5646#page-4
vpiotr
No tak, to nadal nie ma nic wspólnego z Unicode, ale OK, info o nagłówku przeoczyłem.
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
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:

edytowany 1x, ostatnio: vpiotr
C1
  • Rejestracja:ponad 7 lat
  • Ostatnio:ponad 6 lat
  • Postów:87
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.

edytowany 3x, ostatnio: Czarek12
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)