diff --git a/packages/core/src/i18n/locales/en/reader.json b/packages/core/src/i18n/locales/en/reader.json
index b5ffb9394..d5b86f34f 100644
--- a/packages/core/src/i18n/locales/en/reader.json
+++ b/packages/core/src/i18n/locales/en/reader.json
@@ -40,6 +40,8 @@
"fontSize": "Font Size",
"lineHeight": "Line Height",
"fontTheme": "Font Theme",
+ "useBookFonts": "Use book fonts",
+ "useBookFontsDesc": "Honor the book's own fonts (e.g. embedded fonts) where specified.",
"viewMode": "View Mode",
"paginated": "Paginated",
"scrollMode": "Scroll",
diff --git a/packages/core/src/i18n/locales/en/settings.json b/packages/core/src/i18n/locales/en/settings.json
index 9b45c5e45..5a0a23ad1 100644
--- a/packages/core/src/i18n/locales/en/settings.json
+++ b/packages/core/src/i18n/locales/en/settings.json
@@ -64,6 +64,8 @@
"fontSize": "Font Size: {{size}}px",
"lineHeight": "Line Height: {{height}}",
"fontTheme": "Font Theme",
+ "useBookFonts": "Use book fonts",
+ "useBookFontsDesc": "Honor the book's own fonts (e.g. embedded fonts) where specified.",
"paragraphSpacing": "Paragraph Spacing",
"showTopTitleProgress": "Top Title & Progress",
"showBottomTimeBattery": "Bottom Time & Battery",
diff --git a/packages/core/src/i18n/locales/es/reader.json b/packages/core/src/i18n/locales/es/reader.json
index 81bc6e29b..b1f3fa60e 100644
--- a/packages/core/src/i18n/locales/es/reader.json
+++ b/packages/core/src/i18n/locales/es/reader.json
@@ -40,6 +40,8 @@
"fontSize": "Tamaño de fuente",
"lineHeight": "Altura de línea",
"fontTheme": "Tema de fuente",
+ "useBookFonts": "Usar fuentes del libro",
+ "useBookFontsDesc": "Mostrar prioritariamente las fuentes del libro (fuentes incrustadas).",
"viewMode": "Modo de vista",
"paginated": "Paginado",
"scrollMode": "Desplazamiento",
diff --git a/packages/core/src/i18n/locales/es/settings.json b/packages/core/src/i18n/locales/es/settings.json
index 155021112..f7ec2b5ea 100644
--- a/packages/core/src/i18n/locales/es/settings.json
+++ b/packages/core/src/i18n/locales/es/settings.json
@@ -64,6 +64,8 @@
"fontSize": "Tamaño de fuente: {{size}}px",
"lineHeight": "Altura de línea: {{height}}",
"fontTheme": "Tema de fuente",
+ "useBookFonts": "Usar fuentes del libro",
+ "useBookFontsDesc": "Mostrar prioritariamente las fuentes del libro (fuentes incrustadas).",
"paragraphSpacing": "Espaciado entre párrafos",
"showTopTitleProgress": "Título y progreso superior",
"showBottomTimeBattery": "Hora y batería inferior",
diff --git a/packages/core/src/i18n/locales/fr/reader.json b/packages/core/src/i18n/locales/fr/reader.json
index ee7e861eb..b754cc55a 100644
--- a/packages/core/src/i18n/locales/fr/reader.json
+++ b/packages/core/src/i18n/locales/fr/reader.json
@@ -40,6 +40,8 @@
"fontSize": "Taille de police",
"lineHeight": "Interligne",
"fontTheme": "Thème de police",
+ "useBookFonts": "Utiliser les polices du livre",
+ "useBookFontsDesc": "Afficher en priorité les polices du livre (polices intégrées).",
"viewMode": "Mode d'affichage",
"paginated": "Paginé",
"scrollMode": "Défilement",
diff --git a/packages/core/src/i18n/locales/fr/settings.json b/packages/core/src/i18n/locales/fr/settings.json
index 325b0f0d0..23b706e8f 100644
--- a/packages/core/src/i18n/locales/fr/settings.json
+++ b/packages/core/src/i18n/locales/fr/settings.json
@@ -64,6 +64,8 @@
"fontSize": "Taille de police : {{size}}px",
"lineHeight": "Interligne : {{height}}",
"fontTheme": "Thème de police",
+ "useBookFonts": "Utiliser les polices du livre",
+ "useBookFontsDesc": "Afficher en priorité les polices du livre (polices intégrées).",
"paragraphSpacing": "Espacement des paragraphes",
"showTopTitleProgress": "Titre et progression en haut",
"showBottomTimeBattery": "Heure et batterie en bas",
diff --git a/packages/core/src/i18n/locales/ja/reader.json b/packages/core/src/i18n/locales/ja/reader.json
index 5041246e3..2edd42242 100644
--- a/packages/core/src/i18n/locales/ja/reader.json
+++ b/packages/core/src/i18n/locales/ja/reader.json
@@ -40,6 +40,8 @@
"fontSize": "文字サイズ",
"lineHeight": "行間",
"fontTheme": "フォントテーマ",
+ "useBookFonts": "書籍のフォントを使用",
+ "useBookFontsDesc": "書籍内で指定されたフォント(埋め込みフォントなど)を優先表示します。",
"viewMode": "表示モード",
"paginated": "ページ送り",
"scrollMode": "スクロール",
diff --git a/packages/core/src/i18n/locales/ja/settings.json b/packages/core/src/i18n/locales/ja/settings.json
index 1e155ac27..0b587daba 100644
--- a/packages/core/src/i18n/locales/ja/settings.json
+++ b/packages/core/src/i18n/locales/ja/settings.json
@@ -64,6 +64,8 @@
"fontSize": "文字サイズ: {{size}}px",
"lineHeight": "行間: {{height}}",
"fontTheme": "フォントテーマ",
+ "useBookFonts": "書籍のフォントを使用",
+ "useBookFontsDesc": "書籍内で指定されたフォント(埋め込みフォントなど)を優先表示します。",
"paragraphSpacing": "段落間隔",
"showTopTitleProgress": "上部タイトル&進捗表示",
"showBottomTimeBattery": "下部時刻&バッテリー表示",
diff --git a/packages/core/src/i18n/locales/ko/reader.json b/packages/core/src/i18n/locales/ko/reader.json
index 675ad69a4..7fefaa391 100644
--- a/packages/core/src/i18n/locales/ko/reader.json
+++ b/packages/core/src/i18n/locales/ko/reader.json
@@ -40,6 +40,8 @@
"fontSize": "글꼴 크기",
"lineHeight": "줄 간격",
"fontTheme": "글꼴 테마",
+ "useBookFonts": "책의 글꼴 사용",
+ "useBookFontsDesc": "책에 지정된 글꼴(내장 글꼴 등)을 우선 표시합니다.",
"viewMode": "보기 모드",
"paginated": "페이지 넘기기",
"scrollMode": "스크롤",
diff --git a/packages/core/src/i18n/locales/ko/settings.json b/packages/core/src/i18n/locales/ko/settings.json
index 6890d39eb..b1ac49e53 100644
--- a/packages/core/src/i18n/locales/ko/settings.json
+++ b/packages/core/src/i18n/locales/ko/settings.json
@@ -64,6 +64,8 @@
"fontSize": "글꼴 크기: {{size}}px",
"lineHeight": "줄 간격: {{height}}",
"fontTheme": "글꼴 테마",
+ "useBookFonts": "책의 글꼴 사용",
+ "useBookFontsDesc": "책에 지정된 글꼴(내장 글꼴 등)을 우선 표시합니다.",
"paragraphSpacing": "문단 간격",
"showTopTitleProgress": "상단 제목 및 진행률",
"showBottomTimeBattery": "하단 시간 및 배터리",
diff --git a/packages/core/src/i18n/locales/zh-TW/reader.json b/packages/core/src/i18n/locales/zh-TW/reader.json
index 1e2bcbdd0..5e4117f8f 100644
--- a/packages/core/src/i18n/locales/zh-TW/reader.json
+++ b/packages/core/src/i18n/locales/zh-TW/reader.json
@@ -40,6 +40,8 @@
"fontSize": "字型大小",
"lineHeight": "行高",
"fontTheme": "字型主題",
+ "useBookFonts": "使用書籍字型",
+ "useBookFontsDesc": "優先顯示書籍自帶的字型(如內嵌字型)。",
"viewMode": "閱讀模式",
"paginated": "翻頁",
"scrollMode": "捲動",
diff --git a/packages/core/src/i18n/locales/zh-TW/settings.json b/packages/core/src/i18n/locales/zh-TW/settings.json
index cf55519e6..ca3821bb2 100644
--- a/packages/core/src/i18n/locales/zh-TW/settings.json
+++ b/packages/core/src/i18n/locales/zh-TW/settings.json
@@ -64,6 +64,8 @@
"fontSize": "字型大小:{{size}}px",
"lineHeight": "行高:{{height}}",
"fontTheme": "字型主題",
+ "useBookFonts": "使用書籍字型",
+ "useBookFontsDesc": "優先顯示書籍自帶的字型(如內嵌字型)。",
"paragraphSpacing": "段落間距",
"showTopTitleProgress": "頂部標題與進度",
"showBottomTimeBattery": "底部時間與電量",
diff --git a/packages/core/src/i18n/locales/zh/reader.json b/packages/core/src/i18n/locales/zh/reader.json
index a220c4172..706280ce1 100644
--- a/packages/core/src/i18n/locales/zh/reader.json
+++ b/packages/core/src/i18n/locales/zh/reader.json
@@ -40,6 +40,8 @@
"fontSize": "字号",
"lineHeight": "行高",
"fontTheme": "字体主题",
+ "useBookFonts": "使用书籍字体",
+ "useBookFontsDesc": "优先显示书籍自带的字体(如内嵌字体)。",
"viewMode": "阅读模式",
"paginated": "翻页",
"scrollMode": "滚动",
diff --git a/packages/core/src/i18n/locales/zh/settings.json b/packages/core/src/i18n/locales/zh/settings.json
index e00feeea1..2d61ecee8 100644
--- a/packages/core/src/i18n/locales/zh/settings.json
+++ b/packages/core/src/i18n/locales/zh/settings.json
@@ -64,6 +64,8 @@
"fontSize": "字体大小:{{size}}px",
"lineHeight": "行高:{{height}}",
"fontTheme": "字体主题",
+ "useBookFonts": "使用书籍字体",
+ "useBookFontsDesc": "优先显示书籍自带的字体(如内嵌字体)。",
"paragraphSpacing": "段落间距",
"showTopTitleProgress": "顶部标题与进度",
"showBottomTimeBattery": "底部时间与电量",
diff --git a/packages/core/src/stores/settings-store.ts b/packages/core/src/stores/settings-store.ts
index f78f5bc02..fa0025e6a 100644
--- a/packages/core/src/stores/settings-store.ts
+++ b/packages/core/src/stores/settings-store.ts
@@ -47,6 +47,7 @@ const defaultReadSettings: ReadSettings = {
fontSize: 16,
lineHeight: 1.6,
fontTheme: "system",
+ useBookFonts: true,
viewMode: "paginated",
paginatedLayout: "double",
fixedLayoutZoom: 1,
@@ -85,14 +86,26 @@ const defaultAIConfig: AIConfig = {
};
function migrateSettingsState(state: SettingsState): SettingsState {
- if (state.aiConfig.maxTokens !== 4096) return state;
- return {
- ...state,
- aiConfig: {
- ...state.aiConfig,
- maxTokens: defaultAIConfig.maxTokens,
- },
- };
+ let next = state;
+ if (next.aiConfig.maxTokens === 4096) {
+ next = {
+ ...next,
+ aiConfig: {
+ ...next.aiConfig,
+ maxTokens: defaultAIConfig.maxTokens,
+ },
+ };
+ }
+ if (next.readSettings?.useBookFonts === undefined) {
+ next = {
+ ...next,
+ readSettings: {
+ ...next.readSettings,
+ useBookFonts: true,
+ },
+ };
+ }
+ return next;
}
/**
diff --git a/packages/core/src/types/book.ts b/packages/core/src/types/book.ts
index 85f40bb94..f420ea4c2 100644
--- a/packages/core/src/types/book.ts
+++ b/packages/core/src/types/book.ts
@@ -83,6 +83,7 @@ export interface ViewSettings {
customFontFamily?: string; // custom font family (overrides fontTheme)
customFontFaceCSS?: string; // @font-face CSS to inject (not persisted in store)
customFontCssUrls?: string[]; // remote font stylesheet URLs to inject into renderer docs
+ useBookFonts?: boolean; // default true: honor the book's own (embedded) fonts
viewMode: ViewMode;
paginatedLayout: PaginatedLayout;
fixedLayoutZoom?: number; // relative zoom multiplier for PDF/CBZ fixed layouts