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 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): def getMessage(type_, locale=None):
if constants.SHOW_BUTTON_LABELS == False: if constants.SHOW_BUTTON_LABELS == False:
if "-guibuttonlabel" in type_: if "-guibuttonlabel" in type_:
@ -1003,6 +1014,10 @@ def getMessage(type_, locale=None):
if constants.SHOW_TOOLTIPS == False: if constants.SHOW_TOOLTIPS == False:
if "-tooltip" in type_: if "-tooltip" in type_:
return "" return ""
if not messages.has_key(messages["CURRENT"]):
setLanguage(getInitialLanguage())
lang = messages["CURRENT"] lang = messages["CURRENT"]
if locale and messages.has_key(locale): if locale and messages.has_key(locale):
if messages[locale].has_key(type_): if messages[locale].has_key(type_):

View File

@ -5,7 +5,7 @@ from syncplay.players.playerFactory import PlayerFactory
import os import os
import sys import sys
from syncplay.messages import getMessage, getLanguages, setLanguage from syncplay.messages import getMessage, getLanguages, setLanguage, getInitialLanguage
from syncplay import constants from syncplay import constants
class GuiConfiguration: class GuiConfiguration:
@ -630,6 +630,8 @@ class ConfigDialog(QtGui.QDialog):
self.languageLabel = QLabel(getMessage("language-label"), self) self.languageLabel = QLabel(getMessage("language-label"), self)
self.languageCombobox = QtGui.QComboBox(self) self.languageCombobox = QtGui.QComboBox(self)
self.languages = getLanguages() self.languages = getLanguages()
if self.languages.has_key(self.config['language']) == False:
self.config['language'] = getInitialLanguage()
for lang in self.languages: for lang in self.languages:
self.languageCombobox.addItem(self.languages[lang], lang) self.languageCombobox.addItem(self.languages[lang], lang)
if lang == self.config['language']: if lang == self.config['language']: