<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_type_name_in_language(cls, type_name, sub_type, language):
 """ Get the type for the given language Args: type_name (str):
 the type to convert language (str):
 the language to use Returns: a type name in the given language Example: get_type_name_in_language("Varchar", "python") """

        if language in cls.type_methods_cache:
            m = cls.type_methods_cache[language]
            if not m:
                return type_name
            return m(type_name)

        found, method = load_language_plugins(language, 'get_type_name')
        if found:
            cls.type_methods_cache[language] = method
            if method:
                return method(type_name, sub_type)
            else:
                return type_name

        module = importlib.import_module('.lang.%s' % language, package="monolithe.generators")

        if not hasattr(module, 'get_type_name'):
            cls.type_methods_cache[language] = None
            return type_name

        method = getattr(module, 'get_type_name')
        cls.type_methods_cache[language] = method
        return method(type_name, sub_type)