Skip to content

Commit

Permalink
Step 5: Showing a friendly list of languages
Browse files Browse the repository at this point in the history
  • Loading branch information
colbyfayock committed Feb 29, 2024
1 parent 3d514d2 commit 9cbc173
Showing 1 changed file with 22 additions and 4 deletions.
26 changes: 22 additions & 4 deletions src/components/Translator.tsx
Expand Up @@ -2,6 +2,12 @@

import { useState, useEffect } from 'react';

import { default as languageCodesData } from '@/data/language-codes.json';
import { default as countryCodesData } from '@/data/country-codes.json';

const languageCodes: Record<string, string> = languageCodesData;
const countryCodes: Record<string, string> = countryCodesData;

const Translator = () => {
const [text, setText] = useState<string>();
const [translation, setTranslation] = useState<string>();
Expand All @@ -11,7 +17,19 @@ const Translator = () => {
const isActive = false;
const isSpeechDetected = false;

const availableLanguages = Array.from(new Set(voices?.map(({ lang }) => lang))).sort();
const availableLanguages = Array.from(new Set(voices?.map(({ lang }) => lang)))
.map(lang => {
const split = lang.split('-');
const languageCode: string = split[0];
const countryCode: string = split[1];
return {
lang,
label: languageCodes[languageCode] || lang,
dialect: countryCodes[countryCode]
}
})
.sort((a, b) => a.label.localeCompare(b.label));

const availableVoices = voices?.filter(({ lang }) => lang === language);
const activeVoice =
availableVoices?.find(({ name }) => name.includes('Google'))
Expand Down Expand Up @@ -97,10 +115,10 @@ const Translator = () => {
<select className="w-full text-[.7rem] rounded-sm border-zinc-300 px-2 py-1 pr-7" name="language" value={language} onChange={(event) => {
setLanguage(event.currentTarget.value);
}}>
{availableLanguages.map((language) => {
{availableLanguages.map(({ lang, label }) => {
return (
<option key={language} value={language}>
{ language }
<option key={lang} value={lang}>
{ label } ({ lang })
</option>
)
})}
Expand Down

0 comments on commit 9cbc173

Please sign in to comment.