diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-03-25 19:55:31 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-25 19:55:31 -0400 | 
| commit | 4be5c8fd9f7860e701d0b7d3c8c0ee934bc60a4f (patch) | |
| tree | dcd78316afdf00bbb67d3d1aa6555a9c8ea3efec /ext/js/background | |
| parent | e7035dcff41d94f20c0bc8865d413412afc7c229 (diff) | |
Refactor Translator and dictionary entry format (#1553)
* Update test data
* Move translator.js
* Create new version of Translator
* Update Backend
* Update DictionaryDataUtil
* Update DisplayGenerator
* Create AnkiNoteDataCreator
* Replace AnkiNoteData with AnkiNoteDataCreator
* Update tests
* Remove AnkiNoteData
* Update test data
* Remove translator-old.js
* Add TypeScript interface definitions for the new translator data format
Diffstat (limited to 'ext/js/background')
| -rw-r--r-- | ext/js/background/backend.js | 28 | 
1 files changed, 14 insertions, 14 deletions
| diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 5cbb65cb..82457a7e 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -414,9 +414,9 @@ class Backend {          const options = this._getProfileOptions(optionsContext);          const {general: {resultOutputMode: mode, maxResults}} = options;          const findTermsOptions = this._getTranslatorFindTermsOptions(details, options); -        const [definitions, length] = await this._translator.findTerms(mode, text, findTermsOptions); -        definitions.splice(maxResults); -        return {length, definitions}; +        const {dictionaryEntries, originalTextLength} = await this._translator.findTerms(mode, text, findTermsOptions); +        dictionaryEntries.splice(maxResults); +        return {length: originalTextLength, definitions: dictionaryEntries};      }      async _onApiTextParse({text, optionsContext}) { @@ -1050,7 +1050,7 @@ class Backend {          let i = 0;          const ii = text.length;          while (i < ii) { -            const [definitions, sourceLength] = await this._translator.findTerms( +            const {dictionaryEntries, originalTextLength} = await this._translator.findTerms(                  'simple',                  text.substring(i, i + scanningLength),                  findTermsOptions @@ -1058,20 +1058,20 @@ class Backend {              const codePoint = text.codePointAt(i);              const character = String.fromCodePoint(codePoint);              if ( -                definitions.length > 0 && -                sourceLength > 0 && -                (sourceLength !== character.length || this._japaneseUtil.isCodePointJapanese(codePoint)) +                dictionaryEntries.length > 0 && +                originalTextLength > 0 && +                (originalTextLength !== character.length || this._japaneseUtil.isCodePointJapanese(codePoint))              ) {                  previousUngroupedSegment = null; -                const {expression, reading} = definitions[0]; -                const source = text.substring(i, i + sourceLength); -                const term = []; -                for (const {text: text2, furigana} of jp.distributeFuriganaInflected(expression, reading, source)) { +                const {headwords: [{term, reading}]} = dictionaryEntries[0]; +                const source = text.substring(i, i + originalTextLength); +                const textSegments = []; +                for (const {text: text2, furigana} of jp.distributeFuriganaInflected(term, reading, source)) {                      const reading2 = jp.convertReading(text2, furigana, readingMode); -                    term.push({text: text2, reading: reading2}); +                    textSegments.push({text: text2, reading: reading2});                  } -                results.push(term); -                i += sourceLength; +                results.push(textSegments); +                i += originalTextLength;              } else {                  if (previousUngroupedSegment === null) {                      previousUngroupedSegment = {text: character, reading: ''}; |