Asterisk - The Open Source Telephony Project
21.4.1
|
Say numbers and dates (maybe words one day too) More...
#include "asterisk.h"
#include <netinet/in.h>
#include <time.h>
#include <ctype.h>
#include <math.h>
#include "asterisk/file.h"
#include "asterisk/channel.h"
#include "asterisk/say.h"
#include "asterisk/lock.h"
#include "asterisk/localtime.h"
#include "asterisk/utils.h"
#include "asterisk/app.h"
#include "asterisk/test.h"
#include "asterisk/cli.h"
Go to the source code of this file.
Data Structures | |
struct | odmiana |
Functions | |
static void | __say_init (void) |
remap the 'say' functions to use those in this file | |
struct ast_str * | ast_get_character_str (const char *str, const char *lang, enum ast_say_case_sensitivity sensitivity) |
Returns an ast_str of files for SayAlpha playback. More... | |
struct ast_str * | ast_get_digit_str (const char *str, const char *lang) |
Returns an ast_str of files for SayDigits playback. More... | |
static struct ast_str * | ast_get_money_en_dollars_str (const char *str, const char *lang) |
struct ast_str * | ast_get_money_str (const char *str, const char *lang) |
ast_get_money_str: call language-specific functions More... | |
struct ast_str * | ast_get_number_str (int num, const char *lang) |
ast_get_number_str: call language-specific functions More... | |
struct ast_str * | ast_get_ordinal_str (int num, const char *lang) |
ast_get_ordinal_str: call language-specific functions More... | |
struct ast_str * | ast_get_phonetic_str (const char *str, const char *lang) |
Returns an ast_str of files for SayPhonetic playback. More... | |
int | ast_say_counted_adjective (struct ast_channel *chan, int num, const char adjective[], const char gender[]) |
int | ast_say_counted_noun (struct ast_channel *chan, int num, const char noun[]) |
static int | ast_say_date_da (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Danish syntax. | |
static int | ast_say_date_de (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
German syntax. | |
static int | ast_say_date_en (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
English syntax. | |
static int | ast_say_date_fr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
French syntax. | |
static int | ast_say_date_gr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Greek support. More... | |
static int | ast_say_date_he (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hebrew syntax. | |
static int | ast_say_date_hu (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hungarian syntax. | |
static int | ast_say_date_is (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | ast_say_date_ja (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | ast_say_date_ka (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Georgian syntax. e.g. "oriatas xuti tslis 5 noemberi". More... | |
static int | ast_say_date_nl (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Dutch syntax. | |
static int | ast_say_date_pt (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Portuguese syntax. | |
static int | ast_say_date_th (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Thai syntax. | |
static int | ast_say_date_with_format_da (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Danish syntax. | |
static int | ast_say_date_with_format_de (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
German syntax. | |
static int | ast_say_date_with_format_en (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
English syntax. | |
static int | ast_say_date_with_format_es (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Spanish syntax. | |
static int | ast_say_date_with_format_fr (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
French syntax oclock = heure. | |
static int | ast_say_date_with_format_gr (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Greek support. | |
static int | ast_say_date_with_format_he (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
ast_say_date_with_format_he Say formatted date in Hebrew More... | |
static int | ast_say_date_with_format_is (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
static int | ast_say_date_with_format_it (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Italian syntax. | |
static int | ast_say_date_with_format_ja (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
static int | ast_say_date_with_format_nl (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Dutch syntax. | |
static int | ast_say_date_with_format_pl (struct ast_channel *chan, time_t thetime, const char *ints, const char *lang, const char *format, const char *tzone) |
Polish syntax. | |
static int | ast_say_date_with_format_pt (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Portuguese syntax. | |
static int | ast_say_date_with_format_th (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Thai syntax. | |
static int | ast_say_date_with_format_vi (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Vietnamese syntax. | |
static int | ast_say_date_with_format_zh (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
Taiwanese / Chinese syntax. | |
static int | ast_say_datetime_de (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
German syntax. | |
static int | ast_say_datetime_en (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
English syntax. | |
static int | ast_say_datetime_fr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
French syntax. | |
static int | ast_say_datetime_from_now_en (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
English syntax. | |
static int | ast_say_datetime_from_now_fr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
French syntax. | |
static int | ast_say_datetime_from_now_he (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hebrew syntax. | |
static int | ast_say_datetime_from_now_ka (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Georgian syntax. | |
static int | ast_say_datetime_from_now_pt (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Portuguese syntax. | |
static int | ast_say_datetime_gr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Greek support. | |
static int | ast_say_datetime_he (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hebrew syntax. | |
static int | ast_say_datetime_hu (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hungarian syntax. | |
static int | ast_say_datetime_ja (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | ast_say_datetime_ka (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Georgian syntax. Say date, then say time. | |
static int | ast_say_datetime_nl (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Dutch syntax. | |
static int | ast_say_datetime_pt (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Portuguese syntax. | |
static int | ast_say_datetime_pt_BR (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Brazilian Portuguese syntax. | |
static int | ast_say_datetime_th (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Thai syntax. | |
static int | ast_say_datetime_zh (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Taiwanese / Chinese syntax. | |
static int | ast_say_enumeration_full_da (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_enumeration_full_da: Danish syntax | |
static int | ast_say_enumeration_full_de (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_enumeration_full_de: German syntax | |
static int | ast_say_enumeration_full_en (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_enumeration_full_en: English syntax More... | |
static int | ast_say_enumeration_full_he (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
static int | ast_say_enumeration_full_is (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_enumeration_full_is: Icelandic syntax | |
static int | ast_say_enumeration_full_vi (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
static int | ast_say_number_full_cs (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_cs: Czech syntax More... | |
static int | ast_say_number_full_da (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_da: Danish syntax New files: More... | |
static int | ast_say_number_full_de (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_de: German syntax More... | |
static int | ast_say_number_full_en (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_en: English syntax More... | |
static int | ast_say_number_full_en_GB (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_en_GB: British syntax New files: More... | |
static int | ast_say_number_full_es (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_es: Spanish syntax More... | |
static int | ast_say_number_full_fr (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_fr: French syntax Extra sounds needed: 1F: feminin 'une' et: 'and' | |
static int | ast_say_number_full_gr (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
Greek support A list of the files that you need to create -> digits/xilia = "xilia" -> digits/myrio = "ekatomyrio" -> digits/thousands = "xiliades" -> digits/millions = "ektatomyria" -> digits/[1..12] :: A pronunciation of th digits form 1 to 12 e.g. "tria" -> digits/[10..100] :: A pronunciation of the tens from 10 to 90 e.g. 80 = "ogdonta" Here we must note that we use digits/tens/100 to utter "ekato" and digits/hundred-100 to utter "ekaton" -> digits/hundred-[100...1000] :: A pronunciation of hundreds from 100 to 1000 e.g 400 = "terakosia". Here again we use hundreds/1000 for "xilia" and digits/thousands for "xiliades". | |
static int | ast_say_number_full_he (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
static int | ast_say_number_full_hu (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_hu: Hungarian syntax More... | |
static int | ast_say_number_full_is (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_is: Icelandic syntax | |
static int | ast_say_number_full_it (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_it: Italian | |
static int | ast_say_number_full_ja (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
static int | ast_say_number_full_ka (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_ka: Georgian syntax | |
static int | ast_say_number_full_nl (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_nl: dutch syntax New files: digits/nl-en | |
static int | ast_say_number_full_no (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_no: Norwegian syntax New files: In addition to American English, the following sounds are required: "and", "1N" More... | |
static int | ast_say_number_full_pl (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
static int | ast_say_number_full_pt (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
static int | ast_say_number_full_ru (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_ru: Russian syntax More... | |
static int | ast_say_number_full_se (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full_se: Swedish syntax More... | |
static int | ast_say_number_full_th (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
Thai syntax. | |
static int | ast_say_number_full_ur (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
static int | ast_say_number_full_vi (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_vi: Vietnamese syntax | |
static int | ast_say_number_full_zh (struct ast_channel *chan, int num, const char *ints, const char *language, int audiofd, int ctrlfd) |
ast_say_number_full_zh: Taiwanese / Chinese syntax | |
static int | ast_say_time_de (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
German syntax. | |
static int | ast_say_time_en (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
English syntax. | |
static int | ast_say_time_fr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
French syntax. | |
static int | ast_say_time_gr (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Greek support. More... | |
static int | ast_say_time_he (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hebrew syntax. | |
static int | ast_say_time_hu (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Hungarian syntax. | |
static int | ast_say_time_ja (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | ast_say_time_ka (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Georgian syntax. e.g. "otxi saati da eqvsi tsuti". | |
static int | ast_say_time_nl (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Dutch syntax. | |
static int | ast_say_time_pt (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Portuguese syntax. | |
static int | ast_say_time_pt_BR (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Brazilian Portuguese syntax. | |
static int | ast_say_time_th (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Thai syntax. | |
static int | ast_say_time_zh (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
Taiwanese / Chinese syntax. | |
static char * | ast_translate_number_ka (int num, char *res, int res_len) |
Georgian support. More... | |
static const char * | counted_adjective_ending_ru (int num, const char gender[]) |
In slavic languages such as Russian and Ukrainian the rules for declining adjectives are simpler than those for nouns. When counting we use only the singular (to which we give no suffix) and the genative plural (which we represent by adding an "x"). Oh, an in the singular gender matters so we append the supplied gender suffix ("m", "f", "n"). | |
static const char * | counted_noun_ending_en (int num) |
In English, we use the plural for everything but one. For example: More... | |
static const char * | counted_noun_ending_slavic (int num) |
Counting of objects in slavic languages such as Russian and Ukrainian the rules are more complicated. There are two plural forms used in counting. They are the genative singular which we represent with the suffix "x1" and the genative plural which we represent with the suffix "x2". The base names of the soundfiles remain in English. For example: More... | |
static int | exp10_int (int power) |
static int | get_lastdigits_ru (int num) |
determine last digits for thousands/millions (ru) | |
static struct ast_str * | get_number_str_en (int num, const char *lang) |
static struct ast_str * | get_ordinal_str_en (int num, const char *lang) |
static int | gr_say_number_female (int num, struct ast_channel *chan, const char *ints, const char *lang) |
Greek digits/female-[1..4] : "Mia, dyo , treis, tessereis". | |
static char | next_item (const char *format) |
static char * | pl_append (char *buffer, char *str) |
static void | pl_odtworz_plik (struct ast_channel *chan, const char *language, int audiofd, int ctrlfd, const char *ints, char *fn) |
static char * | pl_rzad_na_tekst (odmiana *odm, int i, int rzad) |
static void | powiedz (struct ast_channel *chan, const char *language, int audiofd, int ctrlfd, const char *ints, odmiana *odm, int rzad, int i) |
static int | say_character_str_full (struct ast_channel *chan, const char *str, const char *ints, const char *lang, enum ast_say_case_sensitivity sensitivity, int audiofd, int ctrlfd) |
static int | say_date (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | say_date_with_format (struct ast_channel *chan, time_t t, const char *ints, const char *lang, const char *format, const char *tzone) |
static int | say_datetime (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | say_datetime_from_now (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | say_digit_str_full (struct ast_channel *chan, const char *str, const char *ints, const char *lang, int audiofd, int ctrlfd) |
static int | say_enumeration_full (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_enumeration_full: call language-specific functions More... | |
static int | say_filenames (struct ast_channel *chan, const char *ints, const char *lang, int audiofd, int ctrlfd, struct ast_str *filenames) |
static int | say_money_str_full (struct ast_channel *chan, const char *str, const char *ints, const char *lang, int audiofd, int ctrlfd) |
static int | say_number_full (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
ast_say_number_full: call language-specific functions More... | |
static int | say_ordinal_full (struct ast_channel *chan, int num, const char *ints, const char *language, const char *options, int audiofd, int ctrlfd) |
say_ordinal_full | |
static int | say_phonetic_str_full (struct ast_channel *chan, const char *str, const char *ints, const char *lang, int audiofd, int ctrlfd) |
static int | say_time (struct ast_channel *chan, time_t t, const char *ints, const char *lang) |
static int | wait_file (struct ast_channel *chan, const char *ints, const char *file, const char *lang) |
Say numbers and dates (maybe words one day too)
Definition in file say.c.
struct ast_str* ast_get_character_str | ( | const char * | str, |
const char * | lang, | ||
enum ast_say_case_sensitivity | sensitivity | ||
) |
Returns an ast_str of files for SayAlpha playback.
str | Text to be translated to the corresponding audio files. |
lang | Channel language |
sensitivity | Case sensitivity |
Computes the list of files to be played by SayAlpha.
ampersand-separated | string of Asterisk sound files that can be played back. |
Definition at line 64 of file say.c.
References ast_fileexists(), AST_SAY_CASE_ALL, AST_SAY_CASE_LOWER, AST_SAY_CASE_NONE, AST_SAY_CASE_UPPER, ast_str_append(), ast_str_create, ast_str_reset(), and ast_str_strlen().
struct ast_str* ast_get_digit_str | ( | const char * | str, |
const char * | lang | ||
) |
Returns an ast_str of files for SayDigits playback.
str | Text to be translated to the corresponding audio files. |
lang | Channel language |
Computes the list of files to be played by SayDigits.
ampersand-separated | string of Asterisk sound files that can be played back. |
Definition at line 300 of file say.c.
References ast_fileexists(), ast_str_append(), ast_str_create, ast_str_reset(), and ast_str_strlen().
struct ast_str* ast_get_money_str | ( | const char * | str, |
const char * | lang | ||
) |
struct ast_str* ast_get_number_str | ( | int | num, |
const char * | lang | ||
) |
ast_get_number_str: call language-specific functions
Returns an ast_str of files for SayNumber playback.
Definition at line 566 of file say.c.
Referenced by ast_say_number_full_en().
struct ast_str* ast_get_ordinal_str | ( | int | num, |
const char * | lang | ||
) |
ast_get_ordinal_str: call language-specific functions
Returns an ast_str of files for SayOrdinal playback.
Definition at line 686 of file say.c.
Referenced by say_ordinal_full().
struct ast_str* ast_get_phonetic_str | ( | const char * | str, |
const char * | lang | ||
) |
Returns an ast_str of files for SayPhonetic playback.
str | Text to be translated to the corresponding audio files. |
lang | Channel language |
Computes the list of files to be played by SayPhonetic.
ampersand-separated | string of Asterisk sound files that can be played back. |
Definition at line 216 of file say.c.
References ast_fileexists(), ast_str_append(), ast_str_create, ast_str_reset(), and ast_str_strlen().
|
static |
Greek support.
The format is weekday - day - month -year
A list of the files that you need to create digits/day-[1..7] : "Deytera .. Paraskeyh" digits/months/1..12 : "Ianouariou .. Dekembriou" Attention the months are in "gekinh klhsh"
Definition at line 8372 of file say.c.
References ast_localtime(), ast_say_number(), ast_streamfile(), ast_waitstream(), gr_say_number_female(), ast_tm::tm_mday, ast_tm::tm_mon, ast_tm::tm_wday, and ast_tm::tm_year.
|
static |
Georgian syntax. e.g. "oriatas xuti tslis 5 noemberi".
Georgian support for date/time requires the following files (*.gsm):
Definition at line 9540 of file say.c.
References ast_localtime(), ast_say_number(), ast_streamfile(), ast_waitstream(), ast_tm::tm_mday, ast_tm::tm_mon, ast_tm::tm_wday, and ast_tm::tm_year.
|
static |
ast_say_date_with_format_he Say formatted date in Hebrew
ast_say_date_with_format_en for the details of the options
Changes from the English version:
Definition at line 5482 of file say.c.
References ast_debug, ast_localtime(), ast_tvnow(), ast_tm::tm_hour, ast_tm::tm_mday, ast_tm::tm_min, ast_tm::tm_mon, ast_tm::tm_sec, ast_tm::tm_wday, and ast_tm::tm_year.
|
static |
ast_say_enumeration_full_en: English syntax
Definition at line 3251 of file say.c.
References ast_copy_string(), ast_debug, ast_say_number_full_en(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_enumeration_full().
|
static |
ast_say_number_full_cs: Czech syntax
files needed:
for each number 10^(3n + 3) exist 3 files represented as: 1 thousand = jeden tisic = 1_E3 2,3,4 thousands = dva,tri,ctyri tisice = 2-3_E3 5,6,... thousands = pet,sest,... tisic = 5_E3
million = _E6 miliard = _E9 etc...
thousand, milion are gender male, so 1 and 2 is 1m 2m miliard is gender female, so 1 and 2 is 1w 2w
Definition at line 976 of file say.c.
References ast_copy_string(), ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
ast_say_number_full_da: Danish syntax New files:
Definition at line 1074 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
ast_say_number_full_de: German syntax
New files: In addition to English, the following sounds are required:
Definition at line 1188 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by ast_say_enumeration_full_da(), ast_say_enumeration_full_de(), and say_number_full().
|
static |
ast_say_number_full_en: English syntax
Definition at line 933 of file say.c.
References ast_get_number_str().
Referenced by ast_say_enumeration_full_en(), and say_number_full().
|
static |
ast_say_number_full_en_GB: British syntax New files:
Definition at line 1322 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
ast_say_number_full_es: Spanish syntax
New files: Requires a few new audios: 1F.gsm: feminine 'una' 21.gsm thru 29.gsm, cien.gsm, mil.gsm, millon.gsm, millones.gsm, 100.gsm, 200.gsm, 300.gsm, 400.gsm, 500.gsm, 600.gsm, 700.gsm, 800.gsm, 900.gsm, y.gsm
Definition at line 1401 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
ast_say_number_full_hu: Hungarian syntax
Extra sounds needed: 10en: "tizen" 20on: "huszon"
Definition at line 1769 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
ast_say_number_full_no: Norwegian syntax New files: In addition to American English, the following sounds are required: "and", "1N"
The grammar for Norwegian numbers is the same as for English except for the following:
Definition at line 2222 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
ast_say_number_full_ru: Russian syntax
additional files: n00.gsm (one hundred, two hundred, ...) thousand.gsm million.gsm thousands-i.gsm (tisyachi) million-a.gsm (milliona) thousands.gsm millions.gsm 1f.gsm (odna) 2f.gsm (dve)
where 'n' from 1 to 9
Definition at line 2984 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), ast_waitstream_full(), and get_lastdigits_ru().
Referenced by say_number_full().
|
static |
ast_say_number_full_se: Swedish syntax
Sound files needed
Definition at line 2705 of file say.c.
References ast_copy_string(), ast_debug, ast_say_digits_full(), ast_stopstream(), ast_streamfile(), ast_waitstream(), and ast_waitstream_full().
Referenced by say_number_full().
|
static |
Greek support.
A list of the files that you need to create
Definition at line 8452 of file say.c.
References ast_localtime(), ast_say_number(), ast_streamfile(), ast_waitstream(), gr_say_number_female(), ast_tm::tm_hour, and ast_tm::tm_min.
Referenced by ast_say_datetime_gr().
|
static |
Georgian support.
Convert a number into a semi-localized string. Only for Georgian. res must be of at least 256 bytes, preallocated. The output corresponds to Georgian spoken numbers, so it may be either converted to real words by applying a direct conversion table, or played just by substituting the entities with played files.
Output may consist of the following tokens (separated by spaces): 0, minus. 1-9, 1_-9_. (erti, ori, sami, otxi, ... . erti, or, sam, otx, ...). 10-19. 20, 40, 60, 80, 20_, 40_, 60_, 80_. (oci, ormoci, ..., ocda, ormocda, ...). 100, 100_, 200, 200_, ..., 900, 900_. (asi, as, orasi, oras, ...). 1000, 1000_. (atasi, atas). 1000000, 1000000_. (milioni, milion). 1000000000, 1000000000_. (miliardi, miliard).
To be able to play the sounds, each of the above tokens needs a corresponding sound file. (e.g. 200_.gsm).
Definition at line 9323 of file say.c.
Referenced by ast_say_number_full_ka().
|
static |
In English, we use the plural for everything but one. For example:
|
static |
Counting of objects in slavic languages such as Russian and Ukrainian the rules are more complicated. There are two plural forms used in counting. They are the genative singular which we represent with the suffix "x1" and the genative plural which we represent with the suffix "x2". The base names of the soundfiles remain in English. For example:
Definition at line 9708 of file say.c.
|
static |
ast_say_enumeration_full: call language-specific functions
Definition at line 3229 of file say.c.
References ast_say_enumeration_full_da(), ast_say_enumeration_full_de(), ast_say_enumeration_full_en(), and ast_say_enumeration_full_is().
Referenced by __say_init(), and say_init_mode().
|
static |
ast_say_number_full: call language-specific functions
Definition at line 874 of file say.c.
References ast_say_number_full_cs(), ast_say_number_full_da(), ast_say_number_full_de(), ast_say_number_full_en(), ast_say_number_full_en_GB(), ast_say_number_full_es(), ast_say_number_full_fr(), ast_say_number_full_gr(), ast_say_number_full_hu(), ast_say_number_full_is(), ast_say_number_full_it(), ast_say_number_full_ka(), ast_say_number_full_nl(), ast_say_number_full_no(), ast_say_number_full_ru(), ast_say_number_full_se(), ast_say_number_full_th(), ast_say_number_full_vi(), ast_say_number_full_zh(), and ast_test_suite_event_notify.
Referenced by __say_init(), and say_init_mode().