38 lines
1.6 KiB
Python
38 lines
1.6 KiB
Python
import glob
|
|
import os
|
|
from PyQt4 import QtCore, QtGui
|
|
|
|
from shared import codePath, config
|
|
|
|
class LanguageBox(QtGui.QComboBox):
|
|
languageName = {"system": "System Settings", "eo": "Esperanto", "en_pirate": "Pirate English"}
|
|
def __init__(self, parent = None):
|
|
super(QtGui.QComboBox, self).__init__(parent)
|
|
self.populate()
|
|
|
|
def populate(self):
|
|
self.languages = []
|
|
self.clear()
|
|
localesPath = os.path.join (codePath(), 'translations')
|
|
configuredLocale = "system"
|
|
try:
|
|
configuredLocale = config.get('bitmessagesettings', 'userlocale', "system")
|
|
except:
|
|
pass
|
|
self.addItem(QtGui.QApplication.translate("settingsDialog", "System Settings", "system"), "system")
|
|
self.setCurrentIndex(0)
|
|
self.setInsertPolicy(QtGui.QComboBox.InsertAlphabetically)
|
|
for translationFile in sorted(glob.glob(os.path.join(localesPath, "bitmessage_*.qm"))):
|
|
localeShort = os.path.split(translationFile)[1].split("_", 1)[1][:-3]
|
|
locale = QtCore.QLocale(QtCore.QString(localeShort))
|
|
if localeShort in LanguageBox.languageName:
|
|
self.addItem(LanguageBox.languageName[localeShort], localeShort)
|
|
elif locale.nativeLanguageName() == "":
|
|
self.addItem(localeShort, localeShort)
|
|
else:
|
|
self.addItem(locale.nativeLanguageName(), localeShort)
|
|
for i in range(self.count()):
|
|
if self.itemData(i) == configuredLocale:
|
|
self.setCurrentIndex(i)
|
|
break
|