| @@ -23,18 +23,17 @@ gradual process of improvement. | |||
| ## Language Code | |||
| Generally, the language's international | |||
| [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) code is used to identify | |||
| the language. It is used in the filenames which contain the language's | |||
| data. In the examples below the code **"fr"** is used as an example. | |||
| Replace this with the code of your language. | |||
| If the language does not have a 2-letter ISO\_639-1 code, then use the | |||
| 3-letter ISO\_639-3 code. Language codes may differ from country codes. | |||
| It is possible to have different variants of a language for different | |||
| dialects. For example the sound of some phonemes are changed, or some of | |||
| the pronunciation rules differ. | |||
| The language is identified using the | |||
| [BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) language tag. | |||
| When this is not enough to identify an accent, the | |||
| [bcp47-data](https://github.com/rhdunn/bcp47-data) accents file describes | |||
| the private use tags used by eSpeak NG. For example: | |||
| * `en` -- English | |||
| * `en-GB-scotland` -- English with a Scottish accent | |||
| * `en-GB-x-rp` -- English with a Received Pronunciation accent | |||
| * `es-419` -- Spanish with a Latin American accent | |||
| * `fr-CA` -- French with a Canadian accent | |||
| ## Language Files | |||
| @@ -84,9 +84,20 @@ listed below. | |||
| It selects the default behaviour and characteristics for the language, | |||
| and sets default values for "phonemes", "dictionary" and other | |||
| attributes. The \<language code\> should be a two-letter ISO 639-1 | |||
| language code. One or more language variant codes may be appended, | |||
| separated by hyphens. (eg. en-uk-north). | |||
| attributes. | |||
| The \<language code\> is a | |||
| [BCP 47](https://en.wikipedia.org/wiki/IETF_language_tag) language tag. | |||
| When this is not enough to identify an accent, the | |||
| [bcp47-data](https://github.com/rhdunn/bcp47-data) accents file describes | |||
| the private use tags used by eSpeak NG. For example: | |||
| * `en` -- English | |||
| * `en-GB-scotland` -- English with a Scottish accent | |||
| * `en-GB-x-rp` -- English with a Received Pronunciation accent | |||
| * `es-419` -- Spanish with a Latin American accent | |||
| * `fr-CA` -- French with a Canadian accent | |||
| The optional \<priority\> value gives the preference of this voice | |||
| compared with others for the specified language. A low value indicates a | |||
| @@ -1,6 +1,6 @@ | |||
| name persian-pinglish | |||
| // Sometimes, Farsi speakers write Farsi words using English characters, particularly in Chat and SMS (texte messages).), called Pinglish | |||
| language fa-pin | |||
| language fa-Latn | |||
| dictrules 1 | |||
| phonemes fa | |||
| @@ -1,5 +1,5 @@ | |||
| name armenian-west | |||
| language hy-west | |||
| language hy-arevmda | |||
| language hy 8 | |||
| gender male | |||
| @@ -1,5 +1,5 @@ | |||
| name vietnam_hue | |||
| language vi-hue | |||
| language vi-vn-x-central | |||
| phonemes vi-hue | |||
| dictrules 1 | |||
| gender male | |||
| @@ -1,5 +1,5 @@ | |||
| name vietnam_sgn | |||
| language vi-sgn | |||
| language vi-vn-x-south | |||
| phonemes vi-sgn | |||
| dictrules 2 | |||
| gender male | |||
| @@ -1,6 +1,5 @@ | |||
| name english | |||
| language en-gb 2 | |||
| language en-uk 2 | |||
| language en 2 | |||
| gender male | |||
| @@ -1,7 +1,6 @@ | |||
| // moving towards US English | |||
| name english-us | |||
| language en-us 2 | |||
| language en-r | |||
| language en 3 | |||
| gender male | |||
| @@ -1,5 +1,5 @@ | |||
| name spanish-latin-am | |||
| language es-la | |||
| language es-419 | |||
| language es-mx 6 | |||
| language es 6 | |||
| gender male | |||
| @@ -1,5 +1,5 @@ | |||
| name english-mb-en1 | |||
| language en-uk 3 | |||
| language en-gb 3 | |||
| language en 2 | |||
| gender male | |||
| @@ -1,6 +1,5 @@ | |||
| name en-westindies | |||
| language en-wi | |||
| language en-uk 4 | |||
| language en-029 | |||
| language en 10 | |||
| gender male | |||
| @@ -1,5 +1,5 @@ | |||
| name en-scottish | |||
| language en-sc | |||
| language en-gb-scotland | |||
| language en 4 | |||
| gender male | |||
| @@ -1,6 +1,6 @@ | |||
| name english-north | |||
| language en-uk-north | |||
| language en-uk 3 | |||
| language en-gb-x-gbclan | |||
| language en-gb 3 | |||
| language en 5 | |||
| gender male | |||
| @@ -1,6 +1,6 @@ | |||
| name english_wmids | |||
| language en-uk-wmids | |||
| language en-uk 9 | |||
| language en-gb-x-gbcwmd | |||
| language en-gb 9 | |||
| language en 9 | |||
| gender male | |||
| @@ -1,6 +1,6 @@ | |||
| name english_rp | |||
| language en-uk-rp | |||
| language en-uk 4 | |||
| language en-gb-x-rp | |||
| language en-gb 4 | |||
| language en 5 | |||
| gender male | |||
| @@ -146,7 +146,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
| } else | |||
| voices = espeak_ListVoices(NULL); | |||
| fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
| fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
| for (ix = 0; (v = voices[ix]) != NULL; ix++) { | |||
| count = 0; | |||
| @@ -156,7 +156,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
| lang_name = p+1; | |||
| if (v->age == 0) | |||
| strcpy(age_buf, " "); | |||
| strcpy(age_buf, " --"); | |||
| else | |||
| sprintf(age_buf, "%3d", v->age); | |||
| @@ -168,7 +168,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
| if ((buf[j] = c) == 0) | |||
| break; | |||
| } | |||
| fprintf(f_out, "%2d %-12s%s%c %-20s %-13s ", | |||
| fprintf(f_out, "%2d %-15s%s/%c %-18s %-20s ", | |||
| p[0], lang_name, age_buf, genders[v->gender], buf, v->identifier); | |||
| } else | |||
| fprintf(f_out, "(%s %d)", lang_name, p[0]); | |||
| @@ -153,7 +153,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
| } else | |||
| voices = espeak_ListVoices(NULL); | |||
| fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
| fprintf(f_out, "Pty Language Age/Gender VoiceName File Other Languages\n"); | |||
| for (ix = 0; (v = voices[ix]) != NULL; ix++) { | |||
| count = 0; | |||
| @@ -163,7 +163,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
| lang_name = p+1; | |||
| if (v->age == 0) | |||
| strcpy(age_buf, " "); | |||
| strcpy(age_buf, " --"); | |||
| else | |||
| sprintf(age_buf, "%3d", v->age); | |||
| @@ -175,7 +175,7 @@ void DisplayVoices(FILE *f_out, char *language) | |||
| if ((buf[j] = c) == 0) | |||
| break; | |||
| } | |||
| fprintf(f_out, "%2d %-12s%s%c %-20s %-13s ", | |||
| fprintf(f_out, "%2d %-15s%s/%c %-18s %-20s ", | |||
| p[0], lang_name, age_buf, genders[v->gender], buf, v->identifier); | |||
| } else | |||
| fprintf(f_out, "(%s %d)", lang_name, p[0]); | |||