Как стать автором
Обновить

Комментарии 8

А как же разные разделители десятичной части числа (вы же помните, что в русском используется запятая, а не точка). И разделители групп разрядов?
Вы сейчас переводчику вопрос задали или автору? :)
Читателю.
Да, об этом можно целую статью написать. В русском языке разделитель дробной части — запятая, в английском — точка. Причем, в английском для разделения разрядов используется запятая (все помнят three comma club?). Так, в русском 1,999 — это почти два, а в английском — почти две тысячи.
В таких случаях самым международным вариантом получается отделение дробной части точкой, а группы разрядов разделять пробелами.
И не забывать парсить дробные числа в нужной культуре.
Есть неосвещенная в данной статье проблема: сопряжение правильной формы слова с числом. Видимое пользователю число может меняться и относящееся к нему слово, соответственно, тоже. Например, в русском для одного слова может быть 3 формы: «1 стол», «2 стола», «5 столов». В английском — только 2 формы: «1 table», «2 tables». А как будет, к примеру, в арабском? Я не знаю. На такие вопросы нет унифицированного ответа. Нельзя просто так взять и запихнуть в ресурсный файл слово «стол», «table» и их аналоги на остальных неизвестных вам языках. По-любому придется для каждого языка дополнительно прописать какую-то логику, изучить основы грамматики, словообразования. Так что если копнуть глубже, то не все так просто и однозначно.
Есть проект CLDR и основанная на нем библиотека ICU. В ней есть средства для форматирования дат, чисел, форм множественного числа, и других вещей, которые зависят от локализации.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий