Update detection of Japanese characters
This commit is contained in:
parent
be2e6e0d93
commit
86d96a9036
@ -265,7 +265,7 @@ class DisplaySearch extends Display {
|
|||||||
text !== this.clipboardPreviousText
|
text !== this.clipboardPreviousText
|
||||||
) {
|
) {
|
||||||
this.clipboardPreviousText = text;
|
this.clipboardPreviousText = text;
|
||||||
if (jpIsJapaneseText(text)) {
|
if (jpIsAnyCharacterJapanese(text)) {
|
||||||
this.setQuery(this.isWanakanaEnabled() ? window.wanakana.toKana(text) : text);
|
this.setQuery(this.isWanakanaEnabled() ? window.wanakana.toKana(text) : text);
|
||||||
window.history.pushState(null, '', `${window.location.pathname}?query=${encodeURIComponent(text)}`);
|
window.history.pushState(null, '', `${window.location.pathname}?query=${encodeURIComponent(text)}`);
|
||||||
this.onSearchQueryUpdated(this.query.value, true);
|
this.onSearchQueryUpdated(this.query.value, true);
|
||||||
|
@ -214,11 +214,9 @@ class Translator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async findTermsInternal(text, dictionaries, details, options) {
|
async findTermsInternal(text, dictionaries, details, options) {
|
||||||
if (!options.scanning.alphanumeric && text.length > 0) {
|
text = Translator.getSearchableText(text, options);
|
||||||
const c = text[0];
|
if (text.length === 0) {
|
||||||
if (!jpIsKana(c) && !jpIsKanji(c)) {
|
return [[], 0];
|
||||||
return [[], 0];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const titles = Object.keys(dictionaries);
|
const titles = Object.keys(dictionaries);
|
||||||
@ -587,4 +585,19 @@ class Translator {
|
|||||||
yield variant;
|
yield variant;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static getSearchableText(text, options) {
|
||||||
|
if (!options.scanning.alphanumeric) {
|
||||||
|
const ii = text.length;
|
||||||
|
for (let i = 0; i < ii; ++i) {
|
||||||
|
const c = text[i];
|
||||||
|
if (!jpIsCharacterJapanese(c)) {
|
||||||
|
text = text.substring(0, i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return text;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -92,9 +92,13 @@ function jpIsKana(c) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function jpIsJapaneseText(text) {
|
function jpIsCharacterJapanese(c) {
|
||||||
|
return jpIsKanji(c) || jpIsKana(c);
|
||||||
|
}
|
||||||
|
|
||||||
|
function jpIsAnyCharacterJapanese(text) {
|
||||||
for (const c of text) {
|
for (const c of text) {
|
||||||
if (jpIsKanji(c) || jpIsKana(c)) {
|
if (jpIsCharacterJapanese(c)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user