def __init__(self, parent=None): super(QComboBox, self).__init__(parent) for i in range(1, 357): locale = QLocale(i) if locale and QLocale.languageToString(locale.language()) != "C": codeName = locale.name().split("_")[0] if codeName not in self.codesList: self.codesList.append(codeName) self.codesList.sort() for lang in self.codesList: locale = QLocale(lang) if locale: languageName = QLocale.languageToString(locale.language()) self.languageList.append(languageName.title()) self.setIconSize(QSize(32, 22)) codeIcon = QImage(self.iconSize(), QImage.Format_ARGB32) painter = QPainter(codeIcon) painter.setBrush(Qt.transparent) codeIcon.fill(Qt.transparent) font = QFontDatabase().systemFont(QFontDatabase.FixedFont) painter.setFont(font) painter.setPen(self.palette().color(QPalette.Text)) painter.drawText(codeIcon.rect(), Qt.AlignCenter,lang) painter.end() self.addItem(QIcon(QPixmap.fromImage(codeIcon)), languageName.title())
def __createLanguageString(self, language): """ Private method to create a language string given a language identifier. @param language language identifier @type str @return language string @rtype str """ loc = QLocale(language) if loc.language() == QLocale.C: return language country = QLocale.countryToString(loc.country()) lang = QLocale.languageToString(loc.language()) languageString = "{0}/{1} [{2}]".format(lang, country, language) return languageString
def get_available_translations(): # Returns a list of tuples: (lanugage_name, language_code) for each available translation translations_list = [str(p.stem) for p in Path(TRANSLATIONS_DIR).glob('*.qm')] translations_list.append("en_US") result = {} for lang_code in translations_list: loc = QLocale(lang_code) lang_name = loc.languageToString(loc.language()) result[lang_name] = lang_code return result
def __init__(self, parent = None): super().__init__(parent) self.mUi = Ui_PreferencesDialog() self.mLanguages = LanguageManager.instance().availableLanguages() self.mUi.setupUi(self) self.setWindowFlags(self.windowFlags() & ~Qt.WindowContextHelpButtonHint) self.mUi.openGL.setEnabled(QGLFormat.hasOpenGL()) for name in self.mLanguages: locale = QLocale(name) string = "%s (%s)"%(QLocale.languageToString(locale.language()), QLocale.countryToString(locale.country())) self.mUi.languageCombo.addItem(string, name) self.mUi.languageCombo.model().sort(0) self.mUi.languageCombo.insertItem(0, self.tr("System default")) self.mObjectTypesModel = ObjectTypesModel(self) self.mUi.objectTypesTable.setModel(self.mObjectTypesModel) self.mUi.objectTypesTable.setItemDelegateForColumn(1, ColorDelegate(self)) horizontalHeader = self.mUi.objectTypesTable.horizontalHeader() horizontalHeader.setSectionResizeMode(QHeaderView.Stretch) Utils.setThemeIcon(self.mUi.addObjectTypeButton, "add") Utils.setThemeIcon(self.mUi.removeObjectTypeButton, "remove") self.fromPreferences() self.mUi.languageCombo.currentIndexChanged.connect(self.languageSelected) self.mUi.openGL.toggled.connect(self.useOpenGLToggled) self.mUi.gridColor.colorChanged.connect(preferences.Preferences.instance().setGridColor) self.mUi.gridFine.valueChanged.connect(preferences.Preferences.instance().setGridFine) self.mUi.objectLineWidth.valueChanged.connect(self.objectLineWidthChanged) self.mUi.objectTypesTable.selectionModel().selectionChanged.connect(self.selectedObjectTypesChanged) self.mUi.objectTypesTable.doubleClicked.connect(self.objectTypeIndexClicked) self.mUi.addObjectTypeButton.clicked.connect(self.addObjectType) self.mUi.removeObjectTypeButton.clicked.connect(self.removeSelectedObjectTypes) self.mUi.importObjectTypesButton.clicked.connect(self.importObjectTypes) self.mUi.exportObjectTypesButton.clicked.connect(self.exportObjectTypes) self.mObjectTypesModel.dataChanged.connect(self.applyObjectTypes) self.mObjectTypesModel.rowsRemoved.connect(self.applyObjectTypes) self.mUi.autoMapWhileDrawing.toggled.connect(self.useAutomappingDrawingToggled) self.mUi.openLastFiles.toggled.connect(self.openLastFilesToggled)