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:
OxygenCobalt 2022-05-22 09:56:25 -06:00
parent 21fccf1f31
commit 2c7dd1241b
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
23 changed files with 159 additions and 149 deletions

View file

@ -5,6 +5,7 @@
#### What's New #### What's New
- Added disc number support - Added disc number support
- Added ReplayGain support for below-reference volume tracks [i.e positive ReplayGain values] - 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 - About screen now shows counts for multiple types of library items, alongside a total duration
- New disc, track, song count, and duration sorting modes - New disc, track, song count, and duration sorting modes

View file

@ -186,7 +186,7 @@ class MainFragment : ViewBindingFragment<FragmentMainBinding>() {
/** /**
* A back press callback that handles how to respond to backwards navigation in the detail * 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) { inner class DynamicBackPressedCallback : OnBackPressedCallback(false) {
override fun handleOnBackPressed() { override fun handleOnBackPressed() {

View file

@ -32,8 +32,7 @@ import org.oxycblt.auxio.util.logD
import org.oxycblt.auxio.util.requireAttached import org.oxycblt.auxio.util.requireAttached
/** /**
* The dialog for customizing library tabs. This dialog does not rely on any specific ViewModel and * The dialog for customizing library tabs.
* serializes it's state instead of
* @author OxygenCobalt * @author OxygenCobalt
*/ */
class TabCustomizeDialog : ViewBindingDialogFragment<DialogTabsBinding>(), TabAdapter.Listener { class TabCustomizeDialog : ViewBindingDialogFragment<DialogTabsBinding>(), TabAdapter.Listener {
@ -46,14 +45,10 @@ class TabCustomizeDialog : ViewBindingDialogFragment<DialogTabsBinding>(), TabAd
override fun onConfigDialog(builder: AlertDialog.Builder) { override fun onConfigDialog(builder: AlertDialog.Builder) {
builder.setTitle(R.string.set_lib_tabs) builder.setTitle(R.string.set_lib_tabs)
.setPositiveButton(R.string.lbl_ok) { _, _ ->
builder.setPositiveButton(android.R.string.ok) { _, _ ->
logD("Committing tab changes") logD("Committing tab changes")
settingsManager.libTabs = tabAdapter.data.tabs settingsManager.libTabs = tabAdapter.data.tabs
} }.setNegativeButton(R.string.lbl_cancel, null)
// Negative button just dismisses, no need for a listener.
builder.setNegativeButton(android.R.string.cancel, null)
} }
override fun onBindingCreated(binding: DialogTabsBinding, savedInstanceState: Bundle?) { override fun onBindingCreated(binding: DialogTabsBinding, savedInstanceState: Bundle?) {

View file

@ -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 * 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 * MediaStore unless you append a "%" at the end. Yes. I know Room exists. But that would needlessly
* bloat my app and has crippling bugs. * 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) { class ExcludedDatabase(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, DB_VERSION) {
override fun onCreate(db: SQLiteDatabase) { override fun onCreate(db: SQLiteDatabase) {

View file

@ -53,12 +53,11 @@ class ExcludedDialog :
override fun onCreateBinding(inflater: LayoutInflater) = DialogExcludedBinding.inflate(inflater) override fun onCreateBinding(inflater: LayoutInflater) = DialogExcludedBinding.inflate(inflater)
override fun onConfigDialog(builder: AlertDialog.Builder) { 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. // Don't set the click listener here, we do some custom black magic in onCreateView instead.
builder.setNeutralButton(R.string.lbl_add, null) builder.setTitle(R.string.set_excluded)
builder.setPositiveButton(R.string.lbl_save, null) .setNeutralButton(R.string.lbl_add, null)
builder.setNegativeButton(android.R.string.cancel, null) .setPositiveButton(R.string.lbl_save, null)
.setNegativeButton(R.string.lbl_cancel, null)
} }
override fun onBindingCreated(binding: DialogExcludedBinding, savedInstanceState: Bundle?) { override fun onBindingCreated(binding: DialogExcludedBinding, savedInstanceState: Bundle?) {

View file

@ -34,6 +34,11 @@ import org.oxycblt.auxio.util.getAttrColorSafe
import org.oxycblt.auxio.util.systemBarInsetsCompat import org.oxycblt.auxio.util.systemBarInsetsCompat
import org.oxycblt.auxio.util.textSafe 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>() { class PlaybackBarFragment : ViewBindingFragment<FragmentPlaybackBarBinding>() {
private val playbackModel: PlaybackViewModel by activityViewModels() private val playbackModel: PlaybackViewModel by activityViewModels()
private val navModel: NavigationViewModel by activityViewModels() private val navModel: NavigationViewModel by activityViewModels()

View file

@ -33,7 +33,7 @@ import org.oxycblt.auxio.util.textSafe
* The dialog for customizing the ReplayGain pre-amp values. * The dialog for customizing the ReplayGain pre-amp values.
* @author OxygenCobalt * @author OxygenCobalt
*/ */
class ReplayGainDialog : ViewBindingDialogFragment<DialogPreAmpBinding>() { class PreAmpCustomizeDialog : ViewBindingDialogFragment<DialogPreAmpBinding>() {
private val settingsManager = SettingsManager.getInstance() private val settingsManager = SettingsManager.getInstance()
override fun onCreateBinding(inflater: LayoutInflater) = DialogPreAmpBinding.inflate(inflater) override fun onCreateBinding(inflater: LayoutInflater) = DialogPreAmpBinding.inflate(inflater)
@ -41,12 +41,12 @@ class ReplayGainDialog : ViewBindingDialogFragment<DialogPreAmpBinding>() {
override fun onConfigDialog(builder: AlertDialog.Builder) { override fun onConfigDialog(builder: AlertDialog.Builder) {
builder builder
.setTitle(R.string.set_pre_amp) .setTitle(R.string.set_pre_amp)
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(R.string.lbl_ok) { _, _ ->
val binding = requireBinding() val binding = requireBinding()
settingsManager.replayGainPreAmp = settingsManager.replayGainPreAmp =
ReplayGainPreAmp(binding.withTagsSlider.value, binding.withoutTagsSlider.value) 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?) { override fun onBindingCreated(binding: DialogPreAmpBinding, savedInstanceState: Bundle?) {

View file

@ -35,10 +35,12 @@ import org.oxycblt.auxio.util.logW
import org.oxycblt.auxio.util.unlikelyToBeNull import org.oxycblt.auxio.util.unlikelyToBeNull
/** /**
* An [AudioProcessor] that automatically handles ReplayGain values and their amplification of the * An [AudioProcessor] that handles ReplayGain values and their amplification of the audio stream.
* audio stream. Instead of leveraging the volume attribute like other implementations, this system * Instead of leveraging the volume attribute like other implementations, this system manipulates
* manipulates the bitstream itself to modify the volume, which allows the use of positive * the bitstream itself to modify the volume, which allows the use of positive ReplayGain values.
* 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 * @author OxygenCobalt
*/ */
@ -59,9 +61,8 @@ class ReplayGainAudioProcessor : BaseAudioProcessor() {
// --- REPLAYGAIN PARSING --- // --- REPLAYGAIN PARSING ---
/** /**
* Updates the rough volume adjustment for [Metadata] with ReplayGain tags. This is * Updates the rough volume adjustment for [Metadata] with ReplayGain tags. This is tangentially
* tangentially based off Vanilla Music's implementation, but has diverged to a significant * based off Vanilla Music's implementation, but has diverged to a significant extent.
* extent.
*/ */
fun applyReplayGain(metadata: Metadata?) { fun applyReplayGain(metadata: Metadata?) {
if (settingsManager.replayGainMode == ReplayGainMode.OFF) { if (settingsManager.replayGainMode == ReplayGainMode.OFF) {

View file

@ -33,8 +33,8 @@ import org.oxycblt.auxio.R
import org.oxycblt.auxio.home.tabs.TabCustomizeDialog import org.oxycblt.auxio.home.tabs.TabCustomizeDialog
import org.oxycblt.auxio.music.excluded.ExcludedDialog import org.oxycblt.auxio.music.excluded.ExcludedDialog
import org.oxycblt.auxio.playback.PlaybackViewModel 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.ReplayGainMode
import org.oxycblt.auxio.playback.replaygain.PreAmpCustomizeDialog
import org.oxycblt.auxio.settings.pref.IntListPreference import org.oxycblt.auxio.settings.pref.IntListPreference
import org.oxycblt.auxio.settings.pref.IntListPreferenceDialog import org.oxycblt.auxio.settings.pref.IntListPreferenceDialog
import org.oxycblt.auxio.ui.accent.AccentCustomizeDialog import org.oxycblt.auxio.ui.accent.AccentCustomizeDialog
@ -168,7 +168,8 @@ class SettingsListFragment : PreferenceFragmentCompat() {
SettingsManager.KEY_PRE_AMP -> { SettingsManager.KEY_PRE_AMP -> {
onPreferenceClickListener = onPreferenceClickListener =
Preference.OnPreferenceClickListener { Preference.OnPreferenceClickListener {
ReplayGainDialog().show(childFragmentManager, ReplayGainDialog.TAG) PreAmpCustomizeDialog()
.show(childFragmentManager, PreAmpCustomizeDialog.TAG)
true true
} }
} }

View file

@ -22,6 +22,7 @@ import android.os.Bundle
import androidx.preference.PreferenceDialogFragmentCompat import androidx.preference.PreferenceDialogFragmentCompat
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.oxycblt.auxio.BuildConfig import org.oxycblt.auxio.BuildConfig
import org.oxycblt.auxio.R
class IntListPreferenceDialog : PreferenceDialogFragmentCompat() { class IntListPreferenceDialog : PreferenceDialogFragmentCompat() {
private val listPreference: IntListPreference private val listPreference: IntListPreference
@ -35,7 +36,7 @@ class IntListPreferenceDialog : PreferenceDialogFragmentCompat() {
val builder = MaterialAlertDialogBuilder(requireContext(), theme) val builder = MaterialAlertDialogBuilder(requireContext(), theme)
builder.setTitle(listPreference.title) builder.setTitle(listPreference.title)
builder.setPositiveButton(null, null) builder.setPositiveButton(null, null)
builder.setNegativeButton(android.R.string.cancel, null) builder.setNegativeButton(R.string.lbl_cancel, null)
builder.setSingleChoiceItems(listPreference.entries, listPreference.getValueIndex()) { builder.setSingleChoiceItems(listPreference.entries, listPreference.getValueIndex()) {
_, _,
index -> index ->

View file

@ -42,7 +42,7 @@ class AccentCustomizeDialog :
override fun onConfigDialog(builder: AlertDialog.Builder) { override fun onConfigDialog(builder: AlertDialog.Builder) {
builder builder
.setTitle(R.string.set_accent) .setTitle(R.string.set_accent)
.setPositiveButton(android.R.string.ok) { _, _ -> .setPositiveButton(R.string.lbl_ok) { _, _ ->
if (accentAdapter.selectedAccent != settingsManager.accent) { if (accentAdapter.selectedAccent != settingsManager.accent) {
logD("Applying new accent") logD("Applying new accent")
settingsManager.accent = unlikelyToBeNull(accentAdapter.selectedAccent) settingsManager.accent = unlikelyToBeNull(accentAdapter.selectedAccent)
@ -51,9 +51,7 @@ class AccentCustomizeDialog :
dismiss() dismiss()
} }
.setNegativeButton(R.string.lbl_cancel, null)
// Negative button just dismisses, no need for a listener.
.setNegativeButton(android.R.string.cancel, null)
} }
override fun onBindingCreated(binding: DialogAccentBinding, savedInstanceState: Bundle?) { override fun onBindingCreated(binding: DialogAccentBinding, savedInstanceState: Bundle?) {

View file

@ -26,7 +26,7 @@
android:paddingStart="@dimen/spacing_medium" android:paddingStart="@dimen/spacing_medium"
android:paddingEnd="@dimen/spacing_medium" android:paddingEnd="@dimen/spacing_medium"
android:paddingBottom="@dimen/spacing_medium" android:paddingBottom="@dimen/spacing_medium"
android:text="@string/lbl_no_dirs" android:text="@string/err_no_dirs"
android:textAlignment="center" android:textAlignment="center"
android:textAppearance="@style/TextAppearance.Auxio.TitleMidLarge" android:textAppearance="@style/TextAppearance.Auxio.TitleMidLarge"
android:textColor="?android:attr/textColorSecondary" /> android:textColor="?android:attr/textColorSecondary" />

View file

@ -1,16 +1,20 @@
<?xml version="1.0" encoding="utf-8"?> <?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:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent">
xmlns:tools="http://schemas.android.com/tools">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView <TextView
android:id="@+id/with_tags_header" android:id="@+id/with_tags_header"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginStart="@dimen/spacing_mid_large" android:layout_marginStart="@dimen/spacing_mid_large"
android:layout_marginTop="@dimen/spacing_medium"
android:text="@string/set_pre_amp_with" android:text="@string/set_pre_amp_with"
android:textAppearance="@style/TextAppearance.Auxio.TitleMedium" android:textAppearance="@style/TextAppearance.Auxio.TitleMedium"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -20,26 +24,26 @@
android:id="@+id/with_tags_slider" android:id="@+id/with_tags_slider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_small"
android:stepSize="0.1" android:stepSize="0.1"
android:valueFrom="-15.0" android:valueFrom="-15.0"
android:valueTo="15.0" android:valueTo="15.0"
app:labelBehavior="gone"
app:thumbRadius="@dimen/slider_thumb_radius"
app:haloRadius="@dimen/slider_halo_radius" app:haloRadius="@dimen/slider_halo_radius"
app:tickVisible="false" app:labelBehavior="gone"
android:layout_marginStart="@dimen/spacing_small"
app:layout_constraintEnd_toStartOf="@+id/with_tags_ticker" app:layout_constraintEnd_toStartOf="@+id/with_tags_ticker"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/with_tags_header" app:layout_constraintTop_toBottomOf="@+id/with_tags_header"
app:thumbRadius="@dimen/slider_thumb_radius"
app:tickVisible="false"
tools:value="0.0" /> tools:value="0.0" />
<TextView <TextView
android:id="@+id/with_tags_ticker" android:id="@+id/with_tags_ticker"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:minWidth="@dimen/size_btn_large"
android:layout_marginEnd="@dimen/spacing_mid_large" android:layout_marginEnd="@dimen/spacing_mid_large"
android:gravity="center" android:gravity="center"
android:minWidth="@dimen/size_btn_large"
android:textAppearance="@style/TextAppearance.Auxio.BodyMedium" android:textAppearance="@style/TextAppearance.Auxio.BodyMedium"
app:layout_constraintBottom_toBottomOf="@+id/with_tags_slider" app:layout_constraintBottom_toBottomOf="@+id/with_tags_slider"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
@ -50,8 +54,8 @@
android:id="@+id/without_tags_header" android:id="@+id/without_tags_header"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginStart="@dimen/spacing_mid_large" android:layout_marginStart="@dimen/spacing_mid_large"
android:layout_marginTop="@dimen/spacing_medium"
android:text="@string/set_pre_amp_without" android:text="@string/set_pre_amp_without"
android:textAppearance="@style/TextAppearance.Auxio.TitleMedium" android:textAppearance="@style/TextAppearance.Auxio.TitleMedium"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
@ -61,27 +65,27 @@
android:id="@+id/without_tags_slider" android:id="@+id/without_tags_slider"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_small"
android:stepSize="0.1" android:stepSize="0.1"
android:valueFrom="-15.0" android:valueFrom="-15.0"
android:valueTo="15.0" android:valueTo="15.0"
app:thumbRadius="@dimen/slider_thumb_radius"
app:haloRadius="@dimen/slider_halo_radius" app:haloRadius="@dimen/slider_halo_radius"
android:layout_marginStart="@dimen/spacing_small"
app:tickVisible="false"
app:labelBehavior="gone" app:labelBehavior="gone"
app:layout_constraintEnd_toStartOf="@+id/without_tags_ticker" app:layout_constraintEnd_toStartOf="@+id/without_tags_ticker"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/without_tags_header" app:layout_constraintTop_toBottomOf="@+id/without_tags_header"
app:thumbRadius="@dimen/slider_thumb_radius"
app:tickVisible="false"
tools:value="0.0" /> tools:value="0.0" />
<TextView <TextView
android:id="@+id/without_tags_ticker" android:id="@+id/without_tags_ticker"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_mid_large"
android:gravity="center" android:gravity="center"
android:minWidth="@dimen/size_btn_large" android:minWidth="@dimen/size_btn_large"
android:layout_height="wrap_content"
android:textAppearance="@style/TextAppearance.Auxio.BodyMedium" android:textAppearance="@style/TextAppearance.Auxio.BodyMedium"
android:layout_marginEnd="@dimen/spacing_mid_large"
app:layout_constraintBottom_toBottomOf="@+id/without_tags_slider" app:layout_constraintBottom_toBottomOf="@+id/without_tags_slider"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@+id/without_tags_slider" app:layout_constraintTop_toTopOf="@+id/without_tags_slider"
@ -91,13 +95,14 @@
android:id="@+id/pre_amp_notice" android:id="@+id/pre_amp_notice"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" 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_marginStart="@dimen/spacing_mid_large"
android:layout_marginTop="@dimen/spacing_medium"
android:layout_marginEnd="@dimen/spacing_mid_large" android:layout_marginEnd="@dimen/spacing_mid_large"
android:text="@string/set_pre_amp_warning"
android:textAppearance="@style/TextAppearance.Auxio.BodySmall" android:textAppearance="@style/TextAppearance.Auxio.BodySmall"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/without_tags_slider" /> app:layout_constraintTop_toBottomOf="@+id/without_tags_slider" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>

View file

@ -47,7 +47,7 @@
<string name="lbl_add">أضف</string> <string name="lbl_add">أضف</string>
<string name="lbl_save">احفظ</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_about">حول</string>
<string name="lbl_version">الإصدار</string> <string name="lbl_version">الإصدار</string>
@ -82,7 +82,7 @@
<string name="set_audio">صوتيات</string> <string name="set_audio">صوتيات</string>
<string name="set_replay_gain">صخب الصوت</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_track">تفضيل المقطع</string>
<string name="set_replay_gain_album">تفضيل الالبوم</string> <string name="set_replay_gain_album">تفضيل الالبوم</string>
<string name="set_replay_gain_dynamic">ديناميكي</string> <string name="set_replay_gain_dynamic">ديناميكي</string>

View file

@ -38,7 +38,7 @@
<string name="lbl_state_saved">"Stav uložen"</string> <string name="lbl_state_saved">"Stav uložen"</string>
<string name="lbl_add">"Přidat"</string> <string name="lbl_add">"Přidat"</string>
<string name="lbl_save">"Uložit"</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_about">"O aplikaci"</string>
<string name="lbl_version">"Verze"</string> <string name="lbl_version">"Verze"</string>
<string name="lbl_code">"Zobrazit na GitHubu"</string> <string name="lbl_code">"Zobrazit na GitHubu"</string>

View file

@ -40,7 +40,7 @@
<string name="lbl_add">Hinzufügen</string> <string name="lbl_add">Hinzufügen</string>
<string name="lbl_save">Speichern</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_about">Über</string>
<string name="lbl_version">Version</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">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_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_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_track">Titel bevorzugen</string>
<string name="set_replay_gain_album">Album bevorzugen</string> <string name="set_replay_gain_album">Album bevorzugen</string>

View file

@ -47,7 +47,7 @@
<string name="lbl_add">Agregar</string> <string name="lbl_add">Agregar</string>
<string name="lbl_save">Guardar</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_about">Acerca de</string>
<string name="lbl_version">Versión</string> <string name="lbl_version">Versión</string>
@ -82,7 +82,7 @@
<string name="set_audio">Sonido</string> <string name="set_audio">Sonido</string>
<string name="set_replay_gain">ReplayGain</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_track">Por pista</string>
<string name="set_replay_gain_album">Por álbum</string> <string name="set_replay_gain_album">Por álbum</string>
<string name="set_replay_gain_dynamic">Dinámico</string> <string name="set_replay_gain_dynamic">Dinámico</string>

View file

@ -46,7 +46,7 @@
<string name="lbl_add">Aggiungi</string> <string name="lbl_add">Aggiungi</string>
<string name="lbl_save">Salva</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_about">Informazioni</string>
<string name="lbl_version">Versione</string> <string name="lbl_version">Versione</string>
@ -105,7 +105,7 @@
<string name="set_excluded">Cartelle escluse</string> <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_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 --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">Musica non trovata</string> <string name="err_no_music">Musica non trovata</string>

View file

@ -41,7 +41,7 @@
<string name="lbl_add">Toevoegen</string> <string name="lbl_add">Toevoegen</string>
<string name="lbl_save">Opslaan</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_about">Over</string>
<string name="lbl_version">Versie</string> <string name="lbl_version">Versie</string>

View file

@ -47,7 +47,7 @@
<string name="lbl_add">Добавить</string> <string name="lbl_add">Добавить</string>
<string name="lbl_save">Сохранить</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_about">О программе</string>
<string name="lbl_version">Версия</string> <string name="lbl_version">Версия</string>
@ -84,7 +84,7 @@
<string name="set_headset_autoplay">Воспроизводить при подключении</string> <string name="set_headset_autoplay">Воспроизводить при подключении</string>
<string name="set_headset_autoplay_desc">Всегда начинать воспроизведение при подключении наушников (может работать не на всех устройствах)</string> <string name="set_headset_autoplay_desc">Всегда начинать воспроизведение при подключении наушников (может работать не на всех устройствах)</string>
<string name="set_replay_gain">ReplayGain</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_track">По треку</string>
<string name="set_replay_gain_album">По альбому</string> <string name="set_replay_gain_album">По альбому</string>
<string name="set_replay_gain_dynamic">Динамический</string> <string name="set_replay_gain_dynamic">Динамический</string>

View file

@ -46,7 +46,7 @@
<string name="lbl_add">添加</string> <string name="lbl_add">添加</string>
<string name="lbl_save">保存</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_about">关于</string>
<string name="lbl_version">版本</string> <string name="lbl_version">版本</string>
@ -104,7 +104,7 @@
<string name="set_excluded">排除文件夹</string> <string name="set_excluded">排除文件夹</string>
<string name="set_excluded_desc">被排除文件夹的内容将从媒体库中隐藏</string> <string name="set_excluded_desc">被排除文件夹的内容将从媒体库中隐藏</string>
<string name="set_off">关闭</string> <string name="lbl_off">关闭</string>
<!-- Error Namespace | Error Labels --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">没有找到音乐</string> <string name="err_no_music">没有找到音乐</string>

View file

@ -31,7 +31,7 @@
</string-array> </string-array>
<array name="entries_replay_gain"> <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_track</item>
<item>@string/set_replay_gain_album</item> <item>@string/set_replay_gain_album</item>
<item>@string/set_replay_gain_dynamic</item> <item>@string/set_replay_gain_dynamic</item>

View file

@ -48,9 +48,13 @@
<string name="lbl_state_saved">State saved</string> <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_add">Add</string>
<string name="lbl_save">Save</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_about">About</string>
<string name="lbl_version">Version</string> <string name="lbl_version">Version</string>
@ -114,14 +118,12 @@
<string name="set_excluded">Excluded folders</string> <string name="set_excluded">Excluded folders</string>
<string name="set_excluded_desc">The content of excluded folders is hidden from your library</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 --> <!-- Error Namespace | Error Labels -->
<string name="err_no_music">No music found</string> <string name="err_no_music">No music found</string>
<string name="err_load_failed">Music loading failed</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_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_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_bad_dir">This folder is not supported</string>
<string name="err_too_small">Auxio does not support this window size</string> <string name="err_too_small">Auxio does not support this window size</string>