Set language based on locale if no valid language selected, else English

This commit is contained in:
Et0h 2014-12-02 19:48:55 +00:00
parent 4ceb1e04e7
commit 9bfa8eaf35
2 changed files with 18 additions and 1 deletions

View File

@ -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_):

View File

@ -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']: