Locale-to-number.js с открытым исходным кодом

Современный мир очень требователен и сложен. Вот почему современные требования к программному обеспечению также сложны. Существует огромное количество цифровых продуктов, которыми пользуются миллионы или даже миллиарды людей. Командам разработчиков программного обеспечения удается спроектировать и внедрить эти очень сложные продукты за относительно короткие периоды времени, а также убедиться (в большинстве случаев), что их продукты будут работать должным образом. И с течением времени требования становятся все более и более сложными, но усилия, необходимые для создания таких решений, остаются почти такими же. Как это возможно?

Ответ заключается в том, что новое программное обеспечение создается на основе существующих программных пакетов или модулей. Существует множество пакетов с открытым исходным кодом, доступных для использования по определенным лицензиям. Когда возникает проблема или новая фича кажется не такой тривиальной, команде разработчиков приходится решать, стоит ли использовать уже существующий пакет или лучше создать его с нуля. Однако в некоторых случаях доступен только последний вариант.

В fromScratch Studio нам довелось столкнуться с таким случаем. Работая над проектом Javascript, мы хотели преобразовать десятичные литеральные числа в строки с учетом языкового стандарта пользователя. Например, число 123456,789 в немецкой локали должно быть переведено как 123,456,789, в отличие от английской локали, где оно должно быть переведено как 123,456,789. Немного поискав, мы обнаружили, что это уже реализовано в Javascript с помощью функции Number.toLocaleString(). Эта функция принимает 2 аргумента: десятичный литерал и локаль пользователя. Он выводит строковое представление данного числа на основе заданной локали. Однако мы также хотели преобразовать такие представления обратно в десятичные буквенные числа. Класс Number не предоставляет эту утилиту, и, изучив, что доступно в Интернете, мы не смогли найти надежное решение, способное обрабатывать такие случаи.

Итак, мы решили построить его с нуля (каламбур). Мы сели всей командой и тщательно организовали проект, максимально строго следуя всем правилам открытого исходного кода. По счастливому стечению обстоятельств, фактическая разработка началась во время мероприятия Hacktorberfest, которое DigitalOcean организует последние 8 лет. Принимая участие в Hacktoberfest, нам удалось превратить простой цикл разработки в более захватывающую и увлекательную задачу, где все члены команды могли активно вносить свой вклад в уникальный и многообещающий Javascript библиотека. И, конечно же, получите бесплатные футболки в конце мероприятия Hacktoberfest. Вклад был связан не только с кодом, так как оркестровка проекта также занимает много времени.

Наконец, задачи были поставлены и цели достигнуты. Библиотека locale-to-number.js создана и опубликована в виде пакета npm. Суммируя:

locale-to-number.js — это библиотека, которая помогает разработчикам преобразовывать строковые представления чисел в определенной локали в десятичные буквенные числа. Прямо противоположная операция доступна либо с помощью конструктора Intl.NumberFormat(), либо с помощью функции Number.toLocaleString(). Однако преобразовать их обратно в десятичные числа не так уж и просто. Вот где в игру вступает locale-to-number.js.

Вы можете проверить ссылки ниже для получения дополнительной информации о пакете. Имейте в виду, что это только первый выпуск библиотеки. Новые функции, такие как поддержка арабского языка, включая информацию о типе Typescript, и многие другие будут представлены в ближайшем будущем. Так что обязательно следите.

Github: https://github.com/fromScratchStudioGr/locale-to-number.js

NPM: https://www.npmjs.com/package/@fromscratch-studio-gr/locale-to-number.js