Decrease access to API when judging language
This commit is contained in:
parent
087fee4620
commit
f1d3187932
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
//ボタンを表示
|
//ボタンを表示
|
||||||
|
|
Loading…
Reference in a new issue