PHPIndex

This page lists files in the current directory. You can view content, get download/execute commands for Wget, Curl, or PowerShell, or filter the list using wildcards (e.g., `*.sh`).

admin.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/admin.php'
View Content
<?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(
	'auth' => array(
		'allow_anonymous' => 'Разрешить анонимное чтение статей пользователя по умолчанию (%s)',
		'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей',
		'api_enabled' => 'Позволить <abbr>API</abbr> доступ <small>(необходимо для мобильных приложений)</small>',
		'form' => 'Веб-форма (традиционный, необходим JavaScript)',
		'http' => 'HTTP (для опытных пользователей с HTTPS)',
		'none' => 'Без аутентификации (небезопасно)',
		'title' => 'Аутентификации',
		'token' => 'Главный токен аутентификации',
		'token_help' => 'Обеспечивает доступ ко всем выходным данным RSS пользователя, а также к обновлению лент без проверки подлинности:',
		'type' => 'Способ аутентификации',
		'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ',
	),
	'check_install' => array(
		'cache' => array(
			'nok' => 'Проверьте права доступа к папке <em>./data/cache</em>. Веб-сервер должен иметь право на запись в эту папку',
			'ok' => 'Права на <em>./data/cache</em> в порядке.',
		),
		'categories' => array(
			'nok' => 'Таблица категорий настроена неправильно.',
			'ok' => 'Таблица категорий настроена правильно.',
		),
		'connection' => array(
			'nok' => 'Подключение к базе данных не может быть установлено.',
			'ok' => 'Подключение к базе данных в порядке.',
		),
		'ctype' => array(
			'nok' => 'У вас не установлена библиотека для проверки типов символов (php-ctype).',
			'ok' => 'У вас не установлена библиотека для проверки типов символов (ctype).',
		),
		'curl' => array(
			'nok' => 'У вас не установлено расширение cURL (пакет php-curl).',
			'ok' => 'У вас установлено расширение cURL.',
		),
		'data' => array(
			'nok' => 'Проверьте права доступа к папке <em>./data</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на <em>./data/</em> в порядке.',
		),
		'database' => 'Установка базы данных',
		'dom' => array(
			'nok' => 'У вас не установлена библиотека для просмотра DOM (пакет php-xml).',
			'ok' => 'У вас установлена библиотека для просмотра DOM.',
		),
		'entries' => array(
			'nok' => 'Таблица статей (entry) неправильно настроена.',
			'ok' => 'Таблица статей (entry) настроена правильно.',
		),
		'favicons' => array(
			'nok' => 'Проверьте права доступа к папке <em>./data/favicons</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку значков в порядке.',
		),
		'feeds' => array(
			'nok' => 'Таблица подписок (feed) неправильно настроена.',
			'ok' => 'Таблица подписок (feed) настроена правильно.',
		),
		'fileinfo' => array(
			'nok' => 'У вас не установлено расширение PHP fileinfo (пакет fileinfo).',
			'ok' => 'У вас установлено расширение fileinfo.',
		),
		'files' => 'Установка файлов',
		'json' => array(
			'nok' => 'У вас не установлена библиотека для работы с JSON (пакет php-json).',
			'ok' => 'У вас установлена библиотека для работы с JSON.',
		),
		'mbstring' => array(
			'nok' => 'У вас не установлена рекомендуемая библиотека mbstring для Unicode.',
			'ok' => 'У вас установлена рекомендуемая библиотека mbstring для Unicode.',
		),
		'pcre' => array(
			'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).',
			'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).',
		),
		'pdo' => array(
			'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).',
			'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).',
		),
		'php' => array(
			'_' => 'Инсталляция PHP',
			'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.',
			'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.',
		),
		'tables' => array(
			'nok' => 'В базе данных отсуствует одна или больше таблица.',
			'ok' => 'Все таблицы есть в базе данных.',
		),
		'title' => 'Проверка установки и настройки',
		'tokens' => array(
			'nok' => 'Проверьте права доступа к папке <em>./data/tokens</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку tokens в порядке.',
		),
		'users' => array(
			'nok' => 'Проверьте права доступа к папке <em>./data/users</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку users в порядке.',
		),
		'zip' => array(
			'nok' => 'У вас не установлено расширение ZIP (пакет php-zip).',
			'ok' => 'У вас установлено расширение ZIP.',
		),
	),
	'extensions' => array(
		'author' => 'Автор',
		'community' => 'Доступные расширения сообщества',
		'description' => 'Описание',
		'disabled' => 'Отключены',
		'empty_list' => 'Нет установленных расширений',
		'enabled' => 'Включены',
		'latest' => 'Установлено',
		'name' => 'Название',
		'no_configure_view' => 'Это расширение не требует настройки.',
		'system' => array(
			'_' => 'Системные расширения',
			'no_rights' => 'Системное расширение (у вас нет необходимых разрешений)',
		),
		'title' => 'Расширения',
		'update' => 'Доступно обновление',
		'user' => 'Расширения пользователя',
		'version' => 'Версия',
	),
	'stats' => array(
		'_' => 'Статистика',
		'all_feeds' => 'Все подписки',
		'category' => 'Категория',
		'entry_count' => 'Количество статей',
		'entry_per_category' => 'Статей в категории',
		'entry_per_day' => 'Статей за день (за последние 30 дней)',
		'entry_per_day_of_week' => 'За неделю (в среднем %.2f сообщений)',
		'entry_per_hour' => 'За час (в среднем %.2f сообщений)',
		'entry_per_month' => 'За месяц (в среднем %.2f сообщений)',
		'entry_repartition' => 'Расределение статей',
		'feed' => 'Лента',
		'feed_per_category' => 'Лент в категории',
		'idle' => 'Неактивные ленты',
		'main' => 'Основная статистика',
		'main_stream' => 'Основной поток',
		'no_idle' => 'Нет неактивных лент!',
		'number_entries' => 'статей: %d',
		'percent_of_total' => '% от всего',
		'repartition' => 'Распределение статей',
		'status_favorites' => 'В избранном',
		'status_read' => 'Прочитано',
		'status_total' => 'Всего',
		'status_unread' => 'Не прочитано',
		'title' => 'Статистика',
		'top_feed' => '10 лучших лент',
	),
	'system' => array(
		'_' => 'Системные настройки',
		'auto-update-url' => 'URL сервера для автоматического обновления',
		'base-url' => array(
			'_' => 'Основной URL-адрес',
			'recommendation' => 'Автоматическая рекомендация: <kbd>%s</kbd>',
		),
		'cookie-duration' => array(
			'help' => 'в секундах',
			'number' => 'Оставаться в системе на протяжении',
		),
		'force_email_validation' => 'Обязать подтверждать адрес электронной почты',
		'instance-name' => 'Название экземпляра',
		'max-categories' => 'Максимальное количество категорий на пользователя',
		'max-feeds' => 'Максимальное количество лент на пользователя',
		'registration' => array(
			'number' => 'Максимальное количество аккаунтов',
			'select' => array(
				'label' => 'Форма регистрации',
				'option' => array(
					'noform' => 'Отключено: Нет формы регистрации',
					'nolimit' => 'Включено: Нет ограничения аккаунтов',
					'setaccountsnumber' => 'Установить максимальное количество аккаунтов',
				),
			),
			'status' => array(
				'disabled' => 'Форма отключена',
				'enabled' => 'Форма включена',
			),
			'title' => 'Форма регистрации пользователей',
		),
		'sensitive-parameter' => 'Важный параметр. Отредактируйте вручную в <kbd>./data/config.php</kbd>',
		'tos' => array(
			'disabled' => 'не указан',
			'enabled' => '<a href="./?a=tos">включен</a>',
			'help' => 'Как <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">включить Условия предоставления услуг</a>',
		),
		'websub' => array(
			'help' => 'О <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
		),
	),
	'update' => array(
		'_' => 'Обновление системы',
		'apply' => 'Применить',
		'changelog' => 'Список изменений',
		'check' => 'Проверить обновления',
		'copiedFromURL' => 'update.php скопирован из %s в ./data',
		'current_version' => 'Ваша текущая версия',
		'last' => 'Последняя проверка',
		'loading' => 'Обновление…',
		'none' => 'Нет обновлений',
		'releaseChannel' => array(
			'_' => 'Релизный канал',
			'edge' => 'Плавающий релиз (“edge”)',
			'latest' => 'Стабильный релиз (“latest”)',
		),
		'title' => 'Обновить систему',
		'viaGit' => 'Обновление с помощью git и GitHub.com запущено',
	),
	'user' => array(
		'admin' => 'Администратор',
		'article_count' => 'Статей',
		'back_to_manage' => '← Вернуться к списку пользователей',
		'create' => 'Создать нового пользователя',
		'database_size' => 'Размер базы данных',
		'email' => 'Адрес электронной почты',
		'enabled' => 'Включён',
		'feed_count' => 'Лент',
		'is_admin' => 'Является администратором',
		'language' => 'Язык',
		'last_user_activity' => 'Последняя активность',
		'list' => 'Список пользователей',
		'number' => 'Имеется %d созданный аккаунт',
		'numbers' => 'Имеется %d созданных аккаунтов',
		'password_form' => 'Пароль<br /><small>(для входа через веб-форму)</small>',
		'password_format' => 'Не менее 7 символов',
		'title' => 'Управление пользователями',
		'username' => 'Имя пользователя',
	),
);
conf.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/conf.php'
View Content
<?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' => 'Максимальное количество статей',	// DIRTY
		'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' => 'For compatible themes only',	// TODO
			'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' => 'Предыдущая',
		),
	),
	'profile' => array(
		'_' => 'Настройки профиля',
		'api' => 'Настройки API',
		'delete' => array(
			'_' => 'Удаление аккаунта',
			'warn' => 'Ваш аккаунт и вся связанная с ним информация будут удалены.',
		),
		'email' => 'Адрес электронной почты',
		'password_api' => 'Пароль API<br /><small>(например, для мобильных приложений)</small>',
		'password_form' => 'Пароль<br /><small>(для входа через веб-форму)</small>',
		'password_format' => 'Не менее 7 символов',
		'title' => 'Профиль',
	),
	'query' => array(
		'_' => 'Пользовательские запросы',
		'deprecated' => 'Этот запрос больше не действителен. Связанная категория или лента была удалена.',
		'description' => 'Description',	// TODO
		'filter' => array(
			'_' => 'Применённые фильтры:',
			'categories' => 'Отображение по категории',
			'feeds' => 'Отображение по ленте',
			'order' => 'Сортировать по дате',
			'search' => 'Выражение',
			'shareOpml' => 'Включить общий доступ с помощью OPML к соответствующим категориям и лентам',
			'shareRss' => 'Включить общий доступ с помощью HTML &amp; RSS',
			'state' => 'Состояние',
			'tags' => 'Отображение по метке',
			'type' => 'Тип',
		),
		'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' => 'Image URL',	// TODO
		'name' => 'Название',
		'no_filter' => 'Нет фильтров',
		'number' => 'Запрос №%d',
		'order_asc' => 'Показывать сначала старые статьи',
		'order_desc' => 'Показывать сначала новые статьи',
		'search' => 'Искать “%s”',
		'share' => array(
			'_' => 'Поделиться запросом по ссылке',
			'greader' => 'Shareable link to the GReader JSON',	// TODO
			'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' => 'Показывать все статьи в избранном по умолчанию',
		'article' => array(
			'authors_date' => array(
				'_' => 'Авторы и дата',
				'both' => 'В верхнем и нижнем колонтитулах',
				'footer' => 'В нижнем колонтитуле',
				'header' => 'В верхнем колонтитуле',
				'none' => 'Нигде',
			),
			'feed_name' => array(
				'above_title' => 'Над титулом и метками',
				'none' => 'Нигде',
				'with_authors' => 'В строке с автором и датой',
			),
			'feed_title' => 'Титул ленты',
			'icons' => array(
				'_' => 'Article icons position<br /><small>(Reading view only)</small>',	// TODO
				'above_title' => 'Above title',	// TODO
				'with_authors' => 'In authors and date row',	// TODO
			),
			'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' => 'если идентичный заголовок уже существует в верхних <i>n</i> новейших статьях',
		),
		'show' => array(
			'_' => 'Какие статьи отображать',
			'active_category' => 'Активную категорию',
			'adaptive' => 'Адаптивно',
			'all_articles' => 'Показывать все статьи',
			'all_categories' => 'Все категории',
			'no_category' => 'Никакие категории',
			'remember_categories' => 'Запоминать открытые категории',
			'unread' => 'Только непрочитанные',
		),
		'show_fav_unread_help' => 'Также относится к меткам',
		'sides_close_article' => 'Нажатия мышью за пределами текста статьи закрывают статью',
		'sort' => array(
			'_' => 'Порядок сортировки',
			'newer_first' => 'Сначала новые',
			'older_first' => 'Сначала старые',
		),
		'star' => array(
			'when' => 'Mark an article as favourite…',	// TODO
		),
		'sticky_post' => 'Прикрепить статью к верху при открытии',
		'title' => 'Чтение',
		'view' => array(
			'default' => 'Вид по умолчанию',
			'global' => 'Глобальный вид',
			'normal' => 'Обычный вид',
			'reader' => 'Вид для чтения',
		),
	),
	'sharing' => array(
		'_' => 'Обмен',
		'add' => 'Добавить способ обмена',
		'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_dropdown' => 'Закрыть меню',
		'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_media' => 'Играть/приостановить медиаконтент',
		'user_filter' => 'К пользовательским запросам',
		'user_filter_help' => 'Если запрос единственный, он будет вызван. Иначе запросы доступны по их номеру.',
		'views' => 'Виды',
	),
	'user' => array(
		'articles_and_size' => '%s статей (%s)',
		'current' => 'Текущий пользователь',
		'is_admin' => 'является администратором',
		'users' => 'Пользователи',
	),
);
feedback.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/feedback.php'
View Content
<?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(
	'access' => array(
		'denied' => 'У вас нет разрешения на доступ к этой странице',
		'not_found' => 'Данной страницы не существует',
	),
	'admin' => array(
		'optimization_complete' => 'Оптимизация завершена',
	),
	'api' => array(
		'password' => array(
			'failed' => 'Ваш пароль не может быть изменён',
			'updated' => 'Ваш пароль изменён',
		),
	),
	'auth' => array(
		'login' => array(
			'invalid' => 'Неверный логин',
			'success' => 'Вы вошли',
		),
		'logout' => array(
			'success' => 'Вы вышли',
		),
	),
	'conf' => array(
		'error' => 'Во время сохранения конфигурации возникла ошибка',
		'query_created' => 'Запрос “%s” создан.',
		'shortcuts_updated' => 'Горячие клавиши изменены',
		'updated' => 'Конфигурация изменена',
	),
	'extensions' => array(
		'already_enabled' => '%s уже включено',
		'cannot_remove' => '%s не может быть удалено',
		'disable' => array(
			'ko' => '%s не может быть отключено. <a href="%s">Проверьте логи FreshRSS</a> для подробностей.',
			'ok' => '%s теперь отключено',
		),
		'enable' => array(
			'ko' => '%s не может быть включено. <a href="%s">Проверьте логи FreshRSS</a> для подробностей.',
			'ok' => '%s теперь включено',
		),
		'no_access' => 'У вас нет доступа к %s',
		'not_enabled' => '%s не включено',
		'not_found' => '%s не существует',
		'removed' => '%s удалено',
	),
	'import_export' => array(
		'export_no_zip_extension' => 'На вашем сервере нет расширения ZIP. Пожалуйста, попробуйте экспортировать файлы один за другим.',
		'feeds_imported' => 'Ваши ленты импортированы и теперь будут обновлены. Если вы завершили импортирование, можете нажать на кнопку <i>Обновить ленты</i>.',
		'feeds_imported_with_errors' => 'Ваши ленты импортированы, но возникли ошибки. Если вы завершили импортирование, можете нажать на кнопку <i>Обновить ленты</i>.',
		'file_cannot_be_uploaded' => 'Файл не может быть загружен!',
		'no_zip_extension' => 'На вашем сервере нет расширения ZIP.',
		'zip_error' => 'Ошибка возникла при импорте ZIP.',
	),
	'profile' => array(
		'error' => 'Ваш профиль не может быть изменён',
		'updated' => 'Ваш профиль изменён',
	),
	'sub' => array(
		'actualize' => 'Обновляется',
		'articles' => array(
			'marked_read' => 'Выбранные статьи отмечены прочитанными.',
			'marked_unread' => 'Статьи отмечены непрочитанными.',
		),
		'category' => array(
			'created' => 'Категория %s создана.',
			'deleted' => 'Категория удалена.',
			'emptied' => 'Категория очищена',
			'error' => 'Категория не может быть изменена',
			'name_exists' => 'Категория с таким названием уже существует.',
			'no_id' => 'Вы должны задать id категории.',
			'no_name' => 'Название категории не может быть пустым.',
			'not_delete_default' => 'Вы не можете удалить стандартную категорию!',
			'not_exist' => 'Категории не существует!',
			'over_max' => 'Вы достигли вашего лимита категорий (%d)',
			'updated' => 'Категория изменена.',
		),
		'feed' => array(
			'actualized' => '<em>%s</em> обновлена',
			'actualizeds' => 'RSS-ленты обновлены',
			'added' => 'RSS-лента <em>%s</em> добавлена',
			'already_subscribed' => 'Вы уже подписаны на <em>%s</em>',
			'cache_cleared' => 'Кэш <em>%s</em> очищен',
			'deleted' => 'Лента удалена',
			'error' => 'Лента не может быть изменена',
			'internal_problem' => 'Новостная лента не может быть добавлена. <a href="%s">Проверьте логи FreshRSS</a> для подробностей. Вы можете попробовать принудительно добавить ленту, добавив <code>#force_feed</code> к URL.',
			'invalid_url' => 'URL <em>%s</em> неверный',
			'n_actualized' => '%d лент обновлено',
			'n_entries_deleted' => '%d лент удалено',
			'no_refresh' => 'Нет лент для обновления',
			'not_added' => '<em>%s</em> не может быть добавлена',
			'not_found' => 'Лента не найдена',
			'over_max' => 'Вы достигли ограничения на количество лент (%d)',
			'reloaded' => '<em>%s</em> перезагружена',
			'selector_preview' => array(
				'http_error' => 'Не удалось загрузить содержимое сайта.',
				'no_entries' => 'В этой ленте нет статей. Требуется хотя бы одна статья, чтобы создать предпросмотр.',
				'no_feed' => 'Внутренняя ошибка (лента не найдена).',
				'no_result' => 'Нет совпадений с селектором. В качестве запасного варианта, вместо этого отображается оригинальный текст ленты.',
				'selector_empty' => 'Селектор пуст. Необходимо задать селектор, чтобы создать предпросмотр.',
			),
			'updated' => 'Лента изменена',
		),
		'purge_completed' => 'Очистка выполнена (%d статей удалено)',
	),
	'tag' => array(
		'created' => 'Метка “%s” создана.',
		'error' => 'Метка не может быть изменена!',
		'name_exists' => 'Метка с таким названием уже существует.',
		'renamed' => 'Метка “%s” переименована в “%s”.',
		'updated' => 'Метка изменена.',
	),
	'update' => array(
		'can_apply' => 'FreshRSS будет обновлён до <strong>версии %s</strong>.',
		'error' => 'Процесс обновления столкнулся с ошибкой: %s',
		'file_is_nok' => 'Новая <strong>версия %s</strong> доступна, но проверьте права к директории <em>%s</em>. У веб-сервера должно быть право на запись',
		'finished' => 'Обновление завершено!',
		'none' => 'Нет обновлений',
		'server_not_found' => 'Сервер обновлений не найден. [%s]',
	),
	'user' => array(
		'created' => array(
			'_' => 'Пользователь %s создан',
			'error' => 'Пользователь %s не может быть создан',
		),
		'deleted' => array(
			'_' => 'Пользователь %s удалён',
			'error' => 'Пользователь %s не может быть удалён',
		),
		'updated' => array(
			'_' => 'Пользователь %s изменён',
			'error' => 'Пользователь %s не был изменён',
		),
	),
);
gen.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/gen.php'
View Content
<?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(
	'action' => array(
		'actualize' => 'Обновить ленту',
		'add' => 'Добавить',
		'back' => '← Вернуться',
		'back_to_rss_feeds' => '← Вернуться к вашим RSS-лентам',
		'cancel' => 'Отменить',
		'create' => 'Создать',
		'delete_muted_feeds' => 'Удалить заглушенные ленты',
		'demote' => 'Понизить',
		'disable' => 'Отключить',
		'empty' => 'Опустошить',
		'enable' => 'Включить',
		'export' => 'Экспортировать',
		'filter' => 'Отфильтровать',
		'import' => 'Импортировать',
		'load_default_shortcuts' => 'Загрузить горячие клавиши по умолчанию',
		'manage' => 'Настроить',
		'mark_read' => 'Отметить прочитанным',
		'menu' => array(
			'open' => 'Open menu',	// TODO
		),
		'nav_buttons' => array(
			'next' => 'Next article',	// TODO
			'prev' => 'Previous article',	// TODO
			'up' => 'Go up',	// TODO
		),
		'open_url' => 'Открыть URL',
		'promote' => 'Продвинуть',
		'purge' => 'Запустить очистку',
		'refresh_opml' => 'Обновить OPML',
		'remove' => 'Удалить',
		'rename' => 'Переименовать',
		'see_website' => 'Посмотреть на сайте',
		'submit' => 'Отправить',
		'truncate' => 'Удалить все статьи',
		'update' => 'Изменить',
	),
	'auth' => array(
		'accept_tos' => 'Я принимаю <a href="%s">Условия предоставления услуг</a>.',
		'email' => 'Адрес электронной почты',
		'keep_logged_in' => 'Не выходить из системы <small>(%s дней)</small>',
		'login' => 'Войти',
		'logout' => 'Выйти',
		'password' => array(
			'_' => 'Пароль',
			'format' => '<small>Не менее 7 символов</small>',
		),
		'registration' => array(
			'_' => 'Новый аккаунт',
			'ask' => 'Создать аккаунт?',
			'title' => 'Создание аккаунта',
		),
		'username' => array(
			'_' => 'Имя пользователя',
			'format' => '<small>Не более 16 буквенно-цифровых символов</small>',
		),
	),
	'date' => array(
		'Apr' => '\\а\\п\\р\\е\\л\\я',
		'Aug' => '\\а\\в\\г\\у\\с\\т\\а',
		'Dec' => '\\д\\е\\к\\а\\б\\р\\я',
		'Feb' => '\\ф\\е\\в\\р\\а\\л\\я',
		'Jan' => '\\я\\н\\в\\а\\р\\я',
		'Jul' => '\\и\\ю\\л\\я',
		'Jun' => '\\и\\ю\\н\\я',
		'Mar' => '\\м\\а\\р\\т\\а',
		'May' => '\\м\\а\\я',
		'Nov' => '\\н\\о\\я\\б\\р\\я',
		'Oct' => '\\о\\к\\т\\я\\б\\р\\я',
		'Sep' => '\\с\\е\\н\\т\\я\\б\\р\\я',
		'apr' => 'апр',
		'april' => 'апреля',
		'aug' => 'авг',
		'august' => 'августа',
		'before_yesterday' => 'До вчерашнего дня',
		'dec' => 'дек',
		'december' => 'декабря',
		'feb' => 'фев',
		'february' => 'февраля',
		'format_date' => 'j %s Y',	// IGNORE
		'format_date_hour' => 'j %s Y \\в H\\:i',	// IGNORE
		'fri' => 'Пт',
		'jan' => 'янв',
		'january' => 'января',
		'jul' => 'июл',
		'july' => 'июля',
		'jun' => 'июн',
		'june' => 'июня',
		'last_2_year' => 'Последние два года',
		'last_3_month' => 'Последние три месяца',
		'last_3_year' => 'Последние три года',
		'last_5_year' => 'Последние пять лет',
		'last_6_month' => 'Последние шесть месяцев',
		'last_month' => 'Последний месяц',
		'last_week' => 'Последняя неделя',
		'last_year' => 'Последний год',
		'mar' => 'мар',
		'march' => 'марта',
		'may' => 'мая',
		'may_' => 'май',
		'mon' => 'Пн',
		'month' => 'месяцы',
		'nov' => 'ноя',
		'november' => 'ноября',
		'oct' => 'окт',
		'october' => 'октября',
		'sat' => 'Сб',
		'sep' => 'сен',
		'september' => 'сентября',
		'sun' => 'Вс',
		'thu' => 'Чт',
		'today' => 'Сегодня',
		'tue' => 'Вт',
		'wed' => 'Ср',
		'yesterday' => 'Вчера',
	),
	'dir' => 'ltr',	// IGNORE
	'freshrss' => array(
		'_' => 'FreshRSS',	// IGNORE
		'about' => 'О FreshRSS',
	),
	'js' => array(
		'category_empty' => 'Пустая категория',
		'confirm_action' => 'Вы уверены, что хотите выполнить это действие? Это нельзя отменить!',
		'confirm_action_feed_cat' => 'Вы уверены, что хотите выполнить это действие? Вы потеряете связанные избранные статьи и пользовательские запросы. Это нельзя отменить!',
		'feedback' => array(
			'body_new_articles' => '%%d новых статей в FreshRSS.',
			'body_unread_articles' => '(Непрочитанные: %%d)',
			'request_failed' => 'Запрос не удался. Возможно, это вызвано проблемами с подключением к Интернет.',
			'title_new_articles' => 'FreshRSS: новые статьи!',
		),
		'labels_empty' => 'Нет меток',
		'new_article' => 'Появились новые статьи. Нажмите, чтобы обновить страницу.',
		'should_be_activated' => 'JavaScript должен быть включён',
	),
	'lang' => array(
		'cs' => 'Čeština',	// IGNORE
		'de' => 'Deutsch',	// IGNORE
		'el' => 'Ελληνικά',	// IGNORE
		'en' => 'English',	// IGNORE
		'en-us' => 'English (United States)',	// IGNORE
		'es' => 'Español',	// IGNORE
		'fa' => 'فارسی',	// IGNORE
		'fr' => 'Français',	// IGNORE
		'he' => 'עברית',	// IGNORE
		'hu' => 'Magyar',	// IGNORE
		'id' => 'Bahasa Indonesia',	// IGNORE
		'it' => 'Italiano',	// IGNORE
		'ja' => '日本語',	// IGNORE
		'ko' => '한국어',	// IGNORE
		'lv' => 'Latviešu',	// IGNORE
		'nl' => 'Nederlands',	// IGNORE
		'oc' => 'Occitan',	// IGNORE
		'pl' => 'Polski',	// IGNORE
		'pt-br' => 'Português (Brasil)',	// IGNORE
		'ru' => 'Русский',	// IGNORE
		'sk' => 'Slovenčina',	// IGNORE
		'tr' => 'Türkçe',	// IGNORE
		'zh-cn' => '简体中文',	// IGNORE
		'zh-tw' => '正體中文',	// IGNORE
	),
	'menu' => array(
		'about' => 'О проекте',
		'account' => 'Аккаунт',
		'admin' => 'Администрирование',
		'archiving' => 'Архивирование',
		'authentication' => 'Аутентификация',
		'check_install' => 'Проверка установки',
		'configuration' => 'Конфигурация',
		'display' => 'Отображение',
		'extensions' => 'Расширения',
		'logs' => 'Журнал',
		'queries' => 'Пользовательские запросы',
		'reading' => 'Чтение',
		'search' => 'Искать слова или #теги',
		'search_help' => 'Дополнительные <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">параметры поиска</a> приведены в документации',
		'sharing' => 'Обмен',
		'shortcuts' => 'Горячие клавиши',
		'stats' => 'Статистика',
		'system' => 'Системные настройки',
		'update' => 'Обновление системы',
		'user_management' => 'Управление пользователями',
		'user_profile' => 'Профиль',
	),
	'period' => array(
		'days' => 'дней',
		'hours' => 'часов',
		'months' => 'месяцев',
		'weeks' => 'недель',
		'years' => 'лет',
	),
	'share' => array(
		'Known' => 'Сайты на Known',
		'archiveIS' => 'archive.is',	// IGNORE
		'archiveORG' => 'archive.org',	// IGNORE
		'archivePH' => 'archive.ph',	// IGNORE
		'buffer' => 'Buffer',	// IGNORE
		'clipboard' => 'Буфер обмена',
		'diaspora' => 'Diaspora*',	// IGNORE
		'email' => 'Электронная почта',
		'email-webmail-firefox-fix' => 'Электронная почта (webmail - правка для Firefox)',
		'facebook' => 'Facebook',	// IGNORE
		'gnusocial' => 'GNU social',	// IGNORE
		'jdh' => 'Journal du hacker',	// IGNORE
		'lemmy' => 'Lemmy',	// IGNORE
		'linkding' => 'Linkding',	// IGNORE
		'linkedin' => 'LinkedIn',	// IGNORE
		'mastodon' => 'Mastodon',	// IGNORE
		'movim' => 'Movim',	// IGNORE
		'omnivore' => 'Omnivore',	// IGNORE
		'pinboard' => 'Pinboard',	// IGNORE
		'pinterest' => 'Pinterest',	// IGNORE
		'pocket' => 'Pocket',	// IGNORE
		'print' => 'Распечатать',
		'raindrop' => 'Raindrop.io',	// IGNORE
		'reddit' => 'Reddit',	// IGNORE
		'shaarli' => 'Shaarli',	// IGNORE
		'twitter' => 'Twitter',	// IGNORE
		'wallabag' => 'wallabag v1',	// IGNORE
		'wallabagv2' => 'wallabag v2',	// IGNORE
		'web-sharing-api' => 'Системный обмен',
		'whatsapp' => 'Whatsapp',	// IGNORE
		'xing' => 'Xing',	// IGNORE
	),
	'short' => array(
		'attention' => 'Предупреждение!',
		'blank_to_disable' => 'Оставьте поле пустым, чтобы отключить',
		'by_author' => 'От:',
		'by_default' => 'По умолчанию',
		'damn' => 'О нет!',
		'default_category' => 'Без категории',
		'no' => 'Нет',
		'not_applicable' => 'Недоступно',
		'ok' => 'Отлично!',
		'or' => 'или',
		'yes' => 'Да',
	),
	'stream' => array(
		'load_more' => 'Загрузить больше статей',
		'mark_all_read' => 'Отметить всё прочитанным',
		'nothing_to_load' => 'Больше нет статей',
	),
);
install.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/install.php'
View Content
<?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(
	'action' => array(
		'finish' => 'Завершить установку',
		'fix_errors_before' => 'Пожалуйста, исправьте все ошибки, прежде чем перейти к следующему шагу.',
		'keep_install' => 'Сохранить предыдущую конфигурацию',
		'next_step' => 'Перейти к следующему шагу',
		'reinstall' => 'Переустановить FreshRSS',
	),
	'auth' => array(
		'form' => 'Веб-форма (традиционный, необходим JavaScript)',
		'http' => 'HTTP (для опытных пользователей с HTTPS)',
		'none' => 'Без аутентификации (небезопасно)',
		'password_form' => 'Пароль<br /><small>(для входа через веб-форму)</small>',
		'password_format' => 'Не менее 7 символов',
		'type' => 'Способ аутентификации',
	),
	'bdd' => array(
		'_' => 'База данных',
		'conf' => array(
			'_' => 'Настройки базы данных',
			'ko' => 'Проверьте настройки базы данных.',
			'ok' => 'Настройки базы данных сохранены.',
		),
		'host' => 'Хост',
		'password' => 'Пароль базы данных',
		'prefix' => 'Префикс таблицы',
		'type' => 'Тип базы данных',
		'username' => 'Имя пользователя базы данных',
	),
	'check' => array(
		'_' => 'Проверки',
		'already_installed' => 'Мы обнаружили, что FreshRSS уже установлен!',
		'cache' => array(
			'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку кэша в порядке.',
		),
		'ctype' => array(
			'nok' => 'У вас не установлена необходимая библиотека для проверки типов символов (php-ctype).',
			'ok' => 'У вас установлена необходимая библиотека для проверки типов символов (ctype).',
		),
		'curl' => array(
			'nok' => 'У вас нет расширения cURL (пакет php-curl).',
			'ok' => 'У вас установлено расширение cURL.',
		),
		'data' => array(
			'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на <em>./data/</em> в порядке.',
		),
		'dom' => array(
			'nok' => 'У вас не установлена необходимая библиотека для просмотра DOM (пакет php-xml).',
			'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.',
		),
		'favicons' => array(
			'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку значков в порядке.',
		),
		'fileinfo' => array(
			'nok' => 'У вас нет расширения PHP fileinfo (пакет fileinfo).',
			'ok' => 'У вас установлено расширение fileinfo.',
		),
		'json' => array(
			'nok' => 'У вас нет рекомендуемой библиотеки для разбора JSON.',
			'ok' => 'У вас установлена необходимая библиотека для разбора JSON.',
		),
		'mbstring' => array(
			'nok' => 'У вас не установлена рекомендуемая библиотека mbstring для Unicode.',
			'ok' => 'У вас установлена рекомендуемая библиотека mbstring для Unicode.',
		),
		'pcre' => array(
			'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).',
			'ok' => 'У вас установлена необходимая библиотека для работы с регулярными выражениями (PCRE).',
		),
		'pdo' => array(
			'nok' => 'У вас не установлен PDO или один из необходимых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).',
			'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).',
		),
		'php' => array(
			'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.',
			'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.',
		),
		'reload' => 'Проверьте еще раз',
		'tmp' => array(
			'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку temp в порядке.',
		),
		'unknown_process_username' => 'неизвестно',
		'users' => array(
			'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.',
			'ok' => 'Права на папку users в порядке.',
		),
		'xml' => array(
			'nok' => 'У вас нет необходимой библиотеки для разбора XML.',
			'ok' => 'У вас установлена необходимая библиотека для разбора XML.',
		),
	),
	'conf' => array(
		'_' => 'Общие настройки',
		'ok' => 'Общие настройки сохранены.',
	),
	'congratulations' => 'Поздравляем!',
	'default_user' => array(
		'_' => 'Имя пользователя по умолчанию',
		'max_char' => 'не более 16 буквенно-цифровых символов',
	),
	'fix_errors_before' => 'Пожалуйста, исправьте ошибки, прежде чем перейти к следующему шагу.',
	'javascript_is_better' => 'Пользоваться FreshRSS приятнее с включённым JavaScript',
	'js' => array(
		'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы уверены, что хотите продолжить?',
	),
	'language' => array(
		'_' => 'Язык',
		'choose' => 'Выберите язык для FreshRSS',
		'defined' => 'Язык выбран.',
	),
	'missing_applied_migrations' => 'Что-то пошло не так; вам следует создать пустой файл <em>%s</em> вручную.',
	'ok' => 'Установка успешно завершена.',
	'session' => array(
		'nok' => 'Похоже, веб-сервер имеет неправильные настройки кук! Куки нужны для сессий PHP.',
	),
	'step' => 'шаг %d',
	'steps' => 'Шаги',
	'this_is_the_end' => 'Завершение',
	'title' => 'Установка · FreshRSS',
);
sub.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/sub.php'
View Content
<?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(
	'api' => array(
		'documentation' => 'Скопируйте URL для использования во внешнем инструменте.',
		'title' => 'API',	// IGNORE
	),
	'bookmarklet' => array(
		'documentation' => 'Перетяните эту кнопку на вашу панель закладок, или нажмите правой кнопкой мыши и выберите "Добавить ссылку в закладки". Нажимайте кнопку "Подписаться" на любой странице, на которую вы хотите подписаться.<br />',
		'label' => 'Подписаться',
		'title' => 'Букмарклет',
	),
	'category' => array(
		'_' => 'Категория',
		'add' => 'Добавить категория',
		'archiving' => 'Архивирование',
		'dynamic_opml' => array(
			'_' => 'Динамичный OPML',
			'help' => 'Предоставьте ссылку на <a href="http://opml.org/" target="_blank">OPML файл</a> чтобы динамично заполнять эту категорию лентами',
		),
		'empty' => 'Пустая категория',
		'expand' => 'Expand category',	// TODO
		'information' => 'Информация',
		'open' => 'Open category',	// TODO
		'opml_url' => 'OPML ссылка',
		'position' => 'Положение отображения',
		'position_help' => 'Влияет на порядок отображения категорий',
		'title' => 'Заголовок',
	),
	'feed' => array(
		'accept_cookies' => 'Разрешить файлы cookies',
		'accept_cookies_help' => 'Разрешить серверу ленты использовать cookies (файлы будут храниться в памяти лишь в течение запроса)',
		'add' => 'Добавить RSS-ленту',
		'advanced' => 'Дополнительно',
		'archiving' => 'Архивирование',
		'auth' => array(
			'configuration' => 'Логин',
			'help' => 'Разрешить доступ к HTTP защищённым RSS-лентам',
			'http' => 'HTTP аутентификация',
			'password' => 'Пароль HTTP',
			'username' => 'Имя пользователя HTTP',
		),
		'clear_cache' => 'Всегда очищать кэш',
		'content_action' => array(
			'_' => 'Действие с содержимым, когда извлекается содержимое статьи',
			'append' => 'Добавить после существующего содержимого',
			'prepend' => 'Добавить перед существующим содержимым',
			'replace' => 'Заменить существующее содержимое',
		),
		'css_cookie' => 'Использовать куки при извлечении содержимого статьи',
		'css_cookie_help' => 'Пример: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>',
		'css_help' => 'Получает усечённые RSS-ленты (осторожно, требует больше времени!)',
		'css_path' => 'CSS селектор статьи на сайте',
		'css_path_filter' => array(
			'_' => 'CSS селектор элемента для удаления',
			'help' => 'CSS селектор может быть списком как: <kbd>.footer, .aside</kbd>',
		),
		'description' => 'Описание',
		'empty' => 'Лента пустая. Пожалуйста, убедитесь, что её до сих пор обслуживают.',
		'error' => 'С этой лентой возникла проблема. Пожалуйста, убедитесь, что она всегда досягаема. Затем снова обновите её.',
		'export-as-opml' => array(
			'download' => 'Скачать',
			'help' => 'XML файл (data subset. <a href="https://freshrss.github.io/FreshRSS/en/developers/OPML.html" target="_blank">See documentation</a>)',	// DIRTY
			'label' => 'Экспортировать как OPML',
		),
		'filteractions' => array(
			'_' => 'Действия фильтрации',
			'help' => 'Введите по одному поисковому фильтру в строке. См. <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">документацию</a>.',
		),
		'information' => 'Информация',
		'keep_min' => 'Оставлять статей не менее',
		'kind' => array(
			'_' => 'Тип источника ленты',
			'html_xpath' => array(
				'_' => 'HTML + XPath (парсинг веб-страниц)',
				'feed_title' => array(
					'_' => 'заголовка ленты',
					'help' => 'Пример: <code>//title</code> или статичная строка: <code>"Моя пользовательская лента"</code>',
				),
				'help' => '<dfn><a href="https://www.w3.org/TR/xpath-10/" target="_blank">XPath 1.0</a></dfn> – стандартный язык запросов для опытных пользователей, который поддерживается в FreshRSS для парсинга веб-страниц.',
				'item' => array(
					'_' => 'поиска новых <strong>элементов</strong><br /><small>(самое важное)</small>',
					'help' => 'Пример: <code>//div[@class="news-item"]</code>',
				),
				'item_author' => array(
					'_' => 'автора элемента',
					'help' => 'Может также быть статической строкой. Пример: <code>"Аноним"</code>',
				),
				'item_categories' => 'тегов элемента',
				'item_content' => array(
					'_' => 'содержимого элемента',
					'help' => 'Пример, чтобы взять элемент целиком: <code>.</code>',
				),
				'item_thumbnail' => array(
					'_' => 'эскиза элемента',
					'help' => 'Пример: <code>descendant::img/@src</code>',
				),
				'item_timeFormat' => array(
					'_' => 'Пользовательский формат даты/времени',
					'help' => 'Выборочно. Формат поддерживается <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> как <code>d-m-Y H:i:s</code>',
				),
				'item_timestamp' => array(
					'_' => 'даты элемента',
					'help' => 'Результат будет распарсен с <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
				),
				'item_title' => array(
					'_' => 'заголовка элемента',
					'help' => 'Используйте, в частности, <a href="https://developer.mozilla.org/docs/Web/XPath/Axes" target="_blank">ось XPath</a> <code>descendant::</code>, наподобие <code>descendant::h2</code>',
				),
				'item_uid' => array(
					'_' => 'уникальный ID элемента',
					'help' => 'Выборочно. Пример: <code>descendant::div/@data-uri</code>',
				),
				'item_uri' => array(
					'_' => 'ссылки элемента (URL)',
					'help' => 'Пример: <code>descendant::a/@href</code>',
				),
				'relative' => 'XPath (относительно элемента) для:',
				'xpath' => 'XPath для:',
			),
			'json_dotnotation' => array(
				'_' => 'JSON (точечная нотация)',
				'feed_title' => array(
					'_' => 'название ленты',
					'help' => 'Пример: <code>meta.title</code> или статический текст: <code>"Моя пользовательская лента"</code>',
				),
				'help' => 'JSON с точечной нотацией использует точки между объектами и квадратные скобки для массивов (например: <code>data.items[0].title</code>)',
				'item' => array(
					'_' => 'Найти новые <strong>элементы</strong><br /><small>(самое важное)</small>',
					'help' => 'JSON-путь к массиву, содержащему элементы, например: <code>newsItems</code>',
				),
				'item_author' => 'автор элемента',
				'item_categories' => 'теги элемента',
				'item_content' => array(
					'_' => 'содержимое элемента',
					'help' => 'Ключ, по которому найден контент, например: <code>content</code>',
				),
				'item_thumbnail' => array(
					'_' => 'эскиз элемента',
					'help' => 'Пример: <code>image</code>',
				),
				'item_timeFormat' => array(
					'_' => 'Пользовательский формат даты/времени',
					'help' => 'Выборочно. Формат, поддерживаемый <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a>, например <code>d-m-Y H:i:s</code>',
				),
				'item_timestamp' => array(
					'_' => 'дата элемента',
					'help' => 'Результат будет распарсен используя <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
				),
				'item_title' => 'название элемента',
				'item_uid' => 'уникальный ID элемента',
				'item_uri' => array(
					'_' => 'ссылка на элемент (URL)',
					'help' => 'Пример: <code>permalink</code>',
				),
				'json' => 'точечная нотация для:',
				'relative' => 'JSON-путь (относительный до элемента) для:',
			),
			'jsonfeed' => 'JSON Лента',
			'rss' => 'RSS / Atom (по умолчанию)',
			'xml_xpath' => 'XML + XPath',	// IGNORE
		),
		'maintenance' => array(
			'clear_cache' => 'Очистить кэш',
			'clear_cache_help' => 'Очистить кэш для этой ленты.',
			'reload_articles' => 'Перезагрузить статьи',
			'reload_articles_help' => 'Перезагрузить столько статей и извлечь полное содержимое, если задан селектор.',
			'title' => 'Обслуживание',
		),
		'max_http_redir' => 'Максимум HTTP переводов',
		'max_http_redir_help' => 'Установите 0 или оставьте пустым, чтобы отключить, -1 для бесконечных переводов',
		'method' => array(
			'_' => 'HTTP метод',
		),
		'method_help' => 'Полезная нагрузка POST автоматически поддерживает <code>application/x-www-form-urlencoded</code> и <code>application/json</code>',
		'method_postparams' => 'Полезная нагрузка POST',
		'moved_category_deleted' => 'Когда вы удаляете категорию, ленты категории автоматически попадают в категорию <em>%s</em>.',
		'mute' => array(
			'_' => 'заглушить',
			'state_is_muted' => 'This feed is muted',	// TODO
		),
		'no_selected' => 'Ленты не выбраны.',
		'number_entries' => '%d статей',
		'open_feed' => 'Open feed %s',	// TODO
		'priority' => array(
			'_' => 'Видимость',
			'archived' => 'Не показывать (архивировано)',
			'category' => 'Показывать в категории ленты',
			'important' => 'Показывать в важных лентах',
			'main_stream' => 'Показывать в основном потоке',
		),
		'proxy' => 'Указать прокси для извлечения этой ленты',
		'proxy_help' => 'Выберите протокол (например, SOCKS5) и введите адрес прокси (например, <kbd>127.0.0.1:1080</kbd> или <kbd>username:password@127.0.0.1:1080</kbd>)',	// DIRTY
		'selector_preview' => array(
			'show_raw' => 'Показать исходный код',
			'show_rendered' => 'Показать содержимое',
		),
		'show' => array(
			'all' => 'Показать все ленты',
			'error' => 'Показать только ленты с ошибками',
		),
		'showing' => array(
			'error' => 'Показываются только ленты с ошибками',
		),
		'ssl_verify' => 'Проверять безопасность SSL',
		'stats' => 'Статистика',
		'think_to_add' => 'Вы можете добавить ленты.',
		'timeout' => 'Таймаут в секундах',
		'title' => 'Заголовок',
		'title_add' => 'Добавить RSS-ленту',
		'ttl' => 'Не обновлять автоматически чаще, чем каждые',
		'url' => 'URL ленты',
		'useragent' => 'Указать юзерагент для извлечения лент',
		'useragent_help' => 'Пример: <kbd>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)</kbd>',
		'validator' => 'Проверить валидность ленты',
		'website' => 'URL сайта',
		'websub' => 'Моментальные оповещения посредством WebSub',
	),
	'import_export' => array(
		'export' => 'Экспорт',
		'export_labelled' => 'Экспортировать ваши помеченные статьи',
		'export_opml' => 'Экспортировать список лент (OPML)',
		'export_starred' => 'Экспортировать ваше избранное',
		'feed_list' => 'Список из %s статей',
		'file_to_import' => 'Файл для импорта<br />(OPML, JSON or ZIP)',
		'file_to_import_no_zip' => 'Файл для импорта<br />(OPML or JSON)',
		'import' => 'Импорт',
		'starred_list' => 'Список избранных статей',
		'title' => 'Импорт / экспорт',
	),
	'menu' => array(
		'add' => 'Добавить ленту или категорию',
		'import_export' => 'Импорт / экспорт',
		'label_management' => 'Управление метками',
		'stats' => array(
			'idle' => 'Неактивные ленты',
			'main' => 'Основная статистика',
			'repartition' => 'Расределение статей',
		),
		'subscription_management' => 'Управление подписками',
		'subscription_tools' => 'Инструменты подписки',
	),
	'tag' => array(
		'auto_label' => 'Добавьте это название к новым статьям',
		'name' => 'Название',
		'new_name' => 'Новое название',
		'old_name' => 'Старое название',
	),
	'title' => array(
		'_' => 'Управление подписками',
		'add' => 'Добавить ленту или категорию',
		'add_category' => 'Добавить категорию',
		'add_dynamic_opml' => 'Добавить динамичный OPML',
		'add_feed' => 'Добавить ленту',
		'add_label' => 'Добавить метку',
		'delete_label' => 'Удалить метку',
		'feed_management' => 'Управление RSS-лентами',
		'rename_label' => 'Переименовать метку',
		'subscription_tools' => 'Инструменты подписки',
	),
);
user.php
wget 'https://sme10.lists2.roe3.org/FreshRSS/app/i18n/ru/user.php'
View Content
<?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(
	'email' => array(
		'feedback' => array(
			'invalid' => 'Этот адрес электронной почты неверный.',
			'required' => 'Требуется адрес электронной почты.',
		),
		'validation' => array(
			'change_email' => 'Вы можете изменить ваш адрес электронной почты <a href="%s">на странице профиля</a>.',
			'email_sent_to' => 'Мы отправили вам письмо по адресу <strong>%s</strong>. Пожалуйста, следуйте инструкциям в нём, чтобы подтвердить ваш адрес электронной почты.',
			'feedback' => array(
				'email_failed' => 'Мы не смогли отправить вам письмо из-за ошибки конфигурации сервера.',
				'email_sent' => 'Письмо отправлено на ваш адрес электронной почты.',
				'error' => 'Не удалось подтвердить адрес электронной почты.',
				'ok' => 'Адрес электронной почты подтверждён.',
				'unnecessary' => 'Этот адрес электронной почты уже подтверждён.',
				'wrong_token' => 'Не удалось подтвердить этот адрес электронной почты из-за неверного токена.',
			),
			'need_to' => 'Вам необходимо подтвердить адрес электронной почты, прежде чем вы сможете пользоваться %s.',
			'resend_email' => 'Отправить ещё раз',
			'title' => 'Подтверждение адреса электронной почты',
		),
	),
	'mailer' => array(
		'email_need_validation' => array(
			'body' => 'Вы зарегистрировались в %s, но вам всё ещё нужно подтвердить ваш адрес электронной почты. Для этого просто перейдите по ссылке:',
			'title' => 'Вам нужно подтвердить ваш аккаунт',
			'welcome' => 'Добро пожаловать, %s,',
		),
	),
	'password' => array(
		'invalid' => 'Неверный пароль.',
	),
	'tos' => array(
		'feedback' => array(
			'invalid' => 'Вы должны принять Условия предоставления услуг, чтобы зарегистрироваться.',
		),
	),
	'username' => array(
		'invalid' => 'Неверное имя пользователя.',
		'taken' => 'Имя пользователя %s занято.',
	),
);