Add ru [Russian] translations

Add partial translations for Russian, along with some new translations for other languages.
This commit is contained in:
OxygenCobalt 2021-01-27 18:58:35 -07:00
parent 2099453d01
commit d98d41102d
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
13 changed files with 127 additions and 20 deletions

View file

@ -38,7 +38,7 @@ class MusicLoader(private val app: Application) {
return Response.FAILED
}
if (songs.size == 0) {
if (songs.isEmpty()) {
return Response.NO_MUSIC
}

View file

@ -502,7 +502,7 @@ class PlaybackService : Service(), Player.EventListener, PlaybackStateManager.Ca
/**
* A [BroadcastReceiver] for receiving system events from the media notification or the headset.
*/
inner class SystemEventReceiver : BroadcastReceiver() {
private inner class SystemEventReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action

View file

@ -7,6 +7,7 @@ import androidx.lifecycle.Transformations
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.launch
import org.oxycblt.auxio.R
import org.oxycblt.auxio.logD
import org.oxycblt.auxio.logE
import org.oxycblt.auxio.music.Album
@ -21,6 +22,7 @@ import org.oxycblt.auxio.playback.state.PlaybackMode
import org.oxycblt.auxio.playback.state.PlaybackStateManager
import org.oxycblt.auxio.recycler.SortMode
import org.oxycblt.auxio.settings.SettingsManager
import org.oxycblt.auxio.ui.createToast
/**
* The ViewModel that provides a UI frontend for [PlaybackStateManager].
@ -315,6 +317,8 @@ class PlaybackViewModel : ViewModel(), PlaybackStateManager.Callback {
fun save(context: Context) {
viewModelScope.launch {
playbackManager.saveStateToDatabase(context)
context.getString(R.string.debug_state_saved).createToast(context)
}
}

View file

@ -21,7 +21,6 @@ import org.oxycblt.auxio.recycler.DisplayMode
import org.oxycblt.auxio.settings.ui.AccentAdapter
import org.oxycblt.auxio.ui.ACCENTS
import org.oxycblt.auxio.ui.Accent
import org.oxycblt.auxio.ui.createToast
/**
* The actual fragment containing the settings menu. Inherits [PreferenceFragmentCompat].
@ -134,7 +133,6 @@ class SettingsListFragment : PreferenceFragmentCompat() {
SettingsManager.Keys.KEY_DEBUG_SAVE -> {
onPreferenceClickListener = Preference.OnPreferenceClickListener {
playbackModel.save(requireContext())
getString(R.string.debug_state_saved).createToast(requireContext())
true
}

View file

@ -25,6 +25,8 @@ import com.google.android.material.button.MaterialButton
import org.oxycblt.auxio.R
import org.oxycblt.auxio.logE
// A Variety of shortcut, convenience, hacks, and extension functions used across Auxio.
// --- VIEW CONFIGURATION ---
/**
@ -48,17 +50,17 @@ fun TextView.setTextColorResource(@ColorRes color: Int) {
}
/**
* Apply accents to a [MaterialButton]
* Apply accents to a [MaterialButton] manually.
* Yes, I could change my theming to Material but that would have so many second-and-third order
* effects that I *really* dont want to deal with it. This hack works.
* @param highlighted Whether the MaterialButton has an "Unimportant" style or not.
* Required because you cant determine a style of a view before API 29
*/
fun MaterialButton.applyAccents(highlighted: Boolean) {
val accent = Accent.get().color.toColor(context)
if (highlighted) {
backgroundTintList = ColorStateList.valueOf(accent)
backgroundTintList = Accent.get().color.toStateList(context)
} else {
setTextColor(accent)
setTextColor(Accent.get().color.toColor(context))
}
}
@ -84,7 +86,7 @@ fun String.createToast(context: Context) {
/**
* Ensure that a not-null [AppCompatActivity] will be returned.
* @throws IllegalStateException When there is no activity or if the activity is null
* @throws IllegalStateException When there is no [AppCompatActivity] or if the activity is null
*/
fun Fragment.requireCompatActivity(): AppCompatActivity {
val activity = requireActivity()
@ -127,6 +129,7 @@ fun Int.toColor(context: Context): Int {
* Resolve a color and turn it into a [ColorStateList]
* @param context [Context] required
* @return The resolved color as a [ColorStateList]
* @see toColor
*/
fun Int.toStateList(context: Context): ColorStateList = ColorStateList.valueOf(toColor(context))

View file

@ -23,7 +23,7 @@
<string name="label_go_album">Zum Album gehen</string>
<string name="label_queue">Warteschlange</string>
<string name="label_queue_add">Zur Warteschlange hinzufügen</string>
<string name="label_queue_added">der Warteschlange hinzugefügt</string>
<string name="label_queue_added">Der Warteschlange hinzugefügt</string>
<string name="label_next_user_queue">Nächsten im Warteschlange</string>
<string name="label_about">Über</string>
<string name="label_version">Version</string>
@ -55,7 +55,7 @@
<string name="setting_behavior_keep_shuffle">Shuffle-Einstellung merken</string>
<string name="error_music_load_failed">Laden die Musik fehlgeschlagen</string>
<string name="error_no_browser">Link könnte nicht geöffnet werden</string>
<string name="hint_search_library">Suchen deine Musikbibliothek…</string>
<string name="hint_search_library">Durchsuche deine Musikbibliothek…</string>
<string name="description_album_cover">Albumcover für %s</string>
<string name="description_artist_image">Künstlerbild für %s</string>
<string name="description_genre_image">Genrebild für %s</string>
@ -88,18 +88,18 @@
<string name="placeholder_genre">Unbekanntes Genre</string>
<string name="placeholder_artist">Unbekannter Künstler</string>
<string name="placeholder_album">Unbekanntes Album</string>
<string name="format_songs_loaded">Lieden geladen: %d</string>
<string name="format_songs_loaded">Lieder geladen: %d</string>
<string name="label_author">Entwickelt von OxygenCobalt</string>
<string name="description_play">Abspielen</string>
<string name="description_pause">Pausieren</string>
<string name="description_auxio_icon">Auxio-Icon</string>
<string name="description_search_clear">Löschen Suchanfrage</string>
<string name="description_search_clear">"Suchanfrage Löschen "</string>
<string name="description_change_loop">Art die Wiederholung ändern</string>
<string name="description_shuffle_off">Zufällig ausschalten</string>
<string name="description_shuffle_on">Zufällig anschalten</string>
<string name="description_skip_prev">zu letzter Lied springen</string>
<string name="description_skip_next">Springt zu nächster springen</string>
<string name="description_clear_user_queue">Warteschlange Entleeren</string>
<string name="description_skip_prev">Zu letzter Lied springen</string>
<string name="description_skip_next">Zu nächster Lied springen</string>
<string name="description_clear_user_queue">Warteschlange entleeren</string>
<string name="setting_playback_focus_desc">Pausieren wenn anderes Audio abspielt [Bsp. Alarme]</string>
<string name="setting_playback_plug_mgt_desc">Abspielen/Pausieren wenn der Kopfhöreranschluss ändern</string>
<string name="setting_use_alt_shuffle">Zufällig-Aktionstaste Vorziehen</string>
@ -117,7 +117,7 @@
<string name="setting_use_alt_action">Ändere Aktionstaste verwenden</string>
<string name="setting_behavior_keep_shuffle_desc">Lassen Zufällig an, wenn ein neues Lied anspielen</string>
<string name="setting_show_covers_desc">Ausschalten zu Speicherverbrauch sparen</string>
<string name="setting_color_desc">Zeigen Albumcover an der Benachrichtigung</string>
<string name="setting_color_desc">Albumcover am Benachrichtigung zeigen</string>
<string name="setting_quality_covers_desc">Verbesst die Albumcover Qualität, jedoch die Ladezeit und höher Speicherverbrauch beeinträchtigt</string>
<string name="setting_behavior_rewind_prev">Zurückspulen, bevor zurück springen</string>
<string name="info_app_desc">Ein einfacher und flexibeler Musik-Player für Android</string>

View file

@ -56,4 +56,18 @@
<string name="color_label_grey">Γκρί</string>
<string name="color_label_blue_grey">Γαλάζιος Γκρί</string>
<string name="format_songs_loaded">Τραγούδια φορτώθηκε: %d</string>
<plurals name="format_song_count">
<item quantity="one">%d Τραγούδι</item>
<item quantity="other">%d Τραγούδια</item>
</plurals>
<plurals name="format_album_count">
<item quantity="one">%d Άλμπουμ</item>
<item quantity="other">%d Άλμπουμ</item>
</plurals>
<string name="setting_behavior_end_stop">Διακοπή</string>
<string name="label_sort_alpha_down">Α</string>
<string name="label_sort_alpha_up">Ω-Α</string>
<string name="label_sort_none">Προεπιλεγμένη</string>
<string name="setting_quality_covers">Παράληψη των Media Store εξωφύλλων</string>
</resources>

View file

@ -81,4 +81,5 @@
</plurals>
<string name="hint_search_library">Busca en tu biblioteca…</string>
<string name="setting_playback_plug_mgt">Conexión de auriculares</string>
<string name="setting_quality_covers">Ignorar imágenes de la librería del sistema</string>
</resources>

View file

@ -63,7 +63,7 @@
<string name="format_songs_loaded">Titres chargés: %d</string>
<string name="label_all_songs">Titres</string>
<string name="label_queue_add">Ajouter à la file d\'attente</string>
<string name="setting_lib_display">Bibliothèque Objets</string>
<string name="setting_lib_display">Objets Bibliothèque</string>
<string name="color_label_red">Rouge</string>
<string name="description_track_number">Morceau %d</string>
<plurals name="format_song_count">
@ -80,4 +80,5 @@
<string name="label_author">Développé par OxygenCobalt</string>
<string name="setting_playback_plug_mgt">Branchement du casque</string>
<string name="hint_search_library">Recherche dans votre bibliothèque…</string>
<string name="setting_quality_covers">Ignorer le stockage des pochettes</string>
</resources>

View file

@ -80,4 +80,5 @@
</plurals>
<string name="hint_search_library">Cerca nella tua libreria…</string>
<string name="setting_playback_plug_mgt">Inserimento cuffie</string>
<string name="setting_quality_covers">Ignora le copertine del Media Store</string>
</resources>

View file

@ -75,4 +75,5 @@
<item quantity="one">%d Álbum</item>
<item quantity="other">%d Álbuns</item>
</plurals>
<string name="setting_quality_covers">Ignorar capas Media Store</string>
</resources>

View file

@ -61,6 +61,11 @@
<string name="color_label_brown">Moreno</string>
<string name="color_label_grey">Grisalho</string>
<string name="color_label_blue_grey">Azul-grisalho</string>
<string name="format_songs_loaded">Músicas carregado: %d</string>
<string name="label_about">Sobre</string>
<string name="label_version">Versão</string>
<string name="label_code">Ver no GitHub</string>
<string name="label_licenses">Licenças</string>
<plurals name="format_song_count">
<item quantity="one">%d Música</item>
<item quantity="other">%d Músicas</item>
@ -70,5 +75,5 @@
<item quantity="one">%d Álbum</item>
<item quantity="other">%d Álbuns</item>
</plurals>
<string name="format_songs_loaded">Músicas carregado: %d</string>
<string name="setting_quality_covers">Ignorar capas Media Store</string>
</resources>

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="label_retry">Повторить попытку</string>
<string name="label_grant">Разрешить</string>
<string name="label_library">Библиотека</string>
<string name="label_genres">Жанры</string>
<string name="label_artists">Исполнители</string>
<string name="label_albums">Альбомы</string>
<string name="label_songs">Треки</string>
<string name="label_all_songs">Треки</string>
<string name="hint_search_library">Поиск в библиотеке…</string>
<string name="label_search">Поиск</string>
<string name="label_filter">Фильтр</string>
<string name="label_filter_all">Всё</string>
<string name="label_sort">Сортировка</string>
<string name="label_sort_none">По умолчанию</string>
<string name="label_sort_alpha_down">А</string>
<string name="label_sort_alpha_up">Я-А</string>
<string name="label_playback">Сейчас воспроизводится</string>
<string name="label_play">Воспроизвести</string>
<string name="label_shuffle">Перемешать</string>
<string name="label_go_artist">Перейти к исполнителю</string>
<string name="label_go_album">Перейти к альбому</string>
<string name="label_queue">Очередь</string>
<string name="label_queue_add">Добавить в очередь</string>
<string name="label_queue_added">Добавлена в очередь</string>
<string name="label_next_user_queue">Далее</string>
<string name="label_about">О программе</string>
<string name="label_version">Версия</string>
<string name="label_code">Открыть на GitHub</string>
<string name="label_licenses">Лицензии</string>
<string name="setting_title">Настройки</string>
<string name="setting_ui">Вид экрана воспроизведения</string>
<string name="setting_theme">Тема</string>
<string name="setting_theme_night">Темная</string>
<string name="setting_theme_day">Светлая</string>
<string name="setting_accent">Цвет акцента</string>
<string name="setting_theme_auto">Автоматически</string>
<string name="setting_color_notif">Цветное уведомление</string>
<string name="setting_playback">Аудио</string>
<string name="setting_playback_audio_focus">Фокусировка аудио</string>
<string name="setting_playback_plug_mgt">Гарнитура</string>
<string name="setting_behavior">Поведение</string>
<string name="setting_behavior_end_loop">Продолжить</string>
<string name="setting_behavior_end_stop">Стоп</string>
<string name="setting_behavior_keep_shuffle">Запомнить перемешивание</string>
<string name="error_no_music">Музыка не найдена</string>
<string name="description_track_number">Трек %d</string>
<string name="description_error">Ошибка</string>
<string name="description_clear_user_queue">Очистить очередь</string>
<string name="description_play">Воспроизвести</string>
<string name="description_pause">Пауза</string>
<string name="color_label_red">Расный</string>
<string name="color_label_pink">Розовый</string>
<string name="color_label_purple">Пурпурный</string>
<string name="color_label_light_blue">Голубой</string>
<string name="color_label_teal">Зелёный</string>
<string name="color_label_green">Светло-Зелёный</string>
<string name="color_label_yellow">Оранжевый</string>
<string name="color_label_light_green">Жёлтый</string>
<string name="color_label_orange">Коричневый</string>
<string name="color_label_brown">Седой</string>
<string name="color_label_blue_grey">Нейтральный</string>
<string name="format_songs_loaded">Треки загружено: %d</string>
<plurals name="format_song_count">
<item quantity="one">%d Песня</item>
<item quantity="few">%d Песни</item>
<item quantity="many">%d Песен</item>
<item quantity="other">%d Треки</item>
</plurals>
<plurals name="format_album_count">
<item quantity="one">%d Альбом</item>
<item quantity="few">%d Альбома</item>
<item quantity="many">%d Альбомов</item>
<item quantity="other">%d Альбомы</item>
</plurals>
<string name="setting_quality_covers">Игнорировать хранилище обложек альбомов</string>
</resources>