2014-02-13 80 views
1

我在使用QTranslator加載翻譯文件時遇到問題,因爲它中包含語言環境修飾符。我使用的代碼,QTranslator如何處理語言環境修飾符PyQT?

from PyQt4 import QtCore, QtGui 
from locale import getdefaultlocale 

locale = getdefaultlocale() 

app = QtGui.QApplication(sys.argv) 

translator = QtCore.QTranslator(app) 
translator.load('/usr/share/my_application/tr/qt_%s.qm' % locale[0]) 
app.installTranslator(translator) 

此代碼的工作完美的幾乎所有區域,除了含有改性劑(例如[email protected])的。在這種情況下,它不會加載翻譯文件,而不管名稱是什麼。

我似乎無法弄清楚要命名翻譯文件,或者需要實現哪些新代碼才能使此代碼正常工作。

在此先感謝,喬希

回答

0

地點名稱通常的形式爲:

language[_territory][.codeset][@modifier] 

,但最後兩個元素的順序可以改變。

從Qt翻譯器文件的角度來看,很難看到最後兩個組件如何相關。所以顯而易見的事情就是修剪它們,只使用語言和地域。

要做到這一點是使用最簡單的方法QLocale

qm = 'qt_%s.qm' % QLocale().name()