Add internationalization support with English and French translations

- Introduced a new i18n module for managing translations using JSON files.
- Added English (en.json) and French (fr.json) translation files for UI elements.
- Implemented lazy initialization of the translator to load translations on demand.
- Added unit tests for translation lookup, fallback behavior, and available languages detection.
This commit is contained in:
claudi 2026-03-10 14:32:38 +01:00
parent fd0482ed2d
commit 7daec731ca
11 changed files with 1184 additions and 280 deletions

View file

@ -15,6 +15,8 @@ from PySide6.QtWidgets import QApplication
from webdrop_bridge.config import Config, ConfigurationError
from webdrop_bridge.ui.main_window import MainWindow
from webdrop_bridge.utils.i18n import get_translations_dir
from webdrop_bridge.utils.i18n import initialize as i18n_init
from webdrop_bridge.utils.logging import get_logger, setup_logging
@ -50,6 +52,11 @@ def main() -> int:
logger.info(f"Starting {config.app_name} v{config.app_version}")
logger.debug(f"Configuration: {config}")
# Initialize internationalization
translations_dir = get_translations_dir()
i18n_init(config.language, translations_dir)
logger.debug(f"i18n initialized: language={config.language}, dir={translations_dir}")
except ConfigurationError as e:
print(f"Configuration error: {e}", file=sys.stderr)
return 1