@@ -1779,7 +1779,8 @@ class ReaderViewModel @JvmOverloads constructor(
17791779 if (ocrCache.containsKey(cacheKey)) return @withLock
17801780 }
17811781
1782- getMokuroBlocksForPage(chapterData, pageIndex)?.let { blocks ->
1782+ getMokuroBlocksForPage(chapterData, pageIndex)?.let { rawBlocks ->
1783+ val blocks = rawBlocks.map { it.copy(language = chimahon.ocr.OcrLanguage .JAPANESE .bcp47) }
17831784 ocrCacheMutex.withLock {
17841785 ocrCache[cacheKey] = blocks
17851786 while (ocrCache.size > maxOcrCacheEntries) {
@@ -1803,6 +1804,7 @@ class ReaderViewModel @JvmOverloads constructor(
18031804 lineGeometries = it.lineGeometries?.map { lg ->
18041805 chimahon.ocr.OcrLineGeometry (lg.xmin, lg.ymin, lg.xmax, lg.ymax, lg.rotation)
18051806 },
1807+ language = it.language,
18061808 )
18071809 },
18081810 language = chimahon.ocr.OcrLanguage .JAPANESE .bcp47,
@@ -1995,7 +1997,8 @@ class ReaderViewModel @JvmOverloads constructor(
19951997 }
19961998
19971999 if (source.isLocal()) {
1998- tryLoadMokuroBlocks(manga, domainChapter, source, page.index)?.let { blocks ->
2000+ tryLoadMokuroBlocks(manga, domainChapter, source, page.index)?.let { rawBlocks ->
2001+ val blocks = rawBlocks.map { it.copy(language = ocrLang.bcp47) }
19992002 ocrCacheMutex.withLock {
20002003 ocrCache[cacheKey] = blocks
20012004 while (ocrCache.size > maxOcrCacheEntries) {
@@ -2019,6 +2022,7 @@ class ReaderViewModel @JvmOverloads constructor(
20192022 lineGeometries = it.lineGeometries?.map { lg ->
20202023 chimahon.ocr.OcrLineGeometry (lg.xmin, lg.ymin, lg.xmax, lg.ymax, lg.rotation)
20212024 },
2025+ language = it.language,
20222026 )
20232027 },
20242028 language = ocrLang.bcp47,
@@ -2041,7 +2045,9 @@ class ReaderViewModel @JvmOverloads constructor(
20412045
20422046 val mokuroUrl = buildMokuroExtensionUrl(manga, domainChapter, source)
20432047 if (mokuroUrl != null ) {
2044- tryLoadMokuroFromUrl(mokuroUrl, manga, domainChapter, source, page.index, page.chapter.pages?.size ? : 0 )?.let { blocks ->
2048+ tryLoadMokuroFromUrl(mokuroUrl, manga, domainChapter, source, page.index, page.chapter.pages?.size ? : 0 )?.let { rawBlocks ->
2049+ val mokuroLang = chimahon.ocr.OcrLanguage .JAPANESE .bcp47
2050+ val blocks = rawBlocks.map { it.copy(language = mokuroLang) }
20452051 ocrCacheMutex.withLock {
20462052 ocrCache[cacheKey] = blocks
20472053 while (ocrCache.size > maxOcrCacheEntries) {
@@ -2065,9 +2071,10 @@ class ReaderViewModel @JvmOverloads constructor(
20652071 lineGeometries = it.lineGeometries?.map { lg ->
20662072 chimahon.ocr.OcrLineGeometry (lg.xmin, lg.ymin, lg.xmax, lg.ymax, lg.rotation)
20672073 },
2074+ language = it.language,
20682075 )
20692076 },
2070- language = chimahon.ocr. OcrLanguage . JAPANESE .bcp47 ,
2077+ language = mokuroLang ,
20712078 )
20722079 val elapsedMs = SystemClock .elapsedRealtime() - startMs
20732080 logcat { " OCR mokuro extension fetch: chapter=$chapterId page=${page.index} blocks=${blocks.size} time=${elapsedMs} ms" }
@@ -2131,6 +2138,7 @@ class ReaderViewModel @JvmOverloads constructor(
21312138 lines = result.text.split(" \n " ).filter { it.isNotBlank() },
21322139 vertical = result.forcedOrientation == " vertical" ,
21332140 lineGeometries = lineGeometries,
2141+ language = ocrLang.bcp47,
21342142 )
21352143 }
21362144 }
@@ -2151,6 +2159,7 @@ class ReaderViewModel @JvmOverloads constructor(
21512159 lineGeometries = it.lineGeometries?.map { lg ->
21522160 chimahon.ocr.OcrLineGeometry (lg.xmin, lg.ymin, lg.xmax, lg.ymax, lg.rotation)
21532161 },
2162+ language = it.language,
21542163 )
21552164 },
21562165 language = ocrLang.bcp47,
@@ -2299,5 +2308,6 @@ private fun chimahon.ocr.OcrTextBlock.toViewerBlock(): eu.kanade.tachiyomi.ui.re
22992308 lineGeometries = lineGeometries?.map { lg ->
23002309 eu.kanade.tachiyomi.ui.reader.viewer.OcrLineGeometry (lg.xmin, lg.ymin, lg.xmax, lg.ymax, lg.rotation)
23012310 },
2311+ language = language,
23022312 )
23032313}
0 commit comments