Set language based on locale if no valid language selected, else English
This commit is contained in:
parent
4ceb1e04e7
commit
9bfa8eaf35
@ -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_):
|
||||
|
||||
@ -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']:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user