phanpy/src/utils/get-translate-target-language.js

30 lines
822 B
JavaScript
Raw Normal View History

import translationTargetLanguages from '../data/lingva-target-languages';
import localeMatch from './locale-match';
import mem from './mem';
import states from './states';
const locales = mem(() => [
new Intl.DateTimeFormat().resolvedOptions().locale,
...navigator.languages,
]);
2024-09-10 12:32:55 +08:00
const localeTargetLanguages = () =>
localeMatch(
locales(),
2024-09-10 12:32:55 +08:00
translationTargetLanguages.map((l) => l.code.replace('_', '-')), // The underscore will fail Intl.Locale inside `match`
'en',
);
function getTranslateTargetLanguage(fromSettings = false) {
if (fromSettings) {
const { contentTranslationTargetLanguage } = states.settings;
if (contentTranslationTargetLanguage) {
return contentTranslationTargetLanguage;
}
}
2024-09-10 12:32:55 +08:00
return localeTargetLanguages();
}
export default getTranslateTargetLanguage;