进一步的 kvmd 国际化(汉化)支持,添加配置入口

yaml 配置示例:
```
languages:
    console: zh
    web: zh
```
This commit is contained in:
mofeng-git
2024-08-14 22:54:12 +08:00
parent 5b25b3661f
commit 35397c5414
47 changed files with 567 additions and 181 deletions

View File

@@ -46,7 +46,7 @@ from ....validators.basic import valid_float_f01
from ....validators.os import valid_abs_path
from ....validators.hw import valid_gpio_pin_optional
from ....lanuages import Lanuages
from ....languages import Languages
from .. import BaseHid
@@ -146,7 +146,7 @@ class BaseMcuHid(BaseHid, multiprocessing.Process): # pylint: disable=too-many-
self.__stop_event = multiprocessing.Event()
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
@classmethod
def get_plugin_options(cls) -> dict:

View File

@@ -27,7 +27,7 @@ import gpiod
from ....logging import get_logger
from ....lanuages import Lanuages
from ....languages import Languages
# =====
class Gpio: # pylint: disable=too-many-instance-attributes
@@ -51,7 +51,7 @@ class Gpio: # pylint: disable=too-many-instance-attributes
self.__line_request: (gpiod.LineRequest | None) = None
self.__last_power: (bool | None) = None
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
def __enter__(self) -> None:
if self.__power_detect_pin >= 0 or self.__reset_pin >= 0:

View File

@@ -40,7 +40,7 @@ from .... import aiotools
from .... import aiomulti
from .... import aioproc
from ....lanuages import Lanuages
from ....languages import Languages
from .. import BaseHid
@@ -109,7 +109,7 @@ class Plugin(BaseHid): # pylint: disable=too-many-instance-attributes
stop_event=self.__stop_event,
)
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
@classmethod
def get_plugin_options(cls) -> dict:

View File

@@ -38,7 +38,7 @@ from .... import aiomulti
from ....keyboard.mappings import UsbKey
from ....lanuages import Lanuages
from ....languages import Languages
from ..otg.events import BaseEvent
from ..otg.events import ClearEvent
@@ -117,7 +117,7 @@ class BtServer: # pylint: disable=too-many-instance-attributes
self.__keys: list[UsbKey | None] = [None] * 6
self.__mouse_buttons = 0
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
def run(self) -> None:
with self.__iface:

View File

@@ -41,7 +41,7 @@ from ....validators.basic import valid_float_f01
from ....validators.os import valid_abs_path
from ....validators.hw import valid_tty_speed
from ....lanuages import Lanuages
from ....languages import Languages
from .. import BaseHid
@@ -84,7 +84,7 @@ class Plugin(BaseHid, multiprocessing.Process): # pylint: disable=too-many-inst
self.__keyboard = Keyboard()
self.__mouse = Mouse()
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
@classmethod
def get_plugin_options(cls) -> dict:

View File

@@ -25,7 +25,7 @@ import contextlib
from typing import Generator
from ....lanuages import Lanuages
from ....languages import Languages
# =====
@@ -37,7 +37,7 @@ class ChipResponseError(Exception):
class ChipConnection:
def __init__(self, tty: serial.Serial) -> None:
self.__tty = tty
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
def xfer(self, cmd: bytes) -> int:
self.__send(cmd)

View File

@@ -24,7 +24,7 @@ from typing import Iterable
from typing import AsyncGenerator
from typing import Any
from ....lanuages import Lanuages
from ....languages import Languages
from ....logging import get_logger
@@ -120,7 +120,7 @@ class Plugin(BaseHid): # pylint: disable=too-many-instance-attributes
def sysprep(self) -> None:
udc = usb.find_udc(self.__udc)
get_logger(0).info(Lanuages().gettext("Using UDC %s"), udc)
get_logger(0).info(Languages().gettext("Using UDC %s"), udc)
self.__keyboard_proc.start(udc)
self.__mouse_proc.start(udc)
if self.__mouse_alt_proc:

View File

@@ -37,7 +37,7 @@ from .... import aiomulti
from .... import aioproc
from .... import usb
from ....lanuages import Lanuages
from ....languages import Languages
from .events import BaseEvent
@@ -78,7 +78,7 @@ class BaseDeviceProcess(multiprocessing.Process): # pylint: disable=too-many-in
self.__logger: (logging.Logger | None) = None
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
def start(self, udc: str) -> None: # type: ignore # pylint: disable=arguments-differ
self.__udc_state_path = usb.get_udc_path(udc, usb.U_STATE)

View File

@@ -41,7 +41,7 @@ from .events import get_led_scroll
from .events import get_led_num
from .events import make_keyboard_report
from ....lanuages import Lanuages
from ....languages import Languages
# =====
class KeyboardProcess(BaseDeviceProcess):
@@ -55,7 +55,7 @@ class KeyboardProcess(BaseDeviceProcess):
self.__pressed_modifiers: set[UsbKey] = set()
self.__pressed_keys: list[UsbKey | None] = [None] * 6
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
def cleanup(self) -> None:
self._stop()

View File

@@ -36,7 +36,7 @@ from .events import MouseRelativeEvent
from .events import MouseWheelEvent
from .events import make_mouse_report
from ....lanuages import Lanuages
from ....languages import Languages
# =====
class MouseProcess(BaseDeviceProcess):
@@ -55,7 +55,7 @@ class MouseProcess(BaseDeviceProcess):
self.__x = 0 # For absolute
self.__y = 0
self.__win98_fix = False
self.gettext=Lanuages().gettext
self.gettext=Languages().gettext
def is_absolute(self) -> bool:
return self.__absolute

View File

@@ -41,7 +41,7 @@ from ...validators.basic import valid_int_f1
from ...validators.basic import valid_float_f01
from ...validators.hw import valid_gpio_pin_optional
from ...lanuages import Lanuages
from ...languages import Lanuages
from ._mcu import BasePhyConnection
from ._mcu import BasePhy