From f1d31879322a00ae06bc9a1683a42028a2afabab Mon Sep 17 00:00:00 2001 From: sienori Date: Thu, 15 Nov 2018 19:22:42 +0900 Subject: [PATCH] Decrease access to API when judging language --- simple-translate/simple-translate.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/simple-translate/simple-translate.js b/simple-translate/simple-translate.js index 6e1895e..6087c54 100644 --- a/simple-translate/simple-translate.js +++ b/simple-translate/simple-translate.js @@ -39,8 +39,10 @@ async function Select(e) { if (!shouldTranslate) return; //選択した言語が翻訳先言語と異なれば翻訳する - const needTranslate = await checkLang(selectionWord, "auto", S.get().targetLang); - if (!needTranslate) return; + if (S.get().ifCheckLang) { + const shouldTranslate = await checkLang(selectionWord, "auto", S.get().targetLang); + if (!shouldTranslate) return; + } clickPosition = e; switch (S.get().whenSelectText) { @@ -59,15 +61,18 @@ async function Select(e) { }, 0); } -//選択テキストの言語をチェックして返す +//選択テキストの言語をチェックして返す ターゲットとソースの言語が不一致ならtrue async function checkLang(sourceWord, sourceLang, targetLang) { - if (!S.get().ifCheckLang) return true; //設定がオフならtrue - sourceWord = sourceWord.substr(0, 100); //先頭100字で言語を判定 + //detectLanguageで判定 ターゲットとソースが一致したらfalse + 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 needTranslate = + const shouldTranslate = S.get().targetLang != resultData.sourceLanguage && resultData.percentage > 0; - return needTranslate; //ターゲットとソースの言語が不一致ならtrue + return shouldTranslate; } //ボタンを表示