diff --git a/mycroft/util/format.py b/mycroft/util/format.py index 5d76769107..ee63ff734c 100755 --- a/mycroft/util/format.py +++ b/mycroft/util/format.py @@ -50,6 +50,8 @@ def nice_number(number, lang="en-us", speech=True, denominators=None): return nice_number_en(result) elif lang_lower.startswith("pt"): return nice_number_pt(result) + elif lang_lower.startswith("it"): + return nice_number_it(result) # Default to the raw number for unsupported languages, # hopefully the STT engine will pronounce understandably. diff --git a/mycroft/util/lang/format_en.py b/mycroft/util/lang/format_en.py index d964b71e48..8782b21282 100644 --- a/mycroft/util/lang/format_en.py +++ b/mycroft/util/lang/format_en.py @@ -157,40 +157,40 @@ def nice_time_en(dt, speech=True, use_24hour=False, use_ampm=False): """ if use_24hour: # e.g. "03:01" or "14:22" - str = dt.strftime("%H:%M") + string = dt.strftime("%H:%M") else: if use_ampm: # e.g. "3:01 AM" or "2:22 PM" - str = dt.strftime("%I:%M %p") + string = dt.strftime("%I:%M %p") else: # e.g. "3:01" or "2:22" - str = dt.strftime("%I:%M") - if str[0] == '0': - str = str[1:] # strip leading zeros + string = dt.strftime("%I:%M") + if string[0] == '0': + string = string[1:] # strip leading zeros if not speech: - return str + return string # Generate a speakable version of the time if use_24hour: speak = "" # Either "0 8 hundred" or "13 hundred" - if str[0] == '0': - speak += pronounce_number_en(int(str[0])) + " " - speak += pronounce_number_en(int(str[1])) + if string[0] == '0': + speak += pronounce_number_en(int(string[0])) + " " + speak += pronounce_number_en(int(string[1])) else: - speak = pronounce_number_en(int(str[0:2])) + speak = pronounce_number_en(int(string[0:2])) speak += " " - if str[3:5] == '00': + if string[3:5] == '00': speak += "hundred" else: - if str[3] == '0': + if string[3] == '0': speak += pronounce_number_en(0) + " " - speak += pronounce_number_en(int(str[4])) + speak += pronounce_number_en(int(string[4])) else: - speak += pronounce_number_en(int(str[3:5])) + speak += pronounce_number_en(int(string[3:5])) return speak else: if dt.hour == 0 and dt.minute == 0: diff --git a/test/unittests/util/test_format.py b/test/unittests/util/test_format.py index 9f68671466..493bcc6bfd 100755 --- a/test/unittests/util/test_format.py +++ b/test/unittests/util/test_format.py @@ -143,7 +143,7 @@ class TestPronounceNumber(unittest.TestCase): class TestNiceDateFormat(unittest.TestCase): def test_convert_times(self): dt = datetime.datetime(2017, 1, 31, - 13, 22, 03) + 13, 22, 3) # Verify defaults haven't changed self.assertEqual(nice_time(dt), @@ -168,7 +168,7 @@ class TestNiceDateFormat(unittest.TestCase): "thirteen twenty two") dt = datetime.datetime(2017, 1, 31, - 13, 00, 03) + 13, 0, 3) self.assertEqual(nice_time(dt), "one o'clock") self.assertEqual(nice_time(dt, use_ampm=True), @@ -188,7 +188,7 @@ class TestNiceDateFormat(unittest.TestCase): "thirteen hundred") dt = datetime.datetime(2017, 1, 31, - 13, 02, 03) + 13, 2, 3) self.assertEqual(nice_time(dt), "one oh two") self.assertEqual(nice_time(dt, use_ampm=True), @@ -208,7 +208,7 @@ class TestNiceDateFormat(unittest.TestCase): "thirteen zero two") dt = datetime.datetime(2017, 1, 31, - 00, 02, 03) + 0, 2, 3) self.assertEqual(nice_time(dt), "twelve oh two") self.assertEqual(nice_time(dt, use_ampm=True),