Exemple #1
0
    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 _onLanguagesReceived(self, languages):
     loc = QLocale.system()
     sysLang = QLocale.languageToString(loc.language())
     preferredLanguages = self._getPreferredLanguages()
     self._langList.clear()
     firstCheckedItem = None
     for lang in sorted(languages, key=lambda x: x['name']):
         langName = lang['name']
         langCode = lang['code']
         nativeLang = self._getNativeLanguageName(langName)
         text = langName
         isSystemLang = langName == sysLang
         if nativeLang and not isSystemLang:
             text += " (" + nativeLang + ")"
         item = QListWidgetItem(text)
         item.setFlags(item.flags() | Qt.ItemIsUserCheckable)
         item.setData(Qt.UserRole, langCode)
         if (preferredLanguages and langCode in preferredLanguages) \
                 or isSystemLang:
             item.setCheckState(Qt.Checked)
             firstCheckedItem = item
         else:
             item.setCheckState(Qt.Unchecked)
         self._langList.addItem(item)
     self._langList.setMinimumWidth(self._langList.sizeHintForColumn(0))
     if firstCheckedItem:
         self._langList.scrollToItem(firstCheckedItem)
Exemple #3
0
 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
 def _initLocales(self):
     locales = QLocale.matchingLocales(QLocale.AnyLanguage,
                                       QLocale.AnyScript,
                                       QLocale.AnyCountry)
     localeDict = {}
     for loc in locales:
         langName = QLocale.languageToString(loc.language())
         if langName == "C":
             continue
         if langName in localeDict:
             continue
         localeDict[langName] = loc
     self._localeDict = localeDict