我需要讓系統區域設置做很多事情,最終我想使用gettext來翻譯我的應用程序。我要分發Linux和OSX,但我遇到了在OSX雪豹問題:OSX上的locale.getlocale()問題
$ python
Python 2.5.2 (r252:60911, Jan 4 2009, 17:40:26)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'sv_SE.UTF-8'
>>> locale.getlocale()
('sv_SE', 'UTF8')
$ python
Python 2.6.1 (r261:67515, Jul 7 2009, 23:51:51)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, '')
'C'
>>> locale.getlocale()
(None, None)
兩個系統都使用瑞典語言。在Linux上,環境變量LANG已經設置爲「sv_SE.UTF-8」。如果我將該變量傳遞給OSX上的python(改爲LANG="sv_SE.UTF-8" python
),則會很好地檢測區域設置。但locale.getlocale()
不應該能夠獲取操作系統的任何語言?我不想強制用戶設置LANG
,LC_ALL
或任何環境變量。
輸出locale
命令:
$ locale
LANG=
LC_COLLATE="C"
LC_CTYPE="C"
LC_MESSAGES="C"
LC_MONETARY="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_ALL=
在同一個終端窗口中你輸出的'locale'(shell)是什麼? – u0b34a0f6ae 2009-10-27 14:07:32
將語言環境輸出添加到原始文章。 – pojo 2009-10-28 08:56:33