New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lzh_tw is missing in locale.py #76962
Comments
The lzh_tw locale (Literary Chinese) is not available in Lib/locale.py This issue will cause error like: Traceback (most recent call last):
File "/usr/share/apport/apport-gtk", line 598, in <module>
app.run_argv()
File "/usr/lib/python3/dist-packages/apport/ui.py", line 694, in run_argv
return self.run_crashes()
File "/usr/lib/python3/dist-packages/apport/ui.py", line 245, in run_crashes
logind_session[1] > self.report.get_timestamp():
File "/usr/lib/python3/dist-packages/apport/report.py", line 1684, in get_timestamp
orig_ctime = locale.getlocale(locale.LC_TIME)
File "/usr/lib/python3.6/locale.py", line 581, in getlocale
return _parse_localename(localename)
File "/usr/lib/python3.6/locale.py", line 490, in _parse_localename
raise ValueError('unknown locale: %s' % localename)
ValueError: unknown locale: lzh_TW This can be easily reproduced in Ubuntu 17.10, with English selected as the default language, but Timezone set to Taipei. This will set the locale to: $ locale
LANG=en_US.UTF-8
LANGUAGE=
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=lzh_TW
LC_TIME=lzh_TW
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=lzh_TW
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=lzh_TW
LC_NAME=lzh_TW
LC_ADDRESS=lzh_TW
LC_TELEPHONE=lzh_TW
LC_MEASUREMENT=lzh_TW
LC_IDENTIFICATION=lzh_TW
LC_ALL= And when running some python script to call locale.py, you will see the error message above. |
Maybe, relating to https://bugs.launchpad.net/ubuntu/+source/language-pack-zh-hant/+bug/1699540 |
Yes, this is related to the language setting in Ubuntu, as the locale should be set to zh_TW instead of lzh_TW when the Timezone was set to Taipei. But even so, I think this bug is still valid, as the lzh_TW does not exist in the lib at all. |
Python doesn't have locale database, while have some aliases. This exception is raised because In case of zh_TW, alias is registered:
But I don't think adding So I think supporting locale name without encoding is right way. |
Yes I think you are right, |
lzh_tw was added in this commit: I don't know why Python should have such a large locale alias table. I added Serhiy to nosy list because he is author of bpo-20079. Serhiy, how do you think about making UTF-8 as default charset and |
I'm not sure that wrong guess is better that exception. It looks to me that there is something wrong with the way we use the alias table. It is glibc centric, but some entries contradict glibc, because the X11 alias have a precedence. There are known issues on OS X. I think the other way for determining the locale encoding should be used. |
See also bpo-20087. It added lzh_tw locale, but later this change was reverted. Thus I close this issue as a duplicate. |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: