diff options
Diffstat (limited to 'ext/js/language/translator.js')
-rw-r--r-- | ext/js/language/translator.js | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/ext/js/language/translator.js b/ext/js/language/translator.js index 45909940..733955c2 100644 --- a/ext/js/language/translator.js +++ b/ext/js/language/translator.js @@ -964,7 +964,7 @@ export class Translator { case 'pitch': { if (data.reading !== reading) { continue; } - /** @type {import('dictionary').TermPitch[]} */ + /** @type {import('dictionary').PitchAccent[]} */ const pitches = []; for (const {position, tags, nasal, devoice} of data.pitches) { /** @type {import('dictionary').Tag[]} */ @@ -974,7 +974,13 @@ export class Translator { } const nasalPositions = this._toNumberArray(nasal); const devoicePositions = this._toNumberArray(devoice); - pitches.push({position, nasalPositions, devoicePositions, tags: tags2}); + pitches.push({ + type: 'pitch-accent', + position, + nasalPositions, + devoicePositions, + tags: tags2 + }); } for (const {pronunciations, headwordIndex} of targets) { pronunciations.push(this._createTermPronunciation( @@ -988,6 +994,34 @@ export class Translator { } } break; + case 'ipa': + { + if (data.reading !== reading) { continue; } + /** @type {import('dictionary').PhoneticTranscription[]} */ + const phoneticTranscriptions = []; + for (const {ipa, tags} of data.transcriptions) { + /** @type {import('dictionary').Tag[]} */ + const tags2 = []; + if (Array.isArray(tags)) { + tagAggregator.addTags(tags2, dictionary, tags); + } + phoneticTranscriptions.push({ + type: 'phonetic-transcription', + ipa, + tags: tags2 + }); + } + for (const {pronunciations, headwordIndex} of targets) { + pronunciations.push(this._createTermPronunciation( + pronunciations.length, + headwordIndex, + dictionary, + dictionaryIndex, + dictionaryPriority, + phoneticTranscriptions + )); + } + } } } } @@ -1341,11 +1375,11 @@ export class Translator { * @param {string} dictionary * @param {number} dictionaryIndex * @param {number} dictionaryPriority - * @param {import('dictionary').TermPitch[]} pitches + * @param {import('dictionary').Pronunciation[]} pronunciations * @returns {import('dictionary').TermPronunciation} */ - _createTermPronunciation(index, headwordIndex, dictionary, dictionaryIndex, dictionaryPriority, pitches) { - return {index, headwordIndex, dictionary, dictionaryIndex, dictionaryPriority, pitches}; + _createTermPronunciation(index, headwordIndex, dictionary, dictionaryIndex, dictionaryPriority, pronunciations) { + return {index, headwordIndex, dictionary, dictionaryIndex, dictionaryPriority, pronunciations}; } /** |