diff --git a/apps/readest-app/public/locales/ar/translation.json b/apps/readest-app/public/locales/ar/translation.json index ca1b9bc7..1f162c0a 100644 --- a/apps/readest-app/public/locales/ar/translation.json +++ b/apps/readest-app/public/locales/ar/translation.json @@ -42,8 +42,6 @@ "Global Settings": "الإعدادات العامة", "Go Back": "العودة", "Go Forward": "التقدم", - "Go Left": "الذهاب لليسار", - "Go Right": "الذهاب لليمين", "Grass": "عشبي", "Gray": "رمادي", "Gruvbox": "چروفبوكس", @@ -310,5 +308,9 @@ "File Size:": "حجم الملف:", "Auto Detect": "الكشف التلقائي", "Touch": "اللمس", - "Scrolling Overlap (px)": "تداخل التمرير (بكسل)" + "Scrolling Overlap (px)": "تداخل التمرير (بكسل)", + "Next Section": "القسم التالي", + "Previous Section": "القسم السابق", + "Next Page": "الصفحة التالية", + "Previous Page": "الصفحة السابقة" } diff --git a/apps/readest-app/public/locales/de/translation.json b/apps/readest-app/public/locales/de/translation.json index c30cbdab..89cc2efd 100644 --- a/apps/readest-app/public/locales/de/translation.json +++ b/apps/readest-app/public/locales/de/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Globale Einstellungen", "Go Back": "Zurück", "Go Forward": "Vorwärts", - "Go Left": "Nach links", - "Go Right": "Nach rechts", "Grass": "Grasgrün", "Gray": "Grau", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Dateigröße:", "Auto Detect": "Automatisch erkennen", "Touch": "Berührung", - "Scrolling Overlap (px)": "Scroll-Überlappung (px)" + "Scrolling Overlap (px)": "Scroll-Überlappung (px)", + "Next Section": "Nächster Abschnitt", + "Previous Section": "Vorheriger Abschnitt", + "Next Page": "Nächste Seite", + "Previous Page": "Vorherige Seite" } diff --git a/apps/readest-app/public/locales/el/translation.json b/apps/readest-app/public/locales/el/translation.json index 4b3a0925..cbc3eded 100644 --- a/apps/readest-app/public/locales/el/translation.json +++ b/apps/readest-app/public/locales/el/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Γενικές ρυθμίσεις", "Go Back": "Πίσω", "Go Forward": "Μπροστά", - "Go Left": "Αριστερά", - "Go Right": "Δεξιά", "Grass": "Γρασίδι", "Gray": "Γκρι", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Μέγεθος αρχείου:", "Auto Detect": "Αυτόματη ανίχνευση", "Touch": "Αφή", - "Scrolling Overlap (px)": "Επικάλυψη κύλισης (px)" + "Scrolling Overlap (px)": "Επικάλυψη κύλισης (px)", + "Next Section": "Επόμενη ενότητα", + "Previous Section": "Προηγούμενη ενότητα", + "Next Page": "Επόμενη σελίδα", + "Previous Page": "Προηγούμενη σελίδα" } diff --git a/apps/readest-app/public/locales/es/translation.json b/apps/readest-app/public/locales/es/translation.json index 17bfb6b1..d223e6ea 100644 --- a/apps/readest-app/public/locales/es/translation.json +++ b/apps/readest-app/public/locales/es/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Configuración global", "Go Back": "Volver", "Go Forward": "Avanzar", - "Go Left": "Ir a la izquierda", - "Go Right": "Ir a la derecha", "Grass": "Hierba", "Gray": "Gris", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Peso del archivo:", "Auto Detect": "Detección automática", "Touch": "Toque", - "Scrolling Overlap (px)": "Superposición de desplazamiento (px)" + "Scrolling Overlap (px)": "Superposición de desplazamiento (px)", + "Next Section": "Siguiente sección", + "Previous Section": "Sección anterior", + "Next Page": "Página siguiente", + "Previous Page": "Página anterior" } diff --git a/apps/readest-app/public/locales/fr/translation.json b/apps/readest-app/public/locales/fr/translation.json index 772b706b..c72cde11 100644 --- a/apps/readest-app/public/locales/fr/translation.json +++ b/apps/readest-app/public/locales/fr/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Paramètres globaux", "Go Back": "Retour", "Go Forward": "Avancer", - "Go Left": "Aller à gauche", - "Go Right": "Aller à droite", "Grass": "Herbe", "Gray": "Gris", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Taille du fichier :", "Auto Detect": "Détection automatique", "Touch": "Touch", - "Scrolling Overlap (px)": "Chevauchement de défilement (px)" + "Scrolling Overlap (px)": "Chevauchement de défilement (px)", + "Next Section": "Section suivante", + "Previous Section": "Section précédente", + "Next Page": "Page suivante", + "Previous Page": "Page précédente" } diff --git a/apps/readest-app/public/locales/hi/translation.json b/apps/readest-app/public/locales/hi/translation.json index 9029edcd..ec357724 100644 --- a/apps/readest-app/public/locales/hi/translation.json +++ b/apps/readest-app/public/locales/hi/translation.json @@ -42,8 +42,6 @@ "Global Settings": "वैश्विक सेटिंग्स", "Go Back": "वापस जाएं", "Go Forward": "आगे जाएं", - "Go Left": "बाएं जाएं", - "Go Right": "दाएं जाएं", "Grass": "घास", "Gray": "ग्रे", "Gruvbox": "ग्रूवबॉक्स", @@ -310,5 +308,9 @@ "File Size:": "फ़ाइल आकार:", "Auto Detect": "स्वचालित पहचान", "Touch": "स्पर्श", - "Scrolling Overlap (px)": "स्क्रॉलिंग ओवरलैप (px)" + "Scrolling Overlap (px)": "स्क्रॉलिंग ओवरलैप (px)", + "Next Section": "अगला अनुभाग", + "Previous Section": "पिछला अनुभाग", + "Next Page": "अगला पृष्ठ", + "Previous Page": "पिछला पृष्ठ" } diff --git a/apps/readest-app/public/locales/id/translation.json b/apps/readest-app/public/locales/id/translation.json index 0042e9d6..2ca3e9e3 100644 --- a/apps/readest-app/public/locales/id/translation.json +++ b/apps/readest-app/public/locales/id/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Pengaturan Global", "Go Back": "Kembali", "Go Forward": "Maju", - "Go Left": "Ke Kiri", - "Go Right": "Ke Kanan", "Grass": "Rumput", "Gray": "Abu-abu", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Ukuran File:", "Auto Detect": "Deteksi Otomatis", "Touch": "Sentuh", - "Scrolling Overlap (px)": "Overlapping Gulir (px)" + "Scrolling Overlap (px)": "Overlapping Gulir (px)", + "Next Section": "Bagian Selanjutnya", + "Previous Section": "Bagian Sebelumnya", + "Next Page": "Halaman Berikutnya", + "Previous Page": "Halaman Sebelumnya" } diff --git a/apps/readest-app/public/locales/it/translation.json b/apps/readest-app/public/locales/it/translation.json index e550fcc0..33ab811e 100644 --- a/apps/readest-app/public/locales/it/translation.json +++ b/apps/readest-app/public/locales/it/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Impostazioni globali", "Go Back": "Indietro", "Go Forward": "Avanti", - "Go Left": "Vai a sinistra", - "Go Right": "Vai a destra", "Grass": "Erba", "Gray": "Grigio", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Dimensione file:", "Auto Detect": "Rilevamento automatico", "Touch": "Touch", - "Scrolling Overlap (px)": "Overlap scorrimento (px)" + "Scrolling Overlap (px)": "Overlap scorrimento (px)", + "Next Section": "Sezione successiva", + "Previous Section": "Sezione precedente", + "Next Page": "Pagina successiva", + "Previous Page": "Pagina precedente" } diff --git a/apps/readest-app/public/locales/ja/translation.json b/apps/readest-app/public/locales/ja/translation.json index 9b6ab3d7..7210de69 100644 --- a/apps/readest-app/public/locales/ja/translation.json +++ b/apps/readest-app/public/locales/ja/translation.json @@ -42,8 +42,6 @@ "Global Settings": "全体設定", "Go Back": "戻る", "Go Forward": "進む", - "Go Left": "左へ", - "Go Right": "右へ", "Grass": "グリーン", "Gray": "グレー", "Gruvbox": "グルーブボックス", @@ -310,5 +308,9 @@ "File Size:": "ファイルサイズ:", "Auto Detect": "自動検出", "Touch": "タッチ", - "Scrolling Overlap (px)": "スクロール重複(px)" + "Scrolling Overlap (px)": "スクロール重複(px)", + "Next Section": "次のセクション", + "Previous Section": "前のセクション", + "Next Page": "次のページ", + "Previous Page": "前のページ" } diff --git a/apps/readest-app/public/locales/ko/translation.json b/apps/readest-app/public/locales/ko/translation.json index f6447329..78972013 100644 --- a/apps/readest-app/public/locales/ko/translation.json +++ b/apps/readest-app/public/locales/ko/translation.json @@ -42,8 +42,6 @@ "Global Settings": "전역 설정", "Go Back": "뒤로", "Go Forward": "앞으로", - "Go Left": "왼쪽으로", - "Go Right": "오른쪽으로", "Grass": "잔디색", "Gray": "회색", "Gruvbox": "그러브박스", @@ -310,5 +308,9 @@ "File Size:": "파일 크기:", "Auto Detect": "자동 감지", "Touch": "터치", - "Scrolling Overlap (px)": "스크롤 겹침 (px)" + "Scrolling Overlap (px)": "스크롤 겹침 (px)", + "Next Section": "다음 섹션", + "Previous Section": "이전 섹션", + "Next Page": "다음 페이지", + "Previous Page": "이전 페이지" } diff --git a/apps/readest-app/public/locales/nl/translation.json b/apps/readest-app/public/locales/nl/translation.json index 5702ca67..4c682d4c 100644 --- a/apps/readest-app/public/locales/nl/translation.json +++ b/apps/readest-app/public/locales/nl/translation.json @@ -123,8 +123,6 @@ "Translated Text": "Vertaalde tekst", "Loading...": "Laden...", "Bookmark": "Bladwijzer", - "Go Right": "Naar rechts", - "Go Left": "Naar links", "Go Forward": "Vooruit", "Small": "Klein", "Large": "Groot", @@ -310,5 +308,9 @@ "Don’t have an account? Sign up": "Nog geen account? Registreer u", "All the world's a stage,\nAnd all the men and women merely players;\nThey have their exits and their entrances,\nAnd one man in his time plays many parts,\nHis acts being seven ages.\n\n— William Shakespeare": "De hele wereld is een toneel,\nEn alle mannen en vrouwen slechts spelers;\nZij hebben hun uitgangen en hun entrees,\nEn één man speelt in zijn tijd vele rollen,\nZijn daden zijnde zeven leeftijden.\n\n— William Shakespeare", "Touch": "Raak", - "Scrolling Overlap (px)": "Scroll-overlap (px)" + "Scrolling Overlap (px)": "Scroll-overlap (px)", + "Next Section": "Volgende sectie", + "Previous Section": "Vorige sectie", + "Next Page": "Volgende pagina", + "Previous Page": "Vorige pagina" } diff --git a/apps/readest-app/public/locales/pl/translation.json b/apps/readest-app/public/locales/pl/translation.json index d66ee768..35029be0 100644 --- a/apps/readest-app/public/locales/pl/translation.json +++ b/apps/readest-app/public/locales/pl/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Ustawienia globalne", "Go Back": "Wstecz", "Go Forward": "Dalej", - "Go Left": "W lewo", - "Go Right": "W prawo", "Grass": "Trawiasty", "Gray": "Szary", "Gruvbox": "Ciepły pomarańczowy", @@ -310,5 +308,9 @@ "File Size:": "Rozmiar pliku:", "Auto Detect": "Automatyczne wykrywanie", "Touch": "Dotyk", - "Scrolling Overlap (px)": "Nakładanie przewijania (px)" + "Scrolling Overlap (px)": "Nakładanie przewijania (px)", + "Next Section": "Następna sekcja", + "Previous Section": "Poprzednia sekcja", + "Next Page": "Następna strona", + "Previous Page": "Poprzednia strona" } diff --git a/apps/readest-app/public/locales/pt/translation.json b/apps/readest-app/public/locales/pt/translation.json index 2ef03300..5a93d4da 100644 --- a/apps/readest-app/public/locales/pt/translation.json +++ b/apps/readest-app/public/locales/pt/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Configurações Globais", "Go Back": "Voltar", "Go Forward": "Avançar", - "Go Left": "Ir para Esquerda", - "Go Right": "Ir para Direita", "Grass": "Grama", "Gray": "Cinza", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Tamanho do arquivo:", "Auto Detect": "Detectar Automaticamente", "Touch": "Toque", - "Scrolling Overlap (px)": "Sobreposição de Rolagem (px)" + "Scrolling Overlap (px)": "Sobreposição de Rolagem (px)", + "Next Section": "Próxima seção", + "Previous Section": "Seção anterior", + "Next Page": "Próxima página", + "Previous Page": "Página anterior" } diff --git a/apps/readest-app/public/locales/ru/translation.json b/apps/readest-app/public/locales/ru/translation.json index 7c2d05a3..6961e67f 100644 --- a/apps/readest-app/public/locales/ru/translation.json +++ b/apps/readest-app/public/locales/ru/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Общие настройки", "Go Back": "Назад", "Go Forward": "Вперёд", - "Go Left": "Влево", - "Go Right": "Вправо", "Grass": "Трава", "Gray": "Серый", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Размер файла:", "Auto Detect": "Автоопределение", "Touch": "Сенсорный экран", - "Scrolling Overlap (px)": "Перекрытие прокрутки (px)" + "Scrolling Overlap (px)": "Перекрытие прокрутки (px)", + "Next Section": "Следующий раздел", + "Previous Section": "Предыдущий раздел", + "Next Page": "Следующая страница", + "Previous Page": "Предыдущая страница" } diff --git a/apps/readest-app/public/locales/tr/translation.json b/apps/readest-app/public/locales/tr/translation.json index eb87e054..58c497c0 100644 --- a/apps/readest-app/public/locales/tr/translation.json +++ b/apps/readest-app/public/locales/tr/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Genel Ayarlar", "Go Back": "Geri Git", "Go Forward": "İleri Git", - "Go Left": "Sola Git", - "Go Right": "Sağa Git", "Grass": "Çimen", "Gray": "Gri", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Dosya Boyutu:", "Auto Detect": "Algıla", "Touch": "Dokunmatik", - "Scrolling Overlap (px)": "Kaydırma Üst Üste Binen (px)" + "Scrolling Overlap (px)": "Kaydırma Üst Üste Binen (px)", + "Next Section": "Sonraki Bölüm", + "Previous Section": "Önceki Bölüm", + "Next Page": "Sonraki Sayfa", + "Previous Page": "Önceki Sayfa" } diff --git a/apps/readest-app/public/locales/uk/translation.json b/apps/readest-app/public/locales/uk/translation.json index 021e35df..08d8cc97 100644 --- a/apps/readest-app/public/locales/uk/translation.json +++ b/apps/readest-app/public/locales/uk/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Глобальні налаштування", "Go Back": "Назад", "Go Forward": "Вперед", - "Go Left": "Вліво", - "Go Right": "Вправо", "Grass": "Трав'яний", "Gray": "Сірий", "Gruvbox": "Теплий помаранчевий", @@ -310,5 +308,9 @@ "File Size:": "Розмір файлу:", "Auto Detect": "Авто виявлення", "Touch": "Дотик", - "Scrolling Overlap (px)": "Прокрутка перекриття (px)" + "Scrolling Overlap (px)": "Прокрутка перекриття (px)", + "Next Section": "Наступний розділ", + "Previous Section": "Попередній розділ", + "Next Page": "Наступна сторінка", + "Previous Page": "Попередня сторінка" } diff --git a/apps/readest-app/public/locales/vi/translation.json b/apps/readest-app/public/locales/vi/translation.json index 48a73648..f5818c76 100644 --- a/apps/readest-app/public/locales/vi/translation.json +++ b/apps/readest-app/public/locales/vi/translation.json @@ -42,8 +42,6 @@ "Global Settings": "Cài đặt chung", "Go Back": "Quay lại", "Go Forward": "Tiến tới", - "Go Left": "Sang trái", - "Go Right": "Sang phải", "Grass": "Xanh cỏ", "Gray": "Xám", "Gruvbox": "Gruvbox", @@ -310,5 +308,9 @@ "File Size:": "Kích thước tệp:", "Auto Detect": "Phát hiện tự động", "Touch": "Chạm", - "Scrolling Overlap (px)": "Chồng chéo cuộn (px)" + "Scrolling Overlap (px)": "Chồng chéo cuộn (px)", + "Next Section": "Phần tiếp theo", + "Previous Section": "Phần trước", + "Next Page": "Trang tiếp theo", + "Previous Page": "Trang trước" } diff --git a/apps/readest-app/public/locales/zh-CN/translation.json b/apps/readest-app/public/locales/zh-CN/translation.json index 12ff9d2e..17c73bc7 100644 --- a/apps/readest-app/public/locales/zh-CN/translation.json +++ b/apps/readest-app/public/locales/zh-CN/translation.json @@ -42,8 +42,6 @@ "Global Settings": "全局设置", "Go Back": "返回", "Go Forward": "前进", - "Go Left": "向左", - "Go Right": "向右", "Grass": "青草", "Gray": "素雅", "Gruvbox": "暖橘", @@ -310,5 +308,9 @@ "File Size:": "文件大小", "Auto Detect": "自动检测", "Touch": "触控", - "Scrolling Overlap (px)": "滚动重叠(px)" + "Scrolling Overlap (px)": "滚动重叠(px)", + "Next Section": "下一章", + "Previous Section": "上一章", + "Next Page": "下一页", + "Previous Page": "上一页" } diff --git a/apps/readest-app/public/locales/zh-TW/translation.json b/apps/readest-app/public/locales/zh-TW/translation.json index c30f1586..4647c3d1 100644 --- a/apps/readest-app/public/locales/zh-TW/translation.json +++ b/apps/readest-app/public/locales/zh-TW/translation.json @@ -42,8 +42,6 @@ "Global Settings": "全局設置", "Go Back": "返回", "Go Forward": "前進", - "Go Left": "向左", - "Go Right": "向右", "Grass": "青草", "Gray": "素雅", "Gruvbox": "暖橘", @@ -310,5 +308,9 @@ "File Size:": "檔案大小", "Auto Detect": "自動檢測", "Touch": "觸控", - "Scrolling Overlap (px)": "滾動重疊(px)" + "Scrolling Overlap (px)": "滾動重疊(px)", + "Next Section": "下一章", + "Previous Section": "上一章", + "Next Page": "下一頁", + "Previous Page": "上一頁" } diff --git a/apps/readest-app/src/app/reader/components/FooterBar.tsx b/apps/readest-app/src/app/reader/components/FooterBar.tsx index 8eab41c2..ddd9028e 100644 --- a/apps/readest-app/src/app/reader/components/FooterBar.tsx +++ b/apps/readest-app/src/app/reader/components/FooterBar.tsx @@ -1,7 +1,8 @@ import React, { useEffect } from 'react'; import clsx from 'clsx'; -import { RiArrowLeftWideLine, RiArrowRightWideLine } from 'react-icons/ri'; +import { RiArrowLeftSLine, RiArrowRightSLine } from 'react-icons/ri'; import { RiArrowGoBackLine, RiArrowGoForwardLine } from 'react-icons/ri'; +import { RiArrowLeftDoubleLine, RiArrowRightDoubleLine } from 'react-icons/ri'; import { FaHeadphones } from 'react-icons/fa6'; import { IoIosList as TOCIcon } from 'react-icons/io'; import { PiNotePencil as NoteIcon } from 'react-icons/pi'; @@ -77,14 +78,26 @@ const FooterBar: React.FC = ({ saveViewSettings(envConfig, bookKey, 'lineHeight', value / 10); }; - const handleGoPrev = () => { + const handleGoPrevPage = () => { viewPagination(view, viewSettings, 'left'); }; - const handleGoNext = () => { + const handleGoNextPage = () => { viewPagination(view, viewSettings, 'right'); }; + const handleGoPrevSection = () => { + if (view?.renderer.prevSection) { + view?.renderer.prevSection(); + } + }; + + const handleGoNextSection = () => { + if (view?.renderer.nextSection) { + view?.renderer.nextSection(); + } + }; + const handleGoBack = () => { view?.history.back(); }; @@ -174,7 +187,7 @@ const FooterBar: React.FC = ({ {/* Mobile footer bar */}
= ({ : '64px', }} > -
= ({ {/* Desktop footer bar */}
diff --git a/apps/readest-app/src/components/Slider.tsx b/apps/readest-app/src/components/Slider.tsx index ee7f7d41..60c96c67 100644 --- a/apps/readest-app/src/components/Slider.tsx +++ b/apps/readest-app/src/components/Slider.tsx @@ -65,7 +65,7 @@ const Slider: React.FC = ({ return (
diff --git a/apps/readest-app/src/types/view.ts b/apps/readest-app/src/types/view.ts index 92621ebf..dd6f1486 100644 --- a/apps/readest-app/src/types/view.ts +++ b/apps/readest-app/src/types/view.ts @@ -45,6 +45,8 @@ export interface FoliateView extends HTMLElement { removeAttribute: (name: string) => void; next: () => Promise; prev: () => Promise; + nextSection?: () => Promise; + prevSection?: () => Promise; goTo?: (params: { index: number; anchor: number }) => void; setStyles?: (css: string) => void; getContents: () => { doc: Document; index?: number }[];