Ver Fonte

[i18n] Russian translation (#6467)

* added russian translation

* Fix tests

* Missing ignore

---------

Co-authored-by: krm_shrrftdnv <Karim.Sharafutdinov@easycomm.ru>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
Karim há 1 ano atrás
pai
commit
f193a910dc
6 ficheiros alterados com 84 adições e 84 exclusões
  1. 16 16
      app/i18n/ru/admin.php
  2. 25 25
      app/i18n/ru/conf.php
  3. 5 5
      app/i18n/ru/feedback.php
  4. 3 3
      app/i18n/ru/gen.php
  5. 1 1
      app/i18n/ru/index.php
  6. 34 34
      app/i18n/ru/sub.php

+ 16 - 16
app/i18n/ru/admin.php

@@ -19,8 +19,8 @@ return array(
 		'http' => 'HTTP (для опытных пользователей с HTTPS)',
 		'none' => 'Без аутентификации (небезопасно)',
 		'title' => 'Аутентификации',
-		'token' => 'Master authentication token',	// TODO
-		'token_help' => 'Allows access to all RSS outputs of the user as well as refreshing feeds without authentication:',	// TODO
+		'token' => 'Главный токен аутентификации',
+		'token_help' => 'Обеспечивает доступ ко всем выходным данным RSS пользователя, а также к обновлению лент без проверки подлинности:',
 		'type' => 'Способ аутентификации',
 		'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ',
 	),
@@ -160,8 +160,8 @@ return array(
 		'_' => 'Системные настройки',
 		'auto-update-url' => 'URL сервера для автоматического обновления',
 		'base-url' => array(
-			'_' => 'Base URL',	// TODO
-			'recommendation' => 'Automatic recommendation: <kbd>%s</kbd>',	// TODO
+			'_' => 'Основной URL-адрес',
+			'recommendation' => 'Автоматическая рекомендация: <kbd>%s</kbd>',
 		),
 		'cookie-duration' => array(
 			'help' => 'в секундах',
@@ -187,33 +187,33 @@ return array(
 			),
 			'title' => 'Форма регистрации пользователей',
 		),
-		'sensitive-parameter' => 'Sensitive parameter. Edit manually in <kbd>./data/config.php</kbd>',	// TODO
+		'sensitive-parameter' => 'Важный параметр. Отредактируйте вручную в <kbd>./data/config.php</kbd>',
 		'tos' => array(
-			'disabled' => 'is not given',	// TODO
-			'enabled' => '<a href="./?a=tos">is enabled</a>',	// TODO
-			'help' => 'How to <a href="https://freshrss.github.io/FreshRSS/en/admins/12_User_management.html#enable-terms-of-service-tos" target="_blank">enable the Terms of Service</a>',	// TODO
+			'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' => 'About <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',	// TODO
+			'help' => 'О <a href="https://freshrss.github.io/FreshRSS/en/users/WebSub.html" target="_blank">WebSub</a>',
 		),
 	),
 	'update' => array(
 		'_' => 'Обновление системы',
 		'apply' => 'Применить',
-		'changelog' => 'Changelog',	// TODO
+		'changelog' => 'Список изменений',
 		'check' => 'Проверить обновления',
-		'copiedFromURL' => 'update.php copied from %s to ./data',	// TODO
+		'copiedFromURL' => 'update.php скопирован из %s в ./data',
 		'current_version' => 'Ваша текущая версия',
 		'last' => 'Последняя проверка',
-		'loading' => 'Updating…',	// TODO
+		'loading' => 'Обновление…',
 		'none' => 'Нет обновлений',
 		'releaseChannel' => array(
-			'_' => 'Release channel',	// TODO
-			'edge' => 'Rolling release (“edge”)',	// TODO
-			'latest' => 'Stable release (“latest”)',	// TODO
+			'_' => 'Релизный канал',
+			'edge' => 'Плавающий релиз (“edge”)',
+			'latest' => 'Стабильный релиз (“latest”)',
 		),
 		'title' => 'Обновить систему',
-		'viaGit' => 'Update via git and GitHub.com started',	// TODO
+		'viaGit' => 'Обновление с помощью git и GitHub.com запущено',
 	),
 	'user' => array(
 		'admin' => 'Администратор',

+ 25 - 25
app/i18n/ru/conf.php

@@ -33,9 +33,9 @@ return array(
 	'display' => array(
 		'_' => 'Отображение',
 		'darkMode' => array(
-			'_' => 'Automatic dark mode (beta)',	// TODO
-			'auto' => 'Auto',	// TODO
-			'no' => 'No',	// TODO
+			'_' => 'Автоматический темный режим (beta)',
+			'auto' => 'Авто',
+			'no' => 'Нет',
 		),
 		'icon' => array(
 			'bottom_line' => 'Нижняя линия',
@@ -56,8 +56,8 @@ return array(
 		'theme' => array(
 			'_' => 'Тема',
 			'deprecated' => array(
-				'_' => 'Deprecated',	// TODO
-				'description' => 'This theme is no longer supported and will be not available anymore in a <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">future release of FreshRSS</a>',	// TODO
+				'_' => 'Deprecated',	// IGNORE
+				'description' => 'Эта тема устарела и будет недоступна в FreshRSS <a href="https://freshrss.github.io/FreshRSS/en/users/05_Configuration.html#theme" target="_blank">в будущем релизе</a>',
 			),
 		),
 		'theme_not_available' => 'Тема “%s” больше не доступна. Пожалуйста выберите другю тему.',
@@ -68,14 +68,14 @@ return array(
 			'portrait' => 'Вертикальный',
 			'square' => 'Квадратный',
 		),
-		'timezone' => 'Time zone',	// TODO
+		'timezone' => 'Часовой пояс',
 		'title' => 'Отображение',
 		'website' => array(
-			'full' => 'Icon and name',	// TODO
-			'icon' => 'Icon only',	// TODO
-			'label' => 'Website',	// TODO
-			'name' => 'Name only',	// TODO
-			'none' => 'None',	// TODO
+			'full' => 'Значок и название',
+			'icon' => 'Только значок',
+			'label' => 'Вебсайт',
+			'name' => 'Только название',
+			'none' => 'Ничего',
 		),
 		'width' => array(
 			'content' => 'Ширина содержимого',
@@ -120,20 +120,20 @@ return array(
 			'feeds' => 'Отображение по ленте',
 			'order' => 'Сортировать по дате',
 			'search' => 'Выражение',
-			'shareOpml' => 'Enable sharing by OPML of corresponding categories and feeds',	// TODO
-			'shareRss' => 'Enable sharing by HTML &amp; RSS',	// TODO
+			'shareOpml' => 'Включить общий доступ с помощью OPML к соответствующим категориям и лентам',
+			'shareRss' => 'Включить общий доступ с помощью HTML &amp; RSS',
 			'state' => 'Состояние',
 			'tags' => 'Отображение по метке',
 			'type' => 'Тип',
 		),
 		'get_all' => 'Показать все статьи',
-		'get_all_labels' => 'Display articles with any label',	// TODO
+		'get_all_labels' => 'Показать все статьи с любыми метками',
 		'get_category' => 'Показать категорию “%s”',
 		'get_favorite' => 'Показать избранные статьи',
 		'get_feed' => 'Показать ленту “%s”',
-		'get_important' => 'Display articles from important feeds',	// TODO
-		'get_label' => 'Display articles with “%s” label',	// TODO
-		'help' => 'See the <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">documentation for user queries and resharing by HTML / RSS / OPML</a>.',	// TODO
+		'get_important' => 'Отображать статьи из важных лент',
+		'get_label' => 'Показать статьи с “%s” меткой',
+		'help' => 'Смотрите <a href="https://freshrss.github.io/FreshRSS/en/users/user_queries.html" target="_blank">документацию по пользовательским запросам и повторному обмену данными с помощью HTML / RSS / OPML</a>.',
 		'name' => 'Название',
 		'no_filter' => 'Нет фильтров',
 		'number' => 'Запрос №%d',
@@ -141,11 +141,11 @@ return array(
 		'order_desc' => 'Показывать сначала новые статьи',
 		'search' => 'Искать “%s”',
 		'share' => array(
-			'_' => 'Share this query by link',	// TODO
-			'help' => 'Give this link if you want to share this query with anyone',	// TODO
-			'html' => 'Shareable link to the HTML page',	// TODO
-			'opml' => 'Shareable link to the OPML list of feeds',	// TODO
-			'rss' => 'Shareable link to the RSS feed',	// TODO
+			'_' => 'Поделиться запросом по ссылке',
+			'help' => 'Дайте эту ссылку, если хотите поделиться этим запросом с кем-либо',
+			'html' => 'Ссылка доступа на HTML-страницу',
+			'opml' => 'Ссылка доступа на список лент в формате OPML',
+			'rss' => 'Ссылка доступа на RSS-ленту',
 		),
 		'state_0' => 'Показать все статьи',
 		'state_1' => 'Показать прочитанные статьи',
@@ -217,9 +217,9 @@ return array(
 		'read' => array(
 			'article_open_on_website' => 'когда статья открывается на её сайте',
 			'article_viewed' => 'когда статья просматривается',
-			'focus' => 'when focused (except for important feeds)',	// TODO
+			'focus' => 'когда статья выбрана (за исключением важных лент)',
 			'keep_max_n_unread' => 'Максимальное количество непрочитанных статей',
-			'scroll' => 'во время прокрутки (except for important feeds)',	// DIRTY
+			'scroll' => 'во время прокрутки (за исключением важных лент)',
 			'upon_gone' => 'когда это больше не в новостной ленте',
 			'upon_reception' => 'по получении статьи',
 			'when' => 'Отмечать статью прочитанной…',
@@ -296,7 +296,7 @@ return array(
 		'other_action' => 'Другие действия',
 		'previous_article' => 'Открыть предыдущую статью',
 		'reading_view' => 'Переключиться на вид для чтения',
-		'rss_view' => 'Открыть как RSS-канал',
+		'rss_view' => 'Открыть как RSS-ленту',
 		'see_on_website' => 'Посмотреть на сайте',
 		'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd>, чтобы отметить предыдущие статьи прочитанными<br />+ <kbd>⇧ Shift</kbd>, чтобы отметить все статьи прочитанными',
 		'skip_next_article' => 'Перейти к следующей, не раскрывая',

+ 5 - 5
app/i18n/ru/feedback.php

@@ -57,11 +57,11 @@ return array(
 	),
 	'import_export' => array(
 		'export_no_zip_extension' => 'На вашем сервере нет расширения ZIP. Пожалуйста, попробуйте экспортировать файлы один за другим.',
-		'feeds_imported' => 'Ваши ленты импортированы и теперь будут обновлены / Your feeds have been imported. If you are done importing, you can now click the <i>Update feeds</i> button.',	// DIRTY
-		'feeds_imported_with_errors' => 'Ваши ленты импортированы, но возникли ошибки / Your feeds have been imported, but some errors occurred. If you are done importing, you can now click the <i>Update feeds</i> button.',	// DIRTY
+		'feeds_imported' => 'Ваши ленты импортированы и теперь будут обновлены. Если вы завершили импортирование, можете нажать на кнопку <i>Обновить ленты</i>.',
+		'feeds_imported_with_errors' => 'Ваши ленты импортированы, но возникли ошибки. Если вы завершили импортирование, можете нажать на кнопку <i>Обновить ленты</i>.',
 		'file_cannot_be_uploaded' => 'Файл не может быть загружен!',
 		'no_zip_extension' => 'На вашем сервере нет расширения ZIP.',
-		'zip_error' => 'Ошибка возникла при импорте ZIP.',	// DIRTY
+		'zip_error' => 'Ошибка возникла при импорте ZIP.',
 	),
 	'profile' => array(
 		'error' => 'Ваш профиль не может быть изменён',
@@ -116,10 +116,10 @@ return array(
 	),
 	'tag' => array(
 		'created' => 'Метка “%s” создана.',
-		'error' => 'Label could not be updated!',	// TODO
+		'error' => 'Метка не может быть изменена!',
 		'name_exists' => 'Метка с таким названием уже существует.',
 		'renamed' => 'Метка “%s” переименована в “%s”.',
-		'updated' => 'Label has been updated.',	// TODO
+		'updated' => 'Метка изменена.',
 	),
 	'update' => array(
 		'can_apply' => 'FreshRSS будет обновлён до <strong>версии %s</strong>.',

+ 3 - 3
app/i18n/ru/gen.php

@@ -134,7 +134,7 @@ return array(
 			'request_failed' => 'Запрос не удался. Возможно, это вызвано проблемами с подключением к Интернет.',
 			'title_new_articles' => 'FreshRSS: новые статьи!',
 		),
-		'labels_empty' => 'No labels',	// TODO
+		'labels_empty' => 'Нет меток',
 		'new_article' => 'Появились новые статьи. Нажмите, чтобы обновить страницу.',
 		'should_be_activated' => 'JavaScript должен быть включён',
 	),
@@ -178,7 +178,7 @@ return array(
 		'queries' => 'Пользовательские запросы',
 		'reading' => 'Чтение',
 		'search' => 'Искать слова или #теги',
-		'search_help' => 'See documentation for advanced <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">search parameters</a>',	// TODO
+		'search_help' => 'Дополнительные <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">параметры поиска</a> приведены в документации',
 		'sharing' => 'Обмен',
 		'shortcuts' => 'Горячие клавиши',
 		'stats' => 'Статистика',
@@ -203,7 +203,7 @@ return array(
 		'clipboard' => 'Буфер обмена',
 		'diaspora' => 'Diaspora*',	// IGNORE
 		'email' => 'Электронная почта',
-		'email-webmail-firefox-fix' => 'Email (webmail - fix for Firefox)',	// TODO
+		'email-webmail-firefox-fix' => 'Электронная почта (webmail - правка для Firefox)',
 		'facebook' => 'Facebook',	// IGNORE
 		'gnusocial' => 'GNU social',	// IGNORE
 		'jdh' => 'Journal du hacker',	// IGNORE

+ 1 - 1
app/i18n/ru/index.php

@@ -45,7 +45,7 @@ return array(
 		'bookmark_query' => 'Сохранить текущий запрос',
 		'favorites' => 'Избранное (%s)',
 		'global_view' => 'Глобальный вид',
-		'important' => 'Important feeds',	// TODO
+		'important' => 'Важные ленты',
 		'main_stream' => 'Основной поток',
 		'mark_all_read' => 'Отметить всё прочитанным',
 		'mark_cat_read' => 'Отметить категорию прочитанной',

+ 34 - 34
app/i18n/ru/sub.php

@@ -67,13 +67,13 @@ return array(
 		'empty' => 'Лента пустая. Пожалуйста, убедитесь, что её до сих пор обслуживают.',
 		'error' => 'С этой лентой возникла проблема. Пожалуйста, убедитесь, что она всегда досягаема. Затем снова обновите её.',
 		'export-as-opml' => array(
-			'download' => 'Download',	// TODO
-			'help' => 'XML file',	// TODO
-			'label' => 'Export as OPML',	// TODO
+			'download' => 'Скачать',
+			'help' => 'XML файл',
+			'label' => 'Экспортировать как OPML',
 		),
 		'filteractions' => array(
 			'_' => 'Действия фильтрации',
-			'help' => 'Введите по одному поисковому фильтру в строке. Operators <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">see documentation</a>.',	// DIRTY
+			'help' => 'Введите по одному поисковому фильтру в строке. См. <a href="https://freshrss.github.io/FreshRSS/en/users/10_filter.html#with-the-search-field" target="_blank">документацию</a>.',
 		),
 		'information' => 'Информация',
 		'keep_min' => 'Оставлять статей не менее',
@@ -127,46 +127,46 @@ return array(
 				'xpath' => 'XPath для:',
 			),
 			'json_dotnotation' => array(
-				'_' => 'JSON (dot notation)',	// TODO
+				'_' => 'JSON (точечная нотация)',
 				'feed_title' => array(
-					'_' => 'feed title',	// TODO
-					'help' => 'Example: <code>meta.title</code> or a static string: <code>"My custom feed"</code>',	// TODO
+					'_' => 'название ленты',
+					'help' => 'Пример: <code>meta.title</code> или статический текст: <code>"Моя пользовательская лента"</code>',
 				),
-				'help' => 'A JSON dot notated uses dots between objects and brackets for arrays (e.g. <code>data.items[0].title</code>)',	// TODO
+				'help' => 'JSON с точечной нотацией использует точки между объектами и квадратные скобки для массивов (например: <code>data.items[0].title</code>)',
 				'item' => array(
-					'_' => 'finding news <strong>items</strong><br /><small>(most important)</small>',	// TODO
-					'help' => 'JSON path to the array containing the items, e.g. <code>newsItems</code>',	// TODO
+					'_' => 'Найти новые <strong>элементы</strong><br /><small>(самое важное)</small>',
+					'help' => 'JSON-путь к массиву, содержащему элементы, например: <code>newsItems</code>',
 				),
-				'item_author' => 'item author',	// TODO
-				'item_categories' => 'item tags',	// TODO
+				'item_author' => 'автор элемента',
+				'item_categories' => 'теги элемента',
 				'item_content' => array(
-					'_' => 'item content',	// TODO
-					'help' => 'Key under which the content is found, e.g. <code>content</code>',	// TODO
+					'_' => 'содержимое элемента',
+					'help' => 'Ключ, по которому найден контент, например: <code>content</code>',
 				),
 				'item_thumbnail' => array(
-					'_' => 'item thumbnail',	// TODO
-					'help' => 'Example: <code>image</code>',	// TODO
+					'_' => 'эскиз элемента',
+					'help' => 'Пример: <code>image</code>',
 				),
 				'item_timeFormat' => array(
-					'_' => 'Custom date/time format',	// TODO
-					'help' => 'Optional. A format supported by <a href="https://php.net/datetime.createfromformat" target="_blank"><code>DateTime::createFromFormat()</code></a> such as <code>d-m-Y H:i:s</code>',	// TODO
+					'_' => 'Пользовательский формат даты/времени',
+					'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(
-					'_' => 'item date',	// TODO
-					'help' => 'The result will be parsed by <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',	// TODO
+					'_' => 'дата элемента',
+					'help' => 'Результат будет распарсен используя <a href="https://php.net/strtotime" target="_blank"><code>strtotime()</code></a>',
 				),
-				'item_title' => 'item title',	// TODO
-				'item_uid' => 'item unique ID',	// TODO
+				'item_title' => 'название элемента',
+				'item_uid' => 'уникальный ID элемента',
 				'item_uri' => array(
-					'_' => 'item link (URL)',	// TODO
-					'help' => 'Example: <code>permalink</code>',	// TODO
+					'_' => 'ссылка на элемент (URL)',
+					'help' => 'Пример: <code>permalink</code>',
 				),
-				'json' => 'dot notation for:',	// TODO
-				'relative' => 'dot notated path (relative to item) for:',	// TODO
+				'json' => 'точечная нотация для:',
+				'relative' => 'JSON-путь (относительный до элемента) для:',
 			),
-			'jsonfeed' => 'JSON Feed',	// TODO
+			'jsonfeed' => 'JSON Лента',
 			'rss' => 'RSS / Atom (по умолчанию)',
-			'xml_xpath' => 'XML + XPath',	// TODO
+			'xml_xpath' => 'XML + XPath',	// IGNORE
 		),
 		'maintenance' => array(
 			'clear_cache' => 'Очистить кэш',
@@ -178,10 +178,10 @@ return array(
 		'max_http_redir' => 'Максимум HTTP переводов',
 		'max_http_redir_help' => 'Установите 0 или оставьте пустым, чтобы отключить, -1 для бесконечных переводов',
 		'method' => array(
-			'_' => 'HTTP Method',	// TODO
+			'_' => 'HTTP метод',
 		),
-		'method_help' => 'The POST payload has automatic support for <code>application/x-www-form-urlencoded</code> and <code>application/json</code>',	// TODO
-		'method_postparams' => 'Payload for POST',	// TODO
+		'method_help' => 'Полезная нагрузка POST автоматически поддерживает <code>application/x-www-form-urlencoded</code> и <code>application/json</code>',
+		'method_postparams' => 'Полезная нагрузка POST',
 		'moved_category_deleted' => 'Когда вы удаляете категорию, ленты категории автоматически попадают в категорию <em>%s</em>.',
 		'mute' => 'заглушить',
 		'no_selected' => 'Ленты не выбраны.',
@@ -190,11 +190,11 @@ return array(
 			'_' => 'Видимость',
 			'archived' => 'Не показывать (архивировано)',
 			'category' => 'Показывать в категории ленты',
-			'important' => 'Show in important feeds',	// TODO
+			'important' => 'Показывать в важных лентах',
 			'main_stream' => 'Показывать в основном потоке',
 		),
 		'proxy' => 'Указать прокси для извлечения этой ленты',
-		'proxy_help' => 'Выберите протокол (например, SOCKS5) и введите адрес прокси (например, <kbd>127.0.0.1:1080</kbd> or <kbd>username:password@127.0.0.1:1080</kbd>)',	// DIRTY
+		'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' => 'Показать содержимое',
@@ -245,7 +245,7 @@ return array(
 		'subscription_tools' => 'Инструменты подписки',
 	),
 	'tag' => array(
-		'auto_label' => 'Add this label to new articles',	// TODO
+		'auto_label' => 'Добавьте это название к новым статьям',
 		'name' => 'Название',
 		'new_name' => 'Новое название',
 		'old_name' => 'Старое название',