From f8e56f9ece193c383a4e48fa8dbca82d7f861562 Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Sat, 21 Feb 2026 21:05:27 +0000 Subject: [PATCH 1/2] Added: Converter code --- common/subtitle-reader/subtitle-reader.ts | 6 ++++++ package.json | 4 ++++ yarn.lock | 16 ++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/common/subtitle-reader/subtitle-reader.ts b/common/subtitle-reader/subtitle-reader.ts index 6d28a86ea..beabcb0bc 100755 --- a/common/subtitle-reader/subtitle-reader.ts +++ b/common/subtitle-reader/subtitle-reader.ts @@ -3,6 +3,7 @@ import SrtParser from '@qgustavor/srt-parser'; import { WebVTT } from 'vtt.js'; import { XMLParser } from 'fast-xml-parser'; import { SubtitleHtml, SubtitleTextImage, Token, Tokenization } from '@project/common'; +import * as OpenCC from 'opencc-js'; const vttClassRegex = /<(\/)?c(\.[^>]*)?>/g; const assNewLineRegex = RegExp(/\\[nN]/, 'ig'); @@ -113,6 +114,11 @@ export default class SubtitleReader { } } + const converter = OpenCC.Converter({ from: "tw", to: "cn" }) + for (const node of allNodes) { + node.text = converter(node.text); + } + return allNodes; } diff --git a/package.json b/package.json index f99438090..48e5e5ee0 100755 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ ] }, "devDependencies": { + "@types/opencc-js": "^1.0.3", "@typescript-eslint/parser": "^8.38.0", "eslint": "^9.32.0", "eslint-plugin-react": "^7.37.5", @@ -24,5 +25,8 @@ "packageManager": "yarn@3.2.0", "resolutions": { "lamejs@1.2.0": "patch:lamejs@npm:1.2.0#.yarn/patches/lamejs-npm-1.2.0-b0315d05aa.patch" + }, + "dependencies": { + "opencc-js": "^1.0.5" } } diff --git a/yarn.lock b/yarn.lock index 357248ed4..263e53064 100755 --- a/yarn.lock +++ b/yarn.lock @@ -4590,6 +4590,13 @@ __metadata: languageName: node linkType: hard +"@types/opencc-js@npm:^1.0.3": + version: 1.0.3 + resolution: "@types/opencc-js@npm:1.0.3" + checksum: 3cc08b83e933d79783c3a50f5d99c6256b86db45a024aad9fe2a9cc78720dcad680a6a6e7562ec4260ed5de7c7c475a3cafef2f688356317fdc3be988a172209 + languageName: node + linkType: hard + "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" @@ -12482,6 +12489,13 @@ __metadata: languageName: node linkType: hard +"opencc-js@npm:^1.0.5": + version: 1.0.5 + resolution: "opencc-js@npm:1.0.5" + checksum: 584066299dbaced2a22ecfe5b15095613f03692a6f6180ae41209ae838a0574a3b30b30f984fa902a5d8b6644ddddc31cb3d5afee2a2d8031a13a58a12fa0d37 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -13788,10 +13802,12 @@ __metadata: version: 0.0.0-use.local resolution: "root@workspace:." dependencies: + "@types/opencc-js": ^1.0.3 "@typescript-eslint/parser": ^8.38.0 eslint: ^9.32.0 eslint-plugin-react: ^7.37.5 eslint-plugin-react-hooks: ^5.2.0 + opencc-js: ^1.0.5 prettier: ^3.6.2 yarn-upgrade-all: ^0.7.5 languageName: unknown From fa27683df08a743804d3cfa3e59b6ae8a20ca42d Mon Sep 17 00:00:00 2001 From: Luc Mcgrady Date: Sat, 21 Feb 2026 21:14:41 +0000 Subject: [PATCH 2/2] Fix: dependency locations --- extension/package.json | 2 ++ package.json | 4 ---- yarn.lock | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/extension/package.json b/extension/package.json index 1039f6051..618538df3 100755 --- a/extension/package.json +++ b/extension/package.json @@ -35,6 +35,7 @@ "i18next": "^25.3.2", "m3u8-parser": "^7.2.0", "mpd-parser": "^1.3.1", + "opencc-js": "^1.0.5", "react": "^19.1.0", "react-dom": "^19.1.0", "react-i18next": "^15.6.1", @@ -45,6 +46,7 @@ }, "devDependencies": { "@types/jest": "^30.0.0", + "@types/opencc-js": "^1.0.3", "@wxt-dev/module-react": "^1.1.5", "jest": "^30.0.5", "ts-jest": "^29.4.0", diff --git a/package.json b/package.json index 48e5e5ee0..f99438090 100755 --- a/package.json +++ b/package.json @@ -9,7 +9,6 @@ ] }, "devDependencies": { - "@types/opencc-js": "^1.0.3", "@typescript-eslint/parser": "^8.38.0", "eslint": "^9.32.0", "eslint-plugin-react": "^7.37.5", @@ -25,8 +24,5 @@ "packageManager": "yarn@3.2.0", "resolutions": { "lamejs@1.2.0": "patch:lamejs@npm:1.2.0#.yarn/patches/lamejs-npm-1.2.0-b0315d05aa.patch" - }, - "dependencies": { - "opencc-js": "^1.0.5" } } diff --git a/yarn.lock b/yarn.lock index 263e53064..33cde70e3 100755 --- a/yarn.lock +++ b/yarn.lock @@ -3846,6 +3846,7 @@ __metadata: "@types/chrome": ^0.1.37 "@types/dom-mediacapture-record": ^1.0.22 "@types/jest": ^30.0.0 + "@types/opencc-js": ^1.0.3 "@types/react": ^19.1.8 "@types/react-dom": ^19.1.6 "@types/semver": ^7.7.0 @@ -3855,6 +3856,7 @@ __metadata: jest: ^30.0.5 m3u8-parser: ^7.2.0 mpd-parser: ^1.3.1 + opencc-js: ^1.0.5 react: ^19.1.0 react-dom: ^19.1.0 react-i18next: ^15.6.1 @@ -13802,12 +13804,10 @@ __metadata: version: 0.0.0-use.local resolution: "root@workspace:." dependencies: - "@types/opencc-js": ^1.0.3 "@typescript-eslint/parser": ^8.38.0 eslint: ^9.32.0 eslint-plugin-react: ^7.37.5 eslint-plugin-react-hooks: ^5.2.0 - opencc-js: ^1.0.5 prettier: ^3.6.2 yarn-upgrade-all: ^0.7.5 languageName: unknown