diff options
| author | 2021-04-11 14:41:45 +0300 | |
|---|---|---|
| committer | 2021-04-11 13:41:45 +0200 | |
| commit | 27372b5bb7e8059c8cc4d2ff5c2fe5a0315a0191 (patch) | |
| tree | 57a9ddad80e5ac7fc6eb85738440f33cfad39843 | |
| parent | a57fa9975a5c7276ca61b501502c0789af4983f5 (diff) | |
i18n Update for Russian language (#3579)
| -rw-r--r-- | app/i18n/ru/admin.php | 118 | ||||
| -rw-r--r-- | app/i18n/ru/conf.php | 334 | ||||
| -rw-r--r-- | app/i18n/ru/feedback.php | 170 | ||||
| -rw-r--r-- | app/i18n/ru/gen.php | 300 | ||||
| -rw-r--r-- | app/i18n/ru/index.php | 98 | ||||
| -rw-r--r-- | app/i18n/ru/install.php | 74 | ||||
| -rw-r--r-- | app/i18n/ru/sub.php | 204 | ||||
| -rw-r--r-- | app/i18n/ru/user.php | 40 |
8 files changed, 669 insertions, 669 deletions
diff --git a/app/i18n/ru/admin.php b/app/i18n/ru/admin.php index 6e609ab0e..dd0187695 100644 --- a/app/i18n/ru/admin.php +++ b/app/i18n/ru/admin.php @@ -2,22 +2,22 @@ return array( 'auth' => array( - 'allow_anonymous' => 'Разрешить анонимное чтение статей для пользователя по умолчанию (%s)', - 'allow_anonymous_refresh' => 'Разрешить анонимное обновление статей', - 'api_enabled' => 'Включить доступ к <abbr>API</abbr> <small>(необходимо для мобильных приложений)</small>', - 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', - 'none' => 'Без аутентификации (небезопасный)', + 'allow_anonymous' => 'Разрешить анонимное чтение статей пользователя по умолчанию (%s)', + 'allow_anonymous_refresh' => 'Разрешить анонимную актуализацию статей', + 'api_enabled' => 'Позволить <abbr>API</abbr> доступ <small>(необходимо для мобильных приложений)</small>', + 'form' => 'Веб-форма (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для опытных пользователей с HTTPS)', + 'none' => 'Без аутентификации (небезопасно)', 'title' => 'Аутентификации', 'title_reset' => 'Сброс аутентицикации', 'token' => 'Токен аутентификации', - 'token_help' => 'Разрешает доступ к RSS ленте пользователя по умолчанию без аутентификации:', - 'type' => 'Метод аутентификации', + 'token_help' => 'Разрешает доступ к RSS-лентам пользователя по умолчанию без аутентификации:', + 'type' => 'Способ аутентификации', 'unsafe_autologin' => 'Разрешить небезопасный автоматический вход с использованием следующего формата: ', ), 'check_install' => array( 'cache' => array( - 'nok' => 'Проверьте права доступа к папке <em>./data/cache</em>. Сервер HTTP должен иметь права на запись в эту папку', + 'nok' => 'Проверьте права доступа к папке <em>./data/cache</em>. Веб-сервер должен иметь право на запись в эту папку', 'ok' => 'Права на <em>./data/cache</em> в порядке.', ), 'categories' => array( @@ -37,7 +37,7 @@ return array( 'ok' => 'У вас установлено расширение cURL.', ), 'data' => array( - 'nok' => 'Проверьте права доступа к папке <em>./data</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>./data</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на <em>./data/</em> в порядке.', ), 'database' => 'Установка базы данных', @@ -50,7 +50,7 @@ return array( 'ok' => 'Таблица статей (entry) настроена правильно.', ), 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке <em>./data/favicons</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>./data/favicons</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку значков в порядке.', ), 'feeds' => array( @@ -67,8 +67,8 @@ return array( 'ok' => 'У вас установлена библиотека для работы с JSON.', ), 'mbstring' => array( - 'nok' => 'Cannot find the recommended mbstring library for Unicode.', // TODO - Translation - 'ok' => 'You have the recommended mbstring library for Unicode.', // TODO - Translation + 'nok' => 'У вас не установлена рекомендуемая библиотека mbstring для Unicode.', + 'ok' => 'У вас установлена рекомендуемая библиотека mbstring для Unicode.', ), 'pcre' => array( 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', @@ -79,7 +79,7 @@ return array( 'ok' => 'У вас установлен PDO и как минимум один из поддерживаемых драйверов (pdo_mysql, pdo_sqlite, pdo_pgsql).', ), 'php' => array( - '_' => 'PHP installation', // TODO - Translation + '_' => 'Инсталляция PHP', 'nok' => 'У вас установлен PHP версии %s, но FreshRSS необходима версия не ниже %s.', 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', ), @@ -89,36 +89,36 @@ return array( ), 'title' => 'Проверка установки и настройки', 'tokens' => array( - 'nok' => 'Проверьте права доступа к папке <em>./data/tokens</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>./data/tokens</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку tokens в порядке.', ), 'users' => array( - 'nok' => 'Проверьте права доступа к папке <em>./data/users</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>./data/users</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку users в порядке.', ), 'zip' => array( - 'nok' => 'You lack ZIP extension (php-zip package).', - 'ok' => 'You have the ZIP extension.', // TODO - Translation + 'nok' => 'У вас не установлено расширение ZIP (пакет php-zip).', + 'ok' => 'У вас установлено расширение ZIP.', ), ), 'extensions' => array( - 'author' => 'Author', // TODO - Translation - 'community' => 'Available community extensions', // TODO - Translation - 'description' => 'Description', // TODO - Translation + 'author' => 'Автор', + 'community' => 'Доступные расширения сообщества', + 'description' => 'Описание', 'disabled' => 'Отключены', - 'empty_list' => 'Расширения не установлены', + 'empty_list' => 'Нет установленных расширений', 'enabled' => 'Включены', - 'latest' => 'Installed', // TODO - Translation - 'name' => 'Name', // TODO - Translation - 'no_configure_view' => 'Это расширение нельзя настроить.', + 'latest' => 'Установлено', + 'name' => 'Название', + 'no_configure_view' => 'Это расширение не требует настройки.', 'system' => array( '_' => 'Системные расширения', - 'no_rights' => 'Системные расширения (у вас нет к ним доступа)', + 'no_rights' => 'Системное расширение (у вас нет необходимых разрешений)', ), 'title' => 'Расширения', - 'update' => 'Update available', // TODO - Translation + 'update' => 'Доступно обновление', 'user' => 'Расширения пользователя', - 'version' => 'Version', // TODO - Translation + 'version' => 'Версия', ), 'stats' => array( '_' => 'Статистика', @@ -131,17 +131,17 @@ return array( 'entry_per_hour' => 'За час (в среднем - %.2f сообщений)', 'entry_per_month' => 'За месяц (в среднем - %.2f сообщений)', 'entry_repartition' => 'Перерасределение статей', - 'feed' => 'Подписка', - 'feed_per_category' => 'Подписок в категории', - 'idle' => 'Неактивные подписки', + 'feed' => 'Лента', + 'feed_per_category' => 'Лент в категории', + 'idle' => 'Неактивные ленты', 'main' => 'Основная статистика', 'main_stream' => 'Основной поток', 'menu' => array( - 'idle' => 'Неактивные подписки', + 'idle' => 'Неактивные ленты', 'main' => 'Основная статистика', 'repartition' => 'Перерасределение статей', ), - 'no_idle' => 'Нет неактивных подписок!', + 'no_idle' => 'Нет неактивных лент!', 'number_entries' => 'статей: %d', 'percent_of_total' => '%% от всего', 'repartition' => 'Перераспределение статей', @@ -150,19 +150,19 @@ return array( 'status_total' => 'Всего', 'status_unread' => 'Не прочитано', 'title' => 'Статистика', - 'top_feed' => '10 лучших подписок', + 'top_feed' => '10 лучших лент', ), 'system' => array( '_' => 'Системные настройки', - 'auto-update-url' => 'Адрес сервера для автоматического обновления', + 'auto-update-url' => 'URL сервера для автоматического обновления', 'cookie-duration' => array( - 'help' => 'in seconds', // TODO - Translation - 'number' => 'Duration to keep logged in', // TODO - Translation + 'help' => 'в секундах', + 'number' => 'Оставаться в системе на протяжении', ), - 'force_email_validation' => 'Force email address validation', // TODO - Translation - 'instance-name' => 'Название этого сервера', - 'max-categories' => 'Количество категорий на пользователя', - 'max-feeds' => 'Количество статей на пользователя', + 'force_email_validation' => 'Обязать подтверждать адрес электронной почты', + 'instance-name' => 'Название экземпляра', + 'max-categories' => 'Максимальное количество категорий на пользователя', + 'max-feeds' => 'Максимальное количество лент на пользователя', 'registration' => array( 'help' => '0 означает неограниченное количество пользователей', 'number' => 'Максимальное количество пользователей', @@ -174,31 +174,31 @@ return array( 'check' => 'Проверить обновления', 'current_version' => 'Ваша текущая версия FreshRSS: %s.', 'last' => 'Последняя проверка: %s', - 'none' => 'Нечего обновлять', + 'none' => 'Нет обновлений', 'title' => 'Обновить систему', ), 'user' => array( - 'admin' => 'Administrator', // TODO - Translation - 'article_count' => 'Articles', // TODO - Translation + 'admin' => 'Администратор', + 'article_count' => 'Статей', 'articles_and_size' => '%s статей (%s)', - 'back_to_manage' => '← Return to user list', // TODO - Translation + 'back_to_manage' => '← Вернуться к списку пользователей', 'create' => 'Создать нового пользователя', - 'database_size' => 'Database size', // TODO - Translation - 'delete_users' => 'Delete user', // TODO - Translation - 'email' => 'Email address', // TODO - Translation - 'enabled' => 'Enabled', // TODO - Translation - 'feed_count' => 'Feeds', // TODO - Translation - 'is_admin' => 'Is admin', // TODO - Translation + 'database_size' => 'Размер базы данных', + 'delete_users' => 'Удалить пользователя', + 'email' => 'Адрес электронной почты', + 'enabled' => 'Включён', + 'feed_count' => 'Лент', + 'is_admin' => 'Является администратором', 'language' => 'Язык', - 'last_user_activity' => 'Last user activity', // TODO - Translation - 'list' => 'User list', // TODO - Translation - 'number' => 'На данный момент создан %d аккаунт', - 'numbers' => 'На данный момент аккаунтов создано: %d', - 'password_form' => 'Пароль<br /><small>(для входа через Веб-форму)</small>', - 'password_format' => 'Минимум 7 символов', - 'selected' => 'Selected user', // TODO - Translation + 'last_user_activity' => 'Последняя активность', + 'list' => 'Список пользователей', + 'number' => 'Имеется %d созданный аккаунт', + 'numbers' => 'Имеется %d созданных аккаунтов', + 'password_form' => 'Пароль<br /><small>(для входа через веб-форму)</small>', + 'password_format' => 'Не менее 7 символов', + 'selected' => 'Выбранный пользователь', 'title' => 'Управление пользователями', - 'update_users' => 'Update user', // TODO - Translation + 'update_users' => 'Изменить пользователя', 'user_list' => 'Список пользователей', 'username' => 'Имя пользователя', 'users' => 'Пользователи', diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php index 81a63d156..e9ab0a84f 100644 --- a/app/i18n/ru/conf.php +++ b/app/i18n/ru/conf.php @@ -2,215 +2,215 @@ return array( 'archiving' => array( - '_' => 'Архивация', + '_' => 'Архивирование', 'delete_after' => 'Удалять статьи после', - 'exception' => 'Purge exception', // TODO - Translation - 'help' => 'Каждую подписку можно настроить более гибко', - 'keep_favourites' => 'Never delete favourites', // TODO - Translation - 'keep_labels' => 'Never delete labels', // TODO - Translation - 'keep_max' => 'Maximum number of articles to keep', // TODO - Translation - 'keep_min_by_feed' => 'Minimum number of articles to keep per feed', // TODO - Translation - 'keep_period' => 'Maximum age of articles to keep', // TODO - Translation - 'keep_unreads' => 'Never delete unread articles', // TODO - Translation - 'maintenance' => 'Maintenance', // TODO - Translation + 'exception' => 'Исключения при очистке', + 'help' => 'В индивидуальных настройках лент есть больше опций', + 'keep_favourites' => 'Никогда не удалять избранное', + 'keep_labels' => 'Никогда не удалять метки', + 'keep_max' => 'Максимальное количество статей', + 'keep_min_by_feed' => 'Минимальное количество статей в ленте', + 'keep_period' => 'Максимальный возраст статей', + 'keep_unreads' => 'Никогда не удалять непрочитанные статьи', + 'maintenance' => 'Обслуживание', 'optimize' => 'Оптимизировать базу данных', - 'optimize_help' => 'To do occasionally to reduce the size of the database', - 'policy' => 'Purge policy', // TODO - Translation - 'policy_warning' => 'If no purge policy is selected, every article will be kept.', // TODO - Translation - 'purge_now' => 'Очистить сейчас', - 'title' => 'Архивация', - 'ttl' => 'Не обновлять чаще чем', + 'optimize_help' => 'Выполняйте время от времени, чтобы уменьшить размер базы данных', + 'policy' => 'Политика очистки', + 'policy_warning' => 'Если ни одна политика очистки не выбрана, все статьи будут оставлены.', + 'purge_now' => 'Запустить очистку сейчас', + 'title' => 'Архивирование', + 'ttl' => 'Не актуализировать автоматически чаще чем', ), 'display' => array( - '_' => 'Display', // TODO - Translation + '_' => 'Отображение', 'icon' => array( - 'bottom_line' => 'Bottom line', // TODO - Translation - 'display_authors' => 'Authors', // TODO - Translation - 'entry' => 'Article icons', // TODO - Translation - 'publication_date' => 'Date of publication', // TODO - Translation - 'related_tags' => 'Related tags', - 'sharing' => 'Sharing', // TODO - Translation - 'top_line' => 'Top line', // TODO - Translation + 'bottom_line' => 'Нижняя линия', + 'display_authors' => 'Авторы', + 'entry' => 'Иконки статей', + 'publication_date' => 'Дата публикации', + 'related_tags' => 'Связанные метки', + 'sharing' => 'Поделиться', + 'top_line' => 'Верхняя линия', ), 'language' => 'Язык', 'notif_html5' => array( - 'seconds' => 'seconds (0 means no timeout)', // TODO - Translation - 'timeout' => 'HTML5 notification timeout', // TODO - Translation + 'seconds' => 'секунд (0 - нет таймаута)', + 'timeout' => 'Таймаут уведомлений HTML5', ), - 'show_nav_buttons' => 'Show the navigation buttons', // TODO - Translation + 'show_nav_buttons' => 'Показать кнопки навигации', 'theme' => 'Тема', - 'title' => 'Display', // TODO - Translation + 'title' => 'Отображение', 'width' => array( - 'content' => 'Content width', // TODO - Translation - 'large' => 'Wide', // TODO - Translation - 'medium' => 'Medium', // TODO - Translation - 'no_limit' => 'Full Width', // TODO - Translation - 'thin' => 'Narrow', // TODO - Translation + 'content' => 'Ширина содержимого', + 'large' => 'Широкое', + 'medium' => 'Среднее', + 'no_limit' => 'Во всю ширину', + 'thin' => 'Узкое', ), ), 'profile' => array( - '_' => 'Profile management', // TODO - Translation - 'api' => 'API management', // TODO - Translation + '_' => 'Настройки профиля', + 'api' => 'Настройки API', 'delete' => array( - '_' => 'Account deletion', // TODO - Translation - 'warn' => 'Your account and all the related data will be deleted.', + '_' => 'Удаление аккаунта', + 'warn' => 'Ваш аккаунт и вся связанная с ним информация будут удалены.', ), - 'email' => 'Email address', // TODO - Translation - 'password_api' => 'Password API<br /><small>(e.g., for mobile apps)</small>', - 'password_form' => 'Password<br /><small>(for the Web-form login method)</small>', // TODO - Translation - 'password_format' => 'At least 7 characters', // TODO - Translation - 'title' => 'Profile', // TODO - Translation + 'email' => 'Адрес электронной почты', + 'password_api' => 'Пароль API<br /><small>(например, для мобильных приложений)</small>', + 'password_form' => 'Пароль<br /><small>(для входа через веб-форму)</small>', + 'password_format' => 'Не менее 7 символов', + 'title' => 'Профиль', ), 'query' => array( - '_' => 'User queries', // TODO - Translation - 'deprecated' => 'This query is no longer valid. The referenced category or feed has been deleted.', // TODO - Translation - 'display' => 'Display user query results', // TODO - Translation + '_' => 'Пользовательские запросы', + 'deprecated' => 'Этот запрос больше не действителен. Связанная категория или лента была удалена.', + 'display' => 'Показать результаты пользовательского запроса', 'filter' => array( - '_' => 'Filter applied:', // TODO - Translation - 'categories' => 'Display by category', // TODO - Translation - 'feeds' => 'Display by feed', // TODO - Translation - 'order' => 'Sort by date', // TODO - Translation - 'search' => 'Expression', // TODO - Translation - 'state' => 'State', // TODO - Translation - 'tags' => 'Display by tag', // TODO - Translation - 'type' => 'Type', // TODO - Translation + '_' => 'Применённые фильтры:', + 'categories' => 'Отображение по категории', + 'feeds' => 'Отображение по ленте', + 'order' => 'Сортировать по дате', + 'search' => 'Выражение', + 'state' => 'Состояние', + 'tags' => 'Отображение по метке', + 'type' => 'Тип', ), - 'get_all' => 'Display all articles', // TODO - Translation - 'get_category' => 'Display "%s" category', // TODO - Translation - 'get_favorite' => 'Display favorite articles', - 'get_feed' => 'Display "%s" feed', // TODO - Translation - 'get_tag' => 'Display "%s" label', // TODO - Translation - 'name' => 'Name', // TODO - Translation - 'no_filter' => 'No filter', // TODO - Translation - 'none' => 'You haven’t created any user query yet.', - 'number' => 'Query n°%d', // TODO - Translation - 'order_asc' => 'Display oldest articles first', // TODO - Translation - 'order_desc' => 'Display newest articles first', // TODO - Translation - 'remove' => 'Remove user query', // TODO - Translation - 'search' => 'Search for "%s"', // TODO - Translation - 'state_0' => 'Display all articles', // TODO - Translation - 'state_1' => 'Display read articles', // TODO - Translation - 'state_2' => 'Display unread articles', // TODO - Translation - 'state_3' => 'Display all articles', // TODO - Translation - 'state_4' => 'Display favorite articles', - 'state_5' => 'Display read favorite articles', - 'state_6' => 'Display unread favorite articles', - 'state_7' => 'Display favorite articles', - 'state_8' => 'Display not favorite articles', - 'state_9' => 'Display read not favorite articles', - 'state_10' => 'Display unread not favorite articles', - 'state_11' => 'Display not favorite articles', - 'state_12' => 'Display all articles', // TODO - Translation - 'state_13' => 'Display read articles', // TODO - Translation - 'state_14' => 'Display unread articles', // TODO - Translation - 'state_15' => 'Display all articles', // TODO - Translation - 'title' => 'User queries', // TODO - Translation + 'get_all' => 'Показать все статьи', + 'get_category' => 'Показать категорию "%s"', + 'get_favorite' => 'Показать избранные статьи', + 'get_feed' => 'Показать ленту "%s"', + 'get_tag' => 'Показать метку "%s"', + 'name' => 'Название', + 'no_filter' => 'Нет фильтров', + 'none' => 'Вы ещё не создавали пользовательские запросы.', + 'number' => 'Запрос №%d', + 'order_asc' => 'Показывать сначала старые статьи', + 'order_desc' => 'Показывать сначала новые статьи', + 'remove' => 'Удалить пользовательский запрос', + 'search' => 'Искать "%s"', + '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( - '_' => 'Reading', // TODO - Translation - 'after_onread' => 'After “mark all as read”,', // TODO - Translation - 'always_show_favorites' => 'Show all articles in favourites by default', // TODO - Translation - 'articles_per_page' => 'Number of articles per page', // TODO - Translation - 'auto_load_more' => 'Load next articles at the page bottom', - 'auto_remove_article' => 'Hide articles after reading', // TODO - Translation - 'confirm_enabled' => 'Display a confirmation dialog on “mark all as read” actions', // TODO - Translation - 'display_articles_unfolded' => 'Show articles unfolded by default', // TODO - Translation - 'display_categories_unfolded' => 'Categories to unfold', // TODO - Translation - 'hide_read_feeds' => 'Hide categories & feeds with no unread article (does not work with “Show all articles” configuration)', - 'img_with_lazyload' => 'Use "lazy load" mode to load pictures', // TODO - Translation - 'jump_next' => 'jump to next unread sibling (feed or category)', // TODO - Translation - 'mark_updated_article_unread' => 'Mark updated articles as unread', // TODO - Translation - 'number_divided_when_reader' => 'Divide by 2 in the reading view.', // TODO - Translation + '_' => 'Чтение', + 'after_onread' => 'После «отметить всё прочитанным»', + 'always_show_favorites' => 'Показывать все статьи в избранном по умолчанию', + 'articles_per_page' => 'Количество статей на странице', + 'auto_load_more' => 'Загружать больше статей при достижении низа страницы', + 'auto_remove_article' => 'Скрывать статьи по прочтении', + 'confirm_enabled' => 'Показывать диалог подтверждения при выпыполнении действия «отметить всё прочитанным»', + 'display_articles_unfolded' => 'Показывать статьи развёрнутыми по умолчанию', + 'display_categories_unfolded' => 'Какие категории развёртывать', + 'hide_read_feeds' => 'Скрывать категории и ленты без непрочитанных статей (не работает с «Показывать все статьи»)', + 'img_with_lazyload' => 'Использовать режим "ленивой загрузки" для загрузки картинок', + 'jump_next' => 'перейти к следующей ленте или категории', + 'mark_updated_article_unread' => 'Отмечать обновлённые статьи непрочитанными', + 'number_divided_when_reader' => 'Делится на 2 в виде для чтения.', 'read' => array( - 'article_open_on_website' => 'when the article is opened on its original website', // TODO - Translation - 'article_viewed' => 'when the article is viewed', // TODO - Translation - 'scroll' => 'while scrolling', // TODO - Translation - 'upon_reception' => 'upon reception of the article', - 'when' => 'Mark an article as read…', // TODO - Translation + 'article_open_on_website' => 'когда статья открывается на её сайте', + 'article_viewed' => 'когда статья просматривается', + 'scroll' => 'во время прокрутки', + 'upon_reception' => 'по получении статьи', + 'when' => 'Отмечать статью прочитанной…', ), 'show' => array( - '_' => 'Articles to display', // TODO - Translation - 'active_category' => 'Active category', // TODO - Translation - 'adaptive' => 'Adjust showing', // TODO - Translation - 'all_articles' => 'Show all articles', // TODO - Translation - 'all_categories' => 'All categories', // TODO - Translation - 'no_category' => 'No category', // TODO - Translation - 'remember_categories' => 'Remember open categories', // TODO - Translation - 'unread' => 'Show only unread', // TODO - Translation + '_' => 'Какие статьи отображать', + 'active_category' => 'Активная категория', + 'adaptive' => 'Адаптивно', + 'all_articles' => 'Показывать все статьи', + 'all_categories' => 'Все категории', + 'no_category' => 'Никаких категорий', + 'remember_categories' => 'Запоминать открытые категории', + 'unread' => 'Только непрочитанные', ), - 'show_fav_unread_help' => 'Applies also on labels', // TODO - Translation - 'sides_close_article' => 'Clicking outside of article text area closes the article', // TODO - Translation + 'show_fav_unread_help' => 'Также относится к меткам', + 'sides_close_article' => 'Нажатия мышью за пределами текста статьи закрывают статью', 'sort' => array( - '_' => 'Sort order', // TODO - Translation - 'newer_first' => 'Newer first', - 'older_first' => 'Oldest first', // TODO - Translation + '_' => 'Порядок сортировки', + 'newer_first' => 'Сначала новые', + 'older_first' => 'Сначала старые', ), - 'sticky_post' => 'Stick the article to the top when opened', // TODO - Translation - 'title' => 'Reading', // TODO - Translation + 'sticky_post' => 'Прикрепить статью к верху при открытии', + 'title' => 'Чтение', 'view' => array( - 'default' => 'Default view', // TODO - Translation - 'global' => 'Global view', // TODO - Translation - 'normal' => 'Normal view', // TODO - Translation - 'reader' => 'Reading view', // TODO - Translation + 'default' => 'Вид по умолчанию', + 'global' => 'Глобальный вид', + 'normal' => 'Обычный вид', + 'reader' => 'Вид для чтения', ), ), 'sharing' => array( - '_' => 'Sharing', // TODO - Translation - 'add' => 'Add a sharing method', // TODO - Translation + '_' => 'Поделиться', + 'add' => 'Добавить способ поделиться', 'blogotext' => 'Blogotext', // TODO - Translation 'diaspora' => 'Diaspora*', // TODO - Translation - 'email' => 'Email', // TODO - Translation + 'email' => 'Электронная почта', 'facebook' => 'Facebook', // TODO - Translation - 'more_information' => 'More information', // TODO - Translation - 'print' => 'Print', // TODO - Translation - 'remove' => 'Remove sharing method', // TODO - Translation + 'more_information' => 'Больше информации', + 'print' => 'Распечатать', + 'remove' => 'Удалить способ поделиться', 'shaarli' => 'Shaarli', // TODO - Translation - 'share_name' => 'Share name to display', // TODO - Translation - 'share_url' => 'Share URL to use', // TODO - Translation + 'share_name' => 'Отображаемое имя', + 'share_url' => 'Используемый URL', 'title' => 'Sharing', // TODO - Translation 'twitter' => 'Twitter', // TODO - Translation 'wallabag' => 'wallabag', // TODO - Translation ), 'shortcut' => array( - '_' => 'Shortcuts', // TODO - Translation - 'article_action' => 'Article actions', // TODO - Translation - 'auto_share' => 'Share', // TODO - Translation - 'auto_share_help' => 'If there is only one sharing mode, it is used. Else modes are accessible by their number.', - 'close_dropdown' => 'Close menus', // TODO - Translation - 'collapse_article' => 'Collapse', // TODO - Translation - 'first_article' => 'Skip to the first article', - 'focus_search' => 'Access search box', // TODO - Translation - 'global_view' => 'Switch to global view', // TODO - Translation - 'help' => 'Display documentation', // TODO - Translation - 'javascript' => 'JavaScript must be enabled in order to use shortcuts', // TODO - Translation - 'last_article' => 'Skip to the last article', - 'load_more' => 'Load more articles', // TODO - Translation - 'mark_favorite' => 'Mark as favourite', - 'mark_read' => 'Mark as read', - 'navigation' => 'Navigation', // TODO - Translation - 'navigation_help' => 'With the <kbd>⇧ Shift</kbd> modifier, navigation shortcuts apply on feeds.<br/>With the <kbd>Alt ⎇</kbd> modifier, navigation shortcuts apply on categories.', // TODO - Translation - 'navigation_no_mod_help' => 'The following navigation shortcuts do not support modifiers.', // TODO - Translation - 'next_article' => 'Skip to the next article', - 'non_standard' => 'Some keys (<kbd>%s</kbd>) may not work as shortcuts.', // TODO - Translation - 'normal_view' => 'Switch to normal view', // TODO - Translation - 'other_action' => 'Other actions', // TODO - Translation - 'previous_article' => 'Skip to the previous article', - 'reading_view' => 'Switch to reading view', // TODO - Translation - 'rss_view' => 'Open RSS view in a new tab', // TODO - Translation - 'see_on_website' => 'See on original website', // TODO - Translation - 'shift_for_all_read' => '+ <kbd>Alt ⎇</kbd> to mark previous articles as read<br />+ <kbd>⇧ Shift</kbd> to mark all articles as read', // TODO - Translation - 'skip_next_article' => 'Focus next without opening', // TODO - Translation - 'skip_previous_article' => 'Focus previous without opening', // TODO - Translation - 'title' => 'Shortcuts', // TODO - Translation - 'toggle_media' => 'Play/pause media', // TODO - Translation - 'user_filter' => 'Access user filters', - 'user_filter_help' => 'If there is only one user filter, it is used. Else filters are accessible by their number.', - 'views' => 'Views', // TODO - Translation + '_' => 'Горячие клавиши', + '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' => 'Открыть следующую статью', + '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 articles (%s)', // TODO - Translation - 'current' => 'Current user', // TODO - Translation - 'is_admin' => 'is administrator', // TODO - Translation - 'users' => 'Users', // TODO - Translation + 'articles_and_size' => '%s статей (%s)', + 'current' => 'Текущий пользователь', + 'is_admin' => 'является администратором', + 'users' => 'Пользователи', ), ); diff --git a/app/i18n/ru/feedback.php b/app/i18n/ru/feedback.php index 37ff57d9d..0200e1346 100644 --- a/app/i18n/ru/feedback.php +++ b/app/i18n/ru/feedback.php @@ -2,138 +2,138 @@ return array( 'access' => array( - 'denied' => 'You don’t have permission to access this page', // TODO - Translation - 'not_found' => 'You are looking for a page that doesn’t exist', // TODO - Translation + 'denied' => 'У вас нет разрешения на доступ к этой странице', + 'not_found' => 'Данной страницы не существует', ), 'admin' => array( - 'optimization_complete' => 'Optimisation complete', + 'optimization_complete' => 'Оптимизация завершена', ), 'api' => array( 'password' => array( - 'failed' => 'Your password cannot be modified', // TODO - Translation - 'updated' => 'Your password has been modified', // TODO - Translation + 'failed' => 'Ваш пароль не может быть изменён', + 'updated' => 'Ваш пароль изменён', ), ), 'auth' => array( 'form' => array( - 'not_set' => 'A problem occurred during authentication system configuration. Please try again later.', // TODO - Translation - 'set' => 'Form is now your default authentication system.', // TODO - Translation + 'not_set' => 'Во время конфигурации системы аутентификации возникла проблема. Пожалуйста, попробуйте позже.', + 'set' => 'Форма теперь является вашей системой аутентификации по умолчанию.', ), 'login' => array( - 'invalid' => 'Login is invalid', // TODO - Translation - 'success' => 'You are connected', // TODO - Translation + 'invalid' => 'Неверный логин', + 'success' => 'Вы вошли', ), 'logout' => array( - 'success' => 'You are disconnected', // TODO - Translation + 'success' => 'Вы вышли', ), - 'no_password_set' => 'Administrator password hasn’t been set. This feature isn’t available.', // TODO - Translation + 'no_password_set' => 'Не установлен пароль администратора. Эта функция недоступна.', ), 'conf' => array( - 'error' => 'An error occurred while saving configuration', // TODO - Translation - 'query_created' => 'Query "%s" has been created.', // TODO - Translation - 'shortcuts_updated' => 'Shortcuts have been updated', // TODO - Translation - 'updated' => 'Configuration has been updated', // TODO - Translation + 'error' => 'Во время сохранения конфигурации возникла ошибка', + 'query_created' => 'Запрос "%s" создан.', + 'shortcuts_updated' => 'Горячие клавиши изменены', + 'updated' => 'Конфигурация изменена', ), 'extensions' => array( - 'already_enabled' => '%s is already enabled', // TODO - Translation - 'cannot_remove' => '%s cannot be removed', // TODO - Translation + 'already_enabled' => '%s уже включено', + 'cannot_remove' => '%s не может быть удалено', 'disable' => array( - 'ko' => '%s cannot be disabled. <a href="%s">Check FreshRSS logs</a> for details.', // TODO - Translation - 'ok' => '%s is now disabled', // TODO - Translation + 'ko' => '%s не может быть отключено. <a href="%s">Проверьте логи FreshRSS</a> для подробностей.', + 'ok' => '%s теперь отключено', ), 'enable' => array( - 'ko' => '%s cannot be enabled. <a href="%s">Check FreshRSS logs</a> for details.', // TODO - Translation - 'ok' => '%s is now enabled', // TODO - Translation + 'ko' => '%s не может быть включено. <a href="%s">Проверьте логи FreshRSS</a> для подробностей.', + 'ok' => '%s теперь включено', ), - 'no_access' => 'You have no access on %s', // TODO - Translation - 'not_enabled' => '%s is not enabled yet', - 'not_found' => '%s does not exist', // TODO - Translation - 'removed' => '%s removed', // TODO - Translation + 'no_access' => 'У вас нет доступа к %s', + 'not_enabled' => '%s не включено', + 'not_found' => '%s не существует', + 'removed' => '%s удалено', ), 'import_export' => array( - 'export_no_zip_extension' => 'The ZIP extension is not present on your server. Please try to export files one by one.', // TODO - Translation - 'feeds_imported' => 'Your feeds have been imported and will now be updated', // TODO - Translation - 'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred', - 'file_cannot_be_uploaded' => 'File cannot be uploaded!', // TODO - Translation - 'no_zip_extension' => 'The ZIP extension is not present on your server.', // TODO - Translation - 'zip_error' => 'An error occurred during ZIP import.', // TODO - Translation + 'export_no_zip_extension' => 'На вашем сервере нет расширения ZIP. Пожалуйста, попробуйте экспортировать файлы один за другим.', + 'feeds_imported' => 'Ваши ленты импортированы и теперь будут обновлены', + 'feeds_imported_with_errors' => 'Ваши ленты импортированы, но возникли ошибки', + 'file_cannot_be_uploaded' => 'Файл не может быть загружен!', + 'no_zip_extension' => 'На вашем сервере нет расширения ZIP.', + 'zip_error' => 'Ошибка возникла при импорте ZIP.', ), 'profile' => array( - 'error' => 'Your profile cannot be modified', // TODO - Translation - 'updated' => 'Your profile has been modified', // TODO - Translation + 'error' => 'Ваш профиль не может быть изменён', + 'updated' => 'Ваш профиль изменён', ), 'sub' => array( - 'actualize' => 'Actualise', + 'actualize' => 'Актуализируется', 'articles' => array( - 'marked_read' => 'The selected articles have been marked as read.', // TODO - Translation - 'marked_unread' => 'The articles have been marked as unread.', // TODO - Translation + 'marked_read' => 'Выбранные статьи отмечены прочитанными.', + 'marked_unread' => 'Статьи отмечены непрочитанными.', ), 'category' => array( - 'created' => 'Category %s has been created.', // TODO - Translation - 'deleted' => 'Category has been deleted.', // TODO - Translation - 'emptied' => 'Category has been emptied', // TODO - Translation - 'error' => 'Category cannot be updated', // TODO - Translation - 'name_exists' => 'Category name already exists.', // TODO - Translation - 'no_id' => 'You must precise the id of the category.', - 'no_name' => 'Category name cannot be empty.', // TODO - Translation - 'not_delete_default' => 'You cannot delete the default category!', // TODO - Translation - 'not_exist' => 'The category does not exist!', // TODO - Translation - 'over_max' => 'You have reached your limit of categories (%d)', // TODO - Translation - 'updated' => 'Category has been updated.', // TODO - Translation + '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> has been updated', // TODO - Translation - 'actualizeds' => 'RSS feeds have been updated', // TODO - Translation - 'added' => 'RSS feed <em>%s</em> has been added', // TODO - Translation - 'already_subscribed' => 'You have already subscribed to <em>%s</em>', // TODO - Translation - 'cache_cleared' => '<em>%s</em> cache has been cleared', // TODO - Translation - 'deleted' => 'Feed has been deleted', // TODO - Translation - 'error' => 'Feed cannot be updated', // TODO - Translation - 'internal_problem' => 'The newsfeed could not be added. <a href="%s">Check FreshRSS logs</a> for details. You can try force adding by appending <code>#force_feed</code> to the URL.', // TODO - Translation - 'invalid_url' => 'URL <em>%s</em> is invalid', // TODO - Translation - 'n_actualized' => '%d feeds have been updated', // TODO - Translation - 'n_entries_deleted' => '%d articles have been deleted', // TODO - Translation - 'no_refresh' => 'There are no feeds to refresh', // TODO - Translation - 'not_added' => '<em>%s</em> could not be added', // TODO - Translation - 'not_found' => 'Feed cannot be found', // TODO - Translation - 'over_max' => 'You have reached your limit of feeds (%d)', // TODO - Translation - 'reloaded' => '<em>%s</em> has been reloaded', // TODO - Translation + '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' => 'Failed to load website content.', // TODO - Translation - 'no_entries' => 'There are no articles in this feed. You need at least one article to create a preview.', // TODO - Translation - 'no_feed' => 'Internal error (feed cannot be found).', // TODO - Translation - 'no_result' => 'The selector didn\'t match anything. As a fallback the original feed text will be displayed instead.', // TODO - Translation - 'selector_empty' => 'The selector is empty. You need to define one to create a preview.', // TODO - Translation + 'http_error' => 'Не удалось загрузить содержимое сайта.', + 'no_entries' => 'В этой ленте нет статей. Требуется хотя бы одна статья, чтобы создать предпросмотр.', + 'no_feed' => 'Внутренняя ошибка (лента не найдена).', + 'no_result' => 'Нет совпадений с селектором. В качестве запасного варианта, вместо этого отображается оригинальный текст ленты.', + 'selector_empty' => 'Селектор пуст. Необходимо задать селектор, чтобы создать предпросмотр.', ), - 'updated' => 'Feed has been updated', // TODO - Translation + 'updated' => 'Лента изменена', ), - 'purge_completed' => 'Purge completed (%d articles deleted)', // TODO - Translation + 'purge_completed' => 'Очистка выполнена (%d статей удалено)', ), 'tag' => array( - 'created' => 'Tag "%s" has been created.', // TODO - Translation - 'name_exists' => 'Tag name already exists.', // TODO - Translation - 'renamed' => 'Tag "%s" has been renamed to "%s".', // TODO - Translation + 'created' => 'Метка "%s" создана.', + 'name_exists' => 'Метка с таким названием уже существует.', + 'renamed' => 'Метка "%s" переименована в "%s".', ), 'update' => array( - 'can_apply' => 'FreshRSS will now be updated to the <strong>version %s</strong>.', // TODO - Translation - 'error' => 'The update process has encountered an error: %s', // TODO - Translation - 'file_is_nok' => 'New <strong>version %s</strong> available, but check permissions on <em>%s</em> directory. HTTP server must have have write permission', // TODO - Translation - 'finished' => 'Update complete!', // TODO - Translation - 'none' => 'No update to apply', // TODO - Translation - 'server_not_found' => 'Update server cannot be found. [%s]', // TODO - Translation + '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( - '_' => 'User %s has been created', // TODO - Translation - 'error' => 'User %s cannot be created', // TODO - Translation + '_' => 'Пользователь %s создан', + 'error' => 'Пользователь %s не может быть создан', ), 'deleted' => array( - '_' => 'User %s has been deleted', // TODO - Translation - 'error' => 'User %s cannot be deleted', // TODO - Translation + '_' => 'Пользователь %s удалён', + 'error' => 'Пользователь %s не может быть удалён', ), 'updated' => array( - '_' => 'User %s has been updated', // TODO - Translation - 'error' => 'User %s has not been updated', // TODO - Translation + '_' => 'Пользователь %s изменён', + 'error' => 'Пользователь %s не был изменён', ), ), ); diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 7fc8e4b24..49787fa34 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -2,129 +2,129 @@ return array( 'action' => array( - 'actualize' => 'Update', // TODO - Translation - 'add' => 'Add', // TODO - Translation - 'back' => '← Go back', // TODO - Translation - 'back_to_rss_feeds' => '← Go back to your RSS feeds', // TODO - Translation - 'cancel' => 'Cancel', // TODO - Translation - 'create' => 'Create', // TODO - Translation - 'demote' => 'Demote', // TODO - Translation - 'disable' => 'Disable', // TODO - Translation - 'empty' => 'Empty', // TODO - Translation - 'enable' => 'Enable', // TODO - Translation - 'export' => 'Export', // TODO - Translation - 'filter' => 'Filter', // TODO - Translation - 'import' => 'Import', // TODO - Translation - 'load_default_shortcuts' => 'Load default shortcuts', // TODO - Translation - 'manage' => 'Manage', // TODO - Translation - 'mark_favorite' => 'Mark as favourite', // TODO - Translation - 'mark_read' => 'Mark as read', // TODO - Translation - 'promote' => 'Promote', // TODO - Translation - 'purge' => 'Purge', // TODO - Translation - 'remove' => 'Remove', // TODO - Translation - 'rename' => 'Rename', // TODO - Translation - 'see_website' => 'See website', // TODO - Translation - 'submit' => 'Submit', // TODO - Translation - 'truncate' => 'Delete all articles', // TODO - Translation - 'update' => 'Update', // TODO - Translation + 'actualize' => 'Актуализировать', + 'add' => 'Добавить', + 'back' => '← Вернуться', + 'back_to_rss_feeds' => '← Вернуться к вашим RSS-лентам', + 'cancel' => 'Отменить', + 'create' => 'Создать', + 'demote' => 'Понизить', + 'disable' => 'Отключить', + 'empty' => 'Пусто', + 'enable' => 'Включить', + 'export' => 'Экспортировать', + 'filter' => 'Фильтровать', + 'import' => 'Импортировать', + 'load_default_shortcuts' => 'Загрузить горячие клавиши по умолчанию', + 'manage' => 'Настроить', + 'mark_favorite' => 'Отметить избранным', + 'mark_read' => 'Отметить прочитанным', + 'promote' => 'Продвинуть', + 'purge' => 'Запустить очистку', + 'remove' => 'Удалить', + 'rename' => 'Переименовать', + 'see_website' => 'Посмотреть на сайте', + 'submit' => 'Отправить', + 'truncate' => 'Удалить все статьи', + 'update' => 'Изменить', ), 'auth' => array( - 'accept_tos' => 'I accept the <a href="%s">Terms of Service</a>.', // TODO - Translation - 'email' => 'Email address', // TODO - Translation - 'keep_logged_in' => 'Keep me logged in <small>(%s дней)</small>', - 'login' => 'Login', // TODO - Translation - 'logout' => 'Logout', // TODO - Translation + 'accept_tos' => 'Я принимаю <a href="%s">Условия предоставления услуг</a>.', + 'email' => 'Адрес электронной почты', + 'keep_logged_in' => 'Не выходить из системы <small>(%s дней)</small>', + 'login' => 'Войти', + 'logout' => 'Выйти', 'password' => array( - '_' => 'Password', // TODO - Translation - 'format' => '<small>At least 7 characters</small>', // TODO - Translation + '_' => 'Пароль', + 'format' => '<small>Не менее 7 символов</small>', ), 'registration' => array( - '_' => 'New account', // TODO - Translation - 'ask' => 'Create an account?', // TODO - Translation - 'title' => 'Account creation', // TODO - Translation + '_' => 'Новый аккаунт', + 'ask' => 'Создать аккаунт?', + 'title' => 'Создание аккаунта', ), - 'reset' => 'Authentication reset', // TODO - Translation + 'reset' => 'Сброс аутентификации', 'username' => array( - '_' => 'Username', // TODO - Translation - 'admin' => 'Administrator username', // TODO - Translation - 'format' => '<small>Maximum 16 alphanumeric characters</small>', // TODO - Translation + '_' => 'Имя пользователя', + 'admin' => 'Имя пользователя администратора', + 'format' => '<small>Не более 16 буквенно-цифровых символов</small>', ), ), 'date' => array( - 'Apr' => '\\A\\p\\r\\i\\l', // TODO - Translation - 'Aug' => '\\A\\u\\g\\u\\s\\t', // TODO - Translation - 'Dec' => '\\D\\e\\c\\e\\m\\b\\e\\r', // TODO - Translation - 'Feb' => '\\F\\e\\b\\r\\u\\a\\r\\y', // TODO - Translation - 'Jan' => '\\J\\a\\n\\u\\a\\r\\y', // TODO - Translation - 'Jul' => '\\J\\u\\l\\y', // TODO - Translation - 'Jun' => '\\J\\u\\n\\e', // TODO - Translation - 'Mar' => '\\M\\a\\r\\c\\h', // TODO - Translation - 'May' => '\\M\\a\\y', // TODO - Translation - 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r', // TODO - Translation - 'Oct' => '\\O\\c\\t\\o\\b\\e\\r', // TODO - Translation - 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r', // TODO - Translation - 'apr' => 'apr', - 'april' => 'Apr', - 'aug' => 'aug', - 'august' => 'Aug', - 'before_yesterday' => 'Before yesterday', // TODO - Translation - 'dec' => 'dec', - 'december' => 'Dec', - 'feb' => 'feb', - 'february' => 'Feb', + 'Apr' => '\\а\\п\\р\\е\\л\\я', + 'Aug' => '\\а\\в\\г\\у\\с\\т\\а', + 'Dec' => '\\д\\е\\к\\а\\б\\р\\я', + 'Feb' => '\\ф\\е\\в\\р\\а\\л\\я', + 'Jan' => '\\я\\н\\в\\а\\р\\я\\y', + 'Jul' => '\\и\\ю\\л\\я', + 'Jun' => '\\и\\ю\\н\\я', + 'Mar' => '\\м\\а\\р\\т\\а', + 'May' => '\\м\\а\\я', + 'Nov' => '\\н\\о\\я\\б\\р\\я', + 'Oct' => '\\о\\к\\т\\я\\б\\р\\я', + 'Sep' => '\\с\\е\\н\\т\\я\\б\\р\\я', + 'apr' => 'апр', + 'april' => 'апреля', + 'aug' => 'авг', + 'august' => 'августа', + 'before_yesterday' => 'До вчерашнего дня', + 'dec' => 'дек', + 'december' => 'декабря', + 'feb' => 'фев', + 'february' => 'февраля', 'format_date' => 'j %s Y', - 'format_date_hour' => 'j %s Y \\a\\t H\\:i', - 'fri' => 'Fri', // TODO - Translation - 'jan' => 'jan', - 'january' => 'Jan', - 'jul' => 'jul', - 'july' => 'Jul', - 'jun' => 'jun', - 'june' => 'Jun', - 'last_2_year' => 'Last two years', // TODO - Translation - 'last_3_month' => 'Last three months', // TODO - Translation - 'last_3_year' => 'Last three years', // TODO - Translation - 'last_5_year' => 'Last five years', // TODO - Translation - 'last_6_month' => 'Last six months', // TODO - Translation - 'last_month' => 'Last month', // TODO - Translation - 'last_week' => 'Last week', // TODO - Translation - 'last_year' => 'Last year', // TODO - Translation - 'mar' => 'mar', - 'march' => 'Mar', - 'may' => 'May', // TODO - Translation - 'may_' => 'May', // TODO - Translation - 'mon' => 'Mon', // TODO - Translation - 'month' => 'months', // TODO - Translation - 'nov' => 'nov', - 'november' => 'Nov', - 'oct' => 'oct', - 'october' => 'Oct', - 'sat' => 'Sat', // TODO - Translation - 'sep' => 'sep', - 'september' => 'Sep', - 'sun' => 'Sun', // TODO - Translation - 'thu' => 'Thu', // TODO - Translation - 'today' => 'Today', // TODO - Translation - 'tue' => 'Tue', // TODO - Translation - 'wed' => 'Wed', // TODO - Translation - 'yesterday' => 'Yesterday', // TODO - Translation + 'format_date_hour' => 'j %s Y \\в H\\:i', + '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', 'freshrss' => array( '_' => 'FreshRSS', // TODO - Translation - 'about' => 'About FreshRSS', // TODO - Translation + 'about' => 'О FreshRSS', ), 'js' => array( - 'category_empty' => 'Empty category', // TODO - Translation - 'confirm_action' => 'Are you sure you want to perform this action? It cannot be cancelled!', // TODO - Translation - 'confirm_action_feed_cat' => 'Are you sure you want to perform this action? You will lose related favorites and user queries. It cannot be cancelled!', + 'category_empty' => 'Пустая категория', + 'confirm_action' => 'Вы уверены, что хотите выполнить это действие? Это нельзя отменить!', + 'confirm_action_feed_cat' => 'Вы уверены, что хотите выполнить это действие? Вы потеряете связанные избранные статьи и пользовательские запросы. Это нельзя отменить!', 'feedback' => array( - 'body_new_articles' => 'There are %%d new articles to read on FreshRSS.', // TODO - Translation - 'request_failed' => 'A request has failed, it may have been caused by internet connection problems.', // TODO - Translation - 'title_new_articles' => 'FreshRSS: new articles!', // TODO - Translation + 'body_new_articles' => '%%d новых статей в FreshRSS.', + 'request_failed' => 'Запрос не удался. Возможно, это вызвано проблемами с подключением к Интернет.', + 'title_new_articles' => 'FreshRSS: новые статьи!', ), - 'new_article' => 'There are new articles available, click to refresh the page.', // TODO - Translation - 'should_be_activated' => 'JavaScript must be enabled', // TODO - Translation + 'new_article' => 'Появились новые статьи. Нажмите, чтобы обновить страницу.', + 'should_be_activated' => 'JavaScript должен быть включён', ), 'lang' => array( 'cz' => 'Čeština', @@ -146,48 +146,48 @@ return array( 'zh-cn' => '简体中文', ), 'menu' => array( - 'about' => 'About', // TODO - Translation - 'admin' => 'Administration', // TODO - Translation - 'archiving' => 'Archiving', // TODO - Translation - 'authentication' => 'Authentication', // TODO - Translation - 'check_install' => 'Installation check', // TODO - Translation - 'configuration' => 'Configuration', // TODO - Translation - 'display' => 'Display', // TODO - Translation - 'extensions' => 'Extensions', // TODO - Translation - 'logs' => 'Logs', // TODO - Translation - 'queries' => 'User queries', // TODO - Translation - 'reading' => 'Reading', // TODO - Translation - 'search' => 'Search words or #tags', // TODO - Translation - 'sharing' => 'Sharing', // TODO - Translation - 'shortcuts' => 'Shortcuts', // TODO - Translation - 'stats' => 'Statistics', // TODO - Translation - 'system' => 'System configuration', // TODO - Translation - 'update' => 'Update', // TODO - Translation - 'user_management' => 'Manage users', // TODO - Translation - 'user_profile' => 'Profile', // TODO - Translation + 'about' => 'О проекте', + 'admin' => 'Администрирование', + 'archiving' => 'Архивирование', + 'authentication' => 'Аутентификация', + 'check_install' => 'Проверка установки', + 'configuration' => 'Конфигурация', + 'display' => 'Отображение', + 'extensions' => 'Расширения', + 'logs' => 'Логи', + 'queries' => 'Пользовательские запросы', + 'reading' => 'Чтение', + 'search' => 'Искать слова или #теги', + 'sharing' => 'Поделиться', + 'shortcuts' => 'Горячие клавиши', + 'stats' => 'Статистика', + 'system' => 'Системные настройки', + 'update' => 'Обновление системы', + 'user_management' => 'Управление пользователями', + 'user_profile' => 'Профиль', ), 'pagination' => array( - 'first' => 'First', // TODO - Translation - 'last' => 'Last', // TODO - Translation - 'load_more' => 'Load more articles', // TODO - Translation - 'mark_all_read' => 'Mark all as read', // TODO - Translation - 'next' => 'Next', // TODO - Translation - 'nothing_to_load' => 'There are no more articles', // TODO - Translation - 'previous' => 'Previous', // TODO - Translation + 'first' => 'Первая', + 'last' => 'Последняя', + 'load_more' => 'Загрузить больше статей', + 'mark_all_read' => 'Отметить всё прочитанным', + 'next' => 'Следующая', + 'nothing_to_load' => 'Больше нет статей', + 'previous' => 'Предыдущая', ), 'period' => array( - 'days' => 'days', // TODO - Translation - 'hours' => 'hours', // TODO - Translation - 'months' => 'months', // TODO - Translation - 'weeks' => 'weeks', // TODO - Translation - 'years' => 'years', // TODO - Translation + 'days' => 'дней', + 'hours' => 'часов', + 'months' => 'месяцев', + 'weeks' => 'недель', + 'years' => 'лет', ), 'share' => array( - 'Known' => 'Known based sites', // TODO - Translation + 'Known' => 'Сайты на Known', 'blogotext' => 'Blogotext', // TODO - Translation - 'clipboard' => 'Clipboard', // TODO - Translation + 'clipboard' => 'Буфер обмена', 'diaspora' => 'Diaspora*', // TODO - Translation - 'email' => 'Email', // TODO - Translation + 'email' => 'Электронная почта', 'facebook' => 'Facebook', // TODO - Translation 'gnusocial' => 'GNU social', // TODO - Translation 'jdh' => 'Journal du hacker', // TODO - Translation @@ -197,23 +197,23 @@ return array( 'movim' => 'Movim', // TODO - Translation 'pinboard' => 'Pinboard', // TODO - Translation 'pocket' => 'Pocket', // TODO - Translation - 'print' => 'Print', // TODO - Translation + 'print' => 'Распечатать', 'shaarli' => 'Shaarli', // TODO - Translation 'twitter' => 'Twitter', // TODO - Translation 'wallabag' => 'wallabag v1', // TODO - Translation 'wallabagv2' => 'wallabag v2', // TODO - Translation ), 'short' => array( - 'attention' => 'Warning!', // TODO - Translation - 'blank_to_disable' => 'Leave blank to disable', // TODO - Translation - 'by_author' => 'By:', // TODO - Translation - 'by_default' => 'By default', // TODO - Translation - 'damn' => 'Damn!', - 'default_category' => 'Uncategorized', // TODO - Translation - 'no' => 'No', // TODO - Translation - 'not_applicable' => 'Not available', // TODO - Translation - 'ok' => 'Okay!', // TODO - Translation - 'or' => 'or', // TODO - Translation - 'yes' => 'Yes', // TODO - Translation + 'attention' => 'Предупреждение!', + 'blank_to_disable' => 'Оставьте поле пустым, чтобы отключить', + 'by_author' => 'От:', + 'by_default' => 'По умолчанию', + 'damn' => 'О нет!', + 'default_category' => 'Без категории', + 'no' => 'Нет', + 'not_applicable' => 'Недоступно', + 'ok' => 'Отлично!', + 'or' => 'или', + 'yes' => 'Да', ), ); diff --git a/app/i18n/ru/index.php b/app/i18n/ru/index.php index 8f94aa171..df154d671 100644 --- a/app/i18n/ru/index.php +++ b/app/i18n/ru/index.php @@ -2,65 +2,65 @@ return array( 'about' => array( - '_' => 'About', // TODO - Translation + '_' => 'О проекте', 'agpl3' => '<a href="https://www.gnu.org/licenses/agpl-3.0.html">AGPL 3</a>', // TODO - Translation - 'bugs_reports' => 'Bug reports', // TODO - Translation - 'credits' => 'Credits', // TODO - Translation - 'credits_content' => 'Some design elements come from <a href="http://twitter.github.io/bootstrap/">Bootstrap</a> although FreshRSS doesn’t use this framework. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Icons</a> come from <a href="https://www.gnome.org/">GNOME project</a>. <em>Open Sans</em> font police has been created by <a href="https://fonts.google.com/specimen/Open+Sans">Steve Matteson</a>. FreshRSS is based on <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, a PHP framework.', // TODO - Translation - 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> or <a href="https://github.com/LeedRSS/Leed">Leed</a>. It is light and easy to take in hand while being powerful and configurable tool.', // TODO - Translation - 'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">on Github</a>', // TODO - Translation - 'license' => 'License', // TODO - Translation - 'project_website' => 'Project website', // TODO - Translation - 'title' => 'About', // TODO - Translation - 'version' => 'Version', // TODO - Translation - 'website' => 'Website', // TODO - Translation + 'bugs_reports' => 'Баг репорты', + 'credits' => 'Авторство', + 'credits_content' => 'Некоторые элементы дизайна взяты из <a href="http://twitter.github.io/bootstrap/">Bootstrap</a>, хотя FreshRSS не использует этот фреймворк. <a href="https://git.gnome.org/browse/gnome-icon-theme-symbolic">Иконки</a> взяты из <a href="https://www.gnome.org/">проекта GNOME</a>. Шрифт <em>Open Sans</em> создан <a href="https://fonts.google.com/specimen/Open+Sans">Стивом Мэттесоном</a>. FreshRSS основан на <a href="https://github.com/marienfressinaud/MINZ">Minz</a>, PHP-фреймворке.', + 'freshrss_description' => 'FreshRSS — агрегатор RSS-лент для размещения на своём сервере подобно <a href="http://tontof.net/kriss/feed/">Kriss Feed</a> или <a href="https://github.com/LeedRSS/Leed">Leed</a>. Лёгкий и простой в использовании, будучи при этом мощным и настраиваемым инструментом.', + 'github' => '<a href="https://github.com/FreshRSS/FreshRSS/issues">в Github</a>', + 'license' => 'Лицензия', + 'project_website' => 'Сайт проекта', + 'title' => 'О проекте', + 'version' => 'Версия', + 'website' => 'Сайт', ), 'feed' => array( - 'add' => 'Please add some feeds.', // TODO - Translation - 'empty' => 'There are no articles to show.', // TODO - Translation - 'rss_of' => 'RSS feed of %s', // TODO - Translation - 'title' => 'Main stream', // TODO - Translation - 'title_fav' => 'Favourites', // TODO - Translation - 'title_global' => 'Global view', // TODO - Translation + 'add' => 'Вы можете добавить ленты.', + 'empty' => 'Нет статей для отображения.', + 'rss_of' => 'RSS-лента %s', + 'title' => 'Основной поток', + 'title_fav' => 'Избранное', + 'title_global' => 'Глобальный вид', ), 'log' => array( - '_' => 'Logs', // TODO - Translation - 'clear' => 'Clear the logs', // TODO - Translation - 'empty' => 'Log file is empty', // TODO - Translation - 'title' => 'Logs', // TODO - Translation + '_' => 'Логи', + 'clear' => 'Очистить логи', + 'empty' => 'Файл лога пуст', + 'title' => 'Логи', ), 'menu' => array( - 'about' => 'About FreshRSS', // TODO - Translation - 'before_one_day' => 'Older than one day', // TODO - Translation - 'before_one_week' => 'Older than one week', // TODO - Translation - 'bookmark_query' => 'Bookmark current query', // TODO - Translation - 'favorites' => 'Favourites (%s)', // TODO - Translation - 'global_view' => 'Global view', // TODO - Translation - 'main_stream' => 'Main stream', // TODO - Translation - 'mark_all_read' => 'Mark all as read', // TODO - Translation - 'mark_cat_read' => 'Mark category as read', // TODO - Translation - 'mark_feed_read' => 'Mark feed as read', // TODO - Translation - 'mark_selection_unread' => 'Mark selection as unread', // TODO - Translation - 'newer_first' => 'Newer first', // TODO - Translation - 'non-starred' => 'Show all but favorites', - 'normal_view' => 'Normal view', // TODO - Translation - 'older_first' => 'Oldest first', // TODO - Translation - 'queries' => 'User queries', // TODO - Translation - 'read' => 'Show only read', - 'reader_view' => 'Reading view', // TODO - Translation - 'rss_view' => 'RSS feed', // TODO - Translation - 'search_short' => 'Search', // TODO - Translation - 'starred' => 'Show only favorites', - 'stats' => 'Statistics', // TODO - Translation - 'subscription' => 'Subscription management', // TODO - Translation - 'tags' => 'My labels', // TODO - Translation - 'unread' => 'Show only unread', + 'about' => 'О FreshRSS', + 'before_one_day' => 'Старше одного дня', + 'before_one_week' => 'Старше одной недели', + 'bookmark_query' => 'Сохранить текущий запрос', + 'favorites' => 'Избранное (%s)', + 'global_view' => 'Глобальный вид', + 'main_stream' => 'Основной поток', + 'mark_all_read' => 'Отметить всё прочитанным', + 'mark_cat_read' => 'Отметить категорию прочитанной', + 'mark_feed_read' => 'Отметить ленту прочитанной', + 'mark_selection_unread' => 'Отметить выделение прочитанным', + 'newer_first' => 'Сначала новые', + 'non-starred' => 'Показать неизбранное', + 'normal_view' => 'Обычный вид', + 'older_first' => 'Сначала старые', + 'queries' => 'Запросы', + 'read' => 'Показать прочитанное', + 'reader_view' => 'Вид для чтения', + 'rss_view' => 'RSS-лента', + 'search_short' => 'Поиск', + 'starred' => 'Показать избранное', + 'stats' => 'Статистика', + 'subscription' => 'Управление подписками', + 'tags' => 'Мои метки', + 'unread' => 'Показать непрочитанное', ), - 'share' => 'Share', // TODO - Translation + 'share' => 'Поделиться', 'tag' => array( - 'related' => 'Article tags', // TODO - Translation + 'related' => 'Теги статьи', ), 'tos' => array( - 'title' => 'Terms of Service', // TODO - Translation + 'title' => 'Условия предоставления услуг', ), ); diff --git a/app/i18n/ru/install.php b/app/i18n/ru/install.php index 3d666460d..03e09c09d 100644 --- a/app/i18n/ru/install.php +++ b/app/i18n/ru/install.php @@ -3,25 +3,25 @@ return array( 'action' => array( 'finish' => 'Завершить установку', - 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу.', - 'keep_install' => 'Сохранить предыдущую установку', - 'next_step' => 'Перейти к следующему этапу', + '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' => 'Метод аутентификации', + 'form' => 'Веб-форма (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для опытных пользователей с HTTPS)', + 'none' => 'Без аутентификации (небезопасно)', + 'password_form' => 'Пароль<br /><small>(для входа через веб-форму)</small>', + 'password_format' => 'Не менее 7 символов', + 'type' => 'Способ аутентификации', ), 'bdd' => array( '_' => 'База данных', 'conf' => array( - '_' => 'Конфигурация базы данныхDatabase configuration', - 'ko' => 'Проверьте конфигурацию базы данных.', - 'ok' => 'Конфигурация базы данных сохранена.', + '_' => 'Настройки базы данных', + 'ko' => 'Проверьте настройки базы данных.', + 'ok' => 'Настройки базы данных сохранены.', ), 'host' => 'Хост', 'password' => 'Пароль базы данных', @@ -31,9 +31,9 @@ return array( ), 'check' => array( '_' => 'Проверки', - 'already_installed' => 'Обнаружена предыдущая установка FreshRSS!', + 'already_installed' => 'Мы обнаружили, что FreshRSS уже установлен!', 'cache' => array( - 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку кэша в порядке.', ), 'ctype' => array( @@ -45,7 +45,7 @@ return array( 'ok' => 'У вас установлено расширение cURL.', ), 'data' => array( - 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на <em>./data/</em> в порядке.', ), 'dom' => array( @@ -53,7 +53,7 @@ return array( 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', ), 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку значков в порядке.', ), 'fileinfo' => array( @@ -61,12 +61,12 @@ return array( 'ok' => 'У вас установлено расширение fileinfo.', ), 'json' => array( - 'nok' => 'Cannot find the recommended library to parse JSON.', // TODO - Translation - 'ok' => 'You have the recommended library to parse JSON.', // TODO - Translation + 'nok' => 'У вас нет рекомендуемой библиотеки для разбора JSON.', + 'ok' => 'У вас установлена необходимая библиотека для разбора JSON.', ), 'mbstring' => array( - 'nok' => 'Cannot find the recommended library mbstring for Unicode.', // TODO - Translation - 'ok' => 'You have the recommended library mbstring for Unicode.', // TODO - Translation + 'nok' => 'У вас не установлена рекомендуемая библиотека mbstring для Unicode.', + 'ok' => 'У вас установлена рекомендуемая библиотека mbstring для Unicode.', ), 'pcre' => array( 'nok' => 'У вас не установлена необходимая библиотека для работы с регулярными выражениями (php-pcre).', @@ -81,43 +81,43 @@ return array( 'ok' => 'У вас установлен PHP версии %s, который совместим с FreshRSS.', ), 'tmp' => array( - 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Permissions on the temp directory are good.', // TODO - Translation + 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.', + 'ok' => 'Права на папку temp в порядке.', ), - 'unknown_process_username' => 'unknown', // TODO - Translation + 'unknown_process_username' => 'неизвестно', 'users' => array( - 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке <em>%s</em> . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку users в порядке.', ), 'xml' => array( - 'nok' => 'Cannot find the required library to parse XML.', // TODO - Translation - 'ok' => 'You have the required library to parse XML.', // TODO - Translation + 'nok' => 'У вас нет необходимой библиотеки для разбора XML.', + 'ok' => 'У вас установлена необходимая библиотека для разбора XML.', ), ), 'conf' => array( '_' => 'Общие настройки', - 'ok' => 'Общие настройки были сохранены.', + 'ok' => 'Общие настройки сохранены.', ), 'congratulations' => 'Поздравляем!', - 'default_user' => 'Имя пользователя по умолчанию <small>(максимум 16 латинских букв и/или цифр)</small>', + 'default_user' => 'Имя пользователя по умолчанию <small>(не более 16 буквенно-цифровых символов)</small>', 'delete_articles_after' => 'Удалять статьи после', - 'fix_errors_before' => 'Пожалуйста, исправьте ошибки прежде чем переходить к следующему этапу..', - 'javascript_is_better' => 'FreshRSS принесёт больше удовольствия, если включить JavaScript', + 'fix_errors_before' => 'Пожалуйста, исправьте ошибки, прежде чем перейти к следующему шагу.', + 'javascript_is_better' => 'Пользоваться FreshRSS приятнее с включённым JavaScript', 'js' => array( - 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы хотите продолжить?', + 'confirm_reinstall' => 'Переустанавливая FreshRSS, вы потеряете предыдущую конфигурацию. Вы уверены, что хотите продолжить?', ), 'language' => array( '_' => 'Язык', 'choose' => 'Выберите язык для FreshRSS', 'defined' => 'Язык выбран.', ), - 'missing_applied_migrations' => 'Something went wrong; you should create an empty file <em>%s</em> manually.', // TODO - Translation - 'ok' => 'Установка успешна.', + 'missing_applied_migrations' => 'Что-то пошло не так; вам следует создать пустой файл <em>%s</em> вручную.', + 'ok' => 'Установка успешно завершена.', 'session' => array( - 'nok' => 'The web server seems to be incorrectly configured for cookies required for PHP sessions!', // TODO - Translation + 'nok' => 'Похоже, веб-сервер имеет неправильные настройки кук! Куки нужны для сессий PHP.', ), - 'step' => '%d этап', - 'steps' => 'Этапы', - 'this_is_the_end' => 'Это конец', + 'step' => 'шаг %d', + 'steps' => 'Шаги', + 'this_is_the_end' => 'Завершение', 'title' => 'Установка · FreshRSS', ); diff --git a/app/i18n/ru/sub.php b/app/i18n/ru/sub.php index 05a8024f5..408574866 100644 --- a/app/i18n/ru/sub.php +++ b/app/i18n/ru/sub.php @@ -1,141 +1,141 @@ <?php return array( - 'add' => 'Feed and category creation has been moved <a href=\'%s\'>here</a>. It is also accessible from the menu on the left and from the ✚ icon available on the main page.', // TODO - Translation + 'add' => 'Создание лент и категорий перемещено <a href=\'%s\'>сюда</a>. Оно также доступно из меню слева и по нажатию на иконку ✚ на главной странице.', 'api' => array( - 'documentation' => 'Copy the following URL to use it within an external tool.', // TODO - Translation + 'documentation' => 'Скопируйте URL для использования во внешнем инструменте.', 'title' => 'API', // TODO - Translation ), 'bookmarklet' => array( - 'documentation' => 'Drag this button to your bookmarks toolbar or right-click it and choose "Bookmark This Link". Then click the "Subscribe" button in any page you want to subscribe to.', // TODO - Translation - 'label' => 'Subscribe', // TODO - Translation - 'title' => 'Bookmarklet', // TODO - Translation + 'documentation' => 'Перетяните эту кнопку на вашу панель закладок, или нажмите правой кнопкой мыши и выберите "Добавить ссылку в закладки". Нажимайте кнопку "Подписаться" на любой странице, на которую вы хотите подписаться.<br>', + 'label' => 'Подписаться', + 'title' => 'Букмарклет', ), 'category' => array( - '_' => 'Category', // TODO - Translation - 'add' => 'Add a category', // TODO - Translation - 'archiving' => 'Archivage', - 'empty' => 'Empty category', // TODO - Translation - 'information' => 'Information', // TODO - Translation - 'position' => 'Display position', // TODO - Translation - 'position_help' => 'To control category sort order', // TODO - Translation - 'title' => 'Title', // TODO - Translation + '_' => 'Категория', + 'add' => 'Добавить категорию', + 'archiving' => 'Архивирование', + 'empty' => 'Пустая категория', + 'information' => 'Информация', + 'position' => 'Положение отображения', + 'position_help' => 'Влияет на порядок отображения категорий', + 'title' => 'Заголовок', ), 'feed' => array( - 'add' => 'Add a RSS feed', // TODO - Translation - 'advanced' => 'Advanced', // TODO - Translation - 'archiving' => 'Archivage', + 'add' => 'Добавить RSS-ленту', + 'advanced' => 'Дополнительно', + 'archiving' => 'Архивирование', 'auth' => array( - 'configuration' => 'Login', // TODO - Translation - 'help' => 'Connection allows to access HTTP protected RSS feeds', - 'http' => 'HTTP Authentication', // TODO - Translation - 'password' => 'HTTP password', // TODO - Translation - 'username' => 'HTTP username', // TODO - Translation + 'configuration' => 'Логин', + 'help' => 'Разрешить доступ к HTTP защищённым RSS-лентам', + 'http' => 'HTTP аутентификация', + 'password' => 'Пароль HTTP', + 'username' => 'Имя пользователя HTTP', ), - 'clear_cache' => 'Always clear cache', // TODO - Translation + 'clear_cache' => 'Всегда очищать кэш', 'content_action' => array( - '_' => 'Content action when fetching the article content', // TODO - Translation - 'append' => 'Add after existing content', // TODO - Translation - 'prepend' => 'Add before existing content', // TODO - Translation - 'replace' => 'Replace existing content', // TODO - Translation + '_' => 'Действие с содержимым, когда извлекается содержимое статьи', + 'append' => 'Добавить после существующего содержимого', + 'prepend' => 'Добавить перед существующим содержимым', + 'replace' => 'Заменить существующее содержимое', ), - 'css_cookie' => 'Use Cookies when fetching the article content', // TODO - Translation - 'css_cookie_help' => 'Example: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', // TODO - Translation - 'css_help' => 'Retrieves truncated RSS feeds (caution, requires more time!)', // TODO - Translation - 'css_path' => 'Article CSS selector on original website', // TODO - Translation - 'description' => 'Description', // TODO - Translation - 'empty' => 'This feed is empty. Please verify that it is still maintained.', // TODO - Translation - 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.', + 'css_cookie' => 'Использовать куки при извлечении содержимого статьи', + 'css_cookie_help' => 'Пример: <kbd>foo=bar; gdpr_consent=true; cookie=value</kbd>', + 'css_help' => 'Получает усечённые RSS-ленты (осторожно, требует больше времени!)', + 'css_path' => 'CSS селектор статьи на сайте', + 'description' => 'Описание', + 'empty' => 'Лента пустая. Пожалуйста, убедитесь, что её до сих пор обслуживают.', + 'error' => 'С этой лентой возникла проблема. Пожалуйста, убедитесь, что она всегда досягаема. Затем снова актуализируйте её.', 'filteractions' => array( - '_' => 'Filter actions', // TODO - Translation - 'help' => 'Write one search filter per line.', // TODO - Translation + '_' => 'Действия фильтрации', + 'help' => 'Введите по одному поисковому фильтру в строке.', ), - 'information' => 'Information', // TODO - Translation - 'keep_min' => 'Minimum number of articles to keep', // TODO - Translation + 'information' => 'Информация', + 'keep_min' => 'Оставлять статей не менее', 'maintenance' => array( - 'clear_cache' => 'Clear cache', // TODO - Translation - 'clear_cache_help' => 'Clear the cache for this feed.', // TODO - Translation - 'reload_articles' => 'Reload articles', // TODO - Translation - 'reload_articles_help' => 'Reload articles and fetch complete content if a selector is defined.', // TODO - Translation - 'title' => 'Maintenance', // TODO - Translation + 'clear_cache' => 'Очистить кэш', + 'clear_cache_help' => 'Очистить кэш для этой ленты.', + 'reload_articles' => 'Снова загрузить статьи', + 'reload_articles_help' => 'Снова загрузить статьи и извлечь полное содержимое, если задан селектор.', + 'title' => 'Обслуживание', ), - 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under <em>%s</em>.', // TODO - Translation - 'mute' => 'mute', // TODO - Translation - 'no_selected' => 'No feed selected.', // TODO - Translation - 'number_entries' => '%d articles', // TODO - Translation + 'moved_category_deleted' => 'Когда вы удаляете категорию, ленты категории автоматически попадают в категорию <em>%s</em>.', + 'mute' => 'заглушить', + 'no_selected' => 'Ленты не выбраны.', + 'number_entries' => '%d статей', 'priority' => array( - '_' => 'Visibility', // TODO - Translation - 'archived' => 'Do not show (archived)', // TODO - Translation - 'main_stream' => 'Show in main stream', // TODO - Translation - 'normal' => 'Show in its category', // TODO - Translation + '_' => 'Видимость', + 'archived' => 'Не показывать (архивировано)', + 'main_stream' => 'Показывать в основном потоке', + 'normal' => 'Показывать в категории ленты', ), - 'proxy' => 'Set a proxy for fetching this feed', // TODO - Translation - 'proxy_help' => 'Select a protocol (e.g: SOCKS5) and enter the proxy address (e.g: <kbd>127.0.0.1:1080</kbd>)', // TODO - Translation + 'proxy' => 'Указать прокси для извлечения этой ленты', + 'proxy_help' => 'Выберите протокол (например, SOCKS5) и введите адрес прокси (например, <kbd>127.0.0.1:1080</kbd>)', 'selector_preview' => array( - 'show_raw' => 'Show source code', // TODO - Translation - 'show_rendered' => 'Show content', // TODO - Translation + 'show_raw' => 'Показать исходный код', + 'show_rendered' => 'Показать содержимое', ), 'show' => array( - 'all' => 'Show all feeds', // TODO - Translation - 'error' => 'Show only feeds with errors', // TODO - Translation + 'all' => 'Показать все ленты', + 'error' => 'Показать только ленты с ошибками', ), 'showing' => array( - 'error' => 'Showing only feeds with errors', // TODO - Translation + 'error' => 'Показываются только ленты с ошибками', ), - 'ssl_verify' => 'Verify SSL security', // TODO - Translation - 'stats' => 'Statistics', // TODO - Translation - 'think_to_add' => 'You may add some feeds.', // TODO - Translation - 'timeout' => 'Timeout in seconds', // TODO - Translation - 'title' => 'Title', // TODO - Translation - 'title_add' => 'Add an RSS feed', // TODO - Translation - 'ttl' => 'Do not automatically refresh more often than', // TODO - Translation - 'url' => 'Feed URL', // TODO - Translation - 'useragent' => 'Set the user agent for fetching this feed', // TODO - Translation - 'useragent_help' => 'Example: <kbd>Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)</kbd>', // TODO - Translation - 'validator' => 'Check the validity of the feed', // TODO - Translation - 'website' => 'Website URL', // TODO - Translation - 'websub' => 'Instant notification with WebSub', // TODO - Translation + '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', ), 'firefox' => array( - 'documentation' => 'Follow the steps described <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">here</a> to add FreshRSS to Firefox feed reader list.', // TODO - Translation - 'obsolete_63' => 'From version 63 and onwards, Firefox has removed the ability to add your own subscription services that are not standalone programs.', // TODO - Translation - 'title' => 'Firefox feed reader', // TODO - Translation + 'documentation' => 'Выполните шаги, описанные <a href="https://developer.mozilla.org/en-US/Firefox/Releases/2/Adding_feed_readers_to_Firefox#Adding_a_new_feed_reader_manually">здесь</a>, чтобы добавить FreshRSS в список читалок лент Firefox.', + 'obsolete_63' => 'Начиная с версии 63, Firefox убрал возможность добавлять собственные сервисы подписок, которые не являются отдельными программами.', + 'title' => 'Читалка лент Firefox', ), 'import_export' => array( - 'export' => 'Export', // TODO - Translation - 'export_labelled' => 'Export your labelled articles', // TODO - Translation - 'export_opml' => 'Export list of feeds (OPML)', // TODO - Translation - 'export_starred' => 'Export your favourites', // TODO - Translation - 'feed_list' => 'List of %s articles', // TODO - Translation - 'file_to_import' => 'File to import<br />(OPML, JSON or ZIP)', // TODO - Translation - 'file_to_import_no_zip' => 'File to import<br />(OPML or JSON)', // TODO - Translation - 'import' => 'Import', // TODO - Translation - 'starred_list' => 'List of favourite articles', // TODO - Translation - 'title' => 'Import / export', // TODO - Translation + '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' => 'Add a feed or category', // TODO - Translation - 'add_feed' => 'Add a feed', // TODO - Translation - 'bookmark' => 'Subscribe (FreshRSS bookmark)', // TODO - Translation - 'import_export' => 'Import / export', // TODO - Translation - 'label_management' => 'Label management', // TODO - Translation - 'subscription_management' => 'Subscription management', // TODO - Translation - 'subscription_tools' => 'Subscription tools', // TODO - Translation + 'add' => 'Добавить ленту или категорию', + 'add_feed' => 'Добавить ленту', + 'bookmark' => 'Подписаться (закладка FreshRSS)', + 'import_export' => 'Импорт / экспорт', + 'label_management' => 'Управление метками', + 'subscription_management' => 'Управление подписками', + 'subscription_tools' => 'Инструменты подписки', ), 'tag' => array( - 'name' => 'Name', // TODO - Translation - 'new_name' => 'New name', // TODO - Translation - 'old_name' => 'Old name', // TODO - Translation + 'name' => 'Название', + 'new_name' => 'Новое название', + 'old_name' => 'Старое название', ), 'title' => array( - '_' => 'Subscription management', // TODO - Translation - 'add' => 'Add a feed or category', // TODO - Translation - 'add_category' => 'Add a category', // TODO - Translation - 'add_feed' => 'Add a feed', // TODO - Translation - 'add_label' => 'Add a label', // TODO - Translation - 'delete_label' => 'Delete a label', // TODO - Translation - 'feed_management' => 'RSS feeds management', // TODO - Translation - 'rename_label' => 'Rename a label', // TODO - Translation - 'subscription_tools' => 'Subscription tools', // TODO - Translation + '_' => 'Управление подписками', + 'add' => 'Добавить ленту или категорию', + 'add_category' => 'Добавить категорию', + 'add_feed' => 'Добавить ленту', + 'add_label' => 'Добавить метку', + 'delete_label' => 'Удалить метку', + 'feed_management' => 'Управление RSS-лентами', + 'rename_label' => 'Переименовать метку', + 'subscription_tools' => 'Инструменты подписки', ), ); diff --git a/app/i18n/ru/user.php b/app/i18n/ru/user.php index 7816efcbc..69be69de5 100644 --- a/app/i18n/ru/user.php +++ b/app/i18n/ru/user.php @@ -3,42 +3,42 @@ return array( 'email' => array( 'feedback' => array( - 'invalid' => 'This email address is invalid.', // TODO - Translation - 'required' => 'An email address is required.', // TODO - Translation + 'invalid' => 'Этот адрес электронной почты неверный.', + 'required' => 'Требуется адрес электронной почты.', ), 'validation' => array( - 'change_email' => 'You can change your email address <a href="%s">on the profile page</a>.', // TODO - Translation - 'email_sent_to' => 'We sent you an email at <strong>%s</strong>. Please follow its instructions to validate your address.', // TODO - Translation + 'change_email' => 'Вы можете изменить ваш адрес электронной почты <a href="%s">на странице профиля</a>.', + 'email_sent_to' => 'Мы отправили вам письмо по адресу <strong>%s</strong>. Пожалуйста, следуйте инструкциям в нём, чтобы подтвердить ваш адрес электронной почты.', 'feedback' => array( - 'email_failed' => 'We couldn’t send you an email because of a server configuration error.', // TODO - Translation - 'email_sent' => 'An email has been sent to your address.', // TODO - Translation - 'error' => 'Email address validation failed.', // TODO - Translation - 'ok' => 'This email address has been validated.', // TODO - Translation - 'unneccessary' => 'This email address was already validated.', // TODO - Translation - 'wrong_token' => 'This email address failed to be validated due to a wrong token.', // TODO - Translation + 'email_failed' => 'Мы не смогли отправить вам письмо из-за ошибки конфигурации сервера.', + 'email_sent' => 'Письмо отправлено на ваш адрес электронной почты.', + 'error' => 'Не удалось подтвердить адрес электронной почты.', + 'ok' => 'Адрес электронной почты подтверждён.', + 'unneccessary' => 'Этот адрес электронной почты уже подтверждён.', + 'wrong_token' => 'Не удалось подтвердить этот адрес электронной почты из-за неверного токена.', ), - 'need_to' => 'You need to validate your email address before being able to use %s.', // TODO - Translation - 'resend_email' => 'Resend the email', // TODO - Translation - 'title' => 'Email address validation', // TODO - Translation + 'need_to' => 'Вам необходимо подтвердить адрес электронной почты, прежде чем вы сможете пользоваться %s.', + 'resend_email' => 'Отправить ещё раз', + 'title' => 'Подтверждение адреса электронной почты', ), ), 'mailer' => array( 'email_need_validation' => array( - 'body' => 'You’ve just registered on %s, but you still need to validate your email address. For that, just follow the link:', // TODO - Translation - 'title' => 'You need to validate your account', // TODO - Translation - 'welcome' => 'Welcome %s,', // TODO - Translation + 'body' => 'Вы зарегистрировались в %s, но вам всё ещё нужно подтвердить ваш адрес электронной почты. Для этого просто перейдите по ссылке:', + 'title' => 'Вам нужно подтвердить ваш аккаунт', + 'welcome' => 'Добро пожаловать, %s,', ), ), 'password' => array( - 'invalid' => 'The password is invalid.', // TODO - Translation + 'invalid' => 'Неверный пароль.', ), 'tos' => array( 'feedback' => array( - 'invalid' => 'You must accept the Terms of Service to be able to register.', // TODO - Translation + 'invalid' => 'Вы должны принять Условия предоставления услуг, чтобы зарегистрироваться.', ), ), 'username' => array( - 'invalid' => 'This username is invalid.', // TODO - Translation - 'taken' => 'This username, %s, is taken.', // TODO - Translation + 'invalid' => 'Неверное имя пользователя.', + 'taken' => 'Имя пользователя %s занято.', ), ); |
