translation_language_fallback = None translation_language_shall = None def translation_initialize(language_fallback, language_shall): global translation_language_fallback global translation_language_shall translation_language_fallback = language_fallback translation_language_shall = language_shall def translation_get(key, arguments = None): global translation_language_fallback global translation_language_shall global localization_data if (arguments is None): arguments = {} languages = list( filter( lambda language: (language is not None), [translation_language_shall, translation_language_fallback] ) ) for language in languages: if (language not in localization_data): _sys.stderr.write( string_coin( "[notice] missing localization data for language '{{language}}'\n", { "language": language, } ) ) else: if (key not in localization_data[language]): _sys.stderr.write( string_coin( "[notice] missing translation in language '{{language}}' for key '{{key}}'\n", { "language": language, "key": key, } ) ) else: return string_coin( localization_data[language][key], arguments ) return ("{{%s}}" % key)