mirror of
https://github.com/scratchfoundation/scratch-vm.git
synced 2024-12-24 23:12:24 -05:00
wip switching from using locales to language IDs internally
This commit is contained in:
parent
920096d061
commit
da212bcf06
1 changed files with 66 additions and 32 deletions
|
@ -65,6 +65,15 @@ const GIANT_ID = 'GIANT';
|
||||||
*/
|
*/
|
||||||
const KITTEN_ID = 'KITTEN';
|
const KITTEN_ID = 'KITTEN';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Language ids.
|
||||||
|
*/
|
||||||
|
const ENGLISH_ID = 'ENGLISH';
|
||||||
|
const CHINESE_ID = 'CHINESE';
|
||||||
|
const TURKISH_ID = 'TURKISH';
|
||||||
|
const JAPANESE_ID = 'JAPANESE';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Playback rate for the tenor voice, for cases where we have only a female gender voice.
|
* Playback rate for the tenor voice, for cases where we have only a female gender voice.
|
||||||
*/
|
*/
|
||||||
|
@ -162,6 +171,30 @@ class Scratch3Text2SpeechBlocks {
|
||||||
*/
|
*/
|
||||||
get LANGUAGE_INFO () {
|
get LANGUAGE_INFO () {
|
||||||
return {
|
return {
|
||||||
|
[CHINESE_ID]: {
|
||||||
|
name: 'Chinese (Mandarin)',
|
||||||
|
singleGender: true,
|
||||||
|
locales: ['zh-cn', 'zh-tw'],
|
||||||
|
pollyLocale: 'cmn-CN'
|
||||||
|
},
|
||||||
|
[ENGLISH_ID]: {
|
||||||
|
name: 'English',
|
||||||
|
locales: ['en'],
|
||||||
|
pollyLocale: 'en-US'
|
||||||
|
},
|
||||||
|
[JAPANESE_ID]: {
|
||||||
|
name: 'Japanese',
|
||||||
|
locales: ['ja', 'ja-Hira'],
|
||||||
|
pollyLocale: 'ja-JP'
|
||||||
|
},
|
||||||
|
[TURKISH_ID]: {
|
||||||
|
name: 'Turkish',
|
||||||
|
singleGender: true,
|
||||||
|
locales: ['tr'],
|
||||||
|
pollyLocale: 'tr-TR'
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
'cy': {
|
'cy': {
|
||||||
name: 'Welsh',
|
name: 'Welsh',
|
||||||
singleGender: true
|
singleGender: true
|
||||||
|
@ -240,6 +273,7 @@ class Scratch3Text2SpeechBlocks {
|
||||||
name: 'Chinese (Traditional)',
|
name: 'Chinese (Traditional)',
|
||||||
singleGender: true
|
singleGender: true
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -249,38 +283,38 @@ class Scratch3Text2SpeechBlocks {
|
||||||
* @param {string} locale the Scratch locale to convert.
|
* @param {string} locale the Scratch locale to convert.
|
||||||
* @return {string} the Amazon polly locale.
|
* @return {string} the Amazon polly locale.
|
||||||
*/
|
*/
|
||||||
localeToPolly (locale) {
|
// localeToPolly (locale) {
|
||||||
const pollyLocales = {
|
// const pollyLocales = {
|
||||||
'cy': 'cy-GB', // Welsh
|
// 'cy': 'cy-GB', // Welsh
|
||||||
'da': 'da-DK', // Danish
|
// 'da': 'da-DK', // Danish
|
||||||
'nl': 'nl-NL', // Dutch
|
// 'nl': 'nl-NL', // Dutch
|
||||||
'en': 'en-US', // English
|
// 'en': 'en-US', // English
|
||||||
'fr': 'fr-FR', // French
|
// 'fr': 'fr-FR', // French
|
||||||
'de': 'de-DE', // German
|
// 'de': 'de-DE', // German
|
||||||
'hi': 'en-IN', // Hindi
|
// 'hi': 'en-IN', // Hindi
|
||||||
'is': 'is-IS', // Icelandic
|
// 'is': 'is-IS', // Icelandic
|
||||||
'it': 'it-IT', // Italian
|
// 'it': 'it-IT', // Italian
|
||||||
'ja': 'ja-JP', // Japanese
|
// 'ja': 'ja-JP', // Japanese
|
||||||
'ko': 'ko-KR', // Korean
|
// 'ko': 'ko-KR', // Korean
|
||||||
'no': 'nb-NO', // Norwegian
|
// 'no': 'nb-NO', // Norwegian
|
||||||
'pl': 'pl-PL', // Polish
|
// 'pl': 'pl-PL', // Polish
|
||||||
'pt-br': 'pt-BR', // Portuguese (Brazilian)
|
// 'pt-br': 'pt-BR', // Portuguese (Brazilian)
|
||||||
'pt': 'pt-PT', // Portuguese (European)
|
// 'pt': 'pt-PT', // Portuguese (European)
|
||||||
'ro': 'ro-RO', // Romanian
|
// 'ro': 'ro-RO', // Romanian
|
||||||
'ru': 'ru-RU', // Russian
|
// 'ru': 'ru-RU', // Russian
|
||||||
'es': 'es-ES', // Spanish (European)
|
// 'es': 'es-ES', // Spanish (European)
|
||||||
'es-419': 'es-US', // Spanish (Latin American)
|
// 'es-419': 'es-US', // Spanish (Latin American)
|
||||||
'sv': 'sv-SE', // Swedish
|
// 'sv': 'sv-SE', // Swedish
|
||||||
'tr': 'tr-TR', // Turkish
|
// 'tr': 'tr-TR', // Turkish
|
||||||
'zh-cn': 'cmn-CN', // Chinese (simplified) -> Mandarin
|
// 'zh-cn': 'cmn-CN', // Chinese (simplified) -> Mandarin
|
||||||
'zh-tw': 'cmn-CN' // Chinese (traditional) -> Mandarin
|
// 'zh-tw': 'cmn-CN' // Chinese (traditional) -> Mandarin
|
||||||
};
|
// };
|
||||||
let converted = 'en-US';
|
// let converted = 'en-US';
|
||||||
if (pollyLocales[locale]) {
|
// if (pollyLocales[locale]) {
|
||||||
converted = pollyLocales[locale];
|
// converted = pollyLocales[locale];
|
||||||
}
|
// }
|
||||||
return converted;
|
// return converted;
|
||||||
}
|
// }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The key to load & store a target's text2speech state.
|
* The key to load & store a target's text2speech state.
|
||||||
|
|
Loading…
Reference in a new issue