您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

设置Python语言环境不起作用

设置Python语言环境不起作用

似乎什么也没有保存。我假设您一次设置语言环境是错误的,然后系统会记住这一点

是的,locale.setlocale()使用Python调用不会影响以后的python过程。而是配置环境变量,请参阅如何在Ubuntu中设置所有语言环境设置

Bash的“日期”方法似乎以某种方式选择了语言环境。

date 首先调用setlocale(LC_ALL,""),即您需要每个进程至少调用setlocale()一次以启用$LANG语言环境而不是Clocale。

setlocale(LC_ALL, '')``$LANG首先根据变量设置语言环境$LANGUAGE(它是相关的,但有所不同: “ GNU gettext搜索路径按该顺序包含’LC_ALL’,’LC_CTYPE’,’LANG’和’LANGUAGE’。”)。

设置LC_TIME类别就足够了(在Ubuntu上):

>>> import locale
>>> import time
>>> time.strftime('%A')
'Tuesday'
>>> locale.getlocale(locale.LC_TIME)
('en_US', 'UTF-8')
>>> locale.setlocale(locale.LC_TIME, 'ru_RU.UTF-8')
'ru_RU.UTF-8'
>>> time.strftime('%A')
'Вторник'
>>> locale.getlocale(locale.LC_TIME)
('ru_RU', 'UTF-8')

如果setlocale()尚未引发,locale.Error: unsupported locale setting则成功设置了相应的语言环境类别。

您还可以知道工作日的位置(在更改语言环境的同一python会话中):

>>> import calendar
>>> calendar.day_name[1]
'Вторник'
>>> locale.nl_langinfo(locale.DAY_3)
'Вторник'

在指定的语言环境中打印工作日而不修改全局状态的一种可移植方式是使用babelmodule

>>> from datetime import date
>>> from babel.dates import format_date # $ pip install babel
>>> format_date(date.today(), format='EEEE', locale='en')
'Tuesday'
>>> format_date(date.today(), format='EEEE', locale='ru')
'вторник'
>>> format_date(date.today(), format='EEEE', locale='nl')
'dinsdag'
python 2022/1/1 18:48:05 有331人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶