def __init__(self, parent=None): super().__init__(parent) self._ui = uic.loadUi('mc/preferences/AcceptLanguage.ui', self) self.setAttribute(Qt.WA_DeleteOnClose) self._ui.listWidget.setLayoutDirection(Qt.LeftToRight) settings = Settings() settings.beginGroup('Language') # QStringList langs = settings.value('acceptLanguage', self.defaultLanguage(), type=list) settings.endGroup() for code in langs: loc = QLocale(code.replace('-', '_')) label = '' if loc.language() == QLocale.C: label = _('Personal [%s]') % code else: label = '%s/%s [%s]' % (loc.languageToString( loc.language()), loc.countryToString(loc.country()), code) self._ui.listWidget.addItem(label) self._ui.add.clicked.connect(self.addLanguage) self._ui.remove.clicked.connect(self.removeLanguage) self._ui.up.clicked.connect(self.upLanguage) self._ui.down.clicked.connect(self.downLanguage)
def _expand(self, language): ''' @param: QLocale::Language @return: QStringList ''' allLanguages = [] countries = QLocale.matchingLocales(language, QLocale.AnyScript, QLocale.AnyCountry) for jdx in range(0, len(countries)): languageString = '' country = countries[jdx].country() if len(countries) == 1: languageString = '%s [%s]' % (QLocale.languageToString( language), QLocale(language).name().split('_')[0]) else: languageString = '%s/%s [%s]' % (QLocale.languageToString( language), QLocale.countryToString(country), ('-'.join( QLocale(language, country).name().split('_'))).lower()) if languageString not in allLanguages: allLanguages.append(languageString) return allLanguages