Zastanawiam się, jak poradzić sobie z internacjonalizacją w JavaScript. Wyszukałem w Google, ale nie otrzymuję przekonujących odpowiedzi na:
- Czy JavaScript ma natywną obsługę internacjonalizacji?
- Czym jest i18n w JavaScript?
- Jak radzić sobie z kalendarzami, walutami, datami itp.?
Przeczytałem już o internacjonalizacji w JavaScript .
javascript
internationalization
rajakvk
źródło
źródło
Odpowiedzi:
Obsługa lokalizacji w starszych przeglądarkach jest słaba. Pierwotnie było to spowodowane wyrażeniami w
ECMAScript
specyfikacji języka, które wyglądały następująco:Każda metoda lokalizacji zdefiniowana w specyfikacji jest definiowana jako „zależna od implementacji”, co skutkuje wieloma niespójnościami. W tym przypadku Chrome Opera i Safari zwróciłyby to samo, co
.toString()
. Firefox i IE zwrócą ciągi sformatowane dla ustawień regionalnych, a IE zawiera nawet separator tysięcy (idealny dla ciągów walutowych). Przeglądarka Chrome została niedawno zaktualizowana, aby zwracać ciąg znaków oddzielonych tysiącami, ale bez stałego miejsca po przecinku.W nowoczesnych środowiskach specyfikacja ECMAScript Internationalization API , nowy standard uzupełniający specyfikację języka ECMAScript, zapewnia znacznie lepszą obsługę porównywania ciągów, formatowania liczb oraz formatowania daty i godziny; naprawia również odpowiednie funkcje w specyfikacji języka. Wprowadzenie można znaleźć tutaj . Wdrożenia są dostępne w:
Istnieje również implementacja zgodności, Intl.js , która zapewni API w środowiskach, w których jeszcze nie istnieje.
Określenie preferowanego języka użytkownika pozostaje problemem, ponieważ nie ma specyfikacji umożliwiającej uzyskanie bieżącego języka. Każda przeglądarka implementuje metodę uzyskiwania ciągu językowego, ale może to być oparte na języku systemu operacyjnego użytkownika lub po prostu na języku przeglądarki:
Dobrym rozwiązaniem tego problemu jest zrzucenie nagłówka Accept-Language z serwera do klienta. Jeśli jest sformatowany jako JavaScript, można go przekazać do konstruktorów interfejsu API internacjonalizacji, które automatycznie wybiorą najlepsze (lub pierwsze obsługiwane) ustawienie regionalne.
Krótko mówiąc, musisz włożyć dużo pracy samodzielnie lub skorzystać z frameworka / biblioteki , ponieważ nie możesz polegać na przeglądarce, aby zrobiła to za Ciebie.
Różne biblioteki i wtyczki do lokalizacji:
Zapraszam do dodawania / edytowania.
źródło
Niedawno Mozilla wydała niesamowity L20n lub lokalizację 2.0. Ich własnymi słowami jest L20n
Ich implementacja js znajduje się w repozytorium github L20n.
źródło
Część z nich jest natywna, reszta jest dostępna w bibliotekach.
Na przykład Datejs to dobra międzynarodowa biblioteka dat.
Reszta dotyczy tylko tłumaczenia języka, a JavaScript jest natywnie kompatybilny z Unicode (a także ze wszystkimi głównymi przeglądarkami).
źródło
Możesz także wypróbować inną bibliotekę - https://github.com/wikimedia/jquery.i18n .
Oprócz zastępowania parametrów i wielu form liczby mnogiej, obsługuje płeć, co jest raczej unikalną funkcją niestandardowych reguł gramatycznych, których potrzebują niektóre języki.
źródło