+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+package com.ichi2.anki.dialogs
+
+import android.app.Activity
+import android.content.Intent
+import android.net.Uri
+import androidx.appcompat.app.AlertDialog
+import androidx.fragment.app.FragmentManager
+import com.ichi2.anki.CrashReportService
+import com.ichi2.anki.R
+import com.ichi2.anki.TtsVoices
+import com.ichi2.anki.utils.openUrl
+import com.ichi2.libanki.TTSTag
+import com.ichi2.utils.show
+import timber.log.Timber
+
+object TtsPlaybackErrorDialog {
+
+ fun ttsPlaybackErrorDialog(activity: Activity, fragmentManager: FragmentManager, ttsTag: TTSTag?) {
+ Timber.i("Dialog is shown to guide users correctly to troubleshoot the Tts error: Missing voice error")
+ activity.runOnUiThread {
+ AlertDialog.Builder(activity).show {
+ setTitle(activity.getString(R.string.tts_error_dialog_title))
+ setMessage(activity.getString(R.string.tts_error_dialog_reason_text, TtsVoices.ttsEngine, ttsTag?.lang))
+ setNegativeButton(context.getString(R.string.tts_error_dialog_change_button_text)) { _, _ -> openSettings(activity) }
+ setPositiveButton(activity.getString(R.string.tts_error_dialog_supported_voices_button_text)) { _, _ -> showVoicesDialog(fragmentManager) }
+ setNeutralButton(context.getString(R.string.help)) { _, _ ->
+ activity.openUrl(Uri.parse(context.getString(R.string.link_faq_tts)))
+ }
+ }
+ }
+ }
+
+ private fun openSettings(activity: Activity) {
+ try {
+ Timber.i("Opening TextToSpeech engine settings to change the engine")
+ activity.startActivity(
+ Intent("com.android.settings.TTS_SETTINGS").apply { flags = Intent.FLAG_ACTIVITY_NEW_TASK }
+ )
+ } catch (e: Exception) {
+ CrashReportService.sendExceptionReport(e, e.localizedMessage)
+ }
+ }
+
+ private fun showVoicesDialog(fragmentManager: FragmentManager) {
+ TtsVoicesDialogFragment().show(fragmentManager, "TTS_VOICES_DIALOG_FRAGMENT")
+ }
+}
diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/web/HttpFetcher.kt b/AnkiDroid/src/main/java/com/ichi2/anki/web/HttpFetcher.kt
index 21fac2f2596f..405919a4df50 100644
--- a/AnkiDroid/src/main/java/com/ichi2/anki/web/HttpFetcher.kt
+++ b/AnkiDroid/src/main/java/com/ichi2/anki/web/HttpFetcher.kt
@@ -19,29 +19,23 @@
****************************************************************************************/
package com.ichi2.anki.web
-import android.content.Context
-import com.ichi2.compat.CompatHelper
import com.ichi2.utils.KotlinCleanup
import com.ichi2.utils.VersionUtils.pkgVersionName
import okhttp3.Interceptor
import okhttp3.OkHttpClient
import okhttp3.Request
-import okhttp3.RequestBody.Companion.toRequestBody
-import okhttp3.Response
import timber.log.Timber
import java.io.BufferedReader
-import java.io.File
import java.io.InputStreamReader
-import java.net.URL
import java.nio.charset.Charset
import java.util.concurrent.TimeUnit
const val CONN_TIMEOUT = 30000
/**
- * Helper class to download from web.
- *
- * Used in AsyncTasks in Translation and Pronunciation activities, and more...
+ * Helper class for downloads
+ *
+ * Used for Addon downloads
*/
object HttpFetcher {
/**
@@ -116,40 +110,4 @@ object HttpFetcher {
"FAILED with exception: " + e.message
}
}
-
- fun downloadFileToSdCard(UrlToFile: String, context: Context, prefix: String?): String {
- var str = downloadFileToSdCardMethod(UrlToFile, context, prefix, "GET")
- if (str.startsWith("FAIL")) {
- str = downloadFileToSdCardMethod(UrlToFile, context, prefix, "POST")
- }
- return str
- }
-
- private fun downloadFileToSdCardMethod(UrlToFile: String, context: Context, prefix: String?, method: String): String {
- var response: Response? = null
- return try {
- val url = URL(UrlToFile)
- val extension = UrlToFile.substring(UrlToFile.length - 4)
- val requestBuilder = Request.Builder()
- requestBuilder.url(url)
- if ("GET" == method) {
- requestBuilder.get()
- } else {
- requestBuilder.post(ByteArray(0).toRequestBody(null, 0, 0))
- }
- val request: Request = requestBuilder.build()
- val client: OkHttpClient = getOkHttpBuilder(true).build()
- response = client.newCall(request).execute()
- val file = File.createTempFile(prefix!!, extension, context.cacheDir)
- response.body!!.byteStream().use { inputStream ->
- CompatHelper.compat.copyFile(inputStream, file.canonicalPath)
- }
- file.absolutePath
- } catch (e: Exception) {
- Timber.w(e)
- "FAILED " + e.message
- } finally {
- response?.body?.close()
- }
- }
}
diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt
new file mode 100644
index 000000000000..0486c7babe05
--- /dev/null
+++ b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidget.kt
@@ -0,0 +1,323 @@
+/*
+ * Copyright (c) 2024 Anoop
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+package com.ichi2.widget.cardanalysis
+
+import android.app.PendingIntent
+import android.appwidget.AppWidgetManager
+import android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE
+import android.content.ComponentName
+import android.content.Context
+import android.content.Intent
+import android.view.View
+import android.widget.RemoteViews
+import com.ichi2.anki.AnkiDroidApp
+import com.ichi2.anki.CrashReportService
+import com.ichi2.anki.R
+import com.ichi2.anki.Reviewer
+import com.ichi2.anki.analytics.UsageAnalytics
+import com.ichi2.anki.isCollectionEmpty
+import com.ichi2.anki.pages.DeckOptions
+import com.ichi2.libanki.DeckId
+import com.ichi2.libanki.Decks.Companion.NOT_FOUND_DECK_ID
+import com.ichi2.widget.ACTION_UPDATE_WIDGET
+import com.ichi2.widget.AnalyticsWidgetProvider
+import com.ichi2.widget.cancelRecurringAlarm
+import com.ichi2.widget.deckpicker.DeckWidgetData
+import com.ichi2.widget.deckpicker.getDeckNameAndStats
+import com.ichi2.widget.setRecurringAlarm
+import kotlinx.coroutines.launch
+import timber.log.Timber
+
+/**
+ * This widget displays a deck with the respective new, learning, and review card counts.
+ * It updates every minute and if there is any changes in study queues.
+ * It allows user to open the reviewer directly by clicking on the deck same as deckpicker.
+ * It can be configured and reconfigured by holding the widget.
+ */
+class CardAnalysisWidget : AnalyticsWidgetProvider() {
+
+ companion object {
+
+ /**
+ * Key used for passing the selected deck ID in the intent extras.
+ */
+ const val EXTRA_SELECTED_DECK_ID = "card_analysis_widget_selected_deck_id"
+
+ /**
+ * Updates the widget with the deck data.
+ *
+ * This method updates the widget view content with the deck data corresponding
+ * to the provided deck ID. If the deck is deleted, the widget will be show a message "Missing deck. Please reconfigure".
+ *
+ * @param context the context of the application
+ * @param appWidgetManager the AppWidgetManager instance
+ * @param appWidgetId the ID of the app widget
+ */
+ fun updateWidget(
+ context: Context,
+ appWidgetManager: AppWidgetManager,
+ appWidgetId: Int
+ ) {
+ val deckId = getDeckIdForWidget(context, appWidgetId)
+ val remoteViews = RemoteViews(context.packageName, R.layout.widget_card_analysis)
+
+ if (deckId == NOT_FOUND_DECK_ID) {
+ // If deckId is null, it means no deck was selected or the selected deck was deleted.
+ // In this case, we don't save the null value to preferences because we want to
+ // keep the previous deck ID if the user reconfigures the widget later.
+ // Instead, we show a message prompting the user to reconfigure the widget.
+ showMissingDeck(context, appWidgetManager, appWidgetId, remoteViews)
+ return
+ }
+
+ AnkiDroidApp.applicationScope.launch {
+ val isCollectionEmpty = isCollectionEmpty()
+ if (isCollectionEmpty) {
+ showCollectionDeck(context, appWidgetManager, appWidgetId, remoteViews)
+ return@launch
+ }
+
+ val deckData = getDeckNameAndStats(deckId)
+ if (deckData == null) {
+ // The deck was found but no data could be fetched, so update the preferences to remove the deck.
+ // This ensures that the widget does not retain a reference to a non-existent or invalid deck.
+ CardAnalysisWidgetPreferences(context).saveSelectedDeck(appWidgetId, NOT_FOUND_DECK_ID)
+ showMissingDeck(context, appWidgetManager, appWidgetId, remoteViews)
+ return@launch
+ }
+ showDeck(context, appWidgetManager, appWidgetId, remoteViews, deckData)
+ }
+ }
+
+ private fun getDeckIdForWidget(context: Context, appWidgetId: Int): DeckId {
+ val widgetPreferences = CardAnalysisWidgetPreferences(context)
+ return widgetPreferences.getSelectedDeckIdFromPreferences(appWidgetId) ?: NOT_FOUND_DECK_ID
+ }
+
+ private fun showCollectionDeck(
+ context: Context,
+ appWidgetManager: AppWidgetManager,
+ appWidgetId: Int,
+ remoteViews: RemoteViews
+ ) {
+ remoteViews.setTextViewText(R.id.empty_widget, context.getString(R.string.app_not_initialized_new))
+ remoteViews.setViewVisibility(R.id.empty_widget, View.VISIBLE)
+ remoteViews.setViewVisibility(R.id.cardAnalysisDataHolder, View.GONE)
+ remoteViews.setViewVisibility(R.id.deckNameCardAnalysis, View.GONE)
+
+ appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
+ }
+
+ private fun showMissingDeck(
+ context: Context,
+ appWidgetManager: AppWidgetManager,
+ appWidgetId: Int,
+ remoteViews: RemoteViews
+ ) {
+ // Show empty_widget and set click listener to open configuration
+ remoteViews.setViewVisibility(R.id.empty_widget, View.VISIBLE)
+ remoteViews.setViewVisibility(R.id.cardAnalysisDataHolder, View.GONE)
+ remoteViews.setViewVisibility(R.id.deckNameCardAnalysis, View.GONE)
+
+ val configIntent = Intent(context, CardAnalysisWidgetConfig::class.java).apply {
+ putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId)
+ flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
+ }
+ val configPendingIntent = PendingIntent.getActivity(
+ context,
+ appWidgetId,
+ configIntent,
+ PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
+ )
+ remoteViews.setOnClickPendingIntent(R.id.empty_widget, configPendingIntent)
+
+ appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
+ }
+
+ private fun showDeck(
+ context: Context,
+ appWidgetManager: AppWidgetManager,
+ appWidgetId: Int,
+ remoteViews: RemoteViews,
+ deckData: DeckWidgetData
+ ) {
+ remoteViews.setTextViewText(R.id.deckNameCardAnalysis, deckData.name)
+ remoteViews.setTextViewText(R.id.deckNew_card_analysis_widget, deckData.newCount.toString())
+ remoteViews.setTextViewText(R.id.deckDue_card_analysis_widget, deckData.reviewCount.toString())
+ remoteViews.setTextViewText(R.id.deckLearn_card_analysis_widget, deckData.learnCount.toString())
+
+ // Hide empty_widget and show the actual widget content
+ remoteViews.setViewVisibility(R.id.empty_widget, View.GONE)
+ remoteViews.setViewVisibility(R.id.cardAnalysisDataHolder, View.VISIBLE)
+ remoteViews.setViewVisibility(R.id.deckNameCardAnalysis, View.VISIBLE)
+
+ val isEmptyDeck = deckData.newCount == 0 && deckData.reviewCount == 0 && deckData.learnCount == 0
+
+ val intent = if (!isEmptyDeck) {
+ Intent(context, Reviewer::class.java).apply {
+ action = Intent.ACTION_VIEW
+ putExtra("deckId", deckData.deckId)
+ addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
+ }
+ } else {
+ DeckOptions.getIntent(context, deckData.deckId)
+ }
+ val pendingIntent = PendingIntent.getActivity(
+ context,
+ deckData.deckId.toInt(),
+ intent,
+ PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
+ )
+ remoteViews.setOnClickPendingIntent(R.id.deckNameCardAnalysis, pendingIntent)
+
+ appWidgetManager.updateAppWidget(appWidgetId, remoteViews)
+ }
+
+ /**
+ * Updates the Card Analysis Widgets based on the current state of the application.
+ * It fetches the App Widget IDs and updates each widget with the associated deck ID.
+ */
+ fun updateCardAnalysisWidgets(context: Context) {
+ val appWidgetManager = AppWidgetManager.getInstance(context)
+
+ val provider = ComponentName(context, CardAnalysisWidget::class.java)
+ Timber.d("Fetching appWidgetIds for provider: $provider")
+
+ val appWidgetIds = appWidgetManager.getAppWidgetIds(provider)
+ Timber.d("AppWidgetIds to update: ${appWidgetIds.joinToString(", ")}")
+
+ for (appWidgetId in appWidgetIds) {
+ getDeckIdForWidget(context, appWidgetId)
+ updateWidget(context, appWidgetManager, appWidgetId)
+ }
+ }
+ }
+
+ override fun performUpdate(
+ context: Context,
+ appWidgetManager: AppWidgetManager,
+ appWidgetIds: IntArray,
+ usageAnalytics: UsageAnalytics
+ ) {
+ Timber.d("Performing widget update for appWidgetIds: %s", appWidgetIds)
+
+ for (widgetId in appWidgetIds) {
+ Timber.d("Updating widget with ID: $widgetId")
+
+ // Get the selected deck ID internally
+ val selectedDeckId = getDeckIdForWidget(context, widgetId)
+
+ /**
+ * Explanation of behavior when selectedDeckId is empty
+ * If selectedDeckId is empty, the widget will retain the previous deck.
+ * This behavior ensures that the widget does not display an empty view, which could be
+ * confusing to the user. Instead, it maintains the last known state until a new valid
+ * deck ID is provided. This approach prioritizes providing a consistent
+ * user experience over showing an empty or default state.
+ */
+ Timber.d("Selected deck ID: $selectedDeckId for widget ID: $widgetId")
+
+ // Update the widget with the selected deck ID
+ updateWidget(context, appWidgetManager, widgetId)
+ // Set the recurring alarm for the widget
+ setRecurringAlarm(context, widgetId, CardAnalysisWidget::class.java)
+ }
+
+ Timber.d("Widget update process completed for appWidgetIds: ${appWidgetIds.joinToString(", ")}")
+ }
+
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (context == null || intent == null) {
+ Timber.e("Context or intent is null in onReceive")
+ return
+ }
+ super.onReceive(context, intent)
+
+ val widgetPreferences = CardAnalysisWidgetPreferences(context)
+
+ when (intent.action) {
+ ACTION_APPWIDGET_UPDATE -> {
+ val appWidgetManager = AppWidgetManager.getInstance(context)
+
+ // Retrieve the widget ID from the intent
+ val appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID)
+ val selectedDeckId = intent.getLongExtra(EXTRA_SELECTED_DECK_ID, -1L)
+
+ Timber.d("Received ACTION_APPWIDGET_UPDATE with widget ID: $appWidgetId and selectedDeckId: $selectedDeckId")
+
+ if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
+ Timber.d("Updating widget with ID: $appWidgetId")
+
+ // Update the widget using the internally fetched deck ID
+ updateWidget(context, appWidgetManager, appWidgetId)
+
+ Timber.d("Widget update process completed for widget ID: $appWidgetId")
+ }
+ }
+ // Custom action to update a specific widget, triggered by the setRecurringAlarm method
+ ACTION_UPDATE_WIDGET -> {
+ val appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID)
+ if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
+ Timber.d("Received ACTION_UPDATE_WIDGET for widget ID: $appWidgetId")
+
+ // Update the widget using the internally fetched deck ID
+ updateWidget(context, AppWidgetManager.getInstance(context), appWidgetId)
+ }
+ }
+ AppWidgetManager.ACTION_APPWIDGET_DELETED -> {
+ Timber.d("ACTION_APPWIDGET_DELETED received")
+ val appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID)
+ if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
+ Timber.d("Deleting widget with ID: $appWidgetId")
+ cancelRecurringAlarm(context, appWidgetId, CardAnalysisWidget::class.java)
+ widgetPreferences.deleteDeckData(appWidgetId)
+ } else {
+ Timber.e("Invalid widget ID received in ACTION_APPWIDGET_DELETED")
+ }
+ }
+ AppWidgetManager.ACTION_APPWIDGET_ENABLED -> {
+ Timber.d("Widget enabled")
+ }
+ AppWidgetManager.ACTION_APPWIDGET_DISABLED -> {
+ Timber.d("Widget disabled")
+ }
+ else -> {
+ Timber.e("Unexpected action received: ${intent.action}")
+ CrashReportService.sendExceptionReport(
+ Exception("Unexpected action received: ${intent.action}"),
+ "CardAnalysisWidget - onReceive",
+ null,
+ onlyIfSilent = true
+ )
+ }
+ }
+ }
+
+ override fun onDeleted(context: Context?, appWidgetIds: IntArray?) {
+ if (context == null) {
+ Timber.w("Context is null in onDeleted")
+ return
+ }
+
+ val widgetPreferences = CardAnalysisWidgetPreferences(context)
+
+ appWidgetIds?.forEach { widgetId ->
+ cancelRecurringAlarm(context, widgetId, CardAnalysisWidget::class.java)
+ widgetPreferences.deleteDeckData(widgetId)
+ }
+ }
+}
diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt
new file mode 100644
index 000000000000..e687d3985832
--- /dev/null
+++ b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetConfig.kt
@@ -0,0 +1,362 @@
+/*
+ * Copyright (c) 2024 Anoop
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+package com.ichi2.widget.cardanalysis
+
+import android.appwidget.AppWidgetManager
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.ContextWrapper
+import android.content.Intent
+import android.content.IntentFilter
+import android.os.Bundle
+import android.view.View
+import android.widget.Button
+import androidx.activity.OnBackPressedCallback
+import androidx.annotation.StringRes
+import androidx.core.view.isVisible
+import androidx.lifecycle.lifecycleScope
+import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.google.android.material.floatingactionbutton.FloatingActionButton
+import com.google.android.material.snackbar.Snackbar
+import com.ichi2.anki.AnkiActivity
+import com.ichi2.anki.R
+import com.ichi2.anki.dialogs.DeckSelectionDialog
+import com.ichi2.anki.dialogs.DeckSelectionDialog.DeckSelectionListener
+import com.ichi2.anki.dialogs.DeckSelectionDialog.SelectableDeck
+import com.ichi2.anki.dialogs.DiscardChangesDialog
+import com.ichi2.anki.isCollectionEmpty
+import com.ichi2.anki.showThemedToast
+import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider
+import com.ichi2.anki.snackbar.SnackbarBuilder
+import com.ichi2.anki.snackbar.showSnackbar
+import com.ichi2.widget.WidgetConfigScreenAdapter
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
+import timber.log.Timber
+
+// TODO: Ensure that the Deck Selection Dialog does not close automatically while the user is interacting with it.
+
+class CardAnalysisWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackbarBuilderProvider {
+
+ private var appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID
+ lateinit var deckAdapter: WidgetConfigScreenAdapter
+ private lateinit var cardAnalysisWidgetPreferences: CardAnalysisWidgetPreferences
+
+ /**
+ * Maximum number of decks allowed in the widget.
+ */
+ private val MAX_DECKS_ALLOWED = 1
+ private var hasUnsavedChanges = false
+ private var isAdapterObserverRegistered = false
+ private lateinit var onBackPressedCallback: OnBackPressedCallback
+ private val EXTRA_SELECTED_DECK_IDS = "card_analysis_widget_selected_deck_ids"
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ if (showedActivityFailedScreen(savedInstanceState)) {
+ return
+ }
+
+ super.onCreate(savedInstanceState)
+
+ if (!ensureStoragePermissions()) {
+ return
+ }
+
+ setContentView(R.layout.widget_deck_picker_config)
+
+ cardAnalysisWidgetPreferences = CardAnalysisWidgetPreferences(this)
+
+ appWidgetId = intent.extras?.getInt(
+ AppWidgetManager.EXTRA_APPWIDGET_ID,
+ AppWidgetManager.INVALID_APPWIDGET_ID
+ ) ?: AppWidgetManager.INVALID_APPWIDGET_ID
+
+ if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
+ Timber.v("Invalid App Widget ID")
+ finish()
+ return
+ }
+
+ // Check if the collection is empty before proceeding and if the collection is empty, show a toast instead of the configuration view.
+ lifecycleScope.launch {
+ if (isCollectionEmpty()) {
+ showThemedToast(
+ this@CardAnalysisWidgetConfig,
+ R.string.app_not_initialized_new,
+ false
+ )
+ finish()
+ return@launch
+ }
+
+ initializeUIComponents()
+ // Show the Deck selection dialog only when there are no decks selected while opening the configuration screen.
+ val selectedDeckId = cardAnalysisWidgetPreferences.getSelectedDeckIdFromPreferences(appWidgetId)
+ if (selectedDeckId == null) {
+ showDeckSelectionDialog()
+ }
+ }
+ }
+
+ fun showSnackbar(message: CharSequence) {
+ showSnackbar(
+ message,
+ Snackbar.LENGTH_LONG
+ )
+ }
+
+ fun showSnackbar(@StringRes messageResId: Int) {
+ showSnackbar(getString(messageResId))
+ }
+
+ fun initializeUIComponents() {
+ deckAdapter = WidgetConfigScreenAdapter { deck, _ ->
+ deckAdapter.removeDeck(deck.deckId)
+ showSnackbar(R.string.deck_removed_from_widget)
+ updateViewVisibility()
+ updateFabVisibility()
+ updateSubmitButtonText()
+ setUnsavedChanges(true)
+ }
+
+ findViewById(R.id.recyclerViewSelectedDecks).apply {
+ layoutManager = LinearLayoutManager(context)
+ adapter = this@CardAnalysisWidgetConfig.deckAdapter
+ }
+
+ // Find and update the submit button text based on the initial deck selection state
+ val submitButton = findViewById(R.id.submit_button)
+ updateSubmitButtonText()
+
+ submitButton.setOnClickListener {
+ finish() // Close the configuration screen when the button is clicked
+ }
+
+ findViewById(R.id.fabWidgetDeckPicker).setOnClickListener {
+ showDeckSelectionDialog()
+ }
+
+ updateViewWithSavedPreferences()
+
+ // Update the visibility of the "no decks" placeholder and the widget configuration container
+ updateViewVisibility()
+
+ registerReceiver(widgetRemovedReceiver, IntentFilter(AppWidgetManager.ACTION_APPWIDGET_DELETED))
+
+ onBackPressedCallback = object : OnBackPressedCallback(hasUnsavedChanges) {
+ override fun handleOnBackPressed() {
+ if (isEnabled) {
+ showDiscardChangesDialog()
+ }
+ }
+ }
+
+ onBackPressedDispatcher.addCallback(this, onBackPressedCallback)
+
+ // Register the AdapterDataObserver if not already registered
+ if (!isAdapterObserverRegistered) {
+ deckAdapter.registerAdapterDataObserver(object : RecyclerView.AdapterDataObserver() {
+ override fun onChanged() {
+ }
+ })
+ isAdapterObserverRegistered = true
+ }
+ }
+
+ /** Updates the text of the submit button based on the selected deck count. */
+ private fun updateSubmitButtonText() {
+ val submitButton = findViewById(R.id.submit_button)
+ if (deckAdapter.itemCount > 0) {
+ submitButton.text = getString(R.string.dialog_cancel)
+ submitButton.visibility = View.VISIBLE
+ } else {
+ submitButton.visibility = View.GONE
+ }
+ }
+
+ private fun showDiscardChangesDialog() {
+ DiscardChangesDialog.showDialog(
+ context = this@CardAnalysisWidgetConfig,
+ positiveMethod = {
+ // Discard changes and finish the activity
+ hasUnsavedChanges = false
+ finish()
+ }
+ )
+ }
+
+ private fun updateCallbackState() {
+ onBackPressedCallback.isEnabled = hasUnsavedChanges
+ }
+
+ // Call this method when there are unsaved changes
+ private fun setUnsavedChanges(unsaved: Boolean) {
+ hasUnsavedChanges = unsaved
+ updateCallbackState()
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ unregisterReceiverSilently(widgetRemovedReceiver)
+ }
+
+ override val baseSnackbarBuilder: SnackbarBuilder = {
+ anchorView = findViewById(R.id.fabWidgetDeckPicker)
+ }
+
+ /** Updates the visibility of the FloatingActionButton based on the number of selected decks */
+ private fun updateFabVisibility() {
+ lifecycleScope.launch {
+ // Directly check if there's exactly one deck selected
+ val selectedDeckCount = deckAdapter.itemCount
+
+ // Find the FloatingActionButton by its ID
+ val fab = findViewById(R.id.fabWidgetDeckPicker)
+
+ // Make the FAB visible only if no deck is selected (allow adding one deck)
+ fab.isVisible = selectedDeckCount == 0
+ }
+ }
+
+ /** Updates the view according to the saved preference for appWidgetId.*/
+ fun updateViewWithSavedPreferences() {
+ val selectedDeckId = cardAnalysisWidgetPreferences.getSelectedDeckIdFromPreferences(appWidgetId) ?: return
+ lifecycleScope.launch {
+ val decks = fetchDecks()
+ val selectedDecks = decks.filter { it.deckId == selectedDeckId }
+ selectedDecks.forEach { deckAdapter.addDeck(it) }
+ updateViewVisibility()
+ updateFabVisibility()
+ updateSubmitButtonText()
+ }
+ }
+
+ /** Asynchronously displays the list of deck in the selection dialog. */
+ private fun showDeckSelectionDialog() {
+ lifecycleScope.launch {
+ val decks = fetchDecks()
+ displayDeckSelectionDialog(decks)
+ }
+ }
+
+ /** Returns the list of standard deck. */
+ private suspend fun fetchDecks(): List {
+ return withContext(Dispatchers.IO) {
+ SelectableDeck.fromCollection(includeFiltered = false)
+ }
+ }
+
+ /** Displays the deck selection dialog with the provided list of decks. */
+ private fun displayDeckSelectionDialog(decks: List) {
+ val dialog = DeckSelectionDialog.newInstance(
+ title = getString(R.string.select_deck_title),
+ summaryMessage = null,
+ keepRestoreDefaultButton = false,
+ decks = decks
+ )
+ dialog.show(supportFragmentManager, "DeckSelectionDialog")
+ }
+
+ /**
+ * Called when a deck is selected from the deck selection dialog.
+ *
+ * This method adds the selected deck to the `deckAdapter`, updates the visibility of views,
+ * and immediately saves the selected deck to preferences.
+ *
+ * @param deck The selected deck, or `null` if no deck was selected.
+ */
+ override fun onDeckSelected(deck: SelectableDeck?) {
+ if (deck == null) {
+ return
+ }
+
+ // Check if the deck is being added to a fully occupied selection
+ if (deckAdapter.itemCount >= MAX_DECKS_ALLOWED) {
+ return
+ } else {
+ // Add the deck and update views
+ deckAdapter.addDeck(deck)
+ updateViewVisibility()
+ updateFabVisibility()
+ setUnsavedChanges(true)
+
+ // Save the selected deck immediately
+ saveSelectedDecksToPreferencesCardAnalysisWidget()
+ setUnsavedChanges(false)
+
+ // Update the widget with the new selected deck ID
+ cardAnalysisWidgetPreferences.getSelectedDeckIdFromPreferences(appWidgetId)
+ val appWidgetManager = AppWidgetManager.getInstance(this)
+ CardAnalysisWidget.updateWidget(this, appWidgetManager, appWidgetId)
+
+ val resultValue = Intent().putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId)
+ setResult(RESULT_OK, resultValue)
+
+ sendBroadcast(Intent(this, CardAnalysisWidget::class.java))
+
+ finish()
+ }
+ }
+
+ /** Updates the visibility of the "no decks" placeholder and the widget configuration container */
+ fun updateViewVisibility() {
+ val noDecksPlaceholder = findViewById(R.id.no_decks_placeholder)
+ val widgetConfigContainer = findViewById(R.id.widgetConfigContainer)
+
+ noDecksPlaceholder.isVisible = deckAdapter.itemCount == 0
+ widgetConfigContainer.isVisible = deckAdapter.itemCount > 0
+ }
+
+ fun saveSelectedDecksToPreferencesCardAnalysisWidget() {
+ val selectedDeck = deckAdapter.deckIds.getOrNull(0)
+ cardAnalysisWidgetPreferences.saveSelectedDeck(appWidgetId, selectedDeck)
+
+ val updateIntent = Intent(this, CardAnalysisWidget::class.java).apply {
+ action = AppWidgetManager.ACTION_APPWIDGET_UPDATE
+ putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, intArrayOf(appWidgetId))
+ putExtra(EXTRA_SELECTED_DECK_IDS, selectedDeck)
+ }
+
+ sendBroadcast(updateIntent)
+ }
+
+ /** BroadcastReceiver to handle widget removal. */
+ private val widgetRemovedReceiver = object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ if (intent?.action != AppWidgetManager.ACTION_APPWIDGET_DELETED) {
+ return
+ }
+
+ val appWidgetId = intent.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID)
+ if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {
+ return
+ }
+
+ cardAnalysisWidgetPreferences.deleteDeckData(appWidgetId)
+ }
+ }
+}
+
+fun ContextWrapper.unregisterReceiverSilently(receiver: BroadcastReceiver) {
+ try {
+ unregisterReceiver(receiver)
+ } catch (e: IllegalArgumentException) {
+ Timber.d(e, "unregisterReceiverSilently")
+ }
+}
diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetPreferences.kt b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetPreferences.kt
new file mode 100644
index 000000000000..5976fad8b331
--- /dev/null
+++ b/AnkiDroid/src/main/java/com/ichi2/widget/cardanalysis/CardAnalysisWidgetPreferences.kt
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2024 Anoop
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+package com.ichi2.widget.cardanalysis
+
+import android.content.Context
+import androidx.core.content.edit
+import com.ichi2.libanki.DeckId
+import com.ichi2.libanki.Decks.Companion.NOT_FOUND_DECK_ID
+
+class CardAnalysisWidgetPreferences(context: Context) {
+
+ /**
+ * Prefix for the SharedPreferences key used to store the selected deck for the Card Analysis Widget.
+ * The full key is constructed by appending the appWidgetId to this prefix, ensuring that each
+ * widget instance has a unique key. This approach helps prevent typos and ensures consistency
+ * across the codebase when accessing or modifying the stored deck selections.
+ */
+
+ private val cardAnalysisWidgetSharedPreferences = context.getSharedPreferences("CardAnalysisExtraWidgetPrefs", Context.MODE_PRIVATE)
+
+ /**
+ * Deletes the selected deck ID from the shared preferences for the given widget ID.
+ */
+ fun deleteDeckData(appWidgetId: Int) {
+ cardAnalysisWidgetSharedPreferences.edit {
+ remove(getCardAnalysisExtraWidgetKey(appWidgetId))
+ }
+ }
+
+ fun getSelectedDeckIdFromPreferences(appWidgetId: Int): DeckId? {
+ val selectedDeckString = cardAnalysisWidgetSharedPreferences.getLong(
+ getCardAnalysisExtraWidgetKey(appWidgetId),
+ NOT_FOUND_DECK_ID
+ )
+ return selectedDeckString.takeIf { it != NOT_FOUND_DECK_ID }
+ }
+
+ fun saveSelectedDeck(appWidgetId: Int, selectedDeck: DeckId?) {
+ cardAnalysisWidgetSharedPreferences.edit {
+ putLong(getCardAnalysisExtraWidgetKey(appWidgetId), selectedDeck ?: NOT_FOUND_DECK_ID)
+ }
+ }
+}
+
+/**
+ * Generates the key for the shared preferences for the given widget ID.
+ */
+private fun getCardAnalysisExtraWidgetKey(appWidgetId: Int): String {
+ return "card_analysis_extra_widget_selected_deck_$appWidgetId"
+}
diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidget.kt b/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidget.kt
index d468f385ca5d..5ba7e7d32198 100644
--- a/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidget.kt
+++ b/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidget.kt
@@ -18,6 +18,7 @@ package com.ichi2.widget.deckpicker
import android.app.PendingIntent
import android.appwidget.AppWidgetManager
+import android.appwidget.AppWidgetManager.ACTION_APPWIDGET_UPDATE
import android.content.ComponentName
import android.content.Context
import android.content.Intent
@@ -29,15 +30,14 @@ import com.ichi2.anki.R
import com.ichi2.anki.Reviewer
import com.ichi2.anki.analytics.UsageAnalytics
import com.ichi2.anki.pages.DeckOptions
+import com.ichi2.libanki.DeckId
import com.ichi2.widget.ACTION_UPDATE_WIDGET
import com.ichi2.widget.AnalyticsWidgetProvider
-import com.ichi2.widget.WidgetPreferences
import com.ichi2.widget.cancelRecurringAlarm
import com.ichi2.widget.setRecurringAlarm
import kotlinx.coroutines.launch
import timber.log.Timber
-typealias DeckId = Long
typealias AppWidgetId = Int
/**
@@ -49,7 +49,7 @@ typealias AppWidgetId = Int
* @property learnCount The number of cards in the learning phase.
* @property newCount The number of new cards.
*/
-data class DeckPickerWidgetData(
+data class DeckWidgetData(
val deckId: DeckId,
val name: String,
val reviewCount: Int,
@@ -67,11 +67,6 @@ data class DeckPickerWidgetData(
class DeckPickerWidget : AnalyticsWidgetProvider() {
companion object {
- /**
- * Action identifier to trigger updating the app widget.
- * This constant is used to trigger the update of all widgets by the AppWidgetManager.
- */
- const val ACTION_APPWIDGET_UPDATE = AppWidgetManager.ACTION_APPWIDGET_UPDATE
/**
* Key used for passing the selected deck IDs in the intent extras.
@@ -102,7 +97,7 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
val remoteViews = RemoteViews(context.packageName, R.layout.widget_deck_picker_large)
AnkiDroidApp.applicationScope.launch {
- val deckData = getDeckNameAndStats(deckIds.toList())
+ val deckData = getDeckNamesAndStats(deckIds.toList())
remoteViews.removeAllViews(R.id.deckCollection)
@@ -159,8 +154,8 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
Timber.d("AppWidgetIds to update: ${appWidgetIds.joinToString(", ")}")
for (appWidgetId in appWidgetIds) {
- val widgetPreferences = WidgetPreferences(context)
- val deckIds = widgetPreferences.getSelectedDeckIdsFromPreferencesDeckPickerWidget(appWidgetId)
+ val widgetPreferences = DeckPickerWidgetPreferences(context)
+ val deckIds = widgetPreferences.getSelectedDeckIdsFromPreferences(appWidgetId)
updateWidget(context, appWidgetManager, appWidgetId, deckIds)
}
}
@@ -172,13 +167,13 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
appWidgetIds: IntArray,
usageAnalytics: UsageAnalytics
) {
- Timber.d("Performing widget update for appWidgetIds: ${appWidgetIds.joinToString(", ")}")
+ Timber.d("Performing widget update for appWidgetIds: %s", appWidgetIds)
- val widgetPreferences = WidgetPreferences(context)
+ val widgetPreferences = DeckPickerWidgetPreferences(context)
for (widgetId in appWidgetIds) {
Timber.d("Updating widget with ID: $widgetId")
- val selectedDeckIds = widgetPreferences.getSelectedDeckIdsFromPreferencesDeckPickerWidget(widgetId)
+ val selectedDeckIds = widgetPreferences.getSelectedDeckIdsFromPreferences(widgetId)
/**Explanation of behavior when selectedDeckIds is empty
* If selectedDeckIds is empty, the widget will retain the previous deck list.
@@ -204,7 +199,7 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
}
super.onReceive(context, intent)
- val widgetPreferences = WidgetPreferences(context)
+ val widgetPreferences = DeckPickerWidgetPreferences(context)
when (intent.action) {
ACTION_APPWIDGET_UPDATE -> {
@@ -236,7 +231,7 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
if (appWidgetId != AppWidgetManager.INVALID_APPWIDGET_ID) {
Timber.d("Deleting widget with ID: $appWidgetId")
cancelRecurringAlarm(context, appWidgetId, DeckPickerWidget::class.java)
- widgetPreferences.deleteDeckPickerWidgetData(appWidgetId)
+ widgetPreferences.deleteDeckData(appWidgetId)
} else {
Timber.e("Invalid widget ID received in ACTION_APPWIDGET_DELETED")
}
@@ -265,11 +260,11 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
return
}
- val widgetPreferences = WidgetPreferences(context)
+ val widgetPreferences = DeckPickerWidgetPreferences(context)
appWidgetIds?.forEach { widgetId ->
cancelRecurringAlarm(context, widgetId, DeckPickerWidget::class.java)
- widgetPreferences.deleteDeckPickerWidgetData(widgetId)
+ widgetPreferences.deleteDeckData(widgetId)
}
}
}
@@ -279,18 +274,22 @@ class DeckPickerWidget : AnalyticsWidgetProvider() {
*
* Note: This operation may be slow, as it involves processing the entire deck collection.
*
- * @param deckIds the list of deck IDs to retrieve data for
+ * @param deckId the list of deck ID to retrieve data for
* @return a list of DeckPickerWidgetData objects containing deck names and statistics
*/
-suspend fun getDeckNameAndStats(deckIds: List): List {
- val result = mutableListOf()
+suspend fun getDeckNameAndStats(deckId: DeckId): DeckWidgetData? {
+ return getDeckNamesAndStats(listOf(deckId)).getOrNull(0)
+}
+
+suspend fun getDeckNamesAndStats(deckIds: List): List {
+ val result = mutableListOf()
val deckTree = withCol { sched.deckDueTree() }
deckTree.forEach { node ->
if (node.did !in deckIds) return@forEach
result.add(
- DeckPickerWidgetData(
+ DeckWidgetData(
deckId = node.did,
name = node.lastDeckNameComponent,
reviewCount = node.revCount,
diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetConfig.kt b/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetConfig.kt
index 713256ae9df4..6cbc63a87f63 100644
--- a/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetConfig.kt
+++ b/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetConfig.kt
@@ -34,18 +34,18 @@ import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.floatingactionbutton.FloatingActionButton
import com.google.android.material.snackbar.Snackbar
import com.ichi2.anki.AnkiActivity
-import com.ichi2.anki.CollectionManager.withCol
import com.ichi2.anki.R
import com.ichi2.anki.dialogs.DeckSelectionDialog
import com.ichi2.anki.dialogs.DeckSelectionDialog.DeckSelectionListener
import com.ichi2.anki.dialogs.DeckSelectionDialog.SelectableDeck
import com.ichi2.anki.dialogs.DiscardChangesDialog
+import com.ichi2.anki.isCollectionEmpty
+import com.ichi2.anki.isDefaultDeckEmpty
import com.ichi2.anki.showThemedToast
import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider
import com.ichi2.anki.snackbar.SnackbarBuilder
import com.ichi2.anki.snackbar.showSnackbar
import com.ichi2.widget.WidgetConfigScreenAdapter
-import com.ichi2.widget.WidgetPreferences
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@@ -61,7 +61,7 @@ class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackb
private var appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID
lateinit var deckAdapter: WidgetConfigScreenAdapter
- private lateinit var deckPickerWidgetPreferences: WidgetPreferences
+ private lateinit var deckPickerWidgetPreferences: DeckPickerWidgetPreferences
/**
* Maximum number of decks allowed in the widget.
@@ -84,7 +84,7 @@ class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackb
setContentView(R.layout.widget_deck_picker_config)
- deckPickerWidgetPreferences = WidgetPreferences(this)
+ deckPickerWidgetPreferences = DeckPickerWidgetPreferences(this)
appWidgetId = intent.extras?.getInt(
AppWidgetManager.EXTRA_APPWIDGET_ID,
@@ -225,7 +225,7 @@ class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackb
hasUnsavedChanges = false
setUnsavedChanges(false)
- val selectedDeckIds = deckPickerWidgetPreferences.getSelectedDeckIdsFromPreferencesDeckPickerWidget(appWidgetId)
+ val selectedDeckIds = deckPickerWidgetPreferences.getSelectedDeckIdsFromPreferences(appWidgetId)
val appWidgetManager = AppWidgetManager.getInstance(this)
DeckPickerWidget.updateWidget(this, appWidgetManager, appWidgetId, selectedDeckIds)
@@ -280,19 +280,9 @@ class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackb
}
}
- private suspend fun isDefaultDeckEmpty(): Boolean {
- val defaultDeckId = 1L
- val decks = withContext(Dispatchers.IO) {
- withCol { decks }
- }
- val deckIds = decks.deckAndChildIds(defaultDeckId)
- val totalCardCount = decks.cardCount(*deckIds.toLongArray(), includeSubdecks = true)
- return totalCardCount == 0
- }
-
/** Updates the view according to the saved preference for appWidgetId.*/
fun updateViewWithSavedPreferences() {
- val selectedDeckIds = deckPickerWidgetPreferences.getSelectedDeckIdsFromPreferencesDeckPickerWidget(appWidgetId)
+ val selectedDeckIds = deckPickerWidgetPreferences.getSelectedDeckIdsFromPreferences(appWidgetId)
if (selectedDeckIds.isNotEmpty()) {
lifecycleScope.launch {
val decks = fetchDecks()
@@ -323,7 +313,7 @@ class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackb
/** Displays the deck selection dialog with the provided list of decks. */
private fun displayDeckSelectionDialog(decks: List) {
val dialog = DeckSelectionDialog.newInstance(
- title = getString(R.string.select_deck_title),
+ title = getString(R.string.select_decks_title),
summaryMessage = null,
keepRestoreDefaultButton = false,
decks = decks
@@ -447,26 +437,8 @@ class DeckPickerWidgetConfig : AnkiActivity(), DeckSelectionListener, BaseSnackb
return
}
- context?.let { deckPickerWidgetPreferences.deleteDeckPickerWidgetData(appWidgetId) }
- }
- }
-
- /**
- * Returns whether the deck picker displays any deck.
- * Technically, it means that there is a non default deck, or that the default deck is non-empty.
- *
- * This function is specifically implemented to address an issue where the default deck
- * isn't handled correctly when a second deck is added to the
- * collection. In this case, the deck tree may incorrectly appear as non-empty when it contains
- * only the default deck and no other cards.
- *
- */
- private suspend fun isCollectionEmpty(): Boolean {
- val tree = withCol { sched.deckDueTree() }
- if (tree.children.size == 1 && tree.children[0].did == 1L) {
- return isDefaultDeckEmpty()
+ context?.let { deckPickerWidgetPreferences.deleteDeckData(appWidgetId) }
}
- return false
}
}
diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/WidgetPreferences.kt b/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetPreferences.kt
similarity index 84%
rename from AnkiDroid/src/main/java/com/ichi2/widget/WidgetPreferences.kt
rename to AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetPreferences.kt
index aa1b5e72daba..a3ea63120456 100644
--- a/AnkiDroid/src/main/java/com/ichi2/widget/WidgetPreferences.kt
+++ b/AnkiDroid/src/main/java/com/ichi2/widget/deckpicker/DeckPickerWidgetPreferences.kt
@@ -14,18 +14,12 @@
* this program. If not, see .
*/
-package com.ichi2.widget
+package com.ichi2.widget.deckpicker
import android.content.Context
import androidx.core.content.edit
-/**
- * This class is currently used for the Deck Picker Widget but is designed to be extendable
- * for use with other widgets, such as the Card Analysis Widget, in the future.
- *
- * @param context the context used to access the shared preferences
- */
-class WidgetPreferences(context: Context) {
+class DeckPickerWidgetPreferences(context: Context) {
/**
* Prefix for the SharedPreferences key used to store the selected decks for the DeckPickerWidget.
@@ -39,7 +33,7 @@ class WidgetPreferences(context: Context) {
/**
* Deletes the selected deck IDs from the shared preferences for the given widget ID.
*/
- fun deleteDeckPickerWidgetData(appWidgetId: Int) {
+ fun deleteDeckData(appWidgetId: Int) {
deckPickerSharedPreferences.edit {
remove(getDeckPickerWidgetKey(appWidgetId))
}
@@ -49,7 +43,7 @@ class WidgetPreferences(context: Context) {
* Retrieves the selected deck IDs from the shared preferences for the given widget ID.
* Note: There's no guarantee that these IDs still represent decks that exist at the time of execution.
*/
- fun getSelectedDeckIdsFromPreferencesDeckPickerWidget(appWidgetId: Int): LongArray {
+ fun getSelectedDeckIdsFromPreferences(appWidgetId: Int): LongArray {
val selectedDecksString = deckPickerSharedPreferences.getString(getDeckPickerWidgetKey(appWidgetId), "")
return if (!selectedDecksString.isNullOrEmpty()) {
selectedDecksString.split(",").map { it.toLong() }.toLongArray()
diff --git a/AnkiDroid/src/main/res/drawable/widget_card_analysis_drawable.jpg b/AnkiDroid/src/main/res/drawable/widget_card_analysis_drawable.jpg
new file mode 100644
index 000000000000..e8d51d5b4c6a
Binary files /dev/null and b/AnkiDroid/src/main/res/drawable/widget_card_analysis_drawable.jpg differ
diff --git a/AnkiDroid/src/main/res/layout/widget_card_analysis.xml b/AnkiDroid/src/main/res/layout/widget_card_analysis.xml
new file mode 100644
index 000000000000..939abb53674b
--- /dev/null
+++ b/AnkiDroid/src/main/res/layout/widget_card_analysis.xml
@@ -0,0 +1,77 @@
+
+
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AnkiDroid/src/main/res/layout/widget_card_analysis_drawable_v31.xml b/AnkiDroid/src/main/res/layout/widget_card_analysis_drawable_v31.xml
new file mode 100644
index 000000000000..a1bd68351125
--- /dev/null
+++ b/AnkiDroid/src/main/res/layout/widget_card_analysis_drawable_v31.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml
index ad1b6e1fc8e9..6764654db2e5 100644
--- a/AnkiDroid/src/main/res/values-af/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-af/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-af/03-dialogs.xml b/AnkiDroid/src/main/res/values-af/03-dialogs.xml
index 4daf7a6e1cc3..e99025b1bf3a 100644
--- a/AnkiDroid/src/main/res/values-af/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-af/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-af/08-widget.xml b/AnkiDroid/src/main/res/values-af/08-widget.xml
index dfb7eee52599..ce7d45b8e8d0 100644
--- a/AnkiDroid/src/main/res/values-af/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-af/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-am/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-am/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-am/03-dialogs.xml b/AnkiDroid/src/main/res/values-am/03-dialogs.xml
index b4af3c619dfe..b85dc74b3d1d 100644
--- a/AnkiDroid/src/main/res/values-am/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-am/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-am/08-widget.xml b/AnkiDroid/src/main/res/values-am/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-am/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-am/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ar/01-core.xml b/AnkiDroid/src/main/res/values-ar/01-core.xml
index cf6ac873f947..694ebff293a4 100644
--- a/AnkiDroid/src/main/res/values-ar/01-core.xml
+++ b/AnkiDroid/src/main/res/values-ar/01-core.xml
@@ -153,7 +153,7 @@
جار الإلغاء…\nقد يستغرق الأمر بعض الوقت.
تجري مزامنة الوسائط
تصدير الرزمة
- Export collection
+ صدِّر المجموعة
فارغ
أنواع البطاقات
diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml
index 8f262c4dbb18..8da9bca39325 100644
--- a/AnkiDroid/src/main/res/values-ar/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml
@@ -359,4 +359,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml
index f554b47794b7..1c9a2d5d9000 100644
--- a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml
@@ -296,4 +296,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ar/08-widget.xml b/AnkiDroid/src/main/res/values-ar/08-widget.xml
index 883b72f912f2..dfa939a17140 100644
--- a/AnkiDroid/src/main/res/values-ar/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ar/08-widget.xml
@@ -73,8 +73,10 @@
إضافة ملحوظة أنكيدرويد جديدة
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -86,4 +88,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml
index bd96a9e0b800..afed60652c26 100644
--- a/AnkiDroid/src/main/res/values-az/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-az/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-az/03-dialogs.xml b/AnkiDroid/src/main/res/values-az/03-dialogs.xml
index ba660620ba77..b92b6d6a5400 100644
--- a/AnkiDroid/src/main/res/values-az/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-az/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-az/08-widget.xml b/AnkiDroid/src/main/res/values-az/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-az/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-az/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-be/01-core.xml b/AnkiDroid/src/main/res/values-be/01-core.xml
index d9c9d675c6b5..ebccf8603802 100644
--- a/AnkiDroid/src/main/res/values-be/01-core.xml
+++ b/AnkiDroid/src/main/res/values-be/01-core.xml
@@ -124,7 +124,7 @@
The user is taken to the "App Info" screen, and needs to click "Permissions" and
grant AnkiDroid the \'Storage\' permission. This needs to be a fairly generic message as implementations
of the permissions/app info screen will differ between devices. -->
- Каб працягнуць, калі ласка, дазвольце AnkiDroid карыстацца сховішчам.
+ Дазвольце AnkiDroid атрымаць доступ да сховішча, каб завяршыць дзеянне
Перабудова фільтраванай калоды…
Перабудаваць
Ачысціць
diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml
index 74bf95a2800c..42899ad88e51 100644
--- a/AnkiDroid/src/main/res/values-be/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-be/02-strings.xml
@@ -102,7 +102,7 @@
Выбраць
%1$s (з “%2$s”)
Не супастаўленыя карткі будуць выдалены. Калі нататка не мае ніводнай карткі, то яна будзе згублена. Вы сапраўды хочаце працягнуць?
- No note type found
+ Такі тып нататкі не знойдзены
Дасягнутыя абмежаванні па часе
@@ -189,7 +189,7 @@
У сістэме адсутнічае ўсталяваная праграма, якая можа выканаць гэта дзеянне.
- No browser found for opening the link: %s
+ Не знойдзены браўзер для адкрыцця спасылкі: %s
Памылка загрузкі старонкі: %s
@@ -238,9 +238,9 @@
Рэдагаваць элемент панэлі інструментаў
Увядзіце HTML, які будзе ўстаўлены да і пасля вылучанага тэксту\n\nДоўгі націск на элемент панэлі інструментаў дазволіць адрэдагаваць або выдаліць яго
Выдаліць элемент панэлі інструментаў?
- The image is too large, please insert the image manually
- The video file is too large, please insert the video manually
- The audio file is too large, please insert the audio manually
+ Занадта вялікі відарыс, паспрабуйце ўставіць відарыс уручную
+ Занадта вялікі відэафайл, паспрабуйце ўставіць відэа ўручную
+ Занадта вялікі аўдыяфайл, паспрабуйце ўставіць аўдыя ўручную
Адбываецца рэзервовае капіяванне аперацыйнай сістэмы. Паспрабуйце яшчэ раз
Паспрабуйце скарыстацца праграмай iManager для таго, каб дазволіць AnkiDroid дадаваць ярлыкі
Ваш галоўны экран не дазваляе праграме дадаваць ярлыкі
@@ -284,7 +284,7 @@
Падрабязней
Пошук не даў ніякіх вынікаў
- %s is not a valid JavaScript addon package
+ %s не з\'яўляецца сапраўдным пакетам дапаўнення JavaScript
Не атрымалася стварыць каталог %s
Шкодны архіў. Змяшчае запіс па-за межамі мэтавага каталога: %s
Шкодны архіў. Памер перавышае %1$s або змяшчае больш %2$d файлаў
@@ -344,5 +344,6 @@
Далей
Немагчыма выдаліць тып карткі
- Deleting this card type will leave some notes without any cards.
+ Выдаленне гэтага тыпу карткі пакіне некаторыя нататкі без ніводнай карткі.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml
index 7df059f1267a..4973e6ea05fd 100644
--- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml
@@ -49,12 +49,12 @@
Выдаліць калоду
Выдаліць калоду?
- - Delete all cards in %1$s? It contains %2$d card
- - Delete all cards in %1$s? It contains %2$d cards
- - Delete all cards in %1$s? It contains %2$d cards
- - Delete all cards in %1$s? It contains %2$d cards
+ - Выдаліць усе карткі ў %1$s? Папка змяшчае %2$d картку
+ - Выдаліць усе карткі ў %1$s? Папка змяшчае %2$d карткі
+ - Выдаліць усе карткі ў %1$s? Папка змяшчае %2$d картак
+ - Выдаліць усе карткі ў %1$s? Папка змяшчае %2$d картак
- Delete filtered deck %s and send all cards back to their original decks?
+ Выдаліць фільтраваную калоду %s і адправіць усе карткі назад у іх арыгінальныя калоды?
Сінтэз маўлення недаступны
Не прамаўляць
\n\nНявыкарыстаныя файлы:\n
@@ -115,8 +115,8 @@
Замяніць
Азначаны шлях не з\'яўляецца дапушчальным каталогам
The provided text does not resolve to a valid PEM-encoded X509 certificate
- Error parsing certificate
- Certificate updated
+ Памылка разборкі сертыфіката
+ Сертыфікат абноўлены
Праверыць медыяфайлы?
Гэта можа заняць шмат часу ў тым выпадку, калі калекцыя медыяфайлаў надта вялікая
@@ -173,7 +173,7 @@
Памылка ўжывання фонавага відарыса %s
Фонавы відарыс занадта вялікі
Максімальны памер відарыса можа складаць %d МБ
- Image dimensions are too large (%1$d × %2$d)
+ Занадта вялікія памеры відарыса (%1$d × %2$d)
Няма дазволу на доступ да сховішча. Дайце неабходныя дазволы, а потым паўтарыце дзеянне.
@@ -247,39 +247,44 @@
Калода ўжо існуе
- If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’
+ Калі ў вас ёсць праблемы з парадкам калод (напрыклад, ‘10’ калода стаіць перад ‘2’), замяніце ‘2’ на ‘02’
- Set interval to same value
+ Задаць інтэрвал на тое ж самае значэнне
- - Show card in
- - Show cards in
- - Show cards in
- - Show cards in
+ - Паказваць картку за
+ - Паказваць карткі за
+ - Паказваць карткі за
+ - Паказваць карткі за
- - Show card in range
- - Show cards in range
- - Show cards in range
- - Show cards in range
+ - Паказваць картку ў дыяпазоне
+ - Паказваць карткі ў дыяпазоне
+ - Паказваць карткі ў дыяпазоне
+ - Паказваць карткі ў дыяпазоне
- - day
- - days
- - days
- - days
+ - дзень
+ - дні
+ - дзён
+ - дзён
–
- From
- To
+ Ад
+ Да
- Cloze Type Note Required
- No Cloze type note found, open the Note Editor or try again after adding a Cloze type note.
- Open
- Change cloze number
- Cloze number:
- Change editor mode
- Open note editor
- Change cloze mode
+ Неабходна нататка тыпу Cloze
+ Нататка тыпу Cloze не знойдзена. Адкрыйце рэдактар нататак або паспрабуйце яшчэ раз пасля таго, як адпаведная нататка будзе дададзена.
+ Адкрыць
+ Змяніць нумар Cloze
+ Нумар Cloze:
+ Змяніць рэжым рэдактара
+ Адкрыць рэдтактар нататак
+ Змяніць рэжым Cloze
- The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+ Сістэма WebView састарэла. Некаторыя функцыі будуць працаваць некарэктна. Неабходна абнаўленне.\n\nБягучая версія: %1$d\nМінімальна неабходная версія: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-be/04-network.xml b/AnkiDroid/src/main/res/values-be/04-network.xml
index e70cc9523dc2..06f035e306ae 100644
--- a/AnkiDroid/src/main/res/values-be/04-network.xml
+++ b/AnkiDroid/src/main/res/values-be/04-network.xml
@@ -52,7 +52,7 @@
Атрымаць агульнадаступныя калоды
Узніклі праблемы са злучэннем
Увайсці ў AnkiWeb
- Вам неабходна аўтарызавацца ў адным з воблачных сэрвісаў, каб скарыстацца гэтым тыпам сінхранізацыі. Вы можаце зарэгістравацца ў воблачным сэрвісе на наступным кроку.
+ Вам неабходна аўтарызавацца ў адным з воблачных сэрвісаў, каб скарыстацца гэтым тыпам сінхранізацыі. Вы можаце зрабіць гэта на наступным кроку.
Электронная пошта
Пароль
diff --git a/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml
index 5ac845707371..4c83d64b3755 100644
--- a/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml
+++ b/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml
@@ -82,7 +82,7 @@
Назва запыту пошуку
Нельга захаваць пошук без назвы
Такая назва ўжо існуе
- No note to edit
+ Няма нататак для рэдагавання
Выдаліць \"%1$s\"?
Змяніць парадак адлюстравання
Змяніць парадак адлюстравання
diff --git a/AnkiDroid/src/main/res/values-be/08-widget.xml b/AnkiDroid/src/main/res/values-be/08-widget.xml
index b479f307e31c..537fdfcb0b92 100644
--- a/AnkiDroid/src/main/res/values-be/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-be/08-widget.xml
@@ -66,16 +66,19 @@
- Засталося %d хвілін
Дадаць новую нататку ў AnkiDroid
- Deck Picker
-
- Select decks
- Select decks to display in the widget. Select decks with the + icon.
- Deck removed
- This deck is already selected
+ Выбар калоды
+ Аналіз карткі
+
+ Выбар калод
+ Выбар калоды
+ Выберыце калоды для адлюстравання ў віджэце. Зрабіць гэта можна з дапамогай кнопкі \"+\"
+ Калода выдалена
+ Гэта калода ўжо выбрана
- - You can select up to %d deck.
- - You can select up to %d decks.
- - You can select up to %d decks.
- - You can select up to %d decks.
+ - Вы можаце выбраць да %d калоды.
+ - Вы можаце выбраць да %d калод.
+ - Вы можаце выбраць да %d калод.
+ - Вы можаце выбраць да %d калод.
+ Прапушчаная калода. Сканфігурыйце яшчэ раз
diff --git a/AnkiDroid/src/main/res/values-be/10-preferences.xml b/AnkiDroid/src/main/res/values-be/10-preferences.xml
index 6448856e428a..38794de97308 100644
--- a/AnkiDroid/src/main/res/values-be/10-preferences.xml
+++ b/AnkiDroid/src/main/res/values-be/10-preferences.xml
@@ -168,17 +168,17 @@
Інтэрвал у падвойным дотыку (мілісек.)
Другі націск на кнопку адказу будзе праігнараваны, калі час яшчэ не мінуў. Гэта прадухіляе выпадковы двайны націск
Працягласць націску для адказу
- Minimum pressing time before the show answer button registers a touch.
+ Мінімальны час націску да таго, як кнопка дотыку пакажа адказ.
Паказваць кнопку часу
Паказваць наступны час паўтарэння над кнопкай адказу
Паказваць вялікія кнопкі адказу
Паказваць кнопкі адказу ў 2 радкі
Паказваць верхнюю панэль
- Show card counts, answer timer, flag and mark in top bar
+ Паказваць лічыльнік картак, таймер адказу, сцяжок і пазнаку на верхняй панэлі
Паказаць тое, што засталося
Паказваць лічыльнік картак, якія засталіся
- Show ETA
- Show remaining time
+ Паказваць прыблізны час
+ Паказваць колькі часу засталося
Калода для новых картак
Вучыць наперад
Абмежаванне навучальнага блока
@@ -205,7 +205,7 @@
Паглядзець спіс праграм, якія выкарыстоўваць API AnkiDroid (слоўнікі, службовыя праграмы і г.д.).
Паўтарэнне
- Show deck title
+ Паказваць назву калоды
Спецыяльныя магчымасці
Устаўляць з буфера абмену відарысы як PNG
@@ -224,7 +224,7 @@
Даведацца больш
]]>
Спасылка для сінхранізацыі
- Custom root certificate (PEM)
+ Карыстальніцкі каранёвы сертыфікат (PEM)
Клавіятура
Bluetooth
@@ -247,8 +247,8 @@
Перапланаваць карткі на падставе маіх адказаў у гэтай калодзе
Уключыць другі фільтр
Вызначыць карыстальніцкія крокі
- Preview delays
- Delays are in seconds. 0 returns card to original deck.
+ Затрымка прадпрагляду
+ Затрымка ў секундах. 0 вяртае картку ў арыгінальную калоду.
Дапамажыце зрабіць AnkiDroid яшчэ лепш!
Дзяліцца звесткамі выкарыстання
@@ -271,19 +271,19 @@
Дадаць кнопку
Замяніць ключ
Націсніце кнопку
- Add joystick/motion controller
- Move a joystick/motion controller
- User actions
- Trigger JavaScript from the review screen
- User action 1
- User action 2
- User action 3
- User action 4
- User action 5
- User action 6
- User action 7
- User action 8
- User action 9
+ Дадаць джойсцік/кантролер руху
+ Перамясціць джойсцік/кантролер руху
+ Дзеянні карыстальніка
+ Запусціць JavaScript з экрана паўтораў
+ Дзеянне карыстальніка 1
+ Дзеянне карыстальніка 2
+ Дзеянне карыстальніка 3
+ Дзеянне карыстальніка 4
+ Дзеянне карыстальніка 5
+ Дзеянне карыстальніка 6
+ Дзеянне карыстальніка 7
+ Дзеянне карыстальніка 8
+ Дзеянне карыстальніка 9
Toggle auto advance
Выберыце бок карткі
@@ -298,8 +298,8 @@
Ужо прызначана \"%s\"
Эксперыментальныя
- AnkiDroid has introduced a better TTS mechanism which is compatible with other Anki clients and includes more voices and improvements to language playback!\n\nPlease upgrade as soon as possible, as this setting will be removed soon
- Please upgrade to the new text to speech format
+ У AnkiDroid з\'явіўся палепшаны механізм сінтэзу маўлення (TTS), які сумяшчальны з іншымі кліентамі Anki і ўключае больш галасоў і паляпшэнні пры ўзнаўленні мовы!\n\nЗнайдзіце час для абнаўлення праграмы, бо гэта налада будзе неўзабаве выдалена.
+ Абнавіце праграму да новага сінтэзу маўлення
Параметры распрацоўшчыка
Уключыць параметры распрацоўшчыка
@@ -369,12 +369,12 @@
Атрыманне…
Падлік…
Калекцыя не існуе
- Hide system bars
- None
- Status bar
- Navigation bar
- All
+ Схаваць сістэмную панэль
+ Не
+ Радок стану
+ Панэль навігацыі
+ Усе
Ignore display cutout
- Hide answer buttons
+ Схаваць кнопкі адказу
Hide ‘Hard’ and ‘Easy’ buttons
diff --git a/AnkiDroid/src/main/res/values-be/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-be/16-multimedia-editor.xml
index 684ab5ecf61e..af335d2f9014 100644
--- a/AnkiDroid/src/main/res/values-be/16-multimedia-editor.xml
+++ b/AnkiDroid/src/main/res/values-be/16-multimedia-editor.xml
@@ -74,5 +74,5 @@
"Не атрымалася выбраць відарыс. Паўтарыце спробу"
Праграма вярнула нечаканае значэнне. Паспрабуйце скарыстацца іншай праграмай
Змесціва поля
- Reselect
+ Выбраць зноў
diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml
index b9cc03337f5c..a93db5b8342b 100644
--- a/AnkiDroid/src/main/res/values-bg/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml
index 9742b3d3deb0..12c4eb1e0cbd 100644
--- a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-bg/08-widget.xml b/AnkiDroid/src/main/res/values-bg/08-widget.xml
index b56be31eb174..29a23bcfe03e 100644
--- a/AnkiDroid/src/main/res/values-bg/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-bg/08-widget.xml
@@ -61,8 +61,10 @@
Добавяне на нова бележка в AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml
index dedea72abc98..97c2cb01afb7 100644
--- a/AnkiDroid/src/main/res/values-bn/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml
index c6d5f117a077..e9e06fab5032 100644
--- a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-bn/08-widget.xml b/AnkiDroid/src/main/res/values-bn/08-widget.xml
index 0ebe2686b5a1..87b6a82ea209 100644
--- a/AnkiDroid/src/main/res/values-bn/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-bn/08-widget.xml
@@ -61,8 +61,10 @@
নতুন আনকি-ড্রয়েড নোট যোগ করুন
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml
index 72a860f0619e..80cc65d0f546 100644
--- a/AnkiDroid/src/main/res/values-ca/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml
index a33035853de7..f8019b589948 100644
--- a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ca/08-widget.xml b/AnkiDroid/src/main/res/values-ca/08-widget.xml
index e56044f8abec..14f4a4bc1fe4 100644
--- a/AnkiDroid/src/main/res/values-ca/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ca/08-widget.xml
@@ -61,8 +61,10 @@
Afegir una nota nova a AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml
index c2016edd4bae..a42a2d218502 100644
--- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml
index 13d8da85fd9b..3cb73bf5d281 100644
--- a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ckb/08-widget.xml b/AnkiDroid/src/main/res/values-ckb/08-widget.xml
index 3290b33c29e9..9af1340de41f 100644
--- a/AnkiDroid/src/main/res/values-ckb/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ckb/08-widget.xml
@@ -61,8 +61,10 @@
کارتی نوێی ئانکی زیادبکە
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml
index 5cd87664b80d..d8bf215fd7b7 100644
--- a/AnkiDroid/src/main/res/values-cs/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml
@@ -349,4 +349,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml
index dd630754bda7..51108fd3bc3a 100644
--- a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml
@@ -280,4 +280,9 @@
Change cloze mode
Systémový WebView je zastaralý. Některé funkce nebudou fungovat správně. Aktualizujte jej prosím.\n\nNainstalovaná verze: %1$d\nMinimální požadovaná verze: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-cs/08-widget.xml b/AnkiDroid/src/main/res/values-cs/08-widget.xml
index 6aae04c1b446..9ccb92c3f753 100644
--- a/AnkiDroid/src/main/res/values-cs/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-cs/08-widget.xml
@@ -67,8 +67,10 @@
Přidat novou AnkiDroid poznámku
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml
index 64deab5b94aa..08a9b5bdf863 100644
--- a/AnkiDroid/src/main/res/values-da/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-da/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-da/03-dialogs.xml b/AnkiDroid/src/main/res/values-da/03-dialogs.xml
index af10f7534c61..b412a09b4641 100644
--- a/AnkiDroid/src/main/res/values-da/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-da/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-da/08-widget.xml b/AnkiDroid/src/main/res/values-da/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-da/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-da/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml
index 33eb5741c9b7..d956fdc956e2 100644
--- a/AnkiDroid/src/main/res/values-de/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-de/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-de/03-dialogs.xml b/AnkiDroid/src/main/res/values-de/03-dialogs.xml
index fd7059771ff6..c47d84758929 100644
--- a/AnkiDroid/src/main/res/values-de/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-de/03-dialogs.xml
@@ -262,4 +262,9 @@
Change cloze mode
Das System-WebView ist veraltet. Einige Funktionen werden nicht korrekt funktionieren. Bitte aktualisieren Sie es.\n\nInstallierte Version: %1$d\nMindestanforderung: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-de/08-widget.xml b/AnkiDroid/src/main/res/values-de/08-widget.xml
index 2ba2760e91e1..cb2a652bd9a7 100644
--- a/AnkiDroid/src/main/res/values-de/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-de/08-widget.xml
@@ -61,8 +61,10 @@
Neue AnkiDroid-Notiz hinzufügen
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml
index 514c55282d2a..b8e96543a52c 100644
--- a/AnkiDroid/src/main/res/values-el/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-el/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-el/03-dialogs.xml b/AnkiDroid/src/main/res/values-el/03-dialogs.xml
index d8fe6136d939..4030a90c86a0 100644
--- a/AnkiDroid/src/main/res/values-el/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-el/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-el/08-widget.xml b/AnkiDroid/src/main/res/values-el/08-widget.xml
index ace2bd815f0e..0637a7ed585e 100644
--- a/AnkiDroid/src/main/res/values-el/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-el/08-widget.xml
@@ -61,8 +61,10 @@
Προσθήκη νέας σημείωσης AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml
index 8a8dac71b831..cd2230275042 100644
--- a/AnkiDroid/src/main/res/values-eo/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml
@@ -333,4 +333,5 @@
Ne povis forigi tiun ĉi kart-tipon
Forigi tiun ĉi kart-tipon kaŭzos, ke kelkaj notoj havos neniun karton.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml
index 0c71a3abf344..dda62b070b89 100644
--- a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml
@@ -262,4 +262,9 @@
Ŝanĝi reĝimon de truteksto
La operaciuma WebView estas neĝisdata. Kelkaj trajtoj povas ne funkcii ĝuste. Ĝisdatigu ĝin.\n\nInstalita versio: %1$d\nMinimuma postulata versio: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-eo/08-widget.xml b/AnkiDroid/src/main/res/values-eo/08-widget.xml
index 51ff6e7d8bf8..8d0ac3476bce 100644
--- a/AnkiDroid/src/main/res/values-eo/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-eo/08-widget.xml
@@ -61,8 +61,10 @@
Aldoni novan AnkiDroid-noton
Kartar-elektilo
-
- Elekti kartarojn
+ Card Analysis
+
+ Select decks
+ Select a deck
Elektu kartarojn por mentri sur la fenestraĵo. Faru tion ĉi per la butono “+”.
Kartaro forigita
Kartaro jam elektita
@@ -70,4 +72,5 @@
- Vi povas elekti maksimume %d kartaron.
- Vi povas elekti maksimume %d kartarojn.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml
index 4c21397afbaa..70705e58ea73 100644
--- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml
@@ -338,4 +338,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml b/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml
index 1ce015274e77..27c783026483 100644
--- a/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-es-rAR/08-widget.xml b/AnkiDroid/src/main/res/values-es-rAR/08-widget.xml
index 1f3319cf73b6..725d983e4720 100644
--- a/AnkiDroid/src/main/res/values-es-rAR/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-es-rAR/08-widget.xml
@@ -61,8 +61,10 @@
Añadir nueva nota de Ankidroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml
index 56af5a58512b..f827fee35a2a 100644
--- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml
@@ -338,4 +338,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml b/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml
index 391fbfeb59ef..bb77b7854d5d 100644
--- a/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-es-rES/08-widget.xml b/AnkiDroid/src/main/res/values-es-rES/08-widget.xml
index 37cc85291e77..343cd3dff379 100644
--- a/AnkiDroid/src/main/res/values-es-rES/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-es-rES/08-widget.xml
@@ -61,8 +61,10 @@
Añadir nueva nota AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml
index 0dc7cd370f70..2b036be1b3a7 100644
--- a/AnkiDroid/src/main/res/values-et/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-et/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-et/03-dialogs.xml b/AnkiDroid/src/main/res/values-et/03-dialogs.xml
index e41e145db01d..8769ce204205 100644
--- a/AnkiDroid/src/main/res/values-et/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-et/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-et/08-widget.xml b/AnkiDroid/src/main/res/values-et/08-widget.xml
index 92b7eb457650..1a483117f2f1 100644
--- a/AnkiDroid/src/main/res/values-et/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-et/08-widget.xml
@@ -61,8 +61,10 @@
Lisa uus AnkiDroid märge
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml
index d481f81bb904..31b7ca420e53 100644
--- a/AnkiDroid/src/main/res/values-eu/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml
index c05ad25da611..33d375ffed72 100644
--- a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-eu/08-widget.xml b/AnkiDroid/src/main/res/values-eu/08-widget.xml
index 691b2a52d7de..67c5a217078c 100644
--- a/AnkiDroid/src/main/res/values-eu/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-eu/08-widget.xml
@@ -61,8 +61,10 @@
Gehitu AnkiDroid ohar berria
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml
index e3ce765d783e..4072cb1f3d59 100644
--- a/AnkiDroid/src/main/res/values-fa/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml
@@ -232,9 +232,9 @@
ویرایش دکمه نوارابزاری
کد HTMLای که میخواهید قبل و بعد نوشتهتان قرار بگیرد را وارد کنید\n\nبرای ویرایش یا حذف هریک از دکمههای نوارابزار، آنرا نگه دارید
حذف دکمه نوارابزاری؟
- The image is too large, please insert the image manually
- The video file is too large, please insert the video manually
- The audio file is too large, please insert the audio manually
+ عکس زیادی بزرگ است، لطفا عکس را دستی وارد کنید
+ فایل ویدیو زیادی بزرگ است، لطفا ویدیو را دستی وارد کنید
+ فایل صدا زیادی بزرگ است، لطفا صدا را دستی وارد کنید
پشتیبانی Android در حال انجام است. لطفا دوباره سعی کنید
شما به iManager نیاز دارید تا به AnkiDroid اجازه اضافه کردن میانبر بدهید
صفحه اصلی شما به AnkiDroid اجازه میانبور اضافه کردن نمیدهد
@@ -337,6 +337,7 @@
پخش
بعدی
- Cannot Delete Card Type
- Deleting this card type will leave some notes without any cards.
+ نمیتوان نوع کارت را حذف کرد
+ حذف این نوع کارت باعث بی کارت شدن بعضی یادداشت ها می شود
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml
index ac78be37106a..4e7e60db06ce 100644
--- a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml
@@ -258,8 +258,13 @@
تغییر شماره Cloze
شماره Cloze:
Change editor mode
- Open note editor
- Change cloze mode
+ ویرایشگر یادداشت را باز کن
+ حالت کلوز را تغییر بده
WebView سیستم قدیمی است. برخی ویژگیها به درستی کار نخواهند کرد. لطفاً آن را بهروزرسانی کنید. \n\nنسخه نصبشده: %1$d\nحداقل نسخه مورد نیاز: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml
index d68d9be957ab..82596c8bf35e 100644
--- a/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml
+++ b/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml
@@ -74,7 +74,7 @@
نام گذاری جستجوی فعلی
شما نمی توانید جستجو را بدون نام ذخیره کنید
نام وجود دارد
- No note to edit
+ هیچ یادداشتی برای ویرایش ندلرید
%1$s حذف شود؟
تغییر تنظیم صفحه نمایش
تغییر تنظیم صفحه نمایش
diff --git a/AnkiDroid/src/main/res/values-fa/08-widget.xml b/AnkiDroid/src/main/res/values-fa/08-widget.xml
index 9451541d1bc5..6ba73dc9bf28 100644
--- a/AnkiDroid/src/main/res/values-fa/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-fa/08-widget.xml
@@ -60,14 +60,17 @@
- %d دقیقه باقیمانده
افزودن یادداشت جدید
- Deck Picker
-
- Select decks
+ انتخاب کننده دسته
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
- Deck removed
- This deck is already selected
+ دسته حذف شد
+ دسته در حال حاضر انتخاب شده است.
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml
index 6534240bb3d4..16edc923b02b 100644
--- a/AnkiDroid/src/main/res/values-fi/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml
@@ -336,4 +336,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml
index 6c402354cf3c..805e8e42bafd 100644
--- a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-fi/08-widget.xml b/AnkiDroid/src/main/res/values-fi/08-widget.xml
index 8acac48a0c8d..7d84f34ec708 100644
--- a/AnkiDroid/src/main/res/values-fi/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-fi/08-widget.xml
@@ -61,8 +61,10 @@
Lisää uusi AnkiDroid muistiinpano
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml
index bab94f19db22..351332489ec1 100644
--- a/AnkiDroid/src/main/res/values-fil/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml
@@ -338,4 +338,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml
index 231457c5f762..313c08d47c72 100644
--- a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml
@@ -265,4 +265,9 @@ Mga file na may di-wastong pag-encode:%d
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-fil/08-widget.xml b/AnkiDroid/src/main/res/values-fil/08-widget.xml
index 8ec860553068..e4b00931a6f8 100644
--- a/AnkiDroid/src/main/res/values-fil/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-fil/08-widget.xml
@@ -61,8 +61,10 @@
Magdagdag ng bagong tala ng AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml
index b14636dd1623..6c04ea08efab 100644
--- a/AnkiDroid/src/main/res/values-fr/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml
index 29e71192afbf..05952a8e97a9 100644
--- a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml
@@ -262,4 +262,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-fr/08-widget.xml b/AnkiDroid/src/main/res/values-fr/08-widget.xml
index 371d6528e01b..586759558756 100644
--- a/AnkiDroid/src/main/res/values-fr/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-fr/08-widget.xml
@@ -61,8 +61,10 @@
Ajouter une nouvelle note AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml
index ffefab7ee365..b00329852af0 100644
--- a/AnkiDroid/src/main/res/values-fy/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml
index 540b1465c736..84ff252e0847 100644
--- a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-fy/08-widget.xml b/AnkiDroid/src/main/res/values-fy/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-fy/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-fy/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml
index 50360a1082a8..878a9de34c9d 100644
--- a/AnkiDroid/src/main/res/values-ga/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml
@@ -354,4 +354,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml
index 87de11208b0b..7c247c1d657b 100644
--- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml
@@ -288,4 +288,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ga/08-widget.xml b/AnkiDroid/src/main/res/values-ga/08-widget.xml
index 6f16d0e1a83a..9f78d828bc09 100644
--- a/AnkiDroid/src/main/res/values-ga/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ga/08-widget.xml
@@ -70,8 +70,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -82,4 +84,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml
index ac30d1dee6c5..204658d467e7 100644
--- a/AnkiDroid/src/main/res/values-gl/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml
index b034e561d81e..0bd2a19f0149 100644
--- a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-gl/08-widget.xml b/AnkiDroid/src/main/res/values-gl/08-widget.xml
index 8703e2cb6802..2586565f5442 100644
--- a/AnkiDroid/src/main/res/values-gl/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-gl/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml
index 5da9a8fa24c3..3a22edd013a4 100644
--- a/AnkiDroid/src/main/res/values-got/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-got/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-got/03-dialogs.xml b/AnkiDroid/src/main/res/values-got/03-dialogs.xml
index ded67a5cc7d8..24e20f8469e1 100644
--- a/AnkiDroid/src/main/res/values-got/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-got/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-got/08-widget.xml b/AnkiDroid/src/main/res/values-got/08-widget.xml
index ffe41f8483de..3488a7deb250 100644
--- a/AnkiDroid/src/main/res/values-got/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-got/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml
index 841cfcf39e59..85da0b946560 100644
--- a/AnkiDroid/src/main/res/values-gu/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml
@@ -338,4 +338,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml
index 793541da3c8e..94de8734652d 100644
--- a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
WebView સિસ્ટમ જૂની છે. કેટલીક સુવિધાઓ યોગ્ય રીતે કામ કરશે નહીં. કૃપા કરીને તેને અપડેટ કરો.\n\nઇન્સ્ટોલ કરેલ સંસ્કરણ: %1$d\nન્યૂનતમ આવશ્યક સંસ્કરણ: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-gu/08-widget.xml b/AnkiDroid/src/main/res/values-gu/08-widget.xml
index 2b009e0b08bc..09050e28f566 100644
--- a/AnkiDroid/src/main/res/values-gu/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-gu/08-widget.xml
@@ -61,8 +61,10 @@
નવી AnkiDroid નોંધ ઉમેરો
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml
index fcdfcd74b5f7..a9945411b216 100644
--- a/AnkiDroid/src/main/res/values-heb/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml
@@ -343,4 +343,5 @@
Cannot Delete Card Type
מחיקת סוג כרטיס זה תשאיר כמה הערות ללא כרטיס.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml
index f046370e4889..ed023c0b6cde 100644
--- a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml
@@ -279,4 +279,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-heb/08-widget.xml b/AnkiDroid/src/main/res/values-heb/08-widget.xml
index 157f6aba98ca..91f507bcc77d 100644
--- a/AnkiDroid/src/main/res/values-heb/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-heb/08-widget.xml
@@ -67,8 +67,10 @@
הוסף פתק AnkiDroid חדש
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml
index 3284ae2bd74b..80a9dbc4cbe4 100644
--- a/AnkiDroid/src/main/res/values-hi/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml
@@ -336,4 +336,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml
index 7865c407c802..5b4f3d5f9ede 100644
--- a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
सिस्टम WebView पुराना हो चुका है. कुछ सुविधाएं ठीक से काम नहीं करेंगी. कृपया इसे अपडेट करें।\n\nस्थापित संस्करण: %1$d\nन्यूनतम आवश्यक संस्करण: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-hi/08-widget.xml b/AnkiDroid/src/main/res/values-hi/08-widget.xml
index 26e603d49306..8285b82c0465 100644
--- a/AnkiDroid/src/main/res/values-hi/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-hi/08-widget.xml
@@ -61,8 +61,10 @@
नया AnkiDroid नोट जोड़ें
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml
index a3b221d07c2a..673d32fe4ae7 100644
--- a/AnkiDroid/src/main/res/values-hr/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml
@@ -344,4 +344,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml
index 6428b7318325..5518c18953c7 100644
--- a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml
@@ -272,4 +272,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-hr/08-widget.xml b/AnkiDroid/src/main/res/values-hr/08-widget.xml
index 4d925cab2a43..92bb57fae36d 100644
--- a/AnkiDroid/src/main/res/values-hr/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-hr/08-widget.xml
@@ -64,8 +64,10 @@
Dodaj novu AnkiDroid bilješku
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -74,4 +76,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml
index 5fa265859854..3bd36d403689 100644
--- a/AnkiDroid/src/main/res/values-hu/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml
index 1bb04332ad91..571f25174f78 100644
--- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml
@@ -262,4 +262,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-hu/08-widget.xml b/AnkiDroid/src/main/res/values-hu/08-widget.xml
index 97dd9d740719..1a2c26004b23 100644
--- a/AnkiDroid/src/main/res/values-hu/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-hu/08-widget.xml
@@ -61,8 +61,10 @@
Új AnkiDroid megjegyzés hozzáadása
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-hy/01-core.xml b/AnkiDroid/src/main/res/values-hy/01-core.xml
index 9df416981fdb..f2cc86e42a3d 100644
--- a/AnkiDroid/src/main/res/values-hy/01-core.xml
+++ b/AnkiDroid/src/main/res/values-hy/01-core.xml
@@ -53,7 +53,7 @@
Նկարչություն
Կարծիք թողնել
Սովորել
- +%d buried
+ +%d թաղված
Ընդարձակել
Կոծկել
@@ -102,7 +102,7 @@
Հեռացնել
Ջնջել գրառումը
Դրոշ
- Rename flags
+ Վերանվանել դրոշները
Ավելացնել դրոշ
Խմբագրել պիտակները
Ջնջե՞լ այս գրառումը և նրա բոլոր քարտերը:\n%s
@@ -129,9 +129,9 @@
Կապուկների որոնում
Այս կապուկը դատարկ է
Կապուկների որոնում
- Invalid deck name
- Congratulations! You have finished for now.
- Deck finished for now! %s
+ Կապուկի անվավեր անվանում
+ Կեցցե՜ք։ Դուք առայժմ ավարտել եք:
+ Առայժմ կապուկն ավարտվե՜լ է։ %s
Կրկնելիք քարտեր դեռ չկան
Սարքի պահեստը տեղադրված չէ
Համաժամեցում
@@ -139,19 +139,19 @@
Շարունակել համաժամեցումը
Համաժամեցումը չեղարկվեց
Չեղարկվում է…\n Սա կարող է որոշ ժամանակ տևել:
- Syncing media
+ Համաժամեցում
Արտահանել կապուկը
- Export collection
+ Արտահանել հավաքածուն
Ոչինչ
Քարտերի տեսակներ
Հարցի կաղապար
Պատասխանի կաղապար
Ոճավորում
- Card Browser Appearance
- Deck override
- Insert field
- Select field
+ Զննիչի տեսք
+ Հատուկ կապուկ
+ Տեղադրել դաշտ
+ Ընտրել դաշտը
Անհրաժեշտ է քարտի առնվազն մեկ տեսակ
- Սա կստեղծի %1$d քարտ: Շարունակե՞լ:
@@ -164,21 +164,21 @@
Unable to save card template changes: %s
The card type for the current card was deleted.
- Browser appearance
+ Զննիչի տեսք
- Card info
+ Քարտի մասին տեղեկություն
Կարդալ և գրել AnkiDroid-ի շտեմարանի մեջ
մատչել առկա գրառումները, քարտերը, գրառումների տեսակները և կապուկները, ինչպես նաև նորերը ստեղծելը
- Card Browser
+ Զննիչ
Anki քարտ
- The collections can’t be combined.\nWhich collection do you want to keep?
+ Հավաքածուները չեն կարող իրար միանալ։ Ո՞ր հավաքածուն եք ուզում պահպանել։
AnkiDroid
AnkiWeb
- Replace your collection on AnkiDroid with your collection from AnkiWeb?
- Replace your collection on AnkiWeb with your collection from AnkiDroid?
+ Փոխարինե՞լ ձեր AnkiDroid-ի հավաքածուն ձեր AnkiWeb-ի հավաքածուով։
+ Փոխարինե՞լ ձեր AnkiWeb-ի հավաքածուն ձեր AnkiDroid-ի հավաքածուով։
Select collection to keep
Replace collection
@@ -195,14 +195,14 @@
Վերականգնել թղթապանակի հասանելիությունը (խորացված)
Վերականգնել .colpkg պատճենից (խորացված)
Ստեղծել նոր հավաքածու
- The new collection will be deleted from your phone if you uninstall AnkiDroid
+ AnkiDroid-ը ձեր հեռախոսից ջնջելու դեպքում կջնջվի նաև նոր հավաքածուն
AnkiDroid-ի աշխատանքի համար հարկավոր է մի քանի թույլտվություն
- Storage access
- Saves your collection in a safe place that will not be deleted if the app is uninstalled
- All files access
- Image Occlusion
- Remove account
+ Հիշողություն
+ Պահպանում է ձեր հավաքածուն ապահով վայրում, որը ծրագիրը ջնջելու դեպքում չի ջնջվի
+ Բոլոր ֆայլերի հասանելիություն
+ Նկարի ծածկում
+ Հեռացնել հաշիվը
- Instant card
+ Նոր քարտ
diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml
index 8f03895b1143..8529e2d893e6 100644
--- a/AnkiDroid/src/main/res/values-hy/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml
index 3d8c265ae258..bbf35e903880 100644
--- a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml
@@ -262,4 +262,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-hy/08-widget.xml b/AnkiDroid/src/main/res/values-hy/08-widget.xml
index 770421394b5b..6316a4bcbca6 100644
--- a/AnkiDroid/src/main/res/values-hy/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-hy/08-widget.xml
@@ -61,13 +61,16 @@
Ավելացնել AnkiDroid գրառում
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
- Deck removed
- This deck is already selected
+ Կապուկը ջնջվել է
+ Այս կապուկը արդեն նշված է
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-hy/18-standard-models.xml b/AnkiDroid/src/main/res/values-hy/18-standard-models.xml
index 888e137c3537..84cf9302759d 100644
--- a/AnkiDroid/src/main/res/values-hy/18-standard-models.xml
+++ b/AnkiDroid/src/main/res/values-hy/18-standard-models.xml
@@ -26,6 +26,6 @@
- Front
- Back
+ Առջև
+ Հետև
diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml
index 9ccec65a7741..76ba7b171f2f 100644
--- a/AnkiDroid/src/main/res/values-ind/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml
index 5b7a2199bde9..ca54cc06a5da 100644
--- a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ind/08-widget.xml b/AnkiDroid/src/main/res/values-ind/08-widget.xml
index 68d3b6b9dcf1..7636616c2cd1 100644
--- a/AnkiDroid/src/main/res/values-ind/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ind/08-widget.xml
@@ -58,12 +58,15 @@
Tambah catatan AnkiDroid baru
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-is/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-is/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-is/03-dialogs.xml b/AnkiDroid/src/main/res/values-is/03-dialogs.xml
index 114a7f10a036..e08e0a14e0be 100644
--- a/AnkiDroid/src/main/res/values-is/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-is/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-is/08-widget.xml b/AnkiDroid/src/main/res/values-is/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-is/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-is/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml
index 6d11587de46e..2a3eca6e1ed9 100644
--- a/AnkiDroid/src/main/res/values-it/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-it/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-it/03-dialogs.xml b/AnkiDroid/src/main/res/values-it/03-dialogs.xml
index c1a445ac367a..a4e4b8167d25 100644
--- a/AnkiDroid/src/main/res/values-it/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-it/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-it/08-widget.xml b/AnkiDroid/src/main/res/values-it/08-widget.xml
index 887f7d903137..155dd65642ab 100644
--- a/AnkiDroid/src/main/res/values-it/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-it/08-widget.xml
@@ -61,8 +61,10 @@
Aggiungi nuova nota AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml
index fcdfcd74b5f7..a9945411b216 100644
--- a/AnkiDroid/src/main/res/values-iw/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml
@@ -343,4 +343,5 @@
Cannot Delete Card Type
מחיקת סוג כרטיס זה תשאיר כמה הערות ללא כרטיס.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml
index f046370e4889..ed023c0b6cde 100644
--- a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml
@@ -279,4 +279,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-iw/08-widget.xml b/AnkiDroid/src/main/res/values-iw/08-widget.xml
index 157f6aba98ca..91f507bcc77d 100644
--- a/AnkiDroid/src/main/res/values-iw/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-iw/08-widget.xml
@@ -67,8 +67,10 @@
הוסף פתק AnkiDroid חדש
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml
index 390bd21f7262..337f8cc8c2aa 100644
--- a/AnkiDroid/src/main/res/values-ja/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml
@@ -334,4 +334,5 @@
カードタイプを削除できません
このカードタイプを削除すると、カードが無いノートが生じます。
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml
index 43a65bb4f6c9..18e112ce56b2 100644
--- a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml
@@ -255,4 +255,9 @@
穴埋め問題モードの切り替え
「AndroidシステムのWebView 」(または「Android System WebView」)が古くなっています。いくつかの機能が正しく動作しません。更新してください。\n\nインストールされているバージョン: %1$d\n最低限必要なバージョン: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ja/08-widget.xml b/AnkiDroid/src/main/res/values-ja/08-widget.xml
index c082aac47c48..6f26f3186d09 100644
--- a/AnkiDroid/src/main/res/values-ja/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ja/08-widget.xml
@@ -58,12 +58,15 @@
AnkiDroidの新規ノートを追加
デッキリスト
-
- デッキを選択
+ 単デッキカウント
+
+ デッキを選択
+ デッキを一つ選択
「+」ボタンを押して、ウィジェットに表示するデッキを選択してください。
デッキを削除しました
このデッキはすでに選択されています
- 選択できるデッキは%d個までです。
+ デッキが見つかりません。設定し直してください
diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml
index 8297d5ffe7e1..6d1aec22a0a4 100644
--- a/AnkiDroid/src/main/res/values-jv/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml
index ec057bf9b7d0..45d54c72c836 100644
--- a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-jv/08-widget.xml b/AnkiDroid/src/main/res/values-jv/08-widget.xml
index b47372de3bfd..3e81436d0c33 100644
--- a/AnkiDroid/src/main/res/values-jv/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-jv/08-widget.xml
@@ -58,12 +58,15 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml
index cb921981e260..ccfe436fcff1 100644
--- a/AnkiDroid/src/main/res/values-ka/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml
@@ -338,4 +338,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml
index 69d5fc7f8a17..81f310e62dd3 100644
--- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ka/08-widget.xml b/AnkiDroid/src/main/res/values-ka/08-widget.xml
index af590eccc296..c11864c7dfdb 100644
--- a/AnkiDroid/src/main/res/values-ka/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ka/08-widget.xml
@@ -61,8 +61,10 @@
ახალი AnkiDroid-შენიშვნის დამატება
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-kk/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml
index cca64a2b2f60..44e2a8e64f51 100644
--- a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-kk/08-widget.xml b/AnkiDroid/src/main/res/values-kk/08-widget.xml
index 235913c1b08d..b08de5cda66d 100644
--- a/AnkiDroid/src/main/res/values-kk/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-kk/08-widget.xml
@@ -61,8 +61,10 @@
Жаңа AnkiDroid жазбасын қосу
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml
index a3720730c8b7..df71372443a1 100644
--- a/AnkiDroid/src/main/res/values-km/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-km/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-km/03-dialogs.xml b/AnkiDroid/src/main/res/values-km/03-dialogs.xml
index 91967a8c67a9..fd9c25611965 100644
--- a/AnkiDroid/src/main/res/values-km/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-km/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-km/08-widget.xml b/AnkiDroid/src/main/res/values-km/08-widget.xml
index b47372de3bfd..3e81436d0c33 100644
--- a/AnkiDroid/src/main/res/values-km/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-km/08-widget.xml
@@ -58,12 +58,15 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml
index d4f17a1be08a..bc0075d985e8 100644
--- a/AnkiDroid/src/main/res/values-kn/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml
@@ -333,4 +333,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml
index 5d5e190e64a2..b702e0065327 100644
--- a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml
@@ -262,4 +262,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-kn/08-widget.xml b/AnkiDroid/src/main/res/values-kn/08-widget.xml
index d6c33ae28e77..9637db5fc960 100644
--- a/AnkiDroid/src/main/res/values-kn/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-kn/08-widget.xml
@@ -61,8 +61,10 @@
ಹೊಸ AnkiDroid ಟಿಪ್ಪಣಿಯನ್ನು ಸೇರಿಸಿ
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml
index 9e123fe2db47..0d8aeacd4f06 100644
--- a/AnkiDroid/src/main/res/values-ko/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml
@@ -232,9 +232,9 @@ Context | Request Context [1]
도구 모음 항목 편집
선택된 텍스트 앞뒤로 삽입할 HTML을 입력해주십시오\n\n도구 모음 항목을 길게 눌러 편집 또는 제거합니다.
도구 모음 항목을 지울까요?
- The image is too large, please insert the image manually
- The video file is too large, please insert the video manually
- The audio file is too large, please insert the audio manually
+ 이미지가 너무 큽니다. 수동으로 넣어 주세요.
+ 영상 파일이 너무 큽니다. 수동으로 넣어 주세요.
+ 오디오 파일이 너무 큽니다. 수동으로 넣어 주세요.
Android 백업이 작동 중입니다. 다시 시도하십시오.
AnkiDroid 바로가기를 추가하려면 iManager가 필요할 수 있습니다.
홈 화면에 AnkiDroid 바로 가기를 추가할 수 없습니다.
@@ -288,53 +288,54 @@ Context | Request Context [1]
공부 시간은 줄이고
더 많이 기억하세요
- Anki\'s card scheduler saves time by strengthening your weakest memories and preserving your strongest
- Get Started
- Sync from AnkiWeb
+ Anki의 카드 스케줄러는 가장 희미한 기억을 강화하고 또렷한 기억은 보존시켜 시간을 절약해 줍니다.
+ 시작하기
+ AnkiWeb과 동기화
- AnkiDroid is not initialized yet. Please open AnkiDroid and try again
- Already logged in
+ AnkiDroid가 초기화되지 않았습니다. AnkiDroid를 열어 다시 시도해 주세요.
+ 이미 로그인되어 있습니다
- Deck created
- Deck renamed
+ 생성된 뭉치
+ 이름이 변경된 뭉치
- Deck deleted. Please remove the shortcut
+ 삭제된 카드 묶음입니다. 단축키를 삭제해 주세요.
- Cards
- Notes
- Toggle Cards/Notes
- Toggle Showing cards or notes in the browser
- Truncate the height of each row of the Browser to show only first 3 lines of content
- Browser Options
- Recording saved
- Deleting selected notes
- Tap a voice to listen
+ 카드
+ 메모
+ 카드, 메모 켜기/ 끄기
+ 브라우저에서 카드, 메모 보이기 켜기/ 끄기
+ 브라우저의 각 행 높이를 잘라 첫 3줄의 내용만 표시합니다.
+ 브라우저 옵션
+ 녹음 파일 저장됨
+ 선택한 메모 삭제 중
+ 음성을 들으려면 탭하세요
- Voice should be installed before use
+ 사용 전 음성을 설치해 주세요
- Use anyway
+ 그냥 사용하기
- Text to speech error (%s)
+ 문장 읽어주기 오류 (%s)
- Internet
+ 인터넷
- Install
+ 설치
- Failed to open text to speech settings
+ 문장 읽어주기 설정 열기 실패
- Please log in to download more decks
- Description
- Failed to copy
- Unavailable in ‘Notes’ mode
+ 카드 묶음을 더 다운로드하려면 로그인해 주세요
+ 설명
+ 복사 실패
+ \'메모\' 모드에서는 사용할 수 없습니다
- - %d cards unburied
+ - 지금 보기된 카드 %d장
- Reposition
- Record
- Stop
- Play
- Next
+ 위치 변경
+ 녹음
+ 중지
+ 재생
+ 다음
- Cannot Delete Card Type
- Deleting this card type will leave some notes without any cards.
+ 카드 유형을 삭제할 수 없습니다
+ 이 카드 유형을 삭제하면 카드 없이 일부 메모만 남습니다
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml
index 7b40e3914179..d97c42284e41 100644
--- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ko/08-widget.xml b/AnkiDroid/src/main/res/values-ko/08-widget.xml
index 1560f0884847..3e940c62038c 100644
--- a/AnkiDroid/src/main/res/values-ko/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ko/08-widget.xml
@@ -58,12 +58,15 @@
새 AnkiDroid 노트 추가
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml
index e24ebe299782..04f36cab41f9 100644
--- a/AnkiDroid/src/main/res/values-ku/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml
index 13d8da85fd9b..3cb73bf5d281 100644
--- a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ku/08-widget.xml b/AnkiDroid/src/main/res/values-ku/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-ku/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ku/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-ky/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml
index ffb6d159a1dd..04fa3ebd21b9 100644
--- a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ky/08-widget.xml b/AnkiDroid/src/main/res/values-ky/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-ky/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ky/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml
index b5d7af40f40e..7428f149ca2f 100644
--- a/AnkiDroid/src/main/res/values-lt/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml
@@ -349,4 +349,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml
index 150e9e64580e..718a9517b34e 100644
--- a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml
@@ -280,4 +280,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-lt/08-widget.xml b/AnkiDroid/src/main/res/values-lt/08-widget.xml
index abe8d7decf3e..4d1c4c7e7fc7 100644
--- a/AnkiDroid/src/main/res/values-lt/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-lt/08-widget.xml
@@ -67,8 +67,10 @@
Pridėti naują „AnkiDroid“ užrašą
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml
index 24df340026f9..80b12b58d535 100644
--- a/AnkiDroid/src/main/res/values-lv/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml
@@ -344,4 +344,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml
index 7c47828f3f4b..a2ecd2e4b835 100644
--- a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml
@@ -272,4 +272,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-lv/08-widget.xml b/AnkiDroid/src/main/res/values-lv/08-widget.xml
index dde446e9b596..59625cd10e69 100644
--- a/AnkiDroid/src/main/res/values-lv/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-lv/08-widget.xml
@@ -64,8 +64,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -74,4 +76,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml
index ec34fa4e0fc5..d24ea56a5279 100644
--- a/AnkiDroid/src/main/res/values-mk/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml
@@ -340,4 +340,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml
index 0aaa66e25ada..d9a0a346ce20 100644
--- a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-mk/08-widget.xml b/AnkiDroid/src/main/res/values-mk/08-widget.xml
index 5e44c2c5806d..caa9b9268054 100644
--- a/AnkiDroid/src/main/res/values-mk/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-mk/08-widget.xml
@@ -61,8 +61,10 @@
Додајте нова AnkiDroid белешка
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml
index 35992b3c8119..d74c8193b026 100644
--- a/AnkiDroid/src/main/res/values-ml/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml
index 3a80cff3bd3f..6e80b4f3009a 100644
--- a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ml/08-widget.xml b/AnkiDroid/src/main/res/values-ml/08-widget.xml
index 0bf68e01194d..816fc1751976 100644
--- a/AnkiDroid/src/main/res/values-ml/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ml/08-widget.xml
@@ -61,8 +61,10 @@
പുതിയ AnkiDroid കുറിപ്പ് ചേർക്കുക
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml
index e507616c8c38..99aad57c37bb 100644
--- a/AnkiDroid/src/main/res/values-mn/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-mn/08-widget.xml b/AnkiDroid/src/main/res/values-mn/08-widget.xml
index 2e82831015f7..83d705e19835 100644
--- a/AnkiDroid/src/main/res/values-mn/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-mn/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml
index 636971cad7b7..b92696ba7de2 100644
--- a/AnkiDroid/src/main/res/values-mr/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml
@@ -333,4 +333,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml
index 65363a36f60e..6f6e92c321d7 100644
--- a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml
@@ -262,4 +262,9 @@
Change cloze mode
WebView प्रणाली जुनी आहे. काही वैशिष्ट्ये योग्यरित्या कार्य करू शकत नाहीत. कृपया ते अपडेट करा.\n\nस्थापित आवृत्ती: %1$d\nकिमान आवश्यक आवृत्ती: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-mr/08-widget.xml b/AnkiDroid/src/main/res/values-mr/08-widget.xml
index 90a977ad4162..ceeec543fb18 100644
--- a/AnkiDroid/src/main/res/values-mr/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-mr/08-widget.xml
@@ -61,8 +61,10 @@
नवीन AnkiDroid टीप जोडा
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml
index 18cb9e6159f0..401b764026f6 100644
--- a/AnkiDroid/src/main/res/values-ms/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml
index 8f16eb9458cf..2d75b79faf3a 100644
--- a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ms/08-widget.xml b/AnkiDroid/src/main/res/values-ms/08-widget.xml
index d1677bf8d02c..bf4fa0d40dea 100644
--- a/AnkiDroid/src/main/res/values-ms/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ms/08-widget.xml
@@ -58,12 +58,15 @@
Tambah nota AnkiDroid baru
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml
index 2d02ed94af1d..987d8134a1d8 100644
--- a/AnkiDroid/src/main/res/values-my/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-my/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-my/03-dialogs.xml b/AnkiDroid/src/main/res/values-my/03-dialogs.xml
index 60ad84f730cf..cd62871123f2 100644
--- a/AnkiDroid/src/main/res/values-my/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-my/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-my/08-widget.xml b/AnkiDroid/src/main/res/values-my/08-widget.xml
index b47372de3bfd..3e81436d0c33 100644
--- a/AnkiDroid/src/main/res/values-my/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-my/08-widget.xml
@@ -58,12 +58,15 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml
index c67a10a7b5af..609d9279651a 100644
--- a/AnkiDroid/src/main/res/values-nl/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml
@@ -339,4 +339,5 @@
Kan kaarttype niet verwijderen
Als je dit kaarttype verwijdert, zullen sommige notities geen kaarten meer hebben.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml
index a614f90059c8..02661fe2e7a9 100644
--- a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml
@@ -264,4 +264,9 @@
Wijzig het cloze nummer
De systeem WebView is verouderd. Sommige functies zullen niet correct werken. Gelieve te updaten.\n\nGeïnstalleerde versie: %1$d\nMinimale vereiste versie: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-nl/08-widget.xml b/AnkiDroid/src/main/res/values-nl/08-widget.xml
index 3fd3b3602751..d03ab623e8ed 100644
--- a/AnkiDroid/src/main/res/values-nl/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-nl/08-widget.xml
@@ -61,8 +61,10 @@
Nieuwe Ankidroid-memo toevoegen
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml
index 2ae70182403e..8fd36fb21a5a 100644
--- a/AnkiDroid/src/main/res/values-nn/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml
index 1705bc044721..82df718c9b4a 100644
--- a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-nn/08-widget.xml b/AnkiDroid/src/main/res/values-nn/08-widget.xml
index 9c9bbc1d2814..fd8c6fa0ef21 100644
--- a/AnkiDroid/src/main/res/values-nn/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-nn/08-widget.xml
@@ -61,8 +61,10 @@
Legg til nytt AnkiDroid notat
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml
index 8ad193013ce1..87fb9e766ec0 100644
--- a/AnkiDroid/src/main/res/values-no/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-no/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-no/03-dialogs.xml b/AnkiDroid/src/main/res/values-no/03-dialogs.xml
index 8771e4b8fdf6..c522b6e4f1e0 100644
--- a/AnkiDroid/src/main/res/values-no/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-no/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-no/08-widget.xml b/AnkiDroid/src/main/res/values-no/08-widget.xml
index 9c9bbc1d2814..fd8c6fa0ef21 100644
--- a/AnkiDroid/src/main/res/values-no/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-no/08-widget.xml
@@ -61,8 +61,10 @@
Legg til nytt AnkiDroid notat
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml
index dda747af97f2..6f7f3e378ff7 100644
--- a/AnkiDroid/src/main/res/values-or/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-or/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml
index f23d3b4fb842..fe03d03817fd 100644
--- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-or/08-widget.xml b/AnkiDroid/src/main/res/values-or/08-widget.xml
index 333a8754157d..cd7aede2eb82 100644
--- a/AnkiDroid/src/main/res/values-or/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-or/08-widget.xml
@@ -61,8 +61,10 @@
ନୂଆ Ankidroid ନୋଟ୍ ଯୋଡ଼ନ୍ତୁ
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml
index 83eabff378a3..0781c94379d5 100644
--- a/AnkiDroid/src/main/res/values-pa/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml
@@ -337,4 +337,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml
index 3dfb598de686..ce91ed4f8fa6 100644
--- a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-pa/08-widget.xml b/AnkiDroid/src/main/res/values-pa/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-pa/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-pa/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml
index e4052b8e77ac..b9c169a31c8e 100644
--- a/AnkiDroid/src/main/res/values-pl/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml
@@ -349,4 +349,5 @@
Cannot Delete Card Type
Usunięcie tej karty spowoduje pozostawienie niektórych notatek bez żadnej karty.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml
index 3dd2f5fcea0b..7327e3ff502e 100644
--- a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml
@@ -280,4 +280,9 @@
Change cloze mode
System WebView jest nieaktualny. Niektóre funkcje nie będą działać poprawnie. Zaktualizuj go.\n\nZainstalowana wersja: %1$d\nMinimalna wymagana wersja: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-pl/08-widget.xml b/AnkiDroid/src/main/res/values-pl/08-widget.xml
index 29881fa52c9b..7bb53f84cf59 100644
--- a/AnkiDroid/src/main/res/values-pl/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-pl/08-widget.xml
@@ -67,8 +67,10 @@
Dodaj nową notatkę AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml
index 1b6282754ef4..b69b84659364 100644
--- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deletar essa categoria de cartão deixará algumas notas sem cartão
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml
index 938e5cc5165c..e6a2db1afab5 100644
--- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
O sistema do WebView está desatualizado. Alguns recursos não funcionarão corretamente. Por favor, atualize-o.\n\nVersão instalada %1$d\nVersão mínima necessária: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-pt-rBR/08-widget.xml b/AnkiDroid/src/main/res/values-pt-rBR/08-widget.xml
index 974b0ebe6730..69ce7842b392 100644
--- a/AnkiDroid/src/main/res/values-pt-rBR/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-pt-rBR/08-widget.xml
@@ -61,8 +61,10 @@
Adicionar nova nota
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml b/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml
index f2f901039f5a..ef85c3a42c7e 100644
--- a/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml
+++ b/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml
@@ -365,7 +365,7 @@
None
Barra de status
Barra de navegação
- All
+ Todos
Ignore display cutout
Ocultar botões de resposta
Hide ‘Hard’ and ‘Easy’ buttons
diff --git a/AnkiDroid/src/main/res/values-pt-rPT/01-core.xml b/AnkiDroid/src/main/res/values-pt-rPT/01-core.xml
index ecb688b65e19..e67ed5f8597d 100644
--- a/AnkiDroid/src/main/res/values-pt-rPT/01-core.xml
+++ b/AnkiDroid/src/main/res/values-pt-rPT/01-core.xml
@@ -53,7 +53,7 @@
Desenho
Enviar comentários
Estudar
- +%d buried
+ +%d adiada
Expandir
Recolher
@@ -98,7 +98,7 @@
Ocultar nota
Suspender ficha
Suspender nota
- Enterrar
+ Adiar
Suspender
Eliminar nota
Bandeira
diff --git a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml
index de1267b70847..104c0e5a5668 100644
--- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml
@@ -337,6 +337,7 @@
Reproduzir
Próxima
- Cannot Delete Card Type
- Deleting this card type will leave some notes without any cards.
+ Não é possível apagar este tipo de ficha
+ Apagar este tipo de ficha implica deixar algumas notas sem fichas.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml
index 2a57b146851a..99b64804a1cd 100644
--- a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml
@@ -259,9 +259,14 @@
Abrir
Alterar Número da Omissão
Número de Omissão;
- Change editor mode
- Open note editor
- Change cloze mode
+ Alterar modo editor
+ Abrir editor de notas
+ Alterar modo de omissão
O sistema WebView está desatualizado. Alguns recursos não funcionarão corretamente. Atualize-o.\n\nVersão instalada: %1$d\nVersão mínima necessária: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-pt-rPT/08-widget.xml b/AnkiDroid/src/main/res/values-pt-rPT/08-widget.xml
index 7f313c08b049..67360278e5e2 100644
--- a/AnkiDroid/src/main/res/values-pt-rPT/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-pt-rPT/08-widget.xml
@@ -60,14 +60,17 @@
- %d minutos restantes
Adicionar nova nota de AnkiDroid
- Deck Picker
-
- Select decks
- Select decks to display in the widget. Select decks with the + icon.
- Deck removed
- This deck is already selected
+ Seleccionador de Baralhos
+ Card Analysis
+
+ Select decks
+ Select a deck
+ Escolher baralhos para mostrar no widget utilizando o botão +.
+ Baralho eliminado
+ Este baralho já se encontra seleccionado
- - You can select up to %d deck.
- - You can select up to %d decks.
+ - Pode seleccionar até %d baralho.
+ - Pode seleccionar até %d baralhos.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml
index 9f339a2a1d9f..883b6aef0c94 100644
--- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml
+++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml
@@ -172,7 +172,7 @@
Mostrar botões de resposta grandes
Mostrar o botão de resposta em duas linhas
Mostrar barra superior
- Show card counts, answer timer, flag and mark in top bar
+ Mostrar contagem de fichas, tempo de resposta, bandeiras e marcas na barra superior
Mostrar restantes
Mostrar o contador de fichas restantes
Mostrar estimativa de tempo restante
@@ -280,7 +280,7 @@
Acção de Utilizador 7
Acção de Utilizador 8
Acção de Utilizador 9
- Toggle auto advance
+ Ativar/desativar o avanço automático
Selecione o lado da ficha
Questão
diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml
index 19f794a637a8..59e54ddd4c09 100644
--- a/AnkiDroid/src/main/res/values-ro/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml
@@ -344,4 +344,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml
index 47e87c6e3127..e7c19e6e3818 100644
--- a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml
@@ -272,4 +272,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ro/08-widget.xml b/AnkiDroid/src/main/res/values-ro/08-widget.xml
index 2c7f35e978f5..19b04ee0ebe9 100644
--- a/AnkiDroid/src/main/res/values-ro/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ro/08-widget.xml
@@ -64,8 +64,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -74,4 +76,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ru/01-core.xml b/AnkiDroid/src/main/res/values-ru/01-core.xml
index 7da8a4964d7a..b91f051a1519 100644
--- a/AnkiDroid/src/main/res/values-ru/01-core.xml
+++ b/AnkiDroid/src/main/res/values-ru/01-core.xml
@@ -89,7 +89,7 @@
Импортировать
Отменить
Вернуть
- Отменить штрих
+ Отменить черту
Переместить всё в колоду
Вернуть
Переименовать колоду
@@ -147,7 +147,7 @@
Отмена…\nЭто может занять некоторое время.
Синхронизация медиафайлов
Экспортировать колоду
- Export collection
+ Экспортировать коллекцию
Ничего
Типы карточек
diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml
index bdc79368050a..1e5daea035c5 100644
--- a/AnkiDroid/src/main/res/values-ru/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml
@@ -164,7 +164,7 @@
]]>
Поделиться
Сохранить в
- Saving exported file…
+ Экспортированный файл сохраняется…
Параметры
Параметры колоды
Параметры учёбы
@@ -238,9 +238,9 @@
Изменить элемент панели
Введите HTML, который будет вставлен до и после выделенного текста.\n\nНажмите и удерживайте элемент панели инструментов, чтобы изменить или удалить его.
Удалить элемент панели инструментов?
- The image is too large, please insert the image manually
- The video file is too large, please insert the video manually
- The audio file is too large, please insert the audio manually
+ Изображение слишком большое. Вставьте изображение вручную
+ Видео слишком большое. Вставьте видео вручную
+ Аудио слишком большое. Вставьте аудио вручную
Выполняется резервное копирование Android. Попробуйте еще раз
Возможно, вам потребуется iManager, чтобы AnkiDroid мог добавлять ярлыки
Ваш домашний экран не позволяет AnkiDroid добавлять ярлыки
@@ -299,7 +299,7 @@
Запоминать больше
Планировщик Anki экономит ваше время, помогая запомнить сложное и не забыть простое
Начать
- Синхронизировать с AnkiWeb
+ Скачать с AnkiWeb
AnkiDroid is not initialized yet. Please open AnkiDroid and try again
Вход уже выполнен
@@ -307,11 +307,11 @@
Колода создана
Колода переименована
- Колода удалена — удалите ссылку
+ Колода удалена — удалите ярлык
Карточки
Записи
- Переключить карточки/заметки
+ Карточки — записи
Показывать карточки или записи в списке
Показывать в списке только первые 3 строки
Параметры списка карточек
@@ -320,16 +320,16 @@
Нажмите на голосе, чтобы послушать
Нужно установить голос
- Все равно использовать
+ Всё равно использовать
Ошибка синтеза речи (%s)
Интернет
Установить
- Не удалось открыть настроки синтеза
+ Не удалось открыть настройки синтеза
Пожалуйста, войдите, чтобы скачать больше колод
Описание
Не удалось скопировать
- Unavailable in ‘Notes’ mode
+ Недоступно в режиме записей
- %d карточка возвращена
- %d карточки возвращены
@@ -337,11 +337,12 @@
- %d карточек возвращено
Переместить
- Запись
+ Записать
Стоп
Играть
След.
- Cannot Delete Card Type
+ Не удается удалить тип карточек
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml
index 4dee9ea49b11..0189ff875474 100644
--- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml
@@ -115,8 +115,8 @@
Заменить
Указанный путь не является допустимой папкой
The provided text does not resolve to a valid PEM-encoded X509 certificate
- Error parsing certificate
- Certificate updated
+ Ошибка при обработке сертификата
+ Сертификат обновлён
Проверить медиафайлы?
Это может занять много времени, если медиафайлов много
@@ -236,11 +236,11 @@
Резервное копирование коллекции
Вы давно не сохраняли резервную копию своей коллекции. Сделайте это сейчас, чтобы предотвратить потерю данных
- Сделать резервную копию
+ Сохранить
Отключить напоминание
Позже
Больше не показывать
- Предупреждение о потере данных
+ Внимание: потеря данных
В связи с изменениями конфиденциальности Android, при удалении приложения ваши данные и автоматизированные резервные копии будут удалены с вашего телефона
В связи с изменениями конфиденциальности Android, после удалении приложения ваши данные и автоматизированные резервные копии будут недоступны
@@ -277,8 +277,13 @@
Change cloze number
Cloze number:
Change editor mode
- Open note editor
+ Открыть редактор записей
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ru/04-network.xml b/AnkiDroid/src/main/res/values-ru/04-network.xml
index 1e1b7071265d..bba9dab03598 100644
--- a/AnkiDroid/src/main/res/values-ru/04-network.xml
+++ b/AnkiDroid/src/main/res/values-ru/04-network.xml
@@ -70,7 +70,7 @@
Синхронизация
Полностью синхронизировано с устройством
Коллекция синхронизирована
- Collection synced. Media is being synced in the background.
+ Коллекция синхронизирована. Медиафайлы синхронизируются в фоновом режиме.
База данных повреждена. Попробуйте исправить её и синхронизироваться опять.\n\nОб исправлении см. %s.
Локальную
diff --git a/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml
index da8618471d6f..e88862cfa4a9 100644
--- a/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml
+++ b/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml
@@ -82,7 +82,7 @@
Название запроса
Нельзя сохранить запрос без названия
Такое название уже существует
- No note to edit
+ Нет записей для редактирования
Удалить «%1$s»?
Изменить сортировку
Выберите тип сортировки
diff --git a/AnkiDroid/src/main/res/values-ru/08-widget.xml b/AnkiDroid/src/main/res/values-ru/08-widget.xml
index 8f97993b70a2..b032f3cece73 100644
--- a/AnkiDroid/src/main/res/values-ru/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ru/08-widget.xml
@@ -66,16 +66,19 @@
- Осталось %d минут
Добавить запись в AnkiDroid
- Deck Picker
-
- Select decks
- Select decks to display in the widget. Select decks with the + icon.
- Deck removed
- This deck is already selected
+ Выбор колоды
+ Card Analysis
+
+ Выберите колоды
+ Выберите колоду
+ Выберите колоды для отображения в виджете. Выберите колоды с помощью кнопки +
+ Колода удаленна
+ Эта колода уже выбрана
- - You can select up to %d deck.
- - You can select up to %d decks.
- - You can select up to %d decks.
- - You can select up to %d decks.
+ - Вы можете выбрать до %d колод
+ - Вы можете выбрать до %d колод
+ - Вы можете выбрать до %d колод
+ - Вы можете выбрать до %d колод
+ Колоды нет. Настройте виджет заново
diff --git a/AnkiDroid/src/main/res/values-ru/10-preferences.xml b/AnkiDroid/src/main/res/values-ru/10-preferences.xml
index fc43b0f6a8db..8a765e96f54b 100644
--- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml
+++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml
@@ -222,7 +222,7 @@
Подробнее
]]>
URL для синхронизации
- Custom root certificate (PEM)
+ Свой корневой сертификат (PEM)
Клавиатура
Bluetooth
@@ -365,12 +365,12 @@
Данные получаются…
Вычисляется…
Коллекция не существует
- Hide system bars
- None
- Status bar
- Navigation bar
- All
- Ignore display cutout
- Hide answer buttons
- Hide ‘Hard’ and ‘Easy’ buttons
+ Скрыть системные панели
+ Никакие
+ Строка состояния
+ Панель навигации
+ Все
+ Игнорировать вырез экрана
+ Скрывать кнопки ответа
+ Скрывать кнопки «Трудно» и «Легко»
diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml
index b3329563951c..2f39a504f3de 100644
--- a/AnkiDroid/src/main/res/values-sat/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml
index 3a88896d6568..9c7c13650f6a 100644
--- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sat/08-widget.xml b/AnkiDroid/src/main/res/values-sat/08-widget.xml
index 5ffb311f49b7..3f87352a6467 100644
--- a/AnkiDroid/src/main/res/values-sat/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sat/08-widget.xml
@@ -61,8 +61,10 @@
ᱱᱟᱶᱟ AnkiDroid ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱥᱮᱞᱮᱫ ᱢᱮ
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml
index c7dc64196c5c..a04a4b6b3327 100644
--- a/AnkiDroid/src/main/res/values-sc/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml
@@ -341,4 +341,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml
index 4f10f8813c38..43bd56ca056e 100644
--- a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml
@@ -278,4 +278,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sc/08-widget.xml b/AnkiDroid/src/main/res/values-sc/08-widget.xml
index 89c6d46e7e01..2ef2a6189c22 100644
--- a/AnkiDroid/src/main/res/values-sc/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sc/08-widget.xml
@@ -61,8 +61,10 @@
Annanghe una nota de AnkiDroid noa
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml
index 1bb904f8a041..723fd0a6020d 100644
--- a/AnkiDroid/src/main/res/values-sk/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml
@@ -349,4 +349,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml
index b0174fdfc8e0..276a80b479c4 100644
--- a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml
@@ -278,4 +278,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sk/08-widget.xml b/AnkiDroid/src/main/res/values-sk/08-widget.xml
index 39f93821ddbf..f9cd42a713cd 100644
--- a/AnkiDroid/src/main/res/values-sk/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sk/08-widget.xml
@@ -67,8 +67,10 @@
Pridať novú poznámku Ankidroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml
index 83fc11f7e707..b6f1e53580dc 100644
--- a/AnkiDroid/src/main/res/values-sl/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml
@@ -349,4 +349,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml
index 115ef6666de3..b73c31f5a2c1 100644
--- a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml
@@ -280,4 +280,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sl/08-widget.xml b/AnkiDroid/src/main/res/values-sl/08-widget.xml
index 0729aa88a29a..90f766f9da1c 100644
--- a/AnkiDroid/src/main/res/values-sl/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sl/08-widget.xml
@@ -67,8 +67,10 @@
Dodaj nov zapisek AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -78,4 +80,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml
index 403e20714dd7..812785182e12 100644
--- a/AnkiDroid/src/main/res/values-sq/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml
index fc09639be003..0b28627238fe 100644
--- a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sq/08-widget.xml b/AnkiDroid/src/main/res/values-sq/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-sq/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sq/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml
index c85aa5a1dad2..521a81f2cc16 100644
--- a/AnkiDroid/src/main/res/values-sr/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml
@@ -344,4 +344,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml
index 443c2c9b3006..d4a371a0d121 100644
--- a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml
@@ -272,4 +272,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sr/08-widget.xml b/AnkiDroid/src/main/res/values-sr/08-widget.xml
index b2b37a4c17d1..de058c1534ba 100644
--- a/AnkiDroid/src/main/res/values-sr/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sr/08-widget.xml
@@ -64,8 +64,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -74,4 +76,5 @@
- You can select up to %d decks.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-ss/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ss/08-widget.xml b/AnkiDroid/src/main/res/values-ss/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-ss/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ss/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml
index b0b3c3bacb95..94e4c7649cea 100644
--- a/AnkiDroid/src/main/res/values-sv/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml
index 13c0e844e70a..733907ebf03d 100644
--- a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sv/08-widget.xml b/AnkiDroid/src/main/res/values-sv/08-widget.xml
index 8a894ff5041f..eba56cf4a77c 100644
--- a/AnkiDroid/src/main/res/values-sv/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sv/08-widget.xml
@@ -61,8 +61,10 @@
Lägg till ny AnkiDroid not
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-sw/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-sw/08-widget.xml b/AnkiDroid/src/main/res/values-sw/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-sw/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-sw/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml
index 42fb1f38087c..1696cb8eb694 100644
--- a/AnkiDroid/src/main/res/values-ta/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml
@@ -339,4 +339,5 @@
அட்டை வகையை நீக்க முடியாது
இந்தக் கார்டு வகையை நீக்கினால் சில குறிப்புகள் கார்டு இல்லாமல் இருக்கும்.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml
index b505a90e6c15..53961f71d11b 100644
--- a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml
@@ -264,4 +264,9 @@
குளோஸ் பயன்முறையை மாற்றவும்
WebView அமைப்பு காலாவதியானது. சில அம்சங்கள் சரியாக வேலை செய்யாது. தயவுசெய்து அதைப் புதுப்பிக்கவும்.\n\nநிறுவப்பட்ட பதிப்பு: %1$d\nகுறைந்தபட்ச தேவையான பதிப்பு: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ta/08-widget.xml b/AnkiDroid/src/main/res/values-ta/08-widget.xml
index b593e45f0850..d455df4fbf25 100644
--- a/AnkiDroid/src/main/res/values-ta/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ta/08-widget.xml
@@ -61,8 +61,10 @@
புதிய AnkiDroid குறிப்பைச் சேர்க்கவும்
டெக் பிக்கர்
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
விட்ஜெட்டில் காட்ட லேயர்களைத் தேர்ந்தெடுக்கவும். + ஐகான் கொண்ட அடுக்குகளைத் தேர்ந்தெடுக்கவும்.
Deck removed
இந்த தளம் ஏற்கனவே தேர்ந்தெடுக்கப்பட்டது
@@ -70,4 +72,5 @@
- நீங்கள் %d தளங்கள் வரை தேர்ந்தெடுக்கலாம்.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml
index 7f6d6db6c37e..23827a2bc0a9 100644
--- a/AnkiDroid/src/main/res/values-te/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-te/02-strings.xml
@@ -333,4 +333,5 @@
కార్డ్ రకాన్ని తొలగించడం సాధ్యం కాదు
ఈ కార్డ్ రకాన్ని తొలగించడం వలన కొన్ని గమనికలు కార్డ్లు లేకుండా ఉంటాయి.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-te/03-dialogs.xml b/AnkiDroid/src/main/res/values-te/03-dialogs.xml
index eeb0046b7566..f3a64df1d319 100644
--- a/AnkiDroid/src/main/res/values-te/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-te/03-dialogs.xml
@@ -262,4 +262,9 @@
క్లోజ్ మోడ్ని మార్చండి
సిస్టమ్ WebView పాతది. కొన్ని ఫీచర్లు సరిగ్గా పని చేయవు. దయచేసి దీన్ని అప్డేట్ చేయండి.\n\nఇన్స్టాల్ చేసిన వెర్షన్: %1$d\nకనీసం అవసరమైన వెర్షన్: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-te/08-widget.xml b/AnkiDroid/src/main/res/values-te/08-widget.xml
index 7d0e36b5d7fd..415c487d9295 100644
--- a/AnkiDroid/src/main/res/values-te/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-te/08-widget.xml
@@ -61,8 +61,10 @@
కొత్త AnkiDroid గమనికను జోడించండి
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-tg/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml
index ef4d7f77b8a7..7c6ba057c03e 100644
--- a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-tg/08-widget.xml b/AnkiDroid/src/main/res/values-tg/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-tg/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-tg/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml
index 62017eb44e64..9cfa059bb006 100644
--- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml
index 82eecde26e23..2e415ae98459 100644
--- a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-tgl/08-widget.xml b/AnkiDroid/src/main/res/values-tgl/08-widget.xml
index 9555cbfbae00..5ceb262bc2cf 100644
--- a/AnkiDroid/src/main/res/values-tgl/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-tgl/08-widget.xml
@@ -61,8 +61,10 @@
Magdadadag ng bagong paalalang AnkiDroid
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml
index 3475f1ba7975..04acb0b05d8f 100644
--- a/AnkiDroid/src/main/res/values-th/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-th/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-th/03-dialogs.xml b/AnkiDroid/src/main/res/values-th/03-dialogs.xml
index ec057bf9b7d0..45d54c72c836 100644
--- a/AnkiDroid/src/main/res/values-th/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-th/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-th/08-widget.xml b/AnkiDroid/src/main/res/values-th/08-widget.xml
index b47372de3bfd..3e81436d0c33 100644
--- a/AnkiDroid/src/main/res/values-th/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-th/08-widget.xml
@@ -58,12 +58,15 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-ti/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ti/08-widget.xml b/AnkiDroid/src/main/res/values-ti/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-ti/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ti/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-tn/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-tn/08-widget.xml b/AnkiDroid/src/main/res/values-tn/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-tn/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-tn/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml
index 4d85c3fcb6af..0b4ec8f35762 100644
--- a/AnkiDroid/src/main/res/values-tr/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml
@@ -339,4 +339,5 @@
Kart Türü Silinemiyor
Bu kart türünü silmek bazı notları kartsız bırakacak.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml
index f0333946e2d4..1241fb7950c3 100644
--- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml
@@ -264,4 +264,9 @@
Boşluk modunu değiştir
Sistem WebView\'su güncel değil. Bazı özellikler doğru çalışmayacak. Lütfen güncelleyin.\n\nYüklü sürüm: %1$d\nGereken en düşük sürüm: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-tr/08-widget.xml b/AnkiDroid/src/main/res/values-tr/08-widget.xml
index 9fbc58d38a6f..047db3b40a8e 100644
--- a/AnkiDroid/src/main/res/values-tr/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-tr/08-widget.xml
@@ -61,8 +61,10 @@
Yeni AnkiDroid notu ekle
Deste Seçici
-
- Desteleri seç
+ Kart Analizi
+
+ Desteleri seç
+ Bir deste seç
Widgetta gösterilecek desteleri seçin. Desteleri + simgesiyle seçin.
Deste kaldırıldı
Bu deste zaten seçili
@@ -70,4 +72,5 @@
- En fazla %d deste seçebilirsiniz.
- En fazla %d deste seçebilirsiniz.
+ Deste eksik. Lütfen yeniden ayarlayın
diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-ts/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ts/08-widget.xml b/AnkiDroid/src/main/res/values-ts/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-ts/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ts/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml
index e277da090c34..9aceff080f57 100644
--- a/AnkiDroid/src/main/res/values-tt/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml
@@ -335,4 +335,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml
index 0d9a6d2ed9fd..b9ec7300c55f 100644
--- a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-tt/08-widget.xml b/AnkiDroid/src/main/res/values-tt/08-widget.xml
index 4baa0c599190..87d9447016e1 100644
--- a/AnkiDroid/src/main/res/values-tt/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-tt/08-widget.xml
@@ -58,12 +58,15 @@
Яңа AnkiDroid язуы
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-uk/01-core.xml b/AnkiDroid/src/main/res/values-uk/01-core.xml
index c3dc66ee43dc..b7f31be9bcc2 100644
--- a/AnkiDroid/src/main/res/values-uk/01-core.xml
+++ b/AnkiDroid/src/main/res/values-uk/01-core.xml
@@ -53,7 +53,7 @@
Креслення
Надіслати відгук
Вивчати
- +%d buried
+ +%d відкладено
Розгорнути
Згорнути
diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml
index 4900a2dc3e43..b639f3001273 100644
--- a/AnkiDroid/src/main/res/values-uk/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml
@@ -238,9 +238,9 @@
Редагувати елемент панелі інструментів
Введіть HTML, який буде вставлений до і після виділеного тексту\n\nДовго натискайте на елемент панелі інструментів, щоб його редагувати або видалити
Видалити елемент панелі інструментів?
- The image is too large, please insert the image manually
- The video file is too large, please insert the video manually
- The audio file is too large, please insert the audio manually
+ Зображення завелике, будь ласка, вставте зображення вручну
+ Відео файл завеликий, будь ласка, вставте відео вручну
+ Аудіо файл завеликий, будь ласка, вставте аудіо вручну
Виконується резервне копіювання. Будь ласка, спробуйте ще раз
Використовуйте iManager, щоб дозволити AnkiDroid додавати ярлики
Ваш головний екран не дозволяє AnkiDroid додати ярлики
@@ -346,6 +346,7 @@
Відтворити
Наступний
- Cannot Delete Card Type
- Deleting this card type will leave some notes without any cards.
+ Неможливо видалити тип картки
+ Якщо видалити цей тип картки, деякі нотатки залишаться без карток.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml
index 7f00ebf974c5..b161007dfac2 100644
--- a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml
@@ -49,12 +49,12 @@
Видалити колоду
Видалити колоду?
- - Delete all cards in %1$s? It contains %2$d card
- - Delete all cards in %1$s? It contains %2$d cards
- - Delete all cards in %1$s? It contains %2$d cards
- - Delete all cards in %1$s? It contains %2$d cards
+ - Видалити всі картки в %1$s? Він містить %2$d картку
+ - Видалити всі картки в %1$s? Він містить %2$d карток
+ - Видалити всі картки в %1$s? Він містить %2$d карток
+ - Видалити всі картки в %1$s? Він містить %2$d карток
- Delete filtered deck %s and send all cards back to their original decks?
+ Видалити відфільтровану колоду %s і повернути всі карти до оригінальних колод?
Відсутня мова для перетворення тексту в мовлення
Не говорити
\n\nНевикористані файли:\n
@@ -275,9 +275,14 @@
Відкрити
Змінити номер Cloze
Номер Cloze:
- Change editor mode
- Open note editor
- Change cloze mode
+ Змінити режим редактора
+ Відкрити редактор нотаток
+ Змінити режим закриття
Системний WebView застарілий. Деякі функції не будуть правильно працювати. Оновіть його, будь ласка.\n\nВстановлена версія: %1$d\nЯк мінімум потрібна версія: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml
index c5af5adeb13b..a964ce7cfe4e 100644
--- a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml
+++ b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml
@@ -82,7 +82,7 @@
Назва для пошукового запиту
Не можна зберегти пошуковий запит без назви
Така назва вже існує!
- No note to edit
+ Немає нотаток для редагування
Видалити «%1$s»?
Сортувати за
Вибрати порядок відображення
diff --git a/AnkiDroid/src/main/res/values-uk/08-widget.xml b/AnkiDroid/src/main/res/values-uk/08-widget.xml
index 60ff6db8331f..52b15d64c6d7 100644
--- a/AnkiDroid/src/main/res/values-uk/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-uk/08-widget.xml
@@ -66,16 +66,19 @@
- Залишилося %d хвилин
Додати новий запис в AnkiDroid
- Deck Picker
-
- Select decks
- Select decks to display in the widget. Select decks with the + icon.
- Deck removed
- This deck is already selected
+ Вибір колоди
+ Card Analysis
+
+ Select decks
+ Select a deck
+ Виберіть колоди для зображення у віджеті. Виберіть колоди за допомогою піктограми +.
+ Колоду видалено
+ Ця колода вже вибрана
- - You can select up to %d deck.
- - You can select up to %d decks.
- - You can select up to %d decks.
- - You can select up to %d decks.
+ - Ви можете вибрати до %d колоди.
+ - Ви можете вибрати до %d колод.
+ - Ви можете вибрати до %d колод.
+ - Ви можете вибрати до %d колод.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml
index f02b155768f3..287e89b164c6 100644
--- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml
+++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml
@@ -174,7 +174,7 @@
Показати великі кнопки відповіді
Показувати кнопку відповіді в 2 рядках
Показувати верхню панель
- Show card counts, answer timer, flag and mark in top bar
+ Показувати кількість карток, таймер відповідей, прапорець і позначку у верхній панелі
Показувати ті, що залишилися
Показувати кількість карток, що залишилися
Показувати приблизний час, що залишився
@@ -284,7 +284,7 @@
Дія 7
Дія 8
Дія 9
- Toggle auto advance
+ Перемкнути автоматичне просування
Вибрати сторону картки
Питання
@@ -375,5 +375,5 @@
Всі
Ігнорувати виріз дисплею
Приховати кнопки відповіді
- Hide ‘Hard’ and ‘Easy’ buttons
+ Приховати кнопки \'Важкий\' і \'Легкий\'
diff --git a/AnkiDroid/src/main/res/values-uk/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-uk/16-multimedia-editor.xml
index d2f96570024a..2a5f2233d33e 100644
--- a/AnkiDroid/src/main/res/values-uk/16-multimedia-editor.xml
+++ b/AnkiDroid/src/main/res/values-uk/16-multimedia-editor.xml
@@ -74,5 +74,5 @@
"Не вдалося обрати зображення. Будь ласка, спробуйте ще"
Додаток повернув неочікуване значення. Можливо, потрібне використання іншого додатку
Вміст поля
- Reselect
+ Вибрати знову
diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml
index 5207cadd0938..6d2eb84f745a 100644
--- a/AnkiDroid/src/main/res/values-ur/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml
@@ -340,4 +340,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml
index d160d8f6db26..20f5ae6e4e85 100644
--- a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
WebView سسٹم پرانا ہے۔ کچھ خصوصیات صحیح طریقے سے کام نہیں کریں گی۔ براہ کرم اسے اپ ڈیٹ کریں۔\n\nانسٹال شدہ ورژن: %1$d\nکم از کم مطلوبہ ورژن: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ur/08-widget.xml b/AnkiDroid/src/main/res/values-ur/08-widget.xml
index 72f35dd41208..6bf42ded3569 100644
--- a/AnkiDroid/src/main/res/values-ur/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ur/08-widget.xml
@@ -61,8 +61,10 @@
نیا AnkiDroid نوٹ شامل کریں۔
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml
index 2a7540170ed4..737503737e2a 100644
--- a/AnkiDroid/src/main/res/values-uz/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml
index 355e2dd2437d..ca34053a7c89 100644
--- a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-uz/08-widget.xml b/AnkiDroid/src/main/res/values-uz/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-uz/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-uz/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-ve/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-ve/08-widget.xml b/AnkiDroid/src/main/res/values-ve/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-ve/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-ve/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-vi/01-core.xml b/AnkiDroid/src/main/res/values-vi/01-core.xml
index 6f2471904b26..d00864a04037 100644
--- a/AnkiDroid/src/main/res/values-vi/01-core.xml
+++ b/AnkiDroid/src/main/res/values-vi/01-core.xml
@@ -99,7 +99,7 @@
Tạm hoãn
Xoá ghi chú
Gắn cờ
- Rename flags
+ Đổi tên nhãn đánh dấu
Gắn cờ thẻ
Sửa tag
Bạn thực sự muốn xoá ghi chú này cùng toàn bộ thẻ của nó?\n%s
diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml
index daa2e8418cc0..5bbd65d8292a 100644
--- a/AnkiDroid/src/main/res/values-vi/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml
index f261d3f3c06b..82671bc8384a 100644
--- a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-vi/08-widget.xml b/AnkiDroid/src/main/res/values-vi/08-widget.xml
index 87bc3aba0261..4ac74795affb 100644
--- a/AnkiDroid/src/main/res/values-vi/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-vi/08-widget.xml
@@ -58,12 +58,15 @@
Thêm ghi chú AnkiDroid mới
Deck Picker
-
- Chọn bộ thẻ
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Đã xoá bộ thẻ
Bộ thẻ này đã được chọn rồi
- Bạn có thể chọn tối đa %d bộ thẻ.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml
index 2d02ed94af1d..987d8134a1d8 100644
--- a/AnkiDroid/src/main/res/values-wo/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml
index ec057bf9b7d0..45d54c72c836 100644
--- a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-wo/08-widget.xml b/AnkiDroid/src/main/res/values-wo/08-widget.xml
index b47372de3bfd..3e81436d0c33 100644
--- a/AnkiDroid/src/main/res/values-wo/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-wo/08-widget.xml
@@ -58,12 +58,15 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-xh/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-xh/08-widget.xml b/AnkiDroid/src/main/res/values-xh/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-xh/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-xh/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml
index 38476bde1097..95ecaed7f048 100644
--- a/AnkiDroid/src/main/res/values-yue/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml
@@ -334,4 +334,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml
index 7eba815ce297..a086b30c5eb4 100644
--- a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml
@@ -256,4 +256,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-yue/08-widget.xml b/AnkiDroid/src/main/res/values-yue/08-widget.xml
index b47372de3bfd..3e81436d0c33 100644
--- a/AnkiDroid/src/main/res/values-yue/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-yue/08-widget.xml
@@ -58,12 +58,15 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml
index f188fccf6e6e..708641772475 100644
--- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml
@@ -334,4 +334,5 @@
无法删除卡片类型
删除此卡片类型将留使一些附注没有任何卡片。
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml
index 2c943297d956..cc34ff5fa41c 100644
--- a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml
@@ -256,4 +256,9 @@
更改填充测验模式
系统 WebView 已过时。有些功能将无法正常工作。请更新它。\n\n已安装版本: %1$d\n所需最低版本: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-zh-rCN/08-widget.xml b/AnkiDroid/src/main/res/values-zh-rCN/08-widget.xml
index def741248149..7a759a578707 100644
--- a/AnkiDroid/src/main/res/values-zh-rCN/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-zh-rCN/08-widget.xml
@@ -58,12 +58,15 @@
添加新的笔记
牌组选择器
-
- 选择牌组
+ 卡片分析
+
+ 选择多个牌组
+ 选择单个牌组
选择要在小部件中显示的牌组。使用 + 图标选择牌组。
牌组已删除
此牌组已被选中
- 您最多可以选择 %d 套牌组。
+ 缺少牌组。请重新配置
diff --git a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml
index 4b4950d1cbb8..a10370028b1d 100644
--- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml
@@ -333,4 +333,5 @@
無法刪除此卡類型
刪除此卡類型會使某些筆記本沒有任何卡片。
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml b/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml
index 6e8f5ffbbb3c..6ae2f5c8ca16 100644
--- a/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml
@@ -256,4 +256,9 @@
變更詞彙練習模式
系統 WebView 已經過時。某些功能無法正常運作。請更新。\n\n安裝版本:%1$d%1$d最低要求版本:%2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-zh-rTW/08-widget.xml b/AnkiDroid/src/main/res/values-zh-rTW/08-widget.xml
index a7c6e28479af..0b7a78b5e639 100644
--- a/AnkiDroid/src/main/res/values-zh-rTW/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-zh-rTW/08-widget.xml
@@ -58,12 +58,15 @@
新增 AnkiDroid 筆記
牌組挑選器
-
- 選擇牌組
+ Card Analysis
+
+ Select decks
+ Select a deck
選取要在小工具中顯示的牌組。使用 + 圖示選取卡組。
牌組已移除
已選擇此卡組
- 您最多可以選擇 %d 副牌。
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml
index b0203d4e80f6..3c37b440ad38 100644
--- a/AnkiDroid/src/main/res/values-zu/02-strings.xml
+++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml
@@ -339,4 +339,5 @@
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
diff --git a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml
index fc5b17706bab..1595154c0526 100644
--- a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml
@@ -264,4 +264,9 @@
Change cloze mode
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
diff --git a/AnkiDroid/src/main/res/values-zu/08-widget.xml b/AnkiDroid/src/main/res/values-zu/08-widget.xml
index 8bfcb6d2fbaf..2a281a15144e 100644
--- a/AnkiDroid/src/main/res/values-zu/08-widget.xml
+++ b/AnkiDroid/src/main/res/values-zu/08-widget.xml
@@ -61,8 +61,10 @@
Add new AnkiDroid note
Deck Picker
-
- Select decks
+ Card Analysis
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -70,4 +72,5 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/values/02-strings.xml b/AnkiDroid/src/main/res/values/02-strings.xml
index 5b57206e7533..26b050cb55bd 100644
--- a/AnkiDroid/src/main/res/values/02-strings.xml
+++ b/AnkiDroid/src/main/res/values/02-strings.xml
@@ -402,4 +402,6 @@ opening the system text to speech settings fails">
Cannot Delete Card Type
Deleting this card type will leave some notes without any cards.
+ Voice not supported. Try another or install a voice engine.
+
diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml
index 920af4963e01..3d4ca7d577fa 100644
--- a/AnkiDroid/src/main/res/values/03-dialogs.xml
+++ b/AnkiDroid/src/main/res/values/03-dialogs.xml
@@ -282,4 +282,11 @@ also changes the interval of the card"
The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d
+
+
+ Language not supported
+ The text to speech engine %1$s does not support the following language: %2$s
+ Change engine
+ Voice options
+
diff --git a/AnkiDroid/src/main/res/values/08-widget.xml b/AnkiDroid/src/main/res/values/08-widget.xml
index 134f9238d176..873cdb9c9838 100644
--- a/AnkiDroid/src/main/res/values/08-widget.xml
+++ b/AnkiDroid/src/main/res/values/08-widget.xml
@@ -39,9 +39,11 @@
Add new AnkiDroid note
Deck Picker
+ Card Analysis
-
- Select decks
+
+ Select decks
+ Select a deck
Select decks to display in the widget. Select decks with the + icon.
Deck removed
This deck is already selected
@@ -49,5 +51,6 @@
- You can select up to %d deck.
- You can select up to %d decks.
+ Missing deck. Please reconfigure
diff --git a/AnkiDroid/src/main/res/xml/widget_provider_card_analysis.xml b/AnkiDroid/src/main/res/xml/widget_provider_card_analysis.xml
new file mode 100644
index 000000000000..a6b704c127f9
--- /dev/null
+++ b/AnkiDroid/src/main/res/xml/widget_provider_card_analysis.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/widget/cardanalysis/CardAnalysisWidgetConfigTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/widget/cardanalysis/CardAnalysisWidgetConfigTest.kt
new file mode 100644
index 000000000000..4a138040b8d2
--- /dev/null
+++ b/AnkiDroid/src/test/java/com/ichi2/anki/widget/cardanalysis/CardAnalysisWidgetConfigTest.kt
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 2024 Anoop
+ *
+ * This program is free software; you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3 of the License, or (at your option) any later
+ * version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+ * PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see .
+ */
+
+package com.ichi2.anki.widget.cardanalysis
+
+import android.appwidget.AppWidgetManager
+import android.content.Intent
+import android.view.View
+import androidx.recyclerview.widget.RecyclerView
+import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.ichi2.anki.R
+import com.ichi2.anki.RobolectricTest
+import com.ichi2.anki.dialogs.DeckSelectionDialog
+import com.ichi2.widget.cardanalysis.CardAnalysisWidgetConfig
+import com.ichi2.widget.cardanalysis.CardAnalysisWidgetPreferences
+import org.hamcrest.MatcherAssert.assertThat
+import org.hamcrest.Matchers.equalTo
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.junit.runner.RunWith
+import org.robolectric.Robolectric
+
+@RunWith(AndroidJUnit4::class)
+class CardAnalysisWidgetConfigTest : RobolectricTest() {
+
+ private lateinit var activity: CardAnalysisWidgetConfig
+ private val widgetPreferences = CardAnalysisWidgetPreferences(targetContext)
+
+ /**
+ * Sets up the test environment before each test.
+ *
+ * Initializes the `CardAnalysisWidgetConfig` activity and associated components like
+ * `WidgetPreferences`. This setup is executed before each test method.
+ */
+ @Before
+ override fun setUp() {
+ super.setUp()
+ val intent = Intent(targetContext, CardAnalysisWidgetConfig::class.java).apply {
+ putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 1)
+ }
+
+ activity = Robolectric.buildActivity(CardAnalysisWidgetConfig::class.java, intent)
+ .create()
+ .start()
+ .resume()
+ .get()
+
+ // Ensure deckAdapter is initialized
+ activity.initializeUIComponents()
+ }
+
+ @After
+ override fun tearDown() {
+ super.tearDown()
+ activity.finish()
+ }
+
+ /**
+ * Tests the functionality of saving selected decks to preferences.
+ *
+ * This test adds a deck to the adapter and verifies if it gets correctly saved to the
+ * `WidgetPreferences`.
+ */
+ @Test
+ fun testSaveSelectedDecksToPreferences() {
+ // Add decks to adapter
+ val deck1 = DeckSelectionDialog.SelectableDeck(1, "Deck 1")
+ activity.deckAdapter.addDeck(deck1)
+
+ // Save selected decks
+ activity.saveSelectedDecksToPreferencesCardAnalysisWidget()
+
+ // Verify saved decks
+ val selectedDeckId = widgetPreferences.getSelectedDeckIdFromPreferences(1)
+ assertThat(selectedDeckId, equalTo(deck1.deckId))
+ }
+
+ /**
+ * Tests the loading of saved preferences into the activity's view.
+ *
+ * This test saves decks to preferences, then loads them into the activity and checks if the
+ * `RecyclerView` displays the correct number of items based on the saved preferences.
+ */
+ @Test
+ fun testLoadSavedPreferences() {
+ // Save decks to preferences
+ val deckId = 1L
+ widgetPreferences.saveSelectedDeck(1, deckId)
+
+ // Load preferences
+ activity.updateViewWithSavedPreferences()
+
+ // Ensure all tasks on the UI thread are completed
+ Robolectric.flushForegroundThreadScheduler()
+
+ // Get the RecyclerView and its adapter
+ val recyclerView = activity.findViewById(R.id.recyclerViewSelectedDecks)
+ val adapter = recyclerView.adapter
+
+ // Verify the adapter has the correct item count
+ assertThat(adapter?.itemCount, equalTo(1))
+ }
+
+ /**
+ * Tests the visibility of different views based on the selected decks.
+ *
+ * This test checks the visibility of the placeholder and configuration container views
+ * before and after adding a deck.
+ */
+ @Test
+ fun testUpdateViewVisibility() {
+ val noDecksPlaceholder = activity.findViewById(R.id.no_decks_placeholder)
+ val widgetConfigContainer = activity.findViewById(R.id.widgetConfigContainer)
+
+ // Initially, no decks should be selected
+ activity.updateViewVisibility()
+ assertThat(noDecksPlaceholder.visibility, equalTo(View.VISIBLE))
+ assertThat(widgetConfigContainer.visibility, equalTo(View.GONE))
+
+ // Add a deck and update view visibility
+ val deck = DeckSelectionDialog.SelectableDeck(1, "Deck 1")
+ activity.deckAdapter.addDeck(deck)
+ activity.updateViewVisibility()
+
+ assertThat(noDecksPlaceholder.visibility, equalTo(View.GONE))
+ assertThat(widgetConfigContainer.visibility, equalTo(View.VISIBLE))
+ }
+}
diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckNameAndStatsTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckNameAndStatsTest.kt
index e246e9a958e1..9c003a0d85fa 100644
--- a/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckNameAndStatsTest.kt
+++ b/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckNameAndStatsTest.kt
@@ -18,7 +18,7 @@ package com.ichi2.anki.widget.deckpicker
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.ichi2.anki.RobolectricTest
-import com.ichi2.widget.deckpicker.getDeckNameAndStats
+import com.ichi2.widget.deckpicker.getDeckNamesAndStats
import org.junit.Test
import org.junit.runner.RunWith
import kotlin.test.assertEquals
@@ -32,7 +32,7 @@ class DeckNameAndStatsTest : RobolectricTest() {
val deck2Id = addDeck("Deck 2")
val deckIds = listOf(deck1Id, deck2Id)
- val result = getDeckNameAndStats(deckIds)
+ val result = getDeckNamesAndStats(deckIds)
assertEquals(2, result.size)
assertEquals("Deck 1", result[0].name)
@@ -48,7 +48,7 @@ class DeckNameAndStatsTest : RobolectricTest() {
val deckCId = addDeck("Deck C")
val deckIds = listOf(deckCId, deckAId, deckBId)
- val result = getDeckNameAndStats(deckIds)
+ val result = getDeckNamesAndStats(deckIds)
assertEquals(3, result.size)
assertEquals("Deck C", result[0].name)
@@ -65,7 +65,7 @@ class DeckNameAndStatsTest : RobolectricTest() {
val child1Id = addDeck("Deck 1::Child 1")
val deckIds = listOf(deck1Id, child1Id)
- val result = getDeckNameAndStats(deckIds)
+ val result = getDeckNamesAndStats(deckIds)
assertEquals(2, result.size)
assertEquals("Deck 1", result[0].name)
diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckPickerWidgetConfigTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckPickerWidgetConfigTest.kt
index 4960c5bf3c13..a89c08220cb3 100644
--- a/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckPickerWidgetConfigTest.kt
+++ b/AnkiDroid/src/test/java/com/ichi2/anki/widget/deckpicker/DeckPickerWidgetConfigTest.kt
@@ -19,16 +19,13 @@ package com.ichi2.anki.widget.deckpicker
import android.appwidget.AppWidgetManager
import android.content.Intent
import android.view.View
-import androidx.lifecycle.Lifecycle
-import androidx.lifecycle.LifecycleRegistry
import androidx.recyclerview.widget.RecyclerView
-import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.ichi2.anki.R
import com.ichi2.anki.RobolectricTest
import com.ichi2.anki.dialogs.DeckSelectionDialog
-import com.ichi2.widget.WidgetPreferences
import com.ichi2.widget.deckpicker.DeckPickerWidgetConfig
+import com.ichi2.widget.deckpicker.DeckPickerWidgetPreferences
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.equalTo
import org.junit.Before
@@ -40,19 +37,18 @@ import org.robolectric.Robolectric
class DeckPickerWidgetConfigTest : RobolectricTest() {
private lateinit var activity: DeckPickerWidgetConfig
- private lateinit var lifecycle: LifecycleRegistry
- private lateinit var widgetPreferences: WidgetPreferences
+ private val widgetPreferences = DeckPickerWidgetPreferences(targetContext)
/**
* Sets up the test environment before each test.
*
* Initializes the `DeckPickerWidgetConfig` activity and associated components like
- * `LifecycleRegistry` and `WidgetPreferences`. This setup is executed before each test method.
+ * `WidgetPreferences`. This setup is executed before each test method.
*/
@Before
override fun setUp() {
super.setUp()
- val intent = Intent(ApplicationProvider.getApplicationContext(), DeckPickerWidgetConfig::class.java).apply {
+ val intent = Intent(targetContext, DeckPickerWidgetConfig::class.java).apply {
putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, 1)
}
@@ -62,11 +58,6 @@ class DeckPickerWidgetConfigTest : RobolectricTest() {
.resume()
.get()
- lifecycle = LifecycleRegistry(activity)
- lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_CREATE)
-
- widgetPreferences = WidgetPreferences(ApplicationProvider.getApplicationContext())
-
// Ensure deckAdapter is initialized
activity.initializeUIComponents()
}
@@ -87,7 +78,7 @@ class DeckPickerWidgetConfigTest : RobolectricTest() {
activity.saveSelectedDecksToPreferencesDeckPickerWidget()
// Verify saved decks
- val selectedDeckIds = widgetPreferences.getSelectedDeckIdsFromPreferencesDeckPickerWidget(1).toList()
+ val selectedDeckIds = widgetPreferences.getSelectedDeckIdsFromPreferences(1).toList()
assertThat(selectedDeckIds.contains(deck1.deckId), equalTo(true))
}
diff --git a/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt b/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt
index f26b6484234a..061daa079bb9 100644
--- a/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt
+++ b/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt
@@ -47,6 +47,7 @@ import com.ichi2.anki.services.ReminderService.Companion.getReviewDeckIntent
import com.ichi2.anki.ui.windows.managespace.ManageSpaceActivity
import com.ichi2.anki.ui.windows.permissions.PermissionsActivity
import com.ichi2.testutils.ActivityList.ActivityLaunchParam.Companion.get
+import com.ichi2.widget.cardanalysis.CardAnalysisWidgetConfig
import com.ichi2.widget.deckpicker.DeckPickerWidgetConfig
import org.robolectric.Robolectric
import org.robolectric.android.controller.ActivityController
@@ -90,7 +91,8 @@ object ActivityList {
get(CardViewerActivity::class.java),
get(InstantNoteEditorActivity::class.java),
get(MultimediaActivity::class.java),
- get(DeckPickerWidgetConfig::class.java)
+ get(DeckPickerWidgetConfig::class.java),
+ get(CardAnalysisWidgetConfig::class.java)
)
}
diff --git a/api/src/main/java/com/ichi2/anki/api/AddContentApi.kt b/api/src/main/java/com/ichi2/anki/api/AddContentApi.kt
index e3f7d7644917..20704f752daf 100644
--- a/api/src/main/java/com/ichi2/anki/api/AddContentApi.kt
+++ b/api/src/main/java/com/ichi2/anki/api/AddContentApi.kt
@@ -18,6 +18,7 @@
package com.ichi2.anki.api
+import android.annotation.SuppressLint
import android.content.ContentResolver
import android.content.ContentValues
import android.content.Context
@@ -542,6 +543,7 @@ public class AddContentApi(context: Context) {
* @return the spec version number or -1 if AnkiDroid is not installed.
*/
public val apiHostSpecVersion: Int
+ @SuppressLint("WrongConstant") // ComponentInfoFlags bug: GET_META_DATA.toLong() was invalid
get() {
// PackageManager#resolveContentProvider docs suggest flags should be 0 (but that gives null metadata)
// GET_META_DATA seems to work anyway
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index d5f14fc3a83b..9abed7ba696d 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -10,9 +10,9 @@ acra = '5.11.3'
#
# Old changelogs - See 'Table of Contents' in sidebar
# https://developer.android.com/build/releases/past-releases
-androidGradlePlugin = "8.5.2"
+androidGradlePlugin = "8.6.0"
# https://developer.android.com/jetpack/androidx/releases/activity
-androidxActivity = "1.9.1"
+androidxActivity = "1.9.2"
# https://developer.android.com/jetpack/androidx/releases/annotation
androidxAnnotation = "1.8.2"
# https://developer.android.com/jetpack/androidx/releases/appcompat
@@ -28,11 +28,11 @@ androidxDragAndDrop = "1.0.0"
# https://developer.android.com/jetpack/androidx/releases/exifinterface
androidxExifinterface = "1.3.7"
# https://developer.android.com/jetpack/androidx/releases/fragment
-androidxFragmentKtx = "1.8.2"
+androidxFragmentKtx = "1.8.3"
# https://developer.android.com/jetpack/androidx/releases/media
androidxMedia = "1.7.0"
# https://developer.android.com/jetpack/androidx/releases/media3
-androidxMedia3 = "1.4.0"
+androidxMedia3 = "1.4.1"
# https://developer.android.com/jetpack/androidx/releases/preference
androidxPreferenceKtx = "1.2.1"
# https://developer.android.com/jetpack/androidx/releases/recyclerview
@@ -59,13 +59,13 @@ colorpicker = "1.2.0"
# https://commons.apache.org/proper/commons-collections/changes-report.html
commonsCollections4 = "4.4"
# https://commons.apache.org/proper/commons-compress/changes-report.html
-commonsCompress = "1.27.0"
+commonsCompress = "1.27.1"
# https://commons.apache.org/proper/commons-exec/changes-report.html
commonsExec = "1.4.0"
# https://commons.apache.org/proper/commons-io/changes-report.html
commonsIo = "2.16.1"
coroutines = '1.8.1'
-desugar-jdk-libs-nio = "2.0.4"
+desugar-jdk-libs-nio = "2.1.2"
drawer = "1.0.3"
dokka = "1.9.20"
espresso = '3.6.1'
@@ -78,11 +78,11 @@ jsoup = "1.18.1"
androidTestJunit = "1.2.1"
junitJupiter= "5.11.0"
# https://github.com/JetBrains/kotlin/releases/
-kotlin = '2.0.10'
-kotlinxSerializationJson = "1.7.1"
+kotlin = '2.0.20'
+kotlinxSerializationJson = "1.7.2"
ktlint = "11.6.1"
leakcanaryAndroid = "2.14"
-lint = '31.5.2'
+lint = '31.6.0'
material = "1.12.0"
materialTapTargetPrompt = "3.3.2"
mockitoInline = "5.2.0"
@@ -91,7 +91,7 @@ mockk = "1.13.12"
nanohttpd = "2.3.1"
okhttp = "4.12.0"
# https://github.com/protocolbuffers/protobuf/releases
-protobufKotlinLite = "4.27.3"
+protobufKotlinLite = "4.28.0"
robolectric = "4.13"
searchpreference = "2.5.1"
seismic = "1.0.3"
@@ -101,7 +101,7 @@ slf4jTimber = "3.1"
timber = "5.0.1"
# https://github.com/Triple-T/gradle-play-publisher/releases
# In the past, releases have been published before the changelog
-triplet = "3.10.1"
+triplet = "3.11.0"
turbine = "1.1.0"
[libraries]
diff --git a/tools/localization/package.json b/tools/localization/package.json
index 6bce2abbb2fc..215ada19f683 100644
--- a/tools/localization/package.json
+++ b/tools/localization/package.json
@@ -18,28 +18,28 @@
"license": "GPL-3.0",
"dependencies": {
"@crowdin/crowdin-api-client": "^1.29.5",
- "axios": "^1.6.7",
+ "axios": "^1.7.7",
"dotenv": "^16.4.4",
"extract-zip": "^2.0.1",
"typescript": "^5.3.3"
},
"devDependencies": {
"@eslint/eslintrc": "^3.1.0",
- "@eslint/js": "^9.8.0",
+ "@eslint/js": "^9.9.1",
"@types/jest": "^29.5.12",
- "@types/node": "^22.1.0",
- "@typescript-eslint/eslint-plugin": "^8.0.0",
- "@typescript-eslint/parser": "^8.0.0",
- "eslint": "^9.8.0",
+ "@types/node": "^22.5.4",
+ "@typescript-eslint/eslint-plugin": "^8.4.0",
+ "@typescript-eslint/parser": "^8.4.0",
+ "eslint": "^9.9.1",
"eslint-config-prettier": "^9.1.0",
"eslint-config-standard": "^17.1.0",
- "eslint-plugin-import": "^2.29.1",
+ "eslint-plugin-import": "^2.30.0",
"eslint-plugin-n": "^17.2.1",
"eslint-plugin-promise": "^7.0.0",
"globals": "^15.9.0",
"jest": "^29.7.0",
"prettier": "^3.2.5",
- "ts-jest": "^29.1.2",
+ "ts-jest": "^29.2.5",
"ts-node": "^10.9.2"
}
}
diff --git a/tools/localization/yarn.lock b/tools/localization/yarn.lock
index 438754971564..808e6f06b3c4 100644
--- a/tools/localization/yarn.lock
+++ b/tools/localization/yarn.lock
@@ -296,10 +296,10 @@
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
-"@eslint/config-array@^0.17.1":
- version "0.17.1"
- resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.17.1.tgz#d9b8b8b6b946f47388f32bedfd3adf29ca8f8910"
- integrity sha512-BlYOpej8AQ8Ev9xVqroV7a02JK3SkBAaN9GfMMH9W6Ch8FlQlkjGw4Ir7+FgYwfirivAf4t+GtzuAxqfukmISA==
+"@eslint/config-array@^0.18.0":
+ version "0.18.0"
+ resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.18.0.tgz#37d8fe656e0d5e3dbaea7758ea56540867fd074d"
+ integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==
dependencies:
"@eslint/object-schema" "^2.1.4"
debug "^4.3.1"
@@ -320,10 +320,10 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.9.0", "@eslint/js@^9.8.0":
- version "9.9.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.0.tgz#d8437adda50b3ed4401964517b64b4f59b0e2638"
- integrity sha512-hhetes6ZHP3BlXLxmd8K2SNgkhNSi+UcecbnwWKwpP7kyi/uC75DJ1lOOBO3xrC4jyojtGE3YxKZPHfk4yrgug==
+"@eslint/js@9.9.1", "@eslint/js@^9.9.1":
+ version "9.9.1"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.9.1.tgz#4a97e85e982099d6c7ee8410aacb55adaa576f06"
+ integrity sha512-xIDQRsfg5hNBqHz04H1R3scSVwmI+KUbqjsQKHKQ1DAUSaUjYPReZZmS/5PNiKu1fUvzDd6H7DEDKACSEhu+TQ==
"@eslint/object-schema@^2.1.4":
version "2.1.4"
@@ -609,6 +609,11 @@
"@nodelib/fs.scandir" "2.1.5"
fastq "^1.6.0"
+"@rtsao/scc@^1.1.0":
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/@rtsao/scc/-/scc-1.1.0.tgz#927dd2fae9bc3361403ac2c7a00c32ddce9ad7e8"
+ integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==
+
"@sinclair/typebox@^0.27.8":
version "0.27.8"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e"
@@ -720,19 +725,12 @@
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==
-"@types/node@*":
- version "22.1.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.1.0.tgz#6d6adc648b5e03f0e83c78dc788c2b037d0ad94b"
- integrity sha512-AOmuRF0R2/5j1knA3c6G3HOk523Ga+l+ZXltX8SF1+5oqcXijjfTd8fY3XRZqSihEu9XhtQnKYLmkFaoxgsJHw==
- dependencies:
- undici-types "~6.13.0"
-
-"@types/node@^22.1.0":
- version "22.3.0"
- resolved "https://registry.yarnpkg.com/@types/node/-/node-22.3.0.tgz#7f8da0e2b72c27c4f9bd3cb5ef805209d04d4f9e"
- integrity sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==
+"@types/node@*", "@types/node@^22.5.4":
+ version "22.5.4"
+ resolved "https://registry.yarnpkg.com/@types/node/-/node-22.5.4.tgz#83f7d1f65bc2ed223bdbf57c7884f1d5a4fa84e8"
+ integrity sha512-FDuKUJQm/ju9fT/SeX/6+gBzoPzlVCzfzmGkwKvRHQVxi4BntVbyIwf6a4Xn62mrvndLiml6z/UBXIdEVjQLXg==
dependencies:
- undici-types "~6.18.2"
+ undici-types "~6.19.2"
"@types/stack-utils@^2.0.0":
version "2.0.3"
@@ -758,85 +756,85 @@
dependencies:
"@types/node" "*"
-"@typescript-eslint/eslint-plugin@^8.0.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.1.0.tgz#3c020deeaaba82a6f741d00dacf172c53be4911f"
- integrity sha512-LlNBaHFCEBPHyD4pZXb35mzjGkuGKXU5eeCA1SxvHfiRES0E82dOounfVpL4DCqYvJEKab0bZIA0gCRpdLKkCw==
+"@typescript-eslint/eslint-plugin@^8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.4.0.tgz#188c65610ef875a086404b5bfe105df936b035da"
+ integrity sha512-rg8LGdv7ri3oAlenMACk9e+AR4wUV0yrrG+XKsGKOK0EVgeEDqurkXMPILG2836fW4ibokTB5v4b6Z9+GYQDEw==
dependencies:
"@eslint-community/regexpp" "^4.10.0"
- "@typescript-eslint/scope-manager" "8.1.0"
- "@typescript-eslint/type-utils" "8.1.0"
- "@typescript-eslint/utils" "8.1.0"
- "@typescript-eslint/visitor-keys" "8.1.0"
+ "@typescript-eslint/scope-manager" "8.4.0"
+ "@typescript-eslint/type-utils" "8.4.0"
+ "@typescript-eslint/utils" "8.4.0"
+ "@typescript-eslint/visitor-keys" "8.4.0"
graphemer "^1.4.0"
ignore "^5.3.1"
natural-compare "^1.4.0"
ts-api-utils "^1.3.0"
-"@typescript-eslint/parser@^8.0.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.1.0.tgz#b7e77f5fa212df59eba51ecd4986f194bccc2303"
- integrity sha512-U7iTAtGgJk6DPX9wIWPPOlt1gO57097G06gIcl0N0EEnNw8RGD62c+2/DiP/zL7KrkqnnqF7gtFGR7YgzPllTA==
+"@typescript-eslint/parser@^8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.4.0.tgz#36b7cd7643a1c190d49dc0278192b2450f615a6f"
+ integrity sha512-NHgWmKSgJk5K9N16GIhQ4jSobBoJwrmURaLErad0qlLjrpP5bECYg+wxVTGlGZmJbU03jj/dfnb6V9bw+5icsA==
dependencies:
- "@typescript-eslint/scope-manager" "8.1.0"
- "@typescript-eslint/types" "8.1.0"
- "@typescript-eslint/typescript-estree" "8.1.0"
- "@typescript-eslint/visitor-keys" "8.1.0"
+ "@typescript-eslint/scope-manager" "8.4.0"
+ "@typescript-eslint/types" "8.4.0"
+ "@typescript-eslint/typescript-estree" "8.4.0"
+ "@typescript-eslint/visitor-keys" "8.4.0"
debug "^4.3.4"
-"@typescript-eslint/scope-manager@8.1.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.1.0.tgz#dd8987d2efebb71d230a1c71d82e84a7aead5c3d"
- integrity sha512-DsuOZQji687sQUjm4N6c9xABJa7fjvfIdjqpSIIVOgaENf2jFXiM9hIBZOL3hb6DHK9Nvd2d7zZnoMLf9e0OtQ==
+"@typescript-eslint/scope-manager@8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.4.0.tgz#8a13d3c0044513d7960348db6f4789d2a06fa4b4"
+ integrity sha512-n2jFxLeY0JmKfUqy3P70rs6vdoPjHK8P/w+zJcV3fk0b0BwRXC/zxRTEnAsgYT7MwdQDt/ZEbtdzdVC+hcpF0A==
dependencies:
- "@typescript-eslint/types" "8.1.0"
- "@typescript-eslint/visitor-keys" "8.1.0"
+ "@typescript-eslint/types" "8.4.0"
+ "@typescript-eslint/visitor-keys" "8.4.0"
-"@typescript-eslint/type-utils@8.1.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.1.0.tgz#dbf5a4308166dfc37a36305390dea04a3a3b5048"
- integrity sha512-oLYvTxljVvsMnldfl6jIKxTaU7ok7km0KDrwOt1RHYu6nxlhN3TIx8k5Q52L6wR33nOwDgM7VwW1fT1qMNfFIA==
+"@typescript-eslint/type-utils@8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.4.0.tgz#4a91b5789f41946adb56d73e2fb4639fdcf37af7"
+ integrity sha512-pu2PAmNrl9KX6TtirVOrbLPLwDmASpZhK/XU7WvoKoCUkdtq9zF7qQ7gna0GBZFN0hci0vHaSusiL2WpsQk37A==
dependencies:
- "@typescript-eslint/typescript-estree" "8.1.0"
- "@typescript-eslint/utils" "8.1.0"
+ "@typescript-eslint/typescript-estree" "8.4.0"
+ "@typescript-eslint/utils" "8.4.0"
debug "^4.3.4"
ts-api-utils "^1.3.0"
-"@typescript-eslint/types@8.1.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.1.0.tgz#fbf1eaa668a7e444ac507732ca9d3c3468e5db9c"
- integrity sha512-q2/Bxa0gMOu/2/AKALI0tCKbG2zppccnRIRCW6BaaTlRVaPKft4oVYPp7WOPpcnsgbr0qROAVCVKCvIQ0tbWog==
+"@typescript-eslint/types@8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.4.0.tgz#b44d6a90a317a6d97a3e5fabda5196089eec6171"
+ integrity sha512-T1RB3KQdskh9t3v/qv7niK6P8yvn7ja1mS7QK7XfRVL6wtZ8/mFs/FHf4fKvTA0rKnqnYxl/uHFNbnEt0phgbw==
-"@typescript-eslint/typescript-estree@8.1.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.1.0.tgz#c44e5667683c0bb5caa43192e27de6a994f4e4c4"
- integrity sha512-NTHhmufocEkMiAord/g++gWKb0Fr34e9AExBRdqgWdVBaKoei2dIyYKD9Q0jBnvfbEA5zaf8plUFMUH6kQ0vGg==
+"@typescript-eslint/typescript-estree@8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.4.0.tgz#00ed79ae049e124db37315cde1531a900a048482"
+ integrity sha512-kJ2OIP4dQw5gdI4uXsaxUZHRwWAGpREJ9Zq6D5L0BweyOrWsL6Sz0YcAZGWhvKnH7fm1J5YFE1JrQL0c9dd53A==
dependencies:
- "@typescript-eslint/types" "8.1.0"
- "@typescript-eslint/visitor-keys" "8.1.0"
+ "@typescript-eslint/types" "8.4.0"
+ "@typescript-eslint/visitor-keys" "8.4.0"
debug "^4.3.4"
- globby "^11.1.0"
+ fast-glob "^3.3.2"
is-glob "^4.0.3"
minimatch "^9.0.4"
semver "^7.6.0"
ts-api-utils "^1.3.0"
-"@typescript-eslint/utils@8.1.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.1.0.tgz#a922985a43d2560ce0d293be79148fa80c1325e0"
- integrity sha512-ypRueFNKTIFwqPeJBfeIpxZ895PQhNyH4YID6js0UoBImWYoSjBsahUn9KMiJXh94uOjVBgHD9AmkyPsPnFwJA==
+"@typescript-eslint/utils@8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.4.0.tgz#35c552a404858c853a1f62ba6df2214f1988afc3"
+ integrity sha512-swULW8n1IKLjRAgciCkTCafyTHHfwVQFt8DovmaF69sKbOxTSFMmIZaSHjqO9i/RV0wIblaawhzvtva8Nmm7lQ==
dependencies:
"@eslint-community/eslint-utils" "^4.4.0"
- "@typescript-eslint/scope-manager" "8.1.0"
- "@typescript-eslint/types" "8.1.0"
- "@typescript-eslint/typescript-estree" "8.1.0"
+ "@typescript-eslint/scope-manager" "8.4.0"
+ "@typescript-eslint/types" "8.4.0"
+ "@typescript-eslint/typescript-estree" "8.4.0"
-"@typescript-eslint/visitor-keys@8.1.0":
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.1.0.tgz#ab2b3a9699a8ddebf0c205e133f114c1fed9daad"
- integrity sha512-ba0lNI19awqZ5ZNKh6wCModMwoZs457StTebQ0q1NP58zSi2F6MOZRXwfKZy+jB78JNJ/WH8GSh2IQNzXX8Nag==
+"@typescript-eslint/visitor-keys@8.4.0":
+ version "8.4.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.4.0.tgz#1e8a8b8fd3647db1e42361fdd8de3e1679dec9d2"
+ integrity sha512-zTQD6WLNTre1hj5wp09nBIDiOc2U5r/qmzo7wxPn4ZgAjHql09EofqhF9WF+fZHzL5aCyaIpPcT2hyxl73kr9A==
dependencies:
- "@typescript-eslint/types" "8.1.0"
+ "@typescript-eslint/types" "8.4.0"
eslint-visitor-keys "^3.4.3"
acorn-jsx@^5.3.2:
@@ -930,7 +928,7 @@ array-buffer-byte-length@^1.0.1:
call-bind "^1.0.5"
is-array-buffer "^3.0.4"
-array-includes@^3.1.7:
+array-includes@^3.1.8:
version "3.1.8"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.8.tgz#5e370cbe172fdd5dd6530c1d4aadda25281ba97d"
integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==
@@ -942,12 +940,7 @@ array-includes@^3.1.7:
get-intrinsic "^1.2.4"
is-string "^1.0.7"
-array-union@^2.1.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
- integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
-
-array.prototype.findlastindex@^1.2.3:
+array.prototype.findlastindex@^1.2.5:
version "1.2.5"
resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz#8c35a755c72908719453f87145ca011e39334d0d"
integrity sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==
@@ -1010,19 +1003,10 @@ available-typed-arrays@^1.0.7:
dependencies:
possible-typed-array-names "^1.0.0"
-axios@^1:
- version "1.7.3"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.3.tgz#a1125f2faf702bc8e8f2104ec3a76fab40257d85"
- integrity sha512-Ar7ND9pU99eJ9GpoGQKhKf58GpUOgnzuaB7ueNQ5BMi0p+LZ5oaEnfF999fAArcTIBwXTCHAmGcHOZJaWPq9Nw==
- dependencies:
- follow-redirects "^1.15.6"
- form-data "^4.0.0"
- proxy-from-env "^1.1.0"
-
-axios@^1.6.7:
- version "1.7.4"
- resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2"
- integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==
+axios@^1, axios@^1.7.7:
+ version "1.7.7"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f"
+ integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==
dependencies:
follow-redirects "^1.15.6"
form-data "^4.0.0"
@@ -1125,7 +1109,7 @@ browserslist@^4.23.1:
node-releases "^2.0.18"
update-browserslist-db "^1.1.0"
-bs-logger@0.x:
+bs-logger@^0.2.6:
version "0.2.6"
resolved "https://registry.yarnpkg.com/bs-logger/-/bs-logger-0.2.6.tgz#eb7d365307a72cf974cc6cda76b68354ad336bd8"
integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==
@@ -1393,13 +1377,6 @@ diff@^4.0.1:
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
-dir-glob@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
- integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
- dependencies:
- path-type "^4.0.0"
-
doctrine@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d"
@@ -1598,10 +1575,10 @@ eslint-import-resolver-node@^0.3.9:
is-core-module "^2.13.0"
resolve "^1.22.4"
-eslint-module-utils@^2.8.0:
- version "2.8.1"
- resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz#52f2404300c3bd33deece9d7372fb337cc1d7c34"
- integrity sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==
+eslint-module-utils@^2.9.0:
+ version "2.11.0"
+ resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.11.0.tgz#b99b211ca4318243f09661fae088f373ad5243c4"
+ integrity sha512-gbBE5Hitek/oG6MUVj6sFuzEjA/ClzNflVrLovHi/JgLdC7fiN5gLAY1WIPW1a0V5I999MnsrvVrCOGmmVqDBQ==
dependencies:
debug "^3.2.7"
@@ -1614,26 +1591,27 @@ eslint-plugin-es-x@^7.5.0:
"@eslint-community/regexpp" "^4.11.0"
eslint-compat-utils "^0.5.1"
-eslint-plugin-import@^2.29.1:
- version "2.29.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643"
- integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==
+eslint-plugin-import@^2.30.0:
+ version "2.30.0"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz#21ceea0fc462657195989dd780e50c92fe95f449"
+ integrity sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==
dependencies:
- array-includes "^3.1.7"
- array.prototype.findlastindex "^1.2.3"
+ "@rtsao/scc" "^1.1.0"
+ array-includes "^3.1.8"
+ array.prototype.findlastindex "^1.2.5"
array.prototype.flat "^1.3.2"
array.prototype.flatmap "^1.3.2"
debug "^3.2.7"
doctrine "^2.1.0"
eslint-import-resolver-node "^0.3.9"
- eslint-module-utils "^2.8.0"
- hasown "^2.0.0"
- is-core-module "^2.13.1"
+ eslint-module-utils "^2.9.0"
+ hasown "^2.0.2"
+ is-core-module "^2.15.1"
is-glob "^4.0.3"
minimatch "^3.1.2"
- object.fromentries "^2.0.7"
- object.groupby "^1.0.1"
- object.values "^1.1.7"
+ object.fromentries "^2.0.8"
+ object.groupby "^1.0.3"
+ object.values "^1.2.0"
semver "^6.3.1"
tsconfig-paths "^3.15.0"
@@ -1674,16 +1652,16 @@ eslint-visitor-keys@^4.0.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
-eslint@^9.8.0:
- version "9.9.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.0.tgz#8d214e69ae4debeca7ae97daebbefe462072d975"
- integrity sha512-JfiKJrbx0506OEerjK2Y1QlldtBxkAlLxT5OEcRF8uaQ86noDe2k31Vw9rnSWv+MXZHj7OOUV/dA0AhdLFcyvA==
+eslint@^9.9.1:
+ version "9.9.1"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.9.1.tgz#147ac9305d56696fb84cf5bdecafd6517ddc77ec"
+ integrity sha512-dHvhrbfr4xFQ9/dq+jcVneZMyRYLjggWjk6RVsIiHsP8Rz6yZ8LvZ//iU4TrZF+SXWG+JkNF2OyiZRvzgRDqMg==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.11.0"
- "@eslint/config-array" "^0.17.1"
+ "@eslint/config-array" "^0.18.0"
"@eslint/eslintrc" "^3.1.0"
- "@eslint/js" "9.9.0"
+ "@eslint/js" "9.9.1"
"@humanwhocodes/module-importer" "^1.0.1"
"@humanwhocodes/retry" "^0.3.0"
"@nodelib/fs.walk" "^1.2.8"
@@ -1799,7 +1777,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.2.9:
+fast-glob@^3.3.2:
version "3.3.2"
resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129"
integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==
@@ -2045,18 +2023,6 @@ globalthis@^1.0.3:
define-properties "^1.2.1"
gopd "^1.0.1"
-globby@^11.1.0:
- version "11.1.0"
- resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
- integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
- dependencies:
- array-union "^2.1.0"
- dir-glob "^3.0.1"
- fast-glob "^3.2.9"
- ignore "^5.2.0"
- merge2 "^1.4.1"
- slash "^3.0.0"
-
gopd@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
@@ -2211,10 +2177,10 @@ is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7:
resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055"
integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==
-is-core-module@^2.13.0, is-core-module@^2.13.1:
- version "2.15.0"
- resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.0.tgz#71c72ec5442ace7e76b306e9d48db361f22699ea"
- integrity sha512-Dd+Lb2/zvk9SKy1TGCt1wFJFo/MWBPMX5x7KcvLajWTGuomczdQX61PvY5yK6SVACwpoexWo81IfFyoKY2QnTA==
+is-core-module@^2.13.0, is-core-module@^2.15.1:
+ version "2.15.1"
+ resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.15.1.tgz#a7363a25bee942fefab0de13bf6aa372c82dcc37"
+ integrity sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==
dependencies:
hasown "^2.0.2"
@@ -2856,7 +2822,7 @@ locate-path@^6.0.0:
dependencies:
p-locate "^5.0.0"
-lodash.memoize@4.x:
+lodash.memoize@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==
@@ -2880,7 +2846,7 @@ make-dir@^4.0.0:
dependencies:
semver "^7.5.3"
-make-error@1.x, make-error@^1.1.1:
+make-error@^1.1.1, make-error@^1.3.6:
version "1.3.6"
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
@@ -2897,7 +2863,7 @@ merge-stream@^2.0.0:
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==
-merge2@^1.3.0, merge2@^1.4.1:
+merge2@^1.3.0:
version "1.4.1"
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
@@ -3010,7 +2976,7 @@ object.assign@^4.1.5:
has-symbols "^1.0.3"
object-keys "^1.1.1"
-object.fromentries@^2.0.7:
+object.fromentries@^2.0.8:
version "2.0.8"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65"
integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==
@@ -3020,7 +2986,7 @@ object.fromentries@^2.0.7:
es-abstract "^1.23.2"
es-object-atoms "^1.0.0"
-object.groupby@^1.0.1:
+object.groupby@^1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.3.tgz#9b125c36238129f6f7b61954a1e7176148d5002e"
integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==
@@ -3029,7 +2995,7 @@ object.groupby@^1.0.1:
define-properties "^1.2.1"
es-abstract "^1.23.2"
-object.values@^1.1.7:
+object.values@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==
@@ -3134,11 +3100,6 @@ path-parse@^1.0.7:
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
-path-type@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
- integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-
pend@~1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
@@ -3318,7 +3279,7 @@ semver@^6.3.0, semver@^6.3.1:
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
-semver@^7.5.3, semver@^7.5.4, semver@^7.6.0:
+semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.6.3:
version "7.6.3"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
@@ -3546,20 +3507,20 @@ ts-api-utils@^1.3.0:
resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.3.0.tgz#4b490e27129f1e8e686b45cc4ab63714dc60eea1"
integrity sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==
-ts-jest@^29.1.2:
- version "29.2.4"
- resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.4.tgz#38ccf487407d7a63054a72689f6f99b075e296e5"
- integrity sha512-3d6tgDyhCI29HlpwIq87sNuI+3Q6GLTTCeYRHCs7vDz+/3GCMwEtV9jezLyl4ZtnBgx00I7hm8PCP8cTksMGrw==
+ts-jest@^29.2.5:
+ version "29.2.5"
+ resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.2.5.tgz#591a3c108e1f5ebd013d3152142cb5472b399d63"
+ integrity sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==
dependencies:
- bs-logger "0.x"
+ bs-logger "^0.2.6"
ejs "^3.1.10"
- fast-json-stable-stringify "2.x"
+ fast-json-stable-stringify "^2.1.0"
jest-util "^29.0.0"
json5 "^2.2.3"
- lodash.memoize "4.x"
- make-error "1.x"
- semver "^7.5.3"
- yargs-parser "^21.0.1"
+ lodash.memoize "^4.1.2"
+ make-error "^1.3.6"
+ semver "^7.6.3"
+ yargs-parser "^21.1.1"
ts-node@^10.9.2:
version "10.9.2"
@@ -3666,15 +3627,10 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
-undici-types@~6.13.0:
- version "6.13.0"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.13.0.tgz#e3e79220ab8c81ed1496b5812471afd7cf075ea5"
- integrity sha512-xtFJHudx8S2DSoujjMd1WeWvn7KKWFRESZTMeL1RptAYERu29D6jphMjjY+vn96jvN3kVPDNxU/E13VTaXj6jg==
-
-undici-types@~6.18.2:
- version "6.18.2"
- resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.18.2.tgz#8b678cf939d4fc9ec56be3c68ed69c619dee28b0"
- integrity sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==
+undici-types@~6.19.2:
+ version "6.19.8"
+ resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.19.8.tgz#35111c9d1437ab83a7cdc0abae2f26d88eda0a02"
+ integrity sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==
update-browserslist-db@^1.1.0:
version "1.1.0"
@@ -3778,7 +3734,7 @@ yallist@^3.0.2:
resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd"
integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==
-yargs-parser@^21.0.1, yargs-parser@^21.1.1:
+yargs-parser@^21.1.1:
version "21.1.1"
resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"
integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==