Files
FreshRSS/app/i18n/uk/conf.php
PeterVavercak ee7eb67f3c Implement sort order per feed (#8234)
* added local feed sorting

Addresses https://github.com/FreshRSS/FreshRSS/issues/4761

- Added number of sorted feeds and associative array for feed sorting option in Context.
- Number of sorted feeds and local sorting option by its index saved into Minz Request Parameters.
- Number of sorted feeds and local sorting options deleted when choosing another Option Of Global Sorting.
- Added option of allowing sorting by feed in configuration.
- Added variable for allowing local sorting in userConf.
- Added function to get feeds by current get in context.
- Added menu button for all individual feed sorting.
- New database options for individual feed sorting in EntryDAO.
- Considered choosing new entries based on chosen load limit.
- Local sorting parameter saved into continuation value in Index Controller.

How to test the feature manually:

1. At the bottom of Reading Configuration menu turn on individual sorting option menu 
2. Choose Sorting by feed option
3. Choose feed at next sorting menu and choose sorting option for that feed

* added feed sorting option

* added sort feeds display

* added template for sort feed name

* added title to feed sorting button

* added comments

* added local sorting option

* Added Docs

* css reset

* added getter and seter for local sort

* added getter and seter for local sort

* allowed sorting per feed

* allowed sorting per feed

* added sorting option for category

* deleted changes from NetryDAO

* add setting up sorting for category

* docs reset

* i18 reset

* updated i18 for category

* added i18 for categories

* added i18 for category

* added setting sorting for feeds and category

* removing userConf.allow-local-sort

* removing userConf.allow-local-sort

* removing white space

* added credits

* removed feeds_by_get

* removed whitespace

* changed escaping for values

* added escaping to user set values

* added in_array

* added secondary sort and order

* added secondary sort and order

* fixed readme

* removed whitespace change

* reseted i18n

* added translations

* added feed setting translations

* fixed i18n

* fixed i18n

* changes in sort order per feed

* changes in sort order per feed

* added secondary sort order

* primary sort

* changed to preferred sort order

* i18n

* Revert wrong whitespace changes

* Re-order new options

* added blank option

* fixed escaping

* fixed default sort in feed

* fixed default sort recovery

* siplyfied option

* added rand option

* Revert unrelated change

* Minor plaintext

* Whitespace and formatting fixes

* Avoid unneeded SQL requests and processing

* Improve syntax

* Improve logic

* Reuse existing translations as much as possible

* i18n

* Remove some options that make little sense

* Separators

* Fix old transation key

* Add help messages

* Progress on secondary sort

* raw name

* Pass parameters. Add TODO

* Progress

* Minor ordering

* Fix parenthesis

---------

Co-authored-by: root <root@LAPTOP-C8TCHHPN.localdomain>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2026-02-01 13:12:47 +01:00

373 lines
20 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php
/******************************************************************************
* Each entry of that file can be associated with a comment to indicate its *
* state. When there is no comment, it means the entry is fully translated. *
* The recognized comments are (comment matching is case-insensitive): *
* + TODO: the entry has never been translated. *
* + DIRTY: the entry has been translated but needs to be updated. *
* + IGNORE: the entry does not need to be translated. *
* When a comment is not recognized, it is discarded. *
******************************************************************************/
return array(
'archiving' => array(
'_' => 'Архівування',
'exception' => 'Винятки з видалення',
'help' => 'Більше опцій — у параметрах окремої стрічки',
'keep_favourites' => 'Ніколи не видаляти вподобаних',
'keep_labels' => 'Ніколи не видаляти міток',
'keep_max' => 'Максимум статей у стрічці',
'keep_min_by_feed' => 'Мінімум статей у стрічці',
'keep_period' => 'Тривалість зберігання статей',
'keep_unreads' => 'Ніколи не видаляти непрочитаних статей',
'maintenance' => 'Супровід',
'optimize' => 'Оптимізувати базу даних',
'optimize_help' => 'Запускайте час від часу, щоб зменшити розмір бази даних',
'policy' => 'Політика видалення',
'policy_warning' => 'Якщо політики видалення не встановлено, всі статті зберігатимуться.',
'purge_now' => 'Застосувати політику видалення',
'title' => 'Архівування',
'ttl' => 'Частота автоматичного оновлення',
),
'display' => array(
'_' => 'Оформлення',
'darkMode' => array(
'_' => 'Темний режим',
'auto' => 'Автоматично',
'help' => 'Лише для підтримуваних тем',
'no' => 'Вимкнено',
),
'icon' => array(
'bottom_line' => 'Нижній рядок',
'display_authors' => 'Автори',
'entry' => 'Піктограми статей',
'publication_date' => 'Дата оприлюднення',
'related_tags' => 'Теги статей',
'sharing' => 'Поширення',
'summary' => 'Підсумок',
'top_line' => 'Верхній рядок',
),
'language' => 'Мова',
'notif_html5' => array(
'seconds' => 'секунд (0 означає без тайм-ауту)',
'timeout' => 'Тайм-аут сповіщення HTML5',
),
'show_nav_buttons' => 'Показати кнопки навігації',
'theme' => array(
'_' => 'Тема',
'deprecated' => array(
'_' => 'Застаріла',
'description' => 'Тема більше не підтримується. Її буде вилучено з <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">майбутнього випуску FreshRSS</a>',
),
),
'theme_not_available' => 'Тема «%s» більше не підтримується. Будь ласка, оберіть іншу тему.',
'thumbnail' => array(
'label' => 'Ілюстрація',
'landscape' => 'Горизонтальна',
'none' => 'Вимкнена',
'portrait' => 'Вертикальна',
'square' => 'Квадрат',
),
'timezone' => 'Часовий пояс',
'title' => 'Оформлення',
'website' => array(
'full' => 'Піктограма й назва',
'icon' => 'Лише піктограма',
'label' => 'Вебсайт',
'name' => 'Лише назва',
'none' => 'Вимкнено',
),
'width' => array(
'content' => 'Ширина тексту',
'large' => 'Велика',
'medium' => 'Середня',
'no_limit' => 'Повна',
'thin' => 'Мала',
),
),
'logs' => array(
'loglist' => array(
'level' => 'Важливість',
'message' => 'Повідомлення',
'timestamp' => 'Час',
),
'pagination' => array(
'first' => 'Перша',
'last' => 'Остання',
'next' => 'Наступна',
'previous' => 'Попередня',
),
),
'mark_read_button' => array(
'_' => 'Кнопка «Позначити все прочитаним»',
'big' => 'Велика',
'none' => 'Не показувати',
'small' => 'Мала',
),
'notification' => array(
'html5_enable_notif' => 'Enable notification', // TODO
),
'notification_timeout' => array(
'bad' => array(
'label' => 'Show warning banner', // TODO
'seconds' => 'seconds (at least 1)', // TODO
),
'good' => array(
'label' => 'Show acknowledgement banner', // TODO
'seconds' => 'seconds (0 means not shown)', // TODO
),
),
'privacy' => array(
'_' => 'Приватність',
'retrieve_extension_list' => 'Завантажувати список розширень',
),
'profile' => array(
'_' => 'Керування профілем',
'api' => array(
'_' => 'Зовнішній доступ через API',
'api_not_set' => 'Пароля API не налаштовано',
'api_set' => 'Пароль API налаштовано',
'check_link' => 'Перевірте стан API: <kbd><a href="../api/" target="_blank">%s</a></kbd>',
'disabled' => 'Доступ через API вимкнено.',
'documentation_link' => 'Перегляньте <a href="https://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target="_blank">документацію та перелік відомих програм</a>',
'help' => 'Перегляньте <a href="http://freshrss.github.io/FreshRSS/en/users/06_Mobile_access.html#access-via-mobile-app" target=_blank>документацію</a>',
),
'change_password' => 'Змінити пароль',
'confirm_new_password' => 'Підтвердьте новий пароль',
'current_password' => 'Поточний пароль<br /><small>(для входу через вебформу)</small>',
'delete' => array(
'_' => 'Видалення облікового запису',
'warn' => 'Ваш обліковий запис і всі повʼязані дані буде видалено.',
),
'email' => 'Адреса електронної пошти',
'new_password' => 'Новий пароль',
'password_api' => 'Пароль API<br /><small>(наприклад, для мобільних програм)</small>',
'password_format' => 'Принаймні 7 символів',
'title' => 'Профіль',
),
'query' => array(
'_' => 'Користувацькі запити',
'deprecated' => 'Запит більше не чинний. Згадану категорію чи стрічку видалено.',
'description' => 'Опис',
'filter' => array(
'_' => 'Застосовано фільтр:',
'categories' => 'Показати категорію',
'feeds' => 'Показати стрічку',
'order' => 'Впорядкувати за датою',
'publish_labels_instead_of_tags' => 'Replace <i>feed tags</i> by <i>user labels</i> in the shared RSS', // TODO
'search' => 'Вираз',
'shareOpml' => 'Увімкнути OPML-поширення відповідних категорій і стрічок',
'shareRss' => 'Увімкнути поширення в форматі HTML і RSS',
'state' => 'Стан',
'tags' => 'Показати за тегом',
'type' => 'Тип',
),
'get_A' => 'Показати всі стрічки, зокрема показані в межах категорії',
'get_Z' => 'Показати всі стрічки, зокрема архівовані',
'get_all' => 'Показати всі статті',
'get_all_labels' => 'Показати статті з будь-якою міткою',
'get_category' => 'Показати категорію «%s»',
'get_favorite' => 'Показати вподобані статті',
'get_feed' => 'Показати стрічку «%s»',
'get_important' => 'Показати статті з важливих стрічок',
'get_label' => 'Показати статті з міткою «%s»',
'help' => 'Перегляньте <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">документацію користувацьких запитів і їх поширення в форматі HTML, RSS та OPML</a>.',
'image_url' => 'URL-адреса зображення',
'name' => 'Назва',
'no_filter' => 'Без фільтру',
'no_queries' => array(
'_' => 'Користувацьких запитів ще не збережено.',
'help' => 'Перегляньте <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">документацію</a>',
),
'number' => 'Запит №%d',
'order_asc' => 'Спершу старіші статті',
'order_desc' => 'Спершу новіші статті',
'search' => 'Пошук «%s»',
'share' => array(
'_' => 'Поширити запит за посиланням',
'disabled' => array(
'_' => 'вимкнено',
'title' => 'Поширення',
),
'greader' => 'Загальнодоступне посилання на JSON для GReader',
'help' => 'Щоб поділитися з кимось цим запитом, скопіюйте це посилання',
'html' => 'Загальнодоступне посилання на HTML-сторінку',
'opml' => 'Загальнодоступне посилання на OPML-список стрічок',
'rss' => 'Загальнодоступне посилання на RSS-стрічку',
),
'state_0' => 'Показати всі статті',
'state_1' => 'Показати прочитані статті',
'state_2' => 'Показати непрочитані статті',
'state_3' => 'Показати всі статті',
'state_4' => 'Показати вподобані статті',
'state_5' => 'Показати прочитані вподобані статті',
'state_6' => 'Показати непрочитані вподобані статті',
'state_7' => 'Показати вподобані статті',
'state_8' => 'Показати невподобані статті',
'state_9' => 'Показати прочитані невподобані статті',
'state_10' => 'Показати непрочитані невподобані статті',
'state_11' => 'Показати невподобані статті',
'state_12' => 'Показати всі статті',
'state_13' => 'Показати прочитані статті',
'state_14' => 'Показати непрочитані статті',
'state_15' => 'Показати всі статті',
'title' => 'Користувацькі запити',
),
'reading' => array(
'_' => 'Читання',
'after_onread' => 'Коли все позначено прочитаним,',
'always_show_favorites' => 'У вподобаних типово показувати всі статті',
'apply_to_individual_feed' => 'Застосовується до саме цієї стрічки',
'article' => array(
'authors_date' => array(
'_' => 'Автори й дата',
'both' => 'Вгорі й унизу',
'footer' => 'Внизу',
'header' => 'Вгорі',
'none' => 'Не показувати',
),
'feed_name' => array(
'above_title' => 'Над заголовком і тегами',
'none' => 'Не показувати',
'with_authors' => 'У рядку авторів і дати',
),
'feed_title' => 'Назва стрічки',
'icons' => array(
'_' => 'Піктограми статті<br /><small>(Тільки читацький показ)</small>',
'above_title' => 'Над заголовком',
'with_authors' => 'У рядку авторів і дати',
),
'tags' => array(
'_' => 'Теги',
'both' => 'Вгорі й унизу',
'footer' => 'Внизу',
'header' => 'Вгорі',
'none' => 'Не показувати',
),
'tags_max' => array(
'_' => 'Показувати тегів',
'help' => '0 означає показати всі теги й не згортати їх',
),
),
'articles_per_page' => 'Статей на сторінці',
'auto_load_more' => 'Завантажувати більше статей при прокручуванні',
'auto_remove_article' => 'Ховати статті після прочитання',
'confirm_enabled' => 'Перепитувати, чи позначати все прочитаним',
'display_articles_unfolded' => 'Розгортати статті типово',
'display_categories_unfolded' => 'Категорії для розгортання',
'headline' => array(
'articles' => 'Статті: відкриті/закриті',
'articles_header_footer' => 'Статті: верх/низ',
'categories' => 'Ліва навігація: категорії',
'mark_as_read' => 'Позначити статтю прочитаною',
'misc' => 'Різне',
'view' => 'Показ',
),
'hide_read_feeds' => 'Ховати категорії та стрічки, усі статті яких прочитано (не працює при виборі «Показати всі статті»)',
'img_with_lazyload' => 'Відкладати завантаження зображень до появи їх у видимій області',
'jump_next' => 'перейти до наступного непрочитаного поруч',
'mark_updated_article_unread' => 'Позначати оновленні статті непрочитаними',
'number_divided_when_reader' => 'Ділиться на 2 в читацькому показі.',
'read' => array(
'article_open_on_website' => 'при переході на сайт статті',
'article_viewed' => 'при відкритті статті',
'focus' => 'при фокусуванні (крім важливих стрічок)',
'keep_max_n_unread' => 'Максимум непрочитаних статей',
'scroll' => 'при гортанні (крім важливих стрічок)',
'upon_gone' => 'коли статті більше нема в оригінальній стрічці новин',
'upon_reception' => 'при отриманні статті',
'when' => 'Позначити статтю прочитаною…',
'when_same_title_in_category' => 'якщо котрась зі стількох найновіших статей категорії має такий самий заголовок',
'when_same_title_in_feed' => 'якщо котрась зі стількох найновіших статей стрічки має такий самий заголовок',
),
'show' => array(
'_' => 'Статті для показу',
'active_category' => 'Активна категорія',
'adaptive' => 'Показати непрочитані за наявності, інакше всі статті',
'all_articles' => 'Показати всі статті',
'all_categories' => 'Всі категорії',
'no_category' => 'Без категорії',
'remember_categories' => 'Памʼятати відкриті категорії',
'unread' => 'Показати непрочитані',
'unread_or_favorite' => 'Показати непрочитані та вподобані',
),
'show_fav_unread_help' => 'Впливає також на мітки',
'sides_close_article' => 'Натиск за межами тексту статті закриває статтю',
'star' => array(
'when' => 'Вподобати статтю…',
),
'sticky_post' => 'Закріплювати статтю вгорі при відкритті',
'title' => 'Читання',
'view' => array(
'default' => 'Типовий показ',
'global' => 'Глобальний показ',
'normal' => 'Звичайний показ',
'reader' => 'Читацький показ',
),
),
'sharing' => array(
'_' => 'Поширення',
'add' => 'Додати спосіб поширення',
'bluesky' => 'Bluesky', // IGNORE
'deprecated' => 'Цей сервіс більше не підтримується. Його буде вилучено з FreshRSS у <a href="https://freshrss.github.io/FreshRSS/en/users/08_sharing_services.html" title="Докладніше в документації" target="_blank">наступному випуску</a>.',
'diaspora' => 'Diaspora*', // IGNORE
'email' => 'Email', // IGNORE
'facebook' => 'Facebook', // IGNORE
'more_information' => 'Докладніше',
'print' => 'Друк',
'raindrop' => 'Raindrop.io', // IGNORE
'remove' => 'Вилучити спосіб поширення',
'shaarli' => 'Shaarli', // IGNORE
'share_name' => 'Підпис у меню',
'share_url' => 'URL-адреса поширення',
'title' => 'Поширення',
'twitter' => 'Twitter', // IGNORE
'wallabag' => 'wallabag', // IGNORE
),
'shortcut' => array(
'_' => 'Клавіші',
'article_action' => 'Дії зі статею',
'auto_share' => 'Поширити',
'auto_share_help' => 'Якщо решим поширення лише один, використовується одразу він. Інакше обирайте режими їхніми номерами.',
'close_menus' => 'Закрити меню',
'collapse_article' => 'Згорнути',
'first_article' => 'Перша стаття',
'focus_search' => 'Пошук',
'global_view' => 'Глобальний показ',
'help' => 'Документація',
'javascript' => 'Щоб використовувати клавіші, слід увімкнути JavaScript',
'last_article' => 'Остання стаття',
'load_more' => 'Завантажити більше статей',
'mark_favorite' => 'Перемкнути вподобання',
'mark_read' => 'Перемкнути прочитаність',
'navigation' => 'Навігація',
'navigation_help' => 'При затисненій <kbd>⇧ Shift</kbd> клавіші навігації застосовуються до стрічок.<br/>При затисненій <kbd>Alt ⎇</kbd> клавіші навігації застосовуються до категорій.',
'navigation_no_mod_help' => 'Наступні клавіші навігації не підтримують описаного вгорі затиснення.',
'next_article' => 'Наступна стаття',
'next_unread_article' => 'Наступна непрочитана стаття',
'non_standard' => 'Деякі клавіші (<kbd>%s</kbd>) можуть не працювати.',
'normal_view' => 'Звичайний показ',
'other_action' => 'Інші дії',
'previous_article' => 'Попередня стаття',
'reading_view' => 'Читацький показ',
'rss_view' => 'Відкрити як RSS-стрічку',
'see_on_website' => 'Сайт оригіналу',
'shift_for_all_read' => 'Затисніть також <kbd>Alt ⎇</kbd>, щоб позначити попередні статті прочитаними<br />Затисніть також <kbd>⇧ Shift</kbd>, щоб позначити всі статті прочитаними',
'skip_next_article' => 'Сфокусувати наступну не відкриваючи',
'skip_previous_article' => 'Сфокусувати попередню не відкриваючи',
'title' => 'Клавіші',
'toggle_aside' => 'Toggle sidebar', // TODO
'toggle_media' => 'Почати/зупинити відтворення',
'user_filter' => 'Користувацькі запити',
'user_filter_help' => 'Якщо користувацький запит лише один, використовується одразу він. Інакше обирайте запити їхніми номерами.',
'views' => 'Показ',
),
'user' => array(
'articles_and_size' => 'Статей: %s (%s)',
'current' => 'Поточний користувач',
'is_admin' => 'адміністратор',
'users' => 'Користувачі',
),
);