Есть ли прокладка i18n (Intl) для JavaScript?

Я ищу прокладку для API интернационализации ECMAScript. Кто-нибудь знает о таком проекте? (Даже если он все еще находится в стадии разработки.)


person Nathan Wall    schedule 07.02.2013    source источник
comment
Может быть, спросить Норберта Линденберга напрямую, кто редактор этой спецификации?   -  person kangax    schedule 08.02.2013
comment
Почему бы не использовать стандарты ISO и забыть обо всех традиционных двусмысленных форматах дат, которые использует моя бабушка? (даты ISO, коды валют ISO и т. д.).   -  person Tiberiu-Ionuț Stan    schedule 14.02.2013
comment
Приятно знать, @AndyE! Продолжайте в том же духе! Буду следить за прогрессом.   -  person Nathan Wall    schedule 07.05.2013
comment
@NathanWall: полифил, который я написал, теперь поддерживает DateTimeFormat и NumberFormat и доступен в виде опубликованного пакета NPM. Поэтому я решил, что пришло время дать ответ здесь. ;-)   -  person Andy E    schedule 10.12.2013


Ответы (4)


Да, полифилл для ECMA-402 (он же Спецификация ECMA Internationalization API) доступен по адресу https://github.com/andyearnshaw/Intl.js.

Для использования в приложениях Node.js вы можете установить с помощью NPM:

npm install intl

Он также доступен как компонент Bower для внешнего интерфейса:

bower install intl

Есть поддержка NumberFormat и DateTimeFormat, но нет поддержки Collator. В настоящее время для клиентских сред браузера необходимо добавить данные локали с помощью отдельной функции. Подробности смотрите в файле README.md.

Отказ от ответственности: @AndyE является автором Intl.js.

person Andy E    schedule 10.12.2013
comment
Коллатор придет? Это самое интересное для меня. - person hippietrail; 04.04.2015
comment
@hippietrail, наверное, нет. Я исследовал добавление Collator на ранней стадии разработки, и это потребовало бы больших загрузок в браузер пользователя для DUCET и языковые файлы. Я подозреваю, что это оттолкнет большинство людей, и в конце концов проблема не будет стоить того. - person Andy E; 04.04.2015
comment
Это довольно серьезный пробел в том, что называет себя полифиллом для Intl. Вы также можете ожидать, что людей оттолкнет тот факт, что вообще не включена поддержка сортировки. Сопоставление кажется неуклюжим пасынком Intl из-за проблем, которые вы описываете (которые, безусловно, разумны). - person ; 06.12.2017

Этот SO-вопрос дает некоторые рамки для поддержки i18n в javascript. https://stackoverflow.com/questions/9640630/javascript-i18n-internationalization-frameworks-libraries-for-client-side-use

person Jaco Koster    schedule 11.02.2013
comment
Спасибо, но я ищу именно тот, который является прямой прокладкой интернационализации ECMAScript. API. - person Nathan Wall; 11.02.2013

Я предполагаю, что вы знаете, что «Google Chrome версии 24, которая в настоящее время находится в стадии бета-тестирования, реализует API с объектами Collator, NumberFormat и DateTimeFormat, как описано выше». (см. здесь). Любая прокладка будет либо огромной, либо неполной с точки зрения охвата локали — вы действительно хотите внедрить числа каннада (это язык, на котором говорят здесь, в Бангалоре)?

Мое предложение состояло бы в том, чтобы свернуть вашу собственную уменьшенную прокладку с нужными вам частями, выбирая и выбирая из других библиотек, которые делают аналогичные вещи по мере необходимости. Например, вам может понадобиться форматирование даты/времени, но не сортировка (что сложно).

person Community    schedule 13.02.2013

Только что нашел этот старый вопрос, и, поскольку реализация ECMA-402 недоступна во всех браузерах, я нашел полифиллы formatjs.io быть полезным, если вам нужна поддержка таких браузеров, как Safari или IE.

person Akora    schedule 03.03.2021