diff --git a/syncplay/messages.py b/syncplay/messages.py index cd76292..a862f13 100755 --- a/syncplay/messages.py +++ b/syncplay/messages.py @@ -996,6 +996,17 @@ def getMissingStrings(): return missingStrings +def getInitialLanguage(): + import locale + try: + systemLocale = locale.getdefaultlocale("language")[0] + initialLanguage = systemLocale.split("_")[0] + if not messages.has_key(systemLocale): + initialLanguage = "en" + except: + initialLanguage = "en" + return initialLanguage + def getMessage(type_, locale=None): if constants.SHOW_BUTTON_LABELS == False: if "-guibuttonlabel" in type_: @@ -1003,6 +1014,10 @@ def getMessage(type_, locale=None): if constants.SHOW_TOOLTIPS == False: if "-tooltip" in type_: return "" + + if not messages.has_key(messages["CURRENT"]): + setLanguage(getInitialLanguage()) + lang = messages["CURRENT"] if locale and messages.has_key(locale): if messages[locale].has_key(type_): diff --git a/syncplay/ui/GuiConfiguration.py b/syncplay/ui/GuiConfiguration.py index de3499d..bb783fc 100644 --- a/syncplay/ui/GuiConfiguration.py +++ b/syncplay/ui/GuiConfiguration.py @@ -5,7 +5,7 @@ from syncplay.players.playerFactory import PlayerFactory import os import sys -from syncplay.messages import getMessage, getLanguages, setLanguage +from syncplay.messages import getMessage, getLanguages, setLanguage, getInitialLanguage from syncplay import constants class GuiConfiguration: @@ -630,6 +630,8 @@ class ConfigDialog(QtGui.QDialog): self.languageLabel = QLabel(getMessage("language-label"), self) self.languageCombobox = QtGui.QComboBox(self) self.languages = getLanguages() + if self.languages.has_key(self.config['language']) == False: + self.config['language'] = getInitialLanguage() for lang in self.languages: self.languageCombobox.addItem(self.languages[lang], lang) if lang == self.config['language']: