From e9a0911bfcea2374ee282aee738c12ad9ed93b02 Mon Sep 17 00:00:00 2001 From: firapinch <105802895+firapinch@users.noreply.github.com> Date: Sat, 26 Aug 2023 23:14:53 +0500 Subject: [PATCH] feat(translations): add Russian translation (#661) * Readability changes in README.md (#625) * Made README.md introduction more readable * Underlined important reminder in README.md even though the reminder is bold, it's not visible enough * small typo fix README.md removed an unnecesary comma * Russian translation added --------- Co-authored-by: MerkomassDev Co-authored-by: Kingkor Roy Tirtho --- README.md | 7 +- lib/collections/language_codes.dart | 8 +- lib/l10n/app_ru.arb | 262 ++++++++++++++++++++++++++++ lib/l10n/l10n.dart | 1 + 4 files changed, 271 insertions(+), 7 deletions(-) create mode 100644 lib/l10n/app_ru.arb diff --git a/README.md b/README.md index a6d8433bd..62642defe 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@
Spotube Logo - An open source, cross-platform Spotify client that doesn't require Premium nor uses Electron!
- That uses Spotify's data/discovery API and YouTube (or Piped.video) as audio source + An open source, cross-platform Spotify client compatible across multiple platforms
+ utilizing Spotify's data API and YouTube (or Piped.video) as an audio source,
+ eliminating the need for Spotify Premium and Electron. Visit the website Discord Server @@ -37,7 +38,7 @@ ### ❌ Unsupported features -- 🗣️ **Spotify Shows & Podcasts:** Shows and Podcasts can **never be supported** because the audio tracks are _only_ available on Spotify and accessing them would require Spotify Premium. +- 🗣️ **Spotify Shows & Podcasts:** Shows and Podcasts can **never be supported** because the audio tracks are _only_ available on Spotify and accessing them would require Spotify Premium. - 🎧 **Spotify Listen Along:** [Coming soon!](https://github.com/KRTirtho/spotube/issues/8) ## 📜 ⬇️ Installation guide diff --git a/lib/collections/language_codes.dart b/lib/collections/language_codes.dart index cdb6a76dd..80b7db1db 100644 --- a/lib/collections/language_codes.dart +++ b/lib/collections/language_codes.dart @@ -540,10 +540,10 @@ abstract class LanguageLocals { // name: "Romanian, Moldavian, Moldovan", // nativeName: "română", // ), - // "ru": const ISOLanguageName( - // name: "Russian", - // nativeName: "русский язык", - // ), + "ru": const ISOLanguageName( + name: "Russian", + nativeName: "русский язык", + ), // "sa": const ISOLanguageName( // name: "Sanskrit (Saṁskṛta)", // nativeName: "संस्कृतम्", diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb new file mode 100644 index 000000000..e92797a47 --- /dev/null +++ b/lib/l10n/app_ru.arb @@ -0,0 +1,262 @@ +{ + "guest": "Гость", + "browse": "Обзор", + "search": "Поиск", + "library": "Библиотека", + "lyrics": "Текст", + "settings": "Настройки", + "genre_categories_filter": "Фильтр по категориям или жанрам...", + "genre": "Жанр", + "personalized": "Персонализированный", + "featured": "Будующий", + "new_releases": "Новые", + "songs": "Песни", + "playing_track": "Играет {track}", + "queue_clear_alert": "Это удалит текущую очередь. {track_length} треков будет удалено. Вы хотите продолжить?", + "load_more": "Загрузить больше", + "playlists": "Плейлисты", + "artists": "Исполнители", + "albums": "Альбомы", + "tracks": "Трек", + "downloads": "Загрузки", + "filter_playlists": "Применить фильтры к вашим плейлистам...", + "liked_tracks": "Понравившиеся треки", + "liked_tracks_description": "Все понравившиеся треки", + "create_playlist": "Создание плейлиста", + "create_a_playlist": "Создать плейлист", + "create": "Создать", + "cancel": "Отменить", + "playlist_name": "Назвать плейлист", + "name_of_playlist": "Название плейлиста", + "description": "Описание", + "public": "Публичные", + "collaborative": "Совместный", + "search_local_tracks": "Поиск песен на вашем устройстве...", + "play": "Играть", + "delete": "Удалить", + "none": "Никто", + "sort_a_z": "Сортировка по алфавиту", + "sort_z_a": "Сортировка по алфавиту в обратную сторону", + "sort_artist": "Сортировать по исполнителю", + "sort_album": "Сортировать по альбомам", + "sort_tracks": "Сортировать треки", + "currently_downloading": "Загружается ({tracks_length})", + "cancel_all": "Отменить все", + "filter_artist": "Фильтровать по исполнителю...", + "followers": "{followers} Подписчики", + "add_artist_to_blacklist": "Добавить исполнителя в черный список", + "top_tracks": "Чарт", + "fans_also_like": "Поклонникам также нравится", + "loading": "Загрузка...", + "artist": "Исполнитель", + "blacklisted": "Внесен в черный список", + "following": "Подписаны", + "follow": "Подписаться", + "artist_url_copied": "URL-адрес исполнителя скопирован в буфер обмена", + "added_to_queue": "Добавлено {tracks} треков в очередь", + "filter_albums": "Фильтровать альбомы...", + "synced": "Синхронизировано", + "plain": "Обычный", + "shuffle": "Перемешать", + "search_tracks": "Поиск треков...", + "released": "Дата выхода", + "error": "Ошибка {error}", + "title": "Заголовок", + "time": "Время", + "more_actions": "Больше действий", + "download_count": "Скачать ({count})", + "add_count_to_playlist": "Добавить ({count}) в плейлист", + "add_count_to_queue": "Добавить ({count}) в очередь", + "play_count_next": "Воспроизвести ({count}) следующий", + "album": "Альбом", + "copied_to_clipboard": "Скопировано {data} в буфер обмена", + "add_to_following_playlists": "Добавить {track} в этот плейлист", + "add": "Добавить", + "added_track_to_queue": "Добавлен {track} в очередь", + "add_to_queue": "Добавить в очередь", + "track_will_play_next": "{track} будет воспроизведен следующим", + "play_next": "Воспроизвести следующий", + "removed_track_from_queue": "{track} удален из очереди", + "remove_from_queue": "Удалить из очереди", + "remove_from_favorites": "Удалить из избранного", + "save_as_favorite": "Сохранить в избранное", + "add_to_playlist": "Добавить в плейлист", + "remove_from_playlist": "Удалить из плейлиста", + "add_to_blacklist": "Добавить в черный список", + "remove_from_blacklist": "Удалить из черного списка", + "share": "Поделиться", + "mini_player": "Мини-плеер", + "slide_to_seek": "Потяните для перемотки вперед или назад", + "shuffle_playlist": "Перемешать плейлист", + "unshuffle_playlist": "Снять перемешивание плейлиста", + "previous_track": "Предыдущий трек", + "next_track": "Следующий трек", + "pause_playback": "Пауза воспроизведения", + "resume_playback": "Возобновить воспроизведение", + "loop_track": "Циклический трек", + "repeat_playlist": "Повторите плейлист", + "queue": "Очередь", + "alternative_track_sources": "Альтернативные источники треков", + "download_track": "Скачать трек", + "tracks_in_queue": "{tracks} треков в очереди", + "clear_all": "Очистить все", + "show_hide_ui_on_hover": "Показать/Скрыть интерфейс при наведении", + "always_on_top": "Всегда сверху", + "exit_mini_player": "Выйти из мини-плеера", + "download_location": "Место загрузки", + "account": "Аккаунт", + "login_with_spotify": "Войдите с помощью своей учетной записи Spotify", + "connect_with_spotify": "Подключитесь к Spotify", + "logout": "Выйти", + "logout_of_this_account": "Выйдите из этого аккаунта", + "language_region": "Язык и регион", + "language": "Язык", + "system_default": "Системное значение по умолчанию", + "market_place_region": "Региональное пространство", + "recommendation_country": "Страна рекомендаций", + "appearance": "Внешний вид", + "layout_mode": "Режим компоновки", + "override_layout_settings": "Изменить настройки режима адаптивной компоновки", + "adaptive": "Адаптивный", + "compact": "Компактный", + "extended": "Расширенный", + "theme": "Тема", + "dark": "Тёмная", + "light": "Светлая", + "system": "Системная", + "accent_color": "Акцентный цвет", + "sync_album_color": "Синхронизировать цвет альбома", + "sync_album_color_description": "Использует основной цвет обложки альбома как цвет акцента", + "playback": "Воспроизведение", + "audio_quality": "Качество звука", + "high": "Высокое", + "low": "Низкое", + "pre_download_play": "Предварительная загрузка и воспроизведение", + "pre_download_play_description": "Вместо потоковой передачи аудио используйте загруженные байты и воспроизводьте их (рекомендуется для пользователей с высокой пропускной способностью)", + "skip_non_music": "Пропускать немузыкальные сегменты (SponsorBlock)", + "blacklist_description": "Черный список треков и артистов", + "wait_for_download_to_finish": "Пожалуйста, дождитесь завершения текущей загрузки", + "download_lyrics": "Скачивать тексты вместе с треками", + "desktop": "Компьютер", + "close_behavior": "Поведение при закрытии", + "close": "Закрыть", + "minimize_to_tray": "Свернуть", + "show_tray_icon": "Показать значок на панели задач", + "about": "О", + "u_love_spotube": "Мы знаем что вам нравится Spotube", + "check_for_updates": "Проверьте наличие обновлений", + "about_spotube": "О Spotube", + "blacklist": "Чёрный список", + "please_sponsor": "Стать спосором/поддержать", + "spotube_description": "Spotube – это легкий, кросс-платформенный клиент Spotify, предоставляющий бесплатный доступ для всех пользователей", + "version": "Версия", + "build_number": "Номер сборки", + "founder": "Создатель", + "repository": "Репозиторий", + "bug_issues": "Ошибки и проблемы", + "made_with": "Сделано Bangladesh🇧🇩 с ❤️", + "kingkor_roy_tirtho": "Kingkor Roy Tirtho", + "copyright": "© 2021-{current_year} Kingkor Roy Tirtho", + "license": "Лицензия", + "add_spotify_credentials": "Добавьте ваши учетные данные Spotify, чтобы начать", + "credentials_will_not_be_shared_disclaimer": "Не беспокойся, никакая личная информация не собирается и не передается", + "know_how_to_login": "Не знаете, как это сделать?", + "follow_step_by_step_guide": "Следуйте пошаговому руководству", + "spotify_cookie": "Spotify {name} Cookie", + "cookie_name_cookie": "{name} Cookie", + "fill_in_all_fields": "Пожалуйста, заполните все поля", + "submit": "Отправить", + "exit": "Выйти", + "previous": "Предыдущий", + "next": "Следующий", + "done": "Готово", + "step_1": "Шаг 1", + "first_go_to": "Сначала перейдите в", + "login_if_not_logged_in": "и войдите или зарегистрируйтесь, если вы не вошли в систему", + "step_2": "Шаг 2", + "step_2_steps": "1. После входа в систему нажмите F12 или щелкните правой кнопкой мыши > «Проверить», чтобы открыть инструменты разработчика браузера.\n2. Затем перейдите на вкладку \"Application\" (Chrome, Edge, Brave и т.д..) or \"Storage\" (Firefox, Palemoon и т.д..)\n3. Перейдите в раздел \"Cookies\", а затем в подраздел \"https://accounts.spotify.com\"", + "step_3": "Шаг 3", + "step_3_steps": "Скопируйте значения \"sp_dc\" и \"sp_key\" (или sp_gaid) Cookies", + "success_emoji": "Успешно 🥳", + "success_message": "Теперь вы успешно вошли в свою учетную запись Spotify. Отличная работа, приятель!", + "step_4": "Шаг 4", + "step_4_steps": "Вставьте скопированные \"sp_dc\" и \"sp_key\" (или sp_gaid) значения в соответствующие поля", + "something_went_wrong": "Что-то пошло не так", + "piped_instance": "Экземпляр сервера Piped", + "piped_description": "Серверный экземпляр Piped для сопоставления треков", + "piped_warning": "Некоторые из них могут работать неправильно, поэтому используйте на свой страх и риск", + "generate_playlist": "Создать плейлист", + "track_exists": "Трек {track} уже существует", + "replace_downloaded_tracks": "Заменить все ранее скачанные треки", + "skip_download_tracks": "Пропустить загрузку всех ранее скачанных треков", + "do_you_want_to_replace": "Хотите заменить существующий трек??", + "replace": "Заменить", + "skip": "Пропустить", + "select_up_to_count_type": "Выберите до {count} {type}", + "select_genres": "Выберите жанр", + "add_genres": "Добавить жанр", + "country": "Страна", + "number_of_tracks_generate": "Количество треков для создания", + "acousticness": "Акустичность", + "danceability": "Ритмичность", + "energy": "Энергичность", + "instrumentalness": "Инструментальность", + "liveness": "Живость", + "loudness": "Громкость", + "speechiness": "Речевой характер", + "valence": "Значимость", + "popularity": "Популярность", + "key": "Ключ", + "duration": "Продолжительность (с)", + "tempo": "Время (BPM)", + "mode": "Режим", + "time_signature": "Тактовый размер", + "short": "Короткий", + "medium": "Средний", + "long": "Длинный", + "min": "Минимум", + "max": "Максимум", + "target": "Цель", + "moderate": "Отобрать", + "deselect_all": "Убрать выделение со всех", + "select_all": "Выделить все", + "are_you_sure": "Вы уверены?", + "generating_playlist": "Создание собственного плейлиста...", + "selected_count_tracks": "Выбрано {count} треков", + "download_warning": "При скачивании всех треков пакетом вы фактически занимаетесь пиратством и наносите ущерб творческому обществу музыки. Надеюсь, что вы осознаете это. Всегда старайтесь уважать и поддерживать усилия исполнителей, вложенные в их творчество", + "download_ip_ban_warning": "Кроме того, стоит учитывать, что из-за чрезмерного количества запросов на скачивание ваш IP-адрес может быть заблокирован на YouTube. Блокировка IP означает, что вы не сможете использовать YouTube (даже если вы вошли в свою учетную запись) в течение, как минимум, 2-3 месяцев с того устройства, с которого были сделаны эти запросы. Важно заметить, что Spotube не несет ответственности за такие события", + "by_clicking_accept_terms": "Нажимая 'принять', вы соглашаетесь с следующими условиями:", + "download_agreement_1": "Я осознаю, что я использую музыку незаконно. Это плохо.", + "download_agreement_2": "Я бы поддержал исполнителей, где только смог, и делаю это, так как не имею средств на приобретение их творчества", + "download_agreement_3": "Я полностью осознаю, что мой IP-адрес может быть заблокирован на YouTube, и я не считаю Spotube или его владельцев/соавторов ответственными за какие-либо неприятности, вызванные моими текущими действиями", + "decline": "Отклонить", + "accept": "Принять", + "details": "Детали", + "youtube": "YouTube", + "channel": "Канал", + "likes": "Нравится", + "dislikes": "Не нравится", + "views": "Просмотров", + "streamUrl": "URL-адрес потока", + "stop": "Остановить", + "sort_newest": "Сортировать по самым новым добавленным", + "sort_oldest": "Сортировать по самым старым добавленным", + "sleep_timer": "Таймер сна", + "mins": "{minutes} Минут", + "hours": "{hours} Часы", + "hour": "{hours} Час", + "custom_hours": "Пользовательские часы", + "logs": "Журналы", + "developers": "Разработчики", + "not_logged_in": "Вы не выполнили вход", + "search_mode": "Режим поиска", + "youtube_api_type": "Тип API", + "ok": "Ок", + "failed_to_encrypt": "Не удалось зашифровать", + "encryption_failed_warning": "Spotube использует шифрование для безопасного хранения ваших данных. Однако в этом случае произошла ошибка. Поэтому будет использовано небезопасное хранилище.\nЕсли вы используете Linux, убедитесь, что у вас установлен какой-либо инструмент для работы с секретами (gnome-keyring, kde-wallet, keepassxc и т.д.)", + "querying_info": "Запрос информации...", + "piped_api_down": "Piped API не отвечает", + "piped_down_error_instructions": "Экземпляр Piped {pipedInstance} в данный момент недоступен.\n\nВы можете либо изменить экземпляр, либо переключиться на использование официального API YouTube.\n\nНе забудьте перезапустить приложение после внесенных изменений", + "you_are_offline": "Нет доступа к сети", + "connection_restored": "Ваше интернет-соединение восстановлено" +} \ No newline at end of file diff --git a/lib/l10n/l10n.dart b/lib/l10n/l10n.dart index f1efdb753..838ddee7a 100644 --- a/lib/l10n/l10n.dart +++ b/lib/l10n/l10n.dart @@ -19,6 +19,7 @@ class L10n { const Locale('ja', 'JP'), const Locale('zh', 'CN'), const Locale('pl', 'PL'), + const Locale('ru', 'RU'), const Locale('pt', 'PT'), ]; }