Files
FreshRSS/app/i18n/ru/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
22 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(
'_' => 'Deprecated', // IGNORE
'description' => 'Эта тема устарела и будет недоступна в FreshRSS <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">в будущем релизе</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' => 'Показывать баннер предупреждения',
'seconds' => 'секунд (не менее 1)',
),
'good' => array(
'label' => 'Показывать баннер подтверждения',
'seconds' => 'секунд (0 означает не показывать)',
),
),
'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' => 'Заменить <i>теги ленты</i> на <i>пользовательские метки</i> в общей RSS-ленте',
'search' => 'Выражение',
'shareOpml' => 'Включить общий доступ с помощью OPML к соответствующим категориям и лентам',
'shareRss' => 'Включить общий доступ с помощью HTML &amp; 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' => 'если идентичный заголовок уже существует среди <i>n</i> новейших статей категории',
'when_same_title_in_feed' => 'если идентичный заголовок уже существует среди <i>n</i> новейших статей ленты',
),
'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' => 'Электронная почта',
'facebook' => 'Facebook', // IGNORE
'more_information' => 'Больше информации',
'print' => 'Распечатать', // IGNORE
'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' => 'Пользователи',
),
);