Source code for openpypeline.core.localization

"""
File: localization.py
Description: Core Localization Manager for openPypeline Studio.
             Handles loading JSON language files and retrieving UI strings.
"""

import os
import json
import logging
from openpypeline.core.util import prefs

logger = logging.getLogger("openPypeline.localization")

[docs] class LocalizationManager: def __init__(self): self.strings = {} self.current_lang = "en"
[docs] def load_language(self, lang_code=None): """Loads the specified language JSON file into memory.""" if not lang_code: lang_code = prefs.get_pref("ops_language", "en") self.current_lang = lang_code base_dir = os.path.dirname(__file__) lang_dir = os.path.abspath(os.path.join(base_dir, "..", "resources", "lang")).replace("\\", "/") lang_file = os.path.join(lang_dir, f"{lang_code}.json").replace("\\", "/") if os.path.exists(lang_file): with open(lang_file, "r", encoding="utf-8") as f: self.strings = json.load(f) logger.info(f"Loaded language: {lang_code}") else: logger.warning(f"Language file not found: {lang_file}") self.strings = {}
[docs] def get_string(self, key, default=None): return self.strings.get(key, default or f"[{key}]")
localization = LocalizationManager()