From dbe1efd1e9e17caf110b89e02fa1126c6525e661 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Mon, 21 Jul 2025 04:10:14 +0800 Subject: [PATCH] tts: convert iso6392 language code to iso6391 to filter tts voices, closes #1627 (#1639) --- apps/readest-app/next.config.mjs | 6 ++---- apps/readest-app/src/app/reader/components/tts/TTSPanel.tsx | 2 +- apps/readest-app/src/components/metadata/BookDetailEdit.tsx | 3 ++- apps/readest-app/src/utils/ssml.ts | 4 +++- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/apps/readest-app/next.config.mjs b/apps/readest-app/next.config.mjs index e321072d..c995aa3e 100644 --- a/apps/readest-app/next.config.mjs +++ b/apps/readest-app/next.config.mjs @@ -4,12 +4,10 @@ import withBundleAnalyzer from '@next/bundle-analyzer'; const isDev = process.env['NODE_ENV'] === 'development'; const appPlatform = process.env['NEXT_PUBLIC_APP_PLATFORM']; -/* uncomment this to enable OpenNext Cloudflare for development if (isDev) { - const { initOpenNextCloudflareForDev } = await import('@opennextjs/cloudflare'); - initOpenNextCloudflareForDev(); + const { initOpenNextCloudflareForDev } = await import('@opennextjs/cloudflare'); + initOpenNextCloudflareForDev(); } -*/ const exportOutput = appPlatform !== 'web' && !isDev; diff --git a/apps/readest-app/src/app/reader/components/tts/TTSPanel.tsx b/apps/readest-app/src/app/reader/components/tts/TTSPanel.tsx index 53f9aaab..e81e8292 100644 --- a/apps/readest-app/src/app/reader/components/tts/TTSPanel.tsx +++ b/apps/readest-app/src/app/reader/components/tts/TTSPanel.tsx @@ -330,7 +330,7 @@ const TTSPanel = ({ diff --git a/apps/readest-app/src/components/metadata/BookDetailEdit.tsx b/apps/readest-app/src/components/metadata/BookDetailEdit.tsx index ae8f3563..28d1db8b 100644 --- a/apps/readest-app/src/components/metadata/BookDetailEdit.tsx +++ b/apps/readest-app/src/components/metadata/BookDetailEdit.tsx @@ -364,7 +364,8 @@ const BookDetailEdit: React.FC = ({ diff --git a/apps/readest-app/src/utils/ssml.ts b/apps/readest-app/src/utils/ssml.ts index 26b87c53..f9bca570 100644 --- a/apps/readest-app/src/utils/ssml.ts +++ b/apps/readest-app/src/utils/ssml.ts @@ -1,5 +1,5 @@ import { TTSMark } from '@/services/tts/types'; -import { inferLangFromScript, isSameLang, isValidLang } from './lang'; +import { code6392to6391, inferLangFromScript, isSameLang, isValidLang } from './lang'; const cleanTextContent = (text: string) => text.replace(/\r\n/g, ' ').replace(/\r/g, ' ').replace(/\n/g, ' ').trimStart(); @@ -27,10 +27,12 @@ export const parseSSMLLang = (ssml: string, primaryLang?: string): string => { ? `${parts[0]!.toLowerCase()}-${parts[1]!.toUpperCase()}` : parts[0]!.toLowerCase(); + lang = code6392to6391(lang) || lang; if (!isValidLang(lang)) { lang = 'en'; } } + primaryLang = code6392to6391(primaryLang?.toLowerCase() || '') || primaryLang; if (lang === 'en' && primaryLang && !isSameLang(lang, primaryLang)) { lang = primaryLang.split('-')[0]!.toLowerCase(); }