Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Мы постоянно слышим от разработчиков, что современному стандарту JavaScript не хватает нескольких базовых объектов и модулей поддержки библиотек, необходимых для создания полнофункциональных веб-приложений для пользователей со всего мира. В прошлом году мы поделились примером реализации нового предложения на роль API-интерфейса интернационализации для JavaScript. Этот API поддерживает форматирование чисел, даты и времени, а также сортировку и сравнение строк для разных языковых стандартов. Поскольку существующие ограничения не позволяют создавать сайты для пользователей со всего мира на основе стандартов веб-платформы, рабочая группа, состоящая из сотрудников Amazon, Google, Mozilla и Майкрософт, доработала черновую спецификацию до выхода черновой версии ECMAScript 6. Пару недель назад участники комитета по стандартам собрались на факультете информатики в кампусе Северо-восточного университета и закончили предложенный API-интерфейс. Мы обновили пример реализации в соответствии с текущей черновой версией спецификации.
Мы также опубликовали демонстрацию, иллюстрирующую использование этого API для визуализации обмена валют. Это распространенный веб-сценарий, который на данный момент нужно писать с использованием подключаемого модуля, расширения браузера или взаимодействия с сервером. Поэкспериментируйте с этой демонстрацией, откройте консоль JavaScript для взаимодействия с данным API и сообщите нам свои отзывы и предложения.
Создание графика истории обмена валют с помощью API интернационализации
При внимательном изучении таких сайтов, как Google Finance, Yahoo Finance, FXCM, ForXCharts и других сайтов ForEx, отчетливо видна закономерность: все они применяют собственный пользовательский интерфейс с комбинацией подключаемых модулей, расширений или конструкций, для реализации интерактивности которых требуется обращение к серверу. Поскольку эти сайты должны форматировать валюты, представлять даты в определенном формате и сортировать строки, например данные с биржи, с использованием сравнения строк в определенном языковом стандарте, веб-платформа не удовлетворяет их потребности.
1) Диаграмма Yahoo Finance ForEx с использованием Flash для форматирования чисел 2) Google Finance с использованием Flash для форматирования даты и времени
Кроме элемента управления ActiveX, обеспечивающего поддержку данного API, интерфейс четырех тестовых демонстрацией ForEx на 100 % написан на JavaScript. jqPlot используется для отображения диаграммы с курсами обмена валют и датами в JavaScript. В верхней части демонстрации можно выбрать пару валют, например EUR и JPY, и просмотреть их в формате даты определенного языкового стандарта, выбрав тег языка ja-JP-u-nu-latin. Нажав кнопку "Plot with Intl" (Построить с помощью Intl), вы увидите API-интерфейс JavaScript в действии.
Обзор API-интерфейса интернационализации для JavaScript
Веб-приложения сложнее делать глобальными, чем автономные приложения, поскольку JavaScript не предоставляет доступ к встроенным форматам даты и валюты в операционной системе. Все реализации JavaScript выполняются поверх операционных систем, содержащих полноценные библиотеки интернационализации с различной степенью поддержки. После введения этого API появится стандартный интерфейс для доступа к этим библиотекам. Библиотека интернационализации в Windows 8 поддерживает 364 доступных языковых стандарта, 18 систем счисления, множество форматов даты, а также поддерживает григорианский, исламский, еврейский, буддистский, корейский и японский календари.
В целях этой демонстрации пример реализации нового стандарта представлен в виде расширения ActiveX, но после установки эта реализация работает так же, как будет работать запланированный API-интерфейс JavaScript. Вы даже можете поэкспериментировать с ним в окне консоли JavaScript.
Сам API предоставляет веб-платформе три основные возможности:
- Форматирование чисел — форматирование чисел с указанной длиной дробной части или в виде валюты или процентов.
- Форматирование даты и времени — преобразование времени в строку на основе указанного часового пояса, секунд, минут, часов, дня, месяца, года, дня недели или эры.
- Порядковое сравнение строк — эта функция, которая ранее называлась сортировкой строк, выполняет сравнение строк в соответствии с языковым стандартом.
Далее представлен пример этого API в действии:
// Number formatting var nf = new Intl.NumberFormat(["en-US"], { style: "currency", currency: "CNY", currencyDisplay: "symbol", maxmimumFractionDigit: 1 }) nf.format(100); // "¥100.00" // Date formatting var dtf = new Intl.DateTimeFormat(["ar-SA-u-ca-islamic-nu-latin"], { weekday: "long" }); dtf.format(new Date()); // Prints today's week day in long format //Collation sample var co = new Intl.Collator(["de-DE-u-co-phonebk"]); co.compare("a", "b"); // returns -1
Дальнейшие этапы внедрения стандарта ECMAScript
Хотя API-интерфейс интернационализации находится в процессе утверждения, комитет по стандартам продолжает дорабатывать список предложений для следующей версии стандарта, ECMAScript 6, который ориентировочно будет завершен в 2013 г. Как и в случае с API интернационализации, мы будем рады любым отзывам по этим предложениям. Ваши отзывы помогут нам четко представить потребности веб-разработчиков на собраниях комитета по стандартам, проводимых каждые несколько месяцев.
Лучший способ оценить эти предложения — поэкспериментировать с примерами реализаций. Мы призываем вас поэкспериментировать с примером приложения или прототипом API в консоли JavaScript. После этого сообщите нам свои отзывы и рекомендации. Мы хотим улучшить JavaScript и упростить создание отличных веб-приложений с использованием стандартных API-интерфейсов.
— Суреш Джаябалан (Suresh Jayabalan) и Аманда Сильвер (Amanda Silver), руководители программ, группа JavaScript