diff --git a/src/components/forms/ApplicationForm.js b/src/components/forms/ApplicationForm.js
index c3fec3f..11a1ca1 100644
--- a/src/components/forms/ApplicationForm.js
+++ b/src/components/forms/ApplicationForm.js
@@ -13,6 +13,7 @@ import Button from '../elements/Button';
import SpeechSynthesisLanguageGoogle from '../../data/SpeechSynthesisLanguageGoogle';
import SpeechSynthesisLanguageAws from '../../data/SpeechSynthesisLanguageAws';
import SpeechRecognizerLanguageGoogle from '../../data/SpeechRecognizerLanguageGoogle';
+import SpeechRecognizerLanguageAws from '../../data/SpeechRecognizerLanguageAws';
import Loader from '../blocks/Loader';
import CopyableText from '../elements/CopyableText';
@@ -840,9 +841,25 @@ const ApplicationForm = props => {
name="speechRecognizerVendor"
id="speechRecognizerVendor"
value={speechRecognizerVendor}
- onChange={e => setSpeechRecognizerVendor(e.target.value)}
+ onChange={e => {
+ setSpeechRecognizerVendor(e.target.value);
+
+ // Google and AWS have different language lists. If the newly chosen
+ // vendor doesn't have the same language that was already in use,
+ // select US English
+ if ((
+ e.target.value === 'google' &&
+ !SpeechRecognizerLanguageGoogle.some(l => l.code === speechRecognizerLanguage)
+ ) || (
+ e.target.value === 'aws' &&
+ !SpeechRecognizerLanguageAws.some(l => l.code === speechRecognizerLanguage)
+ )) {
+ setSpeechRecognizerLanguage('en-US');
+ }
+ }}
>
+
diff --git a/src/data/SpeechRecognizerLanguageAws.js b/src/data/SpeechRecognizerLanguageAws.js
new file mode 100644
index 0000000..a1f4ac8
--- /dev/null
+++ b/src/data/SpeechRecognizerLanguageAws.js
@@ -0,0 +1,10 @@
+export default [
+ { name: 'Australian English', 'code': 'en-AU' },
+ { name: 'British English', 'code': 'en-GB' },
+ { name: 'US English', 'code': 'en-US' },
+ { name: 'French', 'code': 'fr-FR' },
+ { name: 'Canadian French', 'code': 'fr-CA' },
+ { name: 'German', 'code': 'de-DE' },
+ { name: 'Italian', 'code': 'it-IT' },
+ { name: 'US Spanish', 'code': 'es-US' },
+];