Coverage for src / ezqt_app / services / translation / translation_service.py: 78.95%
19 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-06 13:12 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-06 13:12 +0000
1# ///////////////////////////////////////////////////////////////
2# SERVICES.TRANSLATION.SERVICE - Translation service
3# Project: ezqt_app
4# ///////////////////////////////////////////////////////////////
6"""Translation service implementation."""
8from __future__ import annotations
10# ///////////////////////////////////////////////////////////////
11# IMPORTS
12# ///////////////////////////////////////////////////////////////
13# Local imports
14from ...domain.ports.translation_service import TranslationServiceProtocol
15from .manager import get_translation_manager
18# ///////////////////////////////////////////////////////////////
19# CLASSES
20# ///////////////////////////////////////////////////////////////
21class TranslationService(TranslationServiceProtocol):
22 """Service wrapper around translation management."""
24 def change_language(self, language_name: str) -> bool:
25 """Switch application language using its display name."""
26 return get_translation_manager().load_language(language_name)
28 def change_language_by_code(self, language_code: str) -> bool:
29 """Switch application language using ISO code (e.g. ``"fr"``)."""
30 return get_translation_manager().load_language_by_code(language_code)
32 def get_available_languages(self) -> list[str]:
33 """Return available language codes."""
34 return get_translation_manager().get_available_languages()
36 def get_current_language_name(self) -> str:
37 """Return the current language display name."""
38 return get_translation_manager().get_current_language_name()
40 def get_current_language_code(self) -> str:
41 """Return the current language code."""
42 return get_translation_manager().get_current_language_code()
44 def translate(self, text: str) -> str:
45 """Translate a text using the active language context."""
46 return get_translation_manager().translate(text)
49# ///////////////////////////////////////////////////////////////
50# FUNCTIONS
51# ///////////////////////////////////////////////////////////////
52def get_translation_service() -> TranslationService:
53 """Return the singleton translation service."""
54 from .._registry import ServiceRegistry
56 return ServiceRegistry.get(TranslationService, TranslationService)