Created
September 7, 2014 13:42
-
-
Save brake/75b7786d48c051e87ebe to your computer and use it in GitHub Desktop.
Utility functions for Tasker (famous automation tool for Android). Provides correct time as text for use with Russian speaking TTS.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Для использования в Android с программой Tasker. | |
| // Формирует текущее время в текстовом виде для передачи любой русскоговорящей системе TTS. | |
| // Решает проблему некорректного произношения времени, например 0:00, или 20:00. | |
| // Проверен с русскими голосами Acapella и SVOX. | |
| var hours = { | |
| "час": [1, 21], | |
| "часа": [2, 3, 4, 22, 23], | |
| "часов": [0, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] | |
| } | |
| var hours_text = [ | |
| "ноль", | |
| "один", | |
| "два", | |
| "три", | |
| "четыре", | |
| "пять", | |
| "шесть", | |
| "семь", | |
| "восемь", | |
| "девять", | |
| "десять", | |
| "одиннадцать", | |
| "двенадцать", | |
| "тринадцать", | |
| "четырнадцать", | |
| "пятнадцать", | |
| "шестнадцать", | |
| "семнадцать", | |
| "восемнадцать", | |
| "девятнадцать", | |
| "двадцать", | |
| "двадцать один", | |
| "двадцать два", | |
| "двадцать три" | |
| ]; | |
| var minutes = { | |
| "минута": [1, 21, 31, 41, 51], | |
| "минут": [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 26, 27, 28, 29, 30, 35, 36, 37, 38, 39, 40, 45, 46, 47, 48, 49, 50, 55, 56, 57, 58, 59], | |
| "минуты": [2, 3, 4, 22, 23, 24, 32, 33, 34, 42, 43, 44, 52, 53, 54] | |
| } | |
| var minutes_text = [ | |
| "ровно", | |
| "одна", | |
| "две", | |
| "три", | |
| "четыре", | |
| "пять", | |
| "шесть", | |
| "семь", | |
| "восемь", | |
| "девять", | |
| "десять", | |
| "одиннадцать", | |
| "двенадцать", | |
| "тринадцать", | |
| "четырнадцать", | |
| "пятнадцать", | |
| "шестнадцать", | |
| "семнадцать", | |
| "восемнадцать", | |
| "девятнадцать", | |
| ]; | |
| var minutes_tens_text = [ | |
| "двадцать", | |
| "тридцать", | |
| "сорок", | |
| "пятьдесят" | |
| ]; | |
| function get_minutes_text(value) { | |
| var text = ""; | |
| if(value < 20) { | |
| text = minutes_text[value]; | |
| } | |
| else { | |
| var h_mins = parseInt(value/10); | |
| var l_mins = value % (h_mins * 10); | |
| text = minutes_tens_text[h_mins - 2]; | |
| if(l_mins) { | |
| text += " " + minutes_text[l_mins]; | |
| } | |
| } | |
| for(suffix in minutes) { | |
| if(minutes[suffix].indexOf(value) != -1) { | |
| text += " " + suffix; | |
| break; | |
| } | |
| } | |
| return text; | |
| } | |
| function get_hours_text(value) { | |
| var text = hours_text[value]; | |
| for(suffix in hours) { | |
| if(hours[suffix].indexOf(value) != -1) { | |
| text += " " + suffix; | |
| break; | |
| } | |
| } | |
| return text; | |
| } | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment