From 9446df1b9c98536df8ae68fa66b4259077b84a05 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Tue, 8 Apr 2025 17:27:59 +0800 Subject: [PATCH] feat: add an option to configure default CJK fonts in CJK environments, closes #780 (#836) --- .../public/locales/ar/translation.json | 3 +- .../public/locales/de/translation.json | 3 +- .../public/locales/el/translation.json | 3 +- .../public/locales/es/translation.json | 3 +- .../public/locales/fr/translation.json | 3 +- .../public/locales/hi/translation.json | 3 +- .../public/locales/id/translation.json | 3 +- .../public/locales/it/translation.json | 3 +- .../public/locales/ja/translation.json | 3 +- .../public/locales/ko/translation.json | 3 +- .../public/locales/pl/translation.json | 3 +- .../public/locales/pt/translation.json | 3 +- .../public/locales/ru/translation.json | 3 +- .../public/locales/tr/translation.json | 3 +- .../public/locales/uk/translation.json | 3 +- .../public/locales/vi/translation.json | 3 +- .../public/locales/zh-CN/translation.json | 3 +- .../public/locales/zh-TW/translation.json | 3 +- .../components/settings/FontDropDown.tsx | 5 +- .../reader/components/settings/FontPanel.tsx | 26 +++++++++- apps/readest-app/src/services/constants.ts | 47 +++++++++++++++++++ apps/readest-app/src/types/book.ts | 1 + apps/readest-app/src/utils/misc.ts | 7 ++- apps/readest-app/src/utils/style.ts | 14 ++++-- 24 files changed, 129 insertions(+), 25 deletions(-) diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index f10dfc92..17cd4731 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} دقيقة", "{{value}} minutes": "{{value}} دقائق", "{{value}} hour": "{{value}} ساعة", - "{{value}} hours": "{{value}} ساعات" + "{{value}} hours": "{{value}} ساعات", + "CJK Font": "خط CJK" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index 42db8237..1e34dee3 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} Minute", "{{value}} minutes": "{{value}} Minuten", "{{value}} hour": "{{value}} Stunde", - "{{value}} hours": "{{value}} Stunden" + "{{value}} hours": "{{value}} Stunden", + "CJK Font": "CJK-Schriftart" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 06453df1..acdb6c6a 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} λεπτό", "{{value}} minutes": "{{value}} λεπτά", "{{value}} hour": "{{value}} ώρα", - "{{value}} hours": "{{value}} ώρες" + "{{value}} hours": "{{value}} ώρες", + "CJK Font": "Γραμματοσειρά CJK" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index 94ce6d59..cc7e03dd 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} minuto", "{{value}} minutes": "{{value}} minutos", "{{value}} hour": "{{value}} hora", - "{{value}} hours": "{{value}} horas" + "{{value}} hours": "{{value}} horas", + "CJK Font": "Fuente CJK" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 813b5260..df197e64 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} minute", "{{value}} minutes": "{{value}} minutes", "{{value}} hour": "{{value}} heure", - "{{value}} hours": "{{value}} heures" + "{{value}} hours": "{{value}} heures", + "CJK Font": "Police CJK" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 31f6f3e2..d2d3a5bd 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} मिनट", "{{value}} minutes": "{{value}} मिनट", "{{value}} hour": "{{value}} घंटा", - "{{value}} hours": "{{value}} घंटे" + "{{value}} hours": "{{value}} घंटे", + "CJK Font": "CJK फ़ॉन्ट" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index c16db3a6..d23a767a 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} menit", "{{value}} minutes": "{{value}} menit", "{{value}} hour": "{{value}} jam", - "{{value}} hours": "{{value}} jam" + "{{value}} hours": "{{value}} jam", + "CJK Font": "Font CJK" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index cd026081..e1d1ee22 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} minuto", "{{value}} minutes": "{{value}} minuti", "{{value}} hour": "{{value}} ora", - "{{value}} hours": "{{value}} ore" + "{{value}} hours": "{{value}} ore", + "CJK Font": "Font CJK" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index fd7252f3..f3ea7c68 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}}分", "{{value}} minutes": "{{value}}分", "{{value}} hour": "{{value}}時間", - "{{value}} hours": "{{value}}時間" + "{{value}} hours": "{{value}}時間", + "CJK Font": "CJKフォント" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index b2394257..53ccc994 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} 분", "{{value}} minutes": "{{value}} 분", "{{value}} hour": "{{value}} 시간", - "{{value}} hours": "{{value}} 시간" + "{{value}} hours": "{{value}} 시간", + "CJK Font": "CJK 글꼴" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index af9a7404..e87e007d 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} minuta", "{{value}} minutes": "{{value}} minut", "{{value}} hour": "{{value}} godzina", - "{{value}} hours": "{{value}} godziny" + "{{value}} hours": "{{value}} godziny", + "CJK Font": "Czcionka CJK" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 1b6f6700..99885c9e 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} minuto", "{{value}} minutes": "{{value}} minutos", "{{value}} hour": "{{value}} hora", - "{{value}} hours": "{{value}} horas" + "{{value}} hours": "{{value}} horas", + "CJK Font": "Fonte CJK" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 7a80b85f..74dce2d5 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} минута", "{{value}} minutes": "{{value}} минуты", "{{value}} hour": "{{value}} час", - "{{value}} hours": "{{value}} часа" + "{{value}} hours": "{{value}} часа", + "CJK Font": "CJK Шрифт" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 871daf65..3a286494 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} dakika", "{{value}} minutes": "{{value}} dakika", "{{value}} hour": "{{value}} saat", - "{{value}} hours": "{{value}} saat" + "{{value}} hours": "{{value}} saat", + "CJK Font": "CJK Yazı Tipi" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 120cb493..b2d4372f 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} хвилина", "{{value}} minutes": "{{value}} хвилин", "{{value}} hour": "{{value}} година", - "{{value}} hours": "{{value}} години" + "{{value}} hours": "{{value}} години", + "CJK Font": "CJK шрифт" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index ba69d395..ac75dccb 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}} phút", "{{value}} minutes": "{{value}} phút", "{{value}} hour": "{{value}} giờ", - "{{value}} hours": "{{value}} giờ" + "{{value}} hours": "{{value}} giờ", + "CJK Font": "Phông chữ CJK" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index d0cfc5d6..2b0d0155 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}}分钟", "{{value}} minutes": "{{value}}分钟", "{{value}} hour": "{{value}}小时", - "{{value}} hours": "{{value}}小时" + "{{value}} hours": "{{value}}小时", + "CJK Font": "中文字体" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index 512bad6d..b6f8a2d1 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -271,5 +271,6 @@ "{{value}} minute": "{{value}}分鐘", "{{value}} minutes": "{{value}}分鐘", "{{value}} hour": "{{value}}小時", - "{{value}} hours": "{{value}}小時" + "{{value}} hours": "{{value}}小時", + "CJK Font": "中文字體" } diff --git a/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx b/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx index 4cb0c601..c5d700ef 100644 --- a/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx +++ b/apps/readest-app/src/app/reader/components/settings/FontDropDown.tsx @@ -41,7 +41,10 @@ const FontDropdown: React.FC = ({