commit 88e815bcca235b64b88c5248c56135887c93d4b8 Author: OverPoweredDev Date: Thu Jun 24 12:10:12 2021 +0530 got detectLanguage up and running in the pop-up diff --git a/src/background/storage.js b/src/background/storage.js index f63d498..6c51664 100644 --- a/src/background/storage.js +++ b/src/background/storage.js @@ -215,6 +215,24 @@ function getLanguageCodeMap(){ } } +async function detectLanguage(text){ + let url = new URL(getDetectLanguageEndpoint()); + let params = {q: text}; + url.search = new URLSearchParams(params).toString(); + + let possibleLanguageList = await fetch(url) + .then(response => response.json()); + + let max = -Infinity, x, languageCode; + for( x in possibleLanguageList) { + if( possibleLanguageList[x] > max) { + max = possibleLanguageList[x]; + languageCode = x; + } + } + + return languageCode; +} // API EndPoints function getLangPairsEndpoint() { @@ -225,6 +243,10 @@ function getTranslationEndpoint() { return getGlobalSettings().apertiumSource + "translate"; } +function getDetectLanguageEndpoint() { + return getGlobalSettings().apertiumSource + "identifyLang" +} + // Enabled Website List function getEnabledWebsiteList(){ diff --git a/src/popup/popup.js b/src/popup/popup.js index 8b03973..8b95cfb 100644 --- a/src/popup/popup.js +++ b/src/popup/popup.js @@ -165,8 +165,9 @@ async function getTranslation(inputText, sourceLanguage, targetLanguage) { return outputText; } -async function detectInputLanguage() { - // TODO +function detectInputLanguage() { + let inputText = getInputText(); + return detectLanguage(inputText); } function getTargetLanguage(){ @@ -187,8 +188,8 @@ async function getSourceLanguage(){ $("#source-language").addClass('error'); return null; } else if (languageCode === 'detect') { - await detectInputLanguage(); - return 'detect'; + let detectCode = await detectInputLanguage(); + return detectCode; } else { return languageCode }