提交 8b5ecd2f authored 作者: Buklov Boris's avatar Buklov Boris

mod_say_ru now support say_string like mod_say_en. Now support channel variables…

mod_say_ru now support say_string like mod_say_en. Now support channel variables gender,cases can be set in english and russian for example: <action application="set" data="cases=nominativus/>  <action application="set" data="gender=male_h"/> <action application="say" data="ru NUMBER PRONOUNCED  1001"/>
上级 71dd91d8
...@@ -12,6 +12,8 @@ ...@@ -12,6 +12,8 @@
//http://ru.wiktionary.org/wiki/%D0%BE%D0%B4%D0%B8%D0%BD //http://ru.wiktionary.org/wiki/%D0%BE%D0%B4%D0%B8%D0%BD
//http://ru.wiktionary.org/wiki/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9 //http://ru.wiktionary.org/wiki/%D0%BF%D0%B5%D1%80%D0%B2%D1%8B%D0%B9
typedef enum { typedef enum {
million, million,
thousand, thousand,
...@@ -22,28 +24,40 @@ typedef enum { ...@@ -22,28 +24,40 @@ typedef enum {
//тип числа порядковое или количественное //тип числа порядковое или количественное
typedef enum { typedef enum {
nominativus, // именительный Кто? Что? nominativus, // именительный Кто? Что?
genitivus, // Родительный Кого? Чего? genitivus, // Родительный Кого? Чего?
dativus, // дательный Кого? Что? dativus, // дательный Кого? Что?
accusativus_a, // Винительный Кого? animate - одушевлённый accusativus_a, // Винительный Кого? animate - одушевлённый
accusativus_i, // Винительный Что? inanimate - неодушевлённый accusativus_i, // Винительный Что? inanimate - неодушевлённый
instrumentalis, // Творительный Кем? Чем? instrumentalis, // Творительный Кем? Чем?
prepositive // Предложный О ком? О чём? prepositive // Предложный О ком? О чём?
} casus_t; } cases_t;
typedef enum { typedef enum {
//количественный //количественный
male_c, //мужского пола male, //мужского пола
it_c, //среднего it, //среднего
female_c, //женского female, //женского
plural_c, //множественное число plural, //множественное число
//порядковый //порядковый
male_h, //порядковое мужского пола male_h, //порядковое мужского пола
it_h, //порядковое среднего it_h, //порядковое среднего
female_h, //порядковое женского female_h, //порядковое женского
plural_h //порядковое множественное число plural_h //порядковое множественное число
} say_type_t; } say_gender_t;
typedef enum {
ruble,
dollar
} currency_t;
typedef struct {
say_gender_t gender;
cases_t cases;
currency_t currency;
} say_opt_t;
struct say_t { struct say_t {
...@@ -53,6 +67,7 @@ struct say_t { ...@@ -53,6 +67,7 @@ struct say_t {
int all; int all;
}; };
typedef switch_status_t (*switch_new_say_callback_ru_t) (switch_say_file_handle_t *sh, char *tosay, switch_say_args_t *say_args,say_opt_t *say_opt);
//именительный //именительный
//именительный количественный/числительное //именительный количественный/числительное
...@@ -60,7 +75,7 @@ struct say_t { ...@@ -60,7 +75,7 @@ struct say_t {
//мужской род родительный падеж //мужской род родительный падеж
//первая строка описывае как произносить цифры от 0 до 5 потом пристаставка и окончания для остальных //первая строка описывае как произносить цифры от 0 до 5 потом пристаставка и окончания для остальных
// тоже самое для тысяч и миллионов, только ещё с произношением тысяч и миллионов в вонце так же окончание для цифр // тоже самое для тысяч и миллионов, только ещё с произношением тысяч и миллионов в конце так же окончание для цифр
// как произносить тысячи и миллионы берёт с цифры 5 // как произносить тысячи и миллионы берёт с цифры 5
#define m_00 {\ #define m_00 {\
...@@ -96,23 +111,25 @@ struct say_t { ...@@ -96,23 +111,25 @@ struct say_t {
//порядковый //порядковый
//мужской //мужской
#define m_04 {\ #define m_04 {\
{"","","","","","","",""},\ {"h-0m","h-1m","h-2m","h-3m","h-4m","h-5m","h-","m"},\
{"","","","","","","","","","","","","",""},\ {"","","1f","thousand","2f","thousands-i","3","thousands-i","4","thousands-i","5","thousands","",""},\
{"","","","","","","","","","","","","",""},\ {"","","","million","2","million-a","3","million-a","4","million-a","5","millions","",""},\
0,\ 0,\
}\ }\
//средний //средний
#define m_05 {\ #define m_05 {\
{"","","","","","","",""},\ {"0","1n","2","3","4","5","",""},\
{"","","","","","","","","","","","","",""},\ {"","","1f","thousand","2f","thousands-i","3","thousands-i","4","thousands-i","5","thousands","",""},\
{"","","","","","","","","","","","","",""},\ {"","","","million","2","million-a","3","million-a","4","million-a","5","millions","",""},\
0,\ 0,\
}\ }\
//женский //женский
#define m_06 {\ #define m_06 {\
{"","","","","","","",""},\ {"h-0f","h-1f","h-2f","h-3f","h-4f","h-5f","h-","f"},\
{"","","","","","","","","","","","","",""},\ {"","","1f","thousand","2f","thousands-i","3","thousands-i","4","thousands-i","5","thousands","",""},\
{"","","","","","","","","","","","","",""},\ {"","","1","million","2","million-a","3","million-a","4","million-a","5","millions","",""},\
0,\ 0,\
}\ }\
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论