Team Ai
Apppublic

azils3/bash

sourceHugging Faceupdated 2y agoView on Hugging Face
0likes
__init__.py83 linesDownload Raw Back to strings
1import os2import sys3from glob import glob4from typing import Any, Dict, List, Union5 6from pyUltroid import *7from pyUltroid.fns.tools import translate8 9try:10    from yaml import safe_load11except ModuleNotFoundError:12    from pyUltroid.fns.tools import safe_load13 14ULTConfig.lang = udB.get_key("language") or os.getenv("LANGUAGE", "en")15 16languages = {}17PATH = "strings/strings/{}.yml"18 19 20def load(file):21    if not file.endswith(".yml"):22        return23    elif not os.path.exists(file):24        file = PATH.format("en")25    code = file.split("/")[-1].split("\\")[-1][:-4]26    try:27        languages[code] = safe_load(28            open(file, encoding="UTF-8"),29        )30    except Exception as er:31        LOGS.info(f"Error in {file[:-4]} language file")32        LOGS.exception(er)33 34 35load(PATH.format(ULTConfig.lang))36 37 38def get_string(key: str, _res: bool = True) -> Any:39    lang = ULTConfig.lang or "en"40    try:41        return languages[lang][key]42    except KeyError:43        try:44            en_ = languages["en"][key]45            tr = translate(en_, lang_tgt=lang).replace("\ N", "\n")46            if en_.count("{}") != tr.count("{}"):47                tr = en_48            if languages.get(lang):49                languages[lang][key] = tr50            else:51                languages.update({lang: {key: tr}})52            return tr53        except KeyError:54            if not _res:55                return56            return f"Warning: could not load any string with the key `{key}`"57        except TypeError:58            pass59        except Exception as er:60            LOGS.exception(er)61        if not _res:62            return None63        return languages["en"].get(key) or f"Failed to load language string '{key}'"64 65 66def get_help(key):67    doc = get_string(f"help_{key}", _res=False)68    if doc:69        return get_string("cmda") + doc70 71 72def get_languages() -> Dict[str, Union[str, List[str]]]:73    for file in glob("strings/strings/*yml"):74        load(file)75    return {76        code: {77            "name": languages[code]["name"],78            "natively": languages[code]["natively"],79            "authors": languages[code]["authors"],80        }81        for code in languages82    }83