распечатать израильскую валюту используя локаль - PullRequest
0 голосов
/ 05 июля 2018

Я использую locale.currency(100) для отображения валюты [работает нормально - возвращает '$100.00'], но я не могу заставить ее отображать израильскую валюту ...

Я пытался играть с locale.setlocale(locale.LC_TIME, 'il_IL.UTF-8'), но это только что подсказало Error: unsupported locale setting. (то же самое касается других стран - 'ru_RU.UTF-8')

Как прокомментировал @ jdehesa , правильная локаль для Израиля должна быть 'he_IL.UTF-8' вместо 'il_IL.UTF-8'. Это тоже проверил и получил ту же ошибку.

Понятия не имею, где искать, поскольку документы и этот SO-ответ не помог.


Язык моей машины:

C:\> systeminfo | findstr "Locale"
System Locale:             he;Hebrew
Input Locale:              en-us;English (United States)

Кстати, я использую Python3 на Windows 8 (пробовал проверить его также на ideone ) для Python 2 и 3

1 Ответ

0 голосов
/ 05 июля 2018

Возможно, сначала проверьте в своем терминале, какой язык установлен в вашей системе (вызов зависит от вашей ОС):

$ locale -a

Дополнительно вы можете установить все настройки, а не только время; -)

locale.setlocale(locale.LC_ALL, 'il_IL.UTF-8')

В python, который работает в моей системе:

In [1]: import locale

In [2]: locale.setlocale(locale.LC_ALL, '')
Out[2]: 'LC_CTYPE=en_US.UTF-8;LC_NUMERIC=de_DE.UTF-8;LC_TIME=de_DE.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=de_DE.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=de_DE.UTF-8;LC_NAME=de_DE.UTF-8;LC_ADDRESS=de_DE.UTF-8;LC_TELEPHONE=de_DE.UTF-8;LC_MEASUREMENT=de_DE.UTF-8;LC_IDENTIFICATION=de_DE.UTF-8'

In [3]: locale.currency(100)
Out[3]: '100,00 €'

In [4]: locale.getlocale()
Out[4]: ('en_US', 'UTF-8')

In [5]: locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
Out[5]: 'en_US.UTF-8'

In [6]: locale.currency(100)
Out[6]: '$100.00'

Может быть, проверить эту тему тоже:

Ошибка языкового стандарта Python: неподдерживаемый языковой стандарт

...