Keep the screens' language at hand for the words the app sends them itself
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -133,6 +133,25 @@ def t(key, **params):
|
||||
return TRANSLATIONS.text(key, REQUEST_LANGUAGE.get(), **params)
|
||||
|
||||
|
||||
# The screens' language and number format (Settings -> Language & region), for the words the app sends to the screens
|
||||
# itself: tile names, the top bar, the history card. The manager keeps it current (Manager.language_changed).
|
||||
SCREENS = {'language': 'en', 'numbers': 'point'}
|
||||
|
||||
|
||||
def set_screens(language, numbers):
|
||||
SCREENS.update(language=language, numbers=numbers)
|
||||
|
||||
|
||||
def screen_t(key, **params):
|
||||
"""A text in the screens' language, for what the app sends to them."""
|
||||
return TRANSLATIONS.text(key, SCREENS['language'], **params)
|
||||
|
||||
|
||||
def screen_number(text):
|
||||
"""A number as Home Assistant sends it, written as the screens write numbers ("1.234,5" in Dutch)."""
|
||||
return format_number(text, SCREENS['numbers'])
|
||||
|
||||
|
||||
class Region:
|
||||
"""Settings -> Language & region, kept in /data/language.json: one language, clock and number format for every
|
||||
screen. A screen's firmware carries its language; the clock and the numbers travel in the layout message."""
|
||||
|
||||
@@ -571,6 +571,7 @@ class Manager:
|
||||
self.ha.language_of = self.region.language
|
||||
self.ha.on_config = self.language_changed
|
||||
self.pin_clock = False
|
||||
i18n.set_screens(self.region.language(), self.region.number_style())
|
||||
self.skill_dir = claude_skill.skill_dir()
|
||||
self._registry_source, self._registry_index = None, {}
|
||||
self._items_source, self._items = None, []
|
||||
@@ -1151,6 +1152,7 @@ class Manager:
|
||||
if known and all(state == 'off' for state in known):
|
||||
self.region.clock = '12'
|
||||
self.region.save()
|
||||
i18n.set_screens(self.region.language(), self.region.number_style())
|
||||
self.ha.services_changed.set()
|
||||
self.sent.clear()
|
||||
self.write_languages()
|
||||
|
||||
Reference in New Issue
Block a user