Source code for jwlib.media.language

"""
Language list and info
"""
from __future__ import annotations

from ..common import _DictWrapper
from .endpoints import _request_languages

__all__ = 'request_languages', 'Language'


[docs] def request_languages(language='E') -> list[Language]: """Return list of available Languages""" return [Language(L) for L in _request_languages(language)]
[docs] class Language(_DictWrapper): """Information about a language""" def __repr__(self): try: return f'<{self.__class__.__name__} {self.code!r}>' except (TypeError, LookupError, ValueError): return super().__repr__() @property def code(self) -> str: """JW language code The one that can be passed to :class:`Session` etc. """ return self._get_string('code') @property def iso(self) -> str: """ISO 639 language code""" return self._get_string('locale') @property def name(self) -> str: """Display name""" return self._get_string('name', '') # This seems to always be False # @property # def pair(self) -> bool: # return self.dict.get('isLangPair', False) @property def rtl(self) -> bool: """True if written right to left""" return self.data.get('isRTL', False) @property def script(self) -> str: """Type of script, like 'ROMAN' or 'CYRILLIC'""" return self._get_string('script', '') @property def signed(self) -> bool: """True if it's a sign language""" return self.data.get('isSignLanguage', False) @property def vernacular(self) -> str: """Display name in the language itself""" return self._get_string('vernacular', '')