from fansifter_common.adapters.poeditor import POEditorClient from fansifter_common.translation.constants import ( COUNTRY_CODE_TO_LANGUAGES_MAPPING, DEFAULT_LANGUAGE_CODES, ) from fansifter_common.translation.loaders import get_translations from fansifter_common.translation.types import Terms class ExportTranslationService: default_language_code = DEFAULT_LANGUAGE_CODES def __init__(self, poeditor_client: POEditorClient) -> None: self.poeditor_client = poeditor_client def get_project_translations(self, project_id: int) -> dict[str, dict[str, str]]: languages = self.poeditor_client.get_available_project_languages(project_id) translations = {} for language in languages: terms = self.poeditor_client.get_project_terms_translation_for_lang( project_id, language ) translations[language] = terms return translations class TranslationService: translations: dict[str, Terms] default_language_code = DEFAULT_LANGUAGE_CODES country_to_langs_mapping = COUNTRY_CODE_TO_LANGUAGES_MAPPING def __init__(self, translations_path: str): self.translations = get_translations(translations_path) def _get_language_codes(self, country_code: str) -> list[str]: """Get the language code for given country code""" return self.country_to_langs_mapping.get( country_code, self.default_language_code ) def get_translations_by_country_code(self, country_code: str) -> dict[str, Terms]: languages = self._get_language_codes(country_code) return {language: self.translations[language] for language in languages}