def _translate_word(name, lang): """ Helper to get word tranlations Args: name (str): Word name. Returned as the default value if not translated. lang (str): Language code, e.g. "en-us" Returns: str: translated version of resource name """ from mycroft.util import resolve_resource_file lang_code = get_full_lang_code(lang) filename = resolve_resource_file(join("text", lang_code, name+".word")) if filename: # open the file try: with open(filename, 'r', encoding='utf8') as f: for line in f: word = line.strip() if word.startswith("#"): continue # skip comment lines return word except Exception: pass return name # use resource name as the word
def nice_date_time(dt, lang=None, now=None, use_24hour=False, use_ampm=False): """ Format a datetime to a pronounceable date and time For example, generate 'tuesday, june the fifth, 2018 at five thirty' Args: dt (datetime): date to format (assumes already in local timezone) lang (string): the language to use, use Mycroft default language if not provided now (datetime): Current date. If provided, the returned date for speech will be shortened accordingly: No year is returned if now is in the same year as td, no month is returned if now is in the same month as td. If now and td is the same day, 'today' is returned. use_24hour (bool): output in 24-hour/military or 12-hour format use_ampm (bool): include the am/pm for 12-hour format Returns: (str): The formatted date time string """ full_code = get_full_lang_code(lang) date_time_format.cache(full_code) return date_time_format.date_time_format(dt, full_code, now, use_24hour, use_ampm)
def _translate_word(name, lang): """ Helper to get word tranlations Args: name (str): Word name. Returned as the default value if not translated. lang (str): Language code, e.g. "en-us" Returns: str: translated version of resource name """ from mycroft.util import resolve_resource_file lang_code = get_full_lang_code(lang) filename = resolve_resource_file(join("text", lang_code, name+".word")) if filename: # open the file try: with open(filename, 'r', encoding='utf8') as f: for line in f: word = line.strip() if word.startswith("#"): continue # skip comment lines return word except Exception: pass return name # use resource name as the word
def nice_date_time(dt, lang=None, now=None, use_24hour=False, use_ampm=False): """ Format a datetime to a pronounceable date and time For example, generate 'tuesday, june the fifth, 2018 at five thirty' Args: dt (datetime): date to format (assumes already in local timezone) lang (string): the language to use, use Mycroft default language if not provided now (datetime): Current date. If provided, the returned date for speech will be shortened accordingly: No year is returned if now is in the same year as td, no month is returned if now is in the same month as td. If now and td is the same day, 'today' is returned. use_24hour (bool): output in 24-hour/military or 12-hour format use_ampm (bool): include the am/pm for 12-hour format Returns: (str): The formatted date time string """ full_code = get_full_lang_code(lang) date_time_format.cache(full_code) return date_time_format.date_time_format(dt, full_code, now, use_24hour, use_ampm)
def nice_year(dt, lang=None, bc=False): """ Format a datetime to a pronounceable year For example, generate 'nineteen-hundred and eighty-four' for year 1984 Args: dt (datetime): date to format (assumes already in local timezone) lang (string): the language to use, use Mycroft default language if not provided bc (bool) pust B.C. after the year (python does not support dates B.C. in datetime) Returns: (str): The formatted year string """ full_code = get_full_lang_code(lang) date_time_format.cache(full_code) return date_time_format.year_format(dt, full_code, bc)
def nice_date(dt, lang=None, now=None): """ Format a datetime to a pronounceable date For example, generates 'tuesday, june the fifth, 2018' Args: dt (datetime): date to format (assumes already in local timezone) lang (string): the language to use, use Mycroft default language if not provided now (datetime): Current date. If provided, the returned date for speech will be shortened accordingly: No year is returned if now is in the same year as td, no month is returned if now is in the same month as td. If now and td is the same day, 'today' is returned. Returns: (str): The formatted date string """ full_code = get_full_lang_code(lang) date_time_format.cache(full_code) return date_time_format.date_format(dt, full_code, now)
def nice_year(dt, lang=None, bc=False): """ Format a datetime to a pronounceable year For example, generate 'nineteen-hundred and eighty-four' for year 1984 Args: dt (datetime): date to format (assumes already in local timezone) lang (string): the language to use, use Mycroft default language if not provided bc (bool) pust B.C. after the year (python does not support dates B.C. in datetime) Returns: (str): The formatted year string """ full_code = get_full_lang_code(lang) date_time_format.cache(full_code) return date_time_format.year_format(dt, full_code, bc)
def nice_date(dt, lang=None, now=None): """ Format a datetime to a pronounceable date For example, generates 'tuesday, june the fifth, 2018' Args: dt (datetime): date to format (assumes already in local timezone) lang (string): the language to use, use Mycroft default language if not provided now (datetime): Current date. If provided, the returned date for speech will be shortened accordingly: No year is returned if now is in the same year as td, no month is returned if now is in the same month as td. If now and td is the same day, 'today' is returned. Returns: (str): The formatted date string """ full_code = get_full_lang_code(lang) date_time_format.cache(full_code) return date_time_format.date_format(dt, full_code, now)