Decrease access to API when judging language

This commit is contained in:
sienori 2018-11-15 19:22:42 +09:00
parent 087fee4620
commit f1d3187932

View file

@ -39,8 +39,10 @@ async function Select(e) {
if (!shouldTranslate) return; if (!shouldTranslate) return;
//選択した言語が翻訳先言語と異なれば翻訳する //選択した言語が翻訳先言語と異なれば翻訳する
const needTranslate = await checkLang(selectionWord, "auto", S.get().targetLang); if (S.get().ifCheckLang) {
if (!needTranslate) return; const shouldTranslate = await checkLang(selectionWord, "auto", S.get().targetLang);
if (!shouldTranslate) return;
}
clickPosition = e; clickPosition = e;
switch (S.get().whenSelectText) { switch (S.get().whenSelectText) {
@ -59,15 +61,18 @@ async function Select(e) {
}, 0); }, 0);
} }
//選択テキストの言語をチェックして返す //選択テキストの言語をチェックして返す ターゲットとソースの言語が不一致ならtrue
async function checkLang(sourceWord, sourceLang, targetLang) { async function checkLang(sourceWord, sourceLang, targetLang) {
if (!S.get().ifCheckLang) return true; //設定がオフならtrue //detectLanguageで判定 ターゲットとソースが一致したらfalse
sourceWord = sourceWord.substr(0, 100); //先頭100字で言語を判定 const langInfo = await browser.i18n.detectLanguage(sourceWord);
if (langInfo.isReliable && langInfo.languages[0].language == targetLang) return false;
//先頭100字を翻訳にかけて判定
sourceWord = sourceWord.substr(0, 100);
const resultData = await T.translate(sourceWord, sourceLang, targetLang); const resultData = await T.translate(sourceWord, sourceLang, targetLang);
const needTranslate = const shouldTranslate =
S.get().targetLang != resultData.sourceLanguage && resultData.percentage > 0; S.get().targetLang != resultData.sourceLanguage && resultData.percentage > 0;
return needTranslate; //ターゲットとソースの言語が不一致ならtrue return shouldTranslate;
} }
//ボタンを表示 //ボタンを表示