From 444e22dd0e66f696251b32d84633e847218f2124 Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Mon, 20 Oct 2025 00:59:26 +0800 Subject: [PATCH] chore: i18n for highlight color settings (#2275) --- .../public/locales/ar/translation.json | 3 +- .../public/locales/bn/translation.json | 3 +- .../public/locales/bo/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/nl/translation.json | 3 +- .../public/locales/pl/translation.json | 3 +- .../public/locales/pt/translation.json | 3 +- .../public/locales/ru/translation.json | 3 +- .../public/locales/si/translation.json | 3 +- .../public/locales/sv/translation.json | 3 +- .../public/locales/ta/translation.json | 3 +- .../public/locales/th/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/annotator/HighlightOptions.tsx | 38 ++++++----- .../src/components/settings/ColorPanel.tsx | 68 ++++++++++--------- apps/readest-app/src/services/constants.ts | 22 ++---- 28 files changed, 113 insertions(+), 90 deletions(-) diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index e64ec62f..ca986baf 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -625,5 +625,6 @@ "Contain": "احتواء", "{{number}} pages left in chapter": "تبقّت {{number}} صفحات في هذا الفصل", "Device": "الجهاز", - "E-Ink Mode": "وضع الحبر الإلكتروني" + "E-Ink Mode": "وضع الحبر الإلكتروني", + "Highlight Colors": "ألوان التمييز" } diff --git a/apps/readest-app/public/locales/bn/translation.json b/apps/readest-app/public/locales/bn/translation.json index 7161e459..235d7dcb 100644 --- a/apps/readest-app/public/locales/bn/translation.json +++ b/apps/readest-app/public/locales/bn/translation.json @@ -609,5 +609,6 @@ "Contain": "ধারণ", "{{number}} pages left in chapter": "অধ্যায়ে {{number}} পৃষ্ঠা বাকি", "Device": "যন্ত্র", - "E-Ink Mode": "ই-ইঙ্ক মোড" + "E-Ink Mode": "ই-ইঙ্ক মোড", + "Highlight Colors": "হাইলাইট রঙ" } diff --git a/apps/readest-app/public/locales/bo/translation.json b/apps/readest-app/public/locales/bo/translation.json index e9f4bcbd..3360e0a7 100644 --- a/apps/readest-app/public/locales/bo/translation.json +++ b/apps/readest-app/public/locales/bo/translation.json @@ -605,5 +605,6 @@ "Contain": "འབྱོར་བ།", "{{number}} pages left in chapter": "དོན་ཚན་ནང་ཤོག་ཨང་ {{number}} ལོག་གི་འདུག།", "Device": "རྐྱབ་སྐོར", - "E-Ink Mode": "ཡིག་སྒྱུར་སྤོ་བ" + "E-Ink Mode": "ཡིག་སྒྱུར་སྤོ་བ", + "Highlight Colors": "མདོག་ཚད་ཀྱི་བསྡུར་བ།" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index 9665c546..1d70196d 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -609,5 +609,6 @@ "Contain": "Inhalt", "{{number}} pages left in chapter": "{{number}} Seiten verbleibend im Kapitel", "Device": "Gerät", - "E-Ink Mode": "E-Ink-Modus" + "E-Ink Mode": "E-Ink-Modus", + "Highlight Colors": "Hervorhebungsfarben" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index ddf04a52..68b15ecb 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -609,5 +609,6 @@ "Contain": "Περιέχει", "{{number}} pages left in chapter": "Μένουν {{number}} σελίδες στο κεφάλαιο", "Device": "Συσκευή", - "E-Ink Mode": "Λειτουργία E-Ink" + "E-Ink Mode": "Λειτουργία E-Ink", + "Highlight Colors": "Χρώματα επισήμανσης" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index 3ee2060a..ad13d273 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -613,5 +613,6 @@ "Contain": "Contener", "{{number}} pages left in chapter": "{{number}} páginas restantes en el capítulo", "Device": "Dispositivo", - "E-Ink Mode": "Modo E-Ink" + "E-Ink Mode": "Modo E-Ink", + "Highlight Colors": "Colores de resaltado" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 51a5e6d9..93d92e5d 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -613,5 +613,6 @@ "Contain": "Contenir", "{{number}} pages left in chapter": "{{number}} pages restantes dans le chapitre", "Device": "Appareil", - "E-Ink Mode": "Mode E-Ink" + "E-Ink Mode": "Mode E-Ink", + "Highlight Colors": "Couleurs de Surlignage" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index c6a11406..f8047e76 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -609,5 +609,6 @@ "Contain": "समाहित करें", "{{number}} pages left in chapter": "इस अध्याय में {{number}} पृष्ठ शेष हैं", "Device": "डिवाइस", - "E-Ink Mode": "ई-इंक मोड" + "E-Ink Mode": "ई-इंक मोड", + "Highlight Colors": "हाइलाइट रंग" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index 71ebf7e4..0ef4d110 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -605,5 +605,6 @@ "Contain": "Mengandung", "{{number}} pages left in chapter": "{{number}} halaman tersisa di bab", "Device": "Perangkat", - "E-Ink Mode": "Mode E-Ink" + "E-Ink Mode": "Mode E-Ink", + "Highlight Colors": "Warna Sorotan" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index f8d6ae4a..679ace68 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -613,5 +613,6 @@ "Contain": "Contenere", "{{number}} pages left in chapter": "{{number}} pagine rimaste nel capitolo", "Device": "Dispositivo", - "E-Ink Mode": "Modalità E-Ink" + "E-Ink Mode": "Modalità E-Ink", + "Highlight Colors": "Colori Evidenziazione" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index 29ab50ac..4793be3b 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -605,5 +605,6 @@ "Contain": "含む", "{{number}} pages left in chapter": "章に{{number}}ページ残り", "Device": "デバイス", - "E-Ink Mode": "E-Inkモード" + "E-Ink Mode": "E-Inkモード", + "Highlight Colors": "ハイライトカラー" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index edee1205..e53d0127 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -605,5 +605,6 @@ "Contain": "포함", "{{number}} pages left in chapter": "남은 페이지 {{number}}장", "Device": "장치", - "E-Ink Mode": "E-Ink 모드" + "E-Ink Mode": "E-Ink 모드", + "Highlight Colors": "하이라이트 색상" } diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json index 5b6bae40..fe34a4b5 100644 --- a/apps/readest-app/public/locales/nl/translation.json +++ b/apps/readest-app/public/locales/nl/translation.json @@ -609,5 +609,6 @@ "Contain": "Bevatten", "{{number}} pages left in chapter": "Nog {{number}} pagina’s in hoofdstuk", "Device": "Apparaat", - "E-Ink Mode": "E-Ink Modus" + "E-Ink Mode": "E-Ink Modus", + "Highlight Colors": "Markeerkleuren" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index 19732293..314709f9 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -617,5 +617,6 @@ "Contain": "Zawierać", "{{number}} pages left in chapter": "Pozostało {{number}} stron w rozdziale", "Device": "Urządzenie", - "E-Ink Mode": "Tryb E-Ink" + "E-Ink Mode": "Tryb E-Ink", + "Highlight Colors": "Kolory wyróżnień" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 70e0e015..a49b2328 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -613,5 +613,6 @@ "Contain": "Contém", "{{number}} pages left in chapter": "Faltam {{number}} páginas neste capítulo", "Device": "Dispositivo", - "E-Ink Mode": "Modo E-Ink" + "E-Ink Mode": "Modo E-Ink", + "Highlight Colors": "Cores de Destaque" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 6a9df5ed..1cd74ec8 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -617,5 +617,6 @@ "Contain": "Содержать", "{{number}} pages left in chapter": "Осталось {{number}} страниц в главе", "Device": "Устройство", - "E-Ink Mode": "E-Ink режим" + "E-Ink Mode": "E-Ink режим", + "Highlight Colors": "Цвета выделения" } diff --git a/apps/readest-app/public/locales/si/translation.json b/apps/readest-app/public/locales/si/translation.json index 636c8b25..b7851780 100644 --- a/apps/readest-app/public/locales/si/translation.json +++ b/apps/readest-app/public/locales/si/translation.json @@ -609,5 +609,6 @@ "Contain": "අඩංගු වන්න", "{{number}} pages left in chapter": "පරිච්ඡේදයේ පිටු {{number}} ඉතිරිව ඇත", "Device": "උපකරණය", - "E-Ink Mode": "E-Ink ආකාරය" + "E-Ink Mode": "E-Ink ආකාරය", + "Highlight Colors": "ඉස්මතු වර්ණ" } diff --git a/apps/readest-app/public/locales/sv/translation.json b/apps/readest-app/public/locales/sv/translation.json index d18066bb..a171b77b 100644 --- a/apps/readest-app/public/locales/sv/translation.json +++ b/apps/readest-app/public/locales/sv/translation.json @@ -609,5 +609,6 @@ "Contain": "Innehålla", "{{number}} pages left in chapter": "{{number}} sidor kvar i kapitlet", "Device": "Enhet", - "E-Ink Mode": "E-Ink-läge" + "E-Ink Mode": "E-Ink-läge", + "Highlight Colors": "Markeringsfärger" } diff --git a/apps/readest-app/public/locales/ta/translation.json b/apps/readest-app/public/locales/ta/translation.json index f3e1f835..9b5a5af9 100644 --- a/apps/readest-app/public/locales/ta/translation.json +++ b/apps/readest-app/public/locales/ta/translation.json @@ -609,5 +609,6 @@ "Contain": "அடங்கும்", "{{number}} pages left in chapter": "அத்தியாயத்தில் {{number}} பக்கங்கள் மீதமுள்ளன", "Device": "சாதனம்", - "E-Ink Mode": "E-Ink முறை" + "E-Ink Mode": "E-Ink முறை", + "Highlight Colors": "முத்திரை நிறங்கள்" } diff --git a/apps/readest-app/public/locales/th/translation.json b/apps/readest-app/public/locales/th/translation.json index a0356462..20928762 100644 --- a/apps/readest-app/public/locales/th/translation.json +++ b/apps/readest-app/public/locales/th/translation.json @@ -605,5 +605,6 @@ "Contain": "บรรจุ", "{{number}} pages left in chapter": "เหลือ {{number}} หน้าในบท", "Device": "อุปกรณ์", - "E-Ink Mode": "โหมด E-Ink" + "E-Ink Mode": "โหมด E-Ink", + "Highlight Colors": "สีไฮไลต์" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index 21162cfa..704eb592 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -609,5 +609,6 @@ "Contain": "İçerir", "{{number}} pages left in chapter": "Bu bölümde {{number}} sayfa kaldı", "Device": "Cihaz", - "E-Ink Mode": "E-Ink Modu" + "E-Ink Mode": "E-Ink Modu", + "Highlight Colors": "Vurgu Renkleri" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 7adbcaf9..648fd943 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -617,5 +617,6 @@ "Contain": "Вміщати", "{{number}} pages left in chapter": "Залишилось {{number}} сторінок у розділі", "Device": "Пристрій", - "E-Ink Mode": "E-Ink режим" + "E-Ink Mode": "E-Ink режим", + "Highlight Colors": "Кольори виділення" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index bfa5df9b..cb5a0741 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -605,5 +605,6 @@ "Contain": "Chứa", "{{number}} pages left in chapter": "Còn {{number}} trang trong chương", "Device": "Thiết bị", - "E-Ink Mode": "Chế độ E-Ink" + "E-Ink Mode": "Chế độ E-Ink", + "Highlight Colors": "Màu nổi bật" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index 20175cad..804e7908 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -605,5 +605,6 @@ "Contain": "适应", "{{number}} pages left in chapter": "本章剩余{{number}}页", "Device": "设备", - "E-Ink Mode": "E-Ink 模式" + "E-Ink Mode": "E-Ink 模式", + "Highlight Colors": "高亮颜色" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index b67aa3c7..45675dda 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -605,5 +605,6 @@ "Contain": "適應", "{{number}} pages left in chapter": "本章剩餘{{number}}頁", "Device": "設備", - "E-Ink Mode": "E-Ink 模式" + "E-Ink Mode": "E-Ink 模式", + "Highlight Colors": "高亮顏色" } diff --git a/apps/readest-app/src/app/reader/components/annotator/HighlightOptions.tsx b/apps/readest-app/src/app/reader/components/annotator/HighlightOptions.tsx index f3c8e13f..17f09f66 100644 --- a/apps/readest-app/src/app/reader/components/annotator/HighlightOptions.tsx +++ b/apps/readest-app/src/app/reader/components/annotator/HighlightOptions.tsx @@ -4,7 +4,6 @@ import { FaCheckCircle } from 'react-icons/fa'; import { HighlightColor, HighlightStyle } from '@/types/book'; import { useSettingsStore } from '@/store/settingsStore'; import { useResponsiveSize } from '@/hooks/useResponsiveSize'; -import { DEFAULT_CUSTOM_HIGHLIGHT_COLORS } from '@/services/constants'; const styles = ['highlight', 'underline', 'squiggly'] as HighlightStyle[]; const colors = ['red', 'violet', 'blue', 'green', 'yellow'] as HighlightColor[]; @@ -26,7 +25,7 @@ const HighlightOptions: React.FC = ({ }) => { const { settings, setSettings } = useSettingsStore(); const globalReadSettings = settings.globalReadSettings; - const customColors = globalReadSettings.customHighlightColors || DEFAULT_CUSTOM_HIGHLIGHT_COLORS; + const customColors = globalReadSettings.customHighlightColors; const [selectedStyle, setSelectedStyle] = React.useState(_selectedStyle); const [selectedColor, setSelectedColor] = React.useState(_selectedColor); const size16 = useResponsiveSize(16); @@ -67,24 +66,27 @@ const HighlightOptions: React.FC = ({ style={{ width: size28, height: size28, minHeight: size28 }} >
@@ -105,10 +107,10 @@ const HighlightOptions: React.FC = ({
-

{_('Custom Highlight Colors')}

-
+

{_('Highlight Colors')}

+
- {(['red', 'violet', 'blue', 'green', 'yellow'] as HighlightColor[]).map((color, index, array) => { - const position = index === 0 ? 'left' : index === array.length - 1 ? 'right' : 'center'; - return ( -
-
- { - customHighlightColors[color] = value; - setCustomHighlightColors({ ...customHighlightColors }); - settings.globalReadSettings.customHighlightColors = customHighlightColors; - setSettings(settings); - }} - /> -
- ); - })} + {(['red', 'violet', 'blue', 'green', 'yellow'] as HighlightColor[]).map( + (color, index, array) => { + const position = + index === 0 ? 'left' : index === array.length - 1 ? 'right' : 'center'; + return ( +
+
+ { + customHighlightColors[color] = value; + setCustomHighlightColors({ ...customHighlightColors }); + settings.globalReadSettings.customHighlightColors = + customHighlightColors; + setSettings(settings); + }} + /> +
+ ); + }, + )}
diff --git a/apps/readest-app/src/services/constants.ts b/apps/readest-app/src/services/constants.ts index 42ed6915..c699a264 100644 --- a/apps/readest-app/src/services/constants.ts +++ b/apps/readest-app/src/services/constants.ts @@ -78,12 +78,12 @@ export const DEFAULT_SYSTEM_SETTINGS: Partial = { lastSyncedAtNotes: 0, }; -export const DEFAULT_CUSTOM_HIGHLIGHT_COLORS: Record = { - red: '#fca5a5', // red-300 - yellow: '#fde047', // yellow-300 - green: '#86efac', // green-300 - blue: '#93c5fd', // blue-300 - violet: '#c4b5fd', // violet-300 +export const HIGHLIGHT_COLOR_HEX: Record = { + red: '#f87171', // red-400 + yellow: '#facc15', // yellow-400 + green: '#4ade80', // green-400 + blue: '#60a5fa', // blue-400 + violet: '#a78bfa', // violet-400 }; export const DEFAULT_READSETTINGS: ReadSettings = { @@ -102,7 +102,7 @@ export const DEFAULT_READSETTINGS: ReadSettings = { underline: 'green', squiggly: 'blue', }, - customHighlightColors: DEFAULT_CUSTOM_HIGHLIGHT_COLORS, + customHighlightColors: HIGHLIGHT_COLOR_HEX, }; export const DEFAULT_MOBILE_READSETTINGS: Partial = { @@ -617,14 +617,6 @@ export const DOUBLE_CLICK_INTERVAL_THRESHOLD_MS = 250; export const DISABLE_DOUBLE_CLICK_ON_MOBILE = true; export const LONG_HOLD_THRESHOLD = 500; -export const HIGHLIGHT_COLOR_HEX: Record = { - red: '#f87171', // red-400 - yellow: '#facc15', // yellow-400 - green: '#4ade80', // green-400 - blue: '#60a5fa', // blue-400 - violet: '#a78bfa', // violet-400 -}; - export const CUSTOM_THEME_TEMPLATES = [ { light: {