diff options
| author | 2022-02-04 15:44:23 +0100 | |
|---|---|---|
| committer | 2022-02-04 15:44:23 +0100 | |
| commit | 8698a0da165c842f20fc0feac9cd79ffddc28662 (patch) | |
| tree | d5d527c5eebb34e6ede123c32af79cc9710e31e7 | |
| parent | 5a891dc0e4d1e5c7d36609bba4bd3df5063b9745 (diff) | |
Improvement: Configuration; Reading Section: Options reordered (#4087)
* Reordering - First Draft
* i18n
* Update conf.php
* Update conf.php
* fixed label for attribute
| -rw-r--r-- | app/i18n/cz/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/de/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/en-us/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/en/conf.php | 7 | ||||
| -rwxr-xr-x | app/i18n/es/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/fr/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/he/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/it/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/ja/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/ko/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/nl/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/oc/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/pl/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/pt-br/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/ru/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/sk/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/tr/conf.php | 7 | ||||
| -rw-r--r-- | app/i18n/zh-cn/conf.php | 7 | ||||
| -rw-r--r-- | app/views/configure/reading.phtml | 442 |
19 files changed, 367 insertions, 201 deletions
diff --git a/app/i18n/cz/conf.php b/app/i18n/cz/conf.php index c1c46fb7c..f25382a3d 100644 --- a/app/i18n/cz/conf.php +++ b/app/i18n/cz/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Zobrazit potvrzovací dialové okno pro akce „označit vše jako přečtené“', 'display_articles_unfolded' => 'Ve výchozím nastavení zobrazovat články rozbalené', 'display_categories_unfolded' => 'Kategorii, které rozbalovat', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Skrýt kategorie a kanály bez nepřečtených článků (nefunguje s nastavením „Zobrazit všechny články“)', 'img_with_lazyload' => 'Použít režim „líné načítání“ pro načítaní obrázků', 'jump_next' => 'skočit na další nepřečtenou položku na stejné úrovni (kanál nebo kategorie)', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index 0277dcba6..bc1fdc14f 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Bei der Aktion „Alle als gelesen markieren“ einen Bestätigungsdialog anzeigen', 'display_articles_unfolded' => 'Artikel standardmäßig ausgeklappt zeigen', 'display_categories_unfolded' => 'Ausgeklappte Kategorien', + 'headline' => array( + 'articles' => 'Artikel: Öffnen/Schließen', + 'categories' => 'Linke Navigation: Kategorien', + 'mark_as_read' => 'Artikel als gelesen markieren', + 'misc' => 'Sonstiges', + 'view' => 'Ansicht', + ), 'hide_read_feeds' => 'Kategorien & Feeds ohne ungelesene Artikel verstecken (funktioniert nicht mit der Einstellung „Alle Artikel zeigen“)', 'img_with_lazyload' => 'Verwende die "träges Laden"-Methode zum Laden von Bildern', 'jump_next' => 'springe zum nächsten ungelesenen Geschwisterelement (Feed oder Kategorie)', diff --git a/app/i18n/en-us/conf.php b/app/i18n/en-us/conf.php index ddd9ed278..de51f5881 100644 --- a/app/i18n/en-us/conf.php +++ b/app/i18n/en-us/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions', // IGNORE 'display_articles_unfolded' => 'Show articles unfolded by default', // IGNORE 'display_categories_unfolded' => 'Categories to unfold', // IGNORE + 'headline' => array( + 'articles' => 'Articles: Open/Close', // IGNORE + 'categories' => 'Left navigation: Categories', // IGNORE + 'mark_as_read' => 'Mark article as read', // IGNORE + 'misc' => 'Miscellaneous', // IGNORE + 'view' => 'View', // IGNORE + ), 'hide_read_feeds' => 'Hide categories & feeds with no unread articles (does not work with “Show all articles” configuration)', // IGNORE 'img_with_lazyload' => 'Use "lazy load" mode to load pictures', // IGNORE 'jump_next' => 'jump to next unread sibling (feed or category)', // IGNORE diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index 9dfba080e..2bbceafca 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions', 'display_articles_unfolded' => 'Show articles unfolded by default', 'display_categories_unfolded' => 'Categories to unfold', + 'headline' => array( + 'articles' => 'Articles: Open/Close', + 'categories' => 'Left navigation: Categories', + 'mark_as_read' => 'Mark article as read', + 'misc' => 'Miscellaneous', + 'view' => 'View', + ), 'hide_read_feeds' => 'Hide categories & feeds with no unread articles (does not work with “Show all articles” configuration)', 'img_with_lazyload' => 'Use "lazy load" mode to load pictures', 'jump_next' => 'jump to next unread sibling (feed or category)', diff --git a/app/i18n/es/conf.php b/app/i18n/es/conf.php index bb453a9d1..d5b25469d 100755 --- a/app/i18n/es/conf.php +++ b/app/i18n/es/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Mostrar ventana de confirmación al usar la función “marcar todos como leídos”', 'display_articles_unfolded' => 'Mostrar los artículos expandidos por defecto', 'display_categories_unfolded' => 'Categorías a desarrollar', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Ocultar categorías & fuentes sin artículos no leídos (no funciona con la configuración "Mostrar todos los artículos")', 'img_with_lazyload' => 'Usar el modo de "carga perezosa" para las imágenes', 'jump_next' => 'saltar al siguiente archivo sin leer emparentado (fuente o categoría)', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index 7ef87d343..eec838b79 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Afficher une confirmation lors des actions “marquer tout comme lu”', 'display_articles_unfolded' => 'Afficher les articles dépliés par défaut', 'display_categories_unfolded' => 'Catégories à déplier', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Cacher les catégories & flux sans article non-lu (ne fonctionne pas avec la configuration “Afficher tous les articles”)', 'img_with_lazyload' => 'Utiliser le mode “chargement différé” pour les images', 'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)', diff --git a/app/i18n/he/conf.php b/app/i18n/he/conf.php index 62be3af7e..62dca4b11 100644 --- a/app/i18n/he/conf.php +++ b/app/i18n/he/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'הצגת דו-שיח לאישור “סימון הכל כנקרא” ', 'display_articles_unfolded' => 'הצגת מאמרים בשלמותם כברירת מחדל', 'display_categories_unfolded' => 'Categories to unfold', // TODO + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'הסתרת קטגוריות & הזנות ללא מאמרים שלא נקראו (לא עובד יחד עם “הצגת כל המאמרים”)', 'img_with_lazyload' => 'שימוש ב "טעינה עצלה" על מנת לטעון תמונות', 'jump_next' => 'קפיצה לפריט הבא שלא נקרא (הזנה או קטגוריה)', diff --git a/app/i18n/it/conf.php b/app/i18n/it/conf.php index 16fd868bc..a9fc1a6d8 100644 --- a/app/i18n/it/conf.php +++ b/app/i18n/it/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Mostra una conferma per “segna tutto come letto”', 'display_articles_unfolded' => 'Mostra articoli aperti di predefinito', 'display_categories_unfolded' => 'Categories to unfold', // TODO + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Nascondi categorie e feeds con articoli già letti (non funziona se “Mostra tutti gli articoli” è selezionato)', 'img_with_lazyload' => 'Usa la modalità "caricamento ritardato" per le immagini', 'jump_next' => 'Salta al successivo feed o categoria non letto', diff --git a/app/i18n/ja/conf.php b/app/i18n/ja/conf.php index 8d845ef0c..113d385dd 100644 --- a/app/i18n/ja/conf.php +++ b/app/i18n/ja/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => '“すべてに既読を付ける” を押したとき確認ダイアログを表示する', 'display_articles_unfolded' => 'デフォルトでフォルダーに入れてない記事を表示する', 'display_categories_unfolded' => '展開されていない記事', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'カテゴリーを非表示 & 未読の記事がないフィード ("すべてに既読を付ける”では適用しません)', 'img_with_lazyload' => '"lazy load"を写真の読み込み時に使う', 'jump_next' => '次の未読の姉妹記事へ移る (フィードあるいはカテゴリー)', diff --git a/app/i18n/ko/conf.php b/app/i18n/ko/conf.php index 12a14a020..1c9674d3c 100644 --- a/app/i18n/ko/conf.php +++ b/app/i18n/ko/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => '“모두 읽음으로 표시” 실행시 확인 창 표시', 'display_articles_unfolded' => '글을 펼쳐진 상태로 보여주기', 'display_categories_unfolded' => '다음 카테고리를 펼치기', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => '읽지 않은 글이 없는 카테고리와 피드 감추기 (“모든 글 표시”가 설정된 경우 동작하지 않습니다)', 'img_with_lazyload' => '그림을 불러오는 데에 "lazy load" 모드 사용하기', 'jump_next' => '다음 읽지 않은 항목으로 이동 (피드 또는 카테고리)', diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php index 14f23c701..6e266c350 100644 --- a/app/i18n/nl/conf.php +++ b/app/i18n/nl/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Toon een bevestigings dialoog op “markeer alles als gelezen” acties', 'display_articles_unfolded' => 'Artikelen standaard uitklappen', 'display_categories_unfolded' => 'Categoriën om uit te klappen', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Categorieën en feeds zonder ongelezen artikelen verbergen (werkt niet met “Toon alle artikelen” configuratie)', 'img_with_lazyload' => 'Gebruik "lazy load" methode om afbeeldingen te laden', 'jump_next' => 'Ga naar volgende ongelezen (feed of categorie)', diff --git a/app/i18n/oc/conf.php b/app/i18n/oc/conf.php index 9c32a45f6..28f11798a 100644 --- a/app/i18n/oc/conf.php +++ b/app/i18n/oc/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Mostrar una confirmacion per las accions del tipe « o marcar tot coma legit »', 'display_articles_unfolded' => 'Mostrar los articles desplegats per defaut', 'display_categories_unfolded' => 'Categorias a desplegar', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Rescondre las categorias & fluxes sens articles pas legits (fonciona pas amb la configuracion « Mostrar totes los articles »)', 'img_with_lazyload' => 'Utilizar lo mòde “cargament tardiu” pels imatges', 'jump_next' => 'sautar al vesin venent pas legit (flux o categoria)', diff --git a/app/i18n/pl/conf.php b/app/i18n/pl/conf.php index edbf2ac32..4c5dd0646 100644 --- a/app/i18n/pl/conf.php +++ b/app/i18n/pl/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Pytaj o potwierdzenie przed oznaczeniem wszystkich wiadomości jako przeczytane.', 'display_articles_unfolded' => 'Domyślnie wyświetlaj rozwinięte wiadomości', 'display_categories_unfolded' => 'Kategorie do rozwinięcia', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Ukryj kategorie i kanały nie zawierające nieprzeczytanych wiadomości (nie działa gdy włączone jest wyświetlanie wszystkich wiadomości)', 'img_with_lazyload' => 'Opóźnij ładowanie obrazów dopóki nie będą widoczne', 'jump_next' => 'przejdź do następnego nieprzeczytanego kanału bądź kategorii', diff --git a/app/i18n/pt-br/conf.php b/app/i18n/pt-br/conf.php index 510ad0297..2b6241449 100644 --- a/app/i18n/pt-br/conf.php +++ b/app/i18n/pt-br/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Exibir uma caixa de diálogo de confirmação quando acionar "marcar todos como lido"', 'display_articles_unfolded' => 'Mostrar artigos abertos por padrão', 'display_categories_unfolded' => 'Categorias abertas', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Esconder categorias e feeds com nenhum artigo não lido (não funciona com a configuração "Mostrar todos os artigos”)', 'img_with_lazyload' => 'Utilizar o modo "lazy load" para carregar as imagens', 'jump_next' => 'Vá para o próximo irmão não lido (feed ou categoria)', diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php index 0a3664c41..577076805 100644 --- a/app/i18n/ru/conf.php +++ b/app/i18n/ru/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Показывать диалог подтверждения при выпыполнении действия «отметить всё прочитанным»', 'display_articles_unfolded' => 'Показывать статьи развёрнутыми по умолчанию', 'display_categories_unfolded' => 'Какие категории развёртывать', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Скрывать категории и ленты без непрочитанных статей (не работает с «Показывать все статьи»)', 'img_with_lazyload' => 'Использовать режим "ленивой загрузки" для загрузки картинок', 'jump_next' => 'перейти к следующей ленте или категории', diff --git a/app/i18n/sk/conf.php b/app/i18n/sk/conf.php index bf74f8da2..cbade872d 100644 --- a/app/i18n/sk/conf.php +++ b/app/i18n/sk/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => 'Zobraziť potvrdzovací dialóg po kliknutí na “Označiť všetko ako prečítané”', 'display_articles_unfolded' => 'Zobraziť články otvorené', 'display_categories_unfolded' => 'Kategórie na rozbalenie', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Skryť kategórie a kanály s nulovým počtom neprečítaných článkov (nefunguje s nastaveným “Zobraziť všetky články”)', 'img_with_lazyload' => 'Pre načítanie obrázkov použiť "lazy load"', 'jump_next' => 'skočiť na ďalší neprečítaný (kanál ale kategóriu)', diff --git a/app/i18n/tr/conf.php b/app/i18n/tr/conf.php index 5ab08fd62..ae1a2bf47 100644 --- a/app/i18n/tr/conf.php +++ b/app/i18n/tr/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => '"Hepsini okundu say" eylemi için onay iste', 'display_articles_unfolded' => 'Katlaması açılmış makaleleri öntanımlı olarak göster', 'display_categories_unfolded' => 'Katlaması açılacak kategoriler', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => 'Okunmamış makalesi olmayan kategori veya akışı gizle ("Tüm makaleleri göster" komutunda çalışmaz)', 'img_with_lazyload' => 'Resimleri yüklemek için "tembel modu" kullan', 'jump_next' => 'Bir sonraki benzer okunmamışa geç (akış veya kategori)', diff --git a/app/i18n/zh-cn/conf.php b/app/i18n/zh-cn/conf.php index 1f563262c..44d27e3b0 100644 --- a/app/i18n/zh-cn/conf.php +++ b/app/i18n/zh-cn/conf.php @@ -130,6 +130,13 @@ return array( 'confirm_enabled' => '「全部标记为已读」时显示确认对话框', 'display_articles_unfolded' => '默认展开显示文章', 'display_categories_unfolded' => '展开的分类', + 'headline' => array( + 'articles' => 'Articles: Open/Close', // TODO + 'categories' => 'Left navigation: Categories', // TODO + 'mark_as_read' => 'Mark article as read', // TODO + 'misc' => 'Miscellaneous', // TODO + 'view' => 'View', // TODO + ), 'hide_read_feeds' => '隐藏没有未读文章的分类或订阅源 (启用「显示所有文章」后不生效))', 'img_with_lazyload' => '延迟加载图片', 'jump_next' => '跳转到下一未读项(订阅源或分类)', diff --git a/app/views/configure/reading.phtml b/app/views/configure/reading.phtml index c021132aa..825655102 100644 --- a/app/views/configure/reading.phtml +++ b/app/views/configure/reading.phtml @@ -12,244 +12,284 @@ <form method="post" action="<?= _url('configure', 'reading') ?>"> <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" /> + <fieldset> + <legend><?= _t('conf.reading.headline.view') ?></legend> + <div class="form-group"> + <label class="group-name" for="view_mode"><?= _t('conf.reading.view.default') ?></label> + <div class="group-controls"> + <select name="view_mode" id="view_mode" data-leave-validation="<?= FreshRSS_Context::$user_conf->view_mode ?>"> + <option value="normal"<?= FreshRSS_Context::$user_conf->view_mode === 'normal' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.view.normal') ?></option> + <option value="reader"<?= FreshRSS_Context::$user_conf->view_mode === 'reader' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.view.reader') ?></option> + <option value="global"<?= FreshRSS_Context::$user_conf->view_mode === 'global' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.view.global') ?></option> + </select> + </div> + </div> - <div class="form-group"> - <label class="group-name" for="posts_per_page"><?= _t('conf.reading.articles_per_page') ?></label> - <div class="group-controls"> - <input type="number" id="posts_per_page" name="posts_per_page" value="<?= - FreshRSS_Context::$user_conf->posts_per_page ?>" min="5" max="500" - data-leave-validation="<?= FreshRSS_Context::$user_conf->posts_per_page ?>"/> - <p class="help"><?= _i('help') ?> <?= _t('conf.reading.number_divided_when_reader') ?></p> + <div class="form-group"> + <label class="group-name" for="default_view"><?= _t('conf.reading.show') ?></label> + <div class="group-controls"> + <select name="default_view" id="default_view" data-leave-validation="<?= FreshRSS_Context::$user_conf->default_view ?>"> + <option value="adaptive"<?= FreshRSS_Context::$user_conf->default_view === 'adaptive' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.show.adaptive') ?></option> + <option value="all"<?= FreshRSS_Context::$user_conf->default_view === 'all' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.show.all_articles') ?></option> + <option value="unread"<?= FreshRSS_Context::$user_conf->default_view === 'unread' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.show.unread') ?></option> + </select> + </div> </div> - </div> - <div class="form-group"> - <label class="group-name" for="sort_order"><?= _t('conf.reading.sort') ?></label> - <div class="group-controls"> - <select name="sort_order" id="sort_order" data-leave-validation="<?= FreshRSS_Context::$user_conf->sort_order ?>"> - <option value="DESC"<?= FreshRSS_Context::$user_conf->sort_order === 'DESC' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.sort.newer_first') ?></option> - <option value="ASC"<?= FreshRSS_Context::$user_conf->sort_order === 'ASC' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.sort.older_first') ?></option> - </select> + <div class="form-group"> + <label class="group-name" for="posts_per_page"><?= _t('conf.reading.articles_per_page') ?></label> + <div class="group-controls"> + <input type="number" id="posts_per_page" name="posts_per_page" value="<?= + FreshRSS_Context::$user_conf->posts_per_page ?>" min="5" max="500" + data-leave-validation="<?= FreshRSS_Context::$user_conf->posts_per_page ?>"/> + <p class="help"><?= _i('help') ?> <?= _t('conf.reading.number_divided_when_reader') ?></p> + </div> </div> - </div> - <div class="form-group"> - <label class="group-name" for="view_mode"><?= _t('conf.reading.view.default') ?></label> - <div class="group-controls"> - <select name="view_mode" id="view_mode" data-leave-validation="<?= FreshRSS_Context::$user_conf->view_mode ?>"> - <option value="normal"<?= FreshRSS_Context::$user_conf->view_mode === 'normal' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.view.normal') ?></option> - <option value="reader"<?= FreshRSS_Context::$user_conf->view_mode === 'reader' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.view.reader') ?></option> - <option value="global"<?= FreshRSS_Context::$user_conf->view_mode === 'global' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.view.global') ?></option> - </select> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="auto_load_more"> + <input type="checkbox" name="auto_load_more" id="auto_load_more" value="1"<?= + FreshRSS_Context::$user_conf->auto_load_more ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->auto_load_more ?>"/> + <?= _t('conf.reading.auto_load_more') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> - <div class="form-group"> - <label class="group-name" for="default_view"><?= _t('conf.reading.show') ?></label> - <div class="group-controls"> - <select name="default_view" id="default_view" data-leave-validation="<?= FreshRSS_Context::$user_conf->default_view ?>"> - <option value="adaptive"<?= FreshRSS_Context::$user_conf->default_view === 'adaptive' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.show.adaptive') ?></option> - <option value="all"<?= FreshRSS_Context::$user_conf->default_view === 'all' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.show.all_articles') ?></option> - <option value="unread"<?= FreshRSS_Context::$user_conf->default_view === 'unread' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.show.unread') ?></option> - </select> + <div class="form-group"> + <label class="group-name" for="sort_order"><?= _t('conf.reading.sort') ?></label> + <div class="group-controls"> + <select name="sort_order" id="sort_order" data-leave-validation="<?= FreshRSS_Context::$user_conf->sort_order ?>"> + <option value="DESC"<?= FreshRSS_Context::$user_conf->sort_order === 'DESC' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.sort.newer_first') ?></option> + <option value="ASC"<?= FreshRSS_Context::$user_conf->sort_order === 'ASC' ? ' selected="selected"' : '' ?>><?= _t('conf.reading.sort.older_first') ?></option> + </select> + </div> </div> - </div> - <div class="form-group"> - <label class="group-name" for="default_view"><?= _t('conf.reading.display_categories_unfolded') ?></label> - <div class="group-controls"> - <select name="display_categories" id="display_categories" data-leave-validation="<?= FreshRSS_Context::$user_conf->display_categories ?>"> - <option value="active"<?= FreshRSS_Context::$user_conf->display_categories === 'active' ? ' selected="selected"' : '' ?>><?= - _t('conf.reading.show.active_category') ?></option> - <option value="remember"<?= FreshRSS_Context::$user_conf->display_categories === 'remember' ? ' selected="selected"' : '' ?>><?= - _t('conf.reading.show.remember_categories') ?></option> - <option value="all"<?= FreshRSS_Context::$user_conf->display_categories === 'all' ? ' selected="selected"' : '' ?>><?= - _t('conf.reading.show.all_categories') ?></option> - <option value="none"<?= FreshRSS_Context::$user_conf->display_categories === 'none' ? ' selected="selected"' : '' ?>><?= - _t('conf.reading.show.no_category') ?></option> - </select> + </fieldset> + + <fieldset> + <legend><?= _t('conf.reading.headline.categories') ?></legend> + <div class="form-group"> + <label class="group-name" for="display_categories"><?= _t('conf.reading.display_categories_unfolded') ?></label> + <div class="group-controls"> + <select name="display_categories" id="display_categories" data-leave-validation="<?= FreshRSS_Context::$user_conf->display_categories ?>"> + <option value="active"<?= FreshRSS_Context::$user_conf->display_categories === 'active' ? ' selected="selected"' : '' ?>><?= + _t('conf.reading.show.active_category') ?></option> + <option value="remember"<?= FreshRSS_Context::$user_conf->display_categories === 'remember' ? ' selected="selected"' : '' ?>><?= + _t('conf.reading.show.remember_categories') ?></option> + <option value="all"<?= FreshRSS_Context::$user_conf->display_categories === 'all' ? ' selected="selected"' : '' ?>><?= + _t('conf.reading.show.all_categories') ?></option> + <option value="none"<?= FreshRSS_Context::$user_conf->display_categories === 'none' ? ' selected="selected"' : '' ?>><?= + _t('conf.reading.show.no_category') ?></option> + </select> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="hide_read_feeds"> - <input type="checkbox" name="hide_read_feeds" id="hide_read_feeds" value="1"<?= - FreshRSS_Context::$user_conf->hide_read_feeds ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->hide_read_feeds ?>"/> - <?= _t('conf.reading.hide_read_feeds') ?> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="show_fav_unread"> + <input type="checkbox" name="show_fav_unread" id="show_fav_unread" value="1"<?= + FreshRSS_Context::$user_conf->show_fav_unread ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->show_fav_unread ?>"/> + <?= _t('conf.reading.always_show_favorites') ?> + <p class="help"><?= _i('help') ?> <?= _t('conf.reading.show_fav_unread_help') ?></p> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="show_fav_unread"> - <input type="checkbox" name="show_fav_unread" id="show_fav_unread" value="1"<?= - FreshRSS_Context::$user_conf->show_fav_unread ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->show_fav_unread ?>"/> - <?= _t('conf.reading.always_show_favorites') ?> - <p class="help"><?= _i('help') ?> <?= _t('conf.reading.show_fav_unread_help') ?></p> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="hide_read_feeds"> + <input type="checkbox" name="hide_read_feeds" id="hide_read_feeds" value="1"<?= + FreshRSS_Context::$user_conf->hide_read_feeds ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->hide_read_feeds ?>"/> + <?= _t('conf.reading.hide_read_feeds') ?> + </label> + </div> </div> - </div> + </fieldset> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="display_posts"> - <input type="checkbox" name="display_posts" id="display_posts" value="1"<?= - FreshRSS_Context::$user_conf->display_posts ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->display_posts ?>"/> - <?= _t('conf.reading.display_articles_unfolded') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <fieldset> + <legend><?= _t('conf.reading.headline.articles') ?></legend> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="display_posts"> + <input type="checkbox" name="display_posts" id="display_posts" value="1"<?= + FreshRSS_Context::$user_conf->display_posts ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->display_posts ?>"/> + <?= _t('conf.reading.display_articles_unfolded') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="sticky_post"> - <input type="checkbox" name="sticky_post" id="sticky_post" value="1"<?= - FreshRSS_Context::$user_conf->sticky_post ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->sticky_post ?>"/> - <?= _t('conf.reading.sticky_post') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="sticky_post"> + <input type="checkbox" name="sticky_post" id="sticky_post" value="1"<?= + FreshRSS_Context::$user_conf->sticky_post ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->sticky_post ?>"/> + <?= _t('conf.reading.sticky_post') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="auto_load_more"> - <input type="checkbox" name="auto_load_more" id="auto_load_more" value="1"<?= - FreshRSS_Context::$user_conf->auto_load_more ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->auto_load_more ?>"/> - <?= _t('conf.reading.auto_load_more') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="sides_close_article"> + <input type="checkbox" name="sides_close_article" id="sides_close_article" value="1"<?= + FreshRSS_Context::$user_conf->sides_close_article ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->sides_close_article ?>"/> + <?= _t('conf.reading.sides_close_article') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> + </fieldset> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="lazyload"> - <input type="checkbox" name="lazyload" id="lazyload" value="1"<?= - FreshRSS_Context::$user_conf->lazyload ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->lazyload ?>"/> - <?= _t('conf.reading.img_with_lazyload') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <fieldset> + <legend><?= _t('conf.reading.headline.mark_as_read') ?></legend> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="auto_remove_article"> + <input type="checkbox" name="auto_remove_article" id="auto_remove_article" value="1"<?= + FreshRSS_Context::$user_conf->auto_remove_article ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->auto_remove_article ?>"/> + <?= _t('conf.reading.auto_remove_article') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="sides_close_article"> - <input type="checkbox" name="sides_close_article" id="sides_close_article" value="1"<?= - FreshRSS_Context::$user_conf->sides_close_article ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->sides_close_article ?>"/> - <?= _t('conf.reading.sides_close_article') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="reading_confirm"> + <input type="checkbox" name="reading_confirm" id="reading_confirm" value="1"<?= + FreshRSS_Context::$user_conf->reading_confirm ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->reading_confirm ?>"/> + <?= _t('conf.reading.confirm_enabled') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="reading_confirm"> - <input type="checkbox" name="reading_confirm" id="reading_confirm" value="1"<?= - FreshRSS_Context::$user_conf->reading_confirm ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->reading_confirm ?>"/> - <?= _t('conf.reading.confirm_enabled') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <div class="form-group"> + <label class="group-name" for="onread_jump_next"><?= _t('conf.reading.after_onread') ?></label> + <div class="group-controls"> + <label class="checkbox" for="onread_jump_next"> + <input type="checkbox" name="onread_jump_next" id="onread_jump_next" value="1"<?= + FreshRSS_Context::$user_conf->onread_jump_next ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->onread_jump_next ?>"/> + <?= _t('conf.reading.jump_next') ?> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="auto_remove_article"> - <input type="checkbox" name="auto_remove_article" id="auto_remove_article" value="1"<?= - FreshRSS_Context::$user_conf->auto_remove_article ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->auto_remove_article ?>"/> - <?= _t('conf.reading.auto_remove_article') ?> - <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="mark_updated_article_unread"> + <input type="checkbox" name="mark_updated_article_unread" id="mark_updated_article_unread" value="1"<?= + FreshRSS_Context::$user_conf->mark_updated_article_unread ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_updated_article_unread ?>"/> + <?= _t('conf.reading.mark_updated_article_unread') ?> + </label> + </div> </div> - </div> - <div class="form-group"> - <div class="group-controls"> - <label class="checkbox" for="mark_updated_article_unread"> - <input type="checkbox" name="mark_updated_article_unread" id="mark_updated_article_unread" value="1"<?= - FreshRSS_Context::$user_conf->mark_updated_article_unread ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_updated_article_unread ?>"/> - <?= _t('conf.reading.mark_updated_article_unread') ?> - </label> + <div class="form-group"> + <label class="group-name" for="enable_read_when_same_title_in_feed"><?= _t('conf.reading.read.when') ?></label> + <div class="group-controls"> + <label class="checkbox" for="enable_read_when_same_title_in_feed"> + <input type="checkbox" name="enable_read_when_same_title_in_feed" id="enable_read_when_same_title_in_feed" value="1"<?= + empty(FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']) ? '' : ' checked="checked"' ?> + data-leave-validation="<?= empty(FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']) ? 0 : 1 ?>"/> + <?= _t('conf.reading.read.when_same_title') ?> + <?php $read_when_same_title_in_feed = empty(FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']) ? 25 : FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']; ?> + <input type="number" id="read_when_same_title_in_feed" name="read_when_same_title_in_feed" min="0" + value="<?= $read_when_same_title_in_feed ?>" data-leave-validation="<?= $read_when_same_title_in_feed ?>" /> + </label> + </div> </div> - </div> - <div class="form-group"> - <label class="group-name"><?= _t('conf.reading.read.when') ?></label> - <div class="group-controls"> - <label class="checkbox" for="check_open_article"> - <input type="checkbox" name="mark_open_article" id="check_open_article" value="1"<?= - FreshRSS_Context::$user_conf->mark_when['article'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['article'] ?>"/> - <?= _t('conf.reading.read.article_viewed') ?> - </label> - <label class="checkbox" for="check_open_site"> - <input type="checkbox" name="mark_open_site" id="check_open_site" value="1"<?= - FreshRSS_Context::$user_conf->mark_when['site'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['site'] ?>"/> - <?= _t('conf.reading.read.article_open_on_website') ?> - </label> - <label class="checkbox" for="check_scroll"> - <input type="checkbox" name="mark_scroll" id="check_scroll" value="1"<?= - FreshRSS_Context::$user_conf->mark_when['scroll'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['scroll'] ?>"/> - <?= _t('conf.reading.read.scroll') ?> - </label> + <div class="form-group"> + <label class="group-name" for="check_open_article"><?= _t('conf.reading.read.when') ?></label> + <div class="group-controls"> + <label class="checkbox" for="check_open_article"> + <input type="checkbox" name="mark_open_article" id="check_open_article" value="1"<?= + FreshRSS_Context::$user_conf->mark_when['article'] ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['article'] ?>"/> + <?= _t('conf.reading.read.article_viewed') ?> + </label> + </div> + </div> + + <div class="form-group"> + <label class="group-name" for="check_open_site"><?= _t('conf.reading.read.when') ?></label> + <div class="group-controls"> + <label class="checkbox" for="check_open_site"> + <input type="checkbox" name="mark_open_site" id="check_open_site" value="1"<?= + FreshRSS_Context::$user_conf->mark_when['site'] ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['site'] ?>"/> + <?= _t('conf.reading.read.article_open_on_website') ?> + </label> + </div> + </div> - <label class="checkbox" for="keep_max_n_unread"> - <input type="checkbox" name="enable_keep_max_n_unread" id="enable_keep_max_n_unread" value="1"<?= - empty(FreshRSS_Context::$user_conf->mark_when['max_n_unread']) ? '' : ' checked="checked"' ?> - data-leave-validation="<?= empty(FreshRSS_Context::$user_conf->mark_when['max_n_unread']) ? 0 : 1 ?>"/> - <?= _t('conf.reading.read.keep_max_n_unread') ?> - <?php $keep_max_n_unread = empty(FreshRSS_Context::$user_conf->mark_when['max_n_unread']) ? 1000 : FreshRSS_Context::$user_conf->mark_when['max_n_unread']; ?> - <input type="number" id="keep_max_n_unread" name="keep_max_n_unread" min="0" value="<?= $keep_max_n_unread ?>" data-leave-validation="<?= $keep_max_n_unread ?>" /> - </label> + <div class="form-group"> + <label class="group-name" for="check_scroll"><?= _t('conf.reading.read.when') ?></label> + <div class="group-controls"> + <label class="checkbox" for="check_scroll"> + <input type="checkbox" name="mark_scroll" id="check_scroll" value="1"<?= + FreshRSS_Context::$user_conf->mark_when['scroll'] ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['scroll'] ?>"/> + <?= _t('conf.reading.read.scroll') ?> + </label> + </div> + </div> - <label class="checkbox" for="check_reception"> - <input type="checkbox" name="mark_upon_reception" id="check_reception" value="1"<?= - FreshRSS_Context::$user_conf->mark_when['reception'] ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['reception'] ?>"/> - <?= _t('conf.reading.read.upon_reception') ?> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="keep_max_n_unread"> + <input type="checkbox" name="enable_keep_max_n_unread" id="enable_keep_max_n_unread" value="1"<?= + empty(FreshRSS_Context::$user_conf->mark_when['max_n_unread']) ? '' : ' checked="checked"' ?> + data-leave-validation="<?= empty(FreshRSS_Context::$user_conf->mark_when['max_n_unread']) ? 0 : 1 ?>"/> + <?= _t('conf.reading.read.keep_max_n_unread') ?> + <?php $keep_max_n_unread = empty(FreshRSS_Context::$user_conf->mark_when['max_n_unread']) ? 1000 : FreshRSS_Context::$user_conf->mark_when['max_n_unread']; ?> + <input type="number" id="keep_max_n_unread" name="keep_max_n_unread" min="0" value="<?= $keep_max_n_unread ?>" data-leave-validation="<?= $keep_max_n_unread ?>" /> + </label> + </div> + </div> - <label class="checkbox" for="read_when_same_title_in_feed"> - <input type="checkbox" name="enable_read_when_same_title_in_feed" id="enable_read_when_same_title_in_feed" value="1"<?= - empty(FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']) ? '' : ' checked="checked"' ?> - data-leave-validation="<?= empty(FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']) ? 0 : 1 ?>"/> - <?= _t('conf.reading.read.when_same_title') ?> - <?php $read_when_same_title_in_feed = empty(FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']) ? 25 : FreshRSS_Context::$user_conf->mark_when['same_title_in_feed']; ?> - <input type="number" id="read_when_same_title_in_feed" name="read_when_same_title_in_feed" min="0" - value="<?= $read_when_same_title_in_feed ?>" data-leave-validation="<?= $read_when_same_title_in_feed ?>" /> - </label> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="check_reception"> + <input type="checkbox" name="mark_upon_reception" id="check_reception" value="1"<?= + FreshRSS_Context::$user_conf->mark_when['reception'] ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->mark_when['reception'] ?>"/> + <?= _t('conf.reading.read.upon_reception') ?> + </label> + </div> </div> - </div> + </fieldset> - <div class="form-group"> - <label class="group-name"><?= _t('conf.reading.after_onread') ?></label> - <div class="group-controls"> - <label class="checkbox" for="onread_jump_next"> - <input type="checkbox" name="onread_jump_next" id="onread_jump_next" value="1"<?= - FreshRSS_Context::$user_conf->onread_jump_next ? ' checked="checked"' : '' ?> - data-leave-validation="<?= FreshRSS_Context::$user_conf->onread_jump_next ?>"/> - <?= _t('conf.reading.jump_next') ?> - </label> + <fieldset> + <legend><?= _t('conf.reading.headline.misc') ?></legend> + <div class="form-group"> + <div class="group-controls"> + <label class="checkbox" for="lazyload"> + <input type="checkbox" name="lazyload" id="lazyload" value="1"<?= + FreshRSS_Context::$user_conf->lazyload ? ' checked="checked"' : '' ?> + data-leave-validation="<?= FreshRSS_Context::$user_conf->lazyload ?>"/> + <?= _t('conf.reading.img_with_lazyload') ?> + <noscript> — <strong><?= _t('gen.js.should_be_activated') ?></strong></noscript> + </label> + </div> </div> - </div> + </fieldset> <div class="form-group form-actions"> <div class="group-controls"> |
