kivy: settings: better handling of "default" language
This commit is contained in:
@@ -1,3 +1,5 @@
|
|||||||
|
from typing import TYPE_CHECKING
|
||||||
|
|
||||||
from kivy.app import App
|
from kivy.app import App
|
||||||
from kivy.factory import Factory
|
from kivy.factory import Factory
|
||||||
from kivy.properties import ObjectProperty
|
from kivy.properties import ObjectProperty
|
||||||
@@ -14,6 +16,10 @@ from electrum.gui.kivy import KIVY_GUI_PATH
|
|||||||
|
|
||||||
from .choice_dialog import ChoiceDialog
|
from .choice_dialog import ChoiceDialog
|
||||||
|
|
||||||
|
if TYPE_CHECKING:
|
||||||
|
from ...main_window import ElectrumWindow
|
||||||
|
|
||||||
|
|
||||||
Builder.load_string('''
|
Builder.load_string('''
|
||||||
#:import partial functools.partial
|
#:import partial functools.partial
|
||||||
#:import _ electrum.gui.kivy.i18n._
|
#:import _ electrum.gui.kivy.i18n._
|
||||||
@@ -110,7 +116,7 @@ Builder.load_string('''
|
|||||||
|
|
||||||
class SettingsDialog(Factory.Popup):
|
class SettingsDialog(Factory.Popup):
|
||||||
|
|
||||||
def __init__(self, app):
|
def __init__(self, app: 'ElectrumWindow'):
|
||||||
self.app = app
|
self.app = app
|
||||||
self.plugins = self.app.plugins
|
self.plugins = self.app.plugins
|
||||||
self.config = self.app.electrum_config
|
self.config = self.app.electrum_config
|
||||||
@@ -132,8 +138,9 @@ class SettingsDialog(Factory.Popup):
|
|||||||
self.has_pin_code = self.app.has_pin_code()
|
self.has_pin_code = self.app.has_pin_code()
|
||||||
self.enable_toggle_use_recoverable_channels = bool(self.wallet.lnworker and self.wallet.lnworker.has_deterministic_node_id())
|
self.enable_toggle_use_recoverable_channels = bool(self.wallet.lnworker and self.wallet.lnworker.has_deterministic_node_id())
|
||||||
|
|
||||||
def get_language_name(self):
|
def get_language_name(self) -> str:
|
||||||
return languages.get(self.config.get('language', 'en_UK'), '')
|
lang = self.config.get('language') or ''
|
||||||
|
return languages.get(lang) or languages.get('') or ''
|
||||||
|
|
||||||
def change_password(self, dt):
|
def change_password(self, dt):
|
||||||
self.app.change_password(self.update)
|
self.app.change_password(self.update)
|
||||||
@@ -143,7 +150,7 @@ class SettingsDialog(Factory.Popup):
|
|||||||
|
|
||||||
def language_dialog(self, item, dt):
|
def language_dialog(self, item, dt):
|
||||||
if self._language_dialog is None:
|
if self._language_dialog is None:
|
||||||
l = self.config.get('language', 'en_UK')
|
l = self.config.get('language') or ''
|
||||||
def cb(key):
|
def cb(key):
|
||||||
self.config.set_key("language", key, True)
|
self.config.set_key("language", key, True)
|
||||||
item.lang = self.get_language_name()
|
item.lang = self.get_language_name()
|
||||||
|
|||||||
@@ -84,3 +84,4 @@ languages = {
|
|||||||
'zh_CN': _('Chinese Simplified'),
|
'zh_CN': _('Chinese Simplified'),
|
||||||
'zh_TW': _('Chinese Traditional')
|
'zh_TW': _('Chinese Traditional')
|
||||||
}
|
}
|
||||||
|
assert '' in languages
|
||||||
|
|||||||
Reference in New Issue
Block a user