PHP использует библиотеку ICU (см. Функцию unum_formatDoubleCurrency
в ext / intl / formatter / formatter_format.c ).
Библиотека ICU, в свою очередь, использует хранилище общих языковых данных (CLDR) (см. http://userguide.icu -project.org / icudata ).
Формат в примере (формат валюты для lv_LV
locale) можно увидеть в инструменте опроса CLDR - http://st.unicode.org/cldr-apps/v#/lv/Number_Formatting_Patterns/
Если произошла ошибка, о ней можно сообщить в http://unicode.org/cldr/trac/newticket или отредактировать в Survey Tool с помощью учетной записи, полученной в этой контактной форме: http://www.unicode.org/reporting.html
Но в текущем случае ошибки не было.
Формат PHP не соответствует данным CLDR, вероятно, из-за версии libicu
(и его версии CLDR), которая установлена на конкретном компьютере / сервере, или из-за используемого файла данных (icudatl.dat
, см. http://userguide.icu -project.org / icudata ). На данный момент (2018-09) последняя версия libicu
/ data - 62 (см. http://site.icu -project.org / home ), а последняя версия CLDR - 34 (см. http://cldr.unicode.org/).
Если установлен icu-devtools
, при запуске icuinfo
будет отображаться, какие версии libicu
и CLDR
используются. В моем случае: <param name="version">55.1</param>[..]<param name="cldr.version">27.0.1</param>
Есть две альтернативы для формата валюты в lv_LV
, HHVM, по какой-то причине, использует другую.