|
|
|
|
|
|
|
|
#define OFFSET_HEBREW 0x590 |
|
|
#define OFFSET_HEBREW 0x590 |
|
|
#define OFFSET_ARABIC 0x600 |
|
|
#define OFFSET_ARABIC 0x600 |
|
|
#define OFFSET_SYRIAC 0x700 |
|
|
#define OFFSET_SYRIAC 0x700 |
|
|
#define OFFSET_THAANA 0x780 // Divehi/Maldives |
|
|
|
|
|
#define OFFSET_DEVANAGARI 0x900 |
|
|
#define OFFSET_DEVANAGARI 0x900 |
|
|
#define OFFSET_BENGALI 0x980 |
|
|
#define OFFSET_BENGALI 0x980 |
|
|
#define OFFSET_GURMUKHI 0xa00 |
|
|
#define OFFSET_GURMUKHI 0xa00 |
|
|
|
|
|
|
|
|
{ "_he", OFFSET_HEBREW, 0x590, 0x5ff, 0, 0 }, |
|
|
{ "_he", OFFSET_HEBREW, 0x590, 0x5ff, 0, 0 }, |
|
|
{ "_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0 }, |
|
|
{ "_ar", OFFSET_ARABIC, 0x600, 0x6ff, 0, 0 }, |
|
|
{ "_syc", OFFSET_SYRIAC, 0x700, 0x74f, 0, 0 }, |
|
|
{ "_syc", OFFSET_SYRIAC, 0x700, 0x74f, 0, 0 }, |
|
|
{ "_dv", OFFSET_THAANA, 0x780, 0x7bf, 0, 0 }, |
|
|
|
|
|
{ "_hi", OFFSET_DEVANAGARI, 0x900, 0x97f, L('h', 'i'), AL_WORDS }, |
|
|
{ "_hi", OFFSET_DEVANAGARI, 0x900, 0x97f, L('h', 'i'), AL_WORDS }, |
|
|
{ "_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b', 'n'), AL_WORDS }, |
|
|
{ "_bn", OFFSET_BENGALI, 0x0980, 0x9ff, L('b', 'n'), AL_WORDS }, |
|
|
{ "_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p', 'a'), AL_WORDS }, |
|
|
{ "_gur", OFFSET_GURMUKHI, 0xa00, 0xa7f, L('p', 'a'), AL_WORDS }, |
|
|
|
|
|
|
|
|
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 2; // use de_rules for unpronouncable rules |
|
|
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 2; // use de_rules for unpronouncable rules |
|
|
} |
|
|
} |
|
|
break; |
|
|
break; |
|
|
case L('d', 'v'): // Divehi (Maldives) FIXME: this language code is actually never used |
|
|
|
|
|
{ |
|
|
|
|
|
SetupTranslator(tr, stress_lengths_ta, stress_amps_ta); |
|
|
|
|
|
tr->langopts.param[LOPT_UNPRONOUNCABLE] = 1; // disable check for unpronouncable words |
|
|
|
|
|
tr->langopts.length_mods0 = tr->langopts.length_mods; // don't lengthen vowels in the last syllable |
|
|
|
|
|
tr->letter_bits_offset = OFFSET_THAANA; |
|
|
|
|
|
tr->langopts.stress_rule = STRESSPOSN_1L; |
|
|
|
|
|
tr->langopts.stress_flags = S_MID_DIM | S_FINAL_DIM; // use 'diminished' for unstressed final syllable |
|
|
|
|
|
SetLetterBitsRange(tr, LETTERGP_B, 0x26, 0x30); // vowel signs, and virama |
|
|
|
|
|
tr->langopts.break_numbers = BREAK_LAKH_DV; |
|
|
|
|
|
tr->langopts.numbers = NUM_DEFAULT; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case L('e', 'n'): |
|
|
case L('e', 'n'): |
|
|
{ |
|
|
{ |
|
|
static const short stress_lengths_en[8] = { 182, 140, 220, 220, 0, 0, 248, 275 }; |
|
|
static const short stress_lengths_en[8] = { 182, 140, 220, 220, 0, 0, 248, 275 }; |