diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 61a9130c..fb7f4a8a 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 51db23f5..6901f964 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -7,6 +7,7 @@
+
-
+
diff --git a/app/GPS/release/app-GPS-release.aab b/app/GPS/release/app-GPS-release.aab
index 54ef8f75..e789dba5 100644
Binary files a/app/GPS/release/app-GPS-release.aab and b/app/GPS/release/app-GPS-release.aab differ
diff --git a/app/build.gradle b/app/build.gradle
index ac89214b..4b8dfff3 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
applicationId 'org.commonvoice.saverio'
minSdkVersion 26
targetSdk 31
- versionCode = 179
- versionName '2.4.0.5'
+ versionCode = 181
+ versionName '2.5'
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
@@ -43,8 +43,8 @@ android {
}
}
compileOptions {
- sourceCompatibility = 1.8
- targetCompatibility = 1.8
+ sourceCompatibility = 11
+ targetCompatibility = 11
}
kotlinOptions {
jvmTarget = "1.8"
diff --git a/app/src/main/java/org/commonvoice/saverio/CommonVoice.kt b/app/src/main/java/org/commonvoice/saverio/CommonVoice.kt
index ee0413dd..dd56d559 100644
--- a/app/src/main/java/org/commonvoice/saverio/CommonVoice.kt
+++ b/app/src/main/java/org/commonvoice/saverio/CommonVoice.kt
@@ -90,6 +90,7 @@ class CommonVoice : Application() {
get(),
get(),
get(),
+ get(),
get(),
)
}
@@ -103,16 +104,19 @@ class CommonVoice : Application() {
get(),
get(),
get(),
+ get(),
get(),
)
}
- viewModel { DashboardViewModel(
- get(),
- get(),
- get(),
- get(),
- get()
- ) }
+ viewModel {
+ DashboardViewModel(
+ get(),
+ get(),
+ get(),
+ get(),
+ get()
+ )
+ }
viewModel { LoginViewModel(get(), get()) }
viewModel { MainActivityViewModel(get(), get(), get()) }
viewModel { HomeViewModel(get(), get(), get(), get(), get(), get()) }
diff --git a/app/src/main/java/org/commonvoice/saverio/MainActivity.kt b/app/src/main/java/org/commonvoice/saverio/MainActivity.kt
index ff391712..8156e129 100644
--- a/app/src/main/java/org/commonvoice/saverio/MainActivity.kt
+++ b/app/src/main/java/org/commonvoice/saverio/MainActivity.kt
@@ -10,6 +10,7 @@ import android.content.res.Resources
import android.net.Uri
import android.os.Build
import android.os.Bundle
+import android.os.Handler
import android.util.Log
import androidx.core.content.ContextCompat
import androidx.lifecycle.lifecycleScope
@@ -30,13 +31,10 @@ import org.commonvoice.saverio_lib.api.network.ConnectionManager
import org.commonvoice.saverio_lib.background.ClipsDownloadWorker
import org.commonvoice.saverio_lib.background.RecordingsUploadWorker
import org.commonvoice.saverio_lib.background.SentencesDownloadWorker
-import org.commonvoice.saverio_lib.preferences.FirstRunPrefManager
-import org.commonvoice.saverio_lib.preferences.ListenPrefManager
-import org.commonvoice.saverio_lib.preferences.SpeakPrefManager
-import org.commonvoice.saverio_lib.preferences.StatsPrefManager
-import org.commonvoice.saverio_lib.viewmodels.DashboardViewModel
-import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
+import org.commonvoice.saverio_lib.preferences.*
+import org.commonvoice.saverio_lib.viewmodels.*
import org.koin.android.ext.android.inject
+import org.koin.androidx.viewmodel.ext.android.stateViewModel
import org.koin.androidx.viewmodel.ext.android.viewModel
import timber.log.Timber
import java.text.SimpleDateFormat
@@ -52,14 +50,20 @@ class MainActivity : VariableLanguageActivity(R.layout.activity_main) {
private val firstRunPrefManager: FirstRunPrefManager by inject()
private val statsPrefManager: StatsPrefManager by inject()
+ private val settingsPrefManager by inject()
private val speakPrefManager: SpeakPrefManager by inject()
private val listenPrefManager: ListenPrefManager by inject()
+ private val listenViewModel: ListenViewModel by stateViewModel()
+ private val speakViewModel: SpeakViewModel by stateViewModel()
+
private val connectionManager: ConnectionManager by inject()
private val translationHandler: TranslationHandler by inject()
private val dialogInflater by inject()
+ private val mainViewModel by viewModel()
+ private lateinit var viewModel: GenericViewModel
companion object {
val SOURCE_STORE: String = BuildConfig.SOURCE_STORE
@@ -99,9 +103,12 @@ class MainActivity : VariableLanguageActivity(R.layout.activity_main) {
setLanguageUI("start")
//checkPermissions()
- RecordingsUploadWorker.attachToWorkManager(workManager)
- SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
- ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ RecordingsUploadWorker.attachToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyUpload
+ )
+ checkSentencesOfflineMode()
+ checkClipsOfflineMode()
mainActivityViewModel.postStats(
BuildConfig.VERSION_NAME,
@@ -126,6 +133,36 @@ class MainActivity : VariableLanguageActivity(R.layout.activity_main) {
}
}
+ fun checkSentencesOfflineMode() {
+ lifecycleScope.launch {
+ //println(speakPrefManager.requiredSentencesCount.toString() + " =S= " + speakViewModel.getSentencesCount())
+ if (speakPrefManager.requiredSentencesCount != speakViewModel.getSentencesCount())
+ SentencesDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ ).apply {
+ Handler().postDelayed({
+ checkSentencesOfflineMode()
+ }, 15000)
+ }
+ }
+ }
+
+ fun checkClipsOfflineMode() {
+ lifecycleScope.launch {
+ //println(listenPrefManager.requiredClipsCount.toString() + " =C= " + listenViewModel.getClipsCount())
+ if (listenPrefManager.requiredClipsCount != listenViewModel.getClipsCount())
+ ClipsDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ ).apply {
+ Handler().postDelayed({
+ checkClipsOfflineMode()
+ }, 15000)
+ }
+ }
+ }
+
fun resetStatusBarColor() {
this@MainActivity.window.statusBarColor =
ContextCompat.getColor(this@MainActivity, R.color.colorPrimaryDark)
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/dashboard/DashboardFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/dashboard/DashboardFragment.kt
index db72f7b0..6bea8421 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/dashboard/DashboardFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/dashboard/DashboardFragment.kt
@@ -14,6 +14,8 @@ import androidx.core.view.children
import androidx.core.view.isGone
import androidx.core.view.isVisible
import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProviders
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.LoginActivity
import org.commonvoice.saverio.MainActivity
import org.commonvoice.saverio.R
@@ -27,8 +29,10 @@ import org.commonvoice.saverio_lib.api.network.ConnectionManager
import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
import org.commonvoice.saverio_lib.viewmodels.DashboardViewModel
+import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.sharedViewModel
+import org.koin.androidx.viewmodel.ext.android.viewModel
import java.util.*
class DashboardFragment : ViewBoundFragment() {
@@ -46,6 +50,8 @@ class DashboardFragment : ViewBoundFragment() {
private val statsPrefManager: StatsPrefManager by inject()
private val mainPrefManager: MainPrefManager by inject()
+ private val mainViewModel by viewModel()
+ private lateinit var viewModel: GenericViewModel
private val dialogInflater by inject()
@@ -88,6 +94,11 @@ class DashboardFragment : ViewBoundFragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
+ viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ viewModel.setFromFragment("dashboard")
+
voicesOnlineSection()
setTheme()
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/dialogs/commonTypes/WarningDialog.kt b/app/src/main/java/org/commonvoice/saverio/ui/dialogs/commonTypes/WarningDialog.kt
index 92b75d14..a2caf0f5 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/dialogs/commonTypes/WarningDialog.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/dialogs/commonTypes/WarningDialog.kt
@@ -1,24 +1,62 @@
package org.commonvoice.saverio.ui.dialogs.commonTypes
+import android.graphics.Typeface
import android.view.LayoutInflater
import androidx.annotation.StringRes
+import androidx.core.view.isGone
+import androidx.core.view.isVisible
+import androidx.core.view.updatePadding
import com.github.mrindeciso.advanced_dialogs.customDialog.CustomDialogInterface
+import org.commonvoice.saverio.databinding.DialogStandardBinding
import org.commonvoice.saverio.databinding.DialogWarningBinding
import org.commonvoice.saverio.utils.onClick
class WarningDialog(
private val message: String? = null,
@StringRes private val messageRes: Int? = null,
+ private val buttonText: String? = null,
+ @StringRes private val buttonTextRes: Int? = null,
+ private val onButtonClick: (() -> Unit)? = null,
+ private val button2Text: String? = null,
+ @StringRes private val button2TextRes: Int? = null,
+ private val onButton2Click: (() -> Unit)? = null,
+ private val overrideItalicStyle: Boolean = false,
) : CustomDialogInterface(
makeBackgroundTransparent = true,
preserveLateralMargin = true
) {
override fun render(inflater: LayoutInflater): DialogWarningBinding {
- return DialogWarningBinding.inflate(inflater).also { binding ->
- message?.let { binding.labelTextMessageDialog.text = it }
- messageRes?.let { binding.labelTextMessageDialog.setText(it) }
- binding.btnOkMessageDialog.onClick { dismiss() }
+ return DialogWarningBinding.inflate(inflater).also {
+ message?.let { str -> it.labelTextMessageDialog.text = str }
+ messageRes?.let { res -> it.labelTextMessageDialog.setText(res) }
+
+ if (button2Text != null || button2TextRes != null) {
+ it.btn2MessageDialog.isVisible = true
+ }
+ if (buttonText != null || buttonTextRes != null) {
+ val defaultPadding = it.btn2MessageDialog.paddingLeft
+ it.btnOkMessageDialog.updatePadding(left = defaultPadding, right = defaultPadding)
+ }
+
+ buttonText?.let { str -> it.btnOkMessageDialog.text = str }
+ buttonTextRes?.let { res -> it.btnOkMessageDialog.setText(res) }
+ button2Text?.let { str -> it.btn2MessageDialog.text = str }
+ button2TextRes?.let { res -> it.btn2MessageDialog.setText(res) }
+
+ it.btnOkMessageDialog.onClick {
+ onButtonClick?.invoke()
+ dismiss()
+ }
+
+ it.btn2MessageDialog.onClick {
+ onButton2Click?.invoke()
+ dismiss()
+ }
+
+ if (overrideItalicStyle) {
+ it.labelTextMessageDialog.setTypeface(null, Typeface.NORMAL)
+ }
}
}
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/home/HomeFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/home/HomeFragment.kt
index b4198d9e..34f51ab0 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/home/HomeFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/home/HomeFragment.kt
@@ -5,13 +5,13 @@ import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
-import android.os.Message
import android.view.LayoutInflater
import android.view.ViewGroup
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.view.isGone
import androidx.core.view.isVisible
+import androidx.lifecycle.ViewModelProviders
import androidx.lifecycle.lifecycleScope
import androidx.work.WorkManager
import kotlinx.coroutines.delay
@@ -31,7 +31,9 @@ import org.commonvoice.saverio_lib.preferences.FirstRunPrefManager
import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio_lib.viewmodels.HomeViewModel
+import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
import org.koin.android.ext.android.inject
import org.koin.androidx.viewmodel.ext.android.viewModel
@@ -52,10 +54,17 @@ class HomeFragment : ViewBoundFragment() {
private val settingsPrefManager: SettingsPrefManager by inject()
private val workManager: WorkManager by inject()
private val dialogInflater by inject()
+ private val mainViewModel by viewModel()
+ private lateinit var viewModel: GenericViewModel
override fun onStart() {
super.onStart()
+ viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ viewModel.setFromFragment("home")
+
//TODO fix this mess once MainActivity is fixed
(activity as MainActivity).resetStatusBarColor()
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/login/LoginFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/login/LoginFragment.kt
index 25c24c7a..a4544331 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/login/LoginFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/login/LoginFragment.kt
@@ -26,6 +26,7 @@ import org.commonvoice.saverio_lib.api.network.ConnectionManager
import org.commonvoice.saverio_lib.background.ClipsDownloadWorker
import org.commonvoice.saverio_lib.background.SentencesDownloadWorker
import org.commonvoice.saverio_lib.preferences.MainPrefManager
+import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.preferences.StatsPrefManager
import org.commonvoice.saverio_lib.viewmodels.LoginViewModel
import org.koin.android.ext.android.inject
@@ -38,6 +39,7 @@ class LoginFragment : ViewBoundFragment() {
private val workManager by inject()
private val connectionManager by inject()
private val statsPrefManager by inject()
+ private val settingsPrefManager by inject()
private val loginViewModel by viewModel()
@@ -173,8 +175,14 @@ class LoginFragment : ViewBoundFragment() {
loginViewModel.clearDB()
- SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
- ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ SentencesDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
+ ClipsDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
statsPrefManager.dailyGoalObjective = 0
statsPrefManager.todayValidated = 0
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/SettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/SettingsFragment.kt
index 926d8aef..48f701a5 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/SettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/SettingsFragment.kt
@@ -8,10 +8,12 @@ import android.view.ViewGroup
import android.widget.AdapterView
import android.widget.ArrayAdapter
import androidx.core.view.isGone
+import androidx.lifecycle.ViewModelProviders
import androidx.navigation.fragment.findNavController
import androidx.work.ExistingWorkPolicy
import androidx.work.WorkManager
import org.commonvoice.saverio.BuildConfig
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.MainActivity
import org.commonvoice.saverio.R
import org.commonvoice.saverio.databinding.FragmentSettingsBinding
@@ -40,10 +42,12 @@ class SettingsFragment : ViewBoundFragment() {
private val mainPrefManager: MainPrefManager by inject()
private val statsPrefManager: StatsPrefManager by inject()
+ private val settingsPrefManager by inject()
private val mainViewModel by viewModel()
private val workManager by inject()
private val dashboardViewModel by sharedViewModel()
private val translationHandler by inject()
+ private lateinit var viewModel: GenericViewModel
private var SOURCE_STORE: String = ""
@@ -51,6 +55,12 @@ class SettingsFragment : ViewBoundFragment() {
super.onStart()
withBinding {
+ viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ viewModel.setFromFragment("settings")
+ viewModel.setNestedFragment("")
+
buttonSettingsGoToAdvanced.onClick {
findNavController().navigate(R.id.advancedSettingsFragment)
}
@@ -159,7 +169,12 @@ class SettingsFragment : ViewBoundFragment() {
inAppPurchase()
} else {*/
buttonBuyMeACoffee.setOnClickListener {
- startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://www.saveriomorelli.com/commonvoice/donate/")))
+ startActivity(
+ Intent(
+ Intent.ACTION_VIEW,
+ Uri.parse("https://www.saveriomorelli.com/commonvoice/donate/")
+ )
+ )
}
/*}*/
}
@@ -202,11 +217,13 @@ class SettingsFragment : ViewBoundFragment() {
mainViewModel.clearDB().invokeOnCompletion {
SentencesDownloadWorker.attachOneTimeJobToWorkManager(
workManager,
- ExistingWorkPolicy.REPLACE
+ ExistingWorkPolicy.REPLACE,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
)
ClipsDownloadWorker.attachOneTimeJobToWorkManager(
workManager,
- ExistingWorkPolicy.REPLACE
+ ExistingWorkPolicy.REPLACE,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
)
mainPrefManager.hasLanguageChanged = false
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/AdvancedSettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/AdvancedSettingsFragment.kt
index 7b333ae8..d0462682 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/AdvancedSettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/AdvancedSettingsFragment.kt
@@ -11,15 +11,22 @@ import android.widget.Toast
import androidx.core.content.getSystemService
import androidx.core.view.isGone
import androidx.core.widget.addTextChangedListener
+import androidx.lifecycle.ViewModelProviders
+import androidx.work.ExistingWorkPolicy
+import androidx.work.WorkManager
import org.commonvoice.saverio.FirstLaunch
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.MainActivity
import org.commonvoice.saverio.R
import org.commonvoice.saverio.databinding.FragmentAdvancedSettingsBinding
import org.commonvoice.saverio.ui.dialogs.DialogInflater
import org.commonvoice.saverio.ui.dialogs.commonTypes.StandardDialog
+import org.commonvoice.saverio.ui.dialogs.commonTypes.WarningDialog
import org.commonvoice.saverio.ui.dialogs.specificDialogs.IdentifyMeDialog
import org.commonvoice.saverio.ui.viewBinding.ViewBoundFragment
import org.commonvoice.saverio.utils.setupOnSwipeRight
+import org.commonvoice.saverio_lib.background.ClipsDownloadWorker
+import org.commonvoice.saverio_lib.background.SentencesDownloadWorker
import org.commonvoice.saverio_lib.preferences.*
import org.commonvoice.saverio_lib.repositories.StatsRepository
import org.commonvoice.saverio_lib.viewmodels.LoginViewModel
@@ -47,6 +54,7 @@ class AdvancedSettingsFragment : ViewBoundFragment()
private val dialogInflater by inject()
private val statsRepository by inject()
+ private val workManager by inject()
private val defaultAPIServer = "https://commonvoice.mozilla.org/api/v1/"
@@ -54,6 +62,11 @@ class AdvancedSettingsFragment : ViewBoundFragment() {
@@ -27,6 +31,11 @@ class ExperimentalSettingsFragment : ViewBoundFragment
- settingsPrefManager.showInfoIcon = isChecked
+ switchPushToTalkSpeak.setOnCheckedChangeListener { _, isChecked ->
+ speakPrefManager.pushToTalk = isChecked
}
- switchShowInfoIconSpeakListen.isChecked =
- settingsPrefManager.showInfoIcon
+ switchPushToTalkSpeak.isChecked = speakPrefManager.pushToTalk
- switchShowContributionCriteriaIconSpeakListen.setOnCheckedChangeListener { _, isChecked ->
- settingsPrefManager.showContributionCriteriaIcon = isChecked
+ switchDownloadWifiOnlyMode.setOnCheckedChangeListener { _, isChecked ->
+ settingsPrefManager.wifiOnlyDownload = isChecked
}
- switchShowContributionCriteriaIconSpeakListen.isChecked =
- settingsPrefManager.showContributionCriteriaIcon
+ switchDownloadWifiOnlyMode.isChecked = settingsPrefManager.wifiOnlyDownload
- switchPushToTalkSpeak.setOnCheckedChangeListener { _, isChecked ->
- speakPrefManager.pushToTalk = isChecked
+ switchUploadWifiOnlyMode.setOnCheckedChangeListener { _, isChecked ->
+ settingsPrefManager.wifiOnlyUpload = isChecked
}
- switchPushToTalkSpeak.isChecked = speakPrefManager.pushToTalk
+ switchUploadWifiOnlyMode.isChecked = settingsPrefManager.wifiOnlyUpload
}
if (mainPrefManager.areGesturesEnabled)
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/GesturesSettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/GesturesSettingsFragment.kt
index 1e74f3b0..4f6e5ded 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/GesturesSettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/GesturesSettingsFragment.kt
@@ -9,6 +9,7 @@ import androidx.core.view.isGone
import androidx.fragment.app.viewModels
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.databinding.FragmentGesturesSettingsBinding
import org.commonvoice.saverio.ui.dialogs.CustomiseGesturesListenDialogFragment
import org.commonvoice.saverio.ui.dialogs.CustomiseGesturesSpeakDialogFragment
@@ -20,6 +21,8 @@ import org.commonvoice.saverio_lib.preferences.SpeakPrefManager
import org.koin.android.ext.android.inject
import org.commonvoice.saverio.R
import org.commonvoice.saverio_lib.viewmodels.CustomiseGesturesViewModel
+import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
+import org.koin.androidx.viewmodel.ext.android.viewModel
import java.util.stream.Collector.of
class GesturesSettingsFragment : ViewBoundFragment() {
@@ -41,6 +44,11 @@ class GesturesSettingsFragment : ViewBoundFragment
updateAllGestures()
})
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/ListenSettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/ListenSettingsFragment.kt
index 5eca0fba..39509b2c 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/ListenSettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/ListenSettingsFragment.kt
@@ -2,6 +2,8 @@ package org.commonvoice.saverio.ui.settings.nestedSettings
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.lifecycle.ViewModelProviders
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.databinding.FragmentListenSettingsBinding
import org.commonvoice.saverio.ui.viewBinding.ViewBoundFragment
import org.commonvoice.saverio.utils.setupOnSwipeRight
@@ -25,6 +27,11 @@ class ListenSettingsFragment : ViewBoundFragment(
super.onStart()
withBinding {
+ val viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ if (viewModel.fromFragment.value != "settings") activity?.onBackPressed()
+
buttonBackSettingsSubSectionListen.setOnClickListener {
activity?.onBackPressed()
}
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OfflineModeSettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OfflineModeSettingsFragment.kt
index 89029389..eaaa10af 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OfflineModeSettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OfflineModeSettingsFragment.kt
@@ -1,13 +1,22 @@
package org.commonvoice.saverio.ui.settings.nestedSettings
+import android.animation.ValueAnimator
import android.content.Intent
import android.net.Uri
+import android.os.Handler
+import android.util.DisplayMetrics
import android.view.LayoutInflater
+import android.view.View
import android.view.ViewGroup
import android.widget.SeekBar
import androidx.core.view.isGone
+import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProviders
+import androidx.lifecycle.lifecycleScope
import androidx.work.ExistingWorkPolicy
import androidx.work.WorkManager
+import kotlinx.coroutines.launch
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.R
import org.commonvoice.saverio.databinding.FragmentOfflineSettingsBinding
import org.commonvoice.saverio.ui.viewBinding.ViewBoundFragment
@@ -18,15 +27,17 @@ import org.commonvoice.saverio_lib.preferences.ListenPrefManager
import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.preferences.SpeakPrefManager
+import org.commonvoice.saverio_lib.viewmodels.ListenViewModel
import org.commonvoice.saverio_lib.viewmodels.MainActivityViewModel
+import org.commonvoice.saverio_lib.viewmodels.SpeakViewModel
import org.koin.android.ext.android.inject
+import org.koin.androidx.viewmodel.ext.android.stateViewModel
import org.koin.androidx.viewmodel.ext.android.viewModel
class OfflineModeSettingsFragment : ViewBoundFragment() {
override fun inflate(
- layoutInflater: LayoutInflater,
- container: ViewGroup?
+ layoutInflater: LayoutInflater, container: ViewGroup?
): FragmentOfflineSettingsBinding {
return FragmentOfflineSettingsBinding.inflate(layoutInflater, container, false)
}
@@ -37,22 +48,33 @@ class OfflineModeSettingsFragment : ViewBoundFragment()
private val mainViewModel by viewModel()
private val workManager by inject()
+ private val listenViewModel: ListenViewModel by stateViewModel()
+ private val speakViewModel: SpeakViewModel by stateViewModel()
private var changedNumber = false
private val minimumOfflineModeNumber = 10
private val stepsOfflineMode = 10
+ private var startup = true
+
override fun onStart() {
super.onStart()
withBinding {
+ val viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ if (viewModel.fromFragment.value != "settings") activity?.onBackPressed()
+ viewModel.setNestedFragment("offline-settings")
+
buttonBackSettingsSubSectionOfflineMode.setOnClickListener {
activity?.onBackPressed()
}
- if (mainPrefManager.areGesturesEnabled)
- nestedScrollSettingsOfflineMode.setupOnSwipeRight(requireContext()) { activity?.onBackPressed() }
+ if (mainPrefManager.areGesturesEnabled) nestedScrollSettingsOfflineMode.setupOnSwipeRight(
+ requireContext()
+ ) { activity?.onBackPressed() }
val oldStatus = settingsPrefManager.isOfflineMode
@@ -61,8 +83,7 @@ class OfflineModeSettingsFragment : ViewBoundFragment
+ val value = anim.animatedValue as Int
+ view.layoutParams.width = value
+ view.requestLayout()
+ }
+ animation.start()
+ }
+
fun setTheme() {
withBinding {
theme.setElement(layoutSettingsOfflineMode)
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OtherSettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OtherSettingsFragment.kt
index af5b20a9..07478503 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OtherSettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/OtherSettingsFragment.kt
@@ -14,6 +14,8 @@ import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.koin.android.ext.android.inject
import android.widget.ArrayAdapter
+import androidx.lifecycle.ViewModelProviders
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
class OtherSettingsFragment : ViewBoundFragment() {
@@ -32,6 +34,11 @@ class OtherSettingsFragment : ViewBoundFragment()
super.onStart()
withBinding {
+ val viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ if (viewModel.fromFragment.value != "settings") activity?.onBackPressed()
+
buttonBackSettingsSubSectionOther.setOnClickListener {
activity?.onBackPressed()
}
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/SpeakSettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/SpeakSettingsFragment.kt
index 3e419909..0e6b5d80 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/SpeakSettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/SpeakSettingsFragment.kt
@@ -2,6 +2,8 @@ package org.commonvoice.saverio.ui.settings.nestedSettings
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.lifecycle.ViewModelProviders
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.databinding.FragmentSpeakSettingsBinding
import org.commonvoice.saverio.ui.viewBinding.ViewBoundFragment
import org.commonvoice.saverio.utils.setupOnSwipeRight
@@ -27,6 +29,11 @@ class SpeakSettingsFragment : ViewBoundFragment()
super.onStart()
withBinding {
+ val viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ if (viewModel.fromFragment.value != "settings") activity?.onBackPressed()
+
buttonBackSettingsSubSectionSpeak.setOnClickListener {
activity?.onBackPressed()
}
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UISettingsFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UISettingsFragment.kt
index 28af4ae8..cb0722f0 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UISettingsFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UISettingsFragment.kt
@@ -3,8 +3,10 @@ package org.commonvoice.saverio.ui.settings.nestedSettings
import android.view.LayoutInflater
import android.view.ViewGroup
import android.widget.SeekBar
+import androidx.lifecycle.ViewModelProviders
import com.google.android.material.bottomnavigation.BottomNavigationView
import com.google.android.material.bottomnavigation.LabelVisibilityMode
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.MainActivity
import org.commonvoice.saverio.R
import org.commonvoice.saverio.databinding.FragmentUiSettingsBinding
@@ -30,6 +32,11 @@ class UISettingsFragment : ViewBoundFragment() {
super.onStart()
withBinding {
+ val viewModel = activity?.run {
+ ViewModelProviders.of(this).get(GenericViewModel::class.java)
+ } ?: throw Exception("?? Invalid Activity ??")
+ if (viewModel.fromFragment.value != "settings") activity?.onBackPressed()
+
buttonBackSettingsSubSectionUI.setOnClickListener {
activity?.onBackPressed()
}
@@ -87,6 +94,18 @@ class UISettingsFragment : ViewBoundFragment() {
switchDailygoalProgressbarColoured.isChecked =
settingsPrefManager.isProgressBarColouredEnabled
+ switchShowInfoIconSpeakListen.setOnCheckedChangeListener { _, isChecked ->
+ settingsPrefManager.showInfoIcon = isChecked
+ }
+ switchShowInfoIconSpeakListen.isChecked =
+ settingsPrefManager.showInfoIcon
+
+ switchShowContributionCriteriaIconSpeakListen.setOnCheckedChangeListener { _, isChecked ->
+ settingsPrefManager.showContributionCriteriaIcon = isChecked
+ }
+ switchShowContributionCriteriaIconSpeakListen.isChecked =
+ settingsPrefManager.showContributionCriteriaIcon
+
seekTextSizeSettings.progress = ((10 * mainPrefManager.textSize) - 5).toInt()
setSeekBar(seekTextSizeSettings.progress.toFloat())
seekTextSizeSettings.setOnSeekBarChangeListener(object :
diff --git a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UsefulLinksFragment.kt b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UsefulLinksFragment.kt
index fa0a617b..0a8aa29d 100644
--- a/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UsefulLinksFragment.kt
+++ b/app/src/main/java/org/commonvoice/saverio/ui/settings/nestedSettings/UsefulLinksFragment.kt
@@ -4,6 +4,8 @@ import android.content.Intent
import android.net.Uri
import android.view.LayoutInflater
import android.view.ViewGroup
+import androidx.lifecycle.ViewModelProviders
+import org.commonvoice.saverio_lib.viewmodels.GenericViewModel
import org.commonvoice.saverio.databinding.FragmentUsefulLinksSettingsBinding
import org.commonvoice.saverio.ui.viewBinding.ViewBoundFragment
import org.commonvoice.saverio.utils.setupOnSwipeRight
@@ -25,6 +27,11 @@ class UsefulLinksFragment : ViewBoundFragment
+
+
diff --git a/app/src/main/res/drawable/ic_wifi.xml b/app/src/main/res/drawable/ic_wifi.xml
new file mode 100644
index 00000000..0def616d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_wifi.xml
@@ -0,0 +1,30 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_warning.xml b/app/src/main/res/layout/dialog_warning.xml
index 1feb0037..3607f898 100644
--- a/app/src/main/res/layout/dialog_warning.xml
+++ b/app/src/main/res/layout/dialog_warning.xml
@@ -89,4 +89,21 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/labelTextMessageDialog" />
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_advanced_settings.xml b/app/src/main/res/layout/fragment_advanced_settings.xml
index 21962bfc..54cd3177 100644
--- a/app/src/main/res/layout/fragment_advanced_settings.xml
+++ b/app/src/main/res/layout/fragment_advanced_settings.xml
@@ -526,6 +526,41 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/settingsSectionAdvancedDestinationAPIServer">
+
+
+
+
+ app:layout_constraintTop_toBottomOf="@id/separator9" />
diff --git a/app/src/main/res/layout/fragment_experimental_settings.xml b/app/src/main/res/layout/fragment_experimental_settings.xml
index a3c73fef..4b4eb6ec 100644
--- a/app/src/main/res/layout/fragment_experimental_settings.xml
+++ b/app/src/main/res/layout/fragment_experimental_settings.xml
@@ -96,6 +96,78 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
+
+
+
@@ -153,63 +226,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
-
-
-
-
-
-
diff --git a/app/src/main/res/layout/fragment_offline_settings.xml b/app/src/main/res/layout/fragment_offline_settings.xml
index d22a2696..3d8a123e 100644
--- a/app/src/main/res/layout/fragment_offline_settings.xml
+++ b/app/src/main/res/layout/fragment_offline_settings.xml
@@ -82,6 +82,28 @@
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
+
+
+
+
+
+
+
+
+
+
+ tools:layout="@layout/fragment_useful_links_settings" >
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-ar-rSA/strings.xml b/app/src/main/res/values-ar-rSA/strings.xml
index 05a4cd51..da87ab63 100644
--- a/app/src/main/res/values-ar-rSA/strings.xml
+++ b/app/src/main/res/values-ar-rSA/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…تخطي
@@ -398,6 +401,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?نعمإلغاء
diff --git a/app/src/main/res/values-as-rIN/strings.xml b/app/src/main/res/values-as-rIN/strings.xml
index cf601afc..5001b0b1 100644
--- a/app/src/main/res/values-as-rIN/strings.xml
+++ b/app/src/main/res/values-as-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…এৰক
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?Yesবাতিল কৰক
diff --git a/app/src/main/res/values-ast-rES/strings.xml b/app/src/main/res/values-ast-rES/strings.xml
new file mode 100644
index 00000000..0f5adb82
--- /dev/null
+++ b/app/src/main/res/values-ast-rES/strings.xml
@@ -0,0 +1,399 @@
+
+
+
+
+ en
+
+ Home
+ Dashboard
+ Settings
+
+ Log in / Sign up
+ Log out
+ Profile
+ Hi!
+ Hi, {{username}}!
+ The session-id is expired, you need to log in again
+
+ Statistics
+ Voices online
+ You
+ Everyone
+ Today
+ Ever
+ You have to log in to see your statistics
+ You have to log in to set the daily goal
+ h
+ Hour {{hour}}
+ Top contributors
+ Recorded
+ Validated
+ App statistics
+ Current language
+ All languages
+ Not available in offline mode
+
+ Start
+ Permit
+ Next
+ Try again
+ Finish
+ Skip
+ Permission obtained
+ Error: permission denied
+ CV Project is an unofficial app for Mozilla Common Voice. It\'s developed by Saverio Morelli without any support or partnership with Mozilla.
+ By proceeding, you agree to Mozilla\'s Common Voice Terms of Service.
+ This app needs the \"Microphone\" permission to record your voice.
+ You can report bugs on GitHub or Telegram. To help the developer understand the issue quickly, you should attach the app\'s log file to your report. The app needs the \"Storage\" permission to save the log file.
+ You can even contribute while you are offline. The app\'s \"Offline mode\" will be enabled automatically, and you can continue to record and listen without an Internet connection.
+ Choose your preferred theme. \"Auto\" toggles the theme based on the current time. You can change this later in Settings.
+ Dark theme
+ Some actions have corresponding gestures. For example, you can skip a sentence in Speak by swiping left.
+ You can customise these gestures in Settings.
+ You can join the Telegram group to get news and support.
+ Join group
+ Let\'s go! Choose which language you\'d like to speak or listen in. The app will also be shown in that language if a translation is available.
+
+ Loading…
+ Username
+ Email
+ Age
+ Gender
+ To modify your profile information, go to the Common Voice website.
+ Login successful!
+ Male
+ Female
+ Other
+ All badges
+ Level {{level}}
+ I have already a verification link
+ Verification link
+ The verification link is not valid
+
+ Reopen tutorial
+ Project open-source on GitHub
+ developed by
+ Language successfully set to {{lang}}
+ Language
+ Listen
+ Speak
+ Other
+ General
+ Useful links
+ Learn more
+ Light
+ Dark
+ Auto
+ Support my work. Buy me a coffee 😄
+ Auto-play clip when it\'s loaded
+ Dark theme
+ Contact the developer on Telegram
+ Experimental features
+ Experimental features turned on.\nNew features could be unstable and unsafe.
+ Save logs to a file
+ Saving logs to a file turned on.\nYou can attach the log.txt file when you report an issue.\nRead more on GitHub.
+ Generic statistics
+ Show the string which identifies me inside the app
+ App usage statistics
+ Skip recording confirmation
+ Skip recording confirmation turned on.\nYou will now be able to send recordings without having to listen to them first.
+ Translate the app on Crowdin
+ See app statistics
+ Recording indicator sound
+ Recording indicator sound is now turned on.\nA sound will play when you start and stop recording.
+ Check for updates
+ Gestures
+ Please, if you like this app, remember to review it on Google Play Store.
+ The app is not (completely) translated in this language.\nYou can contribute to translate the app on Crowdin.
+ Animations
+ Customise the font size
+ Customise gestures
+ Theme
+ Telegram group of the app
+ Show labels below the menu icons
+ Read the Mozilla Common Voice Terms of Service
+ Read the contribution criteria
+ Review on Google Play
+ User Interface
+ Advanced
+ Save recordings on device
+ Clear offline clips and sentences
+ Reset app data
+ No experimental features are now available
+ Only show the sentence text once the clip has completed playing
+ Show report icon (top-right) instead of button (bottom)
+ Text size
+ Ad banner
+ Enable ads-banner in {{section_name}}
+ Coloured dailygoal progress bar
+ {{speak_name}} and {{listen_name}}
+ Light theme also for the sentence to read/to validate in Speak and Listen (when the light theme is turned on).
+ Show speed control bar
+ Show info icon
+ Push to talk
+ Choose the number of sentences and the number of clips to download and use when the app is in offline mode.
+ Usually users take about 13 minutes to validate 50 clips and 26 minutes to record 50 sentences.
+ Swipe up
+ Swipe down
+ Swipe left
+ Swipe right
+ Long press
+ Double tap
+ Swipe up: {{feature_enabled}}
+ Swipe down: {{feature_enabled}}
+ Swipe left: {{feature_enabled}}
+ Swipe right: {{feature_enabled}}
+ Long press: {{feature_enabled}}
+ Double tap: {{feature_enabled}}
+ Nothing
+ Go back
+ Skip the clip
+ Skip the sentence
+ Accept the clip (mark as correct)
+ Reject the clip (mark as incorrect)
+ Enable/Disable \"{{feature}}\"
+ Report the clip
+ Report the sentence
+ Show information about the clip
+ Show information about the sentence
+ Play/Stop clip
+ Start/Stop recording
+ Play/Stop recording
+ Save
+ Choose an action
+ Show contribution criteria icon
+ Upload using Wi-Fi only
+ Download using Wi-Fi only
+ Generic notifications
+ Daily goal notifications
+ Notifications
+ Please don\'t forget to contribute to Common Voice today, your contribution is valuable and important!\nTap here to open the app and work towards your daily goal now.
+ CV Project daily goal not reached yet!
+ Choose when you wish to be notified in case your daily goal has not been reached.
+ Please note that this might not be exact or might not be work at all due to battery optimisation settings.
+ First alert
+ Second alert
+ None
+ Statistics
+ Destination API server
+ Reset to the default API server
+ Customise API server
+ Are you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.
+ Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fi
+
+ Loading sentence…
+ Skip
+ Send recording
+ Loading clip…
+ Press the icon below to start recording.
+ Press the icon below to stop recording.
+ Sentence recorded. Listen to the recording.
+ Recording failed. Please try again.
+ If you spoke correctly, send the recording.\nIf you misspoke, you can record the sentence again.
+ Listen to the whole recording to make sure it\'s correct.
+ Press the icon below to stop listening.
+ Recording is too long. Max duration is 10 seconds.
+ Recording is too short. Please, try again.
+ Sending the recording…
+ Recording sent!
+ Failed to send recording!
+ Failed to send recording! You can either try again, or press the {{skip_button}} button.
+ Press the icon below to start the clip.
+ Press the icon below to stop the clip.
+ If the clip is correct, press the thumbs up.\nIf the clip is wrong, press the thumbs down.
+ Press the icon below to play the clip again.
+ Clip marked as correct!
+ Clip marked as incorrect!
+ Error. Press the {{skip_button}} button to continue.
+ Failed to send the recording.
+ Sending…
+ Failed to send the result. You can either try again, or press the {{skip_button}} button.
+ Closing…
+ Error. There are no more available clips for this language.
+ Report
+ Report clip:
+ Report sentence:
+ Send report
+ Offensive language
+ Offensive speech
+ Grammatical / spelling error
+ Different language
+ Difficult to pronounce
+ Other
+ Comment
+ You have run out of offline sentences. Connect to the Internet to download more sentences to record.
+ You have run out of offline clips. Connect to the Internet to download more clips to validate.
+ You can record {{n_sentences}} more sentences before you need to connect to the Internet.
+ You can validate {{n_clips}} more clips before you need to connect to the Internet.
+ Listening…
+ \"{{feature_name}}\" is enabled. Go to Settings to disable it.
+ The sentence text is hidden
+ The Common Voice API server did not provide any more sentences. Try later or contact Mozilla.
+ The Common Voice API server did not provide any more clips. Try later or contact Mozilla.
+
+ You have already validated %d clip in a row, continue this amazing work!
+ You have already validated %d clips in a row, continue this amazing work!
+
+
+ Continue to validate clips, you validated %d clip in a row.
+ Continue to validate clips, you validated %d clips in a row.
+
+
+ Excellent work! You have already validated %d clip in a row.
+ Excellent work! You have already validated %d clips in a row.
+
+
+ Wow, you have superhuman powers! You validated %d clip in a row!
+ Wow, you have superhuman powers! You validated %d clips in a row!
+
+
+ You sent %d recording in a row.
+ You sent %d recordings in a row.
+
+
+ Good job! You sent %d recording in a row.
+ Good job! You sent %d recordings in a row.
+
+
+ Congratulations! You achieved the milestone of %d recorded sentence. Keep going.
+ Congratulations! You achieved the milestone of %d recorded sentences. Keep going.
+
+
+ Wow, you have superhuman powers! You recorded %d sentence in a row!
+ Wow, you have superhuman powers! You recorded %d sentences in a row!
+
+
+ You miss only %d clip to achieve your daily goal of {{dailygoal}}!
+ You miss only %d clips to achieve your daily goal of {{dailygoal}}!
+
+
+ You miss only %d sentence to achieve your daily goal of {{dailygoal}}!
+ You miss only %d sentences to achieve your daily goal of {{dailygoal}}!
+
+ Speed successfully set to {{speed_value}}.
+
+ Reject clip
+ Accept clip
+ Play clip
+ Stop clip
+ Start recording
+ Record again the sentence
+ Stop recording
+ Play recording
+ Stop listening
+ Send recording
+ Read contribution criteria
+ See offline mode details
+ See information about the current clip
+ See information about the current sentence
+ Report the current clip
+ Report the current sentence
+ Open Listen section
+ Open Speak section
+ Go back
+ Enable/Disable
+ Close message
+ Copy
+ Increase
+ Decrease
+
+ Check again
+ You aren\'t connected to the internet. Connect to Wi-Fi or mobile data, then press the button below.
+
+ This is the sentence you must record.
+ A message to guide you will appear here.
+ If you don\'t like the sentence, you can tap here to skip and get another one.
+ Tap on this icon to start recording.
+ Tap on this icon to stop recording.
+ Tap on this icon to play back your recording.
+ Tap on this icon to re-record if you made a mistake.
+ Tap on this icon to play back your recording again.
+ Tap on this button to send your recording.
+ This is the sentence/clip you must validate.
+ If you don\'t like the clip, you can tap on this button to skip and get another one.
+ Tap on this icon to play the clip.
+ Tap on this icon to stop playing the clip.
+ Tap on this icon if you want to listen to the clip again.
+ If the clip matches the sentence, tap on this icon to accept it.
+ If the clip doesn\'t match the sentence, tap on this icon to reject it.
+ If you\'re not sure whether to accept or reject a recording, or you want to improve your recordings, you can read the official contribution criteria.\nYou also can find this link later in Settings > Useful links.
+ Read now
+
+ Sorry, this feature doesn\'t exist yet.\nWe\'re working constantly to improve the app, so check back later to see if it\'s been added.
+
+ Close
+ All badges
+ New badge earnt
+ New level achieved
+ Hooray! You have just earned a new badge.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ Congrats! You have just achieved a new level and you earnt a new badge as well.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ You got this badge because you validated at least {{n_clips}} clips.
+ You got this badge because you recorded at least {{n_sentences}} sentences.
+ You got this badge because you validated or recorded at least {{n_total}} clips.
+
+ OK
+ Error
+ That didn\'t work.\nPlease try again, or contact the developer.
+ That didn\'t work. Please try again, or contact the developer.\nError code: EX-{{error_code}}
+ Login failed
+ You must first log in on the Common Voice website and accept the Common Voice privacy policy.
+ Open Common Voice
+ Warning
+ Tip
+ Changelog
+ Help
+ Info
+ Do not show anymore
+ If you have issues with the official Common Voice website, please report them on Mozilla Discourse forums or GitHub repository so that Mozilla can fix them.
+ Review now
+ Do you like the app? You can support my work. Buy me a coffee on PayPal or LiberaPay.
+ Log in again
+ Offline mode
+ You are now offline and the app switched to offline mode automatically.\nThis means you can continue to record and validate, but the requests will be sent later.
+ You can tell when you are in offline mode by looking for this icon on the screen:
+ You can tap that icon to see downloaded clips and sentences.
+ The Offline mode is not enabled, so you can\'t use the app without an Internet connection.\nTo use the Offline mode feature, turn on it in Settings.
+ Do you know you can support my work freely? Please, if you like the app, consider to turn on ad banners in Settings.
+ Open Settings now
+ Are you sure you want to go back and lose the recording?
+ Are you sure you want to skip and lose the recording?
+ Are you sure you want to continue and lose the recording?
+ Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?
+ Yes
+ Cancel
+
+ Well done! You opened the app %d day in a row.
+ Well done! You opened the app %d days in a row.
+
+
+ I\'ve opened the CV Project app %d day in a row! Download it too, so you can contribute to the Common Voice project with your smartphone.
+ I\'ve opened the CV Project app %d days in a row! Download it too, so you can contribute to the Common Voice project with your smartphone.
+
+ Log in now
+ Open Profile now
+ Translate now
+
+ Daily goal
+ No goal set
+ Set a goal
+ Edit goal
+ Save
+ Delete
+ Cancel
+ Choose how many sentences you want to record and clips you want to validate (sum of them) per day.
+ Achieved today
+ Not achieved today
+ Well done! You achieved your daily goal.\nYou validated {{n_clips}} clip(s) and recorded {{n_sentences}} sentence(s).\nFeel free to continue contributing to Common Voice.
+ Share
+ Share on
+ I\'ve just achieved my daily goal for @mozilla #CommonVoice using #CVProject.\nJoin in and contribute! Install CV Project from Google Play, F-Droid or Huawei AppGallery now {{link}}
+ This daily goal isn\'t an official Mozilla feature. It\'s only a feature of this app.
+ Did you know that … ?
+ 10,000 hours is achievable in just over 6 months if 1,000 people record 45 clips a day.
+ Copied
+
+ A new version of the app is available (release {{n_version}}). You can update it from your favourite store (F-Droid, Google Play, Huawei AppGallery, Amazon AppStore) or directly from GitHub.
+
diff --git a/app/src/main/res/values-az-rAZ/strings.xml b/app/src/main/res/values-az-rAZ/strings.xml
index d221eed4..b105cb34 100644
--- a/app/src/main/res/values-az-rAZ/strings.xml
+++ b/app/src/main/res/values-az-rAZ/strings.xml
@@ -117,6 +117,7 @@
İstifadəçi interfeysiQabaqcılSəsyazmaları cihazda saxla
+ Clear offline clips and sentencesTətbiq verilənlərini sıfırlaArtıq təcrübi özəlliklər yoxdurCümlə mətnini yalnız klip oynatması tamamlandıqdan sonra göstər
@@ -179,6 +180,8 @@
API serveri özəlləşdirAPI serverini özəlləşdirmək istədiyinizə əminsiniz? Bu potensial bir təhlükəli əməliyyatıdır.\nYenə də, istənilən vaxt ilkin API serverini sıfırlaya bilərsiniz.Hədəf API serveri
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiCümlə yüklənir…Ötür
@@ -358,6 +361,7 @@
Səsyazmanı ötürüb itirmək istədiyinizə əminsiniz?Davam edib səsyazmanı itirmək istədiyinizə əminsiniz?Bütün tətbiq verilənlərini sıfırlamaq istədiyinizə əminsiniz?
+ Are you sure you want to clear offline data?Bəliİmtina
diff --git a/app/src/main/res/values-ba-rRU/strings.xml b/app/src/main/res/values-ba-rRU/strings.xml
index 2cde1e55..2c64859b 100644
--- a/app/src/main/res/values-ba-rRU/strings.xml
+++ b/app/src/main/res/values-ba-rRU/strings.xml
@@ -117,6 +117,7 @@
Ҡулланыусы интерфейсыӨҫтәлмәЯҙмаларҙы девайсҡа һаҡларға
+ Clear offline clips and sentencesҠушымта мәғлүмәттәрен юйырғаӘлегә эксперименталь функциялар юҡOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAPI серверын үҙгәртергә торғаныңды аңлайыңмы? Был ҡурҡыныс эш.\nҺин көйләүҙәрҙе баш формаһына әле кире ҡайтара алаң.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiҺөйләмдәр тейәлә…Үткәр
@@ -348,6 +351,7 @@
Быны үткәреп яҙманы юғалтырға әҙерһегеҙме?Быны үткәреп яҙманы юғалтырға әҙерһегеҙме?Бөтә мәғлүмәтте юғалтырға әҙерһегеҙме?
+ Are you sure you want to clear offline data?ЭйеКире алыу
diff --git a/app/src/main/res/values-be-rBY/strings.xml b/app/src/main/res/values-be-rBY/strings.xml
index 63749127..afa99015 100644
--- a/app/src/main/res/values-be-rBY/strings.xml
+++ b/app/src/main/res/values-be-rBY/strings.xml
@@ -117,6 +117,7 @@
Карыстальніцкі інтэрфейсДадатковаЗахоўваць запісы ў прыладзе
+ Clear offline clips and sentencesСкінуць дадзеныя праграмыНіякіх эксперыментальных функцый не маеццаПаказваць тэкст сказа толькі калі скончылася прайграванне запісу
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -378,6 +381,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-bg-rBG/strings.xml b/app/src/main/res/values-bg-rBG/strings.xml
index 528f7491..0f803d6f 100644
--- a/app/src/main/res/values-bg-rBG/strings.xml
+++ b/app/src/main/res/values-bg-rBG/strings.xml
@@ -117,6 +117,7 @@
Потребителски интерфейсРазширениЗапазване на записите в устройството
+ Clear offline clips and sentencesНулиране на данните на приложениетоНяма налични експериментални функции в моментаПоказване на текста на изречението единствено след завършване на прослушването
@@ -179,6 +180,8 @@
Промени API сървърСигурни ли сте, че искате да промените API сървърът? Това е потенциално опасно действие.\nМожете да се върнете към началния API сървър във всеки момент.API сървър дестинация
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiЗареждане на изречение…Пропусни
@@ -358,6 +361,7 @@
Сигурни ли сте, че искате да пропуснете и да загубите записа?Сигурни ли сте, че искате да продължите и да загубите записа?Сигурни ли сте, че искате да нулирате всички данни на приложението?
+ Are you sure you want to clear offline data?ДаОтказ
diff --git a/app/src/main/res/values-bn-rBD/strings.xml b/app/src/main/res/values-bn-rBD/strings.xml
index 9d116ac3..86c5b2ab 100644
--- a/app/src/main/res/values-bn-rBD/strings.xml
+++ b/app/src/main/res/values-bn-rBD/strings.xml
@@ -117,6 +117,7 @@
ব্যবহারকারীর দৃশ্যমান অংশউন্নতকথার যন্ত্রেই সংরক্ষণ করো
+ Clear offline clips and sentencesঅ্যাপের তথ্য পরিষ্কার করোপরীক্ষামূলক বৈশিষ্ট্য এখনের জন্য নেইOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…উপেক্ষা কর
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?Yesবাতিল করো
diff --git a/app/src/main/res/values-br-rFR/strings.xml b/app/src/main/res/values-br-rFR/strings.xml
index 3d6f9951..0d135b33 100644
--- a/app/src/main/res/values-br-rFR/strings.xml
+++ b/app/src/main/res/values-br-rFR/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -388,6 +391,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ca-rES/strings.xml b/app/src/main/res/values-ca-rES/strings.xml
index b9f37347..123c5b34 100644
--- a/app/src/main/res/values-ca-rES/strings.xml
+++ b/app/src/main/res/values-ca-rES/strings.xml
@@ -117,6 +117,7 @@
Interfície d\'UsuariAvançatGuarda gravacions al dispositiu
+ Clear offline clips and sentencesReinicialitza les dadesCap funció experimental està ara disponibleMostra la frase escrita solament després que el tall s\'ha reproduït
@@ -179,6 +180,8 @@
Personalitza el servidor APISegur que voleu personalitzar el servidor API? És una acció potencialment perillosa.\nPodeu restablir el servidor API per defecte en qualsevol moment.Servidor API de destinació
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiEs carrega la frase…Saltar
@@ -358,6 +361,7 @@
Esteu segur de voler ometre i perdre l\'enregistrament?Esteu segur de voler continuar i perdre el registre?Esteu segur de voler restablir totes les dades de l\'aplicació?
+ Are you sure you want to clear offline data?SíCancel·la
diff --git a/app/src/main/res/values-ckb-rIR/strings.xml b/app/src/main/res/values-ckb-rIR/strings.xml
index def1f76b..f642d371 100644
--- a/app/src/main/res/values-ckb-rIR/strings.xml
+++ b/app/src/main/res/values-ckb-rIR/strings.xml
@@ -117,6 +117,7 @@
User InterfaceپێشکەوتووSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?بەڵێوازهێنان
diff --git a/app/src/main/res/values-cs-rCZ/strings.xml b/app/src/main/res/values-cs-rCZ/strings.xml
index 0d4be25c..0fe4b6a9 100644
--- a/app/src/main/res/values-cs-rCZ/strings.xml
+++ b/app/src/main/res/values-cs-rCZ/strings.xml
@@ -117,6 +117,7 @@
VzhledPokročiléUkládat nahrávky do zařízení
+ Clear offline clips and sentencesObnovit data aplikaceNyní nejsou k dispozici žádné experimentální funkceOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Přeskočit
@@ -378,6 +381,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?AnoZrušit
diff --git a/app/src/main/res/values-cy-rGB/strings.xml b/app/src/main/res/values-cy-rGB/strings.xml
index 64f38507..999329c1 100644
--- a/app/src/main/res/values-cy-rGB/strings.xml
+++ b/app/src/main/res/values-cy-rGB/strings.xml
@@ -117,6 +117,7 @@
Rhyngwyneb DefnyddiwrUwchCadw recordiadau ar y ddyfais
+ Clear offline clips and sentencesAilosod data\'r apDoes dim nodweddion rhagbrofol ar gael ar hyn o brydOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Neidio
@@ -398,6 +401,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesDiddymu
diff --git a/app/src/main/res/values-da-rDK/strings.xml b/app/src/main/res/values-da-rDK/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-da-rDK/strings.xml
+++ b/app/src/main/res/values-da-rDK/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
index d560f8d6..b75f595d 100644
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ b/app/src/main/res/values-de-rDE/strings.xml
@@ -117,6 +117,7 @@
BenutzeroberflächeErweiterte EinstellungenAufnahmen auf dem Gerät speichern
+ Clear offline clips and sentencesApp-Daten zurücksetzenGerade sind keine experimentellen Funktionen verfügbarDen Satztext nur anzeigen, wenn der Clip die Wiedergabe abgeschlossen hat
@@ -179,6 +180,8 @@
API-Server anpassenBist du sicher, dass du den API-Server anpassen möchtest? Dies ist möglicherweise eine gefährliche Aktion.\nDu kannst jederzeit auf den Standard-API-Server zurücksetzen.Ziel-API-Server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiSatz wird geladen…Überspringen
@@ -358,6 +361,7 @@
Willst du überspringen und die die Aufnahme löschen?Bist du sicher, dass du fortfahren und die Aufnahme verlieren willst?Bist du sicher, dass du die App-Daten löschen willst?
+ Are you sure you want to clear offline data?JaAbbrechen
diff --git a/app/src/main/res/values-dv-rMV/strings.xml b/app/src/main/res/values-dv-rMV/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-dv-rMV/strings.xml
+++ b/app/src/main/res/values-dv-rMV/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-el-rGR/strings.xml b/app/src/main/res/values-el-rGR/strings.xml
index a2da1f22..6cfcbf8f 100644
--- a/app/src/main/res/values-el-rGR/strings.xml
+++ b/app/src/main/res/values-el-rGR/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?ΝαιCancel
diff --git a/app/src/main/res/values-eo-rUY/strings.xml b/app/src/main/res/values-eo-rUY/strings.xml
index cf6d7907..c2d3d3c8 100644
--- a/app/src/main/res/values-eo-rUY/strings.xml
+++ b/app/src/main/res/values-eo-rUY/strings.xml
@@ -117,6 +117,7 @@
FasadoAltnivelajKonservadi registraĵojn sur aparato
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Preterlasi
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?JesRezigni
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index abc10842..8b0a40d6 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -117,6 +117,7 @@
Interfaz de UsuarioAvanzadoGuardar grabaciones en el dispositivo
+ Clear offline clips and sentencesRestaurar datos de la aplicaciónNo hay características experimentales disponibles ahoraMostrar el texto de la oración solo cuando el clip haya terminado de reproducirse
@@ -179,6 +180,8 @@
Personalizar el servidor API¿Estás seguro de que deseas personalizar el servidor API? Esta es una acción potencialmente peligrosa.\nPuedes restablecerlo al servidor API predeterminado en cualquier momento.Servidor API de destino
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiCargando oración…Saltar
@@ -358,6 +361,7 @@
¿Estás seguro de que quieres saltar y perder la grabación?¿Estás seguro de que quieres continuar y perder la grabación?¿Estás seguro de que desea restablecer todos los datos de la aplicación?
+ Are you sure you want to clear offline data?SíCancelar
diff --git a/app/src/main/res/values-et-rEE/strings.xml b/app/src/main/res/values-et-rEE/strings.xml
index d61bcc23..1af6e793 100644
--- a/app/src/main/res/values-et-rEE/strings.xml
+++ b/app/src/main/res/values-et-rEE/strings.xml
@@ -117,6 +117,7 @@
KasutajaliidesLisavalikudSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Jäta vahele
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesTühista
diff --git a/app/src/main/res/values-eu-rES/strings.xml b/app/src/main/res/values-eu-rES/strings.xml
index 9da625b5..85e0a7e5 100644
--- a/app/src/main/res/values-eu-rES/strings.xml
+++ b/app/src/main/res/values-eu-rES/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Saltatu
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesEzeztatu
diff --git a/app/src/main/res/values-fa-rIR/strings.xml b/app/src/main/res/values-fa-rIR/strings.xml
index 90daed54..c78fe0d6 100644
--- a/app/src/main/res/values-fa-rIR/strings.xml
+++ b/app/src/main/res/values-fa-rIR/strings.xml
@@ -117,6 +117,7 @@
رابط کاربریپیشرفتهذخیرهٔ ضبطها روی دستگاه
+ Clear offline clips and sentencesپاک کردن حافظهٔ کارههیچ قابلیت آزمایشیای در حال حاضر در دسترس نیستمتن جملات را تنها زمانی نمایش یابند که پخش صدا کامل شده باشد
@@ -179,6 +180,8 @@
شخصیسازی کارساز APIآیا اطمینان دارید که میخواهید کارساز API را شخصیسازی کنید؟ این کار به طور بالقوهای خطرناک است.\n شما در هر لحظه قادرید کارساز API را به پیشفرض بازگردانی کنید.کارساز API مقصد
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fiدریافت جمله…پرش
@@ -358,6 +361,7 @@
مطمئنید میخواهید رد شده و ضبط را از دست دهید؟مطمئنید میخواهید ادامه دهید و ضبط را از دست دهید؟مطمئنید میخواهید همهٔ دادههای کاره را بازنشانی کنید؟
+ Are you sure you want to clear offline data?بلهلغو
diff --git a/app/src/main/res/values-fi-rFI/strings.xml b/app/src/main/res/values-fi-rFI/strings.xml
index 30b37ef5..618e7561 100644
--- a/app/src/main/res/values-fi-rFI/strings.xml
+++ b/app/src/main/res/values-fi-rFI/strings.xml
@@ -117,6 +117,7 @@
KäyttöliittymäLisäasetuksetTallenna nauhoitukset laitteelle
+ Clear offline clips and sentencesTyhjennä sovelluksen tiedotKokeellisia ominaisuuksia ei ole nyt saatavillaOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Mukauta API-palvelintaAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Kohde-API-palvelin
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLadataan virkettä…Ohita
@@ -358,6 +361,7 @@
Haluatko varmasti ohittaa ja hävittää nauhoituksen?Oletko varma, että haluat jatkaa ja menettää nauhoituksen?Oletko varma, että haluat nollata kaikki sovelluksen tiedot?
+ Are you sure you want to clear offline data?KylläPeru
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index a4d79205..a5dce7eb 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -117,6 +117,7 @@
Interface utilisateurAvancésSauvegarder les enregistrements sur l\'appareil
+ Clear offline clips and sentencesRéinitialiser les donnéesAucune fonctionnalité expérimentale disponible pour le momentAfficher le texte de la phrase seulement quand la lecture du clip est terminée
@@ -179,6 +180,8 @@
Personnaliser le serveur APIÊtes-vous sûr·e de vouloir personnaliser le serveur API ? Il s\'agit d\'une action potentiellement dangereuse.\nVous pouvez à tout moment revenir au serveur API par défaut.Serveur API de destination
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiChargement de la phrase…Passer
@@ -358,6 +361,7 @@
Êtes-vous sûr·e de vouloir passer et perdre l\'enregistrement ?Êtes-vous sûr·e de vouloir continuer et perdre l\'enregistrement ?Êtes-vous sûr·e de vouloir réinitialiser toutes les données de l\'application ?
+ Are you sure you want to clear offline data?OuiAnnuler
diff --git a/app/src/main/res/values-fy-rNL/strings.xml b/app/src/main/res/values-fy-rNL/strings.xml
index f71fa955..f0f155bd 100644
--- a/app/src/main/res/values-fy-rNL/strings.xml
+++ b/app/src/main/res/values-fy-rNL/strings.xml
@@ -117,6 +117,7 @@
BrûkersinterfaceAvansearreOpnamen op apparaat bewarje
+ Wiskje offline fragminten en sinnenApp-gegevens opnij inisjalisearjeDer binne op dit stuit gjin eksperimintele funksjes beskikberSintekst pas toane as it fragmint folslein ôfspile is
@@ -179,6 +180,8 @@
API-server oanpasseBinne jo wis dat jo de API-server oanpasse wolle? Dit kin in gefaarlike aksje wêze.\nJo kinne op elk winske momint nei de standert API-server tebeksette.Doel-API-server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiSin lade…Oerslaan
@@ -358,6 +361,7 @@
Binne jo wis dat jo oerslaan wolle en de opname fuortsmite wolle?Binne jo wis dat jo trochgean wolle en de opname fuortsmite wolle?Binne jo wis dat jo alle app-gegevens opnij ynstelle wolle?
+ Binne jo wis dat jo offline gegevens wiskje wolle?JaAnnulearje
diff --git a/app/src/main/res/values-ga-rIE/strings.xml b/app/src/main/res/values-ga-rIE/strings.xml
index 5402bb1b..9eee45f6 100644
--- a/app/src/main/res/values-ga-rIE/strings.xml
+++ b/app/src/main/res/values-ga-rIE/strings.xml
@@ -41,7 +41,7 @@
Léim thar seoTá cead faighteBotún: níor tugadh cead
- CV Project is an unofficial app for Mozilla Common Voice. It\'s developed by Saverio Morelli without any support or partnership with Mozilla.
+ Is feidhmchláirín neamhoifigiúil i gcomhair Mozilla Common Voice é CV Project. Rinne Saverio Morelli é a fhorbairt gan aon tacaíocht a fháil ó Mozilla nó gan bheith i gcomhar le Mozilla.By proceeding, you agree to Mozilla\'s Common Voice Terms of Service.Caithfear cead \"Micreafón\" a thabhairt don bhfeidhmchlár seo chun gur féidir leis do ghuth a thaifeadadh.You can report bugs on GitHub or Telegram. To help the developer understand the issue quickly, you should attach the app\'s log file to your report. The app needs the \"Storage\" permission to save the log file.
@@ -95,7 +95,7 @@
Generic statisticsShow the string which identifies me inside the appApp usage statistics
- Skip recording confirmation
+ Léim thar an deimhniú taifeadtaSkip recording confirmation turned on.\nYou will now be able to send recordings without having to listen to them first.Aistrigh an feidhmchláirín ar CrowdinSee app statistics
@@ -117,6 +117,7 @@
Comhéadan úsáideoraArdroghannaSave recordings on device
+ Clear offline clips and sentencesAthshocraigh sonraí an fheidhmchláirNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -167,7 +168,7 @@
Fógraí maidir leis an sprioc laethúilFógraíPlease don\'t forget to contribute to Common Voice today, your contribution is valuable and important!\nTap here to open the app and work towards your daily goal now.
- CV Project daily goal not reached yet!
+ Níor baineadh sprioc laethúil CV Project amach fós!Choose when you wish to be notified in case your daily goal has not been reached.Please note that this might not be exact or might not be work at all due to battery optimisation settings.An chéad foláireamh
@@ -179,6 +180,8 @@
Saincheap freastalaí an APIAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiTá an abairt á luchtú…Léim thar seo
@@ -317,8 +320,8 @@
See information about the current sentenceTuairiscigh an mhír reathaTuairiscigh an abairt reatha
- Open Listen section
- Open Speak section
+ Oscail an chuid Éisteachta
+ Oscail an chuid LabharthaTéigh siarCumasaigh/díchumasaighDún an teachtaireacht
@@ -388,6 +391,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?Is eaCealaigh
@@ -422,9 +426,9 @@
ComhroinnComhroinn arI\'ve just achieved my daily goal for @mozilla #CommonVoice using #CVProject.\nJoin in and contribute! Install CV Project from Google Play, F-Droid or Huawei AppGallery now {{link}}
- This daily goal isn\'t an official Mozilla feature. It\'s only a feature of this app.
+ Ní gné oifigiúil de chuid Mozilla é an sprioc laethúil sin. Is gné í a bhaineann leis an bhfeidhmchláirín seo amháin.An eol duit … ?
- 10,000 hours is achievable in just over 6 months if 1,000 people record 45 clips a day.
+ Is féidir 10,000 uair an chloig a bhaint amach i gceann corradh le 6 mhí dá ndéanfadh 1,000 duine 45 ghearrthóg a thaifeadadh gach lá.CóipeáilteTá leagan nua den bhfeidhmchlr le fáil (leagan {{n_version}}). Tig leat é a nuashonrú ón siopa is fearr leat (F-Droid, Google Play, Huawei AppGallery, Amazon AppStore) nó go díreach ó GitHub.
diff --git a/app/src/main/res/values-gl-rES/strings.xml b/app/src/main/res/values-gl-rES/strings.xml
index a567de0d..1af9730e 100644
--- a/app/src/main/res/values-gl-rES/strings.xml
+++ b/app/src/main/res/values-gl-rES/strings.xml
@@ -117,6 +117,7 @@
Interface de usuarioAvanzadoGardar as gravacións no dispositivo
+ Clear offline clips and sentencesRestabelecer os datos da appNingunha funcionalidade experimental está dispoñíbel neste intreOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Omitir
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancelar
diff --git a/app/src/main/res/values-gn-rPY/strings.xml b/app/src/main/res/values-gn-rPY/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-gn-rPY/strings.xml
+++ b/app/src/main/res/values-gn-rPY/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ha-rHG/strings.xml b/app/src/main/res/values-ha-rHG/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-ha-rHG/strings.xml
+++ b/app/src/main/res/values-ha-rHG/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-hi-rIN/strings.xml b/app/src/main/res/values-hi-rIN/strings.xml
index e21f3a62..2202e893 100644
--- a/app/src/main/res/values-hi-rIN/strings.xml
+++ b/app/src/main/res/values-hi-rIN/strings.xml
@@ -117,6 +117,7 @@
यूजर इंटरफेसउन्नतरिकोर्डिंगों को डिवाइस पर सेव करें
+ Clear offline clips and sentencesएप्प डाटा को प्रारम्भिक स्तिथि में लायेंकोई भी प्रयोगात्मक फीचर अभी उपलब्ध नहीं हैOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fiवाक्य लोड हो रहा है…छोड़ें
@@ -358,6 +361,7 @@
क्या आप निश्चित ही इसे छोड़ना चाहते है व रिकॉर्डिंग को खोना चाहते हैं?Are you sure you want to continue and lose the recording?क्या आप निश्चित ही सारे एप्प डाटा को प्रारंभिक स्थिति में लाना चाहते हैं?
+ Are you sure you want to clear offline data?हाँरद्द करें
diff --git a/app/src/main/res/values-hu-rHU/strings.xml b/app/src/main/res/values-hu-rHU/strings.xml
index e41014e5..6b170c61 100644
--- a/app/src/main/res/values-hu-rHU/strings.xml
+++ b/app/src/main/res/values-hu-rHU/strings.xml
@@ -117,6 +117,7 @@
Felhasználói felületSpeciálisFelvételek mentése erre az eszközre
+ Clear offline clips and sentencesAlkalmazásadatok visszaállításaJelenleg nem érhetők el kísérleti funkciókCsak akkor jelenítse meg a mondat szövegét, ha a klip lejátszása befejeződött
@@ -179,6 +180,8 @@
API kiszolgáló testreszabásaBiztos, hogy testreszabja az API kiszolgálót? Lehetséges, hogy ez veszélyes művelet.\nBármikor visszaállíthatja az alapértelmezett API kiszolgálót.Cél API kiszolgáló
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiMondat betöltése…Átugrás
@@ -358,6 +361,7 @@
Biztos, hogy kihagyja és elveti a felvételt?Biztos, hogy folytatja és elveti a felvételt?Biztos, hogy visszaállítja az összes alkalmazásadatot?
+ Are you sure you want to clear offline data?IgenMégse
diff --git a/app/src/main/res/values-hy-rAM/strings.xml b/app/src/main/res/values-hy-rAM/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-hy-rAM/strings.xml
+++ b/app/src/main/res/values-hy-rAM/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ia/strings.xml b/app/src/main/res/values-ia/strings.xml
index debace36..91b9c2ce 100644
--- a/app/src/main/res/values-ia/strings.xml
+++ b/app/src/main/res/values-ia/strings.xml
@@ -117,6 +117,7 @@
Interfacie de usatorAvantiateSalvar registrationes sur apparato
+ Clear offline clips and sentencesReinitialisar le datos de applicationNulle functionalitates experimental es ora disponibileSolo monstrar le texto del phrase post que le reproduction del registration fini
@@ -179,6 +180,8 @@
Personalisar le servitor APIDesira tu vermente personalisar le servitor API? Isto es potentialmente un action periculose.\nTu potera reinitialisar al predefinite le servitor API in ulle momento.Servitor API de destination
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiCargamento phrase…Saltar
@@ -358,6 +361,7 @@
Desira tu vermente saltar e perder le registration?Desira tu vermente continuar e perder le registration?Desira tu vermente remontar tote le datos del apps?
+ Are you sure you want to clear offline data?SiCancellar
diff --git a/app/src/main/res/values-ig-rNG/strings.xml b/app/src/main/res/values-ig-rNG/strings.xml
index 04ba7ceb..3597680f 100644
--- a/app/src/main/res/values-ig-rNG/strings.xml
+++ b/app/src/main/res/values-ig-rNG/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-in-rID/strings.xml b/app/src/main/res/values-in-rID/strings.xml
index 1c1a77ec..29591645 100644
--- a/app/src/main/res/values-in-rID/strings.xml
+++ b/app/src/main/res/values-in-rID/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-it-rIT/strings.xml b/app/src/main/res/values-it-rIT/strings.xml
index 31a28ac4..3f052fe7 100644
--- a/app/src/main/res/values-it-rIT/strings.xml
+++ b/app/src/main/res/values-it-rIT/strings.xml
@@ -117,6 +117,7 @@
Interfaccia utenteAvanzateSalva registrazioni sul dispositivo
+ Clear offline clips and sentencesReimposta dati appNessuna funzionalità sperimentale è al momento disponibileMostra il testo della frase solo dopo che la registrazione è stata ascoltata del tutto
@@ -179,6 +180,8 @@
Personalizza server APISei proprio sicuro di voler personalizzare il server API? Questa azione potrebbe essere pericolosa.\nIn ogni caso, potrai resettare e tornare al server API predefinito in ogni momento.Server API di destinazione
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiCaricamento di una frase…Salta
@@ -358,6 +361,7 @@
Sei sicuro di voler saltare e perdere la registrazione?Sei sicuro di voler continuare e perdere la registrazione?Sei sicuro di voler eliminare tutti i dati dell\'app?
+ Are you sure you want to clear offline data?SìAnnulla
diff --git a/app/src/main/res/values-ja-rJP/strings.xml b/app/src/main/res/values-ja-rJP/strings.xml
index 25539235..f511bf9f 100644
--- a/app/src/main/res/values-ja-rJP/strings.xml
+++ b/app/src/main/res/values-ja-rJP/strings.xml
@@ -117,6 +117,7 @@
ユーザインタフェース高度な設定端末に録音内容を保存する
+ Clear offline clips and sentencesアプリのデータ初期化現在利用可能な実験的な機能はありません。クリップの再生が完了するまで文章を表示しない
@@ -179,6 +180,8 @@
API サーバーをカスタマイズ本当にAPIサーバーをカスタマイズしますか?これは危険性がある操作です。\nいつでもデフォルトのAPIサーバーにリセット可能です。宛先APIサーバー
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fi文章を読み込み中…スキップ
@@ -348,6 +351,7 @@
スキップした場合録音内容を失いますがよろしいですか?続行した場合録音内容を失いますがよろしいですか?本当にすべてのアプリのデータをリセットしますか?
+ Are you sure you want to clear offline data?はいキャンセル
diff --git a/app/src/main/res/values-ka-rGE/strings.xml b/app/src/main/res/values-ka-rGE/strings.xml
index 725cd7a6..969f2163 100644
--- a/app/src/main/res/values-ka-rGE/strings.xml
+++ b/app/src/main/res/values-ka-rGE/strings.xml
@@ -117,6 +117,7 @@
ინტერფეისიდამატებითიჩანაწერების შენახვა მოწყობილობაზე
+ Clear offline clips and sentencesაპის მონაცემების გაწმენდაექსპერიმენტული ფუნქციები ჯერ არაა ხელმისაწვდომიწინადადება მაჩვენე კლიპის დაკვრის მერე
@@ -179,6 +180,8 @@
API სერვერის შეცვლადარწმუნებული ხართ, რომ გინდათ API სერვერის შეცვლა? ეს პოტენციურად სახიფათო ქმედებაა.\nპირვანდელ API სერვერზე გადაყვანა ნებისმიერ დროს შეგიძლიათ.API სერვერის მისამართი
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fiწინადადება იტვირთება…გამოტოვება
@@ -360,6 +363,7 @@
დარწმუნებული ხართ, რომ გინდათ გამოტოვოთ და დაკარგოთ ჩანაწერი?დარწმუნებული ხართ, რომ გინდათ გააგრძელოთ და დაკარგოთ ჩანაწერი?დარწმუნებული ხართ, რომ გინდათ აპის მონაცემები საწყის პარამეტრებზე დააყენოთ?
+ Are you sure you want to clear offline data?დიახგაუქმება
diff --git a/app/src/main/res/values-kab/strings.xml b/app/src/main/res/values-kab/strings.xml
index b047e554..8579f69a 100644
--- a/app/src/main/res/values-kab/strings.xml
+++ b/app/src/main/res/values-kab/strings.xml
@@ -117,6 +117,7 @@
Agrudem n useqdacTalqaytSekles iseklas ɣef yibenk
+ Clear offline clips and sentencesWennez isefka n usnasUlac timahilin tirmitanin i yellan akka turaOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiAsali n tefyirt…Zgel
@@ -358,6 +361,7 @@
D tidet tebɣiḍ ad tuɣaleḍ ɣer tzegleḍ, ad tesruḥeḍ asekles?D tidet tebɣiḍ ad tkemmleḍ yerna ad tesruḥeḍ asekles?D tidet tebɣiḍ ad twennzeḍ meṛṛa isefka n usnas?
+ Are you sure you want to clear offline data?IhSefsex
diff --git a/app/src/main/res/values-kk-rKZ/strings.xml b/app/src/main/res/values-kk-rKZ/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-kk-rKZ/strings.xml
+++ b/app/src/main/res/values-kk-rKZ/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-kmr-rTR/strings.xml b/app/src/main/res/values-kmr-rTR/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-kmr-rTR/strings.xml
+++ b/app/src/main/res/values-kmr-rTR/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index 54b45551..22e60fc8 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?네Cancel
diff --git a/app/src/main/res/values-ky-rKG/strings.xml b/app/src/main/res/values-ky-rKG/strings.xml
index 71327bba..2a3c0f48 100644
--- a/app/src/main/res/values-ky-rKG/strings.xml
+++ b/app/src/main/res/values-ky-rKG/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Өткөрүү
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesТоктотуу
diff --git a/app/src/main/res/values-lg-rUG/strings.xml b/app/src/main/res/values-lg-rUG/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-lg-rUG/strings.xml
+++ b/app/src/main/res/values-lg-rUG/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-lt-rLT/strings.xml b/app/src/main/res/values-lt-rLT/strings.xml
index e6a739e3..f79dcc4f 100644
--- a/app/src/main/res/values-lt-rLT/strings.xml
+++ b/app/src/main/res/values-lt-rLT/strings.xml
@@ -117,6 +117,7 @@
Vartotojo sąsajaPapildomiIšsaugokite įrašus telefone
+ Clear offline clips and sentencesIš naujo nustatyti programos duomenisNėra bandomųjų funkcionalumųOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Praleisti
@@ -378,6 +381,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesAtšaukti
diff --git a/app/src/main/res/values-lv-rLV/strings.xml b/app/src/main/res/values-lv-rLV/strings.xml
index de208aa1..79ff77fa 100644
--- a/app/src/main/res/values-lv-rLV/strings.xml
+++ b/app/src/main/res/values-lv-rLV/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -368,6 +371,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-mk-rMK/strings.xml b/app/src/main/res/values-mk-rMK/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-mk-rMK/strings.xml
+++ b/app/src/main/res/values-mk-rMK/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ml-rIN/strings.xml b/app/src/main/res/values-ml-rIN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-ml-rIN/strings.xml
+++ b/app/src/main/res/values-ml-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-mn-rMN/strings.xml b/app/src/main/res/values-mn-rMN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-mn-rMN/strings.xml
+++ b/app/src/main/res/values-mn-rMN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-mr-rIN/strings.xml b/app/src/main/res/values-mr-rIN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-mr-rIN/strings.xml
+++ b/app/src/main/res/values-mr-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-mt-rMT/strings.xml b/app/src/main/res/values-mt-rMT/strings.xml
index 913072eb..7ffa68db 100644
--- a/app/src/main/res/values-mt-rMT/strings.xml
+++ b/app/src/main/res/values-mt-rMT/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -378,6 +381,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ne-rNP/strings.xml b/app/src/main/res/values-ne-rNP/strings.xml
new file mode 100644
index 00000000..0f5adb82
--- /dev/null
+++ b/app/src/main/res/values-ne-rNP/strings.xml
@@ -0,0 +1,399 @@
+
+
+
+
+ en
+
+ Home
+ Dashboard
+ Settings
+
+ Log in / Sign up
+ Log out
+ Profile
+ Hi!
+ Hi, {{username}}!
+ The session-id is expired, you need to log in again
+
+ Statistics
+ Voices online
+ You
+ Everyone
+ Today
+ Ever
+ You have to log in to see your statistics
+ You have to log in to set the daily goal
+ h
+ Hour {{hour}}
+ Top contributors
+ Recorded
+ Validated
+ App statistics
+ Current language
+ All languages
+ Not available in offline mode
+
+ Start
+ Permit
+ Next
+ Try again
+ Finish
+ Skip
+ Permission obtained
+ Error: permission denied
+ CV Project is an unofficial app for Mozilla Common Voice. It\'s developed by Saverio Morelli without any support or partnership with Mozilla.
+ By proceeding, you agree to Mozilla\'s Common Voice Terms of Service.
+ This app needs the \"Microphone\" permission to record your voice.
+ You can report bugs on GitHub or Telegram. To help the developer understand the issue quickly, you should attach the app\'s log file to your report. The app needs the \"Storage\" permission to save the log file.
+ You can even contribute while you are offline. The app\'s \"Offline mode\" will be enabled automatically, and you can continue to record and listen without an Internet connection.
+ Choose your preferred theme. \"Auto\" toggles the theme based on the current time. You can change this later in Settings.
+ Dark theme
+ Some actions have corresponding gestures. For example, you can skip a sentence in Speak by swiping left.
+ You can customise these gestures in Settings.
+ You can join the Telegram group to get news and support.
+ Join group
+ Let\'s go! Choose which language you\'d like to speak or listen in. The app will also be shown in that language if a translation is available.
+
+ Loading…
+ Username
+ Email
+ Age
+ Gender
+ To modify your profile information, go to the Common Voice website.
+ Login successful!
+ Male
+ Female
+ Other
+ All badges
+ Level {{level}}
+ I have already a verification link
+ Verification link
+ The verification link is not valid
+
+ Reopen tutorial
+ Project open-source on GitHub
+ developed by
+ Language successfully set to {{lang}}
+ Language
+ Listen
+ Speak
+ Other
+ General
+ Useful links
+ Learn more
+ Light
+ Dark
+ Auto
+ Support my work. Buy me a coffee 😄
+ Auto-play clip when it\'s loaded
+ Dark theme
+ Contact the developer on Telegram
+ Experimental features
+ Experimental features turned on.\nNew features could be unstable and unsafe.
+ Save logs to a file
+ Saving logs to a file turned on.\nYou can attach the log.txt file when you report an issue.\nRead more on GitHub.
+ Generic statistics
+ Show the string which identifies me inside the app
+ App usage statistics
+ Skip recording confirmation
+ Skip recording confirmation turned on.\nYou will now be able to send recordings without having to listen to them first.
+ Translate the app on Crowdin
+ See app statistics
+ Recording indicator sound
+ Recording indicator sound is now turned on.\nA sound will play when you start and stop recording.
+ Check for updates
+ Gestures
+ Please, if you like this app, remember to review it on Google Play Store.
+ The app is not (completely) translated in this language.\nYou can contribute to translate the app on Crowdin.
+ Animations
+ Customise the font size
+ Customise gestures
+ Theme
+ Telegram group of the app
+ Show labels below the menu icons
+ Read the Mozilla Common Voice Terms of Service
+ Read the contribution criteria
+ Review on Google Play
+ User Interface
+ Advanced
+ Save recordings on device
+ Clear offline clips and sentences
+ Reset app data
+ No experimental features are now available
+ Only show the sentence text once the clip has completed playing
+ Show report icon (top-right) instead of button (bottom)
+ Text size
+ Ad banner
+ Enable ads-banner in {{section_name}}
+ Coloured dailygoal progress bar
+ {{speak_name}} and {{listen_name}}
+ Light theme also for the sentence to read/to validate in Speak and Listen (when the light theme is turned on).
+ Show speed control bar
+ Show info icon
+ Push to talk
+ Choose the number of sentences and the number of clips to download and use when the app is in offline mode.
+ Usually users take about 13 minutes to validate 50 clips and 26 minutes to record 50 sentences.
+ Swipe up
+ Swipe down
+ Swipe left
+ Swipe right
+ Long press
+ Double tap
+ Swipe up: {{feature_enabled}}
+ Swipe down: {{feature_enabled}}
+ Swipe left: {{feature_enabled}}
+ Swipe right: {{feature_enabled}}
+ Long press: {{feature_enabled}}
+ Double tap: {{feature_enabled}}
+ Nothing
+ Go back
+ Skip the clip
+ Skip the sentence
+ Accept the clip (mark as correct)
+ Reject the clip (mark as incorrect)
+ Enable/Disable \"{{feature}}\"
+ Report the clip
+ Report the sentence
+ Show information about the clip
+ Show information about the sentence
+ Play/Stop clip
+ Start/Stop recording
+ Play/Stop recording
+ Save
+ Choose an action
+ Show contribution criteria icon
+ Upload using Wi-Fi only
+ Download using Wi-Fi only
+ Generic notifications
+ Daily goal notifications
+ Notifications
+ Please don\'t forget to contribute to Common Voice today, your contribution is valuable and important!\nTap here to open the app and work towards your daily goal now.
+ CV Project daily goal not reached yet!
+ Choose when you wish to be notified in case your daily goal has not been reached.
+ Please note that this might not be exact or might not be work at all due to battery optimisation settings.
+ First alert
+ Second alert
+ None
+ Statistics
+ Destination API server
+ Reset to the default API server
+ Customise API server
+ Are you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.
+ Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fi
+
+ Loading sentence…
+ Skip
+ Send recording
+ Loading clip…
+ Press the icon below to start recording.
+ Press the icon below to stop recording.
+ Sentence recorded. Listen to the recording.
+ Recording failed. Please try again.
+ If you spoke correctly, send the recording.\nIf you misspoke, you can record the sentence again.
+ Listen to the whole recording to make sure it\'s correct.
+ Press the icon below to stop listening.
+ Recording is too long. Max duration is 10 seconds.
+ Recording is too short. Please, try again.
+ Sending the recording…
+ Recording sent!
+ Failed to send recording!
+ Failed to send recording! You can either try again, or press the {{skip_button}} button.
+ Press the icon below to start the clip.
+ Press the icon below to stop the clip.
+ If the clip is correct, press the thumbs up.\nIf the clip is wrong, press the thumbs down.
+ Press the icon below to play the clip again.
+ Clip marked as correct!
+ Clip marked as incorrect!
+ Error. Press the {{skip_button}} button to continue.
+ Failed to send the recording.
+ Sending…
+ Failed to send the result. You can either try again, or press the {{skip_button}} button.
+ Closing…
+ Error. There are no more available clips for this language.
+ Report
+ Report clip:
+ Report sentence:
+ Send report
+ Offensive language
+ Offensive speech
+ Grammatical / spelling error
+ Different language
+ Difficult to pronounce
+ Other
+ Comment
+ You have run out of offline sentences. Connect to the Internet to download more sentences to record.
+ You have run out of offline clips. Connect to the Internet to download more clips to validate.
+ You can record {{n_sentences}} more sentences before you need to connect to the Internet.
+ You can validate {{n_clips}} more clips before you need to connect to the Internet.
+ Listening…
+ \"{{feature_name}}\" is enabled. Go to Settings to disable it.
+ The sentence text is hidden
+ The Common Voice API server did not provide any more sentences. Try later or contact Mozilla.
+ The Common Voice API server did not provide any more clips. Try later or contact Mozilla.
+
+ You have already validated %d clip in a row, continue this amazing work!
+ You have already validated %d clips in a row, continue this amazing work!
+
+
+ Continue to validate clips, you validated %d clip in a row.
+ Continue to validate clips, you validated %d clips in a row.
+
+
+ Excellent work! You have already validated %d clip in a row.
+ Excellent work! You have already validated %d clips in a row.
+
+
+ Wow, you have superhuman powers! You validated %d clip in a row!
+ Wow, you have superhuman powers! You validated %d clips in a row!
+
+
+ You sent %d recording in a row.
+ You sent %d recordings in a row.
+
+
+ Good job! You sent %d recording in a row.
+ Good job! You sent %d recordings in a row.
+
+
+ Congratulations! You achieved the milestone of %d recorded sentence. Keep going.
+ Congratulations! You achieved the milestone of %d recorded sentences. Keep going.
+
+
+ Wow, you have superhuman powers! You recorded %d sentence in a row!
+ Wow, you have superhuman powers! You recorded %d sentences in a row!
+
+
+ You miss only %d clip to achieve your daily goal of {{dailygoal}}!
+ You miss only %d clips to achieve your daily goal of {{dailygoal}}!
+
+
+ You miss only %d sentence to achieve your daily goal of {{dailygoal}}!
+ You miss only %d sentences to achieve your daily goal of {{dailygoal}}!
+
+ Speed successfully set to {{speed_value}}.
+
+ Reject clip
+ Accept clip
+ Play clip
+ Stop clip
+ Start recording
+ Record again the sentence
+ Stop recording
+ Play recording
+ Stop listening
+ Send recording
+ Read contribution criteria
+ See offline mode details
+ See information about the current clip
+ See information about the current sentence
+ Report the current clip
+ Report the current sentence
+ Open Listen section
+ Open Speak section
+ Go back
+ Enable/Disable
+ Close message
+ Copy
+ Increase
+ Decrease
+
+ Check again
+ You aren\'t connected to the internet. Connect to Wi-Fi or mobile data, then press the button below.
+
+ This is the sentence you must record.
+ A message to guide you will appear here.
+ If you don\'t like the sentence, you can tap here to skip and get another one.
+ Tap on this icon to start recording.
+ Tap on this icon to stop recording.
+ Tap on this icon to play back your recording.
+ Tap on this icon to re-record if you made a mistake.
+ Tap on this icon to play back your recording again.
+ Tap on this button to send your recording.
+ This is the sentence/clip you must validate.
+ If you don\'t like the clip, you can tap on this button to skip and get another one.
+ Tap on this icon to play the clip.
+ Tap on this icon to stop playing the clip.
+ Tap on this icon if you want to listen to the clip again.
+ If the clip matches the sentence, tap on this icon to accept it.
+ If the clip doesn\'t match the sentence, tap on this icon to reject it.
+ If you\'re not sure whether to accept or reject a recording, or you want to improve your recordings, you can read the official contribution criteria.\nYou also can find this link later in Settings > Useful links.
+ Read now
+
+ Sorry, this feature doesn\'t exist yet.\nWe\'re working constantly to improve the app, so check back later to see if it\'s been added.
+
+ Close
+ All badges
+ New badge earnt
+ New level achieved
+ Hooray! You have just earned a new badge.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ Congrats! You have just achieved a new level and you earnt a new badge as well.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ You got this badge because you validated at least {{n_clips}} clips.
+ You got this badge because you recorded at least {{n_sentences}} sentences.
+ You got this badge because you validated or recorded at least {{n_total}} clips.
+
+ OK
+ Error
+ That didn\'t work.\nPlease try again, or contact the developer.
+ That didn\'t work. Please try again, or contact the developer.\nError code: EX-{{error_code}}
+ Login failed
+ You must first log in on the Common Voice website and accept the Common Voice privacy policy.
+ Open Common Voice
+ Warning
+ Tip
+ Changelog
+ Help
+ Info
+ Do not show anymore
+ If you have issues with the official Common Voice website, please report them on Mozilla Discourse forums or GitHub repository so that Mozilla can fix them.
+ Review now
+ Do you like the app? You can support my work. Buy me a coffee on PayPal or LiberaPay.
+ Log in again
+ Offline mode
+ You are now offline and the app switched to offline mode automatically.\nThis means you can continue to record and validate, but the requests will be sent later.
+ You can tell when you are in offline mode by looking for this icon on the screen:
+ You can tap that icon to see downloaded clips and sentences.
+ The Offline mode is not enabled, so you can\'t use the app without an Internet connection.\nTo use the Offline mode feature, turn on it in Settings.
+ Do you know you can support my work freely? Please, if you like the app, consider to turn on ad banners in Settings.
+ Open Settings now
+ Are you sure you want to go back and lose the recording?
+ Are you sure you want to skip and lose the recording?
+ Are you sure you want to continue and lose the recording?
+ Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?
+ Yes
+ Cancel
+
+ Well done! You opened the app %d day in a row.
+ Well done! You opened the app %d days in a row.
+
+
+ I\'ve opened the CV Project app %d day in a row! Download it too, so you can contribute to the Common Voice project with your smartphone.
+ I\'ve opened the CV Project app %d days in a row! Download it too, so you can contribute to the Common Voice project with your smartphone.
+
+ Log in now
+ Open Profile now
+ Translate now
+
+ Daily goal
+ No goal set
+ Set a goal
+ Edit goal
+ Save
+ Delete
+ Cancel
+ Choose how many sentences you want to record and clips you want to validate (sum of them) per day.
+ Achieved today
+ Not achieved today
+ Well done! You achieved your daily goal.\nYou validated {{n_clips}} clip(s) and recorded {{n_sentences}} sentence(s).\nFeel free to continue contributing to Common Voice.
+ Share
+ Share on
+ I\'ve just achieved my daily goal for @mozilla #CommonVoice using #CVProject.\nJoin in and contribute! Install CV Project from Google Play, F-Droid or Huawei AppGallery now {{link}}
+ This daily goal isn\'t an official Mozilla feature. It\'s only a feature of this app.
+ Did you know that … ?
+ 10,000 hours is achievable in just over 6 months if 1,000 people record 45 clips a day.
+ Copied
+
+ A new version of the app is available (release {{n_version}}). You can update it from your favourite store (F-Droid, Google Play, Huawei AppGallery, Amazon AppStore) or directly from GitHub.
+
diff --git a/app/src/main/res/values-nl-rNL/strings.xml b/app/src/main/res/values-nl-rNL/strings.xml
index 4e78ca9c..bf0bd18a 100644
--- a/app/src/main/res/values-nl-rNL/strings.xml
+++ b/app/src/main/res/values-nl-rNL/strings.xml
@@ -117,6 +117,7 @@
GebruikersinterfaceGeavanceerdOpnames op apparaat opslaan
+ Clear offline clips and sentencesAppgegevens herinitialiserenEr zijn momenteel geen experimentele functies beschikbaarZintekst pas tonen als het fragment volledig is afgespeeld
@@ -179,6 +180,8 @@
API-server aanpassenWeet u zeker dat u de API-server wilt aanpassen? Dit kan een gevaarlijke actie zijn.\nU kunt op elk gewenst moment naar de standaard API-server terugzetten.Doel-API-server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiZin laden…Overslaan
@@ -358,6 +361,7 @@
Weet u zeker dat u wilt overslaan en de opname wilt verwijderen?Weet u zeker dat u door wilt gaan en de opname wilt verwijderen?Weet u zeker dat u alle app-gegevens wilt resetten?
+ Are you sure you want to clear offline data?JaAnnuleren
diff --git a/app/src/main/res/values-nn-rNO/strings.xml b/app/src/main/res/values-nn-rNO/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-nn-rNO/strings.xml
+++ b/app/src/main/res/values-nn-rNO/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-or-rIN/strings.xml b/app/src/main/res/values-or-rIN/strings.xml
index 09994320..5a01314f 100644
--- a/app/src/main/res/values-or-rIN/strings.xml
+++ b/app/src/main/res/values-or-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceବିକଶିତSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…ବାଦ୍ ଦିଅ
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?ହଁବାତିଲ୍ କର
diff --git a/app/src/main/res/values-pa-rIN/strings.xml b/app/src/main/res/values-pa-rIN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-pa-rIN/strings.xml
+++ b/app/src/main/res/values-pa-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-pl-rPL/strings.xml b/app/src/main/res/values-pl-rPL/strings.xml
index f40db0f9..03c10537 100644
--- a/app/src/main/res/values-pl-rPL/strings.xml
+++ b/app/src/main/res/values-pl-rPL/strings.xml
@@ -117,6 +117,7 @@
InterfejsZaawansowaneZapisuj nagrania na urządzeniu
+ Clear offline clips and sentencesWyczyść dane aplikacjiBrak dostępnych funkcji eksperymentalnychPokaż tekst zdania tylko wtedy, gdy klip zakończy odtwarzanie
@@ -179,6 +180,8 @@
Dostosuj serwer APICzy na pewno chcesz dostosować serwer API? To potencjalnie niebezpieczne działanie.\nMożesz zresetować do domyślnego serwera API w każdej chwili.Docelowy serwer API
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiŁadowanie zdania…Pomiń
@@ -378,6 +381,7 @@
Czy na pewno chcesz pominąć i stracić nagranie?Czy na pewno chcesz kontynuować i stracić nagranie?Czy na pewno chcesz zresetować wszystkie dane aplikacji?
+ Are you sure you want to clear offline data?TakAnuluj
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index bc05d8b1..ee6e79ab 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -117,6 +117,7 @@
Interface de usuárioAvançadoSalvar as gravações no dispositivo
+ Limpar clipes e frases offlineRedefinir dados do aplicativoNenhuma funcionalidade experimental está agora disponívelMostrar o texto da frase somente quando a reprodução do clipe for concluída
@@ -179,6 +180,8 @@
Personalizar o servidor de APITem certeza que deseja personalizar o servidor de API? Esta é potencialmente uma ação perigosa.\nVocê pode redefinir para o servidor de API padrão a qualquer momento.Servidor de API de destino
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiCarregando frase…Ignorar
@@ -358,6 +361,7 @@
Tem certeza de que deseja pular e perder a gravação?Tem certeza de que deseja continuar e perder a gravação?Tem certeza de que deseja redefinir todos os dados do aplicativo?
+ Tem certeza de que deseja limpar os dados offline de usuário?SimCancelar
diff --git a/app/src/main/res/values-ro-rRO/strings.xml b/app/src/main/res/values-ro-rRO/strings.xml
index ea4ecd4f..234396f2 100644
--- a/app/src/main/res/values-ro-rRO/strings.xml
+++ b/app/src/main/res/values-ro-rRO/strings.xml
@@ -117,6 +117,7 @@
Interfață utilizatorAvansatSalvați înregistrările pe dispozitiv
+ Clear offline clips and sentencesResetează datele aplicațieiMomentan nu există funcții experimentaleOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiSe încarcă propoziția…Omitere
@@ -368,6 +371,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?DaAnulează
diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml
index 8dea0f64..e2fc23a7 100644
--- a/app/src/main/res/values-ru-rRU/strings.xml
+++ b/app/src/main/res/values-ru-rRU/strings.xml
@@ -117,6 +117,7 @@
Интерфейс пользователяДополнительноСохранить записи на устройстве
+ Clear offline clips and sentencesСброс данных приложенияВ настоящее время экспериментальные функции недоступныOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiЗагрузка предложения…Пропустить
@@ -378,6 +381,7 @@
Вы уверены, что хотите пропустить и потерять запись?Are you sure you want to continue and lose the recording?Вы уверены, что хотите сбросить все данные приложения?
+ Are you sure you want to clear offline data?ДаОтмена
diff --git a/app/src/main/res/values-sat-rIN/strings.xml b/app/src/main/res/values-sat-rIN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-sat-rIN/strings.xml
+++ b/app/src/main/res/values-sat-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-sc-rIT/strings.xml b/app/src/main/res/values-sc-rIT/strings.xml
new file mode 100644
index 00000000..ca93df59
--- /dev/null
+++ b/app/src/main/res/values-sc-rIT/strings.xml
@@ -0,0 +1,399 @@
+
+
+
+
+ sc
+
+ Pàgina printzipale
+ Pannellu de controllu
+ Cunfiguratziones
+
+ Intra /Registra·ti
+ Essi
+ Profilu
+ Salude!
+ Salude, {{username}}!
+ S\'id de sa sessione est iscadidu, depes torrare a intrare
+
+ Istatìsticas
+ Boghes in lìnia
+ Tue
+ Totus
+ Oe
+ Totale
+ Depes intrare pro bìdere sas istatìsticas tuas
+ Depes intrare pro impostare s\'obietivu pro sa die
+ o
+ Ora {{hour}}
+ Contribuidores prus mannos
+ Registradu
+ Cunvalidadas
+ Istatìsticas de s\'aplicatzione
+ Limba atuale
+ Totu sas limbas
+ No a disponimentu in sa modalidade chene lìnia
+
+ Incumintza
+ Permite
+ Imbeniente
+ Torra a proare
+ Agabba
+ Brinca
+ Permissu otènnidu
+ Errore: permissu dennegadu
+ CV Project est un\'aplicatzione no ufitziale pro Mozilla Common Voice. Est isvilupada dae Saverio Morelli chene perunu suportu o partenariadu cun Mozilla.
+ Sighende atzetas sos Tèrmines de Impreu de Common Voice de Mozilla.
+ Custa aplicatzione tenent bisòngiu de su permissu \"micròfonu\" pro registrare sa boghe tua.
+ Podes sinnalare faddinas in su còdighe in GitHub o Telegram. Pro agiudare a s\'isvilupadore a cumprèndere su problema prus in presse dias dèpere alligare su documentu de su registru de s\'aplicatzione a s\'informe tuo. S\'aplicatzione tenet bisòngiu de su permissu \"Archiviatzione\" pro sarvare su documentu de registru.
+ Podes fintzas contribuire cando non ses in lìnia. Sa \"modalidade non in lìnia\" s\'at a abilitare in automàticu, e as a pòdere sighire a registrare e ascurtare chene una connessione a ìnternet.
+ Issèbera su tema preferidu tuo. \"Automàticu\" mudat su tema cunforma a s\'ora de su momentu. Podes mudare custu issèberu a pustis in sas Cunfiguratziones.
+ Tema iscuru
+ Unas cantas optziones tenent gestos chi li currispondent. A esèmpiu, podes brincare una frase in Chistiona trisinende cara a manca.
+ Podes personalizare custos gestos in sas Cunfiguratziones.
+ Ti podes aunire a su grupu de Telegram pro retzire novas e suportu.
+ Auni·ti a su grupu
+ Ajò! Issèbera in ite limba dias bòlere chistionare o ascurtare. S\'aplicatzione at a èssere fintzas ammustrada in cussa limba si b\'at una tradutzione a disponimentu.
+
+ Carrighende…
+ Nùmene de utente
+ Posta eletrònica
+ Edade
+ Gènere
+ Pro mudare sas informatziones tuas de profilu bae a su situ de Common Voice.
+ Ses intradu!
+ Òmine
+ Fèmina
+ Àteru
+ Totu sos distintivos
+ Livellu {{level}}
+ Tèngio giai unu ligàmene de verìfica
+ Ligàmene de verìfica
+ Su ligàmene de verìfica no est vàlidu
+
+ Torra a abèrrere sa ghia
+ Progetu a còdighe abertu in GitHub
+ isvilupadu dae
+ Limba impostada in {{lang}}
+ Limba
+ Ascurta
+ Chistiona
+ Àteru
+ Generale
+ Ligàmenes ùtiles
+ Àteras informatziones
+ Craru
+ Iscuru
+ Automàticu
+ Suporta su traballu meu. Cumbida·mi unu cafè 😄
+ Reprodue in automàticu cando est carrigada
+ Tema iscuru
+ Cuntata s\'isvilupadore in Telegram
+ Funtzionalidades isperimentales
+ Funtzionalidades isperimentales allutas.\nSas funtzionalidades noas diant pòdere no èssere istàbiles o seguras.
+ Sarva sos registros in un\'archìviu
+ Su sarvamentu de sos registros a intro de un\'archìviu est allutu.\nPodes alligare su documentu log.txt cando sinnalas unu problema.\nAgata àteras informatziones in GitHub.
+ Istatìsticas generales
+ Ammustra s\'istringa chi m\'identìficat a intro de s\'aplicatzione
+ Istatìsticas de impreu de s\'aplicatzione
+ Brinca sa cunfirma de registratzione
+ Su brincu de sa cunfirma de sa registratzione est allutu.\nComo as a pòdere imbiare registratziones chene las dèpere ascurtare in antis.
+ Borta s\'aplicatzione in Crowdin
+ Pòmpia·ti sas istatìsticas de s\'aplicatzione
+ Indicadore sonoru de registratzione
+ So sonu de s\'indicadore de registratzione como est allutu.\nCando faghes incumintzare o firmas una registratzione s\'at a intèndere unu sonu.
+ Chirca atualizatziones
+ Gestos
+ Si t\'agradat custa aplicatzione ammenta·ti de li dare una valutatzione in su Google Play Store.
+ S\'aplicatzione no est bortada (de su totu) in custa limba.\nPodes contribuire a bortare custa aplicatzione in Crowdin.
+ Animatziones
+ Personaliza sa mannària de su caràtere
+ Personaliza sos gestos
+ Tema
+ Grupu de Telegram de s\'aplicatzione
+ Ammustra sas etichetas in suta de sas iconas de su menù
+ Leghe sos Tèrmines de Impreu de Common Voice de Mozilla
+ Leghe sos critèrios de contributzione
+ Vàluta in Google Play
+ Interfache de s\'utente
+ Avantzadas
+ Sarva sas registratziones in su dispositivu
+ Clear offline clips and sentences
+ Reseta sos datos de s\'aplicatzione
+ Non b\'at peruna funtzionalidade isperimentale a disponimentu
+ Ammustra su testu de sa frase petzi a pustis chi sa riprodutzione de sa registratzione siat agabbada
+ Ammustra s\'icona de sinnalatzione (a pitzos a dereta) in càmbiu de su butone (in bassu)
+ Mannària de su testu
+ Insigna de sa publitzidade
+ Abìlita s\'insigna de sa publitzidade in {{section_name}}
+ Istanga colorada de progressu conca a s\'obietivu
+ {{speak_name}} e {{listen_name}}
+ Tema craru fintzas pro sa frase de lèghere/de cunvalidare in Chistiona e Ascurta (cando su tema craru est allutu).
+ Ammustra s\'istanga de controllu de sa velotzidade
+ Ammustra s\'icona de sas informatziones
+ Incarca pro chistionare
+ Issèbera su nùmeru de frases e su nùmeru de registratziones de iscarrigare e impreare cando s\'aplicatzione est in modalidade non in lìnia.
+ A su sòlitu sos utentes impreant pagu prus o mancu 13 minutos pro cunvalidare 50 registratziones e 26 minutos pro registrare 50 frases.
+ Trìsina cara a artu
+ Trìsina cara a bassu
+ Trìsina cara a manca
+ Trìsina cara a dereta
+ Incarca a longu
+ Tocu dòpiu
+ Trisinada cara a artu: {{feature_enabled}}
+ Trisinada cara a bassu: {{feature_enabled}}
+ Trisinada cara a manca: {{feature_enabled}}
+ Trisinada cara a dereta: {{feature_enabled}}
+ Incarcada longa: {{feature_enabled}}
+ Tocu dòpiu: {{feature_enabled}}
+ Nudda
+ Torra a segus
+ Brinca sa registratzione
+ Brinca sa frase
+ Atzeta sa registratzione (marca che a curreta)
+ Refuda sa registratzione (marca che a non curreta)
+ Abìlita/Inabìlita \"{{feature}}\"
+ Sinnala sa registratzione
+ Sinnala sa frase
+ Ammustra informatziones subra de sa registratzione
+ Ammustra informatziones subra de sa frase
+ Reprodue/Firma sa registratzione
+ Incumintza/Firma sa registratzione
+ Reprodue/Firma sa registratzione
+ Sarva
+ Issèbera un\'atzione
+ Ammustra s\'icona de sos critèrios de contributzione
+ Càrriga impreende petzi su Wi-Fi
+ Iscàrriga impreende petzi su Wi-Fi
+ Notìficas genèricas
+ Notìficas de obietivu diàriu
+ Notìficas
+ Non t\'ismèntighes de contribuire a Common Voice oe, sa contributzione tua est pretziada e de importu!\nToca inoghe pro abèrrere s\'aplicatzione e traballare como cara a s\'obietivu diàriu tuo.
+ Obietivu diàriu de CV Project galu non retzidu!
+ Issèbera cando boles retzire notìficas s\'in casu chi non nche sias cròmpidu a s\'obietivu diàriu tuo.
+ Tene in contu chi custu diat pòdere no èssere esatu o diat pòdere non funtzionare pro neghe de sas impostatziones de otimizatzione de sa bateria.
+ Primu avisu
+ Segundu avisu
+ Perunu
+ Istatìsticas
+ Serbidore API de destinatzione
+ Torra a su serbidore API predefinidu
+ Personaliza su serbidore API
+ Ses seguru chi cheres personalizare su serbidore API? Custa atzione diat pòdere èssere perigulosa.\nPodes torrare a su serbidore API predefinidu in cale si siat momentu.
+ Serbidore API de destinatzione
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fi
+
+ Carrighende sa frase…
+ Brinca
+ Imbia sa registratzione
+ Carrighende una registratzione…
+ Incarca s\'icona inoghe in suta pro incumintzare a registrare.
+ Incarca s\'icona inoghe in suta pro agabbare de registrare.
+ Frase registrada. Ascurta·ti sa registratzione.
+ Registratzione fallida. Torra a proare.
+ Si as chistionadu chene errores imbia sa registratzione.\nSi as faddidu, podes torrare a registrare sa frase.
+ Ascurta sa registratzione intrea pro t\'assegurare chi siat curreta.
+ Incarca s\'icona inoghe in suta pro agabbare de ascurtare.
+ Sa registratzione est tropu longa. Sa longària màssima est de 10 segundos.
+ Sa registratzione est tropu curtza. Torra a proare.
+ Imbiende sa registratzione…
+ Registratzione imbiada!
+ Imbiu de sa registratzione fallidu!
+ Imbiu de sa registratzione fallidu! Podes torrare a proare o incarcare su butone {{skip_button}}.
+ Incarca s\'icona inoghe in suta pro incumintzare a reproduere sa registratzione.
+ Incarca s\'icona inoghe in suta pro firmare sa riprodutzione de sa registratzione.
+ Si sa registratzione est curreta incarca su pòddighe a susu.\nSi est isballiada incarca su pòddighe a giosso.
+ Incarca s\'icona inoghe in suta pro reproduere torra sa registratzione.
+ Registratzione marcada che a curreta!
+ Registratzione marcada che a non curreta!
+ Errore. Incarca su butone {{skip_button}} pro sighire.
+ Imbiu de sa registratzione fallidu.
+ Imbiende…
+ Imbiu de su resurtu fallidu. Podes torrare a proare o incarcare su butone {{skip_button}}.
+ Serrende…
+ Errore. Non bi sunt prus registratziones a disponimentu pro custa limba.
+ Sinnala
+ Sinnala sa registratzione:
+ Sinnala sa frase:
+ Imbia un\'informe
+ Limbàgiu ofensivu
+ Cuntenutu ofensivu
+ Faddina grammaticale/ortogràfica
+ Limba diferente
+ Difìtzile de pronuntziare
+ Àteru
+ Cummentu
+ As agabbadu sas frases non in lìnia. Collega·ti a ìnternet pro iscarrigare àteras frases de registrare.
+ As agabbadu sas registratziones non in lìnia. Collega·ti a ìnternet pro iscarrigare àteras registratziones de cunvalidare.
+ Podes registrare àteras {{n_sentences}} frases in antis de ti dèpere connètere a ìnternet.
+ Podes cunvalidare àteras {{n_clips}} registratziones in antis de ti dèpere connètere a ìnternet.
+ Ascurtende…
+ \"{{feature_name}}\" est abilitadu. Bae a sas Cunfiguratziones pro lu disabilitare.
+ Su testu de sa frase est cuadu
+ Su serbidore API de Common Voice no at frunidu àteras frases. Torra a proare prus a tardu o cuntata a Mozilla.
+ Su serbidore API de Common Voice no at frunidu àteras registratziones. Torra a proare prus a tardu o cuntata a Mozilla.
+
+ As giai cunvalidadu %d registratzione, sighi cun custu traballu de primore!
+ As giai cunvalidadu %d registratziones una in fatu a s\'àtera, sighi cun custu traballu de primore!
+
+
+ Sighi a cunvalidare registratziones, nd\'as giai cunvalidada %d.
+ Sighi a cunvalidare registratziones, nd\'as giai cunvalidadas %d una in fatu a s\'àtera.
+
+
+ Ite traballu de primore! As giai cunvalidadu %d registratzione.
+ Ite traballu de primore! As giai cunvalidadu %d registratziones una in fatu a s\'àtera.
+
+
+ Raju, tenes superpoderes! As cunvalidadu %d registratzione!
+ Raju, tenes superpoderes! As cunvalidadu %d registratziones una in fatu a s\'àtera!
+
+
+ As imbiadu %d registratzione.
+ As imbiadu %d registratziones una in fatu a s\'àtera.
+
+
+ Bene fatu! As imbiadu %d registratzione.
+ Bene fatu! As imbiadu %d registratziones una in fatu a s\'àtera.
+
+
+ Bene meda! Ses arribbadu a s\'obietivu de %d frase registrada. Sighi a andare.
+ Bene meda! Ses arribbadu a s\'obietivu de %d frases registradas. Sighi a andare.
+
+
+ Raju, tenes superpoderes! As registradu %d frase!
+ Raju, tenes superpoderes! As registradu %d frases una in fatu a s\'àtera!
+
+
+ Ti mancat petzi %d registratzione pro arribbare a s\'obietivu diàriu tuo de {{dailygoal}}!
+ Ti mancant petzi %d registratziones pro arribbare a s\'obietivu diàriu tuo de {{dailygoal}}!
+
+
+ Ti mancat petzi %d frase pro arribbare a s\'obietivu diàriu tuo de {{dailygoal}}!
+ Ti mancant petzi %d registratziones pro arribbare a s\'obietivu diàriu tuo de {{dailygoal}}!
+
+ Velotzidade impostada a {{speed_value}}.
+
+ Refuda sa registratzione
+ Atzeta sa registratzione
+ Reprodue sa registratzione
+ Firma sa registratzione
+ Cumintza sa registratzione
+ Torra a registrare sa frase
+ Firma sa registratzione
+ Reprodue sa registratzione
+ Agabba·la de ascurtare
+ Imbia sa registratzione
+ Leghe sos critèrios de contributzione
+ Ammustra sos detàllios de sa modalidade non in lìnia
+ Pòmpia sas informatziones subra de sa registratzione atuale
+ Pòmpia sas informatziones subra de sa frase atuale
+ Sinnala sa registratzione atuale
+ Sinnala sa frase atuale
+ Aberi sa setzione Ascurta
+ Aberi sa setzione Chistiona
+ Torra a segus
+ Abìlita/Disabìlita
+ Serra su messàgiu
+ Còpia
+ Ismànnia
+ Mìnima
+
+ Torra a verificare
+ Non ses connessu a ìnternet. Collega·ti a su Wi-Fi o a sos datos mòbiles e a pustis incarca su butone inoghe in suta.
+
+ Custa est sa frase chi depes registrare.
+ Unu messàgiu pro ti ghiare at a apàrrere inoghe.
+ Si non t\'agradat sa frase podes tocare inoghe pro la brincare e nde retzire un\'àtera.
+ Toca in custa icona pro incumintzare a registrare.
+ Toca in custa icona pro firmare sa registratzione.
+ Toca in custa icona pro reprodùere sa registratzione.
+ Toca in custa icona pro torrare a registrare si as fatu una faddina.
+ Toca in custa icona pro torrare a ascurtare sa registratzione tua.
+ Toca in custu butone pro imbiare sa registratzione tua.
+ Custa est sa frase/registratzione chi depes cunvalidare.
+ Si non t\'agradat sa registratzione podes tocare inoghe pro la brincare e nde retzire un\'àtera.
+ Toca in custa icona pro reprodùere sa registratzione.
+ Toca in custa icona pro firmare sa riprodutzione de sa registratzione.
+ Toca in custa icona si cheres torrare a ascurtare sa registratzione.
+ Si sa registratzione e sa frase currispondent toca in custa icona pro l\'atzetare.
+ Si sa registratzione e sa frase non currispondent toca in custa icona pro la refudare.
+ Si non ses seguru si siat su casu de atzetare o refudare una registratzione, o cheres megiorare sas registratziones tuas, podes lèghere sos critèrios ufitziales de contributzione.\nPodes fintzas agatare custu ligàmene a pustis in sas Cunfiguratziones > Ligàmenes ùtiles.
+ Leghe como
+
+ A dolu mannu custa funtzionalidade galu no esistit.\nSemus traballende totora pro megiorare s\'aplicatzione, duncas torra a verificare prus a tardu pro bìdere si est istada annanta.
+
+ Serra
+ Totu sos distintivos
+ Distintivu nou balangiadu
+ Livellu nou cunsighidu
+ Bene meda! As otènnidu como como unu distintivu nou.\nBae a {{profile}} > {{all_badges}} pro bìdere totu sos distintivos tuos.
+ Bene meda! Como ses arribbadu a unu livellu nou e as fintzas otènnidu unu distintivu nou.\nBae a {{profile}} > {{all_badges}} pro bìdere totu sos distintivos tuos.
+ As otènnidu custu distintivu ca as cunvalidadu a su nessi {{n_clips}} registratziones.
+ As otènnidu custu distintivu ca as registradu a su nessi {{n_sentences}} frases.
+ As otènnidu custu distintivu ca as cunvalidadu o registradu a su nessi {{n_total}} registratziones.
+
+ Ab
+ Errore
+ Cussu no at funtzionadu.\nTorra a proare o cuntata s\'isvilupadore.
+ Cussu no at funtzionadu.\nTorra a proare o cuntata s\'isvilupadore.\nCòdighe de errore: EX-{{error_code}}
+ Intrada fallida
+ In antis ti depes autenticare in su situ de Common Voice e depes atzetare sa normativa de riservadesa de Common Voice.
+ Aberi Common Voice
+ Avisu
+ Impòsitu
+ Registru de sas modìficas
+ Agiudu
+ Informatziones
+ No ammustres prus
+ Si tenes problemas cun su situ ufitziale de Common Voice sinnala·los in sos forums de Discourse o in su depòsitu de GitHub de Mozilla in manera chi Mozilla los potzat risòlvere.
+ Vàluta como
+ T\'agradat s\'aplicatzione? Podes dare su suportu tuo a su traballu meu. Cumbida·mi unu cafè in PayPal o LiberaPay.
+ Torra a intrare
+ Modalidade chene lìnia
+ Como non ses in lìnia e s\'aplicatzione est colada a sa modalidade chene lìnia in automàticu.\nCustu cheret nàrrere chi podes sighire a registrare e cunvalidare ma sas rechesta ant a èssere imbiadas prus a tardu.
+ Podes ischire cando ses in sa modalidade chene lìnia cando b\'est custa icona in s\'ischermu:
+ Podes tocare cussa icona pro bìdere sas registratziones e sas frases iscarrigadas.
+ Sa modalidade chene lìnia no est abilitada, duncas non podes impreare s\'aplicatzione chene una connessione a ìnternet.\nPro impreare sa funtzionalidade de modalidade chene lìnia allughe·la in sas Cunfiguratziones.
+ A l\'ischis chi podes agiudare su traballu meu chene pagare nudda? Si t\'agradat s\'aplicatzione piga in cunsideru s\'idea de allùghere sas istangas de sa publitzidade in sas Cunfiguratziones.
+ Aberi sas cunfiguratziones como
+ Ses seguru de chèrrere torrare in segus e pèrdere sa registratzione?
+ Ses seguru de chèrrere brincare e pèrdere sa registratzione?
+ Ses seguru de chèrrere sighire e pèrdere sa registratzione?
+ Ses seguru de chèrrere resetare totu sos datos de s\'aplicatzione?
+ Are you sure you want to clear offline data?
+ Eja
+ Annulla
+
+ Bene fatu! As abertu s\'aplicatzione pro %d die consecutiva.
+ Bene fatu! As abertu s\'aplicatzione pro %d dies consecutivas.
+
+
+ Apo abertu s\'aplicatzione CV Project pro %d die consecutiva! Iscàrriga·la tue puru, in manera de pòdere contribuire a su progetu de Common Voice cun su telefoneddu tuo.
+ Apo abertu s\'aplicatzione CV Project pro %d dies consecutivas! Iscàrriga·la tue puru, in manera de pòdere contribuire a su progetu de Common Voice cun su telefoneddu tuo.
+
+ Intra como
+ Aberi su profilu como
+ Borta como
+
+ Obietivu diàriu
+ Perunu obietivu impostadu
+ Imposta un\'obietivu
+ Modìfica s\'obietivu
+ Sarva
+ Iscantzella
+ Annulla
+ Issèbera cantas frases cheres registrare e cantas nde cheres cunvalidare (summa totale) a sa die.
+ Cunsighidu oe
+ Non cunsighidu oe
+ Bene fatu! Ses arribbadu a s\'obietivu diàriu tuo.\nAs cunvalidadu {{n_clips}} registratzione(s) e registradu {{n_sentences}} frase(s).\nIntende·ti lìberu de sighire a contribuire a Common Voice.
+ Cumpartzi
+ Cumpartzi in
+ Apo cunsighidu s\'obiettivu diàriu meu pro @mozilla #CommonVoice impreende #CVProject.\nAuni·ti a nois e contribui tue puru! Installa CV Project dae Google Play, F-Droid o Huawei AppGallery como {{link}}
+ Custu obietivu diàriu no est una funtzionalidade ufitziale de Mozilla. Est una funtzionalidade de s\'aplicatzione ebbia.
+ A l\'ischis chi … ?
+ 10\'000 oras si podent otènnere in petzi 6 meses si 1\'000 persones registrant 45 registratziones a sa die.
+ Copiadu
+
+ B\'at una versione noa de s\'aplicatzione a disponimentu (versione {{n_version}}). La podes atualizare dae sa butega de aplicatziones preferida tua (F-Droid, Google Play, Huawei AppGallery, Amazon AppStore) o in manera direta dae GitHub.
+
diff --git a/app/src/main/res/values-sk-rSK/strings.xml b/app/src/main/res/values-sk-rSK/strings.xml
index e1260cf7..84180c51 100644
--- a/app/src/main/res/values-sk-rSK/strings.xml
+++ b/app/src/main/res/values-sk-rSK/strings.xml
@@ -117,6 +117,7 @@
RozhranieRozšírenéUkladať nahrávky do zariadenia
+ Clear offline clips and sentencesObnoviť dáta aplikácieMomentálne nie sú k dispozícií žiadne experimentálne funkcieOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Preskočiť
@@ -378,6 +381,7 @@
Ste si istí, že chcete preskočiť a zmazať túto nahrávku?Are you sure you want to continue and lose the recording?Ste si istý, že chcete zmazať všetky dáta tejto aplikácie?
+ Are you sure you want to clear offline data?YesZrušiť
diff --git a/app/src/main/res/values-sl-rSI/strings.xml b/app/src/main/res/values-sl-rSI/strings.xml
index b94174b7..796c1c11 100644
--- a/app/src/main/res/values-sl-rSI/strings.xml
+++ b/app/src/main/res/values-sl-rSI/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -378,6 +381,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-sr-rSP/strings.xml b/app/src/main/res/values-sr-rSP/strings.xml
index ba970d78..ba98347f 100644
--- a/app/src/main/res/values-sr-rSP/strings.xml
+++ b/app/src/main/res/values-sr-rSP/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -368,6 +371,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-sv-rSE/strings.xml b/app/src/main/res/values-sv-rSE/strings.xml
index e8d14ac2..fc3acf52 100644
--- a/app/src/main/res/values-sv-rSE/strings.xml
+++ b/app/src/main/res/values-sv-rSE/strings.xml
@@ -119,6 +119,7 @@ De främsta deltagarna
AnvändargränssnittAvanceratSpara inspelningar på enheten
+ Clear offline clips and sentencesÅterställ appdataInga experimentella funktioner finns tillgängligaVisa meningstexten endast när klippet har spelat färdigt
@@ -181,6 +182,8 @@ De främsta deltagarna
Anpassa API-serverÄr du säker på att du vill anpassa API-servern? Detta är en potentiellt farlig åtgärd.\nDu kan återställa till standard API-servern när som helst.Destination API-server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLaddar mening…Hoppa över
@@ -360,6 +363,7 @@ De främsta deltagarna
Är du säker på att du vill hoppa över och förlora inspelningen?Är du säker på att du vill fortsätta och förlora inspelningen?Är du säker på att du vill återställa all appdata?
+ Are you sure you want to clear offline data?JaAvbryt
diff --git a/app/src/main/res/values-sw-rKE/strings.xml b/app/src/main/res/values-sw-rKE/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-sw-rKE/strings.xml
+++ b/app/src/main/res/values-sw-rKE/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-ta-rIN/strings.xml b/app/src/main/res/values-ta-rIN/strings.xml
index 75780c19..fed2b43d 100644
--- a/app/src/main/res/values-ta-rIN/strings.xml
+++ b/app/src/main/res/values-ta-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -173,12 +174,14 @@
First alertSecond alertNone
- Statistics
+ புள்ளிவிவரம்Destination API serverReset to the default API serverCustomise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…தவிர்
@@ -280,7 +283,7 @@
Stop recordingPlay recordingStop listening
- Send recording
+ பதிவு அனுப்பபடுகிறதுRead contribution criteriaSee offline mode detailsSee information about the current clip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?Yesரத்துசெய்
diff --git a/app/src/main/res/values-th-rTH/strings.xml b/app/src/main/res/values-th-rTH/strings.xml
new file mode 100644
index 00000000..d3851c53
--- /dev/null
+++ b/app/src/main/res/values-th-rTH/strings.xml
@@ -0,0 +1,387 @@
+
+
+
+
+ th
+
+ หน้าหลัก
+ แดชบอร์ด
+ การตั้งค่า
+
+ เข้าสู่ระบบ / ลงทะเบียน
+ ออกจากระบบ
+ โปรไฟล์
+ สวัสดี!
+ สวัสดี {{username}}!
+ session-id หมดอายุ คุณต้องเข้าสู่ระบบใหม่
+
+ สถิติ
+ เสียงที่ออนไลน์
+ คุณ
+ ทุกคน
+ วันนี้
+ ทั้งหมด
+ คุณต้องเข้าสู่ระบบเพื่อดูสถิติ
+ คุณต้องเข้าสู่ระบบเพื่อตั้งเป้าหมายรายวัน
+ ชม.
+ ชั่วโมง {{hour}}
+ ผู้สนับสนุนสูงสุด
+ บันทึกเสียง
+ ตรวจสอบเสียง
+ สถิติแอป
+ ภาษาปัจจุบัน
+ ทุกภาษา
+ ไม่สามารถใช้งานในโหมดออฟไลน์
+
+ เริ่มเลย
+ อนุญาต
+ ต่อไป
+ ลองอีกครั้ง
+ เสร็จสิ้น
+ ข้าม
+ อนุญาตสิทธิ์แล้ว
+ เกิดข้อผิดพลาด: สิทธิ์ถูกปฏิเสธ
+ CV Project เป็นแอปไม่เป็นทางการสำหรับ Mozilla Common Voice ที่พัฒนาโดย Saverio Morelli โดยไม่ได้รับการสนับสนุนใด ๆ จาก Mozilla
+ การไปต่อแสดงว่าคุณยอมรับเงื่อนไขการให้บริการของ Mozilla Common Voice
+ แอปนี้ต้องมีสิทธิ์เข้าถึง \"ไมโครโฟน\" เพื่อบันทึกเสียงของคุณ
+ คุณสามารถรายงานปัญหาบน GitHub และ Telegram โดยคุณควรแนบไฟล์บันทึก (log) ลงในรายงานของคุณเพื่อให้ผู้พัฒนาเข้าใจปัญหาได้รวดเร็ว แอปนี้ต้องการสิทธิ์เข้าถึง \"พื้นที่จัดเก็บข้อมูล\" เพื่อบันทึกไฟล์บันทึกนี้
+ คุณยังสามารถสมทบข้อมูลขณะไม่มีอินเทอร์เน็ต โดย \"โหมดออฟไลน์\" ของแอปจะถูกเปิดอัตโนมัติ และคุณสามารถบันทึกและตรวจสอบเสียงได้โดยไม่มีอินเทอร์เน็ต
+ เลือกธีมสีที่ต้องการ โดย \"อัตโนมัติ\" จะเปลี่ยนธีมสีตามเวลาปัจจุบัน คุณสามารถเปลี่ยนการตั้งค่านี้ภายหลังได้ในการตั้งค่า
+ ธีมสีมืด
+ บางการกระทำมีท่าทางนิ้วต่าง ๆ ที่สอดคล้องกัน เช่น คุณสามารถข้ามประโยคในเมนู \"พูด\" ได้โดยการปัดไปทางซ้าย
+ คุณสามารถปรับเปลี่ยนท่าทางนิ้วเหล่านี้ในการตั้งค่า
+ คุณสามารถเข้ากลุ่ม Telegram เพื่อรับข่าวสารและความช่วยเหลือ (กรุณาใช้ภาษาอังกฤษในการสื่อสารในกลุ่ม)
+ เข้าร่วมกลุ่ม
+ มาเริ่มกันเลย! เลือกภาษาที่คุณต้องการพูดหรือฟัง แอปจะแสดงผลในภาษาที่คุณเลือกหากภาษานั้นมีการแปลภาษาแล้ว
+
+ กำลังโหลด...
+ ชื่อผู้ใช้
+ อีเมล
+ อายุ
+ เพศ
+ ไปที่เว็บไซต์ของ Common Voice เพื่อแก้ไขข้อมูลส่วนตัวของคุณ
+ เข้าสู่ระบบสำเร็จ!
+ ชาย
+ หญิง
+ อื่น ๆ
+ เหรียญตราทั้งหมด
+ เลเวล {{level}}
+ ฉันมีลิงก์ยืนยันแล้ว
+ ลิงก์ยืนยัน
+ ลิงก์ยืนยันไม่ถูกต้อง
+
+ เปิดบทช่วยสอนซ้ำ
+ โครงการมีการเปิดต้นฉบับบน GitHub
+ พัฒนาโดย
+ ตั้งค่าภาษาเป็น {{lang}} เรียบร้อยแล้ว
+ ภาษา
+ ฟัง
+ พูด
+ อื่น ๆ
+ ทั่วไป
+ ลิงก์ที่เป็นประโยชน์
+ เรียนรู้เพิ่มเติม
+ สว่าง
+ มืด
+ อัตโนมัติ
+ สนับสนุนงานของผม ซื้อกาแฟให้ผมได้นะ 😄
+ เล่นคลิปเสียงอัตโนมัติหลังจากโหลดเสร็จ
+ ธีมสีมืด
+ ติดต่อผู้พัฒนาบน Telegram
+ คุณสมบัติทดลอง
+ เปิดใช้คุณสมบัติทดลองแล้ว\nคุณสมบัติใหม่ ๆ อาจไม่เสถียรและไม่ปลอดภัย
+ เก็บไฟล์บันทึกเป็นไฟล์
+ เปิดใช้การจัดเก็บไฟล์บันทึกเป็นไฟล์แล้ว\nคุณสามารถแนบไฟล์ log.txt ขณะรายงานปัญหา\nอ่านเพิ่มเติมที่ GitHub
+ สถิติทั่วไป
+ แสดงสตริงที่ระบุตัวตนของผมเองภายในแอป
+ สถิติการใช้งานแอป
+ ข้ามการยืนยันการบันทึกเสียง
+ เปิดใช้ \"ข้ามการยืนยันการบันทึกเสียง\" แล้ว\nคุณจะสามารถส่งคลิปเสียงบันทึกได้โดยไม่ต้องฟังก่อนส่ง
+ แปลแอปบน Crowdin
+ ดูสถิติแอป
+ เสียงขณะเริ่ม-หยุดอัด
+ เปิดเสียงขณะเริ่ม-หยุดอัดแล้ว\nเสียงจะถูกเล่นเมื่อคุณเริ่มต้นและหยุดการบันทึก
+ ตรวจสอบการอัปเดต
+ ท่าทาง
+ หากคุณชอบแอปนี้ อย่าลืมเขียนรีวิวบน Google Play Store
+ แอปนี้ยังไม่ถูกแปล (หรือแปลไม่สมบูรณ์) ในภาษานี้\nคุณสามารถช่วยแปลแอปนี้ได้บน Crowdin
+ แอนิเมชัน
+ ปรับขนาดตัวอักษร
+ ปรับแต่งท่าทาง
+ ธีม
+ กลุ่ม Telegram สำหรับแอป
+ แสดงข้อความกำกับใต้ไอคอนเมนู
+ อ่านเงื่อนไขการให้บริการของ Mozilla Common Voice
+ อ่านเกณฑ์การมีส่วนร่วม
+ รีวิวบน Google Play
+ ส่วนติดต่อผู้ใช้
+ ขั้นสูง
+ บันทึกคลิปเสียงลงบนเครื่อง
+ Clear offline clips and sentences
+ รีเซ็ตข้อมูลแอป
+ ไม่มีคุณสมบัติทดลองที่ใช้งานได้
+ แสดงข้อความประโยคหลังจากจบคลิปเสียงเท่านั้น
+ แสดงไอคอนรายงาน (มุมขวาบน) แทนปุ่ม (ด้านล่าง)
+ ขนาดข้อความ
+ แบนเนอร์โฆษณา
+ เปิดแบนเนอร์โฆษณาในหน้า {{section_name}}
+ แถบแสดงเป้าหมายรายวันแบบมีสีสัน
+ {{speak_name}}และ{{listen_name}}
+ Light theme also for the sentence to read/to validate in Speak and Listen (when the light theme is turned on).
+ แสดงแถบควบคุมความเร็ว
+ แสดงไอคอนข้อมูล
+ กดเพื่อพูด
+ เลือกจำนวนประโยคและคลิปเสียงที่จะดาวน์โหลดและใช้งานขณะอยู่ในโหมดออฟไลน์
+ โดยปกติ ผู้ใช้งานจะใช้เวลาประมาณ 13 นาทีเพื่อตรวจสอบ 50 คลิปเสียง และ 26 นาทีเพื่อบันทึกเสียง 50 ประโยค
+ ปัดขึ้น
+ ปัดลง
+ ปัดซ้าย
+ ปัดขวา
+ กดค้างไว้
+ แตะสองครั้ง
+ ปัดขึ้น: {{feature_enabled}}
+ ปัดลง: {{feature_enabled}}
+ ปัดซ้าย: {{feature_enabled}}
+ ปัดขวา: {{feature_enabled}}
+ กดค้างไว้: {{feature_enabled}}
+ แตะสองครั้ง: {{feature_enabled}}
+ ไม่มี
+ ย้อนกลับไป
+ ข้ามคลิปเสียง
+ ข้ามประโยค
+ ยอมรับคลิปเสียง (ถูกต้อง)
+ ปฏิเสธคลิปเสียง (ไม่ถูกต้อง)
+ เปิด/ปิด \"{{feature}}\"
+ รายงานคลิปเสียง
+ รายงานประโยค
+ แสดงข้อมูลเกี่ยวกับคลิปเสียง
+ แสดงข้อมูลเกี่ยวกับประโยค
+ เล่น/หยุดเล่นคลิป
+ เริ่ม/หยุดการบันทึก
+ เล่น/หยุดเล่นการบันทึก
+ บันทึก
+ เลือกการกระทำ
+ แสดงไอคอนเกณฑ์การมีส่วนร่วม
+ อัปโหลดผ่าน Wi-Fi เท่านั้น
+ ดาวน์โหลดผ่าน Wi-Fi เท่านั้น
+ การแจ้งเตือนทั่วไป
+ การแจ้งเตือนเป้าหมายรายวัน
+ การแจ้งเตือน
+ วันนี้อย่าลืมเข้ามามีส่วนร่วมกับ Common Voice ด้วยนะ การมีส่วนร่วมของคุณมีคุณค่าและสำคัญจริง ๆ!\nแตะที่นี่เพื่อเปิดแอปและทำตามเป้าหมายรายวันเลย
+ ยังไม่ถึงเป้าหมายรายวัน CV Project!
+ Choose when you wish to be notified in case your daily goal has not been reached.
+ Please note that this might not be exact or might not be work at all due to battery optimisation settings.
+ First alert
+ Second alert
+ ไม่มี
+ สถิติ
+ Destination API server
+ Reset to the default API server
+ Customise API server
+ Are you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.
+ Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-Fi
+
+ กำลังโหลดประโยค…
+ ข้าม
+ ส่งคลิปเสียงบันทึก
+ กำลังโหลดคลิป…
+ กดไอคอนด้านล่างเพื่อเริ่มบันทึกเสียง
+ กดไอคอนด้านล่างเพื่อหยุดบันทึกเสียง
+ บันทึกเสียงประโยคแล้ว ฟังเสียงที่บันทึกกันเลย
+ การบันทึกล้มเหลว กรุณาลองอีกครั้ง
+ หากคุณพูดถูกทุกคำ ส่งคลิปเสียงบันทึกได้เลย\nแต่หากคุณพูดผิด คุณสามารถบันทึกประโยคซ้ำอีกครั้ง
+ ฟังทั้งคลิปเสียงเพื่อให้แน่ใจว่าถูกทุกคำ
+ กดไอคอนด้านล่างเพื่อหยุดฟัง
+ เสียงบันทึกยาวเกินไป ความยาวสูงสุดคือ 10 วินาที
+ เสียงบันทึกสั้นเกินไป กรุณาลองอีกครั้ง
+ กำลังส่งเสียงบันทึก...
+ ส่งเสียงบันทึกแล้ว!
+ ไม่สามารถส่งเสียงบันทึก
+ ไม่สามารถส่งเสียงบันทึกได้! คุณสามารถลองอีกครั้ง หรือกดปุ่ม {{skip_button}}
+ กดไอคอนด้านล่างเพื่อเริ่มคลิปเสียง
+ กดไอคอนด้านล่างเพื่อหยุดคลิปเสียง
+ หากคลิปเสียงถูกต้อง กดปุ่มนิ้วโป้งชี้ขึ้น\nหากไม่ถูกต้อง กดปุ่มนิ้วโป้งชี้ลง
+ กดปุ่มด้านล่างเพื่อเล่นคลิปเสียงอีกครั้ง
+ ระบุว่าเป็นคลิปถูกต้องแล้ว!
+ ระบุว่าเป็นคลิปไม่ถูกต้องแล้ว!
+ เกิดข้อผิดพลาด กดปุ่ม {{skip_button}} เพื่อดำเนินการต่อ
+ ไม่สามารถส่งเสียงบันทึก
+ กำลังส่ง...
+ ไม่สามารถส่งผลลัพธ์ได้! คุณสามารถลองอีกครั้ง หรือกดปุ่ม {{skip_button}}
+ กำลังปิด…
+ เกิดข้อผิดพลาด ไม่มีคลิปเสียงสำหรับภาษานี้แล้ว
+ รายงาน
+ รายงานคลิปเสียง:
+ รายงานประโยค:
+ ส่งรายงาน
+ ภาษาที่ไม่เหมาะสม
+ เสียงพูดที่ไม่เหมาะสม
+ ข้อผิดพลาดทางไวยากรณ์ / การสะกดคำ
+ คนละภาษา
+ อ่านออกเสียงยาก
+ อื่น ๆ
+ ความคิดเห็น
+ You have run out of offline sentences. Connect to the Internet to download more sentences to record.
+ You have run out of offline clips. Connect to the Internet to download more clips to validate.
+ You can record {{n_sentences}} more sentences before you need to connect to the Internet.
+ You can validate {{n_clips}} more clips before you need to connect to the Internet.
+ กำลังฟัง…
+ \"{{feature_name}}\" เปิดอยู่ ไปที่การตั้งค่าเพื่อปิด
+ ข้อความประโยคถูกซ่อนอยู่
+ The Common Voice API server did not provide any more sentences. Try later or contact Mozilla.
+ The Common Voice API server did not provide any more clips. Try later or contact Mozilla.
+
+ คุณตรวจสอบ %d คลิปเสียงติดต่อกันแล้ว ยอดเยี่ยมมาก ทำต่อไปนะ!
+
+
+ ทำต่อไปเรื่อย ๆ ได้เลย คุณตรวจสอบไปแล้ว %d คลิปเสียงติดต่อกัน
+
+
+ ยอดเยี่ยมมาก! คุณตรวจสอบไปแล้ว %d คลิปเสียงติดต่อกัน
+
+
+ ว้าว คุณมีพลังเหนือมนุษย์! คุณตรวจสอบไปแล้ว %d คลิปเสียงติดต่อกัน!
+
+
+ คุณส่งไปแล้ว %d คลิปเสียงติดต่อกัน
+
+
+ สุดยอด! คุณส่งไปแล้ว %d คลิปเสียงติดต่อกัน
+
+
+ Congratulations! You achieved the milestone of %d recorded sentences. Keep going.
+
+
+ ว้าว คุณมีพลังเหนือมนุษย์! คุณบันทึกไปแล้ว %d ประโยคติดต่อกัน!
+
+
+ You miss only %d clips to achieve your daily goal of {{dailygoal}}!
+
+
+ You miss only %d sentences to achieve your daily goal of {{dailygoal}}!
+
+ ตั้งความเร็วเป็น {{speed_value}} เรียบร้อยแล้ว
+
+ ปฏิเสธคลิปเสียง
+ ยอมรับคลิปเสียง
+ เล่นคลิปเสียง
+ หยุดคลิปเสียง
+ Start recording
+ Record again the sentence
+ Stop recording
+ Play recording
+ Stop listening
+ Send recording
+ Read contribution criteria
+ See offline mode details
+ See information about the current clip
+ See information about the current sentence
+ Report the current clip
+ Report the current sentence
+ Open Listen section
+ Open Speak section
+ ย้อนกลับไป
+ เปิดหรือปิด
+ ปิดข้อความ
+ คัดลอก
+ เพิ่ม
+ ลด
+
+ ตรวจสอบอีกครั้ง
+ You aren\'t connected to the internet. Connect to Wi-Fi or mobile data, then press the button below.
+
+ นี่คือประโยคที่คุณจะต้องบันทึกเสียง
+ ข้อความตัวช่วยจะปรากฏตรงนี้
+ หากคุณไม่ชอบประโยคนี้ คุณสามารถแตะปุ่มนี้เพื่อข้ามไปยังอันอื่นได้
+ แตะไอคอนนี้เพื่อเริ่มการบันทึก
+ แตะไอคอนนี้เพื่อหยุดการบันทึก
+ Tap on this icon to play back your recording.
+ Tap on this icon to re-record if you made a mistake.
+ Tap on this icon to play back your recording again.
+ Tap on this button to send your recording.
+ นี่คือประโยค/คลิปเสียงที่คุณต้องตรวจสอบ
+ หากคุณไม่ชอบคลิปเสียงนี้ คุณสามารถแตะปุ่มนี้เพื่อข้ามไปยังอันอื่นได้
+ แตะไอคอนนี้เพื่อเล่นคลิปเสียง
+ แตะไอคอนนี้เพื่อหยุดเล่นคลิปเสียง
+ แตะไอคอนนี้หากคุณต้องการฟังคลิปเสียงซ้ำ
+ หากคลิปเสียงตรงกับประโยค แตะปุ่มนี้เพื่ออนุมัติ
+ หากคลิปเสียงไม่ตรงกับประโยค แตะปุ่มนี้เพื่อปฏิเสธ
+ If you\'re not sure whether to accept or reject a recording, or you want to improve your recordings, you can read the official contribution criteria.\nYou also can find this link later in Settings > Useful links.
+ Read now
+
+ Sorry, this feature doesn\'t exist yet.\nWe\'re working constantly to improve the app, so check back later to see if it\'s been added.
+
+ Close
+ All badges
+ New badge earnt
+ New level achieved
+ Hooray! You have just earned a new badge.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ Congrats! You have just achieved a new level and you earnt a new badge as well.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ You got this badge because you validated at least {{n_clips}} clips.
+ You got this badge because you recorded at least {{n_sentences}} sentences.
+ You got this badge because you validated or recorded at least {{n_total}} clips.
+
+ ตกลง
+ ข้อผิดพลาด
+ ไม่สามารถดำเนินการได้\nกรุณาลองอีกครั้ง หรือติดต่อนักพัฒนา
+ ไม่สามารถดำเนินการได้ กรุณาลองอีกครั้ง หรือติดต่อนักพัฒนา\nรหัสข้อผิดพลาด: EX-{{error_code}}
+ เข้าสู่ระบบไม่สำเร็จ
+ คุณต้องเข้าสู่ระบบบนเว็บไซต์ Common Voice และยอมรับนโยบายความเป็นส่วนตัวของ Common Voice ก่อน
+ เปิด Common Voice
+ คำเตือน
+ เคล็ดลับ
+ บันทึกการเปลี่ยนแปลง
+ ช่วยเหลือ
+ ข้อมูล
+ ไม่ต้องแสดงอีก
+ If you have issues with the official Common Voice website, please report them on Mozilla Discourse forums or GitHub repository so that Mozilla can fix them.
+ ตรวจทานเลย
+ Do you like the app? You can support my work. Buy me a coffee on PayPal or LiberaPay.
+ เข้าสู่ระบบอีกครั้ง
+ โหมดออฟไลน์
+ You are now offline and the app switched to offline mode automatically.\nThis means you can continue to record and validate, but the requests will be sent later.
+ You can tell when you are in offline mode by looking for this icon on the screen:
+ You can tap that icon to see downloaded clips and sentences.
+ The Offline mode is not enabled, so you can\'t use the app without an Internet connection.\nTo use the Offline mode feature, turn on it in Settings.
+ Do you know you can support my work freely? Please, if you like the app, consider to turn on ad banners in Settings.
+ Open Settings now
+ Are you sure you want to go back and lose the recording?
+ Are you sure you want to skip and lose the recording?
+ Are you sure you want to continue and lose the recording?
+ Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?
+ ใช่
+ ยกเลิก
+
+ Well done! You opened the app %d days in a row.
+
+
+ I\'ve opened the CV Project app %d days in a row! Download it too, so you can contribute to the Common Voice project with your smartphone.
+
+ เข้าสู่ระบบเลย
+ เปิดโปรไฟล์เลย
+ แปลเลย
+
+ เป้าหมายรายวัน
+ ไม่ได้ตั้งเป้าหมาย
+ ตั้งเป้าหมาย
+ แก้ไขเป้าหมาย
+ บันทึก
+ ลบ
+ ยกเลิก
+ Choose how many sentences you want to record and clips you want to validate (sum of them) per day.
+ Achieved today
+ Not achieved today
+ Well done! You achieved your daily goal.\nYou validated {{n_clips}} clip(s) and recorded {{n_sentences}} sentence(s).\nFeel free to continue contributing to Common Voice.
+ Share
+ Share on
+ I\'ve just achieved my daily goal for @mozilla #CommonVoice using #CVProject.\nJoin in and contribute! Install CV Project from Google Play, F-Droid or Huawei AppGallery now {{link}}
+ This daily goal isn\'t an official Mozilla feature. It\'s only a feature of this app.
+ Did you know that … ?
+ 10,000 hours is achievable in just over 6 months if 1,000 people record 45 clips a day.
+ Copied
+
+ A new version of the app is available (release {{n_version}}). You can update it from your favourite store (F-Droid, Google Play, Huawei AppGallery, Amazon AppStore) or directly from GitHub.
+
diff --git a/app/src/main/res/values-ti-rER/strings.xml b/app/src/main/res/values-ti-rER/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-ti-rER/strings.xml
+++ b/app/src/main/res/values-ti-rER/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-tok/strings.xml b/app/src/main/res/values-tok/strings.xml
index 5f77d3f7..2d3c5421 100644
--- a/app/src/main/res/values-tok/strings.xml
+++ b/app/src/main/res/values-tok/strings.xml
@@ -117,6 +117,7 @@
User InterfacemuteSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml
index bd70d345..3007b7ac 100644
--- a/app/src/main/res/values-tr-rTR/strings.xml
+++ b/app/src/main/res/values-tr-rTR/strings.xml
@@ -117,9 +117,10 @@
Kullanıcı arayüzüGelişmişKayıtları cihaza depolayın
+ Clear offline clips and sentencesUygulama verilerini sıfırlaArtık deneysel özellik yok
- Only show the sentence text once the clip has completed playing
+ Cümle metnini yalnızca klip oynatımı tamamlandıktan sonra gösterBildirim\'i (aşağıda) tuş yerine ikon (sağ-üst) olarak gösterYazı BoyutuReklam şeridi
@@ -179,6 +180,8 @@
API sunucusunu düzenleAPI sunucusunu düzenlemek istediğinizden emin misiniz? Bu potansiyel olarak tehlikeli bir eylem.\nİstediğiniz zaman varsayılan API sunucusuna sıfırlayabilirsiniz.Hedef API sunucusu
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiCümle yükleniyor…Atla
@@ -325,7 +328,7 @@
Yeni rozet kazandınızYeni seviyeye ulaştınızYaşasın! Yeni bir rozet kazandın.\n Bütün rozetlerini görmek için {{profile}}>{{all_badges}}\'e git.
- Congrats! You have just achieved a new level and you earnt a new badge as well.\nGo to the {{profile}} > {{all_badges}} to see all your badges.
+ Tebrikler! Yeni bir seviyeye ulaştın ve yeni bir rozet de kazandın.\nTüm rozetlerini görmek için {{profile}} > {{all_badges}} bölümüne git.Bu rozeti, en az {{n_clips}} kaydı doğruladığınız için aldınız.Bu rozeti, en az {{n_sentences}} cümle kaydettiğiniz için aldınız.Bu rozeti, en az {{n_total}} kaydı doğruladığınız veya kaydettiğiniz için aldınız.
@@ -358,6 +361,7 @@
Atlayıp, yaptığınız kaydı kaybetmek istediğinizden emin misiniz?Devam etmek ve kaydı kaybetmek istediğinizden emin misiniz?Bütün uygulama verisini sıfırlamak istediğinize emin misiniz?
+ Are you sure you want to clear offline data?Evetİptal
diff --git a/app/src/main/res/values-tt-rRU/strings.xml b/app/src/main/res/values-tt-rRU/strings.xml
index cc65f0fe..50d42d10 100644
--- a/app/src/main/res/values-tt-rRU/strings.xml
+++ b/app/src/main/res/values-tt-rRU/strings.xml
@@ -31,7 +31,7 @@
Кушымта статистикасыХәзерге телБөтен телләр
- Автоном эш режимда кереп булмый
+ Автоном эш режимында кереп булмыйБашлауРөхсәт итү
@@ -44,8 +44,8 @@
CV Project - Mozilla Common Voice өчен рәсми булмаган кушымта. Бу Мозилла белән бернинди ярдәм яки партнерлыксыз Saverio Morelli тарафыннан эшләнгән.Дәвам итү нәтиҗәсендә Сез Mozilla-ның Common Voice Куллану Шартлары белән килешәчәксез.Бу кушымтага тавышыңны яздыру өчен \"Микрофон\" рөхсәте кирәк.
- You can report bugs on GitHub or Telegram. To help the developer understand the issue quickly, you should attach the app\'s log file to your report. The app needs the \"Storage\" permission to save the log file.
- You can even contribute while you are offline. The app\'s \"Offline mode\" will be enabled automatically, and you can continue to record and listen without an Internet connection.
+ Сез GitHub яки Telegram аша хаталар турында хәбәр итә аласыз. Җитештерүчегә проблеманы тиз арада аңларга ярдәм итү өчен, сез кушымтаның журнал файлын шикаятегезгә беркетергә тиеш. Кушымта журнал файлын саклау өчен \"Саклау\" рөхсәтенә мохтаҗ.
+ Сез оффлайнда булганда да өлеш кертә аласыз. Кушымтаның \"Автоном эш режимы\" автоматик рәвештә эшләтеләчәк, һәм Сез Интернетка тоташмыйча яздыра һәм тыңлый аласыз.Cезнең тәкъдим иткән теманы сайлагыз. \"Авто\" хәзерге вакытка нигезләнеп теманы алыштыра. Моны соңрак Көйләүләрдә үзгәртә аласыз.Караңгы темаКайбер гамәлләрдә тиешле ишарәләр бар. Мәсәлән, сулга әйләндереп, Сөйләүдә җөмләне калдыра аласыз.
@@ -73,7 +73,7 @@
Ярдәмлекне яңадан ачуПроектның GitHub битетарафыннан эшләнгән
- Тел {{lang}}-га уңышлы үзгәртелде
+ Тел уңышлы {{lang}} телгә күчәТелТыңлауСөйләү
@@ -96,7 +96,7 @@
Кушымта эчендә мине ачыклаучы сызыкны күрсәтүКушымта куллану статистикасыАудиоязмаларны тикшерүдән баш тарту
- Skip recording confirmation turned on.\nYou will now be able to send recordings without having to listen to them first.
+ Язуны тикшерү сүндерелде.\nХәзер сез язуларны башта тыңламыйча җибәрә аласыз.Кушымтаны Crowdin-да тәрҗемә итүКушымта статистикасын карауАудиоязма күрсәткече тавышы
@@ -110,27 +110,28 @@
Ишарәләрне көйләүТемаКушымтаның Telegram төркөме
- Меню иконалары астындагы этикеткаларны күрсәтү
+ Меню тамгалары астындагы этикеткаларны күрсәтүMozilla Common Voice Куллану Шартларын укуКатнашу критерийларын укыгызGoogle Play-та бәяләгезКулланучы интерфейсыКиңәйтелгәнЯзмаларны җиһазда саклау
+ Clear offline clips and sentencesКушымта мәгълүматларын алыштыруХәзер бернинди эксперименталь мөмкинлекләр дә юкКлип уйнауны тәмамлагач, җөмлә текстын гына күрсәтү
- Төймә (аста) урынына \"Шикаять итү\" иконасын (өстән-уңда) күрсәтү
+ Төймә (аста) урынына \"Шикаять итү\" тамгасын (өстән-уңда) күрсәтүТекст үлчәмеРеклама баннеры{{section_name}} бүлектә реклам баннерны кабызуКөндәлек максат өчен төсле башкарылыш индикаторы{{speak_name}} һәм {{listen_name}}
- Light theme also for the sentence to read/to validate in Speak and Listen (when the light theme is turned on).
+ Ачык тема шулай ук җөмләләрне уку/тикшерү өчен Сөйләү һәм Тыңлау бүлекләрендә (ачык тема кабызылганда).Тизлек белән идарә аслыгын күрсәтү
- Мәгълүмат иконасын күрсәтү
+ Мәгълүмат тамгасын күрсәтүСөйләү өчен басыгыз
- Кушымта автоном эш режимда булганда, йөкләү һәм куллану өчен җөмләләр санын һәм клиплар санын сайлагыз.
+ Кушымта автоном эш режимында булганда, йөкләү һәм куллану өчен җөмләләр санын һәм клиплар санын сайлагыз.Гадәттә кулланучыларга 50 клипны тикшерү өчен 13 минут һәм 50 җөмлә яздыру өчен 26 минут вакыт кирәк.Өскә сөйрәгезАска сөйрәгез
@@ -160,7 +161,7 @@
Аудиоязмаларны уйнату/туктатуСаклауГамәлне сайлау
- Катнашу критерийлары рәсемен күрсәтү
+ Катнашу критерийлары тамгасын күрсәтүWi-Fi ярдәмендә генә йөкләүWi-Fi ярдәмендә генә йөкләп алуГомуми искәртүләр
@@ -168,8 +169,8 @@
ИскәртүләрЗинһар, бүген Common Voice-ка өлеш кертергә онытмагыз, сезнең өлешегез кыйммәтле һәм мөһим!\nКушымтаны ачу һәм көндәлек максатка ирешү өчен монда басыгыз.CV Project көндәлек максаты әлегә ирешелмәгән!
- Choose when you wish to be notified in case your daily goal has not been reached.
- Please note that this might not be exact or might not be work at all due to battery optimisation settings.
+ Көндәлек максатка ирешмәгән очракта, сезгә хәбәр итәргә теләгәндә сайлагыз.
+ Зинһар искә алыгыз, бу сезнең батареяны оптимизацияләү көйләүләре аркасында төгәл булмаска яки бөтенләй эшләмәскә мөмкин.Беренче белдерүИкенче искәртүЮк
@@ -179,28 +180,30 @@
API серверын көйләүAPI серверын көйләүне раслыйсызмы? Бу куркыныч булырга мөмкин гамәле.\nСез теләсә кайчан килешенгәнчә API серверына кире кайтара аласыз.Максатлы API серверы
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiҖөмлә йөкләнә…Калдырып торуЯзуны җибәрүКлип йөкләнә…
- Яздыруны башлау өчен астагы иконага басыгыз.
- Яздыруны туктату өчен астагы иконкага басыгыз.
+ Яздыруны башлау өчен астагы тамгага басыгыз.
+ Яздыруны туктату өчен астагы тамгага басыгыз.Җөмлә язылды. Аудиоязмаларны тыңлагыз.Яздыру уңышсыз. Зинһар янәдән тырышып карагыз.Әгәр дә дөрес әйтсәгез, аудиоязманы җибәрегез.\nӘгәр аны ялгыш дип әйтсәгез, җөмләне яңадан яздыра аласыз.Аның дөреслеген тикшерү өчен бөтен язуны тыңлагыз.
- Тыңлауны туктату өчен астагы иконкага басыгыз.
+ Тыңлауны туктату өчен астагы тамгага басыгыз.Аудиоязма артык озын. Max duration is 10 seconds.Аудиоязма артык кыска. Зинһар янәдән тырышып карагыз.Аудиоязма җибәрелә…Язма җибәрелде!Аудиоязма җибәреп булмады!Аудиоязма җибәреп булмады! You can either try again, or press the {{skip_button}} button.
- Клипны башлау өчен астагы иконкага басыгыз.
- Клипны туктату өчен астагы иконкага басыгыз.
+ Клипны башлау өчен астагы тамгага басыгыз.
+ Клипны туктату өчен астагы тамгага басыгыз.Клип дөрес булса, өскә караган зур бармакка басыгыз.\nӘгәр дә клип дөрес булмаса, аска караган зур бармакка басыгыз.
- Клипны яңадан уйнау өчен астагы иконкага басыгыз.
+ Клипны яңадан уйнау өчен астагы тамгага басыгыз.Клип дөрес дип тамгаланды!Клип дөрес түгел дип билгеләнде!Хата. Дәвам итү өчен {{skip_button}} төймәсенә басыгыз.
@@ -292,20 +295,20 @@
Бу сез язарга тиеш җөмлә.Сезгә юл күрсәтүче хәбәр монда барлыкка киләчәк.Әгәр дә сезгә җөмлә ошамаса, калдырып тору һәм башка бир җөмләгә күчү өчен монда басыгыз.
- Яздыруны башлау өчен бу иконага басыгыз.
- Яздыруны туктату өчен, бу рәсемгә басыгыз.
- Аудиоязмагызны уйнау өчен бу иконага басыгыз.
- Хата ясаган булсагыз, яңадан яздыру өчен бу иконага басыгыз.
- Аудиоязмагызны яңадан уйнау өчен бу иконага басыгыз.
+ Яздыруны башлау өчен бу тамгага басыгыз.
+ Яздыруны туктату өчен, бу тамгага басыгыз.
+ Аудиоязмагызны уйнау өчен бу тамгага басыгыз.
+ Хата ясаган булсагыз, яңадан яздыру өчен бу тамгага басыгыз.
+ Аудиоязмагызны яңадан уйнау өчен бу тамгага басыгыз.Аудиоязманы җибәрү өчен бу төймәгә басыгыз.Бу сез тикшерергә тиеш җөмлә/клип.Әгәр дә сезгә клип ошамаса, калдырып тору һәм башка бир клипка күчү өчен бу төймәгә басыгыз.
- Клипны уйнау өчен бу рәсемгә басыгыз.
- Клип уйнауны туктату өчен бу иконага басыгыз.
- Клипны яңадан тыңларга теләсәгез, бу иконага басыгыз.
- Әгәр клип җөмләгә туры килсә, аны кабул итү өчен бу иконага басыгыз.
- Әгәр клип җөмләгә туры килмәсә, аны кире кагу өчен бу иконага басыгыз.
- If you\'re not sure whether to accept or reject a recording, or you want to improve your recordings, you can read the official contribution criteria.\nYou also can find this link later in Settings > Useful links.
+ Клипны уйнау өчен бу тамгага басыгыз.
+ Клип уйнауны туктату өчен бу тамгага басыгыз.
+ Клипны яңадан тыңларга теләсәгез, бу тамгага басыгыз.
+ Әгәр клип җөмләгә туры килсә, аны кабул итү өчен бу тамгага басыгыз.
+ Әгәр клип җөмләгә туры килмәсә, аны кире кагу өчен бу тамгага басыгыз.
+ Әгәр дә сез аудиоязмаларны тикшерергә яки кире кагарга белмисез икән, яисә язмаларыгызны яхшыртырга теләсәгез, сез рәсми катнашу критерийларын укый аласыз.\nСез бу сылтаманы соңрак Көйләүләр > Файдалы сылтамалар бүлегендә таба аласыз.Хәзер укуКызганычка каршы, бу үзенчәлек әлегә юк.\nБез кушымтаны яхшырту өстендә даими эшлибез, шуңа күрә соңрак аның өстәлгәнен күрер өчен яңадан тикшереп карагыз.
@@ -339,8 +342,8 @@
Янәдән керүАвтоном эш режимыСез хәзер оффлайн һәм кушымта автоматик рәвештә автоном эш режимына күчә.\nДимәк, сез яздыруны һәм тикшерүне дәвам итә аласыз, ләкин сораулар соңрак җибәреләчәк.
- You can tell when you are in offline mode by looking for this icon on the screen:
- Йөкләнгән клипларны һәм җөмләләрне карау өчен сез бу иконага басыгыз.
+ Экрандагы бу тамганы карап, сез автоном эш режимында икәнегезне әйтә аласыз:
+ Йөкләнгән клипларны һәм җөмләләрне карау өчен сез бу тамгага басыгыз.Автоном эш режимы кабызылмаган, шуңа күрә сез кушымтаны Интернетка тоташмыйча куллана алмыйсыз.\nАвтоном эш режимы үзенчәлеген куллану өчен, аны Көйләүләрдә кабызыгыз.Минем эшемә җиңел ярдәм итә алуыгызны беләсезме? Зинһар, сезгә кушымта ошаса, Көйләүләрдә реклама баннерларын кабызырга уйлагыз.Хәзер көйләүләрне ачу
@@ -348,6 +351,7 @@
Сез калдырып торып язуны югалтырга телисезме?Сез дәвам итеп язуны югалтырга телисезме?Барлык кушымта мәгълүматларын алыштыруны раслыйсызмы?
+ Are you sure you want to clear offline data?ӘйеБаш тарту
diff --git a/app/src/main/res/values-ug-rCN/strings.xml b/app/src/main/res/values-ug-rCN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-ug-rCN/strings.xml
+++ b/app/src/main/res/values-ug-rCN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-uk-rUA/strings.xml b/app/src/main/res/values-uk-rUA/strings.xml
index 5c3a2c39..dc603138 100644
--- a/app/src/main/res/values-uk-rUA/strings.xml
+++ b/app/src/main/res/values-uk-rUA/strings.xml
@@ -117,6 +117,7 @@
Інтерфейс користувачаРозширеніЗберегти записи на пристрій
+ Clear offline clips and sentencesСкинути дані додаткаНаразі немає доступних експериментальних функційOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiЗавантаження речення…Пропустити
@@ -378,6 +381,7 @@
Ви впевнені, що хочете пропустити та втратити запис?Are you sure you want to continue and lose the recording?Ви впевнені, що хочете скинути всі дані додатку?
+ Are you sure you want to clear offline data?ТакСкасувати
diff --git a/app/src/main/res/values-ur-rIN/strings.xml b/app/src/main/res/values-ur-rIN/strings.xml
index e0ba5b0b..0f5adb82 100644
--- a/app/src/main/res/values-ur-rIN/strings.xml
+++ b/app/src/main/res/values-ur-rIN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -358,6 +361,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-uz-rUZ/strings.xml b/app/src/main/res/values-uz-rUZ/strings.xml
index 028e31a6..21439621 100644
--- a/app/src/main/res/values-uz-rUZ/strings.xml
+++ b/app/src/main/res/values-uz-rUZ/strings.xml
@@ -117,6 +117,7 @@
InterfeysQo‘shimchaYozib olinganlarni qurilmaga saqlash
+ Clear offline clips and sentencesIlova maʼlumotlarini tiklashHozirda hech qanday sinov funksiyalari mavjud emasGap matnini faqat tinglash tugagandan so\'ng ko\'rsatish
@@ -179,6 +180,8 @@
API serverini o\'zgartirishHaqiqatan ham API serverini o\'zgartirmoqchimisiz? Bu potentsial xavfli amaldir.\nIstalgan vaqtda standart API serveriga qaytarishingiz mumkin.Manzil API serveri
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiGapni yuklash…Tashlab ketish
@@ -358,6 +361,7 @@
Haqiqatan ham yozib olinganni oʻtkazib yuborib, yoʻqotmoqchimisiz?Haqiqatan ham davom etmoqchimisiz va yozib olinganni yo‘qotasizmi?Haqiqatan ham barcha ilova maʼlumotlarini asliga qaytarmoqchimisiz?
+ Are you sure you want to clear offline data?HaBekor qilish
diff --git a/app/src/main/res/values-vi-rVN/strings.xml b/app/src/main/res/values-vi-rVN/strings.xml
index 04ba7ceb..3597680f 100644
--- a/app/src/main/res/values-vi-rVN/strings.xml
+++ b/app/src/main/res/values-vi-rVN/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 079a4820..6622302d 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -24,7 +24,7 @@
您必须登录才能查看您的统计您必须登录才能设置每日目标小时
- Hour {{hour}}
+ {{hour}} 时贡献榜录音数验证数
@@ -46,7 +46,7 @@
此应用需要“麦克风”权限才能录制您的声音。您可以在 GitHub 或 Telegram 上报告漏洞。 为了帮助开发者迅速理解这个问题,您应该将应用的日志文件添加到您的报告中。 该应用需要保存日志文件的“存储”权限。您可以在离线时继续使用该应用。 应用的“离线模式”将被自动启用,这样您可以在没有互联网连接的情况下继续录制和听录音。
- Choose your preferred theme. \"Auto\" toggles the theme based on the current time. You can change this later in Settings.
+ 根据喜好选择你的主题。选择“自动”将会根据当前时间切换主题。你也可以稍后在“设置”中更改主题。暗色主题一些动作有相应的手势。例如,你可以通过向左滑动跳过朗读句子。您可以在设置中自定义这些手势。
@@ -70,7 +70,7 @@
输入验证链接的网址此链接无效
- Reopen tutorial
+ 重返教程GitHub 上的项目开源开发者已成功设置语言为 {{lang}}
@@ -112,14 +112,15 @@
Telegram 群組應用程式在菜单图标下方显示标签查看 Mozilla Common Voice 服务条款
- Read the contribution criteria
+ 阅读《贡献标准》在 Google Play 上评价界面高级选项保存录音至本地
+ Clear offline clips and sentences重置应用数据暂无新实验性功能
- Only show the sentence text once the clip has completed playing
+ 只在每段播放后展示句子内容显示报告图标 (右上) 而不是按钮 (底部)字体大小广告
@@ -128,9 +129,9 @@
{{speak_name}}和{{listen_name}}对听与读中需要读取/验证的句子也开启浅色主题(当浅色主题开启时)。显示速度控制栏
- Show info icon
+ 显示信息图标按住讲话
- Choose the number of sentences and the number of clips to download and use when the app is in offline mode.
+ 选择当应用程序处于离线模式时需要下载和使用的句子数量和片段数量。Usually users take about 13 minutes to validate 50 clips and 26 minutes to record 50 sentences.向上滑动向下滑动
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…跳过
@@ -348,6 +351,7 @@
您确定要跳过并丢失录音吗?Are you sure you want to continue and lose the recording?您确定要重置所有应用数据吗?
+ Are you sure you want to clear offline data?否取消
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 04ba7ceb..3597680f 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index e3c37d74..12d7c986 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -117,6 +117,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -179,6 +180,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -348,6 +351,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 61fb824d..236e2987 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -120,6 +120,7 @@
User InterfaceAdvancedSave recordings on device
+ Clear offline clips and sentencesReset app dataNo experimental features are now availableOnly show the sentence text once the clip has completed playing
@@ -185,6 +186,8 @@
Customise API serverAre you sure you want to customise the API server? This is potentially a dangerous action.\nYou can reset to the default API server at any moment.Destination API server
+ Download only when connected to Wi-Fi
+ Upload only when connected to Wi-FiLoading sentence…Skip
@@ -402,6 +405,7 @@
Are you sure you want to skip and lose the recording?Are you sure you want to continue and lose the recording?Are you sure you want to reset all app data?
+ Are you sure you want to clear offline data?YesCancel
diff --git a/build.gradle b/build.gradle
index 4a32d80f..2998caf7 100644
--- a/build.gradle
+++ b/build.gradle
@@ -13,6 +13,7 @@ buildscript {
dependencies {
classpath Libs.androidGradlePlugin
classpath Libs.kotlinGradlePlugin
+ classpath 'com.android.tools.build:gradle:7.3.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
diff --git a/fake-ads/build.gradle b/fake-ads/build.gradle
index 44ce780d..47a9bcda 100644
--- a/fake-ads/build.gradle
+++ b/fake-ads/build.gradle
@@ -24,8 +24,8 @@ android {
}
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '1.8'
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 9720af35..7add329f 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sat Jul 03 17:05:46 CEST 2021
+#Tue Oct 25 21:23:36 CEST 2022
distributionBase=GRADLE_USER_HOME
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
diff --git a/images/icons/remove.svg b/images/icons/remove.svg
new file mode 100644
index 00000000..b55d52b3
--- /dev/null
+++ b/images/icons/remove.svg
@@ -0,0 +1,4 @@
+
+
\ No newline at end of file
diff --git a/images/icons/wifi.svg b/images/icons/wifi.svg
new file mode 100644
index 00000000..ee8e5c93
--- /dev/null
+++ b/images/icons/wifi.svg
@@ -0,0 +1,14 @@
+
+
+
diff --git a/lib/build.gradle b/lib/build.gradle
index 9e6b105b..5b639d5a 100644
--- a/lib/build.gradle
+++ b/lib/build.gradle
@@ -22,8 +22,8 @@ android {
}
}
compileOptions {
- sourceCompatibility = 1.8
- targetCompatibility = 1.8
+ sourceCompatibility = 11
+ targetCompatibility = 11
}
kotlinOptions {
jvmTarget = "1.8"
diff --git a/lib/src/main/java/org/commonvoice/saverio_lib/background/ClipsDownloadWorker.kt b/lib/src/main/java/org/commonvoice/saverio_lib/background/ClipsDownloadWorker.kt
index 7df0885c..759bcbd8 100644
--- a/lib/src/main/java/org/commonvoice/saverio_lib/background/ClipsDownloadWorker.kt
+++ b/lib/src/main/java/org/commonvoice/saverio_lib/background/ClipsDownloadWorker.kt
@@ -13,7 +13,7 @@ import org.commonvoice.saverio_lib.utils.getTimestampOfNowPlus
class ClipsDownloadWorker(
appContext: Context,
private val workerParams: WorkerParameters
-): CoroutineWorker(appContext, workerParams) {
+) : CoroutineWorker(appContext, workerParams) {
private val db = AppDB.getNewInstance(appContext)
private val prefManager = MainPrefManager(appContext)
@@ -32,6 +32,8 @@ class ClipsDownloadWorker(
clipsRepository.deleteWrongClips(currentLanguage)
val numberDifference = requiredClips - clipsRepository.getClipsCount()
+ var numberDifferenceToUse = numberDifference
+ if (numberDifferenceToUse > 50) numberDifferenceToUse = 50
return@coroutineScope when {
numberDifference < 0 -> {
@@ -45,19 +47,21 @@ class ClipsDownloadWorker(
listenPrefManager.noMoreClipsAvailable = false
- clipsRepository.loadNewClips(numberDifference, forEachClip = { clip ->
- clipsRepository.insertClip(clip.also {
- it.sentence.setLanguage(currentLanguage)
+ val newClips =
+ clipsRepository.loadNewClips(numberDifferenceToUse, forEachClip = { clip ->
+ clipsRepository.insertClip(clip.also {
+ it.sentence.setLanguage(currentLanguage)
+ })
+ }, onError = {
+ result = if (workerParams.runAttemptCount > 5) {
+ Result.failure()
+ } else {
+ Result.retry()
+ }
+ }, onEmpty = {
+ listenPrefManager.noMoreClipsAvailable = true
})
- }, onError = {
- result = if (workerParams.runAttemptCount > 5) {
- Result.failure()
- } else {
- Result.retry()
- }
- }, onEmpty = {
- listenPrefManager.noMoreClipsAvailable = true
- })
+
result
}
}
diff --git a/lib/src/main/java/org/commonvoice/saverio_lib/background/SentencesDownloadWorker.kt b/lib/src/main/java/org/commonvoice/saverio_lib/background/SentencesDownloadWorker.kt
index a955a3c1..145303ac 100644
--- a/lib/src/main/java/org/commonvoice/saverio_lib/background/SentencesDownloadWorker.kt
+++ b/lib/src/main/java/org/commonvoice/saverio_lib/background/SentencesDownloadWorker.kt
@@ -9,11 +9,12 @@ import org.commonvoice.saverio_lib.preferences.MainPrefManager
import org.commonvoice.saverio_lib.preferences.SpeakPrefManager
import org.commonvoice.saverio_lib.repositories.SentencesRepository
import org.commonvoice.saverio_lib.utils.getTimestampOfNowPlus
+import kotlin.math.log
class SentencesDownloadWorker(
appContext: Context,
private val workerParams: WorkerParameters
-): CoroutineWorker(appContext, workerParams) {
+) : CoroutineWorker(appContext, workerParams) {
private val db = AppDB.getNewInstance(appContext)
private val prefManager =
@@ -34,8 +35,11 @@ class SentencesDownloadWorker(
sentenceRepository.deleteWrongSentences(currentLanguage)
val numberDifference = requiredSentences - sentenceRepository.getSentenceCount()
+ var numberDifferenceToUse = numberDifference
+ if (numberDifferenceToUse > 50) numberDifferenceToUse = 50
return@coroutineScope when {
+
numberDifference < 0 -> {
Result.failure()
}
@@ -43,7 +47,7 @@ class SentencesDownloadWorker(
Result.success()
}
else -> {
- val newSentences = sentenceRepository.getNewSentences(numberDifference)
+ val newSentences = sentenceRepository.getNewSentences(numberDifferenceToUse)
if (!newSentences.isSuccessful) {
if (workerParams.runAttemptCount > 5) {
diff --git a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/GenericViewModel.kt b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/GenericViewModel.kt
new file mode 100644
index 00000000..81c28dab
--- /dev/null
+++ b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/GenericViewModel.kt
@@ -0,0 +1,18 @@
+package org.commonvoice.saverio_lib.viewmodels
+
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+
+class GenericViewModel : ViewModel() {
+ var fromFragment = MutableLiveData()
+ var nestedFragment = MutableLiveData()
+
+ fun setFromFragment(value: String) {
+ fromFragment.value = value
+ nestedFragment.value = ""
+ }
+
+ fun setNestedFragment(value: String) {
+ nestedFragment.value = value
+ }
+}
\ No newline at end of file
diff --git a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/ListenViewModel.kt b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/ListenViewModel.kt
index e02c3066..65e33b3f 100644
--- a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/ListenViewModel.kt
+++ b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/ListenViewModel.kt
@@ -19,20 +19,23 @@ import org.commonvoice.saverio_lib.models.Report
import org.commonvoice.saverio_lib.models.Sentence
import org.commonvoice.saverio_lib.preferences.ListenPrefManager
import org.commonvoice.saverio_lib.preferences.MainPrefManager
+import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.repositories.AppActionsRepository
import org.commonvoice.saverio_lib.repositories.ClipsRepository
import org.commonvoice.saverio_lib.repositories.ReportsRepository
import org.commonvoice.saverio_lib.repositories.ValidationsRepository
+import org.koin.android.ext.android.inject
class ListenViewModel(
handle: SavedStateHandle,
- private val clipsRepository: ClipsRepository,
+ public val clipsRepository: ClipsRepository,
private val validationsRepository: ValidationsRepository,
private val mediaPlayerRepository: MediaPlayerRepository,
private val reportsRepository: ReportsRepository,
private val workManager: WorkManager,
private val mainPrefManager: MainPrefManager,
private val listenPrefManager: ListenPrefManager,
+ private val settingsPrefManager: SettingsPrefManager,
private val appActionsRepository: AppActionsRepository,
) : ViewModel() {
@@ -58,7 +61,10 @@ class ListenViewModel(
} else {
delay(500)
_state.postValue(if (listenPrefManager.noMoreClipsAvailable) State.NO_MORE_CLIPS else State.STANDBY)
- ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ ClipsDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
}
}
@@ -70,7 +76,10 @@ class ListenViewModel(
}
withContext(Dispatchers.Main) {
_state.postValue(State.STANDBY)
- ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ ClipsDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
}
}
@@ -106,8 +115,14 @@ class ListenViewModel(
withContext(Dispatchers.Main) {
_state.postValue(State.STANDBY)
- ClipsDownloadWorker.attachOneTimeJobToWorkManager(workManager)
- ValidationsUploadWorker.attachToWorkManager(workManager)
+ ClipsDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
+ ValidationsUploadWorker.attachToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyUpload
+ )
}
appActionsRepository.insertAction(
@@ -145,7 +160,10 @@ class ListenViewModel(
"API = ${Build.VERSION.SDK_INT} (Android ${Build.VERSION.RELEASE})\n" +
"Server API = ${mainPrefManager.genericAPIUrl}"
)
- ReportsUploadWorker.attachToWorkManager(workManager)
+ ReportsUploadWorker.attachToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyUpload
+ )
skipClip()
}
}
diff --git a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/MainActivityViewModel.kt b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/MainActivityViewModel.kt
index 8d2904b6..9d618b19 100644
--- a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/MainActivityViewModel.kt
+++ b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/MainActivityViewModel.kt
@@ -1,10 +1,7 @@
package org.commonvoice.saverio_lib.viewmodels
import android.util.Log
-import androidx.lifecycle.LiveData
-import androidx.lifecycle.ViewModel
-import androidx.lifecycle.liveData
-import androidx.lifecycle.viewModelScope
+import androidx.lifecycle.*
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import org.commonvoice.saverio_lib.db.AppDB
@@ -17,7 +14,6 @@ class MainActivityViewModel(
private val userRepository: CVStatsRepository,
private val database: AppDB,
) : ViewModel() {
-
fun postStats(
appVersion: String,
versionCode: Int,
diff --git a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/SpeakViewModel.kt b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/SpeakViewModel.kt
index 3b2e3d48..c4e09aec 100644
--- a/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/SpeakViewModel.kt
+++ b/lib/src/main/java/org/commonvoice/saverio_lib/viewmodels/SpeakViewModel.kt
@@ -20,15 +20,17 @@ import org.commonvoice.saverio_lib.models.Recording
import org.commonvoice.saverio_lib.models.Report
import org.commonvoice.saverio_lib.models.Sentence
import org.commonvoice.saverio_lib.preferences.MainPrefManager
+import org.commonvoice.saverio_lib.preferences.SettingsPrefManager
import org.commonvoice.saverio_lib.preferences.SpeakPrefManager
import org.commonvoice.saverio_lib.repositories.AppActionsRepository
import org.commonvoice.saverio_lib.repositories.RecordingsRepository
import org.commonvoice.saverio_lib.repositories.ReportsRepository
import org.commonvoice.saverio_lib.repositories.SentencesRepository
+import org.koin.android.ext.android.inject
class SpeakViewModel(
private val savedStateHandle: SavedStateHandle,
- private val sentencesRepository: SentencesRepository,
+ public val sentencesRepository: SentencesRepository,
private val recordingsRepository: RecordingsRepository,
private val mediaRecorderRepository: MediaRecorderRepository,
private val mediaPlayerRepository: MediaPlayerRepository,
@@ -37,6 +39,7 @@ class SpeakViewModel(
private val workManager: WorkManager,
private val speakPrefManager: SpeakPrefManager,
private val mainPrefManager: MainPrefManager,
+ private val settingsPrefManager: SettingsPrefManager,
private val appActionsRepository: AppActionsRepository,
) : ViewModel() {
@@ -129,7 +132,10 @@ class SpeakViewModel(
}
withContext(Dispatchers.Main) {
_state.postValue(State.STANDBY)
- SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ SentencesDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
}
}
@@ -165,8 +171,14 @@ class SpeakViewModel(
currentRecording = null
withContext(Dispatchers.Main) {
_state.postValue(State.STANDBY)
- RecordingsUploadWorker.attachToWorkManager(workManager)
- SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ RecordingsUploadWorker.attachToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyUpload
+ )
+ SentencesDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
}
appActionsRepository.insertAction(
@@ -187,7 +199,10 @@ class SpeakViewModel(
} else {
delay(500) //Just to avoid a loop
_state.postValue(if (speakPrefManager.noMoreSentencesAvailable) State.NO_MORE_SENTENCES else State.STANDBY)
- SentencesDownloadWorker.attachOneTimeJobToWorkManager(workManager)
+ SentencesDownloadWorker.attachOneTimeJobToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyDownload
+ )
}
}
@@ -223,7 +238,10 @@ class SpeakViewModel(
"API = ${Build.VERSION.SDK_INT} (Android ${Build.VERSION.RELEASE})\n" +
"Server API = ${mainPrefManager.genericAPIUrl}"
)
- ReportsUploadWorker.attachToWorkManager(workManager)
+ ReportsUploadWorker.attachToWorkManager(
+ workManager,
+ wifiOnly = settingsPrefManager.wifiOnlyUpload
+ )
skipSentence()
}
}
diff --git a/play-services-ads/build.gradle b/play-services-ads/build.gradle
index 28eb42ec..1752fa6c 100644
--- a/play-services-ads/build.gradle
+++ b/play-services-ads/build.gradle
@@ -24,8 +24,8 @@ android {
}
}
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility JavaVersion.VERSION_11
+ targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '1.8'