@classmethod
def join(cls, *args):
    """
        Returns an string in which each given languages have been joined by 
        the `+` separator.
        """
    result = []
    if len(args) > 0:
        if isinstance(args[0], (list, tuple)):
            return cls.join(*args[0])
        langs = []
        for lang in args:
            if isinstance(lang, cls):
                lang = lang.value
            elif isinstance(lang, str):
                lang = lang.strip()
            else:
                raise ValueError(
                    'join: Only string and TessyLang types are supported. Given type: {0}'
                    .format(str(type(lang))))
                continue
            if not cls.contains(lang):
                raise ValueError(
                    "join: The given language '{0}' doesn't exist or not supported yet."
                    .format(lang))
                continue
            langs.append(lang)
        if langs:
            result = '+'.join(langs)
    return result
