Spaces:
Sleeping
Sleeping
import json | |
import os | |
from typing import Dict | |
from config import Config | |
class I18nManager: | |
_instance = None | |
_translations: Dict[str, Dict] = {} | |
_current_language = Config.DEFAULT_LANGUAGE | |
def __new__(cls): | |
if cls._instance is None: | |
cls._instance = super(I18nManager, cls).__new__(cls) | |
cls._instance._load_translations() | |
return cls._instance | |
def _load_translations(self): | |
for lang in Config.SUPPORTED_LANGUAGES: | |
file_path = f"locales/{lang}/translation.json" | |
with open(file_path, "r", encoding="utf-8") as f: | |
self._translations[lang] = json.load(f) | |
def set_language(self, language: str): | |
if language in Config.SUPPORTED_LANGUAGES: | |
self._current_language = language | |
def get_text(self, key: str) -> str: | |
return self._translations.get(self._current_language, {}).get( | |
key, f"Missing translation: {key}" | |
) | |