style: remove android string references
Remove references to android system strings, in favor of in-house translations. Previously Auxio would use the `android.R.string.ok` and `android.R.string.cancel` strings to represent Ok and Cancel respectively, but these system strings are actually untranslated on some devices, so it is better for i18n if we use our own strings for such.
This commit is contained in:
parent
21fccf1f31
commit
2c7dd1241b
23 changed files with 159 additions and 149 deletions
|
@ -5,6 +5,7 @@
|
|||
#### What's New
|
||||
- Added disc number support
|
||||
- Added ReplayGain support for below-reference volume tracks [i.e positive ReplayGain values]
|
||||
- Added ReplayGain pre-amp customization
|
||||
- About screen now shows counts for multiple types of library items, alongside a total duration
|
||||
- New disc, track, song count, and duration sorting modes
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ class MainFragment : ViewBindingFragment<FragmentMainBinding>() {
|
|||
|
||||
/**
|
||||
* A back press callback that handles how to respond to backwards navigation in the detail
|
||||
* fragments and the playback panel.
|
||||
* fragments and the playback panel. TODO: Migrate to new predictive API
|
||||
*/
|
||||
inner class DynamicBackPressedCallback : OnBackPressedCallback(false) {
|
||||
override fun handleOnBackPressed() {
|
||||
|
|
|
@ -32,8 +32,7 @@ import org.oxycblt.auxio.util.logD
|
|||
import org.oxycblt.auxio.util.requireAttached
|
||||
|
||||
/**
|
||||
* The dialog for customizing library tabs. This dialog does not rely on any specific ViewModel and
|
||||
* serializes it's state instead of
|
||||
* The dialog for customizing library tabs.
|
||||
* @author OxygenCobalt
|
||||
*/
|
||||
class TabCustomizeDialog : ViewBindingDialogFragment<DialogTabsBinding>(), TabAdapter.Listener {
|
||||
|
@ -46,14 +45,10 @@ class TabCustomizeDialog : ViewBindingDialogFragment<DialogTabsBinding>(), TabAd
|
|||
|
||||
override fun onConfigDialog(builder: AlertDialog.Builder) {
|
||||
builder.setTitle(R.string.set_lib_tabs)
|
||||
|
||||
builder.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
.setPositiveButton(R.string.lbl_ok) { _, _ ->
|
||||
logD("Committing tab changes")
|
||||
settingsManager.libTabs = tabAdapter.data.tabs
|
||||
}
|
||||
|
||||
// Negative button just dismisses, no need for a listener.
|
||||
builder.setNegativeButton(android.R.string.cancel, null)
|
||||
}.setNegativeButton(R.string.lbl_cancel, null)
|
||||
}
|
||||
|
||||
override fun onBindingCreated(binding: DialogTabsBinding, savedInstanceState: Bundle?) {
|
||||
|
|
|
@ -30,7 +30,9 @@ import org.oxycblt.auxio.util.requireBackgroundThread
|
|||
* Database for storing excluded directories. Note that the paths stored here will not work with
|
||||
* MediaStore unless you append a "%" at the end. Yes. I know Room exists. But that would needlessly
|
||||
* bloat my app and has crippling bugs.
|
||||
* @author OxygenCobalt TODO: Migrate this to SharedPreferences?
|
||||
* @author OxygenCobalt
|
||||
*
|
||||
* TODO: Migrate this to SharedPreferences?
|
||||
*/
|
||||
class ExcludedDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
|
||||
override fun onCreate(db: SQLiteDatabase) {
|
||||
|
|
|
@ -53,12 +53,11 @@ class ExcludedDialog :
|
|||
override fun onCreateBinding(inflater: LayoutInflater) = DialogExcludedBinding.inflate(inflater)
|
||||
|
||||
override fun onConfigDialog(builder: AlertDialog.Builder) {
|
||||
builder.setTitle(R.string.set_excluded)
|
||||
|
||||
// Don't set the click listener here, we do some custom black magic in onCreateView instead.
|
||||
builder.setNeutralButton(R.string.lbl_add, null)
|
||||
builder.setPositiveButton(R.string.lbl_save, null)
|
||||
builder.setNegativeButton(android.R.string.cancel, null)
|
||||
builder.setTitle(R.string.set_excluded)
|
||||
.setNeutralButton(R.string.lbl_add, null)
|
||||
.setPositiveButton(R.string.lbl_save, null)
|
||||
.setNegativeButton(R.string.lbl_cancel, null)
|
||||
}
|
||||
|
||||
override fun onBindingCreated(binding: DialogExcludedBinding, savedInstanceState: Bundle?) {
|
||||
|
|
|
@ -34,6 +34,11 @@ import org.oxycblt.auxio.util.getAttrColorSafe
|
|||
import org.oxycblt.auxio.util.systemBarInsetsCompat
|
||||
import org.oxycblt.auxio.util.textSafe
|
||||
|
||||
/**
|
||||
* A fragment showing the current playback state in a compact manner. Placed at the bottom of the
|
||||
* screen. This expands into [PlaybackPanelFragment].
|
||||
* @author OxygenCobalt
|
||||
*/
|
||||
class PlaybackBarFragment : ViewBindingFragment<FragmentPlaybackBarBinding>() {
|
||||
private val playbackModel: PlaybackViewModel by activityViewModels()
|
||||
private val navModel: NavigationViewModel by activityViewModels()
|
||||
|
|
|
@ -33,7 +33,7 @@ import org.oxycblt.auxio.util.textSafe
|
|||
* The dialog for customizing the ReplayGain pre-amp values.
|
||||
* @author OxygenCobalt
|
||||
*/
|
||||
class ReplayGainDialog : ViewBindingDialogFragment<DialogPreAmpBinding>() {
|
||||
class PreAmpCustomizeDialog : ViewBindingDialogFragment<DialogPreAmpBinding>() {
|
||||
private val settingsManager = SettingsManager.getInstance()
|
||||
|
||||
override fun onCreateBinding(inflater: LayoutInflater) = DialogPreAmpBinding.inflate(inflater)
|
||||
|
@ -41,12 +41,12 @@ class ReplayGainDialog : ViewBindingDialogFragment<DialogPreAmpBinding>() {
|
|||
override fun onConfigDialog(builder: AlertDialog.Builder) {
|
||||
builder
|
||||
.setTitle(R.string.set_pre_amp)
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
.setPositiveButton(R.string.lbl_ok) { _, _ ->
|
||||
val binding = requireBinding()
|
||||
settingsManager.replayGainPreAmp =
|
||||
ReplayGainPreAmp(binding.withTagsSlider.value, binding.withoutTagsSlider.value)
|
||||
}
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.setNegativeButton(R.string.lbl_cancel, null)
|
||||
}
|
||||
|
||||
override fun onBindingCreated(binding: DialogPreAmpBinding, savedInstanceState: Bundle?) {
|
|
@ -35,10 +35,12 @@ import org.oxycblt.auxio.util.logW
|
|||
import org.oxycblt.auxio.util.unlikelyToBeNull
|
||||
|
||||
/**
|
||||
* An [AudioProcessor] that automatically handles ReplayGain values and their amplification of the
|
||||
* audio stream. Instead of leveraging the volume attribute like other implementations, this system
|
||||
* manipulates the bitstream itself to modify the volume, which allows the use of positive
|
||||
* ReplayGain values.
|
||||
* An [AudioProcessor] that handles ReplayGain values and their amplification of the audio stream.
|
||||
* Instead of leveraging the volume attribute like other implementations, this system manipulates
|
||||
* the bitstream itself to modify the volume, which allows the use of positive ReplayGain values.
|
||||
*
|
||||
* Note that you must still give it a [Metadata] instance for it to function, which should be done
|
||||
* when the active track changes.
|
||||
*
|
||||
* @author OxygenCobalt
|
||||
*/
|
||||
|
@ -59,9 +61,8 @@ class ReplayGainAudioProcessor : BaseAudioProcessor() {
|
|||
// --- REPLAYGAIN PARSING ---
|
||||
|
||||
/**
|
||||
* Updates the rough volume adjustment for [Metadata] with ReplayGain tags. This is
|
||||
* tangentially based off Vanilla Music's implementation, but has diverged to a significant
|
||||
* extent.
|
||||
* Updates the rough volume adjustment for [Metadata] with ReplayGain tags. This is tangentially
|
||||
* based off Vanilla Music's implementation, but has diverged to a significant extent.
|
||||
*/
|
||||
fun applyReplayGain(metadata: Metadata?) {
|
||||
if (settingsManager.replayGainMode == ReplayGainMode.OFF) {
|
||||
|
|
|
@ -33,8 +33,8 @@ import org.oxycblt.auxio.R
|
|||
import org.oxycblt.auxio.home.tabs.TabCustomizeDialog
|
||||
import org.oxycblt.auxio.music.excluded.ExcludedDialog
|
||||
import org.oxycblt.auxio.playback.PlaybackViewModel
|
||||
import org.oxycblt.auxio.playback.replaygain.ReplayGainDialog
|
||||
import org.oxycblt.auxio.playback.replaygain.ReplayGainMode
|
||||
import org.oxycblt.auxio.playback.replaygain.PreAmpCustomizeDialog
|
||||
import org.oxycblt.auxio.settings.pref.IntListPreference
|
||||
import org.oxycblt.auxio.settings.pref.IntListPreferenceDialog
|
||||
import org.oxycblt.auxio.ui.accent.AccentCustomizeDialog
|
||||
|
@ -168,7 +168,8 @@ class SettingsListFragment : PreferenceFragmentCompat() {
|
|||
SettingsManager.KEY_PRE_AMP -> {
|
||||
onPreferenceClickListener =
|
||||
Preference.OnPreferenceClickListener {
|
||||
ReplayGainDialog().show(childFragmentManager, ReplayGainDialog.TAG)
|
||||
PreAmpCustomizeDialog()
|
||||
.show(childFragmentManager, PreAmpCustomizeDialog.TAG)
|
||||
true
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import android.os.Bundle
|
|||
import androidx.preference.PreferenceDialogFragmentCompat
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import org.oxycblt.auxio.BuildConfig
|
||||
import org.oxycblt.auxio.R
|
||||
|
||||
class IntListPreferenceDialog : PreferenceDialogFragmentCompat() {
|
||||
private val listPreference: IntListPreference
|
||||
|
@ -35,7 +36,7 @@ class IntListPreferenceDialog : PreferenceDialogFragmentCompat() {
|
|||
val builder = MaterialAlertDialogBuilder(requireContext(), theme)
|
||||
builder.setTitle(listPreference.title)
|
||||
builder.setPositiveButton(null, null)
|
||||
builder.setNegativeButton(android.R.string.cancel, null)
|
||||
builder.setNegativeButton(R.string.lbl_cancel, null)
|
||||
builder.setSingleChoiceItems(listPreference.entries, listPreference.getValueIndex()) {
|
||||
_,
|
||||
index ->
|
||||
|
|
|
@ -42,7 +42,7 @@ class AccentCustomizeDialog :
|
|||
override fun onConfigDialog(builder: AlertDialog.Builder) {
|
||||
builder
|
||||
.setTitle(R.string.set_accent)
|
||||
.setPositiveButton(android.R.string.ok) { _, _ ->
|
||||
.setPositiveButton(R.string.lbl_ok) { _, _ ->
|
||||
if (accentAdapter.selectedAccent != settingsManager.accent) {
|
||||
logD("Applying new accent")
|
||||
settingsManager.accent = unlikelyToBeNull(accentAdapter.selectedAccent)
|
||||
|
@ -51,9 +51,7 @@ class AccentCustomizeDialog :
|
|||
|
||||
dismiss()
|
||||
}
|
||||
|
||||
// Negative button just dismisses, no need for a listener.
|
||||
.setNegativeButton(android.R.string.cancel, null)
|
||||
.setNegativeButton(R.string.lbl_cancel, null)
|
||||
}
|
||||
|
||||
override fun onBindingCreated(binding: DialogAccentBinding, savedInstanceState: Bundle?) {
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
android:paddingStart="@dimen/spacing_medium"
|
||||
android:paddingEnd="@dimen/spacing_medium"
|
||||
android:paddingBottom="@dimen/spacing_medium"
|
||||
android:text="@string/lbl_no_dirs"
|
||||
android:text="@string/err_no_dirs"
|
||||
android:textAlignment="center"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.TitleMidLarge"
|
||||
android:textColor="?android:attr/textColorSecondary" />
|
||||
|
|
|
@ -1,16 +1,20 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/with_tags_header"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_mid_large"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:text="@string/set_pre_amp_with"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.TitleMedium"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -20,26 +24,26 @@
|
|||
android:id="@+id/with_tags_slider"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:stepSize="0.1"
|
||||
android:valueFrom="-15.0"
|
||||
android:valueTo="15.0"
|
||||
app:labelBehavior="gone"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:haloRadius="@dimen/slider_halo_radius"
|
||||
app:tickVisible="false"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
app:labelBehavior="gone"
|
||||
app:layout_constraintEnd_toStartOf="@+id/with_tags_ticker"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/with_tags_header"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:tickVisible="false"
|
||||
tools:value="0.0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/with_tags_ticker"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="@dimen/size_btn_large"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_large"
|
||||
android:gravity="center"
|
||||
android:minWidth="@dimen/size_btn_large"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyMedium"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/with_tags_slider"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
@ -50,8 +54,8 @@
|
|||
android:id="@+id/without_tags_header"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginStart="@dimen/spacing_mid_large"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:text="@string/set_pre_amp_without"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.TitleMedium"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
|
@ -61,27 +65,27 @@
|
|||
android:id="@+id/without_tags_slider"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
android:stepSize="0.1"
|
||||
android:valueFrom="-15.0"
|
||||
android:valueTo="15.0"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:haloRadius="@dimen/slider_halo_radius"
|
||||
android:layout_marginStart="@dimen/spacing_small"
|
||||
app:tickVisible="false"
|
||||
app:labelBehavior="gone"
|
||||
app:layout_constraintEnd_toStartOf="@+id/without_tags_ticker"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/without_tags_header"
|
||||
app:thumbRadius="@dimen/slider_thumb_radius"
|
||||
app:tickVisible="false"
|
||||
tools:value="0.0" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/without_tags_ticker"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_large"
|
||||
android:gravity="center"
|
||||
android:minWidth="@dimen/size_btn_large"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodyMedium"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_large"
|
||||
app:layout_constraintBottom_toBottomOf="@+id/without_tags_slider"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@+id/without_tags_slider"
|
||||
|
@ -91,13 +95,14 @@
|
|||
android:id="@+id/pre_amp_notice"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:text="@string/set_pre_amp_warning"
|
||||
android:layout_marginStart="@dimen/spacing_mid_large"
|
||||
android:layout_marginTop="@dimen/spacing_medium"
|
||||
android:layout_marginEnd="@dimen/spacing_mid_large"
|
||||
android:text="@string/set_pre_amp_warning"
|
||||
android:textAppearance="@style/TextAppearance.Auxio.BodySmall"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/without_tags_slider" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
</androidx.core.widget.NestedScrollView>
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
<string name="lbl_add">أضف</string>
|
||||
<string name="lbl_save">احفظ</string>
|
||||
<string name="lbl_no_dirs">لا مجلد</string>
|
||||
<string name="err_no_dirs">لا مجلد</string>
|
||||
|
||||
<string name="lbl_about">حول</string>
|
||||
<string name="lbl_version">الإصدار</string>
|
||||
|
@ -82,7 +82,7 @@
|
|||
|
||||
<string name="set_audio">صوتيات</string>
|
||||
<string name="set_replay_gain">صخب الصوت</string>
|
||||
<string name="set_off">اطفاء</string>
|
||||
<string name="lbl_off">اطفاء</string>
|
||||
<string name="set_replay_gain_track">تفضيل المقطع</string>
|
||||
<string name="set_replay_gain_album">تفضيل الالبوم</string>
|
||||
<string name="set_replay_gain_dynamic">ديناميكي</string>
|
||||
|
|
|
@ -38,7 +38,7 @@
|
|||
<string name="lbl_state_saved">"Stav uložen"</string>
|
||||
<string name="lbl_add">"Přidat"</string>
|
||||
<string name="lbl_save">"Uložit"</string>
|
||||
<string name="lbl_no_dirs">"Žádné složky"</string>
|
||||
<string name="err_no_dirs">"Žádné složky"</string>
|
||||
<string name="lbl_about">"O aplikaci"</string>
|
||||
<string name="lbl_version">"Verze"</string>
|
||||
<string name="lbl_code">"Zobrazit na GitHubu"</string>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
|
||||
<string name="lbl_add">Hinzufügen</string>
|
||||
<string name="lbl_save">Speichern</string>
|
||||
<string name="lbl_no_dirs">Keine Ordner</string>
|
||||
<string name="err_no_dirs">Keine Ordner</string>
|
||||
|
||||
<string name="lbl_about">Über</string>
|
||||
<string name="lbl_version">Version</string>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<string name="set_headset_autoplay">Kopfhörer automatische Wiedergabe</string>
|
||||
<string name="set_headset_autoplay_desc">Beginne die Wiedergabe immer, wenn Kopfhörer verbunden sind (funktioniert nicht auf allen Geräten)</string>
|
||||
<string name="set_replay_gain">ReplayGain</string>
|
||||
<string name="set_off">Aus</string>
|
||||
<string name="lbl_off">Aus</string>
|
||||
<string name="set_replay_gain_track">Titel bevorzugen</string>
|
||||
<string name="set_replay_gain_album">Album bevorzugen</string>
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
<string name="lbl_add">Agregar</string>
|
||||
<string name="lbl_save">Guardar</string>
|
||||
<string name="lbl_no_dirs">Sin carpetas</string>
|
||||
<string name="err_no_dirs">Sin carpetas</string>
|
||||
|
||||
<string name="lbl_about">Acerca de</string>
|
||||
<string name="lbl_version">Versión</string>
|
||||
|
@ -82,7 +82,7 @@
|
|||
|
||||
<string name="set_audio">Sonido</string>
|
||||
<string name="set_replay_gain">ReplayGain</string>
|
||||
<string name="set_off">Desactivado</string>
|
||||
<string name="lbl_off">Desactivado</string>
|
||||
<string name="set_replay_gain_track">Por pista</string>
|
||||
<string name="set_replay_gain_album">Por álbum</string>
|
||||
<string name="set_replay_gain_dynamic">Dinámico</string>
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
<string name="lbl_add">Aggiungi</string>
|
||||
<string name="lbl_save">Salva</string>
|
||||
<string name="lbl_no_dirs">Nessuna cartella</string>
|
||||
<string name="err_no_dirs">Nessuna cartella</string>
|
||||
|
||||
<string name="lbl_about">Informazioni</string>
|
||||
<string name="lbl_version">Versione</string>
|
||||
|
@ -105,7 +105,7 @@
|
|||
<string name="set_excluded">Cartelle escluse</string>
|
||||
<string name="set_excluded_desc">Il contenuto delle cartelle escluse sarà nascosto dalla tua libreria</string>
|
||||
|
||||
<string name="set_off">Spento</string>
|
||||
<string name="lbl_off">Spento</string>
|
||||
|
||||
<!-- Error Namespace | Error Labels -->
|
||||
<string name="err_no_music">Musica non trovata</string>
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
|
||||
<string name="lbl_add">Toevoegen</string>
|
||||
<string name="lbl_save">Opslaan</string>
|
||||
<string name="lbl_no_dirs">Geen Mappen</string>
|
||||
<string name="err_no_dirs">Geen Mappen</string>
|
||||
|
||||
<string name="lbl_about">Over</string>
|
||||
<string name="lbl_version">Versie</string>
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
|
||||
<string name="lbl_add">Добавить</string>
|
||||
<string name="lbl_save">Сохранить</string>
|
||||
<string name="lbl_no_dirs">Папок нет</string>
|
||||
<string name="err_no_dirs">Папок нет</string>
|
||||
|
||||
<string name="lbl_about">О программе</string>
|
||||
<string name="lbl_version">Версия</string>
|
||||
|
@ -84,7 +84,7 @@
|
|||
<string name="set_headset_autoplay">Воспроизводить при подключении</string>
|
||||
<string name="set_headset_autoplay_desc">Всегда начинать воспроизведение при подключении наушников (может работать не на всех устройствах)</string>
|
||||
<string name="set_replay_gain">ReplayGain</string>
|
||||
<string name="set_off">Выкл.</string>
|
||||
<string name="lbl_off">Выкл.</string>
|
||||
<string name="set_replay_gain_track">По треку</string>
|
||||
<string name="set_replay_gain_album">По альбому</string>
|
||||
<string name="set_replay_gain_dynamic">Динамический</string>
|
||||
|
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
<string name="lbl_add">添加</string>
|
||||
<string name="lbl_save">保存</string>
|
||||
<string name="lbl_no_dirs">没有任何文件夹</string>
|
||||
<string name="err_no_dirs">没有任何文件夹</string>
|
||||
|
||||
<string name="lbl_about">关于</string>
|
||||
<string name="lbl_version">版本</string>
|
||||
|
@ -104,7 +104,7 @@
|
|||
<string name="set_excluded">排除文件夹</string>
|
||||
<string name="set_excluded_desc">被排除文件夹的内容将从媒体库中隐藏</string>
|
||||
|
||||
<string name="set_off">关闭</string>
|
||||
<string name="lbl_off">关闭</string>
|
||||
|
||||
<!-- Error Namespace | Error Labels -->
|
||||
<string name="err_no_music">没有找到音乐</string>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
</string-array>
|
||||
|
||||
<array name="entries_replay_gain">
|
||||
<item>@string/set_off</item>
|
||||
<item>@string/lbl_off</item>
|
||||
<item>@string/set_replay_gain_track</item>
|
||||
<item>@string/set_replay_gain_album</item>
|
||||
<item>@string/set_replay_gain_dynamic</item>
|
||||
|
|
|
@ -48,9 +48,13 @@
|
|||
|
||||
<string name="lbl_state_saved">State saved</string>
|
||||
|
||||
<!-- Actual string: Ok -->
|
||||
<string name="lbl_ok">@android:string/ok</string>
|
||||
<!-- Actual string: Cancel -->
|
||||
<string name="lbl_cancel">@android:string/cancel</string>
|
||||
<string name="lbl_add">Add</string>
|
||||
<string name="lbl_save">Save</string>
|
||||
<string name="lbl_no_dirs">No Folders</string>
|
||||
<string name="lbl_off">Off</string>
|
||||
|
||||
<string name="lbl_about">About</string>
|
||||
<string name="lbl_version">Version</string>
|
||||
|
@ -114,14 +118,12 @@
|
|||
<string name="set_excluded">Excluded folders</string>
|
||||
<string name="set_excluded_desc">The content of excluded folders is hidden from your library</string>
|
||||
|
||||
<!-- TODO: Phase out android strings for in-house strings -->
|
||||
<string name="set_off">Off</string>
|
||||
|
||||
<!-- Error Namespace | Error Labels -->
|
||||
<string name="err_no_music">No music found</string>
|
||||
<string name="err_load_failed">Music loading failed</string>
|
||||
<string name="err_no_perms">Auxio needs permission to read your music library</string>
|
||||
<string name="err_no_app">No app can open this link</string>
|
||||
<string name="err_no_dirs">No Folders</string>
|
||||
<string name="err_bad_dir">This folder is not supported</string>
|
||||
<string name="err_too_small">Auxio does not support this window size</string>
|
||||
|
||||
|
|
Loading…
Reference in a new issue