/ src / utils / get-translate-target-language.jsx
get-translate-target-language.jsx
 1  import translationTargetLanguages from '../data/lingva-target-languages';
 2  
 3  import localeMatch from './locale-match';
 4  import states from './states';
 5  
 6  const locales = [
 7    new Intl.DateTimeFormat().resolvedOptions().locale,
 8    ...navigator.languages,
 9  ];
10  
11  function getTranslateTargetLanguage(fromSettings = false) {
12    if (fromSettings) {
13      const { contentTranslationTargetLanguage } = states.settings;
14      if (contentTranslationTargetLanguage) {
15        return contentTranslationTargetLanguage;
16      }
17    }
18    return localeMatch(
19      locales,
20      translationTargetLanguages.map((l) => l.code.replace('_', '-')), // The underscore will fail Intl.Locale inside `match`
21      'en',
22    );
23  }
24  
25  export default getTranslateTargetLanguage;