Fix furigana distribution when source/expression kana differs (#1532)
* Fix furigana distribution when source/expression kana differs * Add an additional test
This commit is contained in:
parent
cba45b5e30
commit
8ae78449f2
@ -475,13 +475,15 @@ const JapaneseUtil = (() => {
|
||||
|
||||
// Check if source is derived from the reading instead of the expression
|
||||
const readingStemLength = this._getStemLength(readingNormalized, sourceNormalized);
|
||||
if (readingStemLength > stemLength) {
|
||||
if (readingStemLength > 0 && readingStemLength >= stemLength) {
|
||||
mainText = reading;
|
||||
stemLength = readingStemLength;
|
||||
reading = `${source.substring(0, stemLength)}${reading.substring(stemLength)}`;
|
||||
}
|
||||
|
||||
const segments = [];
|
||||
if (stemLength > 0) {
|
||||
mainText = `${source.substring(0, stemLength)}${mainText.substring(stemLength)}`;
|
||||
const segments2 = this.distributeFurigana(mainText, reading);
|
||||
let consumed = 0;
|
||||
for (const segment of segments2) {
|
||||
|
@ -750,6 +750,19 @@ function testDistributeFuriganaInflected() {
|
||||
[
|
||||
{text: 'おこなわなかった', furigana: ''}
|
||||
]
|
||||
],
|
||||
[
|
||||
['いい', 'いい', 'イイ'],
|
||||
[
|
||||
{text: 'イイ', furigana: ''}
|
||||
]
|
||||
],
|
||||
[
|
||||
['否か', 'いなか', '否カ'],
|
||||
[
|
||||
{text: '否', furigana: 'いな'},
|
||||
{text: 'カ', furigana: 'か'}
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user