From 27372b5bb7e8059c8cc4d2ff5c2fe5a0315a0191 Mon Sep 17 00:00:00 2001 From: ibiruai <48332831+ibiruai@users.noreply.github.com> Date: Sun, 11 Apr 2021 14:41:45 +0300 Subject: i18n Update for Russian language (#3579) --- app/i18n/ru/admin.php | 118 ++++++++--------- app/i18n/ru/conf.php | 334 +++++++++++++++++++++++------------------------ app/i18n/ru/feedback.php | 170 ++++++++++++------------ app/i18n/ru/gen.php | 300 +++++++++++++++++++++--------------------- app/i18n/ru/index.php | 98 +++++++------- app/i18n/ru/install.php | 74 +++++------ app/i18n/ru/sub.php | 204 ++++++++++++++--------------- app/i18n/ru/user.php | 40 +++--- 8 files changed, 669 insertions(+), 669 deletions(-) (limited to 'app') 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' => 'Включить доступ к API (необходимо для мобильных приложений)', - 'form' => 'На основе веб-формы (традиционный, необходим JavaScript)', - 'http' => 'HTTP (для продвинутых пользователей - по HTTPS)', - 'none' => 'Без аутентификации (небезопасный)', + 'allow_anonymous' => 'Разрешить анонимное чтение статей пользователя по умолчанию (%s)', + 'allow_anonymous_refresh' => 'Разрешить анонимную актуализацию статей', + 'api_enabled' => 'Позволить API доступ (необходимо для мобильных приложений)', + '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' => 'Проверьте права доступа к папке ./data/cache. Сервер HTTP должен иметь права на запись в эту папку', + 'nok' => 'Проверьте права доступа к папке ./data/cache. Веб-сервер должен иметь право на запись в эту папку', 'ok' => 'Права на ./data/cache в порядке.', ), 'categories' => array( @@ -37,7 +37,7 @@ return array( 'ok' => 'У вас установлено расширение cURL.', ), 'data' => array( - 'nok' => 'Проверьте права доступа к папке ./data . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке ./data . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на ./data/ в порядке.', ), 'database' => 'Установка базы данных', @@ -50,7 +50,7 @@ return array( 'ok' => 'Таблица статей (entry) настроена правильно.', ), 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке ./data/favicons . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке ./data/favicons . Веб-сервер должен иметь право на запись в эту папку.', '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' => 'Проверьте права доступа к папке ./data/tokens . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке ./data/tokens . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку tokens в порядке.', ), 'users' => array( - 'nok' => 'Проверьте права доступа к папке ./data/users . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке ./data/users . Веб-сервер должен иметь право на запись в эту папку.', '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' => 'Пароль
(для входа через Веб-форму)', - 'password_format' => 'Минимум 7 символов', - 'selected' => 'Selected user', // TODO - Translation + 'last_user_activity' => 'Последняя активность', + 'list' => 'Список пользователей', + 'number' => 'Имеется %d созданный аккаунт', + 'numbers' => 'Имеется %d созданных аккаунтов', + 'password_form' => 'Пароль
(для входа через веб-форму)', + '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
(e.g., for mobile apps)', - 'password_form' => 'Password
(for the Web-form login method)', // TODO - Translation - 'password_format' => 'At least 7 characters', // TODO - Translation - 'title' => 'Profile', // TODO - Translation + 'email' => 'Адрес электронной почты', + 'password_api' => 'Пароль API
(например, для мобильных приложений)', + 'password_form' => 'Пароль
(для входа через веб-форму)', + '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 ⇧ Shift modifier, navigation shortcuts apply on feeds.
With the Alt ⎇ 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 (%s) 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' => '+ Alt ⎇ to mark previous articles as read
+ ⇧ Shift 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' => 'С модификатором ⇧ Shift навигационные горячие клавиши применяются к лентам.
С модификатором Alt ⎇ навигационные горячие клавиши применяются к категориям.', + 'navigation_no_mod_help' => 'Следующие навигационные горячие клавиши не поддерживают модификаторы.', + 'next_article' => 'Открыть следующую статью', + 'non_standard' => 'Некоторые клавиши (%s) не могут быть использованы как горячие клавиши.', + 'normal_view' => 'Переключиться на обычный вид', + 'other_action' => 'Другие действия', + 'previous_article' => 'Открыть предыдущую статью', + 'reading_view' => 'Переключиться на вид для чтения', + 'rss_view' => 'Открыть вид RSS в новой вкладке', + 'see_on_website' => 'Посмотреть на сайте', + 'shift_for_all_read' => '+ Alt ⎇, чтобы отметить предыдущие статьи прочитанными
+ ⇧ Shift, чтобы отметить все статьи прочитанными', + '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. Check FreshRSS logs for details.', // TODO - Translation - 'ok' => '%s is now disabled', // TODO - Translation + 'ko' => '%s не может быть отключено. Проверьте логи FreshRSS для подробностей.', + 'ok' => '%s теперь отключено', ), 'enable' => array( - 'ko' => '%s cannot be enabled. Check FreshRSS logs for details.', // TODO - Translation - 'ok' => '%s is now enabled', // TODO - Translation + 'ko' => '%s не может быть включено. Проверьте логи FreshRSS для подробностей.', + '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' => '%s has been updated', // TODO - Translation - 'actualizeds' => 'RSS feeds have been updated', // TODO - Translation - 'added' => 'RSS feed %s has been added', // TODO - Translation - 'already_subscribed' => 'You have already subscribed to %s', // TODO - Translation - 'cache_cleared' => '%s 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. Check FreshRSS logs for details. You can try force adding by appending #force_feed to the URL.', // TODO - Translation - 'invalid_url' => 'URL %s 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' => '%s 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' => '%s has been reloaded', // TODO - Translation + 'actualized' => '%s актуализирована', + 'actualizeds' => 'RSS-ленты актуализированы', + 'added' => 'RSS-лента %s добавлена', + 'already_subscribed' => 'Вы уже подписаны на %s', + 'cache_cleared' => 'Кэш %s очищен', + 'deleted' => 'Лента удалена', + 'error' => 'Лента не может быть изменена', + 'internal_problem' => 'Новостная лента не может быть добавлена. Проверьте логи FreshRSS для подробностей. Вы можете попробовать принудительно добавить ленту, добавив #force_feed к URL.', + 'invalid_url' => 'URL %s неверный', + 'n_actualized' => '%d лент актуализировано', + 'n_entries_deleted' => '%d лент удалено', + 'no_refresh' => 'Нечего актуализировать', + 'not_added' => '%s не может быть добавлена', + 'not_found' => 'Лента не найдена', + 'over_max' => 'Вы достигли ограничения на количество лент (%d)', + 'reloaded' => '%s перезагружена', '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 version %s.', // TODO - Translation - 'error' => 'The update process has encountered an error: %s', // TODO - Translation - 'file_is_nok' => 'New version %s available, but check permissions on %s 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 будет обновлён до версии %s.', + 'error' => 'Процесс обновления столкнулся с ошибкой: %s', + 'file_is_nok' => 'Новая версия %s доступна, но проверьте права к директории %s. У веб-сервера должно быть право на запись', + '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 Terms of Service.', // TODO - Translation - 'email' => 'Email address', // TODO - Translation - 'keep_logged_in' => 'Keep me logged in (%s дней)', - 'login' => 'Login', // TODO - Translation - 'logout' => 'Logout', // TODO - Translation + 'accept_tos' => 'Я принимаю Условия предоставления услуг.', + 'email' => 'Адрес электронной почты', + 'keep_logged_in' => 'Не выходить из системы (%s дней)', + 'login' => 'Войти', + 'logout' => 'Выйти', 'password' => array( - '_' => 'Password', // TODO - Translation - 'format' => 'At least 7 characters', // TODO - Translation + '_' => 'Пароль', + 'format' => 'Не менее 7 символов', ), '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' => 'Maximum 16 alphanumeric characters', // TODO - Translation + '_' => 'Имя пользователя', + 'admin' => 'Имя пользователя администратора', + 'format' => 'Не более 16 буквенно-цифровых символов', ), ), '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' => 'AGPL 3', // TODO - Translation - 'bugs_reports' => 'Bug reports', // TODO - Translation - 'credits' => 'Credits', // TODO - Translation - 'credits_content' => 'Some design elements come from Bootstrap although FreshRSS doesn’t use this framework. Icons come from GNOME project. Open Sans font police has been created by Steve Matteson. FreshRSS is based on Minz, a PHP framework.', // TODO - Translation - 'freshrss_description' => 'FreshRSS is a RSS feeds aggregator to self-host like Kriss Feed or Leed. It is light and easy to take in hand while being powerful and configurable tool.', // TODO - Translation - 'github' => 'on Github', // 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' => 'Некоторые элементы дизайна взяты из Bootstrap, хотя FreshRSS не использует этот фреймворк. Иконки взяты из проекта GNOME. Шрифт Open Sans создан Стивом Мэттесоном. FreshRSS основан на Minz, PHP-фреймворке.', + 'freshrss_description' => 'FreshRSS — агрегатор RSS-лент для размещения на своём сервере подобно Kriss Feed или Leed. Лёгкий и простой в использовании, будучи при этом мощным и настраиваемым инструментом.', + 'github' => 'в Github', + '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' => 'Пароль
(для метода аутентификации на Вэб-формах)', - 'password_format' => 'Как минимум 7 букв', - 'type' => 'Метод аутентификации', + 'form' => 'Веб-форма (традиционный, необходим JavaScript)', + 'http' => 'HTTP (для опытных пользователей с HTTPS)', + 'none' => 'Без аутентификации (небезопасно)', + 'password_form' => 'Пароль
(для входа через веб-форму)', + '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' => 'Проверьте права доступа к папке %s . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке %s . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на папку кэша в порядке.', ), 'ctype' => array( @@ -45,7 +45,7 @@ return array( 'ok' => 'У вас установлено расширение cURL.', ), 'data' => array( - 'nok' => 'Проверьте права доступа к папке %s . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке %s . Веб-сервер должен иметь право на запись в эту папку.', 'ok' => 'Права на ./data/ в порядке.', ), 'dom' => array( @@ -53,7 +53,7 @@ return array( 'ok' => 'У вас установлена необходимая библиотека для просмотра DOM.', ), 'favicons' => array( - 'nok' => 'Проверьте права доступа к папке %s . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке %s . Веб-сервер должен иметь право на запись в эту папку.', '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' => 'Проверьте права доступа к папке %s . Сервер HTTP должен иметь права на запись в эту папку.', - 'ok' => 'Permissions on the temp directory are good.', // TODO - Translation + 'nok' => 'Проверьте права доступа к папке %s . Веб-сервер должен иметь право на запись в эту папку.', + 'ok' => 'Права на папку temp в порядке.', ), - 'unknown_process_username' => 'unknown', // TODO - Translation + 'unknown_process_username' => 'неизвестно', 'users' => array( - 'nok' => 'Проверьте права доступа к папке %s . Сервер HTTP должен иметь права на запись в эту папку.', + 'nok' => 'Проверьте права доступа к папке %s . Веб-сервер должен иметь право на запись в эту папку.', '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' => 'Имя пользователя по умолчанию (максимум 16 латинских букв и/или цифр)', + 'default_user' => 'Имя пользователя по умолчанию (не более 16 буквенно-цифровых символов)', '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 %s manually.', // TODO - Translation - 'ok' => 'Установка успешна.', + 'missing_applied_migrations' => 'Что-то пошло не так; вам следует создать пустой файл %s вручную.', + '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 @@ 'Feed and category creation has been moved here. It is also accessible from the menu on the left and from the ✚ icon available on the main page.', // TODO - Translation + 'add' => 'Создание лент и категорий перемещено сюда. Оно также доступно из меню слева и по нажатию на иконку ✚ на главной странице.', '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' => 'Перетяните эту кнопку на вашу панель закладок, или нажмите правой кнопкой мыши и выберите "Добавить ссылку в закладки". Нажимайте кнопку "Подписаться" на любой странице, на которую вы хотите подписаться.
', + '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: foo=bar; gdpr_consent=true; cookie=value', // 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' => 'Пример: foo=bar; gdpr_consent=true; cookie=value', + '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 %s.', // TODO - Translation - 'mute' => 'mute', // TODO - Translation - 'no_selected' => 'No feed selected.', // TODO - Translation - 'number_entries' => '%d articles', // TODO - Translation + 'moved_category_deleted' => 'Когда вы удаляете категорию, ленты категории автоматически попадают в категорию %s.', + '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: 127.0.0.1:1080)', // TODO - Translation + 'proxy' => 'Указать прокси для извлечения этой ленты', + 'proxy_help' => 'Выберите протокол (например, SOCKS5) и введите адрес прокси (например, 127.0.0.1:1080)', '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: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)', // 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' => 'Пример: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:86.0)', + 'validator' => 'Проверить валидность ленты', + 'website' => 'URL сайта', + 'websub' => 'Моментальные оповещения посредством WebSub', ), 'firefox' => array( - 'documentation' => 'Follow the steps described here 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' => 'Выполните шаги, описанные здесь, чтобы добавить 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
(OPML, JSON or ZIP)', // TODO - Translation - 'file_to_import_no_zip' => 'File to import
(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' => 'Файл для импорта
(OPML, JSON or ZIP)', + 'file_to_import_no_zip' => 'Файл для импорта
(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 on the profile page.', // TODO - Translation - 'email_sent_to' => 'We sent you an email at %s. Please follow its instructions to validate your address.', // TODO - Translation + 'change_email' => 'Вы можете изменить ваш адрес электронной почты на странице профиля.', + 'email_sent_to' => 'Мы отправили вам письмо по адресу %s. Пожалуйста, следуйте инструкциям в нём, чтобы подтвердить ваш адрес электронной почты.', '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 занято.', ), ); -- cgit v1.2.3