Python locale 多語言模組和遇到的坑

2021-08-30 21:45:39 字數 1627 閱讀 7619

locale為計算機上提供了國際化和本地化轉化的環境。

locale 的相關命令

在liunx中,可以通過命令locale檢視當前系統的語言環境。

locale  -a  可以檢視系統支援的locale值

阿里雲訊息佇列使用中遇到的坑

不同語言環境,執行出的結果也是不同,在工作中呼叫阿里雲的訊息佇列,因為語言環境的問題頻頻報錯,除錯不通,甚是苦惱

發現這個地方報錯,才明白是時間格式問題。

因為我本地是zh_cn.utf-8,而伺服器上獲取的是thu, 24 nov 2016 07:01:59 gmt 格式

應該做出的措施是:

time_locale = locale.setlocale(locale.lc_time)    #獲取當前系統語言格式

locale.setlocale(locale.lc_time, 'en_us')   #將語言格式轉換為en_us

報錯**(將上面報錯行包裹)

locale.setlocale(locale.lc_time, time_locale) #將語言格式改變為原來格式,避免後面流程出現問題

import locale

def to_untime(self, time_string):

time_locale = locale.setlocale(locale.lc_time)

if time_locale.find('en') != 0 and time_locale != 'c':

locale.setlocale(locale.lc_time, 'en_us')

unixtime = time.strftime("%a, %d %b %y %h:%m:%s gmt", time.gmtime())

locale.setlocale(locale.lc_time, time_locale)

else:

unixtime = time.strftime("%a, %d %b %y %h:%m:%s gmt", time.gmtime())

return unixtime

我呢,就慘了點,找到了問題所在,偏偏伺服器種種原因,locale下不下來,只能另尋它路了。

想必下面這種low方法,你用不到,因為你沒有我慘,哈哈哈哈

weeks = 

months =

week = time.strftime('%a', time.gmtime())

month = time.strftime('%m', time.gmtime())

if week in weeks:

w = weeks[week.strip()]

else:

w = week

mont = month.strip()

if mont in months:

m = months[mont]

else:

m = month

unixtime = time.strftime(w +', '+ "%d" + ' '+ m +' '+ "%y %h:%m:%s gmt", time.gmtime())

軟體多語言

locale是指特定於某個國家或地區的一組設定,包括字符集,數字 貨幣 時間和日期的格式等。在windows中,每個locale可以用乙個32位數字表示,記作lcid。在winnt.h中可以看到lcid的組成。它的高16位表示字元的排序方法,一般為0。在它的低16位中,低10位是primary la...

多語言切換

專案中應用到了多語言切換,鞏固一下。貼上 大家一起學習。廢話不多說直接上 1 新增多語言 在res values 下預設有個strings,需要多種語言就來建立幾個strings,values右鍵 new 乙個 values res file file name 就是strings director...

Qt 筆記 多語言

1 使用命令 lupdate no obsolete main.pro 作用 將main.pro檔案內的所有源程式檔案中的被tr 包裝的字串打包成.ts檔案,此檔案可以使用qt的qt linguist開啟並翻譯 2 使用命令 lrelease main.pro 作用 通過.ts檔案生成.qm檔案,此...