Więcej

Lista kodów języków według kraju

Lista kodów języków według kraju


Czy ktoś zna listę krajów z powiązanymi kodami języków urzędowych? Jeszcze nic nie znalazłem przez Google.

To, czego szukam, to coś takiego:

Nazwa/kod kraju Kod języka [… ] Bułgaria (BG) bg Belgia (BE) nl, fr [… ]

Kilka dalszych wyjaśnień:

Jak nie ma korelacji między krajem a jego oficjalnym językiem (językami)?

W mojej aplikacji jest to istotne, ponieważ chcę przekierować kogoś, kto ma do niego dostęp z USA do ${path}/us/en/, więc muszę uzyskać oficjalny tag języka. Otrzymuję kod kraju z usługi internetowej geolokalizacji i potrzebuję powiązanego (oficjalnego) kodu języka.

Na przykład mam wszystko na swoim komputerze ustawione na angielski, ale mieszkam w Rumunii. Kiedy mam do niego dostęp, nie chcę być przekierowywany do wersji brytyjskiej, ro/en nie istnieje, więc chcę ro/ro.

Chciałem sprawdzić, czy istnieje już zagregowana lista, żebym nie musiał tego robić ręcznie. Jeśli nie, zbuduję jeden :).


Plik countryInfo z http://geonames.org (http://download.geonames.org/export/dump/countryInfo.txt) zawiera nazwy, kody krajów, języki i wiele innych informacji. Jest to lista oddzielona tabulatorami, więc awk lub dowolny edytor tekstu pozwoli ci wybrać tylko te kolumny, których potrzebujesz.


Informacje, których szukasz, to w rzeczywistości 2 oddzielne informacje. Nie jestem pewien, czy istnieje między nimi bezpośrednia korelacja.

Kody krajów są dostępne na: www.iso.org/iso/english_country_names_and_code_elements

Kody języków są dostępne pod adresem: www.loc.gov/standards/iso639-2/php/code_list.php

Mieszanie fragmentów informacji to coś, co robi się w „locales”. To wydaje się być czymś, co nie jest naprawdę ustandaryzowane. Wydaje się, że wiele firm robi to na własną rękę, a nawet dostarcza narzędzia do obsługi tego w takich rzeczach jak Java (patrz http://java.sun.com/developer/technicalArticles/J2SE/locale/).

Ta strona zawiera więcej informacji o tagach językowych: www.langtag.net/.

BTW, związek kodów krajów z kodem języka zwykle nie jest tak znaczący w aplikacji użytkownika. W kraju jest wielu użytkowników posługujących się językami „nie ojczystymi”. (tzn. ktoś z USA, który używa języka chińskiego lub odwrotnie.)


Przeszukanie Stack Overflow dla "listy ustawień regionalnych" spowodowało to:

https://stackoverflow.com/questions/3191664/lista-wszystkich-lokalizacji-i-ich-krótkie-kody

Wrzuć jedną z tych list do swojego ulubionego języka programowania, a następnie utwórz tabelę tak, jak chcesz.


Kody ułożone alfabetycznie według kodu alfa-3/ISO 639-2

http://www.loc.gov/standards/iso639-2/php/code_list.php

przez google> wiki> strona zewnętrzna


Lista krajowych układów odniesienia za pomocą współrzędnych

ten wykaz krajowych układów odniesienia za pomocą współrzędnych (CRS) wymienia prognozy geograficzne oficjalnie zalecane dla istniejących krajów. Biorąc pod uwagę, że każde odwzorowanie geograficzne kraju i jego sferycznej rzeczywistości na płaską powierzchnię generuje określone i dobrze znane odległości, kształty, deformacje obszarów, potrzeby każdego kraju są inne w celu zmniejszenia tych zniekształceń. Ponadto każdy kraj, aby przedstawić swoją przestrzeń geograficzną, musi wybrać odpowiednią projekcję geograficzną o niskim poziomie zniekształceń. Te krajowe prognozy lub krajowe systemy odniesienia za pomocą współrzędnych są oficjalnie ogłaszane przez odpowiednie agencje krajowe. Poniższa lista to zbiór dostępnych oficjalnych krajowych systemów odniesienia za pomocą współrzędnych.

W przypadku Europy rekomendacje są dostępne dla każdego kraju (Annoni i in. 2001:43-44), a także dla Unii Europejskiej składającej się z 15, 27 i większej geograficznej Europy (Annoni i in. 2001:16). Najważniejszym projektem gromadzącym prognozy geograficzne jest projekt zestawu danych parametrów geodezyjnych EPSG, obejmujący około 4000 tematów i związanych z nimi odpowiednich prognoz, ze znanymi prognozami dla wszystkich głównych krajów. Te projekcje i ramki są publicznie dostępne online w różnych witrynach. [1]


Dane i jednostki geograficzneamp

() — używaj swobodnego lingwistyki do określania jednostek geograficznych, właściwości itp.

Reprezentujące konstrukcje geograficzne »

Jednostka &mdash jednostka geograficzna określonego typu (np. )

CommonName &mdash wspólna drukowalna nazwa jednostki geograficznej

GeoVariant &mdash określ warianty encji (np. US z Alaską lub bez)

GeoGroup &mdash traktuje wiele obiektów geograficznych jako jedną grupę do celów obliczeń

Właściwości lokalizacji geograficznej

GeoPosition &mdash znajdź położenie geograficzne danej jednostki geograficznej

GeoNearest &mdash znajdź najbliższy obiekt danego typu do lokalizacji

GeoIdentify &mdash określ, w którym kraju, stanie itp. znajduje się dana lokalizacja

GeoWithinQ &mdash określa, czy dana lokalizacja znajduje się w określonym regionie

GeoEntities &mdash podaje listę jednostek geograficznych określonego typu w regionie

GeoDistance &mdash znajdź odległość między jednostkami geograficznymi lub lokalizacjami

WikipediaSearch &mdash znajdź wpisy Wikipedii w pobliżu podanej lokalizacji

Właściwości czasu i światła dziennego

LocalTime , LocalTimeZone &mdash znajdź czas lokalny, strefę czasową w danej lokalizacji

Mapowanie itp. »

GeoListPlot &mdash lokalizacje i ścieżki na mapie

GeoRegionValuePlot &mdash utwórz geograficzną mapę termiczną

GeoGraphics &mdash uzyskują spersonalizowane mapy całego świata w dowolnej skali

GeoStyling &mdash umożliwia dostęp do różnych stylów map ( "OutlineMap" , "StreetMap" , "ReliefMap" , . )

GeomagneticModelData &mdash aktualne i historyczne dane pola magnetycznego

GeogravityModelData &mdash pole grawitacyjne Ziemi

Podmioty i dane dla geografii politycznej

Kraj i kraje i terytoria mdash z setkami nieruchomości

HistoryCountry &mdash 2000+ znanych krajów historycznych

AdministrativeDivision &ndash stany, hrabstwa, prowincje itp. na całym świecie

Miasta &ndash miasta i nazwane zaludnione miejsca na całym świecie

CountryData , CityData &mdash wyspecjalizowany dostęp do danych o krajach, miastach

Jednostki i dane dla geografii fizycznej »

GeographicRegion &ndash kontynenty i inne duże regiony na Ziemi

Oceany i oceany mdash, morza i inne duże zbiorniki słonowodne

Góry i godne uwagi góry, wzgórza i inne wzniesienia na całym świecie

Dane dotyczące geograficznych punktów szczególnych

Lotnisko &ndash 10000+ lotnisk, lądowisk i lądowisk na całym świecie

Buduj i mdash godne uwagi budynki, drapacze chmur, wieże i inne konstrukcje

Uniwersytet &ndash instytucje szkolnictwa wyższego

Powiązane dane »

WikipediaData &mdash pełne informacje z Wikipedii dotyczące wszystkich jednostek geograficznych i tematów

Importowanie danych geoprzestrzennych »

Importuj &mdash importuj dane zachowując strukturę symboli, adnotacje itp.


Gdzie są uczący się angielskiego?

Poniższe analizy grupują okręgi szkolne i szkoły w cztery kategorie na podstawie odsetka uczniów, którzy mieli EL: wysoki (20% lub więcej EL), średni (5% do 20%), niski (przynajmniej jeden uczeń EL, ale mniej niż 5 procent) i brak EL. Analizy pokazują, że uczący się języka angielskiego nie byli równomiernie rozmieszczeni w całym kraju, ale raczej skupieni w stosunkowo niewielkim odsetku okręgów i szkół.

Uczący się języka angielskiego byli silnie skoncentrowani w okręgach i szkołach ze swoimi rówieśnikami z EL.

Wykresy te podkreślają fakt, że uczący się języka angielskiego nie byli równomiernie rozmieszczeni we wszystkich dzielnicach. W latach 2014–2015 prawie połowa wszystkich EL była zapisywana w stosunkowo niewielu okręgach (7 procent) o wysokim odsetku EL, podczas gdy łącznie 75% okręgów zapisało albo niski odsetek EL, albo w ogóle nie zapisało się na EL. Grupowanie EL w tych okręgach nie wydaje się być przypisywane tylko wielkości okręgów, ponieważ te same okręgi zapisały tylko 15 procent całkowitej populacji studentów.

Podobnie jak w przypadku danych okręgowych, widzimy, że uczniowie EL również nie byli równomiernie rozmieszczeni we wszystkich szkołach. Ponad 60 procent szkół zapisało albo niski odsetek EL, albo wcale. W latach 2014-15 tylko 15% szkół zapisało się na wysoki odsetek EL. Jednak 61 procent wszystkich uczących się języka angielskiego w kraju zapisało się do tych 15 procent szkół. Te same szkoły zapisały tylko 16 procent całej populacji uczniów, co wskazuje na wysoką koncentrację uczniów języka angielskiego skupionych w tych szkołach.


Internacjonalizacja: zrozumienie lokalizacji na platformie Java

Język i środowisko geograficzne to dwa ważne wpływy na naszą kulturę. Tworzą system, w którym interpretujemy innych ludzi i wydarzenia w naszym życiu. Wpływają również, a nawet określają właściwą formę prezentacji siebie i swoich myśli innym. Aby skutecznie komunikować się z inną osobą, musimy wziąć pod uwagę i wykorzystać kulturę, język i środowisko tej osoby.

Podobnie system oprogramowania, aby był skuteczny, powinien szanować język i region geograficzny użytkownika. Język i region tworzą ustawienia regionalne, które reprezentują docelowe ustawienie i kontekst dla zlokalizowanego oprogramowania. Platforma Java używa obiektów java.util.Locale do reprezentowania ustawień regionalnych. W tym artykule opisano obiekt Locale i jego konsekwencje dla programów napisanych dla platformy Java.

Ten artykuł jest podzielony na następujące sekcje:

Zawartość

Definicja

Lokalizacje identyfikują określony język i region geograficzny. Obiekty zależne od ustawień narodowych używają obiektów java.util.Locale do dostosowywania sposobu prezentowania i formatowania danych użytkownikowi. Ustawienia regionalne wpływają na język interfejsu użytkownika, mapowanie wielkości liter, sortowanie (sortowanie), formaty daty i godziny oraz formaty liczb i walut. Ustawienia regionalne mają kluczowe znaczenie dla wielu operacji na danych wrażliwych kulturowo i językowo.

Java.util.Locale to lekki obiekt, który zawiera tylko kilka ważnych elementów:

Pisząc lub rozmawiając o ustawieniach regionalnych, możesz użyć skrótu tekstowego dla wygodnej reprezentacji. Ten zapis oddziela każdy składnik ustawień regionalnych znakiem podkreślenia:

<kod języka>[_<kod kraju>[_<kod wersji>]]

Te trzy elementy zapewniają wystarczającą ilość informacji innym obiektom wrażliwym na lokalizację, aby mogły modyfikować swoje zachowanie w określonym celu językowym lub kulturowym. Na przykład obiekt java.text.NumberFormat utworzony dla niemieckojęzycznej lokalizacji szwajcarskiej będzie formatować liczby inaczej niż w przypadku niemieckojęzycznej lokalizacji austriackiej. Patrz Tabela 1.

Tabela 1. Sformatowane dane wyjściowe różnią się w zależności od ustawień regionalnych

Widownia Liczby sformatowane
Niemieckie Niemcy) 123.456,789
niemiecki (Szwajcaria) 123'456.789
Angielskie Stany Zjednoczone) 123,456.789

Ponieważ obiekty Locale są tylko identyfikatorami, klasy zależne od ustawień regionalnych, takie jak java.text.NumberFormat lub java.text.DateFormat, wykonują całą pracę, aby zapewnić zlokalizowane formaty liczb lub dat. Na przykład klasa java.text.DateFormat używa obiektu Locale podczas jego tworzenia, aby zdecydować, jak poprawnie formatować daty.

W poniższych sekcjach opisano każdy składnik ustawień regionalnych.

Kody językowe

Kody językowe są zdefiniowane przez ISO 639, międzynarodowy standard, który przypisuje dwu- i trzyliterowe kody do większości języków świata. Locale używa dwuliterowych kodów do identyfikacji języka docelowego. W tabeli 2 wymieniono kilka z tych kodów językowych.

Tabela 2. Przykłady kodów językowych w normie ISO 639

Język Kod
arabski Ar
Niemiecki de
język angielski en
hiszpański tak
język japoński ja
hebrajski on

Język jest ważnym elementem ustawień regionalnych, ponieważ opisuje język używany przez określoną grupę klientów. Twoje aplikacje będą korzystać z tych informacji, aby zapewnić interfejs użytkownika zgodny z językiem klienta.

Oczywiście język nie oddaje całego obrazu lokalizacji. Na przykład, nawet jeśli możesz użyć de jako kodu języka regionalnego, samo de nie mówi ci nic o tym, gdzie mówi się po niemiecku. W kilku krajach niemiecki jest oficjalnym pierwszym, a nawet drugim językiem. Jedną z różnic w języku niemieckim w zależności od kraju jest kolejność sortowania. Z tego i innych powodów język nie zawsze wystarcza do precyzyjnego zdefiniowania lokalizacji.

Kody krajów (regionów)

Kody krajów są zdefiniowane przez ISO 3166, inny międzynarodowy standard. Definiuje dwu- i trzyliterowe skróty dla każdego kraju lub głównego regionu na świecie. W przeciwieństwie do kodów języków, kody krajów są pisane wielkimi literami. W tabeli 3 przedstawiono kilka zdefiniowanych kodów. Ustawienia regionalne używają kodów dwuliterowych zamiast kodów trzyliterowych, które również definiuje ten standard.

Tabela 3. Niektóre kody krajów zdefiniowane w normie ISO 3166

Kraj Kod
Stany Zjednoczone nas
Kanada CA
Francja FR
Japonia JP
Niemcy DE

Kody krajów są ważnym składnikiem ustawień regionalnych, ponieważ obiekty java.text.Format dla dat, godzin, liczb i walut są szczególnie wrażliwe na ten element. Kody krajów zwiększają precyzję komponentu językowego ustawień regionalnych. Na przykład francuski jest używany zarówno we Francji, jak i Kanadzie. Jednak dokładne użycie i wyrażenia idiomatyczne różnią się w obu krajach. Różnice te można uchwycić za pomocą różnych desygnatorów ustawień regionalnych, w których inny jest tylko kod kraju. Na przykład kod fr_CA (francuskojęzyczna Kanada) różni się od fr_FR (francuskojęzyczna Francja).

Kod wariantu

System operacyjny (OS), przeglądarka i inni dostawcy oprogramowania mogą używać kodu, aby zapewnić dodatkowe funkcje lub dostosowania, które nie są możliwe przy użyciu tylko oznaczenia języka i kraju. Na przykład firma programistyczna może potrzebować wskazać ustawienia regionalne dla określonego systemu operacyjnego, więc jej programiści mogą utworzyć ustawienia regionalne es_ES_MAC lub es_ES_WIN dla platform Macintosh lub Windows dla klientów w Hiszpanii.

Jednym z historycznych przykładów z samej platformy Java jest użycie wariantu EURO dla europejskich lokalizacji używających waluty euro. W okresie przejściowym w tych krajach platforma Java 2 Standard Edition (J2SE) w wersji 1.3 korzystała z tego wariantu. Na przykład, chociaż istniała lokalizacja de_DE (niemieckojęzyczna niemiecka), do środowiska Java dodano de_DE_EURO (niemieckojęzyczna niemiecka lokalizacja z wariantem euro). Ponieważ waluta euro jest teraz standardem dla krajów dotkniętych problemem, warianty te zostały usunięte w J2SE 1.4. Większość projektów aplikacji prawdopodobnie nie będzie wymagać kodów wariantów.

Budowa

Klasa Locale ma kilka konstruktorów:

  • Ustawienia regionalne (język napisów)
  • Ustawienia regionalne (język napisów, kraj napisów)
  • Ustawienia regionalne (język ciągu, kraj ciągu, wariant ciągu)

Poniżej pokazano, jak można użyć każdego konstruktora:

Używając dwuliterowego kodu ISO 639, en oznacza język angielski. Kody ISO 3166 CA i US reprezentują odpowiednio Kanadę i Stany Zjednoczone: Ostatni wiersz kodu powyżej pokazuje, jak utworzyć ustawienia regionalne z opcjonalnym wariantem: ustawienia regionalne en_US_SiliconValley. Ta lokalizacja jest bardziej szczegółowa niż pierwsza instancja. Lokalizacja jest nie tylko anglojęzyczna w USA, ale jest również powiązana z dodatkowym wariantem, SiliconValley . Ponieważ jednym z jego celów jest zapewnienie programistom możliwości definiowania niestandardowych lokalizacji, wariant może być wszystkim, czego potrzebujesz.

Chociaż kompilator i środowisko uruchomieniowe nie będą narzekać, jeśli stworzysz własne identyfikatory języka i kraju lub regionu, powinieneś używać tylko kodów zdefiniowanych przez normy ISO. Ograniczając się do definicji ISO, zapewnisz zgodność z innymi aplikacjami i standardami kodowania. Co ważniejsze, biblioteki klas zależne od ustawień regionalnych używają tylko kodów ISO. Na przykład klasa java.text.NumberFormat zrozumie, jak zachowywać się dla ustawień regionalnych de_DE (język niemiecki, Niemcy), ale nie zrozumie, co zrobić z fikcyjnymi ustawieniami regionalnymi foo_biz. Jeśli używasz identyfikatorów innych niż ISO, będziesz musiał napisać kod wrażliwy na ustawienia regionalne, aby je obsługiwać.

Wstępnie skonstruowane lokalizacje

Klasa Locale zawiera wiele pól statycznych, które reprezentują skonkretyzowane obiekty Locale. Na przykład Locale.FRANCE to gotowy, statyczny obiekt Locale, który reprezentuje francuskojęzyczną Francję. Możesz użyć Locale.FRANCE wszędzie tam, gdzie możesz użyć nowego Locale("fr", "FR") . Tabela 4 pokazuje niektóre z gotowych obiektów Locale, które są dostępne.

Tabela 4. Niektóre z prekonstruowanych obiektów lokalnych

Nazwa regionalna Widownia
Region.CHINY zh_CN
Region.CHIŃSKI zh
Lokalizacja.SIMPLIFIED_CHINESE zh_CN
Region.TRADITIONAL_CHINESE zh_TW
Region.ChRL zh_CN
Lokalizacja.TAJWAN zh_TW
Lokalizacja.POLSKI en
Lokalizacja.UK pl_PL
Lokalizacja.US pl_PL
Region.FRANCJA fr_FR
Region.FRANCUSKI fr

Dla wygody istnieją gotowe ustawienia regionalne. Jednak lista statycznych stałych klas jest niewielka i niekompletna. Nie wszystkie ważne lokalizacje są reprezentowane. Obsługa klas wrażliwych na ustawienia regionalne nie jest określana przez to, czy ustawienia regionalne istnieją jako stała klasy Locale. Na przykład nie istnieją żadne stałe klasy South American Locale, ale mają one pełną obsługę przez kilka klas wrażliwych na ustawienia regionalne, w tym DateFormat i NumberFormat .

Ponieważ istnieje tak niewiele gotowych ustawień regionalnych, prawdopodobnie powinieneś całkowicie unikać tych statycznych obiektów. Opisałem je tutaj, ponieważ istnieją i ponieważ możesz je zobaczyć w czyimś kodzie. Chociaż te identyfikatory skrótów są wygodne, Twój kod będzie bardziej spójny bez nich.

Identyfikacja obsługiwanych lokalizacji

Jakie języki obsługuje platforma Java? Możesz utworzyć dowolne ustawienia regionalne. Jednak środowisko wykonawcze może nie obsługiwać w pełni utworzonego obiektu Locale.

Jeśli chcesz wiedzieć, jakie obiekty Locale możesz utworzyć, odpowiedź jest prosta: możesz utworzyć dowolne ustawienia regionalne. Konstruktorzy nie będą narzekać na argumenty inne niż ISO. Jednak bardziej pomocne ponowne sformułowanie pytania brzmi: dla jakich ustawień regionalnych biblioteki klas dostarczają bardziej obszernych informacji? Dla jakich lokalizacji biblioteki mogą udostępniać informacje dotyczące sortowania, godziny, daty, numeru i waluty? Możesz także zapytać, jakie skrypty lub systemy pisania obsługuje twoje środowisko wykonawcze.

W poniższych sekcjach opisano, jak określić obsługiwane języki w bibliotekach wykonawczych. Dodatkowo opisują obsługiwane skrypty, które mogą być wyświetlane przez komponenty tekstowe. Na koniec wyliczają lokalizacje, które są dostępne dla bibliotek wykonawczych i samego zestawu programistycznego (SDK).

Włączone lokalizacje w pakietach java.util i java.text

Środowisko wykonawcze nie wymaga, aby wszystkie ustawienia regionalne były obsługiwane w równym stopniu przez każdą klasę wrażliwą na ustawienia regionalne. Każda klasa wrażliwa na ustawienia regionalne implementuje własną obsługę zestawu ustawień regionalnych, a ten zestaw może się różnić w zależności od klasy. Na przykład klasa formatu liczb może obsługiwać inny zestaw ustawień regionalnych niż klasa formatu daty.

Ponadto nie ma wymogu, aby wszystkie implementacje środowiska uruchomieniowego obsługiwały ten sam zestaw ustawień regionalnych. Ale wszystkie implementacje muszą obsługiwać ich minimalną listę. Ta lista jest dość krótka: angielski (USA). Na szczęście środowisko uruchomieniowe dostarczane przez firmę Sun jest znacznie bardziej rozbudowane. Chociaż nie jest to formalnie wymagane, implementacja środowiska uruchomieniowego firmy Sun obsługuje ten sam zestaw ustawień narodowych w każdej ze swoich klas formatu danych wrażliwych na ustawienia regionalne. Zapewnia to spójny zestaw wsparcia we wszystkich klasach. Przewodnik po obsługiwanych lokalizacjach platformy J2SE 5.0 zawiera pełną listę wszystkich obsługiwanych lokalizacji. Tabela 5 przedstawia kilka obsługiwanych lokalizacji.

Tabela 5. Niektóre z obsługiwanych lokalizacji w pakietach java.util i java.text

Język Kraj Identyfikator regionu
arabski Arabia saudyjska ar_SA
Uproszczony chiński) Chiny zh_CN
Chiński tradycyjny) Tajwan zh_TW
holenderski Holandia nl_NL
język angielski Australia pl_AU
język angielski Kanada pl_CA
język angielski Zjednoczone Królestwo pl_PL
język angielski Stany Zjednoczone pl_PL
Francuski Kanada fr_CA
Francuski Francja fr_FR
Niemiecki Niemcy de_DE
hebrajski Izrael he_IL
hinduski Indie hi_IN
Włoski Włochy to to
język japoński Japonia ja_JP
koreański Korea Południowa ko_KR
portugalski Brazylia pt_BR
hiszpański Hiszpania es_ES
szwedzki Szwecja sv_SE
tajski (cyfry zachodnie) Tajlandia th_TH
tajski (cyfry tajskie) Tajlandia th_TH_TH

Aby dowiedzieć się, jakie języki obsługuje środowisko Java Runtime Environment (JRE), musisz zapytać każdą klasę wrażliwą na ustawienia regionalne. Każda klasa obsługująca wiele lokalizacji będzie implementować metodę getAvailableLocales() . Na przykład,

Locale[] localeList = NumberFormat.getAvailableLocales()

Metoda getAvailableLocales() jest zaimplementowana w wielu klasach pakietów java.text i java.util. Na przykład NumberFormat , DateFormat , Calendar i BreakIterator zapewniają to.

Sama klasa Locale jest zlokalizowana dla kilku ustawień regionalnych. W poniższym przykładzie niemiecka instancja locale dostarcza informacji o sobie w języku angielskim (domyślnie na hoście autora), niemieckim i francuskim:

Wynik wyglądałby tak:

Włączona obsługa skryptów

Komponenty tekstowe zwykle nie obsługują pojedynczych ustawień regionalnych. Zamiast tego widżety tekstowe obsługują zestaw skryptów, które często przekraczają granice ustawień regionalnych. Chociaż nie jest możliwe uzyskanie listy obsługiwanych skryptów z różnych komponentów tekstowych, lista ta jest publikowana jako część przewodnika po obsługiwanych lokalizacjach platformy J2SE 5.0.

Ogólnie rzecz biorąc, równorzędne komponenty AWT mogą renderować skrypty obsługiwane przez bazowy host. Jeśli system hosta jest zlokalizowany w języku arabskim, komponenty tekstowe AWT będą wyświetlane w języku arabskim. W systemie arabskim można również wprowadzić tekst arabski w komponentach, takich jak TextField lub TextArea . Nie można jednak oczekiwać, że te same składniki AWT będą wyświetlać tekst, który nie znajduje się w tym samym skrypcie, co zlokalizowany host. Na przykład angielski host nie byłby w stanie wyświetlić języka arabskiego w TextField . Komponenty Java Foundation Classes/Swing (JFC/Swing) mogą jednak często obsługiwać wiele skryptów ze względu na ich niezależność od platformy hosta i używanie Unicode jako zestawu znaków wieloskryptowych. Dlatego komponenty Swing mogą często wyświetlać skrypt nawet wtedy, gdy równorzędne komponenty AWT nie mogą. Tabela 6 przedstawia niektóre z obsługiwanych skryptów.

Tabela 6. Niektóre z obsługiwanych skryptów do wyświetlania tekstu

System pisania Język
arabski arabski
Uproszczony chiński) chiński
Chiński tradycyjny) chiński
dewanagari hinduski
hebrajski hebrajski
język japoński język japoński
koreański koreański
Łacina: podzbiór zachodnioeuropejski angielski, francuski, niemiecki, włoski, hiszpański, szwedzki itd.
tajski tajski
grecki grecki
cyrylica białoruski, rosyjski itd
Łacina: podzbiór bałtycki łotewski, litewski
Łacina: podzbiór środkowoeuropejski czeski, węgierski, polski itd.
Łacina: podzbiór turecki Turecki i tak dalej

Lokalizacje JRE i SDK

Elementy interfejsu użytkownika w środowisku wykonawczym zostały zlokalizowane w kilku lokalizacjach. Elementy te obejmują komponenty AWT i Swing oraz inne komunikaty generowane przez środowisko JRE i dołączone narzędzia. Tabela 7 przedstawia wszystkie lokalizacje udostępnione dla J2SE 5.0.

Tabela 7. Tłumaczenia interfejsu użytkownika dla środowiska JRE

Język Identyfikator regionu
Uproszczony chiński) zh_CN
Chiński tradycyjny) zh_TW
język angielski en
Francuski fr
Niemiecki de
Włoski to
język japoński ja
koreański ko
hiszpański tak
szwedzki sv

Niektóre narzędzia, takie jak kompilator Javac, są dostarczane tylko z J2SE Software Development Kit (SDK). Narzędzia te dostarczają użytkownikowi komunikaty o błędach, ostrzeżenia i informacje. Te komunikaty w narzędziach i narzędziach SDK, w tym kompilatorze, są tłumaczone na język angielski i japoński. Te tłumaczenia są dostępne w J2SE 5.0 SDK.

Reprezentowanie lokalizacji jako ciąg

Chociaż większość użycia ustawień regionalnych będzie wymagać odwołania do obiektu Locale, czasami wygodnie jest użyć alternatywnej reprezentacji, szczególnie do celów debugowania wewnętrznego. Metoda toString() obiektu Locale zwraca String, który jest konkatenacją kodu języka, regionu i wariantu. Metoda toString() oddziela każdy składnik znakiem podkreślenia _ . Możesz chcieć użyć tej metody podczas debugowania, ponieważ zapewnia wygodną i czytelną reprezentację.

Rozważ ustawienia regionalne utworzone za pomocą tego kodu:

Locale l = nowe Locale("ja", "JP")

Metoda toString() zwróci ja_JP dla tej lokalizacji.

Ten ciąg nie jest odpowiedni do prezentacji większości użytkowników końcowych. Większość klientów nie jest zaznajomiona ze standardami ISO 639 i 3166 dotyczącymi kodów języków i krajów i pomyśli, że ciąg jest zbyt tajemniczy. Na szczęście dostępne są bardziej przyjazne dla użytkownika reprezentacje tekstowe, które omówimy w dalszej części tego artykułu.

Korzystanie z ustawień regionalnych

Chociaż nie zawsze jest to oczywiste, obiekty Locale są używane we wszystkich bibliotekach klas Javy. Nawet jeśli nie zapytasz wyraźnie o preferencje regionalne, środowisko Java używa domyślnych ustawień regionalnych, aby zapewnić zlokalizowane informacje i zachowanie. Kiedy używasz jawnego ustawienia narodowego, możesz użyć innego ustawienia narodowego dla każdej części aplikacji.

Na przykład można użyć ustawień regionalnych es_MX , hiszpański (Meksyk) do wyświetlania zlokalizowanych wiadomości w języku hiszpańskim i ustawień regionalnych en_US , angielski (Stany Zjednoczone) do formatowania liczb i walut. Ten rodzaj wsparcia byłby przydatny dla osób mówiących po hiszpańsku, którzy mieszkają i pracują w Stanach Zjednoczonych. Chociaż użytkownik aplikacji może wyświetlać hiszpańskie menu, monity i tekst, reszta aplikacji może poprawnie formatować liczby i walutę dla Stanów Zjednoczonych. To jest prosty przykład wykorzystania wielu lokalizacji w jednej aplikacji. Jeśli Twoje aplikacje kiedykolwiek wymagają obsługi tego poziomu ustawień regionalnych, masz swobodę określenia zachowania każdego aspektu aplikacji.

Niektóre klasy zależne od ustawień regionalnych formatują liczby, waluty, daty i czas. Inni świadczą usługi sortowania, a także łamania słów. Klasy zazwyczaj dostarczają konstruktora lub metodę fabryczną do tworzenia wystąpień. W każdym przypadku zazwyczaj masz możliwość podania wyraźnych preferencji dotyczących ustawień regionalnych.

Korzystanie z domyślnych ustawień regionalnych

Domyślne ustawienia regionalne są używane przez obiekty wrażliwe na ustawienia regionalne, gdy aplikacja nie określa jawnego wyboru ustawień regionalnych. W zależności od domyślnej lokalizacji nie jest mądre. W aplikacjach wieloużytkownikowych pojedyncze domyślne ustawienia regionalne zwykle nie są odpowiednie dla wszystkich użytkowników systemu. Zamiast tego aplikacja powinna jawnie udostępniać preferencje wszystkim obiektom wrażliwym na ustawienia regionalne. Domyślne ustawienia regionalne to zasób ogólnosystemowy, dostępny w całej aplikacji dla dowolnego obiektu wrażliwego na ustawienia regionalne. Domyślnie może to być poprawne dla użytkownika aplikacji, chociaż powinieneś być jawny w środowiskach wielojęzycznych lub wielokulturowych. Jest to szczególnie ważne, gdy aplikacja działa na jednym hoście obsługującym wielu użytkowników.

Pobierz domyślne ustawienia regionalne, korzystając z następującej metody:

publiczne statyczne ustawienia regionalne getDefault()

Domyślne ustawienia regionalne aplikacji są określane na trzy sposoby. Po pierwsze, o ile nie zmieniono jawnie wartości domyślnej, metoda getDefault() zwraca ustawienia regionalne, które zostały początkowo określone przez wirtualną maszynę Java (JVM) podczas jej pierwszego ładowania. Oznacza to, że JVM określa domyślne ustawienia narodowe ze środowiska hosta. Ustawienia regionalne środowiska hosta są określane przez system operacyjny hosta i preferencje użytkownika ustalone w tym systemie.

Po drugie, w niektórych implementacjach środowiska Java, użytkownik aplikacji może zastąpić domyślne ustawienia regionalne hosta, podając te informacje w wierszu poleceń, ustawiając właściwości systemowe user.language , user.country i user.variant .

Poniższy kod wypisze różne ustawienia regionalne w zależności od wartości tych właściwości po wywołaniu:

Możesz poeksperymentować z powyższym przykładem kodu. Powyższy kod, działający w systemie w języku angielskim w Stanach Zjednoczonych, wyświetla en_US . Jeśli podasz opcje wiersza polecenia, jak opisano powyżej, możesz nakłonić swoją aplikację do korzystania z dowolnych ustawień regionalnych. Na przykład możesz wywołać aplikację w ten sposób:

java -Duser.language=fr -Duser.country=CA Domyślnie

To wywołanie wyświetla fr_CA jako domyślne ustawienia regionalne.

Po trzecie, aplikacja może wywołać metodę setDefault(Locale aLocale). Metoda setDefault(Locale aLocale) umożliwia aplikacji ustawienie zasobu ogólnosystemowego. Po ustawieniu domyślnych ustawień regionalnych za pomocą tej metody kolejne wywołania funkcji Locale.getDefault() zwrócą nowo ustawione ustawienia regionalne.

Uwaga: Uważaj, aby nie wywołać setDefault() w apletach. Menedżer zabezpieczeń nie pozwoli na wywołanie tej metody, ponieważ wpływa ona na zasób systemowy w maszynie wirtualnej JVM działającej na hoście.

W większości przypadków używanie domyślnych ustawień regionalnych z innymi klasami oznacza całkowite ich zignorowanie. Na przykład, jeśli chcesz sformatować liczbę dla domyślnych ustawień regionalnych, po prostu utwórz NumberFormat bez żadnych argumentów:

FormatLiczby nf = FormatLiczby.getInstance()

Otóż ​​to. Korzystanie z domyślnej lokalizacji nie wymaga prawie niczego z Twojej strony. Inne klasy zależne od ustawień regionalnych stosują ten sam wzorzec. Jeśli chcesz zachować domyślne ustawienia regionalne, nie rób nic specjalnego podczas tworzenia obiektu. Jednak wartość domyślna nie zawsze jest odpowiednia i wtedy musisz być bardziej precyzyjny.

Korzystanie z wyraźnych ustawień regionalnych

W niektórych środowiskach komputerowych aplikacje używają tylko jednej lokalizacji w całym cyklu życia. W innych środowiskach aplikacje używają globalnych ustawień regionalnych, które można zmienić. Te środowiska umożliwiają programową zmianę globalnych preferencji ustawień regionalnych, które obowiązują, dopóki nie zmienisz ich ponownie. Środowisko aplikacji Java jest wyjątkowe i umożliwia korzystanie z różnych ustawień regionalnych w aplikacji w dowolny sposób.

Firmy międzynarodowe mają klientów na całym świecie. Oznacza to, że zarówno ich klienci, jak i pracownicy mogą mówić różnymi językami i mieć różne oczekiwania co do tego, jak powinna zachowywać się firma i jej oprogramowanie. Co więcej, jest całkowicie możliwe, a nawet powszechne, aby francuski pracownik zajmował się rekordem sprzedaży dla włoskiego klienta. W takich sytuacjach będziesz potrzebować absolutnej kontroli nad ustawieniami narodowymi używanymi przez obiekty biznesowe i interfejs użytkownika do manipulowania danymi i ich reprezentowania. Twoja aplikacja może wymagać drukowania paragonów sprzedaży przy użyciu włoskich formatów daty i waluty, a jednocześnie sortowania list klientów dla angielskiego pracownika sprzedaży. Kombinacje są zbyt liczne, by je wymieniać, ale technologia Java zapewnia elastyczność w radzeniu sobie z taką złożonością.

Aby uzyskać największą elastyczność, musisz jawnie zażądać obsługi docelowych ustawień regionalnych dla każdej używanej klasy zależnej od ustawień regionalnych. Oznacza to, że musisz śledzić preferencje ustawień regionalnych dla wielu aspektów aplikacji lub przypisać preferencje ustawień regionalnych do różnych użytkowników i klientów.

Jeśli śledziłeś preferencje ustawień regionalnych użytkownika, możesz utworzyć instancje klas wrażliwych na ustawienia regionalne, jawnie podając ustawienia regionalne w konstruktorze lub metodzie tworzenia. Wyobraź sobie, że obiekt preferencji przechowuje ustawienia regionalne Twojego klienta:

Pobieranie informacji o lokalizacji

Chociaż obiekty Locale nie zawierają zbyt wielu informacji, udostępniają kilka interesujących metod. Jak można się spodziewać, informacje są ściśle powiązane z językiem, krajem i wariantem obiektu. Niektóre z tych informacji są niezależne od ustawień regionalnych, inne są zależne od ustawień regionalnych. Wszystko to oznacza, że ​​obiekt Locale ma dwie różne formy dla większości swoich metod. Jeden zestaw informacji nie jest zorientowany na klienta ani zlokalizowany. Drugi zestaw jest zlokalizowany i nadaje się do prezentacji użytkownikowi.

Informacje niezależne od regionu

Metoda getLanguage() zwraca dwuliterowy skrót ISO 639 dla języka ustawień regionalnych. Na przykład, jeśli utworzono ustawienia regionalne ja_JP , ta metoda zwraca kod ja . Pełny podpis metody to

public String getLanguage()

Rozszerzenie normy ISO 639 definiuje trzyliterowe kody języków. Chociaż te kody nie są obecnie używane w J2SE 5.0, kody są dostępne. Użyj następującej metody, aby pobrać trzyliterowy kod języka:


Окализация названий приложений

В основных настройках приложения в разделе настроек Steamworks можно ввести локализованные названия продукта. Они будут отображаться пользователям, использующим Steam на том или ином языке.

Если вы зададите локализованные названия в разделе настроек, они заменят любые названия, указанные для страницы в магазине на этом языке, так что локализованное название на странице в магазине всегда будет соответствовать названию, которое пользователь видит в библиотеке.

Локализованное название используется в поисковых предложениях для пользователей на этом языке, а исходное (не локализованное) название будет запасным вариантом. Кроме того, некоторые устаревшие приложения и API могут не распознавать язык и отображать исходное название.

Package Names can be localized as well. Select the package you would like to add a localized name to, click edit package name, then add localized name.


Country and State Reports

Explore the physical geography, human geography, and cultures of countries around the world.

Geography, Human Geography, Physical Geography

Get ideas for ways to explore the physical geography, human geography, and cultures of countries around the world.

More Ideas Like This

Make a Flag

Choose a country and recreate the country's flag using construction paper and markers or any other art supplies. On the back, write the name of the country, its capital city, its area, the size of its population, the language or languages its population speaks, and the currency. A country's flag is a representation of its identity. If you can find information on it, include what the colors or shapes on the flag represent or the history of the flag.

State Flags

Identify the state flags of the United States and your state. Also identify national and state symbols, such as birds and flowers.

Learn State Names and Capitals

Label a map of the United States with the names of each state and its capital city. To help you remember the names of all fifty states, learn the song "Fifty Nifty United States." Make sure the capital cities are marked in their correct locations. Use the MapMaker 1-Page Maps to print a map of the United States. Be sure to turn off the capital and state names.

Research a Country's Population

Pick one of the ten most populous countries and print a map of it using the MapMaker 1-Page Maps. On the map, write the country's population, average income, and life expectancy. Create a theory about what life might be like in this country. Then read about the country. Does what you learn make you want to revise your theory?

Population Pyramid

Explore the population of a country. How many people live there? What is the largest age bracket? What is the population growth rate—taking into account births, deaths, and migration? Look at the country's population pyramid.

Suggested countries: China, Canada, Ukraine, Philippines, New Zealand

Government Structures

Choose a country and explore its type of government. What is the basic form of government? How is it structured? What legal system does it use? How old do you have to be to vote? What is the relationship between local and national governments?

Suggested countries: Australia, Luxembourg, United Arab Emirates, Switzerland, Libya, Monaco, North Korea, Micronesia, Brunei

Explore the Area of a Country

What is the total number of square miles or square kilometers? How much of that is land and how much is water? How does the country rank compared to area in the rest of the countries of the world? What U.S. state, if any, is the country comparable to?

Suggested countries: Australia, Chile, Burkina Faso, Thailand, Spain, Qatar

Ethnic and Religious Groups

Research the major ethnic and religious groups in a country. Compare ethnic or cultural celebrations in your country and other countries. Summarize the contributions of selected ethnic groups to your national identity.

Suggested countries: Mexico, India, Fiji, Egypt, Ireland

Media Credits

The audio, illustrations, photos, and videos are credited beneath the media asset, except for promotional images, which generally link to another page that contains the media credit. The Rights Holder for media is the person or group credited.

Pisarz

Editor

Jessica Shea, National Geographic Society

Photo Researcher

For information on user permissions, please read our Terms of Service. If you have questions about how to cite anything on our website in your project or classroom presentation, please contact your teacher. They will best know the preferred format. When you reach out to them, you will need the page title, URL, and the date you accessed the resource.

Głoska bezdźwięczna

If a media asset is downloadable, a download button appears in the corner of the media viewer. If no button appears, you cannot download or save the media.

Text on this page is printable and can be used according to our Terms of Service.

Interactives

Any interactives on this page can only be played while you are visiting our website. You cannot download interactives.

Related Resources

Landforms and Landscapes

Search through these resources to discover more about unique landforms and landscapes around the world. Landforms are natural and distinctive features. Explore how they show up in various landscapes. These resources can be used to teach middle schoolers more about the natural world, its distinctive features, and landscapes.

Research Examples of Physical Geography

Students explore how specific features of physical geography affect nearby country borders. They conduct research on the North Sea, Scandinavia, the Strait of Gibraltar, and the Netherlands.

Fun with Geography

Get ideas for how to have fun with geography in your daily life.

More Physical Geography and Borders

Students research four additional examples of physical geography and borders. They explore how mountains, oceans, and islands create physical barriers that affect the country borders in Europe.

Related Resources

Landforms and Landscapes

Search through these resources to discover more about unique landforms and landscapes around the world. Landforms are natural and distinctive features. Explore how they show up in various landscapes. These resources can be used to teach middle schoolers more about the natural world, its distinctive features, and landscapes.

Research Examples of Physical Geography

Students explore how specific features of physical geography affect nearby country borders. They conduct research on the North Sea, Scandinavia, the Strait of Gibraltar, and the Netherlands.

Fun with Geography

Get ideas for how to have fun with geography in your daily life.

More Physical Geography and Borders

Students research four additional examples of physical geography and borders. They explore how mountains, oceans, and islands create physical barriers that affect the country borders in Europe.


Glossary:Country codes

Member States of the European Union (EU) and other countries have been assigned a two-letter country code, always written in capital letters, and often used as an abbreviation in statistical analyses, tables, figures or maps.


ten protocol order in which countries are often listed is based on the alphabetical list of countries in their national language for EU and EFTA Member States and for candidate countries for potential candidates, it is based on the alphabetical order of their country code.

EU Member States come first, followed by European Free Trade Association (EFTA) Member States, candidate countries for EU membership, potential candidates and, finally, other countries. The order in the tables below is first column down, then second column down, etc..

Belgium (BE) Greece (EL) Lithuania (LT) Portugal (PT)
Bulgaria (BG) Spain (ES) Luxembourg (LU) Romania (RO)
Czechia (CZ) France (FR) Hungary (HU) Slovenia (SI)
Denmark (DK) Croatia (HR) Malta (MT) Slovakia (SK)
Germany (DE) Italy (IT) Netherlands (NL) Finland (FI)
Estonia (EE) Cyprus (CY) Austria (AT) Sweden (SE)
Ireland (IE) Latvia (LV) Poland (PL)

European Free Trade Association (EFTA)

Iceland (IS) Norway (NO)
Liechtenstein (LI) Switzerland (CH)

EU candidate countries

Montenegro (ME)
North Macedonia (MK)
Albania (AL)
Serbia (RS)
Turkey (TR)

Potential candidates (all other Western Balkan countries)

Bosnia and Herzegovina (BA)
Kosovo* (XK Ώ] )

Armenia (AM) Belarus (BY) Georgia (GE)
Azerbaijan (AZ) Moldova (MD) Ukraine (UA)

European Neighbourhood Policy (ENP)-South countries:

Algeria (DZ) Lebanon (LB) Syria (SY)
Egypt (EG) Libya (LY) Tunisia (TN)
Israel (IL) Morocco (MA)    
Jordan (JO) Palestine ΐ] (PS)    

Other European countries


Non-European countries

Argentina (AR) China (except Hong Kong) (CN_X_HK) Mexico (MX) South Africa (ZA)
Australia (AU) Hong Kong (HK) Nigeria (NG) South Korea (KR)
Brazil (BR) India (IN) New Zealand (NZ) Taiwan (TW)
Canada (CA) Japan (JP) Singapore (SG) Stany Zjednoczone (US)

(*) This designation is without prejudice to positions on status, and is in line with UNSCR 1244/1999 and the ICJ Opinion on the Kosovo declaration of independence. (with asterisk and footnote in written documents, only the first time that Kosovo is mentioned).


041 Language Code (R)

The codes for the languages associated with an item when the fixed-field element Lang is insufficient to convey full information for multilingual items, items that are translations, or items where a medium of communication is a sign language.

The language codes found in schemes listed in Language Code and Term Source Codes may be used in field 041. OCLC prefers the use of MARC codes as found in MARC Code List for Languages. You may repeat 041 to include MARC codes if you use non-MARC codes. Notatka: Instructions and examples in this section will reflect the use of MARC codes.

You may also use field 546 to record language information in textual form.

Use field 041 in conjunction with Lang. Jeśli Lang is coded zxx (No Linguistic Content), do nie record a code in field 041 in subfield ǂa or subfield ǂd. Jeśli Lang contains a code other than zxx, record the same code from Lang in field 041 in subfield ǂa or subfield ǂd.

  • The item contains more than one language one of which may be a sign language
  • The item is or includes a translation
  • The language of the abstracts, accompanying material, or summaries differs from the language of the main item
  • The language of a table of contents differs from the language of the main item

Do nie use field 041 to record the MARC language code if there is only one language associated with the item already recorded in Lang.

Record codes for languages associated with the data and/or user interface (e.g., screen displays). Do nie use for machine languages (e.g., COBOL) or character codes (e.g., ASCII). Record such information in field 538.

Record codes for languages for the following linguistic content:

  • The score has text underlying printed music
  • The audio recording has sung or spoken text
  • The libretto has text presented separately
  • The language of accompanying text (e.g., critical commentary, program notes) differs from the language of the main item

Also record the following if readily ascertainable:

  • Original language of printed, sung, or spoken text
  • Original language of text presented separately (e.g., librettos)
  • Original language of accompanying text

Use for motion pictures, filmstrips, slides, transparencies, and videorecordings when:

  • The sound track has different language versions
  • The accompanying sound (discs, tapes, etc.) has different language versions
  • The overprinted titles (subtitles) or separate titles for silent films are in different languages
  • The sound accompanying a work is in one language and the same text is printed on the work in the form of overprinted titles in another language
  • Accompanying printed scripts are in multiple languages (e.g., one is in Spanish, one is in French, one is in English, etc.)
  • The medium of communication includes sign language

Field 041 may also be used to record additional language-related information about written or original languages on motion pictures and videorecordings.

For original or historical projectable graphic material, opaque graphic material, and three dimensional material, use when:

  • The language associated with the material (i.e., captions or other text associated with the item or collection that are part of the preferred source of information) is multilingual
  • The language of the accompanying material differs from the language associated with the item or collection

1st Indicator

Translation indication. Whether the work is or includes a translation. Assign the 1st indicator position from the content of the item itself. Accompanying material is not considered when determining if an item is a translation.

Notatka: When printed music contains a translation of a vocal text printed as text, the item is considered a translation, so use value 1.

No information provided.

Item not a translation/does not include a translation. The work is not a translation or does not include a translation.

Item is or includes a translation. The work is or includes a translation and is used regardless of whether the work in the original language has been published. If, however, the translated work is not entered under the preferred name/title or title for the original, for example, because the translation also involved adaptation, then the item is not considered a translation and the 1st indicator value is 0.

2nd Indicator

Source of code. The source of the language code used in the field.

MARC language code. The source of the code is MARC Code List for Languages.

Source specified in subfield ǂ2 . The source of the language code is indicated by a code in subfield ǂ2.

Subfields

The code for the language associated with the item. Jeśli Lang is coded zxx (No Linguistic Content), do nie record a code in subfield ǂa. Jeśli Lang contains a code other than zxx, record the same code from Lang in subfield ǂa.

Lang: eng
041 0 eng ǂa fre ǂa ger
[The item has text in English, French, and German]

For works in multiple languages, the codes for the languages are recorded in the order of their predominance. If predominance cannot be determined, record the codes in English alphabetical order. If the code mul (Multiple languages) is recorded in Lang (meaning the item is multilingual with no predominant language), the code for the title (or the first title, if there are more than one) and the code mul are recorded. Alternatively, any number of specific language codes may be recorded in repeating occurrences of subfield ǂa.

Lang: fre
041 0 fre ǂa eng
[The item has text in French (the predominant language) and English]
Lang: mul
041 0 mul ǂa rus
[The item has multilingual text with no predominant language and the title is in Russian]
Lang: sgn
041 0 sgn ǂa eng
[The item contains representations of the alphabet in sign language with minimal English text on title page]

When a work is a translation or includes a translation, the code for the language of the translation is recorded in subfield ǂa. The code for the language of the original work is recorded in subfield ǂh. The code for the language of an intermediate translation is recorded in subfield ǂk. If an item is in the original language with an accompanying translation, repeated subfields ǂa contain the codes for the languages of the translation and the original. The code for the original is also recorded in subfield ǂh.

Lang: eng
041 1 eng ǂh fre
[The item has text in English translated from French]
Lang: eng
041 1 eng ǂk ger ǂh swe
[The item has text in English translated from German originally published in Swedish]
Lang: eng
041 1 eng ǂa grc ǂh grc
[The item has text in both the original Greek and in an English translation]
Lang: eng
041 1 eng ǂh und
[The item has text in English and the original language is undetermined]
Lang: eng
041 1 eng ǂh mul
[The anthology of poems has text translated into English from multiple languages]

For continuing resources, when the language of the text changes over a period of time, record the codes for all of the languages.

Lang: eng
041 0 eng ǂa afr
546 In English, 1898-1963 English and Afrikaans, 1964-
[The language of the item has changed over time]

For computer files, record the language code associated with the data and/or user interface (e.g., screen displays) in subfield ǂa.

Lang: eng
041 0 eng ǂa spa
546 Interface in English citations chiefly in Spanish.
[The database has an English language interface with data chiefly in Spanish]

For musical works, record the language code corresponding to the textual contents in subfield ǂa only when the work is printed or manuscript music. If the work is an audio recording, record the language code in subfield ǂd.

Lang: ita
041 1
ǂd ita ǂe ita ǂe eng ǂn ita ǂg eng
546 Sung in Italian.
500 Program notes in English, and libretto with English translation (30 pages : illustrations 14 cm) inserted in container.
[The audio recording of a vocal work sung in Italian with accompanying program notes in English and libretto in Italian with English translation]
Lang: ita
041 1 ita ǂa ger ǂh ita ǂg eng ǂg ger ǂm eng
546 Italian words with German translation.
500 Preface by Andrew V. Jones in English with German translation.
[The score of a vocal work has lyrics in Italian with a German translation accompanied by an English preface with a German translation]

For moving image resources, subfield ǂa contains the language code of spoken or sung language associated with the item, as well as sign language and any language code of the languages of accompanying sound. Code languages used to provide access to a resource in an accessible alternative mode as appropriate in either subfields ǂp, ǂq, or ǂr.

For projected still images, such as filmstrips and slides, subfield ǂa contains the language code associated with the item, as well as any language code of the languages of accompanying printed script or accompanying sound. Dla wszystkich other still images, including original or historical graphic material and opaque and non-opaque graphic material, and for three-dimensional artifacts, subfield ǂa contains the code of languages associated with the material, i.e. captions or other text associated with the item or collection that are part of the preferred source of information.

The language code for summaries or abstracts regardless of whether they are the same or different from the languages recorded in subfield ǂa. Record multiple language codes in English alphabetical order.

Lang: eng
041 0 eng ǂb fre ǂb ger ǂb rus
[The item has text in English with summaries in French, German, and Russian]

For audio recordings, use for the language code of the accompanying material summaries that are not full translations of vocal works. Use also if a nonmusical audio recording has summaries of its contents as accompanying material.

The language code for the audible portion of an item, usually the sung or spoken content of an audio recording or computer file. Record the language code for the textual portion of an item in subfield ǂa. The language code in the first occurrence of subfield ǂd, in cases where there is no subfield ǂa, is also recorded in Lang.

The language code of the printed text when the item contains the vocal/textual content of the work(s) printed as text whether as accompanying material or printed with the item. This subfield is not restricted to librettos and may include other sung or spoken text. However, do nie use subfield ǂe for items covered by subfield ǂg.

The language code of the table of contents when it differs from the language of the text. Record the language codes in English alphabetical order.

The language code of accompanying material other than summaries or librettos when the material is considered significant. Use for codebooks, commentaries, manuals, prefaces, program notes, user instructions, etc.

Lang: ita
041 0 ǂd ita ǂg eng ǂg ita
[The audio recording of a vocal work sung in Italian with program notes in English and Italian]

For visual materials, use subfield ǂg for all accompanying material, except for accompanying printed script or accompanying sound which are recorded in subfield ǂa.

The language code for the original language. Original language may be recorded regardless of whether the 1st indicator indicates a translation (value 1). The language code is for the original language of the primary content of the item and it is not required to use it if the item is not a translation. The subfield follows the related subfields ǂa, ǂd, ǂh, or ǂk.

When indicating the original language of subsidiary materials (e.g., other liner notes, etc.), subfield ǂm is used.

Language code of the intertitles or title cards for silent films. Intertitles are filmed text that is shown between the scenes of a silent film to provide dialogue or narrative context.

Language code for the written language providing access to moving image materials, such as subtitles and silent film intertitles. It does not include the languages of the credits, packaging, or accompanying material. If needed, the language of credits is recorded in field 546 and the language of packaging or accompanying material is recorded in subfield ǂg.

Language code for an intermediate language between the original and the current translation, where the resource was translated from an intermediate language other than the original. The subfield follows the related subfield ǂa or ǂd.

Language code of original language of subsidiary materials other than librettos. The subfield follows the related subfield ǂb or ǂg.

Language code of original language of printed text of the vocal/textual content of the work. The subfield follows the related subfield ǂe.

Language code for language used in moving image resource captions, whether open captioning (Subtitles for the Deaf and Hard of Hearing (SDH)) or closed captioning (CC).

Language code for audio used as an alternative mode of access to the visual or textual content of a resource, e.g, Described Video, a supplementary audio track providing additional access to moving image visual content using audio description.

Language code for the visual language (non-textual) used to provide alternative access to the audio content of a resource, e.g., signed languages.

For resources where signed language is the primary mode of access, subfield ǂa should be used to record the language code for signed language.

Language code of the printed text of the spoken content for non-musical audiovisual works. For musical audiovisual works, the language code of the printed text of the sung and/or spoken content of the work should be recorded in subfield ǂe.

The source of the language code scheme used in the field. For MARC codes, see Language Code and Term Source Codes. For ISO codes, see Codes for the Representations of Names of Languages.

Data that link fields when non-Latin script is entered. This subfield is system supplied and does not appear in OCLC online displays. Do nie manually add subfield ǂ6. For more information about subfield ǂ6, see Control Subfields.

For information about subfield ǂ8, see Control Subfields.

Indexing

For indexing and searching information, see Searching WorldCat Indexes, field 041.

MARC 21

For more information, including content designator history, see MARC 21 Format for Bibliographic Data, field 041.


26 Answers 26

I think the main problem here is that the browser settings don't actually affect the navigator.language property that is obtained via javascript.

What they do affect is the HTTP 'Accept-Language' header, but it appears this value is not available through javascript at all. (Probably why @anddoutoi states he can't find a reference for it that doesn't involve server side.)

I have coded a workaround: I've knocked up a google app engine script at http://ajaxhttpheaders.appspot.com that will return you the HTTP request headers via JSONP.

(Note: this is a hack only to be used if you do not have a back end available that can do this for you. In general you should not be making calls to third party hosted javascript files in your pages unless you have a very high level of trust in the host.)

I intend to leave it there in perpetuity so feel free to use it in your code.

Here's some example code (in jQuery) for how you might use it

Hope someone finds this useful.

Edit: I have written a small jQuery plugin on github that wraps this functionality: https://github.com/dansingerman/jQuery-Browser-Language

Edit 2: As requested here is the code that is running on AppEngine (super trivial really):

window.navigator.userLanguage is IE only and it's the language set in Windows Control Panel - Regional Options and NOT browser language, but you could suppose that a user using a machine with Window Regional settings set to France is probably a French user.

navigator.language is FireFox and all other browser.

Some language code: 'it' = italy, 'en-US' = english US, etc.

As pointed out by rcoup oraz The WebMacheter in comments below, this workaround won't let you discriminate among English dialects when users are viewing website in browsers other than IE.

window.navigator.language (Chrome/FF/Safari) returns always browser language and not browser's preferred language, but: "it's pretty common for English speakers (gb, au, nz, etc) to have an en-us version of Firefox/Chrome/Safari." Hence window.navigator.language will still return en-US even if the user preferred language is en-GB .

Now there is a way to get Accept-Languages in Firefox and Chrome using navigator.languages (works in Chrome >= 32 and Firefox >= 32)

Also, navigator.language in Firefox these years reflects most preferred language of content, not language of UI. But since this notion is yet to be supported by other browsers, it is not very useful.

So, to get most preferred content language when possible, and use UI language as fallback:

I came across this piece of code to detect browser's language in Angular Translate module, which you can find the source here. I slightly modified the code by replacing angular.isArray with Array.isArray to make it independent of Angular library.

I only needed the primary component for my needs, but you can easily just use the full string. Works with latest Chrome, Firefox, Safari and IE10+.

navigator.userLanguage for IE

window.navigator.language for firefox/opera/safari

I've been using Hamid's answer for a while, but it in cases where the languages array is like ["en", "en-GB", "en-US", "fr-FR", "fr", "en-ZA"] it will return "en", when "en-GB" would be a better match.

My update (below) will return the first long format code e.g. "en-GB", otherwise it will return the first short code e.g. "en", otherwise it will return null.

Aktualizacja: IE11 was erroring when some properties were undefined. Added a check to skip those properties.

There is no decent way to get that setting, at least not something browser independent.

But the server has that info, because it is part of the HTTP request header (the Accept-Language field, see http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4)

So the only reliable way is to get an answer back from the server. You will need something that runs on the server (like .asp, .jsp, .php, CGI) and that "thing" can return that info. Good examples here: http://www.developershome.com/wap/detection/detection.asp?page=readHeader

I've just come up with this. It combines newer JS destructuring syntax with a few standard operations to retrieve the language and locale.

I can't find a single reference that state that it's possible without involving the serverside.

In Microsoft Internet Explorer 4.0 and earlier, the browserLanguage property reflects the language of the installed browser's user interface. For example, if you install a Japanese version of Windows Internet Explorer on an English operating system, browserLanguage would be ja.

In Internet Explorer 5 and later, however, the browserLanguage property reflects the language of the operating system regardless of the installed language version of Internet Explorer. However, if Microsoft Windows 2000 MultiLanguage version is installed, the browserLanguage property indicates the language set in the operating system's current menus and dialogs, as found in the Regional Options of the Control Panel. For example, if you install a Japanese version of Internet Explorer 5 on an English (United Kingdom) operating system, browserLanguage would be en-gb. If you install Windows 2000 MultiLanguage version and set the language of the menus and dialogs to French, browserLanguage would be fr, even though you have a Japanese version of Internet Explorer.

Note This property does not indicate the language or languages set by the user in Language Preferences, located in the Internet Options dialog box.

Furthermore, it looks like browserLanguage is deprecated cause IE8 doesn't list it