我正在使用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 docs和this SO answer并没有帮助。
我的机器的语言环境:
C:\> systeminfo | findstr "Locale"
System Locale: he;Hebrew
Input Locale: en-us;English (United States)
顺便说一句,我正在Windows 8上同时使用Python3(也在ideone上尝试对其进行检查)同时适用于Python 2&3
答案 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'
也许也检查一下该线程: