使用语言环境打印以色列货币

时间:2018-07-05 12:32:55

标签: python windows python-3.x locale

我正在使用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'。也进行了检查,并得到了相同的错误。

我不知道在哪里看,因为the docsthis SO answer并没有帮助。


我的机器的语言环境:

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

顺便说一句,我正在Windows 8上同时使用Python3(也在ideone上尝试对其进行检查)同时适用于Python 2&3

1 个答案:

答案 0 :(得分:3)

也许首先在终端中检查系统中安装了哪种语言环境(呼叫取决于您的操作系统):

$ 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 locale error: unsupported locale setting