From aa97f0d6aa08e97604ca1d1209d207e79b84a3d8 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+BrayanDSO@users.noreply.github.com> Date: Wed, 29 Jan 2025 21:54:04 -0300 Subject: [PATCH 001/200] docs: add `Get it on Obtainium` to README (#17899) * docs: add `Get it on Obtainium` to README * remove amazon since all builds there are outdated one of these days I want to add it back but until then... --------- Co-authored-by: Mike Hardy --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 739c28ff3f86..f8ad83eec573 100644 --- a/README.md +++ b/README.md @@ -48,9 +48,9 @@ Install Get it on F-Droid - - Get it on Amazon app store + + Get it on Obtainium From f5b3d3331b9a497f25cf16875c8597d06aae9ded Mon Sep 17 00:00:00 2001 From: SanjaySargam Date: Sun, 26 Jan 2025 14:58:14 +0530 Subject: [PATCH 002/200] Add support for sharing .txt files --- AnkiDroid/src/main/AndroidManifest.xml | 26 +++++++++++++++++++ .../main/java/com/ichi2/anki/IntentHandler.kt | 1 + 2 files changed, 27 insertions(+) diff --git a/AnkiDroid/src/main/AndroidManifest.xml b/AnkiDroid/src/main/AndroidManifest.xml index 54f311368645..ee619491469d 100644 --- a/AnkiDroid/src/main/AndroidManifest.xml +++ b/AnkiDroid/src/main/AndroidManifest.xml @@ -228,6 +228,31 @@ android:pathPattern=".*\\.csv" android:scheme="file" /> + + + + + @@ -244,6 +269,7 @@ + diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt index 6f2075c69247..70ce3e6fac71 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt @@ -305,6 +305,7 @@ class IntentHandler : AbstractIntentHandler() { "text/tsv", "text/comma-separated-values", "text/csv", + "text/plain", ) private fun isValidViewIntent(intent: Intent): Boolean { From 3f21e3c401dccac1b95f3bd32a6a3ff7568ecdd5 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Mon, 3 Feb 2025 16:29:32 +0200 Subject: [PATCH 003/200] Fix several ActivityNotFoundExceptions In certain screens of the app(like shared decks and account login) the user could trigger an ACTION_VIEW from the content, which will delegate to our custom tabs implementation. This will call the platform launchUrl() method which would fail if there's no app to handle it. Also added guards for the several extensions openUrl(), the check AdaptionUtil.hasWebBrowser() is failing in a few cases. --- .../java/com/ichi2/anki/utils/AndroidUtils.kt | 20 +++++++++++++++++-- .../customtabs/CustomTabActivityHelper.kt | 10 +++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/utils/AndroidUtils.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/AndroidUtils.kt index 6a3ccbbac8b7..d191a599f8ce 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/utils/AndroidUtils.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/utils/AndroidUtils.kt @@ -14,6 +14,7 @@ package com.ichi2.anki.utils +import android.content.ActivityNotFoundException import android.content.Context import android.content.Intent import android.net.Uri @@ -28,6 +29,7 @@ import com.ichi2.anki.showThemedToast import com.ichi2.anki.snackbar.showSnackbar import com.ichi2.utils.AdaptionUtil import com.ichi2.utils.copyToClipboard +import timber.log.Timber /** * Acquire a wake lock and release it after running [block]. @@ -73,7 +75,16 @@ fun Context.openUrl(uri: Uri) { } return } - startActivity(Intent(Intent.ACTION_VIEW, uri)) + try { + startActivity(Intent(Intent.ACTION_VIEW, uri)) + } catch (ex: Exception) { + Timber.w("No app found to handle opening an external url from ${this::class.java.name}") + if (this is FragmentActivity) { + showSnackbar(R.string.activity_start_failed) + } else { + showThemedToast(this, R.string.activity_start_failed, false) + } + } } // necessary for Fragments that are BaseSnackbarBuilderProvider to work correctly @@ -82,7 +93,12 @@ fun Fragment.openUrl(uri: Uri) { showSnackbar(getString(R.string.no_browser_msg, uri.toString())) return } - startActivity(Intent(Intent.ACTION_VIEW, uri)) + try { + startActivity(Intent(Intent.ACTION_VIEW, uri)) + } catch (ex: ActivityNotFoundException) { + Timber.w("No app found to handle opening an external url from ${Fragment::class.java.name}") + showSnackbar(R.string.activity_start_failed) + } } fun Fragment.openUrl( diff --git a/AnkiDroid/src/main/java/com/ichi2/compat/customtabs/CustomTabActivityHelper.kt b/AnkiDroid/src/main/java/com/ichi2/compat/customtabs/CustomTabActivityHelper.kt index 82e55eeb893e..382681ade7d9 100644 --- a/AnkiDroid/src/main/java/com/ichi2/compat/customtabs/CustomTabActivityHelper.kt +++ b/AnkiDroid/src/main/java/com/ichi2/compat/customtabs/CustomTabActivityHelper.kt @@ -15,6 +15,7 @@ package com.ichi2.compat.customtabs import android.app.Activity +import android.content.ActivityNotFoundException import android.net.Uri import android.os.Bundle import androidx.annotation.CheckResult @@ -23,6 +24,8 @@ import androidx.browser.customtabs.CustomTabsClient import androidx.browser.customtabs.CustomTabsIntent import androidx.browser.customtabs.CustomTabsServiceConnection import androidx.browser.customtabs.CustomTabsSession +import com.ichi2.anki.R +import com.ichi2.anki.snackbar.showSnackbar import timber.log.Timber /** @@ -171,7 +174,12 @@ class CustomTabActivityHelper : ServiceConnectionCallback { } } else { customTabsIntent.intent.setPackage(packageName) - customTabsIntent.launchUrl(activity, uri) + try { + customTabsIntent.launchUrl(activity, uri) + } catch (ex: ActivityNotFoundException) { + Timber.w("No app found to handle opening an external url from CustomTabsActivityHelper") + activity.showSnackbar(R.string.activity_start_failed) + } } } From 36d72441509a8c566b14bb48dbcf5c39159e13f6 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Thu, 30 Jan 2025 20:28:56 +0100 Subject: [PATCH 004/200] DeckOption become closable if it's not loaded Currently, if you try to close the Deck Options before it's loaded, the request `anki.deckOptionsPendingChanges()` can't be executed and the deck options remain open. With this change, the deck options is automatically closed. Indeed, if the webview is not loaded, there was no change to save. This is similar to Anki's implementation. Co-authored-by: David Allison <62114487+david-allison@users.noreply.github.com> --- .../java/com/ichi2/anki/pages/DeckOptions.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/DeckOptions.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/DeckOptions.kt index 4bc71fdd722c..6ed77bc31cc4 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/DeckOptions.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/DeckOptions.kt @@ -46,7 +46,10 @@ import kotlinx.coroutines.withContext import timber.log.Timber @NeedsTest("15130: pressing back: icon + button should return to options if the manual is open") +@NeedsTest("17905: pressing back before the webpage is ready closes the screen") class DeckOptions : PageFragment() { + private var webViewIsReady = false + /** * Callback enabled when the manual is opened in the deck options. * It requests the webview to go back to the Deck Options. @@ -68,11 +71,16 @@ class DeckOptions : PageFragment() { object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { Timber.v("DeckOptions: requesting the webview to handle the user close request.") - webView.evaluateJavascript("anki.deckOptionsPendingChanges()") { - // Callback is handled in the WebView: - // * A 'discard changes' dialog may be shown, using confirm() - // * if no changes, or changes discarded, `deckOptionsRequireClose` is called - // which PostRequestHandler handles and calls on this fragment + if (webViewIsReady) { + webView.evaluateJavascript("anki.deckOptionsPendingChanges()") { + // Callback is handled in the WebView: + // * A 'discard changes' dialog may be shown, using confirm() + // * if no changes, or changes discarded, `deckOptionsRequireClose` is called + // which PostRequestHandler handles and calls on this fragment + } + } else { + // The webview is not yet loaded, no change could have occurred, we can safely close it. + actuallyClose() } } } @@ -221,6 +229,7 @@ class DeckOptions : PageFragment() { fun onWebViewReady() { Timber.d("WebView ready to receive input") + webViewIsReady = true webView.isVisible = true pageLoadingIndicator.isVisible = false } From b64ce1bb8284c81fd838b5a2823c0a7a0a1b15ef Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Tue, 4 Feb 2025 19:34:43 +0000 Subject: [PATCH 005/200] Updated strings from Crowdin --- .../src/main/res/values-cs/02-strings.xml | 2 +- .../src/main/res/values-cs/07-cardbrowser.xml | 12 +-- .../src/main/res/values-cs/10-preferences.xml | 4 +- .../main/res/values-es-rAR/07-cardbrowser.xml | 18 ++-- .../main/res/values-es-rAR/10-preferences.xml | 44 ++++---- .../values-es-rAR/16-multimedia-editor.xml | 8 +- .../values-es-rAR/20-search-preference.xml | 2 +- AnkiDroid/src/main/res/values-fi/01-core.xml | 32 +++--- .../src/main/res/values-fi/02-strings.xml | 100 +++++++++--------- .../src/main/res/values-fi/03-dialogs.xml | 76 ++++++------- .../src/main/res/values-fi/04-network.xml | 10 +- .../src/main/res/values-fi/06-statistics.xml | 2 +- .../src/main/res/values-fi/07-cardbrowser.xml | 24 ++--- .../src/main/res/values-fi/08-widget.xml | 22 ++-- .../src/main/res/values-fi/09-backup.xml | 2 +- .../src/main/res/values-fi/10-preferences.xml | 72 ++++++------- .../src/main/res/values-fi/11-arrays.xml | 6 +- .../res/values-fi/16-multimedia-editor.xml | 4 +- .../res/values-fi/20-search-preference.xml | 4 +- AnkiDroid/src/main/res/values-heb/01-core.xml | 2 +- .../src/main/res/values-heb/02-strings.xml | 12 +-- .../main/res/values-heb/07-cardbrowser.xml | 12 +-- .../main/res/values-heb/10-preferences.xml | 6 +- AnkiDroid/src/main/res/values-iw/01-core.xml | 2 +- .../src/main/res/values-iw/02-strings.xml | 12 +-- .../src/main/res/values-iw/07-cardbrowser.xml | 12 +-- .../src/main/res/values-iw/10-preferences.xml | 6 +- .../src/main/res/values-ja/07-cardbrowser.xml | 12 +-- AnkiDroid/src/main/res/values-ka/01-core.xml | 16 +-- .../src/main/res/values-ka/02-strings.xml | 32 +++--- .../src/main/res/values-ka/03-dialogs.xml | 28 ++--- .../src/main/res/values-ka/04-network.xml | 4 +- .../src/main/res/values-ka/06-statistics.xml | 2 +- .../src/main/res/values-ka/07-cardbrowser.xml | 16 +-- .../src/main/res/values-ka/08-widget.xml | 10 +- .../src/main/res/values-ka/10-preferences.xml | 14 +-- .../src/main/res/values-ka/11-arrays.xml | 2 +- AnkiDroid/src/main/res/values-ru/01-core.xml | 4 +- .../src/main/res/values-ru/02-strings.xml | 8 +- .../src/main/res/values-ru/03-dialogs.xml | 2 +- .../src/main/res/values-ru/07-cardbrowser.xml | 22 ++-- .../src/main/res/values-ru/10-preferences.xml | 12 +-- .../src/main/res/values-ru/11-arrays.xml | 6 +- .../src/main/res/values-ug/07-cardbrowser.xml | 12 +-- AnkiDroid/src/main/res/values-uk/01-core.xml | 8 +- .../src/main/res/values-uk/02-strings.xml | 12 +-- .../src/main/res/values-uk/07-cardbrowser.xml | 14 +-- .../src/main/res/values-uk/08-widget.xml | 2 +- .../src/main/res/values-uk/10-preferences.xml | 8 +- .../marketdescription-uk.txt | 2 +- 50 files changed, 378 insertions(+), 378 deletions(-) diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index 3320f16face5..8e7b302c3c68 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -312,7 +312,7 @@ Poznámky Přepnout karty/poznámky Zkrátit výšku každého řádku prohlížeče, aby se zobrazily pouze první 3 řádky obsahu - Browser options + Možnosti prohlížeče Nahrávka uložena Mažou se vybrané poznámky Klepnutím na hlas poslechnout diff --git a/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml index b19ae664c0af..6d2231ed8b54 100644 --- a/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml @@ -124,10 +124,10 @@ Edit tags dialog Show order dialog - Columns - Manage columns - Active - Available - Include column - Exclude column + Sloupce + Spravovat sloupce + Aktivní + Dostupné + Přidat sloupec + Odebrat sloupec diff --git a/AnkiDroid/src/main/res/values-cs/10-preferences.xml b/AnkiDroid/src/main/res/values-cs/10-preferences.xml index 94177b8b216a..4e64a9d8da8b 100644 --- a/AnkiDroid/src/main/res/values-cs/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-cs/10-preferences.xml @@ -372,8 +372,8 @@ Ignorovat výřez displeje Skrýt tlačítka odpovědí Skrýt tlačítka „Těžké“ a „Snadné“ - Frame style - Card + Styl rámečku + Karta Box Open settings diff --git a/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml index 9cb7af618673..f71609d53ac8 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml @@ -105,17 +105,17 @@ Exportar notas - Tarjeta %d eliminada + %d tarjeta eliminada %d tarjetas eliminadas - Editar diálogo de etiquetas - Mostrar diálogo de orden + Editar etiquetas del diálogo + Mostrar orden del diálogo - Columns - Manage columns - Active - Available - Include column - Exclude column + Columnas + Administrar columnas + Activo + Disponible + Incluir columna + Excluir columna diff --git a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml index a5b4bdc4e409..0e70569e3799 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml @@ -47,10 +47,10 @@ Deshabilitado - %d min - %d mins + %d minuto + %d minutos - %s ms + %s milisegundos Sin resultados @@ -58,7 +58,7 @@ Estudiando Todo el sistema Repasando - Sincronización + Sincronizar Programación Pizarra Apariencia @@ -98,7 +98,7 @@ Toque de 9 puntos Permitir gestos táctiles en las esquinas de pantalla Panel de navegación a pantalla completa - Abrir el cajón de navegación cuando se desliza a la derecha desde cualquier lugar de la pantalla + Abrir el panel de navegación cuando se desliza a la derecha desde cualquier lugar de la pantalla Ninguno Deslizar hacia arriba Deslizar hacia abajo @@ -115,9 +115,9 @@ Tocar el centro Tocar abajo a la izquierda Tocar abajo a la derecha - Agitar el dispositivo - Menú ‘%s’ - Habilita globalmente el menú contextual ‘%s + Sacudir dispositivo + ‘%s’ Menú + Habilitar globalmente el menú contextual ‘%s Doble desplazamiento Doblar la distancia de desplazamiento con e-Reader Sensibilidad de deslizado @@ -137,7 +137,7 @@ Permitir sincronización en conexiones medidas Si está deshabilitado, serás avisado si intentas sincronizar con una conexión medida Frecuencia - Tiempo de vida + Duración Tema Tema del día Tema nocturno @@ -151,7 +151,7 @@ Vibrar Luz parpadeante Seleccionar idioma - Deshabilitar el procesamiento de hardware de la tarjeta + Desactivar el hardware de la tarjeta El procesamiento de hardware es más rápido, pero puede tener problemas, específicamente en Android 8/8.1. Si no puede ver partes de la interfaz de usuario de la tarjeta, prueba esta opción. Modo de visualización segura Desactiva todas las animaciones y utiliza un método más seguro para presentar las tarjetas. Los dspositivos de tinta electrónica (e-ink) podrían requerir esta opción. @@ -160,10 +160,10 @@ Permite el menú contextual \'huecos\' cuando está en modo horizontal. Alinear al centro Centra verticalmente el contenido de las tarjetas - Intervalo de tiempo de doble toque (ms) + Intervalo de tiempo de doble toque (milisegundos) Un segundo toque de los botones de respuesta será ignorado si este tiempo no ha transcurrido. Esto previene doble toque accidental. Tiempo de pulsación larga para mostrar respuesta - Tiempo mínimo de pulsación antes de que el botón Mostrar Respuesta registre un toque. + Tiempo mínimo de presión antes de que el botón mostrar respuesta registre un toque. Mostar el botón tiempo Mostrar el tiempo para el próximo repaso encima de los botones de respuesta Mostrar botones de respuestas grandes @@ -172,14 +172,14 @@ Mostrar recuento de cartas, temporizador de respuesta, bandera y marca en la barra superior Mostar restantes Mostrar contador de tarjetas restantes - Mostrar tiempo restante + Mostrar ETA Mostrar tiempo restante Mazo para nuevas tarjetas Aprender antes del límite Límite de tiempo para Timebox - Comienzo del día siguiente (0 es medianoche, 23 es 11PM) + Comienzo del siguiente día - %d hora después de medianoche + %d hour past midnight %d horas después de medianoche Mantener la pantalla encendida @@ -282,7 +282,7 @@ Selecciona el lado de la tarjeta Pregunta Respuesta - Preguntas y respuestas + Pregunta & Respuesta P: %s R: %s %s @@ -291,7 +291,7 @@ Ya vinculado a %s Experimental - ¡AnkiDroid ha introducido un mecanismo texto a voz mejor que es compatible con otros clientes Anki y que incluye más voces y mejoras de reproducción de idioma!\n\nPor favor actualice lo antes posible, ya que pronto se quitará esta configuración. + ¡AnkiDroid ha introducido un mecanismo de texto a voz mejor que es compatible con otros clientes Anki y que incluye más voces y mejoras de reproducción de idioma!\n\nPor favor actualice lo antes posible, ya que pronto se quitará esta configuración. Por favor actualice al formato de texto a voz nuevo. Opciones de desarrollador @@ -303,9 +303,9 @@ #################################### Backup options ################################### ####################################################################################### -->
+

Ten en cuenta que los archivos multimedia no son respaldados. Para estar seguro, por favor sincroniza tu colección periódicamente o crea copias de seguridad de su exportación.

@@ -317,12 +317,12 @@ Puedes restaurar una colección desde una copia de seguridad en el menú de la l - Administrar espacio + Gestionar espacio Error Calcu-\nlando… - %1$d archivo\n%2$s + %1$d file\n%2$s %1$d archivos\n%2$s @@ -346,7 +346,7 @@ Puedes restaurar una colección desde una copia de seguridad en el menú de la l ¿Estás seguro de que quieres eliminar todos los datos? Esto incluye tu colección, archivos multimedia, copias de seguridad y preferencias.\n\nTen en cuenta: esta acción cerrará la ventana. Eliminar datos de la aplicación - Eliminar los ajustos y otros datos de la aplicación + Eliminar los ajustes y otros datos de la aplicación Eliminar datos de la aplicación ¿Estás seguro de que quieres eliminar los datos de la aplicación? Esto incluye tus preferencias y otros datos.\n\nTen en cuenta: esta acción cerrará la ventana. Algo salió mal - Error al convertir la imagen del portapapeles a png: %s + Error al convertir la imagen del portapapeles a PNG: %s Agregar contenido multimedia al campo %1$s @@ -69,8 +69,8 @@ ¿Quieres recortar esta imagen? Recortar imagen - El tamaño actual de la imagen es %sMB. El límite de tamaño de imagen por defecto es 1MB. ¿Deseas comprimirla? - "Error al seleccionar la imagen. Vuelve a intentarlo" - Contenidos del campo + El tamaño actual de la imagen es %sMB. El límite de tamaño de imagen por defecto es 1MB. ¿Querés comprimirla? + "Error al seleccionar la imagen. Intentalo de nuevo" + Contenidos de Campo Seleccionar de nuevo diff --git a/AnkiDroid/src/main/res/values-es-rAR/20-search-preference.xml b/AnkiDroid/src/main/res/values-es-rAR/20-search-preference.xml index 0f6f1519fb59..bb3170c585d4 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/20-search-preference.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/20-search-preference.xml @@ -61,5 +61,5 @@ --> Buscar… - Vaciar historia + Limpiar historial diff --git a/AnkiDroid/src/main/res/values-fi/01-core.xml b/AnkiDroid/src/main/res/values-fi/01-core.xml index 4420fc0fe4f9..8b337539ad00 100644 --- a/AnkiDroid/src/main/res/values-fi/01-core.xml +++ b/AnkiDroid/src/main/res/values-fi/01-core.xml @@ -61,12 +61,12 @@ %d minuuttia jäljellä - %1$d hour %2$d left - %1$d hours %2$d left + %1$d tunti %2$d jäljellä + %1$d tuntia %2$d jäljellä - %1$d day %2$dh left - %1$d days %2$dh left + %1$d päivä %2$d tunti(a) jäljellä + %1$d päivää %2$d tunti(a) jäljellä Kokoelma on tyhjä Aloita korttien lisääminen\nkäyttäen + kuvaketta @@ -88,7 +88,7 @@ Nimeä pakka uudelleen Luo pikakuvake Selaa kortteja - Edit description + Muuta kuvausta Lisää Lisää merkintä Synkronoi tili @@ -101,15 +101,15 @@ Keskeytä Poista merkintä Lippu - Rename flags + Nimeä liput uudelleen Lisää lippu Muokkaa tageja Haluatko varmasti poistaa tämän merkinnän ja kaikki sen kortit?\n%s Haku %1$s Merkitse merkintä Poista merkintä - Enable voice playback - Disable voice playback + Ota äänten toisto käyttöön + Poista äänten toisto käytöstä Uusi pakka Uusi suodatettu pakka AnkiDroidin hakemisto ei ole käytettävissä @@ -129,8 +129,8 @@ Tämä pakka on tyhjä Hae pakkaa Virheellinen pakan nimi - Congratulations! You have finished for today. - Deck finished for now! %s + Onnittelut! Homma hoidettu tämän päivän osalta. + Pakka on nyt valmis! %s Kortteja ei tarvitse vielä kerrata Laitteen tallennustilaa ei ole kiinnitetty Synkronoi @@ -138,9 +138,9 @@ Jatka synkronointia Synkronointi peruutettu Peruutetaan…\nTämä voi kestää jonkin aikaa. - Syncing media + Synkronoidaan mediaa Vie pakka - Export collection + Vie kokoelma Ei mitään Korttityyppi @@ -184,7 +184,7 @@ Tiedostoon %s kirjoittaminen tai sen luominen epäonnistui Kokoelma ei ole saavutettavissa Emme pääse käsiksi kokoelmiisi sen jälkeen, kun AnkiDroid on poistettu Play Storen käytäntöjen muutoksen vuoksi\n\nTietosi ovat turvassa ja ne voidaan palauttaa. Ne sijaitsevat polussa\n%s\n\n\nPalauta valitsemalla alla olevista vaihtoehdoista: - Android has removed AnkiDroid\'s %1$s permission due to app inactivity.\n\nYour data is safe and can be restored. It is located at\n%2$s\n\nSelect an option below to restore: + Android on poistanut AnkiDroidin %1$s -käyttöoikeuden koska sovellusta ei ole käytetty.\n\nTietosi ovat turvassa ja ne voidaan palauttaa. Sijainti:\n%2$s\n\nValitse vaihtoehto alla palauttaaksesi: Palauta AnkiWebistä (suositellaan) Palauta kansion käyttöoikeus (suositellaan) Palauta kansion käyttöoikeus (edistyneille käyttäjille) @@ -196,8 +196,8 @@ Tallennustilan käyttöoikeus Tallentaa kokoelmasi turvalliseen paikkaan, jota ei poisteta, jos sovellus poistetaan. Pääsy kaikkiin tiedostoihin - Image Occlusion - Remove account + Kuvien peitto + Poista tili - Instant card + Pikakortti diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index 9504384260d5..4551407291a0 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -84,14 +84,14 @@ Rajoitu tiettyhin tunnisteisiin - +%d buried - +%d buried + +%d haudattu + +%d haudattu - Total new cards - Total cards + Uusia kortteja yhteensä + Kortteja yhteensä Muokkaa muistiinpanoa - Discard + Hylkää Kortteja ei luotu. Täytä lisää kenttiä Nykyistä muistiinpanotyyppiä käyttäviä kortteja ei ole.\nValitse toinen muistiinpanotyyppi tai valitse \"Kortit\" ja lisää korvaava kenttä. Aukkotehtävät toimivat vain aukkotehtävätyyppisissä muistiinpanoissa @@ -102,7 +102,7 @@ Valitse %1$s (”%2$s”:sta) Kortit, joita ei ole liitetty mihinkään, poistetaan. Jos muistiinpanoon ei liity jäljelle jääviä kortteja, se katoaa. Oletko varma, että haluat jatkaa? - No note type found + Muistiinpanotyyppejä ei löytynyt Aikaikkuna saavutettu @@ -120,7 +120,7 @@ Tyhjennä edistyminen Ajasta uudelleen Esikatselu - Copy as Markdown + Kopioi Markdownina %1$d / %2$d Nimeä uudelleen Tarkista @@ -131,7 +131,7 @@ Poistetaan pakka… Arvostele AnkiDroid Tuodaan - Preparing file for import… + Valmistellaan tiedostoa tuontiin… Lisää Poistetaan nykyinen kokoelma ja korvataan se tiedoston %s tiedoilla. Haluatko varmasti jatkaa? Lisää “%s” kokoelmaan? Tässä voi kestää kauan @@ -159,7 +159,7 @@ ]]>
Jaa Tallenna… - Saving exported file… + Tallennetaan viety tiedosto… Valinnat Pakan asetukset Opiskeluasetukset @@ -181,13 +181,13 @@ Järjestelmään ei ole asennettu sovellusta, joka voisi suorittaa tämän toiminnon. - No browser found for opening the link: %s + Selainta ei löytynyt linkin avaamiseksi: %s Virhe ladattaessa sivua: %s Tausta Valitse kuva - Remove background? + Poistetaanko tausta? Palauta oletusarvot Tyhjä @@ -230,9 +230,9 @@ Muokkaa työkalupalkin kohdetta Kirjoita HTML, joka lisätään ennen ja jälkeen valitun tekstin\n\nPaina työkalupalkin kohdetta pitkään muokataksesi sitä tai poistaaksesi sen Poistetaanko työkalupalkin kohde? - 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 + Kuva on liian suuri, aseta kuva käsin + Videotiedosto on liian suuri, aseta video käsin + Äänitiedosto on liian suuri, aseta ääni käsin Androidin varmuuskopiointi käynnissä. Yritä uudelleen Saatat joutua käyttämään iManageria, jotta AnkiDroid voi lisätä pikanäppäimiä. Aloitusnäyttösi ei salli AnkiDroidin lisätä pikakuvakkeita @@ -243,7 +243,7 @@ + - - Enter a valid email + Anna kelvollinen sähköpostiosoite Salasana vaaditaan Poistu painamalla \"takaisin\" uudestaan @@ -273,7 +273,7 @@ Lisätietoja Haku ei palauttanut tuloksia - %s is not a valid JavaScript addon package + %s ei ole kelvollinen JavaScript-lisäosa Hakemiston %s luonti ei onnistunut Haitallinen arkisto. Sisältää pääsyn kohdehakemiston ulkopuolelle: %s Haitallinen arkisto. Koko on suurempi kuin %1$s tai se sisältää yli %2$d tiedostoa @@ -282,7 +282,7 @@ Laajenna tunniste \"%s\" Kokoelmaan pääsy epäonnistui. Yritä uudelleen! - Add a new note type + Lisää uusi muistiinpanotyyppi Opiskele vähemmän Muista enemmän @@ -290,7 +290,7 @@ Aloita Synkronoi AnkiWebistä - AnkiDroid is not initialized yet. Please open AnkiDroid and try again + AnkiDroidia ei ole vielä alustettu. Avaa AnkiDroid ja yritä uudelleen Olet jo kirjautunut sisään Pakka luotu @@ -302,52 +302,52 @@ Muistiinpanot Näytä kortit/muistiinpanot Katkaise selaimen jokaisen rivin korkeus niin, että näytetään vain 3 ensimmäistä riviä sisältöä. - Browser options + Selaimen asetukset Äänitys tallennettu Poistetaan valittuja muistiinpanoja Kuuntele napauttamalla ääntä Ääni tulee asentaa ennen käyttöä Käytä silti - Text to speech error (%s) + Tekstistä puheeksi -toiminnon virhe (%s) Internet Asenna Teksti puheeksi -asetusten avaaminen ei onnistunut - Please log in to download more decks - Description - Failed to copy - Unavailable in ‘Notes’ mode + Kirjaudu sisään ladataksesi lisää pakkoja + Kuvaus + Kopiointi epäonnistui + Ei saatavilla ”Muistiinpanot” -tilassa - %d card unburied - %d cards unburied + %d kortin hautaus poistettu + %d kortin hautaus poistettu - Reposition - Record - Stop - Play - Next + Uudelleenasettele + Äänitä + Pysäytä + Toista + Seuraava - 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. + Korttityyppiä ei voida poistaa + Tämän korttityypin poistaminen jättää joitakin muistiinpanoja ilman kortteja. + Ääntä ei tueta. Kokeile toista tai asenna äänimoottori. - Show keyboard shortcuts dialog - Deck Picker - Delete deck without confirmation - Note Editor - Select deck - Select note type - Tag editor - Card Template Editor - Edit front template - Edit back template - Edit styling - Copy template as markdown - Edit browser appearance - Press Alt+K to show keyboard shortcuts - User action %s is not set in this notetype. Please configure it - Learn more about how to restore access here %s or go to settings to update collection folder. + Näytä näppäinoikoteiden valintaikkuna + Pakan valitsija + Poista pakka ilman vahvistusta + Muistiinpanoeditori + Valitse pakka + Valitse muistiinpanotyyppi + Tunnisteiden muokkaus + Korttimallien muokkaus + Muokkaa etupuolen mallia + Muokkaa kääntöpuolen mallia + Muokkaa tyyliä + Kopioi mallipohja Markdownina + Muokkaa selaimen ulkoasua + Paina Alt+K näyttääksesi näppäinoikotiet + Käyttäjän toimea %s ei ole määritetty tässä muistiinpanotyypissä. Määritä se + Lue lisää siitä, miten palauttaa pääsy tänne (%s) tai siirry asetuksiin vaihtaaksesi kokoelmakansiota diff --git a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml index 951d65940cd5..b1ed56c7dee7 100644 --- a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml @@ -49,10 +49,10 @@ Poista korttipakka Poista korttipakka? - Delete all cards in %1$s? It contains %2$d card - Delete all cards in %1$s? It contains %2$d cards + Poistetaanko kaikki kortit pakassa \'%1$s\'? Se sisältää %2$d kortin + Poistetaanko kaikki kortit pakassa \'%1$s\'? Se sisältää %2$d korttia - Delete filtered deck %s and send all cards back to their original decks? + Poistetaanko suodatettu pakka \'%1$s\'? Kaikki kortit lähetetään niiden alkuperäisiin pakkoihin. Yhtään puhesyntetisaattorin tukemaa kieltä ei ole käytettävissä Ei puhetta \n\nKäyttämättömät tiedostot:\n @@ -91,8 +91,8 @@ Vahvista Ei Kyllä - Keep - Remove + Pidä + Poista Jatka Käsitellään… Luo @@ -103,9 +103,9 @@ Korjaa Korvaa Annettu hakemistopolku ei ole pätevä - The provided text does not resolve to a valid PEM-encoded X509 certificate - Error parsing certificate - Certificate updated + Annettu teksti ei vastaa kelvollista PEM-koodattua X509-varmentetta. + Varmenteen jäsentäminen epäonnistui + Varmenne päivitetty Tarkista media? Jos sinulla on suuri mediakokoelma, tämä voi kestää pitkään @@ -159,7 +159,7 @@ Taustakuvan %s käyttöönotto epäonnistui Pakan valintanäkymän taustakuva on liian suuri Kuvan suurin sallittu koko on %d Mt - Image dimensions are too large (%1$d × %2$d) + Kuvan mitat ovat liian suuret (%1$d × %2$d) Vaadittu tallennustilan käyttöoikeus puuttuu. Myönnä käyttöoikeus ja yritä sitten uudelleen. @@ -167,7 +167,7 @@ Muistutusten asettaminen ei onnistunut Liian monta muistutusta asetettu. Jotkin niistä eivät näy - Set Language + Aseta kieli Jotkin monikieliset näppäimistöt, kuten Gboard, tukevat kielen vaihtamista tekstiä muokattaessa\n\nPyydä käyttämäsi näppäimistön tekijältä tukea \"setImeHintLocales\"-ominaisuudelle, jos näppäimistösi ei vaihda kieltä. AnkiDroidin käyttäminen @@ -195,13 +195,13 @@ AnkiWebin käyttöehdot Lähetä vianmääritysraportti Raportti on jo lähetetty - Report was sent! + Raportti lähetetty! Automaattinen synkronointi voi käynnistyä %d sekunnissa Automaattinen synkronointi voi käynnistyä %d sekunnissa - Your internet provider may charge money for data use + Internet-palveluntarjoaja voi veloittaa rahaa datan käytöstä Tässä pakassa olevien tänään näytettävien uusien korttien lukumäärä. Tässä pakassa olevien tänään erääntyvien korttien lukumäärä. Tässä pakassa olevien opittavien korttien lukumäärä. @@ -226,41 +226,41 @@
Androidin tietosuojamuutosten vuoksi tietoihisi ja automaattisiin varmuuskopioihin ei pääse käsiksi, jos sovellus poistetaan. - Deck already exists - Deck name cannot be empty - If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ + Pakka on jo olemassa + Pakan nimi ei voi olla tyhjä + Jos pakan järjestyksen kanssa onongelmia (esim. ”10” näkyy ennen ”2”:a), korvaa ”2” merkinnällä ”02”. - Set interval to same value + Aseta aikaväli samaan arvoon - Show card in - Show cards in + Näytä kortti kun on kulunut + Näytä kortit kun on kulunut - Show card in range - Show cards in range + Näytä kortti välillä + Näytä kortit välillä - day - days + päivä + päivää - From - To + Alkaen + Päättyen - 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 + Aukkotehtävä-tyyppinen muistiinpano vaaditaan + Aukkotehtävä-tyyppisiä muistiinpanoja ei löytynyt. Muokkaa muistiinpanoja ja yritä uudelleen lisäämisen jälkeen. + Avaa + Muokkaa aukkotehtävän numeroa + Aukkotehtävän numero: + Vaihda muokkaimen tilaa + Avaa muistiinpanojen muokkaus + Vaihda aukkotehtävätilaa - The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d - Compress + Järjestelmän WebView on vanhentunut. Jotkin ominaisuudet eivät toimi oikein. Päivitä se.\n\nAsennettu versio: %1$d\nVähimmäinen vaadittu versio: %2$d + Pakkaa - Language not supported - The text to speech engine %1$s does not support the following language: %2$s - Change engine - Voice options + Kieltä ei tueta + Tekstistä puheeksi -moottori %1$s ei tue kieltä %2$s + Vaihda moottoria + Äänen asetukset diff --git a/AnkiDroid/src/main/res/values-fi/04-network.xml b/AnkiDroid/src/main/res/values-fi/04-network.xml index b765f7cd7a2b..007650a0fa23 100644 --- a/AnkiDroid/src/main/res/values-fi/04-network.xml +++ b/AnkiDroid/src/main/res/values-fi/04-network.xml @@ -64,22 +64,22 @@ Kirjaudu ulos Nollaa salasanasi Unohditko sähköpostiosoitteesi? - Signing in + Kirjaudutaan Kohteen XXX asetukset Synkronointi Täysi synkronointi tästä laitteesta Kokoelma synkronoitu - Collection synced. Media is being synced in the background. + Kokoelma synkronoitu. Mediaa synkronoidaan taustalla. Tietokanta on vioittunut. Korjaa se, ennen kuin yrität synkronoida uudelleen.\n\nKatso %s saadaksesi lisätietoja tietokannan korjaamisesta. Paikallinen Etä - One-way sync - One way sync requested + Yksisuuntainen synkronointi + Yksisuuntaista synkronointia pyydetty Pyytämäsi muutos vaatii tietokannan täyden lähetyksen AnkiWebiin kun synkronoit kokoelmasi seuraavan kerran. Jos sinulla on kertauksia tai muita muutoksia odottamassa toisessa laitteessa, jota ei ole vielä synkronoitu tänne, nämä synkronoimattomat tiedot katoavat. Haluatko jatkaa? AnkiDroidin edellisessä versiossa olleen bugin takia, täydellinen syknronointi on suositeltavaa. - Sync (one-way) + Synkronoi (yksisuuntaisesti) Synkronointi (vaatii kirjautumisen) diff --git a/AnkiDroid/src/main/res/values-fi/06-statistics.xml b/AnkiDroid/src/main/res/values-fi/06-statistics.xml index a50118f626c8..b1d1d7aab9bf 100644 --- a/AnkiDroid/src/main/res/values-fi/06-statistics.xml +++ b/AnkiDroid/src/main/res/values-fi/06-statistics.xml @@ -44,5 +44,5 @@ ~ this program. If not, see . --> - Open statistics + Avaa tilastot diff --git a/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml index fe2e1f488b96..1e8256ebc94f 100644 --- a/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml @@ -70,11 +70,11 @@ Nimi nykyiselle haulle Hakua ei voi tallentaa ilman nimeä. Nimi on jo olemassa - No note to edit + Ei muokattavaa muistiinpanoa Poistetaanko ”%1$s”? Muuta esitysjärjestystä - Search - Search + Hae + Hae Valitse esitysjärjestys Tunnisteet @@ -95,7 +95,7 @@ Etsi kaikista pakoista Tuntematon Katkaise sisältö - Today is ‘0 %1$s’, tomorrow is ‘1 %2$s’, etc… + Tänään on \'0 %1$s\', huomenna \'1 %2$s\', jne… Vie kortti Vie kortteja @@ -109,13 +109,13 @@ %d korttia poistettu - Edit tags dialog - Show order dialog + Muokkaa tunnisteiden valintaikkunaa + Muokkaa järjestystä - Columns - Manage columns - Active - Available - Include column - Exclude column + Sarakkeet + Hallitse sarakkeita + Aktiivinen + Saatavilla + Sisällytä sarake + Jätä pois sarake diff --git a/AnkiDroid/src/main/res/values-fi/08-widget.xml b/AnkiDroid/src/main/res/values-fi/08-widget.xml index 7c9ced61bfb2..3f3164d33fb0 100644 --- a/AnkiDroid/src/main/res/values-fi/08-widget.xml +++ b/AnkiDroid/src/main/res/values-fi/08-widget.xml @@ -60,18 +60,18 @@ %d minuuttia jäljellä Lisää uusi AnkiDroid muistiinpano - Deck Picker - Card Analysis + Pakan valitsija + Korttien analyysi - Select decks - Select a deck - Select decks to display in the widget. Select decks with the + icon. - Deck removed - This deck is already selected + Valitse pakat + Valitse pakka + Valitse pakat, jotka näytetään widgetissä. Käytä + kuvaketta valitsemiseen. + Pakka poistettu + Tämä pakka on jo valittu - You can select up to %d deck. - You can select up to %d decks. + Voit valita enintään %d pakan. + Voit valita enintään %d pakkaa. - Missing deck. Tap to reconfigure. - Collection is empty, use app to add decks then reconfigure + Pakka puuttuu. Määritä uudelleen painamalla tästä. + Kokoelma on tyhjä. Käytä sovellusta pakkojen lisäämiseen ja määritä widget sitten uudelleen. diff --git a/AnkiDroid/src/main/res/values-fi/09-backup.xml b/AnkiDroid/src/main/res/values-fi/09-backup.xml index b4efeb5f50b8..40c590d53382 100644 --- a/AnkiDroid/src/main/res/values-fi/09-backup.xml +++ b/AnkiDroid/src/main/res/values-fi/09-backup.xml @@ -51,7 +51,7 @@ Poista kokoelma ja luo uusi Haluatko varmasti poistaa kokoelman ja luoda uuden? Tämä nollaa edistymisesi ja poistaa kaikki kortit! - One-way sync from server + Yhdensuuntainen synkronointi palvelimelta Haluatko todella korvata kokoelmasi AnkiWebin kokoelmalla? Kaikki edellisen synkronoinnin jälkeen tapahtunyt opiskelu ja lisätyt tiedot unohdetaan! Virheiden käsittely Asetukset diff --git a/AnkiDroid/src/main/res/values-fi/10-preferences.xml b/AnkiDroid/src/main/res/values-fi/10-preferences.xml index f001c51545b6..7ffae0db66d1 100644 --- a/AnkiDroid/src/main/res/values-fi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fi/10-preferences.xml @@ -162,18 +162,18 @@ Keskitä korttien sisältö pystysuunnassa Kaksoisnapautuksen aikaväli (millisekuntia) Toista vastauspainikkeiden napauttamista ei oteta huomioon, jos näin kauan ei ole kulunut. Tämä estää vahingossa tapahtuvat kaksoisnapautukset - Show answer long-press time - Minimum pressing time before the show answer button registers a touch. + Näytä vastaus: pitkän painalluksen aika + Vähimmäispainallusaika, jonka jälkeen \"Näytä vastaus\" -painike rekisteröi kosketuksen. Näytä aika painikkeissa Näytä seuraava kertausaika vastauspainikkeissa Näytä suuret vastauspainikkeet Näytä vastauspainikkeet kahdella rivillä Näytä yläpalkki - Show card counts, answer timer, flag and mark in top bar + Näytä korttien lukumäärät, vastausaika, lippu ja merkinnät yläpalkissa. Näytä jäljelläoleva Näytä jäljelläolevien korttien määrä - Show ETA - Show remaining time + Näytä ETA + Näytä jäljellä oleva aika Pakka uusille korteille Ennalta oppimisen aikaraja Edistymisen näyttämisen aikaväli @@ -198,7 +198,7 @@ Listaa sovellukset jotka käyttävät AnkiDroid API:ta, kuten kansioita ja työkaluja. Kertaaminen - Show deck title + Näytä pakan otsikko Esteettömyys Liitä leikepöydän kuvat PNG:nä @@ -217,7 +217,7 @@ Lue lisää ]]> Synkronointiosoite - Custom root certificate (PEM) + Oma root-sertifikaatti (PEM) Näppäimistö Bluetooth @@ -235,13 +235,13 @@ Suodatin Haku Rajoita - Cards selected by + Valitse kortit käyttäen sääntöä Aikatauluta uudelleen Aikatauluta kortit tämän pakan vastausten perusteella Ota käyttöön toinen suodatin Määritä mukautetut oppimisaskeleet - Preview delays - Delays are in seconds. 0 returns card to original deck. + Esikatselujen viiveet + Viivästykset ovat sekunneissa. 0 palauttaa kortin alkuperäiseen pakkaan. Auta parantamaan AnkiDroidia! Jaa tietoja käyttämistäsi ominaisuuksista @@ -266,18 +266,18 @@ Paina näppäintä Lisää peliohjain tai liikeohjain Liikuta peli- tai liikeohjainta - 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 - Toggle auto advance + Käyttäjän toimet + Käynnistä JavaScript kertausnäkymästä + Käyttäjän toimi 1 + Käyttäjän toimi 2 + Käyttäjän toimi 3 + Käyttäjän toimi 4 + Käyttäjän toimi 5 + Käyttäjän toimi 6 + Käyttäjän toimi 7 + Käyttäjän toimi 8 + Käyttäjän toimi 9 + Automaattinen eteneminen päälle/pois Valitse kortin puoli Kysymys @@ -291,8 +291,8 @@ Jo käytössä kohteessa \"%s\" Kokeellinen - 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 on ottanut käyttöön paremman TTS-mekanismin, joka on yhteensopiva muiden Anki-ohjelmien kanssa ja sisältää enemmän ääniä ja parannuksia kielentoistoon!\n\nPäivitä mahdollisimman pian, sillä tämä asetus poistetaan pian. + Päivitä uuteen tekstistä puheeksi -formaattiin Kehittäjän asetukset Ota kehittäjän asetukset käyttöön @@ -359,17 +359,17 @@ Haetaan… Lasketaan… Kokoelmaa ei ole olemassa - Hide system bars - None - Status bar - Navigation bar - All - Ignore display cutout - Hide answer buttons - Hide ‘Hard’ and ‘Easy’ buttons - Frame style - Card - Box + Piilota järjestelmäpalkit + Ei mitään + Tilapalkki + Navigointipalkki + Kaikki + Älä huomioi näytön lovea + Piilota vastauspainikkeet + Piilota ”Vaikea” ja ”Helppo” painikkeet + Kehyksen tyyli + Kortti + Laatikko - Open settings + Avaa asetukset diff --git a/AnkiDroid/src/main/res/values-fi/11-arrays.xml b/AnkiDroid/src/main/res/values-fi/11-arrays.xml index e6dbc83e5449..9960fc1594fc 100644 --- a/AnkiDroid/src/main/res/values-fi/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-fi/11-arrays.xml @@ -84,7 +84,7 @@ Vastaa \"hyvä\" Vastaa \"helppo\" Toista media - Close reviewer + Sulje tarkastus Punainen lippu päälle/pois Oranssi lippu päälle/pois Vihreä lippu päälle/pois @@ -95,11 +95,11 @@ Poista lippu Sivu ylös Sivu alas - Close reviewer and Sync + Sulje tarkastus ja synkronoi Kirjoitustaulu käyttöön/pois käytöstä Näytä vihje Näytä kaikki vihjeet Nauhoita ääntä Toista ääni uudelleen - Save Recording + Tallenna äänitys diff --git a/AnkiDroid/src/main/res/values-fi/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-fi/16-multimedia-editor.xml index ee0a2e2f5ec6..c8e00f962e3a 100644 --- a/AnkiDroid/src/main/res/values-fi/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-fi/16-multimedia-editor.xml @@ -69,8 +69,8 @@ Haluatko rajata kuvan? Rajaa kuva - Current image size is %sMB. Default image size limit is 1MB. Do you want to compress it? + Kuvan nykyinen koko on %s Mt. Kuvan kokorajoitus on oletusarvoisesti 1 Mt. Haluatko käyttää pakkausta kuvan pienentämiseksi? "Kuvan valitseminen epäonnistui – yritä uudelleen" Kentän sisältö - Reselect + Valitse uudelleen diff --git a/AnkiDroid/src/main/res/values-fi/20-search-preference.xml b/AnkiDroid/src/main/res/values-fi/20-search-preference.xml index 209a8cfe4f8a..83b22c4aa386 100644 --- a/AnkiDroid/src/main/res/values-fi/20-search-preference.xml +++ b/AnkiDroid/src/main/res/values-fi/20-search-preference.xml @@ -60,6 +60,6 @@ the key names MUST NOT be changed due to this --> - Search… - Clear history + Hae… + Tyhjennä historia diff --git a/AnkiDroid/src/main/res/values-heb/01-core.xml b/AnkiDroid/src/main/res/values-heb/01-core.xml index 247746c5b886..3548de8f25af 100644 --- a/AnkiDroid/src/main/res/values-heb/01-core.xml +++ b/AnkiDroid/src/main/res/values-heb/01-core.xml @@ -136,7 +136,7 @@ החפיסה ריקה חיפוש חפיסה שם חפיסה לא חוקי - Congratulations! You have finished for today. + אשריך! סיימת להיום. סיימת את החפיסה לעכשיו! %s אין כרטיסים נוספים התקן אחסון לא מחובר diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index ae4c6dfa235a..632dd523aa99 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -45,8 +45,8 @@ --> - פתיחת מגירה - סגירת מגירה + פתיחת תפריט + סגירת תפריט חפיסת כרטיסים:‏ חפיסה:‏ סוג: @@ -85,9 +85,9 @@ הגבל לתיוג ספציפי +%d קבור - +%d buried - +%d buried - +%d buried + +%d קבורים + +%d קבורים + +%d קבורים סה\"כ קלפים חדשים סה\"כ קלפים @@ -312,7 +312,7 @@ פתקים החלף כרטיסים/פתקים חתוך את הגובה של כל שורה בדפדפן כדי להציג רק 3 שורות תוכן ראשונות - Browser options + אפשרויות דפדפן ההקלטה נשמרה מחיקת הערות שנבחרו הקש על קול כדי להאזין diff --git a/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml index 6b47300f5def..02c01603c318 100644 --- a/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml @@ -124,10 +124,10 @@ תיבת דו-שיח עריכת תגים הצג תיבת הזמנה - Columns - Manage columns - Active - Available - Include column - Exclude column + עמודות + ניהול עמודות + פָּעִיל + זמין + כלול עמודה + אל תכלול עמודה diff --git a/AnkiDroid/src/main/res/values-heb/10-preferences.xml b/AnkiDroid/src/main/res/values-heb/10-preferences.xml index 35140e2834ae..d18a271836f2 100644 --- a/AnkiDroid/src/main/res/values-heb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-heb/10-preferences.xml @@ -373,9 +373,9 @@ התעלם מגזרת התצוגה הסתר כפתורי תשובה הסתר את הלחצנים \'קשה\' ו\'קל\' - Frame style - Card - Box + סגנון מסגרת + כרטיס + תיבה פתח הגדרות diff --git a/AnkiDroid/src/main/res/values-iw/01-core.xml b/AnkiDroid/src/main/res/values-iw/01-core.xml index 247746c5b886..3548de8f25af 100644 --- a/AnkiDroid/src/main/res/values-iw/01-core.xml +++ b/AnkiDroid/src/main/res/values-iw/01-core.xml @@ -136,7 +136,7 @@ החפיסה ריקה חיפוש חפיסה שם חפיסה לא חוקי - Congratulations! You have finished for today. + אשריך! סיימת להיום. סיימת את החפיסה לעכשיו! %s אין כרטיסים נוספים התקן אחסון לא מחובר diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index ae4c6dfa235a..632dd523aa99 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -45,8 +45,8 @@ --> - פתיחת מגירה - סגירת מגירה + פתיחת תפריט + סגירת תפריט חפיסת כרטיסים:‏ חפיסה:‏ סוג: @@ -85,9 +85,9 @@ הגבל לתיוג ספציפי +%d קבור - +%d buried - +%d buried - +%d buried + +%d קבורים + +%d קבורים + +%d קבורים סה\"כ קלפים חדשים סה\"כ קלפים @@ -312,7 +312,7 @@ פתקים החלף כרטיסים/פתקים חתוך את הגובה של כל שורה בדפדפן כדי להציג רק 3 שורות תוכן ראשונות - Browser options + אפשרויות דפדפן ההקלטה נשמרה מחיקת הערות שנבחרו הקש על קול כדי להאזין diff --git a/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml index 6b47300f5def..02c01603c318 100644 --- a/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml @@ -124,10 +124,10 @@ תיבת דו-שיח עריכת תגים הצג תיבת הזמנה - Columns - Manage columns - Active - Available - Include column - Exclude column + עמודות + ניהול עמודות + פָּעִיל + זמין + כלול עמודה + אל תכלול עמודה diff --git a/AnkiDroid/src/main/res/values-iw/10-preferences.xml b/AnkiDroid/src/main/res/values-iw/10-preferences.xml index 35140e2834ae..d18a271836f2 100644 --- a/AnkiDroid/src/main/res/values-iw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-iw/10-preferences.xml @@ -373,9 +373,9 @@ התעלם מגזרת התצוגה הסתר כפתורי תשובה הסתר את הלחצנים \'קשה\' ו\'קל\' - Frame style - Card - Box + סגנון מסגרת + כרטיס + תיבה פתח הגדרות diff --git a/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml index ca08ecc4b7ab..73d42eec1eb2 100644 --- a/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml @@ -106,10 +106,10 @@ タグダイアログを編集 表示順ダイアログを表示 - Columns - Manage columns - Active - Available - Include column - Exclude column + + リストの列を管理 + 使用中 + 使用可能 + この列をブラウザのリストで使用 + この列をブラウザのリストから除外 diff --git a/AnkiDroid/src/main/res/values-ka/01-core.xml b/AnkiDroid/src/main/res/values-ka/01-core.xml index ad3a6ee3d38f..27b9314a44b8 100644 --- a/AnkiDroid/src/main/res/values-ka/01-core.xml +++ b/AnkiDroid/src/main/res/values-ka/01-core.xml @@ -65,8 +65,8 @@ დარჩენილია %1$d საათი და %2$d წუთი - %1$d day %2$dh left - %1$d days %2$dh left + დარჩენილია %1$d დღე და %2$d საათი + დარჩენილია %1$d დღე და %2$d საათი კოლექცია ცარიელია ატვირთეთ ბარათები\n+ნიშნით @@ -108,8 +108,8 @@ მონახულება %1$s-ში მონიშნე შენიშვნა შენიშვნის გაუქმება - Enable voice playback - Disable voice playback + ხმის გამოშვების ჩართვა + ხმის გამოშვების გამორთვა დასტის შექმნა ფილტრირებული დასტის შექმნა AnkiDroid-ის ბიბლიოთეკა მიუწვდომელია @@ -129,7 +129,7 @@ ეს დასტა ცარიელია დასტის ძიება დასტის სახელი არასწორია - Congratulations! You have finished for today. + გილოცავთ! დღეისათვის სულ ეს იყო. Deck finished for now! %s ჯერ ბარათები არ არის მოწყობილობის მეხსიერება არაა ჩაყენებული @@ -138,7 +138,7 @@ სინქრონიზაციის გაგრძელება სინქრონიზაცია გაუქმებულია გაუქმება\…\nამან შეიძლება ცოტა დრო წაიღოს. - Syncing media + მედიაფაილების სინქრონიზაცია დასტის ექსპორტი კოლექციის ექსპორტი არაფერი @@ -184,7 +184,7 @@ ფაილზე %s ჩაწერა ვერ მოხერხდა ან ფაილი ვერ შეიქმნა მიუწვდომელი კოლექცია Play Store-ის პოლიტიკაში შეტანილი ცვლილებების შედეგად თქვენს კოლექციაზე წვდომა აღარ გვექნება, თუკი მოახდენთ AnkiDroid-ის დეინსტალაციას\n\nთქვენი მონაცემები დაცულია და მათი აღდგენაც შესაძლებელია. ისინი შეგიძლიათ იხილოთ აქ:\n%s\n\nაღსადგენად შეგიძლიათ ჩამოთვლილთაგან რომელიმე აირჩიოთ: - Android has removed AnkiDroid\'s %1$s permission due to app inactivity.\n\nYour data is safe and can be restored. It is located at\n%2$s\n\nSelect an option below to restore: + Android-მა AnkiDroid-ს %1$s ნებართვა ჩამოართვა აპლიკაციაში უმოქმედობის გამო.\n\nთქვენი მონაცემები დაცულია და მათი აღდგენა შესაძლოა. მათი მოთავსების ადგილია: \n%2$s\n\nაღსადგენად აირჩიეთ შესაბამისი ოფციონი: AnkiWeb-იდან აღდგენა (რეკომენდებული) საქაღალდეზე წვდომის აღდგენა (რეკომენდებული) საქაღალდეზე წვდომის აღდგენა (გაღრმავებული პარამეტრი) @@ -199,5 +199,5 @@ სასურათე საფარველები ანგარიშის წაშლა - Instant card + სწრაფი ბარათი diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 8c64f99bf925..74336d6772ed 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -84,11 +84,11 @@ კონკრეტულ იარლიყებზე შეზღუდვა - +%d buried - +%d buried + +%d დღეისათვის დამალულია + +%d დღეისათვის დამალულია - Total new cards - Total cards + ახალი ბარათები ჯამში + ბარათები ჯამში შენიშვნის რედაქტირება წაშლა @@ -131,7 +131,7 @@ იშლება დასტა… შეაფასეთ AnkiDroid იმპორტირება - Preparing file for import… + ფაილის მომზადება იმპორტისთვის… დამატება არსებული კოლექცია წაიშლება და ჩანაცვლდება არჩეული ფაილის მონაცემებით %s Add “%s” to collection? This may take a long time @@ -302,7 +302,7 @@ შენიშვნები ბარათების/შენიშვნების ნახვა/დამალვა ბარათების საძიებოს თითო მწკრივის სიმაღლის ისე დამოკლება, რომ მხოლოდ შიგთავსის პირველი 3 სტრიქონი აჩვენოს - Browser options + ბარათების საძიებოს პარამეტრები ჩანაწერი შენახულია მონიშნული შენიშვნების წაშლა მოსასმენად შეეხეთ ხმას @@ -337,17 +337,17 @@ Voice not supported. Try another or install a voice engine. Show keyboard shortcuts dialog - Deck Picker + დასტის ამრჩეველი Delete deck without confirmation - Note Editor - Select deck - Select note type - Tag editor - Card Template Editor - Edit front template - Edit back template - Edit styling - Copy template as markdown + შენიშვნების რედაქტორი + დასტის არჩევა + შენიშვნის ტიპის არჩევა + იარლიყების რედაქტორი + ბარათის შაბლონის რედაქტორი + წინა მხარის შაბლონის რედაქტირება + უკანა მხარის შაბლონის რედაქტირება + სტილის რედაქტირება + შაბლონის კოპირება markdown-ად Edit browser appearance Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml index 03c08f3dbf56..c3c8221935a7 100644 --- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml @@ -158,7 +158,7 @@ შეცდომა სურათის წაშლისას სურათის ფონზე დაყენება ვერ მოხერხდა %s დასტის მომნიშვნელის ფონი ზედმეტად დიდია - Maximum image size %d MB allowed + სურათის ზომა შეიძლება იყოს არაუმეტეს %d MB-სა Image dimensions are too large (%1$d × %2$d) @@ -227,13 +227,13 @@ Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled დასტა უკვე არსებობს - Deck name cannot be empty + დასტის სახელი არ შეიძლება იყოს ცარიელი If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ Set interval to same value - Show card in - Show cards in + ბარათის ჩვენება ამდენ დღეში + ბარათების ჩვენება ამდენ დღეში Show card in range @@ -244,23 +244,23 @@ დღეში - 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 + რედაქტორის რეჟიმის შეცვლა + შენიშვნის რედაქტორის გახსნა + გამოტოვებული ადგილების რეჟიმის შეცვლა The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d - Compress + კომპრესირება - Language not supported - The text to speech engine %1$s does not support the following language: %2$s - Change engine - Voice options + ენა მხარდაჭერილი არაა + ხმოვან წამკითხველ %1$s-ში არაა მხარდაჭერილი ეს ენა: %2$s + ძრავას შეცვლა + ხმის პარამეტრები diff --git a/AnkiDroid/src/main/res/values-ka/04-network.xml b/AnkiDroid/src/main/res/values-ka/04-network.xml index b8e1ec9b0775..f9dd49cc55ec 100644 --- a/AnkiDroid/src/main/res/values-ka/04-network.xml +++ b/AnkiDroid/src/main/res/values-ka/04-network.xml @@ -75,11 +75,11 @@ ლოკალური დისტანციური - One-way sync + ცალმხრივი სინქრონიზაცია One way sync requested The requested change will require a full upload of the database when you next synchronize your collection. If you have reviews or other changes waiting on another device that haven’t been synchronized here yet, they will be lost. Continue? Due to a bug in the previously installed version of AnkiDroid, it’s recommended to force a full sync. - Sync (one-way) + სინქრონიზაცია (ცალმხრივი) სინქრონიზაცია (ავტორიზაცია) diff --git a/AnkiDroid/src/main/res/values-ka/06-statistics.xml b/AnkiDroid/src/main/res/values-ka/06-statistics.xml index a50118f626c8..0a2910531db3 100644 --- a/AnkiDroid/src/main/res/values-ka/06-statistics.xml +++ b/AnkiDroid/src/main/res/values-ka/06-statistics.xml @@ -44,5 +44,5 @@ ~ this program. If not, see . --> - Open statistics + სტატისტიკის გახსნა diff --git a/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml index e4514f8103cb..0c2986ff1b36 100644 --- a/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml @@ -73,8 +73,8 @@ No note to edit „%1$s“ წაიშალოს? ჩვენების თანმიმდევრობის შეცვლა - Search - Search + ძებნა + ძებნა ჩვენების თანმიმდევრობის არჩევა იარლიყები @@ -112,10 +112,10 @@ Edit tags dialog Show order dialog - Columns - Manage columns - Active - Available - Include column - Exclude column + სვეტები + სვეტების მართვა + აქტიური + ხელმისაწვდომი + სვეტის გამოყენება + სვეტის არგამოყენება diff --git a/AnkiDroid/src/main/res/values-ka/08-widget.xml b/AnkiDroid/src/main/res/values-ka/08-widget.xml index c388597d110d..c12994f1ed44 100644 --- a/AnkiDroid/src/main/res/values-ka/08-widget.xml +++ b/AnkiDroid/src/main/res/values-ka/08-widget.xml @@ -60,13 +60,13 @@ დარჩენილია %d წუთი ახალი AnkiDroid-შენიშვნის დამატება - Deck Picker - 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. diff --git a/AnkiDroid/src/main/res/values-ka/10-preferences.xml b/AnkiDroid/src/main/res/values-ka/10-preferences.xml index 6b9c238db321..2b5f53cea2ef 100644 --- a/AnkiDroid/src/main/res/values-ka/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ka/10-preferences.xml @@ -217,7 +217,7 @@ Learn more ]]> სინქრონიზაციის URL - Custom root certificate (PEM) + ინდივიდუალური ძირეული სერტიფიკატი (PEM) კლავიატურა Bluetooth @@ -267,7 +267,7 @@ ჯოისტიკის/მოძრაობით მართული კონტროლერის დამატება ჯოისტიკის/მოძრაობით მართული კონტროლერის გამოძრავება მომხმარებლის ქმედებები - Trigger JavaScript from the review screen + JavaScript-ის გაშვება გადახედვის ეკრანიდან მომხმარებლის ქმედება 1 მომხმარებლის ქმედება 2 მომხმარებლის ქმედება 3 @@ -364,12 +364,12 @@ სტატუსის ზოლი ნავიგაციის ზოლი ყველა - Ignore display cutout + ეკრანის ზედა ჭრილის უგულებელყოფა Hide answer buttons Hide ‘Hard’ and ‘Easy’ buttons - Frame style - Card - Box + ბარათის ჩარჩოს სტილი + ბარათი (მრგვალი კუთხეები) + ყუთი (სწორი კუთხეები) - Open settings + პარამეტრების გახსნა diff --git a/AnkiDroid/src/main/res/values-ka/11-arrays.xml b/AnkiDroid/src/main/res/values-ka/11-arrays.xml index b06e48543be2..b6511e4d9816 100644 --- a/AnkiDroid/src/main/res/values-ka/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-ka/11-arrays.xml @@ -84,7 +84,7 @@ პასუხი: კარგი პასუხი: მარტივი მედიაფაილების დაკვრა - Close reviewer + გადამხედველის დახურვა წითელი დროშის მიმაგრება/მოძრობა სტაფილოსფერი დროშის მიმაგრება/მოძრობა მწვანე დროშის მიმაგრება/მოძრობა diff --git a/AnkiDroid/src/main/res/values-ru/01-core.xml b/AnkiDroid/src/main/res/values-ru/01-core.xml index 2ae70b88e664..3fc81d2661d0 100644 --- a/AnkiDroid/src/main/res/values-ru/01-core.xml +++ b/AnkiDroid/src/main/res/values-ru/01-core.xml @@ -94,7 +94,7 @@ Переименовать колоду Создать ярлык Показать список - Редактировать описание + Изменить описание Добавить Добавить запись Учётная запись синхронизации @@ -135,7 +135,7 @@ Эта колода пуста Поиск колоды Недопустимое название колоды - Congratulations! You have finished for today. + Ура! На сегодня всё. Колода закончилась! %s Нет карточек на сегодня Карта памяти не установлена diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index dbcfeafc6b3f..1c3be8e44e47 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -312,7 +312,7 @@ Записи Карточки — записи Показывать в списке только первые 3 строки - Browser options + Параметры списка карточек Запись сохранена Выбранные записи удаляются Нажмите на голосе, чтобы послушать @@ -345,16 +345,16 @@ Этот голос не поддерживается. Попробуйте другой или установите голосовой движок. Показать диалог сочетаний клавиш - Выборщик колоды + Выбор колоды Удалить колоду без подтверждения - Редактор заметок + Редактор записей Выбрать колоду Выбрать тип записи Редактор меток Редактор шаблонов карточек Изменить шаблон лицевой стороны Изменить шаблон оборота - Редактировать стилизирование + Править стиль Копировать шаблон как markdown Изменить вид браузера Нажмите Alt+K, чтобы показать сочетания клавиш diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml index 8c4ff14174bc..f6c1b177dea7 100644 --- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml @@ -192,7 +192,7 @@ Программировать Оценить Другое - Перевод + Перевести Сообщество Форум Anki Discord diff --git a/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml index ebbc442ae960..0d7cb7df5d7b 100644 --- a/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml @@ -59,10 +59,10 @@ Все колоды - Удалить заметку - Удалить заметки - Удалить заметки - Удалить заметки + Удалить запись + Удалить записи + Удалить записи + Удалить записи Сменить колоду Удалить запись? @@ -76,7 +76,7 @@ Название запроса Нельзя сохранить запрос без названия Такое название уже существует - Нет записей для редактирования + Нет записей для правки Удалить «%1$s»? Изменить сортировку Искать @@ -124,10 +124,10 @@ Редактировать диалог меток Показать диалоговое окно порядка - Columns - Manage columns - Active - Available - Include column - Exclude column + Столбцы + Настроить столбцы + Включённые + Доступные + Включить столбец + Исключить столбец diff --git a/AnkiDroid/src/main/res/values-ru/10-preferences.xml b/AnkiDroid/src/main/res/values-ru/10-preferences.xml index 5c51d5a3f109..f0420dc1d759 100644 --- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml @@ -47,14 +47,14 @@ Выкл. - %d минута + %d мин %d мин %d мин %d мин %s мс - Ничего не найденo + Ничего не найдено Общие Поведение @@ -202,7 +202,7 @@ Покажет список приложений, которые используют API AnkiDroid, например, словари Повторение - Показать название колоды + Показывать название колоды Специальные возможности Вставлять изображения буфера как PNG @@ -371,9 +371,9 @@ Игнорировать вырез экрана Скрывать кнопки ответа Скрывать кнопки «Трудно» и «Легко» - Frame style - Card - Box + Стиль рамки + Карточка + Квадратная Открыть настройки diff --git a/AnkiDroid/src/main/res/values-ru/11-arrays.xml b/AnkiDroid/src/main/res/values-ru/11-arrays.xml index 415d57653273..51b73943e21a 100644 --- a/AnkiDroid/src/main/res/values-ru/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-ru/11-arrays.xml @@ -80,9 +80,9 @@ самый большой Ответить снова - Сложный ответ - Хороший ответ - Простой ответ + Ответить «Трудно» + Ответить «Хорошо» + Ответить «Легко» Воспроизвести медиафайл Закрыть повторение Красный флажок diff --git a/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml index eeb6db4d9e73..8110813fcfcf 100644 --- a/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml @@ -112,10 +112,10 @@ بەلگە سۆزلەشكۈ تەھرىر تەرتىپ كۆزنىكىنى كۆرسىتىدۇ - Columns - Manage columns - Active - Available - Include column - Exclude column + رەت + رەت باشقۇرۇش + ئاكتىپ + ئىشلىتىلىشچان + رەت ئىچىدە + رەت سىرتىدا diff --git a/AnkiDroid/src/main/res/values-uk/01-core.xml b/AnkiDroid/src/main/res/values-uk/01-core.xml index 54445c2e7b5a..575f7bd2d3df 100644 --- a/AnkiDroid/src/main/res/values-uk/01-core.xml +++ b/AnkiDroid/src/main/res/values-uk/01-core.xml @@ -109,13 +109,13 @@ Прапорець Перейменувати прапорці Додати прапорець - Редагувати примітки + Редагувати теги Дійсно видалити цей запис разом з усіма його картками?\n%s Пошук у %1$s Позначити запис Зняти позначку запису - Увімкнути відтворення голосу - Вимкнути відтворення голосу + Увімкнути запис голосу + Вимкнути запис голосу Створити колоду Створити фільтровану колоду Папка AnkiDroid недоступна @@ -135,7 +135,7 @@ Ця колода порожня Пошук колоди Некоректна назва колоди - Congratulations! You have finished for today. + Вітаємо! На сьогодні це все. Колоду завершено! %s Не залишилось карток на перегляд Пристрій зберігання не підключено diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index bfed43161e5c..152d10713032 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -54,11 +54,11 @@ Картки: %1$s Редагувати оклюзії Назва позначки - Додати/фільтрувати позначки + Додати/фільтрувати теги Додати позначку Обрати/прибрати усі позначки - Фільтр позначок - Ви ще не додали жодної позначки + Пошук тегів + Ви ще не додали жодного тегу Оновлено до версії %s Зберегти написане @@ -311,8 +311,8 @@ Картки Записи Перемкнути картки/записи - Скоротіть висоту кожного рядка браузера, щоб показати лише перші 3 рядки вмісту - Browser options + Скоротити висоту кожного рядка переглядача, щоб було видно лише перші 3 рядки вмісту + Параметри переглядача карток Запис аудіо збережено Видалення вибраних записів Натисніть на голос, щоб прослухати @@ -360,7 +360,7 @@ Редагувати шаблон задньої сторони Редагувати стиль Копіювати шаблон як розмітку - Редагувати вигляд браузера + Редагувати вигляд переглядача карток Натисніть Alt+K, щоб показати комбінації клавіш Дію користувача %s не встановлено в цьому типі запису. Будь ласка, налаштуйте її Дізнайтесь більше про те, як відновити доступ тут – %s, або перейдіть в налаштування, щоб оновити теку колекцій. diff --git a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml index 9887d1358433..39a129bdfb23 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 @@ Пошук Пошук Вибрати порядок відображення - Позначки + Теги Без сортування (швидше) За полем сортування @@ -124,10 +124,10 @@ Редагувати діалогове вікно тегів Показати діалогове вікно порядку - Columns - Manage columns - Active - Available - Include column - Exclude column + Стовпці + Налаштувати стовпці + Активні + Доступні + Включити стовпець + Виключити стовпець diff --git a/AnkiDroid/src/main/res/values-uk/08-widget.xml b/AnkiDroid/src/main/res/values-uk/08-widget.xml index 7f121c25f700..c60a9d5453d4 100644 --- a/AnkiDroid/src/main/res/values-uk/08-widget.xml +++ b/AnkiDroid/src/main/res/values-uk/08-widget.xml @@ -72,7 +72,7 @@ Виберіть колоди Вибрати колоду Виберіть колоди для відображення у віджеті. Виберіть колоди за допомогою піктограми +. - Колоду видалено + Колоду видалено з віджета Ця колода вже вибрана Ви можете вибрати до %d колоди. diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index b5dbaf946b33..c44d89f3f6b6 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -233,7 +233,7 @@ Медіафайли Різне - Оберіть позначки + Оберіть теги Загальні Нагадування @@ -374,9 +374,9 @@ Ігнорувати виріз дисплею Приховати кнопки відповіді Приховати кнопки \'Важко\' і \'Легко\' - Frame style - Card - Box + Стиль рамки + Картка + Квадратна Відкрити налаштування diff --git a/docs/marketing/localized_description/marketdescription-uk.txt b/docs/marketing/localized_description/marketdescription-uk.txt index 4c524746a9d4..b3c35f90acff 100644 --- a/docs/marketing/localized_description/marketdescription-uk.txt +++ b/docs/marketing/localized_description/marketdescription-uk.txt @@ -22,7 +22,7 @@ AnkiDroid дозволяє ефективно вивчати картки з п • введення відповіді (за бажанням) • дошка для малювання • редактор карт -• переглядач карт +• переглядач карток • підтримка планшетів • імпорт існуючих колекцій файлів (через настільну програму Anki) • додавання карток з інших програм From 46092ee211d4eaea4546ad5da58b3a081aa52fcc Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Fri, 7 Feb 2025 09:16:43 +0000 Subject: [PATCH 006/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-eo/01-core.xml | 48 +++++++++---------- .../src/main/res/values-eo/02-strings.xml | 4 +- .../res/values-eo/16-multimedia-editor.xml | 2 +- AnkiDroid/src/main/res/values-fil/01-core.xml | 6 +-- .../src/main/res/values-fil/02-strings.xml | 12 ++--- 5 files changed, 36 insertions(+), 36 deletions(-) diff --git a/AnkiDroid/src/main/res/values-eo/01-core.xml b/AnkiDroid/src/main/res/values-eo/01-core.xml index 0c34d1fbe1c1..e90cfac34bd9 100644 --- a/AnkiDroid/src/main/res/values-eo/01-core.xml +++ b/AnkiDroid/src/main/res/values-eo/01-core.xml @@ -75,10 +75,10 @@ enigu respondon Montri respondon Kaŝi respondon - denove - malfacile - facile - facilege + Denove + Malfacila + Bona + Facila Enporti Malfari Refari @@ -91,7 +91,7 @@ Redakti priskribon Aldoni Aldoni noton - Samtempigi konton + Samtempigi la konton Kaŝi / forigi Kaŝi karton por tago Kaŝi noton por tago @@ -109,10 +109,10 @@ Marki noton Malmarki noton Aktivigi ludadon de voĉo - Malaktivigi ludadon de voĉo + Malebligi la ludadon de la voĉoj Krei kartaron Krei filtritan kartaron - Dosierujo de AnkiDroid estas nealirebla + La dosierujo de AnkiDroid estas nealirebla - Tipo de karto + Tipo de kartoj Ŝablono fronta Ŝablono dorsa Stilo @@ -160,14 +160,14 @@ Ĉu forigi la kart-tipon “%2$s” kaj ĝian %1$d karton? Ĉu forigi la kart-tipon “%2$s” kaj ĝiajn %1$d kartojn? - Malsukcesis konservi ŝanĝojn al ŝablono de karto: %s - La speco de karto por la nuna karto estis forigita. + Malsukcesis konservi la ŝanĝojn al la ŝablono de karto: %s + La tipo de karto por la nuna karto estas forigita. - Aspekto de foliumilo + Aspekto de la foliumilo - Informoj pri karto + Informoj pri la karto - Legi kaj skribi al datumbazo de AnkiDroid + Legi kaj skribi al la datumbazo de AnkiDroid aliri ekzistajn notojn, kartojn, tipojn de notoj kaj kartarojn kaj krei novajn Kart-foliumilo @@ -181,20 +181,20 @@ Elektu kolekton por konservi Anstataŭigi kolekton - Ne povas skribi aĭ krei la dosieron %s + Ne povas skribi aŭ krei la dosieron %s Kolekto nealirebla - Pro ŝanĝi politikon en la vendejo Play Store, AnkiDroid ne povis aliri vian kolekton post malinstali.\n\nViaj datumoj estas sekuraj kaj povas esti restarigitaj. Ili troviĝas en la dosierujo:\n%s\n\nElektu ion el la suba listo por restarigi viajn datumojn: + Pro la ŝanĝiĝo de la politiko de la vendejo Play Store, AnkiDroid ne povas aliri vian kolekton post malinstali.\n\nViaj datumoj estas sekuraj kaj povas esti restarigitaj. Ili troviĝas en la dosierujo:\n%s\n\nElektu ion el la suba listo por restarigi viajn datumojn: Android senigis la aplikaĵon AnkiDroid je la permeso %1$s pro longa malaktiveco.\n\nViaj datumoj estas sekuraj kaj povas esti restarigitaj. Ili troviĝas en la dosierujo:\n%2$s\n\nElektu ion el la suba listo por restarigi viajn datumojn. - restarigi el AnkiWeb (konsilinda) + Restarigi el AnkiWeb (konsilinda) Restarigi aliron al dosierujo (konsilinda) restarigi aliron al dosierujo (altnivela) - restarigi el sekurkopio .colpkg (altnivela) + Restarigi el sekurkopio .colpkg (altnivela) Krei novan kolekton La nova kolekto estos forigita el via telefono, se vi malinstalos AnkiDroid AnkiDroid postulas kelkajn permesojn por funkcii Aliro al konservejo - por konservi vian kolekton en sekura loko, kiu ne estos forviŝita post malinstali la aplikaĵon AnkiDroid + Konservu vian kolekton en sekura loko, kiu ne estos forviŝita kiam malinstali la aplikaĵon Aliro al ĉiuj dosieroj Bildtruo Forigi konton diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index 831fbecfc1ca..e7ce0298cf81 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -122,7 +122,7 @@ Antaŭrigardi Kopii kiel Markdown %1$d el %2$d - Alinomi + Renomi Kontroli Kontroli datumbazon Kontroli aŭdvidaĵojn @@ -134,7 +134,7 @@ Preparado de dosiero por enporti… Aldoni Tio ĉi forigos vian ekzistan kolekton kaj anstataŭigos ĝin per datumoj de dosiero %s - Ĉu aldoni “%s” al kolekto? Tio ĉi povas okupi multan tempon. + Ĉu aldoni “%s” al la kolekto? Tio ĉi povas okupi multan tempon Tio ĉi ne estas valida dosiero Anki-pakaĵo Eraro Malsukcesis enporti la dosieron\n\n%s diff --git a/AnkiDroid/src/main/res/values-eo/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-eo/16-multimedia-editor.xml index 8242e3775da6..7b49f4fbd2f1 100644 --- a/AnkiDroid/src/main/res/values-eo/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-eo/16-multimedia-editor.xml @@ -47,7 +47,7 @@ Truteksta malpleno - Aŭdaĵo + Sonregistro Farita diff --git a/AnkiDroid/src/main/res/values-fil/01-core.xml b/AnkiDroid/src/main/res/values-fil/01-core.xml index 006c2da65f77..37bd66890774 100644 --- a/AnkiDroid/src/main/res/values-fil/01-core.xml +++ b/AnkiDroid/src/main/res/values-fil/01-core.xml @@ -65,7 +65,7 @@ %1$d oras %2$d ang natititra - %1$d day %2$dh left + %1$d araw at %2$d oras na lang ang natitira %1$d days %2$dh left Walang laman ang koleksyon @@ -101,7 +101,7 @@ Suspindihin Burahin ang tala Watawat - Rename flags + Pangalanan ulit ang mga flag Lagyan ng watawat ang card Baguhin ang mga tag Talaga bang gusto mong burahin ang talang ito at pati na rin ang lahat ngmga kard?\n%s @@ -130,7 +130,7 @@ Maghanap ng Deck Hindi wasto ang pangalan ng deck Congratulations! You have finished for today. - Deck finished for now! %s + Tapos na ang deck sa ngayon! %s Wala pang card na nakatakda Ang device storage ay hindi naka-mount I-sync diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index d60f0e419d3c..e2895f073d09 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -87,8 +87,8 @@ +%d buried +%d buried - Total new cards - Total cards + Kabuuang bagong kard + Kabuuang kard I-edit ang tala Baliwalain @@ -337,18 +337,18 @@ Voice not supported. Try another or install a voice engine. Show keyboard shortcuts dialog - Deck Picker + Pagpipilian ng Deck Delete deck without confirmation Note Editor - Select deck - Select note type + Pumili ng Deck + Pumili ng uri ng tala Tag editor Card Template Editor Edit front template Edit back template Edit styling Copy template as markdown - Edit browser appearance + Baguhin ang anyo ng browser Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. From 3befa112836108c81a2b18e0b034422bf0194112 Mon Sep 17 00:00:00 2001 From: snowtimeglass Date: Fri, 7 Feb 2025 13:45:51 +0900 Subject: [PATCH 007/200] fix: use consistent label for Whiteboard editor "Settings" > "Appearance" > "App bar buttons" > "Whiteboard" > "Whiteboard pen color" actually targets "Whiteboard editor" option in Reviewer. This commit renames the "Whiteboard pen color" label to "Whiteboard editor" for consistency. --- AnkiDroid/src/main/res/values/02-strings.xml | 1 - AnkiDroid/src/main/res/xml/preferences_custom_buttons.xml | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/res/values/02-strings.xml b/AnkiDroid/src/main/res/values/02-strings.xml index 6c1f86c41493..b1633eb806c5 100644 --- a/AnkiDroid/src/main/res/values/02-strings.xml +++ b/AnkiDroid/src/main/res/values/02-strings.xml @@ -186,7 +186,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/xml/preferences_custom_buttons.xml b/AnkiDroid/src/main/res/xml/preferences_custom_buttons.xml index 93ae6afcfe41..dbb52fcb7508 100644 --- a/AnkiDroid/src/main/res/xml/preferences_custom_buttons.xml +++ b/AnkiDroid/src/main/res/xml/preferences_custom_buttons.xml @@ -175,7 +175,7 @@ TODO: Add a unit test android:entries="@array/custom_button_labels" android:entryValues="@array/custom_button_values" android:key="@string/custom_button_whiteboard_pen_color_key" - android:title="@string/title_whiteboard_pen_color" + android:title="@string/title_whiteboard_editor" app:useSimpleSummaryProvider="true"/> Date: Fri, 7 Feb 2025 09:55:29 +0000 Subject: [PATCH 008/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/02-strings.xml | 1 - AnkiDroid/src/main/res/values-am/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ar/02-strings.xml | 1 - AnkiDroid/src/main/res/values-az/02-strings.xml | 1 - AnkiDroid/src/main/res/values-be/02-strings.xml | 1 - AnkiDroid/src/main/res/values-bg/02-strings.xml | 1 - AnkiDroid/src/main/res/values-bn/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ca/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ckb/02-strings.xml | 1 - AnkiDroid/src/main/res/values-cs/02-strings.xml | 1 - AnkiDroid/src/main/res/values-da/02-strings.xml | 1 - AnkiDroid/src/main/res/values-de/02-strings.xml | 1 - AnkiDroid/src/main/res/values-el/02-strings.xml | 1 - AnkiDroid/src/main/res/values-eo/02-strings.xml | 1 - AnkiDroid/src/main/res/values-es-rAR/02-strings.xml | 1 - AnkiDroid/src/main/res/values-es-rES/02-strings.xml | 1 - AnkiDroid/src/main/res/values-et/02-strings.xml | 1 - AnkiDroid/src/main/res/values-eu/02-strings.xml | 1 - AnkiDroid/src/main/res/values-fa/02-strings.xml | 1 - AnkiDroid/src/main/res/values-fi/02-strings.xml | 1 - AnkiDroid/src/main/res/values-fil/02-strings.xml | 1 - AnkiDroid/src/main/res/values-fr/02-strings.xml | 1 - AnkiDroid/src/main/res/values-fy/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ga/02-strings.xml | 1 - AnkiDroid/src/main/res/values-gl/02-strings.xml | 1 - AnkiDroid/src/main/res/values-got/02-strings.xml | 1 - AnkiDroid/src/main/res/values-gu/02-strings.xml | 1 - AnkiDroid/src/main/res/values-heb/02-strings.xml | 1 - AnkiDroid/src/main/res/values-hi/02-strings.xml | 1 - AnkiDroid/src/main/res/values-hr/02-strings.xml | 1 - AnkiDroid/src/main/res/values-hu/02-strings.xml | 1 - AnkiDroid/src/main/res/values-hy/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ind/02-strings.xml | 1 - AnkiDroid/src/main/res/values-is/02-strings.xml | 1 - AnkiDroid/src/main/res/values-it/02-strings.xml | 1 - AnkiDroid/src/main/res/values-iw/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ja/02-strings.xml | 1 - AnkiDroid/src/main/res/values-jv/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ka/02-strings.xml | 1 - AnkiDroid/src/main/res/values-kk/02-strings.xml | 1 - AnkiDroid/src/main/res/values-km/02-strings.xml | 1 - AnkiDroid/src/main/res/values-kn/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ko/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ku/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ky/02-strings.xml | 1 - AnkiDroid/src/main/res/values-lt/02-strings.xml | 1 - AnkiDroid/src/main/res/values-lv/02-strings.xml | 1 - AnkiDroid/src/main/res/values-mk/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ml/02-strings.xml | 1 - AnkiDroid/src/main/res/values-mn/02-strings.xml | 1 - AnkiDroid/src/main/res/values-mr/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ms/02-strings.xml | 1 - AnkiDroid/src/main/res/values-my/02-strings.xml | 1 - AnkiDroid/src/main/res/values-nl/02-strings.xml | 1 - AnkiDroid/src/main/res/values-nn/02-strings.xml | 1 - AnkiDroid/src/main/res/values-no/02-strings.xml | 1 - AnkiDroid/src/main/res/values-or/02-strings.xml | 1 - AnkiDroid/src/main/res/values-pa/02-strings.xml | 1 - AnkiDroid/src/main/res/values-pl/02-strings.xml | 1 - AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml | 1 - AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ro/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ru/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sat/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sc/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sk/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sl/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sq/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sr/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ss/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sv/02-strings.xml | 1 - AnkiDroid/src/main/res/values-sw/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ta/02-strings.xml | 1 - AnkiDroid/src/main/res/values-te/02-strings.xml | 1 - AnkiDroid/src/main/res/values-tg/02-strings.xml | 1 - AnkiDroid/src/main/res/values-tgl/02-strings.xml | 1 - AnkiDroid/src/main/res/values-th/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ti/02-strings.xml | 1 - AnkiDroid/src/main/res/values-tn/02-strings.xml | 1 - AnkiDroid/src/main/res/values-tr/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ts/02-strings.xml | 1 - AnkiDroid/src/main/res/values-tt/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ug/02-strings.xml | 1 - AnkiDroid/src/main/res/values-uk/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ur/02-strings.xml | 1 - AnkiDroid/src/main/res/values-uz/02-strings.xml | 1 - AnkiDroid/src/main/res/values-ve/02-strings.xml | 1 - AnkiDroid/src/main/res/values-vi/02-strings.xml | 1 - AnkiDroid/src/main/res/values-wo/02-strings.xml | 1 - AnkiDroid/src/main/res/values-xh/02-strings.xml | 1 - AnkiDroid/src/main/res/values-yue/02-strings.xml | 1 - AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml | 1 - AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml | 1 - AnkiDroid/src/main/res/values-zu/02-strings.xml | 1 - 94 files changed, 94 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml index b885026d8114..173e3fa907bf 100644 --- a/AnkiDroid/src/main/res/values-af/02-strings.xml +++ b/AnkiDroid/src/main/res/values-af/02-strings.xml @@ -194,7 +194,6 @@ Kon nie witbordbeeld stoor nie. %s Witbordbeeld gestoor na %s - Witbordpenkleur Witbordredakteur Geoutomatiseerde toets opgespoor. As jy \'n mens is, kontak AnkiDroid-ondersteuning. diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-am/02-strings.xml +++ b/AnkiDroid/src/main/res/values-am/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index 2914906ba48e..55fb3408ba61 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -210,7 +210,6 @@ فشل حفظ صورة السبورة. %s تم حفظ صورة السبورة إلى %s - لون قلم السبورة لون قلم السبورة تم الكشف عن اختبار تلقائي. إذا كنت بشراً، اتصل بدعم أنكيدرويد diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml index 5bed4ea5cfe0..e00a1e228734 100644 --- a/AnkiDroid/src/main/res/values-az/02-strings.xml +++ b/AnkiDroid/src/main/res/values-az/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index 77f680dd85bf..b1a5533ccd2b 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -202,7 +202,6 @@ Не атрымалася захаваць відарыс дошкі. %s Відарыс дошкі захаваны ў %s - Колер крэйды дошкі Рэдактар дошкі Выяўлены аўтаматычны тэст. У выпадку, калі вы чалавек, калі ласка, напішыце ў падтрымку AnkiDroid diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml index 9f290082d82c..446e29489d19 100644 --- a/AnkiDroid/src/main/res/values-bg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml @@ -194,7 +194,6 @@ Запазването на изображението на бялата дъска не бе успешно. %s Изображението на бялата дъска е запазено в %s - Цвят на писалката за бяла дъска Whiteboard editor Открит автоматичен тест. Ако сте човек, свържете се с екипа за поддръжка на AnkiDroid diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index 30a348b2c849..6650e6b1d34f 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -194,7 +194,6 @@ হোয়াইটবোর্ড ছবি সংরক্ষণ করতে ব্যর্থ হয়েছে. %s হোয়াইটবোর্ড ছবি %s-এ সংরক্ষিত হয়েছে - হোয়াইটবোর্ড কলমের রঙ হোয়াইটবোর্ড সম্পাদক স্বয়ংক্রিয় পরীক্ষা সনাক্ত করা হয়েছে. আপনি যদি একজন মানুষ হন তবে AnkiDroid সহায়তার সাথে যোগাযোগ করুন diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index 403538f6387e..b0d860cb75cd 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -194,7 +194,6 @@ Error al desar l\'imatge de la pissarra. %s Imatge de la pissara desada a %s - Color del llapis de la pissara Editor de la pissarra Test automàtic detectat. Si ets un humà contacta amb el suport AnkiDroid diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index 15ddc5caaea9..f5317f409b3c 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index 8e7b302c3c68..ee38b2198bb6 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -202,7 +202,6 @@ Nepodařilo se uložit obrázek tabule. %s Obrázek tabule uložen do %s - Barva pera tabule Editor tabule Zjištěn automatizovaný test. Pokud jste člověk, kontaktujte podporu AnkiDroid diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml index aee2dc6b319b..3b1587a83e89 100644 --- a/AnkiDroid/src/main/res/values-da/02-strings.xml +++ b/AnkiDroid/src/main/res/values-da/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index 7ea0d149d2ba..6964cf49153d 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -194,7 +194,6 @@ Whiteboardbild konnte nicht gespeichert werden. %s Whiteboardbild in %s gespeichert - Stiftfarbe des Whiteboards Whiteboard-Editor Automatischer Test erkannt. Wenn Sie ein Mensch sind, wenden Sie sich an AnkiDroid-Support diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index d77b6ab0f078..d2dfce556e2b 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -194,7 +194,6 @@ Αποτυχία αποθήκευσης της εικόνας του πίνακα. %s Η εικόνα του πίνακα αποθηκεύτηκε στο %s - Χρώμα στυλό πίνακα Επεξεργαστής πίνακα Εντοπίστηκε αυτοματοποιημένο τεστ. Εάν είστε άνθρωπος, επικοινωνήστε με την υποστήριξη του AnkiDroid diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index e7ce0298cf81..38c05747e1c3 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -194,7 +194,6 @@ Malsukcesis konservi bildon de skribtabulo. %s Konservis bildon de skribtabulo al %s - Koloro por skribi sur skribtabulo Redaktilo de skribtabulo Eltrovita aŭtomata testo. Se vi estas homo, kontaktu la helpteamon AnkiDroid 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 a57ac2b8ae78..173ff3d56a8d 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -194,7 +194,6 @@ No se pudo guardar la imagen de pizarra. %s Imagen de pizarra guardada en %s - Color del lápiz Editor de pizarra Prueba automatizada detectada. Si eres un humano, ponte en contacto con el soporte de AnkiDroid 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 94ee8ba2f096..b96eb3f63a37 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -194,7 +194,6 @@ No se pudo guardar la imagen de pizarra. %s Imagen de pizarra guardada en %s - Color del lápiz Editor de pizarra Prueba automatizada detectada. Si eres un humano, ponte en contacto con el soporte de AnkiDroid diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml index 39fa640cac72..520b474aa1f5 100644 --- a/AnkiDroid/src/main/res/values-et/02-strings.xml +++ b/AnkiDroid/src/main/res/values-et/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml index c87eca88e2a9..ab4db461c9aa 100644 --- a/AnkiDroid/src/main/res/values-eu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index a399167c9014..d4822003c447 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -194,7 +194,6 @@ ذخیرۀ تصویر تخته سفید با مشکل مواجه شد. %s تصویر تخته سفید در %s ذخیره شد - رنگ ماژیک تخته سفید ویرایشگر تخته صفید تست خودکار شناسایی شد. اگر شما انسان هستید، با پشتیبانی AnkiDroid ارتباط برقرار کنید diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index 4551407291a0..a57db3934721 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -194,7 +194,6 @@ Kirjoitustaulun kuvan tallentaminen epäonnistui. %s Kirjoitustaulun kuva tallennettu sijaintiin %s - Kirjoitustaulun kynän väri Valkotaulu editori Automaattinen testi havaittu. Jos olet ihminen, ota yhteyttä AnkiDroidin tukeen. diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index e2895f073d09..c73e55c644b5 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -194,7 +194,6 @@ Bigo sa pag-save ng litrato ng puting pisara. %s Isinave ang litrato ng puting pisara sa %s - Kulay ng pen sa puting pisara Editor ng puting pisara Natumbukan ang isang awtomatikong pagte-test. Kung ikaw ay isang tao, mangyaring kontakin ang AnkiDroid support. diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index 772698e10a47..31d12afed02f 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -194,7 +194,6 @@ Impossible d\'enregistrer l\'image du tableau blanc. %s Image du tableau blanc enregistrée dans %s - Couleur du stylo du tableau blanc Éditeur de tableau blanc Test automatisé détecté. Si vous êtes humain, contactez l\'assistance AnkiDroid diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml index 47184c8f88bd..ef980f4c265c 100644 --- a/AnkiDroid/src/main/res/values-fy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml index bbb04654ff23..63b8aa576545 100644 --- a/AnkiDroid/src/main/res/values-ga/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml @@ -206,7 +206,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml index 98dd55360c8e..59d2fd5fbff7 100644 --- a/AnkiDroid/src/main/res/values-gl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml index cb0b4e30e65c..5edb2d48f426 100644 --- a/AnkiDroid/src/main/res/values-got/02-strings.xml +++ b/AnkiDroid/src/main/res/values-got/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml index a5653f7b2b49..db8aa08daabd 100644 --- a/AnkiDroid/src/main/res/values-gu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml @@ -194,7 +194,6 @@ વ્હાઇટબોર્ડ છબી સાચવવામાં નિષ્ફળ. %s વ્હાઇટબોર્ડ ઇમેજ %s પર સાચવી - વ્હાઇટબોર્ડ પેન રંગ વ્હાઇટબોર્ડ એડિટર શોધાયેલ સ્વચાલિત પરીક્ષણ. જો તમે માનવ છો, તો AnkiDroid સપોર્ટનો સંપર્ક કરો diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index 632dd523aa99..414a5a8e8bd4 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -202,7 +202,6 @@ נכשל לשמור תמונת לוח. %s תמונת לוח נשמרה ל %s - צבע עט ללוח עורך לוח זוהה אוטומציה ממוחשבת, אם אתה אנושי, צור קשר עם תמיכת AnkiDroid diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index 33f4604c8214..63bf440803ac 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -194,7 +194,6 @@ श्वेतपट्ट छवि को सहेजने में विफल। %s श्वेतपट्ट छवि %s में सहेजी गई - श्वेतपट्ट के कलम का रंग श्वेतपट्ट संपादक स्वचालित परीक्षण का पता लगाया। यदि आप एक मानव हैं, तो AnkiDroid समर्थन से संपर्क करें diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index ac4440c71930..c91b6a4b48f2 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -198,7 +198,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index 4c7d03fe08d1..4c954970f68d 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -194,7 +194,6 @@ A rajztábla kép mentése sikertelen. %s A rajztábla kép elmentve %s-ba - Rajtábla tollszín Rajztábla szerkesztő Felismert automatizált teszt. Ha te csináltad, vedd fel a kapcsolatot az AnkiDroid támogatással diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml index 0697b577dcc7..43dd99ed9bb3 100644 --- a/AnkiDroid/src/main/res/values-hy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml index 08ee850dd155..9ea178739231 100644 --- a/AnkiDroid/src/main/res/values-ind/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml @@ -190,7 +190,6 @@ Gagal menyimpan gambar di whiteboard. %s Gambar whiteboard disimpan ke %s - Warna pena whiteboard Editor papan tulis Tes otomatis terdeteksi. Jika kamu manusia, kontak dukungan AnkiDroid diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-is/02-strings.xml +++ b/AnkiDroid/src/main/res/values-is/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml index 98964a7f9e5a..31fdff0bd6ca 100644 --- a/AnkiDroid/src/main/res/values-it/02-strings.xml +++ b/AnkiDroid/src/main/res/values-it/02-strings.xml @@ -194,7 +194,6 @@ Salvataggio dell\'immagine della lavagna fallito. %s Immagine lavagna salvata in %s - Colore della penna della lavagna Editor di lavagna bianca Rilevato test automatico. Se sei umano, contatta il supporto AnkiDroid diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 632dd523aa99..414a5a8e8bd4 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -202,7 +202,6 @@ נכשל לשמור תמונת לוח. %s תמונת לוח נשמרה ל %s - צבע עט ללוח עורך לוח זוהה אוטומציה ממוחשבת, אם אתה אנושי, צור קשר עם תמיכת AnkiDroid diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index e3254ddbd66f..5311bcbfd988 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -190,7 +190,6 @@ ホワイトボード画像の保存に失敗しました。 %s ホワイトボードの画像を \"%s\" に保存しました - ホワイトボードペンの色を選択 ホワイトボードエディタ 自動テストが検出されました。人間による操作の場合は、AnkiDroidサポートにお問い合わせください。 diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml index be18a0e0dbe2..d012a0403ccd 100644 --- a/AnkiDroid/src/main/res/values-jv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml @@ -190,7 +190,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 74336d6772ed..4cd0033d2607 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -194,7 +194,6 @@ დაფის სურათი ვერ შეინახა. %s დაფის სურათი შეინახა %s-ში - დაფის მარკერის ფერი დაფის რედაქტორი აღიქვა ავტომატიზებული ტესტი. თუკი ადამიანი ხართ, გთხოვთ, მიმართოთ AnkiDroid-ის მხარდაჭერის გუნდს diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-kk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 35c2c768b189..0e1df27053cf 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -190,7 +190,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index 5583f7d42e65..9a2bd5a79bbc 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -194,7 +194,6 @@ ವೈಟ್‌ಬೋರ್ಡ್ ಚಿತ್ರವನ್ನು ಉಳಿಸುವಲ್ಲಿ ವಿಫಲವಾಗಿದೆ. %s ವೈಟ್‌ಬೋರ್ಡ್ ಚಿತ್ರವನ್ನು%s ಗೆ ಉಳಿಸಲಾಗಿದೆ - ವೈಟ್‌ಬೋರ್ಡ್ ಪೆನ್ ಬಣ್ಣ ವೈಟ್‌ಬೋರ್ಡ್ ಸಂಪಾದಕ ಸ್ವಯಂಚಾಲಿತ ಪರೀಕ್ಷೆ ಪತ್ತೆಯಾಗಿದೆ. ನೀವು ಮನುಷ್ಯರಾಗಿದ್ದರೆ, ಆಂಕಿಡ್ರಾಯ್ಡ್ ಬೆಂಬಲವನ್ನು ಸಂಪರ್ಕಿಸಿ diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index 64b24aa7c784..da0afb023a6f 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -193,7 +193,6 @@ Context | Request Context [1] 화이트보드 이미지 저장에 실패했습니다. %s %s에 화이트보드 이미지가 저장되었습니다. - 화이트보드 펜 색상 화이트보드 편집기 자동 테스트를 감지했습니다. 만약 당신이 로봇이 아니라면 AnkiDroid 지원부에 연락하세요. diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml index ae0054a8d187..16009ac88239 100644 --- a/AnkiDroid/src/main/res/values-ku/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-ky/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml index 4010c31d613c..85acf41bbd57 100644 --- a/AnkiDroid/src/main/res/values-lt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml @@ -202,7 +202,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml index 69fd893d1c79..9cb3e99b304c 100644 --- a/AnkiDroid/src/main/res/values-lv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml @@ -198,7 +198,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml index ec419a40d505..aa9eba4740dc 100644 --- a/AnkiDroid/src/main/res/values-mk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml @@ -195,7 +195,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml index c2e76b5ee7cc..f56c6db72138 100644 --- a/AnkiDroid/src/main/res/values-ml/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml @@ -194,7 +194,6 @@ വൈറ്റ്ബോർഡ് ചിത്രം സംരക്ഷിക്കുന്നതിൽ പരാജയപ്പെട്ടു. %s വൈറ്റ്ബോർഡ് ചിത്രം %s ലേക്ക് സംരക്ഷിച്ചു - വൈറ്റ്ബോർഡ് പേന നിറം വൈറ്റ്ബോർഡ് എഡിറ്റർ യാന്ത്രിക പരിശോധന കണ്ടെത്തി. നിങ്ങൾ ഒരു മനുഷ്യനാണെങ്കിൽ, അങ്കിഡ്രോയിഡ് പിന്തുണയുമായി ബന്ധപ്പെടുക diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 80ef27965330..89db021ce30d 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s %s -д Зурсан зургийг тань хадгаллаа - Зурах балны өнгө Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml index a6c89b644f3c..99b8d629efa8 100644 --- a/AnkiDroid/src/main/res/values-mr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml @@ -194,7 +194,6 @@ व्हाईटबोर्ड इमेज सेव्ह करण्यात अयशस्वी. %s व्हाईटबोर्ड इमेज %s मध्ये सेव्ह केली - व्हाईटबोर्ड पेन रंग व्हाईटबोर्ड संपादक स्वयंचलित चाचणी आढळली. आपण मनुष्य असल्यास, अँकीड्रोइड समर्थनाशी संपर्क साधा diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml index 6748d3acb6ef..8872047a975f 100644 --- a/AnkiDroid/src/main/res/values-ms/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml @@ -190,7 +190,6 @@ Gagal menyimpan gambar papan putih. %s Gambar papan putih simpan di %s - Warna pen papan putih Penyunting papan putih Ujian automatik dikesan. Jika anda manusia, hubungi sokongan AnkiDroid diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml index 28ad01a85d74..9b976904fdf6 100644 --- a/AnkiDroid/src/main/res/values-my/02-strings.xml +++ b/AnkiDroid/src/main/res/values-my/02-strings.xml @@ -190,7 +190,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 0f91ca56ac47..45eac2a26b32 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -194,7 +194,6 @@ Opslaan van schrijfbordafbeelding is mislukt. %s schrijfbordafbeelding opgeslagen in %s - Penkleur schrijfbord Whiteboard bewerker Geautomatiseerde test gedetecteerd. Als u een mens bent, neem dan contact op met de AnkiDroid-ondersteuning diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml index 475c181c590a..6b95b1a339d2 100644 --- a/AnkiDroid/src/main/res/values-nn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml @@ -194,7 +194,6 @@ Kunne ikke lagre tavle. %s Tavle lagret som %s - Farge på penn Tavleeditor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml index acc241fc5201..4db8e35c8de7 100644 --- a/AnkiDroid/src/main/res/values-no/02-strings.xml +++ b/AnkiDroid/src/main/res/values-no/02-strings.xml @@ -194,7 +194,6 @@ Kunne ikke lagre tavle. %s Tavle lagret som %s - Farge på penn Tavleeditor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index ac5ba293fb58..f7fb7715ceff 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -194,7 +194,6 @@ ଧଳାପଟା ଛବି ସଂରକ୍ଷଣ କରିବାରେ ବିଫଳ। %s ଧଳାପଟା ଛବି %sରେ ସଂରକ୍ଷିତ - ଧଳାପଟା କଲମ ରଙ୍ଗ ଧଳାପଟା ସମ୍ପାଦକ ସ୍ୱଚାଳିତ ପରୀକ୍ଷା ଚିହ୍ନଟ ହୋଇଛି। ଯଦି ଆପଣ ଜଣେ ମଣିଷ, AnkiDroid ସମର୍ଥନ ସହିତ ଯୋଗାଯୋଗ କରନ୍ତୁ diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml index 730c440a8dd1..1ce155b0b646 100644 --- a/AnkiDroid/src/main/res/values-pa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml @@ -194,7 +194,6 @@ ਵ੍ਹਾਈਟਬੋਰਡ ਚਿੱਤਰ ਨੂੰ ਸੁਰੱਖਿਅਤ ਕਰਨ ਵਿੱਚ ਅਸਫਲ। %s ਵ੍ਹਾਈਟਬੋਰਡ ਚਿੱਤਰ %s ਵਿੱਚ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ - ਵ੍ਹਾਈਟਬੋਰਡ ਪੈੱਨ ਦਾ ਰੰਗ ਵ੍ਹਾਈਟਬੋਰਡ ਸੰਪਾਦਕ ਖੋਜਿਆ ਆਟੋਮੈਟਿਕ ਟੈਸਟ. ਜੇਕਰ ਤੁਸੀਂ ਮਨੁੱਖ ਹੋ, ਤਾਂ AnkiDroid ਸਹਾਇਤਾ ਨਾਲ ਸੰਪਰਕ ਕਰੋ diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index fe0e1879f856..d4463ca48461 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -202,7 +202,6 @@ Nie udało się zapisać obrazu tablicy. %s Obraz tablicy zapisany w %s - Kolor tablicy Edytor tablicy Wykryto automatyczny test. Jeśli jesteś człowiekiem, skontaktuj się z pomocą techniczną AnkiDroid 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 3abd60c4dbf7..26bb6cc3d3e0 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -194,7 +194,6 @@ Falha ao salvar imagem do quadro. %s Imagem do quadro branco salva em %s - Cor da caneta. Editor de quadro branco Teste automático detectado. Se você é humano, entre em contato com o suporte do AnkiDroid 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 4e60a9cc9ade..4b1710434de7 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -194,7 +194,6 @@ Falha ao guardar a imagem do quadro de escrita. %s Imagem do quadro de escrita guardado em %s - Cor da caneta do quadro de escrita Editor do quadro de escrita Detectado teste automático. Se é um humano, por favor contacto o apoio do AnkiDroid. diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml index 465cdc28ac27..c9ba40ca3066 100644 --- a/AnkiDroid/src/main/res/values-ro/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml @@ -198,7 +198,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 1c3be8e44e47..b6f552a9740c 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -202,7 +202,6 @@ Не удалось сохранить изображение доски. %s Изображение доски сохранено в %s - Цвет маркера Редактор доски Обнаружен автоматический тест. Если вы человек, обратитесь в службу поддержки AnkiDroid diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 1ac9d124f3af..401c6bcdfd06 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -194,7 +194,6 @@ ᱯᱩᱸᱰ ᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ ᱥᱟᱱᱪᱟᱣ ᱵᱷᱩᱞ ᱾. %s ᱯᱩᱸᱰ ᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ %s ᱛᱮ ᱥᱟᱱᱪᱟᱣ - ᱯᱩᱸᱰ ᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ ᱠᱚᱞᱚᱢ ᱨᱚᱰ ᱯᱩᱸᱰᱵᱚᱰ ᱮᱰᱤᱴᱚᱨ ᱟᱹᱴᱚᱢᱮᱴᱮᱰ ᱴᱮᱥᱴ ᱯᱟᱱᱛᱮ ᱚᱲᱚᱠ ᱾ ᱡᱩᱫᱤ ᱟᱢ ᱦᱚᱲ ᱠᱟᱱᱟᱢ AnkiDroid ᱥᱚᱢᱯᱚᱨᱠ ᱠᱚᱢ diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index 46678c6b9342..a5dfb4464f0f 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -197,7 +197,6 @@ Sarvamentu de s\'immàgine de sa lavagna fallidu. %s Immàgine de sa lavagna sarvada in %s - Colore de pinna de sa lavagna Editore de sa lavagna Test automàticu agatadu. Si ses un\'umanu cuntata su suportu de AnkiDroid diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml index 21b368747250..bc0b29a31150 100644 --- a/AnkiDroid/src/main/res/values-sk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml @@ -202,7 +202,6 @@ Nepodarilo sa uložiť obrázok tabule. %s Obrázok tabule sa uložil do %s - Farba pera pre tabuľu Editor tabule Bol zachytený automatizovaný test. Ak ste človek, kontaktuje AnkiDroid podporu diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml index 05f6b22994b3..36a058121e77 100644 --- a/AnkiDroid/src/main/res/values-sl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml @@ -202,7 +202,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml index 5d378086c31d..5cc4d585ecd9 100644 --- a/AnkiDroid/src/main/res/values-sq/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml index e8cbe5e3526d..1784f2698fa4 100644 --- a/AnkiDroid/src/main/res/values-sr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml @@ -198,7 +198,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-ss/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml index 18649dc5c04f..f658854f2fbf 100644 --- a/AnkiDroid/src/main/res/values-sv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml @@ -194,7 +194,6 @@ Det gick inte att spara whiteboardbilden. %s Whiteboard-bild sparad till %s - Färg på whiteboardpenna Redigerare för whiteboard Upptäckte automatiskt test. Om du är en människa, kontakta AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-sw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml index 20e2fdfcfa7d..abeb39cf4f81 100644 --- a/AnkiDroid/src/main/res/values-ta/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml @@ -194,7 +194,6 @@ ஒயிட்போர்டு படத்தைச் சேமிப்பதில் தோல்வி. %s ஒயிட்போர்டு படம் %s இல் சேமிக்கப்பட்டது - ஒயிட்போர்டு பேனா நிறம் ஒயிட்போர்டு எடிட்டர் தானியங்கு சோதனை கண்டறியப்பட்டது. நீங்கள் ஒரு மனிதராக இருந்தால், AnkiDroid ஆதரவைத் தொடர்பு கொள்ளவும் diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml index b257dd7a530a..e2b71e5803db 100644 --- a/AnkiDroid/src/main/res/values-te/02-strings.xml +++ b/AnkiDroid/src/main/res/values-te/02-strings.xml @@ -194,7 +194,6 @@ వైట్‌బోర్డ్ చిత్రాన్ని సేవ్ చేయడంలో విఫలమైంది. %s వైట్‌బోర్డ్ చిత్రం %sకి సేవ్ చేయబడింది - వైట్‌బోర్డ్ పెన్ రంగు వైట్‌బోర్డ్ ఎడిటర్ స్వయంచాలక పరీక్ష కనుగొనబడింది. మీరు మానవులైతే, AnkiDroid మద్దతును సంప్రదించండి diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-tg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml index 5155d73c36f8..e1b9f5bd8205 100644 --- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml index 0ae179866d48..3a1a6cfe0925 100644 --- a/AnkiDroid/src/main/res/values-th/02-strings.xml +++ b/AnkiDroid/src/main/res/values-th/02-strings.xml @@ -190,7 +190,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-ti/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-tn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index 9d5fc2ecc3be..f9b966abc28f 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -194,7 +194,6 @@ Yazı tahtası resmi kaydedilemedi. %s Yazı tahtası resmi bu adrese kaydedildi: %s - Yazı tahtası kalem rengi Yazı tahtası düzenleyici Otomatik test saptandı. Eğer insansanız, AnkiDroid desteğiyle iletişime geçin diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-ts/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index 93f5db464a01..75aee2e4e660 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -191,7 +191,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ug/02-strings.xml b/AnkiDroid/src/main/res/values-ug/02-strings.xml index 036505a34fdc..368f98932847 100644 --- a/AnkiDroid/src/main/res/values-ug/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ug/02-strings.xml @@ -194,7 +194,6 @@ ئاق دوسكا سۈرىتىنى ساقلىيالمىدى %s ئاق دوسكا سۈرىتى %s غا ساقلاندى - ئاق دوسكا قەلەم رەڭگى ئاق دوسكا تەھرىرلىگۈچ ئاپتوماتلاشقان سىناق بايقالدى. ئەگەر ئىنسان بولسىڭىز، AnkiDroid قوللىغۇچىلىرى بىلەن ئالاقىلىشىڭ diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index 152d10713032..459059a585a2 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -202,7 +202,6 @@ Не вдалося зберегти зображення дошки. %s Зображення дошки збережено до %s - Колір пензля Редактор дошки Виявлено автоматичний тест. Якщо Ви — людина, зверніться до підтримки AnkiDroid diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml index 7e7eca68dcd5..8f7146514ff7 100644 --- a/AnkiDroid/src/main/res/values-ur/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml @@ -195,7 +195,6 @@ وائٹ بورڈ امیج کو محفوظ کرنے میں ناکام۔ %s وائٹ بورڈ کی تصویر %s میں محفوظ ہو گئی۔ - وائٹ بورڈ قلم کا رنگ وائٹ بورڈ ایڈیٹر خودکار ٹیسٹ کا پتہ چلا۔ اگر آپ انسان ہیں تو AnkiDroid سپورٹ سے رابطہ کریں۔ diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml index 47b48ccefdd7..3e335565b0bd 100644 --- a/AnkiDroid/src/main/res/values-uz/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-ve/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index 46ffd997b93d..ee1511f5c158 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -190,7 +190,6 @@ Không thể lưu hình ảnh bảng trắng. %s Hình ảnh bảng trắng được lưu vào %s - Bảng màu bút Trình chỉnh sửa bảng trắng Đã phát hiện kiểm tra tự động. Nếu bạn là con người, hãy liên hệ với bộ phận hỗ trợ AnkiDroid diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml index 28ad01a85d74..9b976904fdf6 100644 --- a/AnkiDroid/src/main/res/values-wo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml @@ -190,7 +190,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-xh/02-strings.xml +++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml index 9ced200f9ad9..c8b9e8c5f5da 100644 --- a/AnkiDroid/src/main/res/values-yue/02-strings.xml +++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml @@ -190,7 +190,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support 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 89578bdd9f2c..29ded3f222d5 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -190,7 +190,6 @@ 保存白板图像失败。 %s 白板图像已保存到 %s - 白板笔颜色 白板编辑器 检测到自动测试。如果您是真人,请联系 AnkiDroid 支持 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 0e4a9655138e..5d5c72414cee 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml @@ -190,7 +190,6 @@ 儲存白板圖像失敗。%s 白板圖像儲存至%s - 白板筆色彩 白板編輯器 已偵測到自動測驗。如果您不是機器人,請聯絡AnkiDroid支援. diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml index ba80ca682342..e0c971192ee7 100644 --- a/AnkiDroid/src/main/res/values-zu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml @@ -194,7 +194,6 @@ Failed to save whiteboard image. %s Whiteboard image saved to %s - Whiteboard pen color Whiteboard editor Detected automated test. If you are a human, contact AnkiDroid support From 1b3ff27e4045dd343def17457d808910c5e3396c Mon Sep 17 00:00:00 2001 From: "sargamgayatri0803@gmail.com" Date: Wed, 22 Jan 2025 17:24:53 +0530 Subject: [PATCH 009/200] don't allow empty name in flag --- .../main/java/com/ichi2/anki/dialogs/FlagAdapter.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/FlagAdapter.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/FlagAdapter.kt index 2861a27a395d..9f8e305964a3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/FlagAdapter.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/FlagAdapter.kt @@ -91,13 +91,18 @@ class FlagAdapter( } holder.saveButton.setOnClickListener { - val updatedTextName = holder.flagNameEdit.text.toString() + val updatedTextName = + holder.flagNameEdit.text + .toString() + .ifEmpty { flagItem.title } holder.flagNameViewLayout.visibility = View.VISIBLE holder.flagNameEditLayout.visibility = View.GONE val updatedFlagItem = flagItem.copy(title = updatedTextName) val updatedDataset = currentList.toMutableList() - lifecycleScope.launch { - flagItem.renameTo(updatedTextName) + if (updatedFlagItem.title != flagItem.title) { + lifecycleScope.launch { + flagItem.renameTo(updatedTextName) + } } updatedFlagItem.isInEditMode = false updatedDataset[position] = updatedFlagItem From 2c2f2bdc33bd6bb2cc00d35c3b65550d4f52a798 Mon Sep 17 00:00:00 2001 From: jainv4156 Date: Wed, 22 Jan 2025 15:44:45 +0530 Subject: [PATCH 010/200] Fix getsize() and getMatrix Depreciation --- .../java/com/ichi2/anki/noteeditor/Toolbar.kt | 24 +++++++++++++++---- .../main/java/com/ichi2/utils/DisplayUtils.kt | 20 ++++++++++++++-- 2 files changed, 38 insertions(+), 6 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/Toolbar.kt b/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/Toolbar.kt index 29ac505d0861..04d7be0be48a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/Toolbar.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/Toolbar.kt @@ -21,9 +21,11 @@ import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas import android.graphics.Color +import android.graphics.Insets import android.graphics.Paint import android.graphics.drawable.BitmapDrawable import android.graphics.drawable.Drawable +import android.os.Build import android.util.AttributeSet import android.util.DisplayMetrics import android.util.TypedValue @@ -33,6 +35,7 @@ import android.view.KeyEvent import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.view.WindowInsets import android.widget.FrameLayout import android.widget.LinearLayout import androidx.annotation.ColorInt @@ -234,10 +237,23 @@ class Toolbar : FrameLayout { private val screenWidth: Int get() { val displayMetrics = DisplayMetrics() - (context as Activity) - .windowManager - .defaultDisplay - .getMetrics(displayMetrics) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + val windowMetrics = + (context as Activity) + .windowManager + .currentWindowMetrics + val insets: Insets = + windowMetrics.getWindowInsets().getInsetsIgnoringVisibility( + WindowInsets.Type.navigationBars() + or WindowInsets.Type.displayCutout(), + ) + displayMetrics.widthPixels = windowMetrics.bounds.width() - (insets.right + insets.left) + } else { + (context as Activity) + .windowManager + .defaultDisplay + .getMetrics(displayMetrics) + } return displayMetrics.widthPixels } diff --git a/AnkiDroid/src/main/java/com/ichi2/utils/DisplayUtils.kt b/AnkiDroid/src/main/java/com/ichi2/utils/DisplayUtils.kt index 6dbf155462c5..692f744e663f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/utils/DisplayUtils.kt +++ b/AnkiDroid/src/main/java/com/ichi2/utils/DisplayUtils.kt @@ -17,8 +17,11 @@ package com.ichi2.utils import android.content.Context +import android.graphics.Insets import android.graphics.Point +import android.os.Build import android.view.Window +import android.view.WindowInsets import android.view.WindowManager import com.ichi2.anki.AnkiDroidApp import kotlin.math.roundToInt @@ -26,9 +29,22 @@ import kotlin.math.roundToInt object DisplayUtils { @Suppress("DEPRECATION") // #9333: defaultDisplay & getSize fun getDisplayDimensions(wm: WindowManager): Point { - val display = wm.defaultDisplay val point = Point() - display.getSize(point) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + val bounds = wm.currentWindowMetrics.bounds + val insets: Insets = + wm.currentWindowMetrics + .getWindowInsets() + .getInsetsIgnoringVisibility( + WindowInsets.Type.navigationBars() + or WindowInsets.Type.displayCutout(), + ) + point.x = bounds.width() - (insets.right + insets.left) + point.y = bounds.height() - (insets.top + insets.bottom) + } else { + val display = wm.defaultDisplay + display.getSize(point) + } return point } From 8b1bed534c2aaed2b7c1b85e307cd85a91aab784 Mon Sep 17 00:00:00 2001 From: Divyanshu Yadav <154064821+Scapesfear@users.noreply.github.com> Date: Fri, 10 Jan 2025 23:44:50 +0530 Subject: [PATCH 011/200] Fix missing auto-scroll feature in RecyclerView when switching to multiselectview and vice versa --- .../main/java/com/ichi2/anki/CardBrowser.kt | 20 +++++++++++++++++++ .../anki/browser/CardBrowserViewModel.kt | 9 +++++++++ .../java/com/ichi2/anki/CardBrowserTest.kt | 17 ++++++++++++++++ 3 files changed, 46 insertions(+) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt index c4047e01be4c..b64235d6edc1 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt @@ -345,6 +345,8 @@ open class CardBrowser : launchCatchingTask { if (viewModel.isInMultiSelectMode) { viewModel.toggleRowSelection(id) + viewModel.saveScrollingState(id) + viewModel.oldCardTopOffset = calculateTopOffset(viewModel.lastSelectedPosition) } else { val cardId = viewModel.queryDataForCardEdit(id) openNoteEditorForCard(cardId) @@ -357,6 +359,8 @@ open class CardBrowser : if (viewModel.isInMultiSelectMode && viewModel.lastSelectedId != null) { viewModel.selectRowsBetween(viewModel.lastSelectedId!!, id) } else { + viewModel.saveScrollingState(id) + viewModel.oldCardTopOffset = calculateTopOffset(viewModel.lastSelectedPosition) viewModel.toggleRowSelection(id) } } @@ -509,6 +513,7 @@ open class CardBrowser : // Due to the ripple on long press, we set padding browserColumnHeadings.updatePaddingRelative(start = 48.dp) multiSelectOnBackPressedCallback.isEnabled = true + autoScrollTo(viewModel.lastSelectedPosition, viewModel.oldCardTopOffset) } else { Timber.d("end multiselect mode") // update adapter to remove check boxes @@ -517,6 +522,7 @@ open class CardBrowser : actionBarTitle.visibility = View.GONE browserColumnHeadings.updatePaddingRelative(start = 0.dp) multiSelectOnBackPressedCallback.isEnabled = false + autoScrollTo(viewModel.lastSelectedPosition, viewModel.oldCardTopOffset) } // reload the actionbar using the multi-select mode actionbar invalidateOptionsMenu() @@ -1865,6 +1871,20 @@ open class CardBrowser : viewModel: CardBrowserViewModel, ): Intent = NoteEditorLauncher.AddNoteFromCardBrowser(viewModel).getIntent(context) } + + private fun calculateTopOffset(cardPosition: Int): Int { + val layoutManager = cardsListView.layoutManager as LinearLayoutManager + val firstVisiblePosition = layoutManager.findFirstVisibleItemPosition() + val view = cardsListView.getChildAt(cardPosition - firstVisiblePosition) + return view?.top ?: 0 + } + + private fun autoScrollTo( + newPosition: Int, + offset: Int, + ) { + (cardsListView.layoutManager as LinearLayoutManager).scrollToPositionWithOffset(newPosition, offset) + } } suspend fun searchForRows( diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt index edde1bc778ae..5a6ca4dd7356 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt @@ -101,6 +101,9 @@ class CardBrowserViewModel( private val manualInit: Boolean = false, ) : ViewModel(), SharedPreferencesProvider by preferences { + var lastSelectedPosition: Int = 0 + var oldCardTopOffset: Int = 0 + // TODO: abstract so we can use a `Context` and `pref_display_filenames_in_browser_key` val showMediaFilenames = sharedPrefs().getBoolean("card_browser_show_media_filenames", false) @@ -1030,6 +1033,12 @@ class CardBrowserViewModel( val error: String, ) : SearchState } + + fun saveScrollingState(id: CardOrNoteId) { + cards.indexOf(id).takeIf { it >= 0 }?.let { position -> + lastSelectedPosition = position + } + } } enum class SaveSearchResult { diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt index 9da90500fec3..cf6721e2a995 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt @@ -936,6 +936,23 @@ class CardBrowserTest : RobolectricTest() { assertThat(cardBrowser.viewModel.rowCount, equalTo(3)) } + @Test + fun checkIfScrollPositionSavedOnLongPress() = + runTest { + val cardBrowser = getBrowserWithNotes(10) + cardBrowser.longClickRowAtPosition(5) + assertThat(cardBrowser.viewModel.lastSelectedPosition, equalTo(5)) + } + + @Test + fun checkIfScrollPositionSavedOnTap() = + runTest { + val cardBrowser = getBrowserWithNotes(10) + cardBrowser.longClickRowAtPosition(1) + cardBrowser.clickRowAtPosition(5) + assertThat(cardBrowser.viewModel.lastSelectedPosition, equalTo(5)) + } + @Test fun `column spinner positions are set if no preferences exist`() = runBlocking { From ad5d9bbd61ea83b134798264ba9cd8f2224d556f Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Sat, 8 Feb 2025 09:07:38 +0000 Subject: [PATCH 012/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-eo/01-core.xml | 16 ++++++++-------- AnkiDroid/src/main/res/values-eo/02-strings.xml | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/AnkiDroid/src/main/res/values-eo/01-core.xml b/AnkiDroid/src/main/res/values-eo/01-core.xml index e90cfac34bd9..0c53a08499cd 100644 --- a/AnkiDroid/src/main/res/values-eo/01-core.xml +++ b/AnkiDroid/src/main/res/values-eo/01-core.xml @@ -54,8 +54,8 @@ Sendi opinion Lerni - Etendi - Maletendi + Elvolvi + Volvi ankoraŭ %d minuto ankoraŭ %d minutoj @@ -72,9 +72,9 @@ Komencu aldoni kartojn\nper la butono “+” - enigu respondon - Montri respondon - Kaŝi respondon + Entajpu respondon + Montri la respondon + Kaŝi la respondon Denove Malfacila Bona @@ -82,7 +82,7 @@ Enporti Malfari Refari - Malfari strekon + Malfari la strekon Movi ĉiujn al kartaro Malkaŝi Renomi kartaron @@ -91,7 +91,7 @@ Redakti priskribon Aldoni Aldoni noton - Samtempigi la konton + Samtempigi konton Kaŝi / forigi Kaŝi karton por tago Kaŝi noton por tago @@ -187,7 +187,7 @@ Android senigis la aplikaĵon AnkiDroid je la permeso %1$s pro longa malaktiveco.\n\nViaj datumoj estas sekuraj kaj povas esti restarigitaj. Ili troviĝas en la dosierujo:\n%2$s\n\nElektu ion el la suba listo por restarigi viajn datumojn. Restarigi el AnkiWeb (konsilinda) Restarigi aliron al dosierujo (konsilinda) - restarigi aliron al dosierujo (altnivela) + Restarigi la aliron al dosierujoj (altnivela) Restarigi el sekurkopio .colpkg (altnivela) Krei novan kolekton La nova kolekto estos forigita el via telefono, se vi malinstalos AnkiDroid diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index 38c05747e1c3..1d88f9b09982 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -45,8 +45,8 @@ --> - Montri tirmenuon - Kaŝi tirmenuon + Malfermi la tirmenuon + Fermi la tirmenuon Kartaro: Kartaro: Tipo: From 07a6717e93de5b1e4bbf7e43929fc346fd62fc9a Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Wed, 5 Feb 2025 15:56:03 +0200 Subject: [PATCH 013/200] Enable full report about empty cards The new report shows the exact same info that desktop currently shows about empty cards. While desktop show the equivalent of a Snackbar when there are no empty cards, we show this in the dialog to avoid a sudden(weird) dismissal of the dialog. --- .../anki/dialogs/EmptyCardsDialogFragment.kt | 107 +++++++++++++++++- .../main/res/layout/dialog_empty_cards.xml | 36 ++++-- AnkiDroid/src/main/res/values/03-dialogs.xml | 2 - 3 files changed, 125 insertions(+), 20 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt index e32579a27ea2..3339139bf9fe 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt @@ -17,12 +17,25 @@ package com.ichi2.anki.dialogs +import android.app.Activity import android.app.Dialog +import android.content.Intent +import android.content.res.Configuration +import android.content.res.Configuration.ORIENTATION_LANDSCAPE +import android.graphics.Insets +import android.os.Build import android.os.Bundle +import android.util.DisplayMetrics import android.view.View +import android.view.WindowInsets.Type.displayCutout +import android.view.WindowInsets.Type.navigationBars +import android.webkit.WebResourceRequest +import android.webkit.WebView +import android.webkit.WebViewClient import android.widget.CheckBox import android.widget.TextView import androidx.appcompat.app.AlertDialog +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.fragment.app.viewModels @@ -30,6 +43,7 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import anki.card_rendering.EmptyCardsReport +import com.ichi2.anki.CardBrowser import com.ichi2.anki.CollectionManager.TR import com.ichi2.anki.DeckPicker import com.ichi2.anki.R @@ -59,10 +73,32 @@ class EmptyCardsDialogFragment : DialogFragment() { get() = dialog?.findViewById(R.id.text) private val emptyCardsResultsContainer: View? get() = dialog?.findViewById(R.id.empty_cards_results_container) - private val emptyCardsResultsMessage: TextView? - get() = dialog?.findViewById(R.id.empty_cards_results_message) + private val emptyReportMessage: TextView? + get() = dialog?.findViewById(R.id.empty_report_label) private val keepNotesWithNoValidCards: CheckBox? get() = dialog?.findViewById(R.id.preserve_notes) + private val reportWebView: WebView? + get() = dialog?.findViewById(R.id.report) + + // TODO handle WebViewClient.onRenderProcessGone() + private val customWebViewClient = + object : WebViewClient() { + override fun shouldOverrideUrlLoading( + view: WebView?, + request: WebResourceRequest?, + ): Boolean { + val searchQuery = request?.url?.toString() + return if (searchQuery != null && searchQuery.startsWith("nid:")) { + val browserSearchIntent = Intent(requireContext(), CardBrowser::class.java) + browserSearchIntent.putExtra("search_query", searchQuery) + browserSearchIntent.putExtra("all_decks", true) + startActivity(browserSearchIntent) + true + } else { + super.shouldOverrideUrlLoading(view, request) + } + } + } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { bindToState() @@ -70,6 +106,7 @@ class EmptyCardsDialogFragment : DialogFragment() { val dialogView = layoutInflater.inflate(R.layout.dialog_empty_cards, null) dialogView.findViewById(R.id.preserve_notes)?.text = TR.emptyCardsPreserveNotesCheckbox() + dialogView.findViewById(R.id.report).webViewClient = customWebViewClient return AlertDialog .Builder(requireContext()) @@ -122,20 +159,26 @@ class EmptyCardsDialogFragment : DialogFragment() { loadingContainer?.isVisible = false val emptyCards = state.emptyCardsReport.emptyCids() if (emptyCards.isEmpty()) { - emptyCardsResultsMessage?.text = TR.emptyCardsNotFound() + emptyReportMessage?.text = TR.emptyCardsNotFound() + emptyReportMessage?.isVisible = true // nothing to delete so also hide the preserve notes check box keepNotesWithNoValidCards?.isVisible = false (dialog as? AlertDialog)?.positiveButton?.text = getString(R.string.dialog_ok) } else { + reportWebView?.updateWebViewHeight() + reportWebView?.loadData( + state.emptyCardsReport.asActionableReport(), + "text/html", + null, + ) keepNotesWithNoValidCards?.isVisible = true - emptyCardsResultsMessage?.text = - getString(R.string.empty_cards_count, emptyCards.size) + emptyReportMessage?.isVisible = false (dialog as? AlertDialog)?.positiveButton?.text = getString(R.string.dialog_positive_delete) + emptyCardsResultsContainer?.isVisible = true } (dialog as? AlertDialog)?.positiveButton?.isEnabled = true - emptyCardsResultsContainer?.isVisible = true } is EmptyCardsSearchFailure -> { @@ -154,6 +197,58 @@ class EmptyCardsDialogFragment : DialogFragment() { } } + /** + * Replaces the anki format [anki:nid:#nid](ex: [anki:nid:234783924354]) with "nid:#id"( + * ex. nid:234783924354) to be used as a query text in [CardBrowser]. + */ + // https://github.com/ankitects/anki/blob/de7a693465ca302e457a4767c7f213c76478f0ee/qt/aqt/emptycards.py#L56-L60 + private fun EmptyCardsReport.asActionableReport(): String { + @Suppress("RegExpRedundantEscape") + return Regex("\\[anki:nid:(\\d+)\\]") + .replace( + report, + "$1", + ) + } + + /** + * The [WebView] doesn't properly fit the allocated space in the dialog so this method manually + * updates the [WebView]'s height to a value that fits, depending on orientation and screen size. + */ + private fun WebView.updateWebViewHeight() { + val currentOrientation = requireContext().resources.configuration.orientation + val targetPercent = if (currentOrientation == ORIENTATION_LANDSCAPE) 0.25 else 0.5 + val screenHeight = + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + val windowMetrics = + (context as Activity) + .windowManager + .currentWindowMetrics + val insets: Insets = + windowMetrics.getWindowInsets().getInsetsIgnoringVisibility( + navigationBars() or displayCutout(), + ) + windowMetrics.bounds.height() - (insets.top + insets.bottom) + } else { + val displayMetrics = DisplayMetrics() + @Suppress("DEPRECATION") + (context as Activity) + .windowManager + .defaultDisplay + .getMetrics(displayMetrics) + displayMetrics.heightPixels + } + val calculatedHeight = (screenHeight * targetPercent).toInt() + (layoutParams as ConstraintLayout.LayoutParams).height = calculatedHeight + layoutParams = layoutParams + requestLayout() + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + reportWebView?.updateWebViewHeight() + } + companion object { const val TAG = "EmptyCardsDialog" } diff --git a/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml b/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml index f41aafb2ce68..8ff232b50028 100644 --- a/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml +++ b/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml @@ -52,30 +52,42 @@ tools:text="Processing..." /> - + + - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" + app:layout_constraintBottom_toTopOf="@+id/preserve_notes"/> - - \ No newline at end of file + tools:text="Keep notes with no valid cards" + android:layout_marginTop="8dp" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintBottom_toBottomOf="parent"/> + + diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml index c5682bb60110..91d59156c62e 100644 --- a/AnkiDroid/src/main/res/values/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values/03-dialogs.xml @@ -114,8 +114,6 @@ Finding empty cards… - Cards to delete: %d - Could not obtain microphone permission. From 36e9c9b5cbacabf39a296efbedcc4f93b88526cc Mon Sep 17 00:00:00 2001 From: Ashish Yadav <48384865+criticalAY@users.noreply.github.com> Date: Thu, 30 Jan 2025 02:54:30 +0530 Subject: [PATCH 014/200] enhancement: improve reposition field dialog --- .../java/com/ichi2/anki/ModelFieldEditor.kt | 103 ++++++++++-------- .../src/main/res/values/17-model-manager.xml | 2 - 2 files changed, 58 insertions(+), 47 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt index 85829becb86a..32c52cfab191 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt @@ -29,6 +29,7 @@ import androidx.appcompat.app.AlertDialog import androidx.fragment.app.DialogFragment import androidx.fragment.app.FragmentManager import com.google.android.material.snackbar.Snackbar +import com.ichi2.anki.CollectionManager.TR import com.ichi2.anki.CollectionManager.withCol import com.ichi2.anki.dialogs.ConfirmationDialog import com.ichi2.anki.dialogs.LocaleSelectionDialog @@ -45,6 +46,8 @@ import com.ichi2.libanki.NotetypeJson import com.ichi2.libanki.exception.ConfirmModSchemaException import com.ichi2.ui.FixedEditText import com.ichi2.utils.customView +import com.ichi2.utils.getInputField +import com.ichi2.utils.input import com.ichi2.utils.negativeButton import com.ichi2.utils.positiveButton import com.ichi2.utils.show @@ -339,56 +342,66 @@ class ModelFieldEditor : } } - /* - * Allows the user to select a number less than the number of fields in the current model to - * reposition the current field to - * Processing time is scales with number of items + /** + * Displays a dialog to allow the user to reposition a field within a list. */ private fun repositionFieldDialog() { - fieldNameInput = FixedEditText(this).apply { focusWithKeyboard() } - fieldNameInput?.let { fieldNameInput -> - fieldNameInput.setRawInputType(InputType.TYPE_CLASS_NUMBER) - AlertDialog.Builder(this).show { - customView(view = fieldNameInput, paddingStart = 64, paddingEnd = 64, paddingTop = 32) - title(text = String.format(resources.getString(R.string.model_field_editor_reposition), 1, fieldsLabels.size)) - positiveButton(R.string.dialog_ok) { - val newPosition = fieldNameInput.text.toString() - val pos: Int = - try { - newPosition.toInt() - } catch (n: NumberFormatException) { - Timber.w(n) - fieldNameInput.error = resources.getString(R.string.toast_out_of_range) - return@positiveButton - } - if (pos < 1 || pos > fieldsLabels.size) { - fieldNameInput.error = resources.getString(R.string.toast_out_of_range) - } else { - // Input is valid, now attempt to modify - try { - getColUnsafe.modSchema() - repositionField(pos - 1) - } catch (e: ConfirmModSchemaException) { - e.log() + /** + * Shows an input dialog for selecting a new position. + * + * @param numberOfTemplates The total number of available positions. + * @param result A lambda function that receives the validated new position as an integer. + */ + fun showDialog( + numberOfTemplates: Int, + result: (Int) -> Unit, + ) { + AlertDialog + .Builder(this) + .show { + positiveButton(R.string.dialog_ok) { + val input = (it as AlertDialog).getInputField() + result(input.text.toString().toInt()) + } + negativeButton(R.string.dialog_cancel) + setMessage(TR.fieldsNewPosition1(numberOfTemplates)) + setView(R.layout.dialog_generic_text_input) + }.input( + prefill = (currentPos + 1).toString(), + inputType = InputType.TYPE_CLASS_NUMBER, + displayKeyboard = true, + waitForPositiveButton = false, + ) { dialog, text: CharSequence -> + val number = text.toString().toIntOrNull() + dialog.positiveButton.isEnabled = number != null && number in 1..numberOfTemplates + } + } - // Handle mod schema confirmation - val c = ConfirmationDialog() - c.setArgs(resources.getString(R.string.full_sync_confirmation)) - val confirm = - Runnable { - try { - getColUnsafe.modSchemaNoCheck() - repositionField(pos - 1) - } catch (e1: JSONException) { - throw RuntimeException(e1) - } - } - c.setConfirm(confirm) - this@ModelFieldEditor.showDialogFragment(c) + // handle repositioning + showDialog(fieldsLabels.size) { newPosition -> + if (newPosition == currentPos + 1) return@showDialog + + Timber.i("Repositioning field from %d to %d", currentPos, newPosition) + try { + getColUnsafe.modSchema() + repositionField(newPosition - 1) + } catch (e: ConfirmModSchemaException) { + e.log() + + // Handle mod schema confirmation + val c = ConfirmationDialog() + c.setArgs(resources.getString(R.string.full_sync_confirmation)) + val confirm = + Runnable { + try { + getColUnsafe.modSchemaNoCheck() + repositionField(newPosition - 1) + } catch (e1: JSONException) { + throw RuntimeException(e1) } } - } - negativeButton(R.string.dialog_cancel) + c.setConfirm(confirm) + this@ModelFieldEditor.showDialogFragment(c) } } } diff --git a/AnkiDroid/src/main/res/values/17-model-manager.xml b/AnkiDroid/src/main/res/values/17-model-manager.xml index 74d003777247..0b79d46a20f5 100644 --- a/AnkiDroid/src/main/res/values/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values/17-model-manager.xml @@ -11,7 +11,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value @@ -46,7 +45,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field From 82af34ace43474e6294aaee68badcb020fc6339f Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Sat, 8 Feb 2025 09:54:58 +0000 Subject: [PATCH 015/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-af/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-am/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-am/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ar/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ar/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-az/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-az/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-be/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-be/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-bg/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-bg/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-bn/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-bn/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ca/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ca/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ckb/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ckb/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-cs/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-cs/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-da/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-da/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-de/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-de/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-el/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-el/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-eo/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-eo/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-et/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-et/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-eu/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-eu/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-fa/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-fa/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-fi/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-fi/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-fil/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-fil/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-fr/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-fr/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-fy/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-fy/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ga/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ga/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-gl/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-gl/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-got/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-got/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-gu/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-gu/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-heb/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-heb/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-hi/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-hi/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-hr/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-hr/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-hu/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-hu/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-hy/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-hy/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ind/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ind/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-is/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-is/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-it/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-it/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-iw/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-iw/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ja/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ja/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-jv/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-jv/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ka/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ka/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-kk/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-kk/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-km/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-km/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-kn/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-kn/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ko/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ko/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ku/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ku/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ky/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ky/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-lt/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-lt/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-lv/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-lv/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-mk/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-mk/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ml/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ml/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-mn/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-mn/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-mr/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-mr/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ms/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ms/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-my/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-my/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-nl/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-nl/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-nn/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-nn/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-no/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-no/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-or/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-or/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-pa/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-pa/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-pl/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-pl/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ro/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ro/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ru/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ru/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sat/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sat/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sc/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sc/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sk/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sk/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sl/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sl/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sq/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sq/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sr/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sr/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ss/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ss/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sv/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sv/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-sw/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-sw/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ta/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ta/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-te/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-te/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-tg/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-tg/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-tgl/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-tgl/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-th/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-th/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ti/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ti/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-tn/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-tn/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-tr/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-tr/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ts/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ts/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-tt/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-tt/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ug/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ug/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-uk/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-uk/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ur/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ur/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-uz/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-uz/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-ve/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-ve/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-vi/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-vi/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-wo/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-wo/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-xh/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-xh/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-yue/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-yue/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml | 2 -- AnkiDroid/src/main/res/values-zu/03-dialogs.xml | 1 - AnkiDroid/src/main/res/values-zu/17-model-manager.xml | 2 -- 188 files changed, 282 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/03-dialogs.xml b/AnkiDroid/src/main/res/values-af/03-dialogs.xml index 94c6f895fb1c..0c89eb14c259 100644 --- a/AnkiDroid/src/main/res/values-af/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-af/03-dialogs.xml @@ -129,7 +129,6 @@ Verskuldig Tans besig om leë kaarte te vind… - Kaarte om uit te vee: %d Kon nie mikrofoon toestemming verkry nie. Kon nie Multimedia-Redakteur oopmaak nie diff --git a/AnkiDroid/src/main/res/values-af/17-model-manager.xml b/AnkiDroid/src/main/res/values-af/17-model-manager.xml index 86e369688099..3e62f4b670d0 100644 --- a/AnkiDroid/src/main/res/values-af/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-af/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-am/03-dialogs.xml b/AnkiDroid/src/main/res/values-am/03-dialogs.xml index 7c0e7747e67b..8fe479b3a949 100644 --- a/AnkiDroid/src/main/res/values-am/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-am/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-am/17-model-manager.xml b/AnkiDroid/src/main/res/values-am/17-model-manager.xml index 2de8c83c458f..a2e49df4809c 100644 --- a/AnkiDroid/src/main/res/values-am/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-am/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml index c5f33d247ba3..a594b212491c 100644 --- a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml @@ -145,7 +145,6 @@ مستحق يجري البحث عن بطاقات فارغة… - بطاقات ستُحذَف: %d تعذر الحصول على إذن الميكروفون. تعذر فتح محرر الوسائط المتعددة diff --git a/AnkiDroid/src/main/res/values-ar/17-model-manager.xml b/AnkiDroid/src/main/res/values-ar/17-model-manager.xml index 92239205a278..9c318846b3c3 100644 --- a/AnkiDroid/src/main/res/values-ar/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ar/17-model-manager.xml @@ -33,7 +33,6 @@ يجب أن تحتوي أنواع الملحوظات على حقل واحد على الأقل عليك إدخال اسم اسم الحقل مستخدم بالفعل - عليك إدخال قيمة صالحة يتوفر %d نوع ملحوظة @@ -66,7 +65,6 @@ تغيير اسم الحقل تعيين تلميح لغة لوحة المفاتيح تغيير موضع الحقل - تغيير موضع الحقل (أدخل قيمة %1$d–%2$d) تذكّر المدخلات الأخيرة عند الإضافة يجري تحديث الحقول فرز حسب هذا الحقل diff --git a/AnkiDroid/src/main/res/values-az/03-dialogs.xml b/AnkiDroid/src/main/res/values-az/03-dialogs.xml index c20b3fc66803..b508ed2b4e15 100644 --- a/AnkiDroid/src/main/res/values-az/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-az/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-az/17-model-manager.xml b/AnkiDroid/src/main/res/values-az/17-model-manager.xml index 01292736d0cd..4a80076d0bd6 100644 --- a/AnkiDroid/src/main/res/values-az/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-az/17-model-manager.xml @@ -33,7 +33,6 @@ Qeyd növlərinin ən az bir sahəsi olmalıdır Ad daxil etməlisiniz Sahə adı artıq istifadədədir - Etibarlı bir dəyər daxil etməlisiniz %d qeyd növü mövcuddur @@ -58,7 +57,6 @@ Sahəni yenidən adlandır Set keyboard language hint Sahənin yerini dəyişdir - Sahənin yerini dəyişdir (%1$d–%2$d arası bir dəyər daxil edin) Remember last input when adding Sahələr yenilənir Bu sahəyə görə sırala diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml index 5e8ddeb28c5c..7f4750087280 100644 --- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml @@ -137,7 +137,6 @@ Да прагляду Пошук пустых картак… - Картак да выдалення: %d Памылка атрымання дазволу на выкарыстанне мікрафона. Памылка адкрыцця рэдактара мультымедыя diff --git a/AnkiDroid/src/main/res/values-be/17-model-manager.xml b/AnkiDroid/src/main/res/values-be/17-model-manager.xml index 0e650ef7535f..5a0b4dd2867a 100644 --- a/AnkiDroid/src/main/res/values-be/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-be/17-model-manager.xml @@ -33,7 +33,6 @@ Тыпы нататак павінны ўтрымліваць хоць адно поле Вы павінны ўвесці назву поля Такая назва поля ўжо існуе - Вы павінны ўвесці карэктнае значэнне Даступны %d тып нататкі @@ -62,7 +61,6 @@ Перайменаваць поле Прызначыць мову падказак клавіятуры Перамясціць поле - Перамясціць поле (увядзіце значэнне %1$d–%2$d) Пры дабаўленні памятаць апошні ўвод Адбываецца абнаўленне палёў Сартаваць па гэтым полі diff --git a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml index 8c4dc7a1ece1..3fa24b5245fa 100644 --- a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml @@ -129,7 +129,6 @@ Край Намиране на празни карти… - Карти за изтриване: %d Разрешението за микрофон не е получено. Не може да отвори редактор на мультимедия diff --git a/AnkiDroid/src/main/res/values-bg/17-model-manager.xml b/AnkiDroid/src/main/res/values-bg/17-model-manager.xml index 9877f5891fd6..55ce8a4507a6 100644 --- a/AnkiDroid/src/main/res/values-bg/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-bg/17-model-manager.xml @@ -33,7 +33,6 @@ Типът на бележката трябва да има поне едно поле Трябва да въведете име Името на полето вече е използвано - Трябва да въведете валидна стойност Наличен е %d тип на бележка @@ -58,7 +57,6 @@ Преименуване на поле Set keyboard language hint Препозициониране на поле - Препозициониране на поле (въведете стойност %1$d-%2$d) Remember last input when adding Актуализиране на полетата Сортиране по това поле diff --git a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml index ca37704d27aa..d475805a357c 100644 --- a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml @@ -129,7 +129,6 @@ Due খালি কার্ড খুঁজছি… - মুছে ফেলার জন্য কার্ড: %d মাইক্রোফোন অনুমতি পাওয়া যায়নি. মাল্টিমিডিয়া সম্পাদক খুলতে ব্যর্থ হয়েছে৷ diff --git a/AnkiDroid/src/main/res/values-bn/17-model-manager.xml b/AnkiDroid/src/main/res/values-bn/17-model-manager.xml index fdb349e6bbfc..875e607ec032 100644 --- a/AnkiDroid/src/main/res/values-bn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-bn/17-model-manager.xml @@ -33,7 +33,6 @@ নোট-যেকোনো টাইপের অন্তত একটি ফিল্ড থাকা জরুরি আপনাকে একটি নাম লিখতে হবে ক্ষেত্রের নাম ইতিমধ্যে ব্যবহার করা হয়েছে - আপনাকে অবশ্যই একটি বৈধ মান লিখতে হবে %d নোটের ধরন উপলব্ধ @@ -58,7 +57,6 @@ ক্ষেত্রের নাম পরিবর্তন করুন কীবোর্ড ভাষার ইঙ্গিত সেট করুন Reposition field - Reposition field (enter a value %1$d–%2$d) যোগ করার সময় শেষ ইনপুট মনে রাখবেন ক্ষেত্র আপডেট করা হচ্ছে এই ক্ষেত্র অনুসারে সাজান diff --git a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml index 1e9844617bb7..0da65e5d0d17 100644 --- a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml @@ -129,7 +129,6 @@ Venciment Trobar targetes buides… - Targetes per eliminar: %d No s\'ha pogut obtenir permís per usar el micròfon. No s\'ha pogut obrir l\'editor multimèdia diff --git a/AnkiDroid/src/main/res/values-ca/17-model-manager.xml b/AnkiDroid/src/main/res/values-ca/17-model-manager.xml index e45c2af4655d..e8c1167937be 100644 --- a/AnkiDroid/src/main/res/values-ca/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ca/17-model-manager.xml @@ -33,7 +33,6 @@ Els tipus de notes han de tenir almenys un camp Heu d\'introduir un nom El nom del camp ja existeix - Heu d\'introduir un valor vàlid %d tipus de notes disponibles @@ -58,7 +57,6 @@ Canviar el nom del camp Estableix consell d\'idioma del teclat Camp de repós - Camp de repós (entri un valor %1$d-%2$d) Recordeu la darrera entrada al afegir Actualitzant els camps Ordena per aquest camp diff --git a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml index 4281f96fab60..a607b061a8a5 100644 --- a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml b/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml index 0665f4635ea9..c37af94ea62f 100644 --- a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml @@ -137,7 +137,6 @@ Ke zkoušení Hledají se prázdné karty… - Karet k odstranění: %d Nelze získat oprávnění k mikrofonu. Nepodařilo se otevřít multimediální editor diff --git a/AnkiDroid/src/main/res/values-cs/17-model-manager.xml b/AnkiDroid/src/main/res/values-cs/17-model-manager.xml index 889e1f39653d..31baf6d625f4 100644 --- a/AnkiDroid/src/main/res/values-cs/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-cs/17-model-manager.xml @@ -33,7 +33,6 @@ Typ poznámky musí mít alespoň jedno pole Musíte zadat název Název pole je již použit - Musíte zadat platnou hodnotu dostupný %d typ poznámky @@ -62,7 +61,6 @@ Přejmenovat pole Nastavit jazyk nápovědy klávesnice Změnit umístění pole - Změnit umístění pole (zadejte hodnotu %1$d–%2$d) Zapamatovat si poslední vstup při přidání Aktualizace polí Seřadit podle tohoto pole diff --git a/AnkiDroid/src/main/res/values-da/03-dialogs.xml b/AnkiDroid/src/main/res/values-da/03-dialogs.xml index ff137be9b1f9..af5b334faf62 100644 --- a/AnkiDroid/src/main/res/values-da/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-da/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finder tomme kort… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-da/17-model-manager.xml b/AnkiDroid/src/main/res/values-da/17-model-manager.xml index 1fd039ee6324..aee4d51cdafd 100644 --- a/AnkiDroid/src/main/res/values-da/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-da/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-de/03-dialogs.xml b/AnkiDroid/src/main/res/values-de/03-dialogs.xml index 6376bc614b72..65212153ec1b 100644 --- a/AnkiDroid/src/main/res/values-de/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-de/03-dialogs.xml @@ -129,7 +129,6 @@ Fällige Leere Karten werden gesucht … - %d zu löschende Karten Zugriffsberechtigung für das Mikrofon konnte nicht erlangt werden. Multimedia-Editor konnte nicht geöffnet werden diff --git a/AnkiDroid/src/main/res/values-de/17-model-manager.xml b/AnkiDroid/src/main/res/values-de/17-model-manager.xml index ffb2e5a0fe5a..e20dcbb958e3 100644 --- a/AnkiDroid/src/main/res/values-de/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-de/17-model-manager.xml @@ -33,7 +33,6 @@ Notizypen müssen mindestens ein Feld haben Sie müssen einen Namen eingeben Feldname bereits verwendet - Sie müssen einen gültigen Wert eingeben %d Notiztyp verfügbar @@ -58,7 +57,6 @@ Feld umbenennen Hinweis zu Tastatursprache festlegen Feld neu positionieren - Feld neu positionieren (Wert von %1$d bis %2$d eingeben) Beim Hinzufügen letzte Eingabe merken Felder werden aktualisiert Nach diesem Feld sortieren diff --git a/AnkiDroid/src/main/res/values-el/03-dialogs.xml b/AnkiDroid/src/main/res/values-el/03-dialogs.xml index 5bc3b0ad568d..30113e36d91b 100644 --- a/AnkiDroid/src/main/res/values-el/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-el/03-dialogs.xml @@ -129,7 +129,6 @@ Due Εύρεση κενών καρτών… - Κάρτες προς διαγραφή: %d Δεν ήταν δυνατή η λήψη άδειας μικροφώνου. Αποτυχία ανοίγματος του επεξεργαστή πολυμέσων diff --git a/AnkiDroid/src/main/res/values-el/17-model-manager.xml b/AnkiDroid/src/main/res/values-el/17-model-manager.xml index 511c519f74b5..8333f9c3f4fa 100644 --- a/AnkiDroid/src/main/res/values-el/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-el/17-model-manager.xml @@ -33,7 +33,6 @@ Οι τύποι σημειώσεων πρέπει να έχουν τουλάχιστον ένα πεδίο Πρέπει να εισαγάγετε ένα όνομα Το όνομα του πεδίου χρησιμοποιείται ήδη - Πρέπει να εισάγετε μια έγκυρη τιμή %d τύπος σημείωσης διαθέσιμος @@ -58,7 +57,6 @@ Μετονομασία πεδίου Ορισμός γλώσσας υπόδειξης πληκτρολογίου Επανατοποθέτηση πεδίου - Επανατοποθέτηση πεδίου (εισάγετε μια τιμή %1$d–%2$d) Απομνημόνευση τελευταίας καταχώρησης κατά την προσθήκη Ενημέρωση πεδίων Ταξινόμηση κατά αυτό το πεδίο diff --git a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml index 3d618662021a..974ed4590815 100644 --- a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml @@ -129,7 +129,6 @@ Lernendaj Serĉado de malplenaj kartoj… - Kartoj por forigi: %d Ne povis akiri permeson al la mikrofono. Fiaskis malfermi redaktilon de plurmedioj diff --git a/AnkiDroid/src/main/res/values-eo/17-model-manager.xml b/AnkiDroid/src/main/res/values-eo/17-model-manager.xml index e955ce79a083..f5d563702c27 100644 --- a/AnkiDroid/src/main/res/values-eo/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-eo/17-model-manager.xml @@ -33,7 +33,6 @@ Nototipoj devas havi almenaŭ unu kampon Vi devas enigi nomon Kamponomo estas jam uzata - Vi devas enigi validan valoron %d nototipo estas havebla @@ -58,7 +57,6 @@ Alinomi kampon Agordi lingvon de klavaraj sugestoj Repozicii kampon - Repozicii kampon (enigi valoron de %1$d ĝis %2$d) Memori la antaŭan enigon je aldoni Ĝisdatigado de kampoj Ordigi laŭ tiu kampo 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 74596afc84a7..9c9663ecc9e6 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml @@ -129,7 +129,6 @@ Programadas Buscando tarjetas vacías… - Tarjetas a eliminar: %d No se pudo obtener el permiso del micrófono. Error al abrir el Editor Multimedia diff --git a/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml b/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml index be656ce967ed..f11343bf38f4 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml @@ -33,7 +33,6 @@ Los tipos de nota deben tener por lo menos un campo Hay que introducir un nombre Nombre de campo ya utilizado - Hay que introducir un valor válido %d tipo de nota disponible @@ -58,7 +57,6 @@ Renombrar campo Establecer pista de idioma del teclado Campo de reposicionamiento - Campo de reposicionamiento (ingresar un valor %1$d-%2$d) Recordar la última entrada al agregar Actualizando campos Ordenar por este campo 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 bdb3d88b7b62..5bc86185aa1a 100644 --- a/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml @@ -129,7 +129,6 @@ Pendientes Buscando tarjetas vacías… - Tarjetas a eliminar: %d No se pudo obtener el permiso del micrófono. Error al abrir el Editor Multimedia diff --git a/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml b/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml index 2a1794b85b9c..c256f16673c1 100644 --- a/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml @@ -33,7 +33,6 @@ Los tipos de nota deben tener por lo menos un campo Hay que introducir un nombre Nombre de campo ya utilizado - Hay que introducir un valor válido %d tipo de nota disponible @@ -58,7 +57,6 @@ Renombrar campo Establecer pista de idioma del teclado Campo de reposición - Campo de reposición (introducir un valor %1$d-%2$d) Recordar la última entrada al agregar Actualizando campos Ordenar por este campo diff --git a/AnkiDroid/src/main/res/values-et/03-dialogs.xml b/AnkiDroid/src/main/res/values-et/03-dialogs.xml index 7bd6bd5c59e1..b28e12978c2d 100644 --- a/AnkiDroid/src/main/res/values-et/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-et/03-dialogs.xml @@ -129,7 +129,6 @@ Tähtaeg Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-et/17-model-manager.xml b/AnkiDroid/src/main/res/values-et/17-model-manager.xml index 00b2a9a4d81c..50fe144462b5 100644 --- a/AnkiDroid/src/main/res/values-et/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-et/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field Sa pead sisestama nime Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Nimeta ümber väli Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml index 265e9df39d22..4ea0692d45c2 100644 --- a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml @@ -129,7 +129,6 @@ Epemuga Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-eu/17-model-manager.xml b/AnkiDroid/src/main/res/values-eu/17-model-manager.xml index 2b6c9a3e623d..786269c01d40 100644 --- a/AnkiDroid/src/main/res/values-eu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-eu/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field Izen bat sartu behar duzu Eremu izena dagoeneko erabilia izan da - Baliodun balio bat sartu behar duzu %d ohar mota eskuragarri @@ -58,7 +57,6 @@ Berrizendatu eremua Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Eremuak eguneratzen Sort by this field diff --git a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml index ecb16e09b739..b5bd877d7848 100644 --- a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml @@ -129,7 +129,6 @@ موعد در حال پیدا کردن کارت های خالی… - کارتها برای اینکه حذف شوند: %d دسترسی به میکروفون به آنکی‌دروید داده نشده است. باز کردن ویرایشگر رسانه انجام نشد diff --git a/AnkiDroid/src/main/res/values-fa/17-model-manager.xml b/AnkiDroid/src/main/res/values-fa/17-model-manager.xml index 2339149e2430..d3c1459c5f76 100644 --- a/AnkiDroid/src/main/res/values-fa/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fa/17-model-manager.xml @@ -33,7 +33,6 @@ نوع یادداشت حداقل باید یک فیلد داشته باشد باید نام را وارد کنید نام فیلد قبلا استفاده شده است - شما باید مقدار معتبرى وارد کنید %d نوع یادداشت دردسترس است @@ -58,7 +57,6 @@ تغییر نام فیلد راهنمایی زبان کیبورد را تنظیم کن تغییر مکان فیلد - مکان فیلد(مقدار %1$d-%2$d را وارد کنید) ذخیرۀ آخرین متن ورودی هنگام افزودن کارت به روزرسانی فیلدها مرتب کردن بر اساس این فیلد diff --git a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml index b1ed56c7dee7..5d8ab414f459 100644 --- a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml @@ -129,7 +129,6 @@ Erääntyy Etsitään tyhjiä kortteja… - Poistettavat kortit: %d Mikrofonin käyttöoikeutta ei myönnetty. Multimediaeditorin avaaminen ei onnistunut diff --git a/AnkiDroid/src/main/res/values-fi/17-model-manager.xml b/AnkiDroid/src/main/res/values-fi/17-model-manager.xml index 09ef4d6fd49a..a27752aa9775 100644 --- a/AnkiDroid/src/main/res/values-fi/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fi/17-model-manager.xml @@ -33,7 +33,6 @@ Malleissa on oltava vähintään yksi kenttä Sinun tulee syöttää nimi Kentän nimi on jo käytössä - Anna kelvollinen arvo %d malli saatavilla @@ -58,7 +57,6 @@ Uudelleennimeä kenttä Aseta näppäimistön kielen vihje Uudelleensijoita kenttä - Uudelleensijoita kenttä (syötä arvo %1$d-%2$d) Muista aiempi syöte lisättäessä Päivitetään kenttiä Järjestä tämän kentän mukaan diff --git a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml index 208b537644c3..ff6e1b109920 100644 --- a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml @@ -130,7 +130,6 @@ Mga file na may di-wastong pag-encode:%d Nakatakda Paghahanap ng mga walang laman na kard… - Mga kard na tatanggalin:%d Nabigong makakuha ng permiso na gamitin ang mikropono. Bigong buksan ang Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-fil/17-model-manager.xml b/AnkiDroid/src/main/res/values-fil/17-model-manager.xml index de417b5843ce..5de94739c64e 100644 --- a/AnkiDroid/src/main/res/values-fil/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fil/17-model-manager.xml @@ -33,7 +33,6 @@ Ang mga uri ng tala ay dapat magkaroon ng hindi bababa sa isang larangan Dapat kang magpasok ng pangalan Ginamit na ang pangalan ng patlang - Dapat kang magpasok ng wastong halaga %d uri ng tala na magagamit @@ -58,7 +57,6 @@ Palitan ang pangalan ng patlang I-set ang hint ng wika ng keyboard Reposition field - Reposition field (magpasok ng halaga%1$d-%2$d) Tandaan ang huling input tuwing nagdaragdag Ina-update ang mga patlang Ayusin ayon sa patlang na ito diff --git a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml index 645a90564d0d..67f2154f5926 100644 --- a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml @@ -129,7 +129,6 @@ À faire Recherche de cartes vides en cours… - Cartes à supprimer : %d Impossible d\'obtenir l\'autorisation du micro. Impossible d’ouvrir l’éditeur multimédia diff --git a/AnkiDroid/src/main/res/values-fr/17-model-manager.xml b/AnkiDroid/src/main/res/values-fr/17-model-manager.xml index 642801af87ad..c5f01e7cb2d8 100644 --- a/AnkiDroid/src/main/res/values-fr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fr/17-model-manager.xml @@ -33,7 +33,6 @@ Les types de note doivent avoir au moins un champ Vous devez entrer un nom Le nom du champ est déjà utilisé - Vous devez entrer une valeur valide %d type de note disponible @@ -58,7 +57,6 @@ Renommer le champ Définir la suggestion de langue du clavier Repositionner le champ - Repositionner le champ (entrez une valeur %1$d–%2$d) Se souvenir de la dernière entrée lors de l\'ajout Mise à jour des champs Trier par ce champ diff --git a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml index e9fd422603d8..5852ca3049a5 100644 --- a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-fy/17-model-manager.xml b/AnkiDroid/src/main/res/values-fy/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-fy/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fy/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml index bba78de7c834..058ac7a0ed20 100644 --- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml @@ -141,7 +141,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ga/17-model-manager.xml b/AnkiDroid/src/main/res/values-ga/17-model-manager.xml index 946be5c04cdf..07ad00e41c0a 100644 --- a/AnkiDroid/src/main/res/values-ga/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ga/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -64,7 +63,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml index 1911b5f4d406..6ea85f0bef8d 100644 --- a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml @@ -129,7 +129,6 @@ Pendentes Buscando cartóns baleiros… - Cartóns a eliminar: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-gl/17-model-manager.xml b/AnkiDroid/src/main/res/values-gl/17-model-manager.xml index 1dc1aa6b1f2d..ecb1b289a3b5 100644 --- a/AnkiDroid/src/main/res/values-gl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-gl/17-model-manager.xml @@ -33,7 +33,6 @@ Os tipos de notas deben ter polo menos un campo Tes de inserir un nome O nome do campo xa está en uso - Tes de inserir un valor válido %d tipo de nota dispoñible @@ -58,7 +57,6 @@ Renomear o campo Set keyboard language hint Campo de reposición - Campo de reposición (insire un valor entre %1$d-%2$d) Remember last input when adding Actualizando campos Ordenar por este campo diff --git a/AnkiDroid/src/main/res/values-got/03-dialogs.xml b/AnkiDroid/src/main/res/values-got/03-dialogs.xml index 365e2e12e80e..2d97a595cb90 100644 --- a/AnkiDroid/src/main/res/values-got/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-got/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-got/17-model-manager.xml b/AnkiDroid/src/main/res/values-got/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-got/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-got/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml index 7a9a8e56baae..8edc3602bf1e 100644 --- a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml @@ -129,7 +129,6 @@ બાકી ખાલી કાર્ડ શોધી રહ્યાં છીએ… - કાઢી નાખવાના કાર્ડ્સ: %d માઇક્રોફોનની પરવાનગી મેળવી શકાઈ નથી. મલ્ટીમીડિયા એડિટર ખોલવામાં નિષ્ફળ diff --git a/AnkiDroid/src/main/res/values-gu/17-model-manager.xml b/AnkiDroid/src/main/res/values-gu/17-model-manager.xml index fc31b74a5dbf..487d308dbc96 100644 --- a/AnkiDroid/src/main/res/values-gu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-gu/17-model-manager.xml @@ -33,7 +33,6 @@ નોંધના પ્રકારોમાં ઓછામાં ઓછું એક ફીલ્ડ હોવું આવશ્યક છે તમારે નામ દાખલ કરવું આવશ્યક છે ક્ષેત્રનું નામ પહેલેથી વપરાયેલ છે - તમારે માન્ય મૂલ્ય દાખલ કરવું આવશ્યક છે %d નોંધ પ્રકાર ઉપલબ્ધ છે @@ -58,7 +57,6 @@ ક્ષેત્રનું નામ બદલો કીબોર્ડ ભાષા સંકેત સેટ કરો રિપોઝિશન ફીલ્ડ - રિપોઝિશન ફીલ્ડ (મૂલ્ય %1$d–%2$d દાખલ કરો) ઉમેરતી વખતે છેલ્લું ઇનપુટ યાદ રાખો ફીલ્ડ અપડેટ કરી રહ્યું છે આ ક્ષેત્ર દ્વારા સૉર્ટ કરો diff --git a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml index b24afc189478..85c3c1f44e95 100644 --- a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml @@ -138,7 +138,6 @@ מיועד מתבצע איתור כרטיסים ריקים… - כרטיסים למחיקה: %d לא מצליח לקבל הרשאת מיקרופון נכשל בפתיחת עורך מדיה. diff --git a/AnkiDroid/src/main/res/values-heb/17-model-manager.xml b/AnkiDroid/src/main/res/values-heb/17-model-manager.xml index cb98c01ea704..19458f765e99 100644 --- a/AnkiDroid/src/main/res/values-heb/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-heb/17-model-manager.xml @@ -33,7 +33,6 @@ סוגי פתקים צריכים לפחות תחום אחד עליך להזין שם שם זה כבר נמצא בשימוש על ידי שדה אחר - עליך להקליד ערך תקף %dסוג הערה זמין @@ -62,7 +61,6 @@ שינוי שם שדה הגדר שפת המקלדת לרמז שינוי מיקום שדה - שינוי מיקום שדה (נא להקליד ערך %1$d–%2$d) זכור קלט אחרון בעת ​​הוספה השדות מעודכנים מיין לפי שדה diff --git a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml index 16d79c09dbda..d3cf0d918833 100644 --- a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml @@ -129,7 +129,6 @@ बाकी रिक्त कार्ड ढूंढ रहा है.. । - कार्ड हटाने के लिए: %d माइक्रोफ़ोन अनुमति प्राप्त नहीं कर सका। मल्टीमीडिया संपादक खोलने में विफल diff --git a/AnkiDroid/src/main/res/values-hi/17-model-manager.xml b/AnkiDroid/src/main/res/values-hi/17-model-manager.xml index be6037e3798e..9f01712ab164 100644 --- a/AnkiDroid/src/main/res/values-hi/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hi/17-model-manager.xml @@ -33,7 +33,6 @@ नोट प्रकार में कम से कम एक फ़ील्ड होना चाहिए। आपको एक नाम दर्ज करना होगा फ़ील्ड का नाम पहले से उपयोग में है - आपको एक मान्य मूल्य दर्ज करना होगा %d नोट प्रकार उपलब्ध @@ -58,7 +57,6 @@ फ़ील्ड का नाम बदलें कीबोर्ड भाषा संकेत सेट करें फ़ील्ड का स्थान बदलें - फ़ील्ड का स्थान बदलें (%1$d-%2$d के बीच का मूल्य दर्ज करें) जोड़ते समय अंतिम इनपुट याद रखें फ़ील्ड अद्यतित हो रहे हैं इस फ़ील्ड के अनुसार क्रम में रखें diff --git a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml index 999a58f56e02..f6ba86ffc842 100644 --- a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml @@ -133,7 +133,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-hr/17-model-manager.xml b/AnkiDroid/src/main/res/values-hr/17-model-manager.xml index 4f16a0f51459..ed29308a2f68 100644 --- a/AnkiDroid/src/main/res/values-hr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hr/17-model-manager.xml @@ -33,7 +33,6 @@ Vrste bilješki moraju imati barem jedno polje Morate navesti naziv Naziv polja već se koristi - Morate unijeti valjanu vrijednost %d vrsta bilješki dostupna @@ -60,7 +59,6 @@ Preimenuj polje Set keyboard language hint Premjesti polje - Premjesti polje (unesite vrijednost %1$d–%2$d) Remember last input when adding Ažuriranje polja Sortiraj po ovom polju diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml index 01137ba75edf..52bdd125a683 100644 --- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml @@ -129,7 +129,6 @@ Esedékes Üres kártyák keresése… - %d darab törlendő kártya Nem sikerült mikrofon engedélyt szerezni. A Multimédia Szerkesztő megnyitása sikertelen diff --git a/AnkiDroid/src/main/res/values-hu/17-model-manager.xml b/AnkiDroid/src/main/res/values-hu/17-model-manager.xml index 35b4c29ddc3b..395cb2e0c203 100644 --- a/AnkiDroid/src/main/res/values-hu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hu/17-model-manager.xml @@ -33,7 +33,6 @@ A jegyzetfajtáknak legalább egy mezőt kell tartalmazniuk Meg kell adnod egy nevet Már használt mezőnév - Meg kell adnod egy érvényes értéket %d féle jegyzettípus @@ -58,7 +57,6 @@ Mező átnevezése Billentyűzet nyelvi javaslat beállítás Áthelyezési mező - Áthelyezési mező (írj be egy értéket: %1$d–%2$d) A beviteli érték megjegyzése hozzáadáskor Mezők frissítése Aktuális mező szerinti rendezés diff --git a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml index 254bb9a3981c..1f6fd67485e7 100644 --- a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-hy/17-model-manager.xml b/AnkiDroid/src/main/res/values-hy/17-model-manager.xml index d1f2855bbed7..a29697f32409 100644 --- a/AnkiDroid/src/main/res/values-hy/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hy/17-model-manager.xml @@ -33,7 +33,6 @@ Տեսակը պետք է պարունակի գոնե մեկ դաշտ Դուք պետք է մուտքագրեք անվանում Դաշտի անունը արդեն օգտագործվել է - Պետք է մուտքագրել վավեր արժեք %d տեսակ է հասանելի @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml index bedba5e41442..1aa843ac4173 100644 --- a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml @@ -125,7 +125,6 @@ Jatuh tempo Mencari kartu kosong… - Kartu yang akan dihapus: %d Tidak mendapat izin mikrofon Gagal membuka Editor Multimedia diff --git a/AnkiDroid/src/main/res/values-ind/17-model-manager.xml b/AnkiDroid/src/main/res/values-ind/17-model-manager.xml index 76cfca540cc4..a6dc3d24f7bd 100644 --- a/AnkiDroid/src/main/res/values-ind/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ind/17-model-manager.xml @@ -33,7 +33,6 @@ Tipe catatan harus memiliki setidaknya satu kolom Kamu harus memasukkan nama Nama kolom sudah digunakan - Kamu harus memasukkan nilai yang valid %d tipe catatan tersedia @@ -56,7 +55,6 @@ Ubah nama kolom Atur petunjuk bahasa papan tik Pindah posisi bidang - Pindah posisi bidang (masukkan nilai %1$d-%2$d) Ingat masukan terakhir saat menambahkan Memperbarui kolom Urutkan menurut kolom ini diff --git a/AnkiDroid/src/main/res/values-is/03-dialogs.xml b/AnkiDroid/src/main/res/values-is/03-dialogs.xml index 2716e35a5122..83030dbf6531 100644 --- a/AnkiDroid/src/main/res/values-is/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-is/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-is/17-model-manager.xml b/AnkiDroid/src/main/res/values-is/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-is/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-is/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-it/03-dialogs.xml b/AnkiDroid/src/main/res/values-it/03-dialogs.xml index 227fe11db49a..c7f26154d25c 100644 --- a/AnkiDroid/src/main/res/values-it/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-it/03-dialogs.xml @@ -129,7 +129,6 @@ Ripasso Cerco carte vuote… - Carte de eliminare: %d Impossibile ottenere il permesso del microfono. Apertura dell\'editore multimediale fallita diff --git a/AnkiDroid/src/main/res/values-it/17-model-manager.xml b/AnkiDroid/src/main/res/values-it/17-model-manager.xml index aba7dd4fda59..16e5d8076b74 100644 --- a/AnkiDroid/src/main/res/values-it/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-it/17-model-manager.xml @@ -33,7 +33,6 @@ I tipi di nota devono avere almeno un campo Devi inserire un nome Nome di campo già utilizzato - Devi immettere un valore valido %d tipo di nota disponibile @@ -58,7 +57,6 @@ Rinomina il campo Imposta suggerimento lingua tastiera Riposiziona il campo - Riposiziona il campo (immetti un valore %1$d –%2$d) Ricorda l\'ultimo input quando si aggiunge Aggiornamento dei campi Ordina per questo campo diff --git a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml index b24afc189478..85c3c1f44e95 100644 --- a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml @@ -138,7 +138,6 @@ מיועד מתבצע איתור כרטיסים ריקים… - כרטיסים למחיקה: %d לא מצליח לקבל הרשאת מיקרופון נכשל בפתיחת עורך מדיה. diff --git a/AnkiDroid/src/main/res/values-iw/17-model-manager.xml b/AnkiDroid/src/main/res/values-iw/17-model-manager.xml index cb98c01ea704..19458f765e99 100644 --- a/AnkiDroid/src/main/res/values-iw/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-iw/17-model-manager.xml @@ -33,7 +33,6 @@ סוגי פתקים צריכים לפחות תחום אחד עליך להזין שם שם זה כבר נמצא בשימוש על ידי שדה אחר - עליך להקליד ערך תקף %dסוג הערה זמין @@ -62,7 +61,6 @@ שינוי שם שדה הגדר שפת המקלדת לרמז שינוי מיקום שדה - שינוי מיקום שדה (נא להקליד ערך %1$d–%2$d) זכור קלט אחרון בעת ​​הוספה השדות מעודכנים מיין לפי שדה diff --git a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml index 94a3a930fad1..c94947a9b15c 100644 --- a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml @@ -125,7 +125,6 @@ 期日到来済 白紙カード(表側に何も表示されないカード)がないか確認しています… - 白紙カードが%d枚見つかりました。削除しますか? マイクの権限を取得できませんでした。 マルチメディアエディタを開けませんでした diff --git a/AnkiDroid/src/main/res/values-ja/17-model-manager.xml b/AnkiDroid/src/main/res/values-ja/17-model-manager.xml index e71ab77c4745..e81c69afade7 100644 --- a/AnkiDroid/src/main/res/values-ja/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ja/17-model-manager.xml @@ -33,7 +33,6 @@ ノートタイプにはフィールドが少なくとも1つ必要です 名前を入力してください そのフィールド名はすでに使用されています - 無効な値です %d種類のノートタイプ @@ -56,7 +55,6 @@ 名前を変更 キーボード言語を設定 配置順序を変更 - 何番目にこのフィールドを配置しますか? (%1$d~%2$d) ノート連続追加時に直前の入力内容を保持 フィールドを更新 ブラウザでのソートフィールド(見出し・並べ替え用項目)に指定 diff --git a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml index ac47d28e9b57..4161bf4b46ec 100644 --- a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-jv/17-model-manager.xml b/AnkiDroid/src/main/res/values-jv/17-model-manager.xml index c776f880d5b2..5fa571a5e4a9 100644 --- a/AnkiDroid/src/main/res/values-jv/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-jv/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml index c3c8221935a7..8c5ad4b13ae5 100644 --- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml @@ -129,7 +129,6 @@ სასწავლო იძებნება ცარიელი ბარათები… - წასაშლელი ბარათი: %d ვერ მოიპოვა მიკროფონზე წვდომის ნებართვა. ვერ გაიხსნა მულტიმედია-რედაქტორი diff --git a/AnkiDroid/src/main/res/values-ka/17-model-manager.xml b/AnkiDroid/src/main/res/values-ka/17-model-manager.xml index 92492ac21293..370be12e8281 100644 --- a/AnkiDroid/src/main/res/values-ka/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ka/17-model-manager.xml @@ -33,7 +33,6 @@ შენიშვნის ტიპს უნდა ჰქონდეს ერთი ველი მაინც უნდა შეიყვანოთ სახელი ველის სახელი უკვე გამოყენებულია - გთხოვთ, შეიყვანოთ მოქმედი რიცხვი ხელმისაწვდომია %d შენიშვნის ტიპი @@ -58,7 +57,6 @@ ველის სახელის შეცვლა კლავიატურის ენის მინიშნების დაყენება ველის გადაადგილება - ველის გადაადგილება (შეიყვანეთ რიცხვი %1$d–%2$d) დამატებისას ბოლოს შეყვანილის დამახსოვრება ველების განახლება ამ ველის მიხედვით დახარისხება diff --git a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml index d51a69535b7a..314a0ac4587f 100644 --- a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-kk/17-model-manager.xml b/AnkiDroid/src/main/res/values-kk/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-kk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-kk/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-km/03-dialogs.xml b/AnkiDroid/src/main/res/values-km/03-dialogs.xml index c2ea270dcdd9..8d8bbf691e8e 100644 --- a/AnkiDroid/src/main/res/values-km/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-km/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-km/17-model-manager.xml b/AnkiDroid/src/main/res/values-km/17-model-manager.xml index c776f880d5b2..5fa571a5e4a9 100644 --- a/AnkiDroid/src/main/res/values-km/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-km/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml index c09bfa8d6370..25dfc5ca2650 100644 --- a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml @@ -129,7 +129,6 @@ ಕಾರಣ ಖಾಲಿ ಕಾರ್ಡ್‌ಗಳಿಗಾಗಿ ಹುಡುಕಲಾಗುತ್ತಿದೆ… - ಅಳಿಸಲು ಕಾರ್ಡ್‌ಗಳು: %d ಮೈಕ್ರೊಫೋನ್ ಅನುಮತಿಯನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ಮಲ್ಟಿಮೀಡಿಯಾ ಸಂಪಾದಕವನ್ನು ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ diff --git a/AnkiDroid/src/main/res/values-kn/17-model-manager.xml b/AnkiDroid/src/main/res/values-kn/17-model-manager.xml index b5573785d5bf..935c8d668556 100644 --- a/AnkiDroid/src/main/res/values-kn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-kn/17-model-manager.xml @@ -33,7 +33,6 @@ ಟಿಪ್ಪಣಿ ಪ್ರಕಾರಗಳು ಕನಿಷ್ಠ ಒಂದು ಕ್ಷೇತ್ರವನ್ನು ಹೊಂದಿರಬೇಕು ನೀವು ಹೆಸರನ್ನು ನಮೂದಿಸಬೇಕು ಕ್ಷೇತ್ರದ ಹೆಸರನ್ನು ಈಗಾಗಲೇ ಬಳಸಲಾಗಿದೆ - ನೀವು ಮಾನ್ಯವಾದ ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಬೇಕು %d ಟಿಪ್ಪಣಿ ಪ್ರಕಾರ ಲಭ್ಯವಿದೆ @@ -58,7 +57,6 @@ ಕ್ಷೇತ್ರವನ್ನು ಮರುಹೆಸರಿಸಿ ಕೀಬೋರ್ಡ್ ಭಾಷೆಯ ಸುಳಿವನ್ನು ಹೊಂದಿಸಿ ಮರುಸ್ಥಾಪನೆ ಕ್ಷೇತ್ರ - ಮರುಸ್ಥಾನ ಕ್ಷೇತ್ರ (ಮೌಲ್ಯವನ್ನು ನಮೂದಿಸಿ %1$d–%2$d) ಸೇರಿಸುವಾಗ ಕೊನೆಯ ಇನ್‌ಪುಟ್ ಅನ್ನು ನೆನಪಿಡಿ ಕ್ಷೇತ್ರಗಳನ್ನು ನವೀಕರಿಸಲಾಗುತ್ತಿದೆ ಈ ಕ್ಷೇತ್ರದಿಂದ ವಿಂಗಡಿಸಿ diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml index d2e057739ac0..bd49f3de78c4 100644 --- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml @@ -125,7 +125,6 @@ 예정 빈 카드를 찾는 중… - 삭제할 카드: %d 마이크 사용 권한을 얻을 수 없습니다. 멀티미디어 편집기를 열기 실패 diff --git a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml index 0edc5758e8d5..7782d82cb735 100644 --- a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml @@ -33,7 +33,6 @@ 노트 유형은 최소한 하나의 필드가 필요합니다. 이름을 입력하셔야 합니다. 필드 이름이 이미 사용 중 입니다. - 올바른 값을 입력해야만 합니다 %d 노트 유형 사용 가능 @@ -56,7 +55,6 @@ 필드 이름 변경 키보드 언어 힌트 설정 필드 재배치 - 필드 재배치 (%1$d–%2$d 값을 입력하세요) 추가할 때 마지막 입력을 기억하기 필드 업데이트 중 이 필드로 정렬 diff --git a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml index 4281f96fab60..a607b061a8a5 100644 --- a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ku/17-model-manager.xml b/AnkiDroid/src/main/res/values-ku/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ku/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ku/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml index 717ac612a528..a8566f1fa26f 100644 --- a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ky/17-model-manager.xml b/AnkiDroid/src/main/res/values-ky/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ky/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ky/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml index 7cf228e6d346..49909e94edaa 100644 --- a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml @@ -137,7 +137,6 @@ Numatytos Ieškomos tuščios kortelės… - Trinti paruoštos kortelės: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-lt/17-model-manager.xml b/AnkiDroid/src/main/res/values-lt/17-model-manager.xml index 725b45a607ba..3c28a543476a 100644 --- a/AnkiDroid/src/main/res/values-lt/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-lt/17-model-manager.xml @@ -33,7 +33,6 @@ Užrašų tipai privalo turėti bent po vieną laukelį Turite įvesti pavadinimą Toks laukelio vardas jau naudojamas - Turite įvesti galiojančią reikšmę Yra %d užrašo tipas @@ -62,7 +61,6 @@ Pervardinti laukelį Set keyboard language hint Keisti laukelio vietą - Keisti laukelio vietą (įveskite reikšmę %1$d–%2$d) Remember last input when adding Atnaujinami laukeliai Rūšiuoti pagal šį lauką diff --git a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml index aa9f69be8217..3b7e179f851d 100644 --- a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml @@ -133,7 +133,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-lv/17-model-manager.xml b/AnkiDroid/src/main/res/values-lv/17-model-manager.xml index 7208d19d8f70..0d282d0d0d5f 100644 --- a/AnkiDroid/src/main/res/values-lv/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-lv/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -60,7 +59,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml index 564e2ad30c83..fe11400f58d9 100644 --- a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml @@ -129,7 +129,6 @@ Доспеано Наоѓање празни картички… - Картички за бришење: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-mk/17-model-manager.xml b/AnkiDroid/src/main/res/values-mk/17-model-manager.xml index 69a3dc8f964a..433093302695 100644 --- a/AnkiDroid/src/main/res/values-mk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-mk/17-model-manager.xml @@ -33,7 +33,6 @@ Типови на белешки мора да имаат најмалку едно поле Мора да внесете име Името на полето веќе се користи - Мора да внесете валидна вредност %d note type available @@ -58,7 +57,6 @@ Преименувај го полето Set keyboard language hint Поле за поместување - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Ажурирање на полињата Подреди според ова поле diff --git a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml index 4bd6310b9274..be36dfb6feb8 100644 --- a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml @@ -129,7 +129,6 @@ കാരണം ശൂന്യമായ കാർഡുകൾ കണ്ടെത്തുന്നു… - ഇല്ലാതാക്കാനുള്ള കാർഡുകൾ: %d മൈക്രോഫോൺ അനുമതി നേടാനായില്ല. മൾട്ടിമീഡിയ എഡിറ്റർ തുറക്കുന്നതിൽ പരാജയപ്പെട്ടു diff --git a/AnkiDroid/src/main/res/values-ml/17-model-manager.xml b/AnkiDroid/src/main/res/values-ml/17-model-manager.xml index e2ede57e1b3d..75dee61b85d3 100644 --- a/AnkiDroid/src/main/res/values-ml/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ml/17-model-manager.xml @@ -33,7 +33,6 @@ നോട്ട് തരങ്ങൾക്ക് കുറഞ്ഞത് ഒരു ഫീൽഡെങ്കിലും ഉണ്ടായിരിക്കണം നിങ്ങൾ ഒരു പേര് നൽകണം ഫീൽഡ് പേര് ഇതിനകം ഉപയോഗിച്ചു - നിങ്ങൾ ഒരു സാധുവായ മൂല്യം നൽകണം %d കുറിപ്പ് തരം ലഭ്യമാണ് @@ -58,7 +57,6 @@ ഫീൽഡിൻ്റെ പേര് മാറ്റുക കീബോർഡ് ഭാഷാ സൂചന സജ്ജമാക്കുക Reposition field - Reposition field (enter a value %1$d–%2$d) ചേർക്കുമ്പോൾ അവസാന ഇൻപുട്ട് ഓർക്കുക ഫീൽഡുകൾ അപ്ഡേറ്റ് ചെയ്യുന്നു ഈ ഫീൽഡ് അനുസരിച്ച് അടുക്കുക diff --git a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-mn/17-model-manager.xml b/AnkiDroid/src/main/res/values-mn/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-mn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-mn/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml index 2752efaa3250..acc18c9d0344 100644 --- a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml @@ -129,7 +129,6 @@ देय रिक्त कार्ड शोधत आहे … - हटविण्यासाठी कार्डे:%d मायक्रोफोन परवानगी प्राप्त करू शकलो नाही. मल्टीमीडिया संपादक उघडण्यात अयशस्वी diff --git a/AnkiDroid/src/main/res/values-mr/17-model-manager.xml b/AnkiDroid/src/main/res/values-mr/17-model-manager.xml index d745cff15d59..af6dbc60be4e 100644 --- a/AnkiDroid/src/main/res/values-mr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-mr/17-model-manager.xml @@ -33,7 +33,6 @@ टीप प्रकारात कमीतकमी एक फील्ड असणे आवश्यक आहे आपण नाव प्रविष्ट केलेच पाहिजे फील्ड नाव आधीपासून वापरलेले आहे - आपण एक वैध मूल्य प्रविष्ट करणे आवश्यक आहे %d टीप प्रकार उपलब्ध @@ -58,7 +57,6 @@ फील्ड पुनर्नामित करा कीबोर्ड भाषेचा संकेत सेट करा स्थान फील्ड - स्थान फील्ड (%1$d–%2$d मूल्य प्रविष्ट करा) जोडताना शेवटचे इनपुट लक्षात ठेवा फील्ड अद्यतनित करीत आहे या फील्डनुसार क्रमवारी लावा diff --git a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml index c0810cf666c9..ab03fa1dbf17 100644 --- a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml @@ -125,7 +125,6 @@ Tunggakan Mencari kad kosong… - Kad untuk dipadam: %d Tidak dapat memperoleh kebenaran mikrofon. Gagal membuka Penyunting Multimedia diff --git a/AnkiDroid/src/main/res/values-ms/17-model-manager.xml b/AnkiDroid/src/main/res/values-ms/17-model-manager.xml index 27507d4de089..ceaccdbe90f0 100644 --- a/AnkiDroid/src/main/res/values-ms/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ms/17-model-manager.xml @@ -33,7 +33,6 @@ Jenis nota hendaklah mengandungi sekurang-kurangnya satu medan Anda hendaklah masukkan nama Nama medan sudah digunakan - Anda hendaklah masukkan nilai sah %d jenis nota tersedia @@ -56,7 +55,6 @@ Nama semula medan Tetapkan petunjuk bahasa papan kekunci Alih posisi medan - Alih posisi medan (masukkan nilai %1$d–%2$d) Ingat input terakhir apabila menambah Mengemas kini medan Susun ikut medan ini diff --git a/AnkiDroid/src/main/res/values-my/03-dialogs.xml b/AnkiDroid/src/main/res/values-my/03-dialogs.xml index 2abb851836ae..27ec775ba812 100644 --- a/AnkiDroid/src/main/res/values-my/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-my/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-my/17-model-manager.xml b/AnkiDroid/src/main/res/values-my/17-model-manager.xml index c776f880d5b2..5fa571a5e4a9 100644 --- a/AnkiDroid/src/main/res/values-my/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-my/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml index 4d8689569747..137403c783fd 100644 --- a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml @@ -129,7 +129,6 @@ Te doen Lege kaarten aan het zoeken… - Kaarten te verwijderen: %d Kon geen toestemming voor de microfoon verkrijgen. Openen van de multimedia-editor is mislukt diff --git a/AnkiDroid/src/main/res/values-nl/17-model-manager.xml b/AnkiDroid/src/main/res/values-nl/17-model-manager.xml index 1905db29c5ed..cda5fa103223 100644 --- a/AnkiDroid/src/main/res/values-nl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-nl/17-model-manager.xml @@ -33,7 +33,6 @@ Notitietypes moeten ten minste één veld hebben U moet een naam invoeren Veldnaam al in gebruik - U moet een geldige waarde invoeren %d memotype beschikbaar @@ -58,7 +57,6 @@ Naam van veld wijzigen Suggestie voor de toetsenbordtaal instellen Verplaats veld - Verplaats veld (geef een waarde %1$d –%2$d) Laatste invoer onthouden bij het toevoegen Velden bijwerken Sorteren op dit veld diff --git a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml index 9d869123712a..b7e49be39995 100644 --- a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml @@ -129,7 +129,6 @@ Forfaller Leter etter tomme kort… - Kort å slette: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-nn/17-model-manager.xml b/AnkiDroid/src/main/res/values-nn/17-model-manager.xml index a9e33676dd34..896c5a01bde4 100644 --- a/AnkiDroid/src/main/res/values-nn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-nn/17-model-manager.xml @@ -33,7 +33,6 @@ Notattyper må ha minst ett felt Du må angi et navn Feltnavn allerede brukt - Du må angi en gyldig verdi %d notattype tilgjengelig @@ -58,7 +57,6 @@ Gjev felt nytt namn Set keyboard language hint Flytt felt - Reposition field (enter a value %1$d–%2$d) Husk siste inndata når du legger til Oppdaterer felt Sorter etter dette feltet diff --git a/AnkiDroid/src/main/res/values-no/03-dialogs.xml b/AnkiDroid/src/main/res/values-no/03-dialogs.xml index 17373ab4ff46..532724960b7c 100644 --- a/AnkiDroid/src/main/res/values-no/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-no/03-dialogs.xml @@ -129,7 +129,6 @@ Forfaller Leter etter tomme kort… - Kort å slette: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-no/17-model-manager.xml b/AnkiDroid/src/main/res/values-no/17-model-manager.xml index 2d061a73f221..7c4d063bc823 100644 --- a/AnkiDroid/src/main/res/values-no/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-no/17-model-manager.xml @@ -33,7 +33,6 @@ Notattyper må ha minst ett felt Du må angi et navn Feltnavn allerede brukt - Du må angi en gyldig verdi %d notattype tilgjengelig @@ -58,7 +57,6 @@ Endre navn på felt Set keyboard language hint Flytt felt - Reposition field (enter a value %1$d–%2$d) Husk siste inndata når du legger til Oppdaterer felt Sorter etter dette feltet diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml index 9d4e4e9aad74..542ce88a13ca 100644 --- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml @@ -129,7 +129,6 @@ ବାକି ଖାଲି ପତ୍ର ଖୋଜାହେଉଛି… - ବିଲୋପ କରିବାକୁ ପତ୍ର : %d ମାଇକ୍ରୋଫୋନ୍ ଅନୁମତି ପାଇପାରିଲୁ ନାହିଁ। ମଲ୍ଟିମିଡ଼ିଆ ସମ୍ପାଦକ ଖୋଲିବାରେ ବିଫଳ diff --git a/AnkiDroid/src/main/res/values-or/17-model-manager.xml b/AnkiDroid/src/main/res/values-or/17-model-manager.xml index 456962fe89be..5e7d43771d69 100644 --- a/AnkiDroid/src/main/res/values-or/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-or/17-model-manager.xml @@ -33,7 +33,6 @@ ନୋଟ୍ ପ୍ରକାରର ଅତିକମରେ ଗୋଟିଏ କ୍ଷେତ୍ର ଥିବା ଆବଶ୍ୟକ ଆପଣ ଗୋଟିଏ ନାମ ପ୍ରବେଶ କରିବା ଜରୁରୀ କ୍ଷେତ୍ର ନାଁଟି ଆଗରୁ ଵ୍ୟଵହାର ହୋଇଛି - ଆପଣ ନିଶ୍ଚିତ ଭାବରେ ଏକ ବୈଧ ମୂଲ୍ୟ ପ୍ରବେଶ କରିବେ %dଟିଏ ନୋଟ୍ ପ୍ରକାର ଉପଲବ୍ଧ @@ -58,7 +57,6 @@ କ୍ଷେତ୍ରଟିର ନାମ ବଦଳାନ୍ତୁ କୀବୋର୍ଡର ସୂଚକ ଭାଷା ସେଟ୍ କରନ୍ତୁ କ୍ଷେତ୍ରଟିକୁ ପୁନଃଅଵସ୍ଥିତ କରିବା - କ୍ଷେତ୍ରଟିକୁ ପୁନଃଅଵସ୍ଥିତ କରିବେ (%1$d–%2$d ମଧ୍ୟରେ ଗୋଟେ ମୂଲ୍ୟ ପ୍ରଵେଶ କରନ୍ତୁ) ଯୋଡ଼ିବା ସମୟରେ ଶେଷ ଇନପୁଟ୍ ମନେରଖ କ୍ଷେତ୍ରଗୁଡ଼ିକ ଅଦ୍ୟତିତ ହେଉଛି ଏହି କ୍ଷେତ୍ର ଅନୁଯାୟୀ ସଜାନ୍ତୁ diff --git a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml index 781f5b7fe7a5..78c6aea7c539 100644 --- a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml @@ -129,7 +129,6 @@ ਬਕਾਇਆ ਖਾਲੀ ਕਾਰਡ ਲੱਭੇ ਜਾ ਰਹੇ ਹਨ… - ਮਿਟਾਉਣ ਲਈ ਕਾਰਡ: %d ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਮਿਲ ਸਕੀ। ਮਲਟੀਮੀਡੀਆ ਸੰਪਾਦਕ ਨੂੰ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ diff --git a/AnkiDroid/src/main/res/values-pa/17-model-manager.xml b/AnkiDroid/src/main/res/values-pa/17-model-manager.xml index 6e3f4cdaf9af..ba70eebf9de0 100644 --- a/AnkiDroid/src/main/res/values-pa/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pa/17-model-manager.xml @@ -33,7 +33,6 @@ ਨੋਟ ਕਿਸਮਾਂ ਵਿੱਚ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਖੇਤਰ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਤੁਹਾਨੂੰ ਇੱਕ ਨਾਮ ਦਰਜ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਖੇਤਰ ਦਾ ਨਾਮ ਪਹਿਲਾਂ ਹੀ ਵਰਤਿਆ ਗਿਆ ਹੈ - ਤੁਹਾਨੂੰ ਇੱਕ ਵੈਧ ਮੁੱਲ ਦਾਖਲ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ %d ਨੋਟ ਕਿਸਮਾਂ ਉਪਲਬਧ ਹਨ @@ -58,7 +57,6 @@ ਖੇਤਰ ਦਾ ਨਾਮ ਬਦਲੋ ਕੀਬੋਰਡ ਭਾਸ਼ਾ ਸੰਕੇਤ ਸੈੱਟ ਕਰੋ ਰੀਪੋਜੀਸ਼ਨ ਫੀਲਡ - ਰੀਪੋਜ਼ੀਸ਼ਨ ਫੀਲਡ (ਇੱਕ ਮੁੱਲ %1$d–%2$d ਦਾਖਲ ਕਰੋ) ਜੋੜਨ ਵੇਲੇ ਆਖਰੀ ਇਨਪੁਟ ਯਾਦ ਰੱਖੋ ਖੇਤਰਾਂ ਨੂੰ ਅੱਪਡੇਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ ਇਸ ਖੇਤਰ ਦੁਆਰਾ ਕ੍ਰਮਬੱਧ ਕਰੋ diff --git a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml index 9f7f3fdbcd99..2191a0271d50 100644 --- a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml @@ -137,7 +137,6 @@ Do przejrzenia Wyszukiwanie pustych kart… - Kart do usunięcia: %d Nie udało się uzyskać uprawnień do interakcji z mikrofonem. Nie udało się otworzyć edytora multimediów diff --git a/AnkiDroid/src/main/res/values-pl/17-model-manager.xml b/AnkiDroid/src/main/res/values-pl/17-model-manager.xml index 240ad5225aa2..824a8d3020b8 100644 --- a/AnkiDroid/src/main/res/values-pl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pl/17-model-manager.xml @@ -33,7 +33,6 @@ Typy notatek muszą mieć co najmniej jedno pole Musisz wprowadzić nazwę Nazwa pola już zajęta - Musisz wprowadzić prawidłową wartość %d typ notatki dostępny @@ -62,7 +61,6 @@ Zmień nazwę pola Ustaw podpowiedź języka klawiatury Zmień pozycję pola - Zmień pozycję pola (wprowadź wartość %1$d–%2$d) Zapamiętaj ostatni wpis podczas dodawania Aktualizowanie pól Sortuj według tego pola 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 e0ccf79a979e..57f32c42ba2b 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml @@ -129,7 +129,6 @@ Pendentes Buscando cards vazios… - Cards a deletar: %d Não foi possível obter permissão de microfone. Falha ao abrir o Editor de Multimídia diff --git a/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml b/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml index 2d7addafe679..b82f3ae2cb6f 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml @@ -33,7 +33,6 @@ Tipos de nota devem ter pelo menos um campo Você deve digitar um nome Nome do campo já utilizado - Você deve colocar um valor válido %d tipo de nota disponível @@ -58,7 +57,6 @@ Renomear campo Definir idioma do teclado Campo de reposição - Reposicionar campo (digite um valor %1$d–%2$d) Lembrar da última entrada ao adicionar Atualizando os campos Ordenar por esse campo 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 8c63c113c4fd..e20f6f15c84c 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml @@ -129,7 +129,6 @@ Pendentes A encontrar fichas vazias… - Fichas para apagar: %d Não foi possível obter permissão para utilizar o microfone. Falha ao abrir o Editor de Multimédia diff --git a/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml b/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml index 0ae8cfa7a80a..63588ebdf79f 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml @@ -33,7 +33,6 @@ Os tipos de nota devem ter pelo menos um campo Tem de digitar um nome Nome de campo já utilizado - Deve inserir um valor válido %d tipo de nota disponível @@ -58,7 +57,6 @@ Renomear campo Definir a língua associada ao teclado Campo de reposição - Campo de reposição (digite um valor entre %1$d e %2$d) Lembrar última entrada ao adicionar A atualizar os campos Ordenar por este campo diff --git a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml index 2478d2a53bba..7144344fef25 100644 --- a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml @@ -133,7 +133,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ro/17-model-manager.xml b/AnkiDroid/src/main/res/values-ro/17-model-manager.xml index bc37a7739596..41068390377f 100644 --- a/AnkiDroid/src/main/res/values-ro/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ro/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -60,7 +59,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Actualizare câmpuri Sortează după acest câmp diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml index f6c1b177dea7..28b0cf2e1fbb 100644 --- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml @@ -138,7 +138,6 @@ К просмотру Поиск пустых карточек… - Карточек к удалению: %d Не удалось получить разрешение на микрофон. Не удалось открыть редактор мультимедиа diff --git a/AnkiDroid/src/main/res/values-ru/17-model-manager.xml b/AnkiDroid/src/main/res/values-ru/17-model-manager.xml index 331068b7ed86..89298eb75ada 100644 --- a/AnkiDroid/src/main/res/values-ru/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ru/17-model-manager.xml @@ -33,7 +33,6 @@ В типе записей должно быть хотя бы одно поле Введите имя Имя поля уже используется - Введите допустимое значение Доступен %d тип карточек @@ -62,7 +61,6 @@ Переименовать поле Задать язык подсказок клавиатуры Переместить поле - Переместить поле (введите значение %1$d–%2$d) При добавлении запоминать последний ввод Поля обновляются Сортировать по этому полю diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml index 3e594d8a36c4..f7ceb31bad39 100644 --- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml @@ -129,7 +129,6 @@ ᱮᱢᱚᱜ ᱥᱚᱢᱚᱭ ᱠᱷᱟᱹᱞᱤ ᱠᱟᱰ ᱯᱟᱱᱛᱮ ᱪᱟᱹᱞᱩ ᱠᱟᱱᱟ… - ᱜᱮᱫ ᱜᱤᱰᱤ ᱞᱟᱹᱜᱤᱫ ᱠᱟᱰ: %d ᱢᱟᱤᱠᱨᱚᱯᱷᱚᱱ ᱪᱷᱟᱰ ᱵᱟᱝ ᱟᱜᱩ ᱫᱟᱲᱮᱟᱫᱟᱠ ᱟ ᱾ ᱢᱟᱹᱞᱴᱤᱢᱤᱰᱤᱭᱟ ᱮᱰᱤᱴᱚᱨ ᱚᱰᱚᱠ ᱰᱤᱜᱟᱹᱣᱮᱱᱟ diff --git a/AnkiDroid/src/main/res/values-sat/17-model-manager.xml b/AnkiDroid/src/main/res/values-sat/17-model-manager.xml index 6f8ef7463df6..51d70a993ba7 100644 --- a/AnkiDroid/src/main/res/values-sat/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sat/17-model-manager.xml @@ -33,7 +33,6 @@ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱴᱷᱮᱱ ᱢᱤᱫᱴᱟᱝ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱡᱟᱭᱜᱟ ᱛᱟᱦᱮᱱ ᱠᱟᱛᱷᱟ ᱟᱢ ᱫᱚ ᱧᱩᱛᱩᱢ ᱚᱞ ᱛᱮ ᱦᱩᱭᱟᱢᱟ ᱡᱟᱭᱜᱟ ᱧᱩᱛᱩᱢ ᱠᱟᱹᱢᱤ ᱨᱮ ᱟᱜᱩ ᱠᱟᱱᱟ - ᱟᱢ ᱢᱟᱱᱭᱚ ᱢᱩᱞ ᱚᱞ‌ ᱛᱮ ᱦᱩᱭᱟᱢᱟ %d ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱢᱮᱱᱟᱜᱼᱟ @@ -58,7 +57,6 @@ ᱡᱟᱭᱜᱟ ᱫᱩᱦᱲᱟ ᱧᱩᱛᱩᱢᱟᱱ ᱠᱤᱵᱚᱰ ᱯᱟᱹᱨᱥᱤ ᱦᱤᱸᱴ ᱥᱮᱴ ᱢᱮ ᱡᱟᱭᱜᱟ ᱵᱚᱫᱚᱞ - ᱡᱟᱭᱜᱟ ᱵᱚᱫᱚᱞ ( ᱢᱩᱞ %1$d ᱠᱷᱚᱱ %2$d ‌ᱚᱞᱢᱮ) ᱥᱮᱞᱮᱫ ‌ᱡᱷᱚᱜ ᱢᱟᱲᱟᱝᱼᱟᱜ ᱤᱱᱯᱩᱴ ᱩᱭᱦᱟᱹᱨᱢᱮ ᱡᱟᱭᱜᱟ ᱟᱹᱯᱰᱟᱴᱼᱚᱜ ᱠᱟᱱᱟ ᱡᱟᱭᱜᱟ ᱛᱮ ᱥᱚᱴᱼᱚᱜ ᱠᱟᱱᱟ diff --git a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml index da52470aae27..b3ac11dcbd44 100644 --- a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml @@ -134,7 +134,6 @@ De revisionare Agatende sas cartas bòidas… - Cartas de iscantzellare: %d No est istadu possìbile otènnere su permissu pro su micròfonu. Abertura de s\'Editore Multimediale fallida diff --git a/AnkiDroid/src/main/res/values-sc/17-model-manager.xml b/AnkiDroid/src/main/res/values-sc/17-model-manager.xml index 14433b638f86..01610bc01a64 100644 --- a/AnkiDroid/src/main/res/values-sc/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sc/17-model-manager.xml @@ -33,7 +33,6 @@ Sas castas de notas depent tènnere a su nessi unu campu Depes insertare unu nùmene Nùmene de su campu giai impreadu - Depes insertare unu valore vàlidu %d casta de nota a disponimentu @@ -58,7 +57,6 @@ Muda su campu de nùmene Imposta s\'impòsitu de limba de su tecladu Torra a positzionare su campu - Torra a positzionare su campu (inserta unu valore %1$d–%2$d) Ammenta s\'ùrtima intrada cando annanghes Atualizatzione de sos campos Òrdina sighende custu campu diff --git a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml index 3063fc1f1728..f58ec4fd4187 100644 --- a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml @@ -137,7 +137,6 @@ Na preskúšanie Hľadanie prázdnych kartičiek… - Počet kartičiek, ktoré budú vymazané: %d Nepodarilo sa získať povolenie k mikrofónu. Nepodarilo sa otvoriť editor multimédií diff --git a/AnkiDroid/src/main/res/values-sk/17-model-manager.xml b/AnkiDroid/src/main/res/values-sk/17-model-manager.xml index a776700e0c6f..13117b6adcfb 100644 --- a/AnkiDroid/src/main/res/values-sk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sk/17-model-manager.xml @@ -33,7 +33,6 @@ Typy poznámok musia mať aspoň jedno pole Musíte zadať názov Názov poľa sa už používa - Musíte zadať platnú hodnotu %d typ poznámok k dispozícii @@ -62,7 +61,6 @@ Premenovať pole Nastaviť jazykový tip klávesnice Premiestniť pole - Premiestniť pole (zadajte hodnotu %1$d–%2$d) Zapamätať posledný vstupný údaj pri pridávaní Aktualizácia polí Usporiadať podľa tohto poľa diff --git a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml index 5aca1b39661a..c3bdfbe1a911 100644 --- a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml @@ -137,7 +137,6 @@ Zapadle Iskanje praznih kartic … - Kartice za izbris: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-sl/17-model-manager.xml b/AnkiDroid/src/main/res/values-sl/17-model-manager.xml index 11a4bfd22f81..aa11a5c055f3 100644 --- a/AnkiDroid/src/main/res/values-sl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sl/17-model-manager.xml @@ -33,7 +33,6 @@ Vrste zapiskov morajo imeti vsaj eno polje Vnesti morate ime Ime polja je že uporabljeno - Vnesti morate veljavno vrednost Na voljo je %d vrsta zapiskov @@ -62,7 +61,6 @@ Preimenuj polje Set keyboard language hint Prestavi polje - Prestavi polje (vnesite vrednost %1$d - %2$d) Remember last input when adding Posodabljanje polj Razvrsti po temu polju diff --git a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml index 0229518d39fd..e222cc65ad0e 100644 --- a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml @@ -129,7 +129,6 @@ Pritet Po gjen karta boshe… - Kartat për të fshirë: %d Nuk mund të merrej leja për mikrofonin. Hapja e redaktuesit të multimedias dështoi diff --git a/AnkiDroid/src/main/res/values-sq/17-model-manager.xml b/AnkiDroid/src/main/res/values-sq/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-sq/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sq/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml index 2a2e71af79e3..15749d8b0b58 100644 --- a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml @@ -133,7 +133,6 @@ Рок Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-sr/17-model-manager.xml b/AnkiDroid/src/main/res/values-sr/17-model-manager.xml index c18603176f22..35bcd4533d55 100644 --- a/AnkiDroid/src/main/res/values-sr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sr/17-model-manager.xml @@ -33,7 +33,6 @@ Тип белешке мора да има бар једно поље Морате да унесете име Назив поља се већ користи - Морате да унесете важећу вредност %d типова бележака доступно @@ -60,7 +59,6 @@ Преименуј поље Set keyboard language hint Репозиција поље - Репозиција поље (унесите вредности %1$d–%2$d) Remember last input when adding Поље ажурирања Сортирај по овом пољу diff --git a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ss/17-model-manager.xml b/AnkiDroid/src/main/res/values-ss/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ss/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ss/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml index 29887c1bb681..99587138a3c8 100644 --- a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml @@ -129,7 +129,6 @@ Hittar tomma kort… - Kort att ta bort: %d Kunde inte få mikrofonbehörighet. Det gick inte att öppna Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-sv/17-model-manager.xml b/AnkiDroid/src/main/res/values-sv/17-model-manager.xml index b42f0893046b..9b3f99ed6715 100644 --- a/AnkiDroid/src/main/res/values-sv/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sv/17-model-manager.xml @@ -33,7 +33,6 @@ Nottyper måste ha åtminstone ett fält Du måste ange ett namn Fältnamnet används redan - Du måste ange ett giltigt värde %d nottyp tillgänglig @@ -58,7 +57,6 @@ Byt namn på fält Ange tips på tangentbordsspråk Flytta fält - Flytta fält (ange ett värde %1$d–%2$d) Kom ihåg senaste inmatning när du lägger till Uppdaterar fält Sortera efter detta fält diff --git a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-sw/17-model-manager.xml b/AnkiDroid/src/main/res/values-sw/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-sw/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sw/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml index a8a16a8f763c..06be64c5c069 100644 --- a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml @@ -129,7 +129,6 @@ இறுதி தேதி வெற்று அட்டைகளைக் கண்டறிகிறது… - நீக்க வேண்டிய கார்டுகள்: %d மைக்ரோஃபோன் அனுமதியைப் பெற முடியவில்லை. மல்டிமீடியா எடிட்டரைத் திறக்க முடியவில்லை diff --git a/AnkiDroid/src/main/res/values-ta/17-model-manager.xml b/AnkiDroid/src/main/res/values-ta/17-model-manager.xml index 7cf38e6521c5..846f7c887e31 100644 --- a/AnkiDroid/src/main/res/values-ta/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ta/17-model-manager.xml @@ -33,7 +33,6 @@ குறிப்பு வகைகளில் குறைந்தது ஒரு புலம் இருக்க வேண்டும் நீங்கள் ஒரு பெயரை உள்ளிட வேண்டும் புலத்தின் பெயர் ஏற்கனவே பயன்படுத்தப்பட்டுள்ளது - நீங்கள் சரியான மதிப்பை உள்ளிட வேண்டும் %d குறிப்பு வகை உள்ளது @@ -58,7 +57,6 @@ புலத்தை மறுபெயரிடவும் விசைப்பலகை மொழி குறிப்பை அமைக்கவும் இடமாற்ற புலம் - இடமாற்ற புலம் (%1$d–%2$d மதிப்பை உள்ளிடவும்) சேர்க்கும்போது கடைசி உள்ளீட்டை நினைவில் கொள்ளுங்கள் புதுப்பிப்பு புலங்கள் இந்தப் புலத்தின்படி வரிசைப்படுத்தவும் diff --git a/AnkiDroid/src/main/res/values-te/03-dialogs.xml b/AnkiDroid/src/main/res/values-te/03-dialogs.xml index ad364b8ddd41..e67edd9944d9 100644 --- a/AnkiDroid/src/main/res/values-te/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-te/03-dialogs.xml @@ -129,7 +129,6 @@ గడువు ఖాళీ కార్డ్లు కనుగొనడం… - తొలగించడానికి కార్డులు:%d మైక్రోఫోన్ అనుమతిని పొందడం సాధ్యపడలేదు. మల్టీమీడియా ఎడిటర్‌ని తెరవడంలో విఫలమైంది diff --git a/AnkiDroid/src/main/res/values-te/17-model-manager.xml b/AnkiDroid/src/main/res/values-te/17-model-manager.xml index 772d40187ab2..1c77d5665f9a 100644 --- a/AnkiDroid/src/main/res/values-te/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-te/17-model-manager.xml @@ -33,7 +33,6 @@ గమనిక గమనికలు కనీసం ఒక ఫీల్డ్ అయి ఉండాలి మీరు తప్పనిసరిగా పేరు నమోదు చేయాలి ఫీల్డ్ పేరు ఇప్పటికే ఉపయోగించబడింది - మీరు చెల్లుబాటు అయ్యే విలువను నమోదు చేయాలి %d గమనిక రకం అందుబాటులో ఉంది @@ -58,7 +57,6 @@ ఫీల్డ్ పేరు మార్చండి కీబోర్డ్ భాష సూచనను సెట్ చేయండి రీపోషన్ ఫీల్డ్ - ప్రత్యామ్నాయ క్షేత్రం (%1$d-%2$d విలువను నమోదు చేయండి) జోడించేటప్పుడు చివరి ఇన్‌పుట్‌ను గుర్తుంచుకోండి ఖాళీలను నవీకరిస్తోంది ఈ ఫీల్డ్ ద్వారా క్రమబద్ధీకరించు diff --git a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml index 5393a2b50b76..6565167a5adc 100644 --- a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-tg/17-model-manager.xml b/AnkiDroid/src/main/res/values-tg/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-tg/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tg/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml index a702086d63a6..fa874d1856f6 100644 --- a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml @@ -129,7 +129,6 @@ Marapat Paghahanap ng mga walang laman na kard… - Mga kard na tatanggalin: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml b/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-th/03-dialogs.xml b/AnkiDroid/src/main/res/values-th/03-dialogs.xml index ac47d28e9b57..4161bf4b46ec 100644 --- a/AnkiDroid/src/main/res/values-th/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-th/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-th/17-model-manager.xml b/AnkiDroid/src/main/res/values-th/17-model-manager.xml index e0897df44907..ebbccce50b08 100644 --- a/AnkiDroid/src/main/res/values-th/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-th/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field คุณต้องใส่ชื่อ Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ti/17-model-manager.xml b/AnkiDroid/src/main/res/values-ti/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ti/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ti/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-tn/17-model-manager.xml b/AnkiDroid/src/main/res/values-tn/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-tn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tn/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml index e560140c86fb..afb1f2ce69df 100644 --- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml @@ -129,7 +129,6 @@ Sırası gelmiş Boş kartlar aranıyor… - Silinecek kartlar %d Mikrofon izni alınamadı. Multimedya Düzenleyiciyi açma başarısız oldu diff --git a/AnkiDroid/src/main/res/values-tr/17-model-manager.xml b/AnkiDroid/src/main/res/values-tr/17-model-manager.xml index 129e7ac2171e..5b5e30f51361 100644 --- a/AnkiDroid/src/main/res/values-tr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tr/17-model-manager.xml @@ -33,7 +33,6 @@ Not türlerinin en az bir alanı olmak zorundadır İsim girmeniz gerekiyor Alan ismi zaten kullanılıyor - Geçerli bir değer girmeniz gerekiyor %d not türü mevcut @@ -58,7 +57,6 @@ Alanı yeniden adlandır Klavye dili ipucunu ayarla Alanın yerini değiştir - Alanın yerini değiştir (%1$d–%2$d arası bir değer girin) Eklerken son girişi hatırla Alanlar güncelleniyor Bu alana göre sırala diff --git a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ts/17-model-manager.xml b/AnkiDroid/src/main/res/values-ts/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ts/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ts/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml index ed279ff4a58f..54ac21319da2 100644 --- a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-tt/17-model-manager.xml b/AnkiDroid/src/main/res/values-tt/17-model-manager.xml index fa61a5428763..67ca3da2910a 100644 --- a/AnkiDroid/src/main/res/values-tt/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tt/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml index e9989c9c22a1..b7361cfcc174 100644 --- a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml @@ -129,7 +129,6 @@ مۆھلەت بوش كارتىنى ئىزدەۋاتىدۇ… - ئۆچۈرىدىغان كارتا: %d مىكروفون ئىجازىتىگە ئېرىشەلمىدى. كۆپ ۋاسىتە تەھرىرلىگۈچنى ئاچالمىدى diff --git a/AnkiDroid/src/main/res/values-ug/17-model-manager.xml b/AnkiDroid/src/main/res/values-ug/17-model-manager.xml index 0f01045b2360..2dcf9196b77e 100644 --- a/AnkiDroid/src/main/res/values-ug/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ug/17-model-manager.xml @@ -33,7 +33,6 @@ خاتىرە تۈرىنىڭ كەم دېگەندە بىر بۆلىكى بولۇشى كېرەك ئىسىم چوقۇم كىرگۈزۈلىدۇ بۆلەك ئاتى ئىشلىتىلگەن - چوقۇم ئىناۋەتلىك قىممەت كىرگۈزۈڭ %d خاتىرە تۈرى بار @@ -58,7 +57,6 @@ بۆلەك ئاتىنى ئۆزگەرت ھەرپتاختا تىل كۆرسەتمىسىنى تەڭشەيدۇ بۆلەك ئورنىنى تەڭشەيدۇ - بۆلەك ئورنىنى تەڭشەيدۇ (%1$d–%2$d قىممەت كىرگۈزۈلىدۇ) قوشقاندا ئاخىرقى كىرگۈزگەننى ئەستە تۇتىدۇ بۆلەك يېڭىلا بۇ بۆلەك بويىچە تەرتىپلە diff --git a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml index be588ddffcca..038612166c38 100644 --- a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml @@ -137,7 +137,6 @@ На черзі Пошук порожніх карток… - Картки до видалення: %d Не вдалося отримати дозвіл на використання мікрофона. Не вдалося відкрити мультимедійний редактор diff --git a/AnkiDroid/src/main/res/values-uk/17-model-manager.xml b/AnkiDroid/src/main/res/values-uk/17-model-manager.xml index 062baeeafdd6..412671fc9dd8 100644 --- a/AnkiDroid/src/main/res/values-uk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-uk/17-model-manager.xml @@ -33,7 +33,6 @@ Типи записів повинні містити хоча б одне поле Необхідно ввести ім\'я Ім\'я поля вже використовується - Введіть дійсне значення %d тип записів доступний @@ -62,7 +61,6 @@ Перейменувати поле Встановлення мови підказок клавіатури Перемістити поле - Перемістити поле (введіть значення %1$d–%2$d) Запам\'ятовувати останні вхідні дані під час додавання Оновлення полів Сортувати за цим полем diff --git a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml index d4f8992d62e4..db8645588a28 100644 --- a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml @@ -129,7 +129,6 @@ بقایا خالی کارڈز تلاش کیے جا رہے ہیں… - حذف کرنے کے لیے کارڈز: %d مائیکروفون کی اجازت حاصل نہیں کی جا سکی۔ ملٹی میڈیا ایڈیٹر کھولنے میں ناکام diff --git a/AnkiDroid/src/main/res/values-ur/17-model-manager.xml b/AnkiDroid/src/main/res/values-ur/17-model-manager.xml index dd91cf63db9b..4cd47e53b961 100644 --- a/AnkiDroid/src/main/res/values-ur/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ur/17-model-manager.xml @@ -33,7 +33,6 @@ نوٹ کی قسم میں کم از کم ایک فیلڈ ہونا ضروری ہے آپ نام ضرور درج کریں۔ فیلڈ کا نام پہلے ہی استعمال کیا گیا ہے - آپ کو ایک درست قدر درج کرنی ہوگی %d نوٹ کی قسم دستیاب ہے۔ @@ -58,7 +57,6 @@ فیلڈ کا نام تبدیل کریں۔ کی بورڈ کی زبان کا اشارہ سیٹ کریں ریپوزیشن فیلڈ - Reposition field (enter a value %1$d–%2$d) شامل کرتے وقت آخری ان پٹ یاد رکھیں فیلڈز کو اپ ڈیٹ کرنا اس فیلڈ کے مطابق ترتیب دیں۔ diff --git a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml index 9f9ec9d876b4..454b6066f43c 100644 --- a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-uz/17-model-manager.xml b/AnkiDroid/src/main/res/values-uz/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-uz/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-uz/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-ve/17-model-manager.xml b/AnkiDroid/src/main/res/values-ve/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-ve/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ve/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml index baf51b40d96d..9dbfa521e073 100644 --- a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml @@ -125,7 +125,6 @@ Tới hạn Đang tìm thẻ rỗng… - Thẻ sẽ được xóa: %d Không thể quyền micrô. Không mở được Trình chỉnh sửa Đa phương tiện diff --git a/AnkiDroid/src/main/res/values-vi/17-model-manager.xml b/AnkiDroid/src/main/res/values-vi/17-model-manager.xml index b1c0a4e97b29..56d485ff02ae 100644 --- a/AnkiDroid/src/main/res/values-vi/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-vi/17-model-manager.xml @@ -33,7 +33,6 @@ Các loại ghi chú phải có ít nhất một trường Bạn phải nhập tên Tên trường đã được sử dụng - Bạn phải nhập một giá trị hợp lệ %d loại ghi chú có sẵn @@ -56,7 +55,6 @@ Đổi tên trường Đặt gợi ý ngôn ngữ bàn phím Định vị lại trường - Đặt lại vị trí trường (nhập giá trị %1$d–%2$d) Nhớ quá trình nhập liệu cùng khi thêm Cập nhật các trường Sắp xếp theo trường này diff --git a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml index ac47d28e9b57..4161bf4b46ec 100644 --- a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-wo/17-model-manager.xml b/AnkiDroid/src/main/res/values-wo/17-model-manager.xml index c776f880d5b2..5fa571a5e4a9 100644 --- a/AnkiDroid/src/main/res/values-wo/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-wo/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-xh/17-model-manager.xml b/AnkiDroid/src/main/res/values-xh/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-xh/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-xh/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field diff --git a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml index b83c08724cfe..b732fb4dbb82 100644 --- a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml @@ -125,7 +125,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-yue/17-model-manager.xml b/AnkiDroid/src/main/res/values-yue/17-model-manager.xml index c776f880d5b2..5fa571a5e4a9 100644 --- a/AnkiDroid/src/main/res/values-yue/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-yue/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note types available @@ -56,7 +55,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field 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 d59d1c8f316b..c17353e03451 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml @@ -125,7 +125,6 @@ 待复习 正在查找空白卡牌… - 将要删除卡牌:%d 无法获取麦克风权限。 打开多媒体编辑器失败 diff --git a/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml b/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml index 538fc0956d97..ffbcc241d21a 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml @@ -33,7 +33,6 @@ 笔记类型至少需要包含一个字段 您必须输入一个名称 名称已被其他字段使用 - 您必须输入一个有效的值 %d个笔记类型可用 @@ -56,7 +55,6 @@ 重命名字段 设置键盘语言提示 修改字段位置 - 修改字段位置(输入%1$d~%2$d的数值) 添加时记住上次输入 更新字段 按此字段排序 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 19e708662680..765786a4051d 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml @@ -125,7 +125,6 @@ 到期 正在搜尋空白卡片…… - 將要刪除卡片:%d 無法取得語音權限 無法開啟多媒體編輯器 diff --git a/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml b/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml index 08e4d00ed623..90ea54eef6b2 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml @@ -33,7 +33,6 @@ 筆記類型至少需要包含一個字段 您必須輸入一個名稱 名稱已被其他字段使用 - 您必須輸入一個有效的值 %d個筆記類型可用 @@ -56,7 +55,6 @@ 重新命名欄位 選擇鍵盤提示語言 修改字段位置 - 修改字段位置 (輸入%1$d~%2$d的數值) 新增時記住最後輸入 更新欄位 按此字段排序 diff --git a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml index e759d9d1abfd..4f39a0bafe0a 100644 --- a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml @@ -129,7 +129,6 @@ Due Finding empty cards… - Cards to delete: %d Could not obtain microphone permission. Failed to open Multimedia Editor diff --git a/AnkiDroid/src/main/res/values-zu/17-model-manager.xml b/AnkiDroid/src/main/res/values-zu/17-model-manager.xml index 3637310130d9..6b89a122d404 100644 --- a/AnkiDroid/src/main/res/values-zu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zu/17-model-manager.xml @@ -33,7 +33,6 @@ Note types must have at least one field You must enter a name Field name already used - You must enter a valid value %d note type available @@ -58,7 +57,6 @@ Rename field Set keyboard language hint Reposition field - Reposition field (enter a value %1$d–%2$d) Remember last input when adding Updating fields Sort by this field From 3c181efe0b302bf627a2a9d9b05e2eaaf04a964c Mon Sep 17 00:00:00 2001 From: SanjaySargam Date: Sat, 25 Jan 2025 01:43:28 +0530 Subject: [PATCH 016/200] Add drag-and-drop support for TEXT/CSV/TSV files --- .../main/java/com/ichi2/anki/DeckPicker.kt | 2 +- .../main/java/com/ichi2/utils/ImportUtils.kt | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt index e3f83f3df7a1..6bc56c6205e5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt @@ -694,7 +694,7 @@ open class DeckPicker : try { // Intent is nullable because `clip.getItemAt(0).intent` always returns null - ImportUtils.FileImporter().handleContentProviderFile(this, uri) + ImportUtils.FileImporter().handleContentProviderFile(this, uri, Intent().setData(uri)) onResume() } catch (e: Exception) { Timber.w(e) diff --git a/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt b/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt index e314e374e6df..d45a841af5de 100644 --- a/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt +++ b/AnkiDroid/src/main/java/com/ichi2/utils/ImportUtils.kt @@ -33,6 +33,7 @@ import com.ichi2.anki.R import com.ichi2.anki.dialogs.DialogHandler import com.ichi2.anki.dialogs.DialogHandlerMessage import com.ichi2.anki.dialogs.ImportDialog +import com.ichi2.anki.onSelectedCsvForImport import com.ichi2.anki.showImportDialog import com.ichi2.annotations.NeedsTest import com.ichi2.compat.CompatHelper @@ -99,6 +100,22 @@ object ImportUtils { fun isFileAValidDeck(fileName: String): Boolean = FileImporter.hasExtension(fileName, "apkg") || FileImporter.hasExtension(fileName, "colpkg") + @NeedsTest("Verify that only valid text or data file MIME types return true") + fun isValidTextOrDataFile( + context: Context, + uri: Uri, + ): Boolean { + val mimeType = context.contentResolver.getType(uri) + return mimeType in + listOf( + "text/plain", + "text/comma-separated-values", + "text/tab-separated-values", + "text/csv", + "text/tsv", + ) + } + @SuppressWarnings("WeakerAccess") open class FileImporter { /** @@ -200,7 +217,10 @@ object ImportUtils { } } val tempOutDir: String - if (!isValidPackageName(filename)) { + if (isValidTextOrDataFile(context, importPathUri)) { + (context as Activity).onSelectedCsvForImport(intent!!) + return ImportResult.fromSuccess() + } else if (!isValidPackageName(filename)) { return if (isAnkiDatabase(filename)) { // .anki2 files aren't supported by Anki Desktop, we should eventually support them, because we can // but for now, show a "nice" error. @@ -242,6 +262,7 @@ object ImportUtils { return when { isDeckPackage(fileName) -> true isCollectionPackage(fileName) -> true + isValidTextOrDataFile(context, importPathUri) -> true else -> false } } From f8f2ec9eb235b4c59d41d0adc6b274c7b0114094 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 15 Jan 2025 21:06:57 -0300 Subject: [PATCH 017/200] refactor: use Android's minTouchTargetSize It replaces @dimen/touch_target with a Material standard attribute It uses @dimen/mtrl_min_touch_target_size by default, which is the same `48dp` of before --- .../res/layout/browser_columns_selection_entry.xml | 4 ++-- AnkiDroid/src/main/res/layout/note_editor.xml | 2 +- AnkiDroid/src/main/res/layout/reviewer2.xml | 2 +- .../src/main/res/layout/reviewer_answer_buttons.xml | 10 +++++----- AnkiDroid/src/main/res/layout/sync_progress_layout.xml | 4 ++-- AnkiDroid/src/main/res/values/dimens.xml | 1 - 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/AnkiDroid/src/main/res/layout/browser_columns_selection_entry.xml b/AnkiDroid/src/main/res/layout/browser_columns_selection_entry.xml index 9fe0689cb333..f73e0cfab440 100644 --- a/AnkiDroid/src/main/res/layout/browser_columns_selection_entry.xml +++ b/AnkiDroid/src/main/res/layout/browser_columns_selection_entry.xml @@ -66,8 +66,8 @@ diff --git a/AnkiDroid/src/main/res/layout/reviewer2.xml b/AnkiDroid/src/main/res/layout/reviewer2.xml index 83c4d909cd9e..44112c4e51cc 100644 --- a/AnkiDroid/src/main/res/layout/reviewer2.xml +++ b/AnkiDroid/src/main/res/layout/reviewer2.xml @@ -120,7 +120,7 @@ android:id="@+id/buttons_area" android:layout_width="match_parent" android:layout_height="wrap_content" - android:minHeight="@dimen/touch_target" + android:minHeight="?minTouchTargetSize" android:layout_marginTop="2dp" android:layout_marginHorizontal="@dimen/reviewer_side_margin" > diff --git a/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml b/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml index 8ce2f4598268..a028d40a6b4e 100644 --- a/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml +++ b/AnkiDroid/src/main/res/layout/reviewer_answer_buttons.xml @@ -65,7 +65,7 @@ android:id="@+id/flashcard_layout_ease1" android:nextFocusRight="@id/flashcard_layout_ease2" android:layout_width="0dip" - android:layout_height="@dimen/touch_target" + android:layout_height="?minTouchTargetSize" android:layout_weight="1" android:orientation="vertical" android:theme="@style/AgainButton" @@ -89,7 +89,7 @@ android:nextFocusRight="@id/flashcard_layout_ease3" android:nextFocusLeft="@id/flashcard_layout_ease1" android:layout_width="0dip" - android:layout_height="@dimen/touch_target" + android:layout_height="?minTouchTargetSize" android:layout_weight="1" android:orientation="vertical" android:theme="@style/HardButton" @@ -113,7 +113,7 @@ android:nextFocusRight="@id/flashcard_layout_ease4" android:nextFocusLeft="@id/flashcard_layout_ease2" android:layout_width="0dip" - android:layout_height="@dimen/touch_target" + android:layout_height="?minTouchTargetSize" android:layout_weight="1" android:orientation="vertical" android:theme="@style/GoodButton" @@ -136,7 +136,7 @@ android:id="@+id/flashcard_layout_ease4" android:nextFocusLeft="@id/flashcard_layout_ease3" android:layout_width="0dip" - android:layout_height="@dimen/touch_target" + android:layout_height="?minTouchTargetSize" android:layout_weight="1" android:orientation="vertical" android:theme="@style/EasyButton" @@ -157,7 +157,7 @@ 16dp - 48dp 56dp 16dp 8dp From 7f20a0e712d18062a9d99a290ba271eb808439a6 Mon Sep 17 00:00:00 2001 From: Arman Singh Date: Thu, 30 Jan 2025 23:46:00 +0530 Subject: [PATCH 018/200] fix: Card Browser Border and Header Height * The header is made taller to make it accessible as a tappable element * The vertical border between columns is removed * There was design consensus that this looks better Fixes 17894 Fixes 17896 --- .../anki/browser/BrowserMultiColumnAdapter.kt | 4 ---- .../browser_heading_bottom_divider.xml | 16 +++++++++++++++ .../main/res/layout/browser_column_cell.xml | 2 +- .../res/layout/browser_column_divider.xml | 20 ------------------- .../res/layout/browser_column_heading.xml | 5 +++-- .../src/main/res/layout/card_browser.xml | 2 +- 6 files changed, 21 insertions(+), 28 deletions(-) create mode 100644 AnkiDroid/src/main/res/drawable/browser_heading_bottom_divider.xml delete mode 100644 AnkiDroid/src/main/res/layout/browser_column_divider.xml diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/BrowserMultiColumnAdapter.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/BrowserMultiColumnAdapter.kt index e1c3567f1287..ea0081d54083 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/BrowserMultiColumnAdapter.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/BrowserMultiColumnAdapter.kt @@ -102,10 +102,6 @@ class BrowserMultiColumnAdapter( inflate(R.layout.browser_column_cell).apply { columnViews.add(this as TextView) } - - if (index <= value) { - inflate(R.layout.browser_column_divider) - } } columnViews.forEach { it.setupTextSize() } diff --git a/AnkiDroid/src/main/res/drawable/browser_heading_bottom_divider.xml b/AnkiDroid/src/main/res/drawable/browser_heading_bottom_divider.xml new file mode 100644 index 000000000000..598623347511 --- /dev/null +++ b/AnkiDroid/src/main/res/drawable/browser_heading_bottom_divider.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/browser_column_cell.xml b/AnkiDroid/src/main/res/layout/browser_column_cell.xml index 6f75fda7214c..058b77e7a39c 100644 --- a/AnkiDroid/src/main/res/layout/browser_column_cell.xml +++ b/AnkiDroid/src/main/res/layout/browser_column_cell.xml @@ -18,7 +18,7 @@ android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" - android:paddingStart="4dp" + android:paddingStart="8dp" android:paddingVertical="1dp" android:layout_gravity="top" /> \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/browser_column_divider.xml b/AnkiDroid/src/main/res/layout/browser_column_divider.xml deleted file mode 100644 index 2cdee641e6aa..000000000000 --- a/AnkiDroid/src/main/res/layout/browser_column_divider.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - diff --git a/AnkiDroid/src/main/res/layout/browser_column_heading.xml b/AnkiDroid/src/main/res/layout/browser_column_heading.xml index 919b5466f4d9..932df2c8e4de 100644 --- a/AnkiDroid/src/main/res/layout/browser_column_heading.xml +++ b/AnkiDroid/src/main/res/layout/browser_column_heading.xml @@ -17,9 +17,10 @@ \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/card_browser.xml b/AnkiDroid/src/main/res/layout/card_browser.xml index 755bafbadacb..f55d83242882 100644 --- a/AnkiDroid/src/main/res/layout/card_browser.xml +++ b/AnkiDroid/src/main/res/layout/card_browser.xml @@ -18,7 +18,7 @@ Date: Sat, 8 Feb 2025 03:18:54 +0530 Subject: [PATCH 019/200] fix: instant note editor tap mode inconsistency --- .../InstantNoteEditorActivity.kt | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt index 063320fcdc04..59a5ccc1adaf 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt @@ -84,7 +84,8 @@ class InstantNoteEditorActivity : private var dialogView: View? = null - private var editMode = EditMode.ADVANCED + private val editMode: EditMode + get() = viewModel.editorMode.value private lateinit var editModeButton: MaterialButton @@ -217,6 +218,8 @@ class InstantNoteEditorActivity : editFieldsLayout?.addView(editField) } + setLayoutVisibility() + instantAlertDialog = AlertDialog.Builder(this).show { setView(dialogView) @@ -304,10 +307,9 @@ class InstantNoteEditorActivity : editModeButton.setOnClickListener { viewModel.setClozeFieldText(textBox.text.toString()) when (editMode) { - EditMode.SINGLE_TAP -> { + EditMode.ADVANCED -> { hideKeyboard() textBox.setText(clozeFieldText) - editMode = EditMode.ADVANCED viewModel.setEditorMode(EditMode.SINGLE_TAP) editModeButton.setIconResource(R.drawable.ic_mode_edit_white) @@ -318,10 +320,9 @@ class InstantNoteEditorActivity : viewModel.setClozeFieldText(textBox.text.toString()) } - EditMode.ADVANCED -> { - viewModel.setEditorMode(EditMode.ADVANCED) + EditMode.SINGLE_TAP -> { editModeButton.setIconResource(R.drawable.ic_touch) - editMode = EditMode.SINGLE_TAP + viewModel.setEditorMode(EditMode.ADVANCED) singleTapLayout.visibility = View.GONE editFieldsLayout?.visibility = View.VISIBLE @@ -330,6 +331,19 @@ class InstantNoteEditorActivity : } } + private fun setLayoutVisibility() { + when (editMode) { + EditMode.SINGLE_TAP -> { + singleTapLayout.visibility = View.VISIBLE + editFieldsLayout?.visibility = View.GONE + } + EditMode.ADVANCED -> { + singleTapLayout.visibility = View.GONE + editFieldsLayout?.visibility = View.VISIBLE + } + } + } + private fun hideKeyboard() { val inputMethodManager = this.getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager From 9599a1d5c444d7e3cc2c10ec486b4ce7dc3cc56e Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sat, 8 Feb 2025 11:38:58 -0300 Subject: [PATCH 020/200] fix(new reviewer): box frame style bottom margin the bottom margin was removed, but it shouldn't. The difference is barely noticeable in phones, but it can be easily seen on tablets --- .../ui/windows/reviewer/ReviewerFragment.kt | 7 ++++-- .../main/java/com/ichi2/anki/utils/Layout.kt | 23 ------------------- AnkiDroid/src/main/res/layout/reviewer2.xml | 1 - 3 files changed, 5 insertions(+), 26 deletions(-) delete mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/utils/Layout.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt index 0e9f140d3e13..786a4a7e0931 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt @@ -23,6 +23,7 @@ import android.text.style.UnderlineSpan import android.view.Menu import android.view.MenuItem import android.view.View +import android.view.ViewGroup.MarginLayoutParams import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.webkit.WebView @@ -104,7 +105,6 @@ import com.ichi2.anki.utils.ext.menu import com.ichi2.anki.utils.ext.removeSubMenu import com.ichi2.anki.utils.ext.sharedPrefs import com.ichi2.anki.utils.ext.window -import com.ichi2.anki.utils.setMargins import com.ichi2.libanki.sched.Counts import kotlinx.coroutines.launch @@ -490,7 +490,10 @@ class ReviewerFragment : private fun setupFrame(view: View) { if (Prefs.frameStyle == FrameStyle.BOX) { view.findViewById(R.id.webview_container).apply { - setMargins(0) + updateLayoutParams { + leftMargin = 0 + rightMargin = 0 + } cardElevation = 0F shapeAppearanceModel = ShapeAppearanceModel() // Remove corners } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/utils/Layout.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/Layout.kt deleted file mode 100644 index 24f3e2e80e7b..000000000000 --- a/AnkiDroid/src/main/java/com/ichi2/anki/utils/Layout.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2025 Brayan Oliveira - * - * 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.utils - -import android.view.ViewGroup.MarginLayoutParams -import android.widget.FrameLayout - -fun FrameLayout.setMargins(value: Int) { - (layoutParams as? MarginLayoutParams)?.setMargins(value, value, value, value) -} diff --git a/AnkiDroid/src/main/res/layout/reviewer2.xml b/AnkiDroid/src/main/res/layout/reviewer2.xml index 44112c4e51cc..901646567196 100644 --- a/AnkiDroid/src/main/res/layout/reviewer2.xml +++ b/AnkiDroid/src/main/res/layout/reviewer2.xml @@ -121,7 +121,6 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?minTouchTargetSize" - android:layout_marginTop="2dp" android:layout_marginHorizontal="@dimen/reviewer_side_margin" > From 168cad0f4f9a0e6e5df653ec5137958c2a97fb0b Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sat, 8 Feb 2025 12:58:41 -0300 Subject: [PATCH 021/200] fix(settings): disable ignoreDisplayCutout when necessary `Ignore display cutout` is only useful if `Hide system bars` is set to something other than `None` --- .../anki/preferences/ReviewerOptionsFragment.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ReviewerOptionsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ReviewerOptionsFragment.kt index c091c45d7fc4..199d1189d7a0 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ReviewerOptionsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ReviewerOptionsFragment.kt @@ -16,11 +16,15 @@ package com.ichi2.anki.preferences import android.os.Bundle +import androidx.preference.ListPreference import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import androidx.preference.SwitchPreferenceCompat import com.ichi2.anki.R import com.ichi2.anki.SingleFragmentActivity import com.ichi2.anki.preferences.reviewer.ReviewerMenuSettingsFragment +import com.ichi2.anki.settings.Prefs +import com.ichi2.anki.settings.enums.HideSystemBars /** * Developer options to test some of the new reviewer settings and features @@ -51,5 +55,14 @@ class ReviewerOptionsFragment : startActivity(intent) true } + + val ignoreDisplayCutout = + requirePreference(R.string.ignore_display_cutout_key).apply { + isEnabled = Prefs.hideSystemBars != HideSystemBars.NONE + } + + requirePreference(R.string.hide_system_bars_key).setOnPreferenceChangeListener { value -> + ignoreDisplayCutout.isEnabled = value != HideSystemBars.NONE.entryValue + } } } From ce9eb684961fa1a25453d9aecf640131d4b26ffc Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 7 Feb 2025 12:47:25 -0300 Subject: [PATCH 022/200] fix(sync): notification getting stuck cancel it after the work is done in case it wasn't dismissed --- .../src/main/java/com/ichi2/anki/worker/SyncMediaWorker.kt | 3 +++ AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncWorker.kt | 3 +++ 2 files changed, 6 insertions(+) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncMediaWorker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncMediaWorker.kt index b7fa39238eef..ac636e90afcb 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncMediaWorker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncMediaWorker.kt @@ -84,6 +84,9 @@ class SyncMediaWorker( setContentTitle(CollectionManager.TR.syncMediaFailed()) } return Result.failure() + } finally { + Timber.d("SyncMediaWorker: cancelling notification") + notificationManager.cancel(NotificationId.SYNC_MEDIA) } Timber.d("SyncMediaWorker: success") diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncWorker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncWorker.kt index cbab0b484790..aed0a2be0f7a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncWorker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/worker/SyncWorker.kt @@ -104,6 +104,9 @@ class SyncWorker( setContentTitle(applicationContext.getString(R.string.sync_error)) } return Result.failure() + } finally { + Timber.d("SyncWorker: cancelling notification") + notificationManager.cancel(NotificationId.SYNC) } Timber.d("SyncWorker: success") From ed1ca6e03be5e7302e1c90c75c2837a14ef0e8a0 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 7 Feb 2025 14:25:27 -0300 Subject: [PATCH 023/200] fix(preferences): status bar color Also make transparent the default color for the status bar in SingleFragmentActivity --- AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt | 3 +++ .../main/java/com/ichi2/anki/SingleFragmentActivity.kt | 2 ++ .../src/main/java/com/ichi2/anki/pages/CsvImporter.kt | 10 ---------- .../main/java/com/ichi2/anki/pages/ImageOcclusion.kt | 2 -- .../src/main/java/com/ichi2/anki/pages/PageFragment.kt | 2 -- .../src/main/java/com/ichi2/anki/pages/Statistics.kt | 2 -- 6 files changed, 5 insertions(+), 16 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt index de109a6c37db..9ab8a77ddfe5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt @@ -71,6 +71,7 @@ import androidx.core.util.component1 import androidx.core.util.component2 import androidx.core.view.MenuProvider import androidx.core.view.OnReceiveContentListener +import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.isVisible import androidx.draganddrop.DropHelper import androidx.fragment.app.Fragment @@ -134,6 +135,7 @@ import com.ichi2.anki.ui.setupNoteTypeSpinner import com.ichi2.anki.utils.ext.isImageOcclusion import com.ichi2.anki.utils.ext.sharedPrefs import com.ichi2.anki.utils.ext.showDialogFragment +import com.ichi2.anki.utils.ext.window import com.ichi2.anki.widgets.DeckDropDownAdapter.SubtitleListener import com.ichi2.annotations.NeedsTest import com.ichi2.compat.CompatHelper.Companion.getSerializableCompat @@ -516,6 +518,7 @@ class NoteEditor : view: View, savedInstanceState: Bundle?, ) { + WindowInsetsControllerCompat(window, window.decorView).isAppearanceLightStatusBars = false @Suppress("deprecation", "API35 properly handle edge-to-edge") requireActivity().window.statusBarColor = Themes.getColorFromAttr(requireContext(), R.attr.appBarColor) super.onViewCreated(view, savedInstanceState) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/SingleFragmentActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/SingleFragmentActivity.kt index 8fd72fe824ac..7ecca6d63af6 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/SingleFragmentActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/SingleFragmentActivity.kt @@ -25,6 +25,7 @@ import androidx.fragment.app.commit import com.ichi2.anki.android.input.ShortcutGroup import com.ichi2.anki.android.input.ShortcutGroupProvider import com.ichi2.anki.dialogs.customstudy.CustomStudyDialog.CustomStudyAction +import com.ichi2.themes.setTransparentStatusBar import com.ichi2.utils.FragmentFactoryUtils import timber.log.Timber import kotlin.reflect.KClass @@ -50,6 +51,7 @@ open class SingleFragmentActivity : AnkiActivity() { return } setContentView(R.layout.single_fragment_activity) + setTransparentStatusBar() // avoid recreating the fragment on configuration changes // the fragment should handle state restoration diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CsvImporter.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CsvImporter.kt index b2cd374ee47a..2589e7ac6fa5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CsvImporter.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CsvImporter.kt @@ -18,14 +18,12 @@ package com.ichi2.anki.pages import android.content.Context import android.content.Intent import android.os.Bundle -import android.view.View import android.webkit.WebView import androidx.activity.OnBackPressedCallback import com.ichi2.anki.CollectionManager import com.ichi2.anki.R import com.ichi2.anki.SingleFragmentActivity import com.ichi2.anki.hideShowButtonCss -import com.ichi2.themes.setTransparentStatusBar /** * Anki page used to import text/csv files @@ -46,14 +44,6 @@ class CsvImporter : PageFragment() { return CsvImporterWebViewClient(backCallback) } - override fun onViewCreated( - view: View, - savedInstanceState: Bundle?, - ) { - super.onViewCreated(view, savedInstanceState) - requireActivity().setTransparentStatusBar() - } - inner class CsvImporterWebViewClient( private val backCallback: OnBackPressedCallback, ) : PageWebViewClient() { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/ImageOcclusion.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/ImageOcclusion.kt index 7c8380c18d0f..b450124a2ff1 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/ImageOcclusion.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/ImageOcclusion.kt @@ -30,7 +30,6 @@ import com.ichi2.anki.SingleFragmentActivity import com.ichi2.anki.dialogs.DiscardChangesDialog import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.DeckId -import com.ichi2.themes.setTransparentStatusBar import kotlinx.coroutines.launch import org.json.JSONObject import timber.log.Timber @@ -41,7 +40,6 @@ class ImageOcclusion : PageFragment(R.layout.image_occlusion) { savedInstanceState: Bundle?, ) { super.onViewCreated(view, savedInstanceState) - requireActivity().setTransparentStatusBar() with(requireActivity()) { onBackPressedDispatcher.addCallback(this) { DiscardChangesDialog.showDialog(this@with) { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/PageFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/PageFragment.kt index 6cb97edef933..6c4ca52a3400 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/PageFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/PageFragment.kt @@ -32,7 +32,6 @@ import com.google.android.material.progressindicator.CircularProgressIndicator import com.ichi2.anki.R import com.ichi2.anki.SingleFragmentActivity import com.ichi2.themes.Themes -import com.ichi2.themes.setTransparentStatusBar import timber.log.Timber import kotlin.reflect.KClass @@ -118,7 +117,6 @@ open class PageFragment( setupBridgeCommand(pageWebViewClient) onWebViewCreated(webView) - requireActivity().setTransparentStatusBar() val arguments = requireArguments() val path = requireNotNull(arguments.getString(PATH_ARG_KEY)) { "'$PATH_ARG_KEY' missing" } val title = arguments.getString(TITLE_ARG_KEY) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/Statistics.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/Statistics.kt index d05be8d3feb3..fe80c01dda82 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/Statistics.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/Statistics.kt @@ -37,7 +37,6 @@ import com.ichi2.anki.utils.getTimestamp import com.ichi2.libanki.DeckId import com.ichi2.libanki.DeckNameId import com.ichi2.libanki.utils.TimeManager -import com.ichi2.themes.setTransparentStatusBar import com.ichi2.utils.BundleUtils.getNullableLong class Statistics : @@ -54,7 +53,6 @@ class Statistics : super.onViewCreated(view, savedInstanceState) webView.isNestedScrollingEnabled = true - requireActivity().setTransparentStatusBar() spinner = view.findViewById(R.id.deck_selector) view .findViewById(R.id.app_bar) From 57e107249e30ee4fa142112811eeb0791173f91c Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Sun, 9 Feb 2025 13:24:39 +0000 Subject: [PATCH 024/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-ar/01-core.xml | 8 ++++---- .../src/main/res/values-ar/02-strings.xml | 18 ++++++++--------- .../src/main/res/values-ar/06-statistics.xml | 2 +- .../src/main/res/values-ar/07-cardbrowser.xml | 20 +++++++++---------- .../res/values-ar/16-multimedia-editor.xml | 4 ++-- 5 files changed, 26 insertions(+), 26 deletions(-) diff --git a/AnkiDroid/src/main/res/values-ar/01-core.xml b/AnkiDroid/src/main/res/values-ar/01-core.xml index f813e8da71aa..ad2453e54618 100644 --- a/AnkiDroid/src/main/res/values-ar/01-core.xml +++ b/AnkiDroid/src/main/res/values-ar/01-core.xml @@ -74,11 +74,11 @@ %1$d days %2$dh left - %1$d day %2$dh left - %1$d days %2$dh left + تبقى يوماً %1$d و %2$d ساعة + تبقى يومين %1$d و %2$d ساعة %1$d days %2$dh left %1$d days %2$dh left - %1$d days %2$dh left + تبقى %1$d يومًا و %2$d ساعة المجموعة فارغة ابدأ بإضافة البطاقات\nباستخدام أيقونة +. @@ -141,7 +141,7 @@ هذه الرزمة فارغة بحث عن رزمة اسم رزمة غير صالح - Congratulations! You have finished for today. + مبروك! لقد أتممت مهامك لهذا اليوم. انتهت حصتك المحددة من الرزمة %s لا توجد بطاقات مستحقة بعد لا توجد وحدة تخزين خارجية diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index 55fb3408ba61..cae878827c69 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -85,14 +85,14 @@ اقتصر على وسوم معينة +%d buried - +%d buried + + %d مدفونة +%d buried +%d buried +%d buried +%d buried - Total new cards - Total cards + مجموع البطاقات الجديدة + مجموع البطاقات تعديل الملحوظة تجاهل @@ -292,7 +292,7 @@ تعلم المزيد لم يجد البحث أي نتائج - %s is not a valid JavaScript addon package + %s ليس حزمة جافا سكريبت صالحة فشل إنشاء المجلد %s أرشيف خبيث. يحتوي على مدخلة خارج المجلد الهدف: %s أرشيف خبيث. يتخطى الحجم %1$s أو يحتوي على أكثر من %2$d ملف @@ -321,7 +321,7 @@ ملحوظات تبديل عرض البطاقات/الملحوظات حد ارتفاع كل صف من المتصفح لإظهار أول 3 سطور فقط - Browser options + خيارات المتصفح تم حفظ التسجيل حذف الملحوظات المحددة انقر على صوت للاستماع @@ -356,15 +356,15 @@ تشغيل التالي - 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. Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor - Select deck + اختر رزمة Select note type Tag editor Card Template Editor @@ -373,7 +373,7 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts + اضغط Alt+K لإظهار اختصارات الكيبورد User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ar/06-statistics.xml b/AnkiDroid/src/main/res/values-ar/06-statistics.xml index a50118f626c8..95eb7b2acc73 100644 --- a/AnkiDroid/src/main/res/values-ar/06-statistics.xml +++ b/AnkiDroid/src/main/res/values-ar/06-statistics.xml @@ -44,5 +44,5 @@ ~ this program. If not, see . --> - Open statistics + افتح صفحة الاحصائيات diff --git a/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml index 92ceec0165df..6b2d7be0ec1e 100644 --- a/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml @@ -82,11 +82,11 @@ اسم عبارة البحث الحالية لا يمكنك حفظ عبارة بحث بدون اسم الاسم موجود - No note to edit + لا يوجد ملحوظات لتعديلها هل تريد حذف “%1$s”؟ تغيير ترتيب العرض - Search - Search + بحث + بحث اختر ترتيب العرض وسوم @@ -134,12 +134,12 @@ Edit tags dialog - Show order dialog + إظهار مربع حوار الطلب - Columns - Manage columns - Active - Available - Include column - Exclude column + أعمدة + إدارة الأعمدة + فعال + متوفر + إضافة عمود + استخراج عمود diff --git a/AnkiDroid/src/main/res/values-ar/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-ar/16-multimedia-editor.xml index 730c53900f45..c75fb20fa3b7 100644 --- a/AnkiDroid/src/main/res/values-ar/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-ar/16-multimedia-editor.xml @@ -69,8 +69,8 @@ هل تريد قص هذه الصورة؟ قص الصورة - Current image size is %sMB. Default image size limit is 1MB. Do you want to compress it? + حجم الصورة الحالي هو %s ميغابايت. حد الحجم الافتراضي هو 1 ميغابايت. هل تريد ضغطها؟ "فشل تحديد الصورة، الرجاء إعادة المحاولة" محتويات الحقل - Reselect + إعادة الاختيار From e5f9af17092f0b1f0e96c537fae8ab96b0b27370 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sun, 12 Jan 2025 17:39:52 -0300 Subject: [PATCH 025/200] remove `Alt + K` keyboard dialog shortcut issue 17633 --- .../main/java/com/ichi2/anki/AnkiActivity.kt | 39 +------------------ .../main/java/com/ichi2/anki/CardBrowser.kt | 4 -- .../com/ichi2/anki/android/input/Shortcut.kt | 13 ------- AnkiDroid/src/main/res/values/02-strings.xml | 2 - .../test/java/com/ichi2/anki/ShortcutTest.kt | 34 ---------------- 5 files changed, 1 insertion(+), 91 deletions(-) delete mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/ShortcutTest.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt index bc89e7d2a9cf..11d5d47cab9b 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt @@ -16,7 +16,6 @@ import android.media.AudioManager import android.net.Uri import android.os.Build import android.os.Bundle -import android.view.KeyEvent import android.view.KeyboardShortcutGroup import android.view.Menu import android.view.MenuItem @@ -47,13 +46,11 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import com.google.android.material.color.MaterialColors -import com.google.android.material.snackbar.Snackbar import com.ichi2.anim.ActivityTransitionAnimation import com.ichi2.anim.ActivityTransitionAnimation.Direction import com.ichi2.anim.ActivityTransitionAnimation.Direction.DEFAULT import com.ichi2.anim.ActivityTransitionAnimation.Direction.NONE import com.ichi2.anki.analytics.UsageAnalytics -import com.ichi2.anki.android.input.Shortcut import com.ichi2.anki.android.input.ShortcutGroup import com.ichi2.anki.android.input.ShortcutGroupProvider import com.ichi2.anki.android.input.shortcut @@ -658,26 +655,13 @@ open class AnkiActivity : super.onProvideKeyboardShortcuts(data, menu, deviceId) } - /** - * Shows keyboard shortcuts dialog - */ - fun showKeyboardShortcutsDialog() { - val shortcutsGroup = getShortcuts() - // Don't show keyboard shortcuts dialog if there is no available shortcuts and also - // if there's 1 item because shortcutsGroup always includes generalShortcutGroup. - if (shortcutsGroup.size <= 1) return - Timber.i("displaying keyboard shortcut screen") - requestShowKeyboardShortcuts() - } - /** * Get current activity keyboard shortcuts */ - fun getShortcuts(): List { + private fun getShortcuts(): List { val generalShortcutGroup = ShortcutGroup( listOf( - shortcut("Alt+K", R.string.show_keyboard_shortcuts_dialog), shortcut("Ctrl+Z", R.string.undo), ), R.string.pref_cat_general, @@ -686,27 +670,6 @@ open class AnkiActivity : return listOfNotNull(shortcuts?.toShortcutGroup(this), generalShortcutGroup) } - override fun onKeyUp( - keyCode: Int, - event: KeyEvent, - ): Boolean { - if (event.isAltPressed && keyCode == KeyEvent.KEYCODE_K) { - showKeyboardShortcutsDialog() - return true - } - - val done = super.onKeyUp(keyCode, event) - - if (done || shortcuts == null) return false - - // Show snackbar only if the current activity have shortcuts, a modifier key is pressed and the keyCode is an unmapped alphabet or num key - if (Shortcut.isPotentialShortcutCombination(event, keyCode)) { - showSnackbar(R.string.show_shortcuts_message, Snackbar.LENGTH_SHORT) - return true - } - return false - } - /** * If storage permissions are not granted, shows a toast message and finishes the activity. * diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt index b64235d6edc1..16c82dc468a5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt @@ -654,10 +654,6 @@ open class CardBrowser : Timber.i("Ctrl+K: Toggle Mark") toggleMark() return true - } else if (event.isAltPressed) { - Timber.i("Alt+K: Show keyboard shortcuts dialog") - showKeyboardShortcutsDialog() - return true } } KeyEvent.KEYCODE_R -> { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/android/input/Shortcut.kt b/AnkiDroid/src/main/java/com/ichi2/anki/android/input/Shortcut.kt index 0df74146e4a9..884e1d6a6041 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/android/input/Shortcut.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/android/input/Shortcut.kt @@ -19,7 +19,6 @@ package com.ichi2.anki.android.input import android.view.KeyEvent import android.view.KeyboardShortcutInfo -import androidx.annotation.CheckResult import androidx.annotation.StringRes import com.ichi2.anki.AnkiActivityProvider import com.ichi2.anki.CollectionManager.TR @@ -77,18 +76,6 @@ data class Shortcut( in "0".."9" -> KeyEvent.KEYCODE_0 + (key.toInt() - 0) // Handle number keys else -> KeyEvent.keyCodeFromString(key) } - - companion object { - @CheckResult - fun isPotentialShortcutCombination( - event: KeyEvent, - keyCode: Int, - ): Boolean { - if (!(event.isCtrlPressed || event.isAltPressed || event.isMetaPressed)) return false - return (keyCode in KeyEvent.KEYCODE_A..KeyEvent.KEYCODE_Z) || - (keyCode in KeyEvent.KEYCODE_NUMPAD_0..KeyEvent.KEYCODE_NUMPAD_9) - } - } } /** diff --git a/AnkiDroid/src/main/res/values/02-strings.xml b/AnkiDroid/src/main/res/values/02-strings.xml index b1633eb806c5..be0b47418a9e 100644 --- a/AnkiDroid/src/main/res/values/02-strings.xml +++ b/AnkiDroid/src/main/res/values/02-strings.xml @@ -399,7 +399,6 @@ opening the system text to speech settings fails"> Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -413,7 +412,6 @@ opening the system text to speech settings fails"> Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ShortcutTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ShortcutTest.kt deleted file mode 100644 index a5a1a8119a5d..000000000000 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ShortcutTest.kt +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (c) 2024 David Allison - * - * 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 - -import android.view.KeyEvent -import com.ichi2.anki.android.input.Shortcut -import org.mockito.kotlin.mock -import kotlin.test.Test -import kotlin.test.assertFalse - -class ShortcutTest { - val keyEventWithNoModifiers: KeyEvent = mock { } - - @Test - fun `single number is not a shortcut hint`() { - assertFalse( - Shortcut.isPotentialShortcutCombination(keyEventWithNoModifiers, KeyEvent.KEYCODE_NUMPAD_1), - ) - } -} From baf31be77302ba256ac20fdd92c67556c2cd3d18 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sun, 9 Feb 2025 09:39:10 -0300 Subject: [PATCH 026/200] feat: Show keyboard shortcuts preference it shows up the system dialog with the available shortcuts if the user has a physical keyboard attached. It helps the discoverability of keyboard shortcuts along the app. After the user knows that the app has keyboard shortcuts, they can use the system shortcut (which can be seen in the dialog itself) in any other screen to see the available shortcuts there --- .../anki/preferences/ControlsSettingsFragment.kt | 12 ++++++++++++ AnkiDroid/src/main/res/drawable/ic_keyboard.xml | 5 +++++ AnkiDroid/src/main/res/values/10-preferences.xml | 1 + AnkiDroid/src/main/res/values/preferences.xml | 1 + AnkiDroid/src/main/res/xml/preferences_controls.xml | 11 +++++++++-- .../ichi2/anki/analytics/PreferencesAnalyticsTest.kt | 1 + 6 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 AnkiDroid/src/main/res/drawable/ic_keyboard.xml diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt index 6e223c9d3dc8..7df837ebf0f0 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt @@ -15,7 +15,9 @@ */ package com.ichi2.anki.preferences +import android.content.res.Configuration import androidx.annotation.StringRes +import androidx.preference.Preference import com.ichi2.anki.CollectionManager.TR import com.ichi2.anki.R import com.ichi2.anki.cardviewer.ViewerCommand @@ -41,6 +43,16 @@ class ControlsSettingsFragment : SettingsFragment() { .forEach { pref -> pref.value = commands[pref.key]?.defaultValue?.toPreferenceString() } setDynamicTitle() + + // TODO replace the preference with something dismissible. This is meant only to improve + // the discoverability of the system shortcut for the shortcuts dialog. + requirePreference(R.string.pref_keyboard_shortcuts_key).apply { + isVisible = resources.configuration.keyboard == Configuration.KEYBOARD_QWERTY + setOnPreferenceClickListener { + requireActivity().requestShowKeyboardShortcuts() + true + } + } } private fun setDynamicTitle() { diff --git a/AnkiDroid/src/main/res/drawable/ic_keyboard.xml b/AnkiDroid/src/main/res/drawable/ic_keyboard.xml new file mode 100644 index 000000000000..121be9b643e8 --- /dev/null +++ b/AnkiDroid/src/main/res/drawable/ic_keyboard.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/AnkiDroid/src/main/res/values/10-preferences.xml b/AnkiDroid/src/main/res/values/10-preferences.xml index f94e06889400..c90430f1c029 100644 --- a/AnkiDroid/src/main/res/values/10-preferences.xml +++ b/AnkiDroid/src/main/res/values/10-preferences.xml @@ -74,6 +74,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values/preferences.xml b/AnkiDroid/src/main/res/values/preferences.xml index 763685ea379e..a818352e19fa 100644 --- a/AnkiDroid/src/main/res/values/preferences.xml +++ b/AnkiDroid/src/main/res/values/preferences.xml @@ -84,6 +84,7 @@ gestures gestureCornerTouch gestureFullScreenNavigationDrawer + showKeyboardShortcuts swipeSensitivity binding_SHOW_ANSWER binding_FLIP_OR_ANSWER_EASE1 diff --git a/AnkiDroid/src/main/res/xml/preferences_controls.xml b/AnkiDroid/src/main/res/xml/preferences_controls.xml index 47433f2b0cbc..3cd8bbdec0c5 100644 --- a/AnkiDroid/src/main/res/xml/preferences_controls.xml +++ b/AnkiDroid/src/main/res/xml/preferences_controls.xml @@ -20,7 +20,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:title="@string/pref_cat_controls" - android:key="@string/pref_controls_screen_key"> + android:key="@string/pref_controls_screen_key" + tools:context=".preferences.ControlsSettingsFragment"> + app:displayValue="true" /> + + Date: Sun, 9 Feb 2025 14:35:17 +0000 Subject: [PATCH 027/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-af/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-am/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-am/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ar/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ar/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-az/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-az/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-be/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-be/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-bg/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-bg/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-bn/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-bn/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ca/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ca/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ckb/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ckb/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-cs/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-cs/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-da/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-da/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-de/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-de/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-el/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-el/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-eo/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-eo/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-es-rAR/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-es-rES/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-es-rES/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-et/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-et/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-eu/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-eu/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-fa/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-fa/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-fi/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-fi/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-fil/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-fil/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-fr/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-fr/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-fy/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-fy/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ga/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ga/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-gl/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-gl/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-got/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-got/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-gu/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-gu/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-heb/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-heb/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-hi/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-hi/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-hr/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-hr/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-hu/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-hu/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-hy/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-hy/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ind/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ind/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-is/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-is/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-it/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-it/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-iw/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-iw/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ja/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ja/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-jv/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-jv/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ka/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ka/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-kk/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-kk/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-km/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-km/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-kn/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-kn/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ko/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ko/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ku/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ku/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ky/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ky/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-lt/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-lt/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-lv/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-lv/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-mk/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-mk/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ml/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ml/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-mn/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-mn/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-mr/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-mr/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ms/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ms/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-my/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-my/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-nl/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-nl/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-nn/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-nn/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-no/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-no/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-or/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-or/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-pa/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-pa/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-pl/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-pl/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ro/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ro/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ru/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ru/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sat/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sat/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sc/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sc/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sk/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sk/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sl/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sl/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sq/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sq/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sr/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sr/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ss/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ss/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sv/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sv/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-sw/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-sw/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ta/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ta/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-te/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-te/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-tg/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-tg/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-tgl/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-tgl/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-th/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-th/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ti/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ti/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-tn/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-tn/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-tr/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-tr/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ts/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ts/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-tt/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-tt/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ug/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ug/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-uk/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-uk/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ur/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ur/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-uz/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-uz/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-ve/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-ve/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-vi/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-vi/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-wo/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-wo/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-xh/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-xh/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-yue/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-yue/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml | 1 + AnkiDroid/src/main/res/values-zu/02-strings.xml | 2 -- AnkiDroid/src/main/res/values-zu/10-preferences.xml | 1 + 188 files changed, 94 insertions(+), 188 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml index 173e3fa907bf..00b1ee0167b9 100644 --- a/AnkiDroid/src/main/res/values-af/02-strings.xml +++ b/AnkiDroid/src/main/res/values-af/02-strings.xml @@ -336,7 +336,6 @@ Die verwydering van hierdie kaarttipe sal sommige notas sonder enige kaarte laat. Stem word nie ondersteun nie. Probeer \'n ander of installeer \'n stem-enjin - Wys sleutelbordkortpaaie dialoog Pak-Selektor Verwyder dek sonder bevestiging NotaRedakteur @@ -349,7 +348,6 @@ Wysig stilering Kopieer sjabloon as markdown Wysig kaartblaaier voorkoms - Druk Alt+K om sleutelbordkortpaaie te wys Gebruikerhandeling %s is nie in hierdie notatipe gestel nie. Stel dit asseblief op Lees meer oor hoe om toegang hier te herstel %s of gaan na instellings om versameling vouer op te dateer. diff --git a/AnkiDroid/src/main/res/values-af/10-preferences.xml b/AnkiDroid/src/main/res/values-af/10-preferences.xml index 9e46aa0e97f6..bc44eda2bc86 100644 --- a/AnkiDroid/src/main/res/values-af/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-af/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-am/02-strings.xml +++ b/AnkiDroid/src/main/res/values-am/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-am/10-preferences.xml b/AnkiDroid/src/main/res/values-am/10-preferences.xml index 405cc5ef8676..e17a1240c9b2 100644 --- a/AnkiDroid/src/main/res/values-am/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-am/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index cae878827c69..9afef1f578c5 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -360,7 +360,6 @@ حذف هذا النوع من البطاقات سيترك بعض الملحوظات بدون أي بطاقة. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -373,7 +372,6 @@ Edit styling Copy template as markdown Edit browser appearance - اضغط Alt+K لإظهار اختصارات الكيبورد User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ar/10-preferences.xml b/AnkiDroid/src/main/res/values-ar/10-preferences.xml index 8ebf298363a8..ff11a88db0a2 100644 --- a/AnkiDroid/src/main/res/values-ar/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ar/10-preferences.xml @@ -101,6 +101,7 @@ تعيين إيماءات إلى إجراءات مثل إجابة البطاقات وتحريرها. لمس بحجم 9 نقاط السماح بإيماءات اللمس في حواف الشاشة + Show keyboard shortcuts قائمة تجول ملء الشاشة فتح قائمة التجول عند السحب لليمين من أي مكان في الشاشة لا شَيْء diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml index e00a1e228734..8e2ca32d2de3 100644 --- a/AnkiDroid/src/main/res/values-az/02-strings.xml +++ b/AnkiDroid/src/main/res/values-az/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-az/10-preferences.xml b/AnkiDroid/src/main/res/values-az/10-preferences.xml index e1b54b987803..8065f6b15c1d 100644 --- a/AnkiDroid/src/main/res/values-az/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-az/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index b1a5533ccd2b..8a8441957501 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -344,7 +344,6 @@ Выдаленне гэтага тыпу карткі пакіне некаторыя нататкі без ніводнай карткі. Падтрымка голасу адсутнічае. Паспрабуйце іншы рухавік голасу або пераўсталюйце бягучы. - Паказаць дыялогавае акно з камбінацыямі клавіш Выбар калоды Выдаліць калоду без пацвярджэння Рэдактар запісу @@ -357,7 +356,6 @@ Рэдагаваць стыль Капіяваць стыль як разметку Рэдагаваць выгляд браўзера - Націсніце Alt+K, каб убачыць спалучэнні клавіш User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-be/10-preferences.xml b/AnkiDroid/src/main/res/values-be/10-preferences.xml index a102939335ae..2f26fbe1f595 100644 --- a/AnkiDroid/src/main/res/values-be/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-be/10-preferences.xml @@ -99,6 +99,7 @@ Прызначыць жэсты для такіх дзеянняў, як адказ і рэдагаванне картак. 9-пунктавы дотык Дазволіць сэнсарныя жэсты ў вуглах экрана + Show keyboard shortcuts Поўнаэкранная панэль навігацыі Адкрываць навігацыйную панэль пры правядзенні ўправа ў любым месцы экрана. Няма diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml index 446e29489d19..c98e752b53f4 100644 --- a/AnkiDroid/src/main/res/values-bg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-bg/10-preferences.xml b/AnkiDroid/src/main/res/values-bg/10-preferences.xml index 00ea5a48922b..3bb5e020f5fe 100644 --- a/AnkiDroid/src/main/res/values-bg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bg/10-preferences.xml @@ -97,6 +97,7 @@ Използване на жестове за такива действия като отговор и редактиране на карти. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index 6650e6b1d34f..b5ade427404c 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -330,7 +330,6 @@ এই কার্ডের ধরন মুছে ফেলার ফলে কোনো কার্ড ছাড়াই কিছু নোট চলে যাবে। ভয়েস সমর্থিত নয়। অন্য একটি চেষ্টা করুন বা একটি ভয়েস ইঞ্জিন ইনস্টল করুন৷ - কীবোর্ড শর্টকাট ডায়ালগ দেখান ডেক পিকার নিশ্চিতকরণ ছাড়াই ডেক মুছুন নোট সম্পাদক @@ -343,7 +342,6 @@ স্টাইলিং সম্পাদনা করুন টেমপ্লেটটিকে মার্কডাউন হিসাবে অনুলিপি করুন ব্রাউজারের চেহারা সম্পাদনা করুন - কীবোর্ড শর্টকাট দেখাতে Alt+K টিপুন এই নোটের প্রকারে ব্যবহারকারীর ক্রিয়া %s সেট নেই। এটি কনফিগার করুন Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-bn/10-preferences.xml b/AnkiDroid/src/main/res/values-bn/10-preferences.xml index 832389742366..61101dd5567f 100644 --- a/AnkiDroid/src/main/res/values-bn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bn/10-preferences.xml @@ -98,6 +98,7 @@ উত্তর দেওয়া এবং কার্ড সম্পাদনা করার মতো কাজে অঙ্গভঙ্গি বরাদ্দ করুন। 9-পয়েন্ট স্পর্শ স্ক্রিনের কোণে স্পর্শ অঙ্গভঙ্গির অনুমতি দিন + Show keyboard shortcuts ফুল স্ক্রিন নেভিগেশন ড্রয়ার স্ক্রিনের যেকোনো জায়গা থেকে ডানদিকে সোয়াইপ করলে নেভিগেশন ড্রয়ার খুলে যায় তাদের কেউ না diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index b0d860cb75cd..55f3b236ec60 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Editor de notes @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ca/10-preferences.xml b/AnkiDroid/src/main/res/values-ca/10-preferences.xml index 20241ac8ee6a..783c83469af3 100644 --- a/AnkiDroid/src/main/res/values-ca/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ca/10-preferences.xml @@ -97,6 +97,7 @@ Assignar gestos a accions com cartes de resposta i d\'edició. Tacte de 9 punts Permet gestos tàctils a les cantonades de la pantalla + Show keyboard shortcuts Carpeta de navegació a pantalla completa Obriu la carpeta de navegació quan llisqueu a la dreta des de qualsevol lloc de la pantalla Cap diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index f5317f409b3c..bf0167b55ac7 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml index c3baeae1db45..03744990f8ef 100644 --- a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index ee38b2198bb6..63ce62178b7e 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -348,7 +348,6 @@ Smazání tohoto typu karty zanechá některé poznámky bez jakýchkoliv karet. Hlas není podporován. Zkuste jiný nebo nainstalujte hlasový modul. - Show keyboard shortcuts dialog Výběr balíčků Delete deck without confirmation Note Editor @@ -361,7 +360,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts Akce uživatele %s není v tomto typu poznámky nastavena. Nakonfigurujte ji prosím Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-cs/10-preferences.xml b/AnkiDroid/src/main/res/values-cs/10-preferences.xml index 4e64a9d8da8b..f305d8d1359e 100644 --- a/AnkiDroid/src/main/res/values-cs/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-cs/10-preferences.xml @@ -99,6 +99,7 @@ Přiřazení gest akcím, jako je odpovídání a úprava karet Devítibodový dotyk Povolí dotyková gesta v rozích obrazovky + Show keyboard shortcuts Navigační menu v režimu celé obrazovky Otevřít navigační menu, když se táhne doprava kdekoliv na obrazovce Žádné diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml index 3b1587a83e89..9098e4dd1f79 100644 --- a/AnkiDroid/src/main/res/values-da/02-strings.xml +++ b/AnkiDroid/src/main/res/values-da/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-da/10-preferences.xml b/AnkiDroid/src/main/res/values-da/10-preferences.xml index 87663f1f6c93..8acca7451601 100644 --- a/AnkiDroid/src/main/res/values-da/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-da/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index 6964cf49153d..e06bb0b7440b 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -336,7 +336,6 @@ Das Löschen dieses Kartentyps wird einige Notizen ohne Karten hinterlassen. Stimme nicht unterstützt. Versuchen Sie eine andere oder installieren Sie eine Sprach-Engine. - Tastenkombinationen-Dialog anzeigen Stapelauswähler Stapel ohne Bestätigung löschen Notizeditors @@ -349,7 +348,6 @@ Stil bearbeiten Template als markdown kopieren Browser-erscheinungsbild bearbeiten - Drücken Sie Alt+K, um tastenkombinationen anzuzeigen Benutzeraktion %s ist in diesem notiztyp nicht festgelegt. Bitte konfigurieren Sie es Erfahren Sie hier %s mehr darüber, wie Sie den Zugriff wiederherstellen können, oder gehen Sie zu den Einstellungen, um den Sammlungsordner zu aktualisieren. diff --git a/AnkiDroid/src/main/res/values-de/10-preferences.xml b/AnkiDroid/src/main/res/values-de/10-preferences.xml index 113b05defdf9..ebca1adcae1a 100644 --- a/AnkiDroid/src/main/res/values-de/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-de/10-preferences.xml @@ -97,6 +97,7 @@ Weise Aktionen, wie zum Beispiel Beantworten oder Bearbeiten der Karten, Gesten zu. 9-Punkt-Berührung Berührungsgesten in Bildschirmecken erlauben + Show keyboard shortcuts Vollbild-Navigationsleiste Navigationsleiste öffnen, wenn rechts von überall auf dem Bildschirm gewischt wird Keine diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index d2dfce556e2b..8b7ff2dfab9d 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -336,7 +336,6 @@ Διαγράφοντας αυτόν τον τύπο κάρτας θα αφήσετε κάποιες σημειώσεις χωρίς κάρτες. Voice not supported. Try another or install a voice engine. - Εμφάνιση διαλόγου συντομεύσεων πληκτρολογίου Deck Picker Διαγραφή τράπουλας χωρίς επιβεβαίωση Επεξεργασία Σημείωσης @@ -349,7 +348,6 @@ Επεξεργασία μορφοποίησης Copy template as markdown Επεξεργασία εμφάνισης περιηγητή - Πατήστε Alt+K για να εμφανίσετε συντομεύσεις πληκτρολογίου User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-el/10-preferences.xml b/AnkiDroid/src/main/res/values-el/10-preferences.xml index ac6e0caa6f75..2dc449912605 100644 --- a/AnkiDroid/src/main/res/values-el/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-el/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. Αφή 9 σημείων Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index 1d88f9b09982..36320a96c307 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -330,7 +330,6 @@ Forigi tiun ĉi kart-tipon kaŭzos, ke kelkaj notoj havos neniun karton. Voĉo ne estas subtenata. Elektu alian aŭ instalu parolsintezilon. - Montri la ekranon “ŝparklavoj” Kartar-elektilo Forigi kartaron senkonfirme Redaktilo de notoj @@ -343,7 +342,6 @@ Redakti stilon Kopii ŝablonon kiel Markdown Redakti aspekton de kart-foliumilo - Premu Alt+K por montri ŝparklavojn La ago de uzanto “%s” ne estas agordita por tiu ĉi nototipo. Agordu ĝin. Sciiĝu pli pri kiel restarigi aliron ĉe %s aŭ malfermu agordojn kaj ŝanĝu la dosierujon por kolekto. diff --git a/AnkiDroid/src/main/res/values-eo/10-preferences.xml b/AnkiDroid/src/main/res/values-eo/10-preferences.xml index 9eef089a5b50..18f975a55952 100644 --- a/AnkiDroid/src/main/res/values-eo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eo/10-preferences.xml @@ -97,6 +97,7 @@ Asigni gestojn al agoj, kiel respondi aŭ redakti karton. 9-punkta frapeto Ebligi gestojn en anguloj de la ekrano + Show keyboard shortcuts Naviga tirmenuo sur plenekrano Malfermi navigan tirmenuon per ŝovumi dekstren sur la plenekrano Neniu 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 173ff3d56a8d..0a6c45396b8a 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -335,7 +335,6 @@ Eliminar este tipo de tarjeta dejará algunas notas sin ninguna tarjeta. Voice not supported. Try another or install a voice engine. - Mostrar diálogo de atajos de teclado Selector de Mazos Eliminar mazo sin confirmación Editor de Notas @@ -348,7 +347,6 @@ Editar estilo Copiar plantilla como markdown Editar apariencia del navegador - Presiona Alt+K para mostrar los atajos del teclado La acción del usuario %s no está establecida en este tipo de notas. Por favor, configúrala Obtén más información sobre cómo restaurar el acceso aquí %s o ve a la configuración para actualizar la carpeta de colección. diff --git a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml index 0e70569e3799..1812f53607ca 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml @@ -97,6 +97,7 @@ Asignar gestos a acciones tales como contestar o editar tarjetas. Toque de 9 puntos Permitir gestos táctiles en las esquinas de pantalla + Show keyboard shortcuts Panel de navegación a pantalla completa Abrir el panel de navegación cuando se desliza a la derecha desde cualquier lugar de la pantalla Ninguno 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 b96eb3f63a37..58b0c40c2df8 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -335,7 +335,6 @@ Eliminar este tipo de tarjeta dejará algunas notas sin ninguna tarjeta. Voice not supported. Try another or install a voice engine. - Mostrar diálogo de atajos de teclado Selector de Mazos Eliminar mazo sin confirmación Editor de Notas @@ -348,7 +347,6 @@ Editar estilo Copiar plantilla como markdown Editar apariencia del navegador - Presiona Alt+K para mostrar los atajos del teclado La acción del usuario %s no está establecida en este tipo de notas. Por favor, configúrala Obtén más información sobre cómo restaurar el acceso aquí %s o ve a la configuración para actualizar la carpeta de colección. diff --git a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml index 4dfd177470be..65d807bcc812 100644 --- a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml @@ -97,6 +97,7 @@ Asignar gestos a acciones tales como contestar o editar tarjetas. Toque de 9 puntos Permitir gestos táctiles en las esquinas de pantalla + Show keyboard shortcuts Panel de navegación a pantalla completa Abrir el cajón de navegación cuando se desliza a la derecha desde cualquier lugar de la pantalla Ninguno diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml index 520b474aa1f5..5015d5ce678d 100644 --- a/AnkiDroid/src/main/res/values-et/02-strings.xml +++ b/AnkiDroid/src/main/res/values-et/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-et/10-preferences.xml b/AnkiDroid/src/main/res/values-et/10-preferences.xml index 0e0133db192c..c4459c409dc3 100644 --- a/AnkiDroid/src/main/res/values-et/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-et/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml index ab4db461c9aa..9161b003e195 100644 --- a/AnkiDroid/src/main/res/values-eu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-eu/10-preferences.xml b/AnkiDroid/src/main/res/values-eu/10-preferences.xml index c760c76799e4..7451f7b1bffd 100644 --- a/AnkiDroid/src/main/res/values-eu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eu/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index d4822003c447..a8a9f367f236 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -336,7 +336,6 @@ حذف این نوع کارت باعث بی کارت شدن بعضی یادداشت ها می شود صدای انتخاب شده همایت شده نیست. یکی دیگر را انتخاب کنید یا یک موتور صدا نصب کنید. - نمایش کادر محاوره‌ای میانبرهای کیبرد انتخاب کننده دسته دسته را بدون تایید حذف کن ویرایشگر یادداشت @@ -349,7 +348,6 @@ ویرایش طراحی ویرایش قالب به عنوان مارک‌داون ویرایش ظاهر مرورگر - برای نمایش میانبر های کیبرد دکمه های Alt+K را فشار دهید عمل کاربر %s در این نوع کارت تنظیم نشده است. لطفاً آن را پیکربندی کنید. برای کسب اطلاعات بیشتر در مورد نحوه بازیابی دسترسی اینجا %s را ببینید یا به تنظیمات بروید تا پوشه مجموعه را به‌روزرسانی کنید. diff --git a/AnkiDroid/src/main/res/values-fa/10-preferences.xml b/AnkiDroid/src/main/res/values-fa/10-preferences.xml index e4a20d14541b..56b7e06769c8 100644 --- a/AnkiDroid/src/main/res/values-fa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fa/10-preferences.xml @@ -97,6 +97,7 @@ استفاده از حرکات و ضربات لمسی برای انجام کارهایی مثل پاسخ دادن و ویرایش کارت‌ها. لمس صفحه 9 قسمت اجازه بده برای حرکات لمس در گوشه های صفحه + Show keyboard shortcuts کشوی جهت‌یابی در کل صفحه کشو ی جهت یابی را باز کن وقتی صفحه را به سمت راست می کشم هیچ کدام diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index a57db3934721..5eccc95f5100 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -333,7 +333,6 @@ Tämän korttityypin poistaminen jättää joitakin muistiinpanoja ilman kortteja. Ääntä ei tueta. Kokeile toista tai asenna äänimoottori. - Näytä näppäinoikoteiden valintaikkuna Pakan valitsija Poista pakka ilman vahvistusta Muistiinpanoeditori @@ -346,7 +345,6 @@ Muokkaa tyyliä Kopioi mallipohja Markdownina Muokkaa selaimen ulkoasua - Paina Alt+K näyttääksesi näppäinoikotiet Käyttäjän toimea %s ei ole määritetty tässä muistiinpanotyypissä. Määritä se Lue lisää siitä, miten palauttaa pääsy tänne (%s) tai siirry asetuksiin vaihtaaksesi kokoelmakansiota diff --git a/AnkiDroid/src/main/res/values-fi/10-preferences.xml b/AnkiDroid/src/main/res/values-fi/10-preferences.xml index 7ffae0db66d1..4b01fd930439 100644 --- a/AnkiDroid/src/main/res/values-fi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fi/10-preferences.xml @@ -97,6 +97,7 @@ Liitä eleitä toimintoihin, kuten vastaamiseen ja korttien muokkaamiseen. 9 pisteen kosketus Käytä kosketuseleitä näytön kulmissa + Show keyboard shortcuts Koko näytön navigointivalikko Avaa navigointivalikko pyyhkäisemällä oikealle mistä tahansa näytöllä Ei mitään diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index c73e55c644b5..0055eff188af 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -335,7 +335,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Pagpipilian ng Deck Delete deck without confirmation Note Editor @@ -348,7 +347,6 @@ Edit styling Copy template as markdown Baguhin ang anyo ng browser - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-fil/10-preferences.xml b/AnkiDroid/src/main/res/values-fil/10-preferences.xml index 004092c92457..8c4ee628bddb 100644 --- a/AnkiDroid/src/main/res/values-fil/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fil/10-preferences.xml @@ -97,6 +97,7 @@ Magtalaga ng mga kilos sa mga pagkilos tulad ng pagsagot at pag-edit ng mga card. 9 na puntong pagpindot Pahintulutan ang mga gestures sa kanto ng screen + Show keyboard shortcuts Buong screen na kahon pangnabigasyon Buksan ang kahon pangnabigasyon tuwing sumaswipe pakanan mula sa kahit saang parte ng screen. Wala diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index 31d12afed02f..6e36218c733a 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -336,7 +336,6 @@ Supprimer ce type de carte laissera certaines notes sans cartes. Voix non prise en charge. Essayez une autre ou installez un moteur vocal. - Afficher la boîte de dialogue des raccourcis clavier Sélecteur de paquet Supprimer le paquet sans confirmation Éditeur de notes @@ -349,7 +348,6 @@ Modifier le style Copier le modèle en markdown Modifier l’apparence du navigateur - Appuyez sur Alt+K pour afficher les raccourcis clavier L’action utilisateur %s n’est pas définie dans ce type de note. Veuillez la configurer. En savoir plus sur la restauration de l’accès ici %s ou allez dans les paramètres pour mettre à jour le dossier de collection. diff --git a/AnkiDroid/src/main/res/values-fr/10-preferences.xml b/AnkiDroid/src/main/res/values-fr/10-preferences.xml index 19ed82363592..75ff3051933d 100644 --- a/AnkiDroid/src/main/res/values-fr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fr/10-preferences.xml @@ -97,6 +97,7 @@ Assigner des gestes à des actions comme répondre et éditer des cartes. Écran tactile à 9 points Autoriser les gestes dans les coins de l\'écran + Show keyboard shortcuts Panneau de navigation plein écran Ouvrir le panneau de navigation lors d\'un balayage vers la droite de n\'importe où sur l\'écran Aucun diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml index ef980f4c265c..0312c01494d1 100644 --- a/AnkiDroid/src/main/res/values-fy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-fy/10-preferences.xml b/AnkiDroid/src/main/res/values-fy/10-preferences.xml index c1c15ed30278..d5568cd30c8c 100644 --- a/AnkiDroid/src/main/res/values-fy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fy/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml index 63b8aa576545..5865ca902e25 100644 --- a/AnkiDroid/src/main/res/values-ga/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml @@ -354,7 +354,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -367,7 +366,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ga/10-preferences.xml b/AnkiDroid/src/main/res/values-ga/10-preferences.xml index c48bb5404292..c2b0edb43b43 100644 --- a/AnkiDroid/src/main/res/values-ga/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ga/10-preferences.xml @@ -100,6 +100,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml index 59d2fd5fbff7..4deb87a46bed 100644 --- a/AnkiDroid/src/main/res/values-gl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-gl/10-preferences.xml b/AnkiDroid/src/main/res/values-gl/10-preferences.xml index bd7555a99de2..1af8740e08f9 100644 --- a/AnkiDroid/src/main/res/values-gl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gl/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml index 5edb2d48f426..57718e603778 100644 --- a/AnkiDroid/src/main/res/values-got/02-strings.xml +++ b/AnkiDroid/src/main/res/values-got/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-got/10-preferences.xml b/AnkiDroid/src/main/res/values-got/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-got/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-got/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml index db8aa08daabd..f53899ef298e 100644 --- a/AnkiDroid/src/main/res/values-gu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml @@ -335,7 +335,6 @@ இந்த கார்டு வகையை நீக்கினால் சில குறிப்புகள் கார்டு இல்லாமல் இருக்கும். குரல் மெமோ ஆதரிக்கப்படுகிறது. மற்றொரு குரல் இயந்திரத்தை நிறுவ முயற்சிக்கவும். - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -348,7 +347,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-gu/10-preferences.xml b/AnkiDroid/src/main/res/values-gu/10-preferences.xml index 07cdcdccf1a3..1fe408e723d2 100644 --- a/AnkiDroid/src/main/res/values-gu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gu/10-preferences.xml @@ -97,6 +97,7 @@ જવાબ આપવા અને કાર્ડ સંપાદિત કરવા જેવી ક્રિયાઓ માટે હાવભાવ સોંપો. 9-પોઇન્ટ ટચ સ્ક્રીનના ખૂણામાં સ્પર્શ હાવભાવને મંજૂરી આપો + Show keyboard shortcuts પૂર્ણ સ્ક્રીન નેવિગેશન ડ્રોઅર સ્ક્રીન પર ગમે ત્યાંથી જમણે સ્વાઇપ કરવામાં આવે ત્યારે નેવિગેશન ડ્રોઅર ખોલો કોઈ નથી diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index 414a5a8e8bd4..051ffddf45c0 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -342,7 +342,6 @@ מחיקת סוג כרטיס זה תשאיר כמה הערות ללא כרטיס. קול אינו נתמך. נסה אחר או התקן מנוע קול. - הצג חלון קיצורי מקלדת בוחר החפיסה מחק את החפיסה ללא אישור עורך הערות @@ -355,7 +354,6 @@ ערוך סגנון העתק תבנית כסימון ערוך את מראה הדפדפן - הקש Alt+K כדי להציג קיצורי מקשים פעולת המשתמש %s לא מוגדרת בסוג הערה זה. אנא הגדר אותו למד עוד על איך לשחזר גישה כאן %s או עבור להגדרות כדי לעדכן את תיקיית האוסף. diff --git a/AnkiDroid/src/main/res/values-heb/10-preferences.xml b/AnkiDroid/src/main/res/values-heb/10-preferences.xml index d18a271836f2..aa0da3be6486 100644 --- a/AnkiDroid/src/main/res/values-heb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-heb/10-preferences.xml @@ -99,6 +99,7 @@ שיוך מחוות לפעולות כגון מענה ועריכת קלפים. מגע 9 נקודות אפשר מחוות מגע בפינות המסך + Show keyboard shortcuts מגירת היישומים במסך מלא פתח את מגירת הניווט בעת החלקה ימינה מכל מקום על המסך ללא diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index 63bf440803ac..e5d2471cecf6 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -333,7 +333,6 @@ इस कार्ड प्रकार को हटाने से कुछ नोट बिना किसी कार्ड के रह जाएंगे। आवाज़ समर्थित नहीं है. दूसरा प्रयास करें या ध्वनि इंजन स्थापित करें। - कुंजीपटल शॉर्टकट संवाद दिखाएँ डेक पिकर पुष्टि के बिना डेक हटाएँ नोट संपादक @@ -346,7 +345,6 @@ स्टाइल संपादित करें टेम्पलेट को मार्कडाउन के रूप में कॉपी करें ब्राउज़र स्वरूप संपादित करें - कीबोर्ड शॉर्टकट दिखाने के लिए Alt+K दबाएँ इस नोटटाइप में उपयोगकर्ता कार्रवाई %s सेट नहीं है. कृपया इसे कॉन्फ़िगर करें यहां %s तक पहुंच बहाल करने के तरीके के बारे में और जानें या संग्रह फ़ोल्डर को अपडेट करने के लिए सेटिंग्स पर जाएं। diff --git a/AnkiDroid/src/main/res/values-hi/10-preferences.xml b/AnkiDroid/src/main/res/values-hi/10-preferences.xml index 33388869a1e5..db414d0cb206 100644 --- a/AnkiDroid/src/main/res/values-hi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hi/10-preferences.xml @@ -97,6 +97,7 @@ ऐसे जवाब और संपादन कार्ड के रूप में कार्रवाई करने के लिए इशारों निरुपित । ९-बिंदु स्पर्श स्क्रीन कोनों में स्पर्श इशारों की अनुमति दें + Show keyboard shortcuts फुल स्क्रीन नेविगेशन दराज स्क्रीन पर कहीं से भी स्वाइप किए जाने पर नेविगेशन दराज खोलें कोई नहीं diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index c91b6a4b48f2..99db25db2e87 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -342,7 +342,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -355,7 +354,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-hr/10-preferences.xml b/AnkiDroid/src/main/res/values-hr/10-preferences.xml index 906b39695b60..74c12bae5215 100644 --- a/AnkiDroid/src/main/res/values-hr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hr/10-preferences.xml @@ -98,6 +98,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index 4c954970f68d..ac0a9f02cd5b 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -331,7 +331,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -344,7 +343,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-hu/10-preferences.xml b/AnkiDroid/src/main/res/values-hu/10-preferences.xml index 8afbfeca1b44..b71666398fc2 100644 --- a/AnkiDroid/src/main/res/values-hu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hu/10-preferences.xml @@ -97,6 +97,7 @@ Gesztusok hozzárendelése olyan műveletekhez, mint a kártyák megválaszolása és szerkesztése. Érintési gesztusok beállítása Érintési gesztusok engedélyezése a képernyő sarkaiban + Show keyboard shortcuts Navigációs sáv bezárása Navigációs sáv megnyitása amikor a képernyő jobb oldalára csúsztat Nincs diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml index 43dd99ed9bb3..31c3bba3fc37 100644 --- a/AnkiDroid/src/main/res/values-hy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-hy/10-preferences.xml b/AnkiDroid/src/main/res/values-hy/10-preferences.xml index 4d681703577e..8df9cb366d80 100644 --- a/AnkiDroid/src/main/res/values-hy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hy/10-preferences.xml @@ -97,6 +97,7 @@ Գործառույթների համար, ինչպիսին են քարտերի պատասխանելը կամ խմբագրելը, օգտագործել ժեստեր 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen Ոչ մի diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml index 9ea178739231..99ec0d473352 100644 --- a/AnkiDroid/src/main/res/values-ind/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ind/10-preferences.xml b/AnkiDroid/src/main/res/values-ind/10-preferences.xml index 6de2ab552431..bf428a61c83f 100644 --- a/AnkiDroid/src/main/res/values-ind/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ind/10-preferences.xml @@ -96,6 +96,7 @@ Menerapkan gestur sebagai tindakan untuk menjawab dan mengedit kartu. Mode sentuhan 9-poin Perbolehkan gestur sentuhan di bagian pojok layar + Show keyboard shortcuts Navigasi laci layar penuh Buka laci navigasi ketika menggeser kanan layar dari mana saja Tidak ada diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-is/02-strings.xml +++ b/AnkiDroid/src/main/res/values-is/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-is/10-preferences.xml b/AnkiDroid/src/main/res/values-is/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-is/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-is/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml index 31fdff0bd6ca..338b0f2d46e2 100644 --- a/AnkiDroid/src/main/res/values-it/02-strings.xml +++ b/AnkiDroid/src/main/res/values-it/02-strings.xml @@ -336,7 +336,6 @@ L\'eliminazione di questo tipo di carta lascerà alcune note senza alcuna carta. Voce non supportata. Scegli un\'altra voce o installa un motore vocale. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-it/10-preferences.xml b/AnkiDroid/src/main/res/values-it/10-preferences.xml index 57124d69a463..fa995f99e062 100644 --- a/AnkiDroid/src/main/res/values-it/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-it/10-preferences.xml @@ -97,6 +97,7 @@ Assegna gesti alle azioni come rispondere e modificare carte. tocco a 9 punti Consenti i gesti touch negli angoli dello schermo + Show keyboard shortcuts Pannello di navigazione a schermo intero Apri il pannello di navigazione quando scorri a destra da qualsiasi punto dello schermo Nessuno diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 414a5a8e8bd4..051ffddf45c0 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -342,7 +342,6 @@ מחיקת סוג כרטיס זה תשאיר כמה הערות ללא כרטיס. קול אינו נתמך. נסה אחר או התקן מנוע קול. - הצג חלון קיצורי מקלדת בוחר החפיסה מחק את החפיסה ללא אישור עורך הערות @@ -355,7 +354,6 @@ ערוך סגנון העתק תבנית כסימון ערוך את מראה הדפדפן - הקש Alt+K כדי להציג קיצורי מקשים פעולת המשתמש %s לא מוגדרת בסוג הערה זה. אנא הגדר אותו למד עוד על איך לשחזר גישה כאן %s או עבור להגדרות כדי לעדכן את תיקיית האוסף. diff --git a/AnkiDroid/src/main/res/values-iw/10-preferences.xml b/AnkiDroid/src/main/res/values-iw/10-preferences.xml index d18a271836f2..aa0da3be6486 100644 --- a/AnkiDroid/src/main/res/values-iw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-iw/10-preferences.xml @@ -99,6 +99,7 @@ שיוך מחוות לפעולות כגון מענה ועריכת קלפים. מגע 9 נקודות אפשר מחוות מגע בפינות המסך + Show keyboard shortcuts מגירת היישומים במסך מלא פתח את מגירת הניווט בעת החלקה ימינה מכל מקום על המסך ללא diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index 5311bcbfd988..d5dea8d5876e 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -330,7 +330,6 @@ このカードタイプを削除すると、カードが無いノートが生じます。 読み上げ音声がサポートされていません。別の音声を試すか、音声エンジンをインストールしてください。 - キーボードショートカットを表示 デッキリスト デッキを削除(確認なし) ノート編集画面 @@ -343,7 +342,6 @@ スタイルを編集 テンプレートをMarkdowin形式でコピー カードブラウザ用の表示設定を編集 - キーボードショートカットを表示するには [Alt]+[K] を押してください ユーザーアクション %s はこのノートタイプに設定されていません。設定してください アクセスを回復する方法の詳細を %s で確認するか、設定画面に移動してコレクションフォルダを更新してください。 diff --git a/AnkiDroid/src/main/res/values-ja/10-preferences.xml b/AnkiDroid/src/main/res/values-ja/10-preferences.xml index ecf13342ae8b..3b4b74818d36 100644 --- a/AnkiDroid/src/main/res/values-ja/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ja/10-preferences.xml @@ -96,6 +96,7 @@ 回答やカード編集などの操作にジェスチャーを割り当てます タップを9種類にする カード画面内を縦3 × 横3の9エリアに区別して各エリアにタップジェスチャーを割り当てられます + Show keyboard shortcuts どこでもドロワー アプリ画面上のどこからでも、右向きにスワイプするとナビゲーションドロワーが開きます なし diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml index d012a0403ccd..9bfa12c2c1b2 100644 --- a/AnkiDroid/src/main/res/values-jv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-jv/10-preferences.xml b/AnkiDroid/src/main/res/values-jv/10-preferences.xml index 8721a23a9991..127160523bfc 100644 --- a/AnkiDroid/src/main/res/values-jv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-jv/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 4cd0033d2607..13dcc628f222 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -335,7 +335,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog დასტის ამრჩეველი Delete deck without confirmation შენიშვნების რედაქტორი @@ -348,7 +347,6 @@ სტილის რედაქტირება შაბლონის კოპირება markdown-ად Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ka/10-preferences.xml b/AnkiDroid/src/main/res/values-ka/10-preferences.xml index 2b5f53cea2ef..1d1da860411c 100644 --- a/AnkiDroid/src/main/res/values-ka/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ka/10-preferences.xml @@ -97,6 +97,7 @@ ჟესტების მიბმა მოქმედებებთან, როგორებიცაა მაგალითად პასუხის გაცემა ან ბარათის რედაქტირება. 9-წერტილიანი შეხება ეკრანის კუთხეებში შეხების ჟესტების დაშვება + Show keyboard shortcuts სრულეკრანიანი რეჟიმის ნავიგაციის პანელი ეკრანის ნებისმიერი წერტილიდან მარჯვნივ გასმისას ნავიგაციის პანელის გახსნა არცერთი diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-kk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-kk/10-preferences.xml b/AnkiDroid/src/main/res/values-kk/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-kk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kk/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 0e1df27053cf..0fa1dec50ef3 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-km/10-preferences.xml b/AnkiDroid/src/main/res/values-km/10-preferences.xml index 8721a23a9991..127160523bfc 100644 --- a/AnkiDroid/src/main/res/values-km/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-km/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index 9a2bd5a79bbc..6577e2da991b 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-kn/10-preferences.xml b/AnkiDroid/src/main/res/values-kn/10-preferences.xml index 51207b7699e5..8369d868ed35 100644 --- a/AnkiDroid/src/main/res/values-kn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kn/10-preferences.xml @@ -97,6 +97,7 @@ ಪ್ರತ್ಯುತ್ತರ ಮತ್ತು ಕಾರ್ಡ್‌ಗಳನ್ನು ಸಂಪಾದಿಸುವಂತಹ ಕ್ರಿಯೆಗಳಿಗೆ ಗೆಸ್ಚರ್‌ಗಳನ್ನು ನಿಯೋಜಿಸಿ. 9-ಪಾಯಿಂಟ್ ಸ್ಪರ್ಶ ಪರದೆಯ ಮೂಲೆಗಳಲ್ಲಿ ಸ್ಪರ್ಶ ಗೆಸ್ಚರ್‌ಗಳನ್ನು ಅನುಮತಿಸಿ + Show keyboard shortcuts ಪೂರ್ಣ ಪರದೆಯ ನ್ಯಾವಿಗೇಷನ್ ಡ್ರಾಯರ್ ಪರದೆಯ ಮೇಲೆ ಎಲ್ಲಿಂದಲಾದರೂ ಬಲಕ್ಕೆ ಸ್ವೈಪ್ ಮಾಡುವಾಗ ನ್ಯಾವಿಗೇಷನ್ ಡ್ರಾಯರ್ ತೆರೆಯಿರಿ ಯಾವುದೂ diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index da0afb023a6f..144d09ca265b 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -333,7 +333,6 @@ Context | Request Context [1] 이 카드 유형을 삭제하면 카드 없이 일부 메모만 남습니다 음성을 지원하지 않습니다. 다른 것으로 시도하거나 음성 엔진을 설치하세요. - 키보드 단축키 안내 보이기 덱 선택 확인 없이 덱 삭제 노트 편집기 @@ -346,7 +345,6 @@ Context | Request Context [1] 스타일 편집 마크다운으로 템플릿 복사 브라우저 외관 편집 - 키보드 단축키를 보려면 Alt + K를 누르세요. 이 노트 유형에는 사용자 행동 %s이(가) 설정되어 있지 않습니다. 설정을 확인해 주세요. 여기에서 액세스를 복원하는 방법에 대해 자세히 알아보세요 %s 또는 설정으로 이동하여 컬렉션 폴더를 업데이트하세요. diff --git a/AnkiDroid/src/main/res/values-ko/10-preferences.xml b/AnkiDroid/src/main/res/values-ko/10-preferences.xml index 0379b13fcb70..bb078211b65b 100644 --- a/AnkiDroid/src/main/res/values-ko/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ko/10-preferences.xml @@ -96,6 +96,7 @@ 응답 및 카드 편집 등의 작업에 제스쳐 할당 9점 터치 화면 모서리의 터치 제스쳐 허용 + Show keyboard shortcuts 전체화면 탐색 서랍 화면 어디에서나 오른쪽으로 스와이프하여 탐색 서랍 열기 없음 diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml index 16009ac88239..df4dd3539c6c 100644 --- a/AnkiDroid/src/main/res/values-ku/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ku/10-preferences.xml b/AnkiDroid/src/main/res/values-ku/10-preferences.xml index c3baeae1db45..03744990f8ef 100644 --- a/AnkiDroid/src/main/res/values-ku/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ku/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-ky/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ky/10-preferences.xml b/AnkiDroid/src/main/res/values-ky/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-ky/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ky/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml index 85acf41bbd57..b241c3c77c1f 100644 --- a/AnkiDroid/src/main/res/values-lt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml @@ -348,7 +348,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -361,7 +360,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-lt/10-preferences.xml b/AnkiDroid/src/main/res/values-lt/10-preferences.xml index 69d132150cc3..45cdc74bfa7d 100644 --- a/AnkiDroid/src/main/res/values-lt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lt/10-preferences.xml @@ -99,6 +99,7 @@ Nustatykite kokiais gestais atsakinėsite į klausimus ir redaguosite korteles. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml index 9cb3e99b304c..29e69df70f23 100644 --- a/AnkiDroid/src/main/res/values-lv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml @@ -342,7 +342,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -355,7 +354,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-lv/10-preferences.xml b/AnkiDroid/src/main/res/values-lv/10-preferences.xml index aef3cf01b7c7..6ade468a4a75 100644 --- a/AnkiDroid/src/main/res/values-lv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lv/10-preferences.xml @@ -98,6 +98,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml index aa9eba4740dc..27f7c017b935 100644 --- a/AnkiDroid/src/main/res/values-mk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml @@ -337,7 +337,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -350,7 +349,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-mk/10-preferences.xml b/AnkiDroid/src/main/res/values-mk/10-preferences.xml index b094e675d7e8..fd5dfdeed414 100644 --- a/AnkiDroid/src/main/res/values-mk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mk/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml index f56c6db72138..e090a556205b 100644 --- a/AnkiDroid/src/main/res/values-ml/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml @@ -330,7 +330,6 @@ ഈ കാർഡ് തരം ഇല്ലാതാക്കുന്നത് ചില കുറിപ്പുകൾ കാർഡുകളില്ലാതെ അവശേഷിക്കും. ശബ്ദം പിന്തുണയ്ക്കുന്നില്ല. മറ്റൊന്ന് പരീക്ഷിക്കുക അല്ലെങ്കിൽ ഒരു വോയ്‌സ് എഞ്ചിൻ ഇൻസ്റ്റാൾ ചെയ്യുക. - Show keyboard shortcuts dialog ഡെക്ക് പിക്കർ സ്ഥിരീകരണമില്ലാതെ ഡെക്ക് ഇല്ലാതാക്കുക കുറിപ്പ് എഡിറ്റർ @@ -343,7 +342,6 @@ Edit styling Copy template as markdown ബ്രൗസർ രൂപം എഡിറ്റ് ചെയ്യുക - കീബോർഡ് കുറുക്കുവഴികൾ കാണിക്കാൻ Alt+K അമർത്തുക ഈ കുറിപ്പ് തരത്തിൽ ഉപയോക്തൃ പ്രവർത്തനം %s സജ്ജീകരിച്ചിട്ടില്ല. ദയവായി അത് കോൺഫിഗർ ചെയ്യുക Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ml/10-preferences.xml b/AnkiDroid/src/main/res/values-ml/10-preferences.xml index ad4c856ad111..9fd634a28516 100644 --- a/AnkiDroid/src/main/res/values-ml/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ml/10-preferences.xml @@ -97,6 +97,7 @@ കാർഡുകൾക്ക് ഉത്തരം നൽകൽ, എഡിറ്റുചെയ്യൽ എന്നിവ പോലുള്ള പ്രവർത്തനങ്ങൾക്ക് ആംഗ്യങ്ങൾ നൽകുക. 9-പോയിൻ്റ് ടച്ച് സ്‌ക്രീൻ കോണുകളിൽ ടച്ച് സവിശേഷതകൾ അനുവദിക്കുക + Show keyboard shortcuts പൂർണ്ണ സ്‌ക്രീൻ നാവിഗേഷൻ ഡ്രോയർ സ്ക്രീനിൽ എവിടെനിന്നും വലത്തേക്ക് സ്വൈപ്പ് ചെയ്യുമ്പോൾ നാവിഗേഷൻ ഡ്രോയർ തുറക്കുക ഒന്നുമില്ല diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 89db021ce30d..78b869b6d850 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-mn/10-preferences.xml b/AnkiDroid/src/main/res/values-mn/10-preferences.xml index a9d1237794ea..0ebe52c31011 100644 --- a/AnkiDroid/src/main/res/values-mn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mn/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml index 99b8d629efa8..b7d1f4763c80 100644 --- a/AnkiDroid/src/main/res/values-mr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-mr/10-preferences.xml b/AnkiDroid/src/main/res/values-mr/10-preferences.xml index ed658fd6f389..0a7038eaa743 100644 --- a/AnkiDroid/src/main/res/values-mr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mr/10-preferences.xml @@ -97,6 +97,7 @@ उत्तर देणे आणि संपादन कार्ड यासारख्या क्रियांना जेश्चर नियुक्त करा. 9-बिंदू स्पर्श स्क्रीन कोपर्यात स्पर्श जेश्चरला अनुमती द्या + Show keyboard shortcuts पूर्ण स्क्रीन नेव्हिगेशन ड्रॉवर स्क्रीनवर कुठूनही थेट स्वाइप करून नेव्हिगेशन ड्रॉवर उघडा काहीही नाही diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml index 8872047a975f..a358c9b10b92 100644 --- a/AnkiDroid/src/main/res/values-ms/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ms/10-preferences.xml b/AnkiDroid/src/main/res/values-ms/10-preferences.xml index 7629e8768566..3539d2808924 100644 --- a/AnkiDroid/src/main/res/values-ms/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ms/10-preferences.xml @@ -96,6 +96,7 @@ Tetapkan gerak isyarat kepada tindakan seperti jawab dan sunting kad. Sentuhan 9 titik Benarkan gerak isyarat sentuh pada penghujung skrin + Show keyboard shortcuts Laci navigasi skrin penuh Buka laci navigasi apabila dileretkan ke kanan dari mana-mana pada skrin Tiada diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml index 9b976904fdf6..373f381178cc 100644 --- a/AnkiDroid/src/main/res/values-my/02-strings.xml +++ b/AnkiDroid/src/main/res/values-my/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-my/10-preferences.xml b/AnkiDroid/src/main/res/values-my/10-preferences.xml index 8721a23a9991..127160523bfc 100644 --- a/AnkiDroid/src/main/res/values-my/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-my/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 45eac2a26b32..8dbc0feb4669 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -336,7 +336,6 @@ Als je dit kaarttype verwijdert, zullen sommige notities geen kaarten meer hebben. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-nl/10-preferences.xml b/AnkiDroid/src/main/res/values-nl/10-preferences.xml index 8dcf045a1da3..17c6ce557f43 100644 --- a/AnkiDroid/src/main/res/values-nl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nl/10-preferences.xml @@ -97,6 +97,7 @@ Bewegingen toewijzen aan acties zoals het beantwoorden en bewerken van kaarten. 9-punts aanraakscherm Aanraakgebaren in schermhoeken toestaan + Show keyboard shortcuts Volledig scherm navigatiebalk Open navigatiescherm wanneer je overal en op het scherm naar rechts veegt Geen diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml index 6b95b1a339d2..6899661661cb 100644 --- a/AnkiDroid/src/main/res/values-nn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-nn/10-preferences.xml b/AnkiDroid/src/main/res/values-nn/10-preferences.xml index 55471a97e370..96f6c4be34e3 100644 --- a/AnkiDroid/src/main/res/values-nn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nn/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-punkts berøring Tillat berøringsbevegelser i skjermens hjørner + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen Ingen diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml index 4db8e35c8de7..87866bad8192 100644 --- a/AnkiDroid/src/main/res/values-no/02-strings.xml +++ b/AnkiDroid/src/main/res/values-no/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-no/10-preferences.xml b/AnkiDroid/src/main/res/values-no/10-preferences.xml index f298a3e242dd..33122a1a7bd8 100644 --- a/AnkiDroid/src/main/res/values-no/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-no/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-punkts berøring Tillat berøringsbevegelser i skjermens hjørner + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen Ingen diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index f7fb7715ceff..0d2efc0123b8 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-or/10-preferences.xml b/AnkiDroid/src/main/res/values-or/10-preferences.xml index 29e91bb6273c..070e7dbf97be 100644 --- a/AnkiDroid/src/main/res/values-or/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-or/10-preferences.xml @@ -97,6 +97,7 @@ ପତ୍ରଗୁଡ଼ିକର ଉତ୍ତର ଏବଂ ସମ୍ପାଦନ କରିବା ଭଳି କାର୍ଯ୍ୟରେ ଅଙ୍ଗଭଙ୍ଗୀ ନ୍ୟସ୍ତ କରନ୍ତୁ ୯-ଅଙ୍କ ସ୍ପର୍ଶ ସ୍କ୍ରୀନ୍ କୋଣରେ ସ୍ପର୍ଶ ଅଙ୍ଗଭଙ୍ଗୀକୁ ଅନୁମତି ଦିଅନ୍ତୁ + Show keyboard shortcuts ପୂର୍ଣ୍ଣ ସ୍କ୍ରୀନ୍ ଦିଗଚଳନ ଡ୍ରର୍ ସ୍କ୍ରୀନ୍‌ର ଯେକୌଣସି ସ୍ଥାନରୁ ଡାହାଣକୁ ସ୍ୱାଇପ୍ କରିବା ମାତ୍ରେ ଦିଗଚଳନ ଡ୍ରର୍ ଖୋଲିବା କିଛି ନାହିଁ diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml index 1ce155b0b646..f0cfe3310f51 100644 --- a/AnkiDroid/src/main/res/values-pa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml @@ -330,7 +330,6 @@ ਇਸ ਕਾਰਡ ਦੀ ਕਿਸਮ ਨੂੰ ਮਿਟਾਉਣ ਨਾਲ ਕੁਝ ਨੋਟ ਬਿਨਾਂ ਕਿਸੇ ਕਾਰਡ ਦੇ ਰਹਿ ਜਾਣਗੇ। ਵੌਇਸ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ। ਕੋਈ ਹੋਰ ਅਜ਼ਮਾਓ ਜਾਂ ਇੱਕ ਵੌਇਸ ਇੰਜਣ ਸਥਾਪਤ ਕਰੋ। - ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਡਾਇਲਾਗ ਦਿਖਾਓ ਡੈੱਕ ਚੋਣਕਾਰ ਅਪ੍ਰਮਾਣਿਤ ਡੇਕ ਮਿਟਾਓ ਨੋਟ ਸੰਪਾਦਕ @@ -343,7 +342,6 @@ ਸਟਾਈਲ ਦਾ ਸੰਪਾਦਨ ਕਰੋ ਟੈਂਪਲੇਟ ਨੂੰ ਮਾਰਕਡਾਊਨ ਵਜੋਂ ਕਾਪੀ ਕਰੋ ਬ੍ਰਾਊਜ਼ਰ ਦੀ ਦਿੱਖ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰੋ - ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਦਿਖਾਉਣ ਲਈ Alt+K ਦਬਾਓ ਇਸ ਨੋਟ ਕਿਸਮ ਵਿੱਚ ਉਪਭੋਗਤਾ ਕਾਰਵਾਈ %s ਸੈੱਟ ਨਹੀਂ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਇਸਨੂੰ ਕੌਂਫਿਗਰ ਕਰੋ ਇੱਥੇ %s ਪਹੁੰਚ ਨੂੰ ਕਿਵੇਂ ਬਹਾਲ ਕਰਨਾ ਹੈ ਬਾਰੇ ਹੋਰ ਜਾਣੋ ਜਾਂ ਸੰਗ੍ਰਹਿ ਫੋਲਡਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਲਈ ਸੈਟਿੰਗਾਂ \'ਤੇ ਜਾਓ। diff --git a/AnkiDroid/src/main/res/values-pa/10-preferences.xml b/AnkiDroid/src/main/res/values-pa/10-preferences.xml index 57fff53e2bb7..83b13ccc29e4 100644 --- a/AnkiDroid/src/main/res/values-pa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pa/10-preferences.xml @@ -97,6 +97,7 @@ ਜਵਾਬ ਦੇਣ ਅਤੇ ਕਾਰਡਾਂ ਨੂੰ ਸੰਪਾਦਿਤ ਕਰਨ ਵਰਗੀਆਂ ਕਾਰਵਾਈਆਂ ਲਈ ਸੰਕੇਤ ਦਿਓ। 9-ਪੁਆਇੰਟ ਟੱਚ ਸਕਰੀਨ ਕੋਨਿਆਂ ਵਿੱਚ ਛੋਹਣ ਦੇ ਇਸ਼ਾਰਿਆਂ ਦੀ ਆਗਿਆ ਦਿਓ + Show keyboard shortcuts ਪੂਰੀ ਸਕ੍ਰੀਨ ਨੈਵੀਗੇਸ਼ਨ ਦਰਾਜ਼ ਸਕ੍ਰੀਨ \'ਤੇ ਕਿਤੇ ਵੀ ਸਵਾਈਪ ਕਰਨ \'ਤੇ ਨੈਵੀਗੇਸ਼ਨ ਦਰਾਜ਼ ਖੋਲ੍ਹੋ ਕੋਈ ਨਹੀਂ diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index d4463ca48461..e8710c414d0b 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -348,7 +348,6 @@ Usunięcie tej karty spowoduje pozostawienie niektórych notatek bez żadnej karty. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Edytor notatek @@ -361,7 +360,6 @@ Edytuj styl Kopiuj szablon jako Markdown Edytuj wygląd przeglądarki kart - Naciśnij Alt+K, aby wyświetlić skróty klawiszowe User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-pl/10-preferences.xml b/AnkiDroid/src/main/res/values-pl/10-preferences.xml index dd4787bb2095..eeb95cc99efd 100644 --- a/AnkiDroid/src/main/res/values-pl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pl/10-preferences.xml @@ -99,6 +99,7 @@ Przydziel gesty do akcji takich jak odpowiedzi lub edycja kart. Dotyk 9-punktowy Zezwalaj na gesty dotykowe w rogach ekranu + Show keyboard shortcuts Panel nawigacyjny w pełnym ekranie Otwórz panel nawigacyjny po przesunięciu w prawo w dowolnym miejscu ekranu Brak 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 26bb6cc3d3e0..568390a8f950 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -336,7 +336,6 @@ Deletar essa categoria de cartão deixará algumas notas sem cartão Voz não suportada. Tente outra ou instale um mecanismo de voz. - Mostrar diálogo de atalhos de teclado Selecionador de baralho Deletar baralho sem confirmação Editor de Notas @@ -349,7 +348,6 @@ Editar estilo Copiar o modelo como markdown Editar aparência do navegador - Pressione Alt+K para mostrar atalhos de teclado A ação do usuário %s não está definida neste tipo de nota. Por favor, configure-a Learn more about how to restore access here %s or go to settings to update collection folder. 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 654ffd8f6203..60fbf1794859 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml @@ -97,6 +97,7 @@ Atribuir gestos a ações tais como responder e editar cards. 9 Ações de Toque Permitir gestos de toque nos cantos da tela + Show keyboard shortcuts Painel de navegação em tela cheia Abrir painel de navegação ao ser deslizado de qualquer lugar da tela Nenhuma 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 4b1710434de7..4e31814bd427 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -336,7 +336,6 @@ Apagar este tipo de ficha implica deixar algumas notas sem fichas. Voz não suportada. Tente outra ou instale um motor de voz. - Mostrar janela com os atalhos de teclado Ecrã de Selecção de Baralhos Eliminar baralho sem confirmação Editor de Notas @@ -349,7 +348,6 @@ Editar estilo do modelo Copiar modelo no formato markdown Editar a aparência do explorador - Pressione Alt+K para ver os atalhos de teclado A acção %s não foi definida para este tipo de nota. Por favor configure-o. Descubra mais sobre como restaurar o acesso aqui %s, ou vá às definições para actualizar a pasta das colecções. 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 26f68e583171..4d3b51d376a2 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml @@ -97,6 +97,7 @@ Atribuir gestos a ações tais como responder e editar fichas. Toque de 9 pontos Permitir gestos de toque nos cantos da tela + Show keyboard shortcuts Painel de navegação no ecrã completo Abrir painel de navegação quando desliza para a direita de qualquer ponto do ecrã Nenhum diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml index c9ba40ca3066..0f13b0dcafc3 100644 --- a/AnkiDroid/src/main/res/values-ro/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml @@ -342,7 +342,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -355,7 +354,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ro/10-preferences.xml b/AnkiDroid/src/main/res/values-ro/10-preferences.xml index e99459567bce..17fc2c02636b 100644 --- a/AnkiDroid/src/main/res/values-ro/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ro/10-preferences.xml @@ -98,6 +98,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index b6f552a9740c..35716683ead8 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -343,7 +343,6 @@ Удаление этого типа карточек оставит некоторые записи без карточек. Этот голос не поддерживается. Попробуйте другой или установите голосовой движок. - Показать диалог сочетаний клавиш Выбор колоды Удалить колоду без подтверждения Редактор записей @@ -356,7 +355,6 @@ Править стиль Копировать шаблон как markdown Изменить вид браузера - Нажмите Alt+K, чтобы показать сочетания клавиш В этом блокноте не задано действие пользователя %s. Пожалуйста, настройте его Узнайте больше о том, как восстановить доступ здесь %s или перейдите к настройкам для обновления папки коллекции. diff --git a/AnkiDroid/src/main/res/values-ru/10-preferences.xml b/AnkiDroid/src/main/res/values-ru/10-preferences.xml index f0420dc1d759..81027c75c21a 100644 --- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml @@ -99,6 +99,7 @@ Назначает жесты действиям вроде ответа и правки 9 зон касания Разрешить сенсорные жесты в углах экрана + Show keyboard shortcuts Панель навигации при полном экране Открывать панель навигации при смахивании вправо с любого места на экране Нет diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 401c6bcdfd06..17d3af8b0a64 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -336,7 +336,6 @@ ᱱᱚᱶᱟ ᱠᱟᱨᱰ ᱨᱮᱱᱟᱜ ᱛᱟᱹᱞᱠᱟᱹ ᱵᱚᱫᱚᱞ ᱞᱮᱠᱷᱟᱱ ᱠᱟᱨᱰ ᱵᱟᱹᱱᱩᱜ ᱟᱠᱟᱱ ᱟᱭᱢᱟ ᱱᱳᱴᱥ ᱠᱚ ᱵᱚᱫᱚᱞᱚᱜ-ᱟ᱾ ᱨᱚᱲ ᱵᱟᱭ ᱥᱚᱦᱚᱫ ᱟᱠᱟᱱᱟ ᱮᱴᱟᱜ ᱢᱤᱫᱴᱟᱹᱝ ᱥᱮ ᱟᱲᱟᱝ ᱮᱱᱮᱡ ᱥᱮᱞᱮᱫᱽ ᱢᱮ ᱾ - ᱠᱤᱯᱤᱴᱚᱰ ᱥᱟᱠᱚᱨᱰ ᱠᱚᱰ ᱰᱟᱭᱞᱳᱜᱽ ᱵᱚᱫᱚᱞ ᱰᱮᱠ ᱯᱤᱠᱥᱚᱨ ᱥᱟᱹᱠᱷᱭᱟᱹᱛ ᱵᱟᱹᱱᱩᱜ ᱠᱷᱟᱱ ᱰᱮᱠ ᱵᱚᱫᱚᱞ ᱢᱮ ᱱᱳᱴᱥ ᱮᱰᱤᱴᱚᱨ @@ -349,7 +348,6 @@ ᱥᱟᱯᱲᱟᱣ ᱥᱟᱠᱟᱢ ᱢᱟᱨᱠᱰᱟᱩᱱ ᱞᱮᱠᱟᱛᱮ ᱠᱳᱯᱤ ᱢᱮᱴᱟᱤᱞ ᱵᱽᱨᱟᱩᱡᱚᱨ ᱨᱮᱱᱟᱜ ᱧᱮᱞ ᱥᱟᱯᱲᱟᱣ - ᱠᱤᱵᱚᱨᱰ ᱥᱠᱚᱨᱴᱚᱠ ᱠᱚ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱫ Alt+K ᱚᱞ ᱢᱮ ᱱᱚᱶᱟ ᱱᱳᱴᱤᱯ ᱨᱮ ᱵᱮᱵᱷᱟᱨᱤᱭᱟᱹ ᱠᱟᱹᱢᱤ %s ᱫᱚ ᱵᱟᱝ ᱥᱮᱴᱮᱨ ᱟᱠᱟᱱᱟ. ᱱᱚᱶᱟ ᱞᱤᱱ ᱢᱮ %s ᱨᱮ ᱥᱮᱴᱮᱨᱚᱜ ᱨᱮᱱᱟᱜ ᱵᱟᱹᱲᱛᱤ ᱵᱟᱰᱟᱭ ᱞᱟᱹᱜᱤᱫ ᱥᱮᱴᱮᱨᱚᱜ ᱨᱮ ᱥᱮᱴᱮᱨᱚᱜ ᱢᱮ ᱟᱨ ᱥᱮᱞᱮᱫ ᱯᱟᱹᱴᱷᱩᱣᱟᱹ ᱠᱚᱢᱯᱩᱴᱚᱨ ᱨᱮ ᱵᱚᱫᱚᱞ ᱢᱮ diff --git a/AnkiDroid/src/main/res/values-sat/10-preferences.xml b/AnkiDroid/src/main/res/values-sat/10-preferences.xml index 27f13458ccd5..99ce44ceecd2 100644 --- a/AnkiDroid/src/main/res/values-sat/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sat/10-preferences.xml @@ -97,6 +97,7 @@ ᱛᱮᱞᱟ ᱮᱢ ᱟᱨ ᱠᱟᱰᱥ ᱥᱟᱯᱰᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱜᱮᱥᱪᱚᱨ ᱠᱚ ᱴᱷᱤᱠ ᱢᱮ ᱾ ᱙ᱼᱤᱸᱪ ᱚᱛᱟ ᱥᱠᱨᱤᱱ ᱠᱩᱱᱟᱹ ᱠᱚᱨᱮ ᱚᱛᱟ ᱜᱮᱥᱪᱚᱨᱠᱚ ᱮᱢ ᱪᱷᱚ + Show keyboard shortcuts ᱯᱷᱩᱞᱥᱨᱤᱱ ᱱᱮᱵᱷᱤᱜᱮᱥᱚᱱ ᱰᱟᱨᱣᱮᱨ ᱥᱠᱨᱤᱱ ᱨᱮᱭᱟᱜ ᱡᱟᱦᱟᱸᱥᱮᱫ ᱠᱷᱚᱱ ᱡᱚᱡᱚᱢ ᱯᱟᱦᱴᱟ ᱥᱣᱟᱭᱤᱯ ᱠᱟᱛᱮ ᱱᱟᱵᱷᱤᱜᱮᱥᱚᱱ ᱰᱨᱚᱣᱮᱨ ᱡᱷᱤᱡᱽ ᱯᱮ ᱡᱟᱦᱟᱱ ᱵᱟᱝ diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index a5dfb4464f0f..a3a3d953e0ec 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -338,7 +338,6 @@ S\'iscantzelladura de custa casta de carta at a lassare unas cantas notas chene carta peruna. Boghe non suportada. Proa·nde un\'àtera o installa unu motore vocale. - Mustra su diàlogu de incurtzadas de tecladu Seletzionadore de matzu Iscantzella su matzu chene cunfirma Editore de notas @@ -351,7 +350,6 @@ Modìfica s\'istile Còpia su modellu comente markdown Modìfica s\'aparèntzia de su navigadore - Incarca Alt+K pro mustrare sas incurtzadas de tecladu S\'atzione de utente %s no est cunfigurada pro custa casta de nota. Cunfigura·la Impara de prus subra de comente ripristinare s\'atzessu inoghe %s o bae a sas impostatziones pro atualizare sa cartella de sas colletziones. diff --git a/AnkiDroid/src/main/res/values-sc/10-preferences.xml b/AnkiDroid/src/main/res/values-sc/10-preferences.xml index fd898e461776..b3a41ada6f3a 100644 --- a/AnkiDroid/src/main/res/values-sc/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sc/10-preferences.xml @@ -97,6 +97,7 @@ Assigna gestos a atziones che a sas rispostas e a sas modìficas de sas cartas. Tocu a 9 puntos Permiti sos gestos tàtiles in sos àngulos de s\'ischermu + Show keyboard shortcuts Pannellu de navigatzione a ischermu intreu Aberi su pannellu de navigatzione cando trìsinas cara a dereta dae cale si siat puntu de s\'ischermu Perunu diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml index bc0b29a31150..b9c861a93333 100644 --- a/AnkiDroid/src/main/res/values-sk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml @@ -348,7 +348,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -361,7 +360,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-sk/10-preferences.xml b/AnkiDroid/src/main/res/values-sk/10-preferences.xml index 713c3a907020..1a130d82421a 100644 --- a/AnkiDroid/src/main/res/values-sk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sk/10-preferences.xml @@ -99,6 +99,7 @@ Prideliť gestá k akciám ako sú odpoveď či editovanie kartičiek. 9-bodový dotyk Povoliť dotykové gestá v rohoch obrazovky + Show keyboard shortcuts Navigačné menu v režime celej obrazovky Otvoriť navigačné menu, keď sa tiahne doprava kdekoľvek na obrazovke Žiadne diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml index 36a058121e77..0d4f13ff5758 100644 --- a/AnkiDroid/src/main/res/values-sl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml @@ -348,7 +348,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -361,7 +360,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-sl/10-preferences.xml b/AnkiDroid/src/main/res/values-sl/10-preferences.xml index 49239a5b5912..36e124fe6764 100644 --- a/AnkiDroid/src/main/res/values-sl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sl/10-preferences.xml @@ -99,6 +99,7 @@ Dodeli poteze dejanjem, kot sta odgovarjanje in urejanje kartic. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml index 5cc4d585ecd9..67afb1b07946 100644 --- a/AnkiDroid/src/main/res/values-sq/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-sq/10-preferences.xml b/AnkiDroid/src/main/res/values-sq/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-sq/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sq/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml index 1784f2698fa4..17f20f090979 100644 --- a/AnkiDroid/src/main/res/values-sr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml @@ -342,7 +342,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -355,7 +354,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-sr/10-preferences.xml b/AnkiDroid/src/main/res/values-sr/10-preferences.xml index 1dbae4b14463..e430fd071d38 100644 --- a/AnkiDroid/src/main/res/values-sr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sr/10-preferences.xml @@ -98,6 +98,7 @@ Додели гестове за дејства као одговарње и уређивање картица. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-ss/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ss/10-preferences.xml b/AnkiDroid/src/main/res/values-ss/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-ss/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ss/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml index f658854f2fbf..2c90c73f3756 100644 --- a/AnkiDroid/src/main/res/values-sv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml @@ -336,7 +336,6 @@ Om du tar bort denna kort typ så kommer det finnas noter utan kort. Röstfunktionalitet är stöttas inte. Försök en annan eller installera en röst motor. - Visa dialogrutan tangentbords kortkommandon Kortleksväljare Ta bort kortlek utan konfirmation Note Editor @@ -349,7 +348,6 @@ Ändra stil Kopiera mallen som markdown Edit browser appearance - Tryck Alt+K för att visa tangentbords kortkommandon User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-sv/10-preferences.xml b/AnkiDroid/src/main/res/values-sv/10-preferences.xml index 84b8a6cb46ea..a7fcfe5f041d 100644 --- a/AnkiDroid/src/main/res/values-sv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sv/10-preferences.xml @@ -97,6 +97,7 @@ Koppla gester till handlingar, som t ex att svara på eller redigera kort. 9-punkters pekning Tillåt tryckgester i skärmhörnen + Show keyboard shortcuts Fullskärm navigationsmeny Öppna navigationsmeny när du swipar höger var som helst på skärmen Ingen diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-sw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-sw/10-preferences.xml b/AnkiDroid/src/main/res/values-sw/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-sw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sw/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml index abeb39cf4f81..b415489d009c 100644 --- a/AnkiDroid/src/main/res/values-ta/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml @@ -336,7 +336,6 @@ இந்தக் கார்டு வகையை நீக்கினால் சில குறிப்புகள் கார்டு இல்லாமல் இருக்கும். குரல் ஆதரிக்கப்படவில்லை. வேறொன்றை முயற்சிக்கவும் அல்லது குரல் இயந்திரத்தை நிறுவவும். - விசைப்பலகை குறுக்குவழிகள் உரையாடலைக் காட்டு டெக் பிக்கர் உறுதிப்படுத்தல் இல்லாமல் டெக்கை நீக்கு குறிப்பு எடிட்டர் @@ -349,7 +348,6 @@ ஸ்டைலிங் திருத்தவும் டெம்ப்ளேட்டை மார்க் டவுனாக நகலெடுக்கவும் உலாவியின் தோற்றத்தைத் திருத்தவும் - விசைப்பலகை குறுக்குவழிகளைக் காட்ட Alt+K ஐ அழுத்தவும் இந்த நோட்டிப்பில் பயனர் செயல் %s அமைக்கப்படவில்லை. தயவுசெய்து அதை உள்ளமைக்கவும் அணுகலை எவ்வாறு மீட்டெடுப்பது என்பது பற்றி இங்கே %s இல் மேலும் அறிக அல்லது சேகரிப்பு கோப்புறையைப் புதுப்பிக்க அமைப்புகளுக்குச் செல்லவும். diff --git a/AnkiDroid/src/main/res/values-ta/10-preferences.xml b/AnkiDroid/src/main/res/values-ta/10-preferences.xml index b14a07260dfe..7add29ec4ef0 100644 --- a/AnkiDroid/src/main/res/values-ta/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ta/10-preferences.xml @@ -97,6 +97,7 @@ பதிலளிப்பது மற்றும் கார்டுகளைத் திருத்துவது போன்ற செயல்களுக்கு சைகைகளை ஒதுக்குங்கள்.பதிலளிப்பது மற்றும் கார்டுகளைத் திருத்துவது போன்ற செயல்களுக்கு சைகைகளை ஒதுக்குங்கள். 9-புள்ளி தொடுதல் திரை மூலைகளில் தொடு சைகைகளை அனுமதிக்கவும் + Show keyboard shortcuts முழு திரை வழிசெலுத்தல் டிராயர் திரையில் எங்கிருந்தும் வலதுபுறமாக ஸ்வைப் செய்யும் போது வழிசெலுத்தல் டிராயரைத் திறக்கவும் இல்லை diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml index e2b71e5803db..e5ac886ca171 100644 --- a/AnkiDroid/src/main/res/values-te/02-strings.xml +++ b/AnkiDroid/src/main/res/values-te/02-strings.xml @@ -330,7 +330,6 @@ ఈ కార్డ్ రకాన్ని తొలగించడం వలన కొన్ని గమనికలు కార్డ్‌లు లేకుండా ఉంటాయి. వాయిస్ మద్దతు లేదు. మరొకటి ప్రయత్నించండి లేదా వాయిస్ ఇంజిన్‌ని ఇన్‌స్టాల్ చేయండి. - కీబోర్డ్ సత్వరమార్గాల డైలాగ్‌ని చూపించు డెక్ పికర్ నిర్ధారణ లేకుండా డెక్‌ను తొలగించండి గమనిక ఎడిటర్ @@ -343,7 +342,6 @@ స్టైలింగ్‌ని సవరించండి టెంప్లేట్‌ను మార్క్‌డౌన్‌గా కాపీ చేయండి బ్రౌజర్ రూపాన్ని సవరించండి - కీబోర్డ్ సత్వరమార్గాలను చూపడానికి Alt+K నొక్కండి ఈ నోట్‌టైప్‌లో వినియోగదారు చర్య %s సెట్ చేయబడలేదు. దయచేసి దీన్ని కాన్ఫిగర్ చేయండి ఇక్కడ యాక్సెస్‌ని ఎలా పునరుద్ధరించాలనే దాని గురించి మరింత తెలుసుకోండి %s లేదా సేకరణ ఫోల్డర్‌ని నవీకరించడానికి సెట్టింగ్‌లకు వెళ్లండి. diff --git a/AnkiDroid/src/main/res/values-te/10-preferences.xml b/AnkiDroid/src/main/res/values-te/10-preferences.xml index a7dd2f3d6eac..3aebbf1dd2ad 100644 --- a/AnkiDroid/src/main/res/values-te/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-te/10-preferences.xml @@ -97,6 +97,7 @@ కార్డులకు సమాధానం ఇవ్వడం మరియు సవరించడం వంటి చర్యలకు సంజ్ఞలను కేటాయించండి. 9-పాయింట్ టచ్ స్క్రీన్ మూలల్లో టచ్ సంజ్ఞలను అనుమతించండి + Show keyboard shortcuts పూర్తి స్క్రీన్ నావిగేషన్ డ్రాయర్ స్క్రీన్‌పై ఎక్కడి నుండైనా కుడివైపుకు స్వైప్ చేస్తున్నప్పుడు నావిగేషన్ డ్రాయర్‌ను తెరవండి ఏదీ లేదు diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-tg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-tg/10-preferences.xml b/AnkiDroid/src/main/res/values-tg/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-tg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tg/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml index e1b9f5bd8205..78acb308ab37 100644 --- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml index 23f092868b90..1b5bf2e4091d 100644 --- a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml @@ -97,6 +97,7 @@ Magtalaga ng mga kilos sa mga aksyon tulad ng pagsagot at pag-edit ng mga card. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml index 3a1a6cfe0925..c3ba8bd5d01d 100644 --- a/AnkiDroid/src/main/res/values-th/02-strings.xml +++ b/AnkiDroid/src/main/res/values-th/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-th/10-preferences.xml b/AnkiDroid/src/main/res/values-th/10-preferences.xml index 50af4b1539eb..0ae3b7c013c5 100644 --- a/AnkiDroid/src/main/res/values-th/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-th/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-ti/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ti/10-preferences.xml b/AnkiDroid/src/main/res/values-ti/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-ti/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ti/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-tn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-tn/10-preferences.xml b/AnkiDroid/src/main/res/values-tn/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-tn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tn/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index f9b966abc28f..5e92adbf3a35 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -336,7 +336,6 @@ Bu kart türünü silmek bazı notları kartsız bırakacak. Seslendirme desteklenmiyor. Başka bir seslendirme motoru deneyin ya da bir tane yükleyin. - Klavye kısayolları diyaloğunu göster Deste Seçici Desteyi onay sormadan sil Not Düzenleyici @@ -349,7 +348,6 @@ Stili düzenle Şablonu markdown olarak kopyala Tarayıcı görünümünü düzenle - Klavye kısayollarını göstermek için Alt+K\'ye basın %s kullanıcı eylemi bu not türünde belirlenmemiş. Lütfen eylemi ayarlayın Erişimin nasıl yeniden sağlanıldığına dair daha fazlasını burda %s öğrenin ya da koleksiyon klasörünü değiştirmek için ayarlara gidin. diff --git a/AnkiDroid/src/main/res/values-tr/10-preferences.xml b/AnkiDroid/src/main/res/values-tr/10-preferences.xml index eefd4127e15f..ab5b7816e919 100644 --- a/AnkiDroid/src/main/res/values-tr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tr/10-preferences.xml @@ -97,6 +97,7 @@ Cevap verme ve kart düzenleme gibi eylemlere el hareketleri ata. 9 noktadan dokunma Ekran köşelerinde dokunma hareketlerine izin ver + Show keyboard shortcuts Tam ekran gezinme çekmecesi Ekranın üzerindeki herhangi bir yerden sağa doğru parmağınızı kaydırdığınızda bütün dosyaların genel görünümü için bir önizleme açılacaktır Hiçbiri diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-ts/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ts/10-preferences.xml b/AnkiDroid/src/main/res/values-ts/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-ts/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ts/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index 75aee2e4e660..15619d3e12f6 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -331,7 +331,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -344,7 +343,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-tt/10-preferences.xml b/AnkiDroid/src/main/res/values-tt/10-preferences.xml index 6e449c9a128a..70b7efb5fb43 100644 --- a/AnkiDroid/src/main/res/values-tt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tt/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ug/02-strings.xml b/AnkiDroid/src/main/res/values-ug/02-strings.xml index 368f98932847..957d64b793f7 100644 --- a/AnkiDroid/src/main/res/values-ug/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ug/02-strings.xml @@ -336,7 +336,6 @@ بۇ كارتا تۈرى ئۆچۈرۈلسە بەزى كارتىسىز خاتىرە قېپقالىدۇ. ئاۋازنى قوللىمايدۇ. باشقا بىرىنى سىناڭ ياكى ئاۋاز موتورىدىن بىرنى ئورنىتىڭ. - ھەرپتاختا قىسقا يولىنى كۆرسەت دەستە تاللىغۇچ دەستىنى سورىمايلا ئۆچۈرىدۇ خاتىرە تەھرىرلىگۈچ @@ -349,7 +348,6 @@ ئۇسلۇب تەھرىر قېلىپنى Markdown سۈپىتىدە كۆچۈر كارتا كۆرگۈچ كۆرۈنۈشىنى تەھرىرلەيدۇ - Alt+K بېسىلسا ھەرپتاختا تېزلەتمىسىنى كۆرسىتىدۇ %s ئىشلەتكۈچى مەشغۇلاتى خاتىرە تۈرىدە تەڭشەلمىگەن. سەپلەڭ بۇ جاي %s دىكى زىيارەتنى قانداق ئەسلىگە كەلتۈرۈش ياكى تەڭشەككە يۆتكىلىپ توپلام قىسقۇچىنى يېڭىلاش ھەققىدىكى تەپسىلاتنى كۆرۈڭ. diff --git a/AnkiDroid/src/main/res/values-ug/10-preferences.xml b/AnkiDroid/src/main/res/values-ug/10-preferences.xml index 7c721ad76dc8..a44bf7c07923 100644 --- a/AnkiDroid/src/main/res/values-ug/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ug/10-preferences.xml @@ -97,6 +97,7 @@ جاۋاب ۋە كارتا تەھرىرلەشكە ئوخشاش مەشغۇلاتقا قول ئىشارىتى بەلگىلەيدۇ. 9 نۇقتا سەزگۈچ ئېكران بۇلۇڭلىرى تېگىشىش قول ئىشارىتىگە يول قويىدۇ + Show keyboard shortcuts پۈتۈن ئېكران يولباشچى تارتمىسى ئېكراننىڭ خالىغان يېرىدىن ئوڭغا سۈرۈلسە يولباشچى تارتمىسىنى ئاچىدۇ يوق diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index 459059a585a2..76a3c9c2cb4c 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -347,7 +347,6 @@ Якщо видалити цей тип картки, деякі записи залишаться без карток. Голос не підтримується. Спробуйте інший або встановіть голосовий рушій. - Показати діалогове вікно комбінацій клавіш Вибір колод Видалити колоду без підтвердження Редактор записів @@ -360,7 +359,6 @@ Редагувати стиль Копіювати шаблон як розмітку Редагувати вигляд переглядача карток - Натисніть Alt+K, щоб показати комбінації клавіш Дію користувача %s не встановлено в цьому типі запису. Будь ласка, налаштуйте її Дізнайтесь більше про те, як відновити доступ тут – %s, або перейдіть в налаштування, щоб оновити теку колекцій. diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index c44d89f3f6b6..1b40a9762b94 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -99,6 +99,7 @@ Використовувати жести для таких дій, як відповідь і редагування карток. 9-точковий дотик Дозволити сенсорні жести в кутах екрану + Show keyboard shortcuts Повноекранна панель навігації Відкривати панель навігації при проведенні вправо з будь-якого місця на екрані Немає diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml index 8f7146514ff7..956cf91ce34f 100644 --- a/AnkiDroid/src/main/res/values-ur/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml @@ -337,7 +337,6 @@ اس کارڈ کی قسم کو حذف کرنے سے کچھ نوٹ بغیر کسی کارڈ کے رہ جائیں گے۔ آواز تعاون یافتہ نہیں ہے۔ دوسرا آزمائیں یا صوتی انجن انسٹال کریں۔ - کی بورڈ شارٹ کٹ ڈائیلاگ دکھائیں۔ ڈیک چننے والا تصدیق کے بغیر ڈیک کو حذف کریں۔ نوٹ ایڈیٹر @@ -350,7 +349,6 @@ اسٹائل میں ترمیم کریں ٹیمپلیٹ کو بطور مارک ڈاؤن کاپی کریں براؤزر کی ظاہری شکل میں ترمیم کریں - کی بورڈ شارٹ کٹ دکھانے کے لیے Alt+K دبائیں صارف کی کارروائی %s اس نوٹ ٹائپ میں سیٹ نہیں ہے۔ براہ کرم اسے ترتیب دیں یہاں %s تک رسائی کو بحال کرنے کے بارے میں مزید جانیں یا کلیکشن فولڈر کو اپ ڈیٹ کرنے کے لیے سیٹنگز پر جائیں۔ diff --git a/AnkiDroid/src/main/res/values-ur/10-preferences.xml b/AnkiDroid/src/main/res/values-ur/10-preferences.xml index 4bb0f702de3c..680a1cd5002c 100644 --- a/AnkiDroid/src/main/res/values-ur/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ur/10-preferences.xml @@ -97,6 +97,7 @@ جواب دینے اور کارڈز میں ترمیم کرنے جیسے اعمال کے لیے اشاروں کو تفویض کریں۔ 9 پوائنٹ ٹچ اسکرین کونوں میں ٹچ اشاروں کی اجازت دیں + Show keyboard shortcuts فل سکرین نیویگیشن دراز اسکرین پر کسی بھی جگہ سے سیدھے سوائپ کرنے پر نیویگیشن دراز کھولیں کوئی نہیں diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml index 3e335565b0bd..51e2f56007f2 100644 --- a/AnkiDroid/src/main/res/values-uz/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-uz/10-preferences.xml b/AnkiDroid/src/main/res/values-uz/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-uz/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uz/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-ve/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ve/10-preferences.xml b/AnkiDroid/src/main/res/values-ve/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-ve/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ve/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index ee1511f5c158..6d2554db629f 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -330,7 +330,6 @@ Việc xóa loại thẻ này sẽ để lại một số ghi chú không có thẻ nào liên kết. Giọng nói không được hỗ trợ. Hãy thử cái khác hoặc cài đặt một công cụ giọng nói. - Hiển thị cửa sổ phím tắt Trình chọn bộ thẻ Delete deck without confirmation Trình ghi chú @@ -343,7 +342,6 @@ Edit styling Sao chép mẫu dưới dạng markdown Chỉnh sửa giao diện trình duyệt - Nhấn Alt+K để hiển thị lối tắt bàn phím User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-vi/10-preferences.xml b/AnkiDroid/src/main/res/values-vi/10-preferences.xml index 7f3e11362864..17569a4ac286 100644 --- a/AnkiDroid/src/main/res/values-vi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-vi/10-preferences.xml @@ -96,6 +96,7 @@ Chỉ định các cử chỉ để hành động như trả lời và chỉnh sửa thẻ. Chạm 9 điểm Cho phép cử chỉ chạm ở các góc màn hình + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen Không diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml index 9b976904fdf6..373f381178cc 100644 --- a/AnkiDroid/src/main/res/values-wo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-wo/10-preferences.xml b/AnkiDroid/src/main/res/values-wo/10-preferences.xml index 8721a23a9991..127160523bfc 100644 --- a/AnkiDroid/src/main/res/values-wo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-wo/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-xh/02-strings.xml +++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-xh/10-preferences.xml b/AnkiDroid/src/main/res/values-xh/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-xh/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-xh/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml index c8b9e8c5f5da..a0ead5fa8a1e 100644 --- a/AnkiDroid/src/main/res/values-yue/02-strings.xml +++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml @@ -330,7 +330,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -343,7 +342,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-yue/10-preferences.xml b/AnkiDroid/src/main/res/values-yue/10-preferences.xml index 8721a23a9991..127160523bfc 100644 --- a/AnkiDroid/src/main/res/values-yue/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-yue/10-preferences.xml @@ -96,6 +96,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None 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 29ded3f222d5..eae24efd5e4a 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -330,7 +330,6 @@ 删除此卡片类型将留使一些附注没有任何卡片。 语音不支持。请尝试另一个或安装一个语音引擎。 - 显示键盘快捷键对话框 牌组选择器 不经确认删除牌组 笔记编辑器 @@ -343,7 +342,6 @@ 编辑样式 将模板复制为Markdown 编辑浏览器外观 - 按 Alt+K 显示键盘快捷键 此笔记类型中未设置用户操作 %s。请配置它 在此 %s 了解如何恢复访问的更多信息或转到设置更新牌组集文件夹 diff --git a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml index ddf9b475b4a5..be77351ac564 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml @@ -96,6 +96,7 @@ 为回答或编辑卡片等动作指定手势。 9 点触摸 允许屏幕边缘的触摸手势 + Show keyboard shortcuts 全屏导航抽屉 从屏幕上的任何地方向右滑动时打开导航抽屉 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 5d5c72414cee..2abb1392bb3f 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml @@ -329,7 +329,6 @@ 刪除此卡類型會使某些筆記本沒有任何卡片。 不支援語音。請嘗試另一個或安裝語音引擎。 - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -342,7 +341,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml index 68facc7d1936..c7948a52a73b 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml @@ -96,6 +96,7 @@ 替動作設定手勢,像是回答問題和編輯卡片。 九點邊角觸控 允許在螢幕角落進行觸控 + Show keyboard shortcuts 全屏的導航抽屜 從屏幕上任何地方向右劃,可以打開導航的抽屜。 diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml index e0c971192ee7..a86dedce299e 100644 --- a/AnkiDroid/src/main/res/values-zu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml @@ -336,7 +336,6 @@ Deleting this card type will leave some notes without any cards. Voice not supported. Try another or install a voice engine. - Show keyboard shortcuts dialog Deck Picker Delete deck without confirmation Note Editor @@ -349,7 +348,6 @@ Edit styling Copy template as markdown Edit browser appearance - Press Alt+K to show keyboard shortcuts User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-zu/10-preferences.xml b/AnkiDroid/src/main/res/values-zu/10-preferences.xml index 034f3e57b0b1..ea74a38d8c9d 100644 --- a/AnkiDroid/src/main/res/values-zu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zu/10-preferences.xml @@ -97,6 +97,7 @@ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners + Show keyboard shortcuts Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen None From f9ee824bf9fdc39a8c6e23d1bba73ee650bf6ff6 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 7 Feb 2025 07:21:38 -0300 Subject: [PATCH 028/200] refactor: add `Destination` interface it can be used to something like a `Destination` flow --- .../com/ichi2/anki/NoteEditorIntentTest.kt | 2 +- .../java/com/ichi2/anki/NoteEditorTest.kt | 2 +- .../com/ichi2/anki/AbstractFlashcardViewer.kt | 2 +- .../main/java/com/ichi2/anki/CardBrowser.kt | 4 ++-- .../main/java/com/ichi2/anki/DeckPicker.kt | 2 +- .../ichi2/anki/ImageOcclusionIntentBuilder.kt | 2 +- .../java/com/ichi2/anki/IntentHandler2.kt | 4 ++-- .../main/java/com/ichi2/anki/NoteEditor.kt | 2 +- .../src/main/java/com/ichi2/anki/Reviewer.kt | 2 +- .../InstantNoteEditorActivity.kt | 2 +- .../anki/noteeditor/NoteEditorLauncher.kt | 7 ++++-- .../ichi2/anki/pages/CardInfoDestination.kt | 5 ++-- .../java/com/ichi2/anki/pages/CongratsPage.kt | 7 +++--- .../ichi2/anki/previewer/PreviewerFragment.kt | 2 +- .../ui/windows/reviewer/ReviewerFragment.kt | 6 ++--- .../java/com/ichi2/anki/utils/Destination.kt | 23 +++++++++++++++++++ .../java/com/ichi2/widget/AddNoteWidget.kt | 2 +- .../java/com/ichi2/anki/NoteEditorTest.kt | 6 ++--- 18 files changed, 55 insertions(+), 27 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/utils/Destination.kt diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorIntentTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorIntentTest.kt index 7bf82bc5c452..9aef86abc8aa 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorIntentTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorIntentTest.kt @@ -75,6 +75,6 @@ class NoteEditorIntentTest : InstrumentedTest() { private val noteEditorTextIntent: Intent get() { val bundle = bundleOf(Intent.EXTRA_TEXT to "sample text") - return NoteEditorLauncher.PassArguments(bundle).getIntent(testContext, Intent.ACTION_SEND) + return NoteEditorLauncher.PassArguments(bundle).toIntent(testContext, Intent.ACTION_SEND) } } diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorTest.kt index 9e690f58c0b0..7fa0194541c8 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/NoteEditorTest.kt @@ -52,7 +52,7 @@ abstract class NoteEditorTest protected constructor() { private val noteEditorIntent: Intent get() { - return NoteEditorLauncher.AddNote().getIntent(targetContext) + return NoteEditorLauncher.AddNote().toIntent(targetContext) } @Before diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt index ff2fef31bd42..496c7ab6da67 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt @@ -803,7 +803,7 @@ abstract class AbstractFlashcardViewer : return } val animation = fromGesture.toAnimationTransition().invert() - val editCardIntent = NoteEditorLauncher.EditCard(currentCard!!.id, animation).getIntent(this) + val editCardIntent = NoteEditorLauncher.EditCard(currentCard!!.id, animation).toIntent(this) editCurrentCardLauncher.launch(editCardIntent) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt index 16c82dc468a5..bc1f66ad7fd3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt @@ -813,7 +813,7 @@ open class CardBrowser : @NeedsTest("I/O edits are saved") private fun openNoteEditorForCard(cardId: CardId) { currentCardId = cardId - val intent = NoteEditorLauncher.EditCard(currentCardId, Direction.DEFAULT).getIntent(this) + val intent = NoteEditorLauncher.EditCard(currentCardId, Direction.DEFAULT).toIntent(this) onEditCardActivityResult.launch(intent) // #6432 - FIXME - onCreateOptionsMenu crashes if receiving an activity result from edit card when in multiselect viewModel.endMultiSelectMode() @@ -1865,7 +1865,7 @@ open class CardBrowser : fun createAddNoteIntent( context: Context, viewModel: CardBrowserViewModel, - ): Intent = NoteEditorLauncher.AddNoteFromCardBrowser(viewModel).getIntent(context) + ): Intent = NoteEditorLauncher.AddNoteFromCardBrowser(viewModel).toIntent(context) } private fun calculateTopOffset(cardPosition: Int): Int { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt index 6bc56c6205e5..d13c7ce4b6a3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt @@ -1604,7 +1604,7 @@ open class DeckPicker : } fun addNote() { - val intent = NoteEditorLauncher.AddNote().getIntent(this) + val intent = NoteEditorLauncher.AddNote().toIntent(this) startActivity(intent) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ImageOcclusionIntentBuilder.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ImageOcclusionIntentBuilder.kt index 154a408358a1..fa19ed7f4993 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ImageOcclusionIntentBuilder.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ImageOcclusionIntentBuilder.kt @@ -27,5 +27,5 @@ import com.ichi2.anki.noteeditor.NoteEditorLauncher class ImageOcclusionIntentBuilder( private val context: Context, ) { - fun buildIntent(imageUri: Uri?): Intent = NoteEditorLauncher.ImageOcclusion(imageUri).getIntent(context) + fun buildIntent(imageUri: Uri?): Intent = NoteEditorLauncher.ImageOcclusion(imageUri).toIntent(context) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler2.kt b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler2.kt index 7f943ac46629..5581ce3ea874 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler2.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler2.kt @@ -39,11 +39,11 @@ class IntentHandler2 : AbstractIntentHandler() { if (intent.extras == null) { Timber.w("Intent unexpectedly has no extras. Notifying user, defaulting to add note.") showThemedToast(this, getString(R.string.something_wrong), false) - startActivity(NoteEditorLauncher.AddNote().getIntent(this)) + startActivity(NoteEditorLauncher.AddNote().toIntent(this)) finish() } else { val noteEditorIntent = - NoteEditorLauncher.PassArguments(intent.extras!!).getIntent(this, intent.action) + NoteEditorLauncher.PassArguments(intent.extras!!).toIntent(this, intent.action) noteEditorIntent.setDataAndType(intent.data, intent.type) startActivity(noteEditorIntent) finish() diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt index 9ab8a77ddfe5..836a5cf91f2d 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt @@ -1494,7 +1494,7 @@ class NoteEditor : arguments: NoteEditorLauncher, intentEnricher: Consumer, ) { - val intent = arguments.getIntent(requireContext()) + val intent = arguments.toIntent(requireContext()) val bundle = arguments.toBundle() // Mutate event with additional properties intentEnricher.accept(bundle) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt b/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt index 656a4b9ba759..e802da862551 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt @@ -699,7 +699,7 @@ open class Reviewer : fun addNote(fromGesture: Gesture? = null) { val animation = getAnimationTransitionFromGesture(fromGesture) val inverseAnimation = getInverseTransition(animation) - val intent = NoteEditorLauncher.AddNoteFromReviewer(inverseAnimation).getIntent(this) + val intent = NoteEditorLauncher.AddNoteFromReviewer(inverseAnimation).toIntent(this) addNoteLauncher.launch(intent) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt index 59a5ccc1adaf..10dd6c15d09a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt @@ -189,7 +189,7 @@ class InstantNoteEditorActivity : private fun openNoteEditor() { val sharedText = clozeEditTextField.text.toString() - val noteEditorIntent = NoteEditorLauncher.AddInstantNote(sharedText).getIntent(this) + val noteEditorIntent = NoteEditorLauncher.AddInstantNote(sharedText).toIntent(this) startActivity(noteEditorIntent) finish() } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/NoteEditorLauncher.kt b/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/NoteEditorLauncher.kt index ed850686c36d..fb0f4dbb5bec 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/NoteEditorLauncher.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/noteeditor/NoteEditorLauncher.kt @@ -28,13 +28,16 @@ import com.ichi2.anki.NoteEditor import com.ichi2.anki.NoteEditor.Companion.NoteEditorCaller import com.ichi2.anki.SingleFragmentActivity import com.ichi2.anki.browser.CardBrowserViewModel +import com.ichi2.anki.utils.Destination import com.ichi2.libanki.CardId import com.ichi2.libanki.DeckId /** * Defines various configurations for opening the NoteEditor fragment with specific data or actions. */ -sealed interface NoteEditorLauncher { +sealed interface NoteEditorLauncher : Destination { + override fun toIntent(context: Context): Intent = toIntent(context, action = null) + /** * Generates an intent to open the NoteEditor fragment with the configured parameters. * @@ -42,7 +45,7 @@ sealed interface NoteEditorLauncher { * @param action Optional action string for the intent. * @return Intent configured to launch the NoteEditor fragment. */ - fun getIntent( + fun toIntent( context: Context, action: String? = null, ) = SingleFragmentActivity.getIntent(context, NoteEditor::class, toBundle(), action) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CardInfoDestination.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CardInfoDestination.kt index 356ce5c82b49..cdf3510c9601 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CardInfoDestination.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CardInfoDestination.kt @@ -18,12 +18,13 @@ package com.ichi2.anki.pages import android.content.Context import android.content.Intent import com.ichi2.anki.R +import com.ichi2.anki.utils.Destination import com.ichi2.libanki.CardId data class CardInfoDestination( val cardId: CardId, -) { - fun toIntent(context: Context): Intent { +) : Destination { + override fun toIntent(context: Context): Intent { val title = context.getString(R.string.card_info_title) return PageFragment.getIntent(context, "card-info/$cardId", title) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt index 02d0764d1123..17b2dd02ba46 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt @@ -42,6 +42,7 @@ import com.ichi2.anki.launchCatchingTask import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.showThemedToast import com.ichi2.anki.snackbar.showSnackbar +import com.ichi2.anki.utils.Destination import com.ichi2.anki.utils.SECONDS_PER_DAY import com.ichi2.anki.utils.TIME_HOUR import com.ichi2.anki.utils.TIME_MINUTE @@ -97,7 +98,7 @@ class CongratsPage : viewModel.deckOptionsDestination .flowWithLifecycle(lifecycle) .onEach { destination -> - val intent = destination.getIntent(requireContext()) + val intent = destination.toIntent(requireContext()) startActivity(intent, null) }.launchIn(lifecycleScope) @@ -233,8 +234,8 @@ class CongratsViewModel : class DeckOptionsDestination( private val deckId: DeckId, private val isFiltered: Boolean, -) { - fun getIntent(context: Context): Intent = +) : Destination { + override fun toIntent(context: Context): Intent = if (isFiltered) { Intent(context, FilteredDeckOptions::class.java) } else { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerFragment.kt index b16e093b4b12..955800a7bc36 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerFragment.kt @@ -233,7 +233,7 @@ class PreviewerFragment : private fun editCard() { lifecycleScope.launch { - val intent = viewModel.getNoteEditorDestination().getIntent(requireContext()) + val intent = viewModel.getNoteEditorDestination().toIntent(requireContext()) editCardLauncher.launch(intent) } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt index 786a4a7e0931..4477e7cdf162 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt @@ -511,13 +511,13 @@ class ReviewerFragment : private fun launchEditNote() { lifecycleScope.launch { - val intent = viewModel.getEditNoteDestination().getIntent(requireContext()) + val intent = viewModel.getEditNoteDestination().toIntent(requireContext()) noteEditorLauncher.launch(intent) } } private fun launchAddNote() { - val intent = NoteEditorLauncher.AddNoteFromReviewer().getIntent(requireContext()) + val intent = NoteEditorLauncher.AddNoteFromReviewer().toIntent(requireContext()) noteEditorLauncher.launch(intent) } @@ -535,7 +535,7 @@ class ReviewerFragment : private fun launchDeckOptions() { lifecycleScope.launch { - val intent = viewModel.getDeckOptionsDestination().getIntent(requireContext()) + val intent = viewModel.getDeckOptionsDestination().toIntent(requireContext()) deckOptionsLauncher.launch(intent) } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/utils/Destination.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/Destination.kt new file mode 100644 index 000000000000..20becd6b939f --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/utils/Destination.kt @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.utils + +import android.content.Context +import android.content.Intent + +interface Destination { + fun toIntent(context: Context): Intent +} diff --git a/AnkiDroid/src/main/java/com/ichi2/widget/AddNoteWidget.kt b/AnkiDroid/src/main/java/com/ichi2/widget/AddNoteWidget.kt index e758352244de..a4953588b0d9 100644 --- a/AnkiDroid/src/main/java/com/ichi2/widget/AddNoteWidget.kt +++ b/AnkiDroid/src/main/java/com/ichi2/widget/AddNoteWidget.kt @@ -47,7 +47,7 @@ class AddNoteWidget : AnalyticsWidgetProvider() { appWidgetIds: IntArray, ) { val remoteViews = RemoteViews(context.packageName, R.layout.widget_add_note) - val intent = NoteEditorLauncher.AddNote().getIntent(context) + val intent = NoteEditorLauncher.AddNote().toIntent(context) val pendingIntent = PendingIntentCompat.getActivity(context, 0, intent, 0, false) remoteViews.setOnClickPendingIntent(R.id.widget_add_note_button, pendingIntent) appWidgetManager.updateAppWidget(appWidgetIds, remoteViews) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/NoteEditorTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/NoteEditorTest.kt index 82e49685aa4d..28dec1cab85c 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/NoteEditorTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/NoteEditorTest.kt @@ -207,7 +207,7 @@ class NoteEditorTest : RobolectricTest() { @Test fun verifyStartupAndCloseWithNoCollectionDoesNotCrash() { enableNullCollection() - val intent = NoteEditorLauncher.AddNote().getIntent(targetContext) + val intent = NoteEditorLauncher.AddNote().toIntent(targetContext) ActivityScenario.launchActivityForResult(intent).use { scenario -> scenario.onNoteEditor { noteEditor -> noteEditor.requireActivity().onBackPressedDispatcher.onBackPressed() @@ -220,7 +220,7 @@ class NoteEditorTest : RobolectricTest() { @Test fun testHandleMultimediaActionsDisplaysBottomSheet() { - val intent = NoteEditorLauncher.AddNote().getIntent(targetContext) + val intent = NoteEditorLauncher.AddNote().toIntent(targetContext) ActivityScenario.launchActivityForResult(intent).use { scenario -> scenario.onNoteEditor { noteEditor -> noteEditor.showMultimediaBottomSheet() @@ -576,7 +576,7 @@ class NoteEditorTest : RobolectricTest() { val activity = startActivityNormallyOpenCollectionWithIntent( SingleFragmentActivity::class.java, - NoteEditorLauncher.PassArguments(arguments).getIntent(targetContext, action), + NoteEditorLauncher.PassArguments(arguments).toIntent(targetContext, action), ) return activity.getEditor() } From 3b74b3d2477d8e7f25188d502b7c4057772c1d28 Mon Sep 17 00:00:00 2001 From: Ashish Yadav <48384865+criticalAY@users.noreply.github.com> Date: Sat, 8 Feb 2025 02:13:34 +0530 Subject: [PATCH 029/200] fix: instant note editor to restore text when orientation changes --- .../InstantNoteEditorActivity.kt | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt index 10dd6c15d09a..e601ae73b047 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt @@ -87,6 +87,8 @@ class InstantNoteEditorActivity : private val editMode: EditMode get() = viewModel.editorMode.value + private val updatedTextKey = "updatedText" + private lateinit var editModeButton: MaterialButton private var editFieldsLayout: LinearLayout? = null @@ -128,7 +130,10 @@ class InstantNoteEditorActivity : return } - handleSharedText(intent) + viewModel.setClozeFieldText( + savedInstanceState?.getString(updatedTextKey) ?: getSharedIntentText(intent), + ) + setupErrorListeners() prepareEditorDialog() } @@ -180,12 +185,8 @@ class InstantNoteEditorActivity : } } - /** Handles the shared text received through an Intent. **/ - private fun handleSharedText(receivedIntent: Intent) { - val sharedText = receivedIntent.getStringExtra(Intent.EXTRA_TEXT) ?: return - Timber.d("Setting cloze field text to $sharedText") - viewModel.setClozeFieldText(sharedText) - } + /** Gets the shared text received through an Intent. **/ + private fun getSharedIntentText(receivedIntent: Intent): String? = receivedIntent.getStringExtra(Intent.EXTRA_TEXT) private fun openNoteEditor() { val sharedText = clozeEditTextField.text.toString() @@ -251,6 +252,11 @@ class InstantNoteEditorActivity : ) } + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + if (intentTextChanged()) outState.putString(updatedTextKey, clozeFieldText) + } + @KotlinCleanup("notetypeJson -> non-null") private fun createEditFields( context: Context, From 185f346df09dee3b5a1b3c7ed8d13372ba480cf2 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sun, 9 Feb 2025 17:22:05 -0300 Subject: [PATCH 030/200] fix(new reviewer): suspend/bury submenus see 17950 for the issue description --- AnkiDroid/proguard-rules.pro | 1 + 1 file changed, 1 insertion(+) diff --git a/AnkiDroid/proguard-rules.pro b/AnkiDroid/proguard-rules.pro index 4c3fa9bcccc3..d5012e76b2f8 100644 --- a/AnkiDroid/proguard-rules.pro +++ b/AnkiDroid/proguard-rules.pro @@ -28,6 +28,7 @@ -keep class * extends com.google.protobuf.GeneratedMessageLite { *; } -keep class androidx.core.app.ActivityCompat$* { *; } -keep class androidx.concurrent.futures.** { *; } +-keep class androidx.appcompat.view.menu.MenuItemImpl { *; } # .utils.ext.MenuItemImpl # Ignore unused packages -dontwarn javax.naming.** From 9fd27babfdb19dc4c5c8dc9e649d207d0a1ca8f6 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sun, 9 Feb 2025 13:48:11 -0300 Subject: [PATCH 031/200] test(new reviewer): sw600dp layout is initialized --- .../windows/reviewer/ReviewerBigScreenTest.kt | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/ui/windows/reviewer/ReviewerBigScreenTest.kt diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ui/windows/reviewer/ReviewerBigScreenTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ui/windows/reviewer/ReviewerBigScreenTest.kt new file mode 100644 index 000000000000..1be2f48760e1 --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ui/windows/reviewer/ReviewerBigScreenTest.kt @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.ui.windows.reviewer + +import androidx.test.core.app.ActivityScenario +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.ichi2.anki.RobolectricTest +import com.ichi2.anki.previewer.CardViewerActivity +import org.junit.Test +import org.junit.runner.RunWith +import org.robolectric.annotation.Config + +@RunWith(AndroidJUnit4::class) +class ReviewerBigScreenTest : RobolectricTest() { + @Test + @Config(qualifiers = "w1000dp-h1000dp-480dpi") + fun `sw600dp layout is initialized`() { + val intent = ReviewerFragment.getIntent(targetContext) + ActivityScenario.launch(intent) + } +} From 919de02492c90ba7ff5798b466ae23b19fcfc72e Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sat, 8 Feb 2025 12:19:09 -0300 Subject: [PATCH 032/200] feat(new reviewer): tablet style --- .../preferences/reviewer/ReviewerMenuView.kt | 3 + .../ui/windows/reviewer/ReviewerFragment.kt | 44 +-- .../src/main/res/layout-sw600dp/reviewer2.xml | 230 +++++++++++++++ AnkiDroid/src/main/res/layout/reviewer2.xml | 276 +++++++++--------- .../main/res/layout/reviewer_menu_view.xml | 12 +- .../src/main/res/values-sw600dp/dimens.xml | 3 + AnkiDroid/src/main/res/values/dimens.xml | 1 + AnkiDroid/src/main/res/values/styles.xml | 1 + 8 files changed, 415 insertions(+), 155 deletions(-) create mode 100644 AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt index d0c2d698fd8d..1012a07817d1 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt @@ -26,6 +26,7 @@ import android.widget.LinearLayout import androidx.appcompat.view.menu.MenuBuilder import androidx.appcompat.view.menu.MenuItemImpl import androidx.appcompat.widget.ActionMenuView +import androidx.core.view.size import androidx.lifecycle.findViewTreeLifecycleOwner import androidx.lifecycle.lifecycleScope import com.ichi2.anki.Flag @@ -69,6 +70,8 @@ class ReviewerMenuView overflowMenu.clear() } + fun isEmpty() = frontMenu.size == 0 && overflowMenu.size == 0 + fun findItem(id: Int): MenuItemImpl? = (frontMenu.findItem(id) ?: overflowMenu.findItem(id)) as? MenuItemImpl fun setOnMenuItemClickListener(listener: ActionMenuView.OnMenuItemClickListener) { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt index 4477e7cdf162..a8feeef1db31 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt @@ -27,12 +27,13 @@ import android.view.ViewGroup.MarginLayoutParams import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.webkit.WebView -import android.widget.FrameLayout import android.widget.LinearLayout import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.StringRes import androidx.appcompat.view.menu.SubMenuBuilder import androidx.appcompat.widget.ActionMenuView +import androidx.appcompat.widget.AppCompatImageButton +import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.getSystemService import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat @@ -43,7 +44,6 @@ import androidx.core.view.updatePadding import androidx.fragment.app.viewModels import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope -import com.google.android.material.appbar.MaterialToolbar import com.google.android.material.button.MaterialButton import com.google.android.material.card.MaterialCardView import com.google.android.material.shape.ShapeAppearanceModel @@ -125,7 +125,7 @@ class ReviewerFragment : if (typeAnswerContainer?.isVisible == true) { typeAnswerContainer } else { - this@ReviewerFragment.view?.findViewById(R.id.buttons_area) + this@ReviewerFragment.view?.findViewById(R.id.answer_buttons) } } @@ -142,8 +142,8 @@ class ReviewerFragment : ) { super.onViewCreated(view, savedInstanceState) - view.findViewById(R.id.toolbar).apply { - setNavigationOnClickListener { requireActivity().onBackPressedDispatcher.onBackPressed() } + view.findViewById(R.id.back_button).setOnClickListener { + requireActivity().finish() } setupImmersiveMode(view) @@ -173,6 +173,10 @@ class ReviewerFragment : viewModel.onStateMutationCallback() } } + + viewModel.showingAnswer.collectIn(lifecycleScope) { + resetZoom() + } } // TODO @@ -265,10 +269,13 @@ class ReviewerFragment : private fun setupAnswerButtons(view: View) { val prefs = sharedPrefs() - val hideAnswerButtons = prefs.getBoolean(getString(R.string.hide_answer_buttons_key), false) - val buttonsAreaLayout = view.findViewById(R.id.buttons_area) - if (hideAnswerButtons) { - buttonsAreaLayout.isVisible = false + val answerButtonsLayout = view.findViewById(R.id.answer_buttons) + if (prefs.getBoolean(getString(R.string.hide_answer_buttons_key), false)) { + // Expand the menu if there is no answer buttons in big screens + view.findViewById(R.id.reviewer_menu_view).updateLayoutParams { + matchConstraintMaxWidth = 0 + } + answerButtonsLayout.isVisible = false return } @@ -314,19 +321,15 @@ class ReviewerFragment : viewModel.onShowAnswer(typedAnswer = typedAnswer) } } - val answerButtonsLayout = view.findViewById(R.id.answer_buttons) - // TODO add some kind of feedback/animation after tapping show answer or the answer buttons - viewModel.showingAnswer.collectLatestIn(lifecycleScope) { shouldShowAnswer -> - // use INVISIBLE instead of GONE to keep the same button height - if (shouldShowAnswer) { + viewModel.showingAnswer.collectLatestIn(lifecycleScope) { isAnswerShown -> + if (isAnswerShown) { showAnswerButton.visibility = View.INVISIBLE answerButtonsLayout.visibility = View.VISIBLE } else { showAnswerButton.visibility = View.VISIBLE answerButtonsLayout.visibility = View.INVISIBLE } - resetZoom() } if (prefs.getBoolean(getString(R.string.hide_hard_and_easy_key), false)) { @@ -336,9 +339,9 @@ class ReviewerFragment : val buttonsHeight = Prefs.answerButtonsSize if (buttonsHeight != 100) { - buttonsAreaLayout.post { - buttonsAreaLayout.updateLayoutParams { - height = buttonsAreaLayout.measuredHeight * buttonsHeight / 100 + answerButtonsLayout.post { + answerButtonsLayout.updateLayoutParams { + height = answerButtonsLayout.measuredHeight * buttonsHeight / 100 } } } @@ -410,6 +413,10 @@ class ReviewerFragment : private fun setupMenu(view: View) { val menu = view.findViewById(R.id.reviewer_menu_view) + if (menu.isEmpty()) { + menu.isVisible = false + return + } menu.setOnMenuItemClickListener(this) viewModel.flagFlow @@ -491,6 +498,7 @@ class ReviewerFragment : if (Prefs.frameStyle == FrameStyle.BOX) { view.findViewById(R.id.webview_container).apply { updateLayoutParams { + topMargin = 0 leftMargin = 0 rightMargin = 0 } diff --git a/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml b/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml new file mode 100644 index 000000000000..2950f1e0cbb1 --- /dev/null +++ b/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/reviewer2.xml b/AnkiDroid/src/main/res/layout/reviewer2.xml index 901646567196..4da490a77f7c 100644 --- a/AnkiDroid/src/main/res/layout/reviewer2.xml +++ b/AnkiDroid/src/main/res/layout/reviewer2.xml @@ -9,90 +9,94 @@ android:fitsSystemWindows="true" tools:context=".ui.windows.reviewer.ReviewerFragment"> - - - + + + - - - - - - - - - - - - + android:textColor="?attr/newCountColor" + android:paddingEnd="4dp" + app:layout_constraintTop_toTopOf="@id/back_button" + app:layout_constraintBottom_toBottomOf="@id/back_button" + app:layout_constraintStart_toEndOf="@id/back_button" + app:layout_constraintEnd_toStartOf="@id/lrn_count" + app:layout_constraintHorizontal_chainStyle="packed" + tools:text="127" + /> + + + + + android:layout_marginHorizontal="@dimen/reviewer_side_margin" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toBottomOf="@id/back_button" + app:layout_constraintBottom_toTopOf="@id/type_answer_container"> - + tools:backgroundTint="@color/white" /> @@ -100,10 +104,9 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/type_answer_hint" - app:endIconMode="clear_text" app:boxBackgroundMode="filled" app:boxStrokeWidth="0dp" - > + app:endIconMode="clear_text"> - - + + - - - - - + android:layout_marginHorizontal="@dimen/answer_button_margin_horizontal" + android:backgroundTint="@color/hard_button_bg" + android:text="@string/ease_button_hard" + android:textColor="@color/hard_button_text" + android:layout_weight="1" + /> - + - - - - + + + + + + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/reviewer_menu_view.xml b/AnkiDroid/src/main/res/layout/reviewer_menu_view.xml index 2b3fd4ed8daf..46f80a6935c6 100644 --- a/AnkiDroid/src/main/res/layout/reviewer_menu_view.xml +++ b/AnkiDroid/src/main/res/layout/reviewer_menu_view.xml @@ -4,8 +4,8 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:minHeight="?attr/actionBarSize" tools:context=".preferences.reviewer.ReviewerMenuView" + android:layout_gravity="center_vertical|end" > \ No newline at end of file diff --git a/AnkiDroid/src/main/res/values-sw600dp/dimens.xml b/AnkiDroid/src/main/res/values-sw600dp/dimens.xml index cfbaff1a6e51..68ed6afe5ed1 100644 --- a/AnkiDroid/src/main/res/values-sw600dp/dimens.xml +++ b/AnkiDroid/src/main/res/values-sw600dp/dimens.xml @@ -5,4 +5,7 @@ 16dp 24dp 12dp + 12dp + 18sp + 6dp \ No newline at end of file diff --git a/AnkiDroid/src/main/res/values/dimens.xml b/AnkiDroid/src/main/res/values/dimens.xml index e458b35ddbf6..4dbdd610003f 100644 --- a/AnkiDroid/src/main/res/values/dimens.xml +++ b/AnkiDroid/src/main/res/values/dimens.xml @@ -35,4 +35,5 @@ 8dp 3dp + 14sp \ No newline at end of file diff --git a/AnkiDroid/src/main/res/values/styles.xml b/AnkiDroid/src/main/res/values/styles.xml index 90da5e9601a9..950ea4955238 100644 --- a/AnkiDroid/src/main/res/values/styles.xml +++ b/AnkiDroid/src/main/res/values/styles.xml @@ -32,6 +32,7 @@ From 36e3631988f4d6b980e16377b271da7a9f684cee Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 10 Feb 2025 03:53:39 +0100 Subject: [PATCH 033/200] Correct matchesJsonValue `expectedMap` used to associated the keys of the `expectedValue` to the values of `actualValue`. As `differtKeys` also looked at the values in `actualValue`, it means the values of `expectedValues` were always ignored. I hope that this new writting, checking for the equality of the set of keys, and then for the equalities of value, will be more readable and hence improve the test suite. Luckily enough we only had one failing test. I corrected the expected value in the test. As we use the default filtered deck provided by the back-end I don't expect the implementation to be buggy here. --- .../anki/dialogs/CustomStudyDialogTest.kt | 10 +++++----- .../java/com/ichi2/testutils/JsonUtils.kt | 20 ++++++++++--------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/CustomStudyDialogTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/CustomStudyDialogTest.kt index 020827baf8f1..394fa9602b59 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/CustomStudyDialogTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/CustomStudyDialogTest.kt @@ -81,22 +81,22 @@ class CustomStudyDialogTest : RobolectricTest() { val expected = """ { - "browserCollapsed": false, - "collapsed": false, + "browserCollapsed": true, + "collapsed": true, "delays": null, "desc": "", "dyn": 1, "lrnToday": [0, 0], "newToday": [0, 0], - "previewDelay": 0, + "previewDelay": 10, "previewAgainSecs": 60, "previewHardSecs": 600, "previewGoodSecs": 0, - "resched": true, + "resched": false, "revToday": [0, 0], "separate": true, "terms": [ - ["deck:\"Default\" prop:due<=1", 99999, 6] + ["is:new added:1 deck:Default", 99999, 5] ], "timeToday": [0, 0], "usn": -1 diff --git a/AnkiDroid/src/test/java/com/ichi2/testutils/JsonUtils.kt b/AnkiDroid/src/test/java/com/ichi2/testutils/JsonUtils.kt index 2b8095516d22..fcdefddf720c 100644 --- a/AnkiDroid/src/test/java/com/ichi2/testutils/JsonUtils.kt +++ b/AnkiDroid/src/test/java/com/ichi2/testutils/JsonUtils.kt @@ -29,15 +29,17 @@ private fun matchesJsonValue( expectedValue: JSONObject, actualValue: JSONObject, ): Boolean { - val expectedMap = expectedValue.keys().asSequence().associateWith { actualValue[it] } - - val itemKeys = actualValue.keys().asSequence().toList() - val differentKeys = - itemKeys - .associateWith { actualValue[it] } - .filter { expectedMap[it.key].toString() != it.value.toString() } - - return differentKeys.isEmpty() && expectedMap.size == itemKeys.size + // Checks the objects have the same keys + if (expectedValue.keys().asSequence().toSet() != actualValue.keys().asSequence().toSet()) { + return false + } + // And that each key have the same associated values in both object. + for (key in expectedValue.keys()) { + if (expectedValue[key] != actualValue[key]) { + return false + } + } + return true } // TODO: This doesn't describe the inputs in the correct order From eb6fe12705b65004357eee65010548922a821440 Mon Sep 17 00:00:00 2001 From: Ashish Yadav <48384865+criticalAY@users.noreply.github.com> Date: Mon, 10 Feb 2025 19:16:00 +0530 Subject: [PATCH 034/200] feat: Improve Check Media dialog (#17842) * feat: add missing media notes to the MediaCheckResult * feat: implement media check option in the dialog - allow tagging option in media check dialog - split report generation methods * feat: implement the media tagging in Deckpicker --- .../main/java/com/ichi2/anki/DeckPicker.kt | 11 + .../ichi2/anki/dialogs/MediaCheckDialog.kt | 188 +++++++++++++----- .../src/main/java/com/ichi2/libanki/Media.kt | 3 +- .../res/layout/media_check_dialog_body.xml | 4 +- AnkiDroid/src/main/res/values/03-dialogs.xml | 4 - .../src/main/res/values/sentence-case.xml | 1 + 6 files changed, 148 insertions(+), 63 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt index d13c7ce4b6a3..0520ea2c1312 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt @@ -1923,6 +1923,17 @@ open class DeckPicker : } } + override fun tagMissing(missingMediaNotes: List?) { + if (missingMediaNotes == null) return + + Timber.d("DeckPicker:: Adding missing media tag") + launchCatchingTask { + withCol { + tags.bulkAdd(missingMediaNotes, TR.mediaCheckMissingMediaTag()) + } + } + } + open fun handleDbError() { Timber.i("Displaying Database Error") showDatabaseErrorDialog(DatabaseErrorDialogType.DIALOG_LOAD_FAILED) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt index de2d4ebabe1c..b3635a1b33e4 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt @@ -6,6 +6,7 @@ import android.app.Dialog import android.os.Bundle import android.os.Message import android.text.method.ScrollingMovementMethod +import android.view.LayoutInflater import android.view.View import android.widget.LinearLayout import android.widget.TextView @@ -13,12 +14,15 @@ import androidx.annotation.CheckResult import androidx.appcompat.app.AlertDialog import androidx.core.os.bundleOf import com.ichi2.anki.AnkiActivity +import com.ichi2.anki.CollectionManager.TR import com.ichi2.anki.DeckPicker import com.ichi2.anki.R import com.ichi2.anki.dialogs.MediaCheckDialog.Type.DIALOG_CONFIRM_MEDIA_CHECK import com.ichi2.anki.dialogs.MediaCheckDialog.Type.DIALOG_MEDIA_CHECK_RESULTS import com.ichi2.anki.showError +import com.ichi2.anki.ui.internationalization.toSentenceCase import com.ichi2.anki.utils.ext.dismissAllDialogFragments +import com.ichi2.compat.CompatHelper.Companion.getSerializableCompat import com.ichi2.libanki.MediaCheckResult class MediaCheckDialog : AsyncDialogFragment() { @@ -33,6 +37,8 @@ class MediaCheckDialog : AsyncDialogFragment() { fun mediaCheck() fun deleteUnused(unused: List) + + fun tagMissing(missingMediaNotes: List?) } private val dialogType: Type @@ -47,6 +53,9 @@ class MediaCheckDialog : AsyncDialogFragment() { private val invalid: List? get() = requireArguments().getStringArrayList(INVALID) + private val missingMediaNotes: List? + get() = requireArguments().getSerializableCompat>(MISSING_MEDIA_NOTES) + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { super.onCreate(savedInstanceState) val dialog = @@ -69,61 +78,114 @@ class MediaCheckDialog : AsyncDialogFragment() { val unused = unused!! val invalid = invalid!! // Generate report - val report = StringBuilder() - if (invalid.isNotEmpty()) { - report.append(String.format(res().getString(R.string.check_media_invalid), invalid.size)) - } - if (unused.isNotEmpty()) { - if (report.isNotEmpty()) { - report.append("\n") - } - report.append(String.format(res().getString(R.string.check_media_unused), unused.size)) - } - if (noHave.isNotEmpty()) { - if (report.isNotEmpty()) { - report.append("\n") - } - report.append(String.format(res().getString(R.string.check_media_nohave), noHave.size)) - } - if (report.isEmpty()) { - report.append(res().getString(R.string.check_media_no_unused_missing)) - } + val report = generateReport(unused, noHave, invalid) + + val dialogBody = setupDialogBody(layoutInflater, report, noHave, unused) - // We also prefix the report with a message about the media db being rebuilt, since - // we do a full media scan and update the db on each media check on AnkiDroid. - val reportStr = - """ - |${res().getString(R.string.check_media_db_updated)} - - |$report - """.trimMargin().trimIndent() - val dialogBody = layoutInflater.inflate(R.layout.media_check_dialog_body, null) as LinearLayout - val reportTextView = dialogBody.findViewById(R.id.reportTextView) - val fileListTextView = dialogBody.findViewById(R.id.fileListTextView) - reportTextView.text = reportStr - if (unused.isNotEmpty()) { - reportTextView.append(getString(R.string.unused_strings)) - fileListTextView.append(unused.joinToString("\n")) - fileListTextView.isScrollbarFadingEnabled = unused.size <= fileListTextView.maxLines - fileListTextView.movementMethod = ScrollingMovementMethod.getInstance() - fileListTextView.setTextIsSelectable(true) - dialog - .setPositiveButton(R.string.check_media_delete_unused) { _, _ -> - (activity as MediaCheckDialogListener?)?.deleteUnused(unused) - activity?.dismissAllDialogFragments() - }.setNegativeButton(R.string.dialog_cancel) { _, _ -> - activity?.dismissAllDialogFragments() - } - } else { - fileListTextView.visibility = View.GONE - dialog.setNegativeButton(R.string.dialog_ok) { _, _ -> - activity?.dismissAllDialogFragments() - } - } dialog .setView(dialogBody) .setCancelable(false) - .create() + .apply { + if (unused.isEmpty() && noHave.isEmpty()) { + setNegativeButton(R.string.dialog_ok) { _, _ -> activity?.dismissAllDialogFragments() } + return@apply + } + + setPositiveButton( + TR.mediaCheckDeleteUnused().toSentenceCase(requireContext(), R.string.check_media_delete_unused), + ) { _, _ -> + (activity as MediaCheckDialogListener?)?.deleteUnused(unused) + activity?.dismissAllDialogFragments() + } + setNeutralButton(R.string.dialog_cancel) { _, _ -> activity?.dismissAllDialogFragments() } + + if (noHave.isNotEmpty()) { + setNegativeButton(TR.mediaCheckAddTag().toSentenceCase(requireContext(), R.string.tag_missing)) { _, _ -> + (activity as MediaCheckDialogListener?)?.tagMissing(missingMediaNotes) + activity?.dismissAllDialogFragments() + } + } + }.create() + } + } + } + + private fun generateReport( + unused: List, + noHave: List, + invalid: List, + ): String { + val report = StringBuilder() + if (invalid.isNotEmpty()) { + report.append(String.format(res().getString(R.string.check_media_invalid), invalid.size)) + } + + if (noHave.isNotEmpty()) { + if (report.isNotEmpty()) { + report.append("\n") + } + report.append(TR.mediaCheckMissingCount(noHave.size)) + } + + if (unused.isNotEmpty()) { + if (report.isNotEmpty()) { + report.append("\n") + } + report.append(TR.mediaCheckUnusedCount(unused.size)) + } + if (report.isEmpty()) { + report.append(res().getString(R.string.check_media_no_unused_missing)) + } + return report.toString() + } + + private fun setupDialogBody( + inflater: LayoutInflater, + report: String, + noHave: List, + unused: List, + ): LinearLayout { + val dialogBody = inflater.inflate(R.layout.media_check_dialog_body, null) as LinearLayout + val reportTextView = dialogBody.findViewById(R.id.reportTextView) + val fileListTextView = dialogBody.findViewById(R.id.fileListTextView) + + reportTextView.text = createReportString(report) + + if (unused.isNotEmpty() || noHave.isNotEmpty()) { + fileListTextView.text = formatMissingAndUnusedFiles(noHave, unused) + fileListTextView.isScrollbarFadingEnabled = unused.size + noHave.size <= fileListTextView.maxLines + fileListTextView.movementMethod = ScrollingMovementMethod.getInstance() + fileListTextView.setTextIsSelectable(true) + } else { + fileListTextView.visibility = View.GONE + } + + return dialogBody + } + + private fun createReportString(report: String): String = + """ + |$report + """.trimMargin().trimIndent() + + private fun formatMissingAndUnusedFiles( + noHave: List, + unused: List, + ): String { + val noHaveFormatted = noHave.joinToString("\n") { missingMedia -> TR.mediaCheckMissingFile(missingMedia) } + val unusedFormatted = unused.joinToString("\n") { unusedMedia -> TR.mediaCheckUnusedFile(unusedMedia) } + + return buildString { + if (noHaveFormatted.isNotEmpty()) { + append(TR.mediaCheckMissingHeader()) + append("\n") + append(noHaveFormatted) + append("\n\n") + } + if (unusedFormatted.isNotEmpty()) { + append(TR.mediaCheckUnusedHeader()) + append("\n") + append(unusedFormatted) } } } @@ -139,12 +201,12 @@ class MediaCheckDialog : AsyncDialogFragment() { get() = when (dialogType) { DIALOG_CONFIRM_MEDIA_CHECK -> res().getString(R.string.check_media_title) - DIALOG_MEDIA_CHECK_RESULTS -> res().getString(R.string.app_name) + DIALOG_MEDIA_CHECK_RESULTS -> TR.mediaCheckCheckMediaAction() } override val dialogHandlerMessage: MediaCheckCompleteDialog get() { - return MediaCheckCompleteDialog(dialogType, noHave, unused, invalid) + return MediaCheckCompleteDialog(dialogType, noHave, unused, invalid, missingMediaNotes) } enum class Type( @@ -180,6 +242,11 @@ class MediaCheckDialog : AsyncDialogFragment() { */ const val INVALID = "invalid" + /** + * Key for a list of notes with missing media + */ + const val MISSING_MEDIA_NOTES = "missingMediaNotes" + @CheckResult fun newInstance(dialogType: Type) = MediaCheckDialog().apply { arguments = bundleOf(MEDIA_CHECK_DIALOG_TYPE_KEY to dialogType.code) } @@ -196,6 +263,7 @@ class MediaCheckDialog : AsyncDialogFragment() { UNUSED to ArrayList(checkList.unusedFileNames), INVALID to ArrayList(checkList.invalidFileNames), MEDIA_CHECK_DIALOG_TYPE_KEY to dialogType.code, + MISSING_MEDIA_NOTES to ArrayList(checkList.missingMediaNotes).toList(), ) } } @@ -205,6 +273,7 @@ class MediaCheckDialog : AsyncDialogFragment() { private val noHave: List?, private val unused: List?, private val invalid: List?, + private val missingMediaNotes: List?, ) : DialogHandlerMessage(WhichDialogHandler.MSG_SHOW_MEDIA_CHECK_COMPLETE_DIALOG, "MediaCheckCompleteDialog") { override fun handleAsyncMessage(activity: AnkiActivity) { // Media check results @@ -220,7 +289,13 @@ class MediaCheckDialog : AsyncDialogFragment() { ) return } - val checkList = MediaCheckResult(noHave ?: arrayListOf(), unused ?: arrayListOf(), invalid ?: arrayListOf()) + val checkList = + MediaCheckResult( + noHave ?: arrayListOf(), + unused ?: arrayListOf(), + invalid ?: arrayListOf(), + missingMediaNotes ?: arrayListOf(), + ) activity.showMediaCheckDialog(dialogType, checkList) } DIALOG_CONFIRM_MEDIA_CHECK -> { } @@ -236,6 +311,7 @@ class MediaCheckDialog : AsyncDialogFragment() { UNUSED to unused, INVALID to invalid, MEDIA_CHECK_DIALOG_TYPE_KEY to dialogType, + MISSING_MEDIA_NOTES to missingMediaNotes, ) } @@ -245,7 +321,9 @@ class MediaCheckDialog : AsyncDialogFragment() { val noHave = message.data.getStringArrayList(NO_HAVE) val unused = message.data.getStringArrayList(UNUSED) val invalid = message.data.getStringArrayList(INVALID) - return MediaCheckCompleteDialog(dialogType, noHave, unused, invalid) + val missingMediaNotes = message.data.getLongArray(MISSING_MEDIA_NOTES)?.toList() + + return MediaCheckCompleteDialog(dialogType, noHave, unused, invalid, missingMediaNotes) } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Media.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Media.kt index 1afad80ca0f1..9be36d02e000 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Media.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Media.kt @@ -100,7 +100,7 @@ open class Media( // FIXME: this also provides trash count, but UI can not handle it yet fun check(): MediaCheckResult { val out = col.backend.checkMedia() - return MediaCheckResult(out.missingList, out.unusedList, listOf()) + return MediaCheckResult(out.missingList, out.unusedList, listOf(), out.missingMediaNotesList) } /** @@ -144,4 +144,5 @@ data class MediaCheckResult( val missingFileNames: List, val unusedFileNames: List, val invalidFileNames: List, + val missingMediaNotes: List, ) diff --git a/AnkiDroid/src/main/res/layout/media_check_dialog_body.xml b/AnkiDroid/src/main/res/layout/media_check_dialog_body.xml index ec58d9c025d1..e27a35455b1e 100644 --- a/AnkiDroid/src/main/res/layout/media_check_dialog_body.xml +++ b/AnkiDroid/src/main/res/layout/media_check_dialog_body.xml @@ -16,7 +16,7 @@ --> @@ -35,8 +35,6 @@ android:layout_height="match_parent" android:layout_gravity="center" android:background="?attr/checkMediaListBackground" - android:gravity="center" - android:maxLines="7" android:minHeight="48dp" android:minWidth="48dp" android:paddingBottom="5dp" diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml index 91d59156c62e..aa70ba3bab57 100644 --- a/AnkiDroid/src/main/res/values/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values/03-dialogs.xml @@ -29,7 +29,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -94,10 +93,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… diff --git a/AnkiDroid/src/main/res/values/sentence-case.xml b/AnkiDroid/src/main/res/values/sentence-case.xml index 0e511eb783be..63653a540e91 100644 --- a/AnkiDroid/src/main/res/values/sentence-case.xml +++ b/AnkiDroid/src/main/res/values/sentence-case.xml @@ -42,5 +42,6 @@ undoActionUndone() Toggle whiteboard Custom study Empty cards + Tag missing \ No newline at end of file From 555201c17f13f57c00689ab7a1dfc528992e0dea Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Mon, 10 Feb 2025 08:46:54 -0500 Subject: [PATCH 035/200] Dependency updates 20250210 (#17958) * build(deps): bump kotlin from 2.1.0 to 2.1.10 Bumps `kotlin` from 2.1.0 to 2.1.10. Updates `org.jetbrains.kotlin:kotlin-stdlib` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin:kotlin-reflect` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin:kotlin-test` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin:kotlin-test-junit` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin:kotlin-test-junit5` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin.android` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin.plugin.parcelize` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin.jvm` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) Updates `org.jetbrains.kotlin.plugin.serialization` from 2.1.0 to 2.1.10 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/v2.1.10/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.1.0...v2.1.10) --- updated-dependencies: - dependency-name: org.jetbrains.kotlin:kotlin-stdlib dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin:kotlin-reflect dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin:kotlin-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin:kotlin-test-junit dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin:kotlin-test-junit5 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin.android dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin.plugin.parcelize dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin.jvm dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.jetbrains.kotlin.plugin.serialization dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * build(deps): bump the non-breaking group Bumps the non-breaking group in /tools/localization with 6 updates: | Package | From | To | | --- | --- | --- | | [@crowdin/crowdin-api-client](https://github.com/crowdin/crowdin-api-client-js) | `1.41.0` | `1.41.1` | | [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.18.0` | `9.19.0` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.10.7` | `22.10.10` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.20.0` | `8.21.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.20.0` | `8.21.0` | | [eslint](https://github.com/eslint/eslint) | `9.18.0` | `9.19.0` | Updates `@crowdin/crowdin-api-client` from 1.41.0 to 1.41.1 - [Release notes](https://github.com/crowdin/crowdin-api-client-js/releases) - [Changelog](https://github.com/crowdin/crowdin-api-client-js/blob/master/.release-it.json) - [Commits](https://github.com/crowdin/crowdin-api-client-js/compare/1.41.0...1.41.1) Updates `@eslint/js` from 9.18.0 to 9.19.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.19.0/packages/js) Updates `@types/node` from 22.10.7 to 22.10.10 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.20.0 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.20.0 to 8.21.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/parser) Updates `eslint` from 9.18.0 to 9.19.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0) --- updated-dependencies: - dependency-name: "@crowdin/crowdin-api-client" dependency-type: direct:production update-type: version-update:semver-patch dependency-group: non-breaking - dependency-name: "@eslint/js" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: non-breaking - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking ... Signed-off-by: dependabot[bot] * build(deps-dev): bump the non-breaking group Bumps the non-breaking group in /tools/localization with 3 updates: [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node), [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@types/node` from 22.10.10 to 22.13.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.21.0 to 8.22.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.21.0 to 8.22.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/parser) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking ... Signed-off-by: dependabot[bot] * build(deps-dev): bump the non-breaking group Bumps the non-breaking group in /tools/localization with 6 updates: | Package | From | To | | --- | --- | --- | | [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.19.0` | `9.20.0` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `22.13.0` | `22.13.1` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.22.0` | `8.23.0` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.22.0` | `8.23.0` | | [eslint](https://github.com/eslint/eslint) | `9.19.0` | `9.20.0` | | [prettier](https://github.com/prettier/prettier) | `3.4.2` | `3.5.0` | Updates `@eslint/js` from 9.19.0 to 9.20.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/commits/v9.20.0/packages/js) Updates `@types/node` from 22.13.0 to 22.13.1 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.22.0 to 8.23.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/parser) Updates `eslint` from 9.19.0 to 9.20.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md) - [Commits](https://github.com/eslint/eslint/compare/v9.19.0...v9.20.0) Updates `prettier` from 3.4.2 to 3.5.0 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.4.2...3.5.0) --- updated-dependencies: - dependency-name: "@eslint/js" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: non-breaking - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-minor dependency-group: non-breaking ... Signed-off-by: dependabot[bot] * build(deps): bump com.github.ByteHamster:SearchPreference Bumps [com.github.ByteHamster:SearchPreference](https://github.com/ByteHamster/SearchPreference) from 2.5.1 to 2.6.2. - [Release notes](https://github.com/ByteHamster/SearchPreference/releases) - [Commits](https://github.com/ByteHamster/SearchPreference/compare/v2.5.1...v2.6.2) --- updated-dependencies: - dependency-name: com.github.ByteHamster:SearchPreference dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 4 +- tools/localization/package.json | 14 +-- tools/localization/yarn.lock | 181 +++++++++++++++++--------------- 3 files changed, 104 insertions(+), 95 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1168353905a4..9044d316534a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -86,7 +86,7 @@ androidTestJunit = "1.2.1" junitJupiter = "5.11.4" junitPlatformLauncher = "1.11.4" # https://github.com/JetBrains/kotlin/releases/ -kotlin = '2.1.0' +kotlin = '2.1.10' kotlinxSerializationJson = "1.8.0" ktlintGradlePlugin = "12.1.2" leakcanaryAndroid = "2.14" @@ -102,7 +102,7 @@ okhttp = "4.12.0" protobufKotlinLite = "4.29.3" # ../AnkiDroid/robolectricDownload.gradle may need changes - read instructions in that file robolectric = "4.14.1" -searchpreference = "2.5.1" +searchpreference = "2.6.2" seismic = "1.0.3" sharedPreferencesMock = "1.2.4" slackKeeper = "0.16.1" diff --git a/tools/localization/package.json b/tools/localization/package.json index bfcf71943fb1..25427fbe52a2 100644 --- a/tools/localization/package.json +++ b/tools/localization/package.json @@ -17,7 +17,7 @@ "author": "AnkiDroid Open Source Team", "license": "GPL-3.0", "dependencies": { - "@crowdin/crowdin-api-client": "^1.41.0", + "@crowdin/crowdin-api-client": "^1.41.1", "axios": "^1.7.9", "dotenv": "^16.4.7", "extract-zip": "^2.0.1", @@ -25,12 +25,12 @@ }, "devDependencies": { "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.18.0", + "@eslint/js": "^9.20.0", "@types/jest": "^29.5.14", - "@types/node": "^22.10.7", - "@typescript-eslint/eslint-plugin": "^8.20.0", - "@typescript-eslint/parser": "^8.20.0", - "eslint": "^9.18.0", + "@types/node": "^22.13.1", + "@typescript-eslint/eslint-plugin": "^8.23.0", + "@typescript-eslint/parser": "^8.23.0", + "eslint": "^9.20.0", "eslint-config-prettier": "^10.0.1", "eslint-config-standard": "^17.1.0", "eslint-plugin-import": "^2.31.0", @@ -38,7 +38,7 @@ "eslint-plugin-promise": "^7.2.1", "globals": "^15.14.0", "jest": "^29.7.0", - "prettier": "^3.4.2", + "prettier": "^3.5.0", "ts-jest": "^29.2.5", "ts-node": "^10.9.2" }, diff --git a/tools/localization/yarn.lock b/tools/localization/yarn.lock index 934838107c9c..32c7418b9a1c 100644 --- a/tools/localization/yarn.lock +++ b/tools/localization/yarn.lock @@ -384,12 +384,12 @@ __metadata: languageName: node linkType: hard -"@crowdin/crowdin-api-client@npm:^1.41.0": - version: 1.41.0 - resolution: "@crowdin/crowdin-api-client@npm:1.41.0" +"@crowdin/crowdin-api-client@npm:^1.41.1": + version: 1.41.1 + resolution: "@crowdin/crowdin-api-client@npm:1.41.1" dependencies: axios: "npm:^1" - checksum: 10c0/c5ac2b704bcd1beaf2e7465cb78386f6b4a0f89a50b588226f1c48afa3255e8237bd5498bfededd686984bdd79f10469666d336a5814aff6df5d7846f9b48e12 + checksum: 10c0/cfea120da1daffd6a3963864d00ced528323683db8c480b22c875027fb78067cfb2f50f51035c356e7b9639945aa4f3b547da2a22bcd9c69f8826bf09cde5a79 languageName: node linkType: hard @@ -440,6 +440,15 @@ __metadata: languageName: node linkType: hard +"@eslint/core@npm:^0.11.0": + version: 0.11.0 + resolution: "@eslint/core@npm:0.11.0" + dependencies: + "@types/json-schema": "npm:^7.0.15" + checksum: 10c0/1e0671d035c908175f445864a7864cf6c6a8b67a5dfba8c47b2ac91e2d3ed36e8c1f2fd81d98a73264f8677055559699d4adb0f97d86588e616fc0dc9a4b86c9 + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^3.2.0": version: 3.2.0 resolution: "@eslint/eslintrc@npm:3.2.0" @@ -457,10 +466,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.18.0, @eslint/js@npm:^9.18.0": - version: 9.18.0 - resolution: "@eslint/js@npm:9.18.0" - checksum: 10c0/3938344c5ac7feef4b73fcb30f3c3e753570cea74c24904bb5d07e9c42fcd34fcbc40f545b081356a299e11f360c9c274b348c05fb0113fc3d492e5175eee140 +"@eslint/js@npm:9.20.0, @eslint/js@npm:^9.20.0": + version: 9.20.0 + resolution: "@eslint/js@npm:9.20.0" + checksum: 10c0/10e7b5b9e628b5192e8fc6b0ecd27cf48322947e83e999ff60f9f9e44ac8d499138bcb9383cbfa6e51e780d53b4e76ccc2d1753b108b7173b8404fd484d37328 languageName: node linkType: hard @@ -1066,12 +1075,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^22.10.7": - version: 22.10.7 - resolution: "@types/node@npm:22.10.7" +"@types/node@npm:^22.13.1": + version: 22.13.1 + resolution: "@types/node@npm:22.13.1" dependencies: undici-types: "npm:~6.20.0" - checksum: 10c0/c941b4689dfc4044b64a5f601306cbcb0c7210be853ba378a5dd44137898c45accedd796ee002ad9407024cac7ecaf5049304951cb1d80ce3d7cebbbae56f20e + checksum: 10c0/d4e56d41d8bd53de93da2651c0a0234e330bd7b1b6d071b1a94bd3b5ee2d9f387519e739c52a15c1faa4fb9d97e825b848421af4b2e50e6518011e7adb4a34b7 languageName: node linkType: hard @@ -1107,115 +1116,115 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.20.0" +"@typescript-eslint/eslint-plugin@npm:^8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.23.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.20.0" - "@typescript-eslint/type-utils": "npm:8.20.0" - "@typescript-eslint/utils": "npm:8.20.0" - "@typescript-eslint/visitor-keys": "npm:8.20.0" + "@typescript-eslint/scope-manager": "npm:8.23.0" + "@typescript-eslint/type-utils": "npm:8.23.0" + "@typescript-eslint/utils": "npm:8.23.0" + "@typescript-eslint/visitor-keys": "npm:8.23.0" graphemer: "npm:^1.4.0" ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.0.0" + ts-api-utils: "npm:^2.0.1" peerDependencies: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/c68d0dc5419db93c38eea8adecac19e27f8b023d015a944ffded112d584e87fa7fe512070a6a1085899cab2e12e1c8db276e10412b74bf639ca6b04052bbfedc + checksum: 10c0/6c760a5f90748774f79a1b701f85fe6d99e89f289bc33993009987b0ffe2d13b3960ce595d452a937f3413af3918c76830659317242c05e49db40ceaca593033 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/parser@npm:8.20.0" +"@typescript-eslint/parser@npm:^8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/parser@npm:8.23.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.20.0" - "@typescript-eslint/types": "npm:8.20.0" - "@typescript-eslint/typescript-estree": "npm:8.20.0" - "@typescript-eslint/visitor-keys": "npm:8.20.0" + "@typescript-eslint/scope-manager": "npm:8.23.0" + "@typescript-eslint/types": "npm:8.23.0" + "@typescript-eslint/typescript-estree": "npm:8.23.0" + "@typescript-eslint/visitor-keys": "npm:8.23.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/fff4a86be27f603ad8d6f7dd9758c46b04a254828f0c6d8a34869c1cf30b5828b60a1dc088f72680a7b65cc5fc696848df4605de19e59a18467306d7ca56c11d + checksum: 10c0/f9e0f83a6dd97a9049d4ce23d660a1d4d5f3c57be8efc68e2258e6b2d5b823086d188b534f791a3412ef10d211fe4916b378254728150094c4f8b0ab44aae2a7 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/scope-manager@npm:8.20.0" +"@typescript-eslint/scope-manager@npm:8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/scope-manager@npm:8.23.0" dependencies: - "@typescript-eslint/types": "npm:8.20.0" - "@typescript-eslint/visitor-keys": "npm:8.20.0" - checksum: 10c0/a8074768d06c863169294116624a45c19377ff0b8635ad5fa4ae673b43cf704d1b9b79384ceef0ff0abb78b107d345cd90fe5572354daf6ad773fe462ee71e6a + "@typescript-eslint/types": "npm:8.23.0" + "@typescript-eslint/visitor-keys": "npm:8.23.0" + checksum: 10c0/625b524a4fc25667b20f3541da84674af9c2abfac6596e30f7a40085513172bf1aac125488b32885894e3ef6596a0d06dec9a65ed4562884e0bca87a758600fa languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/type-utils@npm:8.20.0" +"@typescript-eslint/type-utils@npm:8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/type-utils@npm:8.23.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.20.0" - "@typescript-eslint/utils": "npm:8.20.0" + "@typescript-eslint/typescript-estree": "npm:8.23.0" + "@typescript-eslint/utils": "npm:8.23.0" debug: "npm:^4.3.4" - ts-api-utils: "npm:^2.0.0" + ts-api-utils: "npm:^2.0.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/7d46143f26ec606b71d20f0f5535b16abba2ba7a5a2daecd2584ddb61d1284dd8404f34265cc1fdfd541068b24b0211f7ad94801c94e4c60869d9f26bf3c0b9b + checksum: 10c0/a98dc2f2f75ec2132176428011ba620ad5b641a04e9e18471a7b9f979f6966a76aeaf6e51072c5364de68f83832a3a77b04518ec65c3092dadbd033d03fb5e35 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/types@npm:8.20.0" - checksum: 10c0/21292d4ca089897015d2bf5ab99909a7b362902f63f4ba10696676823b50d00c7b4cd093b4b43fba01d12bc3feca3852d2c28528c06d8e45446b7477887dbee7 +"@typescript-eslint/types@npm:8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/types@npm:8.23.0" + checksum: 10c0/78737a14e8469e33212d9bbc26d6880bca3f8e47764273eb4c662f5ed38d0b35c626d646d4a8e9a6ee64a0e352b18dd36422e59ce217362b5af473b79d058b35 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.20.0" +"@typescript-eslint/typescript-estree@npm:8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.23.0" dependencies: - "@typescript-eslint/types": "npm:8.20.0" - "@typescript-eslint/visitor-keys": "npm:8.20.0" + "@typescript-eslint/types": "npm:8.23.0" + "@typescript-eslint/visitor-keys": "npm:8.23.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" - ts-api-utils: "npm:^2.0.0" + ts-api-utils: "npm:^2.0.1" peerDependencies: typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/54a2c1da7d1c5f7e865b941e8a3c98eb4b5f56ed8741664a84065173bde9602cdb8866b0984b26816d6af885c1528311c11e7286e869ed424483b74366514cbd + checksum: 10c0/2cc8defb3d9b25b899a62c6b6ca26c442433bf95f626f6275935e2754d9a74abb0015c737de27038b0f378273e67e61120d9cf2941c44848e4bffbbc297fdf74 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/utils@npm:8.20.0" +"@typescript-eslint/utils@npm:8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/utils@npm:8.23.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.20.0" - "@typescript-eslint/types": "npm:8.20.0" - "@typescript-eslint/typescript-estree": "npm:8.20.0" + "@typescript-eslint/scope-manager": "npm:8.23.0" + "@typescript-eslint/types": "npm:8.23.0" + "@typescript-eslint/typescript-estree": "npm:8.23.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.8.0" - checksum: 10c0/dd36c3b22a2adde1e1462aed0c8b4720f61859b4ebb0c3ef935a786a6b1cb0ec21eb0689f5a8debe8db26d97ebb979bab68d6f8fe7b0098e6200a485cfe2991b + checksum: 10c0/8967cf6543b1df2fb8d29086a0d35f5f7623e935706ad7c5bfcc6123e6fb08a767be1770601d481d815022bec43422730c6c8035892f23cd11cdadb16176b418 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.20.0": - version: 8.20.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.20.0" +"@typescript-eslint/visitor-keys@npm:8.23.0": + version: 8.23.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.23.0" dependencies: - "@typescript-eslint/types": "npm:8.20.0" + "@typescript-eslint/types": "npm:8.23.0" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10c0/e95d8b2685e8beb6637bf2e9d06e4177a400d3a2b142ba749944690f969ee3186b750082fd9bf34ada82acf1c5dd5970201dfd97619029c8ecca85fb4b50dbd8 + checksum: 10c0/a406f78aa18b4efb2adf26e3a6ca48c9a6f2cc9545e083b50efaaf90f0a80d2bea79ceda51da1f109706d4138756b0978a323b9176c9a6a519e87168851e7e16 languageName: node linkType: hard @@ -1288,16 +1297,16 @@ __metadata: version: 0.0.0-use.local resolution: "ankidroid-localization@workspace:." dependencies: - "@crowdin/crowdin-api-client": "npm:^1.41.0" + "@crowdin/crowdin-api-client": "npm:^1.41.1" "@eslint/eslintrc": "npm:^3.2.0" - "@eslint/js": "npm:^9.18.0" + "@eslint/js": "npm:^9.20.0" "@types/jest": "npm:^29.5.14" - "@types/node": "npm:^22.10.7" - "@typescript-eslint/eslint-plugin": "npm:^8.20.0" - "@typescript-eslint/parser": "npm:^8.20.0" + "@types/node": "npm:^22.13.1" + "@typescript-eslint/eslint-plugin": "npm:^8.23.0" + "@typescript-eslint/parser": "npm:^8.23.0" axios: "npm:^1.7.9" dotenv: "npm:^16.4.7" - eslint: "npm:^9.18.0" + eslint: "npm:^9.20.0" eslint-config-prettier: "npm:^10.0.1" eslint-config-standard: "npm:^17.1.0" eslint-plugin-import: "npm:^2.31.0" @@ -1306,7 +1315,7 @@ __metadata: extract-zip: "npm:^2.0.1" globals: "npm:^15.14.0" jest: "npm:^29.7.0" - prettier: "npm:^3.4.2" + prettier: "npm:^3.5.0" ts-jest: "npm:^29.2.5" ts-node: "npm:^10.9.2" typescript: "npm:^5.7.3" @@ -2406,16 +2415,16 @@ __metadata: languageName: node linkType: hard -"eslint@npm:^9.18.0": - version: 9.18.0 - resolution: "eslint@npm:9.18.0" +"eslint@npm:^9.20.0": + version: 9.20.0 + resolution: "eslint@npm:9.20.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.12.1" "@eslint/config-array": "npm:^0.19.0" - "@eslint/core": "npm:^0.10.0" + "@eslint/core": "npm:^0.11.0" "@eslint/eslintrc": "npm:^3.2.0" - "@eslint/js": "npm:9.18.0" + "@eslint/js": "npm:9.20.0" "@eslint/plugin-kit": "npm:^0.2.5" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" @@ -2451,7 +2460,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/7f592ad228b9bd627a24870fdc875bacdab7bf535d4b67316c4cb791e90d0125130a74769f3c407b0c4b7027b3082ef33864a63ee1024552a60a17db60493f15 + checksum: 10c0/5eb2d9b5ed85a0b022871d19719417d110afb07a4abfedd856ad03d9a821def5f6bc31d7c407ca27f56e5e66e39375300fd2b877017245eb99c44060d6c983bd languageName: node linkType: hard @@ -4721,12 +4730,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^3.4.2": - version: 3.4.2 - resolution: "prettier@npm:3.4.2" +"prettier@npm:^3.5.0": + version: 3.5.0 + resolution: "prettier@npm:3.5.0" bin: prettier: bin/prettier.cjs - checksum: 10c0/99e076a26ed0aba4ebc043880d0f08bbb8c59a4c6641cdee6cdadf2205bdd87aa1d7823f50c3aea41e015e99878d37c58d7b5f0e663bba0ef047f94e36b96446 + checksum: 10c0/6c355d74c377f5622953229d92477e8b9779162e848db90fd7e06c431deb73585d31fafc4516cf5868917825b97b9ec7c87c8d8b8e03ccd9fc9c0b7699d1a650 languageName: node linkType: hard @@ -5325,12 +5334,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.0.0": - version: 2.0.0 - resolution: "ts-api-utils@npm:2.0.0" +"ts-api-utils@npm:^2.0.1": + version: 2.0.1 + resolution: "ts-api-utils@npm:2.0.1" peerDependencies: typescript: ">=4.8.4" - checksum: 10c0/6165e29a5b75bd0218e3cb0f9ee31aa893dbd819c2e46dbb086c841121eb0436ed47c2c18a20cb3463d74fd1fb5af62e2604ba5971cc48e5b38ebbdc56746dfc + checksum: 10c0/23fd56a958b332cac00150a652e4c84730df30571bd2faa1ba6d7b511356d1a61656621492bb6c7f15dd6e18847a1408357a0e406671d358115369a17f5bfedd languageName: node linkType: hard From f96d114699ac1eb7f50a04816654dae981aef0fa Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Thu, 26 Dec 2024 18:06:45 -0300 Subject: [PATCH 036/200] refactor: extract Binding equality to original classes --- .../java/com/ichi2/anki/reviewer/Binding.kt | 15 ++++++- .../ichi2/anki/reviewer/MappableBinding.kt | 41 +------------------ 2 files changed, 16 insertions(+), 40 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt index 8a9e923cdb99..bb9dbf8efa46 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt @@ -23,6 +23,7 @@ import com.ichi2.anki.utils.ext.ifNotZero import com.ichi2.utils.StringUtil import com.ichi2.utils.lastIndexOfOrNull import timber.log.Timber +import java.util.Objects sealed interface Binding { data class GestureInput( @@ -75,6 +76,7 @@ sealed interface Binding { val modifierKeys: ModifierKeys } + @Suppress("EqualsOrHashCode") data class KeyCode( val keycode: Int, override val modifierKeys: ModifierKeys = ModifierKeys.none(), @@ -101,8 +103,12 @@ sealed interface Binding { append(modifierKeys.toString()) append(keycode) } + + // don't include the modifierKeys + override fun hashCode(): Int = Objects.hash(keycode) } + @Suppress("EqualsOrHashCode") data class UnicodeCharacter( val unicodeCharacter: Char, override val modifierKeys: ModifierKeys = AppDefinedModifierKeys.allowShift(), @@ -121,6 +127,9 @@ sealed interface Binding { append(modifierKeys.toString()) append(unicodeCharacter) } + + // don't include the modifierKeys + override fun hashCode(): Int = Objects.hash(unicodeCharacter) } data object UnknownBinding : Binding { @@ -168,7 +177,7 @@ sealed interface Binding { if (shift) append("Shift+") } - fun semiStructuralEquals(keys: ModifierKeys): Boolean { + private fun semiStructuralEquals(keys: ModifierKeys): Boolean { if (this.alt != keys.alt || this.ctrl != keys.ctrl) { return false } @@ -179,6 +188,10 @@ sealed interface Binding { ) } + override fun equals(other: Any?): Boolean = other is ModifierKeys && semiStructuralEquals(other) + + override fun hashCode(): Int = Objects.hash(ctrl, alt, shift, shiftMatches(true), shiftMatches(false)) + companion object { fun none(): ModifierKeys = ModifierKeys(shift = false, ctrl = false, alt = false) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index c9cdda5f0a17..25cc52924997 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -22,11 +22,8 @@ import androidx.annotation.CheckResult import com.ichi2.anki.R import com.ichi2.anki.cardviewer.Gesture import com.ichi2.anki.cardviewer.ViewerCommand -import com.ichi2.anki.reviewer.Binding.AxisButtonBinding import com.ichi2.anki.reviewer.Binding.GestureInput import com.ichi2.anki.reviewer.Binding.KeyBinding -import com.ichi2.anki.reviewer.Binding.KeyCode -import com.ichi2.anki.reviewer.Binding.UnicodeCharacter import com.ichi2.utils.hash import timber.log.Timber import java.util.Objects @@ -47,48 +44,14 @@ class MappableBinding( if (other == null) return false val otherBinding = (other as MappableBinding).binding - val bindingEquals = - when { - binding is KeyCode && otherBinding is KeyCode -> binding.keycode == otherBinding.keycode && modifierEquals(otherBinding) - binding is UnicodeCharacter && otherBinding is UnicodeCharacter -> { - binding.unicodeCharacter == otherBinding.unicodeCharacter && - modifierEquals(otherBinding) - } - binding is GestureInput && otherBinding is GestureInput -> binding.gesture == otherBinding.gesture - binding is AxisButtonBinding && otherBinding is AxisButtonBinding -> { - binding.axis == otherBinding.axis && binding.threshold == otherBinding.threshold - } - else -> false - } - if (!bindingEquals) { + if (binding != otherBinding) { return false } return screen.screenEquals(other.screen) } - override fun hashCode(): Int { - // don't include the modifierKeys or mSide - val bindingHash = - when (binding) { - is KeyCode -> binding.keycode - is UnicodeCharacter -> binding.unicodeCharacter - is GestureInput -> binding.gesture - is AxisButtonBinding -> hash(binding.axis.motionEventValue, binding.threshold.toInt()) - else -> 0 - } - return Objects.hash(bindingHash, screen.prefix) - } - - private fun modifierEquals(otherBinding: KeyBinding): Boolean { - // equals allowing subclasses - val keys = otherBinding.modifierKeys - val thisKeys = (this.binding as KeyBinding).modifierKeys - if (thisKeys === keys) return true - return thisKeys.semiStructuralEquals(keys) - - // allow subclasses to work - a subclass which overrides shiftMatches will return true on one of the tests - } + override fun hashCode(): Int = Objects.hash(binding, screen.prefix) fun toDisplayString(context: Context): String = screen.toDisplayString(context, binding) From f7ee6b94a3184ae8c98c1d689fce4ebc32110b7e Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:35:10 -0300 Subject: [PATCH 037/200] refactor(Binding): inline some methods --- AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt | 6 +----- .../src/test/java/com/ichi2/anki/reviewer/BindingTest.kt | 7 +++---- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt index bb9dbf8efa46..63bddce697fc 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt @@ -162,14 +162,10 @@ sealed interface Binding { private fun ctrlMatches(event: KeyEvent): Boolean = ctrl == event.isCtrlPressed - private fun altMatches(event: KeyEvent): Boolean = altMatches(event.isAltPressed) + private fun altMatches(event: KeyEvent): Boolean = alt == event.isAltPressed open fun shiftMatches(shiftPressed: Boolean): Boolean = shift == shiftPressed - fun ctrlMatches(ctrlPressed: Boolean): Boolean = ctrl == ctrlPressed - - fun altMatches(altPressed: Boolean): Boolean = alt == altPressed - override fun toString() = buildString { if (ctrl) append("Ctrl+") diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt index 425ab37501f9..3558f760d0a3 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt @@ -25,14 +25,13 @@ import org.mockito.ArgumentMatchers.anyInt import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import kotlin.reflect.KFunction1 -import kotlin.reflect.KFunction2 class BindingTest { @Test fun modifierKeys_Are_Loaded() { testModifierKeys("shift", KeyEvent::isShiftPressed, Binding.ModifierKeys::shiftMatches) - testModifierKeys("ctrl", KeyEvent::isCtrlPressed, Binding.ModifierKeys::ctrlMatches) - testModifierKeys("alt", KeyEvent::isAltPressed, Binding.ModifierKeys::altMatches) + testModifierKeys("ctrl", KeyEvent::isCtrlPressed) { k, ctrlPressed -> k.ctrl == ctrlPressed } + testModifierKeys("alt", KeyEvent::isAltPressed) { k, altPressed -> k.alt == altPressed } } @Test @@ -72,7 +71,7 @@ class BindingTest { private fun testModifierKeys( name: String, event: KFunction1, - getValue: KFunction2, + getValue: (Binding.ModifierKeys, Boolean) -> Boolean, ) { fun testModifierResult( event: KFunction1, From 4fd3bdbb8ccd03abb1705f514768b7f425686ef3 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 16:56:05 -0300 Subject: [PATCH 038/200] test: modifier keys equality --- .../java/com/ichi2/anki/reviewer/Binding.kt | 4 ++-- .../java/com/ichi2/anki/reviewer/BindingTest.kt | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt index 63bddce697fc..6d81760e3087 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/Binding.kt @@ -186,7 +186,7 @@ sealed interface Binding { override fun equals(other: Any?): Boolean = other is ModifierKeys && semiStructuralEquals(other) - override fun hashCode(): Int = Objects.hash(ctrl, alt, shift, shiftMatches(true), shiftMatches(false)) + override fun hashCode(): Int = Objects.hash(ctrl, alt, shiftMatches(true)) companion object { fun none(): ModifierKeys = ModifierKeys(shift = false, ctrl = false, alt = false) @@ -213,7 +213,7 @@ sealed interface Binding { } /** Modifier keys which cannot be defined by a binding */ - private class AppDefinedModifierKeys private constructor() : ModifierKeys(false, false, false) { + class AppDefinedModifierKeys private constructor() : ModifierKeys(false, false, false) { override fun shiftMatches(shiftPressed: Boolean): Boolean = true companion object { diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt index 3558f760d0a3..28c83f834de9 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingTest.kt @@ -25,6 +25,8 @@ import org.mockito.ArgumentMatchers.anyInt import org.mockito.kotlin.doReturn import org.mockito.kotlin.mock import kotlin.reflect.KFunction1 +import kotlin.test.assertFalse +import kotlin.test.assertTrue class BindingTest { @Test @@ -68,6 +70,21 @@ class BindingTest { assertThat(Binding.unknown().toString(), equalTo("")) } + @Test + fun testModifierKeysEquality() { + val one = Binding.AppDefinedModifierKeys.allowShift() + val two = Binding.ModifierKeys(shift = true, ctrl = false, alt = false) + + assertTrue(one.shiftMatches(true)) + assertTrue(one.shiftMatches(false)) + + assertTrue(two.shiftMatches(true)) + assertFalse(two.shiftMatches(false)) + + assertEquals(one, two) + assertEquals(one.hashCode(), two.hashCode()) + } + private fun testModifierKeys( name: String, event: KFunction1, From ef9826778d1dbfe9de391c753127efdb1438c17b Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Mon, 10 Feb 2025 13:48:57 +0000 Subject: [PATCH 039/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-am/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ar/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-az/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-be/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-bg/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-bn/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ca/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ckb/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-cs/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-da/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-de/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-el/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-eo/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-et/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-eu/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-fa/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-fi/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-fil/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-fr/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-fy/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ga/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-gl/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-got/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-gu/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-heb/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-hi/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-hr/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-hu/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-hy/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ind/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-is/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-it/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-iw/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ja/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-jv/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ka/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-kk/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-km/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-kn/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ko/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ku/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ky/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-lt/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-lv/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-mk/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ml/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-mn/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-mr/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ms/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-my/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-nl/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-nn/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-no/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-or/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-pa/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-pl/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ro/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ru/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sat/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sc/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sk/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sl/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sq/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sr/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ss/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sv/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-sw/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ta/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-te/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-tg/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-tgl/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-th/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ti/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-tn/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-tr/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ts/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-tt/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ug/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-uk/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ur/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-uz/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ve/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-vi/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-wo/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-xh/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-yue/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-zu/03-dialogs.xml | 4 ---- 95 files changed, 1 insertion(+), 377 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/03-dialogs.xml b/AnkiDroid/src/main/res/values-af/03-dialogs.xml index 0c89eb14c259..bedd2ec9b523 100644 --- a/AnkiDroid/src/main/res/values-af/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-af/03-dialogs.xml @@ -55,7 +55,6 @@ Verwyder gefilterde pak %s en stuur alle kaarte terug na hul oorspronklike pakke? Geen teks-na-spraak taal beskikbaar nie Moet nie praat nie - \n\nOngebruikte lêers:\n Herposisioneer nuwe kaart Slegs nuwe kaarte kan herposisioneer word @@ -112,10 +111,7 @@ Media word nagegaan… Media nagegaan Lêers met ongeldige enkodering: %d - Lêers in mediavouer maar nie deur enige kaarte gebruik nie: %d - Lêers wat op kaarte gebruik word maar nie in mediavouer is nie: %d Geen ongebruikte of ontbrekende lêers gevind nie - Media-databasis is herbou Verwyder ongebruikte Media word uitgevee… Verwyderingsresultaat diff --git a/AnkiDroid/src/main/res/values-am/03-dialogs.xml b/AnkiDroid/src/main/res/values-am/03-dialogs.xml index 8fe479b3a949..bba24a6cda13 100644 --- a/AnkiDroid/src/main/res/values-am/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-am/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nጥቅም ላይ ያልዋሉ ፋይሎች፡\n የአዲስ ካርድ ቦታ መለወጫ Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml index a594b212491c..a624059dbaaa 100644 --- a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml @@ -59,7 +59,6 @@ Delete filtered deck %s and send all cards back to their original decks? لا يتوفر دعم تحويل النص إلى كلام لأي لغة لا تنطق - \n\nملفات عير مستخدمة:\n تغيير موضع البطاقة الجديدة يمكن تغيير موضع البطاقات الجديدة فقط @@ -124,10 +123,7 @@ يجري فحص الوسائط… تم فحص الوسائط ملفات بترميز غير صالح: %d - ملفات موجودة في مجلد الوسائط لكنها غير مستخدمة من قبل أي بطاقة: %d - ملفات مستخدمة في البطاقات لكنها غير موجودة في مجلد الوسائط: %d لم يُعثَر على ملفات غير مستخدمة أو مفقودة - أعيد بناء قاعدة بيانات الوسائط حذف غير المستخدمة جار حذف الوسائط… نتيجة الحذف diff --git a/AnkiDroid/src/main/res/values-az/03-dialogs.xml b/AnkiDroid/src/main/res/values-az/03-dialogs.xml index b508ed2b4e15..f8b3c7ecf142 100644 --- a/AnkiDroid/src/main/res/values-az/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-az/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Mətndən-çıxış dilinə ehtiyac yoxdur Söhbət etməyin - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml index 7f4750087280..b37b6c4d6299 100644 --- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml @@ -57,7 +57,6 @@ Выдаліць фільтраваную калоду %s і адправіць усе карткі назад у іх арыгінальныя калоды? Сінтэз маўлення недаступны Не прамаўляць - \n\nНявыкарыстаныя файлы:\n Перамясціць новую картку Толькі новыя карткі могуць быць перамешчаныя @@ -118,10 +117,7 @@ Праверка медыяфайлаў… Медыяфайлы правераныя Файлы з памылковым кадаваннем: %d - Медыяфайлы знаходзяцца ў адпаведнай папцы, але не прымацаваныя да картак: %d - Медыяфайлы не знаходзяцца ў адпаведнай папцы, але прымацаваныя да картак: %d Адсутных або файлаў, якія не выкарыстоўваюцца не знойдзена - База даных з медыяфайлаламі перабудавана Выдаліць, якія не выкарыстоўваюцца Выдаленне медыяфайлаў… Вынік выдалення diff --git a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml index 3fa24b5245fa..3f426899b60c 100644 --- a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Няма наличен синтез за език Не говори - \n\nНеизползвани файли:\n Преместване на нова карта Само нови карти могат да бъдат премествани @@ -112,10 +111,7 @@ Проверка на медия… Медията е проверена Файлове с невалидно кодиране: %d - Файловете са в медийната папка, но не се използват от всички карти: %d - Файлове, използвани в картите не са медийната папка: %d Няма намерени неизползвани или липсващи файлове - Медийната база данни е възстановена Изтрий неизползваните Изтриване на медийни файлове… Резултат за изтриване diff --git a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml index d475805a357c..1794387d6b84 100644 --- a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml @@ -55,7 +55,6 @@ ফিল্টার করা ডেক %s মুছে ফেলবেন এবং সমস্ত কার্ড তাদের আসল ডেকে ফিরিয়ে দেবেন? কোনও টেক্সট টু স্পিচ ভাষা উপলব্ধ নেই নিশ্চুপ - \n\nঅব্যবহৃত ফাইলসমূহ:\n নতুন কার্ড এর ক্রম পরিবর্তন শুধু মাত্র নতুন কার্ড এর ক্রম বদলানো যাবে @@ -112,10 +111,7 @@ মিডিয়া পরীক্ষা করা হচ্ছে… মিডিয়া চেক করা হয়েছে অবৈধ এনকোডিং সহ ফাইল: %d - মিডিয়া ফোল্ডারে ফাইল করুন কিন্তু কোনো কার্ড ব্যবহার হচ্ছে না: %d - Files used on cards but not in media folder: %d কোন অব্যবহৃত বা অনুপস্থিত ফাইল খুঁজে পাওয়া যায়নি - মিডিয়া ডাটাবেস পুনর্নির্মাণ অব্যবহৃত মুছুন মিডিয়া মুছে ফেলা হচ্ছে… মুছে ফেলার ফলাফল diff --git a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml index 0da65e5d0d17..54e7271f0a05 100644 --- a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No hi ha idiomes de síntesi de veu disponibles No parlis - \n\Fitxers no usats:\n Recol·locar carta nova Solament es poden recol·locar les cartes noves @@ -112,10 +111,7 @@ Comprovant multimèdia… Multimèdia comprovada Arxius amb codificació no vàlida: %d - Arxius existents en carpeta de multimèdia però no utilitzats per qualsevol carta: %d - Fitxers utilitzats en cartes però no existents en carpeta de multimèdia: %d Cap arixu no utilitzat o mancant trobat - Base de dades de multimèdia reconstruïda Suprimir no utilitzats Suprimint medis… Resultat de la supressió diff --git a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml index a607b061a8a5..c2f07ad2a3b1 100644 --- a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Nexwîne - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ …Medyayê kontrol dike Medyayê kontrol kir Pelên bi kodvekirinên çewt: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Yê bikarnehatî jê bibe Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml index c37af94ea62f..0e86cf4a7b88 100644 --- a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml @@ -57,7 +57,6 @@ Vymazat filtrovaný balíček %s a poslat všechny karty zpět do jejich původních balíčků? Není dostupný žádný jazyk převodu textu na řeč Nemluv - \n\nNepoužité soubory:\n Změnit pořadí nové karty Změnit pořadí lze pouze u nových karet @@ -118,10 +117,7 @@ Kontrolují se multimédia… Multimédia zkontrolována Soubory s neplatným kódováním: %d - Soubory ve složce s multimédii, ale nejsou používány na žádné kartě: %d - Soubory používané na kartách, ale nejsou ve složce s multimédii: %d Nenalezeny žádné nepoužívané nebo chybějící soubory - Multimediální databáze opravena Odstranit nepoužité Odstraňují se multimédia… Výsledek odstraňování diff --git a/AnkiDroid/src/main/res/values-da/03-dialogs.xml b/AnkiDroid/src/main/res/values-da/03-dialogs.xml index af5b334faf62..a1a83eade31c 100644 --- a/AnkiDroid/src/main/res/values-da/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-da/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Intet Tekst-Til-Tale sprog tilgængelig Don’t speak - \n\nUnused files:\n Repositionér nyt kort Udelukkende nye kort kan repositioneres @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-de/03-dialogs.xml b/AnkiDroid/src/main/res/values-de/03-dialogs.xml index 65212153ec1b..08af5811948e 100644 --- a/AnkiDroid/src/main/res/values-de/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-de/03-dialogs.xml @@ -55,7 +55,6 @@ Gefilterten Stapel „%s“ löschen und alle Karten zurück in ihre ursprünglichen Stapel senden? Keine Vorlesesprache verfügbar Nicht vorlesen - \n\nUnbenutzte Dateien:\n Position der neuen Karte ändern Die Position kann nur für neue Karten geändert werden @@ -112,10 +111,7 @@ Medien werden überprüft … Medien überprüft Dateien mit ungültiger Codierung: %d - Dateien im Medienordner, die von keiner Karte genutzt werden: %d - Von Karten genutzte Dateien, die im Medienordner fehlen: %d Keine unbenutzten oder fehlenden Dateien gefunden. - Mediendatenbank neu aufgebaut Ungenutzte löschen Medien werden gelöscht … Löschergebnis diff --git a/AnkiDroid/src/main/res/values-el/03-dialogs.xml b/AnkiDroid/src/main/res/values-el/03-dialogs.xml index 30113e36d91b..a4929bbba611 100644 --- a/AnkiDroid/src/main/res/values-el/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-el/03-dialogs.xml @@ -55,7 +55,6 @@ Διαγράψτε τη φιλτραρισμένη τράπουλα %s και στείλτε όλες τις κάρτες πίσω στις αρχικές τους τράπουλες; Δεν είναι διαθέσιμη η μετατροπής κειμένου σε ομιλία Σίγαση - \n\nΑχρησιμοποίητα αρχεία:\n Επανατοποθέτηση νέας κάρτας Μόνο νέες κάρτες μπορούν να επανατοποθετηθούν @@ -112,10 +111,7 @@ Έλεγχος πολυμέσων… Τα πολυμέσα ελέγχθηκαν Αρχεία με μη έγκυρη κωδικοποίηση: %d - Αρχεία στο φάκελο πολυμέσων που όμως δεν χρησιμοποιούνται από οποιαδήποτε κάρτα: %d - Αρχεία που χρησιμοποιούνται σε κάρτες αλλά όχι στο φάκελο πολυμέσων: %d Δεν βρέθηκαν αχρησιμοποίητα ή ελλείποντα αρχεία - H βάση δεδομένων πολυμέσων ανακατασκευάστηκε Διαγραφή αχρησιμοποίητων Διαγραφή πολυμέσων… Αποτέλεσμα διαγραφής diff --git a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml index 974ed4590815..90b62857d31d 100644 --- a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml @@ -55,7 +55,6 @@ Ĉu forigi la filtritan kartaron %s kaj movi ĉiujn ĝiajn kartojn reen al iliaj originalaj kartaroj? Neniu parolsintezilo disponebla Ne paroli - \n\nNeuzataj dosieroj:\n Repozicii novan karton Nur novaj kartoj povas esti repoziciitaj @@ -112,10 +111,7 @@ Kontrolado de aŭdvidaĵoj… Kontrolis aŭdvidaĵojn Dosieroj kun erara signokodo: %d - Dosieroj ene aŭdvidaĵa dosierujo, sed ne uzataj de iu karto: %d - Dosieroj uzataj de kartoj, sed malestaj en aŭdvidaĵa dosierujo: %d Ne trovis iujn ajn neuzatajn aŭ mankajn dosierojn - Rekreis datumbazon de aŭdvidaĵoj Forigi neuzatajn Forigado de aŭdvidaĵoj… Rezulto de forigo 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 9c9663ecc9e6..4c086954c67e 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml @@ -55,7 +55,6 @@ ¿Borrar el mazo filtrado %s y devolver todas las cartas a sus mazos originales? No hay un idioma de texto-a-voz disponible No hable - \n\nArchivos sin utilizar:\n Reposicionar nueva tarjeta Sólo las tarjetas nuevas pueden ser reposicionadas @@ -112,10 +111,7 @@ Comprobando archivos multimedia… Archivos multimedia comprobados Archivos con codificación inválida: %d - Archivos en la carpeta de multimedia pero no utilizados en ninguna tarjeta: %d - Archivos utilizados en tarjetas pero no en la carpeta de multimedia: %d No se halló archivos sin utilizar o perdidos - Base de datos de archivos multimedia reconstruida Eliminar no utilizado Eliminando multimedia… Resultado de la eliminación 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 5bc86185aa1a..16eb28c8c39c 100644 --- a/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml @@ -55,7 +55,6 @@ ¿Borrar el mazo filtrado %s y devolver todas las cartas a sus mazos originales? No hay idiomas de texto-a-voz disponibles No hablar - \n\nArchivos sin utilizar:\n Reposicionar nueva tarjeta Sólo las tarjetas nuevas pueden ser reposicionadas @@ -112,10 +111,7 @@ Comprobando archivos multimedia… Archivos multimedia comprobados Archivos con codificación no válida: %d - Archivos en la carpeta de archivos multimedia pero no utilizados por ninguna tarjeta: %d - Archivos utilizados en las tarjetas pero no en la carpeta de archivos multimedia: %d No hay archivos no utilizados o perdidos. - Base de datos de archivos multimedia reconstruida Eliminar no utilizados Eliminando multimedia… Resultado de la eliminación diff --git a/AnkiDroid/src/main/res/values-et/03-dialogs.xml b/AnkiDroid/src/main/res/values-et/03-dialogs.xml index b28e12978c2d..3e2da2251247 100644 --- a/AnkiDroid/src/main/res/values-et/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-et/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Ära räägi - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml index 4ea0692d45c2..f3b0cddfead6 100644 --- a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Ez dago testua hizketa bihurketarako hizkuntzarik Ez hitz egin - \n\nUnused files:\n Birkokatu karta berria Bakarrik karta berriak birkokatu daitezke @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml index b5bd877d7848..3746a4370263 100644 --- a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml @@ -55,7 +55,6 @@ آبا می خواهید دسته فیلتر شده %s را حذف کنید و همه کارت ها را به دسته اصلیشان بفرستید؟ زبان متن به گفتار در دسترس نیست حرف نزن - \n\nفایل های استفاده نشده:\n تغییر مکان کارت جدید فقط کارت‌های جدید می‌توانند جابه‌جا شوند @@ -112,10 +111,7 @@ در حال بررسی رسانه… رسانه بررسی شد فایل هایي با کدگذاری نامعتبر: %d - فایل هایي که در پوشه رسانه هستند ولی توسط هیچ کارتی استفاده نشده اند: %d - فایل هایي که در کارت ها استفاده شده اند ولی در پوشه رسانه وجود ندارند: %d هیچ فایل مفقود شده یا بلا استفاده یافت نشد - پایگاه داده رسانه بازسازی شد حذف استفاده نشده ها حذف رسانه… نتیجه حذف diff --git a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml index 5d8ab414f459..0d9f7a0ce22f 100644 --- a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml @@ -55,7 +55,6 @@ Poistetaanko suodatettu pakka \'%1$s\'? Kaikki kortit lähetetään niiden alkuperäisiin pakkoihin. Yhtään puhesyntetisaattorin tukemaa kieltä ei ole käytettävissä Ei puhetta - \n\nKäyttämättömät tiedostot:\n Siirrä uusi kortti Ainoastaan uudet kortit voidaan siirtää @@ -112,10 +111,7 @@ Tarkistetaan mediaa… Media tarkistettu %d tiedostoa virheellisellä koodauksella - %d käyttämätöntä tiedostoa mediakansiossa - %d tiedostoa, joita käytetään korteissa, mutta jotka eivät ole mediakansiossa Käyttämättömiä tai puuttuvia tiedostoja ei löytynyt. - Mediatietokanta rakennettiin uudelleen. Poista käyttämättömät Poistetaan mediaa… Poiston tulos diff --git a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml index ff6e1b109920..cb766b78747a 100644 --- a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Walang available na wika sa text-to-speech Huwag magsalita - \n\nHindi nagamit na mga file:\n Iposisyon muli ang card Mga bagong card lamang ang maaaring iposisyon muli @@ -113,10 +112,7 @@ Ang media ay sinuri 60/5000 Mga file na may di-wastong pag-encode:%d - Mga file sa folder ng media ngunit hindi ginamit ng anumang mga kard:%d - Mga file na ginamit sa mga kard ngunit hindi sa folder ng media:%d Walang nagamit o nawawalang file na nahanap - Itinayo muli ang database ng media Tanggalin ang hindi ginagamit Binubura ang media… Resulta ng pagbura diff --git a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml index 67f2154f5926..bb2fdfd90814 100644 --- a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml @@ -55,7 +55,6 @@ Supprimer le paquet filtré %s et renvoyer toutes les cartes dans leurs paquets d’origine? Aucun langage de synthèse vocale disponible Ne pas parler - \n\nFichiers inutilisés :\n Repositionner la nouvelle carte Seules les nouvelles cartes peuvent être repositionnées @@ -112,10 +111,7 @@ Vérification des médias… Média vérifié Fichiers avec un codage non valide : %d - Fichiers dans le dossier de médias, mais utilisés par aucune carte : %d - Fichiers utilisés par une carte, mais pas présents dans le dossier de médias : %d Aucun fichier inutilisé ou manquant. - Base de données de médias reconstruite. Supprimer les médias inutiles Suppression du média… Résultat de la suppression diff --git a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml index 5852ca3049a5..d576b454fe11 100644 --- a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml index 058ac7a0ed20..37fa33a46ef0 100644 --- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml @@ -58,7 +58,6 @@ Delete filtered deck %s and send all cards back to their original decks? Níl TTS ar fáil sa teanga seo Teanga ar bith - \n\nComhaid gan úsáid:\n Athlonnaigh cárta nua Ní féidir ach cártaí nua a athlonnú @@ -121,10 +120,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml index 6ea85f0bef8d..e252439ee4d6 100644 --- a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Ningún idioma de síntese de voz dispoñible Non fales - \n\nUnused files:\n Reposicionar novo cartón Only new cards can be repositioned @@ -112,10 +111,7 @@ Verificando multimedia… Multimedia verificada Ficheiros cunha codificación inválida: %d - Ficheiros no cartafol de medios pero sen usar por calquera cartón: %d - Ficheiros usados nos cartóns pero non existen no cartafol de medios: %d Non se atoparon ficheiros sen usar ou perdidos - Reconstruída a base de datos de medios Eliminar os non empregados Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-got/03-dialogs.xml b/AnkiDroid/src/main/res/values-got/03-dialogs.xml index 2d97a595cb90..3b1bb56e51b9 100644 --- a/AnkiDroid/src/main/res/values-got/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-got/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Bokos-du-gwaurdja razda nist Ni rodei - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Usnim unbruhta Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml index 8edc3602bf1e..f84df4d9fb0a 100644 --- a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml @@ -55,7 +55,6 @@ வடிகட்டப்பட்ட %s டெக்கை அகற்றிவிட்டு, எல்லா கார்டுகளையும் அவற்றின் அசல் டெக்குகளுக்குத் திருப்பிவிடவா? કોઈ ટેક્સ્ટ-ટુ-સ્પીચ ભાષા ઉપલબ્ધ નથી બોલશો નહીં - \n\nન વપરાયેલ ફાઇલો:\n નવું કાર્ડ રિપોઝિશન કરો ફક્ત નવા કાર્ડને જ સ્થાનાંતરિત કરી શકાય છે @@ -112,10 +111,7 @@ મીડિયા તપાસી રહ્યું છે… મીડિયા તપાસ્યું અમાન્ય એન્કોડિંગ સાથેની ફાઇલો: %d - મીડિયા ફોલ્ડરમાં ફાઇલો પરંતુ કોઈપણ કાર્ડ દ્વારા ઉપયોગમાં લેવાતી નથી: %d - કાર્ડ્સ પર વપરાયેલી ફાઇલો મીડિયા ફોલ્ડરમાં નથી: %d કોઈ બિનઉપયોગી અથવા ગુમ થયેલ ફાઇલો મળી નથી - મીડિયા ડેટાબેઝ પુનઃબીલ્ડ ન વપરાયેલ કાઢી નાખો મીડિયા ડિલીટ કરી રહ્યાં છીએ… કાઢી નાખવાનું પરિણામ diff --git a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml index 85c3c1f44e95..59c46c2b59f1 100644 --- a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml @@ -57,7 +57,6 @@ למחוק את החפיסה %s המסוננת ולשלוח את כל הקלפים בחזרה לחפיסות המקוריות שלהם? אין שום שפת לכתוב-אל-דיבור זמין אל תדבר.‏ - \n\nקבצים שאינם בשימוש:\n שינוי מיקום כרטיס חדש ניתן לשנות מיקום לכרטיסים חדשים בלבד @@ -119,10 +118,7 @@ קבצי המדיה בבדיקה… קבצי המדיה נבדקו קבצים בקידוד תקול: %d - קבצים שנמצאים בספריית המדיה אבל אינם בשימוש על ידי אף קלף: %d - קבצים בשימוש קלפים שאינם בתיקיית המדיה: %d לא נמצאו קבצים חסרים או שאינם בשימוש - מסד נתוני המדיה נבנה מחדש מחיקת כאלו שאינם בשימוש המדיה נמחקת… תוצאת מחיקה diff --git a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml index d3cf0d918833..cf8de2b986eb 100644 --- a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml @@ -55,7 +55,6 @@ फ़िल्टर किए गए डेक %s को हटाएं और सभी कार्डों को उनके मूल डेक पर वापस भेजें? कोई लेख-से-बोली भाषा उपलब्ध नहीं बात न करें - \n\nअप्रयुक्त फाइलें:\n नया कार्ड पुन: प्रस्तुत करें केवल नए कार्डों को बदला जा सकता है @@ -112,10 +111,7 @@ मीडिया जांच कर रहा है.. । मीडिया जांचा गया अमांय एंकोडिंग वाली फ़ाइलें: %d - मीडिया फ़ोल्डर में फ़ाइलें लेकिन किसी भी कार्ड द्वारा उपयोग नहीं: %d - कार्ड पर उपयोग की गई फ़ाइलें मीडिया फ़ोल्डर में नहीं: %d कोई अनुपयोगी या गुम फ़ाइलें नहीं मिलीं - मीडिया डेटाबेस पुन अप्रयुक्त हटाएं मीडिया हटा रहा है… विलोपन का परिणाम diff --git a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml index f6ba86ffc842..481b0dfa7290 100644 --- a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml @@ -56,7 +56,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -115,10 +114,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml index 52bdd125a683..fa89a3403c41 100644 --- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Nincs rendelkezésre álló szövegfelolvasási nyelv Ne beszélj - \n\bNem használt fájlok:\n Helyezze át az új kártyát Csak az új kártyákat lehet áthelyezni @@ -112,10 +111,7 @@ Média ellenőrzése… Média ellenőrizve Érvénytelen kódolású fájlok: %d - Fájlok a média mappában, használaton kívül: %d - Fájlok kártyákon, de mappából hiányozva: %d Nincs haszálaton kívüli, vagy hiányzó fájl. - Média adatbázis újraépült. Használaton kívüliek törlése Média törlése… Törlés eredménye diff --git a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml index 1f6fd67485e7..c51d7ab58414 100644 --- a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Չխոսել - \n\nՉօգտագործվող ֆայլեր`\n Տեղափոխել նոր քարտը Կարելի է տեղափոխել միայն նոր քարտերը @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml index 1aa843ac4173..66ffc9499f2d 100644 --- a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? Tidak ada bahasa teks-ke-ucapan tersedia Jangan bicara - \n\nBerkas yang tidak digunakan:\n Pindah posisi kartu baru Hanya kartu baru yang dapat pindah posisi @@ -109,10 +108,7 @@ Memeriksa media… Media diperiksa Berkas dengan pengodean tidak valid: %d - Berkas di folder media tapi tidak digunakan di kartu manapun: %d - Berkas digunakan kartu tapi tidak ada di folder media: %d Tidak ada berkas tidak terpakai atau hilang ditemukan - Basisdata media dibangun ulang Hapus yang tidak terpakai Menghapus media… Hasil penghapusan diff --git a/AnkiDroid/src/main/res/values-is/03-dialogs.xml b/AnkiDroid/src/main/res/values-is/03-dialogs.xml index 83030dbf6531..2ffe2bf2751a 100644 --- a/AnkiDroid/src/main/res/values-is/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-is/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-it/03-dialogs.xml b/AnkiDroid/src/main/res/values-it/03-dialogs.xml index c7f26154d25c..b526732e0a44 100644 --- a/AnkiDroid/src/main/res/values-it/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-it/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Nessuna lingua per la sintesi vocale disponibile Non parlare - \n\nFile inutilizzati:\n Riposiziona nuova carta Solo le nuove carte possono essere riposizionate @@ -112,10 +111,7 @@ Controllo i media… Media controllati File con codifica non valida: %d - File nella cartella media ma non utilizzati da nessuna carta: %d - File utilizzati sulle carte, ma non nella cartella media: %d Nessun file inutilizzato o mancante trovato. - Database media ricostruito. Elimina inutilizzati Eliminando media… Eliminazione risultato diff --git a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml index 85c3c1f44e95..59c46c2b59f1 100644 --- a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml @@ -57,7 +57,6 @@ למחוק את החפיסה %s המסוננת ולשלוח את כל הקלפים בחזרה לחפיסות המקוריות שלהם? אין שום שפת לכתוב-אל-דיבור זמין אל תדבר.‏ - \n\nקבצים שאינם בשימוש:\n שינוי מיקום כרטיס חדש ניתן לשנות מיקום לכרטיסים חדשים בלבד @@ -119,10 +118,7 @@ קבצי המדיה בבדיקה… קבצי המדיה נבדקו קבצים בקידוד תקול: %d - קבצים שנמצאים בספריית המדיה אבל אינם בשימוש על ידי אף קלף: %d - קבצים בשימוש קלפים שאינם בתיקיית המדיה: %d לא נמצאו קבצים חסרים או שאינם בשימוש - מסד נתוני המדיה נבנה מחדש מחיקת כאלו שאינם בשימוש המדיה נמחקת… תוצאת מחיקה diff --git a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml index c94947a9b15c..a8e6a908aa21 100644 --- a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml @@ -54,7 +54,6 @@ フィルターデッキ「%s」を削除し、すべてのカードを元のデッキに戻しますか? テキスト読み上げ可能な言語がありません 発声なし - \n\n(*) のファイルのリスト:\n 位置(新規カード番号)を変更 位置(新規カード番号)の変更は、新規カード以外には行えません。 @@ -109,10 +108,7 @@ メディアをチェックしています… メディアのチェックの完了 エンコーディングが無効なファイル数: %d - (*) メディア用フォルダ内に存在するが、どのカードにも使用されていないファイル: %d個 - カードに表示するよう記載されているが、メディア用フォルダ内に存在しないファイル: %d個 使用されていないファイル、不足しているファイルはありません - メディアのデータベースを再構築しました (*) のファイルを削除 メディアを削除中… 削除結果 diff --git a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml index 4161bf4b46ec..ecb2c3a28ce2 100644 --- a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml index 8c5ad4b13ae5..ecfc158f3f50 100644 --- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? მიუწვდომელია ხმოვანი წამკითხველის ენა არ წაიკითხოს - \n\nგამოუყენებელი ფაილები:\n ახალი ბარათის გადაადგილება პოზიციის შეცვლა მხოლოდ ახალი ბარათებისთვის შეიძლება @@ -112,10 +111,7 @@ მედიაფაილების შემოწმება… მედიაფაილები შემოწმდა ფაილები არასწორი კოდირებით: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d ვერ მოიძებნა უხმარი ან დაკარგული ფაილები - მედიაფაილების მონაცემთა ბაზა თავიდან აიგო წაშალე გამოუყენებელი მიმდინარეობს მედიაფაილების წაშლა… წაშლის შედეგი diff --git a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml index 314a0ac4587f..61b99a871615 100644 --- a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-km/03-dialogs.xml b/AnkiDroid/src/main/res/values-km/03-dialogs.xml index 8d8bbf691e8e..9d0934257fe9 100644 --- a/AnkiDroid/src/main/res/values-km/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-km/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml index 25dfc5ca2650..ff284f4f285d 100644 --- a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml @@ -55,7 +55,6 @@ ಫಿಲ್ಟರ್ ಮಾಡಿದ ಡೆಕ್ %s ಅನ್ನು ಅಳಿಸಿ ಮತ್ತು ಎಲ್ಲಾ ಕಾರ್ಡ್‌ಗಳನ್ನು ಅವುಗಳ ಮೂಲ ಡೆಕ್‌ಗಳಿಗೆ ಹಿಂತಿರುಗಿಸುವುದೇ? ಯಾವುದೇ ಪಠ್ಯದಿಂದ ಭಾಷಣಕ್ಕೆ ಭಾಷೆ ಲಭ್ಯವಿಲ್ಲ ಮಾತನಾಡಬೇಡ - \n\nಬಳಕೆಯಾಗದ ಫೈಲ್‌ಗಳು:\n ಹೊಸ ಕಾರ್ಡ್ ಅನ್ನು ಮರುಸೇರಿಸಿ ಹೊಸ ಕಾರ್ಡ್‌ಗಳನ್ನು ಮಾತ್ರ ಮರುಸ್ಥಾಪಿಸಬಹುದು @@ -112,10 +111,7 @@ ಮಾಧ್ಯಮವನ್ನು ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ… ಮಾಧ್ಯಮದವರನ್ನು ಪರಿಶೀಲಿಸಿದರು ಅಮಾನ್ಯ ಎನ್‌ಕೋಡಿಂಗ್ ಹೊಂದಿರುವ ಫೈಲ್‌ಗಳು: %d - ಮೀಡಿಯಾ ಫೋಲ್ಡರ್‌ನಲ್ಲಿರುವ ಫೈಲ್‌ಗಳು ಆದರೆ ಯಾವುದೇ ಕಾರ್ಡ್‌ಗಳಿಂದ ಬಳಸಲಾಗುವುದಿಲ್ಲ: %d - ಕಾರ್ಡ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾದ ಫೈಲ್‌ಗಳು ಆದರೆ ಮಾಧ್ಯಮ ಫೋಲ್ಡರ್‌ನಲ್ಲಿಲ್ಲ: %d ಬಳಕೆಯಾಗದ ಅಥವಾ ಕಾಣೆಯಾದ ಫೈಲ್‌ಗಳು ಕಂಡುಬಂದಿಲ್ಲ - ಮಾಧ್ಯಮ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಮರುನಿರ್ಮಿಸಲಾಯಿತು ಬಳಕೆಯಾಗದ ಅಳಿಸಿ ಮಾಧ್ಯಮವನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ… ಅಳಿಸುವಿಕೆ ಫಲಿತಾಂಶ diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml index bd49f3de78c4..d8015ae018d9 100644 --- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml @@ -54,7 +54,6 @@ 필터링된 덱 %s을(를) 삭제하고 모든 카드를 원래 덱으로 돌려보낼까요? 문장 읽어주기 기능(TTS)을 사용할 수 없음 무음 - \n\n사용되지 않은 파일:\n 새 카드 위치 변경 새 카드만 순서를 조정할 수 있습니다. @@ -109,10 +108,7 @@ 미디어 점검 중… 미디어 점검됨 올바르지 않은 인코딩을 포함한 파일: %d - 미디어 폴더에 있지만 어떠한 카드에도 사용되지 않은 파일: %d - 카드에 사용되었지만 미디어 폴더에는 없는 파일: %d 사용되지 않거나 누락된 파일이 발견되지 않았습니다. - 미디어 데이터베이스를 다시 기록했습니다. 사용되지 않은 파일 삭제 미디어 삭제 중… 삭제 결과 diff --git a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml index a607b061a8a5..c2f07ad2a3b1 100644 --- a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Nexwîne - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ …Medyayê kontrol dike Medyayê kontrol kir Pelên bi kodvekirinên çewt: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Yê bikarnehatî jê bibe Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml index a8566f1fa26f..1c406a25e9ca 100644 --- a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml index 49909e94edaa..be929d17e5a4 100644 --- a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml @@ -57,7 +57,6 @@ Delete filtered deck %s and send all cards back to their original decks? Teksto perskaityti nurodyta kalba negalime Nekalbėkite - \n\nNenaudojami failai:\n Pakeiskite naujos kortelės padėtį Gali būti keičiamas tik naujų kortelių išdėstymas @@ -118,10 +117,7 @@ Tikrinamos laikmenos… Laikmenos patikrintos Failai su neveikiančia koduote: %d - Laikmenų aplanke esantys failai, kurie nėra naudojami kortelėse: %d - Failai, kurie yra naudojami kortelėse, bet kurių nėra laikmenų aplanke: %d Nerasta nenaudojamų ar trūkstamų failų. - Laikmenų duomenų bazė atkurta Ištrinti nenaudojamus Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml index 3b7e179f851d..835db5f93028 100644 --- a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml @@ -56,7 +56,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -115,10 +114,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml index fe11400f58d9..5cbeedc2510b 100644 --- a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Нема достапен јазик за текст-во-говор Не зборувај - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Проверка на медиумит… Медиумите се проверени Датотеки со невалидно шифрирање: %d - Датотеки во медиумски фолдер, но не се користат од било која картичка: %d - Датотеки кои се користат на картички, но не во медиумски фолдер: %d Не се пронајдени неискористени или исчезнати датотеки - Медиумската база на податоци е повторно изградена Избришете го неискористеното Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml index be36dfb6feb8..7de736acbbc2 100644 --- a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? ടെക്സ്റ്റ്-ടു-സ്പീച്ച് ഭാഷ ലഭ്യമല്ല സംസാരിക്കരുത് - \n\nഉപയോഗിക്കാത്ത ഫയലുകൾ:\n പുതിയ കാർഡ് പുന സ്ഥാപിക്കുക പുതിയ കാർഡുകൾ മാത്രമേ പുന സ്ഥാപിക്കാൻ കഴിയൂ @@ -112,10 +111,7 @@ മീഡിയ പരിശോധിക്കുന്നു… മീഡിയ പരിശോധിച്ചു അസാധുവായ എൻ‌കോഡിംഗ് ഉള്ള ഫയലുകൾ‌:%d - മീഡിയ ഫോൾഡറിലെ ഫയലുകൾ എന്നാൽ ഏതെങ്കിലും കാർഡുകൾ ഉപയോഗിക്കുന്നില്ല:%d - കാർഡുകളിൽ ഉപയോഗിക്കുന്ന ഫയലുകൾ പക്ഷേ മീഡിയ ഫോൾഡറിൽ ഇല്ല:%d ഉപയോഗിക്കാത്തതോ നഷ്‌ടമായതോ ആയ ഫയലുകളൊന്നും കണ്ടെത്തിയില്ല - മീഡിയ ഡാറ്റാബേസ് പുനർനിർമ്മിച്ചു ഉപയോഗിക്കാത്തവ ഇല്ലാതാക്കുക മീഡിയ ഇല്ലാതാക്കുന്നു… ഇല്ലാതാക്കൽ ഫലം diff --git a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml index acc18c9d0344..ed006a808336 100644 --- a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? मजकूर-ते-भाषणाची भाषा उपलब्ध नाही बोलू नका - \n\nन वापरलेल्या फाइल्स:\n नवीन कार्ड पुनर्स्थित करा केवळ नवीन कार्डे पुनर्स्थित केली जाऊ शकतात @@ -112,10 +111,7 @@ मीडिया तपासत आहे… माध्यम तपासले अवैध एन्कोडिंगसह फायली:%d - मीडिया फोल्डरमधील फायली परंतु कोणत्याही कार्डांद्वारे वापरल्या जात नाहीत:%d - फायली कार्डावर वापरल्या परंतु मीडिया फोल्डरमध्ये नाहीत:%d कोणत्याही न वापरलेल्या किंवा गहाळ फायली आढळल्या नाहीत - मीडिया डेटाबेस पुन्हा तयार केला न वापरलेले हटवा मीडिया हटवित आहे… हटविण्याचा निकाल diff --git a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml index ab03fa1dbf17..51d19de12d4e 100644 --- a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? Teks-ke-ucapan bahasa tiada Jangan bercakap - \n\nFail tidak digunakan:\n Alih posisi kad baru Hanya kad baru boleh alih posisi @@ -109,10 +108,7 @@ Memeriksa media… Media telah diperiksa Fail dengan pengekodan tidak sah: %d - Fail dalam folder media namun tidak digunakan oleh mana-mana kad: %d - Fail digunakan pada kad namun bukan dalam folder media: %d Tiada fail tidak digunakan or hilang ditemui - Pangkalan data media telah dibina semula Padam yang tidak digunakan Memadam media… Keputusan pemadaman diff --git a/AnkiDroid/src/main/res/values-my/03-dialogs.xml b/AnkiDroid/src/main/res/values-my/03-dialogs.xml index 27ec775ba812..22cc38cc490e 100644 --- a/AnkiDroid/src/main/res/values-my/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-my/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml index 137403c783fd..4c868775d098 100644 --- a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml @@ -55,7 +55,6 @@ Verwijder gefilterd deck %s en plaats alle kaarten terug in hun oorspronkelijke decks? Geen tekst-naar-spraak taal beschikbaar Niet spreken - \n\nOngebruikte bestanden:\n Nieuwe kaart verplaatsen Alleen nieuwe kaarten kunnen verplaatst worden @@ -112,10 +111,7 @@ Media controleren… Media gecontroleerd Bestanden met ongeldige codering: %d - Bestanden in media-map maar niet in kaarten gebruikt: %d - Bestanden die worden gebruikt op kaarten maar niet in mediamap: %d Geen ongebruikte of vermiste bestanden gevonden - Mediagegevensbestand herbouwd Ongebruikte verwijderen Verwijdering van media… Resultaat van verwijdering diff --git a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml index b7e49be39995..64759885b0af 100644 --- a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Ingen \"tekst til tale\"-språk tilgjengelige Ikke snakk - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Slett ubrukte Sletter media… Deletion result diff --git a/AnkiDroid/src/main/res/values-no/03-dialogs.xml b/AnkiDroid/src/main/res/values-no/03-dialogs.xml index 532724960b7c..36e0d12ab6c7 100644 --- a/AnkiDroid/src/main/res/values-no/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-no/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Ingen \"tekst til tale\"-språk tilgjengelige Ikke snakk - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Slett ubrukte Sletter media… Deletion result diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml index 542ce88a13ca..91265b613b34 100644 --- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? କୌଣସି ପାଠ୍ୟ-ରୁ-କଥନ ଭାଷା ଉପଲବ୍ଧ ନାହିଁ କଥା କୁହ ନାହିଁ - \n\nଅବ୍ୟବହୃତ ଫାଇଲ:\n ନୂଆ ପତ୍ରଟିକୁ ପୁନଃଅଵସ୍ଥିତ କରିବା କେଵଳ ନୂଆ ପତ୍ରଗୁଡ଼ିକୁ ପୁନଃଅଵସ୍ଥିତ କରିହେବ @@ -112,10 +111,7 @@ ମିଡ଼ିଆ ଯାଞ୍ଚ ଚାଲିଛି… ମିଡ଼ିଆ ଯାଞ୍ଚ କରାଗଲା ଅବୈଧ ଏନକୋଡିଂ ସହିତ ଫାଇଲଗୁଡିକ: %d - ମିଡ଼ିଆ ଫୋଲ୍ଡରରେ ଗଚ୍ଛିତ କିନ୍ତୁ କୌଣସି ପତ୍ର ଦ୍ୱାରା ବ୍ୟବହାର ହେଉନଥିବା ଫାଇଲଗୁଡ଼ିକ: %d - ପତ୍ରରେ ବ୍ୟବହୃତ କିନ୍ତୁ ମିଡ଼ିଆ ଫୋଲ୍ଡରରେ ନଥିବା ଫାଇଲଗୁଡ଼ିକ: %d କୌଣସି ଅବ୍ୟବହୃତ କିମ୍ବା ନିଖୋଜ ଫାଇଲ ମିଳିଲା ନାହିଁ - ମିଡ଼ିଆ ଡାଟାବେସ୍ ପୁନଃନିର୍ମିତ ଅବ୍ୟବହୃତ ବିଲୋପ କରନ୍ତୁ ମିଡ଼ିଆ ଵିଲୋପ ହେଉଛି… ବିଲୋପ ଫଳାଫଳ diff --git a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml index 78c6aea7c539..8ecd426eccdc 100644 --- a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml @@ -55,7 +55,6 @@ ਫਿਲਟਰ ਕੀਤੇ ਡੈੱਕ %s ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ ਅਤੇ ਸਾਰੇ ਕਾਰਡਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਅਸਲ ਡੈੱਕ \'ਤੇ ਵਾਪਸ ਕਰਨਾ ਹੈ? ਕੋਈ ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਭਾਸ਼ਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ ਨਾ ਬੋਲੋ - \n\nਅਣਵਰਤੀਆਂ ਫਾਈਲਾਂ:\n ਨਵਾਂ ਕਾਰਡ ਬਦਲੋ ਸਿਰਫ਼ ਨਵੇਂ ਕਾਰਡਾਂ ਨੂੰ ਹੀ ਮੁੜ-ਸਥਾਪਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ @@ -112,10 +111,7 @@ Checking media… ਮੀਡੀਆ ਦੀ ਜਾਂਚ ਕੀਤੀ ਗਈ ਗਲਤ ਏਨਕੋਡਿੰਗ ਵਾਲੀਆਂ ਫਾਈਲਾਂ: %d - ਮੀਡੀਆ ਫੋਲਡਰ ਵਿੱਚ ਫਾਈਲਾਂ ਪਰ ਕਿਸੇ ਵੀ ਕਾਰਡ ਦੁਆਰਾ ਨਹੀਂ ਵਰਤੀਆਂ ਗਈਆਂ: %d - ਫਾਈਲਾਂ ਕਾਰਡਾਂ \'ਤੇ ਵਰਤੀਆਂ ਗਈਆਂ ਪਰ ਮੀਡੀਆ ਫੋਲਡਰ ਵਿੱਚ ਨਹੀਂ: %d ਕੋਈ ਅਣਵਰਤੀਆਂ ਜਾਂ ਗੁੰਮ ਹੋਈਆਂ ਫਾਈਲਾਂ ਨਹੀਂ ਲੱਭੀਆਂ - ਮੀਡੀਆ ਡਾਟਾਬੇਸ ਦੁਬਾਰਾ ਬਣਾਇਆ ਗਿਆ ਨਾ ਵਰਤੇ ਗਏ ਨੂੰ ਮਿਟਾਓ ਮੀਡੀਆ ਨੂੰ ਮਿਟਾਇਆ ਜਾ ਰਿਹਾ ਹੈ… ਮਿਟਾਉਣ ਦਾ ਨਤੀਜਾ diff --git a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml index 2191a0271d50..ce87767c4906 100644 --- a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml @@ -57,7 +57,6 @@ Czy na pewno chcesz usunąć filtrowaną talię %s i przenieść wszystkie karty do ich oryginalnych talii? Brak dostępnego języka zamiany tekstu na mowę Nie mów - \n\nNieużywane pliki:\n Przestawianie nowej karty Tylko nowe karty mogą być przestawione @@ -118,10 +117,7 @@ Sprawdzanie mediów… Media sprawdzone Plików z błędnym kodowaniem: %d - Plików z foldera mediów, które nie są użyte na żadnej karcie: %d - Plików wymienionych na kartach ale nie znalezionych w folderze mediów: %d Nie znaleziono nie używanych ani brakujących plików. - Baza mediów przebudowana. Usuń nieużywane Usuwanie mediów… Wynik usuwania 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 57f32c42ba2b..0300e2b06777 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml @@ -55,7 +55,6 @@ Excluir baralho filtrado %s e enviar todas as cartas de volta para seus baralhos originais? Nenhum idioma de texto para fala disponível Não fale - \n\nArquivos não utilizados:\n Reposicionar novo cartão Apenas novos cartões podem ser reposicionados @@ -112,10 +111,7 @@ Verificando mídia… Mídia verificada Arquivos com codificação inválida: %d - Arquivos na pasta de mídia não usados por nenhum cartão: %d - Arquivos usados por cartões mas que não estão na pasta de mídia: %d Não foram encontrados arquivos não utilizados ou faltantes. - Banco de dados de mídia reconstruído. Excluir não utilizados Excluindo mídia… Resultado da exclusão 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 e20f6f15c84c..24fd97425b11 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml @@ -55,7 +55,6 @@ Apagar baralho filtrado %s e devolver fichas aos seus baralhos originais? Nenhuma língua disponível para o sistema de conversão de texto para fala Não falar - \n\nFicheiros não utilizados:\n Reposicionar a nova ficha Apenas novas fichas podem ser reposicionadas. @@ -112,10 +111,7 @@ A verificar multimédia… Multimédia verificada Ficheiros com codificação inválida: %d - Ficheiros na pasta de multimédia mas não usados por quaisquer fichas: %d - Ficheiros usados nas fichas, mas não presentes na pasta de multimédia: %d Nenhum ficheiro inútil ou em falta foi encontrado. - Base de dados de multimédia reconstruida Eliminar não utilizados A apagar ficheiros de multimédia… Resultado da remoção diff --git a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml index 7144344fef25..99d5f8edc323 100644 --- a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml @@ -56,7 +56,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Nu vorbi - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -115,10 +114,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml index 28b0cf2e1fbb..840e47a8922c 100644 --- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml @@ -57,7 +57,6 @@ Удалить отфильтрованную колоду %s и отправить все карточки обратно в оригинальные колоды? Синтез речи недоступен Не произносить - \n\nНеиспользуемые файлы:\n Переместить новую карточку Можно переместить только новые карточки @@ -118,10 +117,7 @@ Медиафайлы проверяются… Медиафайлы проверены Файлы с недопустимой кодировкой: %d - Медиафайлы, не прикреплённые к карточкам: %d - Ссылок на отсутствующие медиафайлы: %d Неиспользуемые и отсутствующие файлы не найдены. - База данных медиафайлов перестроена Удалить неиспользуемые Медиафайлы удаляются… diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml index f7ceb31bad39..bd2817550f81 100644 --- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml @@ -55,7 +55,6 @@ ᱯᱷᱤᱞᱴᱟᱨ ᱟᱠᱟᱫ ᱰᱮᱠ %s ᱵᱚᱫᱚᱞ ᱢᱮ ᱟᱨ ᱡᱚᱛᱚ ᱠᱟᱨᱰ ᱟᱠᱚᱣᱟᱜ ᱚᱨᱡᱤᱱᱤᱭᱟᱞ ᱰᱮᱠ ᱨᱮ ᱵᱚᱫᱚᱞ ᱢᱮ? text-to-speech ᱯᱟᱹᱨᱥᱤ ᱵᱟᱱᱩᱜᱼᱟ ᱾ ᱟᱞᱚᱢ ᱨᱚᱲᱟ - \n\nUnused ᱯᱟᱹᱤᱞ:\n ᱱᱟᱶᱟ ᱠᱟᱰ ᱥᱛᱷᱟᱱᱚᱱᱛᱚᱨ ᱯᱮ ᱠᱷᱟᱹᱞᱤ ᱱᱟᱶᱟ ᱠᱟᱰ ᱜᱮ ᱥᱛᱷᱟᱱᱚᱱᱛᱚᱨ ᱫᱟᱲᱮᱭᱟᱜᱟᱢ @@ -112,10 +111,7 @@ ᱢᱮᱰᱤᱭᱟ ᱧᱮᱞ ᱵᱤᱰᱟᱣᱜ ᱠᱟᱱᱟ… ᱢᱮᱰᱤᱭᱟ ᱧᱮᱞᱮᱱᱟ ᱨᱚᱫ ᱨᱮ ᱵᱟᱲ ᱫᱟᱱᱟᱲ ᱪᱤᱱᱦᱟ: %d - ᱨᱮᱫ ᱫᱚ ᱢᱮᱰᱤᱭᱟ ᱯᱚᱴᱚᱢ ᱨᱮ ᱢᱮᱱᱟᱜᱟ ᱦᱮᱞᱮ ᱚᱠᱟ ᱠᱟᱰ ᱨᱮ ᱵᱟᱭ ᱵᱮᱵᱽᱷᱟᱨ ᱠᱟᱱᱟ: %d - ᱨᱮᱫ ᱠᱟᱰ ᱨᱮ ᱢᱮᱱᱟᱜᱼᱟ ᱦᱮᱞᱮ ᱢᱮᱰᱤᱭᱟ ᱯᱚᱴᱚᱢ ᱨᱮ ᱵᱟᱹᱱᱩᱜᱼᱟ: %d ᱵᱟᱝ ᱵᱮᱵᱦᱟᱨᱟᱜ ᱨᱮᱫ ᱵᱟᱭ ᱧᱟᱢᱞᱮᱱᱟ - ᱢᱮᱰᱤᱭᱟ ᱥᱟᱫᱠᱷᱤᱭᱟᱽ ᱵᱟᱹᱭᱥᱟᱹᱣ ᱫᱩᱦᱲᱟᱛᱮᱭᱟᱨ ᱵᱟᱝ ᱵᱮᱵᱷᱟᱨ ᱚᱠ ᱜᱮᱫ ᱜᱤᱰᱤ ᱢᱮ ᱢᱤᱰᱤᱭᱟ ᱜᱮᱫ ᱜᱤᱰᱤᱜ ᱠᱟᱱᱟ… ᱜᱮᱫ ᱜᱤᱰᱤ‌ ᱛᱮᱞᱟ diff --git a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml index b3ac11dcbd44..ff464bc9927e 100644 --- a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml @@ -55,7 +55,6 @@ Iscantzellare su matzu filtradu %s e torrare a imbiare totu sas cartas a sos matzos originale issoro? Non b\'est a disponimentu peruna limba de sìntesi vocale Non chistiones - \n\nDocumentos no impreados:\n Torra a positzionare sa carta noa Petzi sas cartas noas si podent torrare a positzionare @@ -117,10 +116,7 @@ Vetifichende sos mèdios… Mèdios verificados Documentos cun una codìfica non vàlida: %d - Documentos in sa cartella de sos mèdios ma chi non benint impreados dae peruna carta: %d - Documentos impreados in sas cartas ma chi mancant in sa cartella de sos mèdios: %d Perunu documentu no impreadu o chi manchet agatadu - Base de datos multimediales torrada a fraigare Iscantzella sos no impreados Iscantzellende mèdios… Resurtadu de s\'iscantzelladura diff --git a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml index f58ec4fd4187..d51bbc6ced8e 100644 --- a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml @@ -57,7 +57,6 @@ Delete filtered deck %s and send all cards back to their original decks? Žiaden TTS jazyk nie je k dispozícii Nehovoriť - \n\nNepoužívaných súborov:\n Premiestniť novú kartičku Len pri nových kartách je možné zmeniť pozíciu (premiestniť) @@ -118,10 +117,7 @@ Kontrola multimédií… Multimédiá skontrolované Súbory s neplatným kódovaním: %d - Súborý v multimediálnom priečinku nepoužívané žiadnymi kartičkami: %d - Použité súbory na kartičkách, ktoré nie sú v priečinku multimédií: %d Neboli nájdené žiadne nepoužívané alebo chýbajúce súbory - Databáza multimédií bola opravená Vymazať nepoužívané Médiá sa vymazávajú… Výsledok vymazania diff --git a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml index c3bdfbe1a911..7521d91d69ec 100644 --- a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml @@ -57,7 +57,6 @@ Delete filtered deck %s and send all cards back to their original decks? Noben jezik pretvorbe besedila v govor ni na voljo Bodite tiho - \n\nNeuporabljene datoteke:\n Prestavi novo kartico Prerazporedite lahko samo nove kartice. @@ -118,10 +117,7 @@ Preverjanje predstavnosti … Predstavnost preverjena Datoteke z neveljavnim kodiranjem: %d - Datoteke v mapi predstavnosti, vendar jih ne uporablja nobena kartica: %d - Datoteke uporabljene na karticah, vendar se ne nahajajo v mapi predstavnosti: %d Neuporabljenih ali manjkajočih datotek ni bilo mogoče najti - Pod. zbirka predstavnosti izgrajena Izbriši neuporabljeno Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml index e222cc65ad0e..278dde3d432d 100644 --- a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Nuk ka gjuhë tekst-në-fjalë të disponueshme mos fol - \n\nSkedarët e papërdorur:\n Rivendosni kartën e re Vetëm kartat e reja mund të ripozicionohen @@ -112,10 +111,7 @@ Po kontrollon median… Media e kontrolluar Skedarët me kodim të pavlefshëm: %d - Skedarët në dosjen e medias por që nuk përdoren nga asnjë kartë: %d - Skedarët e përdorur në karta por jo në dosjen e medias: %d Nuk u gjet asnjë skedar i papërdorur ose i munguar - Baza e të dhënave mediatike është rindërtuar Fshije të papërdorur Po fshin median… Rezultati i fshirjes diff --git a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml index 15749d8b0b58..9b37e016c3f1 100644 --- a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml @@ -56,7 +56,6 @@ Delete filtered deck %s and send all cards back to their original decks? Функција претварања текста у говор није доступна Не изговарај - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -115,10 +114,7 @@ Проверавање медијске датотеке… Медије проверене Кодирање датотеке је нетачан: %d - Датотеке у фасциклу за медију које немају картицу која их користи: %d - Датотеке у картицама које нису у фасциклу за медију: %d Нема некоришћених или непостојећи датотека. - База за медије обновљена. Избриши некоришћених Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml index 99587138a3c8..07e243b3eade 100644 --- a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml @@ -55,7 +55,6 @@ Ta bort filtrerad kortlek %s och skicka alla kort tillbaks till deras ursprungliga kortlek? Det finns inget språk för text-till-tal Tala inte - \n\nOanvända filer:\n Ompositionera nytt kort Endast nya kort kan ompositioneras @@ -112,10 +111,7 @@ Kontrollerar media… Media kontrollerat Filer med ogiltig kodning: %d - Filer i mediamapp som inte används i kort: %d - Filer som används på kort med saknas i mediamapp: %d Inga oanvända eller saknade filer upptäckta. - Mediadatabasen återskapad. Radera oanvända Tar bort media… Raderingsresultat diff --git a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml index 06be64c5c069..1c31150d8f24 100644 --- a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml @@ -55,7 +55,6 @@ வடிகட்டப்பட்ட டெக்கை %sஐ நீக்கி, எல்லா கார்டுகளையும் அவற்றின் அசல் டெக்குகளுக்கு அனுப்பவா? உரையிலிருந்து பேச்சு மொழி இல்லை பேசாதே - \n\nபயன்படுத்தப்படாத கோப்புகள்:\n புதிய அட்டையை மாற்றவும் புதிய அட்டைகளை மட்டுமே இடமாற்றம் செய்ய முடியும் @@ -112,10 +111,7 @@ மீடியாவைச் சரிபார்க்கிறது… மீடியா சோதனை செய்தது தவறான குறியாக்கம் கொண்ட கோப்புகள்: %d - மீடியா கோப்புறையில் உள்ள கோப்புகள் ஆனால் எந்தக் கார்டுகளாலும் பயன்படுத்தப்படவில்லை: %d - கார்டுகளில் பயன்படுத்தப்படும் கோப்புகள் ஆனால் மீடியா கோப்புறையில் இல்லை: %d பயன்படுத்தப்படாத அல்லது விடுபட்ட கோப்புகள் எதுவும் இல்லை - மீடியா தரவுத்தளம் மீண்டும் கட்டமைக்கப்பட்டது பயன்படுத்தப்படாததை நீக்கு மீடியாவை நீக்குகிறது… நீக்குதல் முடிவு diff --git a/AnkiDroid/src/main/res/values-te/03-dialogs.xml b/AnkiDroid/src/main/res/values-te/03-dialogs.xml index e67edd9944d9..576d855c592e 100644 --- a/AnkiDroid/src/main/res/values-te/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-te/03-dialogs.xml @@ -55,7 +55,6 @@ ఫిల్టర్ చేసిన డెక్ %sని తొలగించి, అన్ని కార్డ్‌లను వాటి అసలు డెక్‌లకు తిరిగి పంపాలా? టెక్స్ట్-టు-స్పీచ్ లాంగ్వేజ్ అందుబాటులో లేదు మాట్లాడకండి - \n\nఉపయోగించని ఫైళ్లు:\n కొత్త కార్డును భర్తీ చేయండి కొత్త కార్డ్‌లను మాత్రమే రీపోజిషన్ చేయవచ్చు @@ -112,10 +111,7 @@ మీడియాను తనిఖీ చేస్తోంది… మీడియా తనిఖీ చేయబడింది చెల్లని ఎన్కోడింగ్ ఫైల్లు: %d - మీడియా ఫోల్డర్లోని ఫైళ్ళు కానీ ఏ కార్డులు ఉపయోగించరు: %d - మీడియా ఫోల్డర్లో కానీ కార్డులలో ఉపయోగించబడే ఫైళ్ళు: %d ఉపయోగించని లేదా తప్పిపోయిన ఫైల్లు కనుగొనబడలేదు - మీడియా డేటాబేస్ పునర్నిర్మించబడింది ఉపయోగించనిది తొలగించండి మీడియాను తీసివేస్తోంది… తొలగింపు ఫలితం diff --git a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml index 6565167a5adc..395014fd7a15 100644 --- a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml index fa874d1856f6..eb34ddd44aca 100644 --- a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? Walang available na wika sa teksto-sa-salita Huwag kang magsalita - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Sinusuri ang media… Nasuring media Mga file na may di-wasting pag-encode: %d - Mga file sa folder ng media ngunit hindi ginagamit ng anumang mga kard: %d - Mga file na ginamit sa mga kard ngunit hindi sa folder ng media: %d Walang nagamit na nakitang mga nawawalang file - Itinayo muli ang database ng media Tanggalin ang hindi ginagamit Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-th/03-dialogs.xml b/AnkiDroid/src/main/res/values-th/03-dialogs.xml index 4161bf4b46ec..ecb2c3a28ce2 100644 --- a/AnkiDroid/src/main/res/values-th/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-th/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml index afb1f2ce69df..82a58537911e 100644 --- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml @@ -55,7 +55,6 @@ %s filtreli destesi silinip bütün kartlar orjinal destelerine gönderilsin mi? Mevcut metin okuma dili yok Konuşma - \n\nKullanılmayan dosyalar:\n Yeni kartın yerini değiştir Yalnızca yeni kartların yeri değiştirilebilir @@ -112,10 +111,7 @@ Medya kontrol ediliyor… Medya kontrol edildi Geçersiz kodlamalı dosyalar: %d - Medya klasöründe olup hiçbir kartta kullanılmayan dosyalar: %d - Kartlarda kullanılıp medya klasöründe olmayan dosyalar: %d Kullanılmayan veya eksik dosya bulunmuyor. - Medya veritabanı yeniden oluşturuldu. Kullanılmayanları sil Medya siliniyor… Silme sonuçları diff --git a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml index 54ac21319da2..c2a26a0dd82a 100644 --- a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml index b7361cfcc174..f160f85e607c 100644 --- a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml @@ -55,7 +55,6 @@ سۈزۈلگەن دەستە %s نى ئۆچۈرۈپ، ھەممە كارتىنى ئەسلىدىكى دەستىگە قايتۇرامدۇ؟ بۇ تىلدا ئىشلەتكىلى بولىدىغان تېكىستتىن ئاۋازغا موتورى يوق سۆزلىمە - \n\nئىشلىتىلمىگەن ھۆججەت:\n يېڭى كارتىنى قايتا تەرتىپلە پەقەت يېڭى كارتىنىڭ ئورنىنىلا يۆتكىگىلى بولىدۇ @@ -112,10 +111,7 @@ ۋاسىتە تەكشۈرۈۋاتىدۇ… ۋاسىتە تەكشۈرۈلدى كودلىنىشى ئىناۋەتسىز ھۆججەت: %d - ھۆججەت ۋاسىتە قىسقۇچتا ئەمما ھېچقانداق كارتا ئىشلەتمەيدۇ: %d - كارتىدا ئىشلىتىلگەن ئەمما ۋاسىتە قىسقۇچتا يوق ھۆججەت: %d ئىشلىتىلمىگەن ياكى يوقالغان ھېچقانداق ھۆججەت بايقالمىدى - ۋاسىتە ساندانى قايتا قۇرۇلدى ئىشلىتىلمىگەننى ئۆچۈر ۋاسىتە ئۆچۈرۈۋاتىدۇ… ئۆچۈرۈش نەتىجىسى diff --git a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml index 038612166c38..7f872318bebb 100644 --- a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml @@ -57,7 +57,6 @@ Видалити фільтровану колоду %s і повернути всі картки до оригінальних колод? Відсутня мова для перетворення тексту в мовлення Не говорити - \n\nНевикористані файли:\n Перемістити нову картку Можна перемістити тільки нові картки @@ -118,10 +117,7 @@ Перевіряємо мультимедіа… Перевірено мультимедіа Файли з неправильним кодуванням: %d - Медіафайли не використані жодною з карток: %d - Файли використані в картках, але не в медіапапці: %d Не знайдено жодних невикористаних чи відсутніх фалів - Базу даних медіафайлів відновлено Видалити невикористане Видалення медіа… Результат видалення diff --git a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml index db8645588a28..e770abefa4b9 100644 --- a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml @@ -55,7 +55,6 @@ فلٹر شدہ ڈیک %s کو حذف کریں اور تمام کارڈز کو ان کے اصل ڈیک پر واپس بھیجیں؟ متن سے تقریر کی کوئی زبان دستیاب نہیں ہے۔ مت بولو - \n\nغیر استعمال شدہ فائلیں:\n نئے کارڈ کی جگہ صرف نئے کارڈز کی جگہ تبدیل کی جا سکتی ہے۔ @@ -112,10 +111,7 @@ میڈیا کو چیک کیا جا رہا ہے… میڈیا چیک کیا غلط انکوڈنگ والی فائلیں: %d - فائلیں میڈیا فولڈر میں ہیں لیکن کسی بھی کارڈ کے ذریعے استعمال نہیں کی گئی: %d - کارڈز پر استعمال ہونے والی فائلیں لیکن میڈیا فولڈر میں نہیں: %d کوئی غیر استعمال شدہ یا گم شدہ فائلیں نہیں ملی - میڈیا ڈیٹا بیس کو دوبارہ بنایا گیا غیر استعمال شدہ کو حذف کریں میڈیا کو حذف کیا جا رہا ہے… حذف کرنے کا نتیجہ diff --git a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml index 454b6066f43c..d5eb04aa619a 100644 --- a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml index 9dbfa521e073..33a83f0beafa 100644 --- a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? Không có ngôn ngữ chuyển-văn-bản-thành-lời Đừng phát âm - \n\nUnused files:\n Đặt lại vị trí thẻ mới Chỉ thẻ mới có thể được định vị lại @@ -109,10 +108,7 @@ Đang kiểm tra tệp đa phương tiện… Đã kiểm tệp đa phương tiện Các tệp với mã hoá không hợp lệ: %d - Tệp trong thư mục đa phương tiện nhưng không được dùng bởi thẻ nào: %d - Các tệp dùng trong thẻ mà không có trong thư mục đa phương tiện: %d Không thấy tệp chưa dùng hoặc thất lạc nào - Đã dựng lại CSDL đa phương tiện Xoá tệp chưa dùng Đang xóa phương tiện… Kết quả xóa diff --git a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml index 4161bf4b46ec..ecb2c3a28ce2 100644 --- a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result diff --git a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml index b732fb4dbb82..cd4f0bfd2441 100644 --- a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml @@ -54,7 +54,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -109,10 +108,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result 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 c17353e03451..96a0ed0bfb51 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml @@ -54,7 +54,6 @@ 删除筛选过的牌组 %s 并将所有卡片发回原牌组? 没有可用的文字转语音(TTS)语言 不要朗读 - \n\n未使用的文件:\n 更改新卡位置 只有新卡牌可被更改位置 @@ -109,10 +108,7 @@ 正在检查媒体文件… 媒体文件检查完毕 编码无效的文件:%d - 存在于媒体文件夹中但未被用于任何卡牌的文件:%d - 被用于一些卡牌,但不存在于媒体文件夹中的文件:%d 没有发现未使用或缺失的文件 - 媒体数据库已重建 删除未使用的文件 正在删除媒体… 填空结果 diff --git a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml index be77351ac564..82b00eaf7b2d 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml @@ -96,7 +96,7 @@ 为回答或编辑卡片等动作指定手势。 9 点触摸 允许屏幕边缘的触摸手势 - Show keyboard shortcuts + 显示键盘快捷键 全屏导航抽屉 从屏幕上的任何地方向右滑动时打开导航抽屉 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 765786a4051d..c852d47ec2b2 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml @@ -54,7 +54,6 @@ 刪除篩選過的牌組 %s 並將所有卡片發回原牌組? 沒有可用的朗讀語言 不要發音 - \n\nUnused files:\n 變更新卡片位置 只有新卡片可以變更位置 @@ -109,10 +108,7 @@ 正在檢查媒體… 媒體已檢查 使用無效編碼的檔案:%d - 存在媒體資料夾內卻沒被任何卡片使用的檔案:%d - 卡片有用到卻不再媒體資料夾內的檔案:%d 沒有發現任何未使用或是遺失的檔案 - 重建媒體資料庫 刪除未使用的 刪除媒體中… 克漏字結果 diff --git a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml index 4f39a0bafe0a..d156c86298d1 100644 --- a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml @@ -55,7 +55,6 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - \n\nUnused files:\n Reposition new card Only new cards can be repositioned @@ -112,10 +111,7 @@ Checking media… Media checked Files with invalid encoding: %d - Files in media folder but not used by any cards: %d - Files used on cards but not in media folder: %d No unused or missing files found - Media database rebuilt Delete unused Deleting media… Deletion result From 1d24177bf8f775fd8b6757660431c46ad9b1f993 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Mon, 10 Feb 2025 14:51:58 +0000 Subject: [PATCH 040/200] Bumped version to 2.21alpha12 --- AnkiDroid/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/build.gradle b/AnkiDroid/build.gradle index 9028decd10b8..ea75cd815017 100644 --- a/AnkiDroid/build.gradle +++ b/AnkiDroid/build.gradle @@ -85,8 +85,8 @@ android { // // This ensures the correct ordering between the various types of releases (dev < alpha < beta < release) which is // needed for upgrades to be offered correctly. - versionCode=22100111 - versionName="2.21alpha11" + versionCode=22100112 + versionName="2.21alpha12" minSdk libs.versions.minSdk.get().toInteger() // After #13695: change .tests_emulator.yml From c77e4ff2a37ccc23ab3df305a2d02d625a4a2595 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Mon, 10 Feb 2025 19:07:58 +0200 Subject: [PATCH 041/200] Allow fine tuning the unbury action in congrats screen Follows desktop code to present the user with a dialog to select what to unbury based on the info returned for the congrats screen. See https://github.com/ankitects/anki/blob/acaeee91fa853e4a7a78dcddbb832d009ec3529a/qt/aqt/overview.py#L151-L174 --- .../java/com/ichi2/anki/pages/CongratsPage.kt | 69 ++++++++++++++++--- 1 file changed, 61 insertions(+), 8 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt index 17b2dd02ba46..514a214247bc 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/pages/CongratsPage.kt @@ -27,6 +27,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.flowWithLifecycle import androidx.lifecycle.lifecycleScope import anki.collection.OpChanges +import anki.scheduler.UnburyDeckRequest import com.google.android.material.appbar.MaterialToolbar import com.ichi2.anki.CollectionManager.TR import com.ichi2.anki.CollectionManager.withCol @@ -49,6 +50,9 @@ import com.ichi2.anki.utils.TIME_MINUTE import com.ichi2.libanki.ChangeManager import com.ichi2.libanki.DeckId import com.ichi2.libanki.undoableOp +import com.ichi2.utils.listItemsAndMessage +import com.ichi2.utils.negativeButton +import com.ichi2.utils.show import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach @@ -91,9 +95,36 @@ class CongratsPage : .show() }.launchIn(lifecycleScope) - viewModel.openStudyOptions - .onEach { openStudyOptionsAndFinish() } - .launchIn(lifecycleScope) + viewModel.unburyState + .onEach { state -> + when (state) { + UnburyState.OpenStudy -> openStudyOptionsAndFinish() + UnburyState.SelectMode -> { + val unburyOptions = + mutableListOf( + TR.studyingManuallyBuriedCards(), + TR.studyingBuriedSiblings(), + TR.studyingAllBuriedCards(), + ) + AlertDialog.Builder(requireContext()).show { + negativeButton(R.string.dialog_cancel) + listItemsAndMessage( + TR.studyingWhatWouldYouLikeToUnbury(), + unburyOptions, + ) { _, position -> + val mode = + when (position) { + 0 -> UnburyDeckRequest.Mode.USER_ONLY + 1 -> UnburyDeckRequest.Mode.SCHED_ONLY + 2 -> UnburyDeckRequest.Mode.ALL + else -> error("Unhandled unbury option: ${unburyOptions[position]}") + } + viewModel.onUnburyModeSelected(mode) + } + } + } + } + }.launchIn(lifecycleScope) viewModel.deckOptionsDestination .flowWithLifecycle(lifecycle) @@ -112,7 +143,7 @@ class CongratsPage : } } - setFragmentResultListener(CustomStudyAction.REQUEST_KEY) { requestKey, bundle -> + setFragmentResultListener(CustomStudyAction.REQUEST_KEY) { _, bundle -> when (CustomStudyAction.fromBundle(bundle)) { CustomStudyAction.CUSTOM_STUDY_SESSION, CustomStudyAction.EXTEND_STUDY_LIMITS, @@ -210,18 +241,34 @@ class CongratsViewModel : ViewModel(), OnErrorListener { override val onError = MutableSharedFlow() - val openStudyOptions = MutableSharedFlow() + val unburyState = MutableSharedFlow() val deckOptionsDestination = MutableSharedFlow() fun onUnbury() { launchCatchingIO { - undoableOp { - sched.unburyDeck(decks.getCurrentId()) + // https://github.com/ankitects/anki/blob/acaeee91fa853e4a7a78dcddbb832d009ec3529a/qt/aqt/overview.py#L154 + val congratsInfo = withCol { sched.congratulationsInfo() } + if (congratsInfo.haveSchedBuried && congratsInfo.haveUserBuried) { + unburyState.emit(UnburyState.SelectMode) + return@launchCatchingIO } - openStudyOptions.emit(true) + unburyAndStudy(UnburyDeckRequest.Mode.ALL) + } + } + + fun onUnburyModeSelected(mode: UnburyDeckRequest.Mode) { + launchCatchingIO { + unburyAndStudy(mode) } } + private suspend fun unburyAndStudy(mode: UnburyDeckRequest.Mode) { + undoableOp { + sched.unburyDeck(decks.getCurrentId(), mode) + } + unburyState.emit(UnburyState.OpenStudy) + } + fun onDeckOptions() { launchCatchingIO { val deckId = withCol { decks.getCurrentId() } @@ -242,3 +289,9 @@ class DeckOptionsDestination( DeckOptions.getIntent(context, deckId) } } + +sealed class UnburyState { + data object OpenStudy : UnburyState() + + data object SelectMode : UnburyState() +} From c5ecff9d9cdcd827ec0acf041913ed501d19ed20 Mon Sep 17 00:00:00 2001 From: Anoop Date: Wed, 12 Feb 2025 20:19:04 +0530 Subject: [PATCH 042/200] Fix : Deck Picker Arrow doesn't rotate on expanding and collapsing the deck. --- .../src/main/java/com/ichi2/anki/widgets/DeckAdapter.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/widgets/DeckAdapter.kt b/AnkiDroid/src/main/java/com/ichi2/anki/widgets/DeckAdapter.kt index 18ef2e7b2385..a6a59b4be68f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/widgets/DeckAdapter.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/widgets/DeckAdapter.kt @@ -36,6 +36,7 @@ import com.ichi2.libanki.DeckId import com.ichi2.libanki.sched.DeckNode import kotlinx.coroutines.runBlocking import net.ankiweb.rsdroid.RustCleanup +import timber.log.Timber /** * A [RecyclerView.Adapter] used to show the list of decks inside [com.ichi2.anki.DeckPicker]. @@ -153,7 +154,10 @@ class DeckAdapter( deckLayout.setPaddingRelative(startPadding, 0, endPadding, 0) } if (node.children.isNotEmpty()) { - holder.deckExpander.setOnClickListener { onDeckChildrenToggled(node.did) } + holder.deckExpander.setOnClickListener { + onDeckChildrenToggled(node.did) + notifyItemChanged(position) // Ensure UI updates + } } else { holder.deckExpander.isClickable = false holder.deckExpander.setOnClickListener(null) @@ -201,9 +205,11 @@ class DeckAdapter( if (node.collapsed) { expander.setImageDrawable(expandImage) expander.contentDescription = expander.context.getString(R.string.expand) + Timber.d("Deck Collapsed") } else { expander.setImageDrawable(collapseImage) expander.contentDescription = expander.context.getString(R.string.collapse) + Timber.d("Deck Expanded") } } else { expander.visibility = View.INVISIBLE From c3142aeb5c7dbcfd70306ccceb534f6efe7a24d1 Mon Sep 17 00:00:00 2001 From: Ashish Yadav <48384865+criticalAY@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:51:09 +0530 Subject: [PATCH 043/200] refactor: format indent for card browser xml --- .../res/layout/browser_options_dialog.xml | 56 +++++++++---------- 1 file changed, 25 insertions(+), 31 deletions(-) diff --git a/AnkiDroid/src/main/res/layout/browser_options_dialog.xml b/AnkiDroid/src/main/res/layout/browser_options_dialog.xml index 65ffac30b619..578a2b9dc278 100644 --- a/AnkiDroid/src/main/res/layout/browser_options_dialog.xml +++ b/AnkiDroid/src/main/res/layout/browser_options_dialog.xml @@ -2,92 +2,90 @@ - + android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools"> - - - - - + + - - - - - - - + - - - - - - + + - - - - - - - + - - - - From 7d31c3e573cdc46caecda5569c87e3a5d7283045 Mon Sep 17 00:00:00 2001 From: Ashish Yadav <48384865+criticalAY@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:52:34 +0530 Subject: [PATCH 044/200] feat: add new browsing category in dialog xml file --- .../res/layout/browser_options_dialog.xml | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/AnkiDroid/src/main/res/layout/browser_options_dialog.xml b/AnkiDroid/src/main/res/layout/browser_options_dialog.xml index 578a2b9dc278..fc706929b477 100644 --- a/AnkiDroid/src/main/res/layout/browser_options_dialog.xml +++ b/AnkiDroid/src/main/res/layout/browser_options_dialog.xml @@ -71,6 +71,45 @@ android:layout_marginHorizontal="16dp" /> + + + + + + + + + + + Date: Thu, 6 Feb 2025 22:04:27 +0530 Subject: [PATCH 045/200] feat: add new browsing preference option in the option dialog --- .../anki/browser/CardBrowserViewModel.kt | 52 ++++++++++++++++++- .../anki/dialogs/BrowserOptionsDialog.kt | 28 ++++++++++ .../java/com/ichi2/anki/utils/ext/String.kt | 44 ++++++++++++++++ .../src/main/java/com/ichi2/libanki/Config.kt | 10 +++- .../res/layout/browser_options_dialog.xml | 1 + 5 files changed, 132 insertions(+), 3 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/String.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt index 5a6ca4dd7356..24a22b37acca 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt @@ -26,6 +26,7 @@ import androidx.lifecycle.viewmodel.initializer import androidx.lifecycle.viewmodel.viewModelFactory import anki.collection.OpChanges import anki.collection.OpChangesWithCount +import anki.config.ConfigKey import anki.search.BrowserColumns import anki.search.BrowserRow import com.ichi2.anki.AnkiDroidApp @@ -46,6 +47,7 @@ import com.ichi2.anki.model.CardsOrNotes.NOTES import com.ichi2.anki.model.SortType import com.ichi2.anki.pages.CardInfoDestination import com.ichi2.anki.preferences.SharedPreferencesProvider +import com.ichi2.anki.utils.ext.normalizeForSearch import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.Card import com.ichi2.libanki.CardId @@ -93,6 +95,7 @@ import kotlin.math.min @NeedsTest("columIndex1/2 config is not not updated on init") @NeedsTest("13442: selected deck is not changed, as this affects the reviewer") @NeedsTest("search is called after launch()") +@NeedsTest("default search text updated on init") class CardBrowserViewModel( private val lastDeckIdRepository: LastDeckIdRepository, private val cacheDir: File, @@ -180,6 +183,10 @@ class CardBrowserViewModel( MutableStateFlow(sharedPrefs().getBoolean("isTruncated", false)) val isTruncated get() = flowOfIsTruncated.value + var shouldIgnoreAccents: Boolean = false + + var defaultBrowserSearch: String? = null + private val _selectedRows: MutableSet = Collections.synchronizedSet(LinkedHashSet()) // immutable accessor for _selectedRows @@ -209,6 +216,12 @@ class CardBrowserViewModel( val lastDeckId: DeckId? get() = lastDeckIdRepository.lastDeckId + private suspend fun initDefaultSearch() = + withCol { + shouldIgnoreAccents = config.getBool(ConfigKey.Bool.IGNORE_ACCENTS_IN_SEARCH) + defaultBrowserSearch = config.getString(ConfigKey.String.DEFAULT_SEARCH_TEXT) + } + suspend fun setDeckId(deckId: DeckId) { Timber.i("setting deck: %d", deckId) lastDeckIdRepository.lastDeckId = deckId @@ -328,6 +341,17 @@ class CardBrowserViewModel( }.launchIn(viewModelScope) viewModelScope.launch { + initDefaultSearch() + // Prioritize intent-based search + if (searchTerms.isEmpty()) { + val defaultSearchText = withCol { config.getString(ConfigKey.String.DEFAULT_SEARCH_TEXT) } + + Timber.d("Default search term text: $defaultSearchText") + if (defaultSearchText.isNotEmpty()) { + searchTerms = defaultSearchText + } + } + val initialDeckId = if (selectAllDecks) ALL_DECKS_ID else getInitialDeck() // PERF: slightly inefficient if the source was lastDeckId setDeckId(initialDeckId) @@ -457,6 +481,22 @@ class CardBrowserViewModel( } } + fun setIgnoreAccents(value: Boolean) { + Timber.d("Setting ignore accent in search to: $value") + viewModelScope.launch { + shouldIgnoreAccents = value + withCol { config.setBool(ConfigKey.Bool.IGNORE_ACCENTS_IN_SEARCH, value) } + } + } + + fun setDefaultSearchText(text: String) { + Timber.d("Setting default search text to: $text") + viewModelScope.launch { + defaultBrowserSearch = text + withCol { config.setString(ConfigKey.String.DEFAULT_SEARCH_TEXT, text) } + } + } + fun selectAll() { if (_selectedRows.addAll(cards)) { Timber.d("selecting all: %d item(s)", cards.size) @@ -898,8 +938,16 @@ class CardBrowserViewModel( Timber.d("skipping duplicate search: forceRefresh is false") return } - searchTerms = searchQuery - launchSearchForCards() + searchTerms = + if (shouldIgnoreAccents) { + searchQuery.normalizeForSearch() + } else { + searchQuery + } + + viewModelScope.launch { + launchSearchForCards() + } } /** diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/BrowserOptionsDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/BrowserOptionsDialog.kt index c8e29061ba37..ef2e95bb3b00 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/BrowserOptionsDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/BrowserOptionsDialog.kt @@ -25,11 +25,15 @@ import android.widget.CheckBox import android.widget.LinearLayout import android.widget.RadioButton import android.widget.RadioGroup +import android.widget.TextView import androidx.annotation.IdRes import androidx.appcompat.app.AppCompatDialogFragment import androidx.core.os.bundleOf import androidx.fragment.app.activityViewModels import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.google.android.material.textfield.TextInputEditText +import com.google.android.material.textfield.TextInputLayout +import com.ichi2.anki.CollectionManager.TR import com.ichi2.anki.R import com.ichi2.anki.browser.BrowserColumnSelectionFragment import com.ichi2.anki.browser.CardBrowserViewModel @@ -61,6 +65,16 @@ class BrowserOptionsDialog : AppCompatDialogFragment() { if (newTruncate != isTruncated) { viewModel.setTruncated(newTruncate) } + + val newIgnoreAccent = dialogView.findViewById(R.id.ignore_accents_checkbox).isChecked + if (newIgnoreAccent != viewModel.shouldIgnoreAccents) { + viewModel.setIgnoreAccents(newIgnoreAccent) + } + + val newSearchValue = dialogView.findViewById(R.id.default_search_text).text?.toString() ?: "" + if (newSearchValue != viewModel.defaultBrowserSearch) { + viewModel.setDefaultSearchText(newSearchValue) + } } private val cardsOrNotes by lazy { @@ -105,6 +119,20 @@ class BrowserOptionsDialog : AppCompatDialogFragment() { openColumnManager() } + dialogView.findViewById(R.id.ignore_accents_checkbox).apply { + text = TR.preferencesIgnoreAccentsInSearch() + isChecked = viewModel.shouldIgnoreAccents + } + + dialogView.findViewById(R.id.default_search_input_layout).hint = TR.preferencesDefaultSearchText() + + dialogView.findViewById(R.id.browsing_text_view).text = TR.preferencesBrowsing() + + dialogView.findViewById(R.id.default_search_text).apply { + hint = TR.preferencesDefaultSearchTextExample() + setText(viewModel.defaultBrowserSearch ?: "") + } + return MaterialAlertDialogBuilder(requireContext()).run { this.setView(dialogView) this.setTitle(getString(R.string.browser_options_dialog_heading)) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/String.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/String.kt new file mode 100644 index 000000000000..2791c82e082a --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/String.kt @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2024 Ashish Yadav + * + * 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.utils.ext + +import java.text.Normalizer +import java.util.regex.Pattern + +private val DIACRITICAL_MARKS_PATTERN = Pattern.compile("\\p{InCombiningDiacriticalMarks}+") + +/** + * Normalizes the given string by removing diacritical marks (accents) to enable accent-insensitive searches. + * + * This method uses Unicode normalization in **NFD (Normalization Form Decomposition)** mode, which separates + * base characters from their diacritical marks. Then, it removes all combining diacritical marks using a regex. + * + * Example usage: + * ``` + * val input = "café naïve résumé" + * val normalized = input.normalizeForSearch() + * println(normalized) // Output: "cafe naive resume" + * ``` + * + * @receiver The input string that may contain accented characters. + * @return A new string with accents removed. + */ +fun String.normalizeForSearch(): String { + val normalized = Normalizer.normalize(this, Normalizer.Form.NFD) + return DIACRITICAL_MARKS_PATTERN.matcher(normalized).replaceAll("") +} diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt index 5760c6c4705d..01be7ce71b41 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Config.kt @@ -20,7 +20,6 @@ import anki.config.ConfigKey import com.google.protobuf.kotlin.toByteStringUtf8 import com.ichi2.libanki.utils.NotInLibAnki import kotlinx.serialization.SerializationException -import kotlinx.serialization.encodeToString import kotlinx.serialization.json.Json import net.ankiweb.rsdroid.Backend import net.ankiweb.rsdroid.exceptions.BackendNotFoundException @@ -66,6 +65,15 @@ class Config( backend.setConfigBool(key, value, false) } + fun getString(key: ConfigKey.String): String = backend.getConfigString(key) + + fun setString( + key: ConfigKey.String, + value: String, + ) { + backend.setConfigString(key, value, false) + } + @NotInLibAnki inline fun get( key: String, diff --git a/AnkiDroid/src/main/res/layout/browser_options_dialog.xml b/AnkiDroid/src/main/res/layout/browser_options_dialog.xml index fc706929b477..99e9d476d708 100644 --- a/AnkiDroid/src/main/res/layout/browser_options_dialog.xml +++ b/AnkiDroid/src/main/res/layout/browser_options_dialog.xml @@ -78,6 +78,7 @@ android:orientation="vertical"> Date: Thu, 6 Feb 2025 22:11:34 +0530 Subject: [PATCH 046/200] test: unit test for string normalization --- .../anki/browser/StringNormalizationTest.kt | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/browser/StringNormalizationTest.kt diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/browser/StringNormalizationTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/browser/StringNormalizationTest.kt new file mode 100644 index 000000000000..a134684cdf0d --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/browser/StringNormalizationTest.kt @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025 Ashish Yadav + * + * 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.browser + +import com.ichi2.anki.utils.ext.normalizeForSearch +import org.junit.Assert.assertEquals +import org.junit.jupiter.params.ParameterizedTest +import org.junit.jupiter.params.provider.CsvSource + +class StringNormalizationTest { + @ParameterizedTest + @CsvSource( + "café Ábaco naïve résumé, cafe Abaco naive resume", + "élégant déjà vu, elegant deja vu", + "hello world, hello world", + "'', ''", + "1234!@# café, 1234!@# cafe", + ) + fun `test normalizeForSearch`( + input: String, + expected: String, + ) { + assertEquals(expected, input.normalizeForSearch()) + } +} From 94e4b47dd3e854d25150175a2bbeed013430b8a5 Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Thu, 13 Feb 2025 22:55:41 +0000 Subject: [PATCH 047/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-es-rAR/01-core.xml | 8 ++++---- AnkiDroid/src/main/res/values-es-rAR/02-strings.xml | 2 +- .../src/main/res/values-es-rAR/10-preferences.xml | 8 ++++---- AnkiDroid/src/main/res/values-es-rES/01-core.xml | 10 +++++----- AnkiDroid/src/main/res/values-es-rES/02-strings.xml | 6 +++--- .../src/main/res/values-es-rES/07-cardbrowser.xml | 12 ++++++------ .../src/main/res/values-es-rES/10-preferences.xml | 8 ++++---- AnkiDroid/src/main/res/values-ja/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ja/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-pt-rBR/01-core.xml | 2 +- AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml | 6 +++--- .../src/main/res/values-pt-rPT/10-preferences.xml | 2 +- 13 files changed, 35 insertions(+), 35 deletions(-) diff --git a/AnkiDroid/src/main/res/values-es-rAR/01-core.xml b/AnkiDroid/src/main/res/values-es-rAR/01-core.xml index fc6903591017..1c38340f8293 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/01-core.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/01-core.xml @@ -129,7 +129,7 @@ Este mazo está vacío Búsqueda de Mazo Nombre de mazo inválido - Congratulations! You have finished for today. + ¡Felicitaciones! Has finalizado por hoy. ¡El mazo ha terminado por ahora! %s Aún no hay tarjetas programadas. El almacenamiento del dispositivo no se encuentra montado @@ -181,9 +181,9 @@ Seleccionar colección a mantener Reemplazar colección - Cannot write to or create file %s + No se puede editar o crear el archivo %s Colección inaccesible - No podemos acceder a tu colección después de desinstalar AnkiDroid debido a un cambio en la política de Play Store\n\nTus datos están seguros y pueden ser restaurados. Están ubicados en\n%s\n\nSelecciona una opción debajo para restaurar: + No podemos acceder a tu colección después de desinstalar AnkiDroid debido a un cambio en la política de la Play Store\n\nTus datos están seguros y pueden ser restaurados. Están ubicados en\n%s\n\nSelecciona una opción para restaurar: Android ha eliminado el permiso %1$s de AnkiDroid debido a la inactividad de la aplicación.\n\nTus datos están seguros y pueden ser restaurados. Está ubicado en\n%2$s\n\nSeleccione una de las opciones siguientes para restaurar: Restaurar desde AnkiWeb (recomendado) Restaurar acceso a la carpeta (recomendado) @@ -199,5 +199,5 @@ Imagen oculta Quitar cuenta - Instant card + Tarjeta instantánea 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 0a6c45396b8a..13d992bcd7fd 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -301,7 +301,7 @@ Notas Cambiar tarjetas/notas Limita la altura de cada fila del navegador de tal manera que solo muestra las primeras 3 líneas de contenido - Browser options + Opciones del explorador Grabación guardada Eliminando notas seleccionadas Toca una voz para escucharla diff --git a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml index 1812f53607ca..6aa6a9ae2784 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml @@ -97,7 +97,7 @@ Asignar gestos a acciones tales como contestar o editar tarjetas. Toque de 9 puntos Permitir gestos táctiles en las esquinas de pantalla - Show keyboard shortcuts + Mostrar atajos del teclado Panel de navegación a pantalla completa Abrir el panel de navegación cuando se desliza a la derecha desde cualquier lugar de la pantalla Ninguno @@ -367,9 +367,9 @@ Puedes restaurar una colección desde una copia de seguridad en el menú de la l Ignorar el recorte de la pantalla Ocultar botones de respuesta Ocultar los botones \"Difícil\" y \"Fácil\" - Frame style - Card - Box + Estilo del marco + Tarjeta + Caja Abrir la configuración diff --git a/AnkiDroid/src/main/res/values-es-rES/01-core.xml b/AnkiDroid/src/main/res/values-es-rES/01-core.xml index 0ecdd219b035..9b184b6e9d0d 100644 --- a/AnkiDroid/src/main/res/values-es-rES/01-core.xml +++ b/AnkiDroid/src/main/res/values-es-rES/01-core.xml @@ -62,7 +62,7 @@ %1$d hora %2$d restante - %1$d horas %2$d restante + %1$d horas %2$d restantes %1$d día %2$dh restante @@ -129,7 +129,7 @@ Este mazo está vacío Búsqueda de Mazo Nombre de mazo no válido - Congratulations! You have finished for today. + ¡Felicitaciones! Has finalizado por hoy. ¡El mazo ha terminado por ahora! %s Todavía no hay ninguna tarjeta pendiente. Almacenamiento del dispositivo no montado @@ -181,9 +181,9 @@ Selecciona la colección a mantener Reemplazar colección - Cannot write to or create file %s + No se puede editar o crear el archivo %s Colección inaccesible - No podemos acceder a tu colección después de desinstalar AnkiDroid debido a un cambio en la política de Play Store\n\nTus datos están seguros y pueden ser restaurados. Están ubicados en\n%s\n\nSelecciona una opción debajo para restaurar: + No podemos acceder a tu colección después de desinstalar AnkiDroid debido a un cambio en la política de la Play Store\n\nTus datos están seguros y pueden ser restaurados. Están ubicados en\n%s\n\nSelecciona una opción para restaurar: Android ha eliminado el permiso %1$s de AnkiDroid debido a la inactividad de la aplicación.\n\nTus datos están seguros y pueden ser restaurados. Está ubicado en\n%2$s\n\nSeleccione una de las opciones siguientes para restaurar: Restaurar desde AnkiWeb (recomendado) Restaurar acceso a la carpeta (recomendado) @@ -199,5 +199,5 @@ Imagen oculta Quitar cuenta - Instant card + Tarjeta instantánea 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 58b0c40c2df8..aacde7fae3f3 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -87,8 +87,8 @@ +%d enterrada +%d enterradas - Total new cards - Total cards + Total de tarjetas nuevas + Total de tarjetas Editar nota Borrar @@ -301,7 +301,7 @@ Notas Cambiar tarjetas/notas Limita la altura de cada fila del navegador de tal manera que solo muestra las primeras 3 líneas de contenido - Browser options + Opciones del explorador Grabación guardada Eliminando notas seleccionadas Toca una voz para escucharla diff --git a/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml index 172c40c560ec..031dcbaa45ed 100644 --- a/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml @@ -112,10 +112,10 @@ Editar diálogo de etiquetas Mostrar diálogo de orden - Columns - Manage columns - Active - Available - Include column - Exclude column + Columnas + Administrar columnas + Activas + Disponibles + Incluir columna + Excluir columna diff --git a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml index 65d807bcc812..f3e26035f378 100644 --- a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml @@ -97,7 +97,7 @@ Asignar gestos a acciones tales como contestar o editar tarjetas. Toque de 9 puntos Permitir gestos táctiles en las esquinas de pantalla - Show keyboard shortcuts + Mostrar atajos del teclado Panel de navegación a pantalla completa Abrir el cajón de navegación cuando se desliza a la derecha desde cualquier lugar de la pantalla Ninguno @@ -367,9 +367,9 @@ Puedes restaurar una colección desde una copia de seguridad en el menú de la l Ignorar el recorte de la pantalla Ocultar botones de respuesta Ocultar los botones \"Difícil\" y \"Fácil\" - Frame style - Card - Box + Estilo del marco + Tarjeta + Caja Abrir la configuración diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index d5dea8d5876e..48fbc26cdeb5 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -57,7 +57,7 @@ タグフィルター / 新規タグ追加 タグを追加 すべて選択 / 選択をすべて解除 - フィルター (前方一致検索) + タグを検索 まだタグが一つも作成されていません バージョン%sにアップデートしました diff --git a/AnkiDroid/src/main/res/values-ja/10-preferences.xml b/AnkiDroid/src/main/res/values-ja/10-preferences.xml index 3b4b74818d36..abb319252764 100644 --- a/AnkiDroid/src/main/res/values-ja/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ja/10-preferences.xml @@ -96,7 +96,7 @@ 回答やカード編集などの操作にジェスチャーを割り当てます タップを9種類にする カード画面内を縦3 × 横3の9エリアに区別して各エリアにタップジェスチャーを割り当てられます - Show keyboard shortcuts + キーボードショートカットを表示 どこでもドロワー アプリ画面上のどこからでも、右向きにスワイプするとナビゲーションドロワーが開きます なし diff --git a/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml b/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml index 0d7aa8ec63dd..3e14a7429cac 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml @@ -129,7 +129,7 @@ Este baralho está vazio Pesquisar baralho Nome do baralho inválido - Congratulations! You have finished for today. + Parabéns! Você terminou por hoje. Baralho finalizado por enquanto! %s Sem cartões pendentes por enquanto. Armazenamento do dispositivo não montado 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 568390a8f950..4483e073dbff 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -84,7 +84,7 @@ Limitar a tags específicas - +%d enterrado + +%d oculto +%d buried Total new cards 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 0300e2b06777..af3c604e648e 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml @@ -50,9 +50,9 @@ Excluir baralho? Excluir todas as cartas em %1$s? Ele contém %2$d cartão - Excluir todas as cartas em %1$s? Ele contém %2$d cartões + Excluir todos os cartões em %1$s? Ele contém %2$d cartões - Excluir baralho filtrado %s e enviar todas as cartas de volta para seus baralhos originais? + Excluir baralho filtrado %s e enviar todos os cartões de volta para seus baralhos originais? Nenhum idioma de texto para fala disponível Não fale Reposicionar novo cartão @@ -124,7 +124,7 @@ Novos Pendentes - Buscando cards vazios… + Buscando cartões vazios… Não foi possível obter permissão de microfone. Falha ao abrir o Editor de Multimídia 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 4d3b51d376a2..c2cb83f98fd0 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml @@ -97,7 +97,7 @@ Atribuir gestos a ações tais como responder e editar fichas. Toque de 9 pontos Permitir gestos de toque nos cantos da tela - Show keyboard shortcuts + Mostrar teclas de atalho do teclado Painel de navegação no ecrã completo Abrir painel de navegação quando desliza para a direita de qualquer ponto do ecrã Nenhum From 4db4dfb15c18aa39edf70bab0414d391d5e39702 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Tue, 11 Feb 2025 11:27:54 +0200 Subject: [PATCH 048/200] Enable feature complete repositioning of new cards Allows the same options and shows the same ui(almost) like desktop does. --- .../main/java/com/ichi2/anki/CardBrowser.kt | 67 ++++++---- .../anki/browser/CardBrowserViewModel.kt | 39 ++++-- .../anki/browser/RepositionCardFragment.kt | 121 ++++++++++++++++++ .../java/com/ichi2/libanki/sched/Scheduler.kt | 4 + .../res/layout/fragment_reposition_card.xml | 88 +++++++++++++ AnkiDroid/src/main/res/values/03-dialogs.xml | 6 - .../src/main/res/values/sentence-case.xml | 2 +- .../java/com/ichi2/anki/CardBrowserTest.kt | 88 ++++++++++++- 8 files changed, 368 insertions(+), 47 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/browser/RepositionCardFragment.kt create mode 100644 AnkiDroid/src/main/res/layout/fragment_reposition_card.xml diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt index bc1f66ad7fd3..a09b793278d5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt @@ -68,6 +68,8 @@ import com.ichi2.anki.browser.CardBrowserViewModel.SearchState.Searching import com.ichi2.anki.browser.CardOrNoteId import com.ichi2.anki.browser.ColumnHeading import com.ichi2.anki.browser.PreviewerIdsFile +import com.ichi2.anki.browser.RepositionCardFragment +import com.ichi2.anki.browser.RepositionCardFragment.Companion.REQUEST_REPOSITION_NEW_CARDS import com.ichi2.anki.browser.RepositionCardsRequest.ContainsNonNewCardsError import com.ichi2.anki.browser.RepositionCardsRequest.RepositionData import com.ichi2.anki.browser.SaveSearchResult @@ -83,7 +85,6 @@ import com.ichi2.anki.dialogs.DeckSelectionDialog import com.ichi2.anki.dialogs.DeckSelectionDialog.Companion.newInstance import com.ichi2.anki.dialogs.DeckSelectionDialog.DeckSelectionListener import com.ichi2.anki.dialogs.DeckSelectionDialog.SelectableDeck -import com.ichi2.anki.dialogs.IntegerDialog import com.ichi2.anki.dialogs.SimpleMessageDialog import com.ichi2.anki.dialogs.tags.TagsDialog import com.ichi2.anki.dialogs.tags.TagsDialogFactory @@ -447,6 +448,14 @@ open class CardBrowser : setupFlows() registerOnForgetHandler { viewModel.queryAllSelectedCardIds() } + supportFragmentManager.setFragmentResultListener(REQUEST_REPOSITION_NEW_CARDS, this) { _, bundle -> + repositionCardsNoValidation( + position = bundle.getInt(RepositionCardFragment.ARG_POSITION), + step = bundle.getInt(RepositionCardFragment.ARG_STEP), + shuffle = bundle.getBoolean(RepositionCardFragment.ARG_RANDOM), + shift = bundle.getBoolean(RepositionCardFragment.ARG_SHIFT), + ) + } } override fun setupBackPressedCallbacks() { @@ -1311,19 +1320,19 @@ open class CardBrowser : return@launchCatchingTask } is RepositionData -> { - // TODO: This dialog is missing: - // Randomize order - // Shift position of existing cards + val top = repositionCardsResult.queueTop + val bottom = repositionCardsResult.queueBottom + if (top == null || bottom == null) { + showSnackbar(R.string.something_wrong) + return@launchCatchingTask + } val repositionDialog = - IntegerDialog().apply { - setArgs( - title = this@CardBrowser.getString(R.string.reposition_card_dialog_title), - prompt = TR.browsingStartPosition(), - content = repositionCardsResult.toHumanReadableContent(), - digits = 5, - ) - setCallbackRunnable(::repositionCardsNoValidation) - } + RepositionCardFragment.newInstance( + queueTop = top, + queueBottom = bottom, + random = repositionCardsResult.random, + shift = repositionCardsResult.shift, + ) showDialogFragment(repositionDialog) } } @@ -1370,18 +1379,26 @@ open class CardBrowser : } @VisibleForTesting - fun repositionCardsNoValidation(position: Int) = - launchCatchingTask { - val count = withProgress { viewModel.repositionSelectedRows(position) } - showSnackbar( - resources.getQuantityString( - R.plurals.reposition_card_dialog_acknowledge, - count, - count, - ), - Snackbar.LENGTH_SHORT, - ) - } + fun repositionCardsNoValidation( + position: Int, + step: Int, + shuffle: Boolean, + shift: Boolean, + ) = launchCatchingTask { + val count = + withProgress { + viewModel.repositionSelectedRows( + position = position, + step = step, + shuffle = shuffle, + shift = shift, + ) + } + showSnackbar( + TR.browsingChangedNewPosition(count), + Snackbar.LENGTH_SHORT, + ) + } private fun onPreview() { launchCatchingTask { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt index 24a22b37acca..f4a8064d1d41 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt @@ -727,6 +727,7 @@ class CardBrowserViewModel( /** * Obtains data to be displayed to the user then sent to [repositionSelectedRows] */ + @NeedsTest("verify behavior for repositioning with 'Randomize order'") suspend fun prepareToRepositionCards(): RepositionCardsRequest { val selectedCardIds = queryAllSelectedCardIds() // Only new cards may be repositioned (If any non-new found show error dialog and return false) @@ -737,17 +738,22 @@ class CardBrowserViewModel( // query obtained from Anki Desktop // https://github.com/ankitects/anki/blob/1fb1cbbf85c48a54c05cb4442b1b424a529cac60/qt/aqt/operations/scheduling.py#L117 try { - val (min, max) = - withCol { - db.query("select min(due), max(due) from cards where type=? and odid=0", CardType.New.code).use { - it.moveToNext() - return@withCol Pair(max(0, it.getInt(0)), it.getInt(1)) - } - } - return RepositionData( - min = min, - max = max, - ) + return withCol { + val (min, max) = + db + .query("select min(due), max(due) from cards where type=? and odid=0", CardType.New.code) + .use { + it.moveToNext() + Pair(max(0, it.getInt(0)), it.getInt(1)) + } + val defaults = sched.repositionDefaults() + RepositionData( + min = min, + max = max, + random = defaults.random, + shift = defaults.shift, + ) + } } catch (e: Exception) { // TODO: Remove this once we've verified no production errors Timber.w(e, "getting min/max position") @@ -763,11 +769,16 @@ class CardBrowserViewModel( * @see [com.ichi2.libanki.sched.Scheduler.sortCards] * @return the number of cards which were repositioned */ - suspend fun repositionSelectedRows(position: Int): Int { + suspend fun repositionSelectedRows( + position: Int, + step: Int, + shuffle: Boolean, + shift: Boolean, + ): Int { val ids = queryAllSelectedCardIds() Timber.d("repositioning %d cards to %d", ids.size, position) return undoableOp { - sched.sortCards(cids = ids, position, step = 1, shuffle = false, shift = true) + sched.sortCards(cids = ids, position, step = step, shuffle = shuffle, shift = shift) }.count } @@ -1149,6 +1160,8 @@ sealed class RepositionCardsRequest { class RepositionData( val min: Int?, val max: Int?, + val random: Boolean = false, + val shift: Boolean = false, ) : RepositionCardsRequest() { val queueTop: Int? val queueBottom: Int? diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/RepositionCardFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/RepositionCardFragment.kt new file mode 100644 index 000000000000..f2de06fef111 --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/RepositionCardFragment.kt @@ -0,0 +1,121 @@ +/**************************************************************************************** + * Copyright (c) 2025 lukstbit <52494258+lukstbit@users.noreply.github.com> * + * * + * 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.browser + +import android.app.Dialog +import android.os.Bundle +import android.widget.CheckBox +import android.widget.TextView +import androidx.appcompat.app.AlertDialog +import androidx.core.os.bundleOf +import androidx.fragment.app.DialogFragment +import androidx.fragment.app.setFragmentResult +import com.google.android.material.textfield.TextInputEditText +import com.google.android.material.textfield.TextInputLayout +import com.ichi2.anki.CardBrowser +import com.ichi2.anki.CollectionManager.TR +import com.ichi2.anki.R +import com.ichi2.anki.ui.internationalization.toSentenceCase +import com.ichi2.utils.create +import com.ichi2.utils.customView +import com.ichi2.utils.negativeButton +import com.ichi2.utils.positiveButton +import com.ichi2.utils.textAsIntOrNull +import com.ichi2.utils.title + +/** + * Follows desktop implementation to show the same ui with all the options to reposition new + * (currently selected) cards in [CardBrowser]. + * See https://github.com/ankitects/anki/blob/44e01ea063e6d1b812ace9c001f7ba4a8ccf4479/qt/aqt/forms/reposition.ui#L14 + * See https://github.com/ankitects/anki/blob/1fb1cbbf85c48a54c05cb4442b1b424a529cac60/qt/aqt/operations/scheduling.py#L107 + */ +class RepositionCardFragment : DialogFragment() { + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val dialogView = layoutInflater.inflate(R.layout.fragment_reposition_card, null) + dialogView.findViewById(R.id.queue_limits_label).text = + """ + ${TR.browsingQueueTop(requireArguments().getInt(ARG_QUEUE_TOP))} + ${TR.browsingQueueTop(requireArguments().getInt(ARG_QUEUE_BOTTOM))} + """.trimIndent() + dialogView.findViewById(R.id.start_input_layout).hint = + TR.browsingStartPosition().removeSuffix(":") + dialogView.findViewById(R.id.step_input_layout).hint = + TR.browsingStep().removeSuffix(":") + val randomCheck = + dialogView.findViewById(R.id.randomize_order_check)?.apply { + text = TR.browsingRandomizeOrder() + isChecked = requireArguments().getBoolean(ARG_RANDOM) + } ?: error("Unexpected missing random checkbox!") + val shiftPositionCheck = + dialogView.findViewById(R.id.shift_position_check)?.apply { + text = TR.browsingShiftPositionOfExistingCards() + isChecked = requireArguments().getBoolean(ARG_SHIFT) + } ?: error("Unexpected missing shift position checkbox!") + val title = + TR + .browsingRepositionNewCards() + .toSentenceCase(requireContext(), R.string.sentence_reposition_new_cards) + return AlertDialog.Builder(requireContext()).create { + title(text = title) + customView(dialogView) + negativeButton(R.string.dialog_cancel) + positiveButton(R.string.dialog_ok) { + val position = + dialogView + .findViewById(R.id.start_input) + .textAsIntOrNull() ?: return@positiveButton + val step = + dialogView + .findViewById(R.id.step_input) + ?.textAsIntOrNull() ?: return@positiveButton + setFragmentResult( + REQUEST_REPOSITION_NEW_CARDS, + bundleOf( + ARG_POSITION to position, + ARG_STEP to step, + ARG_RANDOM to randomCheck.isChecked, + ARG_SHIFT to shiftPositionCheck.isChecked, + ), + ) + } + } + } + + companion object { + const val REQUEST_REPOSITION_NEW_CARDS = "request_repositions_new_cards" + private const val ARG_QUEUE_TOP = "arg_queue_top" + private const val ARG_QUEUE_BOTTOM = "arg_queue_bottom" + const val ARG_POSITION = "arg_position" + const val ARG_STEP = "arg_step" + const val ARG_RANDOM = "arg_random" + const val ARG_SHIFT = "arg_shift" + + fun newInstance( + queueTop: Int, + queueBottom: Int, + random: Boolean, + shift: Boolean, + ) = RepositionCardFragment().apply { + arguments = + bundleOf( + ARG_QUEUE_TOP to queueTop, + ARG_QUEUE_BOTTOM to queueBottom, + ARG_RANDOM to random, + ARG_SHIFT to shift, + ) + } + } +} diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt index c0cb9303f98f..dad3ee8d6510 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt @@ -33,6 +33,7 @@ import anki.scheduler.CongratsInfoResponse import anki.scheduler.CustomStudyDefaultsResponse import anki.scheduler.CustomStudyRequest import anki.scheduler.QueuedCards +import anki.scheduler.RepositionDefaultsResponse import anki.scheduler.SchedTimingTodayResponse import anki.scheduler.SchedulingContext import anki.scheduler.SchedulingState @@ -484,6 +485,9 @@ open class Scheduler( @CheckResult fun customStudyDefaults(deckId: DeckId): CustomStudyDefaultsResponse = col.backend.customStudyDefaults(deckId) + @CheckResult + fun repositionDefaults(): RepositionDefaultsResponse = col.backend.repositionDefaults() + /** * @return Number of new card in current deck and its descendants. Capped at [REPORT_LIMIT] */ diff --git a/AnkiDroid/src/main/res/layout/fragment_reposition_card.xml b/AnkiDroid/src/main/res/layout/fragment_reposition_card.xml new file mode 100644 index 000000000000..334ea67ab908 --- /dev/null +++ b/AnkiDroid/src/main/res/layout/fragment_reposition_card.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml index aa70ba3bab57..25a5547f826b 100644 --- a/AnkiDroid/src/main/res/values/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values/03-dialogs.xml @@ -30,13 +30,7 @@ No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values/sentence-case.xml b/AnkiDroid/src/main/res/values/sentence-case.xml index 63653a540e91..e739a67cbff3 100644 --- a/AnkiDroid/src/main/res/values/sentence-case.xml +++ b/AnkiDroid/src/main/res/values/sentence-case.xml @@ -43,5 +43,5 @@ undoActionUndone() Custom study Empty cards Tag missing - + Reposition new cards \ No newline at end of file diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt index cf6721e2a995..5bcbcbe4cca0 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt @@ -558,7 +558,7 @@ class CardBrowserTest : RobolectricTest() { startsWith("New #\u20681\u2069"), ) - b.viewModel.repositionSelectedRows(2) + b.viewModel.repositionSelectedRows(2, 1, shuffle = false, shift = false) assertThat( "Position of checked card after reposition", @@ -567,6 +567,90 @@ class CardBrowserTest : RobolectricTest() { ) } + @Test + fun `reposition without shift has expected outcome`() = + runTest { + val browser = getBrowserWithNotes(5) + // without shifting when repositioning we end up with the same due if there's already a + // card with that value + // see https://docs.ankiweb.net/browsing.html#cards + browser.assertRepositionOutcomeFor( + selectedBrowserPosition = 3, + currentDuePosition = 4, + targetDuePosition = 1, + expectedCardsDuePositions = listOf(1, 2, 3, 1, 5), + shift = false, + ) + browser.viewModel.selectNone() + // same due because we don't shift + browser.assertRepositionOutcomeFor( + selectedBrowserPosition = 4, + currentDuePosition = 5, + targetDuePosition = 1, + expectedCardsDuePositions = listOf(1, 2, 3, 1, 1), + shift = false, + ) + } + + @Test + fun `reposition with shift has expected outcome`() = + runTest { + val browser = getBrowserWithNotes(5) + browser.assertRepositionOutcomeFor( + selectedBrowserPosition = 4, + currentDuePosition = 5, + targetDuePosition = 2, + expectedCardsDuePositions = listOf(1, 3, 4, 5, 2), + shift = true, + ) + browser.viewModel.selectNone() + // dues are shifted for new repositioning with shift + browser.assertRepositionOutcomeFor( + selectedBrowserPosition = 3, + currentDuePosition = 5, + targetDuePosition = 1, + expectedCardsDuePositions = listOf(2, 4, 5, 1, 3), + shift = true, + ) + } + + private suspend fun CardBrowser.assertRepositionOutcomeFor( + selectedBrowserPosition: Int, + currentDuePosition: Int, + targetDuePosition: Int, + expectedCardsDuePositions: List, + shift: Boolean, + ) { + selectRowsWithPositions(selectedBrowserPosition) + val card = getCheckedCard(this) + + assertThat( + "Unexpected due for currently selected card", + card.getColumnHeaderText(CardBrowserColumn.DUE), + startsWith("New #\u2068$currentDuePosition\u2069"), + ) + + viewModel.repositionSelectedRows(targetDuePosition, 1, shuffle = false, shift = shift) + // with shift, moving to a position will not result in the same due as the cards with + // that position will be shifted + viewModel.cards.forEachIndexed { index, entry -> + assertThat( + "Unexpected due position at index: $index", + getDueHeaderText(entry.cardOrNoteId), + startsWith("New #\u2068${expectedCardsDuePositions[index]}\u2069"), + ) + } + } + + private fun getDueHeaderText(cardOrNoteId: Long): String? { + // There's currently a minimum of 2 columns + col.backend.setActiveBrowserColumns(listOf(CardBrowserColumn.DUE.ankiColumnKey, "answer")) + return col + .browserRowForId(cardOrNoteId) + .getCells(0) + .text + } + @Test @Config(qualifiers = "en") @SuppressLint("DirectCalendarInstanceUsage") @@ -625,7 +709,7 @@ class CardBrowserTest : RobolectricTest() { equalTo("1"), ) - b.repositionCardsNoValidation(2) + b.repositionCardsNoValidation(2, 1, shuffle = false, shift = false) assertThat( "Position of checked card after reposition", From 0cb4929c9c11baef437f0c29fdf0e037ca7dd9e5 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:24:03 -0300 Subject: [PATCH 049/200] refactor(MappableBinding): move reviewer stuff to a new class --- .../ichi2/anki/cardviewer/ViewerCommand.kt | 21 +--- .../ichi2/anki/reviewer/MappableBinding.kt | 109 +----------------- .../ichi2/anki/reviewer/PeripheralKeymap.kt | 8 +- .../ichi2/anki/reviewer/ReviewerBinding.kt | 90 +++++++++++++++ .../servicelayer/PreferenceUpgradeService.kt | 4 +- .../ichi2/preferences/ControlPreference.kt | 26 ++--- .../ichi2/anki/ReviewerKeyboardInputTest.kt | 6 +- .../com/ichi2/anki/ReviewerNoParamTest.kt | 6 +- .../anki/cardviewer/GestureProcessorTest.kt | 5 +- .../ichi2/anki/reviewer/BindingAndroidTest.kt | 5 +- .../anki/reviewer/MappableBindingTest.kt | 2 +- .../UpgradeGesturesToControlsTest.kt | 8 +- .../com/ichi2/ui/BindingPreferenceTest.kt | 12 +- 13 files changed, 133 insertions(+), 169 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt index 08f9c73ae4d8..e8635969449f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt @@ -28,7 +28,7 @@ import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.MappableBinding.Screen +import com.ichi2.anki.reviewer.ReviewerBinding /** Abstraction: Discuss moving many of these to 'Reviewer' */ enum class ViewerCommand( @@ -137,17 +137,6 @@ enum class ViewerCommand( // If we use the serialised format, then this adds additional coupling to the properties. val defaultValue: List get() { - // all of the default commands are currently for the Reviewer - fun keyCode( - keycode: Int, - side: CardSide, - modifierKeys: ModifierKeys = ModifierKeys.none(), - ) = keyCode(keycode, Screen.Reviewer(side), modifierKeys) - - fun unicode( - c: Char, - side: CardSide, - ) = unicode(c, Screen.Reviewer(side)) return when (this) { FLIP_OR_ANSWER_EASE1 -> listOf( @@ -256,14 +245,14 @@ enum class ViewerCommand( private fun keyCode( keycode: Int, - screen: Screen, + side: CardSide, keys: ModifierKeys = ModifierKeys.none(), - ): MappableBinding = MappableBinding(keyCode(keys, keycode), screen) + ): ReviewerBinding = ReviewerBinding(keyCode(keys, keycode), side) private fun unicode( c: Char, - screen: Screen, - ): MappableBinding = MappableBinding(unicode(c), screen) + side: CardSide, + ): ReviewerBinding = ReviewerBinding(unicode(c), side) fun interface CommandProcessor { /** diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index 25cc52924997..787a7ee37dc5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -19,10 +19,7 @@ package com.ichi2.anki.reviewer import android.content.Context import android.content.SharedPreferences import androidx.annotation.CheckResult -import com.ichi2.anki.R -import com.ichi2.anki.cardviewer.Gesture import com.ichi2.anki.cardviewer.ViewerCommand -import com.ichi2.anki.reviewer.Binding.GestureInput import com.ichi2.anki.reviewer.Binding.KeyBinding import com.ichi2.utils.hash import timber.log.Timber @@ -30,113 +27,23 @@ import java.util.Objects /** * Binding + additional contextual information - * Also defines equality over bindings. - * https://stackoverflow.com/questions/5453226/java-need-a-hash-map-where-one-supplies-a-function-to-do-the-hashing */ -class MappableBinding( +open class MappableBinding( val binding: Binding, - val screen: Screen, ) { val isKey: Boolean get() = binding is KeyBinding - override fun equals(other: Any?): Boolean { - if (this === other) return true - if (other == null) return false + override fun equals(other: Any?): Boolean = this === other || (other is MappableBinding && other.binding == binding) - val otherBinding = (other as MappableBinding).binding - if (binding != otherBinding) { - return false - } - - return screen.screenEquals(other.screen) - } - - override fun hashCode(): Int = Objects.hash(binding, screen.prefix) - - fun toDisplayString(context: Context): String = screen.toDisplayString(context, binding) - - fun toPreferenceString(): String? = screen.toPreferenceString(binding) - - abstract class Screen private constructor( - val prefix: Char, - ) { - abstract fun toPreferenceString(binding: Binding): String? + override fun hashCode(): Int = Objects.hash(binding) - abstract fun toDisplayString( - context: Context, - binding: Binding, - ): String + open fun toDisplayString(context: Context): String = binding.toDisplayString(context) - abstract fun screenEquals(otherScreen: Screen): Boolean - - class Reviewer( - val side: CardSide, - ) : Screen('r') { - override fun toPreferenceString(binding: Binding): String? { - if (!binding.isValid) { - return null - } - val s = StringBuilder() - s.append(prefix) - s.append(binding.toString()) - // don't serialise problematic bindings - if (s.isEmpty()) { - return null - } - when (side) { - CardSide.QUESTION -> s.append('0') - CardSide.ANSWER -> s.append('1') - CardSide.BOTH -> s.append('2') - } - return s.toString() - } - - override fun toDisplayString( - context: Context, - binding: Binding, - ): String { - val formatString = - when (side) { - CardSide.QUESTION -> context.getString(R.string.display_binding_card_side_question) - CardSide.ANSWER -> context.getString(R.string.display_binding_card_side_answer) - CardSide.BOTH -> context.getString(R.string.display_binding_card_side_both) // intentionally no prefix - } - return String.format(formatString, binding.toDisplayString(context)) - } - - override fun screenEquals(otherScreen: Screen): Boolean { - val other: Reviewer = otherScreen as? Reviewer ?: return false - - return side === CardSide.BOTH || - other.side === CardSide.BOTH || - side === other.side - } - - companion object { - fun fromString(s: String): MappableBinding { - val binding = s.substring(0, s.length - 1) - val b = Binding.fromString(binding) - val side = - when (s[s.length - 1]) { - '0' -> CardSide.QUESTION - '1' -> CardSide.ANSWER - else -> CardSide.BOTH - } - return MappableBinding(b, Reviewer(side)) - } - } - } - } + open fun toPreferenceString(): String? = binding.toString() companion object { const val PREF_SEPARATOR = '|' - @CheckResult - fun fromGesture( - gesture: Gesture, - screen: (CardSide) -> Screen, - ): MappableBinding = MappableBinding(GestureInput(gesture), screen(CardSide.BOTH)) - @CheckResult fun List.toPreferenceString(): String = this @@ -151,7 +58,7 @@ class MappableBinding( return try { // the prefix of the serialized when (s[0]) { - 'r' -> Screen.Reviewer.fromString(s.substring(1)) + ReviewerBinding.PREFIX -> ReviewerBinding.fromString(s.substring(1)) else -> null } } catch (e: Exception) { @@ -194,7 +101,3 @@ class MappableBinding( }.toMutableList() } } - -@Suppress("UnusedReceiverParameter") -val ViewerCommand.screenBuilder: (CardSide) -> MappableBinding.Screen - get() = { it -> MappableBinding.Screen.Reviewer(it) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt index 6b0081c26361..5330b06bedf0 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt @@ -24,7 +24,6 @@ import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.reviewer.Binding.Companion.possibleKeyBindings import com.ichi2.anki.reviewer.CardSide.Companion.fromAnswer import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference -import com.ichi2.anki.reviewer.MappableBinding.Screen /** Accepts peripheral input, mapping via various keybinding strategies, * and converting them to commands for the Reviewer. */ @@ -32,7 +31,7 @@ class PeripheralKeymap( reviewerUi: ReviewerUi, commandProcessor: ViewerCommand.CommandProcessor, ) { - private val keyMap: KeyMap = KeyMap(commandProcessor, reviewerUi) { Screen.Reviewer(it) } + private val keyMap: KeyMap = KeyMap(commandProcessor, reviewerUi) private var hasSetup = false fun setup() { @@ -53,7 +52,7 @@ class PeripheralKeymap( ) { val bindings = fromPreference(preferences, command) - .filter { it.screen is Screen.Reviewer } + .filterIsInstance() for (b in bindings) { if (!b.isKey) { continue @@ -81,7 +80,6 @@ class PeripheralKeymap( class KeyMap( private val processor: ViewerCommand.CommandProcessor, private val reviewerUI: ReviewerUi, - private val screenBuilder: (CardSide) -> Screen, ) { val bindingMap = HashMap() @@ -94,7 +92,7 @@ class PeripheralKeymap( val bindings = possibleKeyBindings(event!!) val side = fromAnswer(reviewerUI.isDisplayingAnswer) for (b in bindings) { - val binding = MappableBinding(b, screenBuilder(side)) + val binding = ReviewerBinding(b, side) val command = bindingMap[binding] ?: continue ret = ret or processor.executeCommand(command, fromGesture = null) } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt new file mode 100644 index 000000000000..5add073f4bc3 --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.reviewer + +import android.content.Context +import androidx.annotation.CheckResult +import com.ichi2.anki.R +import com.ichi2.anki.cardviewer.Gesture +import java.util.Objects + +class ReviewerBinding( + binding: Binding, + val side: CardSide, +) : MappableBinding(binding) { + override fun equals(other: Any?): Boolean { + if (!super.equals(other)) return false + if (other !is ReviewerBinding) return false + + return side === CardSide.BOTH || + other.side === CardSide.BOTH || + side === other.side + } + + override fun hashCode(): Int = Objects.hash(binding, PREFIX) + + override fun toPreferenceString(): String? { + if (!binding.isValid) { + return null + } + val s = + StringBuilder() + .append(PREFIX) + .append(binding.toString()) + // don't serialise problematic bindings + if (s.isEmpty()) { + return null + } + when (side) { + CardSide.QUESTION -> s.append(QUESTION_SUFFIX) + CardSide.ANSWER -> s.append(ANSWER_SUFFIX) + CardSide.BOTH -> s.append(QUESTION_AND_ANSWER_SUFFIX) + } + return s.toString() + } + + override fun toDisplayString(context: Context): String { + val formatString = + when (side) { + CardSide.QUESTION -> context.getString(R.string.display_binding_card_side_question) + CardSide.ANSWER -> context.getString(R.string.display_binding_card_side_answer) + CardSide.BOTH -> context.getString(R.string.display_binding_card_side_both) // intentionally no prefix + } + return String.format(formatString, binding.toDisplayString(context)) + } + + companion object { + const val PREFIX = 'r' + private const val QUESTION_SUFFIX = '0' + private const val ANSWER_SUFFIX = '1' + private const val QUESTION_AND_ANSWER_SUFFIX = '2' + + fun fromString(s: String): MappableBinding { + val binding = s.substring(0, s.length - 1) + val b = Binding.fromString(binding) + val side = + when (s[s.length - 1]) { + QUESTION_SUFFIX -> CardSide.QUESTION + ANSWER_SUFFIX -> CardSide.ANSWER + else -> CardSide.BOTH + } + return ReviewerBinding(b, side) + } + + @CheckResult + fun fromGesture(gesture: Gesture): ReviewerBinding = ReviewerBinding(Binding.GestureInput(gesture), CardSide.BOTH) + } +} diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt index f3df9c25cc91..aae5aaa9a14a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt @@ -50,7 +50,7 @@ import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.FullScreenMode import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.screenBuilder +import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.libanki.Consts import com.ichi2.utils.HashUtil.hashSetInit import timber.log.Timber @@ -399,7 +399,7 @@ object PreferenceUpgradeService { Timber.i("Moving preference from '%s' to '%s'", oldGesturePreferenceKey, command.preferenceKey) // add to the binding_COMMANDNAME preference - val mappableBinding = MappableBinding(binding, command.screenBuilder(CardSide.BOTH)) + val mappableBinding = ReviewerBinding(binding, CardSide.BOTH) command.addBindingAtEnd(preferences, mappableBinding) } } diff --git a/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt b/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt index b1dc32c9263b..04e27d35e7b8 100644 --- a/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt +++ b/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt @@ -33,10 +33,8 @@ import com.ichi2.anki.dialogs.WarningDisplay import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.MappableBinding -import com.ichi2.anki.reviewer.MappableBinding.Companion.fromGesture import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.MappableBinding.Screen -import com.ichi2.anki.reviewer.screenBuilder +import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.anki.showThemedToast import com.ichi2.ui.AxisPicker import com.ichi2.ui.KeyPicker @@ -75,9 +73,6 @@ class ControlPreference : ListPreference { @Suppress("unused") constructor(context: Context) : super(context) - val screenBuilder: (CardSide) -> Screen - get() = ViewerCommand.fromPreferenceKey(key).screenBuilder - private fun refreshEntries() { val entryTitles: MutableList = ArrayList() val entryIndices: MutableList = ArrayList() @@ -125,11 +120,7 @@ class ControlPreference : ListPreference { positiveButton(R.string.dialog_ok) { val gesture = gesturePicker.getGesture() ?: return@positiveButton - val mappableBinding = - fromGesture( - gesture, - screenBuilder, - ) + val mappableBinding = ReviewerBinding.fromGesture(gesture) if (bindingIsUsedOnAnotherCommand(mappableBinding)) { showDialogToReplaceBinding(mappableBinding, context.getString(R.string.binding_replace_gesture), it) } else { @@ -141,7 +132,7 @@ class ControlPreference : ListPreference { customView(view = gesturePicker) gesturePicker.onGestureChanged { gesture -> - warnIfBindingIsUsed(fromGesture(gesture, screenBuilder), gesturePicker) + warnIfBindingIsUsed(ReviewerBinding.fromGesture(gesture), gesturePicker) } } } @@ -155,10 +146,7 @@ class ControlPreference : ListPreference { // When the user presses a key keyPicker.setBindingChangedListener { binding -> val mappableBinding = - MappableBinding( - binding, - screenBuilder(CardSide.BOTH), - ) + ReviewerBinding(binding, CardSide.BOTH) warnIfBindingIsUsed(mappableBinding, keyPicker) } @@ -166,7 +154,7 @@ class ControlPreference : ListPreference { val binding = keyPicker.getBinding() ?: return@positiveButton // Use CardSide.BOTH as placeholder just to check if binding exists CardSideSelectionDialog.displayInstance(context) { side -> - val mappableBinding = MappableBinding(binding, screenBuilder(side)) + val mappableBinding = ReviewerBinding(binding, side) if (bindingIsUsedOnAnotherCommand(mappableBinding)) { showDialogToReplaceBinding(mappableBinding, context.getString(R.string.binding_replace_key), it) } else { @@ -204,10 +192,10 @@ class ControlPreference : ListPreference { .create() axisPicker.setBindingChangedListener { binding -> - showToastIfBindingIsUsed(MappableBinding(binding, screenBuilder(CardSide.BOTH))) + showToastIfBindingIsUsed(ReviewerBinding(binding, CardSide.BOTH)) // Use CardSide.BOTH as placeholder just to check if binding exists CardSideSelectionDialog.displayInstance(context) { side -> - val mappableBinding = MappableBinding(binding, screenBuilder(side)) + val mappableBinding = ReviewerBinding(binding, side) if (bindingIsUsedOnAnotherCommand(mappableBinding)) { showDialogToReplaceBinding(mappableBinding, context.getString(R.string.binding_replace_key), dialog) } else { diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt index f02f6db6e00f..efcfab0e6516 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt @@ -44,7 +44,7 @@ import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.Binding.ModifierKeys import com.ichi2.anki.reviewer.CardSide -import com.ichi2.anki.reviewer.MappableBinding +import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.libanki.Card import kotlinx.coroutines.Job import org.hamcrest.MatcherAssert.assertThat @@ -182,7 +182,7 @@ class ReviewerKeyboardInputTest : RobolectricTest() { fun pressingZShouldUndoIfAvailable() { ViewerCommand.UNDO.addBinding( sharedPrefs(), - MappableBinding(keyCode(KEYCODE_Z, ModifierKeys.none()), MappableBinding.Screen.Reviewer(CardSide.BOTH)), + ReviewerBinding(keyCode(KEYCODE_Z, ModifierKeys.none()), CardSide.BOTH), ) val underTest = KeyboardInputTestReviewer.displayingAnswer().withUndoAvailable(true) underTest.handleAndroidKeyPress(KEYCODE_Z) @@ -193,7 +193,7 @@ class ReviewerKeyboardInputTest : RobolectricTest() { fun pressingZShouldNotUndoIfNotAvailable() { ViewerCommand.UNDO.addBinding( sharedPrefs(), - MappableBinding(keyCode(KEYCODE_Z, ModifierKeys.none()), MappableBinding.Screen.Reviewer(CardSide.BOTH)), + ReviewerBinding(keyCode(KEYCODE_Z, ModifierKeys.none()), CardSide.BOTH), ) val underTest = KeyboardInputTestReviewer.displayingAnswer().withUndoAvailable(false) underTest.handleUnicodeKeyPress('z') diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt index 3aa9480179c3..18bfe2817b04 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt @@ -33,7 +33,7 @@ import com.ichi2.anki.reviewer.FullScreenMode import com.ichi2.anki.reviewer.FullScreenMode.Companion.setPreference import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.MappableBinding.Screen +import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.libanki.Consts import com.ichi2.libanki.DeckId import com.ichi2.testutils.common.Flaky @@ -316,9 +316,7 @@ class ReviewerNoParamTest : RobolectricTest() { val prefs = targetContext.sharedPrefs() ViewerCommand.FLIP_OR_ANSWER_EASE1.addBinding( prefs, - MappableBinding.fromGesture(gesture) { - Screen.Reviewer(it) - }, + ReviewerBinding.fromGesture(gesture), ) } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/cardviewer/GestureProcessorTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/cardviewer/GestureProcessorTest.kt index 721e9863ffe3..a82311dab705 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/cardviewer/GestureProcessorTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/cardviewer/GestureProcessorTest.kt @@ -18,9 +18,8 @@ package com.ichi2.anki.cardviewer import android.content.SharedPreferences import android.view.ViewConfiguration import com.ichi2.anki.AnkiDroidApp -import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.screenBuilder +import com.ichi2.anki.reviewer.ReviewerBinding import io.mockk.every import io.mockk.mockk import io.mockk.mockkStatic @@ -53,7 +52,7 @@ class GestureProcessorTest : ViewerCommand.CommandProcessor { fun integrationTest() { val prefs = mockk(relaxed = true) every { prefs.getString(ViewerCommand.SHOW_ANSWER.preferenceKey, null) } returns - listOf(MappableBinding.fromGesture(Gesture.TAP_CENTER, ViewerCommand.SHOW_ANSWER.screenBuilder)) + listOf(ReviewerBinding.fromGesture(Gesture.TAP_CENTER)) .toPreferenceString() every { prefs.getBoolean("gestureCornerTouch", any()) } returns true sut.init(prefs) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingAndroidTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingAndroidTest.kt index 857c5d8ed7bd..97a4f7ae2f2a 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingAndroidTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/BindingAndroidTest.kt @@ -23,7 +23,6 @@ import com.ichi2.anki.cardviewer.Gesture import com.ichi2.anki.reviewer.Binding.ModifierKeys.Companion.alt import com.ichi2.anki.reviewer.Binding.ModifierKeys.Companion.ctrl import com.ichi2.anki.reviewer.Binding.ModifierKeys.Companion.shift -import com.ichi2.anki.reviewer.MappableBinding.Screen.Reviewer import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith @@ -83,8 +82,8 @@ class BindingAndroidTest : RobolectricTest() { fst: Binding, snd: Binding, ) { - val first = MappableBinding(fst, Reviewer(CardSide.BOTH)) - val second = MappableBinding(snd, Reviewer(CardSide.BOTH)) + val first = ReviewerBinding(fst, CardSide.BOTH) + val second = ReviewerBinding(snd, CardSide.BOTH) assertEquals(first, second) } } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/MappableBindingTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/MappableBindingTest.kt index 9a1f0235919f..6e118328bec3 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/MappableBindingTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/reviewer/MappableBindingTest.kt @@ -54,5 +54,5 @@ class MappableBindingTest { @Suppress("SameParameterValue") private fun unicodeCharacter(char: Char) = fromBinding(BindingTest.unicodeCharacter(char)) - private fun fromBinding(binding: Binding): Any = MappableBinding(binding, MappableBinding.Screen.Reviewer(CardSide.BOTH)) + private fun fromBinding(binding: Binding): Any = ReviewerBinding(binding, CardSide.BOTH) } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt index ad5e6a628e6d..c0143e793589 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt @@ -22,7 +22,7 @@ import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.MappableBinding -import com.ichi2.anki.reviewer.MappableBinding.Screen.Reviewer +import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.anki.servicelayer.PreferenceUpgradeService.PreferenceUpgrade.Companion.UPGRADE_VERSION_PREF_KEY import com.ichi2.anki.servicelayer.PreferenceUpgradeService.PreferenceUpgrade.UpgradeGesturesToControls import org.hamcrest.CoreMatchers.equalTo @@ -88,7 +88,7 @@ class UpgradeGesturesToControlsTest( val binding = fromPreference.first() assertThat("should be a key binding", binding.isKey, equalTo(true)) - assertThat("binding should match", binding, equalTo(MappableBinding(keyCode(testData.keyCode), Reviewer(CardSide.BOTH)))) + assertThat("binding should match", binding, equalTo(ReviewerBinding(keyCode(testData.keyCode), CardSide.BOTH))) } @Test @@ -203,8 +203,8 @@ class UpgradeGesturesToControlsTest( val oldCommandPreferenceStrings: HashMap = hashMapOf(*UpgradeGesturesToControls().oldCommandValues.map { Pair(it.value, it.key.toString()) }.toTypedArray()) - private val volume_up_binding = MappableBinding(keyCode(KEYCODE_VOLUME_UP), Reviewer(CardSide.BOTH)) - private val volume_down_binding = MappableBinding(keyCode(KEYCODE_VOLUME_DOWN), Reviewer(CardSide.BOTH)) + private val volume_up_binding = ReviewerBinding(keyCode(KEYCODE_VOLUME_UP), CardSide.BOTH) + private val volume_down_binding = ReviewerBinding(keyCode(KEYCODE_VOLUME_DOWN), CardSide.BOTH) @JvmStatic @ParameterizedRobolectricTestRunner.Parameters(name = "{index}: isValid({0})={1}") diff --git a/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt b/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt index e54da03ba4bf..a8d1d5d35943 100644 --- a/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt @@ -22,7 +22,7 @@ import com.ichi2.anki.reviewer.Binding import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.MappableBinding.Screen.Reviewer +import com.ichi2.anki.reviewer.ReviewerBinding import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith @@ -49,11 +49,11 @@ class BindingPreferenceTest { private fun getSampleBindings(): List = listOf( - MappableBinding(Binding.unicode('a'), Reviewer(CardSide.BOTH)), - MappableBinding(Binding.unicode(' '), Reviewer(CardSide.ANSWER)), + ReviewerBinding(Binding.unicode('a'), CardSide.BOTH), + ReviewerBinding(Binding.unicode(' '), CardSide.ANSWER), // this one is important: ensure that "|" as a unicode char can't be used - MappableBinding(Binding.unicode(Binding.FORBIDDEN_UNICODE_CHAR), Reviewer(CardSide.QUESTION)), - MappableBinding(Binding.gesture(Gesture.LONG_TAP), Reviewer(CardSide.BOTH)), - MappableBinding(Binding.keyCode(12), Reviewer(CardSide.BOTH)), + ReviewerBinding(Binding.unicode(Binding.FORBIDDEN_UNICODE_CHAR), CardSide.QUESTION), + ReviewerBinding(Binding.gesture(Gesture.LONG_TAP), CardSide.BOTH), + ReviewerBinding(Binding.keyCode(12), CardSide.BOTH), ) } From cb3b30a56c9461b30ead6232dc52ab2d7255b3e3 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 17:29:58 -0300 Subject: [PATCH 050/200] refactor: extract prefs dialog key to constant --- .../main/java/com/ichi2/anki/preferences/SettingsFragment.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt index 14e0ff9652ba..3d9a117f99df 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt @@ -93,7 +93,7 @@ abstract class SettingsFragment : (preference as? DialogFragmentProvider)?.makeDialogFragment() ?: return super.onDisplayPreferenceDialog(preference) Timber.d("displaying custom preference: ${dialogFragment::class.simpleName}") - dialogFragment.arguments = bundleOf("key" to preference.key) + dialogFragment.arguments = bundleOf(PREF_DIALOG_KEY to preference.key) dialogFragment.setTargetFragment(this, 0) dialogFragment.show(parentFragmentManager, "androidx.preference.PreferenceFragment.DIALOG") } @@ -128,6 +128,8 @@ abstract class SettingsFragment : } companion object { + const val PREF_DIALOG_KEY = "key" + /** * Converts a preference value to a numeric number that * can be reported to analytics, since analytics events only accept From d0b71db60ab3090431bf72c2c7897629dfea453d Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:13:26 -0300 Subject: [PATCH 051/200] refactor: allPreferences util --- .../preferences/ControlsSettingsFragment.kt | 3 ++- .../CustomButtonsSettingsFragment.kt | 2 +- .../ichi2/anki/preferences/PreferenceUtils.kt | 17 +++++++++++++++++ .../ichi2/anki/preferences/SettingsFragment.kt | 16 ---------------- 4 files changed, 20 insertions(+), 18 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt index 7df837ebf0f0..e1917c16f950 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt @@ -37,7 +37,8 @@ class ControlsSettingsFragment : SettingsFragment() { val commands = ViewerCommand.entries.associateBy { it.preferenceKey } // set defaultValue in the prefs creation. // if a preference is empty, it has a value like "1/" - allPreferences() + preferenceScreen + .allPreferences() .filterIsInstance() .filter { pref -> pref.value == null } .forEach { pref -> pref.value = commands[pref.key]?.defaultValue?.toPreferenceString() } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/CustomButtonsSettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/CustomButtonsSettingsFragment.kt index 9e7ff851207c..c42d7d54f233 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/CustomButtonsSettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/CustomButtonsSettingsFragment.kt @@ -57,5 +57,5 @@ class CustomButtonsSettingsFragment : SettingsFragment() { } @VisibleForTesting(otherwise = VisibleForTesting.NONE) - fun allKeys(): HashSet = allPreferences().mapTo(hashSetOf()) { it.key } + fun allKeys(): HashSet = preferenceScreen.allPreferences().mapTo(hashSetOf()) { it.key } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/PreferenceUtils.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/PreferenceUtils.kt index 72f095bc669b..5bfd6dd6d185 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/PreferenceUtils.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/PreferenceUtils.kt @@ -20,7 +20,9 @@ import android.content.SharedPreferences import androidx.annotation.StringRes import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat +import androidx.preference.PreferenceGroup import androidx.preference.PreferenceManager +import androidx.preference.PreferenceScreen fun SharedPreferences.get(key: String): Any? = all[key] @@ -61,3 +63,18 @@ inline fun PreferenceFragmentCompat.requirePreference( /** shorthand method to get the default [SharedPreferences] instance */ fun Context.sharedPrefs(): SharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) + +fun PreferenceScreen.allPreferences(): List { + val allPreferences = mutableListOf() + for (i in 0 until preferenceCount) { + val pref = getPreference(i) + if (pref is PreferenceGroup) { + for (j in 0 until pref.preferenceCount) { + allPreferences.add(pref.getPreference(j)) + } + } else { + allPreferences.add(pref) + } + } + return allPreferences +} diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt index 3d9a117f99df..d3f6baf203cd 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/SettingsFragment.kt @@ -21,7 +21,6 @@ import androidx.annotation.VisibleForTesting import androidx.annotation.XmlRes import androidx.core.os.bundleOf import androidx.preference.Preference -import androidx.preference.PreferenceCategory import androidx.preference.PreferenceFragmentCompat import androidx.preference.PreferenceManager import androidx.preference.PreferenceManager.OnPreferenceTreeClickListener @@ -112,21 +111,6 @@ abstract class SettingsFragment : .unregisterOnSharedPreferenceChangeListener(this) } - protected fun allPreferences(): List { - val allPreferences = mutableListOf() - for (i in 0 until preferenceScreen.preferenceCount) { - val pref = preferenceScreen.getPreference(i) - if (pref is PreferenceCategory) { - for (j in 0 until pref.preferenceCount) { - allPreferences.add(pref.getPreference(j)) - } - } else { - allPreferences.add(pref) - } - } - return allPreferences - } - companion object { const val PREF_DIALOG_KEY = "key" From f0f77a87d5838d7b15949119a72dca131aa9d55f Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 19:17:58 -0300 Subject: [PATCH 052/200] feat: improve ControlPreference style It is mostly a refactor because it generifies ControlPreference so it can be used in simple screens like the Previewer but it also adds some icons to the control preference dialog --- .../ichi2/anki/cardviewer/ViewerCommand.kt | 105 +++-- .../preferences/ControlsSettingsFragment.kt | 10 +- .../ichi2/anki/reviewer/MappableBinding.kt | 2 +- .../ichi2/preferences/ControlPreference.kt | 386 +++++++++--------- .../preferences/ReviewerControlPreference.kt | 75 ++++ .../main/res/drawable/ic_remove_outline.xml | 5 + .../src/main/res/drawable/ic_videogame.xml | 5 + .../main/res/layout/control_preference.xml | 64 +++ .../layout/control_preference_list_item.xml | 14 + .../src/main/res/values/10-preferences.xml | 2 - .../src/main/res/xml/preferences_controls.xml | 98 ++--- 11 files changed, 457 insertions(+), 309 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt create mode 100644 AnkiDroid/src/main/res/drawable/ic_remove_outline.xml create mode 100644 AnkiDroid/src/main/res/drawable/ic_videogame.xml create mode 100644 AnkiDroid/src/main/res/layout/control_preference.xml create mode 100644 AnkiDroid/src/main/res/layout/control_preference_list_item.xml diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt index e8635969449f..981949961f96 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt @@ -18,7 +18,6 @@ package com.ichi2.anki.cardviewer import android.content.SharedPreferences import android.view.KeyEvent import androidx.core.content.edit -import com.ichi2.anki.R import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.Binding.Companion.unicode import com.ichi2.anki.reviewer.Binding.ModifierKeys @@ -31,60 +30,56 @@ import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding /** Abstraction: Discuss moving many of these to 'Reviewer' */ -enum class ViewerCommand( - val resourceId: Int, -) { - SHOW_ANSWER(R.string.show_answer), - FLIP_OR_ANSWER_EASE1(R.string.answer_again), - FLIP_OR_ANSWER_EASE2(R.string.answer_hard), - FLIP_OR_ANSWER_EASE3(R.string.answer_good), - FLIP_OR_ANSWER_EASE4(R.string.answer_easy), - UNDO(R.string.undo), - REDO(R.string.redo), - EDIT(R.string.cardeditor_title_edit_card), - MARK(R.string.menu_mark_note), - BURY_CARD(R.string.menu_bury_card), - SUSPEND_CARD(R.string.menu_suspend_card), - DELETE(R.string.menu_delete_note), - PLAY_MEDIA(R.string.gesture_play), - EXIT(R.string.gesture_abort_learning), - BURY_NOTE(R.string.menu_bury_note), - SUSPEND_NOTE(R.string.menu_suspend_note), - TOGGLE_FLAG_RED(R.string.gesture_flag_red), - TOGGLE_FLAG_ORANGE(R.string.gesture_flag_orange), - TOGGLE_FLAG_GREEN(R.string.gesture_flag_green), - TOGGLE_FLAG_BLUE(R.string.gesture_flag_blue), - TOGGLE_FLAG_PINK(R.string.gesture_flag_pink), - TOGGLE_FLAG_TURQUOISE(R.string.gesture_flag_turquoise), - TOGGLE_FLAG_PURPLE(R.string.gesture_flag_purple), - UNSET_FLAG(R.string.gesture_flag_remove), - PAGE_UP(R.string.gesture_page_up), - PAGE_DOWN(R.string.gesture_page_down), - TAG(R.string.add_tag), - CARD_INFO(R.string.card_info_title), - ABORT_AND_SYNC(R.string.gesture_abort_sync), - RECORD_VOICE(R.string.record_voice), - SAVE_VOICE(R.string.save_voice), - REPLAY_VOICE(R.string.replay_voice), - TOGGLE_WHITEBOARD(R.string.gesture_toggle_whiteboard), - CLEAR_WHITEBOARD(R.string.clear_whiteboard), - CHANGE_WHITEBOARD_PEN_COLOR(R.string.title_whiteboard_editor), - SHOW_HINT(R.string.gesture_show_hint), - SHOW_ALL_HINTS(R.string.gesture_show_all_hints), - ADD_NOTE(R.string.menu_add_note), - - // TODO: CollectionManager.TR.actionsSetDueDate() - RESCHEDULE_NOTE(R.string.card_editor_reschedule_card), - TOGGLE_AUTO_ADVANCE(R.string.toggle_auto_advance), - USER_ACTION_1(R.string.user_action_1), - USER_ACTION_2(R.string.user_action_2), - USER_ACTION_3(R.string.user_action_3), - USER_ACTION_4(R.string.user_action_4), - USER_ACTION_5(R.string.user_action_5), - USER_ACTION_6(R.string.user_action_6), - USER_ACTION_7(R.string.user_action_7), - USER_ACTION_8(R.string.user_action_8), - USER_ACTION_9(R.string.user_action_9), +enum class ViewerCommand { + SHOW_ANSWER, + FLIP_OR_ANSWER_EASE1, + FLIP_OR_ANSWER_EASE2, + FLIP_OR_ANSWER_EASE3, + FLIP_OR_ANSWER_EASE4, + UNDO, + REDO, + EDIT, + MARK, + BURY_CARD, + SUSPEND_CARD, + DELETE, + PLAY_MEDIA, + EXIT, + BURY_NOTE, + SUSPEND_NOTE, + TOGGLE_FLAG_RED, + TOGGLE_FLAG_ORANGE, + TOGGLE_FLAG_GREEN, + TOGGLE_FLAG_BLUE, + TOGGLE_FLAG_PINK, + TOGGLE_FLAG_TURQUOISE, + TOGGLE_FLAG_PURPLE, + UNSET_FLAG, + PAGE_UP, + PAGE_DOWN, + TAG, + CARD_INFO, + ABORT_AND_SYNC, + RECORD_VOICE, + SAVE_VOICE, + REPLAY_VOICE, + TOGGLE_WHITEBOARD, + CLEAR_WHITEBOARD, + CHANGE_WHITEBOARD_PEN_COLOR, + SHOW_HINT, + SHOW_ALL_HINTS, + ADD_NOTE, + RESCHEDULE_NOTE, + TOGGLE_AUTO_ADVANCE, + 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, ; companion object { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt index e1917c16f950..0af409ed4e6f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/ControlsSettingsFragment.kt @@ -25,6 +25,7 @@ import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.ui.internationalization.toSentenceCase import com.ichi2.annotations.NeedsTest import com.ichi2.preferences.ControlPreference +import com.ichi2.preferences.ReviewerControlPreference class ControlsSettingsFragment : SettingsFragment() { override val preferenceResource: Int @@ -39,9 +40,14 @@ class ControlsSettingsFragment : SettingsFragment() { // if a preference is empty, it has a value like "1/" preferenceScreen .allPreferences() - .filterIsInstance() + .filterIsInstance() .filter { pref -> pref.value == null } - .forEach { pref -> pref.value = commands[pref.key]?.defaultValue?.toPreferenceString() } + .forEach { pref -> + commands[pref.key] + ?.defaultValue + ?.toPreferenceString() + ?.let { pref.value = it } + } setDynamicTitle() diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index 787a7ee37dc5..818b8c27e8f3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -51,7 +51,7 @@ open class MappableBinding( .joinToString(prefix = "1/", separator = PREF_SEPARATOR.toString()) @CheckResult - fun fromString(s: String): MappableBinding? { + private fun fromString(s: String): MappableBinding? { if (s.isEmpty()) { return null } diff --git a/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt b/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt index 04e27d35e7b8..b3c39f9ebf37 100644 --- a/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt +++ b/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt @@ -1,5 +1,6 @@ /* * Copyright (c) 2021 David Allison + * Copyright (c) 2025 Brayan Oliveira * * 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 @@ -13,49 +14,49 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ - package com.ichi2.preferences -import android.annotation.SuppressLint +import android.app.Dialog import android.content.Context -import android.content.DialogInterface +import android.os.Bundle +import android.text.TextUtils import android.util.AttributeSet +import android.view.View +import android.widget.ArrayAdapter +import android.widget.ListView import androidx.appcompat.app.AlertDialog -import androidx.preference.ListPreference +import androidx.core.view.isVisible +import androidx.fragment.app.DialogFragment +import androidx.preference.DialogPreference +import androidx.preference.PreferenceFragmentCompat import com.ichi2.anki.R -import com.ichi2.anki.cardviewer.GestureProcessor -import com.ichi2.anki.cardviewer.ViewerCommand -import com.ichi2.anki.dialogs.CardSideSelectionDialog import com.ichi2.anki.dialogs.GestureSelectionDialogUtils import com.ichi2.anki.dialogs.GestureSelectionDialogUtils.onGestureChanged import com.ichi2.anki.dialogs.KeySelectionDialogUtils import com.ichi2.anki.dialogs.WarningDisplay -import com.ichi2.anki.preferences.sharedPrefs -import com.ichi2.anki.reviewer.CardSide +import com.ichi2.anki.preferences.SettingsFragment +import com.ichi2.anki.preferences.allPreferences +import com.ichi2.anki.preferences.requirePreference +import com.ichi2.anki.reviewer.Binding import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString -import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.anki.showThemedToast import com.ichi2.ui.AxisPicker import com.ichi2.ui.KeyPicker +import com.ichi2.utils.create import com.ichi2.utils.customView -import com.ichi2.utils.message import com.ichi2.utils.negativeButton import com.ichi2.utils.positiveButton import com.ichi2.utils.show -import com.ichi2.utils.title /** * A preference which allows mapping of inputs to actions (example: keys -> commands) * - * This is implemented as a List, the elements allow the user to either add, or - * remove previously mapped keys - * - * Future: - * * Allow mapping gestures here - * * Allow maps other than the reviewer + * The user is allowed to either add or remove previously mapped keys */ -class ControlPreference : ListPreference { +open class ControlPreference : + DialogPreference, + DialogFragmentProvider { @Suppress("unused") constructor( context: Context, @@ -73,222 +74,207 @@ class ControlPreference : ListPreference { @Suppress("unused") constructor(context: Context) : super(context) - private fun refreshEntries() { - val entryTitles: MutableList = ArrayList() - val entryIndices: MutableList = ArrayList() - // negative indices are "add" - entryTitles.add(context.getString(R.string.binding_add_key)) - entryIndices.add(ADD_KEY_INDEX) - // Add a joystick/motion controller - entryTitles.add(context.getString(R.string.binding_add_axis)) - entryIndices.add(ADD_AXIS_INDEX) - // Put "Add gesture" option if gestures are enabled - if (context.sharedPrefs().getBoolean(GestureProcessor.PREF_KEY, false)) { - entryTitles.add(context.getString(R.string.binding_add_gesture)) - entryIndices.add(ADD_GESTURE_INDEX) - } - // 0 and above are "delete" actions for already mapped preferences - for ((i, binding) in MappableBinding.fromPreferenceString(value).withIndex()) { - entryTitles.add(context.getString(R.string.binding_remove_binding, binding.toDisplayString(context))) - entryIndices.add(i) + open fun getMappableBindings(): List = MappableBinding.fromPreferenceString(value) + + protected open fun onKeySelected(binding: Binding): Unit = addBinding(binding) + + protected open fun onAxisSelected(binding: Binding): Unit = addBinding(binding) + + open val areGesturesEnabled: Boolean = false + + protected open fun onGestureSelected(binding: Binding) = Unit + + /** @return whether the binding is used in another action */ + open fun warnIfUsed( + binding: Binding, + warningDisplay: WarningDisplay?, + ): Boolean { + val bindingPreference = getPreferenceAssignedTo(binding) + if (bindingPreference == null || bindingPreference == this) return false + val actionTitle = bindingPreference.title ?: "" + val warning = context.getString(R.string.bindings_already_bound, actionTitle) + if (warningDisplay != null) { + warningDisplay.setWarning(warning) + } else { + showThemedToast(context, warning, true) } - entries = entryTitles.toTypedArray() - entryValues = entryIndices.map { it.toString() }.toTypedArray() + return true } - override fun onClick() { - refreshEntries() - super.onClick() - } + var value: String? + get() = getPersistedString(null) + set(value) { + if (!TextUtils.equals(getPersistedString(null), value)) { + persistString(value) + notifyChanged() + } + } - /** The summary that appears on the preference */ - override fun getSummary(): CharSequence = - MappableBinding - .fromPreferenceString(value) - .joinToString(", ") { it.toDisplayString(context) } - - /** Called when an element is selected in the ListView */ - @SuppressLint("CheckResult") - override fun callChangeListener(newValue: Any?): Boolean { - when (val index: Int = (newValue as String).toInt()) { - ADD_GESTURE_INDEX -> { - val actionName = title - AlertDialog.Builder(context).show { - title(text = actionName.toString()) - - val gesturePicker = GestureSelectionDialogUtils.getGesturePicker(context) - - positiveButton(R.string.dialog_ok) { - val gesture = gesturePicker.getGesture() ?: return@positiveButton - val mappableBinding = ReviewerBinding.fromGesture(gesture) - if (bindingIsUsedOnAnotherCommand(mappableBinding)) { - showDialogToReplaceBinding(mappableBinding, context.getString(R.string.binding_replace_gesture), it) - } else { - addBinding(mappableBinding) - it.dismiss() - } - } - negativeButton(R.string.dialog_cancel) { it.dismiss() } - customView(view = gesturePicker) - - gesturePicker.onGestureChanged { gesture -> - warnIfBindingIsUsed(ReviewerBinding.fromGesture(gesture), gesturePicker) - } - } + override fun getSummary(): CharSequence = getMappableBindings().joinToString(", ") { it.toDisplayString(context) } + + override fun makeDialogFragment(): DialogFragment = ControlPreferenceDialogFragment() + + fun showGesturePickerDialog() { + AlertDialog.Builder(context).show { + setTitle(title) + setIcon(icon) + val gesturePicker = GestureSelectionDialogUtils.getGesturePicker(context) + positiveButton(R.string.dialog_ok) { + val gesture = gesturePicker.getGesture() ?: return@positiveButton + val binding = Binding.GestureInput(gesture) + onGestureSelected(binding) + it.dismiss() } - ADD_KEY_INDEX -> { - val actionName = title - AlertDialog.Builder(context).show { - val keyPicker: KeyPicker = KeyPicker.inflate(context) - customView(view = keyPicker.rootLayout) - title(text = actionName.toString()) - - // When the user presses a key - keyPicker.setBindingChangedListener { binding -> - val mappableBinding = - ReviewerBinding(binding, CardSide.BOTH) - warnIfBindingIsUsed(mappableBinding, keyPicker) - } - - positiveButton(R.string.dialog_ok) { - val binding = keyPicker.getBinding() ?: return@positiveButton - // Use CardSide.BOTH as placeholder just to check if binding exists - CardSideSelectionDialog.displayInstance(context) { side -> - val mappableBinding = ReviewerBinding(binding, side) - if (bindingIsUsedOnAnotherCommand(mappableBinding)) { - showDialogToReplaceBinding(mappableBinding, context.getString(R.string.binding_replace_key), it) - } else { - addBinding(mappableBinding) - it.dismiss() - } - } - } - negativeButton(R.string.dialog_cancel) { it.dismiss() } - - keyPicker.setKeycodeValidation(KeySelectionDialogUtils.disallowModifierKeyCodes()) - } + negativeButton(R.string.dialog_cancel) { it.dismiss() } + customView(view = gesturePicker) + gesturePicker.onGestureChanged { gesture -> + warnIfUsedOrClearWarning(Binding.GestureInput(gesture), gesturePicker) } - ADD_AXIS_INDEX -> displayAddAxisDialog() - else -> { - val bindings: MutableList = MappableBinding.fromPreferenceString(value) - bindings.removeAt(index) - value = bindings.toPreferenceString() + } + } + + fun showKeyPickerDialog() { + AlertDialog.Builder(context).show { + val keyPicker: KeyPicker = KeyPicker.inflate(context) + customView(view = keyPicker.rootLayout) + setTitle(title) + setIcon(icon) + + // When the user presses a key + keyPicker.setBindingChangedListener { binding -> + warnIfUsedOrClearWarning(binding, keyPicker) } + positiveButton(R.string.dialog_ok) { + val binding = keyPicker.getBinding() ?: return@positiveButton + onKeySelected(binding) + it.dismiss() + } + negativeButton(R.string.dialog_cancel) { it.dismiss() } + keyPicker.setKeycodeValidation(KeySelectionDialogUtils.disallowModifierKeyCodes()) } - // don't persist the value - return false } - @SuppressLint("CheckResult") // noAutoDismiss - private fun displayAddAxisDialog() { - val actionName = title - val axisPicker: AxisPicker = AxisPicker.inflate(context) - val dialog = - AlertDialog - .Builder(context) - .customView(view = axisPicker.rootLayout) - .title(text = actionName.toString()) - .negativeButton(R.string.dialog_cancel) { it.dismiss() } - .create() - - axisPicker.setBindingChangedListener { binding -> - showToastIfBindingIsUsed(ReviewerBinding(binding, CardSide.BOTH)) - // Use CardSide.BOTH as placeholder just to check if binding exists - CardSideSelectionDialog.displayInstance(context) { side -> - val mappableBinding = ReviewerBinding(binding, side) - if (bindingIsUsedOnAnotherCommand(mappableBinding)) { - showDialogToReplaceBinding(mappableBinding, context.getString(R.string.binding_replace_key), dialog) - } else { - addBinding(mappableBinding) - dialog.dismiss() + fun showAddAxisDialog() { + val axisPicker = + AxisPicker.inflate(context).apply { + setBindingChangedListener { binding -> + warnIfUsedOrClearWarning(binding, warningDisplay = null) + onAxisSelected(binding) } } + AlertDialog.Builder(context).show { + customView(view = axisPicker.rootLayout) + setTitle(title) + setIcon(icon) + negativeButton(R.string.dialog_cancel) { it.dismiss() } } - - dialog.show() } - /** - * Return if another command uses - */ - private fun bindingIsUsedOnAnotherCommand(binding: MappableBinding): Boolean = getCommandWithBindingExceptThis(binding) != null - - private fun warnIfBindingIsUsed( - binding: MappableBinding, - warningDisplay: WarningDisplay, + private fun warnIfUsedOrClearWarning( + binding: Binding, + warningDisplay: WarningDisplay?, ) { - getCommandWithBindingExceptThis(binding)?.let { - val name = context.getString(it.resourceId) - val warning = context.getString(R.string.bindings_already_bound, name) - warningDisplay.setWarning(warning) - } ?: warningDisplay.clearWarning() + if (!warnIfUsed(binding, warningDisplay)) { + warningDisplay?.clearWarning() + } } - /** Displays a warning to the user if the provided binding couldn't be used */ - private fun showToastIfBindingIsUsed(binding: MappableBinding) { - val bindingCommand = - getCommandWithBindingExceptThis(binding) - ?: return - - val commandName = context.getString(bindingCommand.resourceId) - val text = context.getString(R.string.bindings_already_bound, commandName) - showThemedToast(context, text, true) + fun removeMappableBinding(binding: MappableBinding) { + val bindings = getMappableBindings().toMutableList() + bindings.remove(binding) + value = bindings.toPreferenceString() } - /** @return command where the binding is mapped excluding the current command */ - private fun getCommandWithBindingExceptThis(binding: MappableBinding): ViewerCommand? = - MappableBinding - .allMappings(context.sharedPrefs()) - // filter to the commands which have a binding matching this one except this - .firstOrNull { x -> x.second.any { cmdBinding -> cmdBinding == binding } && x.first.preferenceKey != key } - ?.first - - private fun addBinding(binding: MappableBinding) { - val bindings = MappableBinding.fromPreferenceString(value) - // by removing the binding, we ensure it's now at the start of the list - bindings.remove(binding) - bindings.add(0, binding) + private fun addBinding(binding: Binding) { + val newBinding = MappableBinding(binding) + getPreferenceAssignedTo(binding)?.removeMappableBinding(newBinding) + val bindings = getMappableBindings().toMutableList() + bindings.add(newBinding) value = bindings.toPreferenceString() } /** - * Remove binding from all control preferences other than this one + * Checks if any other [ControlPreference] in the `preferenceScreen` + * has the given [binding] assigned to. */ - private fun clearBinding(binding: MappableBinding) { - for (command in ViewerCommand.entries) { - val commandPreference = - preferenceManager.findPreference(command.preferenceKey) - ?: continue - val bindings = MappableBinding.fromPreferenceString(commandPreference.value) + protected fun getPreferenceAssignedTo(binding: Binding): ControlPreference? { + for (pref in preferenceManager.preferenceScreen.allPreferences()) { + if (pref !is ControlPreference) continue + val bindings = pref.getMappableBindings().map { it.binding } if (binding in bindings) { - bindings.remove(binding) - commandPreference.value = bindings.toPreferenceString() + return pref } } + return null } +} - private fun showDialogToReplaceBinding( - binding: MappableBinding, - title: String, - parentDialog: DialogInterface, - ) { - val commandName = context.getString(getCommandWithBindingExceptThis(binding)!!.resourceId) +class ControlPreferenceDialogFragment : DialogFragment() { + private lateinit var preference: ControlPreference - AlertDialog.Builder(context).show { - title(text = title) - message(text = context.getString(R.string.bindings_already_bound, commandName)) - positiveButton(R.string.dialog_positive_replace) { - clearBinding(binding) - addBinding(binding) - parentDialog.dismiss() + @Suppress("DEPRECATION") // targetFragment + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + val key = + requireNotNull(requireArguments().getString(SettingsFragment.PREF_DIALOG_KEY)) { + "ControlPreferenceDialogFragment must have a 'key' argument leading to its preference" } + preference = (targetFragment as PreferenceFragmentCompat).requirePreference(key) + } + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val view = requireActivity().layoutInflater.inflate(R.layout.control_preference, null) + + setupAddBindingDialogs(view) + setupRemoveControlEntries(view) + + return AlertDialog.Builder(requireContext()).create { + setTitle(preference.title) + setIcon(preference.icon) + customView(view, paddingTop = 24) negativeButton(R.string.dialog_cancel) } } - companion object { - private const val ADD_AXIS_INDEX = -3 - private const val ADD_KEY_INDEX = -2 - private const val ADD_GESTURE_INDEX = -1 + private fun setupAddBindingDialogs(view: View) { + view.findViewById(R.id.add_gesture).apply { + setOnClickListener { + preference.showGesturePickerDialog() + dismiss() + } + isVisible = preference.areGesturesEnabled + } + + view.findViewById(R.id.add_key).setOnClickListener { + preference.showKeyPickerDialog() + dismiss() + } + + view.findViewById(R.id.add_axis).setOnClickListener { + preference.showAddAxisDialog() + dismiss() + } + } + + private fun setupRemoveControlEntries(view: View) { + val bindings = preference.getMappableBindings().toMutableList() + val listView = view.findViewById(R.id.list_view) + if (bindings.isEmpty()) { + listView.isVisible = false + return + } + val titles = + bindings.map { + getString(R.string.binding_remove_binding, it.toDisplayString(requireContext())) + } + listView.apply { + adapter = ArrayAdapter(requireContext(), R.layout.control_preference_list_item, titles) + setOnItemClickListener { _, _, index, _ -> + bindings.removeAt(index) + preference.value = bindings.toPreferenceString() + dismiss() + } + } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt b/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt new file mode 100644 index 000000000000..fd1d7506cd7a --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2024 Brayan Oliveira + * + * 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.preferences + +import android.content.Context +import android.util.AttributeSet +import com.ichi2.anki.cardviewer.GestureProcessor +import com.ichi2.anki.dialogs.CardSideSelectionDialog +import com.ichi2.anki.reviewer.Binding +import com.ichi2.anki.reviewer.CardSide +import com.ichi2.anki.reviewer.MappableBinding +import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString +import com.ichi2.anki.reviewer.ReviewerBinding + +class ReviewerControlPreference : ControlPreference { + @Suppress("unused") + constructor( + context: Context, + attrs: AttributeSet?, + defStyleAttr: Int, + defStyleRes: Int, + ) : super(context, attrs, defStyleAttr, defStyleRes) + + @Suppress("unused") + constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) + + @Suppress("unused") + constructor(context: Context, attrs: AttributeSet?) : super(context, attrs) + + @Suppress("unused") + constructor(context: Context) : super(context) + + override val areGesturesEnabled: Boolean + get() = sharedPreferences?.getBoolean(GestureProcessor.PREF_KEY, false) ?: false + + override fun getMappableBindings() = MappableBinding.fromPreferenceString(value).toList() + + override fun onKeySelected(binding: Binding) { + CardSideSelectionDialog.displayInstance(context) { side -> + addBinding(binding, side) + } + } + + override fun onGestureSelected(binding: Binding) = addBinding(binding, CardSide.BOTH) + + override fun onAxisSelected(binding: Binding) { + CardSideSelectionDialog.displayInstance(context) { side -> + addBinding(binding, side) + } + } + + private fun addBinding( + binding: Binding, + side: CardSide, + ) { + val newBinding = ReviewerBinding(binding, side) + getPreferenceAssignedTo(binding)?.removeMappableBinding(newBinding) + val bindings = MappableBinding.fromPreferenceString(value).toMutableList() + bindings.add(newBinding) + value = bindings.toPreferenceString() + } +} diff --git a/AnkiDroid/src/main/res/drawable/ic_remove_outline.xml b/AnkiDroid/src/main/res/drawable/ic_remove_outline.xml new file mode 100644 index 000000000000..2326cd6414a0 --- /dev/null +++ b/AnkiDroid/src/main/res/drawable/ic_remove_outline.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/AnkiDroid/src/main/res/drawable/ic_videogame.xml b/AnkiDroid/src/main/res/drawable/ic_videogame.xml new file mode 100644 index 000000000000..6e78a4a0f20f --- /dev/null +++ b/AnkiDroid/src/main/res/drawable/ic_videogame.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/AnkiDroid/src/main/res/layout/control_preference.xml b/AnkiDroid/src/main/res/layout/control_preference.xml new file mode 100644 index 000000000000..06c4cee8468c --- /dev/null +++ b/AnkiDroid/src/main/res/layout/control_preference.xml @@ -0,0 +1,64 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/control_preference_list_item.xml b/AnkiDroid/src/main/res/layout/control_preference_list_item.xml new file mode 100644 index 000000000000..5b88f37fd7b3 --- /dev/null +++ b/AnkiDroid/src/main/res/layout/control_preference_list_item.xml @@ -0,0 +1,14 @@ + + diff --git a/AnkiDroid/src/main/res/values/10-preferences.xml b/AnkiDroid/src/main/res/values/10-preferences.xml index c90430f1c029..784263046efa 100644 --- a/AnkiDroid/src/main/res/values/10-preferences.xml +++ b/AnkiDroid/src/main/res/values/10-preferences.xml @@ -251,9 +251,7 @@ Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/xml/preferences_controls.xml b/AnkiDroid/src/main/res/xml/preferences_controls.xml index 3cd8bbdec0c5..f620c1889083 100644 --- a/AnkiDroid/src/main/res/xml/preferences_controls.xml +++ b/AnkiDroid/src/main/res/xml/preferences_controls.xml @@ -58,65 +58,65 @@ /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Date: Thu, 13 Feb 2025 19:23:37 +0530 Subject: [PATCH 053/200] Fixes #17970 - Pass DeckId to NoteEditor From Snackbar --- AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt index 0520ea2c1312..2c5b23793909 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt @@ -1603,8 +1603,8 @@ open class DeckPicker : dismissAllDialogFragments() } - fun addNote() { - val intent = NoteEditorLauncher.AddNote().toIntent(this) + fun addNote(did: DeckId? = null) { + val intent = NoteEditorLauncher.AddNote(did).toIntent(this) startActivity(intent) } @@ -2137,7 +2137,7 @@ open class DeckPicker : ) { fun showEmptyDeckSnackbar() = showSnackbar(R.string.empty_deck) { - setAction(R.string.menu_add) { addNote() } + setAction(R.string.menu_add) { addNote(did) } } /** Check if we need to update the fragment or update the deck list */ From 53da14ede77552023d411488359fb9775220f01e Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Thu, 13 Feb 2025 21:31:04 -0500 Subject: [PATCH 054/200] build(deps): anki25.02 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9044d316534a..2e083f5c2872 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ androidxViewpager2 = "1.1.0" androidxWebkit = "1.12.1" # https://developer.android.com/jetpack/androidx/releases/work androidxWork = "2.10.0" -ankiBackend = '0.1.49-anki25.01rc1' +ankiBackend = '0.1.50-anki25.02' autoService = "1.1.1" autoServiceAnnotations = "1.1.1" colorpicker = "1.2.0" From 748aecbf045b6c5efcd75f820e929e1db061f95a Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Fri, 14 Feb 2025 00:08:53 +0000 Subject: [PATCH 055/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-af/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-am/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-am/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ar/03-dialogs.xml | 9 --------- AnkiDroid/src/main/res/values-ar/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-az/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-az/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-be/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-be/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-bg/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-bg/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-bn/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-bn/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ca/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ca/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ckb/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ckb/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-cs/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-cs/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-da/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-da/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-de/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-de/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-el/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-el/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-eo/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-eo/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-es-rES/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-et/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-et/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-eu/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-eu/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-fa/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-fa/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-fi/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-fi/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-fil/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-fil/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-fr/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-fr/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-fy/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-fy/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ga/03-dialogs.xml | 8 -------- AnkiDroid/src/main/res/values-ga/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-gl/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-gl/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-got/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-got/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-gu/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-gu/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-heb/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-heb/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-hi/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-hi/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-hr/03-dialogs.xml | 6 ------ AnkiDroid/src/main/res/values-hr/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-hu/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-hu/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-hy/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-hy/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ind/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ind/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-is/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-is/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-it/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-it/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-iw/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-iw/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ja/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ja/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-jv/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-jv/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ka/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ka/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-kk/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-kk/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-km/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-km/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-kn/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-kn/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ko/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ko/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ku/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ku/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ky/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ky/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-lt/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-lt/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-lv/03-dialogs.xml | 6 ------ AnkiDroid/src/main/res/values-lv/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-mk/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-mk/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ml/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ml/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-mn/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-mn/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-mr/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-mr/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ms/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-ms/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-my/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-my/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-nl/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-nl/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-nn/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-nn/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-no/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-no/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-or/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-or/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-pa/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-pa/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-pl/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-pl/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ro/03-dialogs.xml | 6 ------ AnkiDroid/src/main/res/values-ro/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ru/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-ru/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sat/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-sat/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sc/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-sc/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sk/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-sk/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sl/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-sl/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sq/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-sq/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sr/03-dialogs.xml | 6 ------ AnkiDroid/src/main/res/values-sr/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ss/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ss/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sv/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-sv/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-sw/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-sw/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ta/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ta/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-te/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-te/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-tg/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-tg/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-tgl/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-tgl/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-th/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-th/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ti/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ti/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-tn/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-tn/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-tr/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-tr/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ts/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ts/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-tt/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-tt/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ug/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ug/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-uk/03-dialogs.xml | 7 ------- AnkiDroid/src/main/res/values-uk/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ur/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ur/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-uz/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-uz/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-ve/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-ve/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-vi/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-vi/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-wo/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-wo/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-xh/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-xh/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-yue/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-yue/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml | 4 ---- AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml | 2 -- AnkiDroid/src/main/res/values-zu/03-dialogs.xml | 5 ----- AnkiDroid/src/main/res/values-zu/10-preferences.xml | 2 -- 188 files changed, 675 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/03-dialogs.xml b/AnkiDroid/src/main/res/values-af/03-dialogs.xml index bedd2ec9b523..36ade9d632ef 100644 --- a/AnkiDroid/src/main/res/values-af/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-af/03-dialogs.xml @@ -55,12 +55,7 @@ Verwyder gefilterde pak %s en stuur alle kaarte terug na hul oorspronklike pakke? Geen teks-na-spraak taal beskikbaar nie Moet nie praat nie - Herposisioneer nuwe kaart Slegs nuwe kaarte kan herposisioneer word - - %d kaart herposisioneer - %d kaarte herposisioneer - Herstel kaart vordering %d kaart herstel diff --git a/AnkiDroid/src/main/res/values-af/10-preferences.xml b/AnkiDroid/src/main/res/values-af/10-preferences.xml index bc44eda2bc86..248b4b61f340 100644 --- a/AnkiDroid/src/main/res/values-af/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-af/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-am/03-dialogs.xml b/AnkiDroid/src/main/res/values-am/03-dialogs.xml index bba24a6cda13..10a8ad3103bb 100644 --- a/AnkiDroid/src/main/res/values-am/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-am/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - የአዲስ ካርድ ቦታ መለወጫ Only new cards can be repositioned - - የ %d ካርድ ቦታ ተለውጧል - የ %d ካርዶች ቦታ ተለውጧል - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-am/10-preferences.xml b/AnkiDroid/src/main/res/values-am/10-preferences.xml index e17a1240c9b2..aae58b25247e 100644 --- a/AnkiDroid/src/main/res/values-am/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-am/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml index a624059dbaaa..d968bb324ef7 100644 --- a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml @@ -59,16 +59,7 @@ Delete filtered deck %s and send all cards back to their original decks? لا يتوفر دعم تحويل النص إلى كلام لأي لغة لا تنطق - تغيير موضع البطاقة الجديدة يمكن تغيير موضع البطاقات الجديدة فقط - - تم تغيير موضع %d بطاقة - تم تغيير موضع %d بطاقة - تم تغيير موضع %d بطاقة - تم تغيير موضع %d بطاقات - تم تغيير موضع %d بطاقة - تم تغيير موضع %d بطاقة - تصفير تقدم البطاقة تم تصفير %d بطاقة diff --git a/AnkiDroid/src/main/res/values-ar/10-preferences.xml b/AnkiDroid/src/main/res/values-ar/10-preferences.xml index ff11a88db0a2..73c6197ebe7e 100644 --- a/AnkiDroid/src/main/res/values-ar/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ar/10-preferences.xml @@ -269,9 +269,7 @@ التبرع. نقدّر أي كمية.]]> إضافة إيماءة - استبدال الإيماء إضافة مفتاح - استبدال المفتاح ضغط مفتاح إضافة وحدة عصا التحكم أو جهاز التحرك/حركة نقل وحدة عصا التحكم أو جهاز التحرك/حركة diff --git a/AnkiDroid/src/main/res/values-az/03-dialogs.xml b/AnkiDroid/src/main/res/values-az/03-dialogs.xml index f8b3c7ecf142..36c60a1f1c9c 100644 --- a/AnkiDroid/src/main/res/values-az/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-az/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Mətndən-çıxış dilinə ehtiyac yoxdur Söhbət etməyin - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Kartın tərəqqisini bərpa edin %d card reset diff --git a/AnkiDroid/src/main/res/values-az/10-preferences.xml b/AnkiDroid/src/main/res/values-az/10-preferences.xml index 8065f6b15c1d..4fda357d1c06 100644 --- a/AnkiDroid/src/main/res/values-az/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-az/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml index b37b6c4d6299..7eabc2e271c1 100644 --- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml @@ -57,14 +57,7 @@ Выдаліць фільтраваную калоду %s і адправіць усе карткі назад у іх арыгінальныя калоды? Сінтэз маўлення недаступны Не прамаўляць - Перамясціць новую картку Толькі новыя карткі могуць быць перамешчаныя - - Перамешчана %d картка - Перамешчаны %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 2f26fbe1f595..ada55da0c3cc 100644 --- a/AnkiDroid/src/main/res/values-be/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-be/10-preferences.xml @@ -266,9 +266,7 @@ ахвяраваннем. Мы будзем удзячныя за любую суму.]]> Дадаць жэст - Замяніць жэст Дадаць кнопку - Замяніць ключ Націсніце кнопку Дадаць джойсцік/кантролер руху Перамясціць джойсцік/кантролер руху diff --git a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml index 3f426899b60c..0b9e151c2e14 100644 --- a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Няма наличен синтез за език Не говори - Преместване на нова карта Само нови карти могат да бъдат премествани - - %d картата е преместена - %d картите са преместени - Начално състояние на прогреса на картата %d card reset diff --git a/AnkiDroid/src/main/res/values-bg/10-preferences.xml b/AnkiDroid/src/main/res/values-bg/10-preferences.xml index 3bb5e020f5fe..1491c80a5400 100644 --- a/AnkiDroid/src/main/res/values-bg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bg/10-preferences.xml @@ -261,9 +261,7 @@ donating. Any amount is deeply appreciated.]]> Добавяне на жест - Replace gesture Добавяне на клавиш - Replace key Натиснете клавиш Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml index 1794387d6b84..1c0cf570db0e 100644 --- a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml @@ -55,12 +55,7 @@ ফিল্টার করা ডেক %s মুছে ফেলবেন এবং সমস্ত কার্ড তাদের আসল ডেকে ফিরিয়ে দেবেন? কোনও টেক্সট টু স্পিচ ভাষা উপলব্ধ নেই নিশ্চুপ - নতুন কার্ড এর ক্রম পরিবর্তন শুধু মাত্র নতুন কার্ড এর ক্রম বদলানো যাবে - - %d টি কার্ড পুনঃস্থাপিত - %d টি কার্ড পুনঃস্থাপিত - অগ্ৰগতি মুছে ফেলুন %d টি কার্ড রিসেট হয়েছে diff --git a/AnkiDroid/src/main/res/values-bn/10-preferences.xml b/AnkiDroid/src/main/res/values-bn/10-preferences.xml index 61101dd5567f..024723d875a3 100644 --- a/AnkiDroid/src/main/res/values-bn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bn/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> অঙ্গভঙ্গি যোগ করুন - অঙ্গভঙ্গি প্রতিস্থাপন কী যোগ করুন - কী প্রতিস্থাপন করুন একটি কী টিপুন জয়স্টিক/মোশন কন্ট্রোল যোগ করুন একটি জয়স্টিক/মোশন কন্ট্রোলার সরান diff --git a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml index 54e7271f0a05..6bcb708fe277 100644 --- a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No hi ha idiomes de síntesi de veu disponibles No parlis - Recol·locar carta nova Solament es poden recol·locar les cartes noves - - %d carta recol·locada - %d cartes recol·locades - Reinicia el progrés de les fitxes %d carta reiniciada diff --git a/AnkiDroid/src/main/res/values-ca/10-preferences.xml b/AnkiDroid/src/main/res/values-ca/10-preferences.xml index 783c83469af3..826fc3d511cb 100644 --- a/AnkiDroid/src/main/res/values-ca/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ca/10-preferences.xml @@ -261,9 +261,7 @@ fent una donació. Apreciarem molt qualsevol quantitat.]]> Afegeix gest - Substitueix el gest Afegir una clau - Substitueix la tecla Premeu una tecla Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml index c2f07ad2a3b1..d99b9cb1805c 100644 --- a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Nexwîne - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml index 03744990f8ef..76fb669b6a37 100644 --- a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml index 0e86cf4a7b88..bd452b6e6062 100644 --- a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml @@ -57,14 +57,7 @@ Vymazat filtrovaný balíček %s a poslat všechny karty zpět do jejich původních balíčků? Není dostupný žádný jazyk převodu textu na řeč Nemluv - Změnit pořadí nové karty Změnit pořadí lze pouze u nových karet - - %d karta přesunuta - %d karty přesunuty - %d karty přesunuto - %d karet přesunuto - Obnovit proces učení karty %d karta obnovena diff --git a/AnkiDroid/src/main/res/values-cs/10-preferences.xml b/AnkiDroid/src/main/res/values-cs/10-preferences.xml index f305d8d1359e..8b03c0412e8d 100644 --- a/AnkiDroid/src/main/res/values-cs/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-cs/10-preferences.xml @@ -265,9 +265,7 @@ finančními příspěvky. Jakékoliv částky si hluboce vážíme.]]> Přidat gesto - Nahradit gesto Přidat klávesu - Nahradit klávesu Stiskněte tlačítko Přidat joystick / ovladač pohybu Pohnout joystickem / ovladačem pohybu diff --git a/AnkiDroid/src/main/res/values-da/03-dialogs.xml b/AnkiDroid/src/main/res/values-da/03-dialogs.xml index a1a83eade31c..4bc3e0510360 100644 --- a/AnkiDroid/src/main/res/values-da/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-da/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Intet Tekst-Til-Tale sprog tilgængelig Don’t speak - Repositionér nyt kort Udelukkende nye kort kan repositioneres - - %d kort repositioneret - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-da/10-preferences.xml b/AnkiDroid/src/main/res/values-da/10-preferences.xml index 8acca7451601..d7f181212461 100644 --- a/AnkiDroid/src/main/res/values-da/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-da/10-preferences.xml @@ -262,9 +262,7 @@ donere. Ethvert bidrag er dybt værdsat.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-de/03-dialogs.xml b/AnkiDroid/src/main/res/values-de/03-dialogs.xml index 08af5811948e..14a4b52bd9ed 100644 --- a/AnkiDroid/src/main/res/values-de/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-de/03-dialogs.xml @@ -55,12 +55,7 @@ Gefilterten Stapel „%s“ löschen und alle Karten zurück in ihre ursprünglichen Stapel senden? Keine Vorlesesprache verfügbar Nicht vorlesen - Position der neuen Karte ändern Die Position kann nur für neue Karten geändert werden - - %d Karte neu positioniert - %d Karten neu positioniert - Lernfortschritt zurücksetzen %d Karte zurücksetzen diff --git a/AnkiDroid/src/main/res/values-de/10-preferences.xml b/AnkiDroid/src/main/res/values-de/10-preferences.xml index ebca1adcae1a..0b4057aaef95 100644 --- a/AnkiDroid/src/main/res/values-de/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-de/10-preferences.xml @@ -261,9 +261,7 @@ unterstützen. Jede Spende schätzen wir zutiefst.]]> Geste hinzufügen - Geste ersetzen Schlüssel hinzufügen - Schlüssel ersetzen Eine Taste drücken Joystick/Motion Controller hinzufügen Joystick/Motion Controller bewegen diff --git a/AnkiDroid/src/main/res/values-el/03-dialogs.xml b/AnkiDroid/src/main/res/values-el/03-dialogs.xml index a4929bbba611..f7895f65d938 100644 --- a/AnkiDroid/src/main/res/values-el/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-el/03-dialogs.xml @@ -55,12 +55,7 @@ Διαγράψτε τη φιλτραρισμένη τράπουλα %s και στείλτε όλες τις κάρτες πίσω στις αρχικές τους τράπουλες; Δεν είναι διαθέσιμη η μετατροπής κειμένου σε ομιλία Σίγαση - Επανατοποθέτηση νέας κάρτας Μόνο νέες κάρτες μπορούν να επανατοποθετηθούν - - Επανατοποθετήθηκε %d κάρτα - Επανατοποθετήθηκαν %d κάρτες - Επαναφορά προόδου κάρτας %d card reset diff --git a/AnkiDroid/src/main/res/values-el/10-preferences.xml b/AnkiDroid/src/main/res/values-el/10-preferences.xml index 2dc449912605..ff04aaab6dbb 100644 --- a/AnkiDroid/src/main/res/values-el/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-el/10-preferences.xml @@ -262,9 +262,7 @@ δωρεά. Οποιοδήποτε ποσό εκτιμάται βαθύτατα.]]> Προσθήκη χειρονομίας - Αντικατάσταση χειρονομίας Προσθήκη κλειδιού - Αντικατάσταση κλειδιού Πατήστε ένα πλήκτρο Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml index 90b62857d31d..d28824c2d5cc 100644 --- a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml @@ -55,12 +55,7 @@ Ĉu forigi la filtritan kartaron %s kaj movi ĉiujn ĝiajn kartojn reen al iliaj originalaj kartaroj? Neniu parolsintezilo disponebla Ne paroli - Repozicii novan karton Nur novaj kartoj povas esti repoziciitaj - - %d karto estas repoziciita - %d kartoj estas repoziciitaj - Nuligi progreson de karto %d karto estas nuligita diff --git a/AnkiDroid/src/main/res/values-eo/10-preferences.xml b/AnkiDroid/src/main/res/values-eo/10-preferences.xml index 18f975a55952..8c49d5fc33af 100644 --- a/AnkiDroid/src/main/res/values-eo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eo/10-preferences.xml @@ -257,9 +257,7 @@ donaci monon. Ĉiu monsumo estas dankinda.]]> Aldoni geston - Anstataŭigi geston Aldoni klavon - Anstataŭigi klavon Premu klavon Asigni ludstirilon Movu per ludstirilo 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 4c086954c67e..511e92f83c89 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml @@ -55,12 +55,7 @@ ¿Borrar el mazo filtrado %s y devolver todas las cartas a sus mazos originales? No hay un idioma de texto-a-voz disponible No hable - Reposicionar nueva tarjeta Sólo las tarjetas nuevas pueden ser reposicionadas - - %d tarjeta reposicionada - %d tarjetas reposicionadas - Resetear el progreso de las tarjetas %d tarjeta reiniciada diff --git a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml index 6aa6a9ae2784..56bcd859927e 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml @@ -261,9 +261,7 @@ donando. Cualquier cantidad es profundamente apreciada.]]> Agregar gesto - Reemplazar gesto Añadir botón - Reemplazar clave Presione una tecla Añadir joystick/controlador de movimiento Mueve un joystick/controlador de movimiento 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 16eb28c8c39c..8d2165b014b8 100644 --- a/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml @@ -55,12 +55,7 @@ ¿Borrar el mazo filtrado %s y devolver todas las cartas a sus mazos originales? No hay idiomas de texto-a-voz disponibles No hablar - Reposicionar nueva tarjeta Sólo las tarjetas nuevas pueden ser reposicionadas - - %d tarjeta reposicionada - %d tarjetas reposicionadas - Resetear el progreso de la tarjeta %d tarjeta reiniciada diff --git a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml index f3e26035f378..333fa025b753 100644 --- a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml @@ -261,9 +261,7 @@ donando. Cualquier cantidad es profundamente apreciada.]]> Agregar gesto - Reemplazar gesto Añadir botón - Reemplazar clave Presione una tecla Añadir joystick/controlador de movimiento Mueve un joystick/controlador de movimiento diff --git a/AnkiDroid/src/main/res/values-et/03-dialogs.xml b/AnkiDroid/src/main/res/values-et/03-dialogs.xml index 3e2da2251247..954d7637f5cb 100644 --- a/AnkiDroid/src/main/res/values-et/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-et/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Ära räägi - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-et/10-preferences.xml b/AnkiDroid/src/main/res/values-et/10-preferences.xml index c4459c409dc3..5f7decb917a0 100644 --- a/AnkiDroid/src/main/res/values-et/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-et/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml index f3b0cddfead6..4593a44d6d5c 100644 --- a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Ez dago testua hizketa bihurketarako hizkuntzarik Ez hitz egin - Birkokatu karta berria Bakarrik karta berriak birkokatu daitezke - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-eu/10-preferences.xml b/AnkiDroid/src/main/res/values-eu/10-preferences.xml index 7451f7b1bffd..5f4d827fd720 100644 --- a/AnkiDroid/src/main/res/values-eu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eu/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml index 3746a4370263..d498c152f4c2 100644 --- a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml @@ -55,12 +55,7 @@ آبا می خواهید دسته فیلتر شده %s را حذف کنید و همه کارت ها را به دسته اصلیشان بفرستید؟ زبان متن به گفتار در دسترس نیست حرف نزن - تغییر مکان کارت جدید فقط کارت‌های جدید می‌توانند جابه‌جا شوند - - %d کارت جابه‌جا شد - %d کارت جابه‌جا شدند - بازنشانی پیشرفت کارت %d کارت تنظیم مجدد شد diff --git a/AnkiDroid/src/main/res/values-fa/10-preferences.xml b/AnkiDroid/src/main/res/values-fa/10-preferences.xml index 56b7e06769c8..fe2ce5d51c72 100644 --- a/AnkiDroid/src/main/res/values-fa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fa/10-preferences.xml @@ -261,9 +261,7 @@ اهدای پول. هر مقداری ما را بی نهایت خوشحال میکند.]]> حرکت لمس اضافه کن - حرکت لمس با جایگذین کن کلید اضافه کن - کلید را جایگذین کن یک کلید را انتخاب کنید اضافه کردن اهرمک/تنظیم کننده حرکات یک اهرمک/تنظیم کننده حرکات را حرکت دهید diff --git a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml index 0d9f7a0ce22f..725a88356345 100644 --- a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml @@ -55,12 +55,7 @@ Poistetaanko suodatettu pakka \'%1$s\'? Kaikki kortit lähetetään niiden alkuperäisiin pakkoihin. Yhtään puhesyntetisaattorin tukemaa kieltä ei ole käytettävissä Ei puhetta - Siirrä uusi kortti Ainoastaan uudet kortit voidaan siirtää - - %d kortti siirretty - %d korttia siirretty - Nollaa kortin edistyminen %d alusta kortti diff --git a/AnkiDroid/src/main/res/values-fi/10-preferences.xml b/AnkiDroid/src/main/res/values-fi/10-preferences.xml index 4b01fd930439..86bd204c0988 100644 --- a/AnkiDroid/src/main/res/values-fi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fi/10-preferences.xml @@ -261,9 +261,7 @@ lahjoittamalla. Mikä tahansa summa on erittäin tervetullut.]]> Lisää kosketusele - Korvaa kosketusele Lisää näppäin - Korvaa näppäin Paina näppäintä Lisää peliohjain tai liikeohjain Liikuta peli- tai liikeohjainta diff --git a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml index cb766b78747a..7275d610ccd5 100644 --- a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Walang available na wika sa text-to-speech Huwag magsalita - Iposisyon muli ang card Mga bagong card lamang ang maaaring iposisyon muli - - %d card ang pinosisyon muli - %d mga card ang pinosisyon muli - I-reset ang progreso ng kard %d card ang na-reset diff --git a/AnkiDroid/src/main/res/values-fil/10-preferences.xml b/AnkiDroid/src/main/res/values-fil/10-preferences.xml index 8c4ee628bddb..ce04bba9aa07 100644 --- a/AnkiDroid/src/main/res/values-fil/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fil/10-preferences.xml @@ -262,9 +262,7 @@ paghahandog. Lubos naming ipinapasalamat ang anumang halaga.]]> Magdagdag ng gesture - Palitan ang gesture Magdagdag ng key - Palitan ang key Pindutin ang key Magdagdag ng joystick/motion controller Igalaw ang joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml index bb2fdfd90814..802900bf7d92 100644 --- a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml @@ -55,12 +55,7 @@ Supprimer le paquet filtré %s et renvoyer toutes les cartes dans leurs paquets d’origine? Aucun langage de synthèse vocale disponible Ne pas parler - Repositionner la nouvelle carte Seules les nouvelles cartes peuvent être repositionnées - - %d carte repositionnée - %d cartes repositionnées - Réinitialiser les progrès de la carte %d carte réinitialisée diff --git a/AnkiDroid/src/main/res/values-fr/10-preferences.xml b/AnkiDroid/src/main/res/values-fr/10-preferences.xml index 75ff3051933d..66087e51ff61 100644 --- a/AnkiDroid/src/main/res/values-fr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fr/10-preferences.xml @@ -261,9 +261,7 @@ faisant un don. N\'importe quel montant est très fortement apprécié.]]> Ajouter un geste - Remplacer le geste Ajouter une touche - Remplacer la clé Appuyer sur une touche Ajouter un joystick/contrôleur de mouvement Déplacer un joystick/contrôleur de mouvement diff --git a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml index d576b454fe11..9b2b5d8e4c74 100644 --- a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-fy/10-preferences.xml b/AnkiDroid/src/main/res/values-fy/10-preferences.xml index d5568cd30c8c..203308260ac1 100644 --- a/AnkiDroid/src/main/res/values-fy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fy/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml index 37fa33a46ef0..ab6f2043d491 100644 --- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml @@ -58,15 +58,7 @@ Delete filtered deck %s and send all cards back to their original decks? Níl TTS ar fáil sa teanga seo Teanga ar bith - Athlonnaigh cárta nua Ní féidir ach cártaí nua a athlonnú - - %d card repositioned - %d cards repositioned - %d cards repositioned - %d cards repositioned - %d (g)cinn de chártaí athlonnaithe - Glan stair an chárta maidir le do dhul ar aghaidh? %d card reset diff --git a/AnkiDroid/src/main/res/values-ga/10-preferences.xml b/AnkiDroid/src/main/res/values-ga/10-preferences.xml index c2b0edb43b43..72f7ab23ce99 100644 --- a/AnkiDroid/src/main/res/values-ga/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ga/10-preferences.xml @@ -268,9 +268,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml index e252439ee4d6..154e7bc9c308 100644 --- a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Ningún idioma de síntese de voz dispoñible Non fales - Reposicionar novo cartón Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reiniciar o progreso do cartón %d card reset diff --git a/AnkiDroid/src/main/res/values-gl/10-preferences.xml b/AnkiDroid/src/main/res/values-gl/10-preferences.xml index 1af8740e08f9..6d793bf7c9eb 100644 --- a/AnkiDroid/src/main/res/values-gl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gl/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-got/03-dialogs.xml b/AnkiDroid/src/main/res/values-got/03-dialogs.xml index 3b1bb56e51b9..682594197941 100644 --- a/AnkiDroid/src/main/res/values-got/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-got/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Bokos-du-gwaurdja razda nist Ni rodei - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-got/10-preferences.xml b/AnkiDroid/src/main/res/values-got/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-got/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-got/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml index f84df4d9fb0a..5e6d826b7c67 100644 --- a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml @@ -55,12 +55,7 @@ வடிகட்டப்பட்ட %s டெக்கை அகற்றிவிட்டு, எல்லா கார்டுகளையும் அவற்றின் அசல் டெக்குகளுக்குத் திருப்பிவிடவா? કોઈ ટેક્સ્ટ-ટુ-સ્પીચ ભાષા ઉપલબ્ધ નથી બોલશો નહીં - નવું કાર્ડ રિપોઝિશન કરો ફક્ત નવા કાર્ડને જ સ્થાનાંતરિત કરી શકાય છે - - %d કાર્ડ રિપોઝિશન કર્યું - %d કાર્ડ રિપોઝિશન કર્યું - કાર્ડની પ્રગતિ રીસેટ કરો %d કાર્ડ રીસેટ diff --git a/AnkiDroid/src/main/res/values-gu/10-preferences.xml b/AnkiDroid/src/main/res/values-gu/10-preferences.xml index 1fe408e723d2..70712163126c 100644 --- a/AnkiDroid/src/main/res/values-gu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gu/10-preferences.xml @@ -261,9 +261,7 @@ દાન કરીને AnkiDroid ના વિકાસને સમર્થન આપી શકો છો. કોઈપણ રકમની ખૂબ પ્રશંસા કરવામાં આવે છે.]]> હાવભાવ ઉમેરો - હાવભાવ બદલો કી ઉમેરો - કી બદલો એક કી દબાવો જોયસ્ટિક/મોશન કંટ્રોલર ઉમેરો જોયસ્ટીક/મોશન કંટ્રોલર ખસેડો diff --git a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml index 59c46c2b59f1..3affe6223155 100644 --- a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml @@ -57,14 +57,7 @@ למחוק את החפיסה %s המסוננת ולשלוח את כל הקלפים בחזרה לחפיסות המקוריות שלהם? אין שום שפת לכתוב-אל-דיבור זמין אל תדבר.‏ - שינוי מיקום כרטיס חדש ניתן לשנות מיקום לכרטיסים חדשים בלבד - - כרטיס %d הושם מחדש - %d כרטיסים הושמו מחדש - %d כרטיסים הושמו מחדש - %d כרטיסים הושמו מחדש - איפוס התקדמות הכרטיס כרטיס אחד אופס diff --git a/AnkiDroid/src/main/res/values-heb/10-preferences.xml b/AnkiDroid/src/main/res/values-heb/10-preferences.xml index aa0da3be6486..4a1c832cab89 100644 --- a/AnkiDroid/src/main/res/values-heb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-heb/10-preferences.xml @@ -265,9 +265,7 @@ תרומה. כל סכום מוערך מאוד.]]> הוסף מחווה - החלף מחווה הוסף כפתור - החלף כפתור לחץ על כפתור הוסף ג\'ויסטיק/בקר תנועה הזז ג\'ויסטיק/בקר תנועה diff --git a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml index cf8de2b986eb..3020bee43de3 100644 --- a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml @@ -55,12 +55,7 @@ फ़िल्टर किए गए डेक %s को हटाएं और सभी कार्डों को उनके मूल डेक पर वापस भेजें? कोई लेख-से-बोली भाषा उपलब्ध नहीं बात न करें - नया कार्ड पुन: प्रस्तुत करें केवल नए कार्डों को बदला जा सकता है - - %d कार्डों का स्थान बदल दिया गया है - %d कार्डों का स्थान बदल दिया गया है - पत्ता प्रगति रीसेट करें %d कार्ड रीसेट हुआ diff --git a/AnkiDroid/src/main/res/values-hi/10-preferences.xml b/AnkiDroid/src/main/res/values-hi/10-preferences.xml index db414d0cb206..16842b9319c7 100644 --- a/AnkiDroid/src/main/res/values-hi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hi/10-preferences.xml @@ -258,9 +258,7 @@ दान करके AnkiDroid\ के विकास में सहायता कर सकते हैं। किसी भी राशि की अत्यधिक सराहना की जाती है।]]> इशारा जोड़ें - इशारा बदलें कुंजी जोड़ें - कुंजी बदलें कोई कुंजी दबाएं जॉयस्टिक/मोशन कंट्रोलर को जोड़ें जॉयस्टिक/मोशन कंट्रोलर को स्थानांतरित करें diff --git a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml index 481b0dfa7290..a3019398680a 100644 --- a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml @@ -56,13 +56,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-hr/10-preferences.xml b/AnkiDroid/src/main/res/values-hr/10-preferences.xml index 74c12bae5215..2ca6452442b9 100644 --- a/AnkiDroid/src/main/res/values-hr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hr/10-preferences.xml @@ -264,9 +264,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml index fa89a3403c41..719d4a9e235e 100644 --- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Nincs rendelkezésre álló szövegfelolvasási nyelv Ne beszélj - Helyezze át az új kártyát Csak az új kártyákat lehet áthelyezni - - %d kártya áthelyezve - %d kártyák áthelyezve - Kártya folyamatát alaphelyzetbe %d kártya visszaállítva diff --git a/AnkiDroid/src/main/res/values-hu/10-preferences.xml b/AnkiDroid/src/main/res/values-hu/10-preferences.xml index b71666398fc2..d120512883ab 100644 --- a/AnkiDroid/src/main/res/values-hu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hu/10-preferences.xml @@ -261,9 +261,7 @@ támogatással. Bármilyen összeget nagyra értékelünk.]]> Gesztus hozzáadása - Gesztus felcserélése Kulcs hozzáadása - Kulcs felcserélése Nyomj meg egy billentyűt Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml index c51d7ab58414..dc126001a1c4 100644 --- a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Չխոսել - Տեղափոխել նոր քարտը Կարելի է տեղափոխել միայն նոր քարտերը - - Տեղափոխվել է %d քարտ - Տեղափոխվել է %d քարտ - Վերակայել առաջընթացը %d card reset diff --git a/AnkiDroid/src/main/res/values-hy/10-preferences.xml b/AnkiDroid/src/main/res/values-hy/10-preferences.xml index 8df9cb366d80..668bc1fb82b1 100644 --- a/AnkiDroid/src/main/res/values-hy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hy/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml index 66ffc9499f2d..41f34ef2d9e3 100644 --- a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? Tidak ada bahasa teks-ke-ucapan tersedia Jangan bicara - Pindah posisi kartu baru Hanya kartu baru yang dapat pindah posisi - - %d posisi kartu dipindah - Reset kemajuan kartu %d kartu direset diff --git a/AnkiDroid/src/main/res/values-ind/10-preferences.xml b/AnkiDroid/src/main/res/values-ind/10-preferences.xml index bf428a61c83f..9c53493d7c8d 100644 --- a/AnkiDroid/src/main/res/values-ind/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ind/10-preferences.xml @@ -260,9 +260,7 @@ berdonasi. Berapa pun jumlahnya akan sangat kami hargai.]]> Tambahkan gestur - Ganti gestur Tambahkan tombol - Ganti tombol Tekan tombol Tambahkan pengendali joystick/gerakan Gerakkan pengendali joystick/gerakan diff --git a/AnkiDroid/src/main/res/values-is/03-dialogs.xml b/AnkiDroid/src/main/res/values-is/03-dialogs.xml index 2ffe2bf2751a..221b0b5ff1bb 100644 --- a/AnkiDroid/src/main/res/values-is/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-is/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-is/10-preferences.xml b/AnkiDroid/src/main/res/values-is/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-is/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-is/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-it/03-dialogs.xml b/AnkiDroid/src/main/res/values-it/03-dialogs.xml index b526732e0a44..ad3f8f11edc9 100644 --- a/AnkiDroid/src/main/res/values-it/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-it/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Nessuna lingua per la sintesi vocale disponibile Non parlare - Riposiziona nuova carta Solo le nuove carte possono essere riposizionate - - %d carta riposizionata - %d carte riposizionate - Reimposta progresso carta %d carta resettata diff --git a/AnkiDroid/src/main/res/values-it/10-preferences.xml b/AnkiDroid/src/main/res/values-it/10-preferences.xml index fa995f99e062..45536b662b91 100644 --- a/AnkiDroid/src/main/res/values-it/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-it/10-preferences.xml @@ -261,9 +261,7 @@ donando. Qualsiasi importo è profondamente apprezzato.]]> Aggiungi un gesto - Sostituisci gesto Aggiungi un tasto - Sostituisci chiave Premi un tasto Aggiungi joystick/controller di movimento Muovere joystick/controller di movimento diff --git a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml index 59c46c2b59f1..3affe6223155 100644 --- a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml @@ -57,14 +57,7 @@ למחוק את החפיסה %s המסוננת ולשלוח את כל הקלפים בחזרה לחפיסות המקוריות שלהם? אין שום שפת לכתוב-אל-דיבור זמין אל תדבר.‏ - שינוי מיקום כרטיס חדש ניתן לשנות מיקום לכרטיסים חדשים בלבד - - כרטיס %d הושם מחדש - %d כרטיסים הושמו מחדש - %d כרטיסים הושמו מחדש - %d כרטיסים הושמו מחדש - איפוס התקדמות הכרטיס כרטיס אחד אופס diff --git a/AnkiDroid/src/main/res/values-iw/10-preferences.xml b/AnkiDroid/src/main/res/values-iw/10-preferences.xml index aa0da3be6486..4a1c832cab89 100644 --- a/AnkiDroid/src/main/res/values-iw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-iw/10-preferences.xml @@ -265,9 +265,7 @@ תרומה. כל סכום מוערך מאוד.]]> הוסף מחווה - החלף מחווה הוסף כפתור - החלף כפתור לחץ על כפתור הוסף ג\'ויסטיק/בקר תנועה הזז ג\'ויסטיק/בקר תנועה diff --git a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml index a8e6a908aa21..d68971f9a365 100644 --- a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml @@ -54,11 +54,7 @@ フィルターデッキ「%s」を削除し、すべてのカードを元のデッキに戻しますか? テキスト読み上げ可能な言語がありません 発声なし - 位置(新規カード番号)を変更 位置(新規カード番号)の変更は、新規カード以外には行えません。 - - %d枚のカードの位置(新規カード番号)を変更しました - カードの学習進度をリセット %d枚のカードの学習履歴をリセットしました diff --git a/AnkiDroid/src/main/res/values-ja/10-preferences.xml b/AnkiDroid/src/main/res/values-ja/10-preferences.xml index abb319252764..ce51ab4adc5c 100644 --- a/AnkiDroid/src/main/res/values-ja/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ja/10-preferences.xml @@ -259,9 +259,7 @@ 寄付することでAnkiDroidの開発を支援することができます。]]> ジェスチャーを追加 - ジェスチャーを置換 キーを追加 - キーを置換 いずれかのキーを押してください ジョイスティック/モーションコントローラーの動作を追加 ジョイスティック/モーションコントローラーを動かしてください diff --git a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml index ecb2c3a28ce2..4c4d14477486 100644 --- a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-jv/10-preferences.xml b/AnkiDroid/src/main/res/values-jv/10-preferences.xml index 127160523bfc..0b680887a4dd 100644 --- a/AnkiDroid/src/main/res/values-jv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-jv/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml index ecfc158f3f50..541393b5cf7c 100644 --- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? მიუწვდომელია ხმოვანი წამკითხველის ენა არ წაიკითხოს - ახალი ბარათის გადაადგილება პოზიციის შეცვლა მხოლოდ ახალი ბარათებისთვის შეიძლება - - შეიცვალა %d ბარათის პოზიცია - შეიცვალა %d ბარათის პოზიცია - ბარათის პროგრესის გაუქმება %d ბარათი დაყენდა საწყის მდგომარეობაში diff --git a/AnkiDroid/src/main/res/values-ka/10-preferences.xml b/AnkiDroid/src/main/res/values-ka/10-preferences.xml index 1d1da860411c..355eceed09df 100644 --- a/AnkiDroid/src/main/res/values-ka/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ka/10-preferences.xml @@ -261,9 +261,7 @@ donating. Any amount is deeply appreciated.]]> ჟესტის დამატება - ჟესტის გამოცვლა კლავიშის დამატება - კლავიშის შეცვლა დააჭირეთ ნებისმიერ კლავიშს ჯოისტიკის/მოძრაობით მართული კონტროლერის დამატება ჯოისტიკის/მოძრაობით მართული კონტროლერის გამოძრავება diff --git a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml index 61b99a871615..4c7e5145537a 100644 --- a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-kk/10-preferences.xml b/AnkiDroid/src/main/res/values-kk/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-kk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kk/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-km/03-dialogs.xml b/AnkiDroid/src/main/res/values-km/03-dialogs.xml index 9d0934257fe9..d4e9fbd9850c 100644 --- a/AnkiDroid/src/main/res/values-km/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-km/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-km/10-preferences.xml b/AnkiDroid/src/main/res/values-km/10-preferences.xml index 127160523bfc..0b680887a4dd 100644 --- a/AnkiDroid/src/main/res/values-km/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-km/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml index ff284f4f285d..8525a75a65de 100644 --- a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml @@ -55,12 +55,7 @@ ಫಿಲ್ಟರ್ ಮಾಡಿದ ಡೆಕ್ %s ಅನ್ನು ಅಳಿಸಿ ಮತ್ತು ಎಲ್ಲಾ ಕಾರ್ಡ್‌ಗಳನ್ನು ಅವುಗಳ ಮೂಲ ಡೆಕ್‌ಗಳಿಗೆ ಹಿಂತಿರುಗಿಸುವುದೇ? ಯಾವುದೇ ಪಠ್ಯದಿಂದ ಭಾಷಣಕ್ಕೆ ಭಾಷೆ ಲಭ್ಯವಿಲ್ಲ ಮಾತನಾಡಬೇಡ - ಹೊಸ ಕಾರ್ಡ್ ಅನ್ನು ಮರುಸೇರಿಸಿ ಹೊಸ ಕಾರ್ಡ್‌ಗಳನ್ನು ಮಾತ್ರ ಮರುಸ್ಥಾಪಿಸಬಹುದು - - %d ಕಾರ್ಡ್ ಅನ್ನು ಮರುಸ್ಥಾನಗೊಳಿಸಲಾಗಿದೆ - %d ಕಾರ್ಡ್‌ಗಳನ್ನು ಮರುಸ್ಥಾನಗೊಳಿಸಲಾಗಿದೆ - ಕಾರ್ಡ್ ಪ್ರಗತಿಯನ್ನು ಮರುಹೊಂದಿಸಿ %d ಕಾರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಿ diff --git a/AnkiDroid/src/main/res/values-kn/10-preferences.xml b/AnkiDroid/src/main/res/values-kn/10-preferences.xml index 8369d868ed35..2d0acc79492a 100644 --- a/AnkiDroid/src/main/res/values-kn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kn/10-preferences.xml @@ -260,9 +260,7 @@ ದಾನ ಮಾಡುವ ಮೂಲಕ ನೀವು AnkiDroid ಅಭಿವೃದ್ಧಿಯನ್ನು ಬೆಂಬಲಿಸಬಹುದು. ಯಾವುದೇ ಮೊತ್ತವನ್ನು ಆಳವಾಗಿ ಪ್ರಶಂಸಿಸಲಾಗುತ್ತದೆ.]]> ಗೆಸ್ಚರ್ ಸೇರಿಸಿ - ಗೆಸ್ಚರ್ ಬದಲಾಯಿಸಿ ಕೀ ಸೇರಿಸಿ - ಕೀಲಿಯನ್ನು ಬದಲಾಯಿಸಿ ಒಂದು ಕೀಲಿಯನ್ನು ಒತ್ತಿರಿ ಜಾಯ್ಸ್ಟಿಕ್/ಚಲನೆಯ ನಿಯಂತ್ರಕವನ್ನು ಸರಿಸಿ ಜಾಯ್ಸ್ಟಿಕ್/ಚಲನೆಯ ನಿಯಂತ್ರಕವನ್ನು ಸರಿಸಿ diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml index d8015ae018d9..2338d1cc22b4 100644 --- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml @@ -54,11 +54,7 @@ 필터링된 덱 %s을(를) 삭제하고 모든 카드를 원래 덱으로 돌려보낼까요? 문장 읽어주기 기능(TTS)을 사용할 수 없음 무음 - 새 카드 위치 변경 새 카드만 순서를 조정할 수 있습니다. - - %d개의 카드를 옮겼습니다. - 카드 학습 진행 재설정 %d개의 카드를 초기화했습니다. diff --git a/AnkiDroid/src/main/res/values-ko/10-preferences.xml b/AnkiDroid/src/main/res/values-ko/10-preferences.xml index bb078211b65b..b7407111fb9f 100644 --- a/AnkiDroid/src/main/res/values-ko/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ko/10-preferences.xml @@ -258,9 +258,7 @@ donating. Any amount is deeply appreciated.]]> 제스쳐 추가 - 제스쳐 대체 키 추가 - 키 대체 키 누르기 조이스틱/모션 컨트롤러 추가 Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml index c2f07ad2a3b1..d99b9cb1805c 100644 --- a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Nexwîne - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ku/10-preferences.xml b/AnkiDroid/src/main/res/values-ku/10-preferences.xml index 03744990f8ef..76fb669b6a37 100644 --- a/AnkiDroid/src/main/res/values-ku/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ku/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml index 1c406a25e9ca..e9fdcb377dee 100644 --- a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ky/10-preferences.xml b/AnkiDroid/src/main/res/values-ky/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-ky/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ky/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml index be929d17e5a4..30cca55c2459 100644 --- a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml @@ -57,14 +57,7 @@ Delete filtered deck %s and send all cards back to their original decks? Teksto perskaityti nurodyta kalba negalime Nekalbėkite - Pakeiskite naujos kortelės padėtį Gali būti keičiamas tik naujų kortelių išdėstymas - - Pakeistas %d kortelės išdėstymas - Pakeistas %d kortelių išdėstymas - Pakeistas %d kortelių išdėstymas - Pakeistas %d kort. išdėstymas - Atkurti kortelių eigą %d kortelės atkūrimas diff --git a/AnkiDroid/src/main/res/values-lt/10-preferences.xml b/AnkiDroid/src/main/res/values-lt/10-preferences.xml index 45cdc74bfa7d..bbd1abf46e9d 100644 --- a/AnkiDroid/src/main/res/values-lt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lt/10-preferences.xml @@ -266,9 +266,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml index 835db5f93028..0f24aa30ad6a 100644 --- a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml @@ -56,13 +56,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - %d card repositioned - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-lv/10-preferences.xml b/AnkiDroid/src/main/res/values-lv/10-preferences.xml index 6ade468a4a75..af545fb15c92 100644 --- a/AnkiDroid/src/main/res/values-lv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lv/10-preferences.xml @@ -264,9 +264,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml index 5cbeedc2510b..199572732287 100644 --- a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Нема достапен јазик за текст-во-говор Не зборувај - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Ресетирање на напредок на картичката %d card reset diff --git a/AnkiDroid/src/main/res/values-mk/10-preferences.xml b/AnkiDroid/src/main/res/values-mk/10-preferences.xml index fd5dfdeed414..27df657854a1 100644 --- a/AnkiDroid/src/main/res/values-mk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mk/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml index 7de736acbbc2..cde3c6bfb91f 100644 --- a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? ടെക്സ്റ്റ്-ടു-സ്പീച്ച് ഭാഷ ലഭ്യമല്ല സംസാരിക്കരുത് - പുതിയ കാർഡ് പുന സ്ഥാപിക്കുക പുതിയ കാർഡുകൾ മാത്രമേ പുന സ്ഥാപിക്കാൻ കഴിയൂ - - %d കാർഡ് സ്ഥാനം മാറ്റി - %d കാർഡുകൾ സ്ഥാനം മാറ്റി - കാർഡ് പുരോഗതി പുന Res സജ്ജമാക്കുക %dകാർഡ് പുന സജ്ജമാക്കുക diff --git a/AnkiDroid/src/main/res/values-ml/10-preferences.xml b/AnkiDroid/src/main/res/values-ml/10-preferences.xml index 9fd634a28516..bf34084e55b6 100644 --- a/AnkiDroid/src/main/res/values-ml/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ml/10-preferences.xml @@ -261,9 +261,7 @@ സംഭാവന ചെയ്യുന്നതിലൂടെ നിങ്ങൾക്ക് AnkiDroid വികസനത്തെ പിന്തുണയ്ക്കാം. ഏത് തുകയും ആഴത്തിൽ വിലമതിക്കുന്നു.]]> ആംഗ്യം ചേർക്കുക - ആംഗ്യം മാറ്റിസ്ഥാപിക്കുക കീ ചേർക്കുക - കീ മാറ്റിസ്ഥാപിക്കുക ഒരു കീ അമർത്തുക ഒരു ജോയിസ്റ്റിക്ക്/മോഷൻ കൺട്രോളർ ചേർക്കുക ഒരു ജോയിസ്റ്റിക്ക്/മോഷൻ കൺട്രോളർ നീക്കുക diff --git a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-mn/10-preferences.xml b/AnkiDroid/src/main/res/values-mn/10-preferences.xml index 0ebe52c31011..dd70942eb764 100644 --- a/AnkiDroid/src/main/res/values-mn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mn/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml index ed006a808336..5ddcf4a4e9a0 100644 --- a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? मजकूर-ते-भाषणाची भाषा उपलब्ध नाही बोलू नका - नवीन कार्ड पुनर्स्थित करा केवळ नवीन कार्डे पुनर्स्थित केली जाऊ शकतात - - %d कार्ड बदलले - %d कार्ड पुनर्स्थित केली - कार्ड प्रगती रीसेट करा %d कार्ड रीसेट diff --git a/AnkiDroid/src/main/res/values-mr/10-preferences.xml b/AnkiDroid/src/main/res/values-mr/10-preferences.xml index 0a7038eaa743..8c9ed489bcb6 100644 --- a/AnkiDroid/src/main/res/values-mr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mr/10-preferences.xml @@ -260,9 +260,7 @@ दान करून AnkiDroid च्या विकासाला समर्थन देऊ शकता. कोणतीही रक्कम खूप कौतुकास्पद आहे.]]> एक जेश्चर जोडा - जेश्चर बदला की जोडा - की बदला एक कळ दाबा जॉयस्टिक/मोशन कंट्रोलर जोडा जॉयस्टिक/मोशन कंट्रोलर हलवा diff --git a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml index 51d19de12d4e..88ca44174204 100644 --- a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? Teks-ke-ucapan bahasa tiada Jangan bercakap - Alih posisi kad baru Hanya kad baru boleh alih posisi - - %d kad telah alih posisi - Tetap semula kemajuan kad %d kad ditetap semula diff --git a/AnkiDroid/src/main/res/values-ms/10-preferences.xml b/AnkiDroid/src/main/res/values-ms/10-preferences.xml index 3539d2808924..9deb06530b91 100644 --- a/AnkiDroid/src/main/res/values-ms/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ms/10-preferences.xml @@ -260,9 +260,7 @@ menderma. Apa-apa jumlah sangat dihargai.]]> Tambah gerak isyarat - Ganti gerak isyarat Tambah kekunci - Ganti kekunci Tekan kekunci Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-my/03-dialogs.xml b/AnkiDroid/src/main/res/values-my/03-dialogs.xml index 22cc38cc490e..dee33a42274a 100644 --- a/AnkiDroid/src/main/res/values-my/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-my/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-my/10-preferences.xml b/AnkiDroid/src/main/res/values-my/10-preferences.xml index 127160523bfc..0b680887a4dd 100644 --- a/AnkiDroid/src/main/res/values-my/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-my/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml index 4c868775d098..78eec1b4d888 100644 --- a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml @@ -55,12 +55,7 @@ Verwijder gefilterd deck %s en plaats alle kaarten terug in hun oorspronkelijke decks? Geen tekst-naar-spraak taal beschikbaar Niet spreken - Nieuwe kaart verplaatsen Alleen nieuwe kaarten kunnen verplaatst worden - - %d kaart verplaatst - %d kaarten verplaatst - Herstel leervoortgang %d kaart gereset diff --git a/AnkiDroid/src/main/res/values-nl/10-preferences.xml b/AnkiDroid/src/main/res/values-nl/10-preferences.xml index 17c6ce557f43..655155fec673 100644 --- a/AnkiDroid/src/main/res/values-nl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nl/10-preferences.xml @@ -261,9 +261,7 @@ doneren. Elk bedrag wordt zeer op prijs gesteld.]]> Gebaar toevoegen - Gebaar vervangen Sleutel toevoegen - Vervang sleutel Druk op een toets Joystick/bewegingscontroller toevoegen Joystick/bewegingscontroller bewegen diff --git a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml index 64759885b0af..5d207bbdb889 100644 --- a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Ingen \"tekst til tale\"-språk tilgjengelige Ikke snakk - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Tilbakestill kortfremskritt %d card reset diff --git a/AnkiDroid/src/main/res/values-nn/10-preferences.xml b/AnkiDroid/src/main/res/values-nn/10-preferences.xml index 96f6c4be34e3..8d52ed8d93d9 100644 --- a/AnkiDroid/src/main/res/values-nn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nn/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-no/03-dialogs.xml b/AnkiDroid/src/main/res/values-no/03-dialogs.xml index 36e0d12ab6c7..1f0feb90cba1 100644 --- a/AnkiDroid/src/main/res/values-no/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-no/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Ingen \"tekst til tale\"-språk tilgjengelige Ikke snakk - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Tilbakestill kortfremskritt %d card reset diff --git a/AnkiDroid/src/main/res/values-no/10-preferences.xml b/AnkiDroid/src/main/res/values-no/10-preferences.xml index 33122a1a7bd8..86be1ff1b2d4 100644 --- a/AnkiDroid/src/main/res/values-no/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-no/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml index 91265b613b34..19c40dba26e2 100644 --- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? କୌଣସି ପାଠ୍ୟ-ରୁ-କଥନ ଭାଷା ଉପଲବ୍ଧ ନାହିଁ କଥା କୁହ ନାହିଁ - ନୂଆ ପତ୍ରଟିକୁ ପୁନଃଅଵସ୍ଥିତ କରିବା କେଵଳ ନୂଆ ପତ୍ରଗୁଡ଼ିକୁ ପୁନଃଅଵସ୍ଥିତ କରିହେବ - - %dଟିଏ ପତ୍ର ପୁନଃଅଵସ୍ଥିତ କରାଗଲା - %dଟି ପତ୍ର ପୁନଃଅଵସ୍ଥିତ କରାଗଲା - ପତ୍ରର ପ୍ରଗତି ପୁନଃସେଟ୍ କର %dଟିଏ ପତ୍ର ପୁନଃସେଟ୍ ହେଲା diff --git a/AnkiDroid/src/main/res/values-or/10-preferences.xml b/AnkiDroid/src/main/res/values-or/10-preferences.xml index 070e7dbf97be..70d0f1da84ef 100644 --- a/AnkiDroid/src/main/res/values-or/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-or/10-preferences.xml @@ -261,9 +261,7 @@ ଦାନ କରି AnkiDroidର ବିକାଶକୁ ସମର୍ଥନ କରିପାରିବେ। ଯେକୌଣସି ରାଶି ଅତ୍ୟନ୍ତ ପ୍ରଶଂସନୀୟ ଅଟେ।]]> ଅଙ୍ଗଭଙ୍ଗୀ ଯୋଡ଼ନ୍ତୁ - ଅଙ୍ଗଭଙ୍ଗୀ ବଦଳାନ୍ତୁ Key ଯୋଡ଼ନ୍ତୁ - Key ବଦଳାନ୍ତୁ ଏକ key ଦବାନ୍ତୁ Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml index 8ecd426eccdc..1c3d7a2428fb 100644 --- a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml @@ -55,12 +55,7 @@ ਫਿਲਟਰ ਕੀਤੇ ਡੈੱਕ %s ਨੂੰ ਮਿਟਾਉਣਾ ਹੈ ਅਤੇ ਸਾਰੇ ਕਾਰਡਾਂ ਨੂੰ ਉਹਨਾਂ ਦੇ ਅਸਲ ਡੈੱਕ \'ਤੇ ਵਾਪਸ ਕਰਨਾ ਹੈ? ਕੋਈ ਟੈਕਸਟ-ਟੂ-ਸਪੀਚ ਭਾਸ਼ਾ ਉਪਲਬਧ ਨਹੀਂ ਹੈ ਨਾ ਬੋਲੋ - ਨਵਾਂ ਕਾਰਡ ਬਦਲੋ ਸਿਰਫ਼ ਨਵੇਂ ਕਾਰਡਾਂ ਨੂੰ ਹੀ ਮੁੜ-ਸਥਾਪਿਤ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ - - %d ਕਾਰਡ ਮੁੜ-ਸਥਾਪਤ ਕੀਤਾ ਗਿਆ - %d ਕਾਰਡ ਮੁੜ-ਸਥਾਪਤ ਕੀਤੇ ਗਏ - ਕਾਰਡ ਦੀ ਪ੍ਰਗਤੀ ਨੂੰ ਰੀਸੈਟ ਕਰੋ %d ਕਾਰਡ ਰੀਸੈੱਟ diff --git a/AnkiDroid/src/main/res/values-pa/10-preferences.xml b/AnkiDroid/src/main/res/values-pa/10-preferences.xml index 83b13ccc29e4..d8c8c8817758 100644 --- a/AnkiDroid/src/main/res/values-pa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pa/10-preferences.xml @@ -261,9 +261,7 @@ ਦਾਨ ਦੇ ਕੇ AnkiDroid ਦੇ ਵਿਕਾਸ ਦਾ ਸਮਰਥਨ ਕਰ ਸਕਦੇ ਹੋ। ਕਿਸੇ ਵੀ ਰਕਮ ਦੀ ਡੂੰਘਾਈ ਨਾਲ ਸ਼ਲਾਘਾ ਕੀਤੀ ਜਾਂਦੀ ਹੈ.]]> ਸੰਕੇਤ ਸ਼ਾਮਲ ਕਰੋ - ਸੰਕੇਤ ਬਦਲੋ ਕੁੰਜੀ ਸ਼ਾਮਲ ਕਰੋ - ਕੁੰਜੀ ਨੂੰ ਬਦਲੋ ਇੱਕ ਕੁੰਜੀ ਦਬਾਓ ਜਾਇਸਟਿਕ/ਮੋਸ਼ਨ ਕੰਟਰੋਲਰ ਸ਼ਾਮਲ ਕਰੋ ਇੱਕ ਜਾਇਸਟਿਕ/ਮੋਸ਼ਨ ਕੰਟਰੋਲਰ ਨੂੰ ਹਿਲਾਓ diff --git a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml index ce87767c4906..e960fc4ec44f 100644 --- a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml @@ -57,14 +57,7 @@ Czy na pewno chcesz usunąć filtrowaną talię %s i przenieść wszystkie karty do ich oryginalnych talii? Brak dostępnego języka zamiany tekstu na mowę Nie mów - Przestawianie nowej karty Tylko nowe karty mogą być przestawione - - %d karta przestawiona - %d karty przestawione - %d kart przestawiono - %d kart przestawiono - Reset postępu karty %d karta zresetowana diff --git a/AnkiDroid/src/main/res/values-pl/10-preferences.xml b/AnkiDroid/src/main/res/values-pl/10-preferences.xml index eeb95cc99efd..bb1697e1b5f8 100644 --- a/AnkiDroid/src/main/res/values-pl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pl/10-preferences.xml @@ -265,9 +265,7 @@ darowizną. Jesteśmy wdzięczni za każdą kwotę.]]> Dodaj gest - Zastąp gest Dodaj klawisz - Zamień klucz Naciśnij klawisz Add joystick/motion controller Move a joystick/motion controller 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 af3c604e648e..9642f607ec86 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml @@ -55,12 +55,7 @@ Excluir baralho filtrado %s e enviar todos os cartões de volta para seus baralhos originais? Nenhum idioma de texto para fala disponível Não fale - Reposicionar novo cartão Apenas novos cartões podem ser reposicionados - - %d cartão reposicionado - %d cards reposicionados - Redefinir progresso do cartão %d resetar cartão 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 60fbf1794859..7f253f75ca17 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml @@ -261,9 +261,7 @@ doando. Qualquer quantia é profundamente apreciada.]]> Adicionar gesto - Substituir gesto Adicionar tecla - Substituir tecla Pressione uma tecla Adicionar controle Movimente o controle 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 24fd97425b11..7f48f7c8d9e8 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml @@ -55,12 +55,7 @@ Apagar baralho filtrado %s e devolver fichas aos seus baralhos originais? Nenhuma língua disponível para o sistema de conversão de texto para fala Não falar - Reposicionar a nova ficha Apenas novas fichas podem ser reposicionadas. - - %d ficha reposicionada - %d fichas reposicionadas - Reiniciar progresso da ficha %d ficha reinicializada 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 c2cb83f98fd0..6e98a71bff39 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml @@ -262,9 +262,7 @@ doar. Ficamos muito gratos independentemente do valor.]]> Adicionar gesto - Substituir gesto Adicionar tecla - Substituir tecla Pressione uma tecla Adicionar um \"joystick\"/comando de movimento Mover um \"joystick\"/comando de movimento diff --git a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml index 99d5f8edc323..ba248204934a 100644 --- a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml @@ -56,13 +56,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Nu vorbi - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - %d cards repositioned - Resetează progresul de carduri %d card reset diff --git a/AnkiDroid/src/main/res/values-ro/10-preferences.xml b/AnkiDroid/src/main/res/values-ro/10-preferences.xml index 17fc2c02636b..8d04dae2c5d9 100644 --- a/AnkiDroid/src/main/res/values-ro/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ro/10-preferences.xml @@ -264,9 +264,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml index 840e47a8922c..6868fabf7951 100644 --- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml @@ -57,14 +57,7 @@ Удалить отфильтрованную колоду %s и отправить все карточки обратно в оригинальные колоды? Синтез речи недоступен Не произносить - Переместить новую карточку Можно переместить только новые карточки - - %d карточка перемещена - %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 81027c75c21a..4be4e744e4bc 100644 --- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml @@ -264,9 +264,7 @@ пожертвованием. Любая сумма сильно поможет.]]> Добавить жест - Заменить жест Добавить кнопку - Заменить клавишу Нажмите кнопку Добавить джойстик/контроллер движения Переместить джойстик/контроллер движения diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml index bd2817550f81..4df5e25aeb76 100644 --- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml @@ -55,12 +55,7 @@ ᱯᱷᱤᱞᱴᱟᱨ ᱟᱠᱟᱫ ᱰᱮᱠ %s ᱵᱚᱫᱚᱞ ᱢᱮ ᱟᱨ ᱡᱚᱛᱚ ᱠᱟᱨᱰ ᱟᱠᱚᱣᱟᱜ ᱚᱨᱡᱤᱱᱤᱭᱟᱞ ᱰᱮᱠ ᱨᱮ ᱵᱚᱫᱚᱞ ᱢᱮ? text-to-speech ᱯᱟᱹᱨᱥᱤ ᱵᱟᱱᱩᱜᱼᱟ ᱾ ᱟᱞᱚᱢ ᱨᱚᱲᱟ - ᱱᱟᱶᱟ ᱠᱟᱰ ᱥᱛᱷᱟᱱᱚᱱᱛᱚᱨ ᱯᱮ ᱠᱷᱟᱹᱞᱤ ᱱᱟᱶᱟ ᱠᱟᱰ ᱜᱮ ᱥᱛᱷᱟᱱᱚᱱᱛᱚᱨ ᱫᱟᱲᱮᱭᱟᱜᱟᱢ - - %d ᱠᱟᱰ ᱥᱛᱷᱟᱱᱚᱱᱛᱚᱨ ᱮᱱᱟ - %d ᱠᱟᱰ ᱥᱛᱷᱟᱱᱚᱱᱛᱚᱨ ᱮᱱᱟ - ᱠᱟᱰ ᱨᱤᱥᱮᱴ ᱯᱨᱚᱜᱨᱮᱥᱚᱜ ᱠᱟᱱᱟ %d ᱠᱟᱰ ᱨᱤᱥᱮᱴ diff --git a/AnkiDroid/src/main/res/values-sat/10-preferences.xml b/AnkiDroid/src/main/res/values-sat/10-preferences.xml index 99ce44ceecd2..671711b4852a 100644 --- a/AnkiDroid/src/main/res/values-sat/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sat/10-preferences.xml @@ -261,9 +261,7 @@ ᱫᱚᱦᱚᱭ ᱠᱟᱛᱮ AnkiDroid ᱨᱮᱭᱟᱜ ᱩᱛᱷᱱᱟᱹᱣ ᱨᱮ ᱜᱚᱲᱚ ᱮᱢ ᱫᱟᱲᱮᱭᱟᱜᱼᱟ ᱾ ᱡᱟᱦᱟᱸᱱ ᱮᱢᱟᱱ ᱜᱮ ᱟᱹᱰᱤ ᱟᱞᱜᱟ ᱛᱮᱭ ᱢᱟᱱᱟᱣ ᱵᱟᱛᱟᱣᱜᱼᱟ ᱾]]> ᱤᱥᱟᱨᱟ ᱡᱚᱲᱟᱣ - ᱪᱤᱱᱦᱟᱹ ᱵᱚᱫᱚᱞ ᱢᱮ Key ᱡᱚᱲᱟᱣ - ᱪᱷᱟᱸᱪ ᱫᱚᱦᱚᱭ ᱢᱮ ᱢᱤᱫ key ᱚᱛᱟᱭ ᱢᱮ ᱡᱚᱭᱥᱴᱤᱠ/ᱢᱳᱥᱚᱱ ᱠᱚᱱᱴᱨᱚᱞᱟᱨ ᱥᱮᱞᱮᱫ ᱢᱮ ᱡᱚᱭᱥᱴᱤᱠ/ᱢᱳᱥᱚᱱ ᱠᱚᱱᱴᱨᱚᱞᱟᱨ ᱥᱮᱞᱮᱫ ᱢᱮ diff --git a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml index ff464bc9927e..0b8ac32bff10 100644 --- a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml @@ -55,12 +55,7 @@ Iscantzellare su matzu filtradu %s e torrare a imbiare totu sas cartas a sos matzos originale issoro? Non b\'est a disponimentu peruna limba de sìntesi vocale Non chistiones - Torra a positzionare sa carta noa Petzi sas cartas noas si podent torrare a positzionare - - %d carta torrada a positzionare - %d cartas torradas a positzionare - Reseta su progressu de sa carta %d carta resetada diff --git a/AnkiDroid/src/main/res/values-sc/10-preferences.xml b/AnkiDroid/src/main/res/values-sc/10-preferences.xml index b3a41ada6f3a..b20799979594 100644 --- a/AnkiDroid/src/main/res/values-sc/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sc/10-preferences.xml @@ -261,9 +261,7 @@ cun una donatzione. Cale si siat tantu est apretziadu meda.]]> Annanghe unu gestu - Sostitui su gestu Annanghe una tecla - Sostitui sa tecla Incarca una tecla Annanghe unu joystick/controllore de movimentu Move unu joystick/controllore de movimentu diff --git a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml index d51bbc6ced8e..13775ea7ea11 100644 --- a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml @@ -57,14 +57,7 @@ Delete filtered deck %s and send all cards back to their original decks? Žiaden TTS jazyk nie je k dispozícii Nehovoriť - Premiestniť novú kartičku Len pri nových kartách je možné zmeniť pozíciu (premiestniť) - - %d premiestnená kartička - %d premiestnené kartičky - %d premiestnených kartičiek - %d premiestnených kartičiek - Vynulovať zaznamenaný priebeh v učení kartičky %d resetovaná kartička diff --git a/AnkiDroid/src/main/res/values-sk/10-preferences.xml b/AnkiDroid/src/main/res/values-sk/10-preferences.xml index 1a130d82421a..d56e290f5483 100644 --- a/AnkiDroid/src/main/res/values-sk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sk/10-preferences.xml @@ -266,9 +266,7 @@ donating. Any amount is deeply appreciated.]]> Pridať gesto - Replace gesture Pridať kláves - Replace key Stlačte kláves Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml index 7521d91d69ec..99d4f98e7b5c 100644 --- a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml @@ -57,14 +57,7 @@ Delete filtered deck %s and send all cards back to their original decks? Noben jezik pretvorbe besedila v govor ni na voljo Bodite tiho - Prestavi novo kartico Prerazporedite lahko samo nove kartice. - - %d card repositioned - %d cards repositioned - %d cards repositioned - %d cards repositioned - Ponastavi napredek kartice %d card reset diff --git a/AnkiDroid/src/main/res/values-sl/10-preferences.xml b/AnkiDroid/src/main/res/values-sl/10-preferences.xml index 36e124fe6764..b089598c87cc 100644 --- a/AnkiDroid/src/main/res/values-sl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sl/10-preferences.xml @@ -266,9 +266,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml index 278dde3d432d..2da1db3d7508 100644 --- a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Nuk ka gjuhë tekst-në-fjalë të disponueshme mos fol - Rivendosni kartën e re Vetëm kartat e reja mund të ripozicionohen - - %d kartë u ripozicionua - %d karta u ripozicionuan - Rivendos progresin e kartës Rivendosja e %d kartës diff --git a/AnkiDroid/src/main/res/values-sq/10-preferences.xml b/AnkiDroid/src/main/res/values-sq/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-sq/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sq/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml index 9b37e016c3f1..97bfdfa7324d 100644 --- a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml @@ -56,13 +56,7 @@ Delete filtered deck %s and send all cards back to their original decks? Функција претварања текста у говор није доступна Не изговарај - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - %d cards repositioned - Ресетовање прогреса учења карте %d card reset diff --git a/AnkiDroid/src/main/res/values-sr/10-preferences.xml b/AnkiDroid/src/main/res/values-sr/10-preferences.xml index e430fd071d38..b9f2d6d8701e 100644 --- a/AnkiDroid/src/main/res/values-sr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sr/10-preferences.xml @@ -264,9 +264,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ss/10-preferences.xml b/AnkiDroid/src/main/res/values-ss/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-ss/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ss/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml index 07e243b3eade..676904a232bc 100644 --- a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml @@ -55,12 +55,7 @@ Ta bort filtrerad kortlek %s och skicka alla kort tillbaks till deras ursprungliga kortlek? Det finns inget språk för text-till-tal Tala inte - Ompositionera nytt kort Endast nya kort kan ompositioneras - - %d kort ompositionerat - %d kort ompositionerade - Återställ kortets framsteg %d kort återställt diff --git a/AnkiDroid/src/main/res/values-sv/10-preferences.xml b/AnkiDroid/src/main/res/values-sv/10-preferences.xml index a7fcfe5f041d..2a88f7e65575 100644 --- a/AnkiDroid/src/main/res/values-sv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sv/10-preferences.xml @@ -261,9 +261,7 @@ donera. Alla donationer uppskattas enormt!]]> Lägg till gest - Ersätt gest Lägg till knapp - Ersätt knapp Tryck på en knapp Lägg till joystick/rörelsekänslig handkontroll Manövrera en joystick/rörelsekänslig handkontroll diff --git a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-sw/10-preferences.xml b/AnkiDroid/src/main/res/values-sw/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-sw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sw/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml index 1c31150d8f24..0a6bcb030f2d 100644 --- a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml @@ -55,12 +55,7 @@ வடிகட்டப்பட்ட டெக்கை %sஐ நீக்கி, எல்லா கார்டுகளையும் அவற்றின் அசல் டெக்குகளுக்கு அனுப்பவா? உரையிலிருந்து பேச்சு மொழி இல்லை பேசாதே - புதிய அட்டையை மாற்றவும் புதிய அட்டைகளை மட்டுமே இடமாற்றம் செய்ய முடியும் - - %d கார்டு மாற்றப்பட்டது - %d கார்டுகள் இடமாற்றம் செய்யப்பட்டன - அட்டையின் முன்னேற்றத்தை மீட்டமைக்கவும் %d அட்டை மீட்டமைப்பு diff --git a/AnkiDroid/src/main/res/values-ta/10-preferences.xml b/AnkiDroid/src/main/res/values-ta/10-preferences.xml index 7add29ec4ef0..4bd7db5c43d9 100644 --- a/AnkiDroid/src/main/res/values-ta/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ta/10-preferences.xml @@ -261,9 +261,7 @@ நன்கொடை அளிப்பதன் மூலம் AnkiDroid இன் வளர்ச்சியை ஆதரிக்கலாம். எந்தத் தொகையும் ஆழமாகப் பாராட்டப்படுகிறது.]]> சைகையைச் சேர்க்கவும் - சைகையை மாற்றவும் விசையைச் சேர்க்கவும் - விசையை மாற்றவும் ஒரு விசையை அழுத்தவும் கடைசி ஒத்திசைவு 10 க்கும் அதிகமாக இருந்தால், தொடக்க/வெளியேறும்போது பயன்பாடு தானாகவே ஒத்திசைக்கப்படும் கடைசி ஒத்திசைவு 10 க்கும் அதிகமாக இருந்தால், தொடக்க/வெளியேறும்போது பயன்பாடு தானாகவே ஒத்திசைக்கப்படும் diff --git a/AnkiDroid/src/main/res/values-te/03-dialogs.xml b/AnkiDroid/src/main/res/values-te/03-dialogs.xml index 576d855c592e..884a82b12b2d 100644 --- a/AnkiDroid/src/main/res/values-te/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-te/03-dialogs.xml @@ -55,12 +55,7 @@ ఫిల్టర్ చేసిన డెక్ %sని తొలగించి, అన్ని కార్డ్‌లను వాటి అసలు డెక్‌లకు తిరిగి పంపాలా? టెక్స్ట్-టు-స్పీచ్ లాంగ్వేజ్ అందుబాటులో లేదు మాట్లాడకండి - కొత్త కార్డును భర్తీ చేయండి కొత్త కార్డ్‌లను మాత్రమే రీపోజిషన్ చేయవచ్చు - - %d కార్డ్ రీపోజిషన్ చేయబడింది - %d కార్డ్‌లు రీపోజిషన్ చేయబడ్డాయి - కార్డ్ పురోగతిని రీసెట్ చేయండి %d కార్డ్ రీసెట్ diff --git a/AnkiDroid/src/main/res/values-te/10-preferences.xml b/AnkiDroid/src/main/res/values-te/10-preferences.xml index 3aebbf1dd2ad..f7185c45f585 100644 --- a/AnkiDroid/src/main/res/values-te/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-te/10-preferences.xml @@ -260,9 +260,7 @@ దానం చేయడం ద్వారా AnkiDroid అభివృద్ధికి మద్దతు ఇవ్వవచ్చు. ఏదైనా మొత్తం లోతుగా ప్రశంసించబడుతుంది.]]> సంజ్ఞను జోడించండి - సంజ్ఞను భర్తీ చేయండి ఒక కీని జోడించండి - కీని భర్తీ చేయండి ఒక కీని నొక్కండి జాయ్‌స్టిక్/మోషన్ కంట్రోలర్‌ను జోడించండి జాయ్‌స్టిక్/మోషన్ కంట్రోలర్‌ను తరలించండి diff --git a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml index 395014fd7a15..954422112bc9 100644 --- a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-tg/10-preferences.xml b/AnkiDroid/src/main/res/values-tg/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-tg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tg/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml index eb34ddd44aca..f63aa6b35468 100644 --- a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? Walang available na wika sa teksto-sa-salita Huwag kang magsalita - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - I-reset ang progreso ng baraha %d card reset diff --git a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml index 1b5bf2e4091d..0029c1b69a36 100644 --- a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-th/03-dialogs.xml b/AnkiDroid/src/main/res/values-th/03-dialogs.xml index ecb2c3a28ce2..4c4d14477486 100644 --- a/AnkiDroid/src/main/res/values-th/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-th/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-th/10-preferences.xml b/AnkiDroid/src/main/res/values-th/10-preferences.xml index 0ae3b7c013c5..28ba47737894 100644 --- a/AnkiDroid/src/main/res/values-th/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-th/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ti/10-preferences.xml b/AnkiDroid/src/main/res/values-ti/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-ti/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ti/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-tn/10-preferences.xml b/AnkiDroid/src/main/res/values-tn/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-tn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tn/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml index 82a58537911e..7d60af4b2ac1 100644 --- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml @@ -55,12 +55,7 @@ %s filtreli destesi silinip bütün kartlar orjinal destelerine gönderilsin mi? Mevcut metin okuma dili yok Konuşma - Yeni kartın yerini değiştir Yalnızca yeni kartların yeri değiştirilebilir - - %d kartın yeri değiştirildi - %d kartın yeri değiştirildi - Kart ilerlemesini sıfırla %d kart sıfırlandı diff --git a/AnkiDroid/src/main/res/values-tr/10-preferences.xml b/AnkiDroid/src/main/res/values-tr/10-preferences.xml index ab5b7816e919..581abb33335e 100644 --- a/AnkiDroid/src/main/res/values-tr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tr/10-preferences.xml @@ -261,9 +261,7 @@ bağış yaparak destek olabilirsiniz. Miktarı ne olursa olsun içten teşekkürlerimizi kazanırsınız.]]> Hareket ekle - El hareketini değiştir Anahtar ekle - Tuşu değiştir Bir tuşa basın Joystick/hareket kumandası ekle Bir joystick/hareket kumandasını hareket ettir diff --git a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ts/10-preferences.xml b/AnkiDroid/src/main/res/values-ts/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-ts/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ts/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml index c2a26a0dd82a..e528468d6b38 100644 --- a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Прогрессны бетерү %d кәрт ясалган diff --git a/AnkiDroid/src/main/res/values-tt/10-preferences.xml b/AnkiDroid/src/main/res/values-tt/10-preferences.xml index 70b7efb5fb43..47ef5504b5b8 100644 --- a/AnkiDroid/src/main/res/values-tt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tt/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Ачкыч өстәү - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml index f160f85e607c..4870473eab98 100644 --- a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml @@ -55,12 +55,7 @@ سۈزۈلگەن دەستە %s نى ئۆچۈرۈپ، ھەممە كارتىنى ئەسلىدىكى دەستىگە قايتۇرامدۇ؟ بۇ تىلدا ئىشلەتكىلى بولىدىغان تېكىستتىن ئاۋازغا موتورى يوق سۆزلىمە - يېڭى كارتىنى قايتا تەرتىپلە پەقەت يېڭى كارتىنىڭ ئورنىنىلا يۆتكىگىلى بولىدۇ - - %d كارتىنىڭ ئورنى يۆتكەلدى - %d كارتىنىڭ ئورنى يۆتكەلدى - كارتا ئىلگىرىلەش جەريانىنى ئەسلىگە قايتۇر %d كارتا ئەسلىگە قايتۇرۇلدى diff --git a/AnkiDroid/src/main/res/values-ug/10-preferences.xml b/AnkiDroid/src/main/res/values-ug/10-preferences.xml index a44bf7c07923..76799524b357 100644 --- a/AnkiDroid/src/main/res/values-ug/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ug/10-preferences.xml @@ -262,9 +262,7 @@ ئىئانە قىلىش ئارقىلىق قوللىيالايسىز. ھەر قانداق مىقداردىكى ئىئانە چوڭقۇر ئالقىشلىنىدۇ.]]> قول ئىشارەت قوش - قول ئىشارەتنى ئالماشتۇر توپچە قوش - توپچە ئالماشتۇر توپچە باس ئويۇن تىزگىنىكى/ھەرىكەت تىزگىنلىگۈچ قوشىدۇ ئويۇن تىزگىنىكى/ھەرىكەت تىزگىنلىگۈچ يۆتكەيدۇ diff --git a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml index 7f872318bebb..806200a82e72 100644 --- a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml @@ -57,14 +57,7 @@ Видалити фільтровану колоду %s і повернути всі картки до оригінальних колод? Відсутня мова для перетворення тексту в мовлення Не говорити - Перемістити нову картку Можна перемістити тільки нові картки - - %d картку переміщено - %d картки переміщено - %d карток переміщено - %d карток переміщено - Скинути прогрес картки %d картку скинуто diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index 1b40a9762b94..7f154a8bbbfb 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -266,9 +266,7 @@ внеском. Будь-яка сума глибоко цінується.]]> Додати жест - Замінити жест Додати клавішу - Замінити клавішу Натисніть клавішу Додати джойстик/контролер руху Рухайте джойстиком/контролером руху diff --git a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml index e770abefa4b9..ae062e68e385 100644 --- a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml @@ -55,12 +55,7 @@ فلٹر شدہ ڈیک %s کو حذف کریں اور تمام کارڈز کو ان کے اصل ڈیک پر واپس بھیجیں؟ متن سے تقریر کی کوئی زبان دستیاب نہیں ہے۔ مت بولو - نئے کارڈ کی جگہ صرف نئے کارڈز کی جگہ تبدیل کی جا سکتی ہے۔ - - %d کارڈ دوبارہ ترتیب دیا گیا۔ - %d کارڈز کی جگہ بدل دی گئی۔ - کارڈ کی پیشرفت کو دوبارہ ترتیب دیں۔ %d کارڈ ری سیٹ diff --git a/AnkiDroid/src/main/res/values-ur/10-preferences.xml b/AnkiDroid/src/main/res/values-ur/10-preferences.xml index 680a1cd5002c..76cd17eb7f99 100644 --- a/AnkiDroid/src/main/res/values-ur/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ur/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml index d5eb04aa619a..568506b57755 100644 --- a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d ta karta qayta joylandi - %d ta kartalar qayta joylandi - Reset card progress %d karta restart qilindi diff --git a/AnkiDroid/src/main/res/values-uz/10-preferences.xml b/AnkiDroid/src/main/res/values-uz/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-uz/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uz/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-ve/10-preferences.xml b/AnkiDroid/src/main/res/values-ve/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-ve/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ve/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml index 33a83f0beafa..10f8a11749c4 100644 --- a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? Không có ngôn ngữ chuyển-văn-bản-thành-lời Đừng phát âm - Đặt lại vị trí thẻ mới Chỉ thẻ mới có thể được định vị lại - - %d thẻ được định vị lại - Đặt lại tiến trình thẻ đặt lại thẻ %d diff --git a/AnkiDroid/src/main/res/values-vi/10-preferences.xml b/AnkiDroid/src/main/res/values-vi/10-preferences.xml index 17569a4ac286..31351f63b732 100644 --- a/AnkiDroid/src/main/res/values-vi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-vi/10-preferences.xml @@ -258,9 +258,7 @@ quyên góp. Bất kỳ số tiền nào cũng được đánh giá cao.]]> Add gesture - Thay thế cử chỉ Add key - Thay thế khoá Press a key Thêm cần điều khiển/bộ điều khiển chuyển động Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml index ecb2c3a28ce2..4c4d14477486 100644 --- a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-wo/10-preferences.xml b/AnkiDroid/src/main/res/values-wo/10-preferences.xml index 127160523bfc..0b680887a4dd 100644 --- a/AnkiDroid/src/main/res/values-wo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-wo/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-xh/10-preferences.xml b/AnkiDroid/src/main/res/values-xh/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-xh/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-xh/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller diff --git a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml index cd4f0bfd2441..75dccb971b0a 100644 --- a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml @@ -54,11 +54,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d cards repositioned - Reset card progress %d cards reset diff --git a/AnkiDroid/src/main/res/values-yue/10-preferences.xml b/AnkiDroid/src/main/res/values-yue/10-preferences.xml index 127160523bfc..0b680887a4dd 100644 --- a/AnkiDroid/src/main/res/values-yue/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-yue/10-preferences.xml @@ -260,9 +260,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller 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 96a0ed0bfb51..c67726c1bf01 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml @@ -54,11 +54,7 @@ 删除筛选过的牌组 %s 并将所有卡片发回原牌组? 没有可用的文字转语音(TTS)语言 不要朗读 - 更改新卡位置 只有新卡牌可被更改位置 - - %d 张卡牌已更改位置 - 重设卡片进度 %d 张卡牌已重置 diff --git a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml index 82b00eaf7b2d..c787cfd8d38d 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml @@ -259,9 +259,7 @@ 捐赠 支持 AnkiDroid 的开发。我们感谢任何数额的捐赠。]]> 添加手势 - 替换手势 添加按键 - 替换按键 按下按键 添加游戏杆/运动控制器 移动游戏杆/运动控制器 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 c852d47ec2b2..f5c57449752b 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml @@ -54,11 +54,7 @@ 刪除篩選過的牌組 %s 並將所有卡片發回原牌組? 沒有可用的朗讀語言 不要發音 - 變更新卡片位置 只有新卡片可以變更位置 - - %d 卡片已變更位置 - 重置卡片進度 %d 卡片已重設 diff --git a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml index c7948a52a73b..f8eb7698c2d6 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml @@ -259,9 +259,7 @@ 捐贈支持AnkiDroid的開發。 我們感謝任何數額的捐贈。]]> 新增手勢 - 替換手勢 新增按鍵 - 替換按鍵 按一個按鍵 新增搖桿/運動控制器 移動搖桿/運動控制器 diff --git a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml index d156c86298d1..a90006f09ce1 100644 --- a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml @@ -55,12 +55,7 @@ Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available Don’t speak - Reposition new card Only new cards can be repositioned - - %d card repositioned - %d cards repositioned - Reset card progress %d card reset diff --git a/AnkiDroid/src/main/res/values-zu/10-preferences.xml b/AnkiDroid/src/main/res/values-zu/10-preferences.xml index ea74a38d8c9d..29e92629b16c 100644 --- a/AnkiDroid/src/main/res/values-zu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zu/10-preferences.xml @@ -262,9 +262,7 @@ donating. Any amount is deeply appreciated.]]> Add gesture - Replace gesture Add key - Replace key Press a key Add joystick/motion controller Move a joystick/motion controller From 86145585b3bb251b13ec31d14920485b13c31c46 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Fri, 14 Feb 2025 02:59:20 +0000 Subject: [PATCH 056/200] Bumped version to 2.21alpha13 --- AnkiDroid/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/build.gradle b/AnkiDroid/build.gradle index ea75cd815017..95757cc736f9 100644 --- a/AnkiDroid/build.gradle +++ b/AnkiDroid/build.gradle @@ -85,8 +85,8 @@ android { // // This ensures the correct ordering between the various types of releases (dev < alpha < beta < release) which is // needed for upgrades to be offered correctly. - versionCode=22100112 - versionName="2.21alpha12" + versionCode=22100113 + versionName="2.21alpha13" minSdk libs.versions.minSdk.get().toInteger() // After #13695: change .tests_emulator.yml From a72258a5e8bcd6636a285036db925ef12c424a7f Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 14 Feb 2025 06:16:35 -0300 Subject: [PATCH 057/200] fixup: improve ControlPreference style I forgot to push the requested changes in 17927 before it got merged --- .../java/com/ichi2/preferences/ControlPreference.kt | 10 +++++----- AnkiDroid/src/main/res/layout/control_preference.xml | 9 +++------ .../main/res/layout/control_preference_list_item.xml | 3 +-- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt b/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt index b3c39f9ebf37..9608f81aec4d 100644 --- a/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt +++ b/AnkiDroid/src/main/java/com/ichi2/preferences/ControlPreference.kt @@ -19,7 +19,6 @@ package com.ichi2.preferences import android.app.Dialog import android.content.Context import android.os.Bundle -import android.text.TextUtils import android.util.AttributeSet import android.view.View import android.widget.ArrayAdapter @@ -45,6 +44,7 @@ import com.ichi2.ui.AxisPicker import com.ichi2.ui.KeyPicker import com.ichi2.utils.create import com.ichi2.utils.customView +import com.ichi2.utils.dp import com.ichi2.utils.negativeButton import com.ichi2.utils.positiveButton import com.ichi2.utils.show @@ -89,8 +89,8 @@ open class ControlPreference : binding: Binding, warningDisplay: WarningDisplay?, ): Boolean { - val bindingPreference = getPreferenceAssignedTo(binding) - if (bindingPreference == null || bindingPreference == this) return false + val bindingPreference = getPreferenceAssignedTo(binding) ?: return false + if (bindingPreference == this) return false val actionTitle = bindingPreference.title ?: "" val warning = context.getString(R.string.bindings_already_bound, actionTitle) if (warningDisplay != null) { @@ -104,7 +104,7 @@ open class ControlPreference : var value: String? get() = getPersistedString(null) set(value) { - if (!TextUtils.equals(getPersistedString(null), value)) { + if (value != getPersistedString(null)) { persistString(value) notifyChanged() } @@ -232,7 +232,7 @@ class ControlPreferenceDialogFragment : DialogFragment() { return AlertDialog.Builder(requireContext()).create { setTitle(preference.title) setIcon(preference.icon) - customView(view, paddingTop = 24) + customView(view, paddingTop = 16.dp.toPx(context)) negativeButton(R.string.dialog_cancel) } } diff --git a/AnkiDroid/src/main/res/layout/control_preference.xml b/AnkiDroid/src/main/res/layout/control_preference.xml index 06c4cee8468c..86f7c12d643c 100644 --- a/AnkiDroid/src/main/res/layout/control_preference.xml +++ b/AnkiDroid/src/main/res/layout/control_preference.xml @@ -15,8 +15,7 @@ android:text="@string/binding_add_gesture" android:gravity="center_vertical" android:drawableStart="@drawable/ic_touch" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:paddingHorizontal="24dp" android:drawablePadding="16dp" android:background="?android:attr/selectableItemBackground" android:clickable="true" @@ -31,8 +30,7 @@ android:text="@string/binding_add_key" android:drawableStart="@drawable/ic_keyboard" android:gravity="center_vertical" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:paddingHorizontal="24dp" android:drawablePadding="16dp" android:background="?android:attr/selectableItemBackground" android:clickable="true" @@ -47,8 +45,7 @@ android:text="@string/binding_add_axis" android:drawableStart="@drawable/ic_videogame" android:gravity="center_vertical" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:paddingHorizontal="24dp" android:drawablePadding="16dp" android:background="?android:attr/selectableItemBackground" android:clickable="true" diff --git a/AnkiDroid/src/main/res/layout/control_preference_list_item.xml b/AnkiDroid/src/main/res/layout/control_preference_list_item.xml index 5b88f37fd7b3..00269ecc46d2 100644 --- a/AnkiDroid/src/main/res/layout/control_preference_list_item.xml +++ b/AnkiDroid/src/main/res/layout/control_preference_list_item.xml @@ -4,8 +4,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_vertical" - android:paddingStart="?android:attr/listPreferredItemPaddingStart" - android:paddingEnd="?android:attr/listPreferredItemPaddingEnd" + android:paddingHorizontal="24dp" android:minHeight="?android:attr/listPreferredItemHeight" android:textAppearance="?attr/textAppearanceBodyLarge" tools:text="Remove ‘\u2328 Space’" From c6c480c0023aba20a82058cae4ed6ee4c95f6e64 Mon Sep 17 00:00:00 2001 From: Sagar Date: Sat, 15 Feb 2025 22:56:05 +0530 Subject: [PATCH 058/200] bump: update searchpreference version to 2.7.1 and fix#17967 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2e083f5c2872..b832eed919b3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -102,7 +102,7 @@ okhttp = "4.12.0" protobufKotlinLite = "4.29.3" # ../AnkiDroid/robolectricDownload.gradle may need changes - read instructions in that file robolectric = "4.14.1" -searchpreference = "2.6.2" +searchpreference = "2.7.1" seismic = "1.0.3" sharedPreferencesMock = "1.2.4" slackKeeper = "0.16.1" From 7b9fdab51d3d32589906630f9c6dfe5049535951 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Thu, 13 Feb 2025 21:41:00 -0500 Subject: [PATCH 059/200] test: mark DeckPicker context menu test flaky on windows See Issue #17821 --- .../src/test/java/com/ichi2/anki/DeckPickerTest.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.kt index c3af0913186e..d45fa527eed3 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/DeckPickerTest.kt @@ -21,18 +21,18 @@ import com.ichi2.anki.dialogs.utils.title import com.ichi2.anki.exception.UnknownDatabaseVersionException import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.utils.ext.dismissAllDialogFragments -import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.DeckId import com.ichi2.libanki.Storage import com.ichi2.libanki.utils.TimeManager import com.ichi2.testutils.BackendEmulatingOpenConflict import com.ichi2.testutils.BackupManagerTestUtilities import com.ichi2.testutils.DbUtils +import com.ichi2.testutils.common.Flaky +import com.ichi2.testutils.common.OS import com.ichi2.testutils.grantWritePermissions import com.ichi2.testutils.revokeWritePermissions import com.ichi2.utils.KotlinCleanup import com.ichi2.utils.ResourceLoader -import org.apache.commons.exec.OS import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.containsInAnyOrder import org.hamcrest.Matchers.equalTo @@ -492,6 +492,7 @@ class DeckPickerTest : RobolectricTest() { } @Test + @Flaky(OS.WINDOWS) fun `ContextMenu unburied cards when selecting UNBURY`() = runTest { startActivityNormallyOpenCollectionWithIntent(DeckPicker::class.java, Intent()).run { @@ -543,11 +544,8 @@ class DeckPickerTest : RobolectricTest() { @Test @RunInBackground - @NeedsTest("fix this on Windows") + @Flaky(OS.WINDOWS) fun version16CollectionOpens() { - if (OS.isFamilyWindows()) { - assumeTrue("test is flaky on Windows", false) - } try { setupColV16() InitialActivityWithConflictTest.setupForValid(targetContext) From a5f97d8f8b83f61d7663cb1046bbd415f7c62f72 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Sat, 15 Feb 2025 13:10:53 -0500 Subject: [PATCH 060/200] build(deps): remove apache.commons.exec As Brayan rightly pointed out, relying entirely on our `Flaky.OS` companion means we no longer have any uses at all of this dep --- AnkiDroid/build.gradle | 1 - gradle/libs.versions.toml | 3 --- 2 files changed, 4 deletions(-) diff --git a/AnkiDroid/build.gradle b/AnkiDroid/build.gradle index 95757cc736f9..1e17e14cf9ab 100644 --- a/AnkiDroid/build.gradle +++ b/AnkiDroid/build.gradle @@ -441,7 +441,6 @@ dependencies { testImplementation libs.kotlin.test.junit5 testImplementation libs.kotlinx.coroutines.test testImplementation libs.mockk - testImplementation libs.commons.exec // obtaining the OS testImplementation libs.androidx.fragment.testing // in a JvmTest we need org.json.JSONObject to not be mocked testImplementation libs.json diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b832eed919b3..b8aaefb9f8cb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -67,8 +67,6 @@ colorpicker = "1.2.0" commonsCollections4 = "4.4" # https://commons.apache.org/proper/commons-compress/changes-report.html 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.18.0" coroutines = '1.10.1' @@ -182,7 +180,6 @@ androidx-test-runner = { module = "androidx.test:runner", version.ref = "android androidx-test-rules = { module = "androidx.test:rules", version.ref = "androidxTest" } androidx-test-core = { module = "androidx.test:core", version.ref = "androidxTest" } androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "androidxWork" } -commons-exec = { module = "org.apache.commons:commons-exec", version.ref = "commonsExec" } hamcrest = { module = "org.hamcrest:hamcrest", version.ref = "hamcrest" } hamcrest-library = { module = "org.hamcrest:hamcrest-library", version.ref = "hamcrest" } ivanshafran-shared-preferences-mock = { module = "io.github.ivanshafran:shared-preferences-mock", version.ref = "sharedPreferencesMock" } From bff965abf01846e209732f89f7ecd551d5485f7b Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 20:26:25 -0300 Subject: [PATCH 061/200] refactor: inline MappableBinding.allMappings used only once now --- .../java/com/ichi2/anki/reviewer/MappableBinding.kt | 7 ------- .../java/com/ichi2/anki/reviewer/MotionEventHandler.kt | 10 ++++++++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index 818b8c27e8f3..7b4623dca05b 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -92,12 +92,5 @@ open class MappableBinding( val value = prefs.getString(command.preferenceKey, null) ?: return command.defaultValue.toMutableList() return fromPreferenceString(value) } - - @CheckResult - fun allMappings(prefs: SharedPreferences): MutableList>> = - ViewerCommand.entries - .map { - Pair(it, fromPreference(prefs, it)) - }.toMutableList() } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt index 0b04b064a4c4..6fbf12aa52f5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt @@ -22,6 +22,7 @@ import com.ichi2.anki.AbstractFlashcardViewer import com.ichi2.anki.AnkiDroidApp import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.preferences.sharedPrefs +import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference import com.ichi2.compat.CompatHelper import timber.log.Timber @@ -114,8 +115,13 @@ class MotionEventHandler( private fun getAxisButtonBindings(context: Context) = sequence { - for ((command, bindings) in MappableBinding.allMappings(context.sharedPrefs())) { - for (binding in bindings.map { it.binding }.filterIsInstance()) { + for ((command, bindings) in ViewerCommand.entries + .map { + Pair(it, fromPreference(context.sharedPrefs(), it)) + }) { + for (binding in bindings + .map { it.binding } + .filterIsInstance()) { yield(SingleAxisDetector(command, binding)) } } From 7b23fcf41d72cf704fd564553d1fadc32a51262c Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 20:45:42 -0300 Subject: [PATCH 062/200] refactor: move addBinding to tests dir used only there --- .../ichi2/anki/cardviewer/ViewerCommand.kt | 17 ++-------- .../ichi2/anki/ReviewerKeyboardInputTest.kt | 1 + .../com/ichi2/anki/ReviewerNoParamTest.kt | 1 + .../UpgradeGesturesToControlsTest.kt | 1 + .../com/ichi2/anki/utils/ext/ViewerCommand.kt | 33 +++++++++++++++++++ 5 files changed, 39 insertions(+), 14 deletions(-) create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt index 981949961f96..d9406e92042e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt @@ -17,6 +17,7 @@ package com.ichi2.anki.cardviewer import android.content.SharedPreferences import android.view.KeyEvent +import androidx.annotation.VisibleForTesting import androidx.core.content.edit import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.Binding.Companion.unicode @@ -89,19 +90,6 @@ enum class ViewerCommand { val preferenceKey: String get() = "binding_$name" - fun addBinding( - preferences: SharedPreferences, - binding: MappableBinding, - ) { - val addAtStart: (MutableList, MappableBinding) -> Boolean = { collection, element -> - // reorder the elements, moving the added binding to the first position - collection.remove(element) - collection.add(0, element) - true - } - addBindingInternal(preferences, binding, addAtStart) - } - fun addBindingAtEnd( preferences: SharedPreferences, binding: MappableBinding, @@ -118,7 +106,8 @@ enum class ViewerCommand { addBindingInternal(preferences, binding, addAtEnd) } - private fun addBindingInternal( + @VisibleForTesting + fun addBindingInternal( preferences: SharedPreferences, binding: MappableBinding, performAdd: (MutableList, MappableBinding) -> Boolean, diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt index efcfab0e6516..69b2b12d9d70 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerKeyboardInputTest.kt @@ -45,6 +45,7 @@ import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.Binding.ModifierKeys import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.ReviewerBinding +import com.ichi2.anki.utils.ext.addBinding import com.ichi2.libanki.Card import kotlinx.coroutines.Job import org.hamcrest.MatcherAssert.assertThat diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt index 18bfe2817b04..e8c6ae5b6d78 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt @@ -34,6 +34,7 @@ import com.ichi2.anki.reviewer.FullScreenMode.Companion.setPreference import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding +import com.ichi2.anki.utils.ext.addBinding import com.ichi2.libanki.Consts import com.ichi2.libanki.DeckId import com.ichi2.testutils.common.Flaky diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt index c0143e793589..221b2f470354 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt @@ -25,6 +25,7 @@ import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.anki.servicelayer.PreferenceUpgradeService.PreferenceUpgrade.Companion.UPGRADE_VERSION_PREF_KEY import com.ichi2.anki.servicelayer.PreferenceUpgradeService.PreferenceUpgrade.UpgradeGesturesToControls +import com.ichi2.anki.utils.ext.addBinding import org.hamcrest.CoreMatchers.equalTo import org.hamcrest.CoreMatchers.not import org.hamcrest.MatcherAssert.assertThat diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt new file mode 100644 index 000000000000..da74482ebd45 --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.utils.ext + +import android.content.SharedPreferences +import com.ichi2.anki.cardviewer.ViewerCommand +import com.ichi2.anki.reviewer.MappableBinding + +fun ViewerCommand.addBinding( + preferences: SharedPreferences, + binding: MappableBinding, +) { + val addAtStart: (MutableList, MappableBinding) -> Boolean = { collection, element -> + // reorder the elements, moving the added binding to the first position + collection.remove(element) + collection.add(0, element) + true + } + addBindingInternal(preferences, binding, addAtStart) +} From e52577f9b1f912918dcb8a7676b4633932d1eb06 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 20:46:49 -0300 Subject: [PATCH 063/200] refactor: inline addBindingAtEnd --- .../ichi2/anki/cardviewer/ViewerCommand.kt | 18 ---------- .../servicelayer/PreferenceUpgradeService.kt | 36 ++++++++++++++++--- 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt index d9406e92042e..d4dd2884cf5c 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt @@ -17,7 +17,6 @@ package com.ichi2.anki.cardviewer import android.content.SharedPreferences import android.view.KeyEvent -import androidx.annotation.VisibleForTesting import androidx.core.content.edit import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.Binding.Companion.unicode @@ -90,23 +89,6 @@ enum class ViewerCommand { val preferenceKey: String get() = "binding_$name" - fun addBindingAtEnd( - preferences: SharedPreferences, - binding: MappableBinding, - ) { - val addAtEnd: (MutableList, MappableBinding) -> Boolean = { collection, element -> - // do not reorder the elements - if (collection.contains(element)) { - false - } else { - collection.add(element) - true - } - } - addBindingInternal(preferences, binding, addAtEnd) - } - - @VisibleForTesting fun addBindingInternal( preferences: SharedPreferences, binding: MappableBinding, diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt index aae5aaa9a14a..1990708947b9 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt @@ -338,11 +338,27 @@ object PreferenceUpgradeService { upgradeGestureToBinding(preferences, "gestureTapLeft", Gesture.TAP_LEFT) upgradeGestureToBinding(preferences, "gestureTapCenter", Gesture.TAP_CENTER) upgradeGestureToBinding(preferences, "gestureTapRight", Gesture.TAP_RIGHT) - upgradeGestureToBinding(preferences, "gestureTapBottomLeft", Gesture.TAP_BOTTOM_LEFT) + upgradeGestureToBinding( + preferences, + "gestureTapBottomLeft", + Gesture.TAP_BOTTOM_LEFT, + ) upgradeGestureToBinding(preferences, "gestureTapBottom", Gesture.TAP_BOTTOM) - upgradeGestureToBinding(preferences, "gestureTapBottomRight", Gesture.TAP_BOTTOM_RIGHT) - upgradeVolumeGestureToBinding(preferences, "gestureVolumeUp", KeyEvent.KEYCODE_VOLUME_UP) - upgradeVolumeGestureToBinding(preferences, "gestureVolumeDown", KeyEvent.KEYCODE_VOLUME_DOWN) + upgradeGestureToBinding( + preferences, + "gestureTapBottomRight", + Gesture.TAP_BOTTOM_RIGHT, + ) + upgradeVolumeGestureToBinding( + preferences, + "gestureVolumeUp", + KeyEvent.KEYCODE_VOLUME_UP, + ) + upgradeVolumeGestureToBinding( + preferences, + "gestureVolumeDown", + KeyEvent.KEYCODE_VOLUME_DOWN, + ) } private fun upgradeVolumeGestureToBinding( @@ -400,7 +416,17 @@ object PreferenceUpgradeService { // add to the binding_COMMANDNAME preference val mappableBinding = ReviewerBinding(binding, CardSide.BOTH) - command.addBindingAtEnd(preferences, mappableBinding) + val addAtEnd: (MutableList, MappableBinding) -> Boolean = + { collection, element -> + // do not reorder the elements + if (collection.contains(element)) { + false + } else { + collection.add(element) + true + } + } + command.addBindingInternal(preferences, mappableBinding, addAtEnd) } } From fede351a10290fb9044410454cc1f49c9c2c80af Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 20:47:15 -0300 Subject: [PATCH 064/200] refactor: remove fromPreferenceKey unused --- .../src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt index d4dd2884cf5c..6b71e01a203f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt @@ -82,10 +82,6 @@ enum class ViewerCommand { USER_ACTION_9, ; - companion object { - fun fromPreferenceKey(key: String) = entries.first { it.preferenceKey == key } - } - val preferenceKey: String get() = "binding_$name" From 70082bd09bcf19863354097d309c7bf96eb2cc74 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Wed, 5 Feb 2025 20:49:34 -0300 Subject: [PATCH 065/200] refactor: inline addBindingInternal --- .../ichi2/anki/cardviewer/ViewerCommand.kt | 15 ------------- .../servicelayer/PreferenceUpgradeService.kt | 6 +++++- .../com/ichi2/anki/utils/ext/ViewerCommand.kt | 21 ++++++++++++------- 3 files changed, 19 insertions(+), 23 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt index 6b71e01a203f..526bdc9164b9 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/ViewerCommand.kt @@ -15,9 +15,7 @@ */ package com.ichi2.anki.cardviewer -import android.content.SharedPreferences import android.view.KeyEvent -import androidx.core.content.edit import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.Binding.Companion.unicode import com.ichi2.anki.reviewer.Binding.ModifierKeys @@ -25,8 +23,6 @@ import com.ichi2.anki.reviewer.Binding.ModifierKeys.Companion.ctrl import com.ichi2.anki.reviewer.Binding.ModifierKeys.Companion.shift import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.MappableBinding -import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference -import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding /** Abstraction: Discuss moving many of these to 'Reviewer' */ @@ -85,17 +81,6 @@ enum class ViewerCommand { val preferenceKey: String get() = "binding_$name" - fun addBindingInternal( - preferences: SharedPreferences, - binding: MappableBinding, - performAdd: (MutableList, MappableBinding) -> Boolean, - ) { - val bindings: MutableList = fromPreference(preferences, this) - performAdd(bindings, binding) - val newValue: String = bindings.toPreferenceString() - preferences.edit { putString(preferenceKey, newValue) } - } - // If we use the serialised format, then this adds additional coupling to the properties. val defaultValue: List get() { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt index 1990708947b9..21a213fb38b1 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt @@ -49,6 +49,7 @@ import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.FullScreenMode import com.ichi2.anki.reviewer.MappableBinding +import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.libanki.Consts @@ -426,7 +427,10 @@ object PreferenceUpgradeService { true } } - command.addBindingInternal(preferences, mappableBinding, addAtEnd) + val bindings: MutableList = fromPreference(preferences, command) + addAtEnd(bindings, mappableBinding) + val newValue: String = bindings.toPreferenceString() + preferences.edit { putString(command.preferenceKey, newValue) } } } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt index da74482ebd45..6bb72e9c7bdd 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt @@ -16,18 +16,25 @@ package com.ichi2.anki.utils.ext import android.content.SharedPreferences +import androidx.core.content.edit import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.reviewer.MappableBinding +import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference +import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString fun ViewerCommand.addBinding( preferences: SharedPreferences, binding: MappableBinding, ) { - val addAtStart: (MutableList, MappableBinding) -> Boolean = { collection, element -> - // reorder the elements, moving the added binding to the first position - collection.remove(element) - collection.add(0, element) - true - } - addBindingInternal(preferences, binding, addAtStart) + val addAtStart: (MutableList, MappableBinding) -> Boolean = + { collection, element -> + // reorder the elements, moving the added binding to the first position + collection.remove(element) + collection.add(0, element) + true + } + val bindings: MutableList = fromPreference(preferences, this) + addAtStart(bindings, binding) + val newValue: String = bindings.toPreferenceString() + preferences.edit { putString(preferenceKey, newValue) } } From f70f20ce7d53e7fd70b792541103d839112f68b7 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 7 Feb 2025 06:11:37 -0300 Subject: [PATCH 066/200] refactor: extract version prefix constant --- .../src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index 7b4623dca05b..ba193b40ead3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -43,12 +43,13 @@ open class MappableBinding( companion object { const val PREF_SEPARATOR = '|' + private const val VERSION_PREFIX = "1/" @CheckResult fun List.toPreferenceString(): String = this .mapNotNull { it.toPreferenceString() } - .joinToString(prefix = "1/", separator = PREF_SEPARATOR.toString()) + .joinToString(prefix = VERSION_PREFIX, separator = PREF_SEPARATOR.toString()) @CheckResult private fun fromString(s: String): MappableBinding? { From b826b5417e2305a4516ff6737a58cc6e5d8b4278 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 7 Feb 2025 06:18:15 -0300 Subject: [PATCH 067/200] refactor: extract method in MappableBinding to be reused later --- .../ichi2/anki/reviewer/MappableBinding.kt | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index ba193b40ead3..176e7fef4ea1 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -68,21 +68,24 @@ open class MappableBinding( } } + /** + * @param string preference value containing mapped bindings + * @return a list with each individual binding substring + */ + @CheckResult + fun getPreferenceSubstrings(string: String): List { + if (string.isEmpty()) return emptyList() + if (!string.startsWith(VERSION_PREFIX)) { + Timber.w("cannot handle version of string %s", string) + return emptyList() + } + return string.substring(VERSION_PREFIX.length).split(PREF_SEPARATOR).filter { it.isNotEmpty() } + } + @CheckResult fun fromPreferenceString(string: String?): MutableList { if (string.isNullOrEmpty()) return ArrayList() - try { - val version = string.takeWhile { x -> x != '/' } - val remainder = string.substring(version.length + 1) // skip the / - if (version != "1") { - Timber.w("cannot handle version '$version'") - return ArrayList() - } - return remainder.split(PREF_SEPARATOR).mapNotNull { fromString(it) }.toMutableList() - } catch (e: Exception) { - Timber.w(e, "Failed to deserialize preference") - return ArrayList() - } + return getPreferenceSubstrings(string).mapNotNull { fromString(it) }.toMutableList() } @CheckResult From 5ffb0dc389e819afea0dd548661c20865e4b031c Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 14 Feb 2025 06:16:35 -0300 Subject: [PATCH 068/200] refactor: split fromPreferenceString If you want a ReviewerBinding, use its method, and if you want a MappableBinding use its method --- .../ichi2/anki/reviewer/MappableBinding.kt | 28 +++++------------ .../ichi2/anki/reviewer/ReviewerBinding.kt | 31 +++++++++++++------ .../servicelayer/PreferenceUpgradeService.kt | 4 +-- .../preferences/ReviewerControlPreference.kt | 5 ++- .../com/ichi2/anki/ReviewerNoParamTest.kt | 3 +- .../com/ichi2/ui/BindingPreferenceTest.kt | 2 +- 6 files changed, 34 insertions(+), 39 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index 176e7fef4ea1..ed0734580f2f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -51,23 +51,6 @@ open class MappableBinding( .mapNotNull { it.toPreferenceString() } .joinToString(prefix = VERSION_PREFIX, separator = PREF_SEPARATOR.toString()) - @CheckResult - private fun fromString(s: String): MappableBinding? { - if (s.isEmpty()) { - return null - } - return try { - // the prefix of the serialized - when (s[0]) { - ReviewerBinding.PREFIX -> ReviewerBinding.fromString(s.substring(1)) - else -> null - } - } catch (e: Exception) { - Timber.w(e, "failed to deserialize binding") - null - } - } - /** * @param string preference value containing mapped bindings * @return a list with each individual binding substring @@ -83,9 +66,12 @@ open class MappableBinding( } @CheckResult - fun fromPreferenceString(string: String?): MutableList { - if (string.isNullOrEmpty()) return ArrayList() - return getPreferenceSubstrings(string).mapNotNull { fromString(it) }.toMutableList() + fun fromPreferenceString(string: String?): List { + if (string.isNullOrEmpty()) return emptyList() + return getPreferenceSubstrings(string).map { + val binding = Binding.fromString(it) + MappableBinding(binding) + } } @CheckResult @@ -94,7 +80,7 @@ open class MappableBinding( command: ViewerCommand, ): MutableList { val value = prefs.getString(command.preferenceKey, null) ?: return command.defaultValue.toMutableList() - return fromPreferenceString(value) + return ReviewerBinding.fromPreferenceString(value).toMutableList() } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt index 5add073f4bc3..eea1c30a1a1e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt @@ -72,16 +72,27 @@ class ReviewerBinding( private const val ANSWER_SUFFIX = '1' private const val QUESTION_AND_ANSWER_SUFFIX = '2' - fun fromString(s: String): MappableBinding { - val binding = s.substring(0, s.length - 1) - val b = Binding.fromString(binding) - val side = - when (s[s.length - 1]) { - QUESTION_SUFFIX -> CardSide.QUESTION - ANSWER_SUFFIX -> CardSide.ANSWER - else -> CardSide.BOTH - } - return ReviewerBinding(b, side) + fun fromPreferenceString(prefString: String?): List { + if (prefString.isNullOrEmpty()) return emptyList() + + fun fromString(string: String): ReviewerBinding? { + if (string.isEmpty()) return null + val bindingString = + StringBuilder(string) + .substring(0, string.length - 1) + .removePrefix(PREFIX.toString()) + val binding = Binding.fromString(bindingString) + val side = + when (string.last()) { + QUESTION_SUFFIX -> CardSide.QUESTION + ANSWER_SUFFIX -> CardSide.ANSWER + else -> CardSide.BOTH + } + return ReviewerBinding(binding, side) + } + + val strings = getPreferenceSubstrings(prefString) + return strings.mapNotNull { fromString(it) } } @CheckResult diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt index 21a213fb38b1..12ce57515b69 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt @@ -527,8 +527,8 @@ object PreferenceUpgradeService { val destinyPrefValue = preferences.getString(destinyPrefKey, null) val joinedBindings = - MappableBinding.fromPreferenceString(destinyPrefValue) + - MappableBinding.fromPreferenceString(sourcePrefValue) + ReviewerBinding.fromPreferenceString(destinyPrefValue) + + ReviewerBinding.fromPreferenceString(sourcePrefValue) preferences.edit { putString(destinyPrefKey, joinedBindings.toPreferenceString()) remove(sourcePrefKey) diff --git a/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt b/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt index fd1d7506cd7a..91152f3b8497 100644 --- a/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt +++ b/AnkiDroid/src/main/java/com/ichi2/preferences/ReviewerControlPreference.kt @@ -21,7 +21,6 @@ import com.ichi2.anki.cardviewer.GestureProcessor import com.ichi2.anki.dialogs.CardSideSelectionDialog import com.ichi2.anki.reviewer.Binding import com.ichi2.anki.reviewer.CardSide -import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding @@ -46,7 +45,7 @@ class ReviewerControlPreference : ControlPreference { override val areGesturesEnabled: Boolean get() = sharedPreferences?.getBoolean(GestureProcessor.PREF_KEY, false) ?: false - override fun getMappableBindings() = MappableBinding.fromPreferenceString(value).toList() + override fun getMappableBindings(): List = ReviewerBinding.fromPreferenceString(value).toList() override fun onKeySelected(binding: Binding) { CardSideSelectionDialog.displayInstance(context) { side -> @@ -68,7 +67,7 @@ class ReviewerControlPreference : ControlPreference { ) { val newBinding = ReviewerBinding(binding, side) getPreferenceAssignedTo(binding)?.removeMappableBinding(newBinding) - val bindings = MappableBinding.fromPreferenceString(value).toMutableList() + val bindings = ReviewerBinding.fromPreferenceString(value).toMutableList() bindings.add(newBinding) value = bindings.toPreferenceString() } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt index e8c6ae5b6d78..0fbd750cfe9e 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt @@ -301,8 +301,7 @@ class ReviewerNoParamTest : RobolectricTest() { for (mappableBinding in MappableBinding.fromPreference(prefs, command)) { val gestureBinding = mappableBinding.binding as? Binding.GestureInput? ?: continue if (gestureBinding.gesture in gestures) { - val bindings: MutableList = - MappableBinding.fromPreferenceString(command.preferenceKey) + val bindings = ReviewerBinding.fromPreferenceString(command.preferenceKey).toMutableList() bindings.remove(mappableBinding) prefs.edit { putString(command.preferenceKey, bindings.toPreferenceString()) diff --git a/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt b/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt index a8d1d5d35943..0cddd8f1a517 100644 --- a/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/ui/BindingPreferenceTest.kt @@ -33,7 +33,7 @@ class BindingPreferenceTest { fun serialization_deserialization_returns_same_result() { val str = getSampleBindings().toPreferenceString() - val again = MappableBinding.fromPreferenceString(str) + val again = ReviewerBinding.fromPreferenceString(str) assertEquals(str, again.toPreferenceString()) } From 5fee3a22ff78215bae78adc1aff58a2953a181c5 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Fri, 7 Feb 2025 06:30:55 -0300 Subject: [PATCH 069/200] refactor: move fromPreference() to ReviewerBinding --- .../com/ichi2/anki/cardviewer/GestureProcessor.kt | 4 ++-- .../java/com/ichi2/anki/reviewer/MappableBinding.kt | 11 ----------- .../com/ichi2/anki/reviewer/MotionEventHandler.kt | 3 +-- .../java/com/ichi2/anki/reviewer/PeripheralKeymap.kt | 4 ++-- .../java/com/ichi2/anki/reviewer/ReviewerBinding.kt | 11 +++++++++++ .../anki/servicelayer/PreferenceUpgradeService.kt | 3 +-- .../test/java/com/ichi2/anki/ReviewerNoParamTest.kt | 3 +-- .../servicemodel/UpgradeGesturesToControlsTest.kt | 10 +++++----- .../java/com/ichi2/anki/utils/ext/ViewerCommand.kt | 4 ++-- 9 files changed, 25 insertions(+), 28 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/GestureProcessor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/GestureProcessor.kt index 264901f63144..ce37135b41ca 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/GestureProcessor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/cardviewer/GestureProcessor.kt @@ -18,7 +18,7 @@ package com.ichi2.anki.cardviewer import android.content.SharedPreferences import com.ichi2.anki.reviewer.Binding import com.ichi2.anki.reviewer.GestureMapper -import com.ichi2.anki.reviewer.MappableBinding +import com.ichi2.anki.reviewer.ReviewerBinding class GestureProcessor( private val processor: ViewerCommand.CommandProcessor?, @@ -58,7 +58,7 @@ class GestureProcessor( val associatedCommands = HashMap() for (command in ViewerCommand.entries) { - for (mappableBinding in MappableBinding.fromPreference(preferences, command)) { + for (mappableBinding in ReviewerBinding.fromPreference(preferences, command)) { if (mappableBinding.binding is Binding.GestureInput) { associatedCommands[mappableBinding.binding.gesture] = command } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt index ed0734580f2f..8250e5663eb6 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MappableBinding.kt @@ -17,9 +17,7 @@ package com.ichi2.anki.reviewer import android.content.Context -import android.content.SharedPreferences import androidx.annotation.CheckResult -import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.reviewer.Binding.KeyBinding import com.ichi2.utils.hash import timber.log.Timber @@ -73,14 +71,5 @@ open class MappableBinding( MappableBinding(binding) } } - - @CheckResult - fun fromPreference( - prefs: SharedPreferences, - command: ViewerCommand, - ): MutableList { - val value = prefs.getString(command.preferenceKey, null) ?: return command.defaultValue.toMutableList() - return ReviewerBinding.fromPreferenceString(value).toMutableList() - } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt index 6fbf12aa52f5..71d5e2844e26 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/MotionEventHandler.kt @@ -22,7 +22,6 @@ import com.ichi2.anki.AbstractFlashcardViewer import com.ichi2.anki.AnkiDroidApp import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.preferences.sharedPrefs -import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference import com.ichi2.compat.CompatHelper import timber.log.Timber @@ -117,7 +116,7 @@ class MotionEventHandler( sequence { for ((command, bindings) in ViewerCommand.entries .map { - Pair(it, fromPreference(context.sharedPrefs(), it)) + Pair(it, ReviewerBinding.fromPreference(context.sharedPrefs(), it)) }) { for (binding in bindings .map { it.binding } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt index 5330b06bedf0..99d5f0936d46 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/PeripheralKeymap.kt @@ -23,7 +23,6 @@ import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.reviewer.Binding.Companion.possibleKeyBindings import com.ichi2.anki.reviewer.CardSide.Companion.fromAnswer -import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference /** Accepts peripheral input, mapping via various keybinding strategies, * and converting them to commands for the Reviewer. */ @@ -51,7 +50,8 @@ class PeripheralKeymap( preferences: SharedPreferences, ) { val bindings = - fromPreference(preferences, command) + ReviewerBinding + .fromPreference(preferences, command) .filterIsInstance() for (b in bindings) { if (!b.isKey) { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt index eea1c30a1a1e..ead1eab9f627 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/reviewer/ReviewerBinding.kt @@ -16,9 +16,11 @@ package com.ichi2.anki.reviewer import android.content.Context +import android.content.SharedPreferences import androidx.annotation.CheckResult import com.ichi2.anki.R import com.ichi2.anki.cardviewer.Gesture +import com.ichi2.anki.cardviewer.ViewerCommand import java.util.Objects class ReviewerBinding( @@ -97,5 +99,14 @@ class ReviewerBinding( @CheckResult fun fromGesture(gesture: Gesture): ReviewerBinding = ReviewerBinding(Binding.GestureInput(gesture), CardSide.BOTH) + + @CheckResult + fun fromPreference( + prefs: SharedPreferences, + command: ViewerCommand, + ): MutableList { + val value = prefs.getString(command.preferenceKey, null) ?: return command.defaultValue.toMutableList() + return fromPreferenceString(value).toMutableList() + } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt index 12ce57515b69..dd6bdf448671 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/PreferenceUpgradeService.kt @@ -49,7 +49,6 @@ import com.ichi2.anki.reviewer.Binding.Companion.keyCode import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.reviewer.FullScreenMode import com.ichi2.anki.reviewer.MappableBinding -import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.libanki.Consts @@ -427,7 +426,7 @@ object PreferenceUpgradeService { true } } - val bindings: MutableList = fromPreference(preferences, command) + val bindings: MutableList = ReviewerBinding.fromPreference(preferences, command) addAtEnd(bindings, mappableBinding) val newValue: String = bindings.toPreferenceString() preferences.edit { putString(command.preferenceKey, newValue) } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt index 0fbd750cfe9e..1246b7adf682 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/ReviewerNoParamTest.kt @@ -31,7 +31,6 @@ import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.reviewer.Binding import com.ichi2.anki.reviewer.FullScreenMode import com.ichi2.anki.reviewer.FullScreenMode.Companion.setPreference -import com.ichi2.anki.reviewer.MappableBinding import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString import com.ichi2.anki.reviewer.ReviewerBinding import com.ichi2.anki.utils.ext.addBinding @@ -298,7 +297,7 @@ class ReviewerNoParamTest : RobolectricTest() { private fun disableGestures(vararg gestures: Gesture) { val prefs = targetContext.sharedPrefs() for (command in ViewerCommand.entries) { - for (mappableBinding in MappableBinding.fromPreference(prefs, command)) { + for (mappableBinding in ReviewerBinding.fromPreference(prefs, command)) { val gestureBinding = mappableBinding.binding as? Binding.GestureInput? ?: continue if (gestureBinding.gesture in gestures) { val bindings = ReviewerBinding.fromPreferenceString(command.preferenceKey).toMutableList() diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt index 221b2f470354..7102f084fb64 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/servicemodel/UpgradeGesturesToControlsTest.kt @@ -72,7 +72,7 @@ class UpgradeGesturesToControlsTest( assertThat(prefs.contains(testData.affectedPreferenceKey), equalTo(true)) assertThat(prefs.contains(testData.unaffectedPreferenceKey), equalTo(false)) - assertThat("example command should have no defaults", MappableBinding.fromPreference(prefs, command), empty()) + assertThat("example command should have no defaults", ReviewerBinding.fromPreference(prefs, command), empty()) upgradeAllGestures() @@ -84,7 +84,7 @@ class UpgradeGesturesToControlsTest( assertThat("legacy preference removed", prefs.contains(testData.affectedPreferenceKey), equalTo(false)) assertThat("new preference added", prefs.contains(command.preferenceKey), equalTo(true)) - val fromPreference = MappableBinding.fromPreference(prefs, command) + val fromPreference = ReviewerBinding.fromPreference(prefs, command) assertThat(fromPreference, hasSize(1)) val binding = fromPreference.first() @@ -103,7 +103,7 @@ class UpgradeGesturesToControlsTest( assertThat(prefs.contains(testData.affectedPreferenceKey), equalTo(true)) assertThat(prefs.contains(testData.unaffectedPreferenceKey), equalTo(false)) assertThat("new preference does not exist", prefs.contains(command.preferenceKey), equalTo(false)) - val previousCommands = MappableBinding.fromPreference(prefs, command) + val previousCommands = ReviewerBinding.fromPreference(prefs, command) assertThat("example command should have defaults", previousCommands, not(empty())) upgradeAllGestures() @@ -116,7 +116,7 @@ class UpgradeGesturesToControlsTest( assertThat("legacy preference removed", prefs.contains(testData.affectedPreferenceKey), equalTo(false)) assertThat("new preference exists", prefs.contains(command.preferenceKey), equalTo(true)) - val currentCommands = MappableBinding.fromPreference(prefs, command) + val currentCommands = ReviewerBinding.fromPreference(prefs, command) assertThat("a binding was added to '${command.preferenceKey}'", currentCommands, hasSize(previousCommands.size + 1)) // ensure that the order was not changed - the last element is not included in the zip @@ -143,7 +143,7 @@ class UpgradeGesturesToControlsTest( assertThat(prefs.contains(testData.affectedPreferenceKey), equalTo(true)) assertThat(prefs.contains(testData.unaffectedPreferenceKey), equalTo(false)) assertThat("new preference exists", prefs.contains(command.preferenceKey), equalTo(true)) - val previousCommands = MappableBinding.fromPreference(prefs, command) + val previousCommands = ReviewerBinding.fromPreference(prefs, command) assertThat("example command should have defaults", previousCommands, hasSize(2)) assertThat(previousCommands.first(), equalTo(testData.binding)) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt index 6bb72e9c7bdd..a7fddd3de7d3 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/ViewerCommand.kt @@ -19,8 +19,8 @@ import android.content.SharedPreferences import androidx.core.content.edit import com.ichi2.anki.cardviewer.ViewerCommand import com.ichi2.anki.reviewer.MappableBinding -import com.ichi2.anki.reviewer.MappableBinding.Companion.fromPreference import com.ichi2.anki.reviewer.MappableBinding.Companion.toPreferenceString +import com.ichi2.anki.reviewer.ReviewerBinding fun ViewerCommand.addBinding( preferences: SharedPreferences, @@ -33,7 +33,7 @@ fun ViewerCommand.addBinding( collection.add(0, element) true } - val bindings: MutableList = fromPreference(preferences, this) + val bindings: MutableList = ReviewerBinding.fromPreference(preferences, this) addAtStart(bindings, binding) val newValue: String = bindings.toPreferenceString() preferences.edit { putString(preferenceKey, newValue) } From ee580d547f80feafe369fd3316ec21d39503ccc9 Mon Sep 17 00:00:00 2001 From: Sahil06012002 <94986140+Sahil06012002@users.noreply.github.com> Date: Sun, 16 Feb 2025 19:11:14 +0530 Subject: [PATCH 070/200] build: include fallback signing keystore for easy release build testing --- .github/workflows/tests_emulator.yml | 17 +---------------- AnkiDroid/build.gradle | 16 ++++++++++++---- tools/fallback-release-keystore.jks | Bin 0 -> 2712 bytes 3 files changed, 13 insertions(+), 20 deletions(-) create mode 100644 tools/fallback-release-keystore.jks diff --git a/.github/workflows/tests_emulator.yml b/.github/workflows/tests_emulator.yml index 4d4c6dad43bb..50f33570c0fe 100644 --- a/.github/workflows/tests_emulator.yml +++ b/.github/workflows/tests_emulator.yml @@ -21,12 +21,6 @@ jobs: env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} TEST_RELEASE_BUILD: true - # could be better, '/home/runner' should be '~/' but neither that nor '$HOME' worked - STOREFILEDIR: /home/runner/src - STOREFILE: android-keystore - STOREPASS: testpass - KEYPASS: testpass - KEYALIAS: nrkeystorealias strategy: fail-fast: false matrix: @@ -51,15 +45,6 @@ jobs: swap-storage: false docker-images: false - - name: Test Credential Prep - run: | - echo "KSTOREPWD=$STOREPASS" >> $GITHUB_ENV - echo "KEYPWD=$KEYPASS" >> $GITHUB_ENV - mkdir $STOREFILEDIR - cd $STOREFILEDIR - echo y | keytool -genkeypair -dname "cn=AnkiDroid, ou=ankidroid, o=AnkiDroid, c=US" -alias $KEYALIAS -keypass $KEYPASS -keystore "$STOREFILE" -storepass $STOREPASS -keyalg RSA -validity 20000 - shell: bash - - uses: actions/checkout@v4 with: fetch-depth: 50 @@ -197,4 +182,4 @@ jobs: - uses: codecov/codecov-action@v5 with: verbose: true - fail_ci_if_error: ${{ github.repository == 'ankidroid/Anki-Android' }} # optional (default = false) + fail_ci_if_error: ${{ github.repository == 'ankidroid/Anki-Android' }} # optional (default = false) \ No newline at end of file diff --git a/AnkiDroid/build.gradle b/AnkiDroid/build.gradle index 1e17e14cf9ab..058be63698c3 100644 --- a/AnkiDroid/build.gradle +++ b/AnkiDroid/build.gradle @@ -97,10 +97,18 @@ android { } signingConfigs { release { - storeFile file(System.getenv("KEYSTOREPATH") ?: "${homePath}/src/android-keystore") - storePassword System.getenv("KEYSTOREPWD") ?: System.getenv("KSTOREPWD") - keyAlias System.getenv("KEYALIAS") ?: "nrkeystorealias" - keyPassword System.getenv("KEYPWD") + def keystorePath = System.getenv("KEYSTOREPATH") + if (keystorePath != null && !keystorePath.trim().isEmpty()) { + storeFile file(keystorePath) + storePassword System.getenv("KEYSTOREPWD") ?: System.getenv("KSTOREPWD") + keyAlias System.getenv("KEYALIAS") + keyPassword System.getenv("KEYPWD") + } else { + storeFile file("${rootDir}/tools/fallback-release-keystore.jks") + storePassword "Test@123" + keyAlias "my-key" + keyPassword "Test@123" + } } } buildTypes { diff --git a/tools/fallback-release-keystore.jks b/tools/fallback-release-keystore.jks new file mode 100644 index 0000000000000000000000000000000000000000..53d3dbc4bc40578a5759007ea54ac681f7085bb9 GIT binary patch literal 2712 zcma);X*d*&7RP58rWqq^Ni~cu!&t^njO9g^>}ynZ5m~Z?sF+@|k0M+4B|9U#46^fP z$ubjT5Xv@#hzNPR&%ICYb3fht;XLO#zyJB4kN@YOvCtGcAUzrjRb_;TM(IXeC7?N=o;GX2K|g97RDung+IpbGlVZwCW2+6Jxo z&j>@KK%A5ErTN}u`N-~;wGsTl_57bUHOq8#!mM;a1RBP8=HD0TAPfLBoDt#>r3-YW z2LVMvtcj7+Q9&_^h_{~BDK7Q)JRmG+EX8f+@Fcy6DSPR5+;M}Qo6xbPV;k76H z{OOU8R7bv%_stFkb>8aA@2CX1O&6`x2(f)1jhb?1;XPy=ua_t4#Y>NXJ4jq=0Qe>) zG^0;j!(TADLwGWoa1R07aximp17qml4wIsv4@$vgdxB=uHtouH6cQJ_hr*7LevyG% zaV04;VoZzya03l*Ki#VR4HE#oqCl@xVlU9&VIzMparW%XM;4dWmei;pnr@KlLPj~3 z|2z|3kvP#HPkdM_#mhFm#7V6_AgeXOf{y*wKU?j^%Jq^LM0LiDUSrmD8j zuBki_(c8Q1aSh>+har9lB~DLSp%@q!X9Sib*;(a;pJ>@`lhRSszGE53K|X`IJ1G$f zq~aB3K7aK@K&x=bR3$7f3isE$*qc%&sr1j zTGrbU)R+}&)BWKa6XuRW@C1tDSPlAyURVG zX@%k|clq^(0}@e2d7s}aNU(;u%*C8;)Z}wmJ*W0+n6X&Voa2-(aE5BR?a3(L5tsA| z8tJaQFwdamLlPUyxO`DMk7Hv zmmQT<#{FrP<^f@I2dbW9kBv?3?jZeEi23LB**CqvHeYtgvEJ_HDQEGEuu90y3piUI zGqb1{)Bw)sWDdHV(WU#tH2rQ^8=XlrQMINQy#s`SYe(plKJBOW9+(!%UgVnm$;%+m zP15!`dAztX?pFv*s!4HI8k_hb;6ypF^;OqC{YNb;AReB#{4ba)vCe@Z>t1d+1%0x{hyVuS~4`>n4m)|&gm3<|nc6rJnr5T);sftfccH(i(mCp@zhN42Nd`^m{r$6<}uiio5hY@rZidSoeB45YWA6Ar& ziUvxGJFsJ6<6;$u1aqc9Az0e0zW(x^`I&B&67q;N?fkcw1W9MBh7+x8hGhMv0_D#r zmfmTz{Vwy3+(@k4dYW1YbNlHFJ*-#$;*3XsSjnm(0jvOC(z%c=Qi-(9*y_IkvQqum7`EAvF?-@Pz# z+vzh~iEg4-`bXObgZM{=#3G|rl#e+XnL1-e?T20p1!{VCfO0tqX7R`OlKY8MB!|Yr^qXZU?Wt(*9$!_7yh4^ zj{kF>i%Yg{YxhHay8Fc>w{R@|0(Y$B2!U@eq`~XqNRhjU#f`cPOKT;rIq;Ld0BoUn zPEYcjz$T&^sM3Y#n7Ef+k%)e^;hiAmB01Kym7NT1803%7`};Dwcep>tZFWl3!v|rx zg-2ja?~24~<{MzJkiM+cg*)QZPRnKbk?L9#?8l(<5S#{dND7|j`F{0J~gD>)5cLp zYKn(y`mKaVu5qh>&&drxr)~}?7x(Noe*PuKX~Xdcu|8nmUvB+;=)zO*ArotHJP%Rs zm{J}*t}J4+P;{#kWr6Q}0SS(+9=bFs;;5OyJ%y|O(qM`jY2y-`^eYv9sbXXAbTLR@ z77fUz^e2e;a?O-+n~gCoPU%8Z!o<#1e8rhWVS}4Xu~d~l>|cmSLs?HLDbefSX~a@o zLML_Hk1}a8uiP z1EcAFx6U5C5cJsIwM;UKLy#`65<1L62@fWqR$N5&L7@4(MkAgO`U7sMkygWnK4p-e zCrsoH{uQ}Hy;b?TB?#-%sXTsFJgkakxQk#Jql&M9xZB4>Gq0cBLq|dib&F5>b>_(y ztpjD5UaAIA{S`KS)r4b zPr)~M8hhCbO-tQ1`yH#;z^tb0mj1A577MQnX&Div@67i{z_56M8yR`TM*A2G+>JN> zPII9JXEu`)5|8p-zOC;$OGGgj&c8A!`omkI6hwOXQ;MS}X+*TebxRGyqeg*cp0VrUfz@)+>V#YBSj1TPNxZAKWj>@f#Q&_~Dbpjbw?LD)i19 zomjp|RZy9NI!PO1gzeyxlC1CI9ScDYkw|Wp=KTB2A?@QFNU(rI)WyZBVp6eDA^{1h zS?W02pat3K!9vcU{?cyexv6Z>=FXd-lAMS7L7pr0bGS6Pt<#xO;smS|ozi(XWr^T; z$_`mvp_3d96g#XH5`$*?Q0TBFISI!B)w43jTW|a$wJHHcjkji{Y_Am_Cv%Uc zFU@PS%zCU<_1o&7MwiR3Q2pDlYzH${dQQtmJ;GSTtjQ!6xHZ}OX1}7cva!^$ zDaPNtAS6icg!gf*bbV^id15W=n}9Y%OQD&6e`|C=1^@^V#dckNC{ww>c`5cq+q;jg tT;F5D?-<(+(8_^mzen465U1ct#z6loJP>ARKMQ)gd+vFbPwu}W=5NA||K9)r literal 0 HcmV?d00001 From 296c4d00031be3e03871513b20dc1fe4f4c91a0b Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Wed, 12 Feb 2025 00:08:46 +0100 Subject: [PATCH 071/200] NF: Correct `reps` documentation `reps` used to have a different meaning than today. I'd actually love to rename this variable, but it's the name used in upstream, so I guess it would not be accepted. I considered adding more information, such as the fact that in practice, it mostly means that this value is reset when ankidroid restart, with maybe some exceptions. Or that we should only care about the difference between values at different point in time and not about the actual value of this variable. But actually it does not matter. It's only used for timebox and has 3 occurrences in the codebase. Any more documentation would be overkill. Fixed #6830. Well actually, it was fixed in 7a65160e0e23e20080091a30abdd4c05fc610e06 long ago, but the documen tation did not reflect that. So let's claim I just fixed a 5 yo bug! --- .../src/main/java/com/ichi2/libanki/Collection.kt | 4 ++-- .../main/java/com/ichi2/libanki/sched/Scheduler.kt | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt index ca0ed52ef696..3615815e0af9 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt @@ -483,7 +483,7 @@ class Collection( fun startTimebox() { startTime = TimeManager.time.intTime() - startReps = sched.reps + startReps = sched.numberOfAnswersRecorded } data class TimeboxReached( @@ -503,7 +503,7 @@ class Collection( return if (elapsed > limit) { TimeboxReached( limit, - sched.reps - startReps, + sched.numberOfAnswersRecorded - startReps, ).also { startTimebox() } diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt index dad3ee8d6510..eb1c92472e97 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/sched/Scheduler.kt @@ -143,7 +143,7 @@ open class Scheduler( ease: Ease, ): OpChanges = col.backend.answerCard(buildAnswer(info.topCard, info.states, ease)).also { - reps += 1 + numberOfAnswersRecorded += 1 } /** Legacy path, used by tests. */ @@ -154,7 +154,7 @@ open class Scheduler( val top = queuedCards.cardsList.first() val answer = buildAnswer(card, top.states, ease) col.backend.answerCard(answer) - reps += 1 + numberOfAnswersRecorded += 1 // tests assume the card was mutated card.load(col) } @@ -210,10 +210,11 @@ open class Scheduler( QueuedCards.Queue.UNRECOGNIZED, null -> TODO("unrecognized queue") } - /** @return Number of repetitions today. Note that a repetition is the fact that the scheduler sent a card, and not the fact that the card was answered. - * So buried, suspended, ... cards are also counted as repetitions. + /** + * Number of [answerCard] was called since this scheduler object was created. + * Note that when the user undo a review, this number is not decremented. */ - var reps: Int = 0 + var numberOfAnswersRecorded: Int = 0 /** Only provided for legacy unit tests. */ fun nextIvl( From 35acaa48137897e6581483367c8661a006e79f25 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Sun, 16 Feb 2025 21:25:48 -0500 Subject: [PATCH 072/200] build(deps): adopt backend 1.51-anki25.02 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b8aaefb9f8cb..d7baba00d7f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ androidxViewpager2 = "1.1.0" androidxWebkit = "1.12.1" # https://developer.android.com/jetpack/androidx/releases/work androidxWork = "2.10.0" -ankiBackend = '0.1.50-anki25.02' +ankiBackend = '0.1.51-anki25.02' autoService = "1.1.1" autoServiceAnnotations = "1.1.1" colorpicker = "1.2.0" From ce0c4d2f93146488e7568a73d3d25375be8f23b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Feb 2025 10:13:03 +0000 Subject: [PATCH 073/200] build(deps): Dependency updates 20250216 PR 17991 build(deps): bump androidGradlePlugin from 8.8.0 to 8.8.1 Bumps `androidGradlePlugin` from 8.8.0 to 8.8.1. Updates `com.android.application` from 8.8.0 to 8.8.1 Updates `com.android.library` from 8.8.0 to 8.8.1 --- updated-dependencies: - dependency-name: com.android.application dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.android.library dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] build(deps): bump lint from 31.8.0 to 31.8.1 Bumps `lint` from 31.8.0 to 31.8.1. Updates `com.android.tools.lint:lint-api` from 31.8.0 to 31.8.1 Updates `com.android.tools.lint:lint` from 31.8.0 to 31.8.1 Updates `com.android.tools.lint:lint-tests` from 31.8.0 to 31.8.1 --- updated-dependencies: - dependency-name: com.android.tools.lint:lint-api dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.android.tools.lint:lint dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: com.android.tools.lint:lint-tests dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] build(deps): bump androidxFragmentKtx from 1.8.5 to 1.8.6 Bumps `androidxFragmentKtx` from 1.8.5 to 1.8.6. Updates `androidx.fragment:fragment-ktx` from 1.8.5 to 1.8.6 Updates `androidx.fragment:fragment-testing` from 1.8.5 to 1.8.6 Updates `androidx.fragment:fragment-testing-manifest` from 1.8.5 to 1.8.6 --- updated-dependencies: - dependency-name: androidx.fragment:fragment-ktx dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: androidx.fragment:fragment-testing dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: androidx.fragment:fragment-testing-manifest dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d7baba00d7f7..f594258de7e2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ ktlint = '1.5.0' # # Old changelogs - See 'Table of Contents' in sidebar # https://developer.android.com/build/releases/past-releases -androidGradlePlugin = "8.8.0" +androidGradlePlugin = "8.8.1" # https://developer.android.com/jetpack/androidx/releases/activity androidxActivity = "1.10.0" # https://developer.android.com/jetpack/androidx/releases/annotation @@ -36,7 +36,7 @@ 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.5" +androidxFragmentKtx = "1.8.6" # https://developer.android.com/jetpack/androidx/releases/media androidxMedia = "1.7.0" # https://developer.android.com/jetpack/androidx/releases/media3 @@ -88,7 +88,7 @@ kotlin = '2.1.10' kotlinxSerializationJson = "1.8.0" ktlintGradlePlugin = "12.1.2" leakcanaryAndroid = "2.14" -lint = '31.8.0' +lint = '31.8.1' material = "1.12.0" materialTapTargetPrompt = "3.3.2" mockitoInline = "5.2.0" From da54fda37073eaeeff661c76682d0400faabb8e9 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Fri, 14 Feb 2025 21:58:38 +0200 Subject: [PATCH 074/200] Fix color scheme for empty cards report dialog This removes the initial implementation using an WebView in favor of a TextView and parsing the report with HtmlCompat. The nids links are now implemented through ClickSpans. Also adds a test to check the html backend report structure to make sure the report parsing code present in EmptyCardsFragment stays relevant. --- .idea/dictionaries/android.xml | 1 + .../anki/dialogs/EmptyCardsDialogFragment.kt | 153 +++++++++++++----- .../main/res/layout/dialog_empty_cards.xml | 14 +- .../anki/dialogs/EmptyCardsReportTest.kt | 51 ++++++ 4 files changed, 172 insertions(+), 47 deletions(-) create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/dialogs/EmptyCardsReportTest.kt diff --git a/.idea/dictionaries/android.xml b/.idea/dictionaries/android.xml index 14936424ae40..e9d5faf37042 100644 --- a/.idea/dictionaries/android.xml +++ b/.idea/dictionaries/android.xml @@ -9,6 +9,7 @@ ENOENT FILESIZE ONEPLUS + allempty apkgfileprovider asynctasks backreference diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt index 3339139bf9fe..5dd4511095ac 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EmptyCardsDialogFragment.kt @@ -19,23 +19,27 @@ package com.ichi2.anki.dialogs import android.app.Activity import android.app.Dialog +import android.content.Context import android.content.Intent import android.content.res.Configuration import android.content.res.Configuration.ORIENTATION_LANDSCAPE import android.graphics.Insets import android.os.Build import android.os.Bundle +import android.text.SpannableStringBuilder +import android.text.Spanned +import android.text.method.LinkMovementMethod +import android.text.style.ClickableSpan import android.util.DisplayMetrics import android.view.View +import android.view.ViewGroup import android.view.WindowInsets.Type.displayCutout import android.view.WindowInsets.Type.navigationBars -import android.webkit.WebResourceRequest -import android.webkit.WebView -import android.webkit.WebViewClient import android.widget.CheckBox +import android.widget.ScrollView import android.widget.TextView import androidx.appcompat.app.AlertDialog -import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.text.HtmlCompat import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import androidx.fragment.app.viewModels @@ -53,6 +57,7 @@ import com.ichi2.anki.dialogs.EmptyCardsUiState.SearchingForEmptyCards import com.ichi2.anki.launchCatchingTask import com.ichi2.anki.ui.internationalization.toSentenceCase import com.ichi2.anki.withProgress +import com.ichi2.libanki.NoteId import com.ichi2.libanki.emptyCids import com.ichi2.utils.message import com.ichi2.utils.positiveButton @@ -77,36 +82,18 @@ class EmptyCardsDialogFragment : DialogFragment() { get() = dialog?.findViewById(R.id.empty_report_label) private val keepNotesWithNoValidCards: CheckBox? get() = dialog?.findViewById(R.id.preserve_notes) - private val reportWebView: WebView? + private val reportScrollView: ScrollView? + get() = dialog?.findViewById(R.id.reportScrollView) + private val reportView: TextView? get() = dialog?.findViewById(R.id.report) - // TODO handle WebViewClient.onRenderProcessGone() - private val customWebViewClient = - object : WebViewClient() { - override fun shouldOverrideUrlLoading( - view: WebView?, - request: WebResourceRequest?, - ): Boolean { - val searchQuery = request?.url?.toString() - return if (searchQuery != null && searchQuery.startsWith("nid:")) { - val browserSearchIntent = Intent(requireContext(), CardBrowser::class.java) - browserSearchIntent.putExtra("search_query", searchQuery) - browserSearchIntent.putExtra("all_decks", true) - startActivity(browserSearchIntent) - true - } else { - super.shouldOverrideUrlLoading(view, request) - } - } - } - override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { bindToState() viewModel.searchForEmptyCards() val dialogView = layoutInflater.inflate(R.layout.dialog_empty_cards, null) dialogView.findViewById(R.id.preserve_notes)?.text = TR.emptyCardsPreserveNotesCheckbox() - dialogView.findViewById(R.id.report).webViewClient = customWebViewClient + dialogView.findViewById(R.id.report).movementMethod = LinkMovementMethod.getInstance() return AlertDialog .Builder(requireContext()) @@ -166,11 +153,10 @@ class EmptyCardsDialogFragment : DialogFragment() { (dialog as? AlertDialog)?.positiveButton?.text = getString(R.string.dialog_ok) } else { - reportWebView?.updateWebViewHeight() - reportWebView?.loadData( + reportScrollView?.updateViewHeight() + reportView?.setText( state.emptyCardsReport.asActionableReport(), - "text/html", - null, + TextView.BufferType.SPANNABLE, ) keepNotesWithNoValidCards?.isVisible = true emptyReportMessage?.isVisible = false @@ -198,24 +184,103 @@ class EmptyCardsDialogFragment : DialogFragment() { } /** - * Replaces the anki format [anki:nid:#nid](ex: [anki:nid:234783924354]) with "nid:#id"( - * ex. nid:234783924354) to be used as a query text in [CardBrowser]. + * Replaces the anki format [anki:nid:#nid](ex: [anki:nid:234783924354]) from the report with + * just the nid as a [ClickableSpan] which will trigger a [CardBrowser] search for that nid. */ - // https://github.com/ankitects/anki/blob/de7a693465ca302e457a4767c7f213c76478f0ee/qt/aqt/emptycards.py#L56-L60 - private fun EmptyCardsReport.asActionableReport(): String { - @Suppress("RegExpRedundantEscape") - return Regex("\\[anki:nid:(\\d+)\\]") - .replace( - report, - "$1", + private fun EmptyCardsReport.asActionableReport(): SpannableStringBuilder { + val spannableReport = + SpannableStringBuilder(HtmlCompat.fromHtml(report, HtmlCompat.FROM_HTML_MODE_LEGACY)) + AnkiNidTag.parseFromReport(spannableReport).forEach { tag -> + // make nid clickable + spannableReport.setSpan( + BrowserSearchByNidSpan(requireContext(), tag.nid), + tag.matchedNid.range.first, + tag.matchedNid.range.last + 1, + Spanned.SPAN_EXCLUSIVE_EXCLUSIVE, ) + // remove suffix + spannableReport.delete(tag.matchedSuffix) + // remove prefix + spannableReport.delete(tag.matchedPrefix) + } + return spannableReport + } + + private fun SpannableStringBuilder.delete(group: MatchGroup) { + delete(group.range.first, group.range.last + 1) + } + + /** + * Represents a Regex over `[anki:nid:1234]`. + * + * @param matchedPrefix `[anki:nid: + * @param matchedNid `1234` + * @param nid `1234` + * @param matchedSuffix `]` + */ + private class AnkiNidTag( + val matchedPrefix: MatchGroup, + val matchedNid: MatchGroup, + val nid: NoteId, + val matchedSuffix: MatchGroup, + ) { + companion object { + // https://github.com/ankitects/anki/blob/de7a693465ca302e457a4767c7f213c76478f0ee/qt/aqt/emptycards.py#L56-L60 + @Suppress("RegExpRedundantEscape") + private val ankiNidPattern = Regex("(\\[anki:nid:)(\\d+)(\\])") + + /** + * @return a [Sequence] of [AnkiNidTag]. Note: the method uses [Regex.findAll] in the + * implementation and returns its [Sequence] so each [AnkiNidTag] is one by one matched + * and returned for calling code to use. This allows the backing [SpannableStringBuilder] + * to resize itself after work done on each [AnkiNidTag](ex. deleting parts of it) so as + * the following tags are "found" they will have the proper ranges in the backing + * [SpannableStringBuilder]. Returning the full lists of [AnkiNidTag] and then working + * on them is an error and will crash. + * + * @see EmptyCardsReport.asActionableReport + * @see SpannableStringBuilder.delete + */ + fun parseFromReport(report: SpannableStringBuilder): Sequence { + return ankiNidPattern.findAll(report).mapNotNull { result -> + // for an entry like [anki:nid:1234] we should have 4 groups: the entire match( + // [anki:nid:1234]) and the three groups we defined: '[anki:nid:', '1234', ']' + if (result.groups.size != 4) return@mapNotNull null + val matchedPrefix = result.groups[1] ?: return@mapNotNull null + val matchedNid = result.groups[2] ?: return@mapNotNull null + val nid = matchedNid.value.toLongOrNull() ?: return@mapNotNull null + val matchedSuffix = result.groups[3] ?: return@mapNotNull null + + AnkiNidTag(matchedPrefix, matchedNid, nid, matchedSuffix) + } + } + } + } + + /** + * A specialized [ClickableSpan] that on click will open the [CardBrowser] and initiate a + * search with the passed [nid]. + * + * @see CardBrowser + */ + private class BrowserSearchByNidSpan( + val context: Context, + val nid: Long, + ) : ClickableSpan() { + override fun onClick(widget: View) { + val browserSearchIntent = Intent(context, CardBrowser::class.java) + browserSearchIntent.putExtra("search_query", "nid:$nid") + browserSearchIntent.putExtra("all_decks", true) + context.startActivity(browserSearchIntent) + } } /** - * The [WebView] doesn't properly fit the allocated space in the dialog so this method manually - * updates the [WebView]'s height to a value that fits, depending on orientation and screen size. + * The [ScrollView] in this dialog's custom layout doesn't properly fit the allocated height so + * this method manually updates the [ScrollView]'s height to a value that fits, depending on + * orientation and screen size. */ - private fun WebView.updateWebViewHeight() { + private fun View.updateViewHeight() { val currentOrientation = requireContext().resources.configuration.orientation val targetPercent = if (currentOrientation == ORIENTATION_LANDSCAPE) 0.25 else 0.5 val screenHeight = @@ -239,14 +304,14 @@ class EmptyCardsDialogFragment : DialogFragment() { displayMetrics.heightPixels } val calculatedHeight = (screenHeight * targetPercent).toInt() - (layoutParams as ConstraintLayout.LayoutParams).height = calculatedHeight + (layoutParams as ViewGroup.LayoutParams).height = calculatedHeight layoutParams = layoutParams requestLayout() } override fun onConfigurationChanged(newConfig: Configuration) { super.onConfigurationChanged(newConfig) - reportWebView?.updateWebViewHeight() + reportScrollView?.updateViewHeight() } companion object { diff --git a/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml b/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml index 8ff232b50028..e89dc101c749 100644 --- a/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml +++ b/AnkiDroid/src/main/res/layout/dialog_empty_cards.xml @@ -70,14 +70,21 @@ android:paddingStart="@dimen/side_margin" android:paddingEnd="@dimen/side_margin"> - + android:layout_marginTop="8dp" + android:paddingHorizontal="8dp" + app:layout_constraintBottom_toTopOf="@+id/preserve_notes"> + + diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/EmptyCardsReportTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/EmptyCardsReportTest.kt new file mode 100644 index 000000000000..fe1033a27ccc --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/dialogs/EmptyCardsReportTest.kt @@ -0,0 +1,51 @@ +/**************************************************************************************** + * Copyright (c) 2025 lukstbit <52494258+lukstbit@users.noreply.github.com> * + * * + * 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 androidx.test.ext.junit.runners.AndroidJUnit4 +import com.ichi2.anki.CollectionManager.withCol +import com.ichi2.anki.RobolectricTest +import org.junit.Test +import org.junit.runner.RunWith +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +@RunWith(AndroidJUnit4::class) +class EmptyCardsReportTest : RobolectricTest() { + @Test + fun `backend report has expected html structure`() = + runTest { + addStandardNoteType("TestNotetype", arrayOf("f1", "f2"), "", "") + val note1 = addNoteUsingNoteTypeName("TestNotetype", "f1text1", "f2text1") + val note2 = addNoteUsingNoteTypeName("TestNotetype", "f1text2", "f2text2") + val emptyCardsReport = withCol { getEmptyCards() } + assertEquals(getExpectedEmptyCardsReport(note1.id, note2.id), emptyCardsReport.report) + } + + private fun getExpectedEmptyCardsReport( + nid1: Long, + nid2: Long, + ) = + "
Empty cards for \u2068TestNotetype\u2069:
  1. [anki:nid:$nid1] \u20681\u2069 of \u20681\u2069 cards empty (\u2068Card 1\u2069).
  2. [anki:nid:$nid2] \u20681\u2069 of \u20681\u2069 cards empty (\u2068Card 1\u2069).
" + + @Test + fun `backend report is empty when there are no empty cards`() = + runTest { + addNotes(12) + val emptyCardsReport = withCol { getEmptyCards() } + assertTrue(emptyCardsReport.report.isEmpty()) + } +} From 922ee8319faa4ade72730e67333f693bd4754ddb Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Mon, 17 Feb 2025 18:57:51 +0000 Subject: [PATCH 075/200] docs: showManageAllFilesScreen error case --- .../com/ichi2/anki/ui/windows/permissions/PermissionsFragment.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionsFragment.kt index fa64bb680f46..38d5dcd79ad2 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/permissions/PermissionsFragment.kt @@ -85,6 +85,7 @@ abstract class PermissionsFragment( // From the docs: [ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION] // In some cases, a matching Activity may not exist, so ensure you safeguard against this. + // example: not yet supported on WearOS: https://issuetracker.google.com/issues/299174252 if (intent.resolveActivity(requireActivity().packageManager) != null) { Timber.i("launching ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION") launch(intent) From d01875a1099ce84816019936c42eb0389af37b03 Mon Sep 17 00:00:00 2001 From: Ashish Yadav <48384865+criticalAY@users.noreply.github.com> Date: Mon, 10 Feb 2025 18:05:59 +0530 Subject: [PATCH 076/200] nf: remove TODO from instant note editor activity" --- .../ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt index e601ae73b047..2b44cb86a437 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/instantnoteeditor/InstantNoteEditorActivity.kt @@ -167,7 +167,6 @@ class InstantNoteEditorActivity : } /** Setup the deck spinner and custom editor dialog layout **/ - // TODO: subscribe to the flow of deckId to change the control value private fun showEditorDialog() { showDialog() deckSpinnerSelection = From a989592067464d51206c830d644d7c2305a1ba40 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Mon, 17 Feb 2025 12:59:39 -0300 Subject: [PATCH 077/200] refactor: add more material colors resources source: https://materialui.co/colors --- AnkiDroid/src/main/res/values/colors.xml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/AnkiDroid/src/main/res/values/colors.xml b/AnkiDroid/src/main/res/values/colors.xml index 911bf59197fe..ae82c3d4054b 100644 --- a/AnkiDroid/src/main/res/values/colors.xml +++ b/AnkiDroid/src/main/res/values/colors.xml @@ -53,11 +53,19 @@ #ffC62828 #ffb71c1c #ffd50000 + + #FFE0B2 + #FFCC80 + #FFB74D + #FFD180 + #FFAB40 #ffff6d00 #9fa8da #ff303f9f #ff304ffe + #BBDEFB + #90CAF9 #ff42a5f5 #ff2196f3 #ff1e88e5 @@ -72,6 +80,8 @@ #ff0288d1 #ff0277BD #ff01579B + #80D8FF + #40C4FF #ff0091ea #ff00b8d4 @@ -86,6 +96,8 @@ #ff64dd17 #ffaeea00 + #C5E1A5 + #ffffeb3b #ff7E57C2 From 57f2fcc4779f2597cd23047509cf67455467464d Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Mon, 17 Feb 2025 13:03:09 -0300 Subject: [PATCH 078/200] feat(new reviewer): buttons night mode colors --- AnkiDroid/src/main/res/values-night/colors.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/AnkiDroid/src/main/res/values-night/colors.xml b/AnkiDroid/src/main/res/values-night/colors.xml index bb0c643162ec..c37438c75b82 100644 --- a/AnkiDroid/src/main/res/values-night/colors.xml +++ b/AnkiDroid/src/main/res/values-night/colors.xml @@ -7,4 +7,13 @@ #A70D64 #138072 #6320A0 + + #1AB71C1C + @color/material_red_200 + #1AE65100 + @color/material_orange_200 + #1A2E7D32 + @color/material_light_green_200 + #1A0277BD + @color/material_light_blue_A100 \ No newline at end of file From 00a71220f7933ce0e247721bd915bba665910379 Mon Sep 17 00:00:00 2001 From: Anoop Date: Sat, 15 Feb 2025 17:02:22 +0530 Subject: [PATCH 079/200] Reduced the height of the Card Analysis Widget. --- AnkiDroid/src/main/res/layout/widget_card_analysis.xml | 6 +++--- .../main/res/layout/widget_card_analysis_drawable_v31.xml | 4 ++-- .../src/main/res/xml/widget_provider_card_analysis.xml | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/AnkiDroid/src/main/res/layout/widget_card_analysis.xml b/AnkiDroid/src/main/res/layout/widget_card_analysis.xml index 9b76b3620ef2..3d495c00489f 100644 --- a/AnkiDroid/src/main/res/layout/widget_card_analysis.xml +++ b/AnkiDroid/src/main/res/layout/widget_card_analysis.xml @@ -27,7 +27,7 @@ android:layout_height="wrap_content" android:background="@drawable/widget_card_analysis_rounded_inner_background" android:orientation="horizontal" - android:padding="20dp"> + android:padding="16dp"> + android:padding="16dp"> Date: Sat, 15 Feb 2025 21:17:27 +0530 Subject: [PATCH 080/200] fix:focus keyboard on edit description dialog --- .../java/com/ichi2/anki/dialogs/EditDeckDescriptionDialog.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EditDeckDescriptionDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EditDeckDescriptionDialog.kt index e3d4718fb85f..92a6baf42395 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EditDeckDescriptionDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/EditDeckDescriptionDialog.kt @@ -32,6 +32,7 @@ import com.ichi2.anki.utils.ext.description import com.ichi2.anki.utils.ext.update import com.ichi2.libanki.DeckId import com.ichi2.themes.Themes +import com.ichi2.utils.AndroidUiUtils.setFocusAndOpenKeyboard import timber.log.Timber /** @@ -79,6 +80,7 @@ class EditDeckDescriptionDialog : DialogFragment() { }.also { toolbar -> launchCatchingTask { toolbar.title = withCol { decks.get(deckId)!!.name } } } + setFocusAndOpenKeyboard(deckDescriptionInput) { deckDescriptionInput.setSelection(deckDescriptionInput.text!!.length) } } } From 7133b31bb51b26fa815972f99943fc59ea9dac61 Mon Sep 17 00:00:00 2001 From: snowtimeglass Date: Thu, 20 Feb 2025 12:01:23 +0900 Subject: [PATCH 081/200] fix: top side is cut off when center align & long issue: if "Center align" is enabled and the content of the card is so long that cannot be shown entirely without scrolling, the top side of the content is trimmed. --- AnkiDroid/src/main/assets/flashcard.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/assets/flashcard.css b/AnkiDroid/src/main/assets/flashcard.css index be8dd01bab14..d9b9ccfb6b51 100644 --- a/AnkiDroid/src/main/assets/flashcard.css +++ b/AnkiDroid/src/main/assets/flashcard.css @@ -116,7 +116,7 @@ preferred over using JavaScript. .vertically_centered { position: absolute; width: 100%; - height: 100%; + min-height: 100%; display: -webkit-box; -webkit-box-align: stretch; -webkit-box-pack: center; From 52024789a352dc625ea98e92c433ab4eec15754d Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Tue, 25 Feb 2025 15:27:13 +0000 Subject: [PATCH 082/200] Updated strings from Crowdin --- .../src/main/res/values-de/11-arrays.xml | 18 +-- AnkiDroid/src/main/res/values-fr/01-core.xml | 2 +- .../src/main/res/values-fr/02-strings.xml | 2 +- .../src/main/res/values-fr/07-cardbrowser.xml | 12 +- .../src/main/res/values-fr/11-arrays.xml | 4 +- AnkiDroid/src/main/res/values-km/01-core.xml | 78 +++++----- .../src/main/res/values-km/02-strings.xml | 140 +++++++++--------- .../src/main/res/values-km/03-dialogs.xml | 78 +++++----- .../src/main/res/values-km/04-network.xml | 14 +- .../src/main/res/values-km/05-feedback.xml | 4 +- .../src/main/res/values-km/07-cardbrowser.xml | 36 ++--- .../src/main/res/values-km/08-widget.xml | 12 +- .../src/main/res/values-km/09-backup.xml | 4 +- .../src/main/res/values-km/10-preferences.xml | 130 ++++++++-------- .../src/main/res/values-km/11-arrays.xml | 22 +-- .../src/main/res/values-pt-rBR/02-strings.xml | 10 +- .../main/res/values-pt-rBR/07-cardbrowser.xml | 12 +- .../main/res/values-pt-rBR/10-preferences.xml | 8 +- .../src/main/res/values-ug/10-preferences.xml | 2 +- .../src/main/res/values-uk/10-preferences.xml | 2 +- 20 files changed, 293 insertions(+), 297 deletions(-) diff --git a/AnkiDroid/src/main/res/values-de/11-arrays.xml b/AnkiDroid/src/main/res/values-de/11-arrays.xml index f4107293b6be..7983e2098764 100644 --- a/AnkiDroid/src/main/res/values-de/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-de/11-arrays.xml @@ -50,15 +50,15 @@ - Älteste zuerst - Zufällig - Steigende Intervalle - abnehmenden Intervallen - Meiste Fehlversuche - Reihenfolge des Hinzufügens - Fälligkeit - Zuletzt hinzugefügte zuerst - relativer Überfälligkeit + Datum der letzten Wiederholung (älteste zuerst) + Zufall + Intervall (aufsteigend) + Intervall (absteigend) + Fehlversuche (häufigste zuerst) + Erstelldatum (älteste zuerst) + Fälligkeitsdatum (älteste zuerst) + Erstelldatum (neueste zuerst) + Abrufbarkeit (aufsteigend) Aktuellen Stapel verwenden Nach Notiztyp entscheiden diff --git a/AnkiDroid/src/main/res/values-fr/01-core.xml b/AnkiDroid/src/main/res/values-fr/01-core.xml index 151b160fb35e..b148e9458e50 100644 --- a/AnkiDroid/src/main/res/values-fr/01-core.xml +++ b/AnkiDroid/src/main/res/values-fr/01-core.xml @@ -129,7 +129,7 @@ Ce paquet est vide Chercher un deck Nom de paquet invalide - Congratulations! You have finished for today. + Félicitations ! Vous avez terminé pour aujourd\'hui. Paquet terminé pour l’instant! %s Aucune carte due actuellement Aucune carte SD diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index 6e36218c733a..cd8099d40e64 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -87,7 +87,7 @@ +%d enterrée +%d enterrées
- Total new cards + Total des nouvelles cartes Total de cartes Modifier la note diff --git a/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml index c4952423e327..15da0c571576 100644 --- a/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml @@ -112,10 +112,10 @@ Boîte de dialogue d’édition des tags Show order dialog - Columns - Manage columns - Active - Available - Include column - Exclude column + Colonnes + Gérer les colonnes + Actif + Disponible + Inclure la colonne + Exclure la colonne diff --git a/AnkiDroid/src/main/res/values-fr/11-arrays.xml b/AnkiDroid/src/main/res/values-fr/11-arrays.xml index 631a04e73636..b807b211601a 100644 --- a/AnkiDroid/src/main/res/values-fr/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-fr/11-arrays.xml @@ -84,7 +84,7 @@ Bonne réponse Réponse facile Lire le média - Close reviewer + Fermer l\'évaluateur Activer/désactiver la balise rouge Activer/désactiver la balise orange Activer/désactiver la balise verte @@ -95,7 +95,7 @@ Retirer la balise Remonter Descendre - Close reviewer and Sync + Fermer l\'évaluateur et la synchronisation Activer le tableau blanc Afficher l\'indice Afficher tous les indices diff --git a/AnkiDroid/src/main/res/values-km/01-core.xml b/AnkiDroid/src/main/res/values-km/01-core.xml index 210aea487e60..3bb39dc6fb89 100644 --- a/AnkiDroid/src/main/res/values-km/01-core.xml +++ b/AnkiDroid/src/main/res/values-km/01-core.xml @@ -45,19 +45,19 @@ --> - Decks + ជាន់ ស្វែងរកកាត ស្ថិតិ ការ​កំណត់ ជំនួយ - Drawing + គំនូរ ផ្ញើមតិ - រៀន + សិក្សា ពន្លាត បង្រួម - %d minutes left + នៅសល់ %d នាទីទៀត %1$d hours %2$d left @@ -66,48 +66,48 @@ %1$d days %2$dh left Collection is empty - ចាប់ផ្តើមដាក់កាត\nដោយចុចសញ្ញា + + ចាប់ផ្តើមបន្ថែមកាត\nដោយប្រើសញ្ញា + - Type answer - Show answer - Hide answer + វាយចម្លើយ + បង្ហាញចម្លើយ + លាក់ចម្លើយ ម្ដងទៀត ពិបាក ល្អ ស្រួល - Import - Undo - Redo + នាំចូល + មិនធ្វើវិញ + ធ្វើឡើងវិញ Undo stroke - Move all to deck - Unbury - Rename deck - Create shortcut - Browse cards - Edit description - Add - Add note - Sync account - Hide / delete - Bury card - Bury note - Suspend card - Suspend note - Bury - Suspend - Delete note - Flag - Rename flags + ផ្លាស់ទីទាំងអស់ទៅកាន់ជាន់ + ឈប់កប់ + ប្ដូរឈ្មោះ + បង្កើតផ្លូវកាត់ + រកមើលកាត + កែសម្រួលការពិពណ៌នា + បន្ថែម + បន្ថែមកំណត់ត្រា + ធ្វើសមកាលកម្មគណនី + លាក់ / លុប + កប់កាត + កប់កំណត់ត្រា + ផ្អាកកាត + ផ្អាកកំណត់ត្រា + កប់ + ផ្អាក + លុបកំណត់ត្រា + ទង់ + ប្ដូរឈ្មោះទង់ Flag card - Edit tags + កែសម្រួលស្លាក Really delete this note and all its cards?\n%s Lookup in %1$s - Mark note - Unmark note + សម្គាល់កំណត់ត្រា + ឈប់សម្គាល់កំណត់ត្រា Enable voice playback Disable voice playback - Create deck + បង្កើតជាន់ Create filtered deck AnkiDroid directory is inaccessible - Card types + ប្រភេទកាត Front template Back template Styling @@ -165,8 +165,8 @@ Read and write to the AnkiDroid database access existing notes, cards, note types, and decks, as well as create new ones - Card Browser - Anki Card + ការរកមើលកាត + កាត​ Anki The collections can’t be combined.\nWhich collection do you want to keep? AnkiDroid @@ -192,7 +192,7 @@ 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-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 0fa1dec50ef3..1738d3a138bf 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -45,30 +45,30 @@ --> - Open drawer - Close drawer - Card deck: - Deck: - Type: + បើកថត + បិទថត + ជាន់របស់កាត + ជាន់ + ប្រភេទ Tags: %1$s Cards: %1$s Edit Occlusions - Tag name + ឈ្មោះស្លាក Add/filter tags - Add tag + បន្ថែមស្លាក Check/uncheck all tags Filter tags You haven’t added any tags yet Updated to version %s - Save whiteboard + រក្សាទុកក្ដារខៀន Enable stylus writing Disable stylus writing - Enable whiteboard - Disable whiteboard - Show whiteboard - Hide whiteboard - Clear whiteboard + បើកក្ដារខៀន + បិទក្ដារខៀន + បង្ហាញក្ដារខៀន + លាក់ក្ដារខៀន + សម្អាតក្ដារខៀន Replay audio Card marked as leech and suspended Card marked as leech @@ -80,7 +80,7 @@ Fatal Error: WebView renderer crashed. Cause: %s System WebView Rendering Failure System WebView failed to render card \'%1$s\'.\n %2$s - Flags + ទង់ Limit to particular tags @@ -89,16 +89,16 @@ Total new cards Total cards - Edit note + កែសម្រួលកំណត់ត្រា Discard No cards created. Please fill in more fields The current note type did not produce any cards.\nPlease choose another note type, or click ‘Cards’ and add a field substitution Cloze deletions will only work on a Cloze note type - Saving note - Saving note type - Save - Close - Select + កំពុងរក្សាទុកកំណត់ត្រា + កំពុងរក្សាទុកប្រភេទកំណត់ត្រា + រក្សាទុក + បិទ + ជ្រើសរើស %1$s (from “%2$s”) Any cards mapped to nothing will be deleted. If a note has no remaining cards, it will be lost. Are you sure you want to continue? No note type found @@ -126,14 +126,14 @@ Empty cards Type answer: unknown field %s Deleting deck… - Rate AnkiDroid - Importing + វាយតម្លៃ AnkiDroid + ការនាំចូល Preparing file for import… ថែម This will delete your existing collection and replace it with the data of file %s Add “%s” to collection? This may take a long time This isn’t a valid Anki package file - Error + កំហុស Failed to import file\n\n%s Filename “%s” doesn’t have .apkg or .colpkg extension Anki Database (.anki2) replacements are not yet supported. Please see the manual for replacement instructions. @@ -141,7 +141,7 @@ Failed to cache file (possibly out of storage space) Import interrupted: AnkiDroid was closed Preparing export… - Export ready + ការនាំចេញគឺរួចរាល់ No applications available to handle apkg. Saving… Successfully saved Anki package Save Anki package failed @@ -154,13 +154,13 @@ [1] %1$s
[2] %2$s ]]>
- Share - Save to + ចែករំលែក + រក្សាទុកនៅ Saving exported file… - Options - Deck options - Study options - Set TTS language + ជម្រើស + ជម្រើសជាន់ + ជម្រើសសិក្សា + កំណត់ភាសា​ TTS Custom study This is a special deck for studying outside of the normal schedule. Cards will be automatically returned to their original decks after you review them. Deleting this deck from the deck list will return all remaining cards to their original deck. Steps must be numbers greater than 0 @@ -168,7 +168,7 @@ Touch “%2$s” to confirm adding “%1$s” Existing tag “%1$s” selected - Do not forget to study today! + កុំភ្លេចរៀនថ្ងៃនេះ! %2$d cards to review in %1$s @@ -181,16 +181,16 @@ Error loading page: %s - Background - Select image - Remove background? + ផ្ទៃខាងក្រោយ + ជ្រើសរើសរូបភាព + ដកផ្ទៃខាងក្រោយចេញ? - Restore Default + ស្តារលំនាំដើមឡើងវិញ Blank - Failed to save whiteboard image. %s + បរាជ័យក្នុងការរក្សាទុករូបភាពរបស់ក្ដារខៀន។ %s Whiteboard image saved to %s - Whiteboard editor + ការកែសម្រួលក្ដារខៀន Detected automated test. If you are a human, contact AnkiDroid support This card uses unsupported AnkiDroid features. Contact developer %1$s, or view the wiki. %2$s @@ -216,7 +216,7 @@ Format as Underline Insert Horizontal Line Insert Heading - Change Font Size + ប្ដូរទំហំពុម្ពអក្សរ Insert MathJax Equation Button text HTML Before Selection @@ -243,28 +243,28 @@ Press back again to exit %s%% - Download deck - Try Again + ទាញយកជាន់ + ព្យាយាមម្ដងទៀត Cancel download Cancel download? Downloading %s - Import Deck + នាំចូលជាន់ Something went wrong, please try again - Download failed - You can use other apps while the download is running - Please check your network connection - Search using deck name + ការទាញយកបានបរាជ័យ + អ្នកអាចប្រើកម្មវិធីដទៃទៀតអំឡុងពេលទាញយក + សូមពិនិត្យការភ្ជាប់បណ្ដាញរបស់អ្នក + ស្វែងរកដោយប្រើឈ្មោះជាន់ Download aborted, the external storage is not available Home - Card buried. + កាតបានកប់។ %d cards suspended. Make field %s sticky - Learn More + ស្វែងយល់បន្ថែម Search returned no results %s is not a valid JavaScript addon package @@ -292,50 +292,46 @@ Deck deleted. Please remove the shortcut - Cards - Notes + កាត + កំណត់ត្រា Toggle Cards/Notes 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 - Voice should be installed before use - - Use anyway - + សំឡេងគួរតែត្រូវបានដំឡើងមុនពេលប្រើ + នៅតែប្រើ Text to speech error (%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 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. Deck Picker - Delete deck without confirmation - Note Editor - Select deck - Select note type - Tag editor + លុបជាន់ដោយមិនបាច់បញ្ជាក់ + ការកែសម្រួលកំណត់ត្រា + ជ្រើសរើសជាន់ + ជ្រើសរើសប្រភេទកំណត់ត្រា + ការកែសម្រួលស្លាក Card Template Editor Edit front template Edit back template diff --git a/AnkiDroid/src/main/res/values-km/03-dialogs.xml b/AnkiDroid/src/main/res/values-km/03-dialogs.xml index d4e9fbd9850c..94f28d1f119a 100644 --- a/AnkiDroid/src/main/res/values-km/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-km/03-dialogs.xml @@ -45,15 +45,15 @@ --> ពិនិត្យទិន្នន័យ? - This may take a long time - Delete deck - Delete deck? + នេះអាចចំណាយពេលយូរ + លុបជាន់ + លុបជាន់? Delete all cards in %1$s? It contains %2$d cards Delete filtered deck %s and send all cards back to their original decks? No text-to-speech language available - Don’t speak + កុំនិយាយ Only new cards can be repositioned Reset card progress @@ -61,7 +61,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. - Report error + រាយការណ៍កំហុស There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty @@ -77,23 +77,23 @@ AnkiDroid needs %s free storage space to continue. Please clear some space Restore backup? Your collection will be replaced with an older copy. Any unsaved progress will be lost. - Choose another - Cancel + រើសផ្សេងទៀត + បោះបង់ OK - Confirm - No + បញ្ជាក់ + ទេ បាទ/ចាស - Keep - Remove - Continue + រក្សាទុក + ដកចេញ + បន្ត Processing… - Create - Delete + បង្កើត + លុប - Disable + បិទ Overwrite - Repair - Replace + ជួសជុល + ជំនួស The path specified wasn’t a valid directory The provided text does not resolve to a valid PEM-encoded X509 certificate Error parsing certificate @@ -139,10 +139,10 @@ The database is a more advanced version than this version of AnkiDroid can work with. Upgrade AnkiDroid or downgrade the database to open it\n\nSupported version: %1$d\nDatabase version: %2$d\n\nThe following restore options will overwrite your current collection, possibly with a compatible database version: Background image applied - Background image removed - No image selected + រូបផ្ទៃខាងក្រោយត្រូវបានដកចេញ + គ្មានរូបភាពត្រូវបានជ្រើសរើស Error selecting image. Please see manual. %s - Error deleting image + បញ្ហាក្នុងការលុបរូបភាព Failed to apply background image %s Deck Picker background too large Maximum image size %d MB allowed @@ -154,24 +154,24 @@ Failed to schedule reminders Too many reminders scheduled. Some will not appear - Set Language + កំណត់ភាសា Some multilingual keyboards, such as GBoard support changing language when editing text\n\nPlease request the “setImeHintLocales” feature from your keyboard manufacturer if your keyboard does not change language. - Using AnkiDroid - AnkiDroid Manual - Anki Manual + ការប្រើប្រាស់ AnkiDroid + សៀវភៅ manual របស់ AnkiDroid + សៀវភៅ manual របស់ AnkiDroid AnkiDroid FAQ Get Help Mailing List Reddit Report a Bug - Support AnkiDroid - Donate - Develop - Rate - Other - Translate - Community + គាំទ្រ AnkiDroid + ឧបត្ថម្ភ + អភិវឌ្ឍ + វាយតម្លៃ + ផ្សេងទៀត + បកប្រែ + សហគមន៍ Anki Forums Discord Facebook @@ -224,26 +224,26 @@ Show cards in range
- 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 The system WebView is outdated. Some features won’t work correctly. Please update it.\n\nInstalled version: %1$d\nMinimum required version: %2$d Compress - 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/04-network.xml b/AnkiDroid/src/main/res/values-km/04-network.xml index 1f54e13d8a8e..6e149702a538 100644 --- a/AnkiDroid/src/main/res/values-km/04-network.xml +++ b/AnkiDroid/src/main/res/values-km/04-network.xml @@ -45,19 +45,19 @@ --> - You are offline - Sync error - Error - Retry - Get shared decks + អ្នកគ្មានអ៊ីនធឺណិតទេ + បញ្ហាធ្វើសមកាលកម្ម + បញ្ហា + ព្យាយាមម្ដងទៀត + ទាញយកជាន់ដោយសេរី A network error has occurred Log in to AnkiWeb You must log in to a third party account to use the cloud sync service. You can create one in the next step. Email address - Password + ពាក្យសម្ងាត់ Log in - Don’t have an AnkiWeb account? It’s free! + មិនមានគណនី AnkiWeb? វា free ទេ! Note: AnkiWeb is not affiliated with AnkiDroid Sign up Logged in as diff --git a/AnkiDroid/src/main/res/values-km/05-feedback.xml b/AnkiDroid/src/main/res/values-km/05-feedback.xml index a57e0a3e12da..e9eb0d517e85 100644 --- a/AnkiDroid/src/main/res/values-km/05-feedback.xml +++ b/AnkiDroid/src/main/res/values-km/05-feedback.xml @@ -53,7 +53,7 @@ AnkiDroid has encountered a problem; a report is being sent to the developers… An error report is being prepared for the developers… Copy debug info - Report - Send error reports automatically + រាយការណ៍ + ផ្ញើការរាយការណ៍អំពីបញ្ហាដោយស្វ័យប្រវត្តិ No suitable app found diff --git a/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml index e0a98d9726dd..e0f529787d4d 100644 --- a/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml @@ -51,29 +51,29 @@ %d notes shown - All decks + ជាន់ទាំងអស់ - Delete notes + លុបកំណត់ត្រា - Change deck - Delete note? + ប្ដូរជាន់ + លុបកំណត់ត្រា? Filter marked Filter suspended Filter by tag Filter by flag - My searches - Save search - Choose a saved search + ការស្វែងរករបស់ខ្ញុំ + រក្សាការស្វែងរក + រើសការស្វែងរក Name for the current search - You can’t save a search without a name - Name exists + អ្នកមិនអាចរក្សាទុកលទ្ធផលស្វែងរកដោយមិនមានឈ្មោះឡើយ + ឈ្មោះមានហើយ No note to edit Delete “%1$s”? Change display order - Search - Search + ស្វែងរក + ស្វែងរក Choose display order - Tags + ស្លាក No sorting (faster) By sort field @@ -86,18 +86,18 @@ By reviews By lapses - Select all - Select none + ជ្រើសរើសទាំងអស់ + មិនជ្រើសរើស No cards found in deck ‘%s’ - Search all decks + ស្វែងរកជាន់ទាំងអស់ Unknown Truncate content Today is ‘0 %1$s’, tomorrow is ‘1 %2$s’, etc… - Export cards + នាំចេញកាត - Export notes + នាំចេញកំណត់ត្រា %d cards deleted @@ -108,7 +108,7 @@ Columns Manage columns - Active + សកម្ម Available Include column Exclude column diff --git a/AnkiDroid/src/main/res/values-km/08-widget.xml b/AnkiDroid/src/main/res/values-km/08-widget.xml index 31452e661084..75ec8265016e 100644 --- a/AnkiDroid/src/main/res/values-km/08-widget.xml +++ b/AnkiDroid/src/main/res/values-km/08-widget.xml @@ -49,22 +49,22 @@ %d AnkiDroid cards due - AnkiDroid small + AnkiDroid តូច %d cards due %d minutes remaining - Add new AnkiDroid note + បន្ថែមកំណត់ត្រា AnkiDroid ថ្មី Deck Picker 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. diff --git a/AnkiDroid/src/main/res/values-km/09-backup.xml b/AnkiDroid/src/main/res/values-km/09-backup.xml index 57e182918a6f..24018f299ebd 100644 --- a/AnkiDroid/src/main/res/values-km/09-backup.xml +++ b/AnkiDroid/src/main/res/values-km/09-backup.xml @@ -53,8 +53,8 @@ One-way sync from server Overwrite your collection with the one from AnkiWeb? This will drop all your learning progress and added information since your last sync. Error handling - Options - Retry opening + ជម្រើស + ព្យាយាមបើកម្ដងទៀត Repair database Repairing database… diff --git a/AnkiDroid/src/main/res/values-km/10-preferences.xml b/AnkiDroid/src/main/res/values-km/10-preferences.xml index 0b680887a4dd..d0dd398e541e 100644 --- a/AnkiDroid/src/main/res/values-km/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-km/10-preferences.xml @@ -45,63 +45,63 @@ --> - Disabled + បានបិទ %d mins %s ms - No results + គ្មានលទ្ធផល - General - Studying + ទូទៅ + ការសិក្សា System-wide Reviewing - Sync - Scheduling - Whiteboard + សមកាលកម្ម + កាលវិភាគ + ក្ដារខៀន Appearance Themes - Gestures - Controls + កាយវិការ + ការបញ្ជា Advanced Workarounds Plugins Stroke width - Type answer into the card + វាយចម្លើយចូលកាត Use a text input box inside the card to type in the answer Reset languages Reset language assignments (for text to speech and dictionaries) for all decks Reset all language assignments? All states reset - Card zoom - Image zoom + ការពង្រីកកាត + ការពង្រីករូបភាព Answer button size Card browser font scaling Display filenames in card browser Display media filenames in the card browser question/answer fields AnkiDroid directory Fullscreen mode - Off + បិទ Hide the system bars Hide the system bars and answer buttons Answer buttons position - Top - Bottom - None + លើ + ក្រោម + គ្មាន - Enable gestures + បើកកាយវិការ Assign gestures to actions such as answering and editing cards. 9-point touch Allow touch gestures in screen corners - Show keyboard shortcuts + បង្ហាញផ្លូវកាត់របស់ក្ដារចុច Full screen navigation drawer Open navigation drawer when swiped right from anywhere on the screen - None - Swipe up - Swipe down + គ្មាន + អូសទៅលើ + អូសទៅក្រោម Swipe left Swipe right Double touch @@ -125,12 +125,12 @@ Reads out question and answer if no sound file is included Fetch media on sync - AnkiWeb account + គណនី AnkiWeb Not logged in Automatic synchronization Sync automatically on app start/exit if the last sync was more than 10 minutes ago. - Always + ជានិច្ច Only on unmetered connections Never Display synchronization status @@ -138,20 +138,20 @@ Allow sync on metered connections If disabled, you will be warned if you try to sync on a metered connection Frequency - Lifetime + រៀងរហូត Theme Day theme Night theme - Language - System language - Notifications - Notify when - Never notify + ភាសា + ភាសាប្រព័ន្ធ + ការជូនដំណឺង + ជូនដំណឺងពេល + កុំជូនដំណឺង Pending messages available More than %d cards due Vibrate Blink light - Select language + ជ្រើសរើសភាសា Disable card hardware render Hardware render is faster but may have problems, specifically on Android 8/8.1. If you cannot see parts of the card review user interface, try this setting. Safe display mode @@ -173,9 +173,9 @@ Show card counts, answer timer, flag and mark in top bar Show remaining Show remaining card count - Show ETA - Show remaining time - Deck for new cards + បង្ហាញ ETA + បង្ហាញពេលដែលនៅសល់ + ជាន់់សម្រាប់កាតថ្មី Learn ahead limit Timebox time limit Start of next day @@ -190,7 +190,7 @@ Customize which actions appear in the app bar Always show Show if room - Menu only + ម៉ឺនុយប៉ុណ្ណោះ Reset to default Reset settings to default Reset @@ -210,7 +210,7 @@ If Android doesn’t recognize a media file Custom sync server - Not used + មិនត្រូវបានប្រើ Sync url Custom root certificate (PEM) - Keyboard + ក្ដារចុច Bluetooth - Answer buttons - Card - Note + ប៊ូតុងចម្លើយ + កាត + កំណត់ត្រា Navigation Media Misc - Select tags + ជ្រើសរើសស្លាក - General + ទូទៅ Reminders Filter - Search + ស្វែងរក Limit to - Cards selected by + កាតត្រូវបានរើសដោយ Reschedule Reschedule cards based on my answers in this deck Enable second filter @@ -244,15 +244,15 @@ Delays are in seconds. 0 returns card to original deck. Help make AnkiDroid better! - Share feature usage + ចែករំលែកនូវការប្រើមុខងារ You can contribute to AnkiDroid by helping the development team see which features people use Replace newlines with HTML In the Note Editor, convert any instances of <br> to newlines when editing a card. Focus ‘type in answer’ Automatically focus the ‘type in answer’ field in the reviewer - Open Changelog - About + បើក Changelog + អំពី Contributors contributors. You can help AnkiDroid too by programming, translating, donating and more!]]> License @@ -268,18 +268,18 @@ 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 + សកម្មភាពអ្នកប្រើប្រាស់ 3 + សកម្មភាពអ្នកប្រើប្រាស់ 4 + សកម្មភាពអ្នកប្រើប្រាស់ 5 + សកម្មភាពអ្នកប្រើប្រាស់ 6 + សកម្មភាពអ្នកប្រើប្រាស់ 7 + សកម្មភាពអ្នកប្រើប្រាស់ 8 + សកម្មភាពអ្នកប្រើប្រាស់ 9 Toggle auto advance - Select card side - Question - Answer + ជ្រើសរើសផ្នែកនៃកាត + សំណួរ + ចម្លើយ Question & Answer Q: %s A: %s @@ -292,7 +292,7 @@ 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 - Developer options + ជម្រើសអ្នកអភិវឌ្ឍ Enable developer options Disable developer options Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. @@ -318,7 +318,7 @@ ####################################################################################### --> Manage space - Error + បញ្ហា Calcu-\nlating… %1$d files\n%2$s @@ -338,13 +338,13 @@ Are you sure you want to delete your collection, media, and backups?\n\nNote: this action will close the window. Deleting collection… - Delete everything + លុបអ្វីទាំងអស់ Delete collection, media, backups, and settings - Delete everything + លុបអ្វីទាំងអស់ Are you sure you want to delete all data? This includes your collection, media, backups and preferences.\n\nNote: this action will close the window. - Delete app data - Delete settings and other app data + លុបទិន្នន័យកម្មវិធី + លុបការកំណត់និងទិន្នន័យកម្មវិធីផ្សេងទៀត Delete app data Are you sure you want to delete app data? This includes settings and other app data.\n\nNote: this action will close the window. - Open settings + បើកការកំណត់ diff --git a/AnkiDroid/src/main/res/values-km/11-arrays.xml b/AnkiDroid/src/main/res/values-km/11-arrays.xml index 72524773fc69..9bdc9890511a 100644 --- a/AnkiDroid/src/main/res/values-km/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-km/11-arrays.xml @@ -43,14 +43,14 @@ - Always report - Never report - Ask me + រាយការណ៍ជានិច្ច + កុំរាយការណ៍ + សួរខ្ញុំ - Oldest seen first + ឃើញអ្វីដែលចាស់បំផុតមុន Random Increasing intervals Decreasing intervals @@ -60,16 +60,16 @@ Latest added first Relative overdueness - Use current deck - Decide by note type + ប្រើជាន់បច្ចុប្បន្ន + សម្រេចដោយប្រភេទរបស់កំណត់ត្រា - Follow system + ធ្វើតាមប្រព័ន្ធ - Light + ភ្លឺ Plain - Black - Dark + ខ្មៅ + ងងឹត xx-small x-small @@ -79,7 +79,7 @@ x-large xx-large - Answer again + ឆ្លើយម្ដងទៀត Answer hard Answer good Answer easy 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 4483e073dbff..2fe903396904 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -85,10 +85,10 @@ Limitar a tags específicas +%d oculto - +%d buried + +%d oculto - Total new cards - Total cards + Total de cartões novos + Total de cartões Editar nota Descartar @@ -301,7 +301,7 @@ Notas Alternar Cards/Notas Truncar a altura de cada linha do navegador para mostrar apenas as 3 primeiras linhas de conteúdo - Browser options + Opções do navegador Gravação salva Excluindo notas selecionadas Toque numa voz para ouvir @@ -349,5 +349,5 @@ Copiar o modelo como markdown Editar aparência do navegador A ação do usuário %s não está definida neste tipo de nota. Por favor, configure-a - Learn more about how to restore access here %s or go to settings to update collection folder. + Aprenda mais sobre como restaurar o acesso aqui %s ou vá em opções para atualizar a pasta de coleções. diff --git a/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml index ce865b786349..50288a2477f1 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml @@ -112,10 +112,10 @@ Editar etiquetas de diálogo Mostrar diálogo de ordem - Columns - Manage columns - Active - Available - Include column - Exclude column + Colunas + Gerenciar colunas + Ativo + Disponível + Incluir coluna + Excluir coluna 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 7f253f75ca17..232b194f22ba 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml @@ -97,7 +97,7 @@ Atribuir gestos a ações tais como responder e editar cards. 9 Ações de Toque Permitir gestos de toque nos cantos da tela - Show keyboard shortcuts + Exibir teclas de atalho Painel de navegação em tela cheia Abrir painel de navegação ao ser deslizado de qualquer lugar da tela Nenhuma @@ -366,9 +366,9 @@ Ignorar recorte da tela Ocultar botões de resposta Ocultar botões \"Difícil\" e \"Fácil\" - Frame style - Card - Box + Estilo de enquadramento + Cartão + Caixa Abrir configurações diff --git a/AnkiDroid/src/main/res/values-ug/10-preferences.xml b/AnkiDroid/src/main/res/values-ug/10-preferences.xml index 76799524b357..fef78f8c2568 100644 --- a/AnkiDroid/src/main/res/values-ug/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ug/10-preferences.xml @@ -97,7 +97,7 @@ جاۋاب ۋە كارتا تەھرىرلەشكە ئوخشاش مەشغۇلاتقا قول ئىشارىتى بەلگىلەيدۇ. 9 نۇقتا سەزگۈچ ئېكران بۇلۇڭلىرى تېگىشىش قول ئىشارىتىگە يول قويىدۇ - Show keyboard shortcuts + ھەرپتاختا تېزلەتمىسىنى كۆرسەت پۈتۈن ئېكران يولباشچى تارتمىسى ئېكراننىڭ خالىغان يېرىدىن ئوڭغا سۈرۈلسە يولباشچى تارتمىسىنى ئاچىدۇ يوق diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index 7f154a8bbbfb..277957de65c7 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -99,7 +99,7 @@ Використовувати жести для таких дій, як відповідь і редагування карток. 9-точковий дотик Дозволити сенсорні жести в кутах екрану - Show keyboard shortcuts + Показати клавіатурні комбінації клавіш Повноекранна панель навігації Відкривати панель навігації при проведенні вправо з будь-якого місця на екрані Немає From 80c6fa83533b8513f9c085f5775aaaa9fb99c919 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Mon, 24 Feb 2025 16:36:56 -0300 Subject: [PATCH 083/200] refactor: move setFlag to tests module only used there --- .../src/main/java/com/ichi2/libanki/Card.kt | 14 +++------- .../java/com/ichi2/anki/AnkiDroidJsAPITest.kt | 1 + .../java/com/ichi2/anki/utils/ext/Card.kt | 26 +++++++++++++++++++ .../test/java/com/ichi2/libanki/FlagTest.kt | 1 + 4 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt index 64744d7ddda1..fa9608db8f7c 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt @@ -87,7 +87,9 @@ open class Card : Cloneable { var oDid: DeckId = 0 var originalPosition: Int? = null private var customData: String = "" - private var flags = 0 + + @VisibleForTesting + var flags = 0 private var memoryState: FsrsMemoryState? = null private var desiredRetention: Float? = null @@ -327,16 +329,6 @@ open class Card : Cloneable { @LibAnkiAlias("user_flag") fun userFlag() = Flag.fromCode(flags and 0b111) - /** - * Set [flags] to [flag]. - * Should only be used for testing. - * Use [setUserFlag] instead. - */ - @VisibleForTesting - fun setFlag(flag: Int) { - flags = flag - } - /** * Set the first three bits of [flags] to [flag]. Don't change the other ones. */ diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt index 4221277b3046..e2ec5c78e926 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt @@ -21,6 +21,7 @@ package com.ichi2.anki import androidx.test.ext.junit.runners.AndroidJUnit4 import com.ichi2.anki.AnkiDroidJsAPI.Companion.SUCCESS_KEY import com.ichi2.anki.AnkiDroidJsAPI.Companion.VALUE_KEY +import com.ichi2.anki.utils.ext.setFlag import com.ichi2.libanki.CardType import com.ichi2.libanki.utils.TimeManager import com.ichi2.utils.BASIC_MODEL_NAME diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt new file mode 100644 index 000000000000..4c479179c3c7 --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.utils.ext + +import com.ichi2.libanki.Card + +/** + * Set flags to [flag]. + * Should only be used for testing. + */ +fun Card.setFlag(flag: Int) { + flags = flag +} diff --git a/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt b/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt index 4e84781c105d..cfd9a36677bc 100644 --- a/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt @@ -17,6 +17,7 @@ package com.ichi2.libanki import androidx.test.ext.junit.runners.AndroidJUnit4 import com.ichi2.anki.Flag +import com.ichi2.anki.utils.ext.setFlag import com.ichi2.testutils.JvmTest import com.ichi2.testutils.ext.addNote import org.junit.Assert.assertEquals From 2f221db614c82f86e71baf2a1ac905df2570f3d6 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Mon, 24 Feb 2025 16:39:11 -0300 Subject: [PATCH 084/200] refactor: removed unused stuff from Card.kt --- .../src/main/java/com/ichi2/libanki/Card.kt | 85 ------------------- 1 file changed, 85 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt index fa9608db8f7c..7df9a3499bb5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt @@ -340,91 +340,6 @@ open class Card : Cloneable { flags = setFlagInInt(flags, flag.code) } - @NotInLibAnki - val isInDynamicDeck: Boolean - get() = // In Anki Desktop, a card with oDue <> 0 && oDid == 0 is not marked as dynamic. - oDid != 0L - - /** A cache represents an intermediary step between a card id and a card object. Creating a Card has some fixed cost - * in term of database access. Using an id has an unknown cost: none if the card is never accessed, heavy if the - * card is accessed a lot of time. CardCache ensure that the cost is paid at most once, by waiting for first access - * to load the data, and then saving them. Since CPU and RAM is usually less of a bottleneck than database access, - * it may often be worth using this cache. - * - * Beware that the card is loaded only once. Change in the database are not reflected, so use it only if you can - * safely assume that the card has not changed. That is - * long id; - * Card card = col.getCard(id); - * .... - * Card card2 = col.getCard(id); - * is not equivalent to - * long id; - * Card.Cache cache = new Cache(col, id); - * Card card = cache.getCard(); - * .... - * Card card2 = cache.getCard(); - * - * It is equivalent to: - * long id; - * Card.Cache cache = new Cache(col, id); - * Card card = cache.getCard(); - * .... - * cache.reload(); - * Card card2 = cache.getCard(); - */ - @NotInLibAnki - open class Cache : Cloneable { - val col: Collection - val id: CardId - private var _card: Card? = null - - constructor(col: Collection, id: CardId) { - this.col = col - this.id = id - } - - /** Copy of cache. Useful to create a copy of a subclass without loosing card if it is loaded. */ - protected constructor(cache: Cache) { - col = cache.col - this.id = cache.id - _card = cache._card - } - - /** - * The card with id given at creation. Note that it has content of the time at which the card was loaded, which - * may have changed in database. So it is not equivalent to getCol().getCard(getId()). If you need fresh data, reload - * first. */ - @get:Synchronized - val card: Card - get() { - if (_card == null) { - _card = col.getCard(this.id) - } - return _card!! - } - - /** Next access to card will reload the card from the database. */ - @Synchronized - open fun reload() { - _card = null - } - - override fun hashCode(): Int = - java.lang.Long - .valueOf(this.id) - .hashCode() - - /** The cloned version represents the same card but data are not loaded. */ - public override fun clone(): Cache = Cache(col, this.id) - - override fun equals(other: Any?): Boolean = - if (other !is Cache) { - false - } else { - this.id == other.id - } - } - companion object { // A list of class members to skip in the toString() representation val SKIP_PRINT: Set = From b653143b783257776bf3e6e9a5ffdc3575e40292 Mon Sep 17 00:00:00 2001 From: Hari Srinivasan Date: Sat, 11 Jan 2025 18:58:46 +0530 Subject: [PATCH 085/200] JS function to setTags and getTags --- AnkiDroid/src/main/assets/scripts/js-api.js | 19 +++++++++++ .../java/com/ichi2/anki/AnkiDroidJsAPI.kt | 33 +++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/AnkiDroid/src/main/assets/scripts/js-api.js b/AnkiDroid/src/main/assets/scripts/js-api.js index a33010525f22..20108069bad0 100644 --- a/AnkiDroid/src/main/assets/scripts/js-api.js +++ b/AnkiDroid/src/main/assets/scripts/js-api.js @@ -72,6 +72,8 @@ const jsApiList = { ankiSttStart: "sttStart", ankiSttStop: "sttStop", ankiAddTagToNote: "addTagToNote", + ankiSetNoteTags: "setNoteTags", + ankiGetNoteTags: "getNoteTags", }; class AnkiDroidJS { @@ -119,12 +121,29 @@ class AnkiDroidJS { Object.keys(jsApiList).forEach(method => { if (method === "ankiAddTagToNote") { AnkiDroidJS.prototype[method] = async function (noteId, tag) { + console.warn("ankiAddTagToNote is deprecated. Use ankiSetNoteTags instead."); const endpoint = jsApiList[method]; const data = JSON.stringify({ noteId, tag }); return await this.handleRequest(endpoint, data); }; return; } + if (method === "ankiSetNoteTags") { + AnkiDroidJS.prototype[method] = async function (noteId, tags) { + const endpoint = jsApiList[method]; + const data = JSON.stringify({ noteId, tags }); + return await this.handleRequest(endpoint, data); + }; + return; + } + if (method === "ankiGetNoteTags") { + AnkiDroidJS.prototype[method] = async function (noteId) { + const endpoint = jsApiList[method]; + const data = JSON.stringify({ noteId }); + return await this.handleRequest(endpoint, data); + }; + return; + } if (method === "ankiTtsSpeak") { AnkiDroidJS.prototype[method] = async function (text, queueMode = 0) { const endpoint = jsApiList[method]; diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt index f4ec2dc7d032..8cb61eab5728 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt @@ -45,14 +45,17 @@ import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.Card import com.ichi2.libanki.Collection import com.ichi2.libanki.Decks +import com.ichi2.libanki.Note import com.ichi2.libanki.SortOrder import com.ichi2.utils.NetworkUtils +import com.ichi2.utils.stringIterable import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import kotlinx.serialization.builtins.ListSerializer import kotlinx.serialization.builtins.serializer import kotlinx.serialization.json.Json +import org.json.JSONArray import org.json.JSONException import org.json.JSONObject import timber.log.Timber @@ -373,6 +376,36 @@ open class AnkiDroidJsAPI( getColUnsafe.updateNote(note) convertToByteArray(apiContract, true) } + + "setNoteTags" -> { + val jsonObject = JSONObject(apiParams) + val noteId = jsonObject.getLong("noteId") + val tags = jsonObject.getJSONArray("tags") + withCol { + fun Note.setTagsFromList(tagList: List) { + val tagsAsString = this@withCol.tags.join(tagList) + setTagsFromStr(this@withCol, tagsAsString) + } + + val note = + getNote(noteId).apply { + setTagsFromList(tags.stringIterable().toList()) + } + updateNote(note) + } + convertToByteArray(apiContract, true) + } + + "getNoteTags" -> { + val jsonObject = JSONObject(apiParams) + val noteId = jsonObject.getLong("noteId") + val noteTags = + withCol { + getNote(noteId).tags + } + convertToByteArray(apiContract, JSONArray(noteTags).toString()) + } + "sttSetLanguage" -> convertToByteArray(apiContract, speechRecognizer.setLanguage(apiParams)) "sttStart" -> { val callback = From b64a565af426b11cdffda320cd8aa7f0f580a37b Mon Sep 17 00:00:00 2001 From: Hari Srinivasan Date: Sun, 26 Jan 2025 11:34:13 +0530 Subject: [PATCH 086/200] Unit Test for getNoteTags and adding tags validation on Js --- AnkiDroid/src/main/assets/scripts/js-api.js | 13 +++++- .../java/com/ichi2/anki/AnkiDroidJsAPI.kt | 8 +++- .../java/com/ichi2/anki/AnkiDroidJsAPITest.kt | 42 +++++++++++++++++++ .../java/com/ichi2/testutils/TestClass.kt | 7 ++++ 4 files changed, 68 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/assets/scripts/js-api.js b/AnkiDroid/src/main/assets/scripts/js-api.js index 20108069bad0..c6dd3fbbc073 100644 --- a/AnkiDroid/src/main/assets/scripts/js-api.js +++ b/AnkiDroid/src/main/assets/scripts/js-api.js @@ -121,7 +121,7 @@ class AnkiDroidJS { Object.keys(jsApiList).forEach(method => { if (method === "ankiAddTagToNote") { AnkiDroidJS.prototype[method] = async function (noteId, tag) { - console.warn("ankiAddTagToNote is deprecated. Use ankiSetNoteTags instead."); + console.warn("ankiAddTagToNote is deprecated. Use ankiSetNoteTags instead"); const endpoint = jsApiList[method]; const data = JSON.stringify({ noteId, tag }); return await this.handleRequest(endpoint, data); @@ -130,6 +130,17 @@ Object.keys(jsApiList).forEach(method => { } if (method === "ankiSetNoteTags") { AnkiDroidJS.prototype[method] = async function (noteId, tags) { + let hasSpaces = false; + for (let i = 0; i < tags.length; i++) { + tags[i] = tags[i].trim(); + if (tags[i].includes(" ") || tags[i].includes("\u3000")) { + tags[i] = tags[i].replace(" ", "_").replace("\u3000", "_"); + hasSpaces = true; + } + } + if (hasSpaces) { + console.warn("Spaces in tags have been converted to underscores"); + } const endpoint = jsApiList[method]; const data = JSON.stringify({ noteId, tags }); return await this.handleRequest(endpoint, data); diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt index 8cb61eab5728..8a8fe531da01 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt @@ -206,6 +206,7 @@ open class AnkiDroidJsAPI( * @param returnDefaultValues `true` if default values should be returned (if non-[Reviewer]) * @return */ + @NeedsTest("setNoteTags: Test that tags are set for all edge cases") open suspend fun handleJsApiRequest( methodName: String, bytes: ByteArray, @@ -383,7 +384,12 @@ open class AnkiDroidJsAPI( val tags = jsonObject.getJSONArray("tags") withCol { fun Note.setTagsFromList(tagList: List) { - val tagsAsString = this@withCol.tags.join(tagList) + val sanitizedTags = tagList.map { it.trim() } + val spaces = "\\s|\u3000".toRegex() + if (sanitizedTags.any { it.contains(spaces) }) { + throw IllegalArgumentException("Tags cannot contain spaces") + } + val tagsAsString = this@withCol.tags.join(sanitizedTags) setTagsFromStr(this@withCol, tagsAsString) } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt index e2ec5c78e926..437342db8d5c 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt @@ -28,6 +28,7 @@ import com.ichi2.utils.BASIC_MODEL_NAME import net.ankiweb.rsdroid.withoutUnicodeIsolation import org.hamcrest.CoreMatchers.equalTo import org.hamcrest.MatcherAssert.assertThat +import org.json.JSONArray import org.json.JSONObject import org.junit.Ignore import org.junit.Test @@ -418,6 +419,31 @@ class AnkiDroidJsAPITest : RobolectricTest() { assertEquals(CardType.New, cardAfterReset.type, "Card type after reset") } + @Test + fun ankiGetNoteTagsTest() = + runTest { + val n = + addBasicNote("Front", "Back").update { + tags = mutableListOf("tag1", "tag2", "tag3") + } + + val reviewer: Reviewer = startReviewer() + waitForAsyncTasksToComplete() + + val jsapi = reviewer.jsApi + + // test get tags for note + val expectedTags = n.tags + val response = getDataFromRequest("getNoteTags", jsapi, jsonObjectOf("noteId" to n.id)) + val jsonResponse = JSONObject(response) + val actualTags = JSONArray(jsonResponse.getString("value")) + + assertEquals(expectedTags.size, actualTags.length()) + for (i in 0 until actualTags.length()) { + assertEquals(expectedTags[i], actualTags.getString(i)) + } + } + companion object { fun jsApiContract(data: String = ""): ByteArray = JSONObject() @@ -451,5 +477,21 @@ class AnkiDroidJsAPITest : RobolectricTest() { jsAPI .handleJsApiRequest(methodName, jsApiContract(apiData), false) .decodeToString() + + suspend fun getDataFromRequest( + methodName: String, + jsAPI: AnkiDroidJsAPI, + apiData: JSONObject, + ): String = + jsAPI + .handleJsApiRequest(methodName, jsApiContract(apiData.toString()), false) + .decodeToString() } } + +private fun jsonObjectOf(vararg pairs: Pair): JSONObject = + JSONObject().apply { + for ((key, value) in pairs) { + put(key, value) + } + } diff --git a/AnkiDroid/src/test/java/com/ichi2/testutils/TestClass.kt b/AnkiDroid/src/test/java/com/ichi2/testutils/TestClass.kt index 011237a9a934..f794d1342745 100644 --- a/AnkiDroid/src/test/java/com/ichi2/testutils/TestClass.kt +++ b/AnkiDroid/src/test/java/com/ichi2/testutils/TestClass.kt @@ -241,6 +241,13 @@ interface TestClass { col.decks.save(deckConfig) } + /** Helper method to update a note */ + fun Note.update(block: Note.() -> Unit): Note { + block(this) + col.updateNote(this) + return this + } + /** Helper method to all cards of a note */ fun Note.updateCards(update: Card.() -> Unit): Note { cards().forEach { it.update(update) } From 248488166f416d736728f62874f127a45a4c01dd Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Tue, 25 Feb 2025 15:55:49 +0200 Subject: [PATCH 087/200] Fix SharedDecksActivity toolbar color for dark themes This toolbar wasn't using the proper theme attribute appBarColor. --- AnkiDroid/src/main/res/layout/activity_shared_decks.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/res/layout/activity_shared_decks.xml b/AnkiDroid/src/main/res/layout/activity_shared_decks.xml index de0bb9c718a3..a283c196dbc4 100644 --- a/AnkiDroid/src/main/res/layout/activity_shared_decks.xml +++ b/AnkiDroid/src/main/res/layout/activity_shared_decks.xml @@ -17,7 +17,7 @@ android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:theme="@style/ActionBarStyle" - android:background="?attr/colorPrimary" + android:background="?attr/appBarColor" app:popupTheme="@style/ActionBar.Popup" app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent" From bf9948bc40ac47a97a3346ea23b1ea51787c7b50 Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Sun, 2 Mar 2025 08:32:21 +0000 Subject: [PATCH 088/200] Updated strings from Crowdin --- .../src/main/res/values-ar/08-widget.xml | 4 +- .../src/main/res/values-fr/10-preferences.xml | 4 +- AnkiDroid/src/main/res/values-ka/01-core.xml | 4 +- .../src/main/res/values-ka/02-strings.xml | 14 +- .../src/main/res/values-ka/03-dialogs.xml | 14 +- .../src/main/res/values-ka/04-network.xml | 10 +- .../src/main/res/values-ka/07-cardbrowser.xml | 6 +- .../src/main/res/values-ka/08-widget.xml | 12 +- .../src/main/res/values-ka/09-backup.xml | 2 +- .../src/main/res/values-ka/10-preferences.xml | 20 +-- .../src/main/res/values-ka/11-arrays.xml | 2 +- .../res/values-ka/16-multimedia-editor.xml | 4 +- .../main/res/values-ka/17-model-manager.xml | 2 +- AnkiDroid/src/main/res/values-ko/01-core.xml | 64 ++++---- .../src/main/res/values-ko/02-strings.xml | 56 +++---- .../src/main/res/values-ko/03-dialogs.xml | 24 +-- .../src/main/res/values-ko/04-network.xml | 12 +- .../src/main/res/values-ko/05-feedback.xml | 4 +- .../src/main/res/values-ko/07-cardbrowser.xml | 64 ++++---- .../src/main/res/values-ko/08-widget.xml | 6 +- .../src/main/res/values-ko/09-backup.xml | 22 +-- .../src/main/res/values-ko/10-preferences.xml | 147 +++++++++--------- .../src/main/res/values-ko/11-arrays.xml | 60 +++---- .../res/values-ko/16-multimedia-editor.xml | 6 +- .../main/res/values-ko/17-model-manager.xml | 40 ++--- .../main/res/values-ko/18-standard-models.xml | 4 +- .../res/values-ko/20-search-preference.xml | 2 +- .../src/main/res/values-uk/10-preferences.xml | 2 +- 28 files changed, 305 insertions(+), 306 deletions(-) diff --git a/AnkiDroid/src/main/res/values-ar/08-widget.xml b/AnkiDroid/src/main/res/values-ar/08-widget.xml index 2673746076e2..b7c19975d6d6 100644 --- a/AnkiDroid/src/main/res/values-ar/08-widget.xml +++ b/AnkiDroid/src/main/res/values-ar/08-widget.xml @@ -73,9 +73,9 @@ إضافة ملحوظة أنكيدرويد جديدة Deck Picker - Card Analysis + تحليل البطاقة - Select decks + اختيار الزرم Select a deck Select decks to display in the widget. Select decks with the + icon. Deck removed diff --git a/AnkiDroid/src/main/res/values-fr/10-preferences.xml b/AnkiDroid/src/main/res/values-fr/10-preferences.xml index 66087e51ff61..a92d84ba8821 100644 --- a/AnkiDroid/src/main/res/values-fr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fr/10-preferences.xml @@ -97,7 +97,7 @@ Assigner des gestes à des actions comme répondre et éditer des cartes. Écran tactile à 9 points Autoriser les gestes dans les coins de l\'écran - Show keyboard shortcuts + Afficher les raccourcis clavier Panneau de navigation plein écran Ouvrir le panneau de navigation lors d\'un balayage vers la droite de n\'importe où sur l\'écran Aucun @@ -163,7 +163,7 @@ Centrer verticalement le contenu des cartes Temps d\'intervalle de l\'appui double (ms) Un deusième appui sur le bouton de réponse va être ignoré si le temps est écoulé. Cela évite les appuis doubles involontaires. - Show answer long-press time + Durée appui du bouton réponse Un minimum de temps d\'appui avant que le bouton d\'affichage de réponse n\'enregistre une touche. Afficher le temps Afficher le temps avant la prochaine révision sur les boutons de réponse diff --git a/AnkiDroid/src/main/res/values-ka/01-core.xml b/AnkiDroid/src/main/res/values-ka/01-core.xml index 27b9314a44b8..d550be56a871 100644 --- a/AnkiDroid/src/main/res/values-ka/01-core.xml +++ b/AnkiDroid/src/main/res/values-ka/01-core.xml @@ -147,7 +147,7 @@ წინა შაბლონი უკანა შაბლონი სტილი - ბარათების საძიებოს გარეგნობა + იერსახე ბარათების საძიებოში დასტის გადატანა ველის ჩასმა ველის არჩევა @@ -163,7 +163,7 @@ ბარათის შაბლონის შენახვა შეუძლებელია: %s ბარათის ტიპი ამ ბარათიდან წაიშალა. - საძიებოს გარეგნობა + იერსახე საძიებოში ბარათის ინფო diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 13dcc628f222..9cc5faccc996 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -134,7 +134,7 @@ ფაილის მომზადება იმპორტისთვის… დამატება არსებული კოლექცია წაიშლება და ჩანაცვლდება არჩეული ფაილის მონაცემებით %s - Add “%s” to collection? This may take a long time + „%s“ დაემატოს კოლექციას? ამას შეიძლება გარკვეული დრო დასჭირდეს ეს არ არის მოქმედი Anki-პაკეტის ფაილი შეცდომა ფაილის იმპორტირება ვერ მოხერხდა\n\n%s @@ -229,7 +229,7 @@ ხელსაწყოთა ზოლის ელემენტის რედაქტირება შეიყვანეთ მონიშნული ტექსტის ორივე ბოლოს ჩასასმელი 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-ის სარეზერვო ასლის შექმნა. გთხოვთ, ხელახლა სცადოთ @@ -258,7 +258,7 @@ ჩამოტვირთვისას შეგიძლიათ სხვა აპლიკაციებიც გამოიყენოთ გთხოვთ შეამოწმოთ ქსელთან კავშირი დასტის სახელით ძებნა - Download aborted, the external storage is not available + ჩამოტვირთვა გაუქმდა, გარე მეხსიერება ხელმიუწვდომელია მთავარი @@ -281,11 +281,11 @@ იარლიყის „%s“ გაშლა კოლექციაზე წვდომა ვერ მოხერხდა. გთხოვთ ხელახლა სცადოთ! - Add a new note type + ახალი შენიშვნის ტიპის დამატება ნაკლები მეცადინეობა მეტის დამახსოვრება - Anki\'s card scheduler saves time by strengthening your weakest memories and preserving your strongest + Anki-ს განრიგის მგეგმავი რთულად დასახსომებელი ცოდნის უკეთ დასწავლასა და ღრმა ცოდნის შენარჩუნებაში გეხმარებათ, რათა დაზოგოთ ძვირფასი დრო დაწყება სინქრონიზაცია AnkiWeb-თან @@ -336,7 +336,7 @@ Voice not supported. Try another or install a voice engine. დასტის ამრჩეველი - Delete deck without confirmation + დასტის წაშლა დადასტურების გარეშე შენიშვნების რედაქტორი დასტის არჩევა შენიშვნის ტიპის არჩევა @@ -346,7 +346,7 @@ უკანა მხარის შაბლონის რედაქტირება სტილის რედაქტირება შაბლონის კოპირება markdown-ად - Edit browser appearance + ბარათების საძიებოს იერსახის რედაქტირება User action %s is not set in this notetype. Please configure it Learn more about how to restore access here %s or go to settings to update collection folder. diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml index 541393b5cf7c..efd2c32584f6 100644 --- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml @@ -65,7 +65,7 @@ Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. შეცდომის შეტყობინება არ არის საკმარისი თავისუფალი მეხსიერების სივრცე, რომ AnkiDroid-ის გახსნა მოხერხდეს. გთხოვთ, მეხსიერების სივრცეში ადგილი გაანთავისუფლოთ. - Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. + ნამდვილად გსურთ, სცადოთ მონაცემთა ბაზის შეკეთება?\n\nმცდელობის დაწყებამდე შეიქმნება ასლი ქვესაქაღალდეში: „%s“. კატეგორია „ნაგულისხმევი“ ცარიელია To add cards to AnkiDroid remove all Notepad categories or add one named “default” დღევანდელი ახალი ბარათების ლიმიტის გაზრდა/შემცირება (\"-3\") ამდენით: @@ -226,8 +226,8 @@ ბარათების ჩვენება ამდენ დღეში
- Show card in range - Show cards in range + ბარათის ჩვენება დროის მონაკვეთში + ბარათების ჩვენება დროის მონაკვეთში დღეში @@ -239,14 +239,14 @@ 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: + გახსნა + გამოტოვებული ადგილის ნომრის შეცვლა + გამოტოვებული ადგილის ნომერი: რედაქტორის რეჟიმის შეცვლა შენიშვნის რედაქტორის გახსნა გამოტოვებული ადგილების რეჟიმის შეცვლა - 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 კომპრესირება ენა მხარდაჭერილი არაა diff --git a/AnkiDroid/src/main/res/values-ka/04-network.xml b/AnkiDroid/src/main/res/values-ka/04-network.xml index f9dd49cc55ec..4099135e7610 100644 --- a/AnkiDroid/src/main/res/values-ka/04-network.xml +++ b/AnkiDroid/src/main/res/values-ka/04-network.xml @@ -52,7 +52,7 @@ გაზიარებული დასტების დამატება ქსელის შეცდომა მოხდა AnkiWeb-ში შესვლა - You must log in to a third party account to use the cloud sync service. You can create one in the next step. + Cloud სინქრონიზაციის სერცისით სარგებლობისათვის უნდა გაიაროთ მესამე მხარის ანგარიშის ავტორიზაცია. შემდეგილ ნაბიჯზე შეგეძლებათ, შექმნათ ახალი ანგარიში. ელფოსტის მისამართი პაროლი @@ -70,15 +70,15 @@ სინქრონიზაცია სრული სინქრონიზაცია ლოკალურიდან კოლექციის სინქრონიზაცია წარმატებით განხორციელდა - Collection synced. Media is being synced in the background. + კოლექცია სინქრონიზებულია. მედიაფაილების სინქრონიზაცია ფონურ რეჟიმში მიმდინარეობს. თქვენი მონაცემთა ბაზა დაზიანებულია. გთხოვთ, სინქრონიზების ხელახლა ცდამდე პრობლემა აღმოფხვრათ.\n\nმონაცემთა ბაზის გამოსასწორებლად საჭირო ინფორმაციისთვის იხილეთ %s. ლოკალური დისტანციური ცალმხრივი სინქრონიზაცია - One way sync requested - The requested change will require a full upload of the database when you next synchronize your collection. If you have reviews or other changes waiting on another device that haven’t been synchronized here yet, they will be lost. Continue? - Due to a bug in the previously installed version of AnkiDroid, it’s recommended to force a full sync. + ცალმხრივი სინქრონიზაციის მოთხოვნა მიღებულია + მოთხოვნილი ცვლილება კოლექციის შემდეგი სინქრონიზაციის დროს შექმნის მონაცემთა ბაზის სრულად ატვირთვის საჭიროებას. იმ შემთხვევაში თუ სხვა მოწყობილობაზე გაქვთ გადახედვები ან სხვა ცვლილებები, რომლებიც აქ არაა სინქრონიზებული, მოხსენებული ცვლილებები დაიკარგება. გსურთ გაგრძელება? + წინათ დაყენებული AnkiDroid-ის ვერსიაში არსებული ხარვეზის გამო რეკომენდებულია სრული სინქრონიზაციის დაძალება. სინქრონიზაცია (ცალმხრივი) სინქრონიზაცია (ავტორიზაცია) diff --git a/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml index 0c2986ff1b36..2a383759aff4 100644 --- a/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml @@ -95,7 +95,7 @@ ყველა დასტაში ძებნა უცნობი შიგთავსის დამოკლება - Today is ‘0 %1$s’, tomorrow is ‘1 %2$s’, etc… + დღევანდელი დღე არის „0 %1$s“, ხვალინდელი — „1 %2$s“ — და ა.შ. ბარათის ექსპორტირება ბარათების ექსპორტირება @@ -109,8 +109,8 @@ %d ბარათი წაიშალა - Edit tags dialog - Show order dialog + იარლიყის რედაქტირების ფანჯარა + თანმიმდევრობის ჩვენების ფანჯარა სვეტები სვეტების მართვა diff --git a/AnkiDroid/src/main/res/values-ka/08-widget.xml b/AnkiDroid/src/main/res/values-ka/08-widget.xml index c12994f1ed44..d796910d5aeb 100644 --- a/AnkiDroid/src/main/res/values-ka/08-widget.xml +++ b/AnkiDroid/src/main/res/values-ka/08-widget.xml @@ -65,13 +65,13 @@ დასტების არჩევა დასტის არჩევა - Select decks to display in the widget. Select decks with the + icon. + აირჩიეთ დასტები, რომლებიც ვიჯეტში გამოჩნდება. დასტების ასარჩევად დააჭირეთ „+“ ხატულას. დასტა ამოიშალა ვიჯეტიდან - This deck is already selected + ეს დასტა უკვე მონიშნულია - You can select up to %d deck. - You can select up to %d decks. + %d-მდე დასტის მონიშვნა შეგიძლიათ. + %d-მდე დასტის მონიშვნა შეგიძლიათ. - Missing deck. Tap to reconfigure. - Collection is empty, use app to add decks then reconfigure + დასტა აკლია. დააჭირეთ ხელახლად დასაყენებლად. + კოლექცია ცარიელია, გამოიყენეთ აპლიკაცია დასტების დასამატებლად და ხელახლა სცადეთ diff --git a/AnkiDroid/src/main/res/values-ka/09-backup.xml b/AnkiDroid/src/main/res/values-ka/09-backup.xml index e6cd18a7491e..09fe8c5730ce 100644 --- a/AnkiDroid/src/main/res/values-ka/09-backup.xml +++ b/AnkiDroid/src/main/res/values-ka/09-backup.xml @@ -50,7 +50,7 @@ ახალი კოლექცია კოლექციის წაშლა და ახლის შექმნა გსურთ კოლექციის წაშლა და ახლის შექმნა? დადასტურების შემთხვევაში წაიშლება როგორც მთელი სწავლის პროგრესი, ასევე ყველა ბარათი. - One-way sync from server + ცალმხრივი სინქრონიზაცია სერვერიდან ჩანაცვლდეს კოლექცია AnkiWeb-ზე შენახული ვერსიით? დადასტურების შემთხვევაში წაიშლება როგორც მთელი სწავლის პროგრესი, ასევე ბოლო სინქრონიზაციის შემდეგ დამატებული ინფორმაცია. შეცდომის გამართვა პარამეტრები diff --git a/AnkiDroid/src/main/res/values-ka/10-preferences.xml b/AnkiDroid/src/main/res/values-ka/10-preferences.xml index 355eceed09df..0987fb3f8a16 100644 --- a/AnkiDroid/src/main/res/values-ka/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ka/10-preferences.xml @@ -97,7 +97,7 @@ ჟესტების მიბმა მოქმედებებთან, როგორებიცაა მაგალითად პასუხის გაცემა ან ბარათის რედაქტირება. 9-წერტილიანი შეხება ეკრანის კუთხეებში შეხების ჟესტების დაშვება - Show keyboard shortcuts + კლავიშების კომბინაციების ჩვენება სრულეკრანიანი რეჟიმის ნავიგაციის პანელი ეკრანის ნებისმიერი წერტილიდან მარჯვნივ გასმისას ნავიგაციის პანელის გახსნა არცერთი @@ -120,7 +120,7 @@ „%s“-მენიუ გლობალურად ამატებს „%s“ ღილაკს კონტექსტურ მენიუში (მენიუ, რომელიც ტექსტის მონიშვნისას ჩნდება) ორმაგი ჩამოყოლა - Double the scroll gap with eReader + ელ-წამკითხველებში ეკრანის აწევ-ჩამოწევის დაშორების გაორმაგება თითის გასმის აღქმადობა ტექსტის გახმოვანება ხმამაღლა კითხულობს კითხვასა და პასუხს, როცა მოცემული არაა აუდიოფაილი @@ -160,7 +160,7 @@ შესაძლებელს ხდის, გამოიყენოთ „გამოტოვებული ადგილის“ კონტექსტური მენიუ ჰორიზონტალურ რეჟიმში. ცენტრში მოთავსება - Center the content of cards vertically + ბარათების შიგთავსის ვერტიკალურ ცენტრში მოთავსება ორმაგი შეხების შუალედის დრო (მილიწამებში) A second tap of the answer buttons will be ignored if this time has not elapsed. This prevents accidental double taps შეხების საჭირო ხანგრძლივობა პასუხის საჩვენებლად @@ -257,8 +257,8 @@ მონაწილეები contributors. You can help AnkiDroid too by programming, translating, donating and more!]]> ლიცენზია - GPL-3.0 and AGPL-3.0 licenses, with the source code available on GitHub]]> - donating. Any amount is deeply appreciated.]]> + GPL-3.0 და AGPL-3.0 ლიცენზიებით. საწყისი კოდის სანახავად ეწვიეთ GitHub-ს]]> + შემოწირულებით შეგიძლიათ ხელი შეუწყოთ AnkiDroid-ის განვითარებას. ნებისმიერი რაოდენობის თანხას ვაფასებთ.]]> ჟესტის დამატება კლავიშის დამატება @@ -276,7 +276,7 @@ მომხმარებლის ქმედება 7 მომხმარებლის ქმედება 8 მომხმარებლის ქმედება 9 - Toggle auto advance + ავტომატური გაგრძელების ჩართვა/გამორთვა ბარათის გვერდის არჩევა კითხვა @@ -343,7 +343,7 @@ ყველაფრის წაშლა Delete collection, media, backups, and settings ყველაფრის წაშლა - Are you sure you want to delete all data? This includes your collection, media, backups and preferences.\n\nNote: this action will close the window. + ნამდვილად გსურთ ყველა მონაცემის წაშლა? მონაცემებში შედის თქვენი კოლექცია, მედიაფაილები, სარეზერვო ასლები და ინდივიდუალურად მორგებული პარამეტრები.\n\nშენიშვნა: ამ ქმედებით მიმდინარე ფანჯარა დაიხურება. აპლიკაციის მონაცემების წაშლა პარამეტრებისა და აპლიკაციის სხვა მონაცემების წაშლა @@ -358,14 +358,14 @@ მიმდინარეობს ამორჩევა… მიმდინარეობს გამოთვლა… კოლექცია არ არსებობს - Hide system bars + სისტემის ზოლების დამალვა არცერთი სტატუსის ზოლი ნავიგაციის ზოლი ყველა ეკრანის ზედა ჭრილის უგულებელყოფა - Hide answer buttons - Hide ‘Hard’ and ‘Easy’ buttons + პასუხის ღილაკების დამალვა + „მარტივი“ და „რთული“ ღილაკების დამალვა ბარათის ჩარჩოს სტილი ბარათი (მრგვალი კუთხეები) ყუთი (სწორი კუთხეები) diff --git a/AnkiDroid/src/main/res/values-ka/11-arrays.xml b/AnkiDroid/src/main/res/values-ka/11-arrays.xml index b6511e4d9816..6637de6cefe4 100644 --- a/AnkiDroid/src/main/res/values-ka/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-ka/11-arrays.xml @@ -95,7 +95,7 @@ დროშის მოძრობა გვერდით მაღლა გვერდით დაბლა - Close reviewer and Sync + გადამხედველისა და სინქრონიზაციის დახურვა დაფის ჩართვა/გამორთვა მინიშნების ჩვენება ყველა მინიშნების ჩვენება diff --git a/AnkiDroid/src/main/res/values-ka/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-ka/16-multimedia-editor.xml index 9db10c74fea1..1ee7a6991318 100644 --- a/AnkiDroid/src/main/res/values-ka/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-ka/16-multimedia-editor.xml @@ -69,8 +69,8 @@ გსურთ ამ სურათის ჩამოჭრა? სურათის ჩამოჭრა - Current image size is %sMB. Default image size limit is 1MB. Do you want to compress it? + სურათის ზომა არის %sMB. სურათის ზომის ნაგულისხმევი ლიმიტი შეადგენს 1MB-ს. გსურთ მისი შეკუმშვა? "სურათი ვერ მოინიშნა, გთხოვთ ხელახლა სცადოთ" ველის შიგთავსი - Reselect + ხელახლა მონიშვნა diff --git a/AnkiDroid/src/main/res/values-ka/17-model-manager.xml b/AnkiDroid/src/main/res/values-ka/17-model-manager.xml index 370be12e8281..196079ef0202 100644 --- a/AnkiDroid/src/main/res/values-ka/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ka/17-model-manager.xml @@ -68,7 +68,7 @@ კლონი: %1$s - შეიყვანეთ შაბლონი, რომელსაც ბარათების საძიებო პასუხების შემოკლებული ვერსიების საჩვენებლად გამოიყენებს.\n\n\"{{Country}}ს დედაქალაქი არის:\"\nრომ ავიღოთ მაგალითად, მისი შიგთავსი შეიძლება წინა შაბლონით შემოკლდეს როგორც\n\"დედაქალაქი: {{Country}}\" + შეიყვანეთ შაბლონი, რომელსაც ბარათების საძიებო პასუხების შემოკლებული ვერსიების საჩვენებლად გამოიყენებს.\n\n\"{{ქვეყანა}}-ს დედაქალაქი არის:\"\nრომ ავიღოთ მაგალითად, მისი შიგთავსი შეიძლება წინა შაბლონით შემოკლდეს როგორც\n\"დედაქალაქი: {{ქვეყანა}}\" კითხვის ფორმატი პასუხის ფორმატი აღდგეს ნაგულისხმევი მონაცემები? diff --git a/AnkiDroid/src/main/res/values-ko/01-core.xml b/AnkiDroid/src/main/res/values-ko/01-core.xml index a3577f94eeb1..e4cc16bfb286 100644 --- a/AnkiDroid/src/main/res/values-ko/01-core.xml +++ b/AnkiDroid/src/main/res/values-ko/01-core.xml @@ -95,19 +95,19 @@ 카드 비활성화하기 노트 미뤄두기 나중에 보기 - 비활성화 + 미뤄두기 노트 삭제하기 표시 - 플래그 이름 변경 - 카드에 플래그 추가 + 플래그 이름 변경하기 + 카드에 플래그 달기 태그 수정 다음 노트와 그 노트의 모든 카드를 정말로 삭제하시겠습니까?\n%s %1$s에서 찾아보기 - 노트 표시 + 노트에 표시하기 노트 표시 해제 목소리 재생 켜기 목소리 재생 끄기 - 카드 묶음 만들기 + 덱 만들기 필터링된 카드 묶음 만들기 AnkiDroid 폴더에 접근할 수 없습니다 계속하기 위해서는 AnkiDroid에 \'저장소\'권한이 필요합니다. - 필터링된 뭉치를 재구성하는 중… + 필터링된 덱을 재구성하는 중… 재생성 비우기 하위 뭉치 만들기 - 필터링된 뭉치를 비우는 중… + 필터링된 덱을 비우는 중… 맞춤 학습 세션 기존의 맞춤 학습 덱의 이름을 먼저 변경하세요. - 뭉치 검색 - 이 뭉치는 비어있습니다. - 뭉치 검색 - 유효하지 않은 뭉치 이름입니다 - Congratulations! You have finished for today. - 덱이 끝났습니다! %s + 덱 검색하기 + 이 덱은 비어있습니다 + 카드 덱 검색 + 유효하지 않은 덱 이름 + 축하합니다! 오늘의 학습을 마쳤습니다. + 이제 덱이 끝났습니다! %s 남은 카드가 없습니다. - 장치 저장소가 마운트되지 않음 + 기기 저장소 미인식 동기화 동기화를 취소하시겠습니까? 동기화 계속하기 - 동기화 취소됨 + 동기화 취소 취소하는 중…\n시간이 걸릴 수 있습니다. 미디어 동기화 중 - 카드 묶음 내보내기 + 덱 내보내기 컬렉션 내보내기 없음 카드 유형 - 전면 템플릿 - 후면 템플릿 + 앞장 템플릿 + 뒷장 템플릿 꾸미기 카드 모양 설정 - 뭉치 덮어쓰기 - Insert field - Select field + 덱 덮어쓰기 + 필드 삽입하기 + 필드 선택하기 적어도 하나의 카드 형식이 필요합니다. %1$d 카드를 만듭니다. 계속하시겠습니까? @@ -162,8 +162,8 @@ 카드 정보 - AnkiDroid 데이터베이스에 읽고 쓰기 - 기존의 노트, 카드, 노트 유형, 카드 묶음을 접근 및 생성 + AnkiDroid 데이터베이스 읽고 쓰기 + 기존의 노트, 카드, 노트 유형, 덱에 접근하여 새로운 항목 생성하기 카드 탐색기 Anki 카드 @@ -178,21 +178,21 @@ %s 파일을 쓰거나 생성할 수 없습니다. 접근할 수 없는 컬렉션 - 플레이스토어 정책 변경으로 AnkiDroid가 삭제된 후에는 저희가 컬렉션에 접근할 수 없습니다.\n\n데이터는 안전하게 저장되었으며 복구할 수 있습니다. 데이터는 다음 위치에 저장되어 있습니다 \n%s\n\n복구하려면 아래 옵션을 선택하세요: - 안드로이드에서 앱 비활성화로 AnkiDroid의 %1$s 허가를 취소했습니다.\n\n데이터는 안전하게 저장되었으며 복구할 수 있습니다. 데이터는 다음 위치에 저장되어 있습니다.\n%2$s\n\n복구하려면 아래 옵션을 선택하세요. - AnkiWeb에서 복구(권장) - 폴더 접근 권한 복구(권장) - 폴더 접근 권한 복구(고급) - .colpkg 백업에서 복구(고급) - 새 컬렉션 생성 + 플레이 스토어 정책 변경으로 AnkiDroid가 삭제된 후에는 저희가 컬렉션에 접근할 수 없습니다.\n\n데이터는 안전하게 저장되었으며 복구할 수 있습니다. 데이터는 다음 위치에 저장되어 있습니다 \n%s\n\n복구하려면 아래 옵션을 선택하세요: + 안드로이드에서 앱 비활성화로 인해 AnkiDroid의 %1$s 권한을 제거했습니다.\n\n데이터는 안전하게 저장되었으며 복구 가능합니다. 데이터는 다음 위치에 저장되어 있습니다.\n%2$s\n\n데이터를 복구하려면 아래 옵션을 선택하세요. + AnkiWeb에서 복구하기(권장) + 폴더 접근 권한 복구 (권장) + 폴더 접근 권한 복구하기 (고급) + .colpkg 백업에서 복구하기 (고급) + 새 컬렉션 생성하기 AnkiDroid를 삭제할 경우 새 컬렉션이 기기에서 삭제됩니다. 작업을 위해 AnkiDroi에 다음 권한이 필요합니다 - 저장소 접근 + 저장소에 접근하기 앱이 삭제될 경우 컬렉션이 함께 삭제되지 않도록 안전한 공간에 컬렉션을 저장해 주세요. 모든 파일 접근 Image Occlusion - 계정 삭제 + 계정 삭제하기 즉석 카드 diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index 144d09ca265b..016082d9c455 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -48,7 +48,7 @@ 메뉴 열기 메뉴 닫기 카드 덱: - 덱: + 덱 : 유형: 태그: %1$s 카드: %1$s @@ -61,23 +61,23 @@ 아직 추가된 태그가 없습니다. 버전 %s로 업데이트됨 - 화이트보드 저장 + 화이트보드 저장하기 스타일러스 쓰기 켜기 스타일러스 쓰기 끄기 - 화이트보드 활성화 - 화이트보드 비활성화 - 화이트보드 보이기 + 화이트보드 활성화하기 + 화이트보드 비활성화하기 + 화이트보드 표시하기 화이트 보드 숨기기 화이트 보드 지우기 오디오 다시 재생 - 해당 카드에 leech 태그를 붙이고 비활성 시킴 - 해당 카드에 leech 태그를 붙임 + 카드에 leech 태그를 붙이고 비활성 시키기 + 카드에 leech 태그를 붙이기 알 수 없는 오류 WebView의 내부적인 오류입니다. 메모리 부족 WebView이 시스템에 의해 강제종료 되었습니다. 보통 용랑이 큰 사진, 음성, 글꼴 등 미디어 파일 때문에 메모리가 부족해서 이런 일이 생길 수 있습니다. WebView 렌더러가 다음 이유 때문에 강제종료되었습니다: %s - 중대 오류: WebView 렌더러가 다음 이유 때문에 강제종료되었습니다: %s + 심각한 오류: WebView 렌더러가 다음 이유 때문에 강제종료되었습니다: %s WebView 렌더링이 실패했습니다. WebView가 \'%1$s\' 카드를 렌더링하지 못했습니다. %2$s @@ -88,13 +88,13 @@ +%d 숨겨짐 새 카드 수 - 전체 카드 + 전체 카드 수 노트 편집하기 - 삭제 + 삭제하기 작성된 카드가 없습니다. 먼저 필드를 입력해주십시오. 현재의 노트 유형으로는 카드를 생성할 수 없습니다.\n먼저 다른 노트 유형을 선택하거나 \'카드\'를 눌러 대체할 필드를 생성해주십시오. - 빈칸 뚫기는 오직 빈칸 노트 유형에서만 작동합니다. + 빈칸 뚫기는 오직 빈칸 노트 유형(Cloze)에서만 작동합니다. 노트 저장 중 노트 유형 저장 중 저장 @@ -113,7 +113,7 @@ %1$d분 AnkiDroid 카드 - 노트 복사 + 노트 복사하기 위치 변경 학습 진도 재설정 일정 변경 @@ -131,7 +131,7 @@ 가져오는 중 불러올 파일 준비 중… 추가 - 기존의 컬렉션을 삭제하고 파일 %s의 데이터로 덮어씁니다. 확실합니까? + 기존의 컬렉션을 삭제하고 파일 %s의 데이터로 덮어쓰시겠습니까? \"%s\" 항목을 컬렉션에 추가하시겠습니까? 시간이 오래 걸릴 수 있습니다. 이것은 유효한 Anki package 파일이 아닙니다。 오류 @@ -150,14 +150,14 @@ AnkiDroid로 보내진 플래시 카드: %s
- 이것은 AnkiDroid에서 보낸 안키 플래시 카드입니다[1]. + 이것은 AnkiDroid에서 보낸 Anki 플래시 카드입니다[1]. 이 중에서 이용 가능한 것을 선택해 보시고[2] 쉽고 효율적으로 즐겁게 공부하세요!

[1]%1$s
[2]%2$s ]]> Context | Request Context [1]
- 공유 + 공유하기 저장 내보낸 파일 저장 중… 설정 @@ -165,7 +165,7 @@ Context | Request Context [1] 학습 옵션 TTS 언어 설정 맞춤 학습 - 이것은 평상시 일정 이상으로 학습하기 위한 특별한 카드 묶음입니다. 카드들은 복습 후 자동으로 원래의 카드 묶음으로 돌아가게 됩니다. 카드 묶음 목록에서 이 카드 묶음을 지운다면 남아 있는 모든 카드는 원래의 카드 묶음으로 돌아가게 됩니다. + 이것은 평상시 일정 이상으로 학습하기 위한 특별한 카드 덱입니다. 카드들은 복습 후 자동으로 원래의 카드 덱으로 돌아가게 됩니다. 카드 덱 목록에서 이 카드 덱을 지운다면 남아 있는 모든 카드는 원래의 카드 덱으로 돌아가게 됩니다. 단계는 0보다 커야 합니다. 적어도 하나 이상의 단계가 필요합니다. \"%1$s\" 추가를 확인하려면 \"%2$s\" 누르세요 @@ -208,7 +208,7 @@ Context | Request Context [1] 카드 내용 오류: \'%s\' 읽기 실패 - 덱 검색 + 덱 검색하기 심각한 오류 AnkiDroid이 필요한 시스템 WebView를 사용할 수 없습니다. 이 문제는 시스템이 업데이트를 설치하는 경우 발생할 수도 있습니다. 잠시 후 다시 시도하십시오.\n\n%s @@ -246,17 +246,17 @@ Context | Request Context [1] 뒤로 가기 버튼을 한 번 더 눌러 종료합니다 %s%% - 덱 다운로드 + 카드 덱 다운로드하기 다시 시도하세요. 다운로드 취소 다운로드를 취소하시겠습니까? 다운로드 중 %s - 카드 묶음 가져오기 + 카드 덱 가져오기 오류가 발생했습니다. 다시 시도해 주세요. 다운로드 실패 다운로드하는 동안 다른 앱을 이용하실 수 있습니다. 네트워크 연결 상태를 확인해 주세요. - 사용 중인 카드 뭉치 이름 찾기 + 사용 중인 카드 덱 이름 찾기 다운로드가 중단되었습니다. 외부 저장 공간을 사용할 수 없습니다. - 생성된 뭉치 - 이름이 변경된 뭉치 + 생성된 덱 + 이름이 변경된 덱 - 삭제된 카드 묶음입니다. 단축키를 삭제해 주세요. + 삭제된 카드 덱입니다. 단축키를 삭제해 주세요. 카드 메모 카드, 메모 켜기/ 끄기 브라우저의 각 행 높이를 잘라 첫 3줄의 내용만 표시합니다. - Browser options + 브라우저 옵션 녹음 파일 저장됨 선택한 메모 삭제 중 음성을 들으려면 탭하세요 @@ -316,7 +316,7 @@ Context | Request Context [1] 문장 읽어주기 설정 열기 실패 - 카드 묶음을 더 다운로드하려면 로그인해 주세요 + 카드 덱을 더 다운로드하려면 로그인해 주세요 설명 복사 실패 \'메모\' 모드에서는 사용할 수 없습니다 @@ -333,10 +333,10 @@ Context | Request Context [1] 이 카드 유형을 삭제하면 카드 없이 일부 메모만 남습니다 음성을 지원하지 않습니다. 다른 것으로 시도하거나 음성 엔진을 설치하세요. - 덱 선택 - 확인 없이 덱 삭제 + 덱 선택기 + 확인 없이 덱 삭제하기 노트 편집기 - 덱 선택 + 덱 선택하기 노트 유형 선택 태그 편집기 카드 템플릿 편집기 diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml index 2338d1cc22b4..bc5c6638a51f 100644 --- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml @@ -46,10 +46,10 @@ 데이터베이스를 점검할까요? 시간이 오래 걸릴 수 있습니다 - 카드 묶음 삭제 - 카드 묶음을 삭제할까요? + 덱 삭제하기 + 덱을 삭제할까요? - %1$s의 모든 카드를 삭제할까요? 이는 %2$d 카드를 포함하고 있습니다 + %1$s의 모든 카드를 삭제할까요? 이는 %2$d개의 카드가 있습니다 필터링된 덱 %s을(를) 삭제하고 모든 카드를 원래 덱으로 돌려보낼까요? 문장 읽어주기 기능(TTS)을 사용할 수 없음 @@ -60,31 +60,31 @@ %d개의 카드를 초기화했습니다.
데이터베이스 오류 - Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. + 컬렉션에 쓰는 것을 실패했습니다. 데이터베이스가 손상되었거나 디스크에 충분한 여유 공간이 없을 수 있습니다.\n\n이 문제가 자주 발생하면 데이터베이스를 점검하거나 컬렉션을 복구하거나 설정에서 백업 파일을 복원해 보세요. \n\n또는 AnkiDroid 버그일 수 있으니, 오류를 보고해 주시면 확인해 보겠습니다. 오류 보고하기 AnkiDroid를 열 저장 공간이 부족합니다. 계속하려면 여유 공간을 확보하세요. 데이터베이스를 복구하시겠습니까?\n\n 복구를 시작하기 전에 지정된 하위폴더에 복사본 파일이 저장됩니다\'%s\'. \'기본값\' 카테고리가 비어 있습니다 AnkiDroid에 카드를 추가하기 위해 모든 메모장 범주 삭제 또는 \'기본값\'으로 지정하기 - Increase/decrease (“-3”) today’s new card limit by - Increase/decrease (“-3”) today’s review limit by - 최근 x일 내에 잊혀진 카드: + 오늘의 새로운 카드 제한을 (“-3”) 만큼 증가/감소시키기 + 오늘의 복습 제한을 (“-3”) 만큼 증가/감소시키기 + 최근 x일 동안 잊혀진 복습 카드: x일 만큼 미리 복습하기: - 최근 x일 내에 추가된 카드를 미리 학습하기: + 최근 x일 내에 추가된 카드 미리 학습하기: 저장 공간이 가득 찼습니다. 저장공간이 거의 가득 찼습니다. 빈 공간 없음 - AnkiDroid needs %s free storage space to continue. Please clear some space + AnkiDroid는 계속 진행하기 위해 %s만큼의 여유 공간이 필요합니다. 공간을 조금 확보해 주세요 백업을 복원할까요? 컬렉션이 기존의 것으로 대체됩니다. 저장되지 않은 모든 작업은 손실됩니다. - 다른 항목 선택 - 취소 + 다른 항목 선택하기 + 취소하기 확인 확인 아니요 취소 - 제거 + 제거하기 계속하기 처리 중… 만들기 diff --git a/AnkiDroid/src/main/res/values-ko/04-network.xml b/AnkiDroid/src/main/res/values-ko/04-network.xml index a60885d5f0e8..4a7ed97d43b8 100644 --- a/AnkiDroid/src/main/res/values-ko/04-network.xml +++ b/AnkiDroid/src/main/res/values-ko/04-network.xml @@ -48,21 +48,21 @@ 현재 오프라인 상태입니다 동기화 오류 오류 - 재시도 - 공유된 카드 묶음 얻기 + 재시도하기 + 공유된 덱 받기 네트워크 오류가 발생했습니다. - AnkiWeb에 로그인 + AnkiWeb에 로그인하기 클라우드 동기화 서비스를 사용하기 위해서는 제3자 계정에 로그인해야 합니다. 다음 단계에서 만들 수 있습니다. 이메일 주소 암호 - 로그인 + 로그인하기 AnkiWeb 계정이 없으십니까? 무료입니다! 참고: AnkiWeb은 AnkiDroid와 관련이 없습니다. 가입 다음 사용자로 로그인 됨 - 로그아웃 - 암호 재설정 + 로그아웃하기 + 암호 재설정하기 이메일을 잊으셨나요? 로그인 중 diff --git a/AnkiDroid/src/main/res/values-ko/05-feedback.xml b/AnkiDroid/src/main/res/values-ko/05-feedback.xml index cc75baf9a846..b655b576a565 100644 --- a/AnkiDroid/src/main/res/values-ko/05-feedback.xml +++ b/AnkiDroid/src/main/res/values-ko/05-feedback.xml @@ -53,7 +53,7 @@ AnkiDroid에 예기치 못한 오류가 발생했습니다. 개발자에게 오류 보고가 전송됩니다. 개발자를 위한 오류 보고서를 준비하고 있습니다… 디버그 정보 복사 - 보고 - 오류 보고를 자동으로 전송 + 오류 보고하기 + 오류 보고 자동으로 전송하기 적합한 앱을 찾을 수 없습니다. diff --git a/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml index e318874480ac..e04faa7188e1 100644 --- a/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml @@ -53,43 +53,43 @@
모든 카드 덱 - 노트 삭제 + 노트 삭제하기 - 카드 덱 + 덱 변경하기 노트를 삭제할까요? - 표시된 카드 필터링 + 표시한 카드 비활성화된 카드 필터링 태그별 필터링 - 태그별로 보기 - 내가 검색한 항목 - 검색 항목 저장 - 저장된 검색 항목 선택 - 현재 검색 항목의 이름 - 이름 없이 검색 항목을 저장할 수 없습니다. + 플래그 별로 보기 + 저장된 검색어 + 검색어 저장하기 + 저장된 검색어 선택하기 + 현재 검색어 이름 + 이름 없이 검색어를 저장할 수 없습니다. 이름이 이미 존재합니다! 수정할 노트 없음 - \"%1$s\"을 삭제할까요? + \"%1$s\"을/를 삭제할까요? 표시 순서 변경 - 검색 - 검색 + 검색하기 + 검색하기 표시 순서를 선택하세요 태그 - 정렬 안함(더 빠름) - 정렬 필드에 따라 - 생성된 시간에 따라 - 노트 수정 시간 기준 - 카드 수정 시간 기준 - 학습 예정 시간에 따라 - 학습 간격에 따라 - 난이도에 따라 - 복습에 따라 - 오답 횟수에 따라 + 정렬 안 함 (빠른 속도) + 필드 + 생성된 시간 + 노트 수정 시간 + 카드 수정 시간 + 학습 기한 + 학습 간격 + 난이도 + 복습 + 오답 횟수 - 모두 선택 - 모두 선택 안함 + 모두 선택하기 + 모두 선택하지 않기 덱 \'%s\'에 카드 없음 - 모든 덱 검색 + 모든 덱 검색하기 알 수 없음 내용 간략히 보기 오늘은 \'0 %1$s\', 내일은 \'1 %2$s\', … @@ -103,13 +103,13 @@ %d개 카드 삭제됨
- 태그 다이얼로그 수정 - 순서 다이얼로그 보이기 + 태그 다이얼로그 수정하기 + 순서 다이얼로그 표시하기 - Columns - Manage columns - Active + + 열 관리 + 활성 Available - Include column - Exclude column + 열 포함하기 + 열 제외하기 diff --git a/AnkiDroid/src/main/res/values-ko/08-widget.xml b/AnkiDroid/src/main/res/values-ko/08-widget.xml index 348361551628..dcc554018ffa 100644 --- a/AnkiDroid/src/main/res/values-ko/08-widget.xml +++ b/AnkiDroid/src/main/res/values-ko/08-widget.xml @@ -57,10 +57,10 @@ %d분 남음
새 AnkiDroid 노트 추가 - 덱 선택 + 덱 선택기 카드 분석 - 덱 선택 + 덱 선택하기 덱 선택하기 위젯에 보일 덱을 + 아이콘을 눌러 선택하세요. 덱 제거됨 @@ -68,6 +68,6 @@ 최대 %d개까지 선택할 수 있습니다. - 덱 없음. 터치해서 추가 + 덱 없음. 터치해서 추가하기 컬렉션 비어있음. 앱에서 덱을 추가한 후 재설정하세요. diff --git a/AnkiDroid/src/main/res/values-ko/09-backup.xml b/AnkiDroid/src/main/res/values-ko/09-backup.xml index de2af2f397b0..bfdbfc99fedb 100644 --- a/AnkiDroid/src/main/res/values-ko/09-backup.xml +++ b/AnkiDroid/src/main/res/values-ko/09-backup.xml @@ -44,25 +44,25 @@ ~ this program. If not, see . --> - 저장공간 부족으로 백업 저장 실패. 백업 용량을 줄이거나 저장공간을 확보하세요. + 저장공간 부족으로 백업 저장에 실패했습니다. 백업 양을 줄이거나 저장공간을 확보하세요. %d MB 이하의 여유 공간이 남아 있습니다. 데이터 손실을 방지하려면 추가 공간을 확보하세요. - 백업으로부터 복원 + 백업 파일 복원하기 새 컬렉션 - 컬렉션 삭제 후 새 컬렉션 만들기 + 컬렉션 삭제하고 새 컬렉션 만들기 정말로 컬렉션을 삭제하고 새 컬렉션을 만드시겠습니까? 모든 학습 진행 상황과 카드들이 삭제됩니다. - 서버로부터 단방향 동기화 + 서버로부터 덮어쓰기 정말로 AnkiWeb의 컬렉션으로 지금 컬렉션을 덮어쓸까요? 지난 동기화로부터의 모든 학습 진행 상황과 추가된 정보를 잃게 됩니다! 오류 처리 옵션 - 열기 재시도 - 데이터베이스 복구 + 다시 열기 + 데이터베이스 복구하기 데이터베이스 복구중. \ n 잠시 기다려 주세요… 선택한 백업 파일이 올바르지 않습니다. - 복원할 백업 파일 선택 - 이 장치에는 사용 가능한 백업 파일이 없습니다. 데스크탑 컴퓨터에 백업 파일이 있다면 수동으로 AnkiDroid 폴더로 복사하세요. + 복원할 백업 파일 선택하기 + 이 장치에는 사용 가능한 백업 파일이 없습니다. 데스크탑 컴퓨터에 백업 파일이 있다면 AnkiDroid 폴더로 복사하세요. 컬렉션 열리지 않음 - 안타깝게도 컬렉션이 손상되었습니다.\n\n옵션을 눌러 백업으로부터 복원하세요. 만약 불가능하다면, 수동으로 데이터베이스를 복구하는 방법을 다음에서 알아보세요:\n%1$s - 컬렉션에 접근 중 오류가 발생했습니다. 사소한 버그거나 아니면 문제가 있는 경우입니다.\n\n데이터베이스를 검토를 시도해보거나 옵션 버튼을 눌러 백업으로부터 복원하세요. 이 메세지가 계속 나타난다면 오류 보고를 전송하세요:\n%1$s - 컬렉션 복구할 수 없음 + 안타깝게도 컬렉션이 손상되었습니다.\n\n옵션을 눌러 백업 파일을 복원하세요. 만약 불가능하다면, 수동으로 데이터베이스를 복구하는 방법을 다음에서 알아보세요:\n%1$s + 컬렉션 접근 중 오류가 발생했습니다. 사소한 버그일 수도 문제가 있을 수도 있습니다.\n\n데이터베이스 검토를 시도해보거나 옵션 버튼을 눌러 백업 파일을 복원하세요. 이 메세지가 계속 나타난다면 오류 보고를 전송하세요:\n%1$s + 컬렉션을 복구할 수 없습니다 diff --git a/AnkiDroid/src/main/res/values-ko/10-preferences.xml b/AnkiDroid/src/main/res/values-ko/10-preferences.xml index b7407111fb9f..63f5cc01eb1e 100644 --- a/AnkiDroid/src/main/res/values-ko/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ko/10-preferences.xml @@ -92,11 +92,11 @@ 하단 없음
- 제스처 사용 + 제스처 사용하기 응답 및 카드 편집 등의 작업에 제스쳐 할당 9점 터치 화면 모서리의 터치 제스쳐 허용 - Show keyboard shortcuts + 키보드 단축키 보기 전체화면 탐색 서랍 화면 어디에서나 오른쪽으로 스와이프하여 탐색 서랍 열기 없음 @@ -152,7 +152,7 @@ LED 깜빡이기 언어 선택 카드 하드웨어 랜더링 비활성화 - 하드웨어 렌더링은 더 빠르지만 특히 Android 8/8.1에서 문제가 있을 수 있습니다. 카드 리뷰시 사용자 인터페이스의 일부가 표시되지 않으면 이 설정을 시도해 보십시오. + 하드웨어 렌더링은 더 빠르지만 특히 Android 8/8.1에서 문제가 있을 수 있습니다. 카드 복습 사용자 인터페이스의 일부가 표시되지 않으면 이 설정을 시도해 보십시오. 안전한 디스플레이 모드 모든 애니메이션을 비활성화하고 더 안전한 그리기 방법을 사용합니다. 전자 잉크 기기에는 이 기능이 필요할 수 있습니다. 단일 필드 편집 모드 비활성화 @@ -182,17 +182,17 @@ 자정 %d시간 이후 화면을 켜진 상태로 유지 - 화면 꺼짐 시간 비활성화 - AnkiDroid API를 사용하도록 설정 - 사용자의 개입 없이 다른 앱이 AnkiDroid에 연결하고 데이터를 읽고 쓸 수 있도록 허용 + 화면 꺼짐 비활성화하기 + AnkiDroid API 활성화하기 + 사용자의 개입 없이 다른 앱이 AnkiDroid에 연결해 데이터를 읽고 쓸 수 있도록 허용하기 앱 바 버튼 - 앱 바에 어떠한 동작이 표시될 것인지 지정 - 항상 표시 - 공간이 있는 경우 표시 - 메뉴만 - 기본값으로 초기화 - 기본값으로 초기화 - 초기화 + 앱 바에 표시될 동작 지정하기 + 항상 표시하기 + 공간이 있는 경우 표시하기 + 메뉴만 표시하기 + 기본값으로 초기화하기 + 기본값으로 초기화하기 + 초기화하기 타사 API 앱 Ankidroid API를 사용하는 어플 목록 보기 (사전, 편집기 등) @@ -205,13 +205,13 @@ 뒤로가기 버튼 두번 눌러 돌아가기/나가기 실수로 인한 학습 종료와 앱 종료 방지 - 미디어 파일 허용 + 미디어 파일 허용하기 만약 안드로이드가 미디어파일을 인식하지 못한다면 자체 동기화 서버 사용되지 않음 더 알아보기]]> 동기화 URL @@ -224,32 +224,32 @@ 노트 탐색 미디어 - Misc + 기타 - 태그 선택 + 태그 선택하기 일반 알림 필터 검색 한도 - Cards selected by - 일정변경 - 이 카드묶음에서 내 대답에 근거에 따라 재일정된 카드들 - 2번째 필터 적용 - 사용자 정의 단계 정의 + 선택된 카드 + 기한 변경하기 + 이 덱에서 내 대답에 따라 기한이 변경된 카드 + 2번째 필터 적용하기 + 맞춤 단계 설정하기 미리보기 딜레이 - Delays are in seconds. 0 returns card to original deck. + 지연 시간은 초 단위입니다. 0을 입력하면 카드를 원래 덱으로 되돌립니다. AnkiDroid를 개선하는데 도움을 주세요! 기능 사용 공유하기 개발팀이 사람들이 어떤 기능을 사용하는지 볼 수 있도록 도와주어 AnkiDroid에 기여할 수 있습니다. - HTML로 신규 라인 교체 + HTML로 신규 라인 교체하기 In the Note Editor, convert any instances of <br> to newlines when editing a card. Focus ‘type in answer’ Automatically focus the ‘type in answer’ field in the reviewer - Open Changelog + 업데이트 기록 열기 About 기여자들 contributors. You can help AnkiDroid too by programming, translating, donating and more!]]> @@ -257,28 +257,28 @@ GPL-3.0 and AGPL-3.0 licenses, with the source code available on GitHub]]> donating. Any amount is deeply appreciated.]]> - 제스쳐 추가 - 키 추가 + 제스쳐 추가하기 + 키 추가하기 키 누르기 - 조이스틱/모션 컨트롤러 추가 + 조이스틱/모션 컨트롤러 추가하기 Move a joystick/motion controller 사용자 행동 Trigger JavaScript from the review screen 사용자 행동 1 사용자 행동 2 사용자 행동 3 - 사용자 액션 4 - 사용자 액션 5 - 사용자 액션 6 - 사용자 액션 7 - 사용자 액션 8 - 사용자 액션 9 + 사용자 행동 4 + 사용자 행동 5 + 사용자 행동 6 + 사용자 행동 7 + 사용자 행동 8 + 사용자 행동 9 자동 넘기기 켜기/끄기 카드 면 선택 - 질문 + 문제 정답 - 질문 & 정답 + 문제 & 정답 Q: %s A: %s %s @@ -291,10 +291,9 @@ 새로운 TTS 포맷을 위해 업데이트 해주세요. 개발자 옵션 - Enable developer options - Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + 개발자 옵션 활성화하기 + 개발자 옵션 비활성화하기 + 개발자 옵션을 켜기 전에 유의할 점이 있습니다. 이 옵션들은 앱을 고장내거나 카드 모음을 이상하게 만들 위험성이 있습니다. 이 옵션들은 대부분의 유저에게는 사용할 필요가 없기 때문에 영어인 채로 번역되지 않았습니다. @@ -307,7 +306,7 @@

You can restore from a backup and export your collection in the deck list menu. ]]> - Minutes between automatic backups + 자동 백업 간격(분) Daily backups to keep Weekly backups to keep Monthly backups to keep @@ -317,54 +316,54 @@ Manage space 에러 - Calcu-\nlating… + 계산\n중… %1$d files\n%2$s - Delete unused media files + 사용되지 않는 미디어 파일 삭제하기 Delete images and other media that are not prefixed with _ and are not referenced by any notes - Delete unused media files + 사용되지 않는 미디어 파일 삭제하기 - Delete backups - Delete backups - Deleting backups… + 백업 삭제하기 + 백업 삭제하기 + 백업 삭제 중… - Delete collection - Delete collection, media, and backups. App settings are not deleted - Delete collection - Are you sure you want to delete your collection, media, and backups?\n\nNote: this action will close the window. - Deleting collection… + 컬렉션 삭제하기 + 컬렉션, 미디어, 백업 삭제하기. 앱 설정은 삭제되지 않습니다 + 컬렉션 삭제하기 + 정말로 컬렉션, 미디어, 백업을 삭제하시겠습니까?\n\n참고: 이 작업을 수행하면 창이 닫힙니다 + 컬렉션 삭제 중… - Delete everything - Delete collection, media, backups, and settings - Delete everything + 모두 지우기 + 컬렉션, 미디어, 백업, 설정 삭제하기 + 모두 지우기 정말 모든 데이터를 삭제하시겠습니까? 여기에는 컬렉션, 미디어, 백업 및 환경 설정이 포함됩니다.\n\n참고: 이 작업을 수행하면 창이 닫힙니다. - 앱 데이터 삭제 - 설정 및 기타 앱 데이터 삭제 - 앱 데이터 삭제 - 정말 모든 데이터를 삭제하시겠습니까? 여기에는 환경 설정과 기타 앱 데이터가 포함됩니다.\n\n참고: 이 작업을 수행하면 창이 닫힙니다. + 앱 데이터 삭제하기 + 설정 및 기타 앱 데이터 삭제하기 + 앱 데이터 삭제하기 + 정말 모든 데이터를 삭제하시겠습니까? 여기에는 설정과 기타 앱 데이터가 포함됩니다.\n\n참고: 이 작업을 수행하면 창이 닫힙니다. - No collection - Error + 컬렉션 없음 + 오류 Fetching… - Calculating… - Collection does not exist - Hide system bars - None - Status bar - Navigation bar - All + 계산 중… + 컬렉션이 없습니다 + 시스템 바 숨기기 + 없음 + 상태 바 + 내비게이션 바 + 전부 Ignore display cutout - Hide answer buttons - Hide ‘Hard’ and ‘Easy’ buttons - Frame style - Card - Box + 정답 버튼 숨기기 + \'어려움\', \'쉬움\' 버튼 숨기기 + 프레임 스타일 + 카드 + 상자 - Open settings + 설정 열기 diff --git a/AnkiDroid/src/main/res/values-ko/11-arrays.xml b/AnkiDroid/src/main/res/values-ko/11-arrays.xml index b69fe5d82cd1..7e4ad4a899c5 100644 --- a/AnkiDroid/src/main/res/values-ko/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-ko/11-arrays.xml @@ -45,22 +45,22 @@ 항상 보고하기 보고하지 않기 - 오류 보고전 묻기 + 오류 보고 전 묻기 - 오래된 카드 먼저 + 오래된 순서 무작위 - 학습 간격 늘이기 + 학습 간격 늘리기 학습 간격 줄이기 - 오답 빈도가 가장 높은 - 추가된 순서대로 - 기간 순서대로 - 최근 추가된 것이 처음으로 - 상대적 기간초과 + 오답 빈도가 높은 순서 + 추가된 순서 + 기한 순서 + 최근 추가된 순서 + 상대적 지연 - 현재 카드 묶음을 사용 + 현재 덱 사용하기 노트 형식에 따라 결정 시스템 설정 @@ -71,35 +71,35 @@ 블랙 어두움 - 엄청나게 작음 - 매우 작음 - 작음 + 엄청나게 작게 + 매우 작게 + 작게 보통 크게 매우 크게 엄청나게 크게 - 다시 - 어려움 - 괜찮음 - 쉬움 - 미디어 재생 - 리뷰어 닫기 - 빨간색 플래그 넣기 / 빼기 - 주황색 플래그 넣기 / 빼기 - 초록색 플래그 넣기 / 빼기 - 파란색 플래그 넣기 / 빼기 - 핑크색 플래그 넣기 / 빼기 - 청록색 플래그 넣기 / 빼기 - 보라색 플래그 넣기 / 빼기 - 플래그 빼기 + 다시하기 + 난이도: 어려움 + 난이도: 괜찮음 + 난이도: 쉬움 + 미디어 재생하기 + 복습 창 닫기 + 빨간색 플래그 달기 / 없애기 + 주황색 플래그 달기 / 없애기 + 초록색 플래그 달기 / 없애기 + 파란색 플래그 달기 / 없애기 + 분홍색 플래그 달기 / 없애기 + 청록색 플래그 달기 / 없애기 + 보라색 플래그 달기 / 없애기 + 플래그 제거하기 페이지 위로 페이지 아래로 - 리뷰어 닫고 동기화 + 복습 창 닫고 동기화하기 화이트보드 켜기 / 끄기 힌트 보기 모든 힌트 보기 - 목소리 녹음 - 목소리 녹음 재생 - 녹음 저장 + 녹음하기 + 녹음 다시 듣기 + 녹음 저장하기 diff --git a/AnkiDroid/src/main/res/values-ko/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-ko/16-multimedia-editor.xml index 25361c523793..1249b0b95dd0 100644 --- a/AnkiDroid/src/main/res/values-ko/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-ko/16-multimedia-editor.xml @@ -42,7 +42,7 @@ 이미지 추가 오디오 클립 추가 - 비디오 클립 추가 + 비디오 클립 추가하기 오디오 녹음 빈칸 만들기 @@ -65,12 +65,12 @@ 녹음 실패 재생 실패 - 레코더 툴바를 생성할 수 없습니다 + 레코더 툴바를 생성 불가능 이 이미지를 자르시겠습니까? 이미지 자르기 현재의 이미지의 크기는 %sMB 입니다. 기본 이미지 크기의 한도는 1MB입니다. 이미지를 압축하시겠습니까? "이미지 선택 실패, 재시도하세요" 필드 내용 - 재선택 + 재선택하기 diff --git a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml index 7782d82cb735..835e4c217edb 100644 --- a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml @@ -26,11 +26,11 @@ - 노트 유형 관리 - 필드 관리 + 노트 유형 관리하기 + 필드 관리하기 마지막 노트 유형은 삭제 할 수 없습니다. - 노트 유형은 최소한 하나의 필드가 필요합니다. + 노트 유형에는 최소한 하나의 필드가 필요합니다. 이름을 입력하셔야 합니다. 필드 이름이 이미 사용 중 입니다. @@ -41,23 +41,23 @@ %d 노트 - 노트 유형 삭제 - 이름 변경 - 카드 편집 + 노트 유형 삭제하기 + 이름 변경하기 + 카드 편집하기 노트 유형 이름 바꾸기 키보드 언어 힌트를 %s로 설정하기 - 필드 편집 - 필드 추가 - 필드 삭제 - 필드 이름 변경 - 키보드 언어 힌트 설정 - 필드 재배치 - 추가할 때 마지막 입력을 기억하기 + 필드 편집하기 + 필드 추가하기 + 필드 삭제하기 + 필드 이름 변경하기 + 키보드 언어 힌트 설정하기 + 필드 재배치하기 + 추가 시 마지막 입력값 기억하기 필드 업데이트 중 - 이 필드로 정렬 + 이 필드로 정렬하기 이 노트 유형을 삭제하시겠습니까? 이 필드를 삭제하시겠습니까? @@ -67,15 +67,15 @@ 클론: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” - 질문 형식 - 답안 형식 + 문제 형식 + 답 형식 기본값을 복원하시겠습니까? - These changes are applied when the card template is saved + 이 변경사항은 카드 템플릿이 저장될 때 적용됩니다 - Deck override (on) - Deck override (off) + 덱 덮어쓰기 on + 덱 덮어쓰기 off Set ‘%1$s’ default deck to ‘%2$s’ Removed default deck for ‘%s’ - 새 \'%s\' 카드를 가입할 덱 선택 + 새 \'%s\' 카드가 들어갈 덱 선택하기 Filter decks diff --git a/AnkiDroid/src/main/res/values-ko/18-standard-models.xml b/AnkiDroid/src/main/res/values-ko/18-standard-models.xml index 38a443376639..0c6793c79452 100644 --- a/AnkiDroid/src/main/res/values-ko/18-standard-models.xml +++ b/AnkiDroid/src/main/res/values-ko/18-standard-models.xml @@ -26,6 +26,6 @@ - 앞면 - 뒷면 + 앞장 + 뒷장 diff --git a/AnkiDroid/src/main/res/values-ko/20-search-preference.xml b/AnkiDroid/src/main/res/values-ko/20-search-preference.xml index 846c38380b03..cd2ea09b581d 100644 --- a/AnkiDroid/src/main/res/values-ko/20-search-preference.xml +++ b/AnkiDroid/src/main/res/values-ko/20-search-preference.xml @@ -61,5 +61,5 @@ --> 검색 - 기록 초기화 + 기록 삭제하기 diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index 277957de65c7..72f536fdbbec 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -99,7 +99,7 @@ Використовувати жести для таких дій, як відповідь і редагування карток. 9-точковий дотик Дозволити сенсорні жести в кутах екрану - Показати клавіатурні комбінації клавіш + Показати комбінації клавіш клавіатури Повноекранна панель навігації Відкривати панель навігації при проведенні вправо з будь-якого місця на екрані Немає From 64dca09111e51c291aae2eb62ef5227136ad9ebc Mon Sep 17 00:00:00 2001 From: Kaustubh Date: Mon, 3 Mar 2025 17:44:04 +0530 Subject: [PATCH 089/200] var was never reassigned so changed it to val --- AnkiDroid/src/main/java/com/ichi2/utils/VersionUtils.kt | 2 +- AnkiDroid/src/test/java/com/ichi2/libanki/FieldTest.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/utils/VersionUtils.kt b/AnkiDroid/src/main/java/com/ichi2/utils/VersionUtils.kt index 99a606440b05..6c8765617200 100644 --- a/AnkiDroid/src/main/java/com/ichi2/utils/VersionUtils.kt +++ b/AnkiDroid/src/main/java/com/ichi2/utils/VersionUtils.kt @@ -57,7 +57,7 @@ object VersionUtils { */ val pkgVersionName: String get() { - var pkgVersion = "?" + val pkgVersion = "?" val context: Context = applicationInstance ?: return pkgVersion try { val pInfo = context.getPackageInfoCompat(context.packageName, PackageInfoFlagsCompat.EMPTY) ?: return pkgVersion diff --git a/AnkiDroid/src/test/java/com/ichi2/libanki/FieldTest.kt b/AnkiDroid/src/test/java/com/ichi2/libanki/FieldTest.kt index a35756a1e3c2..867267d244ae 100644 --- a/AnkiDroid/src/test/java/com/ichi2/libanki/FieldTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/libanki/FieldTest.kt @@ -33,7 +33,7 @@ class FieldTest : AndroidTest { @Test fun `'tag' - null handling`() { val jsonObject = JSONObject() - var field = Field(jsonObject) + val field = Field(jsonObject) assertNull(field.imageOcclusionTag, message = "{ }") From d6ae45eed75b8e43f83c171ca239ed369df45da3 Mon Sep 17 00:00:00 2001 From: ProtonStar12 Date: Mon, 3 Mar 2025 05:17:01 +0530 Subject: [PATCH 090/200] [Cleanup]: Remove Android Studio Warning --- AnkiDroid/src/test/java/com/ichi2/utils/UniqueArrayListTest.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnkiDroid/src/test/java/com/ichi2/utils/UniqueArrayListTest.kt b/AnkiDroid/src/test/java/com/ichi2/utils/UniqueArrayListTest.kt index 462b93dc94db..c06025b5153c 100644 --- a/AnkiDroid/src/test/java/com/ichi2/utils/UniqueArrayListTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/utils/UniqueArrayListTest.kt @@ -558,7 +558,7 @@ class UniqueArrayListTest { assertFalse(uniqueList.isEmpty()) uniqueList.removeAll( - listOf( + setOf( 1L, 2L, 3L, From 19df388a4c3c9fae08b795f38dd2a1f42fabaa4f Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sun, 2 Mar 2025 20:24:56 -0300 Subject: [PATCH 091/200] fix(new reviewer): snackbar position if answer buttons are hidden --- .../ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt | 8 +------- AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml | 7 +++++++ AnkiDroid/src/main/res/layout/reviewer2.xml | 8 ++++++++ 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt index a8feeef1db31..7cbebf419a6f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerFragment.kt @@ -120,13 +120,7 @@ class ReviewerFragment : get() = requireView().findViewById(R.id.webview) override val baseSnackbarBuilder: SnackbarBuilder = { - val typeAnswerContainer = this@ReviewerFragment.view?.findViewById(R.id.type_answer_container) - anchorView = - if (typeAnswerContainer?.isVisible == true) { - typeAnswerContainer - } else { - this@ReviewerFragment.view?.findViewById(R.id.answer_buttons) - } + anchorView = this@ReviewerFragment.view?.findViewById(R.id.snackbar_anchor) } override fun onStop() { diff --git a/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml b/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml index 2950f1e0cbb1..741a82e763f2 100644 --- a/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml +++ b/AnkiDroid/src/main/res/layout-sw600dp/reviewer2.xml @@ -226,5 +226,12 @@ android:layout_marginEnd="@dimen/reviewer_side_margin" /> + + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/layout/reviewer2.xml b/AnkiDroid/src/main/res/layout/reviewer2.xml index 4da490a77f7c..ada84462b226 100644 --- a/AnkiDroid/src/main/res/layout/reviewer2.xml +++ b/AnkiDroid/src/main/res/layout/reviewer2.xml @@ -206,5 +206,13 @@ android:layout_marginStart="12dp" /> + + \ No newline at end of file From ef2fe82ebaa6fa49f23e4b12be3b5db0d16aca43 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Mon, 24 Feb 2025 13:16:44 -0300 Subject: [PATCH 092/200] refactor: move reviewer menu logic to a repository Having the business logic in `MenuDisplayType` made the class harder to deal with, IMO getConfiguredActions, getAllNotConfiguredActions and getMenuItems are being joined to improve the algorithm performance (there were a lot of nested loops before) --- .../preferences/reviewer/MenuDisplayType.kt | 56 ----------- .../reviewer/ReviewerMenuRepository.kt | 77 +++++++++++++++ .../reviewer/ReviewerMenuSettingsFragment.kt | 23 +++-- .../preferences/reviewer/ReviewerMenuView.kt | 3 +- .../reviewer/MenuDisplayTypeTest.kt | 96 ------------------- .../reviewer/ReviewerMenuRepositoryTest.kt | 89 +++++++++++++++++ 6 files changed, 181 insertions(+), 163 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepository.kt delete mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/MenuDisplayTypeTest.kt create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepositoryTest.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/MenuDisplayType.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/MenuDisplayType.kt index 04c7eb551945..a18fafaa7fbb 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/MenuDisplayType.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/MenuDisplayType.kt @@ -15,11 +15,9 @@ */ package com.ichi2.anki.preferences.reviewer -import android.content.SharedPreferences import android.view.MenuItem import androidx.annotation.StringRes import androidx.annotation.VisibleForTesting -import androidx.core.content.edit import com.ichi2.anki.R enum class MenuDisplayType( @@ -37,58 +35,4 @@ enum class MenuDisplayType( @VisibleForTesting val preferenceKey get() = "ReviewerMenuDisplayType_$name" - - /** - * @return the configured actions for this menu display type. - */ - @VisibleForTesting - fun getConfiguredActions(preferences: SharedPreferences): List { - val prefValue = - preferences.getString(preferenceKey, null) - ?: return emptyList() - - val actionsNames = prefValue.split(SEPARATOR) - return actionsNames.mapNotNull { name -> - ViewerAction.entries.firstOrNull { it.name == name } - } - } - - fun setPreferenceValue( - preferences: SharedPreferences, - actions: List, - ) { - val prefValue = actions.joinToString(SEPARATOR) { it.name } - preferences.edit { putString(preferenceKey, prefValue) } - } - - companion object { - private const val SEPARATOR = "," - - /** - * @return A list of all actions that aren't configured. - * Not configured items that don't have a default display type aren't included. - * - * May happen if the user hasn't configured any of the menu actions, - * or if a new action was implemented but not configured yet. - */ - @VisibleForTesting - fun getAllNotConfiguredActions(prefs: SharedPreferences): List { - val mappedActions = MenuDisplayType.entries.flatMap { it.getConfiguredActions(prefs) } - return ViewerAction.entries.filter { - it.defaultDisplayType != null && it !in mappedActions - } - } - - fun getMenuItems( - prefs: SharedPreferences, - vararg selected: MenuDisplayType = MenuDisplayType.entries.toTypedArray(), - ): Map> { - val notConfiguredActions = getAllNotConfiguredActions(prefs) - - return selected.toSet().associateWith { type -> - type.getConfiguredActions(prefs) + - notConfiguredActions.filter { it.defaultDisplayType == type } - } - } - } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepository.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepository.kt new file mode 100644 index 000000000000..ed78899f9636 --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepository.kt @@ -0,0 +1,77 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.preferences.reviewer + +import android.content.SharedPreferences +import androidx.core.content.edit + +class ReviewerMenuRepository( + private val preferences: SharedPreferences, +) { + /** + * @return a map of the [selected] display types and its actions. + */ + fun getActionsByMenuDisplayTypes( + vararg selected: MenuDisplayType = MenuDisplayType.entries.toTypedArray(), + ): Map> { + val menuActions = ViewerAction.entries.filter { it.defaultDisplayType != null } + val actionsNameMap = menuActions.associateBy { it.name } + + val allConfiguredActions = mutableSetOf() + val actionsMap = LinkedHashMap>(selected.size) + for (displayType in MenuDisplayType.entries) { + val prefValue = preferences.getString(displayType.preferenceKey, null) + val configuredActions = + if (prefValue.isNullOrEmpty()) { + mutableListOf() + } else { + val actionNames = prefValue.split(SEPARATOR) + actionNames.mapNotNullTo(mutableListOf()) { name -> + actionsNameMap[name] + } + } + if (displayType in selected) { + actionsMap[displayType] = configuredActions + } + allConfiguredActions.addAll(configuredActions) + } + + // Add any menu action that hasn't been configured to its default display type + for (action in menuActions) { + if (action !in allConfiguredActions && action.defaultDisplayType in actionsMap) { + actionsMap[action.defaultDisplayType]?.add(action) + } + } + return actionsMap + } + + fun setDisplayTypeActions( + alwaysShowActions: Iterable, + menuOnlyActions: Iterable, + disabledActions: Iterable, + ) { + fun Iterable.toPreferenceString() = this.joinToString(SEPARATOR) { it.name } + preferences.edit { + putString(MenuDisplayType.ALWAYS.preferenceKey, alwaysShowActions.toPreferenceString()) + putString(MenuDisplayType.MENU_ONLY.preferenceKey, menuOnlyActions.toPreferenceString()) + putString(MenuDisplayType.DISABLED.preferenceKey, disabledActions.toPreferenceString()) + } + } + + companion object { + private const val SEPARATOR = "," + } +} diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuSettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuSettingsFragment.kt index d4257588d0d3..009d6fc78aeb 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuSettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuSettingsFragment.kt @@ -35,12 +35,14 @@ class ReviewerMenuSettingsFragment : Fragment(R.layout.preferences_reviewer_menu), OnClearViewListener, ActionMenuView.OnMenuItemClickListener { + private lateinit var repository: ReviewerMenuRepository + override fun onViewCreated( view: View, savedInstanceState: Bundle?, ) { super.onViewCreated(view, savedInstanceState) - + repository = ReviewerMenuRepository(sharedPrefs()) setupRecyclerView(view) view.findViewById(R.id.toolbar).setNavigationOnClickListener { @@ -52,7 +54,7 @@ class ReviewerMenuSettingsFragment : } private fun setupRecyclerView(view: View) { - val menuItems = MenuDisplayType.getMenuItems(sharedPrefs()) + val menuItems = repository.getActionsByMenuDisplayTypes() fun section(displayType: MenuDisplayType): List = listOf(ReviewerMenuSettingsRecyclerItem.DisplayType(displayType)) + @@ -95,19 +97,20 @@ class ReviewerMenuSettingsFragment : val menuOnlyItemsIndex = getIndex(MenuDisplayType.MENU_ONLY) val disabledItemsIndex = getIndex(MenuDisplayType.DISABLED) - val alwaysShowItems = getSubList(1, menuOnlyItemsIndex) - val menuOnlyItems = getSubList(menuOnlyItemsIndex, disabledItemsIndex) - val disabledItems = getSubList(disabledItemsIndex, items.lastIndex) + val alwaysShowActions = getSubList(1, menuOnlyItemsIndex) + val menuOnlyActions = getSubList(menuOnlyItemsIndex, disabledItemsIndex) + val disabledActions = getSubList(disabledItemsIndex, items.lastIndex) - val preferences = sharedPrefs() - MenuDisplayType.ALWAYS.setPreferenceValue(preferences, alwaysShowItems) - MenuDisplayType.MENU_ONLY.setPreferenceValue(preferences, menuOnlyItems) - MenuDisplayType.DISABLED.setPreferenceValue(preferences, disabledItems) + repository.setDisplayTypeActions( + alwaysShowActions = alwaysShowActions, + menuOnlyActions = menuOnlyActions, + disabledActions = disabledActions, + ) lifecycleScope.launch { val menu = requireView().findViewById(R.id.reviewer_menu_view) menu.clear() - menu.addActions(alwaysShowItems, menuOnlyItems) + menu.addActions(alwaysShowActions, menuOnlyActions) menu.setFlagTitles() } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt index 1012a07817d1..9b5e0cc66389 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuView.kt @@ -52,6 +52,7 @@ class ReviewerMenuView attrs: AttributeSet? = null, defStyleAttr: Int = 0, ) : LinearLayout(context, attrs, defStyleAttr) { + private val repository = ReviewerMenuRepository(context.sharedPrefs()) private val frontMenu: Menu private val overflowMenu: Menu @@ -125,7 +126,7 @@ class ReviewerMenuView } private fun setupMenus() { - val menuItems = MenuDisplayType.getMenuItems(context.sharedPrefs(), MenuDisplayType.ALWAYS, MenuDisplayType.MENU_ONLY) + val menuItems = repository.getActionsByMenuDisplayTypes(MenuDisplayType.ALWAYS, MenuDisplayType.MENU_ONLY) addActions(menuItems.getValue(MenuDisplayType.ALWAYS), menuItems.getValue(MenuDisplayType.MENU_ONLY)) // wait until attached to a fragment or activity to launch the coroutine to setup flags viewTreeObserver.addOnGlobalLayoutListener( diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/MenuDisplayTypeTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/MenuDisplayTypeTest.kt deleted file mode 100644 index 7a1e510d8d21..000000000000 --- a/AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/MenuDisplayTypeTest.kt +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2024 Brayan Oliveira - * - * 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.preferences.reviewer - -import android.content.SharedPreferences -import androidx.core.content.edit -import com.github.ivanshafran.sharedpreferencesmock.SPMockBuilder -import org.hamcrest.MatcherAssert.assertThat -import org.hamcrest.Matchers.empty -import org.junit.Assert.assertEquals -import org.junit.Before -import org.junit.Test -import kotlin.test.assertContentEquals - -class MenuDisplayTypeTest { - private lateinit var prefs: SharedPreferences - - @Before - fun setUp() { - prefs = SPMockBuilder().createSharedPreferences() - } - - // Safeguard against changing the preference keys. - // A preference upgrade is necessary if they are changed. - @Test - fun `preferenceKeys aren't changed`() { - assertEquals(MenuDisplayType.ALWAYS.preferenceKey, "ReviewerMenuDisplayType_ALWAYS") - assertEquals(MenuDisplayType.MENU_ONLY.preferenceKey, "ReviewerMenuDisplayType_MENU_ONLY") - assertEquals(MenuDisplayType.DISABLED.preferenceKey, "ReviewerMenuDisplayType_DISABLED") - } - - // commas can't be part of an enum object name, so they are safe as separators. - // This test serves as a safeguard against changes in the separator, which would need - // a preference upgrade - @Test - fun `setPreferenceValue stores actions as comma-separated string`() { - val actions = listOf(ViewerAction.UNDO, ViewerAction.REDO) - MenuDisplayType.ALWAYS.setPreferenceValue(prefs, actions) - - val expectedValue = "UNDO,REDO" - assertEquals(expectedValue, prefs.getString(MenuDisplayType.ALWAYS.preferenceKey, null)) - } - - @Test - fun `getConfiguredActions returns correct list of ViewerActions`() { - prefs.edit { - putString(MenuDisplayType.ALWAYS.preferenceKey, "UNDO,MARK") - } - val result = MenuDisplayType.ALWAYS.getConfiguredActions(prefs) - assertEquals(listOf(ViewerAction.UNDO, ViewerAction.MARK), result) - } - - @Test - fun `getConfiguredActions returns empty list if preference is not set`() { - val result = MenuDisplayType.ALWAYS.getConfiguredActions(prefs) - assertEquals(emptyList(), result) - } - - @Test - fun `getAllNotConfiguredActions returns only actions with default display types if preference is not set`() { - val result = MenuDisplayType.getAllNotConfiguredActions(prefs) - val expected = ViewerAction.entries.filter { it.defaultDisplayType != null } - assertEquals(expected, result) - } - - @Test - fun `getMenuItems returns correctly categorized items`() { - // assuming that UNDO is the only action with ALWAYS as default, put it in another list - MenuDisplayType.MENU_ONLY.setPreferenceValue(prefs, listOf(ViewerAction.UNDO)) - val result = MenuDisplayType.getMenuItems(prefs, MenuDisplayType.ALWAYS).getValue(MenuDisplayType.ALWAYS) - assertThat(result, empty()) - } - - @Test - fun `getMenuItems returns not configured items that have a default display type`() { - // assuming that USER_ACTION_1 and USER_ACTION_2 don't have MENU_ONLY as default - val userActions1and2 = listOf(ViewerAction.USER_ACTION_1, ViewerAction.USER_ACTION_2) - MenuDisplayType.MENU_ONLY.setPreferenceValue(prefs, userActions1and2) - val result = MenuDisplayType.getMenuItems(prefs, MenuDisplayType.MENU_ONLY).getValue(MenuDisplayType.MENU_ONLY) - val expected = userActions1and2 + ViewerAction.entries.filter { it.defaultDisplayType == MenuDisplayType.MENU_ONLY } - assertContentEquals(expected, result) - } -} diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepositoryTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepositoryTest.kt new file mode 100644 index 000000000000..19e928cfb122 --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/preferences/reviewer/ReviewerMenuRepositoryTest.kt @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.preferences.reviewer + +import android.content.SharedPreferences +import com.github.ivanshafran.sharedpreferencesmock.SPMockBuilder +import com.ichi2.testutils.common.assertThrows +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.empty +import org.junit.Assert.assertEquals +import org.junit.Before +import org.junit.Test +import kotlin.test.assertContentEquals + +class ReviewerMenuRepositoryTest { + private lateinit var prefs: SharedPreferences + private lateinit var repository: ReviewerMenuRepository + + @Before + fun setUp() { + prefs = SPMockBuilder().createSharedPreferences() + repository = ReviewerMenuRepository(prefs) + } + + // commas can't be part of an enum object name, so they are safe as separators. + // This test serves as a safeguard against changes in the separator, which would need + // a preference upgrade + @Test + fun `setPreferenceValue stores actions as comma-separated string`() { + val actions = listOf(ViewerAction.UNDO, ViewerAction.REDO) + repository.setDisplayTypeActions(alwaysShowActions = actions, emptyList(), emptyList()) + + val expectedValue = "UNDO,REDO" + assertEquals(expectedValue, prefs.getString(MenuDisplayType.ALWAYS.preferenceKey, null)) + } + + @Test + fun `getActionsByMenuDisplayType returns correctly categorized items`() { + // assuming that UNDO is the only action with ALWAYS as default, put it in another list + repository.setDisplayTypeActions( + alwaysShowActions = emptyList(), + menuOnlyActions = listOf(ViewerAction.UNDO), + disabledActions = emptyList(), + ) + val result = repository.getActionsByMenuDisplayTypes(MenuDisplayType.ALWAYS).getValue(MenuDisplayType.ALWAYS) + assertThat(result, empty()) + } + + @Test + fun `getActionsByMenuDisplayType returns not configured items that have a default display type`() { + // assuming that USER_ACTION_1 and USER_ACTION_2 don't have MENU_ONLY as default + val userActions1and2 = listOf(ViewerAction.USER_ACTION_1, ViewerAction.USER_ACTION_2) + repository.setDisplayTypeActions(alwaysShowActions = emptyList(), menuOnlyActions = userActions1and2, disabledActions = emptyList()) + val result = repository.getActionsByMenuDisplayTypes(MenuDisplayType.MENU_ONLY).getValue(MenuDisplayType.MENU_ONLY) + val expected = userActions1and2 + ViewerAction.entries.filter { it.defaultDisplayType == MenuDisplayType.MENU_ONLY } + assertContentEquals(expected, result) + } + + @Test + fun `getActionsByMenuDisplayType returns only the selected display types`() { + val one = repository.getActionsByMenuDisplayTypes(MenuDisplayType.DISABLED, MenuDisplayType.MENU_ONLY) + one.getValue(MenuDisplayType.DISABLED) + one.getValue(MenuDisplayType.MENU_ONLY) + assertThrows { one.getValue(MenuDisplayType.ALWAYS) } + + val two = repository.getActionsByMenuDisplayTypes(MenuDisplayType.ALWAYS, MenuDisplayType.DISABLED, MenuDisplayType.MENU_ONLY) + two.getValue(MenuDisplayType.DISABLED) + two.getValue(MenuDisplayType.ALWAYS) + two.getValue(MenuDisplayType.MENU_ONLY) + + val three = repository.getActionsByMenuDisplayTypes(MenuDisplayType.ALWAYS) + three.getValue(MenuDisplayType.ALWAYS) + assertThrows { three.getValue(MenuDisplayType.DISABLED) } + assertThrows { three.getValue(MenuDisplayType.MENU_ONLY) } + } +} From ecd2d4984dc4bebdd0df02c21e0d207fda4d4b73 Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Fri, 7 Mar 2025 17:47:33 +0000 Subject: [PATCH 093/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-de/01-core.xml | 6 +++--- AnkiDroid/src/main/res/values-de/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-de/07-cardbrowser.xml | 12 ++++++------ AnkiDroid/src/main/res/values-de/10-preferences.xml | 6 +++--- AnkiDroid/src/main/res/values-es-rES/01-core.xml | 2 +- AnkiDroid/src/main/res/values-or/07-cardbrowser.xml | 8 ++++---- AnkiDroid/src/main/res/values-or/08-widget.xml | 2 +- AnkiDroid/src/main/res/values-or/10-preferences.xml | 4 ++-- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/AnkiDroid/src/main/res/values-de/01-core.xml b/AnkiDroid/src/main/res/values-de/01-core.xml index 34f46a189b6b..230e2cf226bd 100644 --- a/AnkiDroid/src/main/res/values-de/01-core.xml +++ b/AnkiDroid/src/main/res/values-de/01-core.xml @@ -61,11 +61,11 @@ Noch ca. %d Minuten - %1$d Stunde %2$d verbleibend + %1$d Stunde(n) %2$d Minute(n) verbleibend %1$d Stunden %2$d verbleibend - %1$d Tag %2$dStd. übrig + %1$d Tag %2$d Std. übrig %1$d Tage %2$dStd. übrig Sammlung ist leer @@ -129,7 +129,7 @@ Dieser Stapel ist leer Stapelsuche Ungültiger Stapelname - Congratulations! You have finished for today. + Glückwunsch! Das war alles für heute. Dieser Stapel ist vorerst geschafft! %s Es sind noch keine Karten fällig Gerätespeicher nicht eingebunden diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index e06bb0b7440b..e1378e11d3c7 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -301,7 +301,7 @@ Notizen Karten/Notizen umschalten Die Höhe jeder Zeile der Kartenübersicht anpassen, sodass nur die ersten 3 Zeilen des Inhalts zu sehen sind. - Browser options + Browser Einstellungen Aufnahme gespeichert Lösche ausgewählte Notizen Stimme berühren, um sie anzuhören diff --git a/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml index 4da9f967fa91..c46524175867 100644 --- a/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml @@ -112,10 +112,10 @@ Schlagwörter-dialog bearbeiten Bestellungsdialog anzeigen - Columns - Manage columns - Active - Available - Include column - Exclude column + Spalten + Spalten verwalten + Aktiv + Verfügbar + Spalte einbeziehen + Spalte ausschließen diff --git a/AnkiDroid/src/main/res/values-de/10-preferences.xml b/AnkiDroid/src/main/res/values-de/10-preferences.xml index 0b4057aaef95..cab02774a1e1 100644 --- a/AnkiDroid/src/main/res/values-de/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-de/10-preferences.xml @@ -97,7 +97,7 @@ Weise Aktionen, wie zum Beispiel Beantworten oder Bearbeiten der Karten, Gesten zu. 9-Punkt-Berührung Berührungsgesten in Bildschirmecken erlauben - Show keyboard shortcuts + Tastenkürzel anzeigen Vollbild-Navigationsleiste Navigationsleiste öffnen, wenn rechts von überall auf dem Bildschirm gewischt wird Keine @@ -366,8 +366,8 @@ Bildschirmausschnitt ignorieren Antwortschaltflächen ausblenden ‘Schwer’- und ‘Leicht’-Tasten ausblenden - Frame style - Card + Rahmenstil + Karte Box Einstellungen öffnen diff --git a/AnkiDroid/src/main/res/values-es-rES/01-core.xml b/AnkiDroid/src/main/res/values-es-rES/01-core.xml index 9b184b6e9d0d..e861c541f71b 100644 --- a/AnkiDroid/src/main/res/values-es-rES/01-core.xml +++ b/AnkiDroid/src/main/res/values-es-rES/01-core.xml @@ -69,7 +69,7 @@ %1$d días %2$dh restantes La colección está vacía - Empieza añadiendo tarjetas usando el ícono + + Empieza a añadir tarjetas\nusando el ícono + Escribir respuesta diff --git a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml index cadf4f8699e4..2776b0e4f55f 100644 --- a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml @@ -70,11 +70,11 @@ ସାମ୍ପ୍ରତିକ ସନ୍ଧାନ ପାଇଁ ନାମ ଆପଣ ନାମ ବିନା ସନ୍ଧାନ ସଞ୍ଚୟ କରିପାରିବେ ନାହିଁ ନାଁଟି ଵିଦ୍ୟମାନ ଅଛି - No note to edit + ସମ୍ପାଦନ କରିବାକୁ କୌଣସି ନୋଟ୍ ନାହିଁ “%1$s” ଵିଲୋପ କରିବେ ତ? ପ୍ରଦର୍ଶନ କ୍ରମ ପରିବର୍ତ୍ତନ କରନ୍ତୁ ସନ୍ଧାନ - Search + ସନ୍ଧାନ ପ୍ରଦର୍ଶନ କ୍ରମ ପରିବର୍ତ୍ତନ କରନ୍ତୁ ଟ୍ୟାଗ୍ @@ -114,8 +114,8 @@ Columns Manage columns - Active - Available + ସକ୍ରିୟ + ଉପଲବ୍ଧ Include column Exclude column diff --git a/AnkiDroid/src/main/res/values-or/08-widget.xml b/AnkiDroid/src/main/res/values-or/08-widget.xml index aafa618fb3d2..339d82ddab41 100644 --- a/AnkiDroid/src/main/res/values-or/08-widget.xml +++ b/AnkiDroid/src/main/res/values-or/08-widget.xml @@ -61,7 +61,7 @@ ନୂଆ Ankidroid ନୋଟ୍ ଯୋଡ଼ନ୍ତୁ Deck Picker - Card Analysis + ପତ୍ର ବିଶ୍ଳେଷଣ Select decks Select a deck diff --git a/AnkiDroid/src/main/res/values-or/10-preferences.xml b/AnkiDroid/src/main/res/values-or/10-preferences.xml index 70d0f1da84ef..72dead1bf6e2 100644 --- a/AnkiDroid/src/main/res/values-or/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-or/10-preferences.xml @@ -368,8 +368,8 @@ ଉତ୍ତର ବଟନ୍ ଲୁଚାଇବା ‘କଠିନ’ ଏବଂ ‘ସହଜ’ ଉତ୍ତର ବଟନ୍ ଲୁଚାଇବା Frame style - Card - Box + ପତ୍ର + ବାକ୍ସ Open settings From 15b5983be99df65267a446c80788778a00223c23 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:23:42 +0200 Subject: [PATCH 094/200] Fix RustCleanup for Collection.findReplace() Note: I also changed the parameters names to match upstream as I think they are more expressive. The matchCase also follows upstream's default value, I think it's the job of the ui/tests to properly call the method. See: https://github.com/ankitects/anki/blob/64ca90934bc26ddf7125913abc9dd9de8cb30c2b/pylib/anki/collection.py#L715 --- .../src/main/java/com/ichi2/libanki/Collection.kt | 14 ++++++++------ .../src/test/java/com/ichi2/libanki/FinderTest.kt | 10 +++++----- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt index 3615815e0af9..e1eef0410c4a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt @@ -53,7 +53,6 @@ import com.ichi2.libanki.utils.NotInLibAnki import com.ichi2.libanki.utils.TimeManager import com.ichi2.utils.KotlinCleanup import net.ankiweb.rsdroid.Backend -import net.ankiweb.rsdroid.RustCleanup import net.ankiweb.rsdroid.exceptions.BackendInvalidInputException import timber.log.Timber import java.io.File @@ -396,16 +395,19 @@ class Collection( return noteIDsList } + /** + * @return An [OpChangesWithCount] representing the number of affected notes + */ @LibAnkiAlias("find_and_replace") - @RustCleanup("Calling code should handle returned OpChanges") + @CheckResult fun findReplace( nids: List, - src: String, - dst: String, + search: String, + replacement: String, regex: Boolean = false, field: String? = null, - fold: Boolean = true, - ): Int = backend.findAndReplace(nids, src, dst, regex, !fold, field ?: "").count + matchCase: Boolean = false, + ): OpChangesWithCount = backend.findAndReplace(nids, search, replacement, regex, matchCase, field ?: "") // Browser Table diff --git a/AnkiDroid/src/test/java/com/ichi2/libanki/FinderTest.kt b/AnkiDroid/src/test/java/com/ichi2/libanki/FinderTest.kt index 2d7d3a56cc00..3e31b7a02706 100644 --- a/AnkiDroid/src/test/java/com/ichi2/libanki/FinderTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/libanki/FinderTest.kt @@ -420,24 +420,24 @@ class FinderTest : JvmTest() { col.addNote(note2) val nids = listOf(note.id, note2.id) // should do nothing - assertEquals(0, col.findReplace(nids, "abc", "123")) + assertEquals(0, col.findReplace(nids, "abc", "123").count) // global replace - assertEquals(2, col.findReplace(nids, "foo", "qux")) + assertEquals(2, col.findReplace(nids, "foo", "qux").count) note.load() assertEquals("qux", note.getItem("Front")) note2.load() assertEquals("qux", note2.getItem("Back")) // single field replace - assertEquals(1, col.findReplace(nids, "qux", "foo", field = "Front")) + assertEquals(1, col.findReplace(nids, "qux", "foo", field = "Front").count) note.load() assertEquals("foo", note.getItem("Front")) note2.load() assertEquals("qux", note2.getItem("Back")) // regex replace - assertEquals(0, col.findReplace(nids, "B.r", "reg")) + assertEquals(0, col.findReplace(nids, "B.r", "reg").count) note.load() assertNotEquals("reg", note.getItem("Back")) - assertEquals(1, col.findReplace(nids, "B.r", "reg", true)) + assertEquals(1, col.findReplace(nids, "B.r", "reg", true).count) note.load() assertEquals(note.getItem("Back"), "reg") } From 7af6e6034f96ce95e02cd211d71a1502f3945fc5 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Mon, 27 Jan 2025 21:47:59 +0200 Subject: [PATCH 095/200] Add Tags.findAndReplace() and Collection.fieldNamesForNoteIds() upstream methods These two methods are used for the find and replace browser functionality. --- .../main/java/com/ichi2/libanki/Collection.kt | 3 +++ .../src/main/java/com/ichi2/libanki/Tags.kt | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt index e1eef0410c4a..5ec1219e3a36 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt @@ -409,6 +409,9 @@ class Collection( matchCase: Boolean = false, ): OpChangesWithCount = backend.findAndReplace(nids, search, replacement, regex, matchCase, field ?: "") + @LibAnkiAlias("field_names_for_note_ids") + fun fieldNamesForNoteIds(nids: List): List = backend.fieldNamesForNotes(nids) + // Browser Table @LibAnkiAlias("all_browser_columns") diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Tags.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Tags.kt index c5a4383a5049..8374b297cfe6 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Tags.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Tags.kt @@ -17,8 +17,10 @@ ****************************************************************************************/ package com.ichi2.libanki +import androidx.annotation.CheckResult import androidx.annotation.WorkerThread import anki.collection.OpChangesWithCount +import com.ichi2.libanki.utils.LibAnkiAlias import com.ichi2.libanki.utils.join import java.util.AbstractSet @@ -111,6 +113,28 @@ class Tags( tag: String, tags: Iterable, ): Boolean = tags.map { it.lowercase() }.contains(tag.lowercase()) + + /** + * Replace occurrences of a search with a new value in tags. + * [https://github.com/ankitects/anki/blob/main/pylib/anki/tags.py#L73](https://github.com/ankitects/anki/blob/main/pylib/anki/tags.py#L73) + * + * @return An [OpChangesWithCount] representing the number of affected notes + */ + @LibAnkiAlias("find_and_replace") + @CheckResult + fun findAndReplace( + noteIds: List, + search: String, + replacement: String, + regex: Boolean, + matchCase: Boolean, + ) = col.backend.findAndReplaceTag( + noteIds = noteIds, + search = search, + replacement = replacement, + regex = regex, + matchCase = matchCase, + ) } fun Collection.completeTagRaw(input: ByteArray): ByteArray = backend.completeTagRaw(input) From 46c03cf17b0e5d9aa3b194769f2c121f2db3d7b4 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Wed, 29 Jan 2025 20:26:38 +0200 Subject: [PATCH 096/200] feat: Enable developer option for "Find and replace" browser dialog Added as a developer option for now. Provides a dialog that follows the desktop ui to allow the user to bulk change their notes. Ui follows the desktop code: - offers all options that desktop offers - shows feedback when done with the count of notes changed - the operation is undoable(from DeckPicker) If enabled, this option will always(no selection/multi select mode) be present in the menu. --- .../main/java/com/ichi2/anki/CardBrowser.kt | 33 ++ .../anki/browser/CardBrowserViewModel.kt | 28 ++ .../browser/FindAndReplaceDialogFragment.kt | 228 ++++++++++++ .../main/res/layout/fragment_find_replace.xml | 174 +++++++++ AnkiDroid/src/main/res/menu/card_browser.xml | 7 +- .../res/menu/card_browser_multiselect.xml | 7 +- .../src/main/res/values/07-cardbrowser.xml | 2 + AnkiDroid/src/main/res/values/constants.xml | 1 + AnkiDroid/src/main/res/values/preferences.xml | 1 + .../src/main/res/values/sentence-case.xml | 3 + .../main/res/xml/preferences_dev_options.xml | 6 +- .../java/com/ichi2/anki/CardBrowserTest.kt | 352 ++++++++++++++++++ 12 files changed, 839 insertions(+), 3 deletions(-) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/browser/FindAndReplaceDialogFragment.kt create mode 100644 AnkiDroid/src/main/res/layout/fragment_find_replace.xml diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt index a09b793278d5..ced412deccb5 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardBrowser.kt @@ -67,6 +67,7 @@ import com.ichi2.anki.browser.CardBrowserViewModel.SearchState.Initializing import com.ichi2.anki.browser.CardBrowserViewModel.SearchState.Searching import com.ichi2.anki.browser.CardOrNoteId import com.ichi2.anki.browser.ColumnHeading +import com.ichi2.anki.browser.FindAndReplaceDialogFragment import com.ichi2.anki.browser.PreviewerIdsFile import com.ichi2.anki.browser.RepositionCardFragment import com.ichi2.anki.browser.RepositionCardFragment.Companion.REQUEST_REPOSITION_NEW_CARDS @@ -74,6 +75,7 @@ import com.ichi2.anki.browser.RepositionCardsRequest.ContainsNonNewCardsError import com.ichi2.anki.browser.RepositionCardsRequest.RepositionData import com.ichi2.anki.browser.SaveSearchResult import com.ichi2.anki.browser.SharedPreferencesLastDeckIdRepository +import com.ichi2.anki.browser.registerFindReplaceHandler import com.ichi2.anki.browser.toCardBrowserLaunchOptions import com.ichi2.anki.dialogs.BrowserOptionsDialog import com.ichi2.anki.dialogs.CardBrowserMySearchesDialog @@ -99,6 +101,7 @@ import com.ichi2.anki.model.CardsOrNotes.CARDS import com.ichi2.anki.model.CardsOrNotes.NOTES import com.ichi2.anki.model.SortType import com.ichi2.anki.noteeditor.NoteEditorLauncher +import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.previewer.PreviewerFragment import com.ichi2.anki.scheduling.ForgetCardsDialog import com.ichi2.anki.scheduling.SetDueDateDialog @@ -456,6 +459,18 @@ open class CardBrowser : shift = bundle.getBoolean(RepositionCardFragment.ARG_SHIFT), ) } + + registerFindReplaceHandler { result -> + launchCatchingTask { + withProgress { + val count = + withProgress { + viewModel.findAndReplace(result) + }.await() + showSnackbar(TR.browsingNotesUpdated(count)) + } + } + } } override fun setupBackPressedCallbacks() { @@ -685,6 +700,11 @@ open class CardBrowser : } } KeyEvent.KEYCODE_F -> { + if (event.isCtrlPressed && event.isAltPressed) { + Timber.i("CTRL+ALT+F - Find and replace") + showFindAndReplaceDialog() + return true + } if (event.isCtrlPressed) { Timber.i("Ctrl+F - Find notes") searchItem?.expandActionView() @@ -967,6 +987,11 @@ open class CardBrowser : actionBarMenu?.findItem(R.id.action_reschedule_cards)?.title = TR.actionsSetDueDate().toSentenceCase(this, R.string.sentence_set_due_date) + val isFindReplaceEnabled = sharedPrefs().getBoolean(getString(R.string.pref_browser_find_replace), false) + menu.findItem(R.id.action_find_replace)?.apply { + isVisible = isFindReplaceEnabled + title = TR.browsingFindAndReplace().toSentenceCase(this@CardBrowser, R.string.sentence_find_and_replace) + } previewItem = menu.findItem(R.id.action_preview) onSelectionChanged() updatePreviewMenuItem() @@ -1235,6 +1260,9 @@ open class CardBrowser : R.id.action_create_filtered_deck -> { showCreateFilteredDeckDialog() } + R.id.action_find_replace -> { + showFindAndReplaceDialog() + } } return super.onOptionsItemSelected(item) } @@ -1267,6 +1295,11 @@ open class CardBrowser : launchCatchingTask { viewModel.searchForMarkedNotes() } } + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + fun showFindAndReplaceDialog() { + FindAndReplaceDialogFragment().show(supportFragmentManager, FindAndReplaceDialogFragment.TAG) + } + private fun changeDisplayOrder() { showDialogFragment( // TODO: move this into the ViewModel diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt index f4a8064d1d41..a37c4bb68221 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt @@ -37,6 +37,8 @@ import com.ichi2.anki.CrashReportService import com.ichi2.anki.DeckSpinnerSelection.Companion.ALL_DECKS_ID import com.ichi2.anki.Flag import com.ichi2.anki.PreviewerDestination +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ALL_FIELDS_AS_FIELD +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.TAGS_AS_FIELD import com.ichi2.anki.browser.RepositionCardsRequest.RepositionData import com.ichi2.anki.export.ExportDialogFragment.ExportType import com.ichi2.anki.launchCatchingIO @@ -1034,6 +1036,32 @@ class CardBrowserViewModel( ) } + /** + * Replaces occurrences of search with the new value. + * + * @return the number of affected notes + * @see com.ichi2.libanki.Collection.findReplace + * @see com.ichi2.libanki.Tags.findAndReplace + */ + fun findAndReplace(result: FindReplaceResult) = + viewModelScope.async { + // TODO pass the selection as the user saw it in the dialog to avoid running "find + // and replace" on a different selection + val noteIds = if (result.onlyOnSelectedNotes) queryAllSelectedNoteIds() else emptyList() + + if (result.field == TAGS_AS_FIELD) { + undoableOp { + tags.findAndReplace(noteIds, result.search, result.replacement, result.regex, result.matchCase) + }.count + } else { + val field = + if (result.field == ALL_FIELDS_AS_FIELD) null else result.field + undoableOp { + findReplace(noteIds, result.search, result.replacement, result.regex, field, result.matchCase) + }.count + } + } + companion object { fun factory( lastDeckIdRepository: LastDeckIdRepository, diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/FindAndReplaceDialogFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/FindAndReplaceDialogFragment.kt new file mode 100644 index 000000000000..0c66c92ab586 --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/FindAndReplaceDialogFragment.kt @@ -0,0 +1,228 @@ +/**************************************************************************************** + * Copyright (c) 2025 lukstbit <52494258+lukstbit@users.noreply.github.com> * + * * + * 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.browser + +import android.app.Dialog +import android.os.Bundle +import android.view.View +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.CheckBox +import android.widget.EditText +import android.widget.Spinner +import android.widget.TextView +import androidx.annotation.VisibleForTesting +import androidx.appcompat.app.AlertDialog +import androidx.constraintlayout.widget.Group +import androidx.core.os.bundleOf +import androidx.core.text.HtmlCompat +import androidx.core.view.isVisible +import androidx.fragment.app.activityViewModels +import androidx.fragment.app.setFragmentResult +import androidx.lifecycle.lifecycleScope +import com.ichi2.anki.CardBrowser +import com.ichi2.anki.CollectionManager.TR +import com.ichi2.anki.CollectionManager.withCol +import com.ichi2.anki.R +import com.ichi2.anki.analytics.AnalyticsDialogFragment +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_FIELD +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_MATCH_CASE +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_ONLY_SELECTED_NOTES +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_REGEX +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_REPLACEMENT +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_SEARCH +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.REQUEST_FIND_AND_REPLACE +import com.ichi2.anki.notetype.ManageNotetypes +import com.ichi2.anki.ui.internationalization.toSentenceCase +import com.ichi2.anki.utils.openUrl +import com.ichi2.utils.customView +import com.ichi2.utils.negativeButton +import com.ichi2.utils.neutralButton +import com.ichi2.utils.positiveButton +import com.ichi2.utils.show +import com.ichi2.utils.title +import kotlinx.coroutines.launch +import timber.log.Timber + +/** + * Dialog that shows the options for finding and replacing the text of notes in [CardBrowser]. + * + * Note for completeness: + * + * Desktop also shows the fields of a note in the browser and the user can right-click on one of + * them to start a find and replace only for that field. We display the fields only in + * [ManageNotetypes] which doesn't feel like it should have this feature. + * (see https://github.com/ankitects/anki/blob/64ca90934bc26ddf7125913abc9dd9de8cb30c2b/qt/aqt/browser/sidebar/tree.py#L1074) + */ +// TODO desktop offers history for inputs +class FindAndReplaceDialogFragment : AnalyticsDialogFragment() { + private val browserViewModel by activityViewModels() + private val fieldSelector: Spinner? + get() = dialog?.findViewById(R.id.fields_selector) + private val onlySelectedNotes: CheckBox? + get() = dialog?.findViewById(R.id.check_only_selected_notes) + private val contentViewsGroup: Group? + get() = dialog?.findViewById(R.id.content_views_group) + private val loadingViewsGroup: Group? + get() = dialog?.findViewById(R.id.loading_views_group) + + override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { + val contentView = layoutInflater.inflate(R.layout.fragment_find_replace, null) + contentView.setupLabels() + val title = + TR + .browsingFindAndReplace() + .toSentenceCase(requireContext(), R.string.sentence_find_and_replace) + return AlertDialog + .Builder(requireContext()) + .show { + title(text = title) + customView(contentView) + neutralButton(R.string.help) { openUrl(R.string.link_manual_browser_find_replace) } + negativeButton(R.string.dialog_cancel) + positiveButton(R.string.dialog_ok) { startFindReplace() } + }.also { dialog -> + dialog.positiveButton.isEnabled = false + } + } + + private fun View.setupLabels() { + findViewById(R.id.label_find).text = + HtmlCompat.fromHtml(TR.browsingFind(), HtmlCompat.FROM_HTML_MODE_LEGACY) + findViewById(R.id.label_replace).text = + HtmlCompat.fromHtml(TR.browsingReplaceWith(), HtmlCompat.FROM_HTML_MODE_LEGACY) + findViewById(R.id.label_in).text = + HtmlCompat.fromHtml(TR.browsingIn(), HtmlCompat.FROM_HTML_MODE_LEGACY) + findViewById(R.id.check_only_selected_notes).text = TR.browsingSelectedNotesOnly() + findViewById(R.id.check_ignore_case).text = TR.browsingIgnoreCase() + findViewById(R.id.check_input_as_regex).text = + TR.browsingTreatInputAsRegularExpression() + } + + override fun onStart() { + super.onStart() + lifecycleScope.launch { + (dialog as? AlertDialog)?.positiveButton?.isEnabled = false + contentViewsGroup?.isVisible = false + loadingViewsGroup?.isVisible = true + val noteIds = browserViewModel.queryAllSelectedNoteIds() + onlySelectedNotes?.isChecked = noteIds.isNotEmpty() + onlySelectedNotes?.isEnabled = noteIds.isNotEmpty() + val fieldsNames = + buildList { + add( + TR.browsingAllFields().toSentenceCase( + this@FindAndReplaceDialogFragment, + R.string.sentence_all_fields, + ), + ) + add(TR.editingTags()) + addAll(withCol { fieldNamesForNoteIds(noteIds) }) + } + fieldSelector?.adapter = + ArrayAdapter( + requireActivity(), + android.R.layout.simple_spinner_item, + fieldsNames, + ).also { it.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item) } + loadingViewsGroup?.isVisible = false + contentViewsGroup?.isVisible = true + (dialog as? AlertDialog)?.positiveButton?.isEnabled = true + } + } + + // https://github.com/ankitects/anki/blob/64ca90934bc26ddf7125913abc9dd9de8cb30c2b/qt/aqt/browser/find_and_replace.py#L118 + @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) + fun startFindReplace() { + val search = dialog?.findViewById(R.id.input_search)?.text + val replacement = dialog?.findViewById(R.id.input_replace)?.text + if (search.isNullOrEmpty() || replacement == null) return + val onlyInSelectedNotes = onlySelectedNotes?.isChecked ?: true + val ignoreCase = + dialog?.findViewById(R.id.check_ignore_case)?.isChecked ?: true + val inputAsRegex = + dialog?.findViewById(R.id.check_input_as_regex)?.isChecked ?: false + val selectedField = + when (fieldSelector?.selectedItemPosition ?: AdapterView.INVALID_POSITION) { + AdapterView.INVALID_POSITION -> return + 0 -> ALL_FIELDS_AS_FIELD + 1 -> TAGS_AS_FIELD + else -> fieldSelector?.selectedItem as? String ?: return + } + Timber.i("Sending request to find and replace...") + setFragmentResult( + REQUEST_FIND_AND_REPLACE, + bundleOf( + ARG_SEARCH to search.toString(), + ARG_REPLACEMENT to replacement.toString(), + ARG_FIELD to selectedField, + ARG_ONLY_SELECTED_NOTES to onlyInSelectedNotes, + // "Ignore case" checkbox text => when it's checked we pass false to the backend + ARG_MATCH_CASE to !ignoreCase, + ARG_REGEX to inputAsRegex, + ), + ) + } + + companion object { + const val TAG = "FindAndReplaceDialogFragment" + const val REQUEST_FIND_AND_REPLACE = "request_find_and_replace" + const val ARG_SEARCH = "arg_search" + const val ARG_REPLACEMENT = "arg_replacement" + const val ARG_FIELD = "arg_field" + const val ARG_ONLY_SELECTED_NOTES = "arg_only_selected_notes" + const val ARG_MATCH_CASE = "arg_match_case" + const val ARG_REGEX = "arg_regex" + + /** + * Receiving this value in the result [Bundle] for the [ARG_FIELD] entry means that + * the user selected "All fields" as the field target for the find and replace action. + */ + const val ALL_FIELDS_AS_FIELD = "find_and_replace_dialog_fragment_all_fields_as_field" + + /** + * Receiving this value in the result [Bundle] for the [ARG_FIELD] entry means that + * the user selected "Tags" as the field target for the find and replace action. + */ + const val TAGS_AS_FIELD = "find_and_replace_dialog_fragment_tags_as_field" + } +} + +fun CardBrowser.registerFindReplaceHandler(action: (FindReplaceResult) -> Unit) { + supportFragmentManager.setFragmentResultListener(REQUEST_FIND_AND_REPLACE, this) { _, bundle -> + action( + FindReplaceResult( + search = bundle.getString(ARG_SEARCH) ?: error("Missing required argument: search"), + replacement = + bundle.getString(ARG_REPLACEMENT) ?: error("Missing required argument: replacement"), + field = bundle.getString(ARG_FIELD) ?: error("Missing required argument: field"), + bundle.getBoolean(ARG_ONLY_SELECTED_NOTES, true), + bundle.getBoolean(ARG_MATCH_CASE, false), + bundle.getBoolean(ARG_REGEX, false), + ), + ) + } +} + +data class FindReplaceResult( + val search: String, + val replacement: String, + val field: String, + val onlyOnSelectedNotes: Boolean, + val matchCase: Boolean, + val regex: Boolean, +) diff --git a/AnkiDroid/src/main/res/layout/fragment_find_replace.xml b/AnkiDroid/src/main/res/layout/fragment_find_replace.xml new file mode 100644 index 000000000000..463561fdf26d --- /dev/null +++ b/AnkiDroid/src/main/res/layout/fragment_find_replace.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/AnkiDroid/src/main/res/menu/card_browser.xml b/AnkiDroid/src/main/res/menu/card_browser.xml index ecf2bd1e653b..5cdea18010cc 100644 --- a/AnkiDroid/src/main/res/menu/card_browser.xml +++ b/AnkiDroid/src/main/res/menu/card_browser.xml @@ -1,6 +1,7 @@ + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto"> + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/menu/card_browser_multiselect.xml b/AnkiDroid/src/main/res/menu/card_browser_multiselect.xml index 7d7248a6575d..c222d71c2416 100644 --- a/AnkiDroid/src/main/res/menu/card_browser_multiselect.xml +++ b/AnkiDroid/src/main/res/menu/card_browser_multiselect.xml @@ -1,6 +1,7 @@ + xmlns:tools="http://schemas.android.com/tools" + xmlns:app="http://schemas.android.com/apk/res-auto"> + diff --git a/AnkiDroid/src/main/res/values/07-cardbrowser.xml b/AnkiDroid/src/main/res/values/07-cardbrowser.xml index 92645405e696..ac1b99e6e1d5 100644 --- a/AnkiDroid/src/main/res/values/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values/07-cardbrowser.xml @@ -97,4 +97,6 @@ Available Include column Exclude column + + Retrieving fields names… \ No newline at end of file diff --git a/AnkiDroid/src/main/res/values/constants.xml b/AnkiDroid/src/main/res/values/constants.xml index 1f707653228c..7c3d8bc94f29 100644 --- a/AnkiDroid/src/main/res/values/constants.xml +++ b/AnkiDroid/src/main/res/values/constants.xml @@ -124,6 +124,7 @@ https://docs.ankidroid.org/help-ar.html https://docs.ankidroid.org/manual-ar.html https://docs.ankidroid.org/manual.html#noteFormattingToolbar + https://docs.ankiweb.net/browsing.html#find-and-replace https://docs.ankidroid.org/#userActions https://github.com/ankidroid/Anki-Android/wiki/FAQ#tts--text-to-speech-is-not-speaking https://github.com/ankidroid/Anki-Android/wiki/FAQ#why-doesnt-my-sound-or-image-work-on-ankidroid diff --git a/AnkiDroid/src/main/res/values/preferences.xml b/AnkiDroid/src/main/res/values/preferences.xml index a818352e19fa..ce5617cc213a 100644 --- a/AnkiDroid/src/main/res/values/preferences.xml +++ b/AnkiDroid/src/main/res/values/preferences.xml @@ -182,6 +182,7 @@ new_congrats_screen newReviewer newReviewerOptions + browserFindReplace devOptionsEnabledByUser workInProgressDevOptions diff --git a/AnkiDroid/src/main/res/values/sentence-case.xml b/AnkiDroid/src/main/res/values/sentence-case.xml index e739a67cbff3..8eb2eb3b58e9 100644 --- a/AnkiDroid/src/main/res/values/sentence-case.xml +++ b/AnkiDroid/src/main/res/values/sentence-case.xml @@ -44,4 +44,7 @@ undoActionUndone() Empty cards Tag missing Reposition new cards + Find and replace + All fields + \ No newline at end of file diff --git a/AnkiDroid/src/main/res/xml/preferences_dev_options.xml b/AnkiDroid/src/main/res/xml/preferences_dev_options.xml index 875d49c1f512..a63f8f35099c 100644 --- a/AnkiDroid/src/main/res/xml/preferences_dev_options.xml +++ b/AnkiDroid/src/main/res/xml/preferences_dev_options.xml @@ -89,6 +89,10 @@ android:key="@string/new_reviewer_options_key" android:dependency="@string/new_reviewer_pref_key" android:fragment="com.ichi2.anki.preferences.ReviewerOptionsFragment"/> - + \ No newline at end of file diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt index 5bcbcbe4cca0..7a9e2dd65177 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt @@ -19,15 +19,35 @@ import android.annotation.SuppressLint import android.content.Intent import android.os.Bundle import android.text.TextUtils +import android.widget.Spinner +import android.widget.SpinnerAdapter import android.widget.TextView import androidx.core.app.ActivityCompat import androidx.core.content.edit import androidx.core.os.bundleOf import androidx.core.view.children +import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment +import androidx.test.espresso.Espresso.onData +import androidx.test.espresso.Espresso.onView +import androidx.test.espresso.action.ViewActions +import androidx.test.espresso.action.ViewActions.click +import androidx.test.espresso.action.ViewActions.scrollCompletelyTo +import androidx.test.espresso.assertion.ViewAssertions.matches +import androidx.test.espresso.matcher.RootMatchers.isDialog +import androidx.test.espresso.matcher.ViewMatchers +import androidx.test.espresso.matcher.ViewMatchers.isChecked +import androidx.test.espresso.matcher.ViewMatchers.isNotChecked +import androidx.test.espresso.matcher.ViewMatchers.isNotEnabled +import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility +import androidx.test.espresso.matcher.ViewMatchers.withId +import androidx.test.espresso.matcher.ViewMatchers.withSpinnerText +import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.ext.junit.runners.AndroidJUnit4 import anki.search.BrowserRow import anki.search.BrowserRow.Color +import com.ichi2.anki.CollectionManager.TR +import com.ichi2.anki.CollectionManager.withCol import com.ichi2.anki.IntentHandler.Companion.grantedStoragePermissions import com.ichi2.anki.RobolectricTest.Companion.waitForAsyncTasksToComplete import com.ichi2.anki.browser.BrowserMultiColumnAdapter @@ -40,6 +60,16 @@ import com.ichi2.anki.browser.CardBrowserColumn.TAGS import com.ichi2.anki.browser.CardBrowserViewModel import com.ichi2.anki.browser.CardBrowserViewModelTest import com.ichi2.anki.browser.CardOrNoteId +import com.ichi2.anki.browser.FindAndReplaceDialogFragment +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ALL_FIELDS_AS_FIELD +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_FIELD +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_MATCH_CASE +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_ONLY_SELECTED_NOTES +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_REGEX +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_REPLACEMENT +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.ARG_SEARCH +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.REQUEST_FIND_AND_REPLACE +import com.ichi2.anki.browser.FindAndReplaceDialogFragment.Companion.TAGS_AS_FIELD import com.ichi2.anki.browser.column1 import com.ichi2.anki.browser.setColumn import com.ichi2.anki.common.utils.isRunningAsUnitTest @@ -51,6 +81,7 @@ import com.ichi2.anki.scheduling.ForgetCardsDialog import com.ichi2.anki.servicelayer.PreferenceUpgradeService import com.ichi2.anki.servicelayer.PreferenceUpgradeService.PreferenceUpgrade.UpgradeBrowserColumns.Companion.LEGACY_COLUMN1_KEYS import com.ichi2.anki.servicelayer.PreferenceUpgradeService.PreferenceUpgrade.UpgradeBrowserColumns.Companion.LEGACY_COLUMN2_KEYS +import com.ichi2.anki.ui.internationalization.toSentenceCase import com.ichi2.anki.utils.ext.getCurrentDialogFragment import com.ichi2.anki.utils.ext.showDialogFragment import com.ichi2.libanki.BrowserConfig @@ -72,6 +103,10 @@ import io.mockk.mockkStatic import io.mockk.unmockkObject import io.mockk.unmockkStatic import kotlinx.coroutines.runBlocking +import org.hamcrest.CoreMatchers.allOf +import org.hamcrest.CoreMatchers.containsString +import org.hamcrest.CoreMatchers.instanceOf +import org.hamcrest.CoreMatchers.`is` import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.equalTo import org.hamcrest.Matchers.greaterThan @@ -1234,6 +1269,323 @@ class CardBrowserTest : RobolectricTest() { } } + @Test + fun `FindReplace - dialog has expected ui at start`() { + withBrowser { + showFindAndReplaceDialog() + // nothing selected so checkbox 'Only selected notes' is not available + onView(withId(R.id.check_only_selected_notes)).inRoot(isDialog()).check(matches(isNotEnabled())) + onView(withId(R.id.check_only_selected_notes)).inRoot(isDialog()).check(matches(isNotChecked())) + val fieldSelectorAdapter = getFindReplaceFieldsAdapter() + onView(withId(R.id.check_ignore_case)).inRoot(isDialog()).check(matches(isChecked())) + onView(withId(R.id.check_input_as_regex)).inRoot(isDialog()).check(matches(isNotChecked())) + // as nothing is selected the fields selector has only the two default options + assertNotNull(fieldSelectorAdapter, "Fields adapter was not set") + assertEquals(2, fieldSelectorAdapter.count) + assertEquals( + TR.browsingAllFields().toSentenceCase(targetContext, R.string.sentence_all_fields), + fieldSelectorAdapter.getItem(0), + ) + assertEquals(TR.editingTags(), fieldSelectorAdapter.getItem(1)) + } + } + + @Test + fun `FindReplace - shows expected fields target based on browser selection`() { + fun SpinnerAdapter.getAdapterData(): List = + mutableListOf().apply { + for (position in 0 until count) { + add(getItem(position) as String) + } + } + + createFindReplaceTestNote("A", "Car", "Lion") + createFindReplaceTestNote("B", "Train", "Chicken") + withBrowser { + assertEquals(2, viewModel.rowCount) + viewModel.selectRowAtPosition(1) + openFindAndReplace() + var fieldSelectorAdapter = getFindReplaceFieldsAdapter() + // 2 default field options + 2 fields from the one note selected + assertEquals(4, fieldSelectorAdapter.count) + val defaultFields = + listOf( + TR.browsingAllFields().toSentenceCase(targetContext, R.string.sentence_all_fields), + TR.editingTags(), + ) + assertEquals(defaultFields + listOf("Bfield0", "Bfield1"), fieldSelectorAdapter.getAdapterData()) + closeFindAndReplace() + viewModel.selectAll() // 2 notes above + openFindAndReplace() + fieldSelectorAdapter = getFindReplaceFieldsAdapter() + // 2 default field options + 4 from the two notes + assertEquals(6, fieldSelectorAdapter.count) + assertEquals(defaultFields + listOf("Afield0", "Afield1", "Bfield0", "Bfield1"), fieldSelectorAdapter.getAdapterData()) + closeFindAndReplace() + viewModel.selectNone() // 2 notes above + openFindAndReplace() + fieldSelectorAdapter = getFindReplaceFieldsAdapter() + // selection is reset just 2 default field options + assertEquals(2, fieldSelectorAdapter.count) + assertEquals(defaultFields, fieldSelectorAdapter.getAdapterData()) + closeFindAndReplace() + } + } + + @Test + fun `FindReplace - dialog handles correctly match case checkbox set to true`() { + val note0 = createFindReplaceTestNote("A", "kchicKen", "kilogram") + val note1 = createFindReplaceTestNote("A", "keK", "kontra") + withBrowser { + assertEquals(2, viewModel.rowCount) + viewModel.selectRowAtPosition(0) + // by default 'match case' is set to false + openFindAndReplace() + onView(withId(R.id.input_search)).inRoot(isDialog()).perform(ViewActions.typeText("k")) + onView(withId(R.id.input_replace)).inRoot(isDialog()).perform(ViewActions.typeText("X")) + onView(withId(R.id.check_input_as_regex)).inRoot(isDialog()).perform(scrollCompletelyTo()) + onData(allOf(`is`(instanceOf(String::class.java)), `is`("Afield0"))) + .inAdapterView(withId(R.id.fields_selector)) + .perform(click()) + onView(withId(R.id.fields_selector)).check(matches(withSpinnerText(containsString("Afield0")))) + onView(withId(R.id.check_ignore_case)).inRoot(isDialog()).check(matches(isChecked())) + // although the positive button exists, clicking it with Espresso doesn't work + // onView(withId(android.R.id.button1)).inRoot(isDialog()).perform(click()) + // so simulate clicking the positive button by running the associated method directly + (supportFragmentManager.findFragmentByTag(FindAndReplaceDialogFragment.TAG) as FindAndReplaceDialogFragment) + .startFindReplace() + // clicking the positive button would have also closed the dialog + closeFindAndReplace() + val colNote0 = withCol { getNote(note0.id) } + val colNote1 = withCol { getNote(note1.id) } + assertEquals("keK", colNote1.fields[0]) + assertEquals("kontra", colNote1.fields[1]) + // didn't modify field 1 + assertEquals("kilogram", colNote0.fields[1]) + // replaces both occurrences ignoring case + assertEquals("XchicXen", colNote0.fields[0]) + } + } + + @Test + fun `FindReplace - dialog handles correctly match case checkbox set to false`() { + val note0 = createFindReplaceTestNote("A", "kchicKen", "kilogram") + val note1 = createFindReplaceTestNote("A", "keK", "kontra") + withBrowser { + assertEquals(2, viewModel.rowCount) + viewModel.selectRowAtPosition(1) + openFindAndReplace() + onView(withId(R.id.input_search)).inRoot(isDialog()).perform(ViewActions.typeText("k")) + onView(withId(R.id.input_replace)).inRoot(isDialog()).perform(ViewActions.typeText("X")) + onView(withId(R.id.check_input_as_regex)).inRoot(isDialog()).perform(scrollCompletelyTo()) + onData(allOf(`is`(instanceOf(String::class.java)), `is`("Afield0"))) + .inAdapterView(withId(R.id.fields_selector)) + .perform(click()) + onView(withId(R.id.check_ignore_case)).inRoot(isDialog()).perform(scrollCompletelyTo()) + onView(withId(R.id.check_ignore_case)).inRoot(isDialog()).check(matches(isChecked())) + onView(withId(R.id.check_ignore_case)).inRoot(isDialog()).perform(click()) + onView(withId(R.id.check_ignore_case)).inRoot(isDialog()).check(matches(isNotChecked())) + // although the positive button exists, clicking it with Espresso doesn't work + // onView(withId(android.R.id.button1)).inRoot(isDialog()).perform(click()) + // so simulate clicking the positive button by running the associated method directly + (supportFragmentManager.findFragmentByTag(FindAndReplaceDialogFragment.TAG) as FindAndReplaceDialogFragment) + .startFindReplace() + // clicking the positive button would have also closed the dialog + closeFindAndReplace() + val colNote0 = withCol { getNote(note0.id) } + val colNote1 = withCol { getNote(note1.id) } + assertEquals("kchicKen", colNote0.fields[0]) + assertEquals("kilogram", colNote0.fields[1]) + // didn't modify field 1 + assertEquals("kontra", colNote1.fields[1]) + // replaced only the proper case + assertEquals("XeK", colNote1.fields[0]) + } + } + + @Test + fun `FindReplace - replaces text only for the field in the selected note`() { + val note0 = createFindReplaceTestNote("A", "kart", "kilogram") + val note1 = createFindReplaceTestNote("B", "pink", "chicken") + withBrowser { + viewModel.selectRowAtPosition(1) + createFindReplaceRequest("BField1", "k", "X") + val colNote0 = withCol { getNote(note0.id) } + // didn't modify other unselected notes + assertEquals("kart", colNote0.fields[0]) + assertEquals("kilogram", colNote0.fields[1]) + val colNote1 = withCol { getNote(note1.id) } + // only modified the specified field, not other fields as well + assertEquals("pink", colNote1.fields[0]) + assertEquals("chicXen", colNote1.fields[1]) + onView(withText(TR.browsingNotesUpdated(1))).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + } + } + + @Test + fun `FindReplace - replaces text based on regular expression`() { + val note0 = createFindReplaceTestNote("A", "kart", "ki1logram") + val note1 = createFindReplaceTestNote("B", "pink", "chicken") + withBrowser { + viewModel.selectRowAtPosition(0) + createFindReplaceRequest("AField1", "\\d", "X", regex = true) + val colNote0 = withCol { getNote(note0.id) } + val colNote1 = withCol { getNote(note1.id) } + // didn't modify other unselected notes or unselected fields + assertEquals("kart", colNote0.fields[0]) + assertEquals("pink", colNote1.fields[0]) + assertEquals("chicken", colNote1.fields[1]) + // modified the specified field + assertEquals("kiXlogram", colNote0.fields[1]) + onView(withText(TR.browsingNotesUpdated(1))).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + } + } + + @Test + fun `FindReplace - replaces text in all notes if 'Only in selected notes' is unchecked`() { + val note0 = createFindReplaceTestNote("A", "kart", "kilogram") + val note1 = createFindReplaceTestNote("B", "pink", "chicken") + val note2 = createFindReplaceTestNote("B", "kinetik", "kotlin") + val note3 = createFindReplaceTestNote("C", "klean", "kip") + withBrowser { + viewModel.selectRowAtPosition(1) + createFindReplaceRequest("BField1", "k", "X", onlyInSelectedNotes = false) + val colNote0 = withCol { getNote(note0.id) } + val colNote1 = withCol { getNote(note1.id) } + val colNote2 = withCol { getNote(note2.id) } + val colNote3 = withCol { getNote(note3.id) } + // didn't modify other unselected fields + assertEquals("kart", colNote0.fields[0]) + assertEquals("kilogram", colNote0.fields[1]) // other field name + assertEquals("pink", colNote1.fields[0]) + assertEquals("kinetik", colNote2.fields[0]) + assertEquals("klean", colNote3.fields[0]) + // all modified + assertEquals("chicXen", colNote1.fields[1]) + assertEquals("Xotlin", colNote2.fields[1]) + assertEquals("Xip", colNote3.fields[1]) + onView(withText(TR.browsingNotesUpdated(3))).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + } + } + + @Test + fun `FindReplace - replaces text in all fields of selected note if 'All fields' is selected`() { + val note0 = createFindReplaceTestNote("A", "kart", "kilogram") + val note1 = createFindReplaceTestNote("B", "pink", "chicken") + withBrowser { + viewModel.selectRowAtPosition(1) + createFindReplaceRequest(ALL_FIELDS_AS_FIELD, "k", "X") + val colNote0 = withCol { getNote(note0.id) } + // didn't modify other unselected notes + assertEquals("kart", colNote0.fields[0]) + assertEquals("kilogram", colNote0.fields[1]) + val colNote1 = withCol { getNote(note1.id) } + // only modified the specified field, not other fields as well + assertEquals("pinX", colNote1.fields[0]) + assertEquals("chicXen", colNote1.fields[1]) + // two fields modified but one note is actually updated + onView(withText(TR.browsingNotesUpdated(1))).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + } + } + + @Test + fun `FindReplace - replaces text of tags as expected if 'Tags' is selected`() { + val note0 = createFindReplaceTestNote("A", "kart", "kilogram") + val note1 = createFindReplaceTestNote("A", "pink", "chicken") + withBrowser { + withCol { tags.bulkAdd(listOf(note0.id, note1.id), "JoJo") } + viewModel.selectRowAtPosition(0) + createFindReplaceRequest(TAGS_AS_FIELD, "JoJo", "KoKo") + val colNote0 = withCol { getNote(note0.id) } + val colNote1 = withCol { getNote(note1.id) } + // didn't modify other unselected notes + assertEquals("JoJo", colNote1.tags[0]) + // changed tag + assertEquals("KoKo", colNote0.tags[0]) + // doesn't have the previous tags + assertEquals(1, colNote0.tags.size) + onView(withText(TR.browsingNotesUpdated(1))).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + } + } + + @Test + fun `FindReplace - replaces text as expected when set to match case`() { + val note0 = createFindReplaceTestNote("A", "kart", "kilogram") + val note1 = createFindReplaceTestNote("B", "krate", "chicKen") + withBrowser { + viewModel.selectRowAtPosition(1) + createFindReplaceRequest(ALL_FIELDS_AS_FIELD, "k", "X", matchCase = true) + val colNote0 = withCol { getNote(note0.id) } + val colNote1 = withCol { getNote(note1.id) } + // didn't modify other unselected notes + assertEquals("kart", colNote0.fields[0]) + assertEquals("kilogram", colNote0.fields[1]) + assertEquals("Xrate", colNote1.fields[0]) // matches case + assertEquals("chicKen", colNote1.fields[1]) // doesn't match case + onView(withText(TR.browsingNotesUpdated(1))).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.VISIBLE))) + } + } + + /** + * 3 notetypes available(named A, B and C) each with two fields. + * Fields names follow the pattern: "${NotetypeName}field${0/1}" (ex: "Afield1"). + * "C" notetype has the same name for field 1 as notetype B! + * second is a [Pair] representing the field data(the note has only two fields) + */ + private fun createFindReplaceTestNote( + notetypeName: String, + field0: String, + field1: String, + ): Note { + addStandardNoteType("A", arrayOf("Afield0", "Afield1"), "", "") + addStandardNoteType("B", arrayOf("Bfield0", "Bfield1"), "", "") + addStandardNoteType("C", arrayOf("Cfield0", "Bfield1"), "", "") + return addNoteUsingNoteTypeName(notetypeName, field0, field1) + } + + /** Simulates the user using the dialog **/ + private fun CardBrowser.createFindReplaceRequest( + field: String, + search: String, + replacement: String, + onlyInSelectedNotes: Boolean = true, + matchCase: Boolean = false, + regex: Boolean = false, + ) { + supportFragmentManager.setFragmentResult( + REQUEST_FIND_AND_REPLACE, + bundleOf( + ARG_SEARCH to search, + ARG_REPLACEMENT to replacement, + ARG_FIELD to field, + ARG_ONLY_SELECTED_NOTES to onlyInSelectedNotes, + // "Ignore case" checkbox text => when it's checked we pass false to the backend + ARG_MATCH_CASE to matchCase, + ARG_REGEX to regex, + ), + ) + } + + private fun CardBrowser.openFindAndReplace() { + showFindAndReplaceDialog() + advanceRobolectricUiLooper() + } + + private fun CardBrowser.closeFindAndReplace() { + val findReplaceDialog = supportFragmentManager.findFragmentByTag(FindAndReplaceDialogFragment.TAG) as? DialogFragment + assertNotNull(findReplaceDialog, "Find and replace dialog is not available") + findReplaceDialog.dismissNow() + advanceRobolectricUiLooper() + } + + private fun CardBrowser.getFindReplaceFieldsAdapter(): SpinnerAdapter { + val findReplaceDialog = supportFragmentManager.findFragmentByTag(FindAndReplaceDialogFragment.TAG) as? DialogFragment + assertNotNull(findReplaceDialog, "Find and replace dialog is not available") + val adapter = findReplaceDialog.dialog?.findViewById(R.id.fields_selector)?.adapter + assertNotNull(adapter, "Find and replace fields adapter is not available") + return adapter + } + fun NotetypeJson.addNote( field: String, vararg fields: String, From 25d851153e662f4842895bb331bbf1bccc0d79ee Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Fri, 7 Mar 2025 18:24:19 +0000 Subject: [PATCH 097/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-am/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-az/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-be/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-bg/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-bn/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ca/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ckb/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-da/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-de/01-core.xml | 4 ++-- AnkiDroid/src/main/res/values-de/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-el/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-eo/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-et/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-eu/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-fil/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-fy/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ga/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-gl/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-got/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-gu/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-hi/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-hr/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-hu/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ind/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-is/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-it/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-jv/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-kk/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-km/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-kn/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ku/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ky/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-lt/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-lv/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-mk/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ml/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-mn/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-mr/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ms/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-my/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-nl/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-nn/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-no/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-or/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-pa/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-pl/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ro/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sat/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sc/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sk/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sl/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sq/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sr/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ss/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sv/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-sw/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ta/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-te/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-tg/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-tgl/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-th/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ti/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-tn/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-tr/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ts/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-tt/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ur/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-uz/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-ve/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-wo/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-xh/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-yue/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-zh-rTW/07-cardbrowser.xml | 1 + AnkiDroid/src/main/res/values-zu/07-cardbrowser.xml | 1 + 95 files changed, 96 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-af/07-cardbrowser.xml index 0e1ec52a3596..175aa8fe3af3 100644 --- a/AnkiDroid/src/main/res/values-af/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-af/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-am/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-am/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-am/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-am/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml index 6b2d7be0ec1e..71275cffe1b0 100644 --- a/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml @@ -142,4 +142,5 @@ متوفر إضافة عمود استخراج عمود + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-az/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-az/07-cardbrowser.xml index 58d4cba877dc..47a36a42b064 100644 --- a/AnkiDroid/src/main/res/values-az/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-az/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml index b4d3c0d00461..b31cfee48f48 100644 --- a/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-be/07-cardbrowser.xml @@ -130,4 +130,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-bg/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-bg/07-cardbrowser.xml index 385effab4631..5fc26972358b 100644 --- a/AnkiDroid/src/main/res/values-bg/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-bg/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-bn/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-bn/07-cardbrowser.xml index 5570232feae5..be218f8386db 100644 --- a/AnkiDroid/src/main/res/values-bn/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-bn/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ca/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ca/07-cardbrowser.xml index 5afc08aa1d27..9f93264eb278 100644 --- a/AnkiDroid/src/main/res/values-ca/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ca/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ckb/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ckb/07-cardbrowser.xml index 7a28d3dd8cf7..6ea8a00c40ce 100644 --- a/AnkiDroid/src/main/res/values-ckb/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ckb/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml index 6d2231ed8b54..869cd289dd17 100644 --- a/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-cs/07-cardbrowser.xml @@ -130,4 +130,5 @@ Dostupné Přidat sloupec Odebrat sloupec + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-da/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-da/07-cardbrowser.xml index 0643e7bab403..4f3a8c03352f 100644 --- a/AnkiDroid/src/main/res/values-da/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-da/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-de/01-core.xml b/AnkiDroid/src/main/res/values-de/01-core.xml index 230e2cf226bd..3977f2a32a60 100644 --- a/AnkiDroid/src/main/res/values-de/01-core.xml +++ b/AnkiDroid/src/main/res/values-de/01-core.xml @@ -61,12 +61,12 @@ Noch ca. %d Minuten - %1$d Stunde(n) %2$d Minute(n) verbleibend + %1$d Stunde %2$d Minute(n) verbleibend %1$d Stunden %2$d verbleibend %1$d Tag %2$d Std. übrig - %1$d Tage %2$dStd. übrig + %1$d Tage %2$d Std. übrig Sammlung ist leer Fügen Sie Karten \nmit dem + -Symbol hinzu. diff --git a/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml index c46524175867..6a19ff082315 100644 --- a/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-de/07-cardbrowser.xml @@ -118,4 +118,5 @@ Verfügbar Spalte einbeziehen Spalte ausschließen + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-el/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-el/07-cardbrowser.xml index cfae71dc5e0b..0a6f5f6ce347 100644 --- a/AnkiDroid/src/main/res/values-el/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-el/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-eo/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-eo/07-cardbrowser.xml index 980035c6f7a4..8c24be37e45b 100644 --- a/AnkiDroid/src/main/res/values-eo/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-eo/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml index f71609d53ac8..67606f36f7cb 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/07-cardbrowser.xml @@ -118,4 +118,5 @@ Disponible Incluir columna Excluir columna + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml index 031dcbaa45ed..0bf54e366416 100644 --- a/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-es-rES/07-cardbrowser.xml @@ -118,4 +118,5 @@ Disponibles Incluir columna Excluir columna + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-et/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-et/07-cardbrowser.xml index 054cbd64b20f..f696cad3d62a 100644 --- a/AnkiDroid/src/main/res/values-et/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-et/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-eu/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-eu/07-cardbrowser.xml index 439a5246e610..efb2a066da3b 100644 --- a/AnkiDroid/src/main/res/values-eu/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-eu/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml index 32510184cbda..927b37594b2e 100644 --- a/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fa/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml index 1e8256ebc94f..ca1e5078ec50 100644 --- a/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fi/07-cardbrowser.xml @@ -118,4 +118,5 @@ Saatavilla Sisällytä sarake Jätä pois sarake + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-fil/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fil/07-cardbrowser.xml index f3aeb5e0157b..8f0f9bbae593 100644 --- a/AnkiDroid/src/main/res/values-fil/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fil/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml index 15da0c571576..49f35d81f498 100644 --- a/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fr/07-cardbrowser.xml @@ -118,4 +118,5 @@ Disponible Inclure la colonne Exclure la colonne + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-fy/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-fy/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-fy/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-fy/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ga/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ga/07-cardbrowser.xml index b803f97fa167..755de1da94e7 100644 --- a/AnkiDroid/src/main/res/values-ga/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ga/07-cardbrowser.xml @@ -136,4 +136,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-gl/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-gl/07-cardbrowser.xml index 8fbc8c543354..51fbc9e56231 100644 --- a/AnkiDroid/src/main/res/values-gl/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-gl/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-got/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-got/07-cardbrowser.xml index 7a467c4da1eb..2c97a6a3e57a 100644 --- a/AnkiDroid/src/main/res/values-got/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-got/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-gu/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-gu/07-cardbrowser.xml index 8ca07e1b6787..ac8f33734445 100644 --- a/AnkiDroid/src/main/res/values-gu/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-gu/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml index 02c01603c318..d927ca2e3ed0 100644 --- a/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-heb/07-cardbrowser.xml @@ -130,4 +130,5 @@ זמין כלול עמודה אל תכלול עמודה + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-hi/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-hi/07-cardbrowser.xml index b248c17ab345..bf79f5a96d70 100644 --- a/AnkiDroid/src/main/res/values-hi/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-hi/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-hr/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-hr/07-cardbrowser.xml index 17aa07939ae0..95ffd1c252eb 100644 --- a/AnkiDroid/src/main/res/values-hr/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-hr/07-cardbrowser.xml @@ -124,4 +124,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-hu/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-hu/07-cardbrowser.xml index 8028e1506618..f29e0dd2d69b 100644 --- a/AnkiDroid/src/main/res/values-hu/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-hu/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml index 5d09a55aaad8..cea4904136ee 100644 --- a/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ind/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ind/07-cardbrowser.xml index a12ea0ab7e33..b5b53e18227a 100644 --- a/AnkiDroid/src/main/res/values-ind/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ind/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-is/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-is/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-is/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-is/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-it/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-it/07-cardbrowser.xml index 09651f11dcb5..a1c5fe81696e 100644 --- a/AnkiDroid/src/main/res/values-it/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-it/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml index 02c01603c318..d927ca2e3ed0 100644 --- a/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-iw/07-cardbrowser.xml @@ -130,4 +130,5 @@ זמין כלול עמודה אל תכלול עמודה + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml index 73d42eec1eb2..3656f6d32491 100644 --- a/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml @@ -112,4 +112,5 @@ 使用可能 この列をブラウザのリストで使用 この列をブラウザのリストから除外 + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-jv/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-jv/07-cardbrowser.xml index e0a98d9726dd..feb1a3823fda 100644 --- a/AnkiDroid/src/main/res/values-jv/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-jv/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml index 2a383759aff4..06ad865ce8ef 100644 --- a/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ka/07-cardbrowser.xml @@ -118,4 +118,5 @@ ხელმისაწვდომი სვეტის გამოყენება სვეტის არგამოყენება + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-kk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-kk/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-kk/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-kk/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml index e0f529787d4d..61822fa5a4b1 100644 --- a/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-km/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-kn/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-kn/07-cardbrowser.xml index f3ac428a0631..9491288fe32f 100644 --- a/AnkiDroid/src/main/res/values-kn/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-kn/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml index e04faa7188e1..fab61acca1b2 100644 --- a/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ko/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available 열 포함하기 열 제외하기 + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ku/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ku/07-cardbrowser.xml index 29e04daa1d3d..5023ec8231a3 100644 --- a/AnkiDroid/src/main/res/values-ku/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ku/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ky/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ky/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-ky/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ky/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-lt/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-lt/07-cardbrowser.xml index 91074b94eccc..b7b46fd1da8f 100644 --- a/AnkiDroid/src/main/res/values-lt/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-lt/07-cardbrowser.xml @@ -130,4 +130,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-lv/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-lv/07-cardbrowser.xml index 036c456ad21f..652a6575e9b1 100644 --- a/AnkiDroid/src/main/res/values-lv/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-lv/07-cardbrowser.xml @@ -124,4 +124,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-mk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-mk/07-cardbrowser.xml index 806a156930a9..92c716aa4eb4 100644 --- a/AnkiDroid/src/main/res/values-mk/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-mk/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ml/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ml/07-cardbrowser.xml index d9c0578aad8b..873a222031af 100644 --- a/AnkiDroid/src/main/res/values-ml/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ml/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-mn/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-mn/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-mn/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-mn/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-mr/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-mr/07-cardbrowser.xml index 1bb5da1fa763..944ff9d03106 100644 --- a/AnkiDroid/src/main/res/values-mr/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-mr/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ms/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ms/07-cardbrowser.xml index c671dfc1f050..91ef6f858f91 100644 --- a/AnkiDroid/src/main/res/values-ms/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ms/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-my/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-my/07-cardbrowser.xml index e0a98d9726dd..feb1a3823fda 100644 --- a/AnkiDroid/src/main/res/values-my/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-my/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-nl/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-nl/07-cardbrowser.xml index 86fd5ebc9f66..9a774daf0d8d 100644 --- a/AnkiDroid/src/main/res/values-nl/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-nl/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-nn/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-nn/07-cardbrowser.xml index c9c8ed30e127..1aabc904d4e4 100644 --- a/AnkiDroid/src/main/res/values-nn/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-nn/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-no/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-no/07-cardbrowser.xml index 259142c3a270..fc0a779ea430 100644 --- a/AnkiDroid/src/main/res/values-no/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-no/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml index 2776b0e4f55f..92d8a72038de 100644 --- a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml @@ -118,4 +118,5 @@ ଉପଲବ୍ଧ Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-pa/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-pa/07-cardbrowser.xml index afff78205a34..8cdba0ba75a6 100644 --- a/AnkiDroid/src/main/res/values-pa/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-pa/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-pl/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-pl/07-cardbrowser.xml index 9214004f7b94..934c1dda5d52 100644 --- a/AnkiDroid/src/main/res/values-pl/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-pl/07-cardbrowser.xml @@ -130,4 +130,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml index 50288a2477f1..231558b22a5d 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/07-cardbrowser.xml @@ -118,4 +118,5 @@ Disponível Incluir coluna Excluir coluna + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml index dd43e4465190..6dc423712a20 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml @@ -118,4 +118,5 @@ Disponíveis Incluir coluna Excluir coluna + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ro/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ro/07-cardbrowser.xml index 17aa07939ae0..95ffd1c252eb 100644 --- a/AnkiDroid/src/main/res/values-ro/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ro/07-cardbrowser.xml @@ -124,4 +124,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml index 0d7cb7df5d7b..3773be132cf4 100644 --- a/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ru/07-cardbrowser.xml @@ -130,4 +130,5 @@ Доступные Включить столбец Исключить столбец + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sat/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sat/07-cardbrowser.xml index 89f639b7f3fc..b910e05795af 100644 --- a/AnkiDroid/src/main/res/values-sat/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sat/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sc/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sc/07-cardbrowser.xml index 2481e410eca9..fda2744935a5 100644 --- a/AnkiDroid/src/main/res/values-sc/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sc/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sk/07-cardbrowser.xml index 2704441cc441..282e8bdf5904 100644 --- a/AnkiDroid/src/main/res/values-sk/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sk/07-cardbrowser.xml @@ -130,4 +130,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sl/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sl/07-cardbrowser.xml index a58ca54eb58b..caad069db7ba 100644 --- a/AnkiDroid/src/main/res/values-sl/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sl/07-cardbrowser.xml @@ -130,4 +130,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sq/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sq/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-sq/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sq/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sr/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sr/07-cardbrowser.xml index 66a5d945e811..1f4c6969b268 100644 --- a/AnkiDroid/src/main/res/values-sr/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sr/07-cardbrowser.xml @@ -124,4 +124,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ss/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ss/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-ss/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ss/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sv/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sv/07-cardbrowser.xml index 3f01a40f75a3..b1836f892830 100644 --- a/AnkiDroid/src/main/res/values-sv/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sv/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-sw/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-sw/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-sw/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-sw/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ta/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ta/07-cardbrowser.xml index d092f0c78cc5..6d4244b21831 100644 --- a/AnkiDroid/src/main/res/values-ta/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ta/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-te/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-te/07-cardbrowser.xml index 3e75c2d7ffd5..b5c767f952f1 100644 --- a/AnkiDroid/src/main/res/values-te/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-te/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-tg/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-tg/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-tg/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-tg/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-tgl/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-tgl/07-cardbrowser.xml index a1f2aaed8f8c..e2ccbcc4c516 100644 --- a/AnkiDroid/src/main/res/values-tgl/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-tgl/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-th/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-th/07-cardbrowser.xml index e0a98d9726dd..feb1a3823fda 100644 --- a/AnkiDroid/src/main/res/values-th/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-th/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ti/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ti/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-ti/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ti/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-tn/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-tn/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-tn/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-tn/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-tr/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-tr/07-cardbrowser.xml index 394532761897..01b52d6cbdff 100644 --- a/AnkiDroid/src/main/res/values-tr/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-tr/07-cardbrowser.xml @@ -118,4 +118,5 @@ Kullanılabilir Sütunu ekle Sütunu çıkar + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ts/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ts/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-ts/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ts/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-tt/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-tt/07-cardbrowser.xml index 5d15da38c12b..836a53eb7ab1 100644 --- a/AnkiDroid/src/main/res/values-tt/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-tt/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml index 8110813fcfcf..776a550d2471 100644 --- a/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ug/07-cardbrowser.xml @@ -118,4 +118,5 @@ ئىشلىتىلىشچان رەت ئىچىدە رەت سىرتىدا + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml index 39a129bdfb23..ad94a230f350 100644 --- a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml @@ -130,4 +130,5 @@ Доступні Включити стовпець Виключити стовпець + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ur/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ur/07-cardbrowser.xml index 80978a88c240..4a0d3a210ce3 100644 --- a/AnkiDroid/src/main/res/values-ur/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ur/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-uz/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-uz/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-uz/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-uz/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ve/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ve/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-ve/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ve/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml index b0ae9c2bad71..c502940cbd00 100644 --- a/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-wo/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-wo/07-cardbrowser.xml index e0a98d9726dd..feb1a3823fda 100644 --- a/AnkiDroid/src/main/res/values-wo/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-wo/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-xh/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-xh/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-xh/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-xh/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-yue/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-yue/07-cardbrowser.xml index e0a98d9726dd..feb1a3823fda 100644 --- a/AnkiDroid/src/main/res/values-yue/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-yue/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml index 509a3ac49485..7df1b69bf56d 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml @@ -112,4 +112,5 @@ 可用 包含列 排除列 + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-zh-rTW/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-zh-rTW/07-cardbrowser.xml index 188d5800b401..f29d97fd71d4 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/07-cardbrowser.xml @@ -112,4 +112,5 @@ Available Include column Exclude column + Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-zu/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-zu/07-cardbrowser.xml index 4da9bdcd5890..7311eac2c87c 100644 --- a/AnkiDroid/src/main/res/values-zu/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-zu/07-cardbrowser.xml @@ -118,4 +118,5 @@ Available Include column Exclude column + Retrieving fields names… From 14f9a2de2d3d93fd2ed515643fb834de4d80be88 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Sat, 8 Mar 2025 22:07:35 +0100 Subject: [PATCH 098/200] NF: set "play" variant as default This will ensure that new contributors can run androidTest on emulators without having to change the variant. Syntax found on https://stackoverflow.com/posts/60197203/revisions Tested by using the "Re-import with defaults" button in the variant setting. --- AnkiDroid/build.gradle | 1 + 1 file changed, 1 insertion(+) diff --git a/AnkiDroid/build.gradle b/AnkiDroid/build.gradle index 058be63698c3..cf1d5a1e2928 100644 --- a/AnkiDroid/build.gradle +++ b/AnkiDroid/build.gradle @@ -179,6 +179,7 @@ android { flavorDimensions += "appStore" productFlavors { create('play') { + getIsDefault().set(true) dimension "appStore" } create('amazon') { From 0de2eb08b2ff5acfc597564bde65edc2c7f58864 Mon Sep 17 00:00:00 2001 From: Saptak Manna Date: Sun, 26 Jan 2025 11:34:13 +0530 Subject: [PATCH 099/200] Update layout constraints for gesture display images --- .../src/main/res/layout/gesture_display.xml | 51 ++++++++++++------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/AnkiDroid/src/main/res/layout/gesture_display.xml b/AnkiDroid/src/main/res/layout/gesture_display.xml index 6a30a8c2e719..3c755642175c 100644 --- a/AnkiDroid/src/main/res/layout/gesture_display.xml +++ b/AnkiDroid/src/main/res/layout/gesture_display.xml @@ -25,15 +25,18 @@ @@ -41,17 +44,22 @@ + app:layout_constraintHorizontal_bias="0.953" + app:layout_constraintVertical_bias="0.047" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> Date: Sat, 8 Mar 2025 20:01:57 +0530 Subject: [PATCH 100/200] Added Background Remove Option Add explicit background removal option for clarity This commit addresses the issue of not having a clearly visible option to remove the background. Without this, users may be confused about how to remove the background image once set. By explicitly adding a background removal option, the user experience is improved, making the feature more intuitive and accessible. --- .../com/ichi2/anki/analytics/UsageAnalytics.kt | 1 + .../preferences/AppearanceSettingsFragment.kt | 15 +++++++++++++++ AnkiDroid/src/main/res/values/02-strings.xml | 5 +++-- AnkiDroid/src/main/res/values/preferences.xml | 1 + .../src/main/res/xml/preferences_appearance.xml | 4 ++++ 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/analytics/UsageAnalytics.kt b/AnkiDroid/src/main/java/com/ichi2/anki/analytics/UsageAnalytics.kt index 8f9908a9e9d1..f5631a88379a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/analytics/UsageAnalytics.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/analytics/UsageAnalytics.kt @@ -502,6 +502,7 @@ object UsageAnalytics { R.string.day_theme_key, // Day theme R.string.night_theme_key, // Night theme R.string.pref_deck_picker_background_key, // Background image + R.string.pref_remove_wallpaper_key, // Remove wallpaper R.string.fullscreen_mode_preference, // Fullscreen mode R.string.center_vertically_preference, // Center align R.string.show_estimates_preference, // Show button time diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/AppearanceSettingsFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/AppearanceSettingsFragment.kt index 2c6e505f54f9..0bcc005a9279 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/AppearanceSettingsFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/AppearanceSettingsFragment.kt @@ -45,6 +45,7 @@ import timber.log.Timber class AppearanceSettingsFragment : SettingsFragment() { private var backgroundImage: Preference? = null + private var removeBackgroundPref: Preference? = null override val preferenceResource: Int get() = R.xml.preferences_appearance override val analyticsScreenNameConstant: String @@ -53,6 +54,7 @@ class AppearanceSettingsFragment : SettingsFragment() { override fun initSubscreen() { // Configure background backgroundImage = requirePreference("deckPickerBackground") + removeBackgroundPref = requirePreference("removeWallPaper") backgroundImage!!.onPreferenceClickListener = Preference.OnPreferenceClickListener { try { @@ -63,6 +65,13 @@ class AppearanceSettingsFragment : SettingsFragment() { } true } + removeBackgroundPref?.setOnPreferenceClickListener { + showRemoveBackgroundImageDialog() + true + } + + // Initially update visibility based on whether a background exists + updateRemoveBackgroundVisibility() val appThemePref = requirePreference(R.string.app_theme_key) val dayThemePref = requirePreference(R.string.day_theme_key) @@ -150,12 +159,17 @@ class AppearanceSettingsFragment : SettingsFragment() { } } + private fun updateRemoveBackgroundVisibility() { + removeBackgroundPref?.isVisible = BackgroundImage.shouldBeShown(requireContext()) + } + private fun showRemoveBackgroundImageDialog() { AlertDialog.Builder(requireContext()).show { title(R.string.remove_background_image) positiveButton(R.string.dialog_remove) { if (BackgroundImage.remove(requireContext())) { showSnackbar(R.string.background_image_removed) + updateRemoveBackgroundVisibility() } else { showSnackbar(R.string.error_deleting_image) } @@ -189,6 +203,7 @@ class AppearanceSettingsFragment : SettingsFragment() { } is FileSizeResult.OK -> { BackgroundImage.import(this, selectedImage) + updateRemoveBackgroundVisibility() } } } catch (e: OutOfMemoryError) { diff --git a/AnkiDroid/src/main/res/values/02-strings.xml b/AnkiDroid/src/main/res/values/02-strings.xml index be0b47418a9e..569449625678 100644 --- a/AnkiDroid/src/main/res/values/02-strings.xml +++ b/AnkiDroid/src/main/res/values/02-strings.xml @@ -176,6 +176,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -259,7 +260,6 @@ %s%% - Download deck Try Again Cancel download @@ -274,7 +274,7 @@ Download aborted, the external storage is not available Home - Card buried. @@ -416,3 +416,4 @@ opening the system text to speech settings fails"> Learn more about how to restore access here %s or go to settings to update collection folder. + diff --git a/AnkiDroid/src/main/res/values/preferences.xml b/AnkiDroid/src/main/res/values/preferences.xml index ce5617cc213a..b1a14583377b 100644 --- a/AnkiDroid/src/main/res/values/preferences.xml +++ b/AnkiDroid/src/main/res/values/preferences.xml @@ -34,6 +34,7 @@ dayTheme nightTheme deckPickerBackground + removeWallPaper custom_buttons_link fullscreenMode centerVertically diff --git a/AnkiDroid/src/main/res/xml/preferences_appearance.xml b/AnkiDroid/src/main/res/xml/preferences_appearance.xml index 43dd47b02f7f..164a58f630a0 100644 --- a/AnkiDroid/src/main/res/xml/preferences_appearance.xml +++ b/AnkiDroid/src/main/res/xml/preferences_appearance.xml @@ -64,6 +64,10 @@ android:shouldDisableView="true" android:icon="@drawable/wallpaper_icon" android:title="@string/choose_an_image" /> + Date: Mon, 10 Mar 2025 05:56:57 +0000 Subject: [PATCH 101/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-am/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ar/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-az/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-be/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-bg/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-bn/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ca/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ckb/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-cs/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-da/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-de/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-el/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-eo/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-es-rAR/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-es-rES/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-et/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-eu/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-fa/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-fi/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-fil/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-fr/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-fy/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ga/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-gl/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-got/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-gu/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-heb/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-hi/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-hr/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-hu/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-hy/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ind/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-is/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-it/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-iw/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ja/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-jv/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ka/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-kk/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-km/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-kn/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ko/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ku/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ky/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-lt/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-lv/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-mk/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ml/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-mn/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-mr/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ms/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-my/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-nl/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-nn/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-no/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-or/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-pa/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-pl/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ro/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ru/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sat/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sc/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sk/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sl/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sq/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sr/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ss/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sv/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-sw/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ta/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-te/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-tg/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-tgl/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-th/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ti/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-tn/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-tr/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ts/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-tt/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ug/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-uk/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ur/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-uz/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-ve/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-vi/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-wo/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-xh/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-yue/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml | 2 +- AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml | 3 ++- AnkiDroid/src/main/res/values-zu/02-strings.xml | 3 ++- 95 files changed, 189 insertions(+), 95 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml index 00b1ee0167b9..c0256726a687 100644 --- a/AnkiDroid/src/main/res/values-af/02-strings.xml +++ b/AnkiDroid/src/main/res/values-af/02-strings.xml @@ -187,6 +187,7 @@ Agtergrond Kies beeld + Remove background Verwyder agtergrond? Herstel Standaard @@ -260,7 +261,7 @@ Soek met paknaam Aflaai gestaak, die eksterne berging is nie beskikbaar nie Tuis - Kaart begrawe. diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-am/02-strings.xml +++ b/AnkiDroid/src/main/res/values-am/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index 9afef1f578c5..739249209c82 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -203,6 +203,7 @@ خلفية اختيار صورة + Remove background هل تريد إزالة الخلفية؟ استعادة الافتراضي @@ -276,7 +277,7 @@ ابحث باستخدام اسم الرزمة تم إلغاء التنزيل لأن التخزين الخارجي غير متوفر الصفحة الرئيسية - تم دفن البطاقة diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml index 8e2ca32d2de3..1ca5328f2113 100644 --- a/AnkiDroid/src/main/res/values-az/02-strings.xml +++ b/AnkiDroid/src/main/res/values-az/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index 8a8441957501..2b9011475cee 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -195,6 +195,7 @@ Фон Выберыце відарыс + Remove background Выдаліць фон? Вярнуцца да прадвызначаных @@ -268,7 +269,7 @@ Пошук па назве калоды Спампоўванне абарвана, бо знешняе сховішча недаступна. Галоўная - Адкладзеная картка. diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml index c98e752b53f4..4a7869e7e494 100644 --- a/AnkiDroid/src/main/res/values-bg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml @@ -187,6 +187,7 @@ Фон Изберете изображение + Remove background Remove background? Възстанови по подразбиране @@ -260,7 +261,7 @@ Търсене посредством име на тесте Download aborted, the external storage is not available Начало - Card buried. diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index b5ade427404c..e24dd949e705 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -187,6 +187,7 @@ পটভূমি Select image + Remove background পটভূমি সরান? ডিফল্ট পুনরুদ্ধার করুন @@ -260,7 +261,7 @@ ডেকের নাম ব্যবহার করে অনুসন্ধান করুন ডাউনলোড বাতিল করা হয়েছে, কোনো বাহ্যিক সঞ্চয়স্থান উপলব্ধ নেই বাড়ি - কার্ড কবর দেওয়া হয় diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index 55f3b236ec60..4a9f4b5dec96 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -187,6 +187,7 @@ Fons Selecciona una imatge + Remove background Elimina el fons Restaura els valors per defecte @@ -260,7 +261,7 @@ Cercar usant el nom del paquet Download aborted, the external storage is not available Inici - S\'ha enterrat la targeta. diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index bf0167b55ac7..1697472cfbe9 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -187,6 +187,7 @@ Background وێنەیەک هەڵبژێرە + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index 63ce62178b7e..aa188a26dfb7 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -195,6 +195,7 @@ Pozadí Vybrat obrázek + Remove background Odebrat pozadí? Obnovit výchozí @@ -268,7 +269,7 @@ Hledat pomocí názvu balíčku Stahování přerušeno, externí úložiště není k dispozici Domů - Karta přeskočena. diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml index 9098e4dd1f79..c20867ea72db 100644 --- a/AnkiDroid/src/main/res/values-da/02-strings.xml +++ b/AnkiDroid/src/main/res/values-da/02-strings.xml @@ -187,6 +187,7 @@ Baggrund Vælg billede + Remove background Fjern baggrund? Gendan standardindstillinger @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index e1378e11d3c7..8e1bff6b5687 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -187,6 +187,7 @@ Hintergrund Bild auswählen + Remove background Hintergrund entfernen? Standard wiederherstellen @@ -260,7 +261,7 @@ Über Stapelnamen suchen Download abgebrochen, externer Speicher nicht verfügbar Start - Karte aufgeschoben. diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index 8b7ff2dfab9d..9be7ebc38b59 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -187,6 +187,7 @@ Φόντο Επιλέξτε εικόνα + Remove background Αφαίρεση ταπετσαρίας; Επαναφορά προεπιλογής @@ -260,7 +261,7 @@ Αναζήτηση με το όνομα τράπουλας Η λήψη ματαιώθηκε, ο εξωτερικός χώρος αποθήκευσης δεν είναι διαθέσιμος Αρχική - Η κάρτα θάφτηκε. diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index 36320a96c307..c557791e45b7 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -187,6 +187,7 @@ Fono Elekti bildon + Remove background Ĉu forigi fonon? Restarigi implicitajn @@ -260,7 +261,7 @@ Serĉi laŭ nomo de kartaro Elŝutado ĉesigita, la ekstera konservejo estas neailrebla Hejmo - Karto kaŝita por tago. 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 13d992bcd7fd..2ddc4c69c500 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -187,6 +187,7 @@ Fondo Elige una imagen + Remove background ¿Quitar fondo? Restablecer Predefinidos @@ -260,7 +261,7 @@ Buscar usando nombre de mazo Descarga abortada, el almacenamiento externo no está disponible Inicio - Tarjeta enterrada 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 aacde7fae3f3..623f1600e52a 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -187,6 +187,7 @@ Fondo Elige una imagen + Remove background ¿Quitar fondo? Restablecer Predefinidos @@ -260,7 +261,7 @@ Buscar usando nombre de mazo Descarga abortada, el almacenamiento externo no está disponible Inicio - Tarjeta enterrada diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml index 5015d5ce678d..8f127cb738ee 100644 --- a/AnkiDroid/src/main/res/values-et/02-strings.xml +++ b/AnkiDroid/src/main/res/values-et/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml index 9161b003e195..bf2a910ffb0e 100644 --- a/AnkiDroid/src/main/res/values-eu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index a8a9f367f236..f02271124420 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -187,6 +187,7 @@ پس زمینه انتخاب تصویر + Remove background حذف پس‌زمینه؟ بازنشانی پیش‌فرض @@ -260,7 +261,7 @@ جست و جو با استفاده از اسم دسته بارگیری توقف شد، حافظه خارجی در دسترس نیست خانه - کارت دفن شد. diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index 5eccc95f5100..8e381bcf9063 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -187,6 +187,7 @@ Tausta Valitse kuva + Remove background Poistetaanko tausta? Palauta oletusarvot @@ -260,7 +261,7 @@ Etsi käyttäen pakan nimeä Lataus keskeytetty, ulkoinen tallennustila ei ole käytettävissä Koti - Kortti haudattu. diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index 0055eff188af..7d4df06dbb1a 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -187,6 +187,7 @@ Likuran Pumili ng Litrato + Remove background Tanggalin ang background? Ibalik sa Default @@ -260,7 +261,7 @@ Hanapin gamit ang pangalan ng deck Naudlot ang pag-download, wala nang natirang lugar sa external storage Home - Naibaon ang card. diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index cd8099d40e64..230bdfe392e2 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -187,6 +187,7 @@ Arrière-plan Sélectionner une image + Remove background Retirer l\'arrière-plan ? Rétablir par défaut @@ -260,7 +261,7 @@ Chercher en utilisant le nom du paquet Téléchargement interrompu, le stockage externe n\'est pas disponible Accueil - Carte enterrée. diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml index 0312c01494d1..638246ca0974 100644 --- a/AnkiDroid/src/main/res/values-fy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml index 5865ca902e25..a78b12b43729 100644 --- a/AnkiDroid/src/main/res/values-ga/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml @@ -199,6 +199,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -272,7 +273,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml index 4deb87a46bed..e095edc4d5d3 100644 --- a/AnkiDroid/src/main/res/values-gl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml index 57718e603778..223ef97094d7 100644 --- a/AnkiDroid/src/main/res/values-got/02-strings.xml +++ b/AnkiDroid/src/main/res/values-got/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml index f53899ef298e..7502ca9bedd9 100644 --- a/AnkiDroid/src/main/res/values-gu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml @@ -187,6 +187,7 @@ પૃષ્ઠભૂમિ છબી પસંદ કરો + Remove background પૃષ્ઠભૂમિ દૂર કરીએ? મૂળભૂત પુનઃસ્થાપિત @@ -260,7 +261,7 @@ ડેક નામનો ઉપયોગ કરીને શોધો ડાઉનલોડ રદ કર્યું, બાહ્ય સ્ટોરેજ ઉપલબ્ધ નથી ઘર - કાર્ડ દફનાવવામાં આવ્યું હતું. diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index 051ffddf45c0..60402e68a43f 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -195,6 +195,7 @@ רקע נא לבחור תמונה + Remove background להסיר רקע? שחזור בררת המחדל @@ -268,7 +269,7 @@ חיפוש באמצעות שם החפיסה ההורדה בוטלה, האחסון החיצוני אינו זמין בית - הקלף נקבר diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index e5d2471cecf6..e602bd4b635d 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -187,6 +187,7 @@ पृष्ठभूमि चित्र चुनें + Remove background पृष्ठभूमि निकालें? पहले जैसा कर देना @@ -260,7 +261,7 @@ डेक नाम का उपयोग करके खोजें डाउनलोड निरस्त हो गया, बाह्य स्टोरेज उपलब्ध नहीं है गृह - कार्ड दफन। diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index 99db25db2e87..542c46a72304 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -191,6 +191,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -264,7 +265,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index ac0a9f02cd5b..8aa0ec5b2634 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -187,6 +187,7 @@ Háttér Válasszon egy képet + Remove background Remove background? Alaphelyzetbe állítás @@ -260,7 +261,7 @@ Keresés a paklik nevében A letöltés megszakadt, a külső tároló nem elérhető Kezdőlap - Kártya elhalasztva. diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml index 31c3bba3fc37..8291704b6c35 100644 --- a/AnkiDroid/src/main/res/values-hy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml index 99ec0d473352..8b8d606f3a48 100644 --- a/AnkiDroid/src/main/res/values-ind/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml @@ -183,6 +183,7 @@ Latar belakang Pilih gambar + Remove background Hapus latar belakang? Kembalikan ke baku @@ -256,7 +257,7 @@ Cari berdasarkan nama dek Unduhan dibatalkan, penyimpanan eksternal tidak tersedia Beranda - Kartu disimpan. diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-is/02-strings.xml +++ b/AnkiDroid/src/main/res/values-is/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml index 338b0f2d46e2..845d91db62f4 100644 --- a/AnkiDroid/src/main/res/values-it/02-strings.xml +++ b/AnkiDroid/src/main/res/values-it/02-strings.xml @@ -187,6 +187,7 @@ Sfondo Scegli un\'immagine + Remove background Rimuovere lo sfondo? Ripristina predefiniti @@ -260,7 +261,7 @@ Cerca usando il nome del mazzo Download interrotto, l\'archiviazione esterna non è disponibile Pagina principale - Carta seppellita. diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 051ffddf45c0..60402e68a43f 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -195,6 +195,7 @@ רקע נא לבחור תמונה + Remove background להסיר רקע? שחזור בררת המחדל @@ -268,7 +269,7 @@ חיפוש באמצעות שם החפיסה ההורדה בוטלה, האחסון החיצוני אינו זמין בית - הקלף נקבר diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index 48fbc26cdeb5..d4049f07ac97 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -183,6 +183,7 @@ デッキリスト画面の背景 画像を選択 + Remove background 背景画像を削除しますか? 既定値に戻す @@ -256,7 +257,7 @@ デッキ名で検索 ダウンロードが中止されました。この外部ストレージは利用できません。 ホーム - カードを今日は非表示にしました。 diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml index 9bfa12c2c1b2..7a28cb737f55 100644 --- a/AnkiDroid/src/main/res/values-jv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml @@ -183,6 +183,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -256,7 +257,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 9cc5faccc996..10a15e215425 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -187,6 +187,7 @@ ფონი სურათის არჩევა + Remove background გსურთ ფონის წაშლა? ნაგულისხმევის აღდგენა @@ -260,7 +261,7 @@ დასტის სახელით ძებნა ჩამოტვირთვა გაუქმდა, გარე მეხსიერება ხელმიუწვდომელია მთავარი - ბარათი დამალულია. diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-kk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 1738d3a138bf..3f5fb696fcd7 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -183,6 +183,7 @@ ផ្ទៃខាងក្រោយ ជ្រើសរើសរូបភាព + Remove background ដកផ្ទៃខាងក្រោយចេញ? ស្តារលំនាំដើមឡើងវិញ @@ -256,7 +257,7 @@ ស្វែងរកដោយប្រើឈ្មោះជាន់ Download aborted, the external storage is not available Home - កាតបានកប់។ diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index 6577e2da991b..b3f59d932f12 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -187,6 +187,7 @@ ಹಿನ್ನೆಲೆ ಚಿತ್ರವನ್ನು ಆರಿಸಿ + Remove background ಹಿನ್ನೆಲೆ ತೆಗೆದುಹಾಕುವುದೇ? ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿ @@ -260,7 +261,7 @@ ಡೆಕ್ ಹೆಸರನ್ನು ಬಳಸಿ ಹುಡುಕಿ ಡೌನ್‌ಲೋಡ್ ನಿಲ್ಲಿಸಲಾಗಿದೆ, ಯಾವುದೇ ಬಾಹ್ಯ ಸಂಗ್ರಹಣೆ ಲಭ್ಯವಿಲ್ಲ ಮನೆ - ಕಾರ್ಡ್ ಅನ್ನು ಸಮಾಧಿ ಮಾಡಲಾಗಿದೆ. diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index 016082d9c455..9e0873aaceef 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -186,6 +186,7 @@ Context | Request Context [1] 배경 이미지 선택 + Remove background 배경을 제거하시겠습니까? 기본값 복원 @@ -259,7 +260,7 @@ Context | Request Context [1] 사용 중인 카드 덱 이름 찾기 다운로드가 중단되었습니다. 외부 저장 공간을 사용할 수 없습니다. - 카드 숨기기 완료. diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml index df4dd3539c6c..ec3e6b2832b2 100644 --- a/AnkiDroid/src/main/res/values-ku/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-ky/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml index b241c3c77c1f..709e0dedb02f 100644 --- a/AnkiDroid/src/main/res/values-lt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml @@ -195,6 +195,7 @@ Fonas Pasirinkite paveikslėlį + Remove background Remove background? Restore Default @@ -268,7 +269,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml index 29e69df70f23..37a4227a1d73 100644 --- a/AnkiDroid/src/main/res/values-lv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml @@ -191,6 +191,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -264,7 +265,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml index 27f7c017b935..f8da9bdc3c65 100644 --- a/AnkiDroid/src/main/res/values-mk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml @@ -188,6 +188,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -261,7 +262,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml index e090a556205b..050b87e2aaf4 100644 --- a/AnkiDroid/src/main/res/values-ml/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml @@ -187,6 +187,7 @@ Background ഒരു ചിത്രം തിരഞ്ഞെടുക്കുക + Remove background പശ്ചാത്തലം നീക്കം ചെയ്യണോ? നേരത്തെയുള്ളത് പുനസ്ഥാപിക്കുക @@ -260,7 +261,7 @@ ഡെക്കിൻ്റെ പേര് ഉപയോഗിച്ച് തിരയുക ഡൗൺലോഡ് നിർത്തലാക്കി, ബാഹ്യ സംഭരണം ലഭ്യമല്ല Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 78b869b6d850..414fae1beb6a 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Өгөгдмөл горим руу шилжих @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Картыг буллаа diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml index b7d1f4763c80..8ac1d17b537e 100644 --- a/AnkiDroid/src/main/res/values-mr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml @@ -187,6 +187,7 @@ पार्श्वभूमी प्रतिमा निवडा + Remove background पार्श्वभूमी काढायची? डीफॉल्ट पुनर्संचयित करा @@ -260,7 +261,7 @@ डेकचे नाव वापरून शोधा डाउनलोड रद्द केले, बाह्य संचयन उपलब्ध नाही मुख्यपृष्ठ - कार्ड पुरले. diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml index a358c9b10b92..f2bf28195ca3 100644 --- a/AnkiDroid/src/main/res/values-ms/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml @@ -183,6 +183,7 @@ Latar belakang Pilih gambar + Remove background Remove background? Pulih Lalai @@ -256,7 +257,7 @@ Cari menggunakan nama dek Muat turun batal, tiada storan luaran tersedia Laman Utama - Kad disorok. diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml index 373f381178cc..eca3a48f69ed 100644 --- a/AnkiDroid/src/main/res/values-my/02-strings.xml +++ b/AnkiDroid/src/main/res/values-my/02-strings.xml @@ -183,6 +183,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -256,7 +257,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 8dbc0feb4669..977135f1cd9f 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -187,6 +187,7 @@ Achtergrond Kies een afbeelding + Remove background Achtergrond verwijderen? Herstel Standaardinstellingen @@ -260,7 +261,7 @@ Zoek met setnaam Download afgebroken, externe opslag is niet beschikbaar Startpagina - Kaart begraven. diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml index 6899661661cb..4c072f678209 100644 --- a/AnkiDroid/src/main/res/values-nn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml @@ -187,6 +187,7 @@ Bakgrunn Velg bilde + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Søk ved hjelp av kortstokknavn Download aborted, the external storage is not available Hjem - Kort skjult. diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml index 87866bad8192..0d34226281e2 100644 --- a/AnkiDroid/src/main/res/values-no/02-strings.xml +++ b/AnkiDroid/src/main/res/values-no/02-strings.xml @@ -187,6 +187,7 @@ Bakgrunn Velg bilde + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Søk ved hjelp av kortstokknavn Download aborted, the external storage is not available Hjem - Kort skjult. diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index 0d2efc0123b8..c904ace04630 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -187,6 +187,7 @@ ପୃଷ୍ଠପଟ ଛବି ବାଛନ୍ତୁ + Remove background ପୃଷ୍ଠପଟ ଅପସାରଣ କରିବେ ତ? ଡିଫଲ୍ଟ ପୁନଃସ୍ଥାପନ କରନ୍ତୁ @@ -260,7 +261,7 @@ ତାସଖଣ୍ଡ ନାମ ବ୍ୟବହାର କରି ସନ୍ଧାନ କରନ୍ତୁ ଡାଉନଲୋଡ୍ ପରିତ୍ୟାଗ ହୋଇଛି, ବହିଃ-ଷ୍ଟୋରେଜ୍ ଉପଲବ୍ଧ ନାହିଁ ଗୃହ - ପତ୍ର ସ୍ଥଗିତ କରାଗଲା। diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml index f0cfe3310f51..2e85c9fa5b96 100644 --- a/AnkiDroid/src/main/res/values-pa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml @@ -187,6 +187,7 @@ ਪਿਛੋਕੜ ਚਿੱਤਰ ਨੂੰ ਚੁਣੋ + Remove background ਕੀ ਪਿਛੋਕੜ ਨੂੰ ਹਟਾਉਣਾ ਹੈ? ਡਿਫੌਲਟ ਰੀਸਟੋਰ ਕਰੋ @@ -260,7 +261,7 @@ ਡੇਕ ਨਾਮ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਖੋਜ ਕਰੋ ਡਾਊਨਲੋਡ ਅਧੂਰਾ ਛੱਡਿਆ ਗਿਆ, ਕੋਈ ਬਾਹਰੀ ਸਟੋਰੇਜ ਉਪਲਬਧ ਨਹੀਂ ਹੈ ਘਰ - ਕਾਰਡ ਦੱਬਿਆ ਗਿਆ। diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index e8710c414d0b..69c9d4ee1137 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -195,6 +195,7 @@ Tło Wybierz obraz + Remove background Usunąć tło? Przywróć domyślne @@ -268,7 +269,7 @@ Szukaj używając nazwy talii Pobieranie przerwane, pamięć zewnętrzna nie jest dostępna Strona główna - Karta zakopana. 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 2fe903396904..a600bd80d4a3 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -187,6 +187,7 @@ Plano de fundo Escolha uma imagem + Remove background Remover fundo? Restaurar Padrões @@ -260,7 +261,7 @@ Pesquisar usando o nome do baralho Transferência abortada, o armazenamento externo não está disponível Início - Cartão enterrado. 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 4e31814bd427..9c5f2117fd48 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -187,6 +187,7 @@ Fundo Selecionar imagem + Remove background Remover imagem de fundo? Restaurar predefinições @@ -260,7 +261,7 @@ Pesquisar utilizando o nome do baralho Transferência cancelada, o armazenamento externo não está disponível. Página Inicial - Ficha adiada diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml index 0f13b0dcafc3..d70c5d36084b 100644 --- a/AnkiDroid/src/main/res/values-ro/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml @@ -191,6 +191,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -264,7 +265,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 35716683ead8..3a9eed698415 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -195,6 +195,7 @@ Фон Выбрать изображение + Remove background Удалить фон? Сбросить настройки @@ -268,7 +269,7 @@ Искать по названию колоды Загрузка прервана, внешняя память недоступна Главная - Карточка отложена. diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 17d3af8b0a64..692c223ad885 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -187,6 +187,7 @@ ᱵᱮᱠᱜᱟᱨᱩᱸᱰ ᱪᱤᱛᱟᱨ ᱵᱟᱪᱷᱟᱣ ᱢᱮ + Remove background ᱚᱛ ᱦᱟᱥᱟ ᱪᱟᱵᱟ ᱢᱮ? ᱢᱩᱞ ᱯᱷᱮᱰᱟᱛ ᱨᱮ ᱫᱚᱦᱰᱟ ᱡᱚᱜᱟᱣ @@ -260,7 +261,7 @@ ᱰᱮᱠ ᱧᱩᱛᱩᱢ ᱵᱮᱵᱷᱟᱨ ᱠᱟᱛᱮ ᱥᱮᱸᱫᱽᱨᱟᱭ ᱢᱮ ᱰᱟᱩᱱᱞᱚᱰ ᱵᱚᱫᱚᱞ ᱟᱠᱟᱱᱟ, ᱵᱟᱦᱨᱮ ᱥᱴᱳᱨᱮᱡᱽ ᱵᱟᱭ ᱦᱟᱹᱴᱤᱧ ᱟᱠᱟᱱᱟ ᱚᱲᱟᱜ - ᱠᱟᱨᱰ ᱫᱚ ᱛᱷᱟᱯᱚᱱ ᱟᱠᱟᱱᱟ᱾ diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index a3a3d953e0ec..a7bb3981d1bd 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -190,6 +190,7 @@ Isfundu Issèbera un\'immàgine + Remove background Bogare s\'isfundu? Torra a sos valores predefinidos @@ -263,7 +264,7 @@ Chirca impreende su nùmene de su matzu Iscarrigamentu annulladu, sa memòria esterna no est a disponimentu Pàgina printzipale - Carta interrada. diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml index b9c861a93333..1fa26d5fd678 100644 --- a/AnkiDroid/src/main/res/values-sk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml @@ -195,6 +195,7 @@ Pozadie Zvoliť obrázok + Remove background Odstrániť tapetu? Obnoviť predvolené @@ -268,7 +269,7 @@ Hľadať pomocou názvu balíčka Download aborted, the external storage is not available Domov - Karta zahrabaná. diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml index 0d4f13ff5758..cbf957d02702 100644 --- a/AnkiDroid/src/main/res/values-sl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml @@ -195,6 +195,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -268,7 +269,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml index 67afb1b07946..e393b7c011cb 100644 --- a/AnkiDroid/src/main/res/values-sq/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml index 17f20f090979..d2e5b6f10e01 100644 --- a/AnkiDroid/src/main/res/values-sr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml @@ -191,6 +191,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -264,7 +265,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-ss/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml index 2c90c73f3756..6cf09da50f01 100644 --- a/AnkiDroid/src/main/res/values-sv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml @@ -187,6 +187,7 @@ Bakgrund Välj en bild + Remove background Ta bort bakgrund? Återställ standardvärde @@ -260,7 +261,7 @@ Sök efter kortlekens namn Nedladdningen avbruten, det externa lagringsutrymmet är inte tillgängligt Hem - Kort gömt i högen diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-sw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml index b415489d009c..6e913ee28c90 100644 --- a/AnkiDroid/src/main/res/values-ta/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml @@ -187,6 +187,7 @@ பின்புலங்கள் படம் தேர்ந்தெடு + Remove background பின்னணியை அகற்றவா? இயல்புநிலையை மீட்டமை @@ -260,7 +261,7 @@ டெக் பெயரைப் பயன்படுத்தி தேடவும் பதிவிறக்கம் நிறுத்தப்பட்டது, வெளிப்புற சேமிப்பிடம் கிடைக்கவில்லை வீடு - அட்டை புதைக்கப்பட்டது. diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml index e5ac886ca171..323c6684909f 100644 --- a/AnkiDroid/src/main/res/values-te/02-strings.xml +++ b/AnkiDroid/src/main/res/values-te/02-strings.xml @@ -187,6 +187,7 @@ నేపథ్య చిత్రాన్ని ఎంచుకోండి + Remove background నేపథ్యాన్ని తీసివేయాలా? డిఫాల్ట్‌ని పునరుద్ధరించండి @@ -260,7 +261,7 @@ డెక్ పేరును ఉపయోగించి శోధించండి డౌన్‌లోడ్ ఆగిపోయింది, బాహ్య నిల్వ అందుబాటులో లేదు హోమ్ - కార్డు పాతిపెట్టబడింది. diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-tg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml index 78acb308ab37..f551a6969d13 100644 --- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml index c3ba8bd5d01d..92fa6d89068d 100644 --- a/AnkiDroid/src/main/res/values-th/02-strings.xml +++ b/AnkiDroid/src/main/res/values-th/02-strings.xml @@ -183,6 +183,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -256,7 +257,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-ti/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-tn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index 5e92adbf3a35..db27cfab48be 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -187,6 +187,7 @@ Arkaplan Bir resim seç + Remove background Arkaplan kaldırılsın mı? Varsayılana Dön @@ -260,7 +261,7 @@ Deste ismini kullanarak ara İndirme iptal edildi, harici hafıza erişilebilir değil. Ana sayfa - Kart gizlendi. diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-ts/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index 15619d3e12f6..cd204a6d2cef 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -184,6 +184,7 @@ Җирлек Select image + Remove background Remove background? Restore Default @@ -257,7 +258,7 @@ Search using deck name Download aborted, the external storage is not available Баш бит - Card buried. diff --git a/AnkiDroid/src/main/res/values-ug/02-strings.xml b/AnkiDroid/src/main/res/values-ug/02-strings.xml index 957d64b793f7..ff6c08620346 100644 --- a/AnkiDroid/src/main/res/values-ug/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ug/02-strings.xml @@ -187,6 +187,7 @@ تەگلىك سۈرەت تاللاش + Remove background تەگلىكنى چىقىرىۋېتەمدۇ؟ كۆڭۈلدىكىگە قايتۇر @@ -260,7 +261,7 @@ دەستە ئىسمى بويىچە ئىزدەيدۇ چۈشۈرۈش بىكار قىلىندى، سىرتقا ساقلىغۇچنى ئىشلەتكىلى بولمايدۇ باش بەت - كارتا يوشۇرۇلدى. diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index 76a3c9c2cb4c..94c8b453d699 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -195,6 +195,7 @@ Фон Оберіть зображення + Remove background Видалити задній фон? Відновити «Типове» @@ -268,7 +269,7 @@ Пошук за назвою колоди Завантаження перервано, зовнішнє сховище недоступне Головна - Картку відкладено. diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml index 956cf91ce34f..d754fd696aa5 100644 --- a/AnkiDroid/src/main/res/values-ur/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml @@ -188,6 +188,7 @@ پس منظر تصویر منتخب کریں۔ + Remove background پس منظر ہٹائیں؟ ڈیفالٹ بحال کریں۔ @@ -261,7 +262,7 @@ ڈیک کا نام استعمال کرکے تلاش کریں ڈاؤن لوڈ منسوخ کر دیا گیا، بیرونی اسٹوریج دستیاب نہیں ہے گھر - کارڈ دفن کر دیا گیا diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml index 51e2f56007f2..da9e93519163 100644 --- a/AnkiDroid/src/main/res/values-uz/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-ve/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index 6d2554db629f..3f8695852325 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -183,6 +183,7 @@ Hình nền Chọn một hình ảnh + Remove background Gỡ bỏ nền? Khôi phục mặc định @@ -256,7 +257,7 @@ Tìm kiếm theo tên bộ thẻ Tải xuống bị hủy, bộ nhớ ngoài không khả dụng Trang chủ - Các thẻ bị chôn diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml index 373f381178cc..eca3a48f69ed 100644 --- a/AnkiDroid/src/main/res/values-wo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml @@ -183,6 +183,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -256,7 +257,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-xh/02-strings.xml +++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml index a0ead5fa8a1e..f26a704271d3 100644 --- a/AnkiDroid/src/main/res/values-yue/02-strings.xml +++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml @@ -183,6 +183,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -256,7 +257,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. 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 eae24efd5e4a..5c80660a22c0 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -183,6 +183,7 @@ 背景 选择图片 + Remove background 去除背景 恢复初始设置 @@ -256,7 +257,7 @@ 使用牌组名称搜索 下载中止,外部存储不可用 主页 - 已搁置卡片 diff --git a/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml index 7df1b69bf56d..67bf154c2509 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/07-cardbrowser.xml @@ -112,5 +112,5 @@ 可用 包含列 排除列 - Retrieving fields names… + 正在获取字段名… 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 2abb1392bb3f..8032b35fa83a 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml @@ -183,6 +183,7 @@ 背景 選擇圖像 + Remove background 移除背景? 恢復預設值 @@ -256,7 +257,7 @@ 按卡片名字搜索 下載中止,外部儲存空間不可用 首頁 - 卡片暫時隱藏。 diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml index a86dedce299e..02fc4162fc27 100644 --- a/AnkiDroid/src/main/res/values-zu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml @@ -187,6 +187,7 @@ Background Select image + Remove background Remove background? Restore Default @@ -260,7 +261,7 @@ Search using deck name Download aborted, the external storage is not available Home - Card buried. From 90e086fb5291e8d8a8c3d6084af963f7b5341c7e Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 10 Mar 2025 02:56:34 +0100 Subject: [PATCH 102/200] NF: notetype stop having "tags" So, there are many things going on simultaneously here. First, we were adding an object of type "Tags" in the JSONObject. When `toSTring()` is applied to it it leads to "com.ichi2.libanki.Tags@c6ffb64", which caused this string to be added to the note type's json. Which actually was not an issue, because this value is never read anywhere neither in AnkiDroid nor in anki. I asked https://forums.ankiweb.net/t/what-is-the-tags-in-notetype/56967 to confirm my suspicion that this value used to be used, and is not anymore. I first considered editing the value so that the string of tags were saved. But since nothing use it, it's easier to just delete it. Anyway, if there was a need to update the notetype, the backend could do it. --- AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt index 836a5cf91f2d..c5c1aedde86a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt @@ -1193,7 +1193,6 @@ class NoteEditor : // adding current note to collection requireActivity().withProgress(resources.getString(R.string.saving_facts)) { undoableOp { - editorNote!!.notetype.put("tags", tags) notetypes.save(editorNote!!.notetype) addNote(editorNote!!, deckId) } From fc0f8b6ad1f04d09947f1596456f5b7a1c13f9ea Mon Sep 17 00:00:00 2001 From: snowtimeglass Date: Tue, 11 Mar 2025 13:41:18 +0900 Subject: [PATCH 103/200] fix: whiteboard control icon & label do not match For the "Toggle whiteboard" label in Controls settings page, replace the current "Show/Hide whiteboard" icon with "Enable whiteboard" icon, which is consistent with the control's actual action. --- AnkiDroid/src/main/res/xml/preferences_controls.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/res/xml/preferences_controls.xml b/AnkiDroid/src/main/res/xml/preferences_controls.xml index f620c1889083..13a20aa91f3e 100644 --- a/AnkiDroid/src/main/res/xml/preferences_controls.xml +++ b/AnkiDroid/src/main/res/xml/preferences_controls.xml @@ -233,7 +233,7 @@ Date: Wed, 12 Mar 2025 21:01:26 +0530 Subject: [PATCH 104/200] Fix TODO mentioned in the deleteCardTemplate and d eletionWouldOrphanNote by replacing the usage of getColUnsafe with withCol. Migrating to withCol ensures safer access to the Collection --- .../java/com/ichi2/anki/CardTemplateEditor.kt | 55 ++++++++++--------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt index 0ea93268d586..6aa835bceb84 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt @@ -49,6 +49,7 @@ import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentContainerView import androidx.fragment.app.commitNow import androidx.lifecycle.Lifecycle +import androidx.lifecycle.lifecycleScope import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.widget.ViewPager2 import anki.notetypes.StockNotetype @@ -101,6 +102,7 @@ import com.ichi2.utils.KotlinCleanup import com.ichi2.utils.copyToClipboard import com.ichi2.utils.listItems import com.ichi2.utils.show +import kotlinx.coroutines.launch import net.ankiweb.rsdroid.Translations import org.json.JSONArray import org.json.JSONException @@ -764,32 +766,32 @@ open class CardTemplateEditor : ) } - // TODO: Use withCol {} instead fun deleteCardTemplate() { - val col = templateEditor.getColUnsafe - val tempModel = templateEditor.tempModel - val ordinal = templateEditor.viewPager.currentItem - val template = tempModel!!.getTemplate(ordinal) - // Don't do anything if only one template - if (tempModel.templateCount < 2) { - templateEditor.showSimpleMessageDialog(resources.getString(R.string.card_template_editor_cant_delete)) - return - } - - if (deletionWouldOrphanNote(col, tempModel, ordinal)) { - showOrphanNoteDialog() - return - } + templateEditor.lifecycleScope.launch { + val tempModel = templateEditor.tempModel + val ordinal = templateEditor.viewPager.currentItem + val template = tempModel!!.getTemplate(ordinal) + // Don't do anything if only one template + if (tempModel.templateCount < 2) { + templateEditor.showSimpleMessageDialog(resources.getString(R.string.card_template_editor_cant_delete)) + return@launch + } - // Show confirmation dialog - val numAffectedCards = - if (!CardTemplateNotetype.isOrdinalPendingAdd(tempModel, ordinal)) { - Timber.d("Ordinal is not a pending add, so we'll get the current card count for confirmation") - col.notetypes.tmplUseCount(tempModel.notetype, ordinal) - } else { - 0 + if (deletionWouldOrphanNote(tempModel, ordinal)) { + showOrphanNoteDialog() + return@launch } - confirmDeleteCards(template, tempModel.notetype, numAffectedCards) + + // Show confirmation dialog + val numAffectedCards = + if (!CardTemplateNotetype.isOrdinalPendingAdd(tempModel, ordinal)) { + Timber.d("Ordinal is not a pending add, so we'll get the current card count for confirmation") + withCol { notetypes.tmplUseCount(tempModel.notetype, ordinal) } + } else { + 0 + } + confirmDeleteCards(template, tempModel.notetype, numAffectedCards) + } } /* showOrphanNoteDialog shows a AlertDialog if the deletionWouldOrphanNote returns true @@ -1115,8 +1117,7 @@ open class CardTemplateEditor : return requireArguments().getInt(CARD_INDEX) } - private fun deletionWouldOrphanNote( - col: Collection, + private suspend fun deletionWouldOrphanNote( tempModel: CardTemplateNotetype?, position: Int, ): Boolean { @@ -1128,8 +1129,8 @@ open class CardTemplateEditor : // pending deletes could orphan cards if (!CardTemplateNotetype.isOrdinalPendingAdd(tempModel!!, position)) { val currentDeletes = tempModel.getDeleteDbOrds(position) - // TODO - this is a SQL query on GUI thread - should see a DeckTask conversion ideally - if (col.notetypes.getCardIdsForModel(tempModel.modelId, currentDeletes) == null) { + val cardIds = withCol { notetypes.getCardIdsForModel(tempModel.modelId, currentDeletes) } + if (cardIds == null) { // It is possible but unlikely that a user has an in-memory template addition that would // generate cards making the deletion safe, but we don't handle that. All users who do // not already have cards generated making it safe will see this error message: From 5eba6fd0c0218891733dbbe9896909c05d57ac1b Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Thu, 13 Mar 2025 12:20:02 +0000 Subject: [PATCH 105/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-cs/02-strings.xml | 6 +++--- AnkiDroid/src/main/res/values-cs/03-dialogs.xml | 4 ++-- AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml | 2 +- AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index aa188a26dfb7..d6aa50bb75e0 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -195,7 +195,7 @@ Pozadí Vybrat obrázek - Remove background + Odebrat pozadí Odebrat pozadí? Obnovit výchozí @@ -351,14 +351,14 @@ Výběr balíčků Delete deck without confirmation - Note Editor + Editor Paznámek Select deck Select note type Tag editor Card Template Editor Edit front template Edit back template - Edit styling + Upravit formátování Copy template as markdown Edit browser appearance Akce uživatele %s není v tomto typu poznámky nastavena. Nakonfigurujte ji prosím diff --git a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml index bd452b6e6062..c1a511b8c5a7 100644 --- a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml @@ -253,11 +253,11 @@ Cloze Type Note Required No Cloze type note found, open the Note Editor or try again after adding a Cloze type note. - Open + Otevřít Change cloze number Cloze number: Change editor mode - Open note editor + Otevřít editor poznámek 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 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 9c5f2117fd48..7a73abb67dbf 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -187,7 +187,7 @@ Fundo Selecionar imagem - Remove background + Remover imagem de fundo Remover imagem de fundo? Restaurar predefinições diff --git a/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml index 6dc423712a20..90720ff7d6de 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/07-cardbrowser.xml @@ -118,5 +118,5 @@ Disponíveis Incluir coluna Excluir coluna - Retrieving fields names… + A recuperar os nomes dos campos… 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 5c80660a22c0..30d4895358d8 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -183,7 +183,7 @@ 背景 选择图片 - Remove background + 删除背景 去除背景 恢复初始设置 From 29f6134f7029b3619c13dade9d5f8a6133140ed4 Mon Sep 17 00:00:00 2001 From: snowtimeglass Date: Thu, 13 Mar 2025 19:31:39 +0900 Subject: [PATCH 106/200] minor fix: remove extra space in a newer string Remove an extra space in a recently added string for https://github.com/ankidroid/Anki-Android/pull/18071 --- AnkiDroid/src/main/res/values/02-strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/res/values/02-strings.xml b/AnkiDroid/src/main/res/values/02-strings.xml index 569449625678..697bc4e88099 100644 --- a/AnkiDroid/src/main/res/values/02-strings.xml +++ b/AnkiDroid/src/main/res/values/02-strings.xml @@ -176,7 +176,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default From f0f43af555e817accac742808d342d59f551c701 Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Thu, 13 Mar 2025 16:36:28 +0000 Subject: [PATCH 107/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-am/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ar/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-az/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-be/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-bg/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-bn/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ca/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ckb/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-cs/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-da/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-de/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-el/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-eo/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-es-rAR/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-es-rES/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-et/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-eu/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-fa/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-fi/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-fil/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-fr/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-fy/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ga/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-gl/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-got/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-gu/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-heb/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-hi/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-hr/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-hu/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-hy/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ind/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-is/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-it/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-iw/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ja/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-jv/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ka/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-kk/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-km/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-kn/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ko/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ku/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ky/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-lt/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-lv/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-mk/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ml/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-mn/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-mr/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ms/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-my/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-nl/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-nn/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-no/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-or/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-pa/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-pl/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ro/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ru/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sat/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sc/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sk/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sl/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sq/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sr/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ss/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sv/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-sw/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ta/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-te/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-tg/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-tgl/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-th/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ti/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-tn/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-tr/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ts/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-tt/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ug/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-uk/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ur/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-uz/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ve/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-vi/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-wo/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-xh/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-yue/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-zu/02-strings.xml | 2 +- 94 files changed, 94 insertions(+), 94 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml index c0256726a687..f84627990a97 100644 --- a/AnkiDroid/src/main/res/values-af/02-strings.xml +++ b/AnkiDroid/src/main/res/values-af/02-strings.xml @@ -187,7 +187,7 @@ Agtergrond Kies beeld - Remove background + Remove background Verwyder agtergrond? Herstel Standaard diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-am/02-strings.xml +++ b/AnkiDroid/src/main/res/values-am/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index 739249209c82..ef742e33d0b5 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -203,7 +203,7 @@ خلفية اختيار صورة - Remove background + Remove background هل تريد إزالة الخلفية؟ استعادة الافتراضي diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml index 1ca5328f2113..28e0288f1569 100644 --- a/AnkiDroid/src/main/res/values-az/02-strings.xml +++ b/AnkiDroid/src/main/res/values-az/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index 2b9011475cee..772cf506039a 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -195,7 +195,7 @@ Фон Выберыце відарыс - Remove background + Remove background Выдаліць фон? Вярнуцца да прадвызначаных diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml index 4a7869e7e494..5f4fbe86fed0 100644 --- a/AnkiDroid/src/main/res/values-bg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml @@ -187,7 +187,7 @@ Фон Изберете изображение - Remove background + Remove background Remove background? Възстанови по подразбиране diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index e24dd949e705..0664676cb3a5 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -187,7 +187,7 @@ পটভূমি Select image - Remove background + Remove background পটভূমি সরান? ডিফল্ট পুনরুদ্ধার করুন diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index 4a9f4b5dec96..5ba93670e8e1 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -187,7 +187,7 @@ Fons Selecciona una imatge - Remove background + Remove background Elimina el fons Restaura els valors per defecte diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index 1697472cfbe9..2b293d912ddc 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -187,7 +187,7 @@ Background وێنەیەک هەڵبژێرە - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index d6aa50bb75e0..077c692dab2c 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -195,7 +195,7 @@ Pozadí Vybrat obrázek - Odebrat pozadí + Remove background Odebrat pozadí? Obnovit výchozí diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml index c20867ea72db..45fb462a9dca 100644 --- a/AnkiDroid/src/main/res/values-da/02-strings.xml +++ b/AnkiDroid/src/main/res/values-da/02-strings.xml @@ -187,7 +187,7 @@ Baggrund Vælg billede - Remove background + Remove background Fjern baggrund? Gendan standardindstillinger diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index 8e1bff6b5687..bb0dd039df32 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -187,7 +187,7 @@ Hintergrund Bild auswählen - Remove background + Remove background Hintergrund entfernen? Standard wiederherstellen diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index 9be7ebc38b59..7e85cb05b044 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -187,7 +187,7 @@ Φόντο Επιλέξτε εικόνα - Remove background + Remove background Αφαίρεση ταπετσαρίας; Επαναφορά προεπιλογής diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index c557791e45b7..aa07e30f0f65 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -187,7 +187,7 @@ Fono Elekti bildon - Remove background + Remove background Ĉu forigi fonon? Restarigi implicitajn 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 2ddc4c69c500..133d7211ce16 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -187,7 +187,7 @@ Fondo Elige una imagen - Remove background + Remove background ¿Quitar fondo? Restablecer Predefinidos 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 623f1600e52a..0e6b60ca08f4 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -187,7 +187,7 @@ Fondo Elige una imagen - Remove background + Remove background ¿Quitar fondo? Restablecer Predefinidos diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml index 8f127cb738ee..36e5748b0c10 100644 --- a/AnkiDroid/src/main/res/values-et/02-strings.xml +++ b/AnkiDroid/src/main/res/values-et/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml index bf2a910ffb0e..91442992839b 100644 --- a/AnkiDroid/src/main/res/values-eu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index f02271124420..1ed75b6e6bed 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -187,7 +187,7 @@ پس زمینه انتخاب تصویر - Remove background + Remove background حذف پس‌زمینه؟ بازنشانی پیش‌فرض diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index 8e381bcf9063..743c9354a6d0 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -187,7 +187,7 @@ Tausta Valitse kuva - Remove background + Remove background Poistetaanko tausta? Palauta oletusarvot diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index 7d4df06dbb1a..9f2a6389b970 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -187,7 +187,7 @@ Likuran Pumili ng Litrato - Remove background + Remove background Tanggalin ang background? Ibalik sa Default diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index 230bdfe392e2..e3a00af704c7 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -187,7 +187,7 @@ Arrière-plan Sélectionner une image - Remove background + Remove background Retirer l\'arrière-plan ? Rétablir par défaut diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml index 638246ca0974..d066c3e6e9d0 100644 --- a/AnkiDroid/src/main/res/values-fy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml index a78b12b43729..3773915615c1 100644 --- a/AnkiDroid/src/main/res/values-ga/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml @@ -199,7 +199,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml index e095edc4d5d3..fc1a00e8a56e 100644 --- a/AnkiDroid/src/main/res/values-gl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml index 223ef97094d7..ec86ba08a56e 100644 --- a/AnkiDroid/src/main/res/values-got/02-strings.xml +++ b/AnkiDroid/src/main/res/values-got/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml index 7502ca9bedd9..14970fc644f5 100644 --- a/AnkiDroid/src/main/res/values-gu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml @@ -187,7 +187,7 @@ પૃષ્ઠભૂમિ છબી પસંદ કરો - Remove background + Remove background પૃષ્ઠભૂમિ દૂર કરીએ? મૂળભૂત પુનઃસ્થાપિત diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index 60402e68a43f..99f62f4597b0 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -195,7 +195,7 @@ רקע נא לבחור תמונה - Remove background + Remove background להסיר רקע? שחזור בררת המחדל diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index e602bd4b635d..4ecb5f975383 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -187,7 +187,7 @@ पृष्ठभूमि चित्र चुनें - Remove background + Remove background पृष्ठभूमि निकालें? पहले जैसा कर देना diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index 542c46a72304..bb07610f22c3 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -191,7 +191,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index 8aa0ec5b2634..2193f5fb70da 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -187,7 +187,7 @@ Háttér Válasszon egy képet - Remove background + Remove background Remove background? Alaphelyzetbe állítás diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml index 8291704b6c35..8c9d505c0f41 100644 --- a/AnkiDroid/src/main/res/values-hy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml index 8b8d606f3a48..a54bf0ed2a75 100644 --- a/AnkiDroid/src/main/res/values-ind/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml @@ -183,7 +183,7 @@ Latar belakang Pilih gambar - Remove background + Remove background Hapus latar belakang? Kembalikan ke baku diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-is/02-strings.xml +++ b/AnkiDroid/src/main/res/values-is/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml index 845d91db62f4..133345091a8c 100644 --- a/AnkiDroid/src/main/res/values-it/02-strings.xml +++ b/AnkiDroid/src/main/res/values-it/02-strings.xml @@ -187,7 +187,7 @@ Sfondo Scegli un\'immagine - Remove background + Remove background Rimuovere lo sfondo? Ripristina predefiniti diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 60402e68a43f..99f62f4597b0 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -195,7 +195,7 @@ רקע נא לבחור תמונה - Remove background + Remove background להסיר רקע? שחזור בררת המחדל diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index d4049f07ac97..b7df2a545ff6 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -183,7 +183,7 @@ デッキリスト画面の背景 画像を選択 - Remove background + Remove background 背景画像を削除しますか? 既定値に戻す diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml index 7a28cb737f55..18b51e859232 100644 --- a/AnkiDroid/src/main/res/values-jv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml @@ -183,7 +183,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 10a15e215425..03d405cd5529 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -187,7 +187,7 @@ ფონი სურათის არჩევა - Remove background + Remove background გსურთ ფონის წაშლა? ნაგულისხმევის აღდგენა diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-kk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 3f5fb696fcd7..20586fe7adbf 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -183,7 +183,7 @@ ផ្ទៃខាងក្រោយ ជ្រើសរើសរូបភាព - Remove background + Remove background ដកផ្ទៃខាងក្រោយចេញ? ស្តារលំនាំដើមឡើងវិញ diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index b3f59d932f12..2ae278f8d1c4 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -187,7 +187,7 @@ ಹಿನ್ನೆಲೆ ಚಿತ್ರವನ್ನು ಆರಿಸಿ - Remove background + Remove background ಹಿನ್ನೆಲೆ ತೆಗೆದುಹಾಕುವುದೇ? ಡೀಫಾಲ್ಟ್ ಅನ್ನು ಮರುಸ್ಥಾಪಿಸಿ diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index 9e0873aaceef..714a277b980a 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -186,7 +186,7 @@ Context | Request Context [1] 배경 이미지 선택 - Remove background + Remove background 배경을 제거하시겠습니까? 기본값 복원 diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml index ec3e6b2832b2..6914736c4005 100644 --- a/AnkiDroid/src/main/res/values-ku/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-ky/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml index 709e0dedb02f..6aeac886b899 100644 --- a/AnkiDroid/src/main/res/values-lt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml @@ -195,7 +195,7 @@ Fonas Pasirinkite paveikslėlį - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml index 37a4227a1d73..81183e2c2b10 100644 --- a/AnkiDroid/src/main/res/values-lv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml @@ -191,7 +191,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml index f8da9bdc3c65..f3403fbce26b 100644 --- a/AnkiDroid/src/main/res/values-mk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml @@ -188,7 +188,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml index 050b87e2aaf4..da98f33c2ed4 100644 --- a/AnkiDroid/src/main/res/values-ml/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml @@ -187,7 +187,7 @@ Background ഒരു ചിത്രം തിരഞ്ഞെടുക്കുക - Remove background + Remove background പശ്ചാത്തലം നീക്കം ചെയ്യണോ? നേരത്തെയുള്ളത് പുനസ്ഥാപിക്കുക diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 414fae1beb6a..7dd499cceb40 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Өгөгдмөл горим руу шилжих diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml index 8ac1d17b537e..d167b4c59ed1 100644 --- a/AnkiDroid/src/main/res/values-mr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml @@ -187,7 +187,7 @@ पार्श्वभूमी प्रतिमा निवडा - Remove background + Remove background पार्श्वभूमी काढायची? डीफॉल्ट पुनर्संचयित करा diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml index f2bf28195ca3..7d315fa1fa46 100644 --- a/AnkiDroid/src/main/res/values-ms/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml @@ -183,7 +183,7 @@ Latar belakang Pilih gambar - Remove background + Remove background Remove background? Pulih Lalai diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml index eca3a48f69ed..2d506f269e4d 100644 --- a/AnkiDroid/src/main/res/values-my/02-strings.xml +++ b/AnkiDroid/src/main/res/values-my/02-strings.xml @@ -183,7 +183,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 977135f1cd9f..9adc0b8c975e 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -187,7 +187,7 @@ Achtergrond Kies een afbeelding - Remove background + Remove background Achtergrond verwijderen? Herstel Standaardinstellingen diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml index 4c072f678209..931c04a9c904 100644 --- a/AnkiDroid/src/main/res/values-nn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml @@ -187,7 +187,7 @@ Bakgrunn Velg bilde - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml index 0d34226281e2..ffe2c9e632bc 100644 --- a/AnkiDroid/src/main/res/values-no/02-strings.xml +++ b/AnkiDroid/src/main/res/values-no/02-strings.xml @@ -187,7 +187,7 @@ Bakgrunn Velg bilde - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index c904ace04630..b67a7cad4cfc 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -187,7 +187,7 @@ ପୃଷ୍ଠପଟ ଛବି ବାଛନ୍ତୁ - Remove background + Remove background ପୃଷ୍ଠପଟ ଅପସାରଣ କରିବେ ତ? ଡିଫଲ୍ଟ ପୁନଃସ୍ଥାପନ କରନ୍ତୁ diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml index 2e85c9fa5b96..a62e834dbf7a 100644 --- a/AnkiDroid/src/main/res/values-pa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml @@ -187,7 +187,7 @@ ਪਿਛੋਕੜ ਚਿੱਤਰ ਨੂੰ ਚੁਣੋ - Remove background + Remove background ਕੀ ਪਿਛੋਕੜ ਨੂੰ ਹਟਾਉਣਾ ਹੈ? ਡਿਫੌਲਟ ਰੀਸਟੋਰ ਕਰੋ diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index 69c9d4ee1137..9c6e6faa536a 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -195,7 +195,7 @@ Tło Wybierz obraz - Remove background + Remove background Usunąć tło? Przywróć domyślne 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 a600bd80d4a3..d057cb94269f 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -187,7 +187,7 @@ Plano de fundo Escolha uma imagem - Remove background + Remove background Remover fundo? Restaurar Padrões 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 7a73abb67dbf..6201d9b14079 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -187,7 +187,7 @@ Fundo Selecionar imagem - Remover imagem de fundo + Remove background Remover imagem de fundo? Restaurar predefinições diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml index d70c5d36084b..8cf9db49e352 100644 --- a/AnkiDroid/src/main/res/values-ro/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml @@ -191,7 +191,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 3a9eed698415..5c97e93b4988 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -195,7 +195,7 @@ Фон Выбрать изображение - Remove background + Remove background Удалить фон? Сбросить настройки diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 692c223ad885..4c5424779c14 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -187,7 +187,7 @@ ᱵᱮᱠᱜᱟᱨᱩᱸᱰ ᱪᱤᱛᱟᱨ ᱵᱟᱪᱷᱟᱣ ᱢᱮ - Remove background + Remove background ᱚᱛ ᱦᱟᱥᱟ ᱪᱟᱵᱟ ᱢᱮ? ᱢᱩᱞ ᱯᱷᱮᱰᱟᱛ ᱨᱮ ᱫᱚᱦᱰᱟ ᱡᱚᱜᱟᱣ diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index a7bb3981d1bd..fefde0e090a0 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -190,7 +190,7 @@ Isfundu Issèbera un\'immàgine - Remove background + Remove background Bogare s\'isfundu? Torra a sos valores predefinidos diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml index 1fa26d5fd678..1aa078fa384e 100644 --- a/AnkiDroid/src/main/res/values-sk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml @@ -195,7 +195,7 @@ Pozadie Zvoliť obrázok - Remove background + Remove background Odstrániť tapetu? Obnoviť predvolené diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml index cbf957d02702..091d763aec2a 100644 --- a/AnkiDroid/src/main/res/values-sl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml @@ -195,7 +195,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml index e393b7c011cb..dd0094ef6cd6 100644 --- a/AnkiDroid/src/main/res/values-sq/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml index d2e5b6f10e01..50f4e52cb8f0 100644 --- a/AnkiDroid/src/main/res/values-sr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml @@ -191,7 +191,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-ss/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml index 6cf09da50f01..e0aca8becd0b 100644 --- a/AnkiDroid/src/main/res/values-sv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml @@ -187,7 +187,7 @@ Bakgrund Välj en bild - Remove background + Remove background Ta bort bakgrund? Återställ standardvärde diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-sw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml index 6e913ee28c90..4776c8746632 100644 --- a/AnkiDroid/src/main/res/values-ta/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml @@ -187,7 +187,7 @@ பின்புலங்கள் படம் தேர்ந்தெடு - Remove background + Remove background பின்னணியை அகற்றவா? இயல்புநிலையை மீட்டமை diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml index 323c6684909f..088e69201bc8 100644 --- a/AnkiDroid/src/main/res/values-te/02-strings.xml +++ b/AnkiDroid/src/main/res/values-te/02-strings.xml @@ -187,7 +187,7 @@ నేపథ్య చిత్రాన్ని ఎంచుకోండి - Remove background + Remove background నేపథ్యాన్ని తీసివేయాలా? డిఫాల్ట్‌ని పునరుద్ధరించండి diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-tg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml index f551a6969d13..a328c607cd83 100644 --- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml index 92fa6d89068d..40d8debee090 100644 --- a/AnkiDroid/src/main/res/values-th/02-strings.xml +++ b/AnkiDroid/src/main/res/values-th/02-strings.xml @@ -183,7 +183,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-ti/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-tn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index db27cfab48be..040d2dacb724 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -187,7 +187,7 @@ Arkaplan Bir resim seç - Remove background + Remove background Arkaplan kaldırılsın mı? Varsayılana Dön diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-ts/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index cd204a6d2cef..ae2f62332a43 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -184,7 +184,7 @@ Җирлек Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ug/02-strings.xml b/AnkiDroid/src/main/res/values-ug/02-strings.xml index ff6c08620346..3dfe7f2ee7ab 100644 --- a/AnkiDroid/src/main/res/values-ug/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ug/02-strings.xml @@ -187,7 +187,7 @@ تەگلىك سۈرەت تاللاش - Remove background + Remove background تەگلىكنى چىقىرىۋېتەمدۇ؟ كۆڭۈلدىكىگە قايتۇر diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index 94c8b453d699..6752b4c88215 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -195,7 +195,7 @@ Фон Оберіть зображення - Remove background + Remove background Видалити задній фон? Відновити «Типове» diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml index d754fd696aa5..c1b78ab38d19 100644 --- a/AnkiDroid/src/main/res/values-ur/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml @@ -188,7 +188,7 @@ پس منظر تصویر منتخب کریں۔ - Remove background + Remove background پس منظر ہٹائیں؟ ڈیفالٹ بحال کریں۔ diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml index da9e93519163..6ea623471c1b 100644 --- a/AnkiDroid/src/main/res/values-uz/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-ve/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index 3f8695852325..1d830b746831 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -183,7 +183,7 @@ Hình nền Chọn một hình ảnh - Remove background + Remove background Gỡ bỏ nền? Khôi phục mặc định diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml index eca3a48f69ed..2d506f269e4d 100644 --- a/AnkiDroid/src/main/res/values-wo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml @@ -183,7 +183,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-xh/02-strings.xml +++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml index f26a704271d3..951be4a7045b 100644 --- a/AnkiDroid/src/main/res/values-yue/02-strings.xml +++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml @@ -183,7 +183,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default 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 30d4895358d8..868b87ea7cf5 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -183,7 +183,7 @@ 背景 选择图片 - 删除背景 + Remove background 去除背景 恢复初始设置 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 8032b35fa83a..bad91e9755fb 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml @@ -183,7 +183,7 @@ 背景 選擇圖像 - Remove background + Remove background 移除背景? 恢復預設值 diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml index 02fc4162fc27..d3c686c3bb2f 100644 --- a/AnkiDroid/src/main/res/values-zu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml @@ -187,7 +187,7 @@ Background Select image - Remove background + Remove background Remove background? Restore Default From 4c5bf718a7c8f170f741553b5e9d5a8b7ff6d80e Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Thu, 13 Mar 2025 23:55:30 +0000 Subject: [PATCH 108/200] test: ignore flaky tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ``` androidx.test.espresso.NoMatchingViewException: No views in hierarchy found matching: an instance of android.widget.TextView and view.getText() with or without transformation to match: is "⁨1⁩ note updated." If the target view is not part of the view hierarchy, you may need to use Espresso.onData to load it from one of the following AdapterViews:androidx.appcompat.widget.AppCompatSpinner{3b905b2 VFED..CL. ......ID 56,0-232,64 #7f0a04e2 app:id/toolbar_spinner} ``` etc... --- AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt index 7a9e2dd65177..9b8c4f998ff8 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt @@ -1404,6 +1404,7 @@ class CardBrowserTest : RobolectricTest() { } @Test + @Flaky(OS.ALL) fun `FindReplace - replaces text only for the field in the selected note`() { val note0 = createFindReplaceTestNote("A", "kart", "kilogram") val note1 = createFindReplaceTestNote("B", "pink", "chicken") @@ -1442,6 +1443,7 @@ class CardBrowserTest : RobolectricTest() { } @Test + @Flaky(OS.ALL) fun `FindReplace - replaces text in all notes if 'Only in selected notes' is unchecked`() { val note0 = createFindReplaceTestNote("A", "kart", "kilogram") val note1 = createFindReplaceTestNote("B", "pink", "chicken") @@ -1469,6 +1471,7 @@ class CardBrowserTest : RobolectricTest() { } @Test + @Flaky(OS.ALL) fun `FindReplace - replaces text in all fields of selected note if 'All fields' is selected`() { val note0 = createFindReplaceTestNote("A", "kart", "kilogram") val note1 = createFindReplaceTestNote("B", "pink", "chicken") @@ -1489,6 +1492,7 @@ class CardBrowserTest : RobolectricTest() { } @Test + @Flaky(OS.ALL) fun `FindReplace - replaces text of tags as expected if 'Tags' is selected`() { val note0 = createFindReplaceTestNote("A", "kart", "kilogram") val note1 = createFindReplaceTestNote("A", "pink", "chicken") From 3ba6f9ecacf7669e7cd7c6ebf5253771be645bc3 Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Thu, 13 Mar 2025 17:10:59 +0000 Subject: [PATCH 109/200] lint(perf): don't assert on or The elements are already asserted on --- .../ichi2/anki/lint/rules/TranslationTypo.kt | 4 ++-- .../anki/lint/rules/TranslationTypoTest.kt | 22 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt b/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt index b233f0b8b0a6..66bb38ab2042 100644 --- a/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt +++ b/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt @@ -97,8 +97,8 @@ class TranslationTypo : return } - // Only check or , not the container - if ("resources" == element.tagName) { + // Ignore container tags: visitElement already handles visiting sub-tags (/) + if (element.tagName in listOf("resources", "plurals", "string-array")) { return } diff --git a/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt b/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt index a5122f440c19..86342a9a8cd9 100644 --- a/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt +++ b/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt @@ -51,6 +51,28 @@ class TranslationTypoTest { TranslationTypo.ISSUE.assertXmlStringsHasError(invalidLowerCase, "should be 'JavaScript'") } + @Test + fun `plurals - javascript fails`() { + val invalidLowerCase = """ + + >javascript + + """ + + TranslationTypo.ISSUE.assertXmlStringsHasError(invalidLowerCase, "should be 'JavaScript'") + } + + @Test + fun `string array - javascript fails`() { + val invalidLowerCase = """ + + javascript + + """ + + TranslationTypo.ISSUE.assertXmlStringsHasError(invalidLowerCase, "should be 'JavaScript'") + } + @Test fun `vandalism fails`() { val stringRemoved = """ From b073f41a0dfc51abfd4fbe1a8a6aa22295dd2dcb Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Thu, 13 Mar 2025 20:01:01 +0000 Subject: [PATCH 110/200] lint: fix trailing spaces in /values Part of 14903 Syncing this change reduces the quantity of manual Crowdin fixes required --- AnkiDroid/src/main/res/values/02-strings.xml | 26 ++----- AnkiDroid/src/main/res/values/03-dialogs.xml | 11 +-- .../src/main/res/values/10-preferences.xml | 4 +- .../src/main/res/values/17-model-manager.xml | 4 +- .../ichi2/anki/lint/rules/TranslationTypo.kt | 16 +++++ .../anki/lint/rules/TranslationTypoTest.kt | 72 +++++++++++++++++++ .../ichi2/anki/lint/testutils/LintAssert.kt | 4 ++ 7 files changed, 105 insertions(+), 32 deletions(-) diff --git a/AnkiDroid/src/main/res/values/02-strings.xml b/AnkiDroid/src/main/res/values/02-strings.xml index 697bc4e88099..0e5b1f8adf03 100644 --- a/AnkiDroid/src/main/res/values/02-strings.xml +++ b/AnkiDroid/src/main/res/values/02-strings.xml @@ -237,8 +237,7 @@ The audio file is too large, please insert the audio manually - Android backup in progress. Please try again + Opening AnkiDroid again will work correctly">Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts @@ -334,20 +333,15 @@ Deleting selected notes - Tap a voice to listen - + Text to speech voices">Tap a voice to listen Voice should be installed before use - +There will also be an option to use it without downloading">Voice should be installed before use Use anyway - +allows them to use the voice without installing it">Use anyway - Internet - + This is on a chip control, so keep the text short, ideally one word">Internet - Install - + This is on a chip control, so keep the text short, ideally one word">Install - Failed to open text to speech settings - +opening the system text to speech settings fails">Failed to open text to speech settings Please log in to download more decks diff --git a/AnkiDroid/src/main/res/values/03-dialogs.xml b/AnkiDroid/src/main/res/values/03-dialogs.xml index 25a5547f826b..98acb3f95de1 100644 --- a/AnkiDroid/src/main/res/values/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values/03-dialogs.xml @@ -40,7 +40,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -217,13 +217,8 @@ Don\'t show again Data loss warning - - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty diff --git a/AnkiDroid/src/main/res/values/10-preferences.xml b/AnkiDroid/src/main/res/values/10-preferences.xml index 784263046efa..06296acd16ca 100644 --- a/AnkiDroid/src/main/res/values/10-preferences.xml +++ b/AnkiDroid/src/main/res/values/10-preferences.xml @@ -294,9 +294,7 @@ this formatter is used if the bind only applies to both the question and the ans Developer options Enable developer options Disable developer options - - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - Add: %1$s - Clone: %1$s + Add: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” diff --git a/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt b/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt index 66bb38ab2042..124b2542c7d9 100644 --- a/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt +++ b/lint-rules/src/main/java/com/ichi2/anki/lint/rules/TranslationTypo.kt @@ -25,10 +25,12 @@ import com.android.tools.lint.detector.api.ResourceXmlDetector import com.android.tools.lint.detector.api.Scope import com.android.tools.lint.detector.api.XmlContext import com.android.tools.lint.detector.api.XmlScanner +import com.android.utils.forEach import com.google.common.annotations.VisibleForTesting import com.ichi2.anki.lint.utils.Constants import com.ichi2.anki.lint.utils.CrowdinContext.Companion.toCrowdinContext import com.ichi2.anki.lint.utils.ext.isRightToLeftLanguage +import org.w3c.dom.CDATASection import org.w3c.dom.Element /** @@ -133,5 +135,19 @@ class TranslationTypo : if (element.textContent.isEmpty() && element.getAttribute("name") != "empty_string") { element.reportIssue("should not be empty") } + + // TODO(14903): remove "values" check once lint passes without it + if ("values" == context.file.parentFile.name && element.textContent.trim() != element.textContent) { + var isValid = true + element.childNodes.forEach { + if (it is CDATASection) { + isValid = false + } + } + + if (isValid) { + element.reportIssue("should not contain trailing whitespace") + } + } } } diff --git a/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt b/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt index 86342a9a8cd9..64d6477b59cd 100644 --- a/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt +++ b/lint-rules/src/test/java/com/ichi2/anki/lint/rules/TranslationTypoTest.kt @@ -18,6 +18,7 @@ package com.ichi2.anki.lint.rules import com.ichi2.anki.lint.testutils.assertXmlStringsHasError import com.ichi2.anki.lint.testutils.assertXmlStringsNoIssues +import org.junit.Ignore import org.junit.Test /** @@ -91,6 +92,77 @@ class TranslationTypoTest { TranslationTypo.ISSUE.assertXmlStringsNoIssues(stringRemoved) } + @Test + fun `additional spacing before is flagged`() { + val stringRemoved = """ + hello + """ + + TranslationTypo.ISSUE.assertXmlStringsHasError( + xmlFile = stringRemoved, + expectedError = "should not contain trailing whitespace", + ignoreCData = true, + ) + } + + @Test + fun `additional spacing after is flagged`() { + val stringRemoved = """ + hello + """ + + TranslationTypo.ISSUE.assertXmlStringsHasError( + xmlFile = stringRemoved, + expectedError = "should not contain trailing whitespace", + ignoreCData = true, + ) + } + + @Test + fun `cdata with no spaces is not flagged`() { + val stringRemoved = """ +
+ This is an Anki flashcards deck sent from AnkiDroid[1]. + Try to open it using one of the available Anki distributions[2] and enjoy easy and efficient learning!

+ [1] %1${"\$s"}
+ [2] %2${"\$s"} + ]]>
+
""" + + TranslationTypo.ISSUE.assertXmlStringsNoIssues(stringRemoved) + } + + @Test + @Ignore("The ellipsis is unescaped") + @Suppress("UNUSED_EXPRESSION") + fun `ellipsis escaping is unchanged`() { + """ + 필터링된 덱을 비우는 중… + """ + + // TODO + } + + @Test + fun `cdata with spaces is not flagged`() { + val stringRemoved = """ + +
+ This is an Anki flashcards deck sent from AnkiDroid[1]. + Try to open it using one of the available Anki distributions[2] and enjoy easy and efficient learning!

+ [1] %1${"\$s"}
+ [2] %2${"\$s"} + ]]> +
+
""" + + TranslationTypo.ISSUE.assertXmlStringsNoIssues(stringRemoved) + } + /** A link to the string on Crowdin should be provided */ @Test fun crowdinEditLinkIsProvided() { diff --git a/lint-rules/src/test/java/com/ichi2/anki/lint/testutils/LintAssert.kt b/lint-rules/src/test/java/com/ichi2/anki/lint/testutils/LintAssert.kt index 7c63c50ef371..f70c475f5a65 100644 --- a/lint-rules/src/test/java/com/ichi2/anki/lint/testutils/LintAssert.kt +++ b/lint-rules/src/test/java/com/ichi2/anki/lint/testutils/LintAssert.kt @@ -18,7 +18,9 @@ package com.ichi2.anki.lint.testutils import com.android.tools.lint.checks.infrastructure.TestFiles import com.android.tools.lint.checks.infrastructure.TestLintTask +import com.android.tools.lint.checks.infrastructure.TestMode import com.android.tools.lint.detector.api.Issue +import com.intellij.util.applyIf import org.intellij.lang.annotations.Language import org.junit.Assert.assertTrue @@ -60,12 +62,14 @@ fun Issue.assertXmlStringsHasError( expectedError: String, androidLanguageFolder: String? = null, fileName: String? = null, + ignoreCData: Boolean = false, ) { val languageQualifier = if (androidLanguageFolder != null) "-$androidLanguageFolder" else "" val resourceFileName = fileName ?: "constants" TestLintTask .lint() .allowMissingSdk() + .applyIf(ignoreCData) { skipTestModes(TestMode.CDATA) } .allowCompilationErrors() .files(TestFiles.xml("res/values$languageQualifier/$resourceFileName.xml", xmlFile)) .issues(this) From 7e91aff572d2f66ce4e567015f9d249d1c075cbe Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Sat, 15 Mar 2025 09:29:24 +0000 Subject: [PATCH 111/200] Updated strings from Crowdin --- .../src/main/res/values-af/02-strings.xml | 20 ++++++----------- .../src/main/res/values-af/03-dialogs.xml | 8 +++---- .../src/main/res/values-af/10-preferences.xml | 3 +-- .../main/res/values-af/17-model-manager.xml | 4 ++-- .../src/main/res/values-am/02-strings.xml | 20 ++++++----------- .../src/main/res/values-am/03-dialogs.xml | 8 +++---- .../src/main/res/values-am/10-preferences.xml | 3 +-- .../main/res/values-am/17-model-manager.xml | 4 ++-- .../src/main/res/values-ar/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ar/03-dialogs.xml | 8 +++---- .../src/main/res/values-ar/10-preferences.xml | 2 +- .../main/res/values-ar/17-model-manager.xml | 4 ++-- .../src/main/res/values-az/02-strings.xml | 20 ++++++----------- .../src/main/res/values-az/03-dialogs.xml | 8 +++---- .../src/main/res/values-az/10-preferences.xml | 3 +-- .../main/res/values-az/17-model-manager.xml | 4 ++-- .../src/main/res/values-be/02-strings.xml | 16 ++++++-------- .../src/main/res/values-be/03-dialogs.xml | 10 +++------ .../src/main/res/values-be/10-preferences.xml | 3 +-- .../main/res/values-be/17-model-manager.xml | 4 ++-- .../src/main/res/values-bg/02-strings.xml | 20 ++++++----------- .../src/main/res/values-bg/03-dialogs.xml | 8 +++---- .../src/main/res/values-bg/10-preferences.xml | 3 +-- .../main/res/values-bg/17-model-manager.xml | 4 ++-- .../src/main/res/values-bn/02-strings.xml | 14 ++++++------ .../src/main/res/values-bn/03-dialogs.xml | 8 +++---- .../src/main/res/values-bn/10-preferences.xml | 3 +-- .../main/res/values-bn/17-model-manager.xml | 4 ++-- .../src/main/res/values-ca/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ca/03-dialogs.xml | 8 +++---- .../src/main/res/values-ca/10-preferences.xml | 3 +-- .../main/res/values-ca/17-model-manager.xml | 4 ++-- .../src/main/res/values-ckb/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ckb/03-dialogs.xml | 8 +++---- .../main/res/values-ckb/10-preferences.xml | 3 +-- .../main/res/values-ckb/17-model-manager.xml | 4 ++-- .../src/main/res/values-cs/02-strings.xml | 22 +++++++------------ .../src/main/res/values-cs/03-dialogs.xml | 8 +++---- .../src/main/res/values-cs/10-preferences.xml | 3 +-- .../main/res/values-cs/17-model-manager.xml | 4 ++-- .../src/main/res/values-da/02-strings.xml | 20 ++++++----------- .../src/main/res/values-da/03-dialogs.xml | 8 +++---- .../src/main/res/values-da/10-preferences.xml | 3 +-- .../main/res/values-da/17-model-manager.xml | 4 ++-- .../src/main/res/values-de/02-strings.xml | 20 ++++++----------- .../src/main/res/values-de/03-dialogs.xml | 6 ++--- .../src/main/res/values-de/10-preferences.xml | 3 +-- .../main/res/values-de/17-model-manager.xml | 4 ++-- .../src/main/res/values-el/02-strings.xml | 20 ++++++----------- .../src/main/res/values-el/03-dialogs.xml | 8 +++---- .../src/main/res/values-el/10-preferences.xml | 3 +-- .../main/res/values-el/17-model-manager.xml | 4 ++-- .../src/main/res/values-eo/02-strings.xml | 14 ++++++------ .../src/main/res/values-eo/03-dialogs.xml | 6 ++--- .../src/main/res/values-eo/10-preferences.xml | 2 +- .../main/res/values-eo/17-model-manager.xml | 4 ++-- .../src/main/res/values-es-rAR/02-strings.xml | 19 ++++++---------- .../src/main/res/values-es-rAR/03-dialogs.xml | 8 +++---- .../main/res/values-es-rAR/10-preferences.xml | 3 +-- .../res/values-es-rAR/17-model-manager.xml | 4 ++-- .../src/main/res/values-es-rES/02-strings.xml | 19 ++++++---------- .../src/main/res/values-es-rES/03-dialogs.xml | 8 +++---- .../main/res/values-es-rES/10-preferences.xml | 3 +-- .../res/values-es-rES/17-model-manager.xml | 4 ++-- .../src/main/res/values-et/02-strings.xml | 20 ++++++----------- .../src/main/res/values-et/03-dialogs.xml | 8 +++---- .../src/main/res/values-et/10-preferences.xml | 3 +-- .../main/res/values-et/17-model-manager.xml | 4 ++-- .../src/main/res/values-eu/02-strings.xml | 20 ++++++----------- .../src/main/res/values-eu/03-dialogs.xml | 8 +++---- .../src/main/res/values-eu/10-preferences.xml | 3 +-- .../main/res/values-eu/17-model-manager.xml | 4 ++-- .../src/main/res/values-fa/02-strings.xml | 20 ++++++----------- .../src/main/res/values-fa/03-dialogs.xml | 6 ++--- .../src/main/res/values-fa/10-preferences.xml | 3 +-- .../main/res/values-fa/17-model-manager.xml | 4 ++-- .../src/main/res/values-fi/02-strings.xml | 17 ++++++-------- .../src/main/res/values-fi/03-dialogs.xml | 8 +++---- .../src/main/res/values-fi/10-preferences.xml | 3 +-- .../main/res/values-fi/17-model-manager.xml | 4 ++-- .../src/main/res/values-fil/02-strings.xml | 19 ++++++---------- .../src/main/res/values-fil/03-dialogs.xml | 8 +++---- .../main/res/values-fil/10-preferences.xml | 3 +-- .../main/res/values-fil/17-model-manager.xml | 4 ++-- .../src/main/res/values-fr/02-strings.xml | 20 ++++++----------- .../src/main/res/values-fr/03-dialogs.xml | 6 ++--- .../src/main/res/values-fr/10-preferences.xml | 2 +- .../main/res/values-fr/17-model-manager.xml | 4 ++-- .../src/main/res/values-fy/02-strings.xml | 20 ++++++----------- .../src/main/res/values-fy/03-dialogs.xml | 8 +++---- .../src/main/res/values-fy/10-preferences.xml | 3 +-- .../main/res/values-fy/17-model-manager.xml | 4 ++-- .../src/main/res/values-ga/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ga/03-dialogs.xml | 8 +++---- .../src/main/res/values-ga/10-preferences.xml | 3 +-- .../main/res/values-ga/17-model-manager.xml | 4 ++-- .../src/main/res/values-gl/02-strings.xml | 20 ++++++----------- .../src/main/res/values-gl/03-dialogs.xml | 8 +++---- .../src/main/res/values-gl/10-preferences.xml | 3 +-- .../main/res/values-gl/17-model-manager.xml | 4 ++-- .../src/main/res/values-got/02-strings.xml | 20 ++++++----------- .../src/main/res/values-got/03-dialogs.xml | 8 +++---- .../main/res/values-got/10-preferences.xml | 3 +-- .../main/res/values-got/17-model-manager.xml | 4 ++-- .../src/main/res/values-gu/02-strings.xml | 19 ++++++---------- .../src/main/res/values-gu/03-dialogs.xml | 8 +++---- .../src/main/res/values-gu/10-preferences.xml | 2 +- .../main/res/values-gu/17-model-manager.xml | 4 ++-- .../src/main/res/values-heb/02-strings.xml | 14 ++++++------ .../src/main/res/values-heb/03-dialogs.xml | 6 ++--- .../main/res/values-heb/10-preferences.xml | 3 +-- .../main/res/values-heb/17-model-manager.xml | 4 ++-- .../src/main/res/values-hi/02-strings.xml | 17 ++++++-------- .../src/main/res/values-hi/03-dialogs.xml | 8 +++---- .../src/main/res/values-hi/10-preferences.xml | 2 +- .../main/res/values-hi/17-model-manager.xml | 4 ++-- .../src/main/res/values-hr/02-strings.xml | 20 ++++++----------- .../src/main/res/values-hr/03-dialogs.xml | 8 +++---- .../src/main/res/values-hr/10-preferences.xml | 3 +-- .../main/res/values-hr/17-model-manager.xml | 4 ++-- .../src/main/res/values-hu/02-strings.xml | 12 +++++----- .../src/main/res/values-hu/03-dialogs.xml | 6 ++--- .../src/main/res/values-hu/10-preferences.xml | 2 +- .../main/res/values-hu/17-model-manager.xml | 4 ++-- .../src/main/res/values-hy/02-strings.xml | 20 ++++++----------- .../src/main/res/values-hy/03-dialogs.xml | 6 ++--- .../src/main/res/values-hy/10-preferences.xml | 3 +-- .../main/res/values-hy/17-model-manager.xml | 4 ++-- .../src/main/res/values-ind/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ind/03-dialogs.xml | 8 +++---- .../main/res/values-ind/10-preferences.xml | 3 +-- .../main/res/values-ind/17-model-manager.xml | 4 ++-- .../src/main/res/values-is/02-strings.xml | 20 ++++++----------- .../src/main/res/values-is/03-dialogs.xml | 8 +++---- .../src/main/res/values-is/10-preferences.xml | 3 +-- .../main/res/values-is/17-model-manager.xml | 4 ++-- .../src/main/res/values-it/02-strings.xml | 20 ++++++----------- .../src/main/res/values-it/03-dialogs.xml | 8 +++---- .../src/main/res/values-it/10-preferences.xml | 3 +-- .../main/res/values-it/17-model-manager.xml | 4 ++-- .../src/main/res/values-iw/02-strings.xml | 14 ++++++------ .../src/main/res/values-iw/03-dialogs.xml | 6 ++--- .../src/main/res/values-iw/10-preferences.xml | 3 +-- .../main/res/values-iw/17-model-manager.xml | 4 ++-- .../src/main/res/values-ja/02-strings.xml | 22 +++++++------------ .../src/main/res/values-ja/03-dialogs.xml | 7 +++--- .../src/main/res/values-ja/07-cardbrowser.xml | 2 +- .../src/main/res/values-ja/10-preferences.xml | 3 +-- .../main/res/values-ja/17-model-manager.xml | 4 ++-- .../src/main/res/values-jv/02-strings.xml | 20 ++++++----------- .../src/main/res/values-jv/03-dialogs.xml | 8 +++---- .../src/main/res/values-jv/10-preferences.xml | 3 +-- .../main/res/values-jv/17-model-manager.xml | 4 ++-- .../src/main/res/values-ka/02-strings.xml | 19 ++++++---------- .../src/main/res/values-ka/03-dialogs.xml | 8 +++---- .../src/main/res/values-ka/10-preferences.xml | 3 +-- .../main/res/values-ka/17-model-manager.xml | 4 ++-- .../src/main/res/values-kk/02-strings.xml | 20 ++++++----------- .../src/main/res/values-kk/03-dialogs.xml | 8 +++---- .../src/main/res/values-kk/10-preferences.xml | 3 +-- .../main/res/values-kk/17-model-manager.xml | 4 ++-- .../src/main/res/values-km/02-strings.xml | 16 ++++++-------- .../src/main/res/values-km/03-dialogs.xml | 8 +++---- .../src/main/res/values-km/10-preferences.xml | 3 +-- .../main/res/values-km/17-model-manager.xml | 4 ++-- .../src/main/res/values-kn/02-strings.xml | 14 ++++++------ .../src/main/res/values-kn/03-dialogs.xml | 6 ++--- .../src/main/res/values-kn/10-preferences.xml | 2 +- .../main/res/values-kn/17-model-manager.xml | 4 ++-- .../src/main/res/values-ko/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ko/03-dialogs.xml | 8 +++---- .../src/main/res/values-ko/10-preferences.xml | 2 +- .../main/res/values-ko/17-model-manager.xml | 12 +++++----- .../src/main/res/values-ku/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ku/03-dialogs.xml | 8 +++---- .../src/main/res/values-ku/10-preferences.xml | 3 +-- .../main/res/values-ku/17-model-manager.xml | 4 ++-- .../src/main/res/values-ky/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ky/03-dialogs.xml | 8 +++---- .../src/main/res/values-ky/10-preferences.xml | 3 +-- .../main/res/values-ky/17-model-manager.xml | 4 ++-- .../src/main/res/values-lt/02-strings.xml | 20 ++++++----------- .../src/main/res/values-lt/03-dialogs.xml | 8 +++---- .../src/main/res/values-lt/10-preferences.xml | 3 +-- .../main/res/values-lt/17-model-manager.xml | 4 ++-- .../src/main/res/values-lv/02-strings.xml | 20 ++++++----------- .../src/main/res/values-lv/03-dialogs.xml | 8 +++---- .../src/main/res/values-lv/10-preferences.xml | 3 +-- .../main/res/values-lv/17-model-manager.xml | 4 ++-- .../src/main/res/values-mk/02-strings.xml | 20 ++++++----------- .../src/main/res/values-mk/03-dialogs.xml | 8 +++---- .../src/main/res/values-mk/10-preferences.xml | 3 +-- .../main/res/values-mk/17-model-manager.xml | 4 ++-- .../src/main/res/values-ml/02-strings.xml | 14 ++++++------ .../src/main/res/values-ml/03-dialogs.xml | 8 +++---- .../src/main/res/values-ml/10-preferences.xml | 3 +-- .../main/res/values-ml/17-model-manager.xml | 4 ++-- .../src/main/res/values-mn/02-strings.xml | 20 ++++++----------- .../src/main/res/values-mn/03-dialogs.xml | 8 +++---- .../src/main/res/values-mn/10-preferences.xml | 3 +-- .../main/res/values-mn/17-model-manager.xml | 4 ++-- .../src/main/res/values-mr/02-strings.xml | 14 ++++++------ .../src/main/res/values-mr/03-dialogs.xml | 6 ++--- .../src/main/res/values-mr/10-preferences.xml | 2 +- .../main/res/values-mr/17-model-manager.xml | 4 ++-- .../src/main/res/values-ms/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ms/03-dialogs.xml | 8 +++---- .../src/main/res/values-ms/10-preferences.xml | 3 +-- .../main/res/values-ms/17-model-manager.xml | 4 ++-- .../src/main/res/values-my/02-strings.xml | 20 ++++++----------- .../src/main/res/values-my/03-dialogs.xml | 8 +++---- .../src/main/res/values-my/10-preferences.xml | 3 +-- .../main/res/values-my/17-model-manager.xml | 4 ++-- .../src/main/res/values-nl/02-strings.xml | 20 ++++++----------- .../src/main/res/values-nl/03-dialogs.xml | 8 +++---- .../src/main/res/values-nl/10-preferences.xml | 3 +-- .../main/res/values-nl/17-model-manager.xml | 4 ++-- .../src/main/res/values-nn/02-strings.xml | 20 ++++++----------- .../src/main/res/values-nn/03-dialogs.xml | 8 +++---- .../src/main/res/values-nn/10-preferences.xml | 3 +-- .../main/res/values-nn/17-model-manager.xml | 4 ++-- .../src/main/res/values-no/02-strings.xml | 20 ++++++----------- .../src/main/res/values-no/03-dialogs.xml | 8 +++---- .../src/main/res/values-no/10-preferences.xml | 3 +-- .../main/res/values-no/17-model-manager.xml | 4 ++-- .../src/main/res/values-or/02-strings.xml | 20 ++++++----------- .../src/main/res/values-or/03-dialogs.xml | 8 +++---- .../src/main/res/values-or/10-preferences.xml | 3 +-- .../main/res/values-or/17-model-manager.xml | 4 ++-- .../src/main/res/values-pa/02-strings.xml | 14 ++++++------ .../src/main/res/values-pa/03-dialogs.xml | 8 +++---- .../src/main/res/values-pa/10-preferences.xml | 2 +- .../main/res/values-pa/17-model-manager.xml | 4 ++-- .../src/main/res/values-pl/02-strings.xml | 20 ++++++----------- .../src/main/res/values-pl/03-dialogs.xml | 8 +++---- .../src/main/res/values-pl/10-preferences.xml | 3 +-- .../main/res/values-pl/17-model-manager.xml | 4 ++-- .../src/main/res/values-pt-rBR/02-strings.xml | 20 ++++++----------- .../src/main/res/values-pt-rBR/03-dialogs.xml | 8 +++---- .../main/res/values-pt-rBR/10-preferences.xml | 3 +-- .../res/values-pt-rBR/17-model-manager.xml | 4 ++-- .../src/main/res/values-pt-rPT/02-strings.xml | 22 +++++++------------ .../src/main/res/values-pt-rPT/03-dialogs.xml | 8 +++---- .../main/res/values-pt-rPT/10-preferences.xml | 3 +-- .../res/values-pt-rPT/17-model-manager.xml | 4 ++-- .../src/main/res/values-ro/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ro/03-dialogs.xml | 8 +++---- .../src/main/res/values-ro/10-preferences.xml | 3 +-- .../main/res/values-ro/17-model-manager.xml | 4 ++-- .../src/main/res/values-ru/02-strings.xml | 15 ++++++------- .../src/main/res/values-ru/03-dialogs.xml | 8 +++---- .../src/main/res/values-ru/10-preferences.xml | 3 +-- .../main/res/values-ru/17-model-manager.xml | 4 ++-- .../src/main/res/values-sat/02-strings.xml | 20 ++++++----------- .../src/main/res/values-sat/03-dialogs.xml | 8 +++---- .../main/res/values-sat/10-preferences.xml | 3 +-- .../main/res/values-sat/17-model-manager.xml | 4 ++-- .../src/main/res/values-sc/02-strings.xml | 19 ++++++---------- .../src/main/res/values-sc/03-dialogs.xml | 8 +++---- .../src/main/res/values-sc/10-preferences.xml | 3 +-- .../main/res/values-sc/17-model-manager.xml | 4 ++-- .../src/main/res/values-sk/02-strings.xml | 20 ++++++----------- .../src/main/res/values-sk/03-dialogs.xml | 6 ++--- .../src/main/res/values-sk/10-preferences.xml | 3 +-- .../main/res/values-sk/17-model-manager.xml | 4 ++-- .../src/main/res/values-sl/02-strings.xml | 20 ++++++----------- .../src/main/res/values-sl/03-dialogs.xml | 8 +++---- .../src/main/res/values-sl/10-preferences.xml | 3 +-- .../main/res/values-sl/17-model-manager.xml | 4 ++-- .../src/main/res/values-sq/02-strings.xml | 20 ++++++----------- .../src/main/res/values-sq/03-dialogs.xml | 8 +++---- .../src/main/res/values-sq/10-preferences.xml | 3 +-- .../main/res/values-sq/17-model-manager.xml | 4 ++-- .../src/main/res/values-sr/02-strings.xml | 20 ++++++----------- .../src/main/res/values-sr/03-dialogs.xml | 8 +++---- .../src/main/res/values-sr/10-preferences.xml | 3 +-- .../main/res/values-sr/17-model-manager.xml | 4 ++-- .../src/main/res/values-ss/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ss/03-dialogs.xml | 8 +++---- .../src/main/res/values-ss/10-preferences.xml | 3 +-- .../main/res/values-ss/17-model-manager.xml | 4 ++-- .../src/main/res/values-sv/02-strings.xml | 19 ++++++---------- .../src/main/res/values-sv/03-dialogs.xml | 8 +++---- .../src/main/res/values-sv/10-preferences.xml | 3 +-- .../main/res/values-sv/17-model-manager.xml | 4 ++-- .../src/main/res/values-sw/02-strings.xml | 20 ++++++----------- .../src/main/res/values-sw/03-dialogs.xml | 8 +++---- .../src/main/res/values-sw/10-preferences.xml | 3 +-- .../main/res/values-sw/17-model-manager.xml | 4 ++-- .../src/main/res/values-ta/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ta/03-dialogs.xml | 8 +++---- .../src/main/res/values-ta/10-preferences.xml | 3 +-- .../main/res/values-ta/17-model-manager.xml | 4 ++-- .../src/main/res/values-te/02-strings.xml | 14 ++++++------ .../src/main/res/values-te/03-dialogs.xml | 6 ++--- .../src/main/res/values-te/10-preferences.xml | 2 +- .../main/res/values-te/17-model-manager.xml | 4 ++-- .../src/main/res/values-tg/02-strings.xml | 20 ++++++----------- .../src/main/res/values-tg/03-dialogs.xml | 8 +++---- .../src/main/res/values-tg/10-preferences.xml | 3 +-- .../main/res/values-tg/17-model-manager.xml | 4 ++-- .../src/main/res/values-tgl/02-strings.xml | 20 ++++++----------- .../src/main/res/values-tgl/03-dialogs.xml | 8 +++---- .../main/res/values-tgl/10-preferences.xml | 3 +-- .../main/res/values-tgl/17-model-manager.xml | 4 ++-- .../src/main/res/values-th/02-strings.xml | 20 ++++++----------- .../src/main/res/values-th/03-dialogs.xml | 8 +++---- .../src/main/res/values-th/10-preferences.xml | 3 +-- .../main/res/values-th/17-model-manager.xml | 4 ++-- .../src/main/res/values-ti/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ti/03-dialogs.xml | 8 +++---- .../src/main/res/values-ti/10-preferences.xml | 3 +-- .../main/res/values-ti/17-model-manager.xml | 4 ++-- .../src/main/res/values-tn/02-strings.xml | 20 ++++++----------- .../src/main/res/values-tn/03-dialogs.xml | 8 +++---- .../src/main/res/values-tn/10-preferences.xml | 3 +-- .../main/res/values-tn/17-model-manager.xml | 4 ++-- .../src/main/res/values-tr/02-strings.xml | 20 ++++++----------- .../src/main/res/values-tr/03-dialogs.xml | 8 +++---- .../src/main/res/values-tr/10-preferences.xml | 2 +- .../main/res/values-tr/17-model-manager.xml | 4 ++-- .../src/main/res/values-ts/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ts/03-dialogs.xml | 8 +++---- .../src/main/res/values-ts/10-preferences.xml | 3 +-- .../main/res/values-ts/17-model-manager.xml | 4 ++-- .../src/main/res/values-tt/02-strings.xml | 20 ++++++----------- .../src/main/res/values-tt/03-dialogs.xml | 8 +++---- .../src/main/res/values-tt/10-preferences.xml | 3 +-- .../main/res/values-tt/17-model-manager.xml | 4 ++-- .../src/main/res/values-ug/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ug/03-dialogs.xml | 8 +++---- .../src/main/res/values-ug/10-preferences.xml | 3 +-- .../main/res/values-ug/17-model-manager.xml | 4 ++-- .../src/main/res/values-uk/02-strings.xml | 19 ++++++---------- .../src/main/res/values-uk/03-dialogs.xml | 8 +++---- .../src/main/res/values-uk/10-preferences.xml | 3 +-- .../main/res/values-uk/17-model-manager.xml | 4 ++-- .../src/main/res/values-ur/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ur/03-dialogs.xml | 8 +++---- .../src/main/res/values-ur/10-preferences.xml | 3 +-- .../main/res/values-ur/17-model-manager.xml | 4 ++-- .../src/main/res/values-uz/02-strings.xml | 20 ++++++----------- .../src/main/res/values-uz/03-dialogs.xml | 8 +++---- .../src/main/res/values-uz/10-preferences.xml | 3 +-- .../main/res/values-uz/17-model-manager.xml | 4 ++-- .../src/main/res/values-ve/02-strings.xml | 20 ++++++----------- .../src/main/res/values-ve/03-dialogs.xml | 8 +++---- .../src/main/res/values-ve/10-preferences.xml | 3 +-- .../main/res/values-ve/17-model-manager.xml | 4 ++-- .../src/main/res/values-vi/02-strings.xml | 20 ++++++----------- .../src/main/res/values-vi/03-dialogs.xml | 8 +++---- .../src/main/res/values-vi/10-preferences.xml | 3 +-- .../main/res/values-vi/17-model-manager.xml | 4 ++-- AnkiDroid/src/main/res/values-wo/01-core.xml | 4 ++-- .../src/main/res/values-wo/02-strings.xml | 20 ++++++----------- .../src/main/res/values-wo/03-dialogs.xml | 8 +++---- .../src/main/res/values-wo/10-preferences.xml | 3 +-- .../main/res/values-wo/17-model-manager.xml | 4 ++-- .../src/main/res/values-xh/02-strings.xml | 20 ++++++----------- .../src/main/res/values-xh/03-dialogs.xml | 8 +++---- .../src/main/res/values-xh/10-preferences.xml | 3 +-- .../main/res/values-xh/17-model-manager.xml | 4 ++-- .../src/main/res/values-yue/02-strings.xml | 20 ++++++----------- .../src/main/res/values-yue/03-dialogs.xml | 8 +++---- .../main/res/values-yue/10-preferences.xml | 3 +-- .../main/res/values-yue/17-model-manager.xml | 4 ++-- .../src/main/res/values-zh-rCN/02-strings.xml | 22 +++++++------------ .../src/main/res/values-zh-rCN/03-dialogs.xml | 8 +++---- .../main/res/values-zh-rCN/10-preferences.xml | 3 +-- .../res/values-zh-rCN/17-model-manager.xml | 4 ++-- .../src/main/res/values-zh-rTW/02-strings.xml | 19 ++++++---------- .../src/main/res/values-zh-rTW/03-dialogs.xml | 8 +++---- .../main/res/values-zh-rTW/10-preferences.xml | 3 +-- .../res/values-zh-rTW/17-model-manager.xml | 4 ++-- .../src/main/res/values-zu/02-strings.xml | 20 ++++++----------- .../src/main/res/values-zu/03-dialogs.xml | 8 +++---- .../src/main/res/values-zu/10-preferences.xml | 3 +-- .../main/res/values-zu/17-model-manager.xml | 4 ++-- 378 files changed, 1232 insertions(+), 1955 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml index f84627990a97..b7b4bed39c14 100644 --- a/AnkiDroid/src/main/res/values-af/02-strings.xml +++ b/AnkiDroid/src/main/res/values-af/02-strings.xml @@ -233,7 +233,7 @@ Die beeld is te groot, voeg asseblief die beeld handmatig in Die videolêer is te groot, voeg asseblief die video handmatig in Die klanklêer is te groot, voeg asseblief die klank handmatig in - Android-rugsteun aan die gang. Probeer asseblief weer + Android backup in progress. Please try again Jy sal dalk iManager moet gebruik om AnkiDroid toe te laat om kortpaaie by te voeg Jou tuisskerm laat nie toe dat AnkiDroid kortpaaie byvoeg nie Fout met byvoeging van kortpad: %s @@ -305,20 +305,14 @@ Browser options Opname gestoor Besig om geselekteerde notas uit te vee - Tik \'n stem om te luister - - Stem moet geïnstalleer word voor gebruik - - Gebruik tog - + Tap a voice to listen + Voice should be installed before use + Use anyway Teks-na-spraak fout (%s) - Internet - - Installeer - - Kon nie teks-na-spraak-instellings oopmaak nie - + Internet + Install + Failed to open text to speech settings Meld asseblief aan om meer dekke af te laai Beskrywing Kon nie kopieer nie diff --git a/AnkiDroid/src/main/res/values-af/03-dialogs.xml b/AnkiDroid/src/main/res/values-af/03-dialogs.xml index 36ade9d632ef..6c107234b6f2 100644 --- a/AnkiDroid/src/main/res/values-af/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-af/03-dialogs.xml @@ -64,7 +64,7 @@ Databasis fout Skryf na die versameling het misluk. Die databasis kan korrup wees of daar mag nie genoeg leë spasie op die skyf wees nie.\n\nAs dit meer gereeld gebeur, probeer om die databasis na te gaan, die versameling te herstel of dit van \'n rugsteun te herstel. Raak “opsies” aan daarvoor.\n\Of dit kan ook \'n AnkiDroid-fout wees; rapporteer asseblief die fout sodat ons dit kan nagaan. Rapporteer fout - Daar is nie genoeg vrye stoorplek om AnkiDroid oop te maak nie. Maak \'n bietjie spasie vry om voort te gaan. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Wil jy regtig probeer om die databasis te herstel?\n\nVoor die poging begin, sal \'n kopie in subgids “%s” geskep word. Kategorie “verstek” is leeg Om kaarte by AnkiDroid te voeg, verwyder alle Notepad-kategorieë of voeg een by met die naam “verstek” @@ -212,10 +212,8 @@ Later Moenie weer wys nie Waarskuwing vir dataverlies - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Pak bestaan reeds Paknaam kan nie leeg wees nie If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-af/10-preferences.xml b/AnkiDroid/src/main/res/values-af/10-preferences.xml index 248b4b61f340..16ba5432758d 100644 --- a/AnkiDroid/src/main/res/values-af/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-af/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-af/17-model-manager.xml b/AnkiDroid/src/main/res/values-af/17-model-manager.xml index 3e62f4b670d0..10b1f165f443 100644 --- a/AnkiDroid/src/main/res/values-af/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-af/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-am/02-strings.xml +++ b/AnkiDroid/src/main/res/values-am/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-am/03-dialogs.xml b/AnkiDroid/src/main/res/values-am/03-dialogs.xml index 10a8ad3103bb..bb74e55c2525 100644 --- a/AnkiDroid/src/main/res/values-am/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-am/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-am/10-preferences.xml b/AnkiDroid/src/main/res/values-am/10-preferences.xml index aae58b25247e..419f9b2e9ae4 100644 --- a/AnkiDroid/src/main/res/values-am/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-am/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-am/17-model-manager.xml b/AnkiDroid/src/main/res/values-am/17-model-manager.xml index a2e49df4809c..e19acbb84e03 100644 --- a/AnkiDroid/src/main/res/values-am/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-am/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - ያክሉ: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index ef742e33d0b5..8653036eb563 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -249,7 +249,7 @@ الصورة كبيرة جدًا للصق، أضف الصورة يدويًا مِلَفّ الفيديو كبير جدًا، يرجى إدخال الفيديو يدويًا الملف الصوتي كبير جداً، يرجى إدخال الصوت يدوياً - النسخ الاحتياطي للأندرويد قيد التقدم. الرجاء المحاولة مجددًا + Android backup in progress. Please try again قد تحتاج إلى استخدام iManager للسماح لأنكيدرويد بإضافة اختصارات لا تسمح شاشتك الرئيسية لأنكيدرويد بإضافة اختصارات حدث خطأ عند إضافة الاختصار: %s @@ -325,20 +325,14 @@ خيارات المتصفح تم حفظ التسجيل حذف الملحوظات المحددة - انقر على صوت للاستماع - - يجب تثبيت الصوت قبل استخدامه - - استخدم على أي حال - + Tap a voice to listen + Voice should be installed before use + Use anyway خطأ في تحويل النص إلى الكلام (%s) - إنترنت - - تنصيب - - فشل فتح إعدادات تحويل النص إلى كلام - + Internet + Install + Failed to open text to speech settings الرجاء تسجيل الدخول لتنزيل المزيد من المجموعات الوصف فشل النسخ diff --git a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml index d968bb324ef7..4ed3faf681b1 100644 --- a/AnkiDroid/src/main/res/values-ar/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ar/03-dialogs.xml @@ -72,7 +72,7 @@ خطأ في قاعدة البيانات فشلت الكتابة إلى المجموعة. قد تكون قاعدة البيانات تالفة أو قد لا تكون هناك مساحة كافية على القرص.\n\nإذا كان هذا يحدث غالبًا، جرب فحص قاعدة البيانات، أو إصلاح المجموعة، أو استرجاعها من نسخة احتياطية. انقر «خيارات» لفعل ذلك. \nأو قد يكون هذا عطلًا في أنكي درويد ربما؛ الرجاء الإبلاغ عن هذا لنتحقق منه. إبلاغ عن الخطأ - لا توجد مساحة تخزين كافية لفتح AnkiDroid. أفرج عن بعض المساحة للمتابعة. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. هل تريد حقًا إصلاح قاعدة البيانات؟\n\nقبل بدء هذه المحاولة، ستُنشَأ نسخة في المجلد الفرعي “%s”. تصنيف “default” فارغ لإضافة بطاقات إلى أنكيدرويد، أزل كل تصنيفات المفكرة أو أضف تصنيفًا باسم “default” @@ -228,10 +228,8 @@ لاحقًا لا تُظهر مجدّدًا تحذير فقدان البيانات - بسبب تغييرات خصوصية الأندرويد، سيتم حذف بياناتك والنسخ الاحتياطية الآلية من هاتفك إذا تم إلغاء تثبيت التطبيق - - بسبب تغييرات خصوصية الأندرويد، سيتم حذف بياناتك والنسخ الاحتياطية الآلية من هاتفك إذا تم إلغاء تثبيت التطبيق - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled هذه الرزمة موجودة بالفعل Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ar/10-preferences.xml b/AnkiDroid/src/main/res/values-ar/10-preferences.xml index 73c6197ebe7e..849189dd4130 100644 --- a/AnkiDroid/src/main/res/values-ar/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ar/10-preferences.xml @@ -304,7 +304,7 @@ خيارات المطور تفعيل خيارات المطور إلغاء تفعيل خيارات المطور - يرجى التفكير قبل تفعيل خيارات المطور. هذه الخيارات خطرة وقد تعطل التطبيق أو مجموعتك.\n\nلاحظ أن هذه الخيارات ليست مناسبة لمعظم المستخدمين لذلك فهي ليست مترجمة بل معروضة بالإنجليزية. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ar/17-model-manager.xml b/AnkiDroid/src/main/res/values-ar/17-model-manager.xml index 9c318846b3c3..28de8a7ba385 100644 --- a/AnkiDroid/src/main/res/values-ar/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ar/17-model-manager.xml @@ -72,9 +72,9 @@ هل أنت متأكد من رغبتك في حذف نوع الملحوظة هذا؟ هل أنت متأكد من رغبتك في حذف هذا الحقل؟ - إضافة: %1$s + Add: %1$s - استنساخ: %1$s + Clone: %1$s أدخل القالب الذي سيستخدمه متصفح البطاقات لعرض بطاقاتك. استخدم هذا لعرض جواب أقصر.\n\nيمكن اختصار قالب أمامي يحتوي على «عاصمة {{Country}} هي:»\nفي متصفح البطاقات بـ «عاصمة: {{Country}}» صيغة السؤال diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml index 28e0288f1569..38610f3b019a 100644 --- a/AnkiDroid/src/main/res/values-az/02-strings.xml +++ b/AnkiDroid/src/main/res/values-az/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-az/03-dialogs.xml b/AnkiDroid/src/main/res/values-az/03-dialogs.xml index 36c60a1f1c9c..43cba5ed7764 100644 --- a/AnkiDroid/src/main/res/values-az/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-az/03-dialogs.xml @@ -64,7 +64,7 @@ Verilənlər bazası səhvi Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Səhv bildir - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Doğrudan verilənlər bazasını bərpa etməyə çalışırsınız?Keçirilməyə başlamazdan əvvəl,alt klasörlerde bir kopya yaradılacaq \"%s\" Kateqoriya \"default\" boşdur AnkiDroid kartlarını əlavə etmək üçün bütün Notepad kateqoriyalarını silin və ya \"default\" adını əlavə edin @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-az/10-preferences.xml b/AnkiDroid/src/main/res/values-az/10-preferences.xml index 4fda357d1c06..a04d6d329aae 100644 --- a/AnkiDroid/src/main/res/values-az/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-az/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-az/17-model-manager.xml b/AnkiDroid/src/main/res/values-az/17-model-manager.xml index 4a80076d0bd6..002a59502830 100644 --- a/AnkiDroid/src/main/res/values-az/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-az/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Bu sahəni silmək istədiyinizə əminsiniz? - Əlavə et: %1$s + Add: %1$s - Klonla: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index 772cf506039a..3902bf933dcd 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -241,7 +241,7 @@ Занадта вялікі відарыс, паспрабуйце ўставіць відарыс уручную Занадта вялікі відэафайл, паспрабуйце ўставіць відэа ўручную Занадта вялікі аўдыяфайл, паспрабуйце ўставіць аўдыя ўручную - Адбываецца рэзервовае капіяванне аперацыйнай сістэмы. Паспрабуйце яшчэ раз + Android backup in progress. Please try again Паспрабуйце скарыстацца праграмай iManager для таго, каб дазволіць AnkiDroid дадаваць ярлыкі Ваш галоўны экран не дазваляе праграме дадаваць ярлыкі \"Памылка дабаўлення ярлыка: %s @@ -315,16 +315,14 @@ Browser options Запіс захаваны Выдаленне выбраных нататак - Націсніце на голас, каб паслухаць - - Перад выкарыстаннем неабходна ўсталяваць голас - Усё роўна скарыстацца + Tap a voice to listen + Voice should be installed before use + Use anyway Памылка сінтэзу маўлення (%s) - Інтэрнэт - Усталяваць - Не ўдалося адкрыць налады сінтэзу маўлення - + Internet + Install + Failed to open text to speech settings Увайдзіце, каб спампаваць больш калод Апісанне Не ўдалося скапіяваць diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml index 7eabc2e271c1..4166443e7a9b 100644 --- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml @@ -68,7 +68,7 @@ Памылка базы даных Збой запісу ў калекцыю. Прычынаю можа быць пашкоджаная база даных або недахоп свабоднага месца на дыску.\n\nПаспрабуйце праверыць базу даных або аднавіць калекцыю з рэзервовай копіі. Для гэтага націсніце \"Параметры\". \n\Таксама гэта памылка можа быць выклікана самой праграмай; паведаміце пра гэта распрацоўшчыкам. Паведаміць пра памылку - Недастаткова свабоднага месца, каб адрыць AnkiDroid. Вызваліце крыху месца на прыладзе, каб працягнуць. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Вы сапраўды хочаце аднавіць базу даных?\n\nПерад спробай па яе аднаўленні, будзе створана копія ў падпапцы \'%s\'. Катэгорыя “default” нічога не змяшчае Для таго, каб дадаць карткі ў AnkiDroid, выдаліце ўсе катэгорыі Notepad або дадайце катэгорыю з назвай \"default\" @@ -220,12 +220,8 @@ Пазней Больш не паказваць Папярэджанне пра страту даных - У сувязі са змяненнямі палітыкі прыватнасці Android, пасля выдалення праграмы вашы даныя і аўтаматычныя рэзервовыя копіі будуць выдалены з вашай прылады - - - У сувязі са змяненнямі палітыкі прыватнасці Android, пасля выдалення праграмы вашы даныя і аўтаматычныя рэзервовыя копіі стануць недаступны - - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Калода ўжо існуе Калода не можа быць пустой Калі ў вас ёсць праблемы з парадкам калод (напрыклад, ‘10’ калода стаіць перад ‘2’), замяніце ‘2’ на ‘02’ diff --git a/AnkiDroid/src/main/res/values-be/10-preferences.xml b/AnkiDroid/src/main/res/values-be/10-preferences.xml index ada55da0c3cc..88eace8a4167 100644 --- a/AnkiDroid/src/main/res/values-be/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-be/10-preferences.xml @@ -301,8 +301,7 @@ Параметры распрацоўшчыка Уключыць параметры распрацоўшчыка Адключыць параметры распрацоўшчыка - Пераканайцеся, што вы сапраўды ўпэўнены ў сваіх дзеяннях. Гэтыя параметры з\'яўляюцца небяспечнымі і могуць парушыць працу праграмы або пашкодзіць вашу калекцыю.\n\nЗвярніце ўвагу, што гэтыя параметры не пасуюць для большасці карыстальнікаў і таму, яны не перакладаюцца. Па гэтай прычыны, яны пішуцца толькі на англійскай мове. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-be/17-model-manager.xml b/AnkiDroid/src/main/res/values-be/17-model-manager.xml index 5a0b4dd2867a..0ccc70fd96fb 100644 --- a/AnkiDroid/src/main/res/values-be/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-be/17-model-manager.xml @@ -68,9 +68,9 @@ Вы сапраўды хочаце выдаліць гэты тып нататкі? Вы сапраўды хочаце выдаліць гэта поле? - Дадаць: %1$s + Add: %1$s - Кланіраваць: %1$s + Clone: %1$s Увядзіце шаблон, які аглядальнік картак будзе выкарыстоўваць для адлюстравання вашых картак. Выкарыстоўвайце яго для адлюстравання найбольш дакладнага адказу.\n\n Шаблон для пярэдняга боку карткі\n \"Сталіца {{Country}}:\nможна сціснуць у аглядальніку картак да\n\"Сталіца: {{Country}}\" Фармат пытання diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml index 5f4fbe86fed0..c2c06458f33a 100644 --- a/AnkiDroid/src/main/res/values-bg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Грешка, добавяйки пряк път: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml index 0b9e151c2e14..6c695bc6b23b 100644 --- a/AnkiDroid/src/main/res/values-bg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bg/03-dialogs.xml @@ -64,7 +64,7 @@ Грешка в базата данни Писането в колекцията е неуспешна. Базата данни може да е повредена или може да няма свободно пространство на диска.\n\nАко това се случва по-често, опитайте да проверите базата данни, да поправите колекцията или да възстановите я от резервно копия. Докоснете \"Опции\" за това.\n\Това може да е грешка в AnkiDroid; Моля, съобщете за тази грешка, да можем да я проверим. Доклад грешки - Няма достатъчно място в хранилището, за да се отвори AnkiDroid. Освободете някакво място, за да продължите. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Наистина ли искате да опитате да поправите базата данни? \n\nПреди да започнете, копие ще бъде създадено в папка \"%s\". Категория \"по подразбиране\" е празна За да добавите карти за AnkiDroid, премахнете всички категории на Notepad или добавите такава с име \'default\' @@ -212,10 +212,8 @@ По-късно Без ново показване Предупреждение за загуба на данни - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-bg/10-preferences.xml b/AnkiDroid/src/main/res/values-bg/10-preferences.xml index 1491c80a5400..119b6b45b39d 100644 --- a/AnkiDroid/src/main/res/values-bg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bg/10-preferences.xml @@ -296,8 +296,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-bg/17-model-manager.xml b/AnkiDroid/src/main/res/values-bg/17-model-manager.xml index 55ce8a4507a6..f38dda468d4f 100644 --- a/AnkiDroid/src/main/res/values-bg/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-bg/17-model-manager.xml @@ -64,9 +64,9 @@ Наистина ли искате да изтриете този тип бележка? Сигурни ли сте, че желаете изтриване на модела? - Добавяне: %1$s + Add: %1$s - Клониране: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Формат на въпрос diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index 0664676cb3a5..4567f40ffea2 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -233,7 +233,7 @@ ছবি খুবই বড়, অনুগ্রহ করে ম্যানুয়ালি ছবি ঢোকান ভিডিও ফাইলটি খুব বড়, দয়া করে ভিডিওটি ম্যানুয়ালি ঢোকান৷ অডিও ফাইলটি খুব বড়, অনুগ্রহ করে ম্যানুয়ালি অডিও ঢোকান৷ - অ্যান্ড্রয়েড ব্যাকআপ চলছে। আবার চেষ্টা করুন + Android backup in progress. Please try again AnkiDroid-কে শর্টকাট যোগ করার অনুমতি দিতে আপনাকে iManager ব্যবহার করতে হতে পারে আপনার হোম স্ক্রীন AnkiDroid-কে শর্টকাট যোগ করার অনুমতি দেয় না শর্টকাট যোগ করার সময় ত্রুটি: %s @@ -305,14 +305,14 @@ Browser options রেকর্ডিং সংরক্ষিত হয় Deleting selected notes - শুনতে একটি ভয়েস আলতো চাপুন - ব্যবহারের আগে ভয়েস ইনস্টল করা উচিত - যাইহোক এটি ব্যবহার করুন + Tap a voice to listen + Voice should be installed before use + Use anyway টেক্সট টু স্পিচ ত্রুটি (%s) - ইন্টারনেট - ইনস্টল করুন - টেক্সট টু স্পিচ সেটিংস খুলতে ব্যর্থ হয়েছে + Internet + Install + Failed to open text to speech settings আরো ডেক ডাউনলোড করতে লগ ইন করুন বর্ণনা অনুলিপি ব্যর্থ হয়েছে diff --git a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml index 1c0cf570db0e..51249d409c1b 100644 --- a/AnkiDroid/src/main/res/values-bn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-bn/03-dialogs.xml @@ -64,7 +64,7 @@ ডাটাবেস ত্রুটি Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. ত্রুটি রিপোর্ট - AnkiDroid খোলার জন্য পর্যাপ্ত ফ্রি স্টোরেজ স্পেস নেই। চালিয়ে যেতে কিছু জায়গা খালি করুন। + There is not enough free storage space to open AnkiDroid. Free up some space to continue. আপনি কি ডাটাবেস মেরামত করার চেষ্টা করার বিষয়ে নিশ্চিত?\n\nপ্রয়াস শুরু করার আগে, সাবফোল্ডার “%s”-এ একটি অনুলিপি তৈরি করা হবে। বিভাগ \"ডিফল্ট\" খালি AnkiDroid-এ কার্ড যোগ করতে নোটপ্যাডের সমস্ত বিভাগ সরিয়ে ফেলুন বা \"ডিফল্ট\" নামে একটি যোগ করুন। @@ -212,10 +212,8 @@ Later আবার দেখাবেন না ডেটা হারানোর সতর্কতা - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ডেক ইতিমধ্যেই বিদ্যমান ডেকের নাম খালি রাখা যাবে না If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-bn/10-preferences.xml b/AnkiDroid/src/main/res/values-bn/10-preferences.xml index 024723d875a3..66d5d8ccea2c 100644 --- a/AnkiDroid/src/main/res/values-bn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bn/10-preferences.xml @@ -297,8 +297,7 @@ বিকাশকারী বিকল্প বিকাশকারী বিকল্পগুলি সক্ষম করুন৷ বিকাশকারী বিকল্পগুলি অক্ষম করুন - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-bn/17-model-manager.xml b/AnkiDroid/src/main/res/values-bn/17-model-manager.xml index 875e607ec032..b262d457f3e5 100644 --- a/AnkiDroid/src/main/res/values-bn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-bn/17-model-manager.xml @@ -64,9 +64,9 @@ আপনি এই নোট টাইপ মুছে ফেলার বিষয়ে নিশ্চিত? আপনি এই ক্ষেত্র মুছে ফেলার বিষয়ে নিশ্চিত? - যোগ করুন: %1$s + Add: %1$s - ক্লোন: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” প্রশ্ন বিন্যাস diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index 5ba93670e8e1..2061d5b4293e 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -233,7 +233,7 @@ La imatge és massa gran per enganxar-la. Inseriu-la manualment si us plau El vídeo és massa gran per enganxar-lo. Inseriu-lo manualment si us plau L\'àudio és massa gran per enganxar-lo. Inseriu-lo manualment si us plau - S\'està fent una còpia de seguretat d\'Android. Prova-ho un altre vegada si us plau + Android backup in progress. Please try again Potser haureu de fer servir iManager per permetre a AnkiDroid afegir dreceres La pantalla d\'inici no permet que AnkiDroid afegeixi dreceres Error afegint drecera: %s @@ -305,20 +305,14 @@ Browser options S\'ha desat l\'enregistrament. Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Descripció No s\'ha pogut copiar! diff --git a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml index 6bcb708fe277..0043277a3fec 100644 --- a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml @@ -64,7 +64,7 @@ Error de la base de dades No s\'ha pogut escriure a la col·lecció. La base de dades podria estar malmesa o potser no hi ha prou espai buit al disc. \n\nSi això passa més sovint, proveu de comprovar la base de dades, reparar la col·lecció o restaurar-la des d\'una còpia de seguretat. Toqueu \"opcions\" per fer-ho.\n\nTambé podria ser un error d\'AnkiDroid; Informeu de l’error perquè puguem comprovar-ho. Informa dels errors - No hi ha prou espai d\'emmagatzematge lliure per obrir AnkiDroid. Allibereu una mica d\'espai per continuar. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Realment voleu intentar reparar la base de dades? \n\nAbans de començar, es desarà una còpia a la carpeta \'%s\'. La categoria \'per omissió\' és buida Per afegir fitxes d\'AnkiDroid treieu totes les categories del bloc de notes o afegiu-ne una anomenada \'per omissió\' @@ -212,10 +212,8 @@ Més endavant No ho mostris més Avís de pèrdua de dades - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ca/10-preferences.xml b/AnkiDroid/src/main/res/values-ca/10-preferences.xml index 826fc3d511cb..2ec70292a9a1 100644 --- a/AnkiDroid/src/main/res/values-ca/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ca/10-preferences.xml @@ -296,8 +296,7 @@ Opcions per a desenvolupadors Activa les opcions per a desenvolupadors Desactiva les opcions per a desenvolupadors - Assegureu-vos abans d\'activar les opcions de desenvolupador. Aquestes opcions són perilloses i podrien trencar l\'aplicació o danyar la vostra col·lecció.\n\nTingueu en compte que aquestes opcions no són adequades per a la majoria dels usuaris i, per tant, no estan traduïdes, de manera que estan en anglès. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ca/17-model-manager.xml b/AnkiDroid/src/main/res/values-ca/17-model-manager.xml index e8c1167937be..2b47155e3eb5 100644 --- a/AnkiDroid/src/main/res/values-ca/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ca/17-model-manager.xml @@ -64,9 +64,9 @@ Esteu segur de que voleu suprimir aquest tipus de nota? Esteu segur que voleu suprimir aquest camp? - Afegeix: %1$s + Add: %1$s - Clona: %1$s + Clone: %1$s Introduïu la plantilla que utilitzarà el navegador de cartes per mostrar les vostres cartes. Utilitzeu aquesta opció per mostrar una resposta més concisa.\n\nUna plantilla frontal de\n “La capital de {{Country}} és:”\nes pot comprimir al navegador de targetes com\n “Capital: {{Country}}” Format de la pregunta diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index 2b293d912ddc..5236a1f3c028 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml index d99b9cb1805c..5b0841bd8f48 100644 --- a/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ckb/03-dialogs.xml @@ -64,7 +64,7 @@ Çewtiya danegehê Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml index 76fb669b6a37..1a12afc3c31c 100644 --- a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml b/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ckb/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index 077c692dab2c..6528744fb89c 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -195,7 +195,7 @@ Pozadí Vybrat obrázek - Remove background + Odebrat pozadí Odebrat pozadí? Obnovit výchozí @@ -241,7 +241,7 @@ Obrázek je příliš velký, vložte ho prosím ručně Video je příliš velké, vložte ho prosím ručně Zvukový soubor je příliš velký, vložte ho prosím ručně - Probíhá zálohování Androidu. Zkuste to prosím znovu + Android backup in progress. Please try again Prosím použijte iManager, abyste povolili přidávání zástupců AnkiDroid Vaše domovská obrazovka neumožňuje AnkiDroidu přidávat zástupce Chyba při přidávání zástupce: %s @@ -315,20 +315,14 @@ Možnosti prohlížeče Nahrávka uložena Mažou se vybrané poznámky - Klepnutím na hlas poslechnout - - Hlas by měl být před použitím nainstalován - - Přesto použít - + Tap a voice to listen + Voice should be installed before use + Use anyway Chyba převodu textu na řeč (%s) - Internet - - Instalovat - - Nepodařilo se otevřít nastavení převodu textu na řeč - + Internet + Install + Failed to open text to speech settings Prosím přihlaste se, abyste mohli stáhnout více balíčků Popisek Kopírování se nezdařilo diff --git a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml index c1a511b8c5a7..72f3d2f70815 100644 --- a/AnkiDroid/src/main/res/values-cs/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-cs/03-dialogs.xml @@ -68,7 +68,7 @@ Chyba databáze Zápis do kolekce se nezdařil. Databáze může být poškozena nebo nemusí být dostatek prázdného místa na disku.\n\nPokud se to děje častěji, zkuste zkontrolovat databázi, opravit kolekci nebo ji obnovit ze zálohy. Klepněte na „možnosti“.\n\nNebo to může být také chyba AnkiDroid, prosím nahlaste chybu, abychom to mohli zkontrolovat. Hlášení chyby - Není dostatek volného místa v úložišti pro otevření AnkiDroid. Uvolněte nějaké místo, abyste mohli pokračovat. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Opravdu se chcete pokusit opravit databázi?\n\nPřed obnovou bude vytvořena kopie v podadresáři „%s“. Kategorie „výchozí“ je prázdná Chcete-li přidat karty do AnkiDroid, odstraňte všechny kategorie Poznámkového bloku nebo přidejte jednu s názvem „default“ @@ -220,10 +220,8 @@ Později Znovu nezobrazovat Varování před ztrátou dat - V důsledku změn ochrany osobních údajů systému Android budou vaše data a automatické zálohy odstraněny z telefonu, pokud bude aplikace odinstalována - - V důsledku změn ochrany osobních údajů systému Android budou vaše data a automatické zálohy nedostupné, pokud bude aplikace odinstalována - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Balíček již existuje Deck name cannot be empty Pokud máte problémy s pořadím balíčků (např. „10“ je před „2“), nahraďte „2“ číslem „02“ diff --git a/AnkiDroid/src/main/res/values-cs/10-preferences.xml b/AnkiDroid/src/main/res/values-cs/10-preferences.xml index 8b03c0412e8d..e77478b1e220 100644 --- a/AnkiDroid/src/main/res/values-cs/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-cs/10-preferences.xml @@ -300,8 +300,7 @@ Možnosti pro vývojáře Povolit možnosti pro vývojáře Zakázat možnosti pro vývojáře - Prosím buďte si jisti před povolením možností pro vývojáře. Tyto možnosti jsou nebezpečné a mohou poškodit aplikaci nebo vaši kolekci.\n\nVšimněte si, že tyto možnosti nejsou vhodné pro většinu uživatelů, a proto nejsou přeloženy, takže jsou v angličtině. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-cs/17-model-manager.xml b/AnkiDroid/src/main/res/values-cs/17-model-manager.xml index 31baf6d625f4..d2ab662ce0d7 100644 --- a/AnkiDroid/src/main/res/values-cs/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-cs/17-model-manager.xml @@ -68,9 +68,9 @@ Opravdu si přejete odstranit tento typ poznámky? Opravdu si přejete odstranit toto pole? - Přidat: %1$s + Add: %1$s - Klon: %1$s + Clone: %1$s Zadejte šablonu, kterou bude prohlížeč karet používat k zobrazení vašich karet. Použijte tuto možnost, abyste zobrazili stručnější odpovědi.\n\nŠablona líce\n„Hlavní město země {{Country}} je:“\nmůže být zestručněna v prohlížeči karet na\n„Hlavní město: {{Country}}“ Formát otázky diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml index 45fb462a9dca..edc52f998108 100644 --- a/AnkiDroid/src/main/res/values-da/02-strings.xml +++ b/AnkiDroid/src/main/res/values-da/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-da/03-dialogs.xml b/AnkiDroid/src/main/res/values-da/03-dialogs.xml index 4bc3e0510360..b4fe8a9fe445 100644 --- a/AnkiDroid/src/main/res/values-da/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-da/03-dialogs.xml @@ -64,7 +64,7 @@ Database fejl Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - Der er ikke nok ledig lagerplads til at åbne AnkiDroid. Frigør plads for at fortsætte. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-da/10-preferences.xml b/AnkiDroid/src/main/res/values-da/10-preferences.xml index d7f181212461..87963480083c 100644 --- a/AnkiDroid/src/main/res/values-da/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-da/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-da/17-model-manager.xml b/AnkiDroid/src/main/res/values-da/17-model-manager.xml index aee4d51cdafd..eea20a4de042 100644 --- a/AnkiDroid/src/main/res/values-da/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-da/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index bb0dd039df32..722c6b00b582 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -233,7 +233,7 @@ Das Bild ist zu groß, bitte fügen Sie das Bild manuell ein Die Videodatei ist zu groß, bitte fügen Sie das Video manuell ein Die Audiodatei ist zu groß, bitte fügen Sie das Audio manuell ein - Android-Sicherung im Gange. Bitte versuchen Sie es erneut + Android backup in progress. Please try again Bitte verwenden Sie iManager, um AnkiDroid das Hinzufügen von Verknüpfungen zu erlauben Ihr Startbildschirm erlaubt AnkiDroid nicht, Verknüpfungen hinzuzufügen Fehler beim Hinzufügen der Verknüpfung: %s @@ -305,20 +305,14 @@ Browser Einstellungen Aufnahme gespeichert Lösche ausgewählte Notizen - Stimme berühren, um sie anzuhören - - Stimme sollte vor der Benutzung installiert sein - - Trotzdem - verwenden + Tap a voice to listen + Voice should be installed before use + Use anyway Fehler in der Sprachausgabe (%s) - Internet - - Installation - - Fehler beim Öffnen der TTS-Einstellungen - + Internet + Install + Failed to open text to speech settings Bitte melde dich an, um weitere Stapel herunterzuladen Beschreibung Kopieren fehlgeschlagen diff --git a/AnkiDroid/src/main/res/values-de/03-dialogs.xml b/AnkiDroid/src/main/res/values-de/03-dialogs.xml index 14a4b52bd9ed..e653d6552973 100644 --- a/AnkiDroid/src/main/res/values-de/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-de/03-dialogs.xml @@ -64,7 +64,7 @@ Datenbankfehler Es konnte nicht in die Sammlung geschrieben werden. Dies kann an einer beschädigten Datenbank oder an unzureichendem Speicherplatz liegen.\n\nFalls dies häufiger vorkommt, versuchen Sie bitte, die Datenbank zu überprüfen, die Sammlung zu reparieren oder sie von einer Sicherung wiederherzustellen. Tippen Sie hierfür auf »Optionen«.\n\nEs könnte aber auch ein Fehler in AnkiDroid vorliegen. Damit wird dies überprüfen können, bitten wir Sie, den Fehler zu melden. Fehler melden - Es gibt nicht genug freien Speicherplatz, um AnkiDroid zu öffnen. Freier Speicherplatz zum Fortfahren. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Möchten Sie wirklich versuchen, die Datenbank zu reparieren?\n\nBevor der Versuch startet, wird eine Kopie im Unterordner »%s« angelegt. Kategorie »Standard« ist leer Entfernen Sie alle Notepad-Kategorien um Karten zu AnkiDroid hinzuzufügen oder fügen Sie die Kategorie »Standard« hinzu @@ -212,8 +212,8 @@ Später Nicht erneut anzeigen Warnung wegen Datenverlust - Aufgrund von Änderungen in den Privatsphäreeinstellungen von Android, werden deine Daten und automatische Backups gelöscht, sobald du die App deinstallierst. - Aufgrund von Änderungen in den Privatsphäreeinstellungen von Android, werden deine Daten und automatische Backups nicht mehr zugreifbar sein, falls du die App deinstallierst. + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Stapel bereits vorhanden Stapelname darf nicht leer sein Wenn Sie Probleme mit der Reihenfolge der Stapel haben (z.B. \'10\' erscheint vor \'2\'), ersetzen Sie \'2\' durch \'02\' diff --git a/AnkiDroid/src/main/res/values-de/10-preferences.xml b/AnkiDroid/src/main/res/values-de/10-preferences.xml index cab02774a1e1..23dd939c435c 100644 --- a/AnkiDroid/src/main/res/values-de/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-de/10-preferences.xml @@ -296,8 +296,7 @@ Entwicklermodus Entwicklermodus aktivieren Entwicklermodus deaktivieren - Bevor Sie den Entwicklermodus aktivieren, beachten Sie bitte, dass Sie damit die App oder Ihre Sammlung beschädigen können.\n\nBeachten Sie außerdem, dass diese Einstellungen für die meisten Benutzer nicht geeignet sind und deshalb nicht übersetzt werden und daher nur auf Englisch verfügbar sind. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-de/17-model-manager.xml b/AnkiDroid/src/main/res/values-de/17-model-manager.xml index e20dcbb958e3..fa5352aa4f28 100644 --- a/AnkiDroid/src/main/res/values-de/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-de/17-model-manager.xml @@ -64,9 +64,9 @@ Möchten Sie diesen Notiztyp wirklich löschen? Möchten Sie dieses Feld wirklich löschen? - Hinzufügen: %1$s + Add: %1$s - Klonen: %1$s + Clone: %1$s Geben Sie die Vorlage ein, die die Kartenübersicht zum Anzeigen Ihrer Karten verwendet, um eine kürzere Antwort anzuzeigen.\n\nEine Vorderseitenvorlage von\n»Die Hauptstadt von {{Country}} ist:«\nkönnte in der Kartenübersicht komprimiert werden zu\n»Hauptstadt: {{Country}}« Frageformat diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index 7e85cb05b044..97e17a82c6c7 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -233,7 +233,7 @@ Η εικόνα είναι πολύ μεγάλη, παρακαλώ εισάγετε την εικόνα χειροκίνητα Το αρχείο βίντεο είναι πολύ μεγάλο, παρακαλώ εισάγετε το βίντεο χειροκίνητα Το αρχείο ήχου είναι πολύ μεγάλο, παρακαλώ εισάγετε ήχο χειροκίνητα - Αντίγραφο ασφαλείας Android σε εξέλιξη. Παρακαλώ προσπαθήστε ξανά + Android backup in progress. Please try again Ίσως χρειαστεί να χρησιμοποιήσετε το iManager για να επιτρέψετε στο AnkiDroid να προσθέσει συντομεύσεις Η αρχική σας οθόνη δεν επιτρέπει στο AnkiDroid να προσθέσει συντομεύσεις Σφάλμα κατά την προσθήκη συντόμευσης: %s @@ -305,20 +305,14 @@ Browser options Η ηχογράφηση αποθηκεύτηκε Διαγραφή επιλεγμένων σημειώσεων - Πατήστε μια φωνή για ακρόαση - - Η φωνή πρέπει να εγκατασταθεί πριν από τη χρήση - - Χρήση οπωσδήποτε - + Tap a voice to listen + Voice should be installed before use + Use anyway Σφάλμα κειμένου σε ομιλία (%s) - Διαδίκτυο - - Εγκατάσταση - - Αποτυχία ανοίγματος ρυθμίσεων κειμένου σε ομιλία - + Internet + Install + Failed to open text to speech settings Παρακαλώ συνδεθείτε για να κατεβάσετε περισσότερες τράπουλες Περιγραφή Αποτυχία αντιγραφής diff --git a/AnkiDroid/src/main/res/values-el/03-dialogs.xml b/AnkiDroid/src/main/res/values-el/03-dialogs.xml index f7895f65d938..6ed1cc24b0c7 100644 --- a/AnkiDroid/src/main/res/values-el/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-el/03-dialogs.xml @@ -64,7 +64,7 @@ Σφάλμα βάσης δεδομένων Παρουσιάστηκε σφάλμα κατά την εγγραφή στη συλλογή. Αυτό θα μπορεί να σχετίζεται με κατεστραμμένη βάση δεδομένων ή ανεπαρκή αποθηκευτικό χώρο.\n\nΑν συμβαίνει συχνά, προσπαθήστε να ελέγξετε τη βάση δεδομένων, να επιδιορθώσετε τη συλλογή ή να την επαναφέρετε από ένα αντίγραφο. Κάντε κλικ στις σχετικές «επιλογές».\n\nΕκτός αυτού, μπορεί να είναι και σφάλμα του AnkiDroid· παρακαλούμε αναφέρετε το σφάλμα ώστε να το ελέγξουμε. Αναφορά σφάλματος - Δεν υπάρχει αρκετός ελεύθερος αποθηκευτικός χώρος για το άνοιγμα του AnkiDroid. Ελευθερώστε λίγο χώρο για να συνεχίσετε. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Είστε βέβαιοι ότι θέλετε να επιδιορθώσετε τη βάση δεδομένων;\n\nΠριν να ξεκινήσει η απόπειρα, θα δημιουργηθεί ένα αντίγραφο στον υποφάκελο \'%s\'. Η κατηγορία «προεπιλεγμένο» είναι κενή Για να προσθέσετε κάρτες στο Ανκί-Ντρόιντ αφαιρέστε όλες τις κατηγορίες Notepad ή προσθέστε μία με όνομα «προεπιλεγμένο» @@ -212,10 +212,8 @@ Αργότερα Να μην εμφανιστεί ξανά Προειδοποίηση απώλειας δεδομένων - Λόγω αλλαγών στο απόρρητο του Android, τα δεδομένα και τα αυτοματοποιημένα αντίγραφα ασφαλείας θα διαγραφούν από το τηλέφωνό σας, εάν η εφαρμογή απεγκατασταθεί - - Λόγω αλλαγών στο απόρρητο του Android, τα δεδομένα και τα αυτοματοποιημένα αντίγραφα ασφαλείας δεν θα είναι προσβάσιμα, εάν η εφαρμογή απεγκατασταθεί - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Αυτή η τράπουλα υπάρχει ήδη Το όνομα της τράπουλας δεν μπορεί να είναι κενό If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-el/10-preferences.xml b/AnkiDroid/src/main/res/values-el/10-preferences.xml index ff04aaab6dbb..b3c3c0e6f50a 100644 --- a/AnkiDroid/src/main/res/values-el/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-el/10-preferences.xml @@ -297,8 +297,7 @@ Επιλογές για προγραμματιστές Ενεργοποίηση επιλογών προγραμματιστών Απενεργοποίηση επιλογών προγραμματιστών - Βεβαιωθείτε πριν ενεργοποιήσετε τις επιλογές προγραμματιστή. Αυτές οι επιλογές είναι επικίνδυνες και θα μπορούσαν να καταστρέψουν την εφαρμογή ή να καταστρέψουν τη συλλογή σας.\n\nΣημειώστε ότι αυτές οι επιλογές δεν είναι κατάλληλες για τους περισσότερους χρήστες και ως εκ τούτου δεν μεταφράζονται, οπότε είναι στα αγγλικά. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-el/17-model-manager.xml b/AnkiDroid/src/main/res/values-el/17-model-manager.xml index 8333f9c3f4fa..19e50d681234 100644 --- a/AnkiDroid/src/main/res/values-el/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-el/17-model-manager.xml @@ -64,9 +64,9 @@ Θέλετε σίγουρα να διαγράψετε αυτό τον τύπο σημείωσης; Θέλετε σίγουρα να διαγράψετε αυτό το πεδίο; - Προσθήκη: %1$s + Add: %1$s - Κλώνος: %1$s + Clone: %1$s Εισάγετε το πρότυπο που θα χρησιμοποιήσει ο περιηγητής της κάρτας για την εμφάνιση των καρτών σας. Χρησιμοποιήστε αυτό για να εμφανίσετε μια πιο συνοπτική απάντηση.\n\nΈνα μπροστινό πρότυπο του\n“Η πρωτεύουσα του {{Country}} είναι:”\nθα μπορούσε να συμπιεστεί στον περιηγητή της κάρτας σε\n“Capital: {{Country}}” Μορφή ερώτησης diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index aa07e30f0f65..db3c1392d6ea 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -233,7 +233,7 @@ La bildo estas tro granda, enmetu la bildon permane La filmeto estas tro granda enmetu la filmeton permane La sonaĵo estas tro granda, enmetu la sonaĵon permane - Restarigado de Android-sekurkopio. Reprovu + Android backup in progress. Please try again Uzu iManager por permesi al AnkiDroid krei fenestraĵojn Via aplikaĵlanĉilo ne permesas al AnkiDroid krei fenestraĵojn Eraro dum krei fenestraĵon: %s @@ -305,14 +305,14 @@ Browser options Sonaĵo konservita Forigado de elektitaj notoj - Frapetu voĉon por aŭskulti - Voĉo devas esti instalita antaŭ ol uzi ĝin - Uzi malgraŭ tio + Tap a voice to listen + Voice should be installed before use + Use anyway Eraro pri parolsintezilo (%s) - Enretaj - Instaleblaj - Malsukcesis malfermi agordojn pri parolsintezo + Internet + Install + Failed to open text to speech settings Ensalutu por elŝuti pliajn kartarojn Priskribo Malsukcesis kopii diff --git a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml index d28824c2d5cc..f935383efc63 100644 --- a/AnkiDroid/src/main/res/values-eo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eo/03-dialogs.xml @@ -64,7 +64,7 @@ Eraro pri datumbazo Malsukcesis skribi al la kolekto. La datumbazo povas esti difektita aŭ eble mankas spaco en la konservejo.\n\nSe tio ĉi okazos pli ofte, provu kontroli la datumbazon, ripari la kolekton aŭ restarigi ĝin el sekurkopio. Frapetu “agordojn” por fari tion.\nAŭ tio ĉi povas esti eraro en AnkiDroid, do bonvolu raporti ĝin por ke ni povu ĝin ripari. Raporti eraron - Ne estas sufiĉe da libera konserva spaco por malfermi AnkiDroid. Liberigi iom da spaco por pluigi. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Ĉu vi certe volas ripari la datumbazon?\n\nAntaŭ ol komenci, kopio estos kreita en subdosierujo “%s”. La ĉefa kategorio estas malplena Por aldoni kartojn al AnkiDroid, forigu ĉiujn kategoriojn de kajero kaj aldonu unu nomitan «default» @@ -212,8 +212,8 @@ Poste Ne montri denove Averto pri perdi datumojn - Pro privatecaj ŝanĝoj en la operaciumo Android, viaj datumoj kaj aŭtomataj sekurkopioj estos forigitaj el via telefono, se la aplikaĵo estos malinstalita - Pro privatecaj ŝanĝoj en la operaciumo Android, viaj datumoj kaj aŭtomataj sekurkopioj estos nealireblaj, se la aplikaĵo estos malinstalita + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Kartaro jam ekzistas Nomo de kartaro ne estu malplena Se vi havas problemojn pri karta ordigo (ekzemple “10” troviĝas antaŭ “2”), renomu “2” al “02” diff --git a/AnkiDroid/src/main/res/values-eo/10-preferences.xml b/AnkiDroid/src/main/res/values-eo/10-preferences.xml index 8c49d5fc33af..1c0a8108ef8a 100644 --- a/AnkiDroid/src/main/res/values-eo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eo/10-preferences.xml @@ -292,7 +292,7 @@ Programistaj agordoj Aktivigi programistajn agordojn Malaktivigi programistajn agordojn - Antaŭ ol aktivigi programistajn agordojn, certiĝu, ke vi scias kion vi faras. Tiuj ĉi agordoj estas danĝeraj kaj povas difekti la aplikaĵon aŭ vian kolekton.\n\nRimarko: tiuj ĉi agordoj ne taŭgas por kutimaj uzantoj, do ne estas tradukitaj (estas en la angla). + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-eo/17-model-manager.xml b/AnkiDroid/src/main/res/values-eo/17-model-manager.xml index f5d563702c27..e2dc5e1ccbf2 100644 --- a/AnkiDroid/src/main/res/values-eo/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-eo/17-model-manager.xml @@ -64,9 +64,9 @@ Ĉu vi certe volas forigi tiun ĉi nototipon? Ĉu vi efektive volas forigi tiun kampon? - Aldoni: %1$s + Add: %1$s - Kloni: %1$s + Clone: %1$s Enigu la ŝablonon, kiu estos uzata de la kart‑foliumilo por vidigi kartojn. Uzu tion ĉi por vidigi pli koncizan respondon.\n\nEkzemple la antaŭa ŝablono de\n\n“La ĉefurbo de {{Country}} estas:”\npovus esti mallongigita al\n“Ĉefurbo: {{Country}}” Formo de demando 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 133d7211ce16..2384629a2cfa 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -233,7 +233,7 @@ La imagen es demasiado grande, por favor inserta la imagen manualmente El archivo de vídeo es demasiado grande, por favor inserta el vídeo manualmente El archivo de audio es demasiado grande, por favor inserta el audio manualmente - Copia de seguridad Android en progreso. Inténtalo de nuevo + Android backup in progress. Please try again Puede que necesite usar iManager para permitir que AnkiDroid añada accesos directos Tu pantalla de inicio no permite que AnkiDroid añada accesos directos Error al añadir acceso directo: %s @@ -305,19 +305,14 @@ Opciones del explorador Grabación guardada Eliminando notas seleccionadas - Toca una voz para escucharla - - La voz debe instalarse antes de usarla - Utilizar de todos modos - + Tap a voice to listen + Voice should be installed before use + Use anyway Error de conversión de texto a voz (%s) - Internet - - Instalar - - Error al abrir la configuración de texto a voz - + Internet + Install + Failed to open text to speech settings Por favor, inicia sesión para descargar más mazos Descripción Error al copiar 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 511e92f83c89..2f87fdab2044 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/03-dialogs.xml @@ -64,7 +64,7 @@ Error en base de datos Se ha producido un error al escribir en la colección. Esto podría estar relacionado con una base de datos dañada o con un espacio en disco insuficiente.\n\nSi esto ocurre con más frecuencia, intenta verificar la base de datos, reparar la colección o restaurar desde una copia de seguridad. Para ello, presiona \"Opciones\".\n\nDe todos modos, podría ser un error de AnkiDroid; por favor, informa del error para que podamos comprobarlo. Reportar un error - No hay suficiente espacio de almacenamiento libre para abrir AnkiDroid. Libera algo de espacio para continuar. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ¿Desea realmente intentar reparar la base de datos?\n\nAntes de comenzar con el intento, una copia será creada en el subdirectorio \'%s\'. La categoría \'predeterminado\' está vacía Para añadir tarjetas a AnkiDroid elimine todas las categorías de los blocks de notas y agregue una llamada \'predeterminado\' @@ -212,10 +212,8 @@ Más tarde No mostrar de nuevo Aviso de pérdida de datos - Debido a cambios en la privacidad de Android, tus datos y copias de seguridad automatizadas se eliminarán de tu teléfono si la aplicación es desinstalada - - Debido a cambios en la privacidad de Android, tus datos y copias de seguridad automatizadas serán inaccesibles si la aplicación es desinstalada - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled El mazo ya existe. El nombre del mazo no puede estar vacío Si tienes problemas de ordenamiento de mazos (por ejemplo ‘10’ aparece antes de ‘2’), reemplaza ‘2’ con ‘02’ diff --git a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml index 56bcd859927e..98f252272ffd 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml @@ -296,8 +296,7 @@ Opciones de desarrollador Activar opciones de desarrollador Desactivar opciones de desarrollador - Por favor, asegúrate antes de activar las opciones de desarrollador. Estas opciones son peligrosas y podrían romper la aplicación o dañar tu colección.\n\nTen en cuenta que estas opciones no son adecuadas para la mayoría de los usuarios y, por lo tanto, no están traducidas, así que están en inglés. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml b/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml index f11343bf38f4..3239a4ae9463 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml @@ -64,9 +64,9 @@ ¿Está seguro que desea eliminar este tipo de nota? ¿Seguro que deseas eliminar este campo? - Añadir: %1$s + Add: %1$s - Clonar: %1$s + Clone: %1$s Introduce la plantilla que utilizará el navegador de la tarjeta para mostrar tus tarjetas. Utiliza esto para mostrar una respuesta más concisa.\n\nUna plantilla del anverso de\n“La capital de {{Country}} es:”\npodría comprimirse en el navegador de la tarjeta a\n“Capital: {{Country}}” Formato de Pregunta 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 0e6b60ca08f4..2dfa2336b1b4 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -233,7 +233,7 @@ La imagen es demasiado grande, por favor inserta la imagen manualmente El archivo de vídeo es demasiado grande, por favor inserta el vídeo manualmente El archivo de audio es demasiado grande, por favor inserta el audio manualmente - Copia de seguridad Android en progreso. Inténtalo de nuevo + Android backup in progress. Please try again Puede que necesite usar iManager para permitir que AnkiDroid añada accesos directos Tu pantalla de inicio no permite que AnkiDroid añada accesos directos Error al añadir acceso directo: %s @@ -305,19 +305,14 @@ Opciones del explorador Grabación guardada Eliminando notas seleccionadas - Toca una voz para escucharla - - La voz debe instalarse antes de usarla - Utilizar de todos modos - + Tap a voice to listen + Voice should be installed before use + Use anyway Error de conversión de texto a voz (%s) - Internet - - Instalar - - Error al abrir la configuración de texto a voz - + Internet + Install + Failed to open text to speech settings Por favor, inicia sesión para descargar más mazos Descripción Error al copiar 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 8d2165b014b8..abb8d6bc777e 100644 --- a/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-es-rES/03-dialogs.xml @@ -64,7 +64,7 @@ Error en la base de datos Se ha producido un error al escribir en la colección. Esto podría estar relacionado con una base de datos dañada o con un espacio en disco insuficiente.\n\nSi esto ocurre con más frecuencia, intenta verificar la base de datos, reparar la colección o restaurar desde una copia de seguridad. Para ello, presiona \"Opciones\".\n\nDe todos modos, podría ser un error de AnkiDroid; por favor, informa del error para que podamos comprobarlo. Reportar error - No hay suficiente espacio de almacenamiento libre para abrir AnkiDroid. Libera algo de espacio para continuar. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ¿Realmente deseas intentar reparar la base de datos?\n\nAntes de iniciar el intento, se creará una copia en la subcarpeta \'%s\'. La categoría \'por defecto\' está vacía Para añadir tarjetas AnkiDroid borra todas las categorías del Bloc de notas o agrega una llamada \'por defecto\' @@ -212,10 +212,8 @@ Más tarde No mostrar de nuevo Aviso de pérdida de datos - Debido a cambios en la privacidad de Android, tus datos y copias de seguridad automatizadas se eliminarán de tu teléfono si la aplicación es desinstalada - - Debido a cambios en la privacidad de Android, tus datos y copias de seguridad automatizadas serán inaccesibles si la aplicación es desinstalada - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled El mazo ya existe. El nombre del mazo no puede estar vacío Si tienes problemas de ordenamiento de mazos (por ejemplo ‘10’ aparece antes de ‘2’), reemplaza ‘2’ con ‘02’ diff --git a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml index 333fa025b753..f865444b4378 100644 --- a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml @@ -296,8 +296,7 @@ Opciones de desarrollador Activar opciones de desarrollador Desactivar opciones de desarrollador - Por favor, asegúrate antes de activar las opciones de desarrollador. Estas opciones son peligrosas y podrían romper la aplicación o dañar tu colección.\n\nTen en cuenta que estas opciones no son adecuadas para la mayoría de los usuarios y, por lo tanto, no están traducidas, así que están en inglés. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml b/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml index c256f16673c1..9a6c43254f45 100644 --- a/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml @@ -64,9 +64,9 @@ ¿Está seguro que desea eliminar este tipo de nota? ¿Seguro que deseas eliminar este campo? - Añadir: %1$s + Add: %1$s - Clonar: %1$s + Clone: %1$s Introduce la plantilla que utilizará el navegador de la tarjeta para mostrar tus tarjetas. Utiliza esto para mostrar una respuesta más concisa.\n\nUna plantilla del anverso de\n“La capital de {{Country}} es:”\npodría comprimirse en el navegador de la tarjeta a\n“Capital: {{Country}}” Formato de Pregunta diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml index 36e5748b0c10..0abf47c5ef2c 100644 --- a/AnkiDroid/src/main/res/values-et/02-strings.xml +++ b/AnkiDroid/src/main/res/values-et/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-et/03-dialogs.xml b/AnkiDroid/src/main/res/values-et/03-dialogs.xml index 954d7637f5cb..fbc0e9783ca7 100644 --- a/AnkiDroid/src/main/res/values-et/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-et/03-dialogs.xml @@ -64,7 +64,7 @@ Andmebaasi viga Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Teata veast - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-et/10-preferences.xml b/AnkiDroid/src/main/res/values-et/10-preferences.xml index 5f7decb917a0..755b2dccb4f5 100644 --- a/AnkiDroid/src/main/res/values-et/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-et/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-et/17-model-manager.xml b/AnkiDroid/src/main/res/values-et/17-model-manager.xml index 50fe144462b5..7656a73cd98b 100644 --- a/AnkiDroid/src/main/res/values-et/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-et/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Kas olete kindel, et soovite kustutada selle välja? - Lisa: %1$s + Add: %1$s - Klooni: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml index 91442992839b..c6f1ce3c67e8 100644 --- a/AnkiDroid/src/main/res/values-eu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml index 4593a44d6d5c..006e9df92626 100644 --- a/AnkiDroid/src/main/res/values-eu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-eu/03-dialogs.xml @@ -64,7 +64,7 @@ Datubasearen errorea Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Jakinarazi errorea - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. \"Lehenetsia\" kategoria hutsik dago To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-eu/10-preferences.xml b/AnkiDroid/src/main/res/values-eu/10-preferences.xml index 5f4d827fd720..ab146548fe5d 100644 --- a/AnkiDroid/src/main/res/values-eu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eu/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-eu/17-model-manager.xml b/AnkiDroid/src/main/res/values-eu/17-model-manager.xml index 786269c01d40..f2254e77bb2a 100644 --- a/AnkiDroid/src/main/res/values-eu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-eu/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Ziur zaude eremu hau ezabatu nahi izateaz? - Gehitu: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index 1ed75b6e6bed..5add67c79d36 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -233,7 +233,7 @@ عکس زیادی بزرگ است، لطفا عکس را دستی وارد کنید فایل ویدیو زیادی بزرگ است، لطفا ویدیو را دستی وارد کنید فایل صدا زیادی بزرگ است، لطفا صدا را دستی وارد کنید - پشتیبانی Android در حال انجام است. لطفا دوباره سعی کنید + Android backup in progress. Please try again شما به iManager نیاز دارید تا به AnkiDroid اجازه اضافه کردن میانبر بدهید صفحه اصلی شما به AnkiDroid اجازه میانبور اضافه کردن نمیدهد خطا در افزودن میانبُر: %s @@ -305,20 +305,14 @@ تنظیمات مرورگر مورد ضبط شده ذخیره شد در حال حذف یادداشت های انتخاب شده - برای گوش دادن روی صدا ضربه بزنید - - صدا باید قبل از استفاده نصب شود - - به هر حال استفاده کن - + Tap a voice to listen + Voice should be installed before use + Use anyway خطای متن به گفتار (%s) - اینترنت - - نصب - - باز کردن تنظیمات متن به گفتار ناموفق بود - + Internet + Install + Failed to open text to speech settings لطفا وارد حساب کاربری خود شوید که دسته های بیشتری را دانلود کنید توضیحات کپی کردن ناموفق بود diff --git a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml index d498c152f4c2..f793e04ea764 100644 --- a/AnkiDroid/src/main/res/values-fa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fa/03-dialogs.xml @@ -64,7 +64,7 @@ خطای پایگاه داده ذخیرۀ مجموعه انجام نشد. دیتابیس ممکن است خراب باشد یا ممکن است فضای کافی نداشته باشید.\n\nاگر این اتفاق غالباً رخ می‌دهد، بررسی دیتابیس، تعمیر مجموعه یا بازنشانی مجموعه از یک فایل پشتیبان قبلی را برای حل کردن مشکل امتحان کنید. برای این کار به \"گزینه‌ها\" مراجعه کنید.\nاین خطا همچنین ممکن است به دلیل مشکل در آنکی‌دروید باشد؛ اگر هیچ یک از موارد بالا مشکل شما را حل نکرد، لطفاً خطا را به ما گزارش دهید تا ما بتوانیم به بررسی آن بپردازیم. گزارش خطا - فضای خالی کافی برای باز شدن انکی‌دروید وجود ندارد. کمی فضای خالی برای ادامه دادن کار، ایجاد کنید. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. آیا شما واقعا می خواهید پایگاه داده را تعمیر کنید؟\n\nقبل از شروع , یک کپی در پوشه فرعی \'%s\' به وجود خواهد آمد . مجموعه \'پیش فرض\' خالی است اضافه کردن کارت به آنکی دروید سبب حذف همه یادداشت های مجموعه ها یا اضافه کردن یک نام پیش فرض به آنها می شود @@ -212,8 +212,8 @@ بعداً دوباره نشان نده خطر از دست رفتن داده‌ها - بنابر تغییرات حریم خصوصی اندروید، در صورت پاک کردن اپلیکیشن از روی موبایل، داده‌ها و پشتیبان‌های اتوماتیک نیز حذف خواهند شد - بنابر تغییرات حریم خصوصی اندروید، در صورت پاک کردن اپلیکیشن از روی موبایل، داده‌ها و پشتیبان‌های اتوماتیک، از دسترس خارج خواهند شد + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled دسته کارت از قبل وجود دارد نام دسته نمیتواند خالی باشد اگر مشکل ترتیب دسته کارت‌ها دارید (مثلاً ‘10’ قبل از ‘2’ ظاهر می‌شود)، ‘2’ را با ‘02’ جایگزین کنید diff --git a/AnkiDroid/src/main/res/values-fa/10-preferences.xml b/AnkiDroid/src/main/res/values-fa/10-preferences.xml index fe2ce5d51c72..02aeb7c86e89 100644 --- a/AnkiDroid/src/main/res/values-fa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fa/10-preferences.xml @@ -296,8 +296,7 @@ گزینه های توسعه دهنده فعال‌سازی گزینه های توسعه دهنده غیر فعال‌سازی گزینه‌های توسعه دهنده - لطفا از تصمیم خود برای فعال‌سازی گزینه‌های توسعه دهنده مطمئن شوید. این گزینه ها خطرناک هستند و توانایی خراب کردن برنامه یا فاسد کردن مجموعه ی شما را دارند.\n\nاین را بدانید که این گزینه ها مخصوص اکثریت افراد نیستند و بنابراین ترجمه نشده اند، پس به زبان انگلیسی هستند. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-fa/17-model-manager.xml b/AnkiDroid/src/main/res/values-fa/17-model-manager.xml index d3c1459c5f76..65caf5547260 100644 --- a/AnkiDroid/src/main/res/values-fa/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fa/17-model-manager.xml @@ -64,9 +64,9 @@ آیا از حذف این نوع یادداشت اطمینان دارید؟ از حذف این فیلد مطمئن هستید؟ - افزودن: %1$s + Add: %1$s - بدل: %1$s + Clone: %1$s قالب نمایش کارت برای مرورگر کارت را وارد کنید. از این ویژگی برای نمایش پاسخی مختصر استفاده کنید.\n\nبرای مثال قالب جلویی به شکل:\n\"نام پایتخت برای {{کشور}} چیست؟\"\nرا می‌توانید به‌صورت\n\"پایتخت {{کشور}}؟\"\nخلاصه کنید. قالب سوال diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index 743c9354a6d0..4c8e7c66ed18 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -233,7 +233,7 @@ Kuva on liian suuri, aseta kuva käsin Videotiedosto on liian suuri, aseta video käsin Äänitiedosto on liian suuri, aseta ääni käsin - Androidin varmuuskopiointi käynnissä. Yritä uudelleen + Android backup in progress. Please try again Saatat joutua käyttämään iManageria, jotta AnkiDroid voi lisätä pikanäppäimiä. Aloitusnäyttösi ei salli AnkiDroidin lisätä pikakuvakkeita Virhe lisättäessä pikakuvaketta: %s @@ -305,17 +305,14 @@ Selaimen asetukset Äänitys tallennettu Poistetaan valittuja muistiinpanoja - Kuuntele napauttamalla ääntä - Ääni tulee asentaa ennen käyttöä - - Käytä silti + Tap a voice to listen + Voice should be installed before use + Use anyway Tekstistä puheeksi -toiminnon virhe (%s) - Internet - - Asenna - - Teksti puheeksi -asetusten avaaminen ei onnistunut + Internet + Install + Failed to open text to speech settings Kirjaudu sisään ladataksesi lisää pakkoja Kuvaus Kopiointi epäonnistui diff --git a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml index 725a88356345..a83e8e02fd21 100644 --- a/AnkiDroid/src/main/res/values-fi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fi/03-dialogs.xml @@ -64,7 +64,7 @@ Tietokantavirhe Kirjoittaminen kokoelmaan epäonnistui. Tietokanta voi olla vioittunut tai levyllä ei ole tarpeeksi tyhjää tilaa.\n\nJos näin tapahtuu useammin, tarkista tietokanta, korjaa kokoelma tai palauta se varmuuskopiosta. Löydät tämän asetuksista.\n\Mahdollisesti kyseessä voi olla myös AnkiDroidin virhe; ilmoita virheestä, jotta voimme tarkistaa sen. Ilmoita viasta - AnkiDroidin avaamiseen ei ole riittävästi vapaata tallennustilaa. Vapauta tilaa jatkaaksesi. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Haluatko varmasti yrittää korjata tietokannan?\n\nEnnen yritystä kopio tietokannasta luodaan alihakemistoon ”%s”. Oletus-luokka on tyhjä Lisätäksesi kortteja AnkiDroidiin poista kaikki Notepad-kategoriat tai lisää uusi nimellä ”default” @@ -212,10 +212,8 @@ Myöhemmin Älä näytä uudelleen Varoitus tietojen menettämisestä - Androidin tietosuojamuutosten vuoksi tietosi ja automaattiset varmuuskopiot poistetaan laitteestasi, jos sovellus poistetaan. - - Androidin tietosuojamuutosten vuoksi tietoihisi ja automaattisiin varmuuskopioihin ei pääse käsiksi, jos sovellus poistetaan. - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Pakka on jo olemassa Pakan nimi ei voi olla tyhjä Jos pakan järjestyksen kanssa onongelmia (esim. ”10” näkyy ennen ”2”:a), korvaa ”2” merkinnällä ”02”. diff --git a/AnkiDroid/src/main/res/values-fi/10-preferences.xml b/AnkiDroid/src/main/res/values-fi/10-preferences.xml index 86bd204c0988..798bec4dafd3 100644 --- a/AnkiDroid/src/main/res/values-fi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fi/10-preferences.xml @@ -296,8 +296,7 @@ Kehittäjän asetukset Ota kehittäjän asetukset käyttöön Poista kehittäjän asetukset käytöstä - Ymmärrä mitä olet tekemässä, ennen kuin otat kehittäjän asetukset käyttöön. Nämä asetukset ovat vaarallisia ja voivat rikkoa sovelluksen tai vahingoittaa kokoelmaasi.\n\nHuomaa, että nämä asetukset eivät sovellu useimmille käyttäjille, ja siksi niitä ei ole käännetty, joten ne ovat englanniksi. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-fi/17-model-manager.xml b/AnkiDroid/src/main/res/values-fi/17-model-manager.xml index a27752aa9775..306a184caae4 100644 --- a/AnkiDroid/src/main/res/values-fi/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fi/17-model-manager.xml @@ -64,9 +64,9 @@ Haluatko varmasti poistaa tämän muistiinpanotyypin? Oletko varma, että haluat poistaa tämän kentän? - Lisää: %1$s + Add: %1$s - Monista:%1$s + Clone: %1$s Anna malli, jota korttiselain käyttää korttien näyttämiseen. Käytä tätä, jos haluat näyttää tiiviimmän vastauksen.\n\nEtupuolen malli\n \"Maan {{Maa}} pääkaupunki on:\"\nvoitaisiin tiivistää korttiselaimessa muotoon\n \"Pääkaupunki: {{Maa}}\" Kysymyksen muoto diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index 9f2a6389b970..d7d3ebf6f779 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -233,7 +233,7 @@ 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 - Nagsasagawa ng Android backup. Mangyaring subukan muli + Android backup in progress. Please try again Maaring kailangang gumamit ng iManager upang payagan ang AnkiDroid na magdagdag ng mga gitis. Hindi pinpayagan ang AnkiDroid na maglagay ng gitis sa iyong home screen. Kamalian sa pagdagdag ng gitis: %s @@ -305,19 +305,14 @@ Browser options Nai-save ang narekord Binubura ang mga napiling tala - Pumindot ng boses para pakinggan - - Kailangan munang i-install ang boses bago ito magamit - - Gamitin pa rin + Tap a voice to listen + Voice should be installed before use + Use anyway Error sa text-to-speech (%s) - Internet - - I-install - - Bigo na buksan ang setting ng text to speech - + Internet + Install + Failed to open text to speech settings Mangyaring maglog-in para makapag-download pa ng mga deck Paglalarawan Bigo na kopyahin diff --git a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml index 7275d610ccd5..31a1c99e84eb 100644 --- a/AnkiDroid/src/main/res/values-fil/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fil/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Ang pagsulat sa koleksyon ay nabigo. Maaaring sira ang database o di kaya`y hindi sapat ang bakanteng space sa disk. \n\n Kung ito ay nangyayari ng madalas, subukang tignan ang database, ayusin ang koleksyon o ibalik ito mula sa isang backup. Pindutin ang \"mga opsyon\" para diyan. \n\Maaaring ito rin ay isang AnkiDroid bug; i-ulat ang mali upang maiayos namin ito. Maling ulat - Hindi sapat ang bakanteng storage upang buksan ang AnkiDroid. Magbukas pa ng space para makapagpatuloy. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Gusto mo ba talagang subukan ang pag-aayos ng database? \n\n Bago mo simulan ang pagtatangka, isang kopya ang lilikhain sa mga subfolder \"%s\". Ang kategoryang \"default\" ay walng laman Upang magdagdag ng mga kard sa AnkiDroid alisin lahat ng mga kategorya ng Notepad o magdagdag ng isa na pinangalanang \"default\" @@ -213,10 +213,8 @@ Mga file na may di-wastong pag-encode:%d Mamaya Huwag ipakita muli Babala sa pagkawala ng datos - Dahil sa pagbabago ng praybasi ng Android, mabubura ang iyong datos at automated na backup sa iyong phone kapag inuninstall ang app. - - Dahil sa pagbabago ng praybasi ng Android, mabubura ang iyong datos at automated na backup sa iyong phone kapag inuninstall ang app. - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Umiiral na ang deck na ito Deck name cannot be empty Kung may mga isyu ka sa hanay ng iyong deck (hal. lumabas ang \'10\' bago ang \'2\'), palitan ang \'2\' ng \'02\' diff --git a/AnkiDroid/src/main/res/values-fil/10-preferences.xml b/AnkiDroid/src/main/res/values-fil/10-preferences.xml index ce04bba9aa07..50a3eb688465 100644 --- a/AnkiDroid/src/main/res/values-fil/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fil/10-preferences.xml @@ -297,8 +297,7 @@ Mga opsyon pangdeveloper Paganahin ang mga opsyon pangdeveloper Huwag paganahin ang mga opsyon pangdeveloper - Siguraduhin na gusto mong paganahin ang mga opsyon pangdeveloper. Ang mga opsyon dito ay delikado at maaring ikasira ng app o ika-corrupt ng iyong mga tipon.\n\nTandaan na ang mga opsyon na ito ay hindi angkop sa karamihan ng mga user at samakatwid ay hindi sinalin ang mga ito, kaya naka-Ingles ang mga ito. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-fil/17-model-manager.xml b/AnkiDroid/src/main/res/values-fil/17-model-manager.xml index 5de94739c64e..ce3920a269b2 100644 --- a/AnkiDroid/src/main/res/values-fil/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fil/17-model-manager.xml @@ -64,9 +64,9 @@ Sigurado ka ba na nais mong burahin ang uri ng tala na ito? Sigurado ka bang nais mong tanggalin ang field na ito? - Magdagdag ng:%1$s + Add: %1$s - I-clone:%1$s + Clone: %1$s Ilagay ang template na gagamitin ng card browser upang maipakita ang iyong mga card. Gamitin ito upang maipakita ang mas maiksi na sagot.\n\nAng harap na template ng\n\"Ang kabisera ng {{Country}} ay:\"\nay maaaring paiksiin sa card browser bilang\n\"Kabisera: {{Country}}\" Format ng Tanong diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index e3a00af704c7..a430034d98cb 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -233,7 +233,7 @@ L’image est trop grande, veuillez insérer l’image manuellement Le fichier vidéo est trop volumineux, insérez la vidéo manuellement. Le fichier audio est trop volumineux, insérez l’audio manuellement. - Sauvergarde Android en cours. Veuillez réessayer + Android backup in progress. Please try again Veuillez utiliser iManager pour autoriser AnkiDroid à ajouter des raccourcis Votre écran d\'accueil ne permet pas à AnkiDroid d\'ajouter des raccourcis Erreur lors de l\'ajout du raccourci : %s @@ -305,20 +305,14 @@ Options du navigateur Enregistrement sauvegardé Suppression des notes sélectionnées - Touchez une voix pour l\'écouter - - La voix doit être installée avant l\'utilisation - - Utiliser quand même - + Tap a voice to listen + Voice should be installed before use + Use anyway Erreur de synthèse vocale (%s) - Internet - - Installer - - Échec de l\'ouverture des paramètres de synthèse vocale - + Internet + Install + Failed to open text to speech settings Veuillez vous connecter pour télécharger plus de decks Description Échec de la copie diff --git a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml index 802900bf7d92..04248244537f 100644 --- a/AnkiDroid/src/main/res/values-fr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fr/03-dialogs.xml @@ -64,7 +64,7 @@ Erreur de la base de données L\'écriture de la collection a échoué. La base de données pourrait être corrompue ou il se peut qu\'il n\'y ait pas assez d\'espace libre sur le disque.\n\nSi ceci se produit plus souvent, essayez de vérifier la base de données, de réparer la collection ou de la restaurer à partir d\'une sauvegarde. Touchez « options » pour cela.\n\Ou il pourrait s\'agir d\'une erreur AnkiDroid ; veuillez signaler l\'erreur pour que nous puissions vérifier ceci. Signaler les erreurs - Il n\'y a pas assez d\'espace de stockage libre pour ouvrir AnkiDroid. Libérez de l\'espace pour continuer. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Voulez-vous vraiment essayer de réparer la base de données ?\n\nAvant de commencer, une copie sera créée dans le sous-dossier « %s ». La catégorie « default » est vide Pour ajouter des cartes à AnkiDroid, enlevez toutes les catégories du Bloc-notes, ou créez une catégorie « default » @@ -212,8 +212,8 @@ Plus tard Ne plus me montrer Risque de perte de données - En raison de changement dans la politique de confidentialité d\'Android, vos données et sauvegardes automatiques seront supprimées de votre téléphone si l\'application est désinstallée - En raison de changement dans la politique de confidentialité d\'Android, vos données et sauvegardes automatiques seront inaccessibles si l\'application est désinstallée + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Le paquet existe déjà Le nom du paquet ne peut pas être vide Si vous avez des problèmes de tri des paquets (par exemple, ‘10’ apparaît avant ‘2’), remplacez ‘2’ par ‘02’ diff --git a/AnkiDroid/src/main/res/values-fr/10-preferences.xml b/AnkiDroid/src/main/res/values-fr/10-preferences.xml index a92d84ba8821..53d993b0443c 100644 --- a/AnkiDroid/src/main/res/values-fr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fr/10-preferences.xml @@ -296,7 +296,7 @@ Options de développement Activer les options de développement Désactiver les options de développement - Veuillez être sûr·e avant d\'activer les options de développement. Ces options sont dangereuses et peuvent casser l\'application ou corrompre votre collection.\n\nNotez que ces options ne sont pas adaptées à la majorité des utilisateurs et par conséquent, elles ne sont pas traduites, elles sont donc en anglais. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-fr/17-model-manager.xml b/AnkiDroid/src/main/res/values-fr/17-model-manager.xml index c5f01e7cb2d8..b6f2ac6b2dce 100644 --- a/AnkiDroid/src/main/res/values-fr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fr/17-model-manager.xml @@ -64,9 +64,9 @@ Voulez-vous vraiment effacer ce type de note ? Voulez-vous vraiment supprimer ce champ ? - Ajouter : %1$s + Add: %1$s - Clone : %1$s + Clone: %1$s Entrez le modèle que le navigateur de cartes utilisera pour afficher vos cartes. Utilisez ceci pour afficher une réponse plus concise.\n\nUn modèle comme\n« La capitale de {{Country}} est : »\npourrait être compressé dans le navigateur de cartes en\n« Capitale : {{Country}} » Format de la question diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml index d066c3e6e9d0..6ae640061210 100644 --- a/AnkiDroid/src/main/res/values-fy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml index 9b2b5d8e4c74..0ff8839b613a 100644 --- a/AnkiDroid/src/main/res/values-fy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-fy/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-fy/10-preferences.xml b/AnkiDroid/src/main/res/values-fy/10-preferences.xml index 203308260ac1..c7cc047f24b0 100644 --- a/AnkiDroid/src/main/res/values-fy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fy/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-fy/17-model-manager.xml b/AnkiDroid/src/main/res/values-fy/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-fy/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-fy/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml index 3773915615c1..5fe286b30389 100644 --- a/AnkiDroid/src/main/res/values-ga/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml @@ -245,7 +245,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -320,20 +320,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml index ab6f2043d491..047f51bc6ad6 100644 --- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml @@ -70,7 +70,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -224,10 +224,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ga/10-preferences.xml b/AnkiDroid/src/main/res/values-ga/10-preferences.xml index 72f7ab23ce99..e5ece8a446fa 100644 --- a/AnkiDroid/src/main/res/values-ga/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ga/10-preferences.xml @@ -303,8 +303,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ga/17-model-manager.xml b/AnkiDroid/src/main/res/values-ga/17-model-manager.xml index 07ad00e41c0a..91bff2bce278 100644 --- a/AnkiDroid/src/main/res/values-ga/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ga/17-model-manager.xml @@ -70,9 +70,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml index fc1a00e8a56e..1f612c0fd92d 100644 --- a/AnkiDroid/src/main/res/values-gl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml index 154e7bc9c308..369a6efd45ce 100644 --- a/AnkiDroid/src/main/res/values-gl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gl/03-dialogs.xml @@ -64,7 +64,7 @@ Erro na base de datos Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Informar de erros - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Tes a certeza de querer tentar reparar a base de datos?\n\nAntes de comezar, crearase unha copia no cartafol \"%s\". A categoría \'predeterminado\' está baleira Para engadir cartóns ao AnkiDroid elimina todas as categorías do caderno de notas ou engade unha chamada \"predefinido\" @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-gl/10-preferences.xml b/AnkiDroid/src/main/res/values-gl/10-preferences.xml index 6d793bf7c9eb..182df6030014 100644 --- a/AnkiDroid/src/main/res/values-gl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gl/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-gl/17-model-manager.xml b/AnkiDroid/src/main/res/values-gl/17-model-manager.xml index ecb1b289a3b5..19c54ce826b7 100644 --- a/AnkiDroid/src/main/res/values-gl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-gl/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Tes a certeza de querer eliminar este campo? - Engadir: %1$s + Add: %1$s - Clonar: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml index ec86ba08a56e..6795a8d34c13 100644 --- a/AnkiDroid/src/main/res/values-got/02-strings.xml +++ b/AnkiDroid/src/main/res/values-got/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-got/03-dialogs.xml b/AnkiDroid/src/main/res/values-got/03-dialogs.xml index 682594197941..8ad9bb19a234 100644 --- a/AnkiDroid/src/main/res/values-got/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-got/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-got/10-preferences.xml b/AnkiDroid/src/main/res/values-got/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-got/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-got/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-got/17-model-manager.xml b/AnkiDroid/src/main/res/values-got/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-got/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-got/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml index 14970fc644f5..1e51aa6f1b29 100644 --- a/AnkiDroid/src/main/res/values-gu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml @@ -233,7 +233,7 @@ படம் மிகவும் பெரிதாக உள்ளது, படத்தை கைமுறையாக செருகவும் வீடியோ கோப்பு மிகவும் பெரியதாக உள்ளது, வீடியோவை கைமுறையாக செருகவும் The audio file is too large, please insert the audio manually - Android બેકઅપ ચાલુ છે. મહેરબાની કરીને ફરીથી પ્રયતન કરો + Android backup in progress. Please try again AnkiDroid ને શૉર્ટકટ્સ ઉમેરવાની મંજૂરી આપવા માટે તમારે iManager નો ઉપયોગ કરવાની જરૂર પડી શકે છે તમારી હોમ સ્ક્રીન AnkiDroid ને શોર્ટકટ ઉમેરવાની મંજૂરી આપતી નથી શૉર્ટકટ ઉમેરવામાં ભૂલ: %s @@ -305,19 +305,14 @@ Browser options રેકોર્ડિંગ સાચવ્યું પસંદ કરેલી નોંધો કાઢી નાખી રહ્યાં છીએ - સાંભળવા માટે અવાજ પર ટૅપ કરો - ઉપયોગ કરતા પહેલા વૉઇસ ઇન્સ્ટોલ થવો જોઈએ - - કોઈપણ રીતે ઉપયોગ કરો - + Tap a voice to listen + Voice should be installed before use + Use anyway ટેક્સ્ટ ટુ સ્પીચ ભૂલ (%s) - ઈન્ટરનેટ - - ઇન્સ્ટોલ કરો - - ટેક્સ્ટ ટુ સ્પીચ સેટિંગ્સ ખોલવામાં નિષ્ફળ - + Internet + Install + Failed to open text to speech settings વધુ ડેક ડાઉનલોડ કરવા માટે કૃપા કરીને લૉગ ઇન કરો વર્ણન કૉપિ કરવામાં નિષ્ફળ diff --git a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml index 5e6d826b7c67..e1066b3c1f02 100644 --- a/AnkiDroid/src/main/res/values-gu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-gu/03-dialogs.xml @@ -64,7 +64,7 @@ ડેટાબેઝ ભૂલ સંગ્રહમાં લખવાનું નિષ્ફળ થયું. ડેટાબેઝ દૂષિત હોઈ શકે છે અથવા ડિસ્ક પર પૂરતી ખાલી જગ્યા ન હોઈ શકે.\n\nજો આવું વધુ વખત થાય, તો ડેટાબેઝને તપાસવાનો, સંગ્રહને રિપેર કરવાનો અથવા તેને બેકઅપમાંથી પુનઃસ્થાપિત કરવાનો પ્રયાસ કરો. તેના માટે \"વિકલ્પો\" ને ટચ કરો.\n\અથવા તે AnkiDroid બગ પણ હોઈ શકે છે; કૃપા કરીને ભૂલની જાણ કરો જેથી અમે આ તપાસી શકીએ. ભૂલની જાણ કરો - AnkiDroid ખોલવા માટે પૂરતી ખાલી જગ્યા નથી. ચાલુ રાખવા માટે થોડી જગ્યા ખાલી કરો. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. શું તમે ખરેખર ડેટાબેઝને રિપેર કરવાનો પ્રયાસ કરવા માંગો છો?\n\nપ્રયાસ શરૂ કરતા પહેલા, સબફોલ્ડર “%s” માં એક નકલ બનાવવામાં આવશે. કેટેગરી \"ડિફોલ્ટ\" ખાલી છે AnkiDroid માં કાર્ડ ઉમેરવા માટે નોટપેડની બધી કેટેગરી દૂર કરો અથવા \"ડિફોલ્ટ\" નામની એક ઉમેરો @@ -212,10 +212,8 @@ પાછળથી ફરી બતાવશો નહીં ડેટા નુકશાન ચેતવણી - એન્ડ્રોઇડ ગોપનીયતા ફેરફારોને કારણે, જો એપ્લિકેશન અનઇન્સ્ટોલ કરવામાં આવશે તો તમારો ડેટા અને સ્વચાલિત બેકઅપ તમારા ફોનમાંથી કાઢી નાખવામાં આવશે - - એન્ડ્રોઇડ ગોપનીયતા ફેરફારોને કારણે, જો એપ્લિકેશન અનઇન્સ્ટોલ કરવામાં આવે તો તમારો ડેટા અને સ્વચાલિત બેકઅપ અગમ્ય હશે - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ડેક પહેલેથી જ અસ્તિત્વમાં છે Deck name cannot be empty જો તમને ડેક ઓર્ડરિંગ સમસ્યાઓ છે (દા.ત. \'10\' \'2\' પહેલાં દેખાય છે), તો \'2\' ને \'02\' સાથે બદલો diff --git a/AnkiDroid/src/main/res/values-gu/10-preferences.xml b/AnkiDroid/src/main/res/values-gu/10-preferences.xml index 70712163126c..d51ba7c13a76 100644 --- a/AnkiDroid/src/main/res/values-gu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gu/10-preferences.xml @@ -296,7 +296,7 @@ વિકાસકર્તા વિકલ્પો વિકાસકર્તા વિકલ્પો સક્ષમ કરો વિકાસકર્તા વિકલ્પોને અક્ષમ કરો - વિકાસકર્તા વિકલ્પોને સક્ષમ કરતા પહેલા કૃપા કરીને ખાતરી કરો. આ વિકલ્પો ખતરનાક છે અને એપને તોડી શકે છે અથવા તમારા સંગ્રહને બગાડી શકે છે.\n\nનોંધ લો કે આ વિકલ્પો મોટાભાગના વપરાશકર્તાઓ માટે યોગ્ય નથી અને તેથી અનુવાદિત નથી, તેથી તેઓ અંગ્રેજીમાં છે. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-gu/17-model-manager.xml b/AnkiDroid/src/main/res/values-gu/17-model-manager.xml index 487d308dbc96..257bc64223ed 100644 --- a/AnkiDroid/src/main/res/values-gu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-gu/17-model-manager.xml @@ -64,9 +64,9 @@ શું તમે ખરેખર આ નોંધ પ્રકાર કાઢી નાખવા માંગો છો? શું તમે ખરેખર આ ફીલ્ડ કાઢી નાખવા માંગો છો? - ઉમેરો: %1$s + Add: %1$s - ક્લોન: %1$s + Clone: %1$s કાર્ડ બ્રાઉઝર તમારા કાર્ડ પ્રદર્શિત કરવા માટે ઉપયોગ કરશે તે ટેમ્પલેટ દાખલ કરો. વધુ સંક્ષિપ્ત જવાબ પ્રદર્શિત કરવા માટે આનો ઉપયોગ કરો.\n\n\"{{Country}} ની રાજધાની છે:\"\n\"રાજધાની: {{Country}}\"માં સંકુચિત કરી શકાય છે. પ્રશ્ન ફોર્મેટ diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index 99f62f4597b0..6a1133e62e7f 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -241,7 +241,7 @@ התמונה גדולה מדי, אנא הכנס אותה באופן ידני קובץ הווידאו גדול מדי, אנא הכנס אותו באופן ידני קובץ השמע גדול מדי, אנא הכנס אותו באופן ידני - בתהליך עדכון אנדרואיד, נסה שנית. + Android backup in progress. Please try again ייתכן שיהיה עליך להשתמש ב- iManager כדי לאפשר ל- AnkiDroid להוסיף קיצורי דרך מסך הבית שלך אינו מאפשר ל- AnkiDroid להוסיף קיצורי דרך שגיאה בהוספת קיצור הדרך: %s @@ -315,14 +315,14 @@ אפשרויות דפדפן ההקלטה נשמרה מחיקת הערות שנבחרו - הקש על קול כדי להאזין - יש להתקין קול לפני השימוש - השתמש בכל אופן + Tap a voice to listen + Voice should be installed before use + Use anyway שגיאת טקסט לדיבור (%s) - אינטרנט - התקן - פתיחת הגדרות טקסט לדיבור נכשלה + Internet + Install + Failed to open text to speech settings אנא התחבר כדי להוריד חפיסות נוספות תיאור ההעתקה נכשלה diff --git a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml index 3affe6223155..fd1ea3da056c 100644 --- a/AnkiDroid/src/main/res/values-heb/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-heb/03-dialogs.xml @@ -68,7 +68,7 @@ שגיאת מסד נתונים כתיבה לאוסף נכשלה. מאגר המידע אולי שבור או שאין מספיק מקום בדיסק.\n\n אם זה קורה שוב ושוב, אפשר לבדוק את מאגר המידע, לתקן את האוסף או לשחזר אותו מגיבוי. לחץ \'אפשרויות\' עבור כך. \n כמו כן ייתכן שזוהי תקלה בAnkiDroid. נא לדווח את השגיאה כדי שנוכל לבדוק זאת. דיווח על שגיאה - אין מספיק שטח אחסון פנוי כדי לפתוח את AnkiDroid. פנה קצת מקום כדי להמשיך. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. לתקן את המאגר?\n\n לפני תחילת ניסיון התיקון, יתבצע שמירת העתק בתקייה %s הקטגוריה \'ברירת מחדל\' ריקה @@ -221,8 +221,8 @@ מאוחר יותר אל תציג שוב אזהרת אובדן נתונים - עקב שינויים בפרטיות של Android, הנתונים והגיבויים האוטומטיים שלך יימחקו מהטלפון שלך אם האפליקציה תוסר - עקב שינויים בפרטיות של Android, הנתונים והגיבויים האוטומטיים שלך לא יהיו נגישים אם האפליקציה תוסר + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled החפיסה כבר קיימת שם החפיסה לא יכול להיות ריק אם יש לך בעיות בסדר החפיסות (למשל, \'10\' מופיע לפני \'2\'), החלף את \'2\' ב-\'02\' diff --git a/AnkiDroid/src/main/res/values-heb/10-preferences.xml b/AnkiDroid/src/main/res/values-heb/10-preferences.xml index 4a1c832cab89..98947e1146a5 100644 --- a/AnkiDroid/src/main/res/values-heb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-heb/10-preferences.xml @@ -300,8 +300,7 @@ אפשרויות מפתח הפעלת מצב מפתח השבת את מצב המפתח - אנא ודא לפני הפעלת מצב מפתח. אפשרויות אלה מסוכנות ועלולות להשבית את האפליקציה או להשחית את האוסף שלך.\n\nשים לב שהאפשרויות הללו אינן מתאימות לרוב המשתמשים ולכן אינן מתורגמות, ולכן הן באנגלית. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-heb/17-model-manager.xml b/AnkiDroid/src/main/res/values-heb/17-model-manager.xml index 19458f765e99..a3ef8bd01e5f 100644 --- a/AnkiDroid/src/main/res/values-heb/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-heb/17-model-manager.xml @@ -68,9 +68,9 @@ האם אתה בטוח שברצונך למחוק את סוג פתק זה? למחוק את השדה הזה? - הוספה: %1$s + Add: %1$s - שכפול: %1$s + Clone: %1$s הזן את התבנית שבה ישתמש דפדפן הכרטיסים כדי להציג את הכרטיסים שלך. השתמש בזה כדי להציג תשובה תמציתית יותר.\n\nתבנית קדמית של\n\"בירת {{מדינה}} היא:\"\nניתן לדחוס בדפדפן הכרטיסים ל\n\"בירה: {{מדינה}}\" סגנון שאלה diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index 4ecb5f975383..fdc65729afed 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -233,7 +233,7 @@ छवि बहुत बड़ी है, कृपया छवि को मैन्युअल रूप से डालें वीडियो फ़ाइल बहुत बड़ी है, कृपया वीडियो को मैन्युअल रूप से डालें ऑडियो फ़ाइल बहुत बड़ी है, कृपया ऑडियो मैन्युअल रूप से डालें - एन्ड्रॉयड बैकप प्रगति पर है। कृपया पुन: प्रयास करें + Android backup in progress. Please try again अंकीड्रॉइड को शॉर्टकट जोड़ने की अनुमति देने के लिए आपको आईमैनेजर का उपयोग करने की आवश्यकता हो सकती है आपकी होम स्क्रीन अंकीड्रॉइड को शॉर्टकट जोड़ने की अनुमति नहीं देती है शॉर्टकट जोड़ने में त्रुटि: %s @@ -305,17 +305,14 @@ Browser options रिकॉर्डिंग को सहेजा गया चयनित नोट्स हटाये जा रहे हैं - सुनने के लिए किसी आवाज़ पर टैप करें - - उपयोग से पहले वॉइस इंस्टॉल किया जाना चाहिए - कैसे भी प्रयोग करें - - + Tap a voice to listen + Voice should be installed before use + Use anyway पाठ से वाक् त्रुटि (%s) - इंटरनेट - इनस्टॉल - टेक्स्ट टू स्पीच सेटिंग खोलने में विफल + Internet + Install + Failed to open text to speech settings कृपया अधिक डेक डाउनलोड करने के लिए लॉग इन करें विवरण प्रतिलिपि बनाने में विफल diff --git a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml index 3020bee43de3..2f315009adcb 100644 --- a/AnkiDroid/src/main/res/values-hi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hi/03-dialogs.xml @@ -64,7 +64,7 @@ डेटाबेस त्रुटि संग्रह में लेखन विफल रहा। डेटाबेस दूषित हो सकता है या डिस्क पर पर्याप्त खाली स्थान नहीं हो सकता है। \n\n यदि यह अधिक बार होता है, तो डेटाबेस की जाँच करने, संग्रह की मरम्मत करने या इसे बैकअप से पुनर्स्थापित करने का प्रयास करें। इसके लिए \"विकल्प\" स्पर्श करें। \n या यह एक एंकॉइड बग भी हो सकता है; कृपया त्रुटि रिपोर्ट करें ताकि हम इसकी जांच कर सकें। त्रुटि की सूचना दें - AnkiDroid को खोलने के लिए पर्याप्त फ्री स्टोरेज स्पेस नहीं है। जारी रखने के लिए कुछ जगह खाली करें। + There is not enough free storage space to open AnkiDroid. Free up some space to continue. क्या आप वास्तव में डेटाबेस को सुधारने का प्रयास करना चाहते हैं? \n\nBefore प्रयास प्रारंभ कर रहा है, एक प्रतिलिपि सबफ़ोल्डर \"%s\" में बनाया जाएगा । श्रेणी \"डिफ़ॉल्ट\" रिक्त है AnkiDroid में कार्ड जोड़ने के लिए सभी नोटपैड श्रेणियों को हटाएँ या एक \"डिफ़ॉल्ट\" नामक पत्ता जोड़ें @@ -212,10 +212,8 @@ बाद में दोबारा न दिखाएं डेटा हानि चेतावनी - एंड्रॉइड गोपनीयता परिवर्तनों के कारण, ऐप अनइंस्टॉल होने पर आपका डेटा और स्वचालित बैकअप आपके फोन से हटा दिए जाएंगे - - एंड्रॉइड गोपनीयता परिवर्तनों के कारण, ऐप अनइंस्टॉल होने पर आपका डेटा और स्वचालित बैकअप पहुंच योग्य नहीं होगा - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled डेक पहले से मौजूद है डेक का नाम खाली नहीं हो सकता यदि आपके पास डेक ऑर्डरिंग समस्याएं हैं (उदाहरण के लिए \'10\' \'2\' से पहले आता है), तो \'2\' को \'02\' से बदलें diff --git a/AnkiDroid/src/main/res/values-hi/10-preferences.xml b/AnkiDroid/src/main/res/values-hi/10-preferences.xml index 16842b9319c7..3fdc576069f3 100644 --- a/AnkiDroid/src/main/res/values-hi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hi/10-preferences.xml @@ -293,7 +293,7 @@ डेवलपर विकल्प डेवलपर विकल्प सक्षम करें डेवलपर विकल्प अक्षम करें - ध्यान दें: डेवलपर विकल्प ऐप या आपके संग्रह को नुकसान पहुंचा सकते हैं, यह इस बात पर निर्भर करता है कि आप उनका उपयोग कैसे करते हैं। \n\nये विकल्प अधिकांश उपयोगकर्ताओं के लिए उपयुक्त नहीं हैं और केवल अंग्रेज़ी में प्रदर्शित होते हैं। + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-hi/17-model-manager.xml b/AnkiDroid/src/main/res/values-hi/17-model-manager.xml index 9f01712ab164..3d4e2be5c310 100644 --- a/AnkiDroid/src/main/res/values-hi/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hi/17-model-manager.xml @@ -64,9 +64,9 @@ आप सुनिश्चित करें कि आप इस नोटों को हटाना चाहते हैं? क्या आप सचमुच इस फ़ील्ड को मिटाना चाहते हैं? - जोड़ें: %1$s + Add: %1$s - जुड़वाँ: %1$s + Clone: %1$s वह टेम्प्लेट दर्ज करें जिसका उपयोग कार्ड ब्राउज़र आपके कार्ड प्रदर्शित करने के लिए करेगा।अधिक संक्षिप्त उत्तर प्रदर्शित करने के लिए इसका उपयोग करें।\n\n एक \"{{Country}} की राजधानी है:\" अग्र टेम्पलेट को \n कार्ड ब्राउज़र में \n \"राजधानी:{{Country}}\" की तरह संपीड़ित किया जा सकता है I प्रश्न प्रारूप diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index bb07610f22c3..a18e11ad9748 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -237,7 +237,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -310,20 +310,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml index a3019398680a..44c6bd15e7bb 100644 --- a/AnkiDroid/src/main/res/values-hr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hr/03-dialogs.xml @@ -66,7 +66,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -216,10 +216,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-hr/10-preferences.xml b/AnkiDroid/src/main/res/values-hr/10-preferences.xml index 2ca6452442b9..b7e587005dc8 100644 --- a/AnkiDroid/src/main/res/values-hr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hr/10-preferences.xml @@ -299,8 +299,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-hr/17-model-manager.xml b/AnkiDroid/src/main/res/values-hr/17-model-manager.xml index ed29308a2f68..d4d9c736663d 100644 --- a/AnkiDroid/src/main/res/values-hr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hr/17-model-manager.xml @@ -66,9 +66,9 @@ Are you sure you wish to delete this note type? Jeste li sigurni da želite izbrisati ovo polje? - Dodavanje: %1$s + Add: %1$s - Kloniranje: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index 2193f5fb70da..38c27b9cfe7f 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -233,7 +233,7 @@ 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 biztonsági mentés folyamatban. Próbálkozzon később + Android backup in progress. Please try again Az AnkiDroidban rövidítések használatához szükséges lehet az iManager használata A Kezdőképernyőd nem engedi AnkiDroid közvetlen elérések elhelyezését Hiba történt a közvetlen elérés hozzáadásakor: %s @@ -306,14 +306,14 @@ Browser options Felvétel mentve A kijelölt jegyzetek törlése. - Nyomj egy hangra a meghallgatáshoz - A hangot le kell tölteni használat előtt - Használat letöltés nélkül + Tap a voice to listen + Voice should be installed before use + Use anyway Hiba a(z) (%s) felolvasásakor Internet - Letöltés - A felolvasás beállítások megnyitása sikertelen + Install + Failed to open text to speech settings Több pakli letöltéséhez jelentkezz be Megjegyzés Failed to copy diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml index 719d4a9e235e..1ca1666dbded 100644 --- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml @@ -64,7 +64,7 @@ Adatbázis hiba A gyűjteménybe írás sikertelen. Az adatbázis lehet, hogy korrupt vagy nincs elég hely a lemezen.\n\n. Ha gyakrabban történik ilyen, akkor próbálja ellenőrizni az adatbázist, javítsa meg a gyűjteményt vagy állítsa azt vissza egy biztonsági másolatból. Ehhez nyomjon rá a \"beállításokra\".\n. Vagy lehet, hogy ez egy AnkiDroid bug; kérjük jelentse a hibát, hogy le tudjuk ellenőrizni. Hibák jelentése - Nincs elég szabad tárhely az AnkiDroid megnyitásához. Szabadítson fel helyet a folytatáshoz. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Tényleg megpróbálod megjavítani az adatbázist?\n\nEnnek megkísérlése előtt a program létrehoz egy másolatot a \'%s\' almappában. Az \"alap\" kategória üres Hogy új kártyákat adj az AnkiDroid-hoz, távolítsd el az összes Jegyzettömb/Notepad/ kategóriát, vagy adj hozzá egyet \'default\' névvel @@ -212,8 +212,8 @@ Később Ne mutassa újra Figyelmeztetés adatveszteségről - Az Android adatvédelmi módosításai miatt az adatok és az automatikus biztonsági mentések is törlődnek, ha az alkalmazás eltávolításra kerül. - Az Android adatvédelmi módosításai miatt az adatok és az automatikus biztonsági mentések is elérhetetlenné válnak, ha az alkalmazás eltávolításra kerül. + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-hu/10-preferences.xml b/AnkiDroid/src/main/res/values-hu/10-preferences.xml index d120512883ab..291b6bc44260 100644 --- a/AnkiDroid/src/main/res/values-hu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hu/10-preferences.xml @@ -296,7 +296,7 @@ Fejlesztői beállítások Fejlesztői beállítások engedélyezése Fejlesztői beállítások letiltása - Kérjük, győződjön meg róla, mielőtt engedélyezné a fejlesztői beállításokat. Ezek a beállítások veszélyesek és tönkretehetik az alkalmazást vagy korruptá tehetik a gyűjteményt.\n\nMegjegyezzük, hogy ezek az opciók nem alkalmasak a legtöbb felhasználó számára, ezért nincsenek lefordítva, szóval angolul vannak. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-hu/17-model-manager.xml b/AnkiDroid/src/main/res/values-hu/17-model-manager.xml index 395cb2e0c203..920ccba1be76 100644 --- a/AnkiDroid/src/main/res/values-hu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hu/17-model-manager.xml @@ -64,9 +64,9 @@ Biztosan törölni akarja ezt a jegyzettípust? Biztosan törölni akarja ezt a mezőt? - Hozzáadás: %1$s + Add: %1$s - Klón: %1$s + Clone: %1$s Írja be a mintát, amit a kártya böngésző használni fog, hogy megjelenítse a kártyákat. Használja ezt, hogy tömörebb választ kapjon.\n\nAz első oldali sablonon található \n\"{{Country}} fővárosa:\"\na kártya böngészőben tömörítve így néz ki\n\"Főváros: {{Country}}\" Kérdés formátuma diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml index 8c9d505c0f41..f163451aa1ae 100644 --- a/AnkiDroid/src/main/res/values-hy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml index dc126001a1c4..04325e9e027c 100644 --- a/AnkiDroid/src/main/res/values-hy/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hy/03-dialogs.xml @@ -64,7 +64,7 @@ Շտեմարանի սխալ Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,8 +212,8 @@ Ավելի ուշ Այլևս ցույց չտալ Տվյալների կորուստի մասին նախազգուշացում - Android-ի գաղտնիության փոփոխությունների պատճառով ձեր տվյալները և նրանց` ավտոմատ կերպով ստեղծված պատճենները կջնջվեն` ծրագրի ապատեղադրման ժամանակ։ - Android-ի գաղտնիության փոփոխությունների պատճառով ձեր տվյալները և նրանց` ավտոմատ կերպով ստեղծված պատճենները անհասանելի կլինեն` ծրագրի ապատեղադրման ժամանակ։ + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-hy/10-preferences.xml b/AnkiDroid/src/main/res/values-hy/10-preferences.xml index 668bc1fb82b1..9e453f0acc53 100644 --- a/AnkiDroid/src/main/res/values-hy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hy/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-hy/17-model-manager.xml b/AnkiDroid/src/main/res/values-hy/17-model-manager.xml index a29697f32409..66bc3d7cc2e6 100644 --- a/AnkiDroid/src/main/res/values-hy/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-hy/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml index a54bf0ed2a75..dbf325ac3bb0 100644 --- a/AnkiDroid/src/main/res/values-ind/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml @@ -229,7 +229,7 @@ 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 - Pencadangan android sedang dalam proses. Mohon coba lagi. + Android backup in progress. Please try again Anda mungkin perlu menggunakan iManager untuk memperbolehkan AnkiDroid menambah pintasan Layar utama Anda tidak memperbolehkan AnkiDroid untuk menambah pintasan Gagal menambah shortcut: %s @@ -300,20 +300,14 @@ Browser options Rekaman disimpan Menghapus catatan yang dipilih - Ketuk sebuah suara untuk didengarkan - - Suara harus dipasang sebelum digunakan - - Gunakan saja - + Tap a voice to listen + Voice should be installed before use + Use anyway Eror teks ke suara (%s) - Internet - - Pasang - - Gagal membuka pengaturan teks ke suara - + Internet + Install + Failed to open text to speech settings Silakan masuk ke akun untuk mengunduh lebih banyak dek Deskripsi Gagal menyalin diff --git a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml index 41f34ef2d9e3..3e113efdbd22 100644 --- a/AnkiDroid/src/main/res/values-ind/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ind/03-dialogs.xml @@ -62,7 +62,7 @@ Galat basisdata Menulis ke koleksi gagal. Basisdata mungkin korup atau tidak cukup ruang pada penyimpanan. \ n \ n Jika ini sering terjadi, cobalah periksa database, perbaiki koleksi atau mengembalikan dari cadangan. Sentuh \"pengaturan\" untuk ini. \ n \ Atau bisa juga bug dari AnkiDroid; harap laporkan galatnya agar kami bisa mengeceknya. Laporkan galat - Tidak ada ruang penyimpanan yang cukup untuk membuka AnkiDroid. Bebaskan sedikit ruang untuk melanjutkan. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Apakah Anda benar-benar ingin memperbaiki basis data?\n\nSebelum memulai, salinan akan dibuat ke dalam subfolder \'%s\'. Kategori \'awalan\' kosong Untuk menambah kartu ke AnkiDroid hapus semua kategori catatan atau tambahkan satu bernama \"bawaan\" @@ -208,10 +208,8 @@ Nanti Jangan tampilkan lagi Peringatan kehilangan data - Karena perubahan privasi Android, data dan cadangan otomatis Anda akan dihapus dari ponsel Anda jika aplikasi ini dicopot pemasangannya - - Karena perubahan privasi Android, data dan cadangan otomatis Anda tidak akan dapat diakses jika aplikasi ini dicopot pemasangannya - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ind/10-preferences.xml b/AnkiDroid/src/main/res/values-ind/10-preferences.xml index 9c53493d7c8d..cb00181bee9a 100644 --- a/AnkiDroid/src/main/res/values-ind/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ind/10-preferences.xml @@ -295,8 +295,7 @@ Opsi pengembang Aktifkan opsi pengembang Nonaktifkan opsi pengembang - Pastikan sebelum mengaktifkan opsi pengembang. Opsi ini berbahaya dan dapat merusak aplikasi atau merusak koleksi Anda.\n\nPerhatikan bahwa opsi-opsi ini tidak cocok untuk sebagian besar pengguna dan oleh karena itu tidak diterjemahkan, jadi opsi-opsi ini dalam bahasa Inggris. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ind/17-model-manager.xml b/AnkiDroid/src/main/res/values-ind/17-model-manager.xml index a6dc3d24f7bd..819954f182c3 100644 --- a/AnkiDroid/src/main/res/values-ind/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ind/17-model-manager.xml @@ -62,9 +62,9 @@ Yakin ingin menghapus tipe catatan ini? Yakin ingin menghapus kolom ini? - Tambah: %1$s + Add: %1$s - Duplikat: %1$s + Clone: %1$s Masukkan templat yang penelusur kartu akan gunakan untuk menampilkan kartumu. Gunakan ini untuk menampilkan jawaban yang lebih ringkas.\n\nContoh: templat depan\n“Ibukota {{Negara}} adalah:”\nbisa diringkas lagi di penelusur kartu menjadi\n“Ibukota: {{Negara}}” Format pertanyaan diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-is/02-strings.xml +++ b/AnkiDroid/src/main/res/values-is/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-is/03-dialogs.xml b/AnkiDroid/src/main/res/values-is/03-dialogs.xml index 221b0b5ff1bb..86bcba56a637 100644 --- a/AnkiDroid/src/main/res/values-is/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-is/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-is/10-preferences.xml b/AnkiDroid/src/main/res/values-is/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-is/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-is/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-is/17-model-manager.xml b/AnkiDroid/src/main/res/values-is/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-is/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-is/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml index 133345091a8c..1d6566742efc 100644 --- a/AnkiDroid/src/main/res/values-it/02-strings.xml +++ b/AnkiDroid/src/main/res/values-it/02-strings.xml @@ -233,7 +233,7 @@ L\'immagine è troppo grande, per favore inserisci l\'immagine manualmente Il file video è troppo grande, per favore inserisci il video manualmente. Il file audio è troppo grande, inserisci manualmente il file audio. - Backup di Android in corso. Sei pregato di riprovare + Android backup in progress. Please try again Utilizza iManager per consentire ad AnkiDroid di aggiungere scorciatoie La tua schermata iniziale non consente ad AnkiDroid di aggiungere scorciatoie Errore nell\'aggiunta della scorciatoia: %s @@ -305,20 +305,14 @@ Browser options Registrazione salvata Eliminazione delle note selezionate - Clicca su una voce per ascoltare - - La voce deve essere installata prima dell\'uso - - Usa comunque - + Tap a voice to listen + Voice should be installed before use + Use anyway Errore sintetizzatore vocale (%s) - Internet - - Installa - - Non è stato possibile aprire le impostazioni del sintetizzatore vocale - + Internet + Install + Failed to open text to speech settings Accedi per scaricare altri mazzi Descrizione Copia non riuscita diff --git a/AnkiDroid/src/main/res/values-it/03-dialogs.xml b/AnkiDroid/src/main/res/values-it/03-dialogs.xml index ad3f8f11edc9..e29f223651b3 100644 --- a/AnkiDroid/src/main/res/values-it/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-it/03-dialogs.xml @@ -64,7 +64,7 @@ Errore database Scrittura della raccolta non riuscita. La banca dati potrebbe essere danneggiata o potrebbe non esserci abbastanza spazio vuoto sul disco.\n\nSe questo accade più spesso, prova a controllare la banca dati, a riparare la collezione o a ripristinarla da un backup. Tocca «opzioni» per quello.\n\O potrebbe essere anche un errore di AnkiDroid, per favore segnala l\'errore in modo da poterlo controllare. Segnala errori - Non c\'è abbastanza spazio libero per aprire AnkiDroid. Libera spazio per continuare. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Vuoi veramente provare a riparare il database?\n\nPrima di iniziare il tentativo, verrà creata una copia nella sottocartella \'%s\'. Categoria \'default\' è vuota Per aggiungere le carte ad AnkiDroid rimuovi tutte le categorie Notepad o aggiungine una chiamata \'default\' @@ -212,10 +212,8 @@ Più tardi Non mostrare più Avviso di perdita dati - A causa delle modifiche alla privacy di Android, i tuoi dati e i backup automatici verranno eliminati dal tuo telefono se l\'app viene disinstallata - - A causa delle modifiche alla privacy di Android, i tuoi dati e i backup automatici verranno eliminati dal tuo telefono se l\'app viene disinstallata - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Mazzo già esistente Deck name cannot be empty In caso di problemi di ordine del mazzo (es. \'10\' appare prima di \'2\'), sostituire \'2\' con \'02\' diff --git a/AnkiDroid/src/main/res/values-it/10-preferences.xml b/AnkiDroid/src/main/res/values-it/10-preferences.xml index 45536b662b91..be49f02d0691 100644 --- a/AnkiDroid/src/main/res/values-it/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-it/10-preferences.xml @@ -296,8 +296,7 @@ Opzioni sviluppatore Abilita le opzioni sviluppatore Disabilità le opzioni sviluppatore - Assicurati di voler abilitare le opzioni sviluppatore prima di farlo. Queste opzioni sono pericolose e potrebbero rompere l\'applicazione o corrompere la tua collezione.\n\nNota che queste opzioni non sono adatte alla maggior parte degli utenti e per questo non sono tradotte, quindi sono in inglese. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-it/17-model-manager.xml b/AnkiDroid/src/main/res/values-it/17-model-manager.xml index 16e5d8076b74..409153627b29 100644 --- a/AnkiDroid/src/main/res/values-it/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-it/17-model-manager.xml @@ -64,9 +64,9 @@ Sei sicuro/a di voler eliminare questo tipo di nota? Sei sicuro di voler eliminare questo campo? - Aggiungi: %1$s + Add: %1$s - Clona: %1$s + Clone: %1$s Inserisci il modello che il browser delle carte userà per visualizzare le tue carte. Usa questo per visualizzare una risposta più concisa.\n\nUn modello iniziale di\n«La capitale di {{Country}} è:»\npotrebbe essere compresso nel browser delle carte a\n«Capitale: {{Country}}» Formato della domanda diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 99f62f4597b0..6a1133e62e7f 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -241,7 +241,7 @@ התמונה גדולה מדי, אנא הכנס אותה באופן ידני קובץ הווידאו גדול מדי, אנא הכנס אותו באופן ידני קובץ השמע גדול מדי, אנא הכנס אותו באופן ידני - בתהליך עדכון אנדרואיד, נסה שנית. + Android backup in progress. Please try again ייתכן שיהיה עליך להשתמש ב- iManager כדי לאפשר ל- AnkiDroid להוסיף קיצורי דרך מסך הבית שלך אינו מאפשר ל- AnkiDroid להוסיף קיצורי דרך שגיאה בהוספת קיצור הדרך: %s @@ -315,14 +315,14 @@ אפשרויות דפדפן ההקלטה נשמרה מחיקת הערות שנבחרו - הקש על קול כדי להאזין - יש להתקין קול לפני השימוש - השתמש בכל אופן + Tap a voice to listen + Voice should be installed before use + Use anyway שגיאת טקסט לדיבור (%s) - אינטרנט - התקן - פתיחת הגדרות טקסט לדיבור נכשלה + Internet + Install + Failed to open text to speech settings אנא התחבר כדי להוריד חפיסות נוספות תיאור ההעתקה נכשלה diff --git a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml index 3affe6223155..fd1ea3da056c 100644 --- a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml @@ -68,7 +68,7 @@ שגיאת מסד נתונים כתיבה לאוסף נכשלה. מאגר המידע אולי שבור או שאין מספיק מקום בדיסק.\n\n אם זה קורה שוב ושוב, אפשר לבדוק את מאגר המידע, לתקן את האוסף או לשחזר אותו מגיבוי. לחץ \'אפשרויות\' עבור כך. \n כמו כן ייתכן שזוהי תקלה בAnkiDroid. נא לדווח את השגיאה כדי שנוכל לבדוק זאת. דיווח על שגיאה - אין מספיק שטח אחסון פנוי כדי לפתוח את AnkiDroid. פנה קצת מקום כדי להמשיך. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. לתקן את המאגר?\n\n לפני תחילת ניסיון התיקון, יתבצע שמירת העתק בתקייה %s הקטגוריה \'ברירת מחדל\' ריקה @@ -221,8 +221,8 @@ מאוחר יותר אל תציג שוב אזהרת אובדן נתונים - עקב שינויים בפרטיות של Android, הנתונים והגיבויים האוטומטיים שלך יימחקו מהטלפון שלך אם האפליקציה תוסר - עקב שינויים בפרטיות של Android, הנתונים והגיבויים האוטומטיים שלך לא יהיו נגישים אם האפליקציה תוסר + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled החפיסה כבר קיימת שם החפיסה לא יכול להיות ריק אם יש לך בעיות בסדר החפיסות (למשל, \'10\' מופיע לפני \'2\'), החלף את \'2\' ב-\'02\' diff --git a/AnkiDroid/src/main/res/values-iw/10-preferences.xml b/AnkiDroid/src/main/res/values-iw/10-preferences.xml index 4a1c832cab89..98947e1146a5 100644 --- a/AnkiDroid/src/main/res/values-iw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-iw/10-preferences.xml @@ -300,8 +300,7 @@ אפשרויות מפתח הפעלת מצב מפתח השבת את מצב המפתח - אנא ודא לפני הפעלת מצב מפתח. אפשרויות אלה מסוכנות ועלולות להשבית את האפליקציה או להשחית את האוסף שלך.\n\nשים לב שהאפשרויות הללו אינן מתאימות לרוב המשתמשים ולכן אינן מתורגמות, ולכן הן באנגלית. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-iw/17-model-manager.xml b/AnkiDroid/src/main/res/values-iw/17-model-manager.xml index 19458f765e99..a3ef8bd01e5f 100644 --- a/AnkiDroid/src/main/res/values-iw/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-iw/17-model-manager.xml @@ -68,9 +68,9 @@ האם אתה בטוח שברצונך למחוק את סוג פתק זה? למחוק את השדה הזה? - הוספה: %1$s + Add: %1$s - שכפול: %1$s + Clone: %1$s הזן את התבנית שבה ישתמש דפדפן הכרטיסים כדי להציג את הכרטיסים שלך. השתמש בזה כדי להציג תשובה תמציתית יותר.\n\nתבנית קדמית של\n\"בירת {{מדינה}} היא:\"\nניתן לדחוס בדפדפן הכרטיסים ל\n\"בירה: {{מדינה}}\" סגנון שאלה diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index b7df2a545ff6..8fd0bed3e3fe 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -183,7 +183,7 @@ デッキリスト画面の背景 画像を選択 - Remove background + 画像を背景から削除 背景画像を削除しますか? 既定値に戻す @@ -229,7 +229,7 @@ 画像が大きすぎます。手動で画像を挿入してください 動画ファイルが大きすぎます。手動で動画を挿入してください 音声ファイルが大きすぎます。手動で音声を挿入してください - Androidのバックアップが進行中です。もう一度やり直してください + Android backup in progress. Please try again AnkiDroidのショートカットを追加するには、iManagerでの許可が必要な場合があります。 ホーム画面へのショートカットの追加が許可されませんでした ショートカット追加のエラー: %s @@ -300,20 +300,14 @@ ブラウザ オプション 録音を保存しました 選択したノートを削除しています - 読み上げる音声をタップ - - 使用前に音声をインストールする必要があります - - とにかく使用 - + Tap a voice to listen + Voice should be installed before use + Use anyway テキスト読み上げエラー (%s) - インターネット - - インストール - - テキスト読み上げの設定を開けませんでした - + Internet + Install + Failed to open text to speech settings さらにデッキをダウンロードするにはログインしてください デッキ説明文 コピーに失敗しました diff --git a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml index d68971f9a365..74cde8a6228e 100644 --- a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml @@ -62,7 +62,7 @@ データベース エラー コレクションへの書き込み中にエラーが発生しました。データベースの破損しているか、ストレージの空き容量が不足している可能性があります。\n\n繰り返しエラーが発生する場合には、「データベースをチェック」、コレクションの修復、「バックアップから復元」を試してみてください。\nまた、AnkiDroidのバグである可能性が考えられる場合は、開発者にご報告ください。 エラーを報告 - AnkiDroidアプリを開くための十分な空き容量がストレージにありません。続行するには空き容量を確保してください。 + There is not enough free storage space to open AnkiDroid. Free up some space to continue. データベースの修復を試みて本当によろしいですか?\n\n試行の開始前に、サブフォルダ \"%s\" にコピーを作成します。 カテゴリー \"default\" が空です AnkiDroidにカードを登録するため、すべてのNotepadカテゴリを削除するか、\"default\" という名前のカテゴリを追加してください @@ -208,9 +208,8 @@ 後で 今後表示しない データ損失の警告 - Androidのプライバシーポリシーの変更に伴い、今後AnkiDroidをアンインストールすると、あなたのコレクションや自動バックアップのデータもこの端末から削除されます。 - - Androidのプライバシーポリシーの変更に伴い、今後AnkiDroidをアンインストールすると、現在のコレクションや自動バックアップのデータにアクセスできなくなります。 + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled 同じ名前のデッキがすでにあります デッキ名の入力が必要です デッキは名前の文字列順に並べられるため、たとえばデッキ「10」はデッキ「2」よりも上に配置されます。この場合、「2」を「02」に変更すれば、それより下に「10」を配置できます。 diff --git a/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml index 3656f6d32491..c0af4526fb7d 100644 --- a/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ja/07-cardbrowser.xml @@ -112,5 +112,5 @@ 使用可能 この列をブラウザのリストで使用 この列をブラウザのリストから除外 - Retrieving fields names… + フィールド名を取得しています… diff --git a/AnkiDroid/src/main/res/values-ja/10-preferences.xml b/AnkiDroid/src/main/res/values-ja/10-preferences.xml index ce51ab4adc5c..143070d5aa84 100644 --- a/AnkiDroid/src/main/res/values-ja/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ja/10-preferences.xml @@ -294,8 +294,7 @@ 開発者向けオプション 開発者向けオプションを有効にする 開発者向けオプションを無効にする - 注意:開発者向けのオプションは、使い方によってはアプリ自体やコレクションを破損させるおそれがあります。\n\nこれらのオプションはほとんどのユーザーには適していないため、英語でのみ表示されます。 - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ja/17-model-manager.xml b/AnkiDroid/src/main/res/values-ja/17-model-manager.xml index e81c69afade7..e470a29b0e0b 100644 --- a/AnkiDroid/src/main/res/values-ja/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ja/17-model-manager.xml @@ -62,9 +62,9 @@ このノートタイプを削除します。本当によろしいですか? このフィールドを削除します。本当によろしいですか? - 追加: %1$s + Add: %1$s - 複製: %1$s + Clone: %1$s カードブラウザでカードをリスト表示する際に使用するテンプレートを設定できます。これを利用すると、内容をより簡潔に表示することができます。\n\n例えば、\n「 {{Country}} の首都はどこですか?」\nという内容の表面テンプレートについて、\n「 {{Country}} の首都」\nという、リストの質問欄用のテンプレートを設定することによって、「フランス の首都」「ドイツ の首都」のように、カード表面の内容をコンパクトに示すことができます。 質問欄テンプレート diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml index 18b51e859232..6344ffa4695e 100644 --- a/AnkiDroid/src/main/res/values-jv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml @@ -229,7 +229,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -300,20 +300,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml index 4c4d14477486..e649b069ab31 100644 --- a/AnkiDroid/src/main/res/values-jv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-jv/03-dialogs.xml @@ -62,7 +62,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-jv/10-preferences.xml b/AnkiDroid/src/main/res/values-jv/10-preferences.xml index 0b680887a4dd..0f0b55cad9c9 100644 --- a/AnkiDroid/src/main/res/values-jv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-jv/10-preferences.xml @@ -295,8 +295,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-jv/17-model-manager.xml b/AnkiDroid/src/main/res/values-jv/17-model-manager.xml index 5fa571a5e4a9..c92fe77e4302 100644 --- a/AnkiDroid/src/main/res/values-jv/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-jv/17-model-manager.xml @@ -62,9 +62,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 03d405cd5529..73ceaacafdaf 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -233,7 +233,7 @@ სურათი ზედმეტად დიდია. გთხოვთ, სურათი ხელით ჩაამატოთ The video file is too large, please insert the video manually The audio file is too large, please insert the audio manually - მიმდინარეობს Android-ის სარეზერვო ასლის შექმნა. გთხოვთ, ხელახლა სცადოთ + Android backup in progress. Please try again შესაძლოა iManager-ის გამოყენება დაგჭირდეთ, რათა AnkiDroid-ით სწრაფი ბმულის დამატება შეძლოთ თქვენი საწყისი ეკრანი არ აძლევს AnkiDroid-ს სწრაფი ბმულის დამატების უფლებას შეცდომა სწრაფი ბმულის დამატებისას: %s @@ -305,19 +305,14 @@ ბარათების საძიებოს პარამეტრები ჩანაწერი შენახულია მონიშნული შენიშვნების წაშლა - მოსასმენად შეეხეთ ხმას - - უმჯობესია, ხმა გამოყენებამდე გადმოიწეროთ - - მაინც გამოყენება + Tap a voice to listen + Voice should be installed before use + Use anyway ხმოვანი წამკითხველის შეცდომა (%s) - ინტერნეტი - - დაყენება - - ხმოვანი წამკითხველის პარამეტრები ვერ გაიხსნა - + Internet + Install + Failed to open text to speech settings მეტი დასტის გადმოსაწერად, გთხოვთ, გაიაროთ ავტორიზაცია აღწერა კოპირება ვერ მოხერხდა diff --git a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml index efd2c32584f6..e5b9f258b5b9 100644 --- a/AnkiDroid/src/main/res/values-ka/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ka/03-dialogs.xml @@ -64,7 +64,7 @@ მონაცემთა ბაზის შეცდომა Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. შეცდომის შეტყობინება - არ არის საკმარისი თავისუფალი მეხსიერების სივრცე, რომ AnkiDroid-ის გახსნა მოხერხდეს. გთხოვთ, მეხსიერების სივრცეში ადგილი გაანთავისუფლოთ. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ნამდვილად გსურთ, სცადოთ მონაცემთა ბაზის შეკეთება?\n\nმცდელობის დაწყებამდე შეიქმნება ასლი ქვესაქაღალდეში: „%s“. კატეგორია „ნაგულისხმევი“ ცარიელია To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ მოგვიანებით აღარ მაჩვენო მონაცემთა დაკარგვის გაფრთხილება - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled დასტა უკვე არსებობს დასტის სახელი არ შეიძლება იყოს ცარიელი If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ka/10-preferences.xml b/AnkiDroid/src/main/res/values-ka/10-preferences.xml index 0987fb3f8a16..5905109b8d0b 100644 --- a/AnkiDroid/src/main/res/values-ka/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ka/10-preferences.xml @@ -296,8 +296,7 @@ დეველოპერის პარამეტრები დეველოპერის პარამეტრების ჩართვა დეველოპერის პარამეტრების გამორთვა - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ka/17-model-manager.xml b/AnkiDroid/src/main/res/values-ka/17-model-manager.xml index 196079ef0202..3feb994bd55c 100644 --- a/AnkiDroid/src/main/res/values-ka/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ka/17-model-manager.xml @@ -64,9 +64,9 @@ ნამდვილად გსურთ ამ შენიშვნის ტიპის წაშლა? ნამდვილად გსურთ ამ ველის წაშლა? - დამატება: %1$s + Add: %1$s - კლონი: %1$s + Clone: %1$s შეიყვანეთ შაბლონი, რომელსაც ბარათების საძიებო პასუხების შემოკლებული ვერსიების საჩვენებლად გამოიყენებს.\n\n\"{{ქვეყანა}}-ს დედაქალაქი არის:\"\nრომ ავიღოთ მაგალითად, მისი შიგთავსი შეიძლება წინა შაბლონით შემოკლდეს როგორც\n\"დედაქალაქი: {{ქვეყანა}}\" კითხვის ფორმატი diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-kk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml index 4c7e5145537a..61889054ad3c 100644 --- a/AnkiDroid/src/main/res/values-kk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kk/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-kk/10-preferences.xml b/AnkiDroid/src/main/res/values-kk/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-kk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kk/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-kk/17-model-manager.xml b/AnkiDroid/src/main/res/values-kk/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-kk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-kk/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 20586fe7adbf..1efb4edd7665 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -229,7 +229,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -300,16 +300,14 @@ ជម្រើសក្នុងការរុករក ការថតទុកត្រូវបានរក្សាទុក លុបកំណត់ត្រាដែលបានរើស - Tap a voice to listen - - សំឡេងគួរតែត្រូវបានដំឡើងមុនពេលប្រើ - នៅតែប្រើ + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - អ៊ីនធឺណិត - ដំឡើង - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings សូមចុះឈ្មោះចូលដើម្បីទាញយកជាន់ច្រើនទៀត Description បរាជ័យក្នុងការចម្លង diff --git a/AnkiDroid/src/main/res/values-km/03-dialogs.xml b/AnkiDroid/src/main/res/values-km/03-dialogs.xml index 94f28d1f119a..6a129bf68e6a 100644 --- a/AnkiDroid/src/main/res/values-km/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-km/03-dialogs.xml @@ -62,7 +62,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. រាយការណ៍កំហុស - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-km/10-preferences.xml b/AnkiDroid/src/main/res/values-km/10-preferences.xml index d0dd398e541e..7580650b7d07 100644 --- a/AnkiDroid/src/main/res/values-km/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-km/10-preferences.xml @@ -295,8 +295,7 @@ ជម្រើសអ្នកអភិវឌ្ឍ Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-km/17-model-manager.xml b/AnkiDroid/src/main/res/values-km/17-model-manager.xml index 5fa571a5e4a9..c92fe77e4302 100644 --- a/AnkiDroid/src/main/res/values-km/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-km/17-model-manager.xml @@ -62,9 +62,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index 2ae278f8d1c4..427e1ccc5496 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -233,7 +233,7 @@ 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 ಬ್ಯಾಕಪ್ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ದಯವಿಟ್ಟು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ + Android backup in progress. Please try again ಶಾರ್ಟ್‌ಕಟ್‌ಗಳನ್ನು ಸೇರಿಸಲು AnkiDroid ಅನ್ನು ಅನುಮತಿಸಲು ನೀವು iManager ಅನ್ನು ಬಳಸಬೇಕಾಗಬಹುದು ಶಾರ್ಟ್‌ಕಟ್‌ಗಳನ್ನು ಸೇರಿಸಲು ನಿಮ್ಮ ಮುಖಪುಟವು ಆಂಕಿಡ್ರಾಯ್ಡ್‌ಗೆ ಅನುಮತಿಸುವುದಿಲ್ಲ ಶಾರ್ಟ್‌ಕಟ್ ಸೇರಿಸುವಲ್ಲಿ ದೋಷ:%s @@ -305,14 +305,14 @@ Browser options ರೆಕಾರ್ಡಿಂಗ್ ಅನ್ನು ಉಳಿಸಲಾಗಿದೆ ಆಯ್ದ ಟಿಪ್ಪಣಿಗಳನ್ನು ಅಳಿಸಲಾಗುತ್ತಿದೆ - ಕೇಳಲು ಧ್ವನಿಯನ್ನು ಟ್ಯಾಪ್ ಮಾಡಿ - ಬಳಕೆಗೆ ಮೊದಲು ಧ್ವನಿಯನ್ನು ಅಳವಡಿಸಬೇಕು - ಹೇಗಾದರೂ ಬಳಸಿ + Tap a voice to listen + Voice should be installed before use + Use anyway ಪಠ್ಯದಿಂದ ಭಾಷಣ ದೋಷ (%s) - ಇಂಟರ್ನೆಟ್ - ಸ್ಥಾಪಿಸಿ - ಧ್ವನಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಪಠ್ಯವನ್ನು ತೆರೆಯಲು ವಿಫಲವಾಗಿದೆ + Internet + Install + Failed to open text to speech settings ಹೆಚ್ಚಿನ ಡೆಕ್‌ಗಳನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಲು ದಯವಿಟ್ಟು ಲಾಗ್ ಇನ್ ಮಾಡಿ ವಿವರಣೆ ನಕಲಿಸಲು ವಿಫಲವಾಗಿದೆ diff --git a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml index 8525a75a65de..a7f568e31906 100644 --- a/AnkiDroid/src/main/res/values-kn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-kn/03-dialogs.xml @@ -64,7 +64,7 @@ ಡೇಟಾಬೇಸ್ ದೋಷ ಸಂಗ್ರಹಣೆಗೆ ಬರೆಯುವುದು ವಿಫಲವಾಗಿದೆ. ಡೇಟಾಬೇಸ್ ದೋಷಪೂರಿತವಾಗಿರಬಹುದು ಅಥವಾ ಡಿಸ್ಕ್‌ನಲ್ಲಿ ಸಾಕಷ್ಟು ಖಾಲಿ ಜಾಗವಿಲ್ಲದಿರಬಹುದು.\n\nಇದು ಹೆಚ್ಚಾಗಿ ಸಂಭವಿಸಿದರೆ, ಡೇಟಾಬೇಸ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಪ್ರಯತ್ನಿಸಿ, ಸಂಗ್ರಹಣೆಯನ್ನು ಸರಿಪಡಿಸಲು ಅಥವಾ ಬ್ಯಾಕಪ್‌ನಿಂದ ಅದನ್ನು ಮರುಸ್ಥಾಪಿಸಲು. ಅದಕ್ಕಾಗಿ \"ಆಯ್ಕೆಗಳನ್ನು\" ಸ್ಪರ್ಶಿಸಿ.\n\ಅಥವಾ ಇದು AnkiDroid ದೋಷವೂ ಆಗಿರಬಹುದು; ದಯವಿಟ್ಟು ದೋಷವನ್ನು ವರದಿ ಮಾಡಿ ಇದರಿಂದ ನಾವು ಇದನ್ನು ಪರಿಶೀಲಿಸಬಹುದು. ದೋಷವನ್ನು ವರದಿ ಮಾಡಿ - AnkiDroid ತೆರೆಯಲು ಸಾಕಷ್ಟು ಉಚಿತ ಸಂಗ್ರಹಣೆ ಸ್ಥಳವಿಲ್ಲ. ಮುಂದುವರಿಯಲು ಸ್ವಲ್ಪ ಜಾಗವನ್ನು ಮುಕ್ತಗೊಳಿಸಿ. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ಡೇಟಾಬೇಸ್ ಅನ್ನು ಸರಿಪಡಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ?\n\nಪ್ರಯತ್ನವನ್ನು ಪ್ರಾರಂಭಿಸುವ ಮೊದಲು, \"%s\" ಉಪಫೋಲ್ಡರ್‌ನಲ್ಲಿ ನಕಲನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. \"ಡೀಫಾಲ್ಟ್\" ವರ್ಗ ಖಾಲಿಯಾಗಿದೆ ಎಲ್ಲಾ ನೋಟ್‌ಪ್ಯಾಡ್ ವಿಭಾಗಗಳನ್ನು ತೆಗೆದುಹಾಕಿ ಅಥವಾ AnkiDroid ಗೆ ಕಾರ್ಡ್‌ಗಳನ್ನು ಸೇರಿಸಲು \"ಡೀಫಾಲ್ಟ್\" ಹೆಸರಿನ ಒಂದನ್ನು ಸೇರಿಸಿ @@ -212,8 +212,8 @@ ನಂತರ ಅದನ್ನು ಮತ್ತೆ ತೋರಿಸಬೇಡ ಡೇಟಾ ನಷ್ಟದ ಎಚ್ಚರಿಕೆ - Android ಗೌಪ್ಯತೆ ಬದಲಾವಣೆಗಳಿಂದಾಗಿ, ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದರೆ ನಿಮ್ಮ ಡೇಟಾ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಬ್ಯಾಕಪ್‌ಗಳನ್ನು ನಿಮ್ಮ ಫೋನ್‌ನಿಂದ ಅಳಿಸಲಾಗುತ್ತದೆ - Android ಗೌಪ್ಯತೆ ಬದಲಾವಣೆಗಳಿಂದಾಗಿ, ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಅನ್‌ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡುವುದರಿಂದ ನಿಮ್ಮ ಡೇಟಾ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತ ಬ್ಯಾಕಪ್‌ಗಳನ್ನು ಪ್ರವೇಶಿಸಲಾಗುವುದಿಲ್ಲ + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ಡೆಕ್ ಈಗಾಗಲೇ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆ Deck name cannot be empty ನೀವು ಡೆಕ್ ಆರ್ಡರ್ ಮಾಡುವ ಸಮಸ್ಯೆಗಳನ್ನು ಹೊಂದಿದ್ದರೆ (ಉದಾ \'10\' \'2\' ಮೊದಲು ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ), \'2\' ಅನ್ನು \'02\' ನೊಂದಿಗೆ ಬದಲಾಯಿಸಿ diff --git a/AnkiDroid/src/main/res/values-kn/10-preferences.xml b/AnkiDroid/src/main/res/values-kn/10-preferences.xml index 2d0acc79492a..05319dc037be 100644 --- a/AnkiDroid/src/main/res/values-kn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kn/10-preferences.xml @@ -295,7 +295,7 @@ ಅಭಿವೃಧಿಕಾರರ ಸೂಚನೆಗಳು ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿ - ಡೆವಲಪರ್ ಆಯ್ಕೆಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೊದಲು ದಯವಿಟ್ಟು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಈ ಆಯ್ಕೆಗಳು ಅಪಾಯಕಾರಿ ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ಒಡೆಯಬಹುದು ಅಥವಾ ನಿಮ್ಮ ಸಂಗ್ರಹಣೆಯನ್ನು ಭ್ರಷ್ಟಗೊಳಿಸಬಹುದು.\n\nಈ ಆಯ್ಕೆಗಳು ಹೆಚ್ಚಿನ ಬಳಕೆದಾರರಿಗೆ ಸೂಕ್ತವಲ್ಲ ಮತ್ತು ಆದ್ದರಿಂದ ಅನುವಾದಿಸಲಾಗಿಲ್ಲ, ಆದ್ದರಿಂದ ಅವು ಇಂಗ್ಲಿಷ್‌ನಲ್ಲಿವೆ. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-kn/17-model-manager.xml b/AnkiDroid/src/main/res/values-kn/17-model-manager.xml index 935c8d668556..0caec807a8c8 100644 --- a/AnkiDroid/src/main/res/values-kn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-kn/17-model-manager.xml @@ -64,9 +64,9 @@ ಈ ಟಿಪ್ಪಣಿ ಪ್ರಕಾರವನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? ಈ ಕ್ಷೇತ್ರವನ್ನು ಅಳಿಸಲು ನೀವು ಖಚಿತವಾಗಿ ಬಯಸುವಿರಾ? - ಸೇರಿಸಿ: %1$s + Add: %1$s - ಕ್ಲೋನ್: %1$s + Clone: %1$s ನಿಮ್ಮ ಕಾರ್ಡ್‌ಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಕಾರ್ಡ್ ಬ್ರೌಸರ್ ಬಳಸುವ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು ನಮೂದಿಸಿ. ಹೆಚ್ಚು ಸಂಕ್ಷಿಪ್ತ ಉತ್ತರವನ್ನು ಪ್ರದರ್ಶಿಸಲು ಇದನ್ನು ಬಳಸಿ.\n\n\n“{{Country}} Capital:”\nನ ಮುಂಭಾಗದ ಟೆಂಪ್ಲೇಟ್ ಅನ್ನು \n“ಕ್ಯಾಪಿಟಲ್: {{Country}}” ಗೆ ಕಾರ್ಡ್ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಸಂಕುಚಿತಗೊಳಿಸಬಹುದು. ಪ್ರಶ್ನೆ ಸ್ವರೂಪ diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index 714a277b980a..c9a325bae0e8 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -232,7 +232,7 @@ Context | Request Context [1] 이미지가 너무 큽니다. 수동으로 넣어 주세요. 영상 파일이 너무 큽니다. 수동으로 넣어 주세요. 오디오 파일이 너무 큽니다. 수동으로 넣어 주세요. - Android 백업이 작동 중입니다. 다시 시도하십시오. + Android backup in progress. Please try again AnkiDroid 바로가기를 추가하려면 iManager가 필요할 수 있습니다. 홈 화면에 AnkiDroid 바로 가기를 추가할 수 없습니다. 바로가기 생성 오류: %s @@ -303,20 +303,14 @@ Context | Request Context [1] 브라우저 옵션 녹음 파일 저장됨 선택한 메모 삭제 중 - 음성을 들으려면 탭하세요 - - 사용 전 음성을 설치해 주세요 - - 그냥 사용하기 - + Tap a voice to listen + Voice should be installed before use + Use anyway 문장 읽어주기 오류 (%s) - 인터넷 - - 설치 - - 문장 읽어주기 설정 열기 실패 - + Internet + Install + Failed to open text to speech settings 카드 덱을 더 다운로드하려면 로그인해 주세요 설명 복사 실패 diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml index bc5c6638a51f..d4099b47b2fe 100644 --- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml @@ -62,7 +62,7 @@ 데이터베이스 오류 컬렉션에 쓰는 것을 실패했습니다. 데이터베이스가 손상되었거나 디스크에 충분한 여유 공간이 없을 수 있습니다.\n\n이 문제가 자주 발생하면 데이터베이스를 점검하거나 컬렉션을 복구하거나 설정에서 백업 파일을 복원해 보세요. \n\n또는 AnkiDroid 버그일 수 있으니, 오류를 보고해 주시면 확인해 보겠습니다. 오류 보고하기 - AnkiDroid를 열 저장 공간이 부족합니다. 계속하려면 여유 공간을 확보하세요. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. 데이터베이스를 복구하시겠습니까?\n\n 복구를 시작하기 전에 지정된 하위폴더에 복사본 파일이 저장됩니다\'%s\'. \'기본값\' 카테고리가 비어 있습니다 AnkiDroid에 카드를 추가하기 위해 모든 메모장 범주 삭제 또는 \'기본값\'으로 지정하기 @@ -208,10 +208,8 @@ 나중에 다시 보지 않기 데이터 손실 경고 - 안드로이드 개인정보 보호 정책 변경으로 인해 앱을 제거하면 기기에서 데이터와 자동 백업이 삭제됩니다. - - 안드로이드 개인정보 보호 정책 변경으로 인해 앱을 제거하면 데이터 및 자동 백업에 액세스할 수 없게 됩니다. - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled 덱이 이미 존재합니다 덱 이름은 공백일 수 없습니다 덱 정렬에 문제가 있다면 (\'10\'이 \'2\' 앞에 올 때) \'2\'를 \'02\'로 교체하세요 diff --git a/AnkiDroid/src/main/res/values-ko/10-preferences.xml b/AnkiDroid/src/main/res/values-ko/10-preferences.xml index 63f5cc01eb1e..e08e9886466f 100644 --- a/AnkiDroid/src/main/res/values-ko/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ko/10-preferences.xml @@ -293,7 +293,7 @@ 개발자 옵션 개발자 옵션 활성화하기 개발자 옵션 비활성화하기 - 개발자 옵션을 켜기 전에 유의할 점이 있습니다. 이 옵션들은 앱을 고장내거나 카드 모음을 이상하게 만들 위험성이 있습니다. 이 옵션들은 대부분의 유저에게는 사용할 필요가 없기 때문에 영어인 채로 번역되지 않았습니다. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml index 835e4c217edb..946a10eedd38 100644 --- a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml @@ -31,7 +31,7 @@ 마지막 노트 유형은 삭제 할 수 없습니다. 노트 유형에는 최소한 하나의 필드가 필요합니다. - 이름을 입력하셔야 합니다. + 이름을 입력해야 합니다 필드 이름이 이미 사용 중 입니다. @@ -62,9 +62,9 @@ 이 노트 유형을 삭제하시겠습니까? 이 필드를 삭제하시겠습니까? - 추가: %1$s + Add: %1$s - 클론: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” 문제 형식 @@ -74,8 +74,8 @@ 덱 덮어쓰기 on 덱 덮어쓰기 off - Set ‘%1$s’ default deck to ‘%2$s’ - Removed default deck for ‘%s’ + ‘%1$s’을 ‘%2$s’의 기본 덱으로 설정 + \'%s\'에서 기본 덱 삭제 새 \'%s\' 카드가 들어갈 덱 선택하기 - Filter decks + 필터 덱 diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml index 6914736c4005..2dbbc450b133 100644 --- a/AnkiDroid/src/main/res/values-ku/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml index d99b9cb1805c..5b0841bd8f48 100644 --- a/AnkiDroid/src/main/res/values-ku/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ku/03-dialogs.xml @@ -64,7 +64,7 @@ Çewtiya danegehê Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ku/10-preferences.xml b/AnkiDroid/src/main/res/values-ku/10-preferences.xml index 76fb669b6a37..1a12afc3c31c 100644 --- a/AnkiDroid/src/main/res/values-ku/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ku/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ku/17-model-manager.xml b/AnkiDroid/src/main/res/values-ku/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ku/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ku/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-ky/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml index e9fdcb377dee..61b53dc171e5 100644 --- a/AnkiDroid/src/main/res/values-ky/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ky/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ky/10-preferences.xml b/AnkiDroid/src/main/res/values-ky/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-ky/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ky/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ky/17-model-manager.xml b/AnkiDroid/src/main/res/values-ky/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ky/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ky/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml index 6aeac886b899..ddbca877d423 100644 --- a/AnkiDroid/src/main/res/values-lt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml @@ -241,7 +241,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -315,20 +315,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml index 30cca55c2459..9d2e3ecb72d6 100644 --- a/AnkiDroid/src/main/res/values-lt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lt/03-dialogs.xml @@ -68,7 +68,7 @@ Duomenų bazės klaida Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Pranešti apie klaidą - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Ar tikrai norite taisyti duomenų bazę?\n\nPrieš tai atliekant, poaplankyje „%s“ bus sukurta kopija. Kategorija „numatytieji“ yra tuščia Norėdami „AnkiDroid“ programoje pridėti kortelių, pašalinkite visas „Notepad“ kategorijas arba pridėkite vieną, kuri vadintųsi „numatytoji“ @@ -220,10 +220,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-lt/10-preferences.xml b/AnkiDroid/src/main/res/values-lt/10-preferences.xml index bbd1abf46e9d..da51a0dcd14a 100644 --- a/AnkiDroid/src/main/res/values-lt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lt/10-preferences.xml @@ -301,8 +301,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-lt/17-model-manager.xml b/AnkiDroid/src/main/res/values-lt/17-model-manager.xml index 3c28a543476a..02444c5b74c1 100644 --- a/AnkiDroid/src/main/res/values-lt/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-lt/17-model-manager.xml @@ -68,9 +68,9 @@ Are you sure you wish to delete this note type? Ar tikrai norite ištrinti šį laukelį? - Pridėti: %1$s + Add: %1$s - Dubliuoti: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Klausimo formatas diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml index 81183e2c2b10..1411b824e4a9 100644 --- a/AnkiDroid/src/main/res/values-lv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml @@ -237,7 +237,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -310,20 +310,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml index 0f24aa30ad6a..1c4607d23a67 100644 --- a/AnkiDroid/src/main/res/values-lv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-lv/03-dialogs.xml @@ -66,7 +66,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -216,10 +216,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-lv/10-preferences.xml b/AnkiDroid/src/main/res/values-lv/10-preferences.xml index af545fb15c92..7e32dc0495df 100644 --- a/AnkiDroid/src/main/res/values-lv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lv/10-preferences.xml @@ -299,8 +299,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-lv/17-model-manager.xml b/AnkiDroid/src/main/res/values-lv/17-model-manager.xml index 0d282d0d0d5f..d61c99503a5d 100644 --- a/AnkiDroid/src/main/res/values-lv/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-lv/17-model-manager.xml @@ -66,9 +66,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml index f3403fbce26b..c7a86c6cd020 100644 --- a/AnkiDroid/src/main/res/values-mk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml @@ -234,7 +234,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -306,20 +306,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml index 199572732287..f046fbd05bcc 100644 --- a/AnkiDroid/src/main/res/values-mk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mk/03-dialogs.xml @@ -64,7 +64,7 @@ Грешка во базата на податоци Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Пријавете грешка - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Дали навистина сакате да се обидете да ја поправите базата на податоци?\n\nПред да го започнете обидот, копијата ќе биде креирана во подпапката \"%s\". Категоријата \"default\" е празна За да додадете картички на AnkiDroid, отстранете ги сите обележени категории или додадете еден по име \"default\" @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-mk/10-preferences.xml b/AnkiDroid/src/main/res/values-mk/10-preferences.xml index 27df657854a1..36d535304d51 100644 --- a/AnkiDroid/src/main/res/values-mk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mk/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-mk/17-model-manager.xml b/AnkiDroid/src/main/res/values-mk/17-model-manager.xml index 433093302695..45c017f4af5d 100644 --- a/AnkiDroid/src/main/res/values-mk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-mk/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Дали сте сигурни дека сакате да го избришете ова поле? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml index da98f33c2ed4..760926d4599c 100644 --- a/AnkiDroid/src/main/res/values-ml/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml @@ -233,7 +233,7 @@ ചിത്രം വളരെ വലുതാണ്, ചിത്രം നേരിട്ട് ചേർക്കുക വീഡിയോ ഫയൽ വളരെ വലുതാണ്, വീഡിയോ നേരിട്ട് ചേർക്കുക ഓഡിയോ ഫയൽ വളരെ വലുതാണ്, ഓഡിയോ നേരിട്ട് ചേർക്കുക - Android backup in progress. Please try again + Android backup in progress. Please try again കുറുക്കുവഴികൾ ചേർക്കാൻ AnkiDroid-നെ അനുവദിക്കുന്നതിന് നിങ്ങൾ iManager ഉപയോഗിക്കേണ്ടി വന്നേക്കാം കുറുക്കുവഴികൾ ചേർക്കാൻ നിങ്ങളുടെ ഹോം സ്‌ക്രീൻ AnkiDroid-നെ അനുവദിക്കുന്നില്ല കുറുക്കുവഴി ചേർക്കുന്നതിൽ പിശക്: %s @@ -305,14 +305,14 @@ Browser options Recording saved Deleting selected notes - കേൾക്കാൻ ഒരു ശബ്ദം ടാപ്പ് ചെയ്യുക - ഉപയോഗിക്കുന്നതിന് മുമ്പ് വോയ്സ് ഇൻസ്റ്റാൾ ചെയ്യണം - എന്തായാലും ഉപയോഗിക്കുക + Tap a voice to listen + Voice should be installed before use + Use anyway ടെക്സ്റ്റ് ടു സ്പീച്ച് പിശക് (%s) - ഇൻ്റർനെറ്റ് - ഇൻസ്റ്റാൾ ചെയ്യുക - ടെക്‌സ്‌റ്റ് ടു സ്‌പീച്ച് ക്രമീകരണം തുറക്കുന്നതിൽ പരാജയപ്പെട്ടു + Internet + Install + Failed to open text to speech settings കൂടുതൽ ഡെക്കുകൾ ഡൗൺലോഡ് ചെയ്യാൻ ലോഗിൻ ചെയ്യുക വിവരണം പകർത്തുന്നതിൽ പരാജയപ്പെട്ടു diff --git a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml index cde3c6bfb91f..2da850ec18a8 100644 --- a/AnkiDroid/src/main/res/values-ml/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ml/03-dialogs.xml @@ -64,7 +64,7 @@ ഡാറ്റാബേസ് പിശക് ശേഖരത്തിലേക്ക് എഴുതുന്നത് പരാജയപ്പെട്ടു. ഡാറ്റാബേസ് കേടായതാകാം അല്ലെങ്കിൽ ഡിസ്കിൽ വേണ്ടത്ര ശൂന്യമായ ഇടം ഉണ്ടാകണമെന്നില്ല. \n\n ഇത് പലപ്പോഴും സംഭവിക്കുകയാണെങ്കിൽ, ഡാറ്റാബേസ് പരിശോധിക്കാനോ ശേഖരം നന്നാക്കാനോ ബാക്കപ്പിൽ നിന്ന് പുന സ്ഥാപിക്കാനോ ശ്രമിക്കുക. അതിനായി “ഓപ്ഷനുകൾ” സ്‌പർശിക്കുക. \n\ അല്ലെങ്കിൽ ഇത് ഒരു അങ്കിഡ്രോയിഡ് ബഗ് ആകാം; പിശക് റിപ്പോർട്ടുചെയ്യുക, അതുവഴി ഞങ്ങൾക്ക് ഇത് പരിശോധിക്കാൻ കഴിയും. റിപ്പോർട്ട് പിശക് - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ഡാറ്റാബേസ് നന്നാക്കാൻ നിങ്ങൾ ശരിക്കും ആഗ്രഹിക്കുന്നുണ്ടോ? \n\n ശ്രമം ആരംഭിക്കുന്നതിന് മുമ്പ്, “%s” എന്ന സബ്ഫോൾഡറിൽ ഒരു പകർപ്പ് സൃഷ്ടിക്കപ്പെടും. വിഭാഗം “സ്ഥിരസ്ഥിതി” ശൂന്യമാണ് AnkiDroid- ലേക്ക് കാർഡുകൾ ചേർക്കുന്നതിന് എല്ലാ നോട്ട്പാഡ് വിഭാഗങ്ങളും നീക്കംചെയ്യുക അല്ലെങ്കിൽ “സ്ഥിരസ്ഥിതി” എന്ന് പേരുള്ള ഒന്ന് ചേർക്കുക @@ -212,10 +212,8 @@ പിന്നീട് വീണ്ടും കാണിക്കരുത് ഡാറ്റ നഷ്ടം മുന്നറിയിപ്പ് - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ഡെക്ക് ഇതിനകം നിലവിലുണ്ട് ഡെക്കിൻ്റെ പേര് ശൂന്യമാക്കാൻ കഴിയില്ല നിങ്ങൾക്ക് ഡെക്ക് ഓർഡർ ചെയ്യുന്നതിൽ പ്രശ്‌നങ്ങളുണ്ടെങ്കിൽ (ഉദാ. \'10\' \'2\' ന് മുമ്പ് ദൃശ്യമാകുന്നു), \'2\' മാറ്റി \'02\' diff --git a/AnkiDroid/src/main/res/values-ml/10-preferences.xml b/AnkiDroid/src/main/res/values-ml/10-preferences.xml index bf34084e55b6..ee9b1eb61620 100644 --- a/AnkiDroid/src/main/res/values-ml/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ml/10-preferences.xml @@ -296,8 +296,7 @@ ഡെവലപ്പർ ഓപ്ഷനുകൾ ഡെവലപ്പർ ഓപ്ഷനുകൾ പ്രവർത്തനക്ഷമമാക്കുക ഡെവലപ്പർ ഓപ്ഷനുകൾ പ്രവർത്തനരഹിതമാക്കുക - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ml/17-model-manager.xml b/AnkiDroid/src/main/res/values-ml/17-model-manager.xml index 75dee61b85d3..0ab68b281c89 100644 --- a/AnkiDroid/src/main/res/values-ml/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ml/17-model-manager.xml @@ -64,9 +64,9 @@ ഈ പോസ്റ്റ് തരം ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ? ഈ ഫീൽഡ് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ? - ചേർക്കുക: %1$s + Add: %1$s - ക്ലോൺ: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” ചോദ്യ ഫോർമാറ്റ് diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 7dd499cceb40..5ddffc7feb50 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-mn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mn/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-mn/10-preferences.xml b/AnkiDroid/src/main/res/values-mn/10-preferences.xml index dd70942eb764..5a7b2e0e63d5 100644 --- a/AnkiDroid/src/main/res/values-mn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mn/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-mn/17-model-manager.xml b/AnkiDroid/src/main/res/values-mn/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-mn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-mn/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml index d167b4c59ed1..b998d7c988bb 100644 --- a/AnkiDroid/src/main/res/values-mr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml @@ -233,7 +233,7 @@ 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 बॅकअप प्रगतीपथावर आहे. कृपया पुन्हा प्रयत्न करा + Android backup in progress. Please try again Android बॅकअप प्रगतीपथावर आहे. कृपया पुन्हा प्रयत्न करा आपली मुख्य स्क्रीन AnkiDroid ला शॉर्टकट जोडण्याची परवानगी देत ​​नाही शॉर्टकट जोडताना त्रुटी:%s @@ -305,14 +305,14 @@ Browser options रेकॉर्डिंग सेव्ह केले निवडलेल्या टिपा हटवत आहे - ऐकण्यासाठी आवाज टॅप करा - वापरण्यापूर्वी ध्वनी स्थापित करणे आवश्यक आहे - तरीही वापरा + Tap a voice to listen + Voice should be installed before use + Use anyway टेक्स्ट टू स्पीच एरर (%s) - इंटरनेट - स्थापित करा - मजकूर ते भाषण सेटिंग्ज उघडण्यात अयशस्वी + Internet + Install + Failed to open text to speech settings कृपया अधिक डेक डाउनलोड करण्यासाठी लॉग इन करा वर्णन कॉपी करण्यात अयशस्वी diff --git a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml index 5ddcf4a4e9a0..db8037ee8970 100644 --- a/AnkiDroid/src/main/res/values-mr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-mr/03-dialogs.xml @@ -64,7 +64,7 @@ डेटाबेस त्रुटी संग्रहात लेखन अयशस्वी. डेटाबेस दूषित होऊ शकतो किंवा डिस्कवर पुरेशी रिक्त जागा असू शकत नाही. \N \n जर हे बर्‍याचदा घडले तर डेटाबेस तपासून पहा, संग्रह दुरुस्त करा किंवा बॅकअपमधून पुनर्संचयित करा. त्यासाठी “पर्याय” ला स्पर्श करा. \N\ किंवा हा अँकीड्रोइड बग देखील असू शकतो; कृपया त्रुटी नोंदवा जेणेकरुन आम्ही हे तपासू शकतो. अहवाल त्रुटी - AnkiDroid उघडण्यासाठी पुरेशी मोकळी जागा नाही. सुरू ठेवण्यासाठी काही जागा सोडा. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. आपण खरोखर डेटाबेस दुरुस्त करण्याचा प्रयत्न करू इच्छिता? \N\n प्रयत्न सुरू करण्यापूर्वी, एक प्रत सबफोल्डर \"%s\" मध्ये तयार केली जाईल. वर्ग “डीफॉल्ट” रिक्त आहे AnkiDroid वर कार्डे जोडण्यासाठी सर्व नोटपॅड श्रेण्या काढा किंवा “डीफॉल्ट” नावाची एक जोडा @@ -212,8 +212,8 @@ नंतर परत दाखवू नकोस डेटा गमावण्याची चेतावणी - Android गोपनीयता बदलांमुळे, ॲप अनइंस्टॉल केल्याने तुमचा डेटा आणि तुमच्या फोनवरून स्वयंचलित बॅकअप हटवले जातील - Android गोपनीयता बदलांमुळे, ॲप अनइंस्टॉल केल्यास तुमचा डेटा आणि स्वयंचलित बॅकअप प्रवेशयोग्य असतील + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled डेक आधीच अस्तित्वात आहे Deck name cannot be empty तुम्हाला डेक ऑर्डरिंग समस्या असल्यास (उदा. \'10\' \'2\' च्या आधी दिसतो), \'2\' ला \'02\' ने बदला diff --git a/AnkiDroid/src/main/res/values-mr/10-preferences.xml b/AnkiDroid/src/main/res/values-mr/10-preferences.xml index 8c9ed489bcb6..fce8239f69ed 100644 --- a/AnkiDroid/src/main/res/values-mr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mr/10-preferences.xml @@ -295,7 +295,7 @@ विकसक पर्याय विकसक पर्याय सक्षम करा विकसक पर्याय अक्षम करा - कृपया विकसक पर्याय सक्षम करण्यापूर्वी खात्री करा. हे पर्याय धोकादायक आहेत आणि ॲप खंडित करू शकतात किंवा तुमचे संग्रहण खराब करू शकतात.\n\nलक्षात ठेवा की हे पर्याय बहुतेक वापरकर्त्यांसाठी योग्य नाहीत आणि म्हणून भाषांतरित केलेले नाहीत, म्हणून ते इंग्रजीमध्ये आहेत. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-mr/17-model-manager.xml b/AnkiDroid/src/main/res/values-mr/17-model-manager.xml index af6dbc60be4e..bcd24461b497 100644 --- a/AnkiDroid/src/main/res/values-mr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-mr/17-model-manager.xml @@ -64,9 +64,9 @@ आपली खात्री आहे की आपण हा टीप प्रकार हटवू इच्छिता? आपली खात्री आहे की आपण हे फील्ड हटवू इच्छिता? - जोडा:%1$s + Add: %1$s - क्लोन:%1$s + Clone: %1$s कार्ड ब्राउझर आपली कार्डे प्रदर्शित करण्यासाठी वापरणारे टेम्पलेट प्रविष्ट करा. अधिक संक्षिप्त उत्तर प्रदर्शित करण्यासाठी हे वापरा. ​​\N \n A n \"{{Country}} ची राजधानी आहे:\" चे पुढील टेम्पलेट: \"\n\" कार्ड ब्राउझरमध्ये \n \"कॅपिटल: {{Country}}\" \"कॉम्प्रेस केले जाईल. प्रश्न स्वरूप diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml index 7d315fa1fa46..4f1311784eae 100644 --- a/AnkiDroid/src/main/res/values-ms/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml @@ -229,7 +229,7 @@ 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 - Sandaran Android sedang dijalankan. Sila cuba lagi + Android backup in progress. Please try again Anda mungkin perlu menggunakan iManager untuk membenarkan AnkiDroid tambah pintasan Skrin laman utama anda melarang AnkiDroid menambah pintasan Ralat menambah pintasan: %s @@ -300,20 +300,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml index 88ca44174204..8a7d7e621d06 100644 --- a/AnkiDroid/src/main/res/values-ms/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ms/03-dialogs.xml @@ -62,7 +62,7 @@ Ralat pangkalan data Menulis ke koleksi gagal. Pangkalan data mungkin rosak atau kehabisan ruang kosong pada cakera.\n\nJika ini berlaku kerap, cuba periksa pangkalan data, baiki koleksi atau pulih dari suatu sandaran. Sentuh \"tetapan\" untuk lakukannya.\n\Atau ia mungkin pepijat AnkiDroid; sila laporkannya agar kami boleh memeriksa ralat tersebut. Lapor ralat - Kehabisan ruang storan kosong untuk membuka AnkiDroid. Kosongkan sedikit ruang untuk teruskan. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Adakah anda pasti mahu membaiki pangkalan data?\n\nSebelum mencuba, satu salinan akan dibuat dalam subfolder “%s”. Kategori “lalai” kosong Untuk tambah kad ke AnkiDroid buang semua kategori Papan Nota atau tambah satu bernama “default” @@ -208,10 +208,8 @@ Kemudian Jangan tunjukkan lagi Amaran kehilangan data - Akibat perubahan privasi Android, data anda dan sandaran automatik akan dibuang dari telefon anda jika aplikasi dinyahpasang - - Akibat perubahan privasi Android, data anda dan sandaran automatik tidak akan dapat dicapai jika aplikasi dinyahpasang - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ms/10-preferences.xml b/AnkiDroid/src/main/res/values-ms/10-preferences.xml index 9deb06530b91..fae55e520a82 100644 --- a/AnkiDroid/src/main/res/values-ms/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ms/10-preferences.xml @@ -295,8 +295,7 @@ Pilihan pembangun Dayakan pilihan pembangun Lumpuhkan pilihan pembangun - Sila pastikan dahulu sebelum dayakan pilihan pembangun. Pilihan ini berbahaya dan boleh merosakkan aplikasi atau koleksi anda.\n\nAmbil perhatian bahawa pilihan ini tidak sesuai untuk kebanyakan pengguna dan oleh itu tidak diterjemahkan, maka mereka dalam bahasa Inggeris. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ms/17-model-manager.xml b/AnkiDroid/src/main/res/values-ms/17-model-manager.xml index ceaccdbe90f0..576c0cd826da 100644 --- a/AnkiDroid/src/main/res/values-ms/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ms/17-model-manager.xml @@ -62,9 +62,9 @@ Anda pasti ingin memadam jenis nota ini? Anda pasti ingin menghapuskan medan ini? - Tambah: %1$s + Add: %1$s - Klon: %1$s + Clone: %1$s Masukkan templat yang pencari kad akan guna untuk tunjukkan kad anda. Gunakannya untuk memaparkan jawapan lebih ringkas.\n\nTemplat hadapan\n“Ibu negara {{Country}} adalah:”\nboleh diringkaskan dalam pencari kad kepada\n“Ibu negara: {{Country}}” Format Soalan diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml index 2d506f269e4d..9d6c7482d644 100644 --- a/AnkiDroid/src/main/res/values-my/02-strings.xml +++ b/AnkiDroid/src/main/res/values-my/02-strings.xml @@ -229,7 +229,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -300,20 +300,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-my/03-dialogs.xml b/AnkiDroid/src/main/res/values-my/03-dialogs.xml index dee33a42274a..ea1fdc58af16 100644 --- a/AnkiDroid/src/main/res/values-my/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-my/03-dialogs.xml @@ -62,7 +62,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-my/10-preferences.xml b/AnkiDroid/src/main/res/values-my/10-preferences.xml index 0b680887a4dd..0f0b55cad9c9 100644 --- a/AnkiDroid/src/main/res/values-my/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-my/10-preferences.xml @@ -295,8 +295,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-my/17-model-manager.xml b/AnkiDroid/src/main/res/values-my/17-model-manager.xml index 5fa571a5e4a9..c92fe77e4302 100644 --- a/AnkiDroid/src/main/res/values-my/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-my/17-model-manager.xml @@ -62,9 +62,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 9adc0b8c975e..7437411e0ec8 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -233,7 +233,7 @@ De afbeelding is te groot, voeg de afbeelding handmatig in Het videobestand is te groot, voeg de video handmatig in Het audiobestand is te groot, voeg de audio handmatig in - Bezig met Android back-up. Probeer het opnieuw + Android backup in progress. Please try again Mogelijk moet u iManager gebruiken om AnkiDroid snelkoppelingen te laten toevoegen Uw startscherm staat niet toe dat AnkiDroid snelkoppelingen toevoegt Fout bij het toevoegen van de snelkoppeling: %s @@ -305,20 +305,14 @@ Browser options Opname opgeslagen Geselecteerde notities verwijderen - Tik op een stem om - te luisteren - Stem moet voor gebruik worden geïnstalleerd - - Toch gebruiken - + Tap a voice to listen + Voice should be installed before use + Use anyway Tekst naar spraak fout (%s) - Internet - - Installeren - - Tekst-naar-spraak-instellingen kunnen niet worden geopend - + Internet + Install + Failed to open text to speech settings Log in om meer sets te downloaden Beschrijving Kopiëren mislukt diff --git a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml index 78eec1b4d888..422af28848e6 100644 --- a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml @@ -64,7 +64,7 @@ Fout in database Het schrijven naar de collectie is mislukt. De database kan corrupt zijn of er is onvoldoende opslagruimte op de schijf.\n\nAls dit vaker gebeurt, probeer de database te controleren, de collectie te herstellen of terug te zetten vanaf een back-up. Klik hiervoor op \'instellingen\'.\n\nHet kan ook een fout in AnkiDroid zijn. Gelieve de fout te melden zodat we dit kunnen controleren. Fout melden - Er is onvoldoende opslagruimte beschikbaar om AnkiDroid te openen. Maak ruimte vrij om door te gaan. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Weet u zeker dat wilt proberen de database te repareren?\n\nVoordat dit wordt geprobeerd, wordt een kopie gemaakt in de submap \'%s\'. Categorie \'standaard\' is leeg Om kaarten aan AnkiDroid toe te voegen verwijder je alle Notepad categorieën of voeg een toe met de naam \'standaard\' @@ -212,10 +212,8 @@ Later Dit bericht niet meer tonen Waarschuwing voor dataverlies - Door wijzigingen in de privacy van Android worden uw gegevens en geautomatiseerde back-ups verwijderd van uw telefoon als de app is verwijderd - - Door wijzigingen in de privacy van Android zullen uw gegevens en geautomatiseerde back-ups niet toegankelijk zijn als de app is verwijderd - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Set bestaat al Deck name cannot be empty Als je problemen met een leerset hebt (bijvoorbeeld ‘10’ treedt op voor ‘2’), vervang dan ‘2’ door ‘02’ diff --git a/AnkiDroid/src/main/res/values-nl/10-preferences.xml b/AnkiDroid/src/main/res/values-nl/10-preferences.xml index 655155fec673..55de3dbe51fb 100644 --- a/AnkiDroid/src/main/res/values-nl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nl/10-preferences.xml @@ -296,8 +296,7 @@ Opties voor ontwikkelaars Opties voor ontwikkelaars inschakelen Ontwikkelaarsopties uitschakelen - Zorg ervoor dat u zeker bent voordat u de ontwikkelaarsopties inschakelt. Deze opties zijn gevaarlijk en kunnen de app kapot maken of je collectie beschadigen.\n\nMerk op dat deze opties niet geschikt zijn voor de meeste gebruikers en daarom niet vertaald zijn, dus in het Engels zijn. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-nl/17-model-manager.xml b/AnkiDroid/src/main/res/values-nl/17-model-manager.xml index cda5fa103223..77982f86b330 100644 --- a/AnkiDroid/src/main/res/values-nl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-nl/17-model-manager.xml @@ -64,9 +64,9 @@ Weet u zeker dat u dit memotype wilt verwijderen? Weet u zeker dat u dit veld wilt verwijderen? - Toevoegen: %1$s + Add: %1$s - Kloon: %1$s + Clone: %1$s Voer het sjabloon in dat de kaartenbrowser zal gebruiken om uw kaarten weer te geven. Gebruik dit om een beknopter antwoord weer te geven.\n\nEen sjabloon voor\n“De hoofdstad van {{Country}} is:”\nzou in de kaartenbrowser verkleind kunnen worden naar\n“Hoofdstad: {{Country}}” Vraagformaat diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml index 931c04a9c904..014008444199 100644 --- a/AnkiDroid/src/main/res/values-nn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml index 5d207bbdb889..52be00c8f901 100644 --- a/AnkiDroid/src/main/res/values-nn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nn/03-dialogs.xml @@ -64,7 +64,7 @@ Databasefeil Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Rapporter feil - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Vil du virkelig prøve å reparere databasen?\n\nEn kopi vil bli opprettet i undermappen \'%s\' før forsøket starter. Kategorien \'standard\' er tom For å legge kort til AnkiDroid, fjern alle notisblokk-kategorier eller legg til en som heter \'default\' @@ -212,10 +212,8 @@ Ikke nå Ikke vis dette igjen Advarsel om datatap - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-nn/10-preferences.xml b/AnkiDroid/src/main/res/values-nn/10-preferences.xml index 8d52ed8d93d9..b947fe8b4de8 100644 --- a/AnkiDroid/src/main/res/values-nn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nn/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-nn/17-model-manager.xml b/AnkiDroid/src/main/res/values-nn/17-model-manager.xml index 896c5a01bde4..2600b686dddc 100644 --- a/AnkiDroid/src/main/res/values-nn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-nn/17-model-manager.xml @@ -64,9 +64,9 @@ Er du sikker på at du vil slette denne notattypen? Er du sikker på at du vil sletta dette feltet? - Legg til: %1$s + Add: %1$s - Kopier: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Spørsmålsformat diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml index ffe2c9e632bc..da30e0b8e142 100644 --- a/AnkiDroid/src/main/res/values-no/02-strings.xml +++ b/AnkiDroid/src/main/res/values-no/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-no/03-dialogs.xml b/AnkiDroid/src/main/res/values-no/03-dialogs.xml index 1f0feb90cba1..f70e343d1862 100644 --- a/AnkiDroid/src/main/res/values-no/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-no/03-dialogs.xml @@ -64,7 +64,7 @@ Databasefeil Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Rapporter feil - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Vil du virkelig prøve å reparere databasen?\n\nEn kopi vil bli opprettet i undermappen \'%s\' før forsøket starter. Kategorien \'standard\' er tom For å legge kort til AnkiDroid, fjern alle notisblokk-kategorier eller legg til en som heter \'default\' @@ -212,10 +212,8 @@ Ikke nå Ikke vis dette igjen Advarsel om datatap - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-no/10-preferences.xml b/AnkiDroid/src/main/res/values-no/10-preferences.xml index 86be1ff1b2d4..e13ea649f9fb 100644 --- a/AnkiDroid/src/main/res/values-no/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-no/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-no/17-model-manager.xml b/AnkiDroid/src/main/res/values-no/17-model-manager.xml index 7c4d063bc823..70726df85712 100644 --- a/AnkiDroid/src/main/res/values-no/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-no/17-model-manager.xml @@ -64,9 +64,9 @@ Er du sikker på at du vil slette denne notattypen? Er du sikker på at du vil slette dette feltet? - Legg til: %1$s + Add: %1$s - Kopier: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Spørsmålsformat diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index b67a7cad4cfc..497361a608e1 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -233,7 +233,7 @@ The image is too large, please insert the image manually ଵିଡ଼ିଓ ଫାଇଲ୍‌ଟି ଅତ୍ୟଧିକ ବଡ଼ ଅଟେ, ଦୟାକରି ହସ୍ତକୃତ ଭାବେ ଵିଡ଼ିଓଟିକୁ ସନ୍ନିବେଶ କରନ୍ତୁ ଅଡ଼ିଓ ଫାଇଲ୍‌ଟି ଅତ୍ୟଧିକ ବଡ଼ ଅଟେ, ଦୟାକରି ହସ୍ତକୃତ ଭାବେ ଅଡ଼ିଓଟିକୁ ସନ୍ନିବେଶ କରନ୍ତୁ - ଆଣ୍ଡ୍ରଏଡ୍ ବ୍ୟାକଅପ୍ ଚାଲିଛି। ଦୟାକରି ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ + Android backup in progress. Please try again AnkiDroid କୁ ସର୍ଟ୍‌କଟ୍ ଯୋଡ଼ିବା ଅନୁମତି ଦେବା ପାଇଁ ଆପଣଙ୍କୁ iManager ଵ୍ୟଵହାର କରିବାକୁ ପଡ଼ିପାରେ ଆପଣଙ୍କ ଗୃହସ୍କ୍ରୀନ୍ AnkiDroidକୁ ସର୍ଟ୍‌କଟ୍ ଯୋଡ଼ିବାର ଅନୁମତି ଦିଏ ନାହିଁ ସର୍ଟ୍‌କଟ୍ ଯୋଡ଼ିବାରେ ତ୍ରୁଟି: %s @@ -305,20 +305,14 @@ Browser options ରେକର୍ଡିଂ ସଞ୍ଚୟ ହୋଇଛି ବଚ୍ଛିତ ନୋଟଗୁଡ଼ିକ ବିଲୋପ କରାଯାଉଛି - ଶୁଣିବା ପାଇଁ ଏକ ସ୍ୱର ଉପରେ ସ୍ପର୍ଶ କରିବା - - ବ୍ୟବହାର ପୂର୍ବରୁ ସ୍ୱର ଅଧିସ୍ଥାପିତ ହେବା ଉଚିତ୍ - - ଯେକୌଣସି ମତେ ବ୍ୟବହାର କରିବା - + Tap a voice to listen + Voice should be installed before use + Use anyway ପାଠ୍ୟ-ରୁ-କଥନ ତ୍ରୁଟି (%s) - ଇଣ୍ଟରନେଟ୍ - - ଅଧିସ୍ଥାପନ - - ପାଠ୍ୟ ରୁ କଥନ ସେଟିଂ ଖୋଲିବାରେ ବିଫଳ - + Internet + Install + Failed to open text to speech settings ଆହୁରି ତାସଖଣ୍ଡ ଡାଉନଲୋଡ୍ କରିବାକୁ ଦୟାକରି ଲଗ୍ ଇନ୍ କରନ୍ତୁ ବର୍ଣ୍ଣନା Failed to copy diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml index 19c40dba26e2..44eb04f64da5 100644 --- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml @@ -64,7 +64,7 @@ ଡାଟାବେସ୍ ତ୍ରୁଟି ସଂଗ୍ରହରେ ଲିଖନ ବିଫଳ ହେଲା। ଡାଟାବେସ୍ ଭ୍ରଷ୍ଟ ହୋଇପାରେ କିମ୍ବା ଡିସ୍କରେ ପର୍ଯ୍ୟାପ୍ତ ଖାଲି ସ୍ଥାନ ନ ଥାଇପାରେ।\n\nଯଦି ଏହା ଅଧିକ ଘଟେ, ଡାଟାବେସ୍ ଯାଞ୍ଚ କରିବାକୁ ଚେଷ୍ଟା କରନ୍ତୁ, ସଂଗ୍ରହକୁ ମରାମତି କରନ୍ତୁ କିମ୍ବା ବ୍ୟାକଅପ୍ ରୁ ପୁନଃସ୍ଥାପନ କରନ୍ତୁ। ଏଥିପାଇଁ “ବିକଳ୍ପ” କୁ ବାଛନ୍ତୁ।\nକିମ୍ବା ଏହା ଏକ AnkiDroid ବଗ୍ ମଧ୍ୟ ହୋଇପାରେ। ଦୟାକରି କୀଟ ପ୍ରତିବେଦନ କରନ୍ତୁ ଯାହା ଦ୍ୱାରା ଆମେ ଏହାକୁ ଯାଞ୍ଚ କରିପାରିବୁ। ତ୍ରୁଟି ପ୍ରତିବେଦନ କରିବା - AnkiDroid ଖୋଲିବା ପାଇଁ ପର୍ଯ୍ୟାପ୍ତ ମୁକ୍ତ ଷ୍ଟୋରେଜ୍ ସ୍ଥାନ ନାହିଁ। ଜାରି ରଖିବାକୁ ହେଲେ କିଛି ସ୍ଥାନ ଖାଲି କରନ୍ତୁ। + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ଆପଣ ପ୍ରକୃତରେ ଡାଟାବେସ୍ ମରାମତି କରିବାକୁ ଚେଷ୍ଟା କରିବାକୁ ଚାହୁଁଛନ୍ତି କି?\n\nପ୍ରୟାସ ଆରମ୍ଭ କରିବା ପୂର୍ବରୁ, “%s” ଉପଫୋଲ୍ଡର୍ ରେ ଏକ କପି ସୃଷ୍ଟି ହେବ। ବର୍ଗ “ଡିଫଲ୍ଟ” ଖାଲି ଅଛି AnkiDroid ରେ ପତ୍ର ଯୋଡ଼ିବା ପାଇଁ ସମସ୍ତ Notepad ବର୍ଗଗୁଡ଼ିକୁ ଅପସାରଣ କରନ୍ତୁ କିମ୍ବା “ଡିଫଲ୍ଟ” ନାମକ ଏକ ବର୍ଗ ଯୋଡ଼ନ୍ତୁ @@ -212,10 +212,8 @@ ପରେ ପୁନଃ ଦେଖାଅନି ଡାଟା କ୍ଷତି ଚେତାଵନୀ - ଆଣ୍ଡ୍ରଏଡ୍ ଗୋପନୀୟତା ପରିଵର୍ତ୍ତନ ହେତୁ, ଆପ୍ ଅନଇନଷ୍ଟଲ୍ ହେଲେ ଆପଣଙ୍କ ଫୋନ୍‌ରୁ ଆପଣଙ୍କ ଡାଟା ଏଵଂ ସ୍ୱଚାଳିତ ବ୍ୟାକଅପ୍ ଵିଲୋପ ହୋଇଯିବ - - ଆଣ୍ଡ୍ରଏଡ୍ ଗୋପନୀୟତା ପରିଵର୍ତ୍ତନ ହେତୁ, ଆପ୍ ଅନଇନଷ୍ଟଲ୍ ହେଲେ ଆପଣଙ୍କ ଡାଟା ଏଵଂ ସ୍ୱଚାଳିତ ବ୍ୟାକଅପ୍ ଅଗମ୍ୟ ପାଲଟିବ - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists ତାସଖଣ୍ଡ ନାମ ଖାଲି ଛଡ଼ାଯାଇପାରିବ ନାହିଁ If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-or/10-preferences.xml b/AnkiDroid/src/main/res/values-or/10-preferences.xml index 72dead1bf6e2..441b861c4858 100644 --- a/AnkiDroid/src/main/res/values-or/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-or/10-preferences.xml @@ -296,8 +296,7 @@ ଡେଵେଲପର୍ ଵିକଳ୍ପ ଡେଵେଲପର୍ ଵିକଳ୍ପ ସକ୍ଷମ କରିବା ଡେଵେଲପର୍ ଵିକଳ୍ପ ଅକ୍ଷମ କରିବା - ଡେଵେଲପର୍ ଵିକଳ୍ପ ସକ୍ଷମ କରିବା ଆଗରୁ ଦୟାକରି ନିଶ୍ଚିତ ହୁଅନ୍ତୁ। ଏଇ ଵିକଳ୍ପ ବିପଜ୍ଜନକ ଏଵଂ ଆପ୍ ଭାଙ୍ଗିପାରନ୍ତି କିମ୍ବା ଆପଣଙ୍କ ସଂଗ୍ରହକୁ ଭ୍ରଷ୍ଟ କରିପାରନ୍ତି।\n\nଧ୍ୟାନ ଦିଅନ୍ତୁ ଯେ ଏହି ଵିକଳ୍ପଗୁଡ଼ିକ ଅଧିକାଂଶ ଉପଭୋକ୍ତାଙ୍କ ପାଇଁ ଉପଯୁକ୍ତ ନୁହେଁ ଏଣୁ ଅନୁଵାଦ କରାନଯାଇ ଇଂରାଜୀରେ ହି ଥାଏ। - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-or/17-model-manager.xml b/AnkiDroid/src/main/res/values-or/17-model-manager.xml index 5e7d43771d69..0fc4d2044ff7 100644 --- a/AnkiDroid/src/main/res/values-or/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-or/17-model-manager.xml @@ -64,9 +64,9 @@ ଆପଣ ନିଶ୍ଚିତ କି ଆପଣ ଏହି ନୋଟ୍ ପ୍ରକାର ବିଲୋପ କରିବାକୁ ଚାହୁଁଛନ୍ତି କି? ଆପଣ ନିଶ୍ଚିତ କି ଆପଣ ଏହି କ୍ଷେତ୍ର ବିଲୋପ କରିବାକୁ ଚାହୁଁଛନ୍ତି? - ଯୋଡ଼ନ୍ତୁ: %1$s + Add: %1$s - ପ୍ରତିଲିପି ତିଆରି କରନ୍ତୁ: %1$s + Clone: %1$s ଆପଣଙ୍କ ପତ୍ର ପ୍ରଦର୍ଶନ କରିବା ପାଇଁ ପତ୍ର ବ୍ରାଉଜର୍ ବ୍ୟବହାର କରୁଥିବା ଟେମ୍ପଲେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ। ଅଧିକ ସଂକ୍ଷିପ୍ତ ଉତ୍ତର ପ୍ରଦର୍ଶନ କରିବା ପାଇଁ ଏହାକୁ ବ୍ୟବହାର କରନ୍ତୁ।\n\nଏକ ସାମ୍ନା ଟେମ୍ପଲେଟ୍\n“{{Country}} ର ରାଜଧାନୀ ହେଉଛି:”\nକୁ ପତ୍ର ବ୍ରାଉଜର୍‌ରେ \n“ରାଜଧାନୀ: {{Country}}” କୁ ସଙ୍କୋଚନ କରାଯାଇପାରିବ ପ୍ରଶ୍ନ ଶୈଳୀ diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml index a62e834dbf7a..6bbe93d971c5 100644 --- a/AnkiDroid/src/main/res/values-pa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml @@ -233,7 +233,7 @@ ਚਿੱਤਰ ਬਹੁਤ ਵੱਡਾ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਚਿੱਤਰ ਨੂੰ ਹੱਥੀਂ ਪਾਓ ਵੀਡੀਓ ਫਾਈਲ ਬਹੁਤ ਵੱਡੀ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਹੱਥੀਂ ਵੀਡੀਓ ਪਾਓ ਆਡੀਓ ਫ਼ਾਈਲ ਬਹੁਤ ਵੱਡੀ ਹੈ, ਕਿਰਪਾ ਕਰਕੇ ਆਡੀਓ ਨੂੰ ਹੱਥੀਂ ਪਾਓ - Android ਬੈਕਅੱਪ ਜਾਰੀ ਹੈ। ਕਿਰਪਾ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ + Android backup in progress. Please try again ਤੁਹਾਨੂੰ AnkiDroid ਨੂੰ ਸ਼ਾਰਟਕੱਟ ਜੋੜਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਲਈ iManager ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ ਤੁਹਾਡੀ ਹੋਮ ਸਕ੍ਰੀਨ AnkiDroid ਨੂੰ ਸ਼ਾਰਟਕੱਟ ਜੋੜਨ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੀ ਸ਼ਾਰਟਕੱਟ ਜੋੜਨ ਵਿੱਚ ਤਰੁੱਟੀ: %s @@ -305,14 +305,14 @@ Browser options ਰਿਕਾਰਡਿੰਗ ਸੁਰੱਖਿਅਤ ਕੀਤੀ ਗਈ ਚੁਣੇ ਗਏ ਨੋਟਸ ਮਿਟਾਓ - ਸੁਣਨ ਲਈ ਇੱਕ ਅਵਾਜ਼ \'ਤੇ ਟੈਪ ਕਰੋ - ਅਵਾਜ਼ ਵਰਤਣ ਤੋਂ ਪਹਿਲਾਂ ਇੰਸਟਾਲ ਹੋਣੀ ਚਾਹੀਦੀ ਹੈ - ਕਿਸੇ ਵੀ ਤਰ੍ਹਾਂ ਵਰਤੋ + Tap a voice to listen + Voice should be installed before use + Use anyway ਟੈਕਸਟ ਤੋਂ ਸਪੀਚ ਗਲਤੀ (%s) - ਇੰਟਰਨੇਟ - ਇੰਸਟਾਲ ਕਰੋ - ਟੈਕਸਟ ਟੂ ਸਪੀਚ ਸੈਟਿੰਗਾਂ ਨੂੰ ਖੋਲ੍ਹਣ ਵਿੱਚ ਅਸਫਲ + Internet + Install + Failed to open text to speech settings ਕਿਰਪਾ ਕਰਕੇ ਹੋਰ ਡੇਕ ਡਾਊਨਲੋਡ ਕਰਨ ਲਈ ਲੌਗ ਇਨ ਕਰੋ ਵਰਣਨ ਕਾਪੀ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ diff --git a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml index 1c3d7a2428fb..aeb30db21efa 100644 --- a/AnkiDroid/src/main/res/values-pa/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pa/03-dialogs.xml @@ -64,7 +64,7 @@ ਡਾਟਾਬੇਸ ਗਲਤੀ Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. ਇੱਕ ਬੱਗ ਦੀ ਰਿਪੋਰਟ ਕਰੋ - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. ਸ਼੍ਰੇਣੀ \"ਡਿਫਾਲਟ\" ਖਾਲੀ ਹੈ To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ ਬਾਅਦ ਵਿੱਚ ਦੁਬਾਰਾ ਨਾ ਦਿਖਾਓ ਡਾਟਾ ਖਰਾਬ ਹੋਣ ਦੀ ਚੇਤਾਵਨੀ - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ਡੇਕ ਪਹਿਲਾਂ ਹੀ ਮੌਜੂਦ ਹੈ ਡੈੱਕ ਦਾ ਨਾਮ ਖਾਲੀ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ ਜੇਕਰ ਤੁਹਾਡੇ ਕੋਲ ਡੈੱਕ ਆਰਡਰਿੰਗ ਸਮੱਸਿਆਵਾਂ ਹਨ (ਜਿਵੇਂ ਕਿ \'10\' \'2\' ਤੋਂ ਪਹਿਲਾਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ), \'2\' ਨੂੰ \'02\' ਨਾਲ ਬਦਲੋ diff --git a/AnkiDroid/src/main/res/values-pa/10-preferences.xml b/AnkiDroid/src/main/res/values-pa/10-preferences.xml index d8c8c8817758..cf5e71071f84 100644 --- a/AnkiDroid/src/main/res/values-pa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pa/10-preferences.xml @@ -296,7 +296,7 @@ ਵਿਕਾਸਕਾਰ ਵਿਕਲਪ ਵਿਕਾਸਕਾਰ ਵਿਕਲਪਾਂ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ ਵਿਕਾਸ ਕਾਰਖਾਨੇ ਬਣਾਉਣ ਨੂੰ ਬਣਾਉਣਾ - ਕਿਰਪਾ ਕਰਕੇ ਵਿਕਾਸਕਾਰ ਵਿਕਲਪਾਂ ਨੂੰ ਸਮਰੱਥ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਯਕੀਨੀ ਬਣਾਓ। ਇਹ ਵਿਕਲਪ ਖ਼ਤਰਨਾਕ ਹਨ ਅਤੇ ਐਪ ਨੂੰ ਤੋੜ ਸਕਦੇ ਹਨ ਜਾਂ ਤੁਹਾਡੇ ਸੰਗ੍ਰਹਿ ਨੂੰ ਖਰਾਬ ਕਰ ਸਕਦੇ ਹਨ।\n\nਨੋਟ ਕਰੋ ਕਿ ਇਹ ਵਿਕਲਪ ਜ਼ਿਆਦਾਤਰ ਉਪਭੋਗਤਾਵਾਂ ਲਈ ਢੁਕਵੇਂ ਨਹੀਂ ਹਨ ਅਤੇ ਇਸਲਈ ਅਨੁਵਾਦ ਨਹੀਂ ਕੀਤੇ ਗਏ ਹਨ, ਇਸਲਈ ਇਹ ਅੰਗਰੇਜ਼ੀ ਵਿੱਚ ਹਨ। + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-pa/17-model-manager.xml b/AnkiDroid/src/main/res/values-pa/17-model-manager.xml index ba70eebf9de0..9e8e7cbcff71 100644 --- a/AnkiDroid/src/main/res/values-pa/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pa/17-model-manager.xml @@ -64,9 +64,9 @@ ਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ \'ਤੇ ਇਸ ਨੋਟ ਕਿਸਮ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? ਕੀ ਤੁਸੀਂ ਯਕੀਨੀ ਤੌਰ \'ਤੇ ਇਸ ਖੇਤਰ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ? - ਸ਼ਾਮਲ ਕਰੋ: %1$s + Add: %1$s - ਕਲੋਨ: %1$s + Clone: %1$s ਉਹ ਟੈਂਪਲੇਟ ਦਾਖਲ ਕਰੋ ਜਿਸਦੀ ਵਰਤੋਂ ਕਾਰਡ ਬ੍ਰਾਊਜ਼ਰ ਤੁਹਾਡੇ ਕਾਰਡਾਂ ਨੂੰ ਪ੍ਰਦਰਸ਼ਿਤ ਕਰਨ ਲਈ ਕਰੇਗਾ। ਹੋਰ ਸੰਖੇਪ ਜਵਾਬ ਦਿਖਾਉਣ ਲਈ ਇਸਦੀ ਵਰਤੋਂ ਕਰੋ।\n\n“{{Country}} ਦੀ ਰਾਜਧਾਨੀ ਹੈ:”\n\n“ਰਾਜਧਾਨੀ: {{Country}}” ਵਿੱਚ ਸਮੇਟਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਪ੍ਰਸ਼ਨ ਫਾਰਮੈਟ diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index 9c6e6faa536a..d286aa22e0c6 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -241,7 +241,7 @@ 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 - Kopia zapasowa Android w toku. Spróbuj ponownie + Android backup in progress. Please try again Może być konieczne użycie iManager, by umożliwić AnkiDroid dodawanie skrótów Twój launcher nie pozwala AnkiDroid dodawać skrótów Błąd dodawania skrótu: %s @@ -315,20 +315,14 @@ Browser options Nagranie zostało zapisane Usuwanie zaznaczonych notatek - Dotknij głosu, aby słuchać - - Głos powinien być zainstalowany przed użyciem - - Użyj mimo to - + Tap a voice to listen + Voice should be installed before use + Use anyway Błąd przekształcania tekstu na mowę (%s) - Internet - - Zainstaluj - - Nie udało się otworzyć ustawień przekształcania tekstu do mowy - + Internet + Install + Failed to open text to speech settings Zaloguj się, aby pobrać więcej talii Opis Kopiowanie nieudane diff --git a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml index e960fc4ec44f..eb514411715f 100644 --- a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml @@ -68,7 +68,7 @@ Błąd bazy danych Wystąpił błąd podczas zapisywania do kolekcji. Powodem może być uszkodzenie bazy danych albo niewystarczająca ilość miejsca na dysku.\n\nJeśli błąd ten występuje często, spróbuj użyć opcji \"sprawdź bazę danych\" oraz naprawić kolekcję lub przywróć ją z kopii zapasowej (by tego dokonać kliknij „opcje”).\n\nRównie dobrze może to być też błąd AnkiDroid; zgłoś go abyśmy mogli to sprawdzić. Zgłoś błąd - Nie ma wystarczającej ilości wolnego miejsca, aby otworzyć AnkiDroid. Zwolnij trochę miejsca, aby kontynuować. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Czy na pewno chcesz próbować naprawić bazę danych? \n\nPrzed próbą naprawy zostanie utworzona kopia w katalogu \'%s\'. Kategoria \'Domyślne\' jest pusta Aby dodać karty AnkiDroid usuń wszystkie kategorie Notatnika lub dodaj jedną o nazwie \'default\' @@ -220,10 +220,8 @@ Później Nie pokazuj ponownie Ostrzeżenie o utracie danych - Ze względu na zmiany prywatności w systemie Android Twoje dane i automatyczne kopie zapasowe zostaną usunięte z telefonu, jeśli aplikacja zostanie odinstalowana - - Ze względu na zmiany prywatności w systemie Android Twoje dane i automatyczne kopie zapasowe będą niedostępne, jeśli aplikacja zostanie odinstalowana - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Taka talia już istnieje Deck name cannot be empty W przypadku wystąpienia problemów związanych z kolejnością talii (np. „10” pojawia się przed „2”), „2” należy zastąpić „02”. diff --git a/AnkiDroid/src/main/res/values-pl/10-preferences.xml b/AnkiDroid/src/main/res/values-pl/10-preferences.xml index bb1697e1b5f8..a600c190a198 100644 --- a/AnkiDroid/src/main/res/values-pl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pl/10-preferences.xml @@ -300,8 +300,7 @@ Ustawienia programisty Włącz opcje dla programistów Wyłącz opcje dla programistów - Przed włączeniem opcji deweloperskich upewnij się, że wiesz co robisz. Te opcje są niebezpieczne i mogą zniszczyć aplikację lub uszkodzić kolekcję.\n\nZauważ, że te opcje nie są odpowiednie dla większości użytkowników i dlatego nie są przetłumaczone, więc są w języku angielskim. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-pl/17-model-manager.xml b/AnkiDroid/src/main/res/values-pl/17-model-manager.xml index 824a8d3020b8..d061da19d934 100644 --- a/AnkiDroid/src/main/res/values-pl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pl/17-model-manager.xml @@ -68,9 +68,9 @@ Czy na pewno chcesz usunąć ten typ notatki? Czy na pewno chcesz usunąć to pole? - Dodaj: %1$s + Add: %1$s - Sklonuj: %1$s + Clone: %1$s Wprowadź szablon, który przeglądarka kart będzie używała do wyświetlania twoich kart. Możesz użyć tego by wyświetlać bardziej zwięzłe odpowiedzi.\n\nSzablon \n\"Stolicą kraju {{Country}} jest:\"\nmoże być skrócony w przeglądarce kart do\n\"Stolica: {{Country}}\" Format pytania 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 d057cb94269f..3c2117a1fbd5 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -233,7 +233,7 @@ A imagem é muito grande, por favor insira a imagem manualmente O arquivo de vídeo é muito grande, por favor insira o vídeo manualmente O arquivo de áudio é muito grande, por favor insira o áudio manualmente - Backup do Android em andamento. Por favor, tente novamente + Android backup in progress. Please try again Por favor use o iManager para que AnkiDroid possa adicionar atalhos Sua tela de início não permite que AnkiDroid adicione atalhos Erro ao adicionar atalho: %s @@ -305,20 +305,14 @@ Opções do navegador Gravação salva Excluindo notas selecionadas - Toque numa voz para ouvir - - Voz deve ser instalada antes de usar - - Usar mesmo assim - + Tap a voice to listen + Voice should be installed before use + Use anyway Erro de texto em fala (%s) - Internet - - Instalar - - Falha ao abrir configurações de texto para fala - + Internet + Install + Failed to open text to speech settings Faça login para baixar mais baralhos Descrição Falha ao copiar 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 9642f607ec86..c19cd630f9e3 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml @@ -64,7 +64,7 @@ Erro de banco de dados Ocorreu um erro ao gravar na coleção. Isso pode estar relacionado a um banco de dados corrompido ou espaço insuficiente no disco.\n\nSe isso ocorrer frequentemente, tente verificar o banco de dados, reparar a coleção ou restaurá-la de um backup. Clique em \'Opções\' para isso.\n\nEm todo caso, isso pode ser um bug do AnkiDroid; relate o erro para que possamos verificar o problema. Reportar erro - Não há espaço suficiente livre para abrir o AnkiDroid. Libere espaço para continuar. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Você realmente deseja tentar reparar o banco de dados?\n\nAntes de iniciar a tentativa, uma cópia será criada na subpasta \"%s\". Categoria \'padrão\' está vazia Para adicionar cartões ao AnkiDroid, remova todas as categorias das notas ou adicione uma com o nome \'default\' @@ -212,10 +212,8 @@ Mais tarde Não mostrar novamente Aviso de perda de dados - Devido às alterações de privacidade do Android, seus dados e cópias automáticas serão excluídos do seu telefone se o aplicativo for desinstalado. - - Devido às alterações de privacidade do Android, seus dados e cópias automáticas serão inacessíveis se o aplicativo for desinstalado. - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Baralho já existe O nome do deck não pode estar vazio Se você tem problemas com a ordem dos baralhos (ex: ‘10’ aparecendo antes de ‘2’), troque o ‘2’ por ‘02’ 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 232b194f22ba..a006180a68f7 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/10-preferences.xml @@ -296,8 +296,7 @@ Opções do desenvolvedor Ativar opções do desenvolvedor Desativar opções do desenvolvedor - Por favor, certifique-se antes de ativar as opções do desenvolvedor. Estas opções são perigosas e podem quebrar o aplicativo ou corromper sua coleção.\n\nNote que essas opções não são adequadas para a maioria dos usuários, portanto, não são traduzidas, elas permanecerão em inglês. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml b/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml index b82f3ae2cb6f..5108e4435626 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/17-model-manager.xml @@ -64,9 +64,9 @@ Tem certeza de que deseja excluir esse modelo de notas? Tem certeza que deseja excluir este campo? - Adicionar: %1$s + Add: %1$s - Clonar: %1$s + Clone: %1$s Digite o modelo que o navegador de cards usará para exibir seus cards. Use isto para exibir uma resposta mais concisa.\n\nUm modelo frontal de\n\"A capital do {{Country}} é:\"\npode ser comprimido para\n\"Capital: {{Country}}\" Formato da questão 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 6201d9b14079..2d3abf2ba9f5 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -187,7 +187,7 @@ Fundo Selecionar imagem - Remove background + Remover imagem de fundo Remover imagem de fundo? Restaurar predefinições @@ -233,7 +233,7 @@ A imagem é demasiado grande, por favor insira-a manualmente. O vídeo é demasiado grande, por favor insira-o manualmente. O ficheiro de áudio é demasiado grande, por favor insira-o manualmente. - Cópia de segurança do Android em progresso. Por favor, tente de novo. + Android backup in progress. Please try again Pode precisar de utilizar o iManager para permitir que o AnkiDroid adicione atalhos. O seu ecrã de início não permite que o AnkiDroid adicione atalhos. Erro ao adicionar atalho: %s @@ -305,20 +305,14 @@ Opções de Explorador Gravação guardada Apagar as notas selecionadas - Toque numa voz para a ouvir - - Deve instalar esta \"Voz\", antes de a utilizar - - Utilizar mesmo assim - + Tap a voice to listen + Voice should be installed before use + Use anyway Erro na conversão de texto para voz (%s) - Internet - - Instalar - - Falha na abertura das definições da conversão de texto para voz - + Internet + Install + Failed to open text to speech settings Por favor, inicie sessão para transferir mais baralhos Descrição Falha ao copiar 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 7f48f7c8d9e8..5d3cc41cfeb7 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml @@ -64,7 +64,7 @@ Erro na base de dados Falha ao gravar na colecção. A base de dados pode estar corrompida ou pode não haver espaço suficiente no disco.\n\nSe isto acontecer frequentemente, tente \"Verificar a Base de Dados\", \"Reparar a Colecção\", ou \"Restaurar uma Cópia de Segurança\". Toque em \"opções\" para realizar uma destas acções.\n\nOu então pode ser um erro no AnkiDroid, reporte-o para que possa ser analisado. Comunicar erro - Não há espaço disponível para abrir o AnkiDroid. Liberte algum espaço para continuar. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Realmente deseja tentar reparar a base de dados?\n\nAntes de iniciar a tentativa, será criada uma cópia na subpasta \'%s\'. A categoria \'predefinida\' está vazia Para adicionar fichas na AnkiDroid remova todas as categorias de notas ou adicione uma com o nome \'predefinida\' @@ -212,10 +212,8 @@ Mais tarde Não mostrar novamente Aviso de Perda de Dados - Devido a alterações de privacidade do Android, os seus dados e cópias de segurança automáticas serão apagados se a aplicação for desinstalada - - Devido a alterações de privacidade do Android, não poderá aceder aos seus dados e cópias de segurança automáticas se a aplicação for desinstalada - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Este baralho já existe O nome do baralho não pode estar vazio Se tem problemas de ordenação com o seu baralho (e.g. o ‘10’ aparece antes do ‘2’), substitua o ‘2’ por ‘02’ 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 6e98a71bff39..df2da8be351e 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml @@ -297,8 +297,7 @@ Opções de programador Ativar as opções de programador Desativar opções do desenvolvedor - Antes de activar as opções de programador, assegure-se que é mesmo isso que quer fazer. Estas opções são perigosas e podem estragar a aplicação ou corromper a sua colecção.\n\nEstas opções são destinadas a programadores, daí não terem tradução e estarem em Inglês. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml b/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml index 63588ebdf79f..95b99fca8e7f 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml @@ -64,9 +64,9 @@ Tem a certeza que quer apagar este tipo de nota? Tem a certeza que pretende eliminar este campo? - Adicionar: %1$s + Add: %1$s - Clonar: %1$s + Clone: %1$s Introduza o modelo que vai ser utilizado para apresentar as suas fichas. Utilize isto para apresentar uma resposta mais concisa.\n\nUm modelo para a frente da ficha\n\"A capital do {{país}} é:\"\npode ser reduzida para\n\"Capital: {{País}}\" Formato de Pergunta diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml index 8cf9db49e352..62e019ab1d42 100644 --- a/AnkiDroid/src/main/res/values-ro/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml @@ -237,7 +237,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -310,20 +310,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml index ba248204934a..740a43658e6f 100644 --- a/AnkiDroid/src/main/res/values-ro/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ro/03-dialogs.xml @@ -66,7 +66,7 @@ Eroare a bazei de date Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Raportează eroare - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -216,10 +216,8 @@ Mai târziu Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ro/10-preferences.xml b/AnkiDroid/src/main/res/values-ro/10-preferences.xml index 8d04dae2c5d9..fe449472cd22 100644 --- a/AnkiDroid/src/main/res/values-ro/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ro/10-preferences.xml @@ -299,8 +299,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ro/17-model-manager.xml b/AnkiDroid/src/main/res/values-ro/17-model-manager.xml index 41068390377f..9612308a4c60 100644 --- a/AnkiDroid/src/main/res/values-ro/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ro/17-model-manager.xml @@ -66,9 +66,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 5c97e93b4988..0a0a57363097 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -241,7 +241,7 @@ Изображение слишком большое. Вставьте изображение вручную Видео слишком большое. Вставьте видео вручную Аудио слишком большое. Вставьте аудио вручную - Выполняется резервное копирование Android. Попробуйте еще раз + Android backup in progress. Please try again Возможно, вам потребуется iManager, чтобы AnkiDroid мог добавлять ярлыки Ваш домашний экран не позволяет AnkiDroid добавлять ярлыки Ошибка при добавлении ярлыка: %s @@ -315,15 +315,14 @@ Параметры списка карточек Запись сохранена Выбранные записи удаляются - Нажмите на голосе, чтобы послушать - - Нужно установить голос перед использованием - Всё равно использовать + Tap a voice to listen + Voice should be installed before use + Use anyway Ошибка синтеза речи (%s) - Интернет - Установить - Не удалось открыть настройки синтеза + Internet + Install + Failed to open text to speech settings Пожалуйста, войдите, чтобы скачать больше колод Описание Не удалось скопировать diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml index 6868fabf7951..73e021187d09 100644 --- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml @@ -68,7 +68,7 @@ Ошибка в базе данных Не удалось записать в коллекцию. База данных может быть повреждена, или не хватает места в хранилище.\n\nПопробуйте проверить базу данных или восстановить коллекцию из резервной копии.\nОднако, это может быть ошибкой в AnkiDroid. Пожалуйста, сообщите об этом разработчикам. Сообщить об ошибке - Недостаточно свободного места для запуска AnkiDroid. Освободите немного места на устройстве, чтобы продолжить. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Вы действительно хотите починить базу данных?\n\nПеред восстановлением копия базы данных будет помещена в папку «%s». Категория «default» пуста Чтобы добавить карточки в AnkiDroid, удалите все категории «Notepad» или создайте категорию «default» @@ -221,10 +221,8 @@ Позже Больше не показывать Внимание: потеря данных - В связи с изменениями конфиденциальности Android, при удалении приложения ваши данные и автоматизированные резервные копии будут удалены с вашего телефона - - В связи с изменениями конфиденциальности Android, после удалении приложения ваши данные и автоматизированные резервные копии будут недоступны - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Колода уже существует Название колоды не может быть пустым Если у вас возникли проблемы с сортировкой колоды (например, \'10\' появляется перед \'2\'), замените \'2\' на \'02\' diff --git a/AnkiDroid/src/main/res/values-ru/10-preferences.xml b/AnkiDroid/src/main/res/values-ru/10-preferences.xml index 4be4e744e4bc..8410c29f97af 100644 --- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml @@ -299,8 +299,7 @@ Настройки разработчика Включить параметры для разработчиков Отключить настройки разработчика - Пожалуйста, убедитесь, что вы знаете что делаете перед включением опций разработчика. Эти параметры являются опасными и могут нарушить приложение или повредить вашу коллекцию.\n\nОбратите внимание, что эти опции не подходят для большинства пользователей и поэтому не переводятся, поэтому они находятся на английском языке. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ru/17-model-manager.xml b/AnkiDroid/src/main/res/values-ru/17-model-manager.xml index 89298eb75ada..7a2468e33d6e 100644 --- a/AnkiDroid/src/main/res/values-ru/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ru/17-model-manager.xml @@ -68,9 +68,9 @@ Вы уверены, что хотите удалить этот тип записи? Удалить это поле? - Добавить: %1$s + Add: %1$s - Дублировать: %1$s + Clone: %1$s Введите шаблон, который будет использоваться в списке карточек. Например, так можно показывать ответ более сжать.\n\nШаблон лица\n«Столицей {{Country}} является:»\n в списке карточке можно ужать до \n«Столица: {{Country}}» Формат вопроса diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 4c5424779c14..68be718261a7 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -233,7 +233,7 @@ ᱪᱤᱛᱟᱹᱨ ᱫᱚ ᱟᱹᱰᱤ ᱢᱟᱨᱟᱝ ᱠᱟᱱᱟ, ᱫᱟᱭᱟ ᱠᱟᱛᱮ ᱪᱤᱛᱟᱹᱨ ᱥᱮᱞᱮᱫ ᱢᱮ ᱵᱷᱤᱰᱤᱭᱳ ᱯᱷᱤᱞᱤᱢ ᱫᱚ ᱟᱹᱰᱤ ᱢᱟᱨᱟᱝ ᱠᱟᱱᱟ, ᱫᱟᱭᱟᱠᱟᱛᱮ ᱵᱷᱤᱰᱤᱭᱳ ᱥᱮᱞᱮᱫᱽ ᱢᱮ ᱚᱰᱤᱭᱚ ᱯᱷᱤᱞ ᱫᱚ ᱟᱹᱰᱤ ᱢᱟᱨᱟᱝ ᱠᱟᱱᱟ, ᱫᱟᱭᱟ ᱠᱟᱛᱮ ᱚᱰᱤᱭᱚ ᱥᱮᱞᱮᱫ ᱢᱮ - ᱮᱱᱰᱨᱚᱭᱮᱰ ᱵᱮᱠᱟᱯ ᱪᱟᱞᱟᱜ ᱠᱟᱱᱟ, ᱫᱟᱭᱟ ᱠᱟᱛᱮᱡᱽ ᱟᱨᱦᱚᱸ ᱨᱤᱠᱟᱹᱭ ᱢᱮ + Android backup in progress. Please try again AnkiDroid ᱥᱚᱴᱠᱚᱴ ᱥᱮᱞᱮᱫ ᱪᱷᱚ ᱞᱟᱹᱜᱤᱫ ᱟᱢ iManager ᱵᱮᱵᱷᱟᱨ ᱫᱟᱲᱮᱭᱟᱜᱼᱟᱢ ᱟᱢᱟᱜ ᱚᱲᱟᱜ ᱥᱠᱨᱤᱱ AnkiDroid ᱥᱚᱴᱠᱚᱴ ᱵᱟᱝ ᱥᱮᱞᱮᱫ ᱪᱷᱚᱭᱟᱭ ᱥᱚᱴᱠᱚᱴ ᱥᱮᱞᱮᱫ ᱵᱷᱩᱞ: %s @@ -305,20 +305,14 @@ Browser options ᱨᱮᱠᱳᱨᱰ ᱟᱠᱟᱱᱟ ᱵᱟᱪᱷᱟᱣ ᱟᱠᱟᱱ ᱱᱳᱴᱥ ᱵᱚᱫᱚᱞ - ᱥᱮᱞᱮᱫᱚᱜ ᱞᱟᱹᱜᱤᱫ ᱢᱤᱫ ᱨᱚᱲ ᱴᱟᱯ ᱢᱮ - - ᱵᱮᱵᱷᱟᱨ ᱠᱷᱚᱱ ᱢᱟᱲᱟᱝ ᱛᱮ ᱨᱚᱲ ᱥᱮᱞᱮᱫ ᱦᱩᱭᱩᱜ ᱢᱟ - - ᱮᱱᱦᱚᱸ ᱵᱮᱵᱷᱟᱨ ᱢᱮ - + Tap a voice to listen + Voice should be installed before use + Use anyway ᱚᱞ ᱠᱷᱚᱱ ᱨᱚᱲ ᱪᱮᱛᱟᱱ ᱨᱮ ᱯᱩᱥᱴᱟᱹ (%s) - ᱤᱱᱴᱟᱨᱱᱮᱴ - - ᱤᱱᱥᱴᱚᱞ ᱢᱮ - - ᱚᱞ ᱪᱤᱠᱤ ᱛᱮ ᱨᱚᱲ ᱥᱮᱴᱤᱸᱜᱽᱥ ᱨᱮ ᱩᱫᱩᱜ ᱦᱚᱪᱚ ᱵᱟᱹᱱᱩᱜ ᱟ - + Internet + Install + Failed to open text to speech settings ᱮᱴᱟᱜ ᱰᱮᱠ ᱠᱚ ᱰᱟᱩᱱᱞᱚᱰ ᱞᱟᱹᱜᱤᱫ ᱞᱚᱜᱤᱱ ᱢᱮ ᱞᱟᱹᱱᱟᱹᱤ ᱠᱚᱯᱤ ᱵᱟᱭ ᱫᱟᱲᱮᱭᱟᱜ ᱠᱟᱱᱟ diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml index 4df5e25aeb76..ce68b82b3ae1 100644 --- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml @@ -64,7 +64,7 @@ ᱥᱟᱹᱠᱷᱭᱟᱛ ᱵᱟᱹᱭᱥᱟᱣ ᱵᱷᱩᱞ ᱦᱩᱭᱮᱱᱟ ᱴᱩᱢᱟᱹᱞ ᱛᱮ ᱚᱞ ᱵᱷᱩᱞ ᱾ database ᱫᱚ ᱠᱦᱟᱨᱟᱯ ᱜᱮᱭᱟ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ ᱰᱤᱥᱠ ᱨᱮ ᱥᱯᱮᱥ ᱵᱟᱱᱩᱜᱟ ᱾ \n\nᱡᱚᱫᱤ ᱵᱟᱨᱚᱢᱵᱟᱨ ᱱᱚᱠᱟ ᱦᱩᱭᱩᱜ ᱠᱟᱱᱟ, ᱮᱱᱰᱮᱠᱷᱟᱱ ᱟᱨ ᱢᱤᱫ ᱡᱮᱠᱷᱟ ᱰᱟᱴᱟᱵᱮᱥ ᱪᱮᱠ ᱯᱮ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ backup ᱠᱷᱚᱱ ᱰᱟᱴᱟ restore ᱛᱟᱵᱚᱱ ᱯᱮ ᱾ ᱚᱱᱟ ᱞᱟᱹᱜᱤᱫ \"options\" ᱨᱮ ᱚᱛᱟᱭ ᱯᱮ ᱾\n\ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ ᱱᱚᱟ ᱫᱚ bug ᱦᱩᱭ ᱫᱟᱲᱮᱭᱟᱜᱟ; ᱫᱚᱭᱟᱠᱟᱛᱮ report ᱯᱮ ᱾ ᱦᱩᱰᱟᱜ ᱥᱚᱱᱫᱮᱥ - ᱮᱱᱠᱤᱰᱨᱚᱭᱮᱰ ᱪᱷᱟᱯᱟ ᱞᱟᱹᱜᱤᱫ ᱛᱮ ᱟᱹᱰᱤ ᱵᱟᱹᱲᱤᱡ ᱥᱴᱳᱨᱮᱡᱽ ᱡᱟᱭᱜᱟ ᱵᱟᱹᱱᱩᱜᱼᱟ ᱾ ᱞᱟᱦᱟ ᱛᱮ ᱪᱟᱞᱟᱜ ᱞᱟᱹᱜᱤᱫ ᱡᱟᱭᱜᱟ ᱵᱮᱵᱚᱦᱟᱨ ᱢᱮ ᱾ + There is not enough free storage space to open AnkiDroid. Free up some space to continue. ᱟᱢ ᱫᱚ ᱱᱚᱶᱟ database ᱥᱟᱡᱟᱣ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ ᱥᱮ ? \n\nᱮᱛᱷᱚᱵ ᱢᱟᱲᱟᱝ ᱨᱮ, ᱢᱤᱫᱴᱟᱝ ᱠᱚᱯᱤ \"%s\" ᱥᱚᱵᱼᱯᱷᱚᱞᱰᱟᱨ ᱨᱮ ᱛᱮᱭᱨᱚᱜᱽᱟ ᱱᱟᱦ ᱾ ᱴᱩᱢᱟᱹᱞ \"default\" ᱠᱷᱟᱹᱞᱤ ᱜᱮᱭᱟ AnkiDroid ᱛᱮ ᱠᱟᱰ ᱥᱮᱞᱮᱫ ᱞᱟᱹᱜᱤᱫ Notepad ᱴᱩᱢᱟᱹᱞ ᱵᱷᱮᱜᱟᱨ ᱠᱟᱜ ᱢᱮ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ “default” ᱧᱩᱛᱩᱢ ᱠᱟᱜ ᱢᱮ @@ -212,10 +212,8 @@ ᱛᱟᱭᱚᱢ ᱛᱮ ᱤᱧ ᱫᱚ ᱵᱟᱧ ᱧᱮᱞᱚᱜᱼᱟ ᱰᱮᱴᱟ ᱞᱚᱥᱴ ᱟᱣᱟᱨᱰ - ᱟᱱᱰᱨᱚᱭᱮᱰ ᱯᱨᱟᱭᱵᱷᱮᱴᱤ ᱵᱮᱸᱠᱤᱝ ᱠᱷᱟᱹᱛᱤᱨ ᱟᱢᱟᱜ ᱰᱟᱴᱟ ᱟᱨ ᱚᱴᱚᱢᱮᱴᱤᱠ ᱵᱮᱠᱤᱯ ᱠᱚ ᱟᱢᱟᱜ ᱯᱷᱚᱱ ᱠᱷᱚᱱ ᱰᱤᱞᱤᱴ ᱦᱩᱭᱩᱜ ᱟ ᱡᱩᱫᱤ ᱟᱢ ᱱᱚᱶᱟ ᱮᱯ ᱵᱚᱫᱚᱞ ᱮᱫ ᱟ - - ᱟᱱᱰᱨᱚᱭᱮᱰ ᱯᱨᱟᱭᱵᱷᱮᱴᱤ ᱪᱮᱱᱡᱟᱨ ᱠᱷᱟᱹᱛᱤᱨ ᱟᱢᱟᱜ ᱰᱮᱴᱟ ᱟᱨ ᱚᱴᱚᱢᱮᱴᱤᱠ ᱵᱮᱠ-ᱟᱯ ᱠᱚ ᱮᱯᱞᱤᱠᱮᱥᱚᱱ ᱵᱚᱫᱚᱞ ᱞᱮᱱ ᱠᱷᱟᱱ ᱵᱟᱝ ᱥᱮᱴᱮᱨᱚᱜ-ᱟ - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ᱰᱮᱠ ᱱᱤᱛᱚᱜ ᱢᱮᱱᱟᱜᱼᱟ ᱰᱮᱠ ᱧᱩᱛᱩᱢ ᱵᱟᱱᱩᱜᱼᱟ If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-sat/10-preferences.xml b/AnkiDroid/src/main/res/values-sat/10-preferences.xml index 671711b4852a..91ad5bbf9ea3 100644 --- a/AnkiDroid/src/main/res/values-sat/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sat/10-preferences.xml @@ -296,8 +296,7 @@ ᱰᱮᱵᱽᱞᱚᱯᱟᱨ ᱵᱟᱪᱷᱟᱣ ᱰᱮᱵᱞᱚᱯᱟᱨ ᱵᱟᱪᱷᱟᱣ ᱠᱚ ᱮᱠᱴᱤᱵᱽ ᱢᱮ ᱰᱮᱵᱽᱞᱚᱯᱚᱨ ᱚᱯᱥᱚᱱ ᱠᱚ ᱵᱚᱫᱚᱞ ᱢᱮ - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sat/17-model-manager.xml b/AnkiDroid/src/main/res/values-sat/17-model-manager.xml index 51d70a993ba7..13bfd8a817bb 100644 --- a/AnkiDroid/src/main/res/values-sat/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sat/17-model-manager.xml @@ -64,9 +64,9 @@ ᱥᱭᱚᱨ ᱱᱚᱶᱟ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ‌ ᱜᱮᱫ ᱜᱤᱲᱤ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ? ᱥᱭᱚᱨ ᱱᱚᱶᱟ ᱡᱟᱭᱜᱟ ᱜᱮᱫ ᱜᱤᱲᱤ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ? - ᱥᱮᱞᱮᱫᱺ %1$s + Add: %1$s - ᱠᱞᱚᱱᱺ%1$s + Clone: %1$s ᱪᱷᱟᱸᱪ ᱠᱚ ᱮᱢᱟᱱ ᱚᱞ ᱢᱮ, ᱠᱟᱰ ᱵᱨᱟᱩᱡᱚᱨ ᱟᱢᱟᱜ ᱠᱟᱰ ᱫᱮᱠᱷᱟᱣ ᱛᱟᱢᱟᱭ ᱾ ᱛᱷᱤᱠ ᱛᱮᱞᱟ ᱫᱮᱠᱷᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱱᱚᱶᱟ ᱵᱮᱵᱷᱟᱨ ᱢᱮ ᱾ \n\n ᱫᱚ \n ᱨᱮᱭᱟᱜ ᱯᱩᱭᱞᱩ ᱪᱷᱟᱸᱪ ᱠᱟᱱᱟ “{{Country}}ᱼᱟᱜ ᱨᱟᱡᱜᱟᱲ ᱫᱚᱺ”\nᱫᱚ ᱠᱟᱰ ᱵᱨᱟᱩᱡᱚᱨ ᱨᱮ ᱠᱷᱟᱴᱚ ᱫᱟᱲᱮᱼᱟᱜ ᱟᱢ \n“ᱫᱤᱥᱚᱢᱺ {{Country}}” ᱠᱩᱠᱞᱤ ᱛᱮᱞᱟ ᱠᱩᱞ diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index fefde0e090a0..998638e7a8e6 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -236,7 +236,7 @@ S\'immàgine est tropu manna, inserta·la in manera manuale Custu documentu vìdeu est tropu mannu, inserta·lu in manera manuale Custu documentu àudio est tropu mannu, inserta·lu in manera manuale - Còpia de seguresa de Android in cursu. Torra a proare, pro praghere + Android backup in progress. Please try again Dias pòdere tènnere bisòngiu de impreare iManager pro permìtere a AnkiDroid de annànghere incurtzadas S\'ischermada printzipale tua non permitet a AnkiDroid de annànghere incurtzadas Errore annanghende s\'incurtzada: %s @@ -308,19 +308,14 @@ Browser options Registratzione sarvada Iscantzellende sas notas seletzionadas - Toca una boghe pro l\'ascurtare - - Sa boghe diat dèpere èssere installada in antis de s\'impreu - - Imprea su matessi - + Tap a voice to listen + Voice should be installed before use + Use anyway Errore de sìntesi de boghe (%s) - Ìnternet - Installa - - Abertura de sas impostatziones de sìntesi vocale fallida - + Internet + Install + Failed to open text to speech settings Intra pro iscarrigare prus matzos Descritzione Còpia fallida diff --git a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml index 0b8ac32bff10..8b00e12f9b6a 100644 --- a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml @@ -67,7 +67,7 @@ Si custu acontesset prus de su sòlitu proa a verificare sa base de datos, ariparare sa colletzione o a la ripristinare dae una còpia de seguresa. Incarca in “optziones” pro lu fàghere.\n \\O diat pòdere èssere fintzas unu problema de AnkiDroid; pro praghere sinnala s\'errore pro nos permìtere de lu verificare. Sinnala una faddina - Non b\'at ispàtziu de memòria bastante pro abèrrere AnkiDroid. Lìbera unu pagu de ispàtziu pro sighire. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Cheres a beru proare a riparare sa base de datos?\n \n In antis de incumintzare cun sa proa s\'at a creare una còpia in sa suta-cartella “%s”. @@ -226,10 +226,8 @@ Prus a tardu Non lu torres a mustrare Avisu de pèrdida de datos - Pro neghe de sas modìficas a sa riservadesa de Android, sos datos tuos e sas còpias de seguresa automàticas tuas s\'ant a iscantzellare dae su telèfonu tuo si as a disinstallare s\'aplicatzione - - Pro neghe de sas modìficas a sa riservadesa de Android, non s\'at a pòdere atzèdere a sos datos tuos e a sas còpias de seguresa automàticas tuas si as a disinstallare s\'aplicatzione - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Su matzu esistit giai Su nùmene de su matzu non podet èssere bòidu Si tenes problemas de òrdine de su matzu (a es. ‘10’ aparit in antis de ‘2’), remplasa ‘2’ cun ‘02’ diff --git a/AnkiDroid/src/main/res/values-sc/10-preferences.xml b/AnkiDroid/src/main/res/values-sc/10-preferences.xml index b20799979594..3fe9c90b1acb 100644 --- a/AnkiDroid/src/main/res/values-sc/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sc/10-preferences.xml @@ -296,8 +296,7 @@ Optziones de isvilupu Abìlita sas optziones de isvilupu Disabìlita sas optziones de isvilupu - Assegura·ti de s\'intentu tuo in antis de abilitare sas optziones de isvilupu. Custas optziones sunt perigulosas e diant pòdere segare s\'aplicatzione o corrùmpere sa colletzione tua.\n\nTene in contu chi custas optziones non sunt adatas pro sa parte manna de sos utentes e pro custa resone non sunt traduidas, duncas sunt in inglesu. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sc/17-model-manager.xml b/AnkiDroid/src/main/res/values-sc/17-model-manager.xml index 01610bc01a64..7cdbc7a97ef8 100644 --- a/AnkiDroid/src/main/res/values-sc/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sc/17-model-manager.xml @@ -64,9 +64,9 @@ Ses seguru de chèrrere iscantzellare custa casta de nota? Ses seguru de chèrrere iscantzellare custu campu? - Annanghe: %1$s + Add: %1$s - Clona: %1$s + Clone: %1$s Inserta su mollu chi su navigadore de cartas at a impreare pro ammustrare sas cartas tuas. Imprea custu pro visualizare una risposta prus cuntzisa.\n \n diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml index 1aa078fa384e..8384227ef25f 100644 --- a/AnkiDroid/src/main/res/values-sk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml @@ -241,7 +241,7 @@ 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 - Prebieha Android záloha. Prosím, skúste znovu + Android backup in progress. Please try again Budete musieť použiť iManager, aby umožnil AnkiDroid pridávať zástupcov Vaša domovská obrazovka neumožňuje, aby AnkiDroid pridal zástupcov Chyba pri pridávaní odkazu: %s @@ -315,20 +315,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml index 13775ea7ea11..3aa9ad11edc8 100644 --- a/AnkiDroid/src/main/res/values-sk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sk/03-dialogs.xml @@ -68,7 +68,7 @@ Chyba databázy Zápis zbierky zlyhal. Databáza môže byť poškodená alebo na úložisku nie je dostatok miesta.\n\nAk sa to stáva častejšie, skontrolujte databázu, opravte zbierku alebo ju obnovte zo zálohy. Ak to chcete urobiť, stlačte „možnosti” .\n\Môže ísť aj o chybu aplikácie; prosím oznámte túto chybu aby sme to mohli skontrolovať. Nahlásiť chybu - Nedostatok voľného miesta. Pre spustenie aplikácie AnkiDroid najprv uvoľnite miesto v pamäti. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Naozaj chcete skúsiť opraviť databázu?\n\nPred začatím pokusu o opravenie bude vytvorená kópia v podpriečinku \"%s\". Kategória \"predvolený\" je prázdna Ak chcete pridať kartičky do AnkiDroid, odstráňte všetky kategórie poznámkového bloku alebo pridajte jednu s názvom \"predvolený\" @@ -220,8 +220,8 @@ Neskôr Nabudúce nezobrazovať Možná strata údajov! - Z dôvodu zmien ochrany súkromia budú vaše údaje a automatické zálohy odstránené z pamäti ak odinštalujete aplikáciu AnkiDroid. - Z dôvodu zmien ochrany súkromia budú vaše údaje a automatické zálohy neprístupné ak odinštalujete aplikáciu AnkiDroid. + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Tento balíček už existuje Deck name cannot be empty Pri problémoch s poradím balíčkov (napr. „10\" v poradí pred „2\") zmeňte názov z „2\" na „02\". diff --git a/AnkiDroid/src/main/res/values-sk/10-preferences.xml b/AnkiDroid/src/main/res/values-sk/10-preferences.xml index d56e290f5483..226cfc4ecf45 100644 --- a/AnkiDroid/src/main/res/values-sk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sk/10-preferences.xml @@ -301,8 +301,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sk/17-model-manager.xml b/AnkiDroid/src/main/res/values-sk/17-model-manager.xml index 13117b6adcfb..f8d9c1a06a15 100644 --- a/AnkiDroid/src/main/res/values-sk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sk/17-model-manager.xml @@ -68,9 +68,9 @@ Ste si istý, že si želáte vymazať tento typ poznámok? Skutočne si prajete odstrániť toto pole? - Pridať: %1$s + Add: %1$s - Klon: %1$s + Clone: %1$s Vložte šablónu, ktorú prehliadač kartičiek použije na zobrazenie vašich kartičiek. Použite to na zobrazenie stručnejšej odpovede.\n\nPredok šablóny\n“Hlavné mesto {{Country}} je:”\nmôže byť v prehliadači kartičiek skrátené na\n“Hlavné mesto: {{Country}}” Formát otázky diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml index 091d763aec2a..98daf148c909 100644 --- a/AnkiDroid/src/main/res/values-sl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml @@ -241,7 +241,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -315,20 +315,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml index 99d4f98e7b5c..99249bbec07d 100644 --- a/AnkiDroid/src/main/res/values-sl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sl/03-dialogs.xml @@ -68,7 +68,7 @@ Napaka podatkovne zbirke Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Prijavi napako - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Ali res želite popraviti podatkovno zbirko?\n\nPred poizkusom bo v mapi \"%s\" ustvarjena kopija. Kategorija \"privzeta\" je prazna Za dodajanje kartic v AnkiDroid odstranite vse kategorija beležnice ali dodajte eno z imenom \"privzeta\" @@ -220,10 +220,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-sl/10-preferences.xml b/AnkiDroid/src/main/res/values-sl/10-preferences.xml index b089598c87cc..ca1609ee775c 100644 --- a/AnkiDroid/src/main/res/values-sl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sl/10-preferences.xml @@ -301,8 +301,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sl/17-model-manager.xml b/AnkiDroid/src/main/res/values-sl/17-model-manager.xml index aa11a5c055f3..4016155625e4 100644 --- a/AnkiDroid/src/main/res/values-sl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sl/17-model-manager.xml @@ -68,9 +68,9 @@ Are you sure you wish to delete this note type? Ali res želite izbrisati to polje? - Dodaj: %1$s + Add: %1$s - Kloniraj: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml index dd0094ef6cd6..097abd4b8461 100644 --- a/AnkiDroid/src/main/res/values-sq/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml index 2da1db3d7508..f0c68800573d 100644 --- a/AnkiDroid/src/main/res/values-sq/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sq/03-dialogs.xml @@ -64,7 +64,7 @@ Gabim në bazën e të dhënave Shkrimi në koleksion dështoi. Baza e të dhënave mund të jetë e dëmtuar ose mund të mos ketë hapësirë ​​boshe të mjaftueshme në disk.\n\nNëse kjo ndodh më shpesh, provo të kontrollosh bazën e të dhënave, të riparosh koleksionin ose ta rivendosësh atë nga një kopje rezervë. Prekni \"opsionet\" për këtë.\n\Ose mund të jetë edhe një gabim i AnkiDroid; ju lutemi raportoni gabimin në mënyrë që ta kontrollojmë këtë. Raportoni gabimin - Nuk ka hapësirë ​​të mjaftueshme të ruajtjes së lirë për të hapur AnkiDroid. Liro pak hapësirë ​​për të vazhduar. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Dëshiron vërtet të provosh të riparosh bazën e të dhënave?\n\nPara fillimit të përpjekjes, do të krijohet një kopje në nënfolderin \"%s\". Kategoria \"e parazgjedhur\" është bosh Për të shtuar karta në AnkiDroid, hiqni të gjitha kategoritë e Notepad ose shtoni një të quajtur \"default\" @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-sq/10-preferences.xml b/AnkiDroid/src/main/res/values-sq/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-sq/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sq/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sq/17-model-manager.xml b/AnkiDroid/src/main/res/values-sq/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-sq/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sq/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml index 50f4e52cb8f0..a94b6227c402 100644 --- a/AnkiDroid/src/main/res/values-sr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml @@ -237,7 +237,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -310,20 +310,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml index 97bfdfa7324d..f360acc37502 100644 --- a/AnkiDroid/src/main/res/values-sr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sr/03-dialogs.xml @@ -66,7 +66,7 @@ Грешка базе података Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Извести о грешци - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Да ли заиста желите да обновите базу података?\n\nДо почетка обнављања, копија базе података ће бити смештена у фасциклу \'%s\'. Категорија \'подразумевано\' је празна При додавању карата AnkiDroid уклања све категорије бележница или додаје једну са именом \'default\' @@ -216,10 +216,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-sr/10-preferences.xml b/AnkiDroid/src/main/res/values-sr/10-preferences.xml index b9f2d6d8701e..adcced2c1592 100644 --- a/AnkiDroid/src/main/res/values-sr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sr/10-preferences.xml @@ -299,8 +299,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sr/17-model-manager.xml b/AnkiDroid/src/main/res/values-sr/17-model-manager.xml index 35bcd4533d55..1031dc2ebd8d 100644 --- a/AnkiDroid/src/main/res/values-sr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sr/17-model-manager.xml @@ -66,9 +66,9 @@ Are you sure you wish to delete this note type? Да ли заиста желите да избришете овај модел? - Додај: %1$s + Add: %1$s - Клон: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-ss/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-ss/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ss/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ss/10-preferences.xml b/AnkiDroid/src/main/res/values-ss/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-ss/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ss/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ss/17-model-manager.xml b/AnkiDroid/src/main/res/values-ss/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ss/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ss/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml index e0aca8becd0b..b7d434fe2f1a 100644 --- a/AnkiDroid/src/main/res/values-sv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml @@ -233,7 +233,7 @@ Bilden är för stor, lägg till bilden manuellt Videofilen är för stor, lägg till videon manuellt Ljudfilen är för stor, lägg till ljudet manuellt - Säkerhetskopiering av Android pågår. Försök igen + Android backup in progress. Please try again Du kan behöva använda iManager för att tillåta AnkiDroid att lägga till genvägar Din startskärm tillåter inte AnkiDroid att lägga till genvägar Kunde inte lägga till genväg: %s @@ -306,19 +306,14 @@ Browser options Inspelning sparad Raderar markerade noter - Tryck på en röst för att lyssna - - Röst bör installeras innan den används - Använd ändå - + Tap a voice to listen + Voice should be installed before use + Use anyway Fel (%s) text-till-tal - Internet - - Installera - - Misslyckades att öppna text-till-tal-inställningar - + Internet + Install + Failed to open text to speech settings Logga in för att ladda ner fler kortlekar Beskrivning Misslyckades att kopiera diff --git a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml index 676904a232bc..de401313b886 100644 --- a/AnkiDroid/src/main/res/values-sv/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sv/03-dialogs.xml @@ -64,7 +64,7 @@ Databasfel Ett fel uppstod när data skrevs till samlingen. Detta kan bero på en korrupt databas eller otillräckligt diskutrymme.\n\nOm detta händer flera gånger, vänligen kontrollera databasen, reparera samlingen eller återställ den från en säkerhetskopia. Klicka på \'alternativ\' för det.\n\nAnnars kan detta också bero på en bug i AnkiDroid; vänligen rapportera felet så vi kan kontrollera detta. Rapportera fel - Det finns inte tillräckligt med ledigt lagringsutrymme för att öppna AnkiDroid. Frigör lite utrymme för att fortsätta. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Vill du verkligen försöka reparera databasen?\n\nEn kopia kommer att skapas i mappen \'%s\' innan. Kategori \'default\' är tom För att lägga till kort till AnkiDroid, ta bort alla Notepadkategorier eller lägg till en som heter \'default\' @@ -212,10 +212,8 @@ Senare Visa inte igen Varning för dataförlust - På grund av Androids integritetsförändringar kommer dina data och automatiserade säkerhetskopior att raderas om appen avinstalleras - - På grund av Androids integritetsförändringar kommer dina data och automatiserade säkerhetskopior att vara oåtkomliga om appen avinstalleras - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Kortlek finns redan Kortleksnamn kan inte vara tomt Om du har problem med kortleks ordning (dvs \'10\' kommer före \'2\'), ersätt \'2\' med \'02\' diff --git a/AnkiDroid/src/main/res/values-sv/10-preferences.xml b/AnkiDroid/src/main/res/values-sv/10-preferences.xml index 2a88f7e65575..3959d20748a9 100644 --- a/AnkiDroid/src/main/res/values-sv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sv/10-preferences.xml @@ -296,8 +296,7 @@ Utvecklaralternativ Aktivera utvecklaralternativ Inaktivera utvecklaralternativ - Var säker innan du aktiverar utvecklaralternativ. Dessa alternativ är farliga och kan förstöra appen eller korrumpera din samling.\n\nObservera att dessa alternativ inte passar de flesta användare och därför inte översätts, och alltså är på engelska. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sv/17-model-manager.xml b/AnkiDroid/src/main/res/values-sv/17-model-manager.xml index 9b3f99ed6715..f2ca4eb61432 100644 --- a/AnkiDroid/src/main/res/values-sv/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sv/17-model-manager.xml @@ -64,9 +64,9 @@ Är du säker på att du vill ta bort denna anteckningstyp? Är du säker på att du vill ta bort detta fält? - Lägg till: %1$s + Add: %1$s - Klona: %1$s + Clone: %1$s Ange den mall som kortbläddraren kommer att använda för att visa dina kort. Använd detta för att visa ett mer koncist svar.\n\nEn framsidomall \n“Huvudstaden i {{Country}} är:”\nkan i kortbläddraren komprimeras till\n“Huvudstad: {{Country}}” Frågeformat diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-sw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-sw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sw/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-sw/10-preferences.xml b/AnkiDroid/src/main/res/values-sw/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-sw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sw/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-sw/17-model-manager.xml b/AnkiDroid/src/main/res/values-sw/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-sw/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sw/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml index 4776c8746632..1104b65d84f5 100644 --- a/AnkiDroid/src/main/res/values-ta/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml @@ -233,7 +233,7 @@ படம் மிகவும் பெரிதாக உள்ளது, படத்தை கைமுறையாக செருகவும் வீடியோ கோப்பு மிகவும் பெரியதாக உள்ளது, வீடியோவை கைமுறையாக செருகவும் ஆடியோ கோப்பு மிகவும் பெரியதாக உள்ளது, ஆடியோவை கைமுறையாக செருகவும் - Android காப்புப்பிரதி செயலில் உள்ளது. மீண்டும் முயற்சிக்கவும் + Android backup in progress. Please try again குறுக்குவழிகளைச் சேர்க்க AnkiDroid ஐ அனுமதிக்க நீங்கள் iManager ஐப் பயன்படுத்த வேண்டியிருக்கலாம் உங்கள் முகப்புத் திரை AnkiDroid குறுக்குவழிகளைச் சேர்க்க அனுமதிக்காது குறுக்குவழியைச் சேர்ப்பதில் பிழை: %s @@ -305,20 +305,14 @@ Browser options பதிவு சேமிக்கப்பட்டது தேர்ந்தெடுக்கப்பட்ட குறிப்புகளை நீக்குகிறது - கேட்க ஒரு குரலைத் தட்டவும் - - பயன்படுத்துவதற்கு முன் குரல் நிறுவப்பட வேண்டும் - - எப்படியும் பயன்படுத்துங்கள் - + Tap a voice to listen + Voice should be installed before use + Use anyway உரையிலிருந்து பேச்சுப் பிழை (%s) - இணையம் - - நிறுவவும் - - உரையிலிருந்து பேச்சு அமைப்புகளைத் திறக்க முடியவில்லை - + Internet + Install + Failed to open text to speech settings மேலும் தளங்களைப் பதிவிறக்க உள்நுழையவும் விளக்கம் நகலெடுக்க முடியவில்லை diff --git a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml index 0a6bcb030f2d..dde52595beb7 100644 --- a/AnkiDroid/src/main/res/values-ta/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ta/03-dialogs.xml @@ -64,7 +64,7 @@ தரவுத்தள பிழை தொகுப்பிற்கு எழுதுவது தோல்வியடைந்தது. தரவுத்தளம் சிதைந்திருக்கலாம் அல்லது வட்டில் போதுமான காலி இடம் இல்லாமல் இருக்கலாம்.\n\nஇது அடிக்கடி நடந்தால், தரவுத்தளத்தைச் சரிபார்த்து, சேகரிப்பைச் சரிசெய்து அல்லது காப்புப்பிரதியிலிருந்து மீட்டமைக்க முயற்சிக்கவும். அதற்கான \"விருப்பங்களை\" தொடவும்.\n\அல்லது அது AnkiDroid பிழையாகவும் இருக்கலாம்; தயவு செய்து பிழையைப் புகாரளிக்கவும், இதன் மூலம் நாங்கள் இதைச் சரிபார்க்க முடியும். பிழையைப் புகாரளிக்கவும் - AnkiDroid ஐ திறக்கப் போதுமான இலவச சேமிப்பிடம் இல்லை. தொடர்வதற்கு சிறிது இடத்தை விடுவிக்கவும். + There is not enough free storage space to open AnkiDroid. Free up some space to continue. நீங்கள் உண்மையில் தரவுத்தளத்தைச் சரிசெய்ய முயற்சிக்க விரும்புகிறீர்களா?\n\nமுயற்சியைத் தொடங்கும் முன், \"%s\" என்ற துணைக் கோப்புறையில் ஒரு நகல் உருவாக்கப்படும். \"இயல்புநிலை\" வகை காலியாக உள்ளது AnkiDroid இல் கார்டுகளைச் சேர்க்க அனைத்து நோட்பேட் வகைகளையும் அகற்றவும் அல்லது \"இயல்புநிலை\" என்று பெயரிடப்பட்ட ஒன்றைச் சேர்க்கவும் @@ -212,10 +212,8 @@ பின்னர் மீண்டும் காட்டாதே தரவு இழப்பு எச்சரிக்கை - ஆண்ட்ராய்டு தனியுரிமை மாற்றங்கள் காரணமாக, ஆப்ஸ் நிறுவல் நீக்கப்பட்டால், உங்கள் டேட்டா மற்றும் தானியங்கு காப்புப் பிரதிகளமொபைலிலிருந்து் இருந்து நீக்கப்படும் - - Android தனியுரிமை மாற்றங்கள் காரணமாக, ஆப்ஸ் நிறுவல் நீக்கப்பட்டால், உங்கள் தரவு மற்றும் தானியங்கு காப்புப்பிரதிகளை அணுக முடியாது - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled டெக் ஏற்கனவே உள்ளது டெக்கின் பெயர் காலியாக இருக்கக் கூடாது டெக் ஆர்டர் செய்வதில் சிக்கல்கள் இருந்தால் (எ.கா. ‘10’ ‘2’க்கு முன் தோன்றும்), ‘2’ ஐ ‘02’ ஆக மாற்றவும் diff --git a/AnkiDroid/src/main/res/values-ta/10-preferences.xml b/AnkiDroid/src/main/res/values-ta/10-preferences.xml index 4bd7db5c43d9..06b518e1c809 100644 --- a/AnkiDroid/src/main/res/values-ta/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ta/10-preferences.xml @@ -296,8 +296,7 @@ டெவலப்பர் விருப்பங்கள் டெவலப்பர் விருப்பங்களை இயக்கு டெவலப்பர் விருப்பங்களை முடக்கு - டெவலப்பர் விருப்பங்களை இயக்கும் முன் உறுதிசெய்யவும். இந்த விருப்பத்தேர்வுகள் ஆபத்தானவை மற்றும் பயன்பாட்டை உடைக்கலாம் அல்லது உங்கள் சேகரிப்பை சிதைக்கலாம்.\n\nஇந்த விருப்பங்கள் பெரபயனர்களுக்குப் பொருந்தாதுொருந்தாது, எனவே அவை மொழிபெயர்க்கப்படவில்லை, எனவே அவை ஆங்கிலத்தில் உள்ளன. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ta/17-model-manager.xml b/AnkiDroid/src/main/res/values-ta/17-model-manager.xml index 846f7c887e31..7e16e54fead5 100644 --- a/AnkiDroid/src/main/res/values-ta/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ta/17-model-manager.xml @@ -64,9 +64,9 @@ இந்தக் குறிப்பு வகையை நிச்சயமாக நீக்க விரும்புகிறீர்களா? இந்தப் புலத்தை நிச்சயமாக நீக்க விரும்புகிறீர்களா? - சேர்: %1$s + Add: %1$s - குளோன்: %1$s + Clone: %1$s கார்டு உலாவி உங்கள் கார்டுகளைக் காண்பிக்கப் பயன்படுத்தும் டெம்ப்ளேட்டை உள்ளிடவும். இன்னும் சுருக்கமான பதிலைக் காண்பிக்க இதைப் பயன்படுத்தவும்.\n\n\n“{{நாட்டின்}} தலைநகரம்:”\nஇன் முன் டெம்ப்ளேட்டை அட்டை உலாவியில்\n“மூலதனம்: {{Country}}” என்று சுருக்கலாம். கேள்வி வடிவம் diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml index 088e69201bc8..aafbfe70d69e 100644 --- a/AnkiDroid/src/main/res/values-te/02-strings.xml +++ b/AnkiDroid/src/main/res/values-te/02-strings.xml @@ -233,7 +233,7 @@ చిత్రం చాలా పెద్దది, దయచేసి చిత్రాన్ని మాన్యువల్‌గా చొప్పించండి వీడియో ఫైల్ చాలా పెద్దది, దయచేసి వీడియోని మాన్యువల్‌గా చొప్పించండి ఆడియో ఫైల్ చాలా పెద్దది, దయచేసి ఆడియోను మాన్యువల్‌గా చొప్పించండి - Android బ్యాకప్ ప్రోగ్రెస్‌లో ఉంది. దయచేసి మళ్లీ ప్రయత్నించండి + Android backup in progress. Please try again సత్వరమార్గాలను జోడించడానికి AnkiDroidని అనుమతించడానికి మీరు iManagerని ఉపయోగించాల్సి రావచ్చు మీ హోమ్ స్క్రీన్‌కి సత్వరమార్గాలను జోడించడానికి AnkiDroid మిమ్మల్ని అనుమతించదు సత్వరమార్గాన్ని జోడించడంలో లోపం: %s @@ -305,14 +305,14 @@ Browser options రికార్డింగ్ సేవ్ చేయబడింది ఎంచుకున్న గమనికలను తొలగిస్తోంది - వినడానికి వాయిస్ నొక్కండి - ఉపయోగించడానికి ముందు వాయిస్ తప్పనిసరిగా ఇన్‌స్టాల్ చేయబడాలి - ఎలాగైనా వాడండి + Tap a voice to listen + Voice should be installed before use + Use anyway టెక్స్ట్ టు స్పీచ్ లోపం (%s) - ఇంటర్నెట్ - దీన్ని ఇన్‌స్టాల్ చేయండి - టెక్స్ట్ టు స్పీచ్ సెట్టింగ్‌లను తెరవడంలో విఫలమైంది + Internet + Install + Failed to open text to speech settings దయచేసి మరిన్ని డెక్‌లను డౌన్‌లోడ్ చేయడానికి లాగిన్ చేయండి వివరణ కాపీ చేయడంలో విఫలమైంది diff --git a/AnkiDroid/src/main/res/values-te/03-dialogs.xml b/AnkiDroid/src/main/res/values-te/03-dialogs.xml index 884a82b12b2d..c6c162e54727 100644 --- a/AnkiDroid/src/main/res/values-te/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-te/03-dialogs.xml @@ -64,7 +64,7 @@ డేటాబేస్ లోపం సేకరణకు వ్రాయడంలో విఫలమైంది. డేటాబేస్ పాడైపోయి ఉండవచ్చు లేదా డిస్క్‌లో తగినంత ఖాళీ స్థలం ఉండకపోవచ్చు.\n\nఇది తరచుగా జరిగితే, డేటాబేస్‌ని తనిఖీ చేయడం, సేకరణను రిపేర్ చేయడం లేదా బ్యాకప్ నుండి పునరుద్ధరించడం వంటివి ప్రయత్నించండి. దాని కోసం \"ఎంపికలు\" తాకండి.\n\లేదా అది AnkiDroid బగ్ కావచ్చు; దయచేసి లోపాన్ని నివేదించండి, తద్వారా మేము దాన్ని తనిఖీ చేయవచ్చు. నివేదన లోపం - AnkiDroidని తెరవడానికి తగినంత ఉచిత నిల్వ లేదు. కొనసాగించడానికి కొంత స్థలాన్ని ఖాళీ చేయండి. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. మీరు నిజంగా డాటాబేస్ రిపేరు చేయాలనుకుంటున్నారా? \n\n ప్రయత్నం ప్రారంభించటానికి ముందు, \"కాపీ\" ఫోల్డర్ \"%s\" లో సృష్టించబడుతుంది. \"default\" వర్గం ఖాళీగా ఉంది AnkiDroid కు కార్డులు జోడించడానికి అన్ని నోట్ప్యాడ్లో కేతగిరీలు తొలగించండి లేదా \"default\" కు ఒక పేరును జోడించండి @@ -212,8 +212,8 @@ తర్వాత దాన్ని మళ్లీ చూపించవద్దు డేటా నష్టం హెచ్చరిక - Android గోప్యతా మార్పుల కారణంగా, యాప్‌ను అన్‌ఇన్‌స్టాల్ చేయడం వలన మీ ఫోన్ నుండి మీ డేటా మరియు ఆటోమేటెడ్ బ్యాకప్ తొలగించబడుతుంది - Android గోప్యతా మార్పుల కారణంగా, యాప్ అన్‌ఇన్‌స్టాల్ చేయబడితే మీ డేటా మరియు ఆటోమేటెడ్ బ్యాకప్‌లు యాక్సెస్ చేయబడవు + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled డెక్ ఇప్పటికే ఉంది డెక్ పేరు ఖాళీగా ఉండకూడదు మీకు డెక్ ఆర్డరింగ్ సమస్యలు ఉంటే (ఉదా. \'2\'కి ముందు \'10\' కనిపిస్తుంది), \'2\'ని \'02\'తో భర్తీ చేయండి diff --git a/AnkiDroid/src/main/res/values-te/10-preferences.xml b/AnkiDroid/src/main/res/values-te/10-preferences.xml index f7185c45f585..6cf9ad76dca4 100644 --- a/AnkiDroid/src/main/res/values-te/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-te/10-preferences.xml @@ -295,7 +295,7 @@ డెవలపర్ ఎంపికలు డెవలపర్ ఎంపికలను ప్రారంభించండి డెవలపర్ ఎంపికలను నిలిపివేయండి - దయచేసి డెవలపర్ ఎంపికలను ప్రారంభించే ముందు నిర్ధారించుకోండి. ఈ ఎంపికలు ప్రమాదకరమైనవి మరియు యాప్‌ను విచ్ఛిన్నం చేయవచ్చు లేదా మీ సేకరణకు హాని కలిగించవచ్చు.\n\nఈ ఎంపికలు చాలా మంది వినియోగదారులకు తగినవి కావు మరియు అందువల్ల అనువదించబడలేదు, కాబట్టి అవి ఆంగ్లంలో ఉన్నాయని దయచేసి గమనించండి. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-te/17-model-manager.xml b/AnkiDroid/src/main/res/values-te/17-model-manager.xml index 1c77d5665f9a..cc8519adeb42 100644 --- a/AnkiDroid/src/main/res/values-te/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-te/17-model-manager.xml @@ -64,9 +64,9 @@ మీరు ఈ గమనిక రకాన్ని ఖచ్చితంగా తొలగించాలనుకుంటున్నారా? మీరు ఖచ్చితంగా ఈ ఫీల్డ్ని తొలగించాలనుకుంటున్నారా? - చెరచు %1$s + Add: %1$s - ఒకే రీతి: %1$s + Clone: %1$s మీ కార్డ్‌లను ప్రదర్శించడానికి కార్డ్ బ్రౌజర్ ఉపయోగించే టెంప్లేట్‌ను నమోదు చేయండి. మరింత సంక్షిప్త సమాధానాన్ని ప్రదర్శించడానికి దీన్ని ఉపయోగించండి.\n\n\n బ్రౌజర్‌లో “{{Country}} రాజధాని:”\n ముందు ఉన్న టెంప్లేట్ కార్డ్ “క్యాపిటల్: {{Country}}”కి కుదించబడుతుంది. ప్రశ్న ఫార్మాట్ diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-tg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml index 954422112bc9..238f402bfc38 100644 --- a/AnkiDroid/src/main/res/values-tg/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tg/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-tg/10-preferences.xml b/AnkiDroid/src/main/res/values-tg/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-tg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tg/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-tg/17-model-manager.xml b/AnkiDroid/src/main/res/values-tg/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-tg/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tg/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml index a328c607cd83..62b563d5e627 100644 --- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml index f63aa6b35468..b8b67aa3f06e 100644 --- a/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tgl/03-dialogs.xml @@ -64,7 +64,7 @@ Mali sa database Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. I-ulat ang error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Gusto ma bang subukan ang pag-aayos ng database?\n\nBago simulan ang pagtatangka, isang kopya ang lilikhain sa subfolder na \"%s\". Walang laman ang kategoryang \"default\" Upang magdagdag ng mga baraha sa AnkiDroid alisin ang lahat ng mga kategorya ng Notepad o magdagdag ng isa na pinangalanang \"default\" @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml index 0029c1b69a36..c475e20c408f 100644 --- a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml b/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tgl/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml index 40d8debee090..102711af4063 100644 --- a/AnkiDroid/src/main/res/values-th/02-strings.xml +++ b/AnkiDroid/src/main/res/values-th/02-strings.xml @@ -229,7 +229,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -300,20 +300,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-th/03-dialogs.xml b/AnkiDroid/src/main/res/values-th/03-dialogs.xml index 4c4d14477486..e649b069ab31 100644 --- a/AnkiDroid/src/main/res/values-th/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-th/03-dialogs.xml @@ -62,7 +62,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-th/10-preferences.xml b/AnkiDroid/src/main/res/values-th/10-preferences.xml index 28ba47737894..5437805dcdb3 100644 --- a/AnkiDroid/src/main/res/values-th/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-th/10-preferences.xml @@ -295,8 +295,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-th/17-model-manager.xml b/AnkiDroid/src/main/res/values-th/17-model-manager.xml index ebbccce50b08..0e9410d15b90 100644 --- a/AnkiDroid/src/main/res/values-th/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-th/17-model-manager.xml @@ -62,9 +62,9 @@ คุณแน่ใจหรือไม่ว่าต้องการลบรูปแบบโน๊ตนี้? Are you sure you wish to delete this field? - เพิ่ม: %1$s + Add: %1$s - คัดลอก: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-ti/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-ti/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ti/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ti/10-preferences.xml b/AnkiDroid/src/main/res/values-ti/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-ti/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ti/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ti/17-model-manager.xml b/AnkiDroid/src/main/res/values-ti/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ti/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ti/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-tn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-tn/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tn/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-tn/10-preferences.xml b/AnkiDroid/src/main/res/values-tn/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-tn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tn/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-tn/17-model-manager.xml b/AnkiDroid/src/main/res/values-tn/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-tn/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tn/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index 040d2dacb724..6de42bf2cb5e 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -233,7 +233,7 @@ Bu resim fazla büyük, lütfen resmi elle ekleyin Bu video dosyası fazla büyük, lütfen videoyu elle ekleyin Bu ses dosyası fazla büyük, lütfen sesi elle ekleyin - Android yedeklemesi gerçekleştiriliyor. Lütfen tekrar deneyin + Android backup in progress. Please try again AnkiDroid\'in kısayol eklemesine izin vermek için iManager kullanmanız gerekebilir Ana ekranın, kısayol ekleyebilmesi için AnkiDroid\'e izin vermiyor Kısayolu eklerken hata: %s @@ -305,20 +305,14 @@ Tarayıcı seçenekleri Alınan kayıtlar kaydedildi. Seçili notlar siliniyor - Bir sesi dinlemek için dokunun - - Ses kullanmadan önce yüklenmelidir - - Yine de kullan - + Tap a voice to listen + Voice should be installed before use + Use anyway Metin okuma hatası (%s) - İnternet - - Yükle - - Metin okuma ayarları açılamadı - + Internet + Install + Failed to open text to speech settings Daha fazla deste indirmek için lütfen giriş yapın Açıklama Kopyalanamadı diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml index 7d60af4b2ac1..97b3ad91c688 100644 --- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml @@ -64,7 +64,7 @@ Veritabanı hatası Koleksiyona yazılamadı. Veritabanı bozuk olabilir veya diskte yeterli boş alan olmayabilir.\n\nBu daha sık oluyorsa, veritabanını kontrol etmeyi, koleksiyonu onarmayı veya bir yedekten geri yüklemeyi deneyin. Bunun için \"seçenekler\"e dokunun.\n\Veya bu bir AnkiDroid hatası da olabilir; Bunu kontrol edebilmemiz için lütfen hatayı bildirin. Hatayı bildir - AnkiDroid\'i açmaya yetecek boş depolama alanı yok. Devam etmek için biraz alan boşaltın. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Veritabanını onarmayı gerçekten denemek istiyor musunuz?\n\nGirişime başlamadan önce, \"%s\" altklasöründe bir kopya oluşturulacak. \"Varsayılan\" kategorisi boş AnkiDroid\'e kart eklemek için bütün Not Defteri kategorilerini kaldırın veya \"default\" isminde bir tane ekleyin @@ -212,10 +212,8 @@ Daha sonra Tekrar gösterme Veri kaybı uyarısı - Android gizlilik değişikliklerinden dolayı, uygulama kaldırılırsa veriniz ve otomatik yedekleriniz telefonunuzdan silinecek - - Android gizlilik değişikliklerinden dolayı, uygulama kaldırılırsa veriniz ve otomatik yedekleriniz erişilemez hâle gelecek - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deste hâlihazırda var Deste adı boş olamaz Deste sıralamanızda sorun olursa (örn. \"10\"un \"2\"den önce gelmesi), \"2\" yerine \"02\" yazın diff --git a/AnkiDroid/src/main/res/values-tr/10-preferences.xml b/AnkiDroid/src/main/res/values-tr/10-preferences.xml index 581abb33335e..4fcde1ee114b 100644 --- a/AnkiDroid/src/main/res/values-tr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tr/10-preferences.xml @@ -296,7 +296,7 @@ Geliştirici seçenekleri Geliştirici seçeneklerini aç Geliştirici seçeneklerini kapat - Lütfen geliştirici seçeneklerini açmadan önce emin olun. Bu seçenekler tehlikelidir ve uygulamayı ya da koleksiyonunuzu bozabilir.\n\nBu seçenekler çoğu kullanıcı için uygun değildir ve çevrilmezler, bu yüzden İngilizce olduklarını göz önünde bulundurun. + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-tr/17-model-manager.xml b/AnkiDroid/src/main/res/values-tr/17-model-manager.xml index 5b5e30f51361..c83fa9dab899 100644 --- a/AnkiDroid/src/main/res/values-tr/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tr/17-model-manager.xml @@ -64,9 +64,9 @@ Bu not türünü silmek istediğinize emin misiniz? Bu alanı silmek istediğinize emin misiniz? - Ekle: %1$s + Add: %1$s - Klonla: %1$s + Clone: %1$s Kartlarınızı görüntülemek için kullanılacak kart tarayıcı şablonunu giriniz. Daha anlaşılır bir yanıt görüntülemek için bunu kullanın.\n\nŞablonun önü\n\"{{Ülkesi}}nin başkenti: \"\nkart tarayıcıda şöyle sıkıştırılabilir\n\"Başkent: {{Ülke}}\" Soru Biçimi diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-ts/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-ts/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ts/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ts/10-preferences.xml b/AnkiDroid/src/main/res/values-ts/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-ts/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ts/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ts/17-model-manager.xml b/AnkiDroid/src/main/res/values-ts/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ts/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ts/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index ae2f62332a43..b623434ff751 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -230,7 +230,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -301,20 +301,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Тасвирлама Failed to copy diff --git a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml index e528468d6b38..02da01f46ef1 100644 --- a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml @@ -62,7 +62,7 @@ Мәгълүмат базасы хатасы Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Хата турында хәбәр итү - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Соңрак Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-tt/10-preferences.xml b/AnkiDroid/src/main/res/values-tt/10-preferences.xml index 47ef5504b5b8..77338cbf06a4 100644 --- a/AnkiDroid/src/main/res/values-tt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tt/10-preferences.xml @@ -295,8 +295,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-tt/17-model-manager.xml b/AnkiDroid/src/main/res/values-tt/17-model-manager.xml index 67ca3da2910a..3100dcec7c1d 100644 --- a/AnkiDroid/src/main/res/values-tt/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-tt/17-model-manager.xml @@ -62,9 +62,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ug/02-strings.xml b/AnkiDroid/src/main/res/values-ug/02-strings.xml index 3dfe7f2ee7ab..67e701419e03 100644 --- a/AnkiDroid/src/main/res/values-ug/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ug/02-strings.xml @@ -233,7 +233,7 @@ سۈرەت بەك چوڭ، سۈرەتنى قولدا قىستۇرۇڭ سىن ھۆججىتى بەك چوڭ، سىننى قولدا قىستۇرۇڭ ئۈن ھۆججىتى بەك چوڭ، ئۈننى قولدا قىستۇرۇڭ - Android زاپاسلاۋاتىدۇ. قايتا سىناڭ + Android backup in progress. Please try again iManager نى ئىشلىتىپ AnkiDroid نىڭ تېزلەتمە قوشۇشىغا يول قويۇڭ باش ئېكرانىڭىز AnkiDroid نىڭ تېزلەتمە قوشۇشىغا يول قويمايدۇ تېزلەتمە قوشۇش خاتالىقى: %s @@ -305,20 +305,14 @@ توركۆرگۈ تاللانما خاتىرە ساقلاندى تاللانغان خاتىرىنى ئۆچۈرۈۋاتىدۇ - ئاۋاز چېكىلسە ئاڭلىنىدۇ - - ئىشلىتىشتىن ئىلگىرى ئاۋاز ئورنىتىلغان بولۇشى كېرەك - - ئىشلىتىۋەر - + Tap a voice to listen + Voice should be installed before use + Use anyway تېكىستتىن ئاۋازغا خاتالىقى (%s) - ئىنتېرنېت - - ئورنات - - تېكىستتىن ئاۋازغا تەڭشىكىنى ئاچالمىدى - + Internet + Install + Failed to open text to speech settings تېخىمۇ كۆپ دەستە چۈشۈرۈش ئۈچۈن تىزىمغا كىرىڭ چۈشەندۈرۈش كۆچۈرەلمىدى diff --git a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml index 4870473eab98..ab527c511ccb 100644 --- a/AnkiDroid/src/main/res/values-ug/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ug/03-dialogs.xml @@ -64,7 +64,7 @@ ساندان خاتالىقى توپلامغا يازالمىدى. ساندان بۇزۇلغان بولۇشى ياكى دىسكىدا يېتەرلىك بوشلۇق بولماسلىقى مۇمكىن.\n\nئەگەر بۇ خىل ئەھۋال دائىم يۈز بەرسە، سانداننى تەكشۈرۈڭ، توپلامنى ئوڭشاڭ ياكى زاپاستىن ئەسلىگە كەلتۈرۈڭ. بۇنىڭ ئۈچۈن «تاللانما» نى چېكىڭ.\n\ياكى AnkiDroid كەمتۈكى بولۇشى مۇمكىن؛ خاتالىقنى مەلۇم قىلسىڭىز بىز ئۇنى تەكشۈرەلەيمىز. خاتالىق مەلۇم قىل - AnkiDroid نى ئېچىشقا يېتەرلىك دىسكا بوشلۇقى يوق. داۋاملاشتۇرۇش ئۈچۈن ئارزاق بوشلۇق بوشىتىڭ. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. سانداننى ھەقىقەتەن ئوڭشامسىز؟\n\nباشلاشتىن ئىلگىرى، بىر نۇسخا كۆچۈرۈلمىسى «%s» تارماق قىسقۇچقا قۇرۇلىدۇ. سەھىپە «كۆڭۈلدىكى» بوش AnkiDroid قا كارتا قوشۇشتا بارلىق خاتىرە دەپتەر سەھىپىنى چىقىرىۋېتىدۇ ياكى «كۆڭۈلدىكى» ئاتىدا بىرنى قوشىدۇ @@ -212,10 +212,8 @@ كېيىن قايتا كۆرسەتمە سانلىق-مەلۇمات يوقۇلۇش ئاگاھلاندۇرۇشى - Android شەخسىيەت تۈزۈمى ئۆزگەرگەنلىكتىن، ئەگەر ئەپ ئۆچۈرۈلسە، سانلىق مەلۇماتىڭىز ۋە ئۆزلۈكىدىن زاپاسلانغانلار تېلېفونىڭىزدىن ئۆچۈرۈلىدۇ - - Android شەخسىيەت تۈزۈمى ئۆزگەرگەنلىكتىن، ئەگەر ئەپ ئۆچۈرۈلسە، سانلىق مەلۇماتىڭىز ۋە ئۆزلۈكىدىن زاپاسلانغانلارنى زىيارەت قىلغىلى بولمايدۇ - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled دەستە مەۋجۇت دەستە ئىسمى بوش قالمايدۇ ئەگەر دەستە تەرتىپ مەسىلىسى بولسا (مەسىلەن، «10»«2»)دىن ئىلگىرى كۆرۈنسە، «2» نى «02» گە ئالماشتۇرۇڭ) diff --git a/AnkiDroid/src/main/res/values-ug/10-preferences.xml b/AnkiDroid/src/main/res/values-ug/10-preferences.xml index fef78f8c2568..8eeef4798a35 100644 --- a/AnkiDroid/src/main/res/values-ug/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ug/10-preferences.xml @@ -297,8 +297,7 @@ ئىجادكارلار تاللانمىسى ئىجادكارلار تاللانمىسىنى قوزغىتىدۇ ئىجادكارلار تاللانمىسىنى چەكلەيدۇ - ئىجادكارلار تاللانمىسىنىڭ قوزغىتىلغانلىقىغا كاپالەتلىك قىلىڭ. بۇ تاللانما خەتەرلىك ئەپ ياكى توپلامنى بۇزۇشى مۇمكىن.\n\nئەسكەرتىش بۇ تاللانما كۆپىنچە ئىشلەتكۈچىگە ماس كەلمەيدۇ، ئۇنىڭ ئۈستىگە تەرجىمە قىلىنمىغان شۇڭا ئىنگلىزچە. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ug/17-model-manager.xml b/AnkiDroid/src/main/res/values-ug/17-model-manager.xml index 2dcf9196b77e..31f361f6aecb 100644 --- a/AnkiDroid/src/main/res/values-ug/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ug/17-model-manager.xml @@ -64,9 +64,9 @@ راستلا بۇ بۆلەك تۈرىنى ئۆچۈرەمسىز؟ بۇ بۆلەكنى راستتىنلا ئۆچۈرەمسىز؟ - قوش: %1$s + Add: %1$s - نۇسخىلا: %1$s + Clone: %1$s كارتا كۆرگۈچ كارتىڭىزنى كۆرسىتىشكە ئىشلىتىدىغان قېلىپنى كىرگۈزۈڭ. بۇنى ئىشلىتىپ تېخىمۇ كۆپ قىسقا جاۋابنى كۆرسىتىدۇ.\n\nقېلىپتىكى «The capital of {{Country}} is:» كارتا كۆرگۈچتە «Capital: {{Country}}» غا قىسقارتىلىشى مۇمكىن سوئال پىچىمى diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index 6752b4c88215..11ae400144aa 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -241,7 +241,7 @@ Зображення завелике, будь ласка, вставте зображення вручну Відеофайл завеликий, будь ласка, вставте відео вручну Аудіофайл завеликий, будь ласка, вставте аудіо вручну - Виконується резервне копіювання. Будь ласка, спробуйте ще раз + Android backup in progress. Please try again Використовуйте iManager, щоб дозволити AnkiDroid додавати ярлики Ваш головний екран не дозволяє AnkiDroid додати ярлики Помилка при створенні ярлика: %s @@ -315,19 +315,14 @@ Параметри переглядача карток Запис аудіо збережено Видалення вибраних записів - Натисніть на голос, щоб прослухати - - Перед використанням слід встановити голос - Все одно використати - + Tap a voice to listen + Voice should be installed before use + Use anyway Помилка синтезу мовлення (%s) - Інтернет - - Встановити - - Не вдалося відкрити налаштування синтезу мовлення - + Internet + Install + Failed to open text to speech settings Ввійдіть, будь ласка, до акаунту, щоб завантажити більше колод Опис Не вдалося скопіювати diff --git a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml index 806200a82e72..068428166e1d 100644 --- a/AnkiDroid/src/main/res/values-uk/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uk/03-dialogs.xml @@ -68,7 +68,7 @@ Помилка бази даних Під час запису в колекцію сталася помилка. Причиною може бути пошкоджена база даних або відсутність місця на диску.\n\nЯкщо це трапляється частіше, будь ласка, спробуйте перевірити базу даних, полагодити колекцію, або відновити її з резервної копії. Для цього натисніть на «налаштування».\n\nОднак, це також може бути недолік AnkiDroid; будь ласка, надішліть звіт для перевірки цього. Повідомити про помилку - Недостатньо вільного місця, щоб відкрити AnkiDroid. Звільніть трохи пам\'яті, аби продовжити. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Ви дійсно бажаєте спробувати відновити базу даних?\n\nПеред початком спроби в підкаталозі \'%s\' буде створена копія. Категорія \"стандартна\" порожня Щоб додати картки до AnkiDroid, видаліть всі категорії Notepad або додайте категорію \'default\' @@ -220,10 +220,8 @@ Пізніше Більше не показувати Ризик втрати даних - У зв\'язку зі зміною політики конфіденційності Android, ваші дані та автоматизовані резервні копії будуть видалені з вашого пристрою, якщо додаток буде видалено - - У зв\'язку зі зміною політики конфіденційності Android, ваші дані та автоматизовані резервні копії стануть недоступними, якщо додаток буде видалено - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Колода вже існує Назва колоди не може бути порожньою Якщо у вас є проблеми з порядком колод (наприклад, \'10\' стоїть перед \'2\') - замініть \'2\' на \'02\' diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index 72f536fdbbec..d15f04dfb6a2 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -301,8 +301,7 @@ Параметри розробника Увімкнути параметри розробника Вимкнути параметри розробника - Будь ласка, переконайтесь, що дійсно бажаєте ввімкнути параметрів розробника. Ці параметри небезпечні й можуть зламати програму або зіпсувати вашу колекцію.\n\nЗверніть увагу, що ці опції не підходять для більшості користувачів, тому не перекладені, так що текст в них англійською мовою. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-uk/17-model-manager.xml b/AnkiDroid/src/main/res/values-uk/17-model-manager.xml index 412671fc9dd8..e0de7a9154e1 100644 --- a/AnkiDroid/src/main/res/values-uk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-uk/17-model-manager.xml @@ -68,9 +68,9 @@ Ви впевнені, що хочете видалити цей тип запису? Ви впевнені, що хочете видалити це поле? - Додати: %1$s + Add: %1$s - Клонувати: %1$s + Clone: %1$s Введіть шаблон, який використовуватиме переглядач карток для відображення ваших карток. Використовуйте це для відображення стислішої відповіді.\n\nШаблон передньої сторони\n\"Столицею {{Країна}} є:\"\nможна стиснути в переглядачі карток до\n\"Столиця:{{Країна}}\" Формат запитання diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml index c1b78ab38d19..6e983fa898b4 100644 --- a/AnkiDroid/src/main/res/values-ur/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml @@ -234,7 +234,7 @@ تصویر بہت بڑی ہے، براہ کرم دستی طور پر تصویر داخل کریں۔ ویڈیو فائل بہت بڑی ہے، براہ کرم ویڈیو کو دستی طور پر داخل کریں۔ آڈیو فائل بہت بڑی ہے، براہ کرم آڈیو کو دستی طور پر داخل کریں۔ - Android بیک اپ جاری ہے۔ دوبارہ کوشش کریں + Android backup in progress. Please try again AnkiDroid کو شارٹ کٹ شامل کرنے کی اجازت دینے کے لیے آپ کو iManager استعمال کرنے کی ضرورت پڑ سکتی ہے۔ آپ کی ہوم اسکرین AnkiDroid کو شارٹ کٹ شامل کرنے کی اجازت نہیں دیتی ہے۔ شارٹ کٹ شامل کرنے میں خرابی: %s @@ -306,20 +306,14 @@ Browser options ریکارڈنگ محفوظ ہو گئی منتخب نوٹوں کو حذف کیا جا رہا ہے - سننے کے لیے آواز کو تھپتھپائیں - - آواز کو استعمال کرنے سے پہلے انسٹال کرنا چاہیے - - بہرحال استعمال کریں - + Tap a voice to listen + Voice should be installed before use + Use anyway ٹیکسٹ ٹو اسپیچ کی خرابی (%s) - انٹرنیٹ - - انسٹال کریں - - متن سے اسپیچ کی ترتیبات کو کھولنے میں ناکام - + Internet + Install + Failed to open text to speech settings مزید ڈیک ڈاؤن لوڈ کرنے کے لیے براہ کرم لاگ ان کریں تفصیل کاپی کرنے میں ناکام diff --git a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml index ae062e68e385..e1cf53dea546 100644 --- a/AnkiDroid/src/main/res/values-ur/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ur/03-dialogs.xml @@ -64,7 +64,7 @@ ڈیٹا بیس کی خرابی۔ مجموعہ پر لکھنا ناکام ہو گیا۔ ڈیٹا بیس کرپٹ ہو سکتا ہے یا ڈسک پر کافی جگہ خالی نہیں ہو سکتی۔\n\nاگر ایسا زیادہ ہوتا ہے تو ڈیٹا بیس کو چیک کرنے، جمع کو ٹھیک کرنے یا اسے بیک اپ سے بحال کرنے کی کوشش کریں۔ اس کے لیے \"اختیارات\" کو ٹچ کریں۔\n\یا یہ AnkiDroid بگ بھی ہو سکتا ہے۔ براہ کرم غلطی کی اطلاع دیں تاکہ ہم اسے چیک کر سکیں۔ غلطی کی اطلاع دیں۔ - AnkiDroid کھولنے کے لیے کافی خالی جگہ نہیں ہے۔ جاری رکھنے کے لیے کچھ جگہ خالی کریں۔ + There is not enough free storage space to open AnkiDroid. Free up some space to continue. کیا آپ واقعی ڈیٹا بیس کو ٹھیک کرنے کی کوشش کرنا چاہتے ہیں؟\n\nکوشش شروع کرنے سے پہلے، ذیلی فولڈر \"%s\" میں ایک کاپی بنائی جائے گی۔ زمرہ \"ڈیفالٹ\" خالی ہے۔ AnkiDroid میں کارڈز شامل کرنے کے لیے تمام نوٹ پیڈ کیٹیگریز کو ہٹا دیں یا \"ڈیفالٹ\" کے نام سے ایک شامل کریں۔ @@ -212,10 +212,8 @@ بعد میں دوبارہ نہ دکھائیں ڈیٹا ضائع ہونے کی وارننگ - Android پرائیویسی کی تبدیلیوں کی وجہ سے، آپ کا ڈیٹا اور خودکار بیک اپ حذف ہو جائیں گے۔اگر ایپ ان انسٹال ہے تو آپ کے فون سے - - اینڈرائیڈ پرائیویسی تبدیلیوں کی وجہ سے، آپ کا ڈیٹا اور خودکار بیک اپ ہوں گے اگر ایپ ان انسٹال ہے تو ناقابل رسائی - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled ڈیک پہلے سے موجود ہے ڈیک کا نام خالی نہیں ہو سکتا اگر آپ کو ڈیک آرڈر کرنے کے مسائل ہیں (جیسے \'10\' \'2\' سے پہلے ظاہر ہوتا ہے)، \'2\' کو \'02\' سے بدل دیں diff --git a/AnkiDroid/src/main/res/values-ur/10-preferences.xml b/AnkiDroid/src/main/res/values-ur/10-preferences.xml index 76cd17eb7f99..3711d4dfe0b0 100644 --- a/AnkiDroid/src/main/res/values-ur/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ur/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ur/17-model-manager.xml b/AnkiDroid/src/main/res/values-ur/17-model-manager.xml index 4cd47e53b961..aa8d7d56f0f0 100644 --- a/AnkiDroid/src/main/res/values-ur/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ur/17-model-manager.xml @@ -64,9 +64,9 @@ کیا آپ واقعی اس نوٹ کی قسم کو حذف کرنا چاہتے ہیں؟ کیا آپ واقعی اس فیلڈ کو حذف کرنا چاہتے ہیں؟ - شامل کریں: %1$s + Add: %1$s - کلون: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” سوال کی شکل diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml index 6ea623471c1b..23dfdbdf156c 100644 --- a/AnkiDroid/src/main/res/values-uz/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml index 568506b57755..5a33c3b31f6c 100644 --- a/AnkiDroid/src/main/res/values-uz/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-uz/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-uz/10-preferences.xml b/AnkiDroid/src/main/res/values-uz/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-uz/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uz/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-uz/17-model-manager.xml b/AnkiDroid/src/main/res/values-uz/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-uz/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-uz/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-ve/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-ve/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ve/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-ve/10-preferences.xml b/AnkiDroid/src/main/res/values-ve/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-ve/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ve/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-ve/17-model-manager.xml b/AnkiDroid/src/main/res/values-ve/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-ve/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ve/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index 1d830b746831..8cf810a5f5d4 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -229,7 +229,7 @@ Hình ảnh quá lớn, vui lòng chèn hình ảnh theo cách thủ công Tập tin video quá lớn, vui lòng chèn video theo cách thủ công Tệp âm thanh quá lớn, vui lòng chèn âm thanh thủ công - Android đang sao lưu. Hãy thử lại sau + Android backup in progress. Please try again Bạn có thể cần sử dụng iManager để cho phép AnkiDroid thêm phím tắt Màn hình chính của bạn không cho phép AnkiDroid thêm phím tắt Không thể thêm shortcut: %s @@ -300,20 +300,14 @@ Browser options Đã lưu bản ghi âm Xoá ghi chú đã chọn - Nhấn vào một giọng nói để nghe - - Nên cài đặt giọng nói trước khi sử dụng - - Vẫn sử dụng - + Tap a voice to listen + Voice should be installed before use + Use anyway Lỗi chuyển văn bản thành giọng nói (%s) - Internet - - Cài đặt - - Không mở được cài đặt chuyển văn bản sang giọng nói - + Internet + Install + Failed to open text to speech settings Vui lòng đăng nhập để tải thêm các bộ thẻ Mô tả Không sao chép được diff --git a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml index 10f8a11749c4..d559fa3ae4e5 100644 --- a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml @@ -62,7 +62,7 @@ Lỗi cơ sở dữ liệu Ghi vào bộ sưu tập không thành công. Cơ sở dữ liệu có thể bị hỏng hoặc có thể không có đủ dung lượng trống.\n\nNếu điều này xảy ra thường xuyên hơn, hãy thử kiểm tra cơ sở dữ liệu, sửa chữa bộ sưu tập hoặc khôi phục nó từ bản sao lưu. Chạm vào “tùy chọn” cho điều đó. \n\Hoặc nó cũng có thể là lỗi AnkiDroid; vui lòng thông báo lỗi để chúng tôi có thể kiểm tra điều này. Báo cáo lỗi - Không đủ không gian lưu trữ miễn phí để mở AnkiDroid. Giải phóng một số không gian để tiếp tục. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Bạn có thực sự muốn sửa chữa cơ sở dữ liệu? \n\nTrước khi bắt đầu, một bản sao sẽ được tạo trong thư mục con \"%s\". Danh mục \"mặc định\" rỗng Để thêm thẻ vào AnkiDroid, hãy xoá toàn bộ danh mục Notepad hoặc thêm danh mục tên \"mặc định\" @@ -208,10 +208,8 @@ Để sau Không hiển thị lại Cảnh báo mất dữ liệu - Do những thay đổi về quyền riêng tư của Android, dữ liệu và các bản sao lưu tự động của bạn sẽ bị xoá khỏi điện thoại nếu ứng dụng bị gỡ cài đặt - - Do những thay đổi về quyền riêng tư của Android, dữ liệu và các bản sao lưu tự động của bạn sẽ không thể truy cập được nếu ứng dụng bị gỡ cài đặt - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Bộ thẻ đã tồn tại Tên bộ thẻ không được để trống If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-vi/10-preferences.xml b/AnkiDroid/src/main/res/values-vi/10-preferences.xml index 31351f63b732..87abb76e2cfc 100644 --- a/AnkiDroid/src/main/res/values-vi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-vi/10-preferences.xml @@ -293,8 +293,7 @@ Tùy chọn nhà phát triển Bật tùy chọn nhà phát triển Tắt tùy chọn nhà phát triển - Hãy chắc chắn trước khi bật tùy chọn nhà phát triển. Các tùy chọn này rất nguy hiểm và có thể làm hỏng ứng dụng hoặc làm hỏng bộ sưu tập của bạn.\n\nXin lưu ý rằng các tùy chọn này không phù hợp với hầu hết người dùng và do đó không được dịch, vì vậy chúng bằng tiếng Anh. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-vi/17-model-manager.xml b/AnkiDroid/src/main/res/values-vi/17-model-manager.xml index 56d485ff02ae..322d3a75fa8f 100644 --- a/AnkiDroid/src/main/res/values-vi/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-vi/17-model-manager.xml @@ -62,9 +62,9 @@ Bạn có chắc chắn muốn xóa loại ghi chú này không? Bạn có chắc chắn muốn xóa trường này không? - Thêm: %1$s + Add: %1$s - Nhân bản: %1$s + Clone: %1$s Nhập mẫu mà trình duyệt thẻ sẽ sử dụng để hiển thị thẻ của bạn. Sử dụng tùy chọn này để hiển thị câu trả lời ngắn gọn hơn.\n\nMẫu trước của thẻ\n“Thủ đô của {{Country}} là:” \ncó thể được nén trong trình duyệt thẻ thành\n“Thủ đô: {{Country}}” Định dạng câu hỏi diff --git a/AnkiDroid/src/main/res/values-wo/01-core.xml b/AnkiDroid/src/main/res/values-wo/01-core.xml index 7b4eb66c61bc..9ef7be03d79f 100644 --- a/AnkiDroid/src/main/res/values-wo/01-core.xml +++ b/AnkiDroid/src/main/res/values-wo/01-core.xml @@ -45,8 +45,8 @@ --> - Élève - Porte + Decks + Card browser Statistics Settings Help diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml index 2d506f269e4d..9d6c7482d644 100644 --- a/AnkiDroid/src/main/res/values-wo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml @@ -229,7 +229,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -300,20 +300,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml index 4c4d14477486..e649b069ab31 100644 --- a/AnkiDroid/src/main/res/values-wo/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-wo/03-dialogs.xml @@ -62,7 +62,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-wo/10-preferences.xml b/AnkiDroid/src/main/res/values-wo/10-preferences.xml index 0b680887a4dd..0f0b55cad9c9 100644 --- a/AnkiDroid/src/main/res/values-wo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-wo/10-preferences.xml @@ -295,8 +295,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-wo/17-model-manager.xml b/AnkiDroid/src/main/res/values-wo/17-model-manager.xml index 5fa571a5e4a9..c92fe77e4302 100644 --- a/AnkiDroid/src/main/res/values-wo/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-wo/17-model-manager.xml @@ -62,9 +62,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-xh/02-strings.xml +++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-xh/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-xh/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-xh/10-preferences.xml b/AnkiDroid/src/main/res/values-xh/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-xh/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-xh/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-xh/17-model-manager.xml b/AnkiDroid/src/main/res/values-xh/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-xh/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-xh/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml index 951be4a7045b..34c98ec442be 100644 --- a/AnkiDroid/src/main/res/values-yue/02-strings.xml +++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml @@ -229,7 +229,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -300,20 +300,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml index 75dccb971b0a..1cf7ad7baedc 100644 --- a/AnkiDroid/src/main/res/values-yue/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-yue/03-dialogs.xml @@ -62,7 +62,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -208,10 +208,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-yue/10-preferences.xml b/AnkiDroid/src/main/res/values-yue/10-preferences.xml index 0b680887a4dd..0f0b55cad9c9 100644 --- a/AnkiDroid/src/main/res/values-yue/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-yue/10-preferences.xml @@ -295,8 +295,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-yue/17-model-manager.xml b/AnkiDroid/src/main/res/values-yue/17-model-manager.xml index 5fa571a5e4a9..c92fe77e4302 100644 --- a/AnkiDroid/src/main/res/values-yue/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-yue/17-model-manager.xml @@ -62,9 +62,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format 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 868b87ea7cf5..d7c8d646a7f6 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -183,7 +183,7 @@ 背景 选择图片 - Remove background + 删除背景 去除背景 恢复初始设置 @@ -229,7 +229,7 @@ 图片过大,请手动插入图像 视频文件太大,请手动插入视频 音频文件太大,请手动插入音频 - 正在进行 Android 备份。请重试 + Android backup in progress. Please try again 请使用 iManager 来允许 AnkiDroid 添加快捷方式 您的主屏幕不允许 AnkiDroid 添加快捷方式 添加快捷方式时出错:%s @@ -300,20 +300,14 @@ 浏览器选项 录音已保存 删除选定笔记 - 轻按声音来聆听 - - 使用声音前应先安装声音 - - 仍要使用 - + Tap a voice to listen + Voice should be installed before use + Use anyway 文本到语音错误(%s) - 互联网 - - 安装 - - 打开文本转语音设置失败 - + Internet + Install + Failed to open text to speech settings 请登录以下载更多牌组 描述 复制失败 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 c67726c1bf01..9b1b9875e5e5 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml @@ -62,7 +62,7 @@ 数据库错误 写入集合时出错。可能是数据库损坏,或者磁盘空间不足。\n\n如果频繁发生此错误,请检查数据库,修复集合或从备份中恢复。点击\"选项\"按钮以执行上述操作。\n\n当然,也可能只是 AnkiDroid 的 bug,请报告这个错误,我们会尽力解决。 报告错误 - 没有足够的可用存储空间来打开AnkiDroid。释放一些空间以继续。 + There is not enough free storage space to open AnkiDroid. Free up some space to continue. 确实要尝试修复数据库吗?\n\n在开始前,副本将保存在子目录“%s”里。 类别“默认”为空 向AnkiDroid中添加卡牌,需要删除所有NotePad类别,或者添加“默认(default)”类别。 @@ -208,10 +208,8 @@ 稍后 不再显示 数据丢失警告 - 由于 Android 隐私发生变化,如果应用被卸载,您的数据和自动备份将从您的手机中删除 - - 由于Android 隐私发生变化,如果应用被卸载,您的数据和自动备份将无法访问 - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled 牌组已存在 牌组名称不能为空 如果您有牌组排序问题 (例如“10”出现在“2”之前),用“02”替换“2” diff --git a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml index c787cfd8d38d..0472f05b7c7a 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml @@ -294,8 +294,7 @@ 开发者选项 启用开发者选项 禁用开发者选项 - 启用开发者选项之前,您需要知晓这些选项很危险,可能会破坏应用程序或损坏您的牌组。\n\n注意这些选项不适合大多数用户,因而没有翻译,所以它们仍以英语显示。 - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml b/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml index ffbcc241d21a..f992c15b5c2c 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml @@ -62,9 +62,9 @@ 您确定要删除此卡牌记录类型吗? 是否确定删除此字段? - 添加:%1$s + Add: %1$s - 克隆:%1$s + Clone: %1$s 请输入卡牌浏览器用于显示您卡牌的模板。用此来显示更简洁的答案。\n\n一个前置模板\n“{{Country}} 的首都是:”\n可以被卡牌浏览器压缩为\n“首都:{{Country}}” 问题格式 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 bad91e9755fb..9b2bf8d97327 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml @@ -229,7 +229,7 @@ 此圖像太大,無法貼上,請手動插入 影片太大,無法貼上,請手動插入 此音訊檔太大,無法貼上,請手動插入 - Android 備份進行中。請再試一次 + Android backup in progress. Please try again 你可能需要使用 iManager 以允許 Ankidroid 新增捷徑 您的主畫面不允許 AnkiDroid 新增捷徑 新增捷徑時發生錯誤:%s @@ -300,19 +300,14 @@ Browser options 錄音已儲存 刪除選取的筆記 - Tap a voice to listen - - 使用前應先安裝語音 - 無論如何都要使用 - + Tap a voice to listen + Voice should be installed before use + Use anyway 文字轉語音錯誤 (%s) - 網際網路 - - 安裝 - - 無法開啟文字轉語音設定 - + Internet + Install + Failed to open text to speech settings 請登錄以下載更多卡組 描述 複製失敗 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 f5c57449752b..c63b24beeeb0 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/03-dialogs.xml @@ -62,7 +62,7 @@ 資料庫錯誤 寫入資料庫時發生錯誤。可能是資料庫毀損或是記憶卡空間不足。\n\n如果這經常發生的話,請嘗試檢查資料庫,修復你的集合或從備份中還原。\n當然這也可能是 AnkiDroid 的程式錯誤,請回報錯誤讓我們知道。 回報錯誤 - 無足夠空閒儲存空間用於開啟 AnkiDroid。請清理儲存空間後繼續。 + There is not enough free storage space to open AnkiDroid. Free up some space to continue. 你真的想要修復資料庫嗎?\n\n在開始修復之前,會先複製一份備份檔案放置於資料夾\'%s\'中。 \'default\'類別是空的 若要增加新卡片至 AnkiDroid,刪除所有的記事本類別或新增一個 \'default\' 牌組 @@ -208,10 +208,8 @@ 稍後 不再顯示 資料遺失警告 - 由於 Android 隱私變更,你的資料和自動備份將在應用程式解除安裝時被刪除 - - 由於 Android 隱私變更,你的資料和自動備份將在應用程式解除安裝時不再可存取 - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled 牌組已存在 Deck name cannot be empty 如果你有牌組排序問題(例如“10”出現在“2”之前),用“02”替換“2”。 diff --git a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml index f8eb7698c2d6..a838eb0574a1 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml @@ -294,8 +294,7 @@ 開發人員選項 啟用開發人員選項 禁用開發人員選項 - 啟用開發者選項之前,您需要知曉這些選項很危險,可能會破壞應用程序或損壞您的牌組。 \n\n注意這些選項不適合大多數用戶,因而沒有翻譯,所以它們仍以英語顯示。 - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml b/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml index 90ea54eef6b2..8daea20fde67 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/17-model-manager.xml @@ -62,9 +62,9 @@ 是否希望刪除此筆記類型? 你確定要刪除此欄位嗎? - 新增:%1$s + Add: %1$s - 複製:%1$s + Clone: %1$s 輸入卡片瀏覽器將用於展示你的卡片的模板。以此顯示更簡潔的答案。\n\n一種正面模板\n“{{國家}}的首都是:”\n會被卡片瀏覽器壓縮為\n“首都:{{國家}}” 問題格式 diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml index d3c686c3bb2f..c2a6fe35b154 100644 --- a/AnkiDroid/src/main/res/values-zu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml @@ -233,7 +233,7 @@ 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 backup in progress. Please try again + Android backup in progress. Please try again You may need to use iManager to allow AnkiDroid to add shortcuts Your home screen does not allow AnkiDroid to add shortcuts Error adding shortcut: %s @@ -305,20 +305,14 @@ Browser options Recording saved Deleting selected notes - Tap a voice to listen - - Voice should be installed before use - - Use anyway - + Tap a voice to listen + Voice should be installed before use + Use anyway Text to speech error (%s) - Internet - - Install - - Failed to open text to speech settings - + Internet + Install + Failed to open text to speech settings Please log in to download more decks Description Failed to copy diff --git a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml index a90006f09ce1..5f136efb99fa 100644 --- a/AnkiDroid/src/main/res/values-zu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zu/03-dialogs.xml @@ -64,7 +64,7 @@ Database error Writing to the collection failed. The database could be corrupt or there may not to be enough empty space on disk.\n\nIf this happens more often, try checking the database, repairing the collection or restoring it from a backup. Touch “options” for that.\n\Or it could be an AnkiDroid bug as well; please report the error so that we can check this. Report error - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + There is not enough free storage space to open AnkiDroid. Free up some space to continue. Do you really want to try to repair the database?\n\nBefore starting the attempt, a copy will be created in subfolder “%s”. Category “default” is empty To add cards to AnkiDroid remove all Notepad categories or add one named “default” @@ -212,10 +212,8 @@ Later Don\'t show again Data loss warning - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled - + Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled + Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Deck already exists Deck name cannot be empty If you have deck ordering issues (e.g. ‘10’ appears before ‘2’), replace ‘2’ with ‘02’ diff --git a/AnkiDroid/src/main/res/values-zu/10-preferences.xml b/AnkiDroid/src/main/res/values-zu/10-preferences.xml index 29e92629b16c..2afb72668806 100644 --- a/AnkiDroid/src/main/res/values-zu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zu/10-preferences.xml @@ -297,8 +297,7 @@ Developer options Enable developer options Disable developer options - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. - + Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. diff --git a/AnkiDroid/src/main/res/values-zu/17-model-manager.xml b/AnkiDroid/src/main/res/values-zu/17-model-manager.xml index 6b89a122d404..eff2650b23bb 100644 --- a/AnkiDroid/src/main/res/values-zu/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zu/17-model-manager.xml @@ -64,9 +64,9 @@ Are you sure you wish to delete this note type? Are you sure you wish to delete this field? - Add: %1$s + Add: %1$s - Clone: %1$s + Clone: %1$s Enter the template that the card browser will use to display your cards. Use this to display a more concise answer.\n\nA front template of\n“The capital of {{Country}} is:”\ncould be compressed in the card browser to\n“Capital: {{Country}}” Question Format From cf684c5153f4827adf64af8c0c881979fa6311c7 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Thu, 6 Mar 2025 06:06:14 +0100 Subject: [PATCH 112/200] NF: Introduce `isPrefererenceViewSplit` While reviewing a PR, I found unclear why we checked whether the window is compact. Admittedly, figuring out it means that the view is split in two was not hard, still, I believe it's best to put it behind a more descriptive value. This also ensure that if we decide to change the criteria we use to decide whether to split or not, we will have to change a single place. --- .../java/com/ichi2/anki/preferences/HeaderFragment.kt | 10 +++++++++- .../java/com/ichi2/anki/preferences/Preferences.kt | 7 +++---- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt index e9a7b0584050..26b8c36cd4a1 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt @@ -66,7 +66,7 @@ class HeaderFragment : requirePreference(R.string.search_preference_key).searchConfiguration, ) - if (!resources.isWindowCompact()) { + if (settingsIsSplit) { parentFragmentManager.findFragmentById(R.id.settings_container)?.let { val key = getHeaderKeyForFragment(it) ?: return@let highlightPreference(key) @@ -192,3 +192,11 @@ class HeaderFragment : } } } + +/** + * Whether the Settings view is split in two. + * If so, the left side contains the list of all preference categories, and the right side contains the category currently opened. + * Otherwise, the same view is used to show the list of categories first, and then one specific category. + */ +val Fragment.settingsIsSplit + get() = !resources.isWindowCompact() diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/Preferences.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/Preferences.kt index 258ff3e2cc06..bac505d93862 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/Preferences.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/Preferences.kt @@ -40,7 +40,6 @@ import com.google.android.material.appbar.MaterialToolbar import com.ichi2.anki.R import com.ichi2.anki.SingleFragmentActivity import com.ichi2.anki.utils.ext.sharedPrefs -import com.ichi2.anki.utils.isWindowCompact import com.ichi2.utils.FragmentFactoryUtils import timber.log.Timber import kotlin.reflect.KClass @@ -53,7 +52,7 @@ class PreferencesFragment : private val onBackPressedCallback = object : OnBackPressedCallback(true) { override fun handleOnBackPressed() { - if (resources.isWindowCompact() && childFragmentManager.backStackEntryCount > 0) { + if (!settingsIsSplit && childFragmentManager.backStackEntryCount > 0) { childFragmentManager.popBackStack() } else { requireActivity().finish() @@ -156,13 +155,13 @@ class PreferencesFragment : val fragmentClassName = arguments?.getString(INITIAL_FRAGMENT_EXTRA) val initialFragment = if (fragmentClassName == null) { - if (resources.isWindowCompact()) HeaderFragment() else GeneralSettingsFragment() + if (!settingsIsSplit) HeaderFragment() else GeneralSettingsFragment() } else { FragmentFactoryUtils.instantiate(requireActivity(), fragmentClassName) } childFragmentManager.commit { // In big screens, show the headers fragment at the lateral navigation container - if (!resources.isWindowCompact()) { + if (settingsIsSplit) { replace(R.id.lateral_nav_container, HeaderFragment()) } replace(R.id.settings_container, initialFragment, initialFragment::class.java.name) From 5707cfcc9f40c92977fb89ff1b582d18db4a2a69 Mon Sep 17 00:00:00 2001 From: Spencer Poisseroux Date: Sat, 15 Mar 2025 00:40:29 -0400 Subject: [PATCH 113/200] test(preferences): add unit tests for getOrSetLong logic - Verify existing Long preference retrieval - Test new Long value persistence - Handle negative/zero edge cases --- .../preferences/PreferenceExtensionsTest.kt | 44 ++++++++++++++++++- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/AnkiDroid/src/test/java/com/ichi2/preferences/PreferenceExtensionsTest.kt b/AnkiDroid/src/test/java/com/ichi2/preferences/PreferenceExtensionsTest.kt index 1028e2cf85dd..810dea1170f8 100644 --- a/AnkiDroid/src/test/java/com/ichi2/preferences/PreferenceExtensionsTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/preferences/PreferenceExtensionsTest.kt @@ -40,6 +40,13 @@ class PreferenceExtensionsTest { supplier: Supplier, ): String = mockPreferences.getOrSetString(key, supplier) + private fun getOrSetLong( + key: String, + supplier: Supplier, + ): Long = mockPreferences.getOrSetLong(key, supplier) + + // String Tests + @Test fun existingKeyReturnsMappedValue() { val ret = getOrSetString(VALID_KEY, UNUSED_SUPPLIER) @@ -69,16 +76,49 @@ class PreferenceExtensionsTest { getOrSetString(MISSING_KEY, EXCEPTION_SUPPLIER) } + // Long Tests + + @Test + fun existingLongKeyReturnsStoredValue() { + mockPreferences.edit { putLong(LONG_VALID_KEY, LONG_VALID_VALUE) } + val result = getOrSetLong(LONG_VALID_KEY, LONG_UNUSED_SUPPLIER) + assertEquals(LONG_VALID_VALUE, result) + } + + @Test + fun missingLongKeyPersistsValue() { + getOrSetLong(LONG_MISSING_KEY) { LONG_LAMBDA_VALUE } + assertEquals(LONG_LAMBDA_VALUE, mockPreferences.getLong(LONG_MISSING_KEY, -1)) + } + + @Test + fun handlesNegativeLongValue() { + getOrSetLong(NEGATIVE_TEST_KEY) { LONG_NEGATIVE_VALUE } + assertEquals(LONG_NEGATIVE_VALUE, mockPreferences.getLong(NEGATIVE_TEST_KEY, 0)) + } + private class ExpectedException : RuntimeException() private class UnexpectedException : RuntimeException() companion object { - private val UNUSED_SUPPLIER = Supplier { throw UnexpectedException() } - private val EXCEPTION_SUPPLIER = Supplier { throw ExpectedException() } + // String constants private const val VALID_KEY = "VALID" private const val VALID_RESULT = "WAS VALID KEY" private const val MISSING_KEY = "INVALID" private const val LAMBDA_RETURN = "LAMBDA" + + // Long constants + private const val LONG_VALID_KEY = "LONG_VALID" + private const val LONG_VALID_VALUE = 42L + private const val LONG_MISSING_KEY = "LONG_INVALID" + private const val LONG_LAMBDA_VALUE = 100L + private const val LONG_NEGATIVE_VALUE = -500L + private const val NEGATIVE_TEST_KEY = "negative_test" + + // Suppliers + private val UNUSED_SUPPLIER = Supplier { throw UnexpectedException() } + private val EXCEPTION_SUPPLIER = Supplier { throw ExpectedException() } + private val LONG_UNUSED_SUPPLIER = Supplier { throw UnexpectedException() } } } From 6e94f812a66299ecaf6add3224444213aa45ab4e Mon Sep 17 00:00:00 2001 From: Akshit517 Date: Tue, 25 Feb 2025 05:21:59 +0530 Subject: [PATCH 114/200] fix(pre-commit-hook): update pre-commit hook to correctly unstaged file --- pre-commit | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pre-commit b/pre-commit index 42d8e7221246..dda1358c407a 100755 --- a/pre-commit +++ b/pre-commit @@ -43,11 +43,13 @@ runKtlint () { if [ -s $diff_path ]; then git apply --ignore-whitespace $diff_path apply_exit_code=$? - if [apply_exit_code -ne 0]; then + if [ $apply_exit_code -ne 0 ]; then echo "`git apply` failed. You can find a patch of the version of the code before your `git commit` in $diff_path" else rm $diff_path fi + else + rm $diff_path fi unset diff_path From b8066dca32da0fc6c3de98d39bd115e92fddf4ce Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Sun, 16 Mar 2025 16:11:13 +0100 Subject: [PATCH 115/200] NF: rename `modelId` key to `noteTypeId` As this key is used inside the app and not to save any data, it's safe to change it --- .../java/com/ichi2/anki/CardTemplateEditor.kt | 8 ++++---- .../main/java/com/ichi2/anki/NoteEditor.kt | 4 ++-- .../ichi2/anki/notetype/ManageNotetypes.kt | 2 +- .../com/ichi2/anki/CardTemplateEditorTest.kt | 20 +++++++++---------- .../java/com/ichi2/testutils/ActivityList.kt | 2 +- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt index 6aa835bceb84..a8f52ef2f896 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt @@ -170,7 +170,7 @@ open class CardTemplateEditor : // Load the args either from the intent or savedInstanceState bundle if (savedInstanceState == null) { // get model id - modelId = intent.getLongExtra(EDITOR_MODEL_ID, NOT_FOUND_NOTE_TYPE) + modelId = intent.getLongExtra(EDITOR_NOTE_TYPE_ID, NOT_FOUND_NOTE_TYPE) if (modelId == NOT_FOUND_NOTE_TYPE) { Timber.e("CardTemplateEditor :: no model ID was provided") finish() @@ -183,7 +183,7 @@ open class CardTemplateEditor : tabToCursorPosition[0] = 0 tabToViewId[0] = R.id.front_edit } else { - modelId = savedInstanceState.getLong(EDITOR_MODEL_ID) + modelId = savedInstanceState.getLong(EDITOR_NOTE_TYPE_ID) noteId = savedInstanceState.getLong(EDITOR_NOTE_ID) startingOrdId = savedInstanceState.getInt(EDITOR_START_ORD_ID) tabToCursorPosition = savedInstanceState.getSerializableCompat>(TAB_TO_CURSOR_POSITION_KEY)!! @@ -244,7 +244,7 @@ open class CardTemplateEditor : public override fun onSaveInstanceState(outState: Bundle) { with(outState) { tempModel?.let { putAll(it.toBundle()) } - putLong(EDITOR_MODEL_ID, modelId) + putLong(EDITOR_NOTE_TYPE_ID, modelId) putLong(EDITOR_NOTE_ID, noteId) putInt(EDITOR_START_ORD_ID, startingOrdId) putSerializable(TAB_TO_VIEW_ID, tabToViewId) @@ -1394,7 +1394,7 @@ open class CardTemplateEditor : private const val TAB_TO_CURSOR_POSITION_KEY = "tabToCursorPosition" private const val EDITOR_VIEW_ID_KEY = "editorViewId" private const val TAB_TO_VIEW_ID = "tabToViewId" - private const val EDITOR_MODEL_ID = "modelId" + private const val EDITOR_NOTE_TYPE_ID = "noteTypeId" private const val EDITOR_NOTE_ID = "noteId" private const val EDITOR_START_ORD_ID = "ordId" private const val CARD_INDEX = "card_ord" diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt index c5c1aedde86a..28eec339fc11 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt @@ -1638,10 +1638,10 @@ class NoteEditor : private fun showCardTemplateEditor() { val intent = Intent(requireContext(), CardTemplateEditor::class.java) // Pass the model ID - intent.putExtra("modelId", currentlySelectedNotetype!!.id) + intent.putExtra("noteTypeId", currentlySelectedNotetype!!.id) Timber.d( "showCardTemplateEditor() for model %s", - intent.getLongExtra("modelId", NOT_FOUND_NOTE_TYPE), + intent.getLongExtra("noteTypeId", NOT_FOUND_NOTE_TYPE), ) // Also pass the note id and ord if not adding new note if (!addNote && currentEditedCard != null) { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/notetype/ManageNotetypes.kt b/AnkiDroid/src/main/java/com/ichi2/anki/notetype/ManageNotetypes.kt index 0ae59b3dd810..7565e7399ea6 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/notetype/ManageNotetypes.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/notetype/ManageNotetypes.kt @@ -73,7 +73,7 @@ class ManageNotetypes : AnkiActivity() { ), ) }, - onEditCards = { launchForChanges(mapOf("modelId" to it.id)) }, + onEditCards = { launchForChanges(mapOf("noteTypeId" to it.id)) }, onRename = ::renameNotetype, onDelete = ::deleteNotetype, ) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardTemplateEditorTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardTemplateEditorTest.kt index 6f0d920993e8..c07a01ed24ae 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardTemplateEditorTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardTemplateEditorTest.kt @@ -54,7 +54,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged val collectionBasicModelOriginal = getCurrentDatabaseModelCopy(modelName) val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.getLong("id")) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.getLong("id")) var templateEditorController = Robolectric .buildActivity(CardTemplateEditor::class.java, intent) @@ -174,7 +174,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged val collectionBasicModelOriginal = getCurrentDatabaseModelCopy(modelName) val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.getLong("id")) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.getLong("id")) val templateEditorController = Robolectric .buildActivity(CardTemplateEditor::class.java, intent) @@ -235,7 +235,7 @@ class CardTemplateEditorTest : RobolectricTest() { val modelName = "Basic" val collectionBasicModelOriginal = getCurrentDatabaseModelCopy(modelName) val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.getLong("id")) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.getLong("id")) val templateEditorController = Robolectric .buildActivity(CardTemplateEditor::class.java, intent) @@ -313,7 +313,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.getLong("id")) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.getLong("id")) val templateEditorController = Robolectric .buildActivity( @@ -413,7 +413,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged var intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.getLong("id")) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.getLong("id")) var templateEditorController = Robolectric .buildActivity( @@ -480,7 +480,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor back up after saving (which closes the thing...) intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.id) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.id) templateEditorController = Robolectric .buildActivity(CardTemplateEditor::class.java, intent) @@ -596,7 +596,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.id) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.id) val templateEditorController = Robolectric .buildActivity( @@ -694,7 +694,7 @@ class CardTemplateEditorTest : RobolectricTest() { val modelName = "Basic (optional reversed card)" val model = getCurrentDatabaseModelCopy(modelName) val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", model.id) + intent.putExtra("noteTypeId", model.id) val editor = super.startActivityNormallyOpenCollectionWithIntent(CardTemplateEditor::class.java, intent) val template = editor.tempModel?.getTemplate(0) MatcherAssert.assertThat("Deck ID element should exist", template?.jsonObject?.has("did"), Matchers.equalTo(true)) @@ -713,7 +713,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged val collectionBasicModelOriginal = getCurrentDatabaseModelCopy(modelName) val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.getLong("id")) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.getLong("id")) val templateEditorController = Robolectric .buildActivity(CardTemplateEditor::class.java, intent) @@ -752,7 +752,7 @@ class CardTemplateEditorTest : RobolectricTest() { // Start the CardTemplateEditor with a specific model, and make sure the model starts unchanged val collectionBasicModelOriginal = getCurrentDatabaseModelCopy(modelName) val intent = Intent(Intent.ACTION_VIEW) - intent.putExtra("modelId", collectionBasicModelOriginal.id) + intent.putExtra("noteTypeId", collectionBasicModelOriginal.id) val templateEditorController = Robolectric .buildActivity(CardTemplateEditor::class.java, intent) diff --git a/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt b/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt index 710522c07a70..41b27315c4fc 100644 --- a/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt +++ b/AnkiDroid/src/test/java/com/ichi2/testutils/ActivityList.kt @@ -103,7 +103,7 @@ object ActivityList { } } - private fun intentForCardTemplateEditor(): Intent = Intent().apply { putExtra("modelId", 1L) } + private fun intentForCardTemplateEditor(): Intent = Intent().apply { putExtra("noteTypeId", 1L) } class ActivityLaunchParam( var activity: Class, From 1a0e346040805b90399c5b845565a277dcfb0ac8 Mon Sep 17 00:00:00 2001 From: Pankajkumar2608 Date: Sun, 9 Mar 2025 15:45:19 +0530 Subject: [PATCH 116/200] Settings search contains the external context menu keys They were not found by the search feature because it only index the title and summaries set in the XML document. --- .../ichi2/anki/preferences/HeaderFragment.kt | 22 +++++++++++++++++++ .../src/main/res/values/10-preferences.xml | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt index 26b8c36cd4a1..2afb0869d8bc 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/preferences/HeaderFragment.kt @@ -135,6 +135,28 @@ class HeaderFragment : .withResId(R.xml.preferences_controls) .addBreadcrumb(activity.getString(R.string.pref_cat_controls)) .addBreadcrumb(setDuePreferenceTitle) + // Some strings can't be indexed from the XML document as they are loaded from the back-end. We add them manually. + indexItem() + .withKey(activity.getString(R.string.anki_card_external_context_menu_key)) + .withTitle( + activity.getString( + R.string.card_browser_enable_external_context_menu, + activity.getString(R.string.context_menu_anki_card_label), + ), + ).withResId(R.xml.preferences_general) + .addBreadcrumb(activity.getString(R.string.pref_cat_general)) + .addBreadcrumb(activity.getString(R.string.pref_cat_system_wide)) + + indexItem() + .withKey(activity.getString(R.string.card_browser_external_context_menu_key)) + .withTitle( + activity.getString( + R.string.card_browser_enable_external_context_menu, + activity.getString(R.string.card_browser_context_menu), + ), + ).withResId(R.xml.preferences_general) + .addBreadcrumb(activity.getString(R.string.pref_cat_general)) + .addBreadcrumb(activity.getString(R.string.pref_cat_system_wide)) } // Some preferences and categories are only shown conditionally, diff --git a/AnkiDroid/src/main/res/values/10-preferences.xml b/AnkiDroid/src/main/res/values/10-preferences.xml index 06296acd16ca..6631a7677d09 100644 --- a/AnkiDroid/src/main/res/values/10-preferences.xml +++ b/AnkiDroid/src/main/res/values/10-preferences.xml @@ -94,7 +94,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader From 8aefbc3fc6689dfb05d5ac979a55cfc195388461 Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Sun, 16 Mar 2025 19:01:55 +0000 Subject: [PATCH 117/200] Updated strings from Crowdin --- .../src/main/res/values-cs/02-strings.xml | 4 ++-- .../src/main/res/values-cs/06-statistics.xml | 2 +- AnkiDroid/src/main/res/values-da/01-core.xml | 4 ++-- AnkiDroid/src/main/res/values-de/01-core.xml | 2 +- .../src/main/res/values-de/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-fa/01-core.xml | 2 +- AnkiDroid/src/main/res/values-ga/01-core.xml | 6 ++--- .../src/main/res/values-ga/03-dialogs.xml | 4 ++-- AnkiDroid/src/main/res/values-gu/01-core.xml | 4 ++-- AnkiDroid/src/main/res/values-hi/01-core.xml | 2 +- .../src/main/res/values-hu/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-ka/01-core.xml | 2 +- AnkiDroid/src/main/res/values-kn/01-core.xml | 24 +++++++++---------- AnkiDroid/src/main/res/values-ml/01-core.xml | 2 +- AnkiDroid/src/main/res/values-mr/01-core.xml | 2 +- .../src/main/res/values-or/02-strings.xml | 2 +- .../src/main/res/values-pt-rPT/02-strings.xml | 12 +++++----- .../src/main/res/values-pt-rPT/03-dialogs.xml | 6 ++--- .../main/res/values-pt-rPT/10-preferences.xml | 2 +- .../res/values-pt-rPT/17-model-manager.xml | 4 ++-- AnkiDroid/src/main/res/values-sat/01-core.xml | 4 ++-- .../src/main/res/values-sat/02-strings.xml | 4 ++-- AnkiDroid/src/main/res/values-ta/01-core.xml | 2 +- AnkiDroid/src/main/res/values-te/01-core.xml | 4 ++-- AnkiDroid/src/main/res/values-tg/01-core.xml | 2 +- .../src/main/res/values-tr/02-strings.xml | 2 +- .../src/main/res/values-tr/03-dialogs.xml | 2 +- AnkiDroid/src/main/res/values-tt/01-core.xml | 2 +- AnkiDroid/src/main/res/values-ur/01-core.xml | 2 +- .../src/main/res/values-zh-rCN/02-strings.xml | 14 +++++------ .../src/main/res/values-zh-rCN/03-dialogs.xml | 6 ++--- .../main/res/values-zh-rCN/10-preferences.xml | 2 +- .../res/values-zh-rCN/17-model-manager.xml | 4 ++-- .../src/main/res/values-zh-rTW/01-core.xml | 4 ++-- 34 files changed, 72 insertions(+), 72 deletions(-) diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index 6528744fb89c..e2d8992cf4da 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -89,8 +89,8 @@ +%d přeskočené +%d přeskočených - Total new cards - Total cards + Všechny nové kartičky + Všechny karty Upravit poznámku Zahodit diff --git a/AnkiDroid/src/main/res/values-cs/06-statistics.xml b/AnkiDroid/src/main/res/values-cs/06-statistics.xml index a50118f626c8..a92f88bf7059 100644 --- a/AnkiDroid/src/main/res/values-cs/06-statistics.xml +++ b/AnkiDroid/src/main/res/values-cs/06-statistics.xml @@ -44,5 +44,5 @@ ~ this program. If not, see . --> - Open statistics + Otevřít statistiku diff --git a/AnkiDroid/src/main/res/values-da/01-core.xml b/AnkiDroid/src/main/res/values-da/01-core.xml index ae6c67b35a54..c9df8b8d760a 100644 --- a/AnkiDroid/src/main/res/values-da/01-core.xml +++ b/AnkiDroid/src/main/res/values-da/01-core.xml @@ -134,10 +134,10 @@ Ingen kort i kø Enhedslagring er ikke tilkoblet Synkroniser - Vil du annullere synkroniseringen? + Vil du annullere synkroniseringen? Fortsæt synkronisering Synkronisering annulleret - Annullerer…\nDette kan tage et stykke tid. + Annullerer…\nDette kan tage et stykke tid. Synkroniserer medier Eksportér stak Eksportér samling diff --git a/AnkiDroid/src/main/res/values-de/01-core.xml b/AnkiDroid/src/main/res/values-de/01-core.xml index 3977f2a32a60..60ad9fb73335 100644 --- a/AnkiDroid/src/main/res/values-de/01-core.xml +++ b/AnkiDroid/src/main/res/values-de/01-core.xml @@ -137,7 +137,7 @@ Wollen Sie die Synchronisation abbrechen? Synchronisierung fortsetzen Synchronisation abgebrochen - Breche ab…\nDies kann einige Zeit dauern. + Breche ab …\nDies kann einige Zeit dauern. Synchronisiere Medien Stapel exportieren Sammlung exportieren diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index 722c6b00b582..9a5086c241c2 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -274,7 +274,7 @@ Suche lieferte keine Ergebnisse %s ist kein gültiges JavaScript-Erweiterungspaket. - Verzeichnis %s konnte nicht erstellt werden + Verzeichnis %s konnte nicht erstellt werden Schädliches Archiv. Enthält Eintrag außerhalb des Zielverzeichnisses: %s Schädliches Archiv. Größe überschreitet %1$s oder enthält mehr als %2$d Dateien Datei-Extrahierung überschreitet Speicherplatz diff --git a/AnkiDroid/src/main/res/values-fa/01-core.xml b/AnkiDroid/src/main/res/values-fa/01-core.xml index fdf4db46560f..70f9fdd7abd3 100644 --- a/AnkiDroid/src/main/res/values-fa/01-core.xml +++ b/AnkiDroid/src/main/res/values-fa/01-core.xml @@ -125,7 +125,7 @@ درحال تخلیه دسته‌ی کارت فیلتر شده… جلسه مطالعه سفارشی لطفا ابتدا دسته مطالعه سفارشی موجود را مجددا نام گذاری کنید. - جستجوی دسته‌ها + جستجوی دسته‌ها این دسته خالی است جستجوی دسته‌ها نام دسته نامعتبر است diff --git a/AnkiDroid/src/main/res/values-ga/01-core.xml b/AnkiDroid/src/main/res/values-ga/01-core.xml index 8fb858336fc2..604d5d4449c9 100644 --- a/AnkiDroid/src/main/res/values-ga/01-core.xml +++ b/AnkiDroid/src/main/res/values-ga/01-core.xml @@ -81,9 +81,9 @@ Start adding cards\nusing the + icon. - Clóscríobh freagra + Clóscríobh freagra Taispeáin freagra - Cuir freagra i bhfolach + Cuir freagra i bhfolach Arís Deacair Maith @@ -128,7 +128,7 @@ of the permissions/app info screen will differ between devices. --> Please grant AnkiDroid the ‘Storage’ permission to continue Rebuilding filtered deck… - Tóg arís + Tóg arís Folamh Create subdeck Emptying filtered deck… diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml index 047f51bc6ad6..02a1db1c03ab 100644 --- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml @@ -56,10 +56,10 @@ Delete all cards in %1$s? It contains %2$d cards Delete filtered deck %s and send all cards back to their original decks? - Níl TTS ar fáil sa teanga seo + Níl TTS ar fáil sa teanga seo Teanga ar bith Ní féidir ach cártaí nua a athlonnú - Glan stair an chárta maidir le do dhul ar aghaidh? + Glan stair an chárta maidir le do dhul ar aghaidh? %d card reset %d cards reset diff --git a/AnkiDroid/src/main/res/values-gu/01-core.xml b/AnkiDroid/src/main/res/values-gu/01-core.xml index 6c175e4f450d..ca2faeedd0a5 100644 --- a/AnkiDroid/src/main/res/values-gu/01-core.xml +++ b/AnkiDroid/src/main/res/values-gu/01-core.xml @@ -85,7 +85,7 @@ સ્ટ્રોક પૂર્વવત્ કરો બધી થપ્પી ખસેડી પાછું લાવો - થપ્પીનું નામ બદલો + થપ્પીનું નામ બદલો ટૂંકો રસ્તો બનાવો કાર્ડસ જોવો વર્ણન સંપાદિત કરો @@ -103,7 +103,7 @@ ધ્વજ ફ્લેગોનું નામ બદલો કાર્ડને ચિહ્નિત કરો - ચિહ્નો બદલો + ચિહ્નો બદલો આ નોંધ અને તેના તમામ કાડઁ ખરેખર કાઢી નાખીએ ?\n%s %1$s માં જુઓ નોંધ ચિહ્નિત કરો diff --git a/AnkiDroid/src/main/res/values-hi/01-core.xml b/AnkiDroid/src/main/res/values-hi/01-core.xml index 47ac4ce7ff09..53ea6267643e 100644 --- a/AnkiDroid/src/main/res/values-hi/01-core.xml +++ b/AnkiDroid/src/main/res/values-hi/01-core.xml @@ -86,7 +86,7 @@ सभी को डेक में ले जाएं वापस लौंटे डेक का नाम बदलें - क्षुद्र मार्ग बनाएँ + क्षुद्र मार्ग बनाएँ कार्ड ढुंढे संपादित करें] वर्णन जोड़ें diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index 38c27b9cfe7f..2a2db7ee8081 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -286,7 +286,7 @@ Add a new note type Tanulj kevesebbet - Jegyezz meg többet + Jegyezz meg többet Az Anki kártyatervező időt spórol: megerősíti a leggyengébb emlékeidet, és megőrzi a legerősebbeket. Kezdj hozzá Szinkronizálás AnkiWebről diff --git a/AnkiDroid/src/main/res/values-ka/01-core.xml b/AnkiDroid/src/main/res/values-ka/01-core.xml index d550be56a871..1fd9f5019ed5 100644 --- a/AnkiDroid/src/main/res/values-ka/01-core.xml +++ b/AnkiDroid/src/main/res/values-ka/01-core.xml @@ -177,7 +177,7 @@ AnkiDroid Ankiweb ჩავანაცვლოთ თქვენი კოლექცია Ankidroid-ზე თქვენი AnkiWeb-ის კოლექციით? - ჩანაცვლდეს თქვენი კოლექცია AnkiWeb-ზე თქვენი AnkiDroid-ის კოლექციით? + ჩანაცვლდეს თქვენი კოლექცია AnkiWeb-ზე თქვენი AnkiDroid-ის კოლექციით? აირჩიეთ კოლექცია რომ დარჩეს კოლექციის ჩანაცვლება diff --git a/AnkiDroid/src/main/res/values-kn/01-core.xml b/AnkiDroid/src/main/res/values-kn/01-core.xml index 03e6aaee1a8c..15135556085f 100644 --- a/AnkiDroid/src/main/res/values-kn/01-core.xml +++ b/AnkiDroid/src/main/res/values-kn/01-core.xml @@ -46,15 +46,15 @@ ಡೆಕ್ಸ್ - ಕಾರ್ಡ್ ಬ್ರೌಸರ್ - ಅಂಕಿಅಂಶಗಳು + ಕಾರ್ಡ್ ಬ್ರೌಸರ್ + ಅಂಕಿಅಂಶಗಳು ಸೆಟ್ಟಿಂಗ್‍ಗಳು - ಸಹಾಯ + ಸಹಾಯ ಚಿತ್ರ - ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ - ಅಧ್ಯಯನ + ಪ್ರತಿಕ್ರಿಯೆ ಕಳುಹಿಸಿ + ಅಧ್ಯಯನ - ವಿಸ್ತರಿಸಿ + ವಿಸ್ತರಿಸಿ ಬೀಳಿಸಿ %d ನಿಮಿಷಗಳು ಉಳಿದಿವೆ @@ -68,17 +68,17 @@ %1$d day %2$dh left %1$d days %2$dh left - ಸಂಗ್ರಹ ಖಾಲಿಯಾಗಿದೆ + ಸಂಗ್ರಹ ಖಾಲಿಯಾಗಿದೆ ಕಾರ್ಡ್‌ಗಳನ್ನು ಸೇರಿಸಲು ಪ್ರಾರಂಭಿಸಿ \n + ಐಕಾನ್ ಬಳಸಿ ಉತ್ತರವನ್ನು ಟೈಪ್ ಮಾಡಿ - ಉತ್ತರ ತೋರಿಸು - ಉತ್ತರವನ್ನು ಮರೆಮಾಡಿ - ಮತ್ತೆ + ಉತ್ತರ ತೋರಿಸು + ಉತ್ತರವನ್ನು ಮರೆಮಾಡಿ + ಮತ್ತೆ ಕಠಿಣ - ಒಳ್ಳೆಯದು - ಸುಲಭ + ಒಳ್ಳೆಯದು + ಸುಲಭ ಇಂಪೋರ್ಟ್ ರದ್ದು ಮತ್ತೆ ಮಾಡು diff --git a/AnkiDroid/src/main/res/values-ml/01-core.xml b/AnkiDroid/src/main/res/values-ml/01-core.xml index 01f9178fb802..d9e9cb1424ca 100644 --- a/AnkiDroid/src/main/res/values-ml/01-core.xml +++ b/AnkiDroid/src/main/res/values-ml/01-core.xml @@ -84,7 +84,7 @@ വീണ്ടും ചെയ്യുക സ്ട്രോക്ക് പഴയപടിയാക്കുക എല്ലാം ഡെക്കിലേക്ക് നീക്കുക - അൺബറി + അൺബറി ഡെക്കിന്റെ പേരുമാറ്റുക കുറുക്കുവഴി സൃഷ്ടിക്കുക കാർഡുകൾ ബ്രൗസ് ചെയ്യുക diff --git a/AnkiDroid/src/main/res/values-mr/01-core.xml b/AnkiDroid/src/main/res/values-mr/01-core.xml index 64a7d524cf3b..b122001dc9ba 100644 --- a/AnkiDroid/src/main/res/values-mr/01-core.xml +++ b/AnkiDroid/src/main/res/values-mr/01-core.xml @@ -178,7 +178,7 @@ एन्कीवेब तुमचा एंकिवेब वरील संग्रह पुर्नस्तीत करा एंकिड्रॉइड वर. AnkiWeb वरील तुमचा संग्रह AnkiDroid वरील तुमच्या संग्रहाने बदलायचा? - संग्रहाला निवडा ठेवण्यासाठी + संग्रहाला निवडा ठेवण्यासाठी संग्रह पून्हास्तित करा फाइलवर लिहू किंवा तयार करू शकत नाही %s diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index 497361a608e1..b46d46cb6e01 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -168,7 +168,7 @@ ସାଧାରଣ କାର୍ଯ୍ୟସୂଚୀ ବାହାରେ ଅଧ୍ୟୟନ ପାଇଁ ଏହା ଏକ ସ୍ୱତନ୍ତ୍ର ତାସଖଣ୍ଡ। ଆପଣ ସମୀକ୍ଷା କରିବା ପରେ ପତ୍ରଗୁଡ଼ିକ ଆପେ ସେଗୁଡ଼ିକର ମୂଳ ତାସଖଣ୍ଡକୁ ଫେରି ଆସିବେ। ତାସଖଣ୍ଡ ତାଲିକାରୁ ଏହି ତାସଖଣ୍ଡ ବିଲୋପ କରିବା ସମସ୍ତ ଅବଶିଷ୍ଟ ପତ୍ରଗୁଡ଼ିକୁ ସେମାନଙ୍କର ମୂଳ ତାସଖଣ୍ଡକୁ ଫେରାଇବ। ପାହୁଣ୍ଡଟି ୦ ଠାରୁ ବଡ଼ ସଂଖ୍ୟା ହେବା ଜରୁରୀ ଅତି କମରେ ୧ଟିଏ ପାହୁଣ୍ଡ ଆଵଶ୍ୟକ - “%1$s” କୁ ଯୋଡ଼ିବା ପାଇଁ “%2$s” ଦବାନ୍ତୁ + “%1$s” କୁ ଯୋଡ଼ିବା ପାଇଁ “%2$s” ଦବାନ୍ତୁ ଵିଦ୍ୟମାନ ଟ୍ୟାଗ୍ “%1$s” ଚୟନ କରାଯାଇଛି ଆଜି ଅଧ୍ୟୟନ କରିବାକୁ ଭୁଲନ୍ତୁ ନାହିଁ! 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 2d3abf2ba9f5..6147e005271f 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -233,7 +233,7 @@ A imagem é demasiado grande, por favor insira-a manualmente. O vídeo é demasiado grande, por favor insira-o manualmente. O ficheiro de áudio é demasiado grande, por favor insira-o manualmente. - Android backup in progress. Please try again + Cópia de segurança em progresso. Por favor, tente de novo. Pode precisar de utilizar o iManager para permitir que o AnkiDroid adicione atalhos. O seu ecrã de início não permite que o AnkiDroid adicione atalhos. Erro ao adicionar atalho: %s @@ -305,14 +305,14 @@ Opções de Explorador Gravação guardada Apagar as notas selecionadas - Tap a voice to listen - Voice should be installed before use - Use anyway + Toque numa voz para a ouvir. + Deve instalar uma voz antes de a poder utilizar. + Utilizar de qualquer forma. Erro na conversão de texto para voz (%s) Internet - Install - Failed to open text to speech settings + Instalar + Não foi possível abrir as definições relativas à conversão de texto para voz. Por favor, inicie sessão para transferir mais baralhos Descrição Falha ao copiar 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 5d3cc41cfeb7..8e58972735b6 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/03-dialogs.xml @@ -64,7 +64,7 @@ Erro na base de dados Falha ao gravar na colecção. A base de dados pode estar corrompida ou pode não haver espaço suficiente no disco.\n\nSe isto acontecer frequentemente, tente \"Verificar a Base de Dados\", \"Reparar a Colecção\", ou \"Restaurar uma Cópia de Segurança\". Toque em \"opções\" para realizar uma destas acções.\n\nOu então pode ser um erro no AnkiDroid, reporte-o para que possa ser analisado. Comunicar erro - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + Não há espaço de armazenamento suficiente para abrir o AnkiDroid. Liberte algum espaço para poder continuar. Realmente deseja tentar reparar a base de dados?\n\nAntes de iniciar a tentativa, será criada uma cópia na subpasta \'%s\'. A categoria \'predefinida\' está vazia Para adicionar fichas na AnkiDroid remova todas as categorias de notas ou adicione uma com o nome \'predefinida\' @@ -212,8 +212,8 @@ Mais tarde Não mostrar novamente Aviso de Perda de Dados - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled + Dadas as alterações às definições de privacidade do Android, os seus dados e cópias de segurança serão apagados do seu telemóvel, se desinstalar a aplicação. + Dadas as alterações às definições de privacidade do Android, os seus dados e cópias de segurança serão inacessíveis se desinstalar a aplicação. Este baralho já existe O nome do baralho não pode estar vazio Se tem problemas de ordenação com o seu baralho (e.g. o ‘10’ aparece antes do ‘2’), substitua o ‘2’ por ‘02’ 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 df2da8be351e..55810d8247fe 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml @@ -297,7 +297,7 @@ Opções de programador Ativar as opções de programador Desativar opções do desenvolvedor - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. + Tenha a certeza antes de activar as opções de programador. Estas opções são perigosas e podem impedir o correcto funcionamento da aplicação ou a corrupção da sua colecção.\n\nRepare que estas opções não são adequadas para a maioria dos utilizadores e, por isso, não foram traduzidas do inglês. diff --git a/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml b/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml index 95b99fca8e7f..dc80c2404a4b 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/17-model-manager.xml @@ -64,9 +64,9 @@ Tem a certeza que quer apagar este tipo de nota? Tem a certeza que pretende eliminar este campo? - Add: %1$s + Adicionar: %1$s - Clone: %1$s + Clonar: %1$s Introduza o modelo que vai ser utilizado para apresentar as suas fichas. Utilize isto para apresentar uma resposta mais concisa.\n\nUm modelo para a frente da ficha\n\"A capital do {{país}} é:\"\npode ser reduzida para\n\"Capital: {{País}}\" Formato de Pergunta diff --git a/AnkiDroid/src/main/res/values-sat/01-core.xml b/AnkiDroid/src/main/res/values-sat/01-core.xml index d324fb9d0863..64bd00a34917 100644 --- a/AnkiDroid/src/main/res/values-sat/01-core.xml +++ b/AnkiDroid/src/main/res/values-sat/01-core.xml @@ -107,7 +107,7 @@ ᱱᱚᱛᱴ ᱥᱟᱞᱟᱜ ᱛᱮ ᱡᱷᱚᱛᱚ ᱠᱟᱰ ᱨᱮᱭᱟᱜ ᱡᱤᱱᱥᱚ ᱠᱚ ᱜᱮᱫ ᱜᱤᱰᱤᱭᱟ ᱥᱮ?\n%s %1$s ᱨᱮ ᱧᱮᱞ ᱵᱤᱰᱟᱣ ᱢᱮ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱪᱤᱱᱦᱟᱹᱭ ᱢᱮ - ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱚ-ᱪᱤᱱᱦᱟᱹᱭ ᱢᱮ + ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱚ-ᱪᱤᱱᱦᱟᱹᱭ ᱢᱮ ᱥᱮᱨᱮᱧ ᱯᱷᱟᱭᱞᱟᱣ ᱮᱱᱮᱡ ᱥᱮᱨᱮᱧ ᱯᱷᱟᱭᱞᱟᱣ ᱵᱚᱫᱚᱞ ᱱᱟᱶᱟ ᱰᱮᱠ ᱛᱮᱭᱟᱨ ᱢᱮ @@ -151,7 +151,7 @@ ᱰᱮᱠ ᱠᱟᱰ ᱢᱮ ᱡᱟᱭᱜᱟ ᱠᱷᱚᱧᱡᱟᱭ ᱢᱮ ᱴᱷᱟᱶ ᱵᱟᱪᱷᱟᱣ ᱢᱮ - ᱠᱚᱢ ᱥᱮ ᱠᱚᱢ ᱢᱤᱫ ᱯᱨᱚᱠᱟᱨ ᱨᱮᱭᱟᱜ ᱠᱟᱰ ᱫᱚᱨᱠᱟᱨ ᱠᱟᱱᱟ + ᱠᱚᱢ ᱥᱮ ᱠᱚᱢ ᱢᱤᱫ ᱯᱨᱚᱠᱟᱨ ᱨᱮᱭᱟᱜ ᱠᱟᱰ ᱫᱚᱨᱠᱟᱨ ᱠᱟᱱᱟ ᱱᱚᱣᱟ %1$dᱜᱚᱴᱟᱝ ᱠᱟᱰ ᱥᱤᱨᱡᱟᱹᱣ ᱟ । ᱞᱟᱦᱟᱜ ᱟᱢ? ᱱᱚᱣᱟ %1$dᱜᱚᱴᱟᱝ ᱠᱟᱰ ᱥᱤᱨᱡᱟᱹᱣ ᱟ । ᱞᱟᱦᱟᱜ ᱟᱢ? diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 68be718261a7..3480004b6005 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -70,7 +70,7 @@ ᱥᱤᱠᱮᱴ ᱩᱠᱩᱭ ᱢᱮ ᱥᱤᱠᱮᱴ ᱤᱬᱤᱡ ᱢᱮ Audio replay ᱢᱮ - ᱠᱟᱰ ᱫᱚ leech ᱟᱨ ᱵᱚᱸᱫ ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ + ᱠᱟᱰ ᱫᱚ leech ᱟᱨ ᱵᱚᱸᱫ ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ ᱠᱟᱰ ᱫᱚ leech ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ ᱵᱟᱝᱵᱟᱰᱟᱭᱟᱜ ᱵᱷᱩᱞ ᱱᱚᱶᱟ ᱫᱚ WebView ᱨᱮ ᱵᱷᱤᱛᱨᱤ ᱵᱷᱩᱞ ᱠᱷᱟᱛᱤᱨ ᱛᱮ @@ -200,7 +200,7 @@ ᱱᱚᱶᱟ ᱠᱟᱰ ᱫᱚ ᱵᱟᱝ ᱥᱟᱯᱯᱚᱨᱴ AnkiDroid ᱯᱷᱤᱪᱚᱨ ᱠᱚ ᱵᱮᱵᱷᱟᱨ ᱮᱫ ᱟᱭ ᱾ %1$s ᱰᱮᱵᱷᱞᱚᱯᱟᱹᱨ ᱥᱚᱢᱯᱚᱨᱠ ᱠᱚᱢ, ᱟᱨ ᱵᱟᱝ ᱣᱤᱠᱤ ᱧᱮᱞ ᱢᱮ ᱾ %2$s ᱠᱟᱰ ᱵᱷᱩᱞ ᱰᱟᱴᱟ ᱮᱢᱠᱮᱫ ᱟ ᱾ %s - ‌‌ᱵᱷᱩᱯ AnkiDroid JS API ᱵᱷᱟᱹᱨᱥᱚᱱ ᱾%s ᱰᱮᱵᱷᱞᱚᱯᱟᱹᱨ ᱥᱚᱢᱯᱚᱨᱠ ᱠᱚᱢ, ᱟᱨ ᱵᱟᱝ ᱣᱤᱠᱤ ᱧᱮᱞ ᱢᱮ ᱾ + ᱵᱷᱩᱯ AnkiDroid JS API ᱵᱷᱟᱹᱨᱥᱚᱱ ᱾%s ᱰᱮᱵᱷᱞᱚᱯᱟᱹᱨ ᱥᱚᱢᱯᱚᱨᱠ ᱠᱚᱢ, ᱟᱨ ᱵᱟᱝ ᱣᱤᱠᱤ ᱧᱮᱞ ᱢᱮ ᱾ AnkiDroid JS API ᱟᱹᱯᱰᱮᱴ ᱢᱮᱱᱟᱜᱼᱟ ᱾ %s ᱰᱮᱵᱷᱞᱚᱯᱟᱹᱨ ᱥᱚᱢᱯᱚᱨᱠ ᱠᱚᱢ, ᱟᱨ ᱵᱟᱝ ᱣᱤᱠᱤ ᱧᱮᱞ ᱢᱮ ᱾ ᱫᱮᱠᱷᱟᱣ (ᱵᱷᱩᱞ ᱠᱳᱰ: %d) diff --git a/AnkiDroid/src/main/res/values-ta/01-core.xml b/AnkiDroid/src/main/res/values-ta/01-core.xml index 71db1f8ddb00..6cd20ea59667 100644 --- a/AnkiDroid/src/main/res/values-ta/01-core.xml +++ b/AnkiDroid/src/main/res/values-ta/01-core.xml @@ -80,7 +80,7 @@ நல்ல எளிதாக இறக்குமதி - செயல்தவிர்ப்பது + செயல்தவிர்ப்பது மீண்டும் செய் பக்கவாதத்தை செயல்தவிர்க்கவும் அனைத்தையும் தளத்திற்கு நகர்த்து diff --git a/AnkiDroid/src/main/res/values-te/01-core.xml b/AnkiDroid/src/main/res/values-te/01-core.xml index 242857247683..b0498eb6ad68 100644 --- a/AnkiDroid/src/main/res/values-te/01-core.xml +++ b/AnkiDroid/src/main/res/values-te/01-core.xml @@ -50,7 +50,7 @@ గణాంకాలు సెట్టింగులు సహాయం - బొమ్మ + బొమ్మ స్పందన పంపండి స్టడీ @@ -68,7 +68,7 @@ %1$d రోజు %2$dh మిగిలి ఉంది %1$d రోజులు %2$dh మిగిలి ఉన్నాయి - సముదాయం ఖాళీ గా ఉంది + సముదాయం ఖాళీ గా ఉంది + గుర్తు ని నొక్కి చీటీ కూర్చు diff --git a/AnkiDroid/src/main/res/values-tg/01-core.xml b/AnkiDroid/src/main/res/values-tg/01-core.xml index f39cd4cf3b08..f40a05931978 100644 --- a/AnkiDroid/src/main/res/values-tg/01-core.xml +++ b/AnkiDroid/src/main/res/values-tg/01-core.xml @@ -54,7 +54,7 @@ Фикру мулоҳиза фиристодан Омӯхтан - Васеъ кардан + Васеъ кардан Фурӯпушоӣ %d minute left diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index 6de42bf2cb5e..2f72abab36a1 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -303,7 +303,7 @@ Kartları/Notları Aç/Kapat Tarayıcının her sırasının yüksekliğini içeriğin sadece ilk 3 satırını gösterecek şekilde kırp Tarayıcı seçenekleri - Alınan kayıtlar kaydedildi. + Alınan kayıtlar kaydedildi. Seçili notlar siliniyor Tap a voice to listen Voice should be installed before use diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml index 97b3ad91c688..3988615f0e66 100644 --- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml @@ -68,7 +68,7 @@ Veritabanını onarmayı gerçekten denemek istiyor musunuz?\n\nGirişime başlamadan önce, \"%s\" altklasöründe bir kopya oluşturulacak. \"Varsayılan\" kategorisi boş AnkiDroid\'e kart eklemek için bütün Not Defteri kategorilerini kaldırın veya \"default\" isminde bir tane ekleyin - Bugünün yeni kart sınırını şu kadar arttırın/azaltın (“-3”) + Bugünün yeni kart sınırını şu kadar arttırın/azaltın (“-3”) Bugünün gözden geçirme sınırını şu kadar arttırın/azaltın (“-3”) Son x gündeki unutulan kartları izle: X günleri önce izle: diff --git a/AnkiDroid/src/main/res/values-tt/01-core.xml b/AnkiDroid/src/main/res/values-tt/01-core.xml index 32faf1badb7c..006f65786166 100644 --- a/AnkiDroid/src/main/res/values-tt/01-core.xml +++ b/AnkiDroid/src/main/res/values-tt/01-core.xml @@ -138,7 +138,7 @@ Syncing media Колоданы экспортлау Export collection - Берни + Берни Кәрт төрләре Алгы шаблон diff --git a/AnkiDroid/src/main/res/values-ur/01-core.xml b/AnkiDroid/src/main/res/values-ur/01-core.xml index c677bc76aaf0..b2c38e954bac 100644 --- a/AnkiDroid/src/main/res/values-ur/01-core.xml +++ b/AnkiDroid/src/main/res/values-ur/01-core.xml @@ -50,7 +50,7 @@ اعداد و شمار ترتیبات مدد - تصور لگائے + تصور لگائے فیڈ بیک بھیجیں مطالعہ 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 d7c8d646a7f6..c5ffeae6e451 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -229,7 +229,7 @@ 图片过大,请手动插入图像 视频文件太大,请手动插入视频 音频文件太大,请手动插入音频 - Android backup in progress. Please try again + 正在进行 Android 备份。请重试 请使用 iManager 来允许 AnkiDroid 添加快捷方式 您的主屏幕不允许 AnkiDroid 添加快捷方式 添加快捷方式时出错:%s @@ -300,14 +300,14 @@ 浏览器选项 录音已保存 删除选定笔记 - Tap a voice to listen - Voice should be installed before use - Use anyway + 轻按声音来聆听 + 使用声音前应先安装声音 + 仍要使用 文本到语音错误(%s) - Internet - Install - Failed to open text to speech settings + 互联网 + 安装 + 打开文本转语音设置失败 请登录以下载更多牌组 描述 复制失败 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 9b1b9875e5e5..5a0dd352ce84 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/03-dialogs.xml @@ -62,7 +62,7 @@ 数据库错误 写入集合时出错。可能是数据库损坏,或者磁盘空间不足。\n\n如果频繁发生此错误,请检查数据库,修复集合或从备份中恢复。点击\"选项\"按钮以执行上述操作。\n\n当然,也可能只是 AnkiDroid 的 bug,请报告这个错误,我们会尽力解决。 报告错误 - There is not enough free storage space to open AnkiDroid. Free up some space to continue. + 没有足够的可用存储空间来打开AnkiDroid。释放一些空间以继续。 确实要尝试修复数据库吗?\n\n在开始前,副本将保存在子目录“%s”里。 类别“默认”为空 向AnkiDroid中添加卡牌,需要删除所有NotePad类别,或者添加“默认(default)”类别。 @@ -208,8 +208,8 @@ 稍后 不再显示 数据丢失警告 - Due to Android privacy changes, your data and automated backups will be deleted from your phone if the app is uninstalled - Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled + 由于 Android 隐私发生变化,如果应用被卸载,您的数据和自动备份将从您的手机中删除 + 由于Android 隐私发生变化,如果应用被卸载,您的数据和自动备份将无法访问 牌组已存在 牌组名称不能为空 如果您有牌组排序问题 (例如“10”出现在“2”之前),用“02”替换“2” diff --git a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml index 0472f05b7c7a..b2cf00f97899 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml @@ -294,7 +294,7 @@ 开发者选项 启用开发者选项 禁用开发者选项 - Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. + 启用开发者选项之前,您需要知晓这些选项很危险,可能会破坏应用程序或损坏您的牌组。\n\n注意这些选项不适合大多数用户,因而没有被翻译,所以它们仍以英语显示。 diff --git a/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml b/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml index f992c15b5c2c..b873ab66285a 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/17-model-manager.xml @@ -62,9 +62,9 @@ 您确定要删除此卡牌记录类型吗? 是否确定删除此字段? - Add: %1$s + 添加:%1$s - Clone: %1$s + 克隆:%1$s 请输入卡牌浏览器用于显示您卡牌的模板。用此来显示更简洁的答案。\n\n一个前置模板\n“{{Country}} 的首都是:”\n可以被卡牌浏览器压缩为\n“首都:{{Country}}” 问题格式 diff --git a/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml b/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml index e14e9bdf0bfd..dd23c8657c09 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml @@ -92,12 +92,12 @@ 同步帳戶 隐藏/删除 暫時隱藏卡片 - 暫時隱藏筆記 + 暫時隱藏筆記 暫停卡片 長久擱置筆記 埋葬 擱置 - 刪除筆記 + 刪除筆記 標記 重命名標記 標記卡片 From 5c0be725baa062cad423ef3769e27619758734a7 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 17 Mar 2025 01:09:21 +0100 Subject: [PATCH 118/200] NF: testing changing the string This will allow to check whether it appears as modified in crowdin --- AnkiDroid/src/main/res/values/12-dont-translate.xml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/AnkiDroid/src/main/res/values/12-dont-translate.xml b/AnkiDroid/src/main/res/values/12-dont-translate.xml index 2898dfefbe0f..ac5bacf6e717 100644 --- a/AnkiDroid/src/main/res/values/12-dont-translate.xml +++ b/AnkiDroid/src/main/res/values/12-dont-translate.xml @@ -18,8 +18,6 @@ - In order to ensure this string is not shown as untranslated, translate it the way you want. Probably using a single letter, so that it\'s quick. This string will never appear in ankidroid and is present here only to test crowdin feature. - + >In order to ensure this string is not shown as untranslated, translate it the way you want. Probably using a single letter, so that it\'s quick. This string will never appear in ankidroid and is present here only to test crowdin feature. From 4beeacac4981152d2c9f4a102a2904bf04dcfeaa Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Mon, 17 Mar 2025 00:12:45 +0000 Subject: [PATCH 119/200] Updated strings from Crowdin --- .../src/main/res/values-af/10-preferences.xml | 2 +- .../src/main/res/values-am/10-preferences.xml | 2 +- .../src/main/res/values-ar/02-strings.xml | 6 +-- .../src/main/res/values-ar/07-cardbrowser.xml | 6 +-- .../src/main/res/values-ar/10-preferences.xml | 2 +- .../src/main/res/values-az/10-preferences.xml | 2 +- .../src/main/res/values-be/02-strings.xml | 4 +- .../src/main/res/values-be/10-preferences.xml | 2 +- .../src/main/res/values-bg/10-preferences.xml | 2 +- .../src/main/res/values-bn/02-strings.xml | 6 +-- .../src/main/res/values-bn/10-preferences.xml | 10 ++-- .../src/main/res/values-ca/02-strings.xml | 4 +- .../src/main/res/values-ca/05-feedback.xml | 2 +- .../src/main/res/values-ca/10-preferences.xml | 2 +- .../src/main/res/values-ckb/02-strings.xml | 2 +- .../main/res/values-ckb/10-preferences.xml | 2 +- .../src/main/res/values-cs/02-strings.xml | 2 +- .../src/main/res/values-cs/10-preferences.xml | 4 +- AnkiDroid/src/main/res/values-da/01-core.xml | 4 +- .../src/main/res/values-da/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-de/01-core.xml | 2 +- .../src/main/res/values-de/10-preferences.xml | 2 +- .../src/main/res/values-el/02-strings.xml | 2 +- .../src/main/res/values-el/08-widget.xml | 2 +- .../src/main/res/values-el/10-preferences.xml | 4 +- .../src/main/res/values-eo/10-preferences.xml | 2 +- .../src/main/res/values-es-rAR/04-network.xml | 2 +- .../main/res/values-es-rAR/10-preferences.xml | 2 +- .../res/values-es-rAR/17-model-manager.xml | 2 +- .../src/main/res/values-es-rES/02-strings.xml | 2 +- .../src/main/res/values-es-rES/04-network.xml | 2 +- .../main/res/values-es-rES/10-preferences.xml | 2 +- .../res/values-es-rES/17-model-manager.xml | 2 +- .../src/main/res/values-et/10-preferences.xml | 2 +- .../src/main/res/values-eu/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-fa/01-core.xml | 4 +- .../src/main/res/values-fa/10-preferences.xml | 2 +- .../src/main/res/values-fi/10-preferences.xml | 4 +- .../main/res/values-fil/10-preferences.xml | 2 +- .../src/main/res/values-fr/10-preferences.xml | 2 +- .../src/main/res/values-fy/10-preferences.xml | 2 +- .../src/main/res/values-ga/03-dialogs.xml | 2 +- .../src/main/res/values-ga/10-preferences.xml | 2 +- .../src/main/res/values-gl/10-preferences.xml | 2 +- .../main/res/values-got/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-gu/01-core.xml | 6 +-- .../src/main/res/values-gu/10-preferences.xml | 2 +- .../src/main/res/values-heb/02-strings.xml | 2 +- .../src/main/res/values-heb/03-dialogs.xml | 4 +- .../main/res/values-heb/10-preferences.xml | 2 +- .../src/main/res/values-hi/02-strings.xml | 6 +-- .../src/main/res/values-hi/04-network.xml | 2 +- .../src/main/res/values-hi/10-preferences.xml | 18 +++---- .../src/main/res/values-hi/11-arrays.xml | 2 +- .../src/main/res/values-hr/02-strings.xml | 6 +-- .../src/main/res/values-hr/10-preferences.xml | 2 +- .../src/main/res/values-hu/03-dialogs.xml | 4 +- .../src/main/res/values-hu/10-preferences.xml | 2 +- .../src/main/res/values-hy/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-ind/01-core.xml | 2 +- .../main/res/values-ind/10-preferences.xml | 2 +- .../src/main/res/values-is/10-preferences.xml | 2 +- .../src/main/res/values-it/10-preferences.xml | 2 +- .../src/main/res/values-iw/02-strings.xml | 2 +- .../src/main/res/values-iw/03-dialogs.xml | 4 +- .../src/main/res/values-iw/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-ja/01-core.xml | 2 +- .../src/main/res/values-ja/03-dialogs.xml | 4 +- .../src/main/res/values-ja/10-preferences.xml | 2 +- .../src/main/res/values-jv/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-ka/01-core.xml | 2 +- .../src/main/res/values-ka/02-strings.xml | 2 +- .../src/main/res/values-ka/09-backup.xml | 2 +- .../src/main/res/values-ka/10-preferences.xml | 2 +- .../src/main/res/values-kk/10-preferences.xml | 2 +- .../src/main/res/values-km/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-kn/01-core.xml | 4 +- .../src/main/res/values-kn/02-strings.xml | 2 +- .../src/main/res/values-kn/10-preferences.xml | 4 +- .../src/main/res/values-ko/10-preferences.xml | 2 +- .../main/res/values-ko/17-model-manager.xml | 2 +- .../src/main/res/values-ku/10-preferences.xml | 2 +- .../src/main/res/values-ky/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-lt/01-core.xml | 4 +- .../src/main/res/values-lt/10-preferences.xml | 4 +- .../src/main/res/values-lv/10-preferences.xml | 2 +- .../src/main/res/values-mk/10-preferences.xml | 2 +- .../src/main/res/values-ml/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-mn/01-core.xml | 4 +- .../src/main/res/values-mn/02-strings.xml | 6 +-- .../src/main/res/values-mn/10-preferences.xml | 2 +- .../src/main/res/values-mr/10-preferences.xml | 2 +- .../src/main/res/values-ms/10-preferences.xml | 2 +- .../src/main/res/values-my/10-preferences.xml | 2 +- .../src/main/res/values-nl/02-strings.xml | 2 +- .../src/main/res/values-nl/10-preferences.xml | 2 +- .../src/main/res/values-nn/04-network.xml | 2 +- .../src/main/res/values-nn/10-preferences.xml | 2 +- .../src/main/res/values-no/04-network.xml | 2 +- .../src/main/res/values-no/10-preferences.xml | 2 +- .../src/main/res/values-or/02-strings.xml | 2 +- .../src/main/res/values-or/03-dialogs.xml | 2 +- .../src/main/res/values-or/04-network.xml | 2 +- .../src/main/res/values-or/07-cardbrowser.xml | 4 +- .../src/main/res/values-or/10-preferences.xml | 2 +- .../src/main/res/values-pa/10-preferences.xml | 2 +- .../src/main/res/values-pl/02-strings.xml | 2 +- .../src/main/res/values-pl/10-preferences.xml | 6 +-- .../main/res/values-pt-rBR/10-preferences.xml | 8 ++-- .../main/res/values-pt-rPT/10-preferences.xml | 2 +- .../values-pt-rPT/16-multimedia-editor.xml | 2 +- AnkiDroid/src/main/res/values-ro/01-core.xml | 4 +- .../src/main/res/values-ro/10-preferences.xml | 2 +- .../src/main/res/values-ru/02-strings.xml | 2 +- .../src/main/res/values-ru/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-sat/01-core.xml | 10 ++-- .../src/main/res/values-sat/02-strings.xml | 48 +++++++++---------- .../src/main/res/values-sat/03-dialogs.xml | 4 +- .../src/main/res/values-sat/04-network.xml | 10 ++-- .../src/main/res/values-sat/09-backup.xml | 2 +- .../main/res/values-sat/10-preferences.xml | 8 ++-- .../src/main/res/values-sat/11-arrays.xml | 2 +- .../res/values-sat/16-multimedia-editor.xml | 10 ++-- .../main/res/values-sat/17-model-manager.xml | 4 +- .../src/main/res/values-sc/10-preferences.xml | 4 +- .../src/main/res/values-sk/10-preferences.xml | 2 +- .../src/main/res/values-sl/10-preferences.xml | 2 +- .../src/main/res/values-sq/10-preferences.xml | 2 +- .../src/main/res/values-sr/10-preferences.xml | 2 +- .../src/main/res/values-ss/10-preferences.xml | 2 +- .../src/main/res/values-sv/10-preferences.xml | 2 +- .../src/main/res/values-sw/10-preferences.xml | 2 +- .../src/main/res/values-ta/10-preferences.xml | 2 +- .../src/main/res/values-te/10-preferences.xml | 4 +- .../src/main/res/values-tg/10-preferences.xml | 2 +- .../main/res/values-tgl/10-preferences.xml | 2 +- .../src/main/res/values-th/10-preferences.xml | 2 +- .../src/main/res/values-ti/10-preferences.xml | 2 +- .../src/main/res/values-tn/10-preferences.xml | 2 +- .../src/main/res/values-tr/03-dialogs.xml | 2 +- .../src/main/res/values-tr/10-preferences.xml | 2 +- .../src/main/res/values-ts/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-tt/01-core.xml | 2 +- .../src/main/res/values-tt/02-strings.xml | 4 +- .../src/main/res/values-tt/03-dialogs.xml | 2 +- .../src/main/res/values-tt/10-preferences.xml | 2 +- .../src/main/res/values-ug/10-preferences.xml | 2 +- .../src/main/res/values-uk/02-strings.xml | 2 +- .../src/main/res/values-uk/10-preferences.xml | 4 +- .../main/res/values-uk/17-model-manager.xml | 2 +- .../src/main/res/values-ur/10-preferences.xml | 2 +- .../src/main/res/values-uz/10-preferences.xml | 2 +- .../src/main/res/values-ve/10-preferences.xml | 2 +- .../src/main/res/values-vi/10-preferences.xml | 8 ++-- .../src/main/res/values-wo/10-preferences.xml | 2 +- .../src/main/res/values-xh/10-preferences.xml | 2 +- .../main/res/values-yue/10-preferences.xml | 2 +- .../main/res/values-zh-rCN/10-preferences.xml | 4 +- .../src/main/res/values-zh-rTW/01-core.xml | 6 +-- .../main/res/values-zh-rTW/10-preferences.xml | 2 +- .../src/main/res/values-zu/10-preferences.xml | 2 +- 161 files changed, 260 insertions(+), 260 deletions(-) diff --git a/AnkiDroid/src/main/res/values-af/10-preferences.xml b/AnkiDroid/src/main/res/values-af/10-preferences.xml index 16ba5432758d..3b028afe2e39 100644 --- a/AnkiDroid/src/main/res/values-af/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-af/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-am/10-preferences.xml b/AnkiDroid/src/main/res/values-am/10-preferences.xml index 419f9b2e9ae4..dbbf55c6e869 100644 --- a/AnkiDroid/src/main/res/values-am/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-am/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index 8653036eb563..565293ed09e6 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -63,7 +63,7 @@ حفظ السبورة تمكين وضع Stylus - تعطيل وضع Stylus + تعطيل وضع Stylus تفعيل السبورة تعطيل السبورة إظهار السبورة @@ -313,8 +313,8 @@ AnkiDroid is not initialized yet. Please open AnkiDroid and try again تم تسجيل الدخول مسبقًا - كيفية - Minato + كيفية + Deck renamed تم حذف الرزمة. يرجى حذف الاختصار diff --git a/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml index 71275cffe1b0..a67610e9d191 100644 --- a/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-ar/07-cardbrowser.xml @@ -82,7 +82,7 @@ اسم عبارة البحث الحالية لا يمكنك حفظ عبارة بحث بدون اسم الاسم موجود - لا يوجد ملحوظات لتعديلها + لا يوجد ملحوظات لتعديلها هل تريد حذف “%1$s”؟ تغيير ترتيب العرض بحث @@ -136,10 +136,10 @@ Edit tags dialog إظهار مربع حوار الطلب - أعمدة + أعمدة إدارة الأعمدة فعال - متوفر + متوفر إضافة عمود استخراج عمود Retrieving fields names… diff --git a/AnkiDroid/src/main/res/values-ar/10-preferences.xml b/AnkiDroid/src/main/res/values-ar/10-preferences.xml index 849189dd4130..837a265cc0eb 100644 --- a/AnkiDroid/src/main/res/values-ar/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ar/10-preferences.xml @@ -121,7 +121,7 @@ النقر في أسفل اليسار النقر في أسفل اليمين رج الجهاز - قائمة \'%s\' + قائمة \'%s\' يفعل قائمة سياق \'%s\' عمومًا مضاعفة فجوة التمرير مضاعفة فجوة التمرير مع القارئ الإلكتروني diff --git a/AnkiDroid/src/main/res/values-az/10-preferences.xml b/AnkiDroid/src/main/res/values-az/10-preferences.xml index a04d6d329aae..4cf6b6d03b09 100644 --- a/AnkiDroid/src/main/res/values-az/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-az/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index 3902bf933dcd..c4a4c981429b 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -52,7 +52,7 @@ Тып: Меткі: %1$s Карткі: %1$s - Рэдагаваць аклюзіі + Рэдагаваць аклюзіі Назва меткі Дадаць/фільтраваць меткі Дадаць метку @@ -75,7 +75,7 @@ Невядомая памылка Выклікана ўнутранай памылкай у WebView Недастаткова памяці - WebView завершаны сістэмай. Звычайны гэта здараецца, калі праграме пачынае не хапаць сістэмнай памяці з-за вялікіх шрыфтоў або медыяфайлаў. + WebView завершаны сістэмай. Звычайны гэта здараецца, калі праграме пачынае не хапаць сістэмнай памяці з-за вялікіх шрыфтоў або медыяфайлаў. Збой апрацоўшчыка WebView. Прычына: %s Крытычная памылка: збой апрацоўшчыка WebView. Прычына: %s Памылка апрацоўшчыка сістэмнага WebView diff --git a/AnkiDroid/src/main/res/values-be/10-preferences.xml b/AnkiDroid/src/main/res/values-be/10-preferences.xml index 88eace8a4167..2681f93340bf 100644 --- a/AnkiDroid/src/main/res/values-be/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-be/10-preferences.xml @@ -119,7 +119,7 @@ Дотык ніжняга левага вугла Дотык ніжняга правага вугла Патрасіце прыладу - Меню «%s» + Меню «%s» Уключыць кантэкстнае меню «%s» у сістэме Падвоеная прагортка Падвоены разрыў прагорткі ў eReader diff --git a/AnkiDroid/src/main/res/values-bg/10-preferences.xml b/AnkiDroid/src/main/res/values-bg/10-preferences.xml index 119b6b45b39d..0c0073676b60 100644 --- a/AnkiDroid/src/main/res/values-bg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bg/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Двойно превъртане Удвояване на разстоянието при превъртането при е-четци diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index 4567f40ffea2..3c5be700e9cd 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -56,7 +56,7 @@ ট্যাগের নাম ট্যাগ যুক্ত/ফিল্টার করুন ট্যাগ যোগ করুন - সবগুলো বাছাই/অবাছাই করুন + সবগুলো বাছাই/অবাছাই করুন ট্যাগ ফিল্টার করুন আপনি এখনো কোন ট্যাগ যুক্ত করেননি %s সংস্করণে আপডেট করা হয়েছে @@ -138,7 +138,7 @@ এটি কোন বৈধ আনকি প্যাকেজ ফাইল নয় ত্রুটি ফাইল আমদানিতে ব্যর্থ\n\n%s - \"%s\" ফাইলে .apkg বা .colpkg এক্সটেনশন নেই + \"%s\" ফাইলে .apkg বা .colpkg এক্সটেনশন নেই Anki ডাটাবেস (.anki2) প্রতিস্থাপন এখনও সমর্থিত নয়। প্রতিস্থাপন নির্দেশাবলীর জন্য ম্যানুয়াল দেখুন। নির্বাচিত ফাইলটি AnkiDroid দ্বারা স্বয়ংক্রিয়ভাবে আমদানি করা যায়নি। আনকি ফাইলটি ম্যানুয়ালি কিভাবে আমদানি করতে হয় তার জন্য অনুগ্রহ করে ব্যবহারকারীর ম্যানুয়ালটি পড়ুন: \n%s ফাইল ক্যাশে করতে ব্যর্থ হয়েছে (সম্ভবত স্টোরেজ স্পেস নেই) @@ -164,7 +164,7 @@ ডেক বিকল্প অধ্যয়নের বিকল্প TTS ভাষা সেট করুন - কাস্টম অধ্যয়ন + কাস্টম অধ্যয়ন স্বাভাবিক সময়সূচীর বাইরে অধ্যয়ন করার জন্য এটি একটি বিশেষ ডেক। রিভিউয়ের পর কার্ডসমূহকে স্বয়ংক্রিয়ভাবে তাদের আসল ডেকসমূহে ফিরিয়ে দেয়া হবে। এই ডেকটি মুছে ফেলা হলে বাকি থাকা কার্ডগুলিকে তাদের আসল ডেকে ফিরিয়ে দেয়া হবে। ধাপ 0-এর বেশি হতে হবে অন্তত একটি পদক্ষেপ প্রয়োজন diff --git a/AnkiDroid/src/main/res/values-bn/10-preferences.xml b/AnkiDroid/src/main/res/values-bn/10-preferences.xml index 66d5d8ccea2c..ac281c2d774e 100644 --- a/AnkiDroid/src/main/res/values-bn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-bn/10-preferences.xml @@ -80,13 +80,13 @@ কার্ড জুম ছবি জুম উত্তর বাটান আকার - কার্ড ব্রাউজারের ফন্ট আকার - ব্রাউজারে ফাইলের নাম দেখান + কার্ড ব্রাউজারের ফন্ট আকার + ব্রাউজারে ফাইলের নাম দেখান Display media filenames in the card browser question/answer fields - AnkiDroid ডিরেক্টরি + AnkiDroid ডিরেক্টরি ফুলস্ক্রিন মোড বন্ধ - সিস্টেম বার আড়াল করুন + সিস্টেম বার আড়াল করুন সিস্টেম বার এবং উত্তর বোতাম লুকান উত্তর বোতামের অবস্থান @@ -118,7 +118,7 @@ নীচে বাম দিকে স্পর্শ করুন নীচে ডানদিকে স্পর্শ করুন ডিভাইস ঝাঁকান - \'%s\' মেনু + \'%s\' মেনু বিশ্বব্যাপী \'%s\' প্রসঙ্গ মেনু সক্রিয় করে ডাবল স্ক্রলিং eReader এর সাথে স্ক্রোল ব্যবধান দ্বিগুণ করুন diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index 2061d5b4293e..63b078887dc8 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -195,12 +195,12 @@ Error al desar l\'imatge de la pissarra. %s Imatge de la pissara desada a %s - Editor de la pissarra + Editor de la pissarra Test automàtic detectat. Si ets un humà contacta amb el suport AnkiDroid Aquesta carta usa funcions AnkiDroid no compatibles. Contacta amb el desenvolupador %1$s, o mira la wiki %2$s La carta ha proporcionat dades no vàlides. %s - Versió invàlida d\'API JS AnkiDroid. Contacta amb el desenvolupador %s o mira la wiki + Versió invàlida d\'API JS AnkiDroid. Contacta amb el desenvolupador %s o mira la wiki Actualització disponible de l\'API JS AnkiDroid. Contacta amb el desenvolupador %s o mira la wiki Veure (Codi d\'error: %d) diff --git a/AnkiDroid/src/main/res/values-ca/05-feedback.xml b/AnkiDroid/src/main/res/values-ca/05-feedback.xml index b4b476c8b0c9..e1ba9e3096a2 100644 --- a/AnkiDroid/src/main/res/values-ca/05-feedback.xml +++ b/AnkiDroid/src/main/res/values-ca/05-feedback.xml @@ -55,5 +55,5 @@ Copia les dades de depuració Informa Envia automàticament informes d\'error - No s\'ha trobat cap aplicació adient. + No s\'ha trobat cap aplicació adient. diff --git a/AnkiDroid/src/main/res/values-ca/10-preferences.xml b/AnkiDroid/src/main/res/values-ca/10-preferences.xml index 2ec70292a9a1..4d9738623789 100644 --- a/AnkiDroid/src/main/res/values-ca/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ca/10-preferences.xml @@ -117,7 +117,7 @@ Tocar a baix a l\'esquerra Tocar a baix a la dreta Shake device - Menú ‘%s’ + Menú ‘%s’ Permet a tot arreu el menú contextual \'%s\' Desplaçament doble Doble el scrolling amb l\'eReader diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index 5236a1f3c028..51d87f61a038 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -128,7 +128,7 @@ پشکنینی ڕەنگاڵە کارتە بەتاڵەکان Type answer: unknown field %s - دەستە دەسڕدرێتەوە… + دەستە دەسڕدرێتەوە… Rate AnkiDroid Importing Preparing file for import… diff --git a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml index 1a12afc3c31c..5f33bc5fee24 100644 --- a/AnkiDroid/src/main/res/values-ckb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ckb/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index e2d8992cf4da..71b0ce8a5ea0 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -352,7 +352,7 @@ Card Template Editor Edit front template Edit back template - Upravit formátování + Upravit formátování Copy template as markdown Edit browser appearance Akce uživatele %s není v tomto typu poznámky nastavena. Nakonfigurujte ji prosím diff --git a/AnkiDroid/src/main/res/values-cs/10-preferences.xml b/AnkiDroid/src/main/res/values-cs/10-preferences.xml index e77478b1e220..dad229ecc8ef 100644 --- a/AnkiDroid/src/main/res/values-cs/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-cs/10-preferences.xml @@ -119,7 +119,7 @@ Klepnutí vlevo dole Klepnutí vpravo dole Zatřesení zařízením - Menu „%s“ + Menu „%s“ Povolí globální kontextovou nabídku „%s“ Dvojitý posun Dvojitý posuvník s eReader @@ -331,7 +331,7 @@ Odstranit nepoužívané multimediální soubory - Odstranit obrázky a další multimédia, která nemají předponu _ a na které neodkazují žádné poznámky + Odstranit obrázky a další multimédia, která nemají předponu _ a na které neodkazují žádné poznámky Odstranit nepoužívané multimediální soubory Odstranit zálohy diff --git a/AnkiDroid/src/main/res/values-da/01-core.xml b/AnkiDroid/src/main/res/values-da/01-core.xml index c9df8b8d760a..1563487eb1d2 100644 --- a/AnkiDroid/src/main/res/values-da/01-core.xml +++ b/AnkiDroid/src/main/res/values-da/01-core.xml @@ -124,7 +124,7 @@ Opret understak Tømmer filtreret stak… Tilpasset studiesession - Omdøb den eksisterende tilpassede stak først + Omdøb den eksisterende tilpassede stak først Staksøgning Denne stak er tom Staksøgning @@ -151,7 +151,7 @@ Overskriv stak Indsæt felt Vælg felt - Mindst én korttype er påkrævet + Mindst én korttype er påkrævet Dette vil oprette %1$d kort. Fortsæt? Dette vil oprette %1$d kort. Fortsæt? diff --git a/AnkiDroid/src/main/res/values-da/10-preferences.xml b/AnkiDroid/src/main/res/values-da/10-preferences.xml index 87963480083c..7ab27922efbc 100644 --- a/AnkiDroid/src/main/res/values-da/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-da/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-de/01-core.xml b/AnkiDroid/src/main/res/values-de/01-core.xml index 60ad9fb73335..9b079bacf0a6 100644 --- a/AnkiDroid/src/main/res/values-de/01-core.xml +++ b/AnkiDroid/src/main/res/values-de/01-core.xml @@ -184,7 +184,7 @@ Die Datei %s kann nicht erstellt oder überschrieben werden Unzugängliche Sammlung Wir können, aufgrund einer Änderung der Play Store-Richtlinie, nachdem AnkiDroid deinstalliert wurde, auf Ihre Sammlung nicht zugreifen.\n\nIhre Daten sind sicher und können wiederhergestellt werden. Es befindet sich unter\n%s\n\nWählen Sie unten eine Wiederherstellungsmöglichkeit aus: - Android hat den Zugriff auf %1$s entfernt wegen App-Aktivität. \n\nDeine Daten sind sicher und können wiederhergestellt werden. Die befinden sich bei \n%2$s\n\nWähle unten eine Möglichkeit aus, um sie wiederherzustellen. + Android hat den Zugriff auf %1$s entfernt wegen App-Aktivität. \n\nDeine Daten sind sicher und können wiederhergestellt werden. Die befinden sich bei \n%2$s\n\nWähle unten eine Möglichkeit aus, um sie wiederherzustellen. von AnkiWeb wiederherstellen (empfohlen) Ordnerzugriff wiederherstellen (empfohlen) Ordnerzugriff wiederherstellen (erfahren) diff --git a/AnkiDroid/src/main/res/values-de/10-preferences.xml b/AnkiDroid/src/main/res/values-de/10-preferences.xml index 23dd939c435c..eab456240d31 100644 --- a/AnkiDroid/src/main/res/values-de/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-de/10-preferences.xml @@ -117,7 +117,7 @@ Unten links antippen Unten rechts antippen Gerät schütteln - »%s«-Menü + »%s«-Menü Aktiviert global das Kontextmenü »%s« Doppeltes scrollen Auf eReadern mit doppelter Schrittgröße scrollen diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index 97e17a82c6c7..76ee19d7b598 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -125,7 +125,7 @@ Μετονομασία Έλεγχος Έλεγχος βάσης δεδομένων - Έλεγχος πολυμέσων + Έλεγχος πολυμέσων Κενές κάρτες Τύπος απάντησης: άγνωστο πεδίο %s Διαγραφή τράπουλας…\nΠαρακαλούμε περιμένετε. diff --git a/AnkiDroid/src/main/res/values-el/08-widget.xml b/AnkiDroid/src/main/res/values-el/08-widget.xml index 15325c7803b0..7a31dd7b9528 100644 --- a/AnkiDroid/src/main/res/values-el/08-widget.xml +++ b/AnkiDroid/src/main/res/values-el/08-widget.xml @@ -60,7 +60,7 @@ Απομένουν %d λεπτά Προσθήκη νέας σημείωσης AnkiDroid - Επιλογή τράπουλας + Επιλογή τράπουλας Ανάλυση καρτών Επιλογή τραπουλών diff --git a/AnkiDroid/src/main/res/values-el/10-preferences.xml b/AnkiDroid/src/main/res/values-el/10-preferences.xml index b3c3c0e6f50a..7d488a099e74 100644 --- a/AnkiDroid/src/main/res/values-el/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-el/10-preferences.xml @@ -117,7 +117,7 @@ Άγγιγμα κάτω αριστερά Άγγιγμα κάτω δεξιά Ανακίνηση συσκευής - Μενού ‘%s’ + Μενού ‘%s’ Enables the ‘%s’ context menu globally Διπλή κύλιση Double the scroll gap with eReader @@ -285,7 +285,7 @@ Ερώτηση & Απάντηση Ε: %s Α: %s - %s + %s Αφαίρεση ‘%s’ Already bound to ‘%s’ diff --git a/AnkiDroid/src/main/res/values-eo/10-preferences.xml b/AnkiDroid/src/main/res/values-eo/10-preferences.xml index 1c0a8108ef8a..0181c4dd504a 100644 --- a/AnkiDroid/src/main/res/values-eo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eo/10-preferences.xml @@ -117,7 +117,7 @@ Frapeti suban maldekstron Frapeti suban dekstron Skui aparaton - Menuo “%s” + Menuo “%s” Aktivigi la kuntekstan menuon “%s” tutaplikaĵe Duobla rulumado Duobligi distancon de rulumado kun elektronika legilo diff --git a/AnkiDroid/src/main/res/values-es-rAR/04-network.xml b/AnkiDroid/src/main/res/values-es-rAR/04-network.xml index d3b8e47659fb..aa67287129f8 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/04-network.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/04-network.xml @@ -70,7 +70,7 @@ Sincronización Sincronización desde el dispositivo completa Colección sincronizada - Colección sincronizada. Los archivos multimedia se están sincronizando en segundo plano. + Colección sincronizada. Los archivos multimedia se están sincronizando en segundo plano. Su base de datos está dañada. Por favor, repárela antes de intentar la sincronización nuevamente.\n\nVer %s para informarse sobre la reparación de su base de datos. Local diff --git a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml index 98f252272ffd..2a37f89dcfb8 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/10-preferences.xml @@ -117,7 +117,7 @@ Tocar abajo a la izquierda Tocar abajo a la derecha Sacudir dispositivo - ‘%s’ Menú + ‘%s’ Menú Habilitar globalmente el menú contextual ‘%s Doble desplazamiento Doblar la distancia de desplazamiento con e-Reader diff --git a/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml b/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml index 3239a4ae9463..92fa41fc40dd 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/17-model-manager.xml @@ -78,6 +78,6 @@ Anulación del Mazo (desactivado) Establecer mazo predeterminado de ‘%1$s’ a ‘%2$s’ Mazo predeterminado para ‘%s’ eliminado - Selecciona el mazo para colocar nuevas tarjetas ‘%s’ + Selecciona el mazo para colocar nuevas tarjetas ‘%s’ Filtrar mazos 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 2dfa2336b1b4..82290c5b3ae8 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -91,7 +91,7 @@ Total de tarjetas Editar nota - Borrar + Borrar No se han creado tarjetas. Por favor, rellena más campos El tipo de nota actual no produjo ninguna tarjeta.\nPor favor, elije otro tipo de nota o haz clic en \"Tarjetas\" y añade un sustituto de campo Las preguntas anidadas sólo funcionarán en un tipo de nota de Pregunta anidada (Cloze) diff --git a/AnkiDroid/src/main/res/values-es-rES/04-network.xml b/AnkiDroid/src/main/res/values-es-rES/04-network.xml index f38f936e7022..884c51e43e4a 100644 --- a/AnkiDroid/src/main/res/values-es-rES/04-network.xml +++ b/AnkiDroid/src/main/res/values-es-rES/04-network.xml @@ -70,7 +70,7 @@ Sincronización Sincronización completa desde el cliente Colección sincronizada - Colección sincronizada. Los archivos multimedia se están sincronizando en segundo plano. + Colección sincronizada. Los archivos multimedia se están sincronizando en segundo plano. La base de datos está dañada. Por favor, arréglala antes de intentar volver a sincronizar.\n\nLee %s para obtener información acerca de cómo reparar la base de datos. Local diff --git a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml index f865444b4378..7b806a7716b6 100644 --- a/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-es-rES/10-preferences.xml @@ -117,7 +117,7 @@ Tocar abajo a la izquierda Tocar abajo a la derecha Agitar el dispositivo - Menú ‘%s’ + Menú ‘%s’ Habilita globalmente el menú contextual ‘%s Desplazamiento doble Doblar la distancia de desplazamiento con e-Reader diff --git a/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml b/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml index 9a6c43254f45..ca705ec24b58 100644 --- a/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-es-rES/17-model-manager.xml @@ -78,6 +78,6 @@ Anulación del Mazo (desactivado) Establecer mazo predeterminado de ‘%1$s’ a ‘%2$s’ Mazo predeterminado para ‘%s’ eliminado - Selecciona el mazo para colocar nuevas tarjetas ‘%s’ + Selecciona el mazo para colocar nuevas tarjetas ‘%s’ Filtrar mazos diff --git a/AnkiDroid/src/main/res/values-et/10-preferences.xml b/AnkiDroid/src/main/res/values-et/10-preferences.xml index 755b2dccb4f5..46df56dac63c 100644 --- a/AnkiDroid/src/main/res/values-et/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-et/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-eu/10-preferences.xml b/AnkiDroid/src/main/res/values-eu/10-preferences.xml index ab146548fe5d..69b104cf2604 100644 --- a/AnkiDroid/src/main/res/values-eu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-eu/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-fa/01-core.xml b/AnkiDroid/src/main/res/values-fa/01-core.xml index 70f9fdd7abd3..23521d588c04 100644 --- a/AnkiDroid/src/main/res/values-fa/01-core.xml +++ b/AnkiDroid/src/main/res/values-fa/01-core.xml @@ -92,7 +92,7 @@ افزودن افزودن یادداشت همگام سازی حساب - پنهان/حذف + پنهان/حذف مخفی کردن کارت مخفی کردن یادداشت تعلیق کارت @@ -127,7 +127,7 @@ لطفا ابتدا دسته مطالعه سفارشی موجود را مجددا نام گذاری کنید. جستجوی دسته‌ها این دسته خالی است - جستجوی دسته‌ها + جستجوی دسته‌ها نام دسته نامعتبر است تبریک! امروز کارتان تمام شد. دسته کارت فعلاً به پایان رسید! %s diff --git a/AnkiDroid/src/main/res/values-fa/10-preferences.xml b/AnkiDroid/src/main/res/values-fa/10-preferences.xml index 02aeb7c86e89..f40c87670dcd 100644 --- a/AnkiDroid/src/main/res/values-fa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fa/10-preferences.xml @@ -117,7 +117,7 @@ لمس پایین سمت چپ لمس پایین سمت راست لرزش دستگاه - منوی \'%s\' + منوی \'%s\' \'%s\' را در لیست به صورت عمومی فعال می‌کند پیمایش دو برابری فعال کنید اگر می‌خواهید فاصله پیمایش را در کتابخوان دیجیتالی دو برابر کنید diff --git a/AnkiDroid/src/main/res/values-fi/10-preferences.xml b/AnkiDroid/src/main/res/values-fi/10-preferences.xml index 798bec4dafd3..ec1fdbe04062 100644 --- a/AnkiDroid/src/main/res/values-fi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fi/10-preferences.xml @@ -117,7 +117,7 @@ Kosketa alavasemmalle Kosketa alaoikealle Ravista laitetta - \"%s\" -valikko + \"%s\" -valikko Ota \"%s\" -valikko käyttöön koko sovelluksessa Kaksoisvieritys Kaksinkertaista vieritysaskeleen koko eReaderin kanssa @@ -205,7 +205,7 @@ Liitä leikepöydän kuvat PNG:nä Oletusarvoisesti Anki liittää kuvat leikepöydältä JPG-tiedostoina levytilan säästämiseksi. Tämän vaihtoehdon avulla voit sen sijaan käyttää PNG-kuvia. Takaisin/poistu painamalla \"takaisin\" kahdesti - Vältä poistumasta vahingossa kertausnäkymästä tai sovelluksesta + Vältä poistumasta vahingossa kertausnäkymästä tai sovelluksesta Salli kaikki tiedostot mediaa tuotaessa Jos Android ei tunnista mediatiedostoja diff --git a/AnkiDroid/src/main/res/values-fil/10-preferences.xml b/AnkiDroid/src/main/res/values-fil/10-preferences.xml index 50a3eb688465..2a3f5b7ea994 100644 --- a/AnkiDroid/src/main/res/values-fil/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fil/10-preferences.xml @@ -117,7 +117,7 @@ Pagpindot sa kaliwa sa ibaba Pagpindot sa kanan sa ibaba Alugin ang device - Menu ng \'%s\' + Menu ng \'%s\' Ine-enable ang context manu na \'%s\' kahit saan Double scrolling I-double ang scroll gap sa eReader diff --git a/AnkiDroid/src/main/res/values-fr/10-preferences.xml b/AnkiDroid/src/main/res/values-fr/10-preferences.xml index 53d993b0443c..5240f94151b6 100644 --- a/AnkiDroid/src/main/res/values-fr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fr/10-preferences.xml @@ -117,7 +117,7 @@ Toucher en bas à gauche Toucher en bas à droite Secouer l\'appareil - Menu « %s » + Menu « %s » Active le menu contextuel « %s » globalement Défilement double Doubler la vitesse de défilement avec eReader diff --git a/AnkiDroid/src/main/res/values-fy/10-preferences.xml b/AnkiDroid/src/main/res/values-fy/10-preferences.xml index c7cc047f24b0..d28940d9f0d1 100644 --- a/AnkiDroid/src/main/res/values-fy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-fy/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml index 02a1db1c03ab..ecdf0f3ba3a3 100644 --- a/AnkiDroid/src/main/res/values-ga/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ga/03-dialogs.xml @@ -58,7 +58,7 @@ Delete filtered deck %s and send all cards back to their original decks? Níl TTS ar fáil sa teanga seo Teanga ar bith - Ní féidir ach cártaí nua a athlonnú + Ní féidir ach cártaí nua a athlonnú Glan stair an chárta maidir le do dhul ar aghaidh? %d card reset diff --git a/AnkiDroid/src/main/res/values-ga/10-preferences.xml b/AnkiDroid/src/main/res/values-ga/10-preferences.xml index e5ece8a446fa..799acaa9298f 100644 --- a/AnkiDroid/src/main/res/values-ga/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ga/10-preferences.xml @@ -120,7 +120,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-gl/10-preferences.xml b/AnkiDroid/src/main/res/values-gl/10-preferences.xml index 182df6030014..09688bc5a50b 100644 --- a/AnkiDroid/src/main/res/values-gl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-gl/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Desprazamento duplo Duplicar a distancia de desprazamento co eReader diff --git a/AnkiDroid/src/main/res/values-got/10-preferences.xml b/AnkiDroid/src/main/res/values-got/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-got/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-got/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-gu/01-core.xml b/AnkiDroid/src/main/res/values-gu/01-core.xml index ca2faeedd0a5..8f955c44578e 100644 --- a/AnkiDroid/src/main/res/values-gu/01-core.xml +++ b/AnkiDroid/src/main/res/values-gu/01-core.xml @@ -91,7 +91,7 @@ વર્ણન સંપાદિત કરો ઉમેરો નોંધ ઉમેરો - ખાતું સિંક્રનાઇઝ કરો + ખાતું સિંક્રનાઇઝ કરો છુપાવો / કાઢો કાર્ડ કાઢો નોંધ કાઢો @@ -105,12 +105,12 @@ કાર્ડને ચિહ્નિત કરો ચિહ્નો બદલો આ નોંધ અને તેના તમામ કાડઁ ખરેખર કાઢી નાખીએ ?\n%s - %1$s માં જુઓ + %1$s માં જુઓ નોંધ ચિહ્નિત કરો ચિહ્નિત નોંધોમાથી કાઢો વૉઇસ પ્લેબેક સક્ષમ કરો વૉઇસ પ્લેબેક અક્ષમ કરો - થપ્પી ઉમેરો + થપ્પી ઉમેરો ફિલ્ટર કરેલ ડેક બનાવો AnkiDroid શબ્દાવલિ પહોંચ બહાર છે מתבצע איתור כרטיסים ריקים… - לא מצליח לקבל הרשאת מיקרופון + לא מצליח לקבל הרשאת מיקרופון נכשל בפתיחת עורך מדיה. הרשאת הקלטת שמע נדחתה diff --git a/AnkiDroid/src/main/res/values-heb/10-preferences.xml b/AnkiDroid/src/main/res/values-heb/10-preferences.xml index 98947e1146a5..1c3e416d7ba9 100644 --- a/AnkiDroid/src/main/res/values-heb/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-heb/10-preferences.xml @@ -119,7 +119,7 @@ נגיעה בצד שמאל למטה נגיעה בצד ימין למטה נער את המכשיר - תפריט %s + תפריט %s מאפשר את תפריט ההקשר \'%s\' גלובלית במערכת גלילה כפולה הכפל את פער הגלילה עם eReader diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index fdc65729afed..edccb1cc3c29 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -116,7 +116,7 @@ AnkiDroid कार्ड नोट कॉपी करें - स्थानांतरित करे + स्थानांतरित करे प्रगति को रीसेट पुनः शेड्यूल करें पूर्वावलोकन @@ -146,8 +146,8 @@ निर्यात करने की तैयारी है… एक्सपोर्ट तैयार है apkg को संभालने के लिए कोई एप्लिकेशन उपलब्ध नहीं है। सहेजा जा रहा है … - सफलतापूर्वक Anki पैकेज को सहेजा गया - Anki पैकेज सहेजना विफल रहा + सफलतापूर्वक Anki पैकेज को सहेजा गया + Anki पैकेज सहेजना विफल रहा Anki पैकेज का उपयोग करके भेजें AnkiDroid निर्यात किए गए स्पैनिश: %s आप ऑफ़लाइन हैं - सिंक में दिकत + सिंक में दिकत गलती पुनः प्रयास करें साझा किए गए डेक पाएँ diff --git a/AnkiDroid/src/main/res/values-hi/10-preferences.xml b/AnkiDroid/src/main/res/values-hi/10-preferences.xml index 3fdc576069f3..761161ea5a36 100644 --- a/AnkiDroid/src/main/res/values-hi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hi/10-preferences.xml @@ -52,19 +52,19 @@ %s एमएस - कोई परिणाम नहीं + कोई परिणाम नहीं सामान्य - पढा जा रहा है + पढा जा रहा है विस्तृत - प्रणाली समीक्षा साथ साथ करना - निर्धारण + निर्धारण श्वेतपट्ट दिखावट थीम इशारे - नियंत्रणे + नियंत्रणे उन्नत वैकल्पिक हल प्लगइन @@ -111,13 +111,13 @@ बाएं स्पर्श करें दाएं स्पर्श करें नीचे स्पर्श करें - ऊपर से बाएं को छुएं - ऊपर से दाएं को छुएं + ऊपर से बाएं को छुएं + ऊपर से दाएं को छुएं मध्य में केंद्र को स्पर्श करें - नीचे से बाएं से छुएं - नीचे से दाएं को छुएं + नीचे से बाएं से छुएं + नीचे से दाएं को छुएं डिवाइस हिलाओ - ‘%s’ मेन्यू + ‘%s’ मेन्यू विश्व स्तर पर \'%s\' संदर्भ मेनू को सक्षम करता है डबल स्क्रॉल ई-रीडर के साथ स्क्रॉल गैप डबल diff --git a/AnkiDroid/src/main/res/values-hi/11-arrays.xml b/AnkiDroid/src/main/res/values-hi/11-arrays.xml index 964e5ae35122..0e1776c75e4b 100644 --- a/AnkiDroid/src/main/res/values-hi/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-hi/11-arrays.xml @@ -81,7 +81,7 @@ उत्तर (फिर से) कठिन उत्तर - सही उत्तर + सही उत्तर आसान उत्तर मीडिया चलाएं समीक्षक बंद करें diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index a18e11ad9748..cdfb2c18a2a0 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -46,7 +46,7 @@ Otvori ladicu - Zatvori ladicu + Zatvori ladicu Špil karata: Špil: Tip: @@ -58,14 +58,14 @@ Dodaj oznaku Označi / odznači sve oznake Filtriraj oznake - Niste još dodali ni jednu oznaku + Niste još dodali ni jednu oznaku Ažurirano na verziju %s Save whiteboard Enable stylus writing Disable stylus writing Omogući ploču - Onemogući ploču + Onemogući ploču Pokaži ploču Sakrij ploču Obriši ploču diff --git a/AnkiDroid/src/main/res/values-hr/10-preferences.xml b/AnkiDroid/src/main/res/values-hr/10-preferences.xml index b7e587005dc8..63ed0b1f23f5 100644 --- a/AnkiDroid/src/main/res/values-hr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hr/10-preferences.xml @@ -118,7 +118,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml index 1ca1666dbded..0ef081125c30 100644 --- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml @@ -121,7 +121,7 @@ Üres kártyák keresése… - Nem sikerült mikrofon engedélyt szerezni. + Nem sikerült mikrofon engedélyt szerezni. A Multimédia Szerkesztő megnyitása sikertelen Audió felvétel engedély megtagadva @@ -147,7 +147,7 @@ Hiba a kép kiválasztása közben. Kérjük olvassa el az útmutatót. %s Hiba a kép törlése közben Hiba a %s háttérkép feltevése közben - A Pakli Választó háttérkép túl nagy méretű + A Pakli Választó háttérkép túl nagy méretű A maximum képméret %d MB Image dimensions are too large (%1$d × %2$d) diff --git a/AnkiDroid/src/main/res/values-hu/10-preferences.xml b/AnkiDroid/src/main/res/values-hu/10-preferences.xml index 291b6bc44260..f711618aa325 100644 --- a/AnkiDroid/src/main/res/values-hu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hu/10-preferences.xml @@ -117,7 +117,7 @@ Érintés bal alul Érintés jobb alul Készülék megrázása - \'%s\' Menü + \'%s\' Menü Engedélyezi a \'%s\' kontextus menüt globálisan Dupla görgetés Görgess a kétszeres méretű e-Olvasó méretre diff --git a/AnkiDroid/src/main/res/values-hy/10-preferences.xml b/AnkiDroid/src/main/res/values-hy/10-preferences.xml index 9e453f0acc53..357a2b35af54 100644 --- a/AnkiDroid/src/main/res/values-hy/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hy/10-preferences.xml @@ -117,7 +117,7 @@ Սեղմել ներքևի ձախ մասում Սեղմել ներքևի աջ մասում Թափահարել սարքը - «%s» մենյու + «%s» մենյու Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ind/01-core.xml b/AnkiDroid/src/main/res/values-ind/01-core.xml index 4944d29a4f4a..cd2d01bdc6fe 100644 --- a/AnkiDroid/src/main/res/values-ind/01-core.xml +++ b/AnkiDroid/src/main/res/values-ind/01-core.xml @@ -158,7 +158,7 @@ Tidak dapat menyimpan perubahan templat kartu: %s Templat untuk kartu ini sudah dihapus. - Tampilan Peramban + Tampilan Peramban Info kartu diff --git a/AnkiDroid/src/main/res/values-ind/10-preferences.xml b/AnkiDroid/src/main/res/values-ind/10-preferences.xml index cb00181bee9a..d6eb12ae42e3 100644 --- a/AnkiDroid/src/main/res/values-ind/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ind/10-preferences.xml @@ -116,7 +116,7 @@ Sentuh bagian bawah kiri Sentuh bagian bawah kanan Goyangkan perangkat - Menu ‘%s’ + Menu ‘%s’ Mengaktifkan konteks menu ‘%s’ secara global Guliran ganda Gandakan jarak gulir dengan pembaca elektronik diff --git a/AnkiDroid/src/main/res/values-is/10-preferences.xml b/AnkiDroid/src/main/res/values-is/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-is/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-is/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-it/10-preferences.xml b/AnkiDroid/src/main/res/values-it/10-preferences.xml index be49f02d0691..f9ea47cb4ef7 100644 --- a/AnkiDroid/src/main/res/values-it/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-it/10-preferences.xml @@ -117,7 +117,7 @@ Tocca in basso a sinistra Tocca in basso a destra Agita il dispositivo - Menù «%s» + Menù «%s» Abilita il menù contestuale «%s» globalmente Doppio scorrimento Raddoppia il divario di scorrimento con eReader diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 6a1133e62e7f..6ae33a3f9ef8 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -150,7 +150,7 @@ לא הצליח לשמור את הקובץ במטמון (ייתכן ששטח האחסון נגמר) הייבוא נפסק: AnkiDroid נסגר הכנה ליצוא…‏ - הייצוא מוכן + הייצוא מוכן לא נמצא יישום התומך ב- apkg. שומר… חבילת ה־Anki נשמרה בהצלחה שמירת חבילת Anki נכשלה diff --git a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml index fd1ea3da056c..94a2abb1016e 100644 --- a/AnkiDroid/src/main/res/values-iw/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-iw/03-dialogs.xml @@ -75,7 +75,7 @@ כדי להוסיף כרטיסים ל-AnkiDroid הסר את כל קטגוריות פנקס הרשימות או הוסף אחת בשם \"ברירת מחדל\" הוספה/הורדה(“-3”) הגבלת כרטיסים חדשים להיום ב הוספה/הורדה(“-3”) הגבלת חזרות להיום ב - חזרה על כרטיסים נשכחים בx ימים האחרונים + חזרה על כרטיסים נשכחים בx ימים האחרונים עבור כמה ימים ברצונך לשנן מראש? צפייה ראשונית בכרטיסים חדשים שנוספו בx ימים האחרונים: האיחסון מלא @@ -128,7 +128,7 @@ מתבצע איתור כרטיסים ריקים… - לא מצליח לקבל הרשאת מיקרופון + לא מצליח לקבל הרשאת מיקרופון נכשל בפתיחת עורך מדיה. הרשאת הקלטת שמע נדחתה diff --git a/AnkiDroid/src/main/res/values-iw/10-preferences.xml b/AnkiDroid/src/main/res/values-iw/10-preferences.xml index 98947e1146a5..1c3e416d7ba9 100644 --- a/AnkiDroid/src/main/res/values-iw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-iw/10-preferences.xml @@ -119,7 +119,7 @@ נגיעה בצד שמאל למטה נגיעה בצד ימין למטה נער את המכשיר - תפריט %s + תפריט %s מאפשר את תפריט ההקשר \'%s\' גלובלית במערכת גלילה כפולה הכפל את פער הגלילה עם eReader diff --git a/AnkiDroid/src/main/res/values-ja/01-core.xml b/AnkiDroid/src/main/res/values-ja/01-core.xml index d8da95bb58ae..3c0d7eae908f 100644 --- a/AnkiDroid/src/main/res/values-ja/01-core.xml +++ b/AnkiDroid/src/main/res/values-ja/01-core.xml @@ -178,7 +178,7 @@ ファイル %s への書き込みまたは同ファイルの作成ができません アクセスできないコレクション - Playストアのプライバシーポリシーの変更により、AnkiDroidはアンインストール前のコレクションにはアクセスできなくなりました。\n\nコレクションは\n%s\nに保存されており、復元可能です。 \n\n復元するための選択肢は次の通りです: + Playストアのプライバシーポリシーの変更により、AnkiDroidはアンインストール前のコレクションにはアクセスできなくなりました。\n\nコレクションは\n%s\nに保存されており、復元可能です。 \n\n復元するための選択肢は次の通りです: AnkiDroidを数か月使用していなかったため、 %1$s の権限が、Androidによって削除されました。\n\nあなたのコレクション(データ)自体は削除されておらず、使用を再開することも可能ですのでご安心ください。あなたのコレクションは次のフォルダに安全に保管されています:\n%2$s\n\nAnkiDroidの利用を再開するために、次の中からご希望の対処方法を選択してください。 AnkiWebから復元 (推奨) フォルダへのアクセスを回復 (推奨) diff --git a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml index 74cde8a6228e..2194f1fae01f 100644 --- a/AnkiDroid/src/main/res/values-ja/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ja/03-dialogs.xml @@ -69,7 +69,7 @@ 上限枚数をいくつ増やしますか?(減らす場合は負の数) 上限枚数をいくつ増やしますか?(減らす場合は負の数) 直近 x 日間で「やり直し」を選んだカードを再学習 - x 日先までの復習カードを予習 + x 日先までの復習カードを予習 直近 x 日間で追加した習得未開始の新規カードを予習 ストレージの空き容量がありません ストレージの空き容量が少なくなっています @@ -136,7 +136,7 @@ データベースがロックされています AnkiDroidデータベースを別のアプリが使用中です。該当するアプリを終了してAnkiDroidを再起動してください。 互換性のないバージョンのデータベース - このデータベースは、このAnkiDroidでは使用できません。 これを使用するには、AnkiDroidをアップグレードするか、データベースをダウングレードしてください。\n\nこのAnkiDroidで開ける最大バージョン: %1$d\nこのデータベースのバージョン: %2$d\n\n次の復元オプションは、現在のコレクションを、このAnkiDroidで使用できる可能性が高いデータベースで上書きします。 + このデータベースは、このAnkiDroidでは使用できません。 これを使用するには、AnkiDroidをアップグレードするか、データベースをダウングレードしてください。\n\nこのAnkiDroidで開ける最大バージョン: %1$d\nこのデータベースのバージョン: %2$d\n\n次の復元オプションは、現在のコレクションを、このAnkiDroidで使用できる可能性が高いデータベースで上書きします。 背景画像に適用しました 背景画像を削除しました diff --git a/AnkiDroid/src/main/res/values-ja/10-preferences.xml b/AnkiDroid/src/main/res/values-ja/10-preferences.xml index 143070d5aa84..ccfaae53d456 100644 --- a/AnkiDroid/src/main/res/values-ja/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ja/10-preferences.xml @@ -116,7 +116,7 @@ 左下をタップ 右下をタップ デバイスを振る - 「%s」メニュー + 「%s」メニュー AnkiDroidおよび他のアプリ(ウェブブラウザなど)で、文字列を選択した際に表示されるコンテキストメニューに「%s」という項目を追加します ダブルスクロール eReader とのスクロールのギャップを 2 倍にする場合、これを有効にします diff --git a/AnkiDroid/src/main/res/values-jv/10-preferences.xml b/AnkiDroid/src/main/res/values-jv/10-preferences.xml index 0f0b55cad9c9..6744950912bc 100644 --- a/AnkiDroid/src/main/res/values-jv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-jv/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ka/01-core.xml b/AnkiDroid/src/main/res/values-ka/01-core.xml index 1fd9f5019ed5..0f7efe802fde 100644 --- a/AnkiDroid/src/main/res/values-ka/01-core.xml +++ b/AnkiDroid/src/main/res/values-ka/01-core.xml @@ -176,7 +176,7 @@ კოლექციები ვერ შეერთდება.\nრომელი კოლექციის დატოვება გსურთ? AnkiDroid Ankiweb - ჩავანაცვლოთ თქვენი კოლექცია Ankidroid-ზე თქვენი AnkiWeb-ის კოლექციით? + ჩავანაცვლოთ თქვენი კოლექცია Ankidroid-ზე თქვენი AnkiWeb-ის კოლექციით? ჩანაცვლდეს თქვენი კოლექცია AnkiWeb-ზე თქვენი AnkiDroid-ის კოლექციით? აირჩიეთ კოლექცია რომ დარჩეს კოლექციის ჩანაცვლება diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 73ceaacafdaf..2e2616bc6f28 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -286,7 +286,7 @@ ნაკლები მეცადინეობა მეტის დამახსოვრება - Anki-ს განრიგის მგეგმავი რთულად დასახსომებელი ცოდნის უკეთ დასწავლასა და ღრმა ცოდნის შენარჩუნებაში გეხმარებათ, რათა დაზოგოთ ძვირფასი დრო + Anki-ს განრიგის მგეგმავი რთულად დასახსომებელი ცოდნის უკეთ დასწავლასა და ღრმა ცოდნის შენარჩუნებაში გეხმარებათ, რათა დაზოგოთ ძვირფასი დრო დაწყება სინქრონიზაცია AnkiWeb-თან diff --git a/AnkiDroid/src/main/res/values-ka/09-backup.xml b/AnkiDroid/src/main/res/values-ka/09-backup.xml index 09fe8c5730ce..331c2f93fe8c 100644 --- a/AnkiDroid/src/main/res/values-ka/09-backup.xml +++ b/AnkiDroid/src/main/res/values-ka/09-backup.xml @@ -63,6 +63,6 @@ ამ მოწყობილობაზე ვერ მოიძებნა სარეზერვო ასლი. თქვენს კომპიუტერზე თუ გაქვთ შენახული სარეზერვო ასლები, ჩააკოპირეთ ისინი AnkiDroid-ის საქაღალდეში. კოლექცია არ გაიხსნა თქვენი კოლექცია დაზიანებულია.\n\nსარეზერვო ასლიდან აღსადგენად შეეხეთ „ პარამეტრების“ ღილაკს; თუ არ იმუშავა, გთხოვთ, იხილოთ ინსტრუქცია მონაცემთა ბასის შესაკეთებლად:\n%1$s - თქვენს კოლექციაზე წვდომისას დაფიქსირდა შეცდომა. შესაძლოა ეს უბრალოდ უვნებელი შეცდომის შედეგი იყოს ან კოლექციას რამე პრობლემა ქონდეს. \n\nშეცდომის გამოსწორების მიზნით გთხოვთ შეეხოთ „მონაცემთა ბაზის შემოწმებას“ ან დააჭიროთ „პარამეტრების“ ღილაკს, რათა აღადგინოთ მონაცემები სარეზერვო ასლიდან. ამ შეტყობინების მუდმივად ნახვის შემთხვევაში გთხოვთ გამოგვიგზავნოთ ხარვეზის შეტყობინება:\n%1$s + თქვენს კოლექციაზე წვდომისას დაფიქსირდა შეცდომა. შესაძლოა ეს უბრალოდ უვნებელი შეცდომის შედეგი იყოს ან კოლექციას რამე პრობლემა ქონდეს. \n\nშეცდომის გამოსწორების მიზნით გთხოვთ შეეხოთ „მონაცემთა ბაზის შემოწმებას“ ან დააჭიროთ „პარამეტრების“ ღილაკს, რათა აღადგინოთ მონაცემები სარეზერვო ასლიდან. ამ შეტყობინების მუდმივად ნახვის შემთხვევაში გთხოვთ გამოგვიგზავნოთ ხარვეზის შეტყობინება:\n%1$s კოლექცია ვერ შეკეთდა diff --git a/AnkiDroid/src/main/res/values-ka/10-preferences.xml b/AnkiDroid/src/main/res/values-ka/10-preferences.xml index 5905109b8d0b..add6dedb5427 100644 --- a/AnkiDroid/src/main/res/values-ka/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ka/10-preferences.xml @@ -117,7 +117,7 @@ ქვედა მარცხენა კუთხეში შეხება ქვედა მარჯვენა კუთხეში შეხება მოწყობილობის შენჯღრევა - „%s“-მენიუ + „%s“-მენიუ გლობალურად ამატებს „%s“ ღილაკს კონტექსტურ მენიუში (მენიუ, რომელიც ტექსტის მონიშვნისას ჩნდება) ორმაგი ჩამოყოლა ელ-წამკითხველებში ეკრანის აწევ-ჩამოწევის დაშორების გაორმაგება diff --git a/AnkiDroid/src/main/res/values-kk/10-preferences.xml b/AnkiDroid/src/main/res/values-kk/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-kk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kk/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-km/10-preferences.xml b/AnkiDroid/src/main/res/values-km/10-preferences.xml index 7580650b7d07..6c1099c77fc7 100644 --- a/AnkiDroid/src/main/res/values-km/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-km/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-kn/01-core.xml b/AnkiDroid/src/main/res/values-kn/01-core.xml index 15135556085f..064de6f39ef5 100644 --- a/AnkiDroid/src/main/res/values-kn/01-core.xml +++ b/AnkiDroid/src/main/res/values-kn/01-core.xml @@ -76,7 +76,7 @@ ಉತ್ತರ ತೋರಿಸು ಉತ್ತರವನ್ನು ಮರೆಮಾಡಿ ಮತ್ತೆ - ಕಠಿಣ + ಕಠಿಣ ಒಳ್ಳೆಯದು ಸುಲಭ ಇಂಪೋರ್ಟ್ @@ -89,7 +89,7 @@ ಕಿರುದಾರಿ ರಚಿಸಿ ಕಾರ್ಡ್‌ಗಳನ್ನು ಬ್ರೌಸ್ ಮಾಡಿ ವಿವರಣೆಯನ್ನು ಸಂಪಾದಿಸಿ - ಸೇರಿಸಿ + ಸೇರಿಸಿ ಟಿಪ್ಪಣಿ ಸೇರಿಸಿ ಖಾತೆಯನ್ನು ಸಿಂಕ್ ಮಾಡಿ ಮರೆಮಾಡು / ಅಳಿಸಿ diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index 427e1ccc5496..38f668f398f0 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -70,7 +70,7 @@ ವೈಟ್‌ಬೋರ್ಡ್ ಮರೆಮಾಡಿ ವೈಟ್‌ಬೋರ್ಡ್ ತೆರವುಗೊಳಿಸಿ ಆಡಿಯೊವನ್ನು ರಿಪ್ಲೇ ಮಾಡಿ - ಕಾರ್ಡ್ ಅನ್ನು ಲೀಚ್ ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ ಮತ್ತು ಅಮಾನತುಗೊಳಿಸಲಾಗಿದೆ + ಕಾರ್ಡ್ ಅನ್ನು ಲೀಚ್ ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ ಮತ್ತು ಅಮಾನತುಗೊಳಿಸಲಾಗಿದೆ ಕಾರ್ಡ್ ಅನ್ನು ಲೀಚ್ ಎಂದು ಗುರುತಿಸಲಾಗಿದೆ ಅಜ್ಞಾತ ದೋಷ ವೆಬ್‌ವೀಕ್ಷಣೆಯಲ್ಲಿನ ಆಂತರಿಕ ದೋಷದಿಂದಾಗಿ ಇದು ಸಂಭವಿಸಿದೆ diff --git a/AnkiDroid/src/main/res/values-kn/10-preferences.xml b/AnkiDroid/src/main/res/values-kn/10-preferences.xml index 05319dc037be..b2dfe8a0938d 100644 --- a/AnkiDroid/src/main/res/values-kn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-kn/10-preferences.xml @@ -117,7 +117,7 @@ ಕೆಳಗಿನ ಎಡಭಾಗವನ್ನು ಸ್ಪರ್ಶಿಸಿ ಕೆಳಗಿನ ಬಲಕ್ಕೆ ಸ್ಪರ್ಶಿಸಿ ಸಾಧನವನ್ನು ಅಲ್ಲಾಡಿಸಿ - \'%s\' ಮೆನು + \'%s\' ಮೆನು ಜಾಗತಿಕವಾಗಿ \'%s\' ಸಂದರ್ಭ ಮೆನುವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ ಡಬಲ್ ಸ್ಕ್ರೋಲಿಂಗ್ eReader ನೊಂದಿಗೆ ಸ್ಕ್ರಾಲ್ ದೂರವನ್ನು ದ್ವಿಗುಣಗೊಳಿಸಿ @@ -233,7 +233,7 @@ ಸಾಮಾನ್ಯ ಜ್ಞಾಪನೆಗಳು ಫಿಲ್ಟರ್ - ಇದಕ್ಕಾಗಿ ಹುಡುಕು + ಇದಕ್ಕಾಗಿ ಹುಡುಕು ಗೆ ಮಿತಿ Cards selected by ಮರುಹೊಂದಿಸಿ diff --git a/AnkiDroid/src/main/res/values-ko/10-preferences.xml b/AnkiDroid/src/main/res/values-ko/10-preferences.xml index e08e9886466f..00c07d5067fc 100644 --- a/AnkiDroid/src/main/res/values-ko/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ko/10-preferences.xml @@ -116,7 +116,7 @@ 왼쪽 하단 터치 오른쪽 하단 터치 기기 흔들기 - \"%s\" 메뉴 + \"%s\" 메뉴 시스템 전역에서 글자를 길게 눌렀을 때 \'%s\' 컨텍스트 메뉴를 보입니다. 이중 스크롤 eReader 사용시 스크롤 간격 두배로 늘리기 diff --git a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml index 946a10eedd38..b84a6bdb3bf0 100644 --- a/AnkiDroid/src/main/res/values-ko/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-ko/17-model-manager.xml @@ -45,7 +45,7 @@ 이름 변경하기 카드 편집하기 - 노트 유형 이름 바꾸기 + 노트 유형 이름 바꾸기 키보드 언어 힌트를 %s로 설정하기 diff --git a/AnkiDroid/src/main/res/values-ku/10-preferences.xml b/AnkiDroid/src/main/res/values-ku/10-preferences.xml index 1a12afc3c31c..5f33bc5fee24 100644 --- a/AnkiDroid/src/main/res/values-ku/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ku/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ky/10-preferences.xml b/AnkiDroid/src/main/res/values-ky/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-ky/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ky/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-lt/01-core.xml b/AnkiDroid/src/main/res/values-lt/01-core.xml index f38084fb37a4..96cb94e0bb46 100644 --- a/AnkiDroid/src/main/res/values-lt/01-core.xml +++ b/AnkiDroid/src/main/res/values-lt/01-core.xml @@ -133,7 +133,7 @@ Prašome pirmiausiai pervadinti esamą individualaus mokymosi rinkinį Rinkinio paieška Šis rinkinys yra tuščias - Rinkinio paieška + Rinkinio paieška Blogas rinkinio vardas Congratulations! You have finished for today. Deck finished for now! %s @@ -154,7 +154,7 @@ Galinė pusė Išvaizdos keitimas Naršyklės išvaizda - Rinkinio perrašymas + Rinkinio perrašymas Įterpti laukelį Pasirinkti laukelį Reikalingas bent vienas kortelės tipas diff --git a/AnkiDroid/src/main/res/values-lt/10-preferences.xml b/AnkiDroid/src/main/res/values-lt/10-preferences.xml index da51a0dcd14a..72db714301fa 100644 --- a/AnkiDroid/src/main/res/values-lt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lt/10-preferences.xml @@ -119,7 +119,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Dvigubas slinkimas Padvigubinkite slinkimo tarpą naudodami el. knygų skaityklę @@ -250,7 +250,7 @@ Delays are in seconds. 0 returns card to original deck. Padėkite tobulinti „AnkiDroid“! - Dalintis funkcijų naudojimu + Dalintis funkcijų naudojimu Galite prisidėti prie „AnkiDroid“ tobulinimo, padėdami kūrėjų komandai suprasti, kokiomis funkcijomis žmonės naudojasi Replace newlines with HTML In the Note Editor, convert any instances of <br> to newlines when editing a card. diff --git a/AnkiDroid/src/main/res/values-lv/10-preferences.xml b/AnkiDroid/src/main/res/values-lv/10-preferences.xml index 7e32dc0495df..61a6ac3f7dba 100644 --- a/AnkiDroid/src/main/res/values-lv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-lv/10-preferences.xml @@ -118,7 +118,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-mk/10-preferences.xml b/AnkiDroid/src/main/res/values-mk/10-preferences.xml index 36d535304d51..2d27886b5c21 100644 --- a/AnkiDroid/src/main/res/values-mk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mk/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ml/10-preferences.xml b/AnkiDroid/src/main/res/values-ml/10-preferences.xml index ee9b1eb61620..f6d7abe1086a 100644 --- a/AnkiDroid/src/main/res/values-ml/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ml/10-preferences.xml @@ -117,7 +117,7 @@ ചുവടെ ഇടത് സ്പർശിക്കുക ചുവടെ വലതുവശത്ത് സ്‌പർശിക്കുക ഉപകരണം കുലുക്കുക - ‘%s’ മെനു + ‘%s’ മെനു ആഗോളതലത്തിൽ ‘%s’ സന്ദർഭ മെനു പ്രവർത്തനക്ഷമമാക്കുന്നു ഇരട്ട സ്ക്രോളിംഗ് eReader ഉപയോഗിച്ച് സ്ക്രോൾ വിടവ് ഇരട്ടിയാക്കുക diff --git a/AnkiDroid/src/main/res/values-mn/01-core.xml b/AnkiDroid/src/main/res/values-mn/01-core.xml index d019686631be..ba496bd68a53 100644 --- a/AnkiDroid/src/main/res/values-mn/01-core.xml +++ b/AnkiDroid/src/main/res/values-mn/01-core.xml @@ -147,7 +147,7 @@ Картын урд талын загвар Картын ард талын загвар Харагдах байдал - Карт хайгчид харагдах байдал + Карт хайгчид харагдах байдал Багцыг шууд сонгох Талбар оруулах Талбараа сонгох @@ -163,7 +163,7 @@ Картны загварын өөрчлөлтүүдийг хадгалах боломжгүй байна:%s Энэ картны төрөл нь устгагдсан байна - Карт хайгчийн харагдах байдал + Карт хайгчийн харагдах байдал Картын тухай мэдээлэл diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 5ddffc7feb50..3095a3491ae3 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -64,7 +64,7 @@ Зурсан зургаа хадгалах Enable stylus writing Disable stylus writing - Зураг зурах горимыг идэвхжүүлэх + Зураг зурах горимыг идэвхжүүлэх Зураг зурах горимыг унтраах Зурсан зургыг харуулах Зурсан зургыг нуух @@ -74,13 +74,13 @@ Card marked as leech Тодорхойгүй алдаа This was caused by an internal error in the WebView - Багтаамж дүүрсэн байна + Багтаамж дүүрсэн байна The WebView was terminated by the system. This typically happens when the application runs out of memory, often due to large fonts or media. WebView renderer crashed. Cause: %s Fatal Error: WebView renderer crashed. Cause: %s System WebView Rendering Failure System WebView failed to render card \'%1$s\'.\n %2$s - Дарцагнууд + Дарцагнууд Limit to particular tags diff --git a/AnkiDroid/src/main/res/values-mn/10-preferences.xml b/AnkiDroid/src/main/res/values-mn/10-preferences.xml index 5a7b2e0e63d5..c8775dba4933 100644 --- a/AnkiDroid/src/main/res/values-mn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mn/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-mr/10-preferences.xml b/AnkiDroid/src/main/res/values-mr/10-preferences.xml index fce8239f69ed..07ac158f4790 100644 --- a/AnkiDroid/src/main/res/values-mr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-mr/10-preferences.xml @@ -117,7 +117,7 @@ डावीकडे तळाशी स्पर्श करा उजवीकडे तळाशी स्पर्श करा शेक डिव्हाइस - ‘%s’ मेनू + ‘%s’ मेनू जागतिक स्तरावर ‘%s’ संदर्भ मेनू सक्षम करते डबल स्क्रोलिंग EReader सह स्क्रोल अंतर दुप्पट करा diff --git a/AnkiDroid/src/main/res/values-ms/10-preferences.xml b/AnkiDroid/src/main/res/values-ms/10-preferences.xml index fae55e520a82..52bf5127aec0 100644 --- a/AnkiDroid/src/main/res/values-ms/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ms/10-preferences.xml @@ -116,7 +116,7 @@ Sentuh bawah kiri Sentuh bawah kanan Shake device - Menu ‘%s’ + Menu ‘%s’ Dayakan menu konteks ‘%s’ secara global Tatal dua kali Jarak tatal ganda dua untuk e-pembaca diff --git a/AnkiDroid/src/main/res/values-my/10-preferences.xml b/AnkiDroid/src/main/res/values-my/10-preferences.xml index 0f0b55cad9c9..6744950912bc 100644 --- a/AnkiDroid/src/main/res/values-my/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-my/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 7437411e0ec8..af3d16185798 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -80,7 +80,7 @@ Fatale fout: WebView renderer is gecrasht. Oorzaak: %s Systeem WebView Rendering Mislukking. Systeem WebView kon de kaart \'%1$s\' niet renderen.\n%2$s - Vlaggen + Vlaggen Beperken tot bepaalde tags diff --git a/AnkiDroid/src/main/res/values-nl/10-preferences.xml b/AnkiDroid/src/main/res/values-nl/10-preferences.xml index 55de3dbe51fb..aae9cb87a030 100644 --- a/AnkiDroid/src/main/res/values-nl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nl/10-preferences.xml @@ -117,7 +117,7 @@ Druk linksonder Druk rechtsonder Schud apparaat - ‘%s’ menu + ‘%s’ menu Schakelt het contextmenu \' \'%s\' overal in Sneller scrollen Verdubbel de scroll-afstand voor eReader diff --git a/AnkiDroid/src/main/res/values-nn/04-network.xml b/AnkiDroid/src/main/res/values-nn/04-network.xml index c5af5dec75a3..f3debe49fdcb 100644 --- a/AnkiDroid/src/main/res/values-nn/04-network.xml +++ b/AnkiDroid/src/main/res/values-nn/04-network.xml @@ -74,7 +74,7 @@ Databasen din er ødelagt. Vennligst fiks den før du prøver å synkronisere på nytt.\n\nSee %s for informasjon om å reparere databaser. Lokalt - Ekstern + Ekstern One-way sync One way sync requested The requested change will require a full upload of the database when you next synchronize your collection. If you have reviews or other changes waiting on another device that haven’t been synchronized here yet, they will be lost. Continue? diff --git a/AnkiDroid/src/main/res/values-nn/10-preferences.xml b/AnkiDroid/src/main/res/values-nn/10-preferences.xml index b947fe8b4de8..1e9662eee910 100644 --- a/AnkiDroid/src/main/res/values-nn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-nn/10-preferences.xml @@ -117,7 +117,7 @@ Berør nederst til venstre Berør nederst til høyre Shake device - ‘%s’ Meny + ‘%s’ Meny Enables the ‘%s’ context menu globally Dobbelskrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-no/04-network.xml b/AnkiDroid/src/main/res/values-no/04-network.xml index 14c122fd8d52..41653286e9b9 100644 --- a/AnkiDroid/src/main/res/values-no/04-network.xml +++ b/AnkiDroid/src/main/res/values-no/04-network.xml @@ -74,7 +74,7 @@ Databasen din er ødelagt. Vennligst fiks den før du prøver å synkronisere på nytt.\n\nSee %s for informasjon om å reparere databaser. Lokalt - Ekstern + Ekstern One-way sync One way sync requested The requested change will require a full upload of the database when you next synchronize your collection. If you have reviews or other changes waiting on another device that haven’t been synchronized here yet, they will be lost. Continue? diff --git a/AnkiDroid/src/main/res/values-no/10-preferences.xml b/AnkiDroid/src/main/res/values-no/10-preferences.xml index e13ea649f9fb..f14ca5be4423 100644 --- a/AnkiDroid/src/main/res/values-no/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-no/10-preferences.xml @@ -117,7 +117,7 @@ Berør nederst til venstre Berør nederst til høyre Shake device - ‘%s’ Meny + ‘%s’ Meny Enables the ‘%s’ context menu globally Dobbelskrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index b46d46cb6e01..77769b81c340 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -95,7 +95,7 @@ କୌଣସି ପତ୍ର ସୃଷ୍ଟି ହୋଇନାହିଁ। ଦୟାକରି ଅଧିକ କ୍ଷେତ୍ର ପୂରଣ କରନ୍ତୁ ଚଳିତ ନୋଟ୍ ପ୍ରକାର କୌଣସି ପତ୍ର ଉତ୍ପାଦନ କଲା ନାହିଁ।\nଦୟାକରି ଅନ୍ୟ କୌଣସି ନୋଟ୍ ପ୍ରକାର ବାଛନ୍ତୁ କିମ୍ବା ‘ପତ୍ର’ କ୍ଲିକ୍ କରି ଗୋଟେ କ୍ଷେତ୍ର ପ୍ରତିସ୍ଥାପନ ଯୋଡ଼ନ୍ତୁ କ୍ଲୋଜ ବିଲୋପ କେବଳ କ୍ଲୋଜ ନୋଟ ପ୍ରକାରରେ ହିଁ କାମ କରେ - ନୋଟ୍ ସଂରକ୍ଷିତ କରାଯାଉଛି + ନୋଟ୍ ସଂରକ୍ଷିତ କରାଯାଉଛି ନୋଟ୍ ପ୍ରକାର ସଂରକ୍ଷିତ ହଉଛି ସଞ୍ଚୟ ବନ୍ଦ diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml index 44eb04f64da5..f2d91aaa43ba 100644 --- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml @@ -138,7 +138,7 @@ ଡାଟାବେସ୍ ଲକ୍ ହୋଇଛି AnkiDroid ଡାଟାବେସ୍ ଅନ୍ୟ ଏକ ଆପ୍ ଦ୍ୱାରା ଵ୍ୟଵହାର ହେଉଛି। ଦୟାକରି ଅନ୍ୟ ଆପ୍‌ଟିକୁ ବନ୍ଦ କରି AnkiDroid ଖୋଲନ୍ତୁ। - ଅସଙ୍ଗତ ଡାଟାବେସ୍ ସଂସ୍କରଣ + ଅସଙ୍ଗତ ଡାଟାବେସ୍ ସଂସ୍କରଣ AnkiDroidର ଏହି ସଂସ୍କରଣ ଡାଟାବେସ୍ ସହିତ କାମ କରିପାରିବନାହିଁ। ଏହାକୁ ଖୋଲିବା ପାଇଁ AnkiDroidକୁ ଅଦ୍ୟତନ କରନ୍ତୁ କିମ୍ବା ଡାଟାବେସ୍‌କୁ ଡାଉନଗ୍ରେଡ୍ କରନ୍ତୁ\n\nସମର୍ଥିତ ସଂସ୍କରଣ: %1$d\nଡାଟାବେସ୍ ସଂସ୍କରଣ: %2$d\n\nନିମ୍ନଲିଖିତ ପୁନରୁଦ୍ଧାର ଵିକଳ୍ପ ଆପଣଙ୍କର ସାମ୍ପ୍ରତିକ ସଂଗ୍ରହକୁ ନବଲିଖନ କରିବ, ସମ୍ଭବତଃ ଏକ ସୁସଙ୍ଗତ ଡାଟାବେସ୍ ସଂସ୍କରଣ ସହିତ: ପୃଷ୍ଠପଟ ପ୍ରତିଛବି ପ୍ରୟୋଗ ହୋଇଛି diff --git a/AnkiDroid/src/main/res/values-or/04-network.xml b/AnkiDroid/src/main/res/values-or/04-network.xml index 61d145b7ff43..c52469516d3f 100644 --- a/AnkiDroid/src/main/res/values-or/04-network.xml +++ b/AnkiDroid/src/main/res/values-or/04-network.xml @@ -60,7 +60,7 @@ AnkiWeb ଖାତା ନାହିଁ କି? ଏହା ମାଗଣା ଅଟେ! ସୂଚନା: AnkiWeb AnkiDroid ସହିତ ଜଡ଼ିତ ନୁହେଁ ସାଇନ୍ ଅପ୍ - ଭାବେ ଲଗ୍ ଇନ୍ କରିଛନ୍ତି + ଭାବେ ଲଗ୍ ଇନ୍ କରିଛନ୍ତି ଲଗ୍ ଆଉଟ୍ ପାସ୍‌ୱର୍ଡ଼ ପୁନଃସେଟ୍ କର ଇମେଲ୍ ଭୁଲିଗଲେ କି? diff --git a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml index 92d8a72038de..d3531829f192 100644 --- a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml @@ -67,7 +67,7 @@ ମୋ ସନ୍ଧାନଗୁଡ଼ିକ ସନ୍ଧାନ ସଂରକ୍ଷିତ କର ଏକ ସଞ୍ଚିତ ସନ୍ଧାନ ବାଛନ୍ତୁ - ସାମ୍ପ୍ରତିକ ସନ୍ଧାନ ପାଇଁ ନାମ + ସାମ୍ପ୍ରତିକ ସନ୍ଧାନ ପାଇଁ ନାମ ଆପଣ ନାମ ବିନା ସନ୍ଧାନ ସଞ୍ଚୟ କରିପାରିବେ ନାହିଁ ନାଁଟି ଵିଦ୍ୟମାନ ଅଛି ସମ୍ପାଦନ କରିବାକୁ କୌଣସି ନୋଟ୍ ନାହିଁ @@ -76,7 +76,7 @@ ସନ୍ଧାନ ସନ୍ଧାନ ପ୍ରଦର୍ଶନ କ୍ରମ ପରିବର୍ତ୍ତନ କରନ୍ତୁ - ଟ୍ୟାଗ୍ + ଟ୍ୟାଗ୍ କୌଣସି ସଜାଣି ନାହିଁ (ଦ୍ରୁତ) ସଜାଇବା କ୍ଷେତ୍ର ଅନୁସାରେ diff --git a/AnkiDroid/src/main/res/values-or/10-preferences.xml b/AnkiDroid/src/main/res/values-or/10-preferences.xml index 441b861c4858..02f477755b8b 100644 --- a/AnkiDroid/src/main/res/values-or/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-or/10-preferences.xml @@ -117,7 +117,7 @@ ତଳ ବାମକୁ ସ୍ପର୍ଶ କଲେ ତଳ ଡାହାଣକୁ ସ୍ପର୍ଶ କଲେ ଡିଵାଇସ୍ ଝାଙ୍କିଲେ - ‘%s’ ମେନୁ + ‘%s’ ମେନୁ ସବୁ ଜାଗାରେ ‘%s’ ପ୍ରସଙ୍ଗ ମେନୁକୁ ସକ୍ଷମ କରିଥାଏ ଦ୍ୱିଗୁଣ ସ୍କ୍ରୋଲିଂ eReaderରେ ସ୍କ୍ରୋଲ୍ ଫାଙ୍କକୁ ଦୁଇଗୁଣ କରନ୍ତୁ diff --git a/AnkiDroid/src/main/res/values-pa/10-preferences.xml b/AnkiDroid/src/main/res/values-pa/10-preferences.xml index cf5e71071f84..0871fcf08f0a 100644 --- a/AnkiDroid/src/main/res/values-pa/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pa/10-preferences.xml @@ -117,7 +117,7 @@ ਹੇਠਾਂ ਖੱਬੇ ਪਾਸੇ ਛੋਹਵੋ ਹੇਠਾਂ ਸੱਜੇ ਪਾਸੇ ਛੋਹਵੋ ਸ਼ੇਕ ਜੰਤਰ - \'%s\' ਮੀਨੂ + \'%s\' ਮੀਨੂ ਵਿਸ਼ਵ ਪੱਧਰ \'ਤੇ \'%s\' ਸੰਦਰਭ ਮੀਨੂ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ ਡਬਲ ਸਕ੍ਰੋਲਿੰਗ eReader ਨਾਲ ਸਕ੍ਰੋਲ ਗੈਪ ਨੂੰ ਦੁੱਗਣਾ ਕਰੋ diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index d286aa22e0c6..25366c9d37ee 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -80,7 +80,7 @@ Błąd krytyczny: awaria renderowania WebView. Przyczyna: %s Błąd renderowania WebView systemu System WebView nie potrafił wyrenderować karty \'%1$s\'.\n %2$s - Flagi + Flagi Ogranicz do poszczególnych tagów diff --git a/AnkiDroid/src/main/res/values-pl/10-preferences.xml b/AnkiDroid/src/main/res/values-pl/10-preferences.xml index a600c190a198..a6ed05f686a1 100644 --- a/AnkiDroid/src/main/res/values-pl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pl/10-preferences.xml @@ -119,8 +119,8 @@ Dotknij lewej dolnej części ekranu Dotknij prawej dolnej części ekranu Potrząśnij urządzeniem - Menu „%s” - Włącza menu kontekstowe „%s”globalne + Menu „%s” + Włącza menu kontekstowe „%s”globalne Podwójne przewijanie Podwójny skok suwaka na eReaderze Czułość przy przewijaniu @@ -299,7 +299,7 @@ Ustawienia programisty Włącz opcje dla programistów - Wyłącz opcje dla programistów + Wyłącz opcje dla programistów Please be sure before enabling developer options. These options are dangerous and could break the app or corrupt your collection.\n\nNote that these options are not suited for most users and therefore are not translated, so they are in English. Selecione Tags 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 55810d8247fe..54ec232f5283 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/10-preferences.xml @@ -117,7 +117,7 @@ Toque no canto inferior esquerdo Toque no canto inferior direito Agitar o dispositivo - Menu ‘%s’ + Menu ‘%s’ Activa o menu contextual ‘%s’, globalmente Scroll duplo Duplicar a velocidade de scroll com o eReader diff --git a/AnkiDroid/src/main/res/values-pt-rPT/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-pt-rPT/16-multimedia-editor.xml index 76793be159d0..a94ad8c7ff10 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/16-multimedia-editor.xml @@ -65,7 +65,7 @@ Falha na gravação Falha na reprodução - Não foi possível criar a barra de ferramentas de gravação + Não foi possível criar a barra de ferramentas de gravação Quer recortar esta imagem? Recortar imagem diff --git a/AnkiDroid/src/main/res/values-ro/01-core.xml b/AnkiDroid/src/main/res/values-ro/01-core.xml index 629a181ad196..5dabc1bb22a5 100644 --- a/AnkiDroid/src/main/res/values-ro/01-core.xml +++ b/AnkiDroid/src/main/res/values-ro/01-core.xml @@ -106,11 +106,11 @@ Marcaj Rename flags Marchează card - Editează etichete + Editează etichete Doriți sigur să ștergeți această notă și toate cardurile sale?\n%s Căutare în %1$s Marcheaza nota - Demarcheaza nota + Demarcheaza nota Enable voice playback Disable voice playback Crează punte diff --git a/AnkiDroid/src/main/res/values-ro/10-preferences.xml b/AnkiDroid/src/main/res/values-ro/10-preferences.xml index fe449472cd22..ecdd4c451ecd 100644 --- a/AnkiDroid/src/main/res/values-ro/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ro/10-preferences.xml @@ -118,7 +118,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 0a0a57363097..5d9c11f14e56 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -140,7 +140,7 @@ Подготовка файла для импорта… Добавить Ваша коллекция будет удалена, и её заменят данные из файла %s - Добавить \"%s\" в коллекцию? Может потребоваться немало времени + Добавить \"%s\" в коллекцию? Может потребоваться немало времени Это недопустимый пакет Anki Ошибка Не удалось импортировать файл\n\n%s diff --git a/AnkiDroid/src/main/res/values-ru/10-preferences.xml b/AnkiDroid/src/main/res/values-ru/10-preferences.xml index 8410c29f97af..40b4e05cbf79 100644 --- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml @@ -119,7 +119,7 @@ Касание внизу в левом углу Касание внизу в правом углу Потрясти устройство - Пункт «%s» в меню + Пункт «%s» в меню Добавляет пункт «%s» в контекстное меню системы Двойная прокрутка Удвоить дистанцию прокрутки на читалках diff --git a/AnkiDroid/src/main/res/values-sat/01-core.xml b/AnkiDroid/src/main/res/values-sat/01-core.xml index 64bd00a34917..8431af58b448 100644 --- a/AnkiDroid/src/main/res/values-sat/01-core.xml +++ b/AnkiDroid/src/main/res/values-sat/01-core.xml @@ -89,7 +89,7 @@ ᱥᱚᱴᱠᱚᱴ ᱛᱮᱭᱟᱨ ᱢᱮ ᱠᱟᱰ ᱠᱚ ᱵᱨᱟᱩᱡᱽ ᱢᱮ ᱥᱟᱯᱲᱟᱣ ᱞᱤᱥᱴᱤ - ᱥᱮᱞᱮᱫ + ᱥᱮᱞᱮᱫ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱥᱮᱞᱮᱫ ᱢᱮ ᱠᱷᱟᱛᱟ ᱟᱹᱭᱩᱨ ᱢᱤᱫ ᱢᱮ ᱩᱠᱩᱭ ᱢᱮ/ᱜᱫ ᱜᱤᱰᱤ @@ -112,7 +112,7 @@ ᱥᱮᱨᱮᱧ ᱯᱷᱟᱭᱞᱟᱣ ᱵᱚᱫᱚᱞ ᱱᱟᱶᱟ ᱰᱮᱠ ᱛᱮᱭᱟᱨ ᱢᱮ ᱯᱷᱤᱞᱴᱚᱨ ᱰᱮᱠ ᱛᱮᱭᱟᱨ ᱢᱮ - AnkiDroid ᱩᱱᱩᱫᱩᱜ ᱫᱚ ᱵᱟᱭ ᱦᱟᱛᱟᱣ ᱫᱟᱲᱮᱟᱜ ᱠᱟᱱᱟ + AnkiDroid ᱩᱱᱩᱫᱩᱜ ᱫᱚ ᱵᱟᱭ ᱦᱟᱛᱟᱣ ᱫᱟᱲᱮᱟᱜ ᱠᱟᱱᱟ ᱵᱨᱟᱩᱡᱚᱨ ᱧᱮᱞᱚᱜ ᱠᱚ diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index 3480004b6005..a1cb5ce5adda 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -46,34 +46,34 @@ ᱰᱨᱚᱣᱟᱹᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ - ᱰᱨᱚᱣᱟᱹᱨ ᱵᱚᱸᱫᱚᱭ ᱢᱮ + ᱰᱨᱚᱣᱟᱹᱨ ᱵᱚᱸᱫᱚᱭ ᱢᱮ ᱠᱟᱰ ᱰᱮᱠᱺ ᱰᱮᱠᱺ ᱯᱨᱚᱠᱟᱨᱺ - ᱴᱮᱜᱥᱺ%1$s - ᱠᱟᱰᱺ%1$s + ᱴᱮᱜᱥᱺ%1$s + ᱠᱟᱰᱺ%1$s ᱚᱠᱥᱩᱞᱤᱥᱚᱱ ᱥᱟᱯᱲᱟᱣ ᱢᱮ - ᱴᱮᱜ ᱧᱩᱛᱩᱢ - ᱥᱮᱞᱮᱫ/ᱴᱮᱜ ᱯᱷᱤᱞᱴᱚᱨ - ᱴᱮᱜ ᱥᱮᱞᱮᱫ ᱢᱮ - ᱪᱮᱠ ᱢᱮ/ᱡᱷᱚᱛᱟ ᱴᱮᱜ uncheck ᱢᱮ - ᱴᱮᱜ ᱯᱷᱤᱞᱴᱚᱨ ᱢᱮ - ᱟᱢ ᱴᱮᱜ ᱵᱟᱝ ᱥᱮᱞᱮᱫ ᱠᱟᱜᱼᱟᱢ - %s ᱵᱷᱟᱹᱨᱥᱚᱱ ᱛᱮ ᱟᱹᱯᱰᱮᱴ ᱮᱱᱟ + ᱴᱮᱜ ᱧᱩᱛᱩᱢ + ᱥᱮᱞᱮᱫ/ᱴᱮᱜ ᱯᱷᱤᱞᱴᱚᱨ + ᱴᱮᱜ ᱥᱮᱞᱮᱫ ᱢᱮ + ᱪᱮᱠ ᱢᱮ/ᱡᱷᱚᱛᱟ ᱴᱮᱜ uncheck ᱢᱮ + ᱴᱮᱜ ᱯᱷᱤᱞᱴᱚᱨ ᱢᱮ + ᱟᱢ ᱴᱮᱜ ᱵᱟᱝ ᱥᱮᱞᱮᱫ ᱠᱟᱜᱼᱟᱢ + %s ᱵᱷᱟᱹᱨᱥᱚᱱ ᱛᱮ ᱟᱹᱯᱰᱮᱴ ᱮᱱᱟ - ᱯᱩᱸᱰ ᱵᱚᱰ ᱥᱟᱱᱪᱟᱣ ᱢᱮ + ᱯᱩᱸᱰ ᱵᱚᱰ ᱥᱟᱱᱪᱟᱣ ᱢᱮ ᱥᱴᱟᱭᱞᱩᱥ ᱚᱞᱚᱜ ᱮᱱᱮᱡ ᱢᱮ ᱥᱴᱟᱭᱞᱩᱥ ᱚᱞᱚᱜ ᱵᱚᱫᱚᱞ ᱢᱮ ᱥᱤᱠᱮᱴ ᱞᱟᱜᱩᱭ ᱢᱮ - ᱥᱤᱠᱮᱴ ᱵᱚᱱᱫ ᱢᱮ - ᱥᱤᱠᱮᱴ ᱫᱮᱠᱷᱟᱣ ᱢᱮ - ᱥᱤᱠᱮᱴ ᱩᱠᱩᱭ ᱢᱮ - ᱥᱤᱠᱮᱴ ᱤᱬᱤᱡ ᱢᱮ - Audio replay ᱢᱮ + ᱥᱤᱠᱮᱴ ᱵᱚᱱᱫ ᱢᱮ + ᱥᱤᱠᱮᱴ ᱫᱮᱠᱷᱟᱣ ᱢᱮ + ᱥᱤᱠᱮᱴ ᱩᱠᱩᱭ ᱢᱮ + ᱥᱤᱠᱮᱴ ᱤᱬᱤᱡ ᱢᱮ + Audio replay ᱢᱮ ᱠᱟᱰ ᱫᱚ leech ᱟᱨ ᱵᱚᱸᱫ ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ - ᱠᱟᱰ ᱫᱚ leech ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ - ᱵᱟᱝᱵᱟᱰᱟᱭᱟᱜ ᱵᱷᱩᱞ - ᱱᱚᱶᱟ ᱫᱚ WebView ᱨᱮ ᱵᱷᱤᱛᱨᱤ ᱵᱷᱩᱞ ᱠᱷᱟᱛᱤᱨ ᱛᱮ + ᱠᱟᱰ ᱫᱚ leech ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ + ᱵᱟᱝᱵᱟᱰᱟᱭᱟᱜ ᱵᱷᱩᱞ + ᱱᱚᱶᱟ ᱫᱚ WebView ᱨᱮ ᱤᱱᱴᱚᱨᱱᱟᱞ ᱵᱷᱩᱞ ᱠᱷᱟᱛᱤᱨ ᱛᱮ Out of Memory ᱥᱤᱥᱴᱚᱢ ᱫᱚ Webview ᱵᱚᱸᱫ ᱠᱮᱜᱼᱟᱭ ᱾ ᱱᱚᱶᱟ ᱫᱚ ᱡᱟᱹᱥᱛᱤ ᱢᱟᱨᱟᱝ ᱯᱷᱚᱱᱴᱥ ᱟᱨ ᱢᱤᱰᱭᱟ ᱠᱷᱟᱹᱛᱤᱨ ᱟᱣᱩᱴ ᱚᱯᱷ ᱢᱮᱢᱚᱨᱤ ᱫᱮᱠᱷᱟᱣ ᱮᱫ ᱟᱭ ᱾ WebView ᱨᱮᱱᱰᱚᱨᱚᱨ ᱠᱨᱟᱥ ᱮᱱᱟ ᱾ ᱠᱟᱨᱚᱬ:%s @@ -95,7 +95,7 @@ ᱚᱠᱟ ᱠᱟᱰ ᱦᱚᱸ ᱵᱟᱭ ᱛᱮᱟᱛ ᱟᱠᱟᱱᱟ ᱾ ᱫᱚᱭᱟᱡᱟᱜᱮ ᱟᱨᱦᱚᱸ ᱡᱟᱭᱜᱟ ᱯᱩᱨᱚᱬ ᱢᱮ ᱱᱚᱶᱟ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱠᱟᱰ ᱵᱟᱭ ᱛᱮᱭᱟᱨᱮᱟᱭ ᱾ \n ᱫᱚᱭᱠᱟᱛᱮ ᱱᱟᱶᱟ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱨᱮᱭᱟᱜ ᱵᱟᱪᱷᱟᱣ ᱢᱮ, ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ \'ᱠᱟᱨᱰᱥ\' ᱨᱮ ᱚᱛᱟ ᱡᱟ ᱟᱨ field substitute ᱥᱮᱞᱮᱫ ᱢᱮ ᱠᱞᱚᱡ ᱢᱮᱴᱟᱹᱣ ᱫᱚ ᱠᱞᱚᱡ ᱱᱚᱴ ᱯᱨᱚᱠᱟᱨ ᱴᱷᱮᱱ ᱮ ᱠᱟᱹᱢᱤ ᱟ - ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱥᱚᱱᱪᱟᱣ ᱢᱮ + ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱥᱚᱱᱪᱟᱣ ᱢᱮ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱥᱟᱱᱪᱟᱣ ᱢᱮ ᱥᱟᱝᱪᱚᱣ ᱵᱚᱫᱽ @@ -121,7 +121,7 @@ ᱨᱤᱥᱮᱰᱭᱩᱞ ᱢᱮ ᱞᱟᱦᱟᱛᱮᱭᱟᱜ ᱧᱮᱞ ᱪᱮᱫ ᱞᱮᱠᱟᱱ ᱱᱳᱴ ᱠᱚ ᱧᱟᱢ ᱟᱠᱟᱱᱟ - %2$d ᱨᱮᱱᱟᱜ %1$d + %2$d ᱨᱮᱱᱟᱜ %1$d ᱫᱚᱦᱲᱟ ᱧᱩᱛᱩᱢ ᱪᱟᱠᱷᱟ ᱰᱟᱴᱟᱵᱮᱥ ᱪᱮᱠ ᱢᱮ @@ -159,13 +159,13 @@ ]]> ᱦᱟᱹᱴᱤᱧ ᱞᱟᱹᱜᱤᱫ ᱫᱚᱦᱚᱭ ᱢᱮ - ᱮᱠᱥᱯᱳᱨᱴ ᱟᱠᱟᱱ ᱯᱷᱤᱞᱤ ᱥᱟᱦᱟᱣ ᱠᱟᱱᱟ… + ᱮᱠᱥᱯᱳᱨᱴ ᱟᱠᱟᱱ ᱯᱷᱤᱞᱤ ᱥᱟᱦᱟᱣ ᱠᱟᱱᱟ… ᱚᱯᱥᱚᱱᱠᱚ ᱰᱮᱠ ᱚᱯᱥᱚᱱᱠᱚ ᱯᱟᱲᱦᱟᱣ ᱚᱯᱥᱚᱱ ᱠᱚ TTS ᱯᱟᱹᱨᱥᱤ ᱥᱮᱴ ᱢᱮ ᱱᱤᱡᱮᱛᱮ ᱯᱟᱲᱦᱟᱣ - ᱱᱚᱶᱟ ᱫᱚ ᱱᱚᱨᱢᱟᱞ ᱥᱮᱰᱭᱩᱞ ᱠᱷᱣᱱ ᱮᱴᱟᱜ ᱨᱮ ᱯᱟᱲᱦᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱥᱯᱮᱥᱟᱞ ᱰᱮᱠ ᱠᱟᱱᱟ ᱾ ᱠᱟᱰ ᱠᱚ ᱨᱤᱵᱷᱤᱣ ᱯᱚᱨᱮ ᱟᱡ ᱛᱮᱜᱮ ᱢᱩᱞ ᱰᱮᱢᱠ ᱥᱮᱱ ᱥᱮᱱᱚᱜᱼᱟ ᱾ ᱰᱮᱠ ᱞᱤᱥᱴ ᱠᱷᱚᱱ ᱰᱮᱠᱜᱮᱫ ᱜᱤᱰᱤ ᱞᱮᱠᱷᱱᱟ ᱫᱚ ᱡᱷᱚᱛᱚ ᱠᱟᱲ ᱢᱩᱞ ᱰᱮᱠ ᱥᱮᱱ ᱥᱮᱱᱚᱜᱼᱟ + ᱱᱚᱶᱟ ᱫᱚ ᱱᱚᱨᱢᱟᱞ ᱥᱮᱰᱭᱩᱞ ᱠᱷᱣᱱ ᱮᱴᱟᱜ ᱨᱮ ᱯᱟᱲᱦᱟᱣ ᱞᱟᱹᱜᱤᱫ ᱥᱯᱮᱥᱟᱞ ᱰᱮᱠ ᱠᱟᱱᱟ ᱾ ᱠᱟᱰ ᱠᱚ ᱨᱤᱵᱷᱤᱣ ᱯᱚᱨᱮ ᱟᱡ ᱛᱮᱜᱮ ᱢᱩᱞ ᱰᱮᱢᱠ ᱥᱮᱱ ᱥᱮᱱᱚᱜᱼᱟ ᱾ ᱰᱮᱠ ᱞᱤᱥᱴ ᱠᱷᱚᱱ ᱰᱮᱠᱜᱮᱫ ᱜᱤᱰᱤ ᱞᱮᱠᱷᱱᱟ ᱫᱚ ᱡᱷᱚᱛᱚ ᱠᱟᱲ ᱢᱩᱞ ᱰᱮᱠ ᱥᱮᱱ ᱥᱮᱱᱚᱜᱼᱟ ᱥᱴᱮᱯᱥ ᱫᱚ ᱥᱩᱱᱭᱚ ᱱᱩᱚᱢᱵᱚᱨ ᱠᱷᱚᱱ ᱰᱷᱮᱨ ᱜᱮ ᱛᱟᱦᱮᱱ ᱢᱟ ᱠᱚᱢ ᱥᱮ ᱠᱚᱢ ᱢᱤᱫᱴᱟᱝ ᱥᱴᱮᱯ ᱫᱚᱨᱠᱟᱨ “%1$s” ᱥᱞᱮᱫ ᱞᱟᱹᱜᱤᱫ ᱛᱮ “%2$s” ᱚᱛᱟᱭᱯᱮ @@ -193,7 +193,7 @@ ᱢᱩᱞ ᱯᱷᱮᱰᱟᱛ ᱨᱮ ᱫᱚᱦᱰᱟ ᱡᱚᱜᱟᱣ ᱮᱠᱷᱮᱵᱟᱜ - ᱯᱩᱸᱰ ᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ ᱥᱟᱱᱪᱟᱣ ᱵᱷᱩᱞ ᱾. %s + ᱯᱩᱸᱰ ᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ ᱥᱟᱱᱪᱟᱣ ᱵᱷᱩᱞ ᱾. %s ᱯᱩᱸᱰ ᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ %s ᱛᱮ ᱥᱟᱱᱪᱟᱣ ᱯᱩᱸᱰᱵᱚᱰ ᱮᱰᱤᱴᱚᱨ ᱟᱹᱴᱚᱢᱮᱴᱮᱰ ᱴᱮᱥᱴ ᱯᱟᱱᱛᱮ ᱚᱲᱚᱠ ᱾ ᱡᱩᱫᱤ ᱟᱢ ᱦᱚᱲ ᱠᱟᱱᱟᱢ AnkiDroid ᱥᱚᱢᱯᱚᱨᱠ ᱠᱚᱢ diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml index ce68b82b3ae1..9e405972f8f0 100644 --- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml @@ -62,7 +62,7 @@ %d ᱠᱟᱰ ᱨᱤᱥᱮᱴ ᱥᱟᱹᱠᱷᱭᱟᱛ ᱵᱟᱹᱭᱥᱟᱣ ᱵᱷᱩᱞ ᱦᱩᱭᱮᱱᱟ - ᱴᱩᱢᱟᱹᱞ ᱛᱮ ᱚᱞ ᱵᱷᱩᱞ ᱾ database ᱫᱚ ᱠᱦᱟᱨᱟᱯ ᱜᱮᱭᱟ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ ᱰᱤᱥᱠ ᱨᱮ ᱥᱯᱮᱥ ᱵᱟᱱᱩᱜᱟ ᱾ \n\nᱡᱚᱫᱤ ᱵᱟᱨᱚᱢᱵᱟᱨ ᱱᱚᱠᱟ ᱦᱩᱭᱩᱜ ᱠᱟᱱᱟ, ᱮᱱᱰᱮᱠᱷᱟᱱ ᱟᱨ ᱢᱤᱫ ᱡᱮᱠᱷᱟ ᱰᱟᱴᱟᱵᱮᱥ ᱪᱮᱠ ᱯᱮ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ backup ᱠᱷᱚᱱ ᱰᱟᱴᱟ restore ᱛᱟᱵᱚᱱ ᱯᱮ ᱾ ᱚᱱᱟ ᱞᱟᱹᱜᱤᱫ \"options\" ᱨᱮ ᱚᱛᱟᱭ ᱯᱮ ᱾\n\ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ ᱱᱚᱟ ᱫᱚ bug ᱦᱩᱭ ᱫᱟᱲᱮᱭᱟᱜᱟ; ᱫᱚᱭᱟᱠᱟᱛᱮ report ᱯᱮ ᱾ + ᱴᱩᱢᱟᱹᱞ ᱛᱮ ᱚᱞ ᱵᱷᱩᱞ ᱾ database ᱫᱚ ᱠᱦᱟᱨᱟᱯ ᱜᱮᱭᱟ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ ᱰᱤᱥᱠ ᱨᱮ ᱥᱯᱮᱥ ᱵᱟᱱᱩᱜᱟ ᱾ \n\nᱡᱚᱫᱤ ᱵᱟᱨᱚᱢᱵᱟᱨ ᱱᱚᱠᱟ ᱦᱩᱭᱩᱜ ᱠᱟᱱᱟ, ᱮᱱᱰᱮᱠᱷᱟᱱ ᱟᱨ ᱢᱤᱫ ᱡᱮᱠᱷᱟ ᱰᱟᱴᱟᱵᱮᱥ ᱪᱮᱠ ᱯᱮ ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ backup ᱠᱷᱚᱱ ᱰᱟᱴᱟ restore ᱛᱟᱵᱚᱱ ᱯᱮ ᱾ ᱚᱱᱟ ᱞᱟᱹᱜᱤᱫ \"options\" ᱨᱮ ᱚᱛᱟᱭ ᱯᱮ ᱾\n\ᱟᱨ ᱵᱟᱝᱠᱷᱟᱱ ᱱᱚᱟ ᱫᱚ bug ᱦᱩᱭ ᱫᱟᱲᱮᱭᱟᱜᱟ; ᱫᱚᱭᱟᱠᱟᱛᱮ report ᱯᱮ ᱾ ᱦᱩᱰᱟᱜ ᱥᱚᱱᱫᱮᱥ There is not enough free storage space to open AnkiDroid. Free up some space to continue. ᱟᱢ ᱫᱚ ᱱᱚᱶᱟ database ᱥᱟᱡᱟᱣ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ ᱥᱮ ? \n\nᱮᱛᱷᱚᱵ ᱢᱟᱲᱟᱝ ᱨᱮ, ᱢᱤᱫᱴᱟᱝ ᱠᱚᱯᱤ \"%s\" ᱥᱚᱵᱼᱯᱷᱚᱞᱰᱟᱨ ᱨᱮ ᱛᱮᱭᱨᱚᱜᱽᱟ ᱱᱟᱦ ᱾ @@ -115,7 +115,7 @@ %d ᱨᱮᱫ ᱠᱚ ᱜᱮᱫ ᱜᱤᱰᱤ ᱮᱱᱟ - ᱡᱷᱚᱛᱚ ᱠᱟᱰ ᱠᱚ + ᱡᱷᱚᱛᱚ ᱠᱟᱰ ᱠᱚ ᱱᱟᱶᱟ ᱮᱢᱚᱜ ᱥᱚᱢᱚᱭ diff --git a/AnkiDroid/src/main/res/values-sat/04-network.xml b/AnkiDroid/src/main/res/values-sat/04-network.xml index 254ce16781ee..d19f9292de56 100644 --- a/AnkiDroid/src/main/res/values-sat/04-network.xml +++ b/AnkiDroid/src/main/res/values-sat/04-network.xml @@ -46,13 +46,13 @@ --> ᱟᱢ ᱫᱚ ᱚᱯᱷᱞᱟᱭᱤᱱ ᱨᱮ - ᱟᱹᱭᱩᱨ ᱢᱤᱫ ᱵᱷᱩᱞ + ᱟᱹᱭᱩᱨ ᱢᱤᱫ ᱵᱷᱩᱞ ᱵᱷᱩᱞ - ᱫᱼᱪᱮᱥᱴᱟ - ᱥᱟᱡᱟᱣᱟ ᱠᱟᱱ ᱰᱮᱠ ᱠᱚ ᱧᱟᱢ ᱢᱮ + ᱫᱼᱪᱮᱥᱴᱟ + ᱥᱟᱡᱟᱣᱟ ᱠᱟᱱ ᱰᱮᱠ ᱠᱚ ᱧᱟᱢ ᱢᱮ ᱱᱮᱴᱣᱟᱨᱠ ᱦᱩᱰᱟᱹᱜ ᱦᱩᱭ ᱮᱱᱟ AnkiWeb ᱛᱮ ᱵᱷᱤᱛᱤᱨ ᱵᱚᱞᱚ - cloud ᱟᱹᱭᱩᱨ ᱢᱤᱫ ᱠᱟᱹᱢᱤ ᱨᱮ ᱵᱷᱤᱛᱤᱨ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ third party ᱠᱷᱟᱛᱟ ᱫᱚᱨᱠᱟᱨ ᱾ ᱱᱟᱶᱟ ᱛᱮᱭᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱤᱱᱟ ᱛᱟᱭᱚᱢ ᱡᱷᱟᱸᱯ ᱠᱚ ᱧᱮᱞ ᱢᱮ ᱾ + cloud ᱟᱹᱭᱩᱨ ᱢᱤᱫ ᱠᱟᱹᱢᱤ ᱨᱮ ᱵᱷᱤᱛᱤᱨ ᱵᱚᱞᱚ ᱞᱟᱹᱜᱤᱫ third party ᱠᱷᱟᱛᱟ ᱫᱚᱨᱠᱟᱨ ᱾ ᱱᱟᱶᱟ ᱛᱮᱭᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱤᱱᱟ ᱛᱟᱭᱚᱢ ᱡᱷᱟᱸᱯ ᱠᱚ ᱧᱮᱞ ᱢᱮ ᱾ ᱤ-ᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱱᱟ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ @@ -60,7 +60,7 @@ AnkiWeb ᱠᱷᱟᱛᱟ ᱵᱟᱹᱱᱩᱜ ᱟ ? ᱱᱚᱶᱟ ᱫᱚ ᱥᱟᱹᱫᱷᱤᱱ ᱜᱮᱭᱟ! ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱢᱮ: AnkiWeb ᱟᱜ AnkiDroid ᱥᱟᱞᱟᱜ ᱪᱮᱫ ᱥᱚᱢᱯᱚᱨᱠᱚ ᱵᱟᱹᱱᱩᱜᱽᱟ ᱧᱩᱛᱩᱢ ᱚᱞ - ᱞᱮᱠᱷᱟ ᱵᱚᱞᱚᱣᱟᱠ + ᱞᱮᱠᱷᱟ ᱵᱚᱞᱚᱣᱟᱠ ᱵᱟᱦᱨᱮ ᱚᱰᱚᱠ ᱫᱚᱦᱲᱟ ᱫᱟᱱᱟᱝ ᱥᱟᱵᱟᱫᱽ ᱤᱼᱢᱮᱞ ᱦᱤᱲᱤᱧᱮᱱᱟ ᱥᱮ? diff --git a/AnkiDroid/src/main/res/values-sat/09-backup.xml b/AnkiDroid/src/main/res/values-sat/09-backup.xml index e47cc77e5be5..5a70466d5760 100644 --- a/AnkiDroid/src/main/res/values-sat/09-backup.xml +++ b/AnkiDroid/src/main/res/values-sat/09-backup.xml @@ -46,7 +46,7 @@ ᱥᱚᱯᱷᱴᱣᱮᱭᱟᱨ ᱫᱚ ᱵᱟᱝ ᱥᱟᱦᱟᱣ ᱟᱠᱟᱱᱟ. ᱟᱢᱟᱜ ᱥᱴᱳᱨᱮᱡ ᱨᱮ ᱥᱯᱮᱥᱮᱡᱽ ᱵᱟᱹᱱᱩᱜᱼᱟ᱾ ᱵᱮᱠᱟᱨᱯᱷ ᱰᱤᱯᱷᱤᱰ ᱠᱚᱢ ᱢᱮ ᱟᱨᱵᱟᱝ ᱮᱴᱟᱜ ᱯᱷᱟᱤᱞ ᱠᱚ ᱵᱚᱫᱚᱞ ᱢᱮ. Less than %d MB space on your storage left.\nFree some space to avoid data loss. - ᱱᱚᱠᱚᱞ-ᱡᱚ ᱫᱚᱦᱰᱟ ᱡᱚᱜᱟᱣ + ᱱᱚᱠᱚᱞ-ᱡᱚ ᱫᱚᱦᱰᱟ ᱡᱚᱜᱟᱣ ᱱᱟᱶᱟ ᱴᱩᱢᱟᱹᱞ ᱴᱩᱢᱟᱹᱞ ᱜᱮᱫ ᱜᱤᱲᱤ ᱢᱮ ᱟᱨ ᱱᱟᱶᱟ ᱛᱮᱭᱟᱨ ᱢᱮ ᱴᱩᱢᱟᱹᱞ ᱜᱮᱫ ᱜᱤᱲᱤ ᱢᱮ ᱟᱨ ᱱᱟᱶᱟ ᱛᱮᱭᱟᱨ ᱢᱮ? ᱱᱚᱶᱟ ᱟᱢᱟᱜ ᱪᱮᱫᱚᱜ ᱴᱷᱚᱞᱨᱟᱣᱟᱭ, ᱡᱷᱚᱛᱚ ᱠᱟᱰ ᱢᱮᱴᱟᱣᱼᱜ ᱛᱟᱢᱟ ᱾ ᱾ diff --git a/AnkiDroid/src/main/res/values-sat/10-preferences.xml b/AnkiDroid/src/main/res/values-sat/10-preferences.xml index 91ad5bbf9ea3..6dcd46751e9d 100644 --- a/AnkiDroid/src/main/res/values-sat/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sat/10-preferences.xml @@ -61,7 +61,7 @@ ᱟᱭᱩᱨ ᱢᱤᱫ ᱡᱚᱡᱚᱱᱟ ᱯᱩᱸᱰᱯᱟᱴᱟ - ᱧᱮᱞᱚᱜ ᱠᱚ + ᱧᱮᱞᱚᱜ ᱠᱚ ᱛᱷᱤᱢᱥ ᱪᱤᱱᱦᱟᱹ ᱠᱳᱸᱴᱨᱳᱞ @@ -117,7 +117,7 @@ ᱞᱟᱛᱟᱨ ᱞᱮᱸᱜᱟ ᱯᱟᱦᱴᱟ ᱨᱮ ᱚᱛᱟᱭ ᱢᱮ ᱞᱟᱛᱟᱨ ᱡᱟᱡᱚᱢ ᱛᱤ ᱯᱟᱦᱴᱟ ᱚᱛᱟᱭ ᱢᱮ ᱥᱤᱠᱷᱱᱟᱹᱛ ᱚᱱᱚᱞ - ‘%s’ ᱢᱚᱱᱩ + ‘%s’ ᱢᱚᱱᱩ ᱠᱚᱱᱴᱮᱠᱥᱴ ᱢᱮᱱᱩ ᱠᱡᱟᱜᱟᱛ ᱨᱮ ‘%s’ ᱦᱩᱭ ᱦᱚᱪᱚ ᱫᱚᱦᱲᱟ ᱥᱠᱨᱚᱞ ᱤᱼᱨᱤᱰᱚᱨ ᱮᱨ ᱥᱠᱨᱚᱞ ᱜᱮᱯ ᱫᱚᱦᱲᱟᱭ ᱢᱮ @@ -162,7 +162,7 @@ ᱛᱟᱞᱟ ᱥᱟᱡᱟᱣ ᱠᱟᱰ ᱨᱮᱭᱟᱜ ᱡᱤᱱᱤᱥ ᱠᱚ ᱛᱟᱞᱟ ᱨᱮ ᱥᱤᱫᱷᱟ ᱛᱮ ᱟᱹᱜᱩᱭᱢᱮ ᱵᱟᱨᱫᱷᱟᱣ ᱞᱭᱟᱯ ᱚᱠᱛᱚ ᱤᱱᱴᱟᱹᱨᱵᱷᱟᱞ (ᱢᱤᱞᱤᱥᱮᱠᱮᱰ) - ᱡᱩᱫᱤ ᱱᱤᱛᱚᱜ ᱵᱟᱝ ᱦᱩᱭᱟᱹᱠᱟᱱᱟ ᱮᱱᱠᱷᱟᱱ ᱞᱟᱹᱱᱟᱹᱭ ᱵᱚᱴᱚᱱ ᱨᱮᱭᱟᱜ ᱫᱚᱥᱟᱨ ᱴᱭᱟᱯ ᱵᱟᱝ ᱛᱩᱸᱠᱷᱤᱜ-ᱟ । ᱱᱚᱣᱟ ᱦᱩᱯᱠᱟᱹ ᱰᱚᱵᱚᱞ ᱴᱭᱟᱯ ᱴᱷᱟᱠᱮᱫ ᱚᱪᱚᱭᱟ + ᱡᱩᱫᱤ ᱱᱤᱛᱚᱜ ᱵᱟᱝ ᱦᱩᱭᱟᱹᱠᱟᱱᱟ ᱮᱱᱠᱷᱟᱱ ᱞᱟᱹᱱᱟᱹᱭ ᱵᱚᱴᱚᱱ ᱨᱮᱭᱟᱜ ᱫᱚᱥᱟᱨ ᱴᱭᱟᱯ ᱵᱟᱝ ᱛᱩᱸᱠᱷᱤᱜ-ᱟ । ᱱᱚᱣᱟ ᱦᱩᱯᱠᱟᱹ ᱰᱚᱵᱚᱞ ᱴᱭᱟᱯ ᱴᱷᱟᱠᱮᱫ ᱚᱪᱚᱭᱟ ᱟᱹᱰᱤ ᱫᱤᱱ ᱞᱟᱦᱟᱛᱮ ᱚᱞ ᱞᱟᱹᱠᱛᱤ ᱠᱟᱱᱟ Minimum pressing time before the show answer button registers a touch. ᱵᱟᱹᱴᱟᱹᱱ ᱥᱚᱢᱚᱭ ᱫᱮᱠᱷᱟᱣ @@ -178,7 +178,7 @@ ᱱᱟᱶᱟ ᱠᱟᱰ ᱠᱚ ᱞᱟᱹᱜᱤᱫ ᱰᱮᱠ ᱢᱟᱲᱟᱝ ᱥᱮᱫ ᱯᱟᱲᱦᱟᱣ ᱪᱮᱫᱚᱜ ᱥᱚᱢᱚᱭ ᱵᱟᱠᱥᱚ ᱚᱠᱛᱚ ᱥᱤᱢᱟᱹ - ᱜᱟᱯᱟ ᱫᱤᱱ ᱟᱜ ᱮᱛᱦᱚᱵ + ᱜᱟᱯᱟ ᱫᱤᱱ ᱟᱜ ᱮᱛᱦᱚᱵ %d ᱚᱠᱛᱚ ᱥᱮᱛᱟᱜ ᱧᱤᱫᱟᱹ ᱛᱟᱞᱟ ᱠᱷᱚᱱ %d ᱚᱠᱛᱚ diff --git a/AnkiDroid/src/main/res/values-sat/11-arrays.xml b/AnkiDroid/src/main/res/values-sat/11-arrays.xml index 0e6775d49dcb..3b55e6404408 100644 --- a/AnkiDroid/src/main/res/values-sat/11-arrays.xml +++ b/AnkiDroid/src/main/res/values-sat/11-arrays.xml @@ -95,7 +95,7 @@ ᱯᱚᱛᱠᱟ ᱚᱪᱚᱜ ᱢᱮ ᱥᱟᱠᱟᱢ ᱪᱮᱛᱟᱱ ᱥᱟᱠᱟᱢ ᱞᱟᱛᱟᱨ - ᱥᱟᱱᱛᱟᱲᱤ ᱱᱤᱩᱡᱽ ᱰᱮᱥᱠ + ᱥᱟᱱᱛᱟᱲᱤ ᱱᱤᱩᱡᱽ ᱰᱮᱥᱠ ᱯᱩᱱᱰᱵᱚᱰ ᱴᱩᱜᱟᱹᱞ ᱢᱮ ᱦᱤᱱᱫᱤ ᱪᱤᱛᱟᱹᱨ ᱡᱚᱛᱚ ᱥᱟᱹᱠᱷᱭᱟᱹᱛ ᱮᱢ ᱢᱮ diff --git a/AnkiDroid/src/main/res/values-sat/16-multimedia-editor.xml b/AnkiDroid/src/main/res/values-sat/16-multimedia-editor.xml index 72f3a2f75fb1..577f3d908996 100644 --- a/AnkiDroid/src/main/res/values-sat/16-multimedia-editor.xml +++ b/AnkiDroid/src/main/res/values-sat/16-multimedia-editor.xml @@ -58,17 +58,17 @@ ᱠᱭᱟᱢᱮᱨᱟ - ᱡᱟᱦᱟᱱᱟᱜ ᱠᱚ ᱵᱷᱩᱞ ᱦᱩᱭᱮᱱᱟ + ᱡᱟᱦᱟᱱᱟᱜ ᱠᱚ ᱵᱷᱩᱞ ᱦᱩᱭᱮᱱᱟ ᱠᱞᱤᱯᱵᱚᱰ ᱪᱤᱛᱟᱹᱨ png ᱨᱮ ᱵᱚᱫᱚᱞ ᱨᱮ ᱦᱤᱲᱤᱡ : %s %1$s ᱡᱟᱭᱜᱟ ᱨᱮ ᱢᱟᱹᱞᱴᱤᱢᱤᱰᱤᱭᱟ ᱡᱤᱱᱤᱥ ᱞᱟᱴᱷᱟᱭ ᱢᱮ - ᱨᱮᱠᱚᱰ ᱠᱚ ᱰᱤᱜᱟᱹᱣᱮᱱᱟ - ᱮᱛᱦᱚᱵ ᱠᱚ ᱰᱤᱜᱟᱹᱣ - ᱨᱮᱠᱚᱰ ᱦᱟᱹᱛᱤᱭᱟᱨ ᱵᱟᱨ ᱵᱟᱭ ᱛᱮᱭᱟᱨᱚᱜ ᱠᱟᱱᱟ + ᱨᱮᱠᱚᱰ ᱠᱚ ᱰᱤᱜᱟᱹᱣᱮᱱᱟ + ᱮᱛᱦᱚᱵ ᱠᱚ ᱰᱤᱜᱟᱹᱣ + ᱨᱮᱠᱚᱰ ᱦᱟᱹᱛᱤᱭᱟᱨ ᱵᱟᱨ ᱵᱟᱭ ᱛᱮᱭᱟᱨᱚᱜ ᱠᱟᱱᱟ ᱟᱢ ᱪᱤᱛᱟᱹᱨ ᱠᱷᱟᱴᱚ ᱥᱟᱱᱟᱮᱫ ᱢᱮᱭᱟ ᱥᱮ ᱵᱟᱝ-ᱟ ? - ᱪᱤᱛᱟᱹᱨ ᱠᱷᱟᱴᱚᱭ ᱢᱮ + ᱪᱤᱛᱟᱹᱨ ᱠᱷᱟᱴᱚᱭ ᱢᱮ ᱱᱤᱛᱚᱜᱟᱜ ᱪᱤᱛᱟᱹᱨ ᱢᱟᱨᱟᱝ ᱫᱚ %sMB ᱠᱟᱱᱟ. ᱰᱤᱯᱷᱚᱞᱴ ᱪᱤᱛᱟᱹᱨ ᱢᱟᱨᱟᱝ ᱜᱚᱴᱟ ᱫᱚ 1MB ᱠᱟᱱᱟ. ᱟᱢ ᱱᱚᱶᱟ ᱠᱚᱢᱯᱨᱮᱥ (compress) ᱠᱮᱭᱟᱢ ᱥᱮ? "ᱪᱤᱛᱹᱨ ᱵᱟᱪᱷᱟᱣ ᱦᱩᱰᱟᱹᱜ, ᱫᱚᱭᱚᱠᱟᱛᱮ ᱫᱩᱦᱰᱟᱹ ᱪᱮᱥᱴᱟᱭ ᱢᱮ" ᱯᱷᱤᱞᱰ ᱥᱟᱦᱴᱟ diff --git a/AnkiDroid/src/main/res/values-sat/17-model-manager.xml b/AnkiDroid/src/main/res/values-sat/17-model-manager.xml index 13bfd8a817bb..4c8afbefa644 100644 --- a/AnkiDroid/src/main/res/values-sat/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-sat/17-model-manager.xml @@ -31,7 +31,7 @@ ᱟᱢ ᱢᱟᱲᱟᱝᱼᱟᱜ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱵᱟᱝ ᱢᱮᱴᱟᱣ ᱫᱟᱲᱮᱟᱜᱼᱟ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ ᱴᱷᱮᱱ ᱢᱤᱫᱴᱟᱝ ᱠᱷᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱡᱟᱭᱜᱟ ᱛᱟᱦᱮᱱ ᱠᱟᱛᱷᱟ - ᱟᱢ ᱫᱚ ᱧᱩᱛᱩᱢ ᱚᱞ ᱛᱮ ᱦᱩᱭᱟᱢᱟ + ᱟᱢ ᱫᱚ ᱧᱩᱛᱩᱢ ᱚᱞ ᱛᱮ ᱦᱩᱭᱟᱢᱟ ᱡᱟᱭᱜᱟ ᱧᱩᱛᱩᱢ ᱠᱟᱹᱢᱤ ᱨᱮ ᱟᱜᱩ ᱠᱟᱱᱟ @@ -59,7 +59,7 @@ ᱡᱟᱭᱜᱟ ᱵᱚᱫᱚᱞ ᱥᱮᱞᱮᱫ ‌ᱡᱷᱚᱜ ᱢᱟᱲᱟᱝᱼᱟᱜ ᱤᱱᱯᱩᱴ ᱩᱭᱦᱟᱹᱨᱢᱮ ᱡᱟᱭᱜᱟ ᱟᱹᱯᱰᱟᱴᱼᱚᱜ ᱠᱟᱱᱟ - ᱡᱟᱭᱜᱟ ᱛᱮ ᱥᱚᱴᱼᱚᱜ ᱠᱟᱱᱟ + ᱡᱟᱭᱜᱟ ᱛᱮ ᱥᱚᱴᱼᱚᱜ ᱠᱟᱱᱟ ᱥᱭᱚᱨ ᱱᱚᱶᱟ ᱠᱷᱟᱴᱚ ᱵᱤᱪᱟᱹᱨ ᱯᱨᱚᱠᱟᱨ‌ ᱜᱮᱫ ᱜᱤᱲᱤ ᱥᱮᱱᱟᱢ ᱠᱟᱱᱟ? ᱥᱭᱚᱨ ᱱᱚᱶᱟ ᱡᱟᱭᱜᱟ ᱜᱮᱫ ᱜᱤᱲᱤ ᱥᱟᱱᱟᱢ ᱠᱟᱱᱟ? diff --git a/AnkiDroid/src/main/res/values-sc/10-preferences.xml b/AnkiDroid/src/main/res/values-sc/10-preferences.xml index 3fe9c90b1acb..c14f816604b0 100644 --- a/AnkiDroid/src/main/res/values-sc/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sc/10-preferences.xml @@ -117,7 +117,7 @@ Toca in bassu a manca Toca in bassu a dereta Iscutzina su dispositivu - Menù ‘%s’ + Menù ‘%s’ Abilitat su menù de cuntestu ‘%s’ globalmente Iscurrimentu dòpiu Addopiat sa distàntzia de iscurrimentu cun eReader @@ -265,7 +265,7 @@ Incarca una tecla Annanghe unu joystick/controllore de movimentu Move unu joystick/controllore de movimentu - Atziones utente + Atziones utente Esecuta JavaScript dae s\'ischermada de ripetitzione Atzione utente 1 Atzione utente 2 diff --git a/AnkiDroid/src/main/res/values-sk/10-preferences.xml b/AnkiDroid/src/main/res/values-sk/10-preferences.xml index 226cfc4ecf45..2d586f1858ee 100644 --- a/AnkiDroid/src/main/res/values-sk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sk/10-preferences.xml @@ -119,7 +119,7 @@ Dotyk dole vľavo Dotyk dole vpravo Pri zatrasení - ‘%s’ menu + ‘%s’ menu Povoliť globálne kontextové menu pre ‘%s’ Dvojitý posun Zdvojnásobiť posúvanie s eReader diff --git a/AnkiDroid/src/main/res/values-sl/10-preferences.xml b/AnkiDroid/src/main/res/values-sl/10-preferences.xml index ca1609ee775c..e8ff108fb2ab 100644 --- a/AnkiDroid/src/main/res/values-sl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sl/10-preferences.xml @@ -119,7 +119,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Dvojni pomik Podvoji razmik pomikanja z eReaderjem diff --git a/AnkiDroid/src/main/res/values-sq/10-preferences.xml b/AnkiDroid/src/main/res/values-sq/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-sq/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sq/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-sr/10-preferences.xml b/AnkiDroid/src/main/res/values-sr/10-preferences.xml index adcced2c1592..8b279ece25cf 100644 --- a/AnkiDroid/src/main/res/values-sr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sr/10-preferences.xml @@ -118,7 +118,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Дупло проклизавање Удвостручи међупросторе између клизаче на е-Читалацу diff --git a/AnkiDroid/src/main/res/values-ss/10-preferences.xml b/AnkiDroid/src/main/res/values-ss/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-ss/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ss/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-sv/10-preferences.xml b/AnkiDroid/src/main/res/values-sv/10-preferences.xml index 3959d20748a9..da3634ecc729 100644 --- a/AnkiDroid/src/main/res/values-sv/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sv/10-preferences.xml @@ -117,7 +117,7 @@ Tryck längst ner till vänster Tryck längst ner till höger Skaka enhet - ‘%s’ Meny + ‘%s’ Meny Aktiverar sammanhangsmenyn ‘%s’ globalt Dubbelrullning Aktivera detta om du vill dubbla scroll gap med eReader diff --git a/AnkiDroid/src/main/res/values-sw/10-preferences.xml b/AnkiDroid/src/main/res/values-sw/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-sw/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sw/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ta/10-preferences.xml b/AnkiDroid/src/main/res/values-ta/10-preferences.xml index 06b518e1c809..617bbb61c891 100644 --- a/AnkiDroid/src/main/res/values-ta/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ta/10-preferences.xml @@ -117,7 +117,7 @@ கீழே இடதுபுறத்தைத் தொடவும் கீழ் வலதுபுறத்தைத் தொடவும் சாதனத்தை அசைக்கவும் - ‘%s’ மெனு + ‘%s’ மெனு உலகளவில் சூழல் மெனு \'%s\' ஐ இயக்குகிறது இரட்டை ஸ்க்ரோலிங் eReader மூலம் ஸ்க்ரோல் இடைவெளியை இரட்டிப்பாக்கவும் diff --git a/AnkiDroid/src/main/res/values-te/10-preferences.xml b/AnkiDroid/src/main/res/values-te/10-preferences.xml index 6cf9ad76dca4..68f6b9e97056 100644 --- a/AnkiDroid/src/main/res/values-te/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-te/10-preferences.xml @@ -117,7 +117,7 @@ దిగువ ఎడమవైపు తాకండి దిగువ కుడివైపు తాకండి షేక్ పరికరం - \'%s\' మెను + \'%s\' మెను ప్రపంచవ్యాప్తంగా \'%s\' సందర్భ మెనుని ప్రారంభిస్తుంది డబుల్ స్క్రోలింగ్ eReader తో డబుల్ స్క్రోల్ స్పేస్ @@ -264,7 +264,7 @@ ఒక కీని నొక్కండి జాయ్‌స్టిక్/మోషన్ కంట్రోలర్‌ను జోడించండి జాయ్‌స్టిక్/మోషన్ కంట్రోలర్‌ను తరలించండి - వినియోగదారు చర్యలు + వినియోగదారు చర్యలు సమీక్ష స్క్రీన్ నుండి జావాస్క్రిప్ట్‌ని ట్రిగ్గర్ చేయండి వినియోగదారు చర్య 1 వినియోగదారు చర్యలు 2 diff --git a/AnkiDroid/src/main/res/values-tg/10-preferences.xml b/AnkiDroid/src/main/res/values-tg/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-tg/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tg/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml index c475e20c408f..3067be54aaae 100644 --- a/AnkiDroid/src/main/res/values-tgl/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tgl/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scroll I-double ang scroll puwang sa eReader diff --git a/AnkiDroid/src/main/res/values-th/10-preferences.xml b/AnkiDroid/src/main/res/values-th/10-preferences.xml index 5437805dcdb3..d42d70fdb5b1 100644 --- a/AnkiDroid/src/main/res/values-th/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-th/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ti/10-preferences.xml b/AnkiDroid/src/main/res/values-ti/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-ti/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ti/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-tn/10-preferences.xml b/AnkiDroid/src/main/res/values-tn/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-tn/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tn/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml index 3988615f0e66..87dadba934c4 100644 --- a/AnkiDroid/src/main/res/values-tr/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tr/03-dialogs.xml @@ -130,7 +130,7 @@ AnkiDroid yükseltildi. Bu yükseltme, olası veritabanı sorunları için düzeltmeleri içerir ve veritabanını şimdi kontrol etmenizi öneririz. Yine de devam et Veritabanı Kontrolü büyük miktarda geçici depolama alanı kullanıyor.\n\nDevam etmeden önce cihazınızda en az %s boş alanın olması şiddetle önerilir. - \n\nŞu anda %s boş alanınız var. + \n\nŞu anda %s boş alanınız var. Karttaki verinin kod çözme hatası diff --git a/AnkiDroid/src/main/res/values-tr/10-preferences.xml b/AnkiDroid/src/main/res/values-tr/10-preferences.xml index 4fcde1ee114b..57cc33ebc426 100644 --- a/AnkiDroid/src/main/res/values-tr/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tr/10-preferences.xml @@ -117,7 +117,7 @@ Sol alta dokun Sağ alta dokun Cihazı salla - \"%s\" Menüsü + \"%s\" Menüsü \"%s\" durum menüsünü uygulama çapında etkinleştirir Hızlı kaydırma eOkuyucu\'yla kaydırma mesafesini iki katına çıkarmak istiyorsanız bunu etkinleştirin diff --git a/AnkiDroid/src/main/res/values-ts/10-preferences.xml b/AnkiDroid/src/main/res/values-ts/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-ts/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ts/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-tt/01-core.xml b/AnkiDroid/src/main/res/values-tt/01-core.xml index 006f65786166..dd825a424d23 100644 --- a/AnkiDroid/src/main/res/values-tt/01-core.xml +++ b/AnkiDroid/src/main/res/values-tt/01-core.xml @@ -134,7 +134,7 @@ Синхронизацияне кире кагыргамы? Синхронизацияне дәвам итү Синхронизация кире кагылган - Кире кагу…\nБу бераз вакыт алырга мөмкин + Кире кагу…\nБу бераз вакыт алырга мөмкин Syncing media Колоданы экспортлау Export collection diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index b623434ff751..43081719cf60 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -142,7 +142,7 @@ Импорт бүленгән иде Preparing export… Export ready - apkg файлын укый ала торган кушымталар юк. Саклана… + apkg файлын укый ала торган кушымталар юк. Саклана… Anki пакеты уңышлы итеп сакланды Anki пакеты саклана алмады Send Anki package using @@ -163,7 +163,7 @@ Study options Текст телен көйләргә Тагын өйрәнү - Бу - гадәттәгедән тыш күбрәк уку өчен колода. Кәртләрне карап чыккач, алар үзенең колодаларына кире кайтачаклар. Бу колоданы бетерү аның эчендәге кәртләрнең үзенең колодаларына кайтуына китерер. + Бу - гадәттәгедән тыш күбрәк уку өчен колода. Кәртләрне карап чыккач, алар үзенең колодаларына кире кайтачаклар. Бу колоданы бетерү аның эчендәге кәртләрнең үзенең колодаларына кайтуына китерер. Адымнар 0дән күбрәк сан булырга тиеш Бер булса да адым кирәк Touch “%2$s” to confirm adding “%1$s” diff --git a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml index 02da01f46ef1..4638256f4bbd 100644 --- a/AnkiDroid/src/main/res/values-tt/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-tt/03-dialogs.xml @@ -133,7 +133,7 @@ Error decoding data from card - Мәгълүматлар базасы бикләнгән + Мәгълүматлар базасы бикләнгән The AnkiDroid database is in use by another application. Please close the other application then reopen AnkiDroid. Incompatible Database Version The database is a more advanced version than this version of AnkiDroid can work with. Upgrade AnkiDroid or downgrade the database to open it\n\nSupported version: %1$d\nDatabase version: %2$d\n\nThe following restore options will overwrite your current collection, possibly with a compatible database version: diff --git a/AnkiDroid/src/main/res/values-tt/10-preferences.xml b/AnkiDroid/src/main/res/values-tt/10-preferences.xml index 77338cbf06a4..b79ebb5c0528 100644 --- a/AnkiDroid/src/main/res/values-tt/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-tt/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Меню + ‘%s’ Меню Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ug/10-preferences.xml b/AnkiDroid/src/main/res/values-ug/10-preferences.xml index 8eeef4798a35..b75ba655ca97 100644 --- a/AnkiDroid/src/main/res/values-ug/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ug/10-preferences.xml @@ -117,7 +117,7 @@ سول ئاستىنى چەك ئوڭ ئاستىنى چەك ئۈسكۈنىنى سىلكى - «%s» تىزىملىكى + «%s» تىزىملىكى «%s» مەزمۇن تىزىملىكىنى پۈتكۈل دائىرىدە قوزغىتىدۇ قوش دومىلات ئېلېكتىرونلۇق ئوقۇغۇچتا قوش دومىلىتىدۇ diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index 11ae400144aa..bc1656cbec5e 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -154,7 +154,7 @@ Не знайдено додатків для обробки apkg. Збереження… Пакунок Anki успішно збережено Не вдалося зберегти пакунок Anki - Надіслати пакет Anki використовуючи + Надіслати пакет Anki використовуючи AnkiDroid експортує картки: %s
diff --git a/AnkiDroid/src/main/res/values-uk/10-preferences.xml b/AnkiDroid/src/main/res/values-uk/10-preferences.xml index d15f04dfb6a2..507b176d059e 100644 --- a/AnkiDroid/src/main/res/values-uk/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uk/10-preferences.xml @@ -119,7 +119,7 @@ Дотик лівого нижнього кута Дотик правого нижнього кута Потрясти пристроєм - Меню \'%s\' + Меню \'%s\' Включає \'%s\' в загальне контекстне меню Подвійне прокручування Подвоїти розрив прокручування в eReader-і @@ -246,7 +246,7 @@ Перепланувати картки на основі моїх відповідей в цій колоді Увімкнути другий фільтр Задати власні кроки - Затримка попереднього перегляду + Затримка попереднього перегляду Затримка в секундах. 0 повертає картку до початкової колоди. Допоможіть зробити AnkiDroid кращим! diff --git a/AnkiDroid/src/main/res/values-uk/17-model-manager.xml b/AnkiDroid/src/main/res/values-uk/17-model-manager.xml index e0de7a9154e1..420ce7c3d657 100644 --- a/AnkiDroid/src/main/res/values-uk/17-model-manager.xml +++ b/AnkiDroid/src/main/res/values-uk/17-model-manager.xml @@ -53,7 +53,7 @@ Перейменувати тип запису - Встановити %s як мову підказок + Встановити %s як мову підказок Редагувати поля Додати поле diff --git a/AnkiDroid/src/main/res/values-ur/10-preferences.xml b/AnkiDroid/src/main/res/values-ur/10-preferences.xml index 3711d4dfe0b0..cc6717183e11 100644 --- a/AnkiDroid/src/main/res/values-ur/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ur/10-preferences.xml @@ -117,7 +117,7 @@ نیچے بائیں کو ٹچ کریں نیچے دائیں کو ٹچ کریں شیک ڈیوائس - \'%s\' مینو + \'%s\' مینو عالمی سطح پر \'%s\' سیاق و سباق کے مینو کو فعال کرتا ہے۔ ڈبل اسکرولنگ eReader کے ساتھ اسکرول گیپ کو دوگنا کریں diff --git a/AnkiDroid/src/main/res/values-uz/10-preferences.xml b/AnkiDroid/src/main/res/values-uz/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-uz/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-uz/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-ve/10-preferences.xml b/AnkiDroid/src/main/res/values-ve/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-ve/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ve/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-vi/10-preferences.xml b/AnkiDroid/src/main/res/values-vi/10-preferences.xml index 87abb76e2cfc..e1f663a5e2c0 100644 --- a/AnkiDroid/src/main/res/values-vi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-vi/10-preferences.xml @@ -77,7 +77,7 @@ Thiết lập lại tất cả các trạng thái Thu phóng thẻ Thu phóng hình ảnh - Kích thước nút trả lời + Kích thước nút trả lời Thẻ trình duyệt font rộng Hiển thị tên tệp trong trình duyệt thẻ Hiển thị tên tệp phương tiện trong các trường câu hỏi / câu trả lời của trình duyệt thẻ @@ -116,16 +116,16 @@ Chạm vào dưới cùng bên trái Chạm vào dưới cùng bên phải Lắc thiết bị - Menu ‘%s’ + Menu ‘%s’ Bật menu ngữ cảnh ‘%s’ trên toàn cầu Bấm phím scrolling (chuột giữa) hai lần - bấm hai lần chuột giữa với eReader + bấm hai lần chuột giữa với eReader Độ nhạy của chạm vuốt Văn bản sang tiếng nói Đọc ra câu hỏi và câu trả lời nếu không có tập tin âm thanh nào được kèm theo Tìm nạp phương tiện truyền thông trên đồng bộ - tài khoản AnkiWeb + tài khoản AnkiWeb Chưa đăng nhập Đồng bộ hóa tự động Đồng bộ hóa tự động khi khởi động / thoát ứng dụng nếu lần đồng bộ hóa cuối cùng nhiều hơn 10 phút trước. diff --git a/AnkiDroid/src/main/res/values-wo/10-preferences.xml b/AnkiDroid/src/main/res/values-wo/10-preferences.xml index 0f0b55cad9c9..6744950912bc 100644 --- a/AnkiDroid/src/main/res/values-wo/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-wo/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-xh/10-preferences.xml b/AnkiDroid/src/main/res/values-xh/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-xh/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-xh/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-yue/10-preferences.xml b/AnkiDroid/src/main/res/values-yue/10-preferences.xml index 0f0b55cad9c9..6744950912bc 100644 --- a/AnkiDroid/src/main/res/values-yue/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-yue/10-preferences.xml @@ -116,7 +116,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader diff --git a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml index b2cf00f97899..d09523cf0fa0 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/10-preferences.xml @@ -116,7 +116,7 @@ 触摸左下方 触摸右下方 摇动设备 - “%s” 菜单 + “%s” 菜单 全局启用 “%s” 上下文菜单 双滚动 电子阅读器中使用双滚动 @@ -263,7 +263,7 @@ 按下按键 添加游戏杆/运动控制器 移动游戏杆/运动控制器 - 用户动作 + 用户动作 从审核屏幕上触发 JavaScript 用户动作 1 用户动作 2 diff --git a/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml b/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml index dd23c8657c09..05bee10502c4 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/01-core.xml @@ -91,10 +91,10 @@ 增加筆記 同步帳戶 隐藏/删除 - 暫時隱藏卡片 + 暫時隱藏卡片 暫時隱藏筆記 - 暫停卡片 - 長久擱置筆記 + 暫停卡片 + 長久擱置筆記 埋葬 擱置 刪除筆記 diff --git a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml index a838eb0574a1..7defa7265934 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/10-preferences.xml @@ -116,7 +116,7 @@ 輕觸左下方 輕觸右下方 搖晃裝置 - ‘%s’ 選單 + ‘%s’ 選單 啟用全域性‘%s’內容選單 加速捲動 加倍 eReader 的滾動間距 diff --git a/AnkiDroid/src/main/res/values-zu/10-preferences.xml b/AnkiDroid/src/main/res/values-zu/10-preferences.xml index 2afb72668806..685d62aa4d39 100644 --- a/AnkiDroid/src/main/res/values-zu/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-zu/10-preferences.xml @@ -117,7 +117,7 @@ Touch bottom left Touch bottom right Shake device - ‘%s’ Menu + ‘%s’ Menu Enables the ‘%s’ context menu globally Double scrolling Double the scroll gap with eReader From d3f0a09157a8bbf04342b5c49bb64e48bdbc748d Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 17 Mar 2025 02:07:07 +0100 Subject: [PATCH 120/200] NF: add a note in 12-dont-translate I experimented and found that adding a new line at start/stop plus spaces cause the string to be noted as untranslated. So I add this note to this logical place to keep track of this information. --- AnkiDroid/src/main/res/values/12-dont-translate.xml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/AnkiDroid/src/main/res/values/12-dont-translate.xml b/AnkiDroid/src/main/res/values/12-dont-translate.xml index ac5bacf6e717..ed18d62fc449 100644 --- a/AnkiDroid/src/main/res/values/12-dont-translate.xml +++ b/AnkiDroid/src/main/res/values/12-dont-translate.xml @@ -16,8 +16,14 @@ --> + In order to ensure this string is not shown as untranslated, translate it the way you want. Probably using a single letter, so that it\'s quick. This string will never appear in ankidroid and is present here only to test crowdin feature. + + This will be used to check that changing the order of strings does not require translation. + From 01db315671d3c41c49bb890f4285f735bcb391df Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 17 Mar 2025 02:39:13 +0100 Subject: [PATCH 121/200] NF: changing order of strings This is a test to ensure that it does not require a new translation! --- AnkiDroid/src/main/res/values/12-dont-translate.xml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/AnkiDroid/src/main/res/values/12-dont-translate.xml b/AnkiDroid/src/main/res/values/12-dont-translate.xml index ed18d62fc449..6b2fa4dcd943 100644 --- a/AnkiDroid/src/main/res/values/12-dont-translate.xml +++ b/AnkiDroid/src/main/res/values/12-dont-translate.xml @@ -18,12 +18,13 @@ - In order to ensure this string is not shown as untranslated, translate it the way you want. Probably using a single letter, so that it\'s quick. This string will never appear in ankidroid and is present here only to test crowdin feature. This will be used to check that changing the order of strings does not require translation. + In order to ensure this string is not shown as untranslated, translate it the way you want. Probably using a single letter, so that it\'s quick. This string will never appear in ankidroid and is present here only to test crowdin feature. From 6969da51c42acb0821652bba8bba51281e811ef9 Mon Sep 17 00:00:00 2001 From: Aditya Date: Sat, 2 Nov 2024 21:52:26 +0530 Subject: [PATCH 122/200] Manual-Download-link The user can download the deck manually if download fails. Fixes #17178 ! Steps to reproduce the download failed error: 1. Comment out the downloadFile() function call in the onViewCreated method. 2. Instead, call checkDownloadStatusAndUnregisterReceiver(false, false). test-added test-updated comment-added xml-updates --- .../ichi2/anki/SharedDecksDownloadFragment.kt | 45 ++++++++++++++++++- .../layout/fragment_shared_decks_download.xml | 16 +++++++ AnkiDroid/src/main/res/values/02-strings.xml | 1 + AnkiDroid/src/main/res/values/constants.xml | 1 + .../anki/SharedDecksDownloadFragmentTest.kt | 43 ++++++++++++++++++ 5 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/SharedDecksDownloadFragmentTest.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/SharedDecksDownloadFragment.kt b/AnkiDroid/src/main/java/com/ichi2/anki/SharedDecksDownloadFragment.kt index 90f483b67fc3..728e68fbe243 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/SharedDecksDownloadFragment.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/SharedDecksDownloadFragment.kt @@ -34,12 +34,14 @@ import android.widget.Button import android.widget.ProgressBar import android.widget.TextView import androidx.activity.OnBackPressedCallback +import androidx.annotation.VisibleForTesting import androidx.appcompat.app.AlertDialog import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.fragment.app.Fragment import com.ichi2.anki.SharedDecksActivity.Companion.DOWNLOAD_FILE import com.ichi2.anki.snackbar.showSnackbar +import com.ichi2.anki.utils.openUrl import com.ichi2.compat.CompatHelper.Companion.getSerializableCompat import com.ichi2.compat.CompatHelper.Companion.registerReceiverCompat import com.ichi2.utils.ImportUtils @@ -70,6 +72,7 @@ class SharedDecksDownloadFragment : Fragment(R.layout.fragment_shared_decks_down private lateinit var downloadPercentageText: TextView private lateinit var downloadProgressBar: ProgressBar private lateinit var checkNetworkInfoText: TextView + private lateinit var openInBrowserButton: Button /** * Android's DownloadManager - Used here to manage the functionality of downloading decks, one @@ -106,6 +109,37 @@ class SharedDecksDownloadFragment : Fragment(R.layout.fragment_shared_decks_down * so our FileProvider can actually serve the file! */ const val SHARED_DECKS_DOWNLOAD_FOLDER = "shared_decks" + + private val deckIdRegex = "download-deck/(\\d+)".toRegex() + + /** + * Given the URI of a deck's download URL such as + * https://ankiweb.net/svc/shared/download-deck/1104981491?t=eyJvcCI6InNkZCIsImlhdCI6MTc0MTUyNjQ0OSwianYiOjF9.hr4a_G-LAqMVBAp5_95l60_2lEtYxodGl4DrJ6dT2WI + * returns the deck's id, in this case "1104981491" if it can be found. + */ + @VisibleForTesting + fun getDeckIdFromDownloadURL(downloadUrl: String) = + deckIdRegex + .find(downloadUrl) + ?.groups + ?.get(1) + ?.value + + /** + * Given the URI of a deck's download URL such as + * https://ankiweb.net/svc/shared/download-deck/1104981491?t=eyJvcCI6InNkZCIsImlhdCI6MTc0MTUyNjQ0OSwianYiOjF9.hr4a_G-LAqMVBAp5_95l60_2lEtYxodGl4DrJ6dT2WI + * returns the deck's page URL such as https://ankiweb.net/shared/info/1104981491 + * If the deck id can't be found, returns the ankiweb's shared deck's main page. + */ + @VisibleForTesting + fun Context.getDeckPageUri(deckDownloadURL: String): String { + val deckId = getDeckIdFromDownloadURL(deckDownloadURL) + return if (deckId != null) { + getString(R.string.shared_deck_info) + deckId + } else { + getString(R.string.shared_decks_url) + } + } } override fun onViewCreated( @@ -120,6 +154,7 @@ class SharedDecksDownloadFragment : Fragment(R.layout.fragment_shared_decks_down importDeckButton = view.findViewById(R.id.import_shared_deck_button) tryAgainButton = view.findViewById(R.id.try_again_deck_download) checkNetworkInfoText = view.findViewById(R.id.check_network_info_text) + openInBrowserButton = view.findViewById(R.id.download_shared_deck_from_browser) val fileToBeDownloaded = arguments?.getSerializableCompat(DOWNLOAD_FILE)!! downloadManager = (activity as SharedDecksActivity).downloadManager @@ -136,14 +171,21 @@ class SharedDecksDownloadFragment : Fragment(R.layout.fragment_shared_decks_down openDownloadedDeck(context) } + openInBrowserButton.setOnClickListener { + Timber.i("'Open in Browser' clicked") + downloadManager.remove(downloadId) + openUrl(Uri.parse(requireContext().getDeckPageUri(fileToBeDownloaded.url))) + parentFragmentManager.popBackStack() + } + tryAgainButton.setOnClickListener { Timber.i("Try again button clicked, retry downloading of deck") downloadManager.remove(downloadId) downloadFile(fileToBeDownloaded) cancelButton.visibility = View.VISIBLE tryAgainButton.visibility = View.GONE + openInBrowserButton.visibility = View.GONE } - requireActivity().onBackPressedDispatcher.addCallback(onBackPressedCallback) } /** @@ -487,6 +529,7 @@ class SharedDecksDownloadFragment : Fragment(R.layout.fragment_shared_decks_down context?.let { showThemedToast(it, R.string.something_wrong, false) } // Update UI if download could not be successful tryAgainButton.visibility = View.VISIBLE + openInBrowserButton.visibility = View.VISIBLE cancelButton.visibility = View.GONE downloadPercentageText.text = getString(R.string.download_failed) downloadProgressBar.progress = DOWNLOAD_STARTED_PROGRESS_PERCENTAGE.toInt() diff --git a/AnkiDroid/src/main/res/layout/fragment_shared_decks_download.xml b/AnkiDroid/src/main/res/layout/fragment_shared_decks_download.xml index 0990875795c0..0a268d1da77a 100644 --- a/AnkiDroid/src/main/res/layout/fragment_shared_decks_download.xml +++ b/AnkiDroid/src/main/res/layout/fragment_shared_decks_download.xml @@ -76,6 +76,22 @@ app:layout_constraintTop_toBottomOf="@id/download_progress" android:visibility="gone" /> + + %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values/constants.xml b/AnkiDroid/src/main/res/values/constants.xml index 7c3d8bc94f29..66433832cae2 100644 --- a/AnkiDroid/src/main/res/values/constants.xml +++ b/AnkiDroid/src/main/res/values/constants.xml @@ -130,6 +130,7 @@ https://github.com/ankidroid/Anki-Android/wiki/FAQ#why-doesnt-my-sound-or-image-work-on-ankidroid https://github.com/ankidroid/Anki-Android/wiki/Third-Party-Apps https://ankiweb.net/shared/decks/ + https://ankiweb.net/shared/info/ https://ankiweb.net/account/login https://ankiweb.net/account/signup https://docs.ankiweb.net/#/files?id=corrupt-collections diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/SharedDecksDownloadFragmentTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/SharedDecksDownloadFragmentTest.kt new file mode 100644 index 000000000000..dc6891d80170 --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/SharedDecksDownloadFragmentTest.kt @@ -0,0 +1,43 @@ +// noinspection MissingCopyrightHeader #17351 + +package com.ichi2.anki + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.ichi2.anki.SharedDecksDownloadFragment.Companion.getDeckPageUri +import org.junit.Assert.assertEquals +import org.junit.Test +import org.junit.runner.RunWith +import kotlin.test.assertNull + +@RunWith(AndroidJUnit4::class) +class SharedDecksDownloadFragmentTest : RobolectricTest() { + @Test + fun `test getDeckIdFromDownloadURL with valid URL`() { + val url = "https://ankiweb.net/svc/shared/download-deck/1104981491?t=some-token" + assertEquals("1104981491", SharedDecksDownloadFragment.getDeckIdFromDownloadURL(url)) + } + + @Test + fun `test getDeckIdFromDownloadURL without Query Parameter`() { + val url = "https://ankiweb.net/svc/shared/download-deck/1104981491" + assertEquals("1104981491", SharedDecksDownloadFragment.getDeckIdFromDownloadURL(url)) + } + + @Test + fun `test getDeckIdFromDownloadURL with invalid URL`() { + val url = "https://ankiweb.net/svc/shared/download-deck/" + assertNull(SharedDecksDownloadFragment.getDeckIdFromDownloadURL(url), "Expected deckId to be null") + } + + @Test + fun `test getDeckPageUri with valid deck URL`() { + val url = "https://ankiweb.net/svc/shared/download-deck/1104981491?t=some-token" + assertEquals("https://ankiweb.net/shared/info/1104981491", targetContext.getDeckPageUri(url)) + } + + @Test + fun `test getDeckPageUri with invalid deck URL`() { + val url = "https://ankiweb.net/svc/shared/download-deck/" + assertEquals("https://ankiweb.net/shared/decks/", targetContext.getDeckPageUri(url)) + } +} From 57c1c3e98805fa891e654cfd803c6785128ea59d Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Mon, 17 Mar 2025 03:05:05 +0100 Subject: [PATCH 123/200] NF: adding a comment to 12-dont-translate This is here only to ensure that adding a tag comment don't cause a need for translation. --- AnkiDroid/src/main/res/values/12-dont-translate.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AnkiDroid/src/main/res/values/12-dont-translate.xml b/AnkiDroid/src/main/res/values/12-dont-translate.xml index 6b2fa4dcd943..aa1fb3eecb32 100644 --- a/AnkiDroid/src/main/res/values/12-dont-translate.xml +++ b/AnkiDroid/src/main/res/values/12-dont-translate.xml @@ -20,7 +20,7 @@ Adding or removing new line at the start/end of the string cause crowdin to require a new translation. Let's check if a comment before lead to a translation need! Adding this kind of XML comment does not cause the need for a new translation! --> - + This will be used to check that changing the order of strings does not require translation. Date: Mon, 17 Mar 2025 02:03:29 +0000 Subject: [PATCH 124/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-af/02-strings.xml | 1 + AnkiDroid/src/main/res/values-am/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ar/02-strings.xml | 1 + AnkiDroid/src/main/res/values-az/02-strings.xml | 1 + AnkiDroid/src/main/res/values-be/02-strings.xml | 1 + AnkiDroid/src/main/res/values-bg/02-strings.xml | 1 + AnkiDroid/src/main/res/values-bn/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ca/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ckb/02-strings.xml | 1 + AnkiDroid/src/main/res/values-cs/02-strings.xml | 1 + AnkiDroid/src/main/res/values-da/02-strings.xml | 1 + AnkiDroid/src/main/res/values-de/02-strings.xml | 1 + AnkiDroid/src/main/res/values-el/02-strings.xml | 1 + AnkiDroid/src/main/res/values-eo/02-strings.xml | 1 + AnkiDroid/src/main/res/values-es-rAR/02-strings.xml | 1 + AnkiDroid/src/main/res/values-es-rES/02-strings.xml | 1 + AnkiDroid/src/main/res/values-et/02-strings.xml | 1 + AnkiDroid/src/main/res/values-eu/02-strings.xml | 1 + AnkiDroid/src/main/res/values-fa/02-strings.xml | 1 + AnkiDroid/src/main/res/values-fi/02-strings.xml | 1 + AnkiDroid/src/main/res/values-fil/02-strings.xml | 1 + AnkiDroid/src/main/res/values-fr/02-strings.xml | 1 + AnkiDroid/src/main/res/values-fy/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ga/02-strings.xml | 1 + AnkiDroid/src/main/res/values-gl/02-strings.xml | 1 + AnkiDroid/src/main/res/values-got/02-strings.xml | 1 + AnkiDroid/src/main/res/values-gu/02-strings.xml | 1 + AnkiDroid/src/main/res/values-heb/02-strings.xml | 1 + AnkiDroid/src/main/res/values-hi/02-strings.xml | 1 + AnkiDroid/src/main/res/values-hr/02-strings.xml | 1 + AnkiDroid/src/main/res/values-hu/02-strings.xml | 1 + AnkiDroid/src/main/res/values-hy/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ind/02-strings.xml | 1 + AnkiDroid/src/main/res/values-is/02-strings.xml | 1 + AnkiDroid/src/main/res/values-it/02-strings.xml | 1 + AnkiDroid/src/main/res/values-iw/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ja/02-strings.xml | 1 + AnkiDroid/src/main/res/values-jv/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ka/02-strings.xml | 1 + AnkiDroid/src/main/res/values-kk/02-strings.xml | 1 + AnkiDroid/src/main/res/values-km/02-strings.xml | 1 + AnkiDroid/src/main/res/values-kn/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ko/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ku/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ky/02-strings.xml | 1 + AnkiDroid/src/main/res/values-lt/02-strings.xml | 1 + AnkiDroid/src/main/res/values-lv/02-strings.xml | 1 + AnkiDroid/src/main/res/values-mk/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ml/02-strings.xml | 1 + AnkiDroid/src/main/res/values-mn/02-strings.xml | 1 + AnkiDroid/src/main/res/values-mr/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ms/02-strings.xml | 1 + AnkiDroid/src/main/res/values-my/02-strings.xml | 1 + AnkiDroid/src/main/res/values-nl/02-strings.xml | 1 + AnkiDroid/src/main/res/values-nn/02-strings.xml | 1 + AnkiDroid/src/main/res/values-no/02-strings.xml | 1 + AnkiDroid/src/main/res/values-or/02-strings.xml | 1 + AnkiDroid/src/main/res/values-pa/02-strings.xml | 1 + AnkiDroid/src/main/res/values-pl/02-strings.xml | 1 + AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml | 1 + AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ro/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ru/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sat/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sc/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sk/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sl/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sq/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sr/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ss/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sv/02-strings.xml | 1 + AnkiDroid/src/main/res/values-sw/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ta/02-strings.xml | 1 + AnkiDroid/src/main/res/values-te/02-strings.xml | 1 + AnkiDroid/src/main/res/values-tg/02-strings.xml | 1 + AnkiDroid/src/main/res/values-tgl/02-strings.xml | 1 + AnkiDroid/src/main/res/values-th/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ti/02-strings.xml | 1 + AnkiDroid/src/main/res/values-tn/02-strings.xml | 1 + AnkiDroid/src/main/res/values-tr/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ts/02-strings.xml | 1 + AnkiDroid/src/main/res/values-tt/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ug/02-strings.xml | 1 + AnkiDroid/src/main/res/values-uk/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ur/02-strings.xml | 1 + AnkiDroid/src/main/res/values-uz/02-strings.xml | 1 + AnkiDroid/src/main/res/values-ve/02-strings.xml | 1 + AnkiDroid/src/main/res/values-vi/02-strings.xml | 1 + AnkiDroid/src/main/res/values-wo/02-strings.xml | 1 + AnkiDroid/src/main/res/values-xh/02-strings.xml | 1 + AnkiDroid/src/main/res/values-yue/02-strings.xml | 1 + AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml | 1 + AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml | 1 + AnkiDroid/src/main/res/values-zu/02-strings.xml | 1 + 94 files changed, 94 insertions(+) diff --git a/AnkiDroid/src/main/res/values-af/02-strings.xml b/AnkiDroid/src/main/res/values-af/02-strings.xml index b7b4bed39c14..5d9855d9c89d 100644 --- a/AnkiDroid/src/main/res/values-af/02-strings.xml +++ b/AnkiDroid/src/main/res/values-af/02-strings.xml @@ -249,6 +249,7 @@ %s%% Laai pak af + Open in Browser Probeer weer Kanselleer aflaai Kanselleer aflaai? diff --git a/AnkiDroid/src/main/res/values-am/02-strings.xml b/AnkiDroid/src/main/res/values-am/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-am/02-strings.xml +++ b/AnkiDroid/src/main/res/values-am/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ar/02-strings.xml b/AnkiDroid/src/main/res/values-ar/02-strings.xml index 565293ed09e6..0166442ed229 100644 --- a/AnkiDroid/src/main/res/values-ar/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ar/02-strings.xml @@ -265,6 +265,7 @@ %s%% تنزيل الرزمة + Open in Browser إعادة المحاولة إلغاء التنزيل هل تريد إلغاء التنزيل؟ diff --git a/AnkiDroid/src/main/res/values-az/02-strings.xml b/AnkiDroid/src/main/res/values-az/02-strings.xml index 38610f3b019a..5f98aed11090 100644 --- a/AnkiDroid/src/main/res/values-az/02-strings.xml +++ b/AnkiDroid/src/main/res/values-az/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-be/02-strings.xml b/AnkiDroid/src/main/res/values-be/02-strings.xml index c4a4c981429b..4da515bb0161 100644 --- a/AnkiDroid/src/main/res/values-be/02-strings.xml +++ b/AnkiDroid/src/main/res/values-be/02-strings.xml @@ -257,6 +257,7 @@ %s%% Спампаваць калоду + Open in Browser Паспрабуйце яшчэ Скасаваць спампоўванне Скасаваць спампоўванне? diff --git a/AnkiDroid/src/main/res/values-bg/02-strings.xml b/AnkiDroid/src/main/res/values-bg/02-strings.xml index c2c06458f33a..d51d70a778dc 100644 --- a/AnkiDroid/src/main/res/values-bg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bg/02-strings.xml @@ -249,6 +249,7 @@ %s%% Изтегляне на тесте + Open in Browser Опитайте пак Отмяна на изтеглянето Отменяте ли изтеглянето? diff --git a/AnkiDroid/src/main/res/values-bn/02-strings.xml b/AnkiDroid/src/main/res/values-bn/02-strings.xml index 3c5be700e9cd..09eb6153db05 100644 --- a/AnkiDroid/src/main/res/values-bn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-bn/02-strings.xml @@ -249,6 +249,7 @@ %s%% ডেক ডাউনলোড করুন + Open in Browser আবার চেষ্টা করুন ডাউনলোড বাতিল করুন ডাউনলোড বাতিল করবেন? diff --git a/AnkiDroid/src/main/res/values-ca/02-strings.xml b/AnkiDroid/src/main/res/values-ca/02-strings.xml index 63b078887dc8..4ce9ff33b4e4 100644 --- a/AnkiDroid/src/main/res/values-ca/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ca/02-strings.xml @@ -249,6 +249,7 @@ %s%% Baixar paquet + Open in Browser Torneu-ho a provar Cancel·lar baixada Cancel·lo la baixada? diff --git a/AnkiDroid/src/main/res/values-ckb/02-strings.xml b/AnkiDroid/src/main/res/values-ckb/02-strings.xml index 51d87f61a038..52da1ad95684 100644 --- a/AnkiDroid/src/main/res/values-ckb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ckb/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-cs/02-strings.xml b/AnkiDroid/src/main/res/values-cs/02-strings.xml index 71b0ce8a5ea0..5c7ea0c330da 100644 --- a/AnkiDroid/src/main/res/values-cs/02-strings.xml +++ b/AnkiDroid/src/main/res/values-cs/02-strings.xml @@ -257,6 +257,7 @@ %s%% Stáhnout balíček + Open in Browser Zkusit znovu Zrušit stahování Zrušit stahování? diff --git a/AnkiDroid/src/main/res/values-da/02-strings.xml b/AnkiDroid/src/main/res/values-da/02-strings.xml index edc52f998108..6475ae4cf783 100644 --- a/AnkiDroid/src/main/res/values-da/02-strings.xml +++ b/AnkiDroid/src/main/res/values-da/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index 9a5086c241c2..4b68753a14b5 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -249,6 +249,7 @@ %s %% Stapel herunterladen + Open in Browser Erneut versuchen Herunterladen abbrechen Herunterladen abbrechen? diff --git a/AnkiDroid/src/main/res/values-el/02-strings.xml b/AnkiDroid/src/main/res/values-el/02-strings.xml index 76ee19d7b598..7cc8c8017b6a 100644 --- a/AnkiDroid/src/main/res/values-el/02-strings.xml +++ b/AnkiDroid/src/main/res/values-el/02-strings.xml @@ -249,6 +249,7 @@ %s%% Λήψη τράπουλας + Open in Browser Προσπαθήστε ξανά Ακύρωση λήψης Ακύρωση λήψης? diff --git a/AnkiDroid/src/main/res/values-eo/02-strings.xml b/AnkiDroid/src/main/res/values-eo/02-strings.xml index db3c1392d6ea..0a3d7257afe3 100644 --- a/AnkiDroid/src/main/res/values-eo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eo/02-strings.xml @@ -249,6 +249,7 @@ %s%% Elŝuti kartaron + Open in Browser Reprovi Rezigni elŝuton Ĉu rezigni elŝuton? 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 2384629a2cfa..22ce73cb805f 100644 --- a/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rAR/02-strings.xml @@ -249,6 +249,7 @@ %s%% Descargar mazo + Open in Browser Inténtalo de nuevo Cancelar descarga ¿Cancelar descarga? 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 82290c5b3ae8..9ee1842880b0 100644 --- a/AnkiDroid/src/main/res/values-es-rES/02-strings.xml +++ b/AnkiDroid/src/main/res/values-es-rES/02-strings.xml @@ -249,6 +249,7 @@ %s%% Descargar mazo + Open in Browser Inténtalo de nuevo Cancelar descarga ¿Cancelar descarga? diff --git a/AnkiDroid/src/main/res/values-et/02-strings.xml b/AnkiDroid/src/main/res/values-et/02-strings.xml index 0abf47c5ef2c..8b6bc87b548b 100644 --- a/AnkiDroid/src/main/res/values-et/02-strings.xml +++ b/AnkiDroid/src/main/res/values-et/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-eu/02-strings.xml b/AnkiDroid/src/main/res/values-eu/02-strings.xml index c6f1ce3c67e8..a7cd8b76e0fa 100644 --- a/AnkiDroid/src/main/res/values-eu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-eu/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index 5add67c79d36..d250c38827ad 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -249,6 +249,7 @@ %s%% دانلود دسته + Open in Browser دوباره تلاش کنید لغو دانلود لغو دانلود؟ diff --git a/AnkiDroid/src/main/res/values-fi/02-strings.xml b/AnkiDroid/src/main/res/values-fi/02-strings.xml index 4c8e7c66ed18..c85a86f3b9bf 100644 --- a/AnkiDroid/src/main/res/values-fi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fi/02-strings.xml @@ -249,6 +249,7 @@ %s%% Lataa pakka + Open in Browser Yritä uudelleen Peruuta lataus Peruutetaanko lataus? diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index d7d3ebf6f779..b58e879fb203 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -249,6 +249,7 @@ %s%% I-download ang deck + Open in Browser Subukang muli Kanselahin ang Pag-download Kanselahin ang pag-download? diff --git a/AnkiDroid/src/main/res/values-fr/02-strings.xml b/AnkiDroid/src/main/res/values-fr/02-strings.xml index a430034d98cb..e7bd59bf4f2b 100644 --- a/AnkiDroid/src/main/res/values-fr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fr/02-strings.xml @@ -249,6 +249,7 @@ %s %% Télécharger le paquet + Open in Browser Réessayer Annuler le téléchargement Annuler le téléchargement ? diff --git a/AnkiDroid/src/main/res/values-fy/02-strings.xml b/AnkiDroid/src/main/res/values-fy/02-strings.xml index 6ae640061210..315d7866298b 100644 --- a/AnkiDroid/src/main/res/values-fy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fy/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ga/02-strings.xml b/AnkiDroid/src/main/res/values-ga/02-strings.xml index 5fe286b30389..07ee1b8d7617 100644 --- a/AnkiDroid/src/main/res/values-ga/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ga/02-strings.xml @@ -261,6 +261,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-gl/02-strings.xml b/AnkiDroid/src/main/res/values-gl/02-strings.xml index 1f612c0fd92d..35f3bff39616 100644 --- a/AnkiDroid/src/main/res/values-gl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gl/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-got/02-strings.xml b/AnkiDroid/src/main/res/values-got/02-strings.xml index 6795a8d34c13..7639768d9c55 100644 --- a/AnkiDroid/src/main/res/values-got/02-strings.xml +++ b/AnkiDroid/src/main/res/values-got/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-gu/02-strings.xml b/AnkiDroid/src/main/res/values-gu/02-strings.xml index 1e51aa6f1b29..55298b7b52b6 100644 --- a/AnkiDroid/src/main/res/values-gu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-gu/02-strings.xml @@ -249,6 +249,7 @@ %s%% ડેક ડાઉનલોડ કરો + Open in Browser ફરીથી પ્રયત્ન કરો ડાઉનલોડ રદ કરો ડાઉનલોડ રદ કરીએ? diff --git a/AnkiDroid/src/main/res/values-heb/02-strings.xml b/AnkiDroid/src/main/res/values-heb/02-strings.xml index 6ae33a3f9ef8..299c8b702455 100644 --- a/AnkiDroid/src/main/res/values-heb/02-strings.xml +++ b/AnkiDroid/src/main/res/values-heb/02-strings.xml @@ -257,6 +257,7 @@ %s%% הורדת חפיסה + Open in Browser נסה שוב בטל הורדה בטל הורדה? diff --git a/AnkiDroid/src/main/res/values-hi/02-strings.xml b/AnkiDroid/src/main/res/values-hi/02-strings.xml index edccb1cc3c29..057e5394147f 100644 --- a/AnkiDroid/src/main/res/values-hi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hi/02-strings.xml @@ -249,6 +249,7 @@ %s%% डेक डाउनलोड करें + Open in Browser पुन: प्रयास करें डाउनलोड रद्द करें डाउनलोड रद्द करें? diff --git a/AnkiDroid/src/main/res/values-hr/02-strings.xml b/AnkiDroid/src/main/res/values-hr/02-strings.xml index cdfb2c18a2a0..525bc25f38bd 100644 --- a/AnkiDroid/src/main/res/values-hr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hr/02-strings.xml @@ -253,6 +253,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-hu/02-strings.xml b/AnkiDroid/src/main/res/values-hu/02-strings.xml index 2a2db7ee8081..d69c054d997c 100644 --- a/AnkiDroid/src/main/res/values-hu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hu/02-strings.xml @@ -249,6 +249,7 @@ %s%% Pakli letöltése + Open in Browser Próbáld újra Letöltés megszakítása Letöltés megszakítása? diff --git a/AnkiDroid/src/main/res/values-hy/02-strings.xml b/AnkiDroid/src/main/res/values-hy/02-strings.xml index f163451aa1ae..0a69ffed1535 100644 --- a/AnkiDroid/src/main/res/values-hy/02-strings.xml +++ b/AnkiDroid/src/main/res/values-hy/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ind/02-strings.xml b/AnkiDroid/src/main/res/values-ind/02-strings.xml index dbf325ac3bb0..dca3bd8144c5 100644 --- a/AnkiDroid/src/main/res/values-ind/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ind/02-strings.xml @@ -245,6 +245,7 @@ %s%% Unduh dek + Open in Browser Coba Lagi Batalkan pengunduhan Batalkan pengunduhan? diff --git a/AnkiDroid/src/main/res/values-is/02-strings.xml b/AnkiDroid/src/main/res/values-is/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-is/02-strings.xml +++ b/AnkiDroid/src/main/res/values-is/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-it/02-strings.xml b/AnkiDroid/src/main/res/values-it/02-strings.xml index 1d6566742efc..e8be82bf11ab 100644 --- a/AnkiDroid/src/main/res/values-it/02-strings.xml +++ b/AnkiDroid/src/main/res/values-it/02-strings.xml @@ -249,6 +249,7 @@ %s%% Scarica il mazzo + Open in Browser Riprova Annulla lo scaricamento Annullare lo scaricamento? diff --git a/AnkiDroid/src/main/res/values-iw/02-strings.xml b/AnkiDroid/src/main/res/values-iw/02-strings.xml index 6ae33a3f9ef8..299c8b702455 100644 --- a/AnkiDroid/src/main/res/values-iw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-iw/02-strings.xml @@ -257,6 +257,7 @@ %s%% הורדת חפיסה + Open in Browser נסה שוב בטל הורדה בטל הורדה? diff --git a/AnkiDroid/src/main/res/values-ja/02-strings.xml b/AnkiDroid/src/main/res/values-ja/02-strings.xml index 8fd0bed3e3fe..63b00606581a 100644 --- a/AnkiDroid/src/main/res/values-ja/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ja/02-strings.xml @@ -245,6 +245,7 @@ %s%% デッキをダウンロード + Open in Browser 再試行 ダウンロードをキャンセル ダウンロードをキャンセルしますか? diff --git a/AnkiDroid/src/main/res/values-jv/02-strings.xml b/AnkiDroid/src/main/res/values-jv/02-strings.xml index 6344ffa4695e..9ef39d948fe4 100644 --- a/AnkiDroid/src/main/res/values-jv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-jv/02-strings.xml @@ -245,6 +245,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 2e2616bc6f28..296af6708cd5 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -249,6 +249,7 @@ %s%% დასტის ჩამოტვირთვა + Open in Browser ხელახლა სცადეთ ჩამოტვირთვის გაუქმება გაუქმდეს ჩამოტვირთვა? diff --git a/AnkiDroid/src/main/res/values-kk/02-strings.xml b/AnkiDroid/src/main/res/values-kk/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-kk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kk/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-km/02-strings.xml b/AnkiDroid/src/main/res/values-km/02-strings.xml index 1efb4edd7665..7bfe15fa7656 100644 --- a/AnkiDroid/src/main/res/values-km/02-strings.xml +++ b/AnkiDroid/src/main/res/values-km/02-strings.xml @@ -245,6 +245,7 @@ %s%% ទាញយកជាន់ + Open in Browser ព្យាយាមម្ដងទៀត Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-kn/02-strings.xml b/AnkiDroid/src/main/res/values-kn/02-strings.xml index 38f668f398f0..f7ade3157057 100644 --- a/AnkiDroid/src/main/res/values-kn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-kn/02-strings.xml @@ -249,6 +249,7 @@ %s%% ಡೆಕ್ ಅನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ + Open in Browser ಮತ್ತೆ ಪ್ರಯತ್ನಿಸು ಡೌನ್‌ಲೋಡ್ ರದ್ದುಮಾಡಿ ಡೌನ್‌ಲೋಡ್ ರದ್ದು ಮಾಡುವುದೇ? diff --git a/AnkiDroid/src/main/res/values-ko/02-strings.xml b/AnkiDroid/src/main/res/values-ko/02-strings.xml index c9a325bae0e8..d1251f2e1070 100644 --- a/AnkiDroid/src/main/res/values-ko/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ko/02-strings.xml @@ -248,6 +248,7 @@ Context | Request Context [1] %s%% 카드 덱 다운로드하기 + Open in Browser 다시 시도하세요. 다운로드 취소 다운로드를 취소하시겠습니까? diff --git a/AnkiDroid/src/main/res/values-ku/02-strings.xml b/AnkiDroid/src/main/res/values-ku/02-strings.xml index 2dbbc450b133..de86f21d4bb3 100644 --- a/AnkiDroid/src/main/res/values-ku/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ku/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ky/02-strings.xml b/AnkiDroid/src/main/res/values-ky/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-ky/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ky/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-lt/02-strings.xml b/AnkiDroid/src/main/res/values-lt/02-strings.xml index ddbca877d423..da4784fe9982 100644 --- a/AnkiDroid/src/main/res/values-lt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lt/02-strings.xml @@ -257,6 +257,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-lv/02-strings.xml b/AnkiDroid/src/main/res/values-lv/02-strings.xml index 1411b824e4a9..77293a2f9eda 100644 --- a/AnkiDroid/src/main/res/values-lv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-lv/02-strings.xml @@ -253,6 +253,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-mk/02-strings.xml b/AnkiDroid/src/main/res/values-mk/02-strings.xml index c7a86c6cd020..75b196cd586d 100644 --- a/AnkiDroid/src/main/res/values-mk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mk/02-strings.xml @@ -250,6 +250,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ml/02-strings.xml b/AnkiDroid/src/main/res/values-ml/02-strings.xml index 760926d4599c..2e4323e58bac 100644 --- a/AnkiDroid/src/main/res/values-ml/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ml/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser വീണ്ടും ശ്രമിക്കുക ഡൗൺലോഡ് റദ്ദാക്കുക ഡൗൺലോഡ് റദ്ദാക്കണോ? diff --git a/AnkiDroid/src/main/res/values-mn/02-strings.xml b/AnkiDroid/src/main/res/values-mn/02-strings.xml index 3095a3491ae3..cf7b4fdc08b6 100644 --- a/AnkiDroid/src/main/res/values-mn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mn/02-strings.xml @@ -249,6 +249,7 @@ %s%% Багцыг татаж авах + Open in Browser Дахин оролдох Татан авалтыг цуцлах Татан авалтыг цуцлах? diff --git a/AnkiDroid/src/main/res/values-mr/02-strings.xml b/AnkiDroid/src/main/res/values-mr/02-strings.xml index b998d7c988bb..15ddcf9b33b9 100644 --- a/AnkiDroid/src/main/res/values-mr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-mr/02-strings.xml @@ -249,6 +249,7 @@ %s%% डेक डाउनलोड करा + Open in Browser पुन्हा प्रयत्न करा डाउनलोड रद्द करा डाउनलोड रद्द करायचे? diff --git a/AnkiDroid/src/main/res/values-ms/02-strings.xml b/AnkiDroid/src/main/res/values-ms/02-strings.xml index 4f1311784eae..452b0d1ccba5 100644 --- a/AnkiDroid/src/main/res/values-ms/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ms/02-strings.xml @@ -245,6 +245,7 @@ %s%% Muat turun dek + Open in Browser Cuba Lagi Batal muat turun Batal muat turun? diff --git a/AnkiDroid/src/main/res/values-my/02-strings.xml b/AnkiDroid/src/main/res/values-my/02-strings.xml index 9d6c7482d644..f45046133624 100644 --- a/AnkiDroid/src/main/res/values-my/02-strings.xml +++ b/AnkiDroid/src/main/res/values-my/02-strings.xml @@ -245,6 +245,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index af3d16185798..36224ef3463b 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -249,6 +249,7 @@ %s%% Set downloaden + Open in Browser Probeer nogmaals Annuleer download Annuleer download? diff --git a/AnkiDroid/src/main/res/values-nn/02-strings.xml b/AnkiDroid/src/main/res/values-nn/02-strings.xml index 014008444199..efba0894f6f3 100644 --- a/AnkiDroid/src/main/res/values-nn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nn/02-strings.xml @@ -249,6 +249,7 @@ %s%% Hent kortleiken + Open in Browser Prøv igjen Avbryt nedlasting Avbryt nedlasting? diff --git a/AnkiDroid/src/main/res/values-no/02-strings.xml b/AnkiDroid/src/main/res/values-no/02-strings.xml index da30e0b8e142..6d39e644a05e 100644 --- a/AnkiDroid/src/main/res/values-no/02-strings.xml +++ b/AnkiDroid/src/main/res/values-no/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Prøv igjen Avbryt nedlasting Avbryt nedlasting? diff --git a/AnkiDroid/src/main/res/values-or/02-strings.xml b/AnkiDroid/src/main/res/values-or/02-strings.xml index 77769b81c340..ecd2fd6cc6bd 100644 --- a/AnkiDroid/src/main/res/values-or/02-strings.xml +++ b/AnkiDroid/src/main/res/values-or/02-strings.xml @@ -249,6 +249,7 @@ %s%% ତାସଖଣ୍ଡ ଡାଉନଲୋଡ୍ କରନ୍ତୁ + Open in Browser ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ ଡାଉନଲୋଡ୍ ବାତିଲ୍ କରନ୍ତୁ ଡାଉନଲୋଡ୍ ବାତିଲ୍ କରିବେ କି? diff --git a/AnkiDroid/src/main/res/values-pa/02-strings.xml b/AnkiDroid/src/main/res/values-pa/02-strings.xml index 6bbe93d971c5..92a0eab202b7 100644 --- a/AnkiDroid/src/main/res/values-pa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pa/02-strings.xml @@ -249,6 +249,7 @@ %s%% ਡੇਕ ਨੂੰ ਡਾਊਨਲੋਡ ਕਰੋ + Open in Browser ਫਿਰ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਡਾਊਨਲੋਡ ਰੱਦ ਕਰੋ ਕੀ ਡਾਊਨਲੋਡ ਰੱਦ ਕਰਨਾ ਹੈ? diff --git a/AnkiDroid/src/main/res/values-pl/02-strings.xml b/AnkiDroid/src/main/res/values-pl/02-strings.xml index 25366c9d37ee..190548ffba19 100644 --- a/AnkiDroid/src/main/res/values-pl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pl/02-strings.xml @@ -257,6 +257,7 @@ %s%% Pobierz talię + Open in Browser Spróbuj ponownie Anuluj pobieranie Anulować pobieranie? 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 3c2117a1fbd5..dbc73538903a 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/02-strings.xml @@ -249,6 +249,7 @@ %s%% Baixar baralho + Open in Browser Tentar Novamente Cancelar download Cancelar download? 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 6147e005271f..f548715472fb 100644 --- a/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml +++ b/AnkiDroid/src/main/res/values-pt-rPT/02-strings.xml @@ -249,6 +249,7 @@ %s%% Transferir baralho + Open in Browser Tentar novamente Cancelar transferência Cancelar transferência? diff --git a/AnkiDroid/src/main/res/values-ro/02-strings.xml b/AnkiDroid/src/main/res/values-ro/02-strings.xml index 62e019ab1d42..92591a5a3883 100644 --- a/AnkiDroid/src/main/res/values-ro/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ro/02-strings.xml @@ -253,6 +253,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 5d9c11f14e56..407becb0ed5a 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -257,6 +257,7 @@ %s%% Скачать колоду + Open in Browser Попробуйте ещё раз Отменить загрузку Отменить загрузку? diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index a1cb5ce5adda..bd311f5ef7aa 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -249,6 +249,7 @@ %s%% ᱰᱮᱠ ᱰᱟᱩᱱᱞᱳᱰ ᱢᱮ + Open in Browser ᱟᱨᱢᱤᱫ ᱫᱷᱟᱣ ᱪᱮᱥᱴᱟᱭ ᱢᱮ ᱰᱟᱩᱱᱞᱳᱰ ᱵᱟᱹᱛᱤᱞ ᱢᱮ ᱰᱟᱩᱱᱞᱳᱰ ᱵᱟᱹᱛᱤᱞᱟᱢ ? diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index 998638e7a8e6..c360e9e1200a 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -252,6 +252,7 @@ %s%% Iscàrriga su matzu + Open in Browser Torra a proare Annulla s\'iscarrigamentu Annullare s\'iscarrigamentu? diff --git a/AnkiDroid/src/main/res/values-sk/02-strings.xml b/AnkiDroid/src/main/res/values-sk/02-strings.xml index 8384227ef25f..293336a41d17 100644 --- a/AnkiDroid/src/main/res/values-sk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sk/02-strings.xml @@ -257,6 +257,7 @@ %s%% Stiahnuť balíček + Open in Browser Skúsiť znovu Zrušiť sťahovanie Zrušiť sťahovanie? diff --git a/AnkiDroid/src/main/res/values-sl/02-strings.xml b/AnkiDroid/src/main/res/values-sl/02-strings.xml index 98daf148c909..25f2b99f843d 100644 --- a/AnkiDroid/src/main/res/values-sl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sl/02-strings.xml @@ -257,6 +257,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-sq/02-strings.xml b/AnkiDroid/src/main/res/values-sq/02-strings.xml index 097abd4b8461..db7381d4d795 100644 --- a/AnkiDroid/src/main/res/values-sq/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sq/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-sr/02-strings.xml b/AnkiDroid/src/main/res/values-sr/02-strings.xml index a94b6227c402..ff220d215e38 100644 --- a/AnkiDroid/src/main/res/values-sr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sr/02-strings.xml @@ -253,6 +253,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ss/02-strings.xml b/AnkiDroid/src/main/res/values-ss/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-ss/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ss/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-sv/02-strings.xml b/AnkiDroid/src/main/res/values-sv/02-strings.xml index b7d434fe2f1a..4cf63da0d96d 100644 --- a/AnkiDroid/src/main/res/values-sv/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sv/02-strings.xml @@ -249,6 +249,7 @@ %s%% Hämta kortlek + Open in Browser Försök igen Avbryt hämtning Avbryt hämtning? diff --git a/AnkiDroid/src/main/res/values-sw/02-strings.xml b/AnkiDroid/src/main/res/values-sw/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-sw/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sw/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ta/02-strings.xml b/AnkiDroid/src/main/res/values-ta/02-strings.xml index 1104b65d84f5..d200c96aed65 100644 --- a/AnkiDroid/src/main/res/values-ta/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ta/02-strings.xml @@ -249,6 +249,7 @@ %s%% டவுன்லோட் டெக் + Open in Browser மீண்டும் முயற்சிக்கவும் பதிவிறக்கத்தை ரத்துசெய் பதிவிறக்கத்தை ரத்துசெய்யவா? diff --git a/AnkiDroid/src/main/res/values-te/02-strings.xml b/AnkiDroid/src/main/res/values-te/02-strings.xml index aafbfe70d69e..2c0a1727d606 100644 --- a/AnkiDroid/src/main/res/values-te/02-strings.xml +++ b/AnkiDroid/src/main/res/values-te/02-strings.xml @@ -249,6 +249,7 @@ %s%% డౌన్‌లోడ్ డెక్ + Open in Browser మళ్లీ ప్రయత్నించండి డౌన్‌లోడ్ రద్దు చేయండి డౌన్‌లోడ్ రద్దు చేయండి? diff --git a/AnkiDroid/src/main/res/values-tg/02-strings.xml b/AnkiDroid/src/main/res/values-tg/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-tg/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tg/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-tgl/02-strings.xml b/AnkiDroid/src/main/res/values-tgl/02-strings.xml index 62b563d5e627..29d8d31cbb88 100644 --- a/AnkiDroid/src/main/res/values-tgl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tgl/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-th/02-strings.xml b/AnkiDroid/src/main/res/values-th/02-strings.xml index 102711af4063..13fe654e2012 100644 --- a/AnkiDroid/src/main/res/values-th/02-strings.xml +++ b/AnkiDroid/src/main/res/values-th/02-strings.xml @@ -245,6 +245,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ti/02-strings.xml b/AnkiDroid/src/main/res/values-ti/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-ti/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ti/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-tn/02-strings.xml b/AnkiDroid/src/main/res/values-tn/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-tn/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tn/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-tr/02-strings.xml b/AnkiDroid/src/main/res/values-tr/02-strings.xml index 2f72abab36a1..eacacbdef374 100644 --- a/AnkiDroid/src/main/res/values-tr/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tr/02-strings.xml @@ -249,6 +249,7 @@ %s%% Deste indir + Open in Browser Tekrar dene İndirmeyi iptal et İndirmeyi iptal et? diff --git a/AnkiDroid/src/main/res/values-ts/02-strings.xml b/AnkiDroid/src/main/res/values-ts/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-ts/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ts/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-tt/02-strings.xml b/AnkiDroid/src/main/res/values-tt/02-strings.xml index 43081719cf60..35a62dc1d33a 100644 --- a/AnkiDroid/src/main/res/values-tt/02-strings.xml +++ b/AnkiDroid/src/main/res/values-tt/02-strings.xml @@ -246,6 +246,7 @@ %s%% Download deck + Open in Browser Янәдән тырышып карагыз Йөкләүдән баш тарту Йөкләүдән баш тартырга телисезме? diff --git a/AnkiDroid/src/main/res/values-ug/02-strings.xml b/AnkiDroid/src/main/res/values-ug/02-strings.xml index 67e701419e03..8c3d21686006 100644 --- a/AnkiDroid/src/main/res/values-ug/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ug/02-strings.xml @@ -249,6 +249,7 @@ %s%% دەستە چۈشۈر + Open in Browser قايتا سىنا چۈشۈرۈشتىن ۋاز كەچ چۈشۈرۈشتىن ۋاز كېچەمدۇ؟ diff --git a/AnkiDroid/src/main/res/values-uk/02-strings.xml b/AnkiDroid/src/main/res/values-uk/02-strings.xml index bc1656cbec5e..b85212bbb496 100644 --- a/AnkiDroid/src/main/res/values-uk/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uk/02-strings.xml @@ -257,6 +257,7 @@ %s%% Завантажити колоду + Open in Browser Спробувати ще раз Скасувати завантаження Скасувати завантаження? diff --git a/AnkiDroid/src/main/res/values-ur/02-strings.xml b/AnkiDroid/src/main/res/values-ur/02-strings.xml index 6e983fa898b4..1fea5c281be0 100644 --- a/AnkiDroid/src/main/res/values-ur/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ur/02-strings.xml @@ -250,6 +250,7 @@ %s%% ڈیک ڈاؤن لوڈ کریں۔ + Open in Browser دوبارہ کوشش کریں ڈاؤن لوڈ منسوخ کریں۔ ڈاؤن لوڈ منسوخ کریں؟ diff --git a/AnkiDroid/src/main/res/values-uz/02-strings.xml b/AnkiDroid/src/main/res/values-uz/02-strings.xml index 23dfdbdf156c..0d3a9683f043 100644 --- a/AnkiDroid/src/main/res/values-uz/02-strings.xml +++ b/AnkiDroid/src/main/res/values-uz/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-ve/02-strings.xml b/AnkiDroid/src/main/res/values-ve/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-ve/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ve/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index 8cf810a5f5d4..ad37c9459025 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -245,6 +245,7 @@ %s%% Tải bộ thẻ xuống + Open in Browser Thử lại Hủy tải xuống Hủy tải xuống? diff --git a/AnkiDroid/src/main/res/values-wo/02-strings.xml b/AnkiDroid/src/main/res/values-wo/02-strings.xml index 9d6c7482d644..f45046133624 100644 --- a/AnkiDroid/src/main/res/values-wo/02-strings.xml +++ b/AnkiDroid/src/main/res/values-wo/02-strings.xml @@ -245,6 +245,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-xh/02-strings.xml b/AnkiDroid/src/main/res/values-xh/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-xh/02-strings.xml +++ b/AnkiDroid/src/main/res/values-xh/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? diff --git a/AnkiDroid/src/main/res/values-yue/02-strings.xml b/AnkiDroid/src/main/res/values-yue/02-strings.xml index 34c98ec442be..3fa0e9477af6 100644 --- a/AnkiDroid/src/main/res/values-yue/02-strings.xml +++ b/AnkiDroid/src/main/res/values-yue/02-strings.xml @@ -245,6 +245,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? 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 c5ffeae6e451..6ba0ee5eb9a6 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -245,6 +245,7 @@ %s%% 下载牌组 + Open in Browser 再试一次 取消下载 是否取消下载? 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 9b2bf8d97327..56e734c01076 100644 --- a/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rTW/02-strings.xml @@ -245,6 +245,7 @@ %s%% 下載牌組 + Open in Browser 再試一次 取消下載 取消下載? diff --git a/AnkiDroid/src/main/res/values-zu/02-strings.xml b/AnkiDroid/src/main/res/values-zu/02-strings.xml index c2a6fe35b154..509505f66399 100644 --- a/AnkiDroid/src/main/res/values-zu/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zu/02-strings.xml @@ -249,6 +249,7 @@ %s%% Download deck + Open in Browser Try Again Cancel download Cancel download? From 084fc11207b7002fbf4e35dc677b78e3ba4bb2e5 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Sun, 16 Mar 2025 16:15:17 +0100 Subject: [PATCH 125/200] NF: rename `modelId` to `noteTypeId` It's done everywhere except in the key of intents --- .../java/com/ichi2/anki/CardTemplateEditor.kt | 20 +++++++++---------- .../com/ichi2/anki/CardTemplateNotetype.kt | 2 +- .../main/java/com/ichi2/anki/NoteEditor.kt | 4 ++-- .../impl/MultimediaEditableNote.kt | 2 +- .../ichi2/anki/servicelayer/NoteService.kt | 8 ++++---- .../main/java/com/ichi2/libanki/Notetypes.kt | 12 +++++------ .../java/com/ichi2/anki/api/AddContentApi.kt | 10 +++++----- 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt index a8f52ef2f896..5d65dff94f9e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt @@ -128,7 +128,7 @@ open class CardTemplateEditor : var tempModel: CardTemplateNotetype? = null private set private var fieldNames: List? = null - private var modelId: NoteTypeId = 0 + private var noteTypeId: NoteTypeId = 0 private var noteId: NoteId = 0 // the position of the cursor in the editor view @@ -170,8 +170,8 @@ open class CardTemplateEditor : // Load the args either from the intent or savedInstanceState bundle if (savedInstanceState == null) { // get model id - modelId = intent.getLongExtra(EDITOR_NOTE_TYPE_ID, NOT_FOUND_NOTE_TYPE) - if (modelId == NOT_FOUND_NOTE_TYPE) { + noteTypeId = intent.getLongExtra(EDITOR_NOTE_TYPE_ID, NOT_FOUND_NOTE_TYPE) + if (noteTypeId == NOT_FOUND_NOTE_TYPE) { Timber.e("CardTemplateEditor :: no model ID was provided") finish() return @@ -183,7 +183,7 @@ open class CardTemplateEditor : tabToCursorPosition[0] = 0 tabToViewId[0] = R.id.front_edit } else { - modelId = savedInstanceState.getLong(EDITOR_NOTE_TYPE_ID) + noteTypeId = savedInstanceState.getLong(EDITOR_NOTE_TYPE_ID) noteId = savedInstanceState.getLong(EDITOR_NOTE_ID) startingOrdId = savedInstanceState.getInt(EDITOR_START_ORD_ID) tabToCursorPosition = savedInstanceState.getSerializableCompat>(TAB_TO_CURSOR_POSITION_KEY)!! @@ -244,7 +244,7 @@ open class CardTemplateEditor : public override fun onSaveInstanceState(outState: Bundle) { with(outState) { tempModel?.let { putAll(it.toBundle()) } - putLong(EDITOR_NOTE_TYPE_ID, modelId) + putLong(EDITOR_NOTE_TYPE_ID, noteTypeId) putLong(EDITOR_NOTE_ID, noteId) putInt(EDITOR_START_ORD_ID, startingOrdId) putSerializable(TAB_TO_VIEW_ID, tabToViewId) @@ -273,7 +273,7 @@ open class CardTemplateEditor : // The first time the activity loads it has a model id but no edits yet, so no edited model // take the passed model id load it up for editing if (tempModel == null) { - tempModel = CardTemplateNotetype(NotetypeJson(col.notetypes.get(modelId).toString())) + tempModel = CardTemplateNotetype(NotetypeJson(col.notetypes.get(noteTypeId).toString())) // Timber.d("onCollectionLoaded() model is %s", mTempModel.getModel().toString(2)); } fieldNames = tempModel!!.notetype.fieldsNames @@ -289,7 +289,7 @@ open class CardTemplateEditor : it.subtitle = tempModel!!.notetype.optString("name") } // Close collection opening dialog if needed - Timber.i("CardTemplateEditor:: Card template editor successfully started for model id %d", modelId) + Timber.i("CardTemplateEditor:: Card template editor successfully started for model id %d", noteTypeId) // Set the tab to the current template if an ord id was provided Timber.d("Setting starting tab to %d", startingOrdId) @@ -299,7 +299,7 @@ open class CardTemplateEditor : } fun modelHasChanged(): Boolean { - val oldModel: NotetypeJson? = getColUnsafe.notetypes.get(modelId) + val oldModel: NotetypeJson? = getColUnsafe.notetypes.get(noteTypeId) return tempModel != null && tempModel!!.notetype.toString() != oldModel.toString() } @@ -890,7 +890,7 @@ open class CardTemplateEditor : @NeedsTest("Notetype is restored to stock kind") private suspend fun restoreNotetypeToStock(kind: StockNotetype.Kind? = null) { - val nid = notetypeId { ntid = tempModel.modelId } + val nid = notetypeId { ntid = tempModel.noteTypeId } undoableOp { restoreNotetypeToStock(nid, kind) } onModelSaved() showThemedToast( @@ -1129,7 +1129,7 @@ open class CardTemplateEditor : // pending deletes could orphan cards if (!CardTemplateNotetype.isOrdinalPendingAdd(tempModel!!, position)) { val currentDeletes = tempModel.getDeleteDbOrds(position) - val cardIds = withCol { notetypes.getCardIdsForModel(tempModel.modelId, currentDeletes) } + val cardIds = withCol { notetypes.getCardIdsForModel(tempModel.noteTypeId, currentDeletes) } if (cardIds == null) { // It is possible but unlikely that a user has an in-memory template addition that would // generate cards making the deletion safe, but we don't handle that. All users who do diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateNotetype.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateNotetype.kt index d03c1def563f..811513e56ecc 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateNotetype.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateNotetype.kt @@ -70,7 +70,7 @@ class CardTemplateNotetype( val templateCount: Int get() = notetype.tmpls.length() - val modelId: NoteTypeId + val noteTypeId: NoteTypeId get() = notetype.getLong("id") fun updateCss(css: String?) { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt index 28eec339fc11..834117521336 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/NoteEditor.kt @@ -2587,8 +2587,8 @@ class NoteEditor : private val currentlySelectedNotetype: NotetypeJson? get() = noteTypeSpinner?.selectedItemPosition?.let { position -> - allModelIds?.get(position)?.let { modelId -> - getColUnsafe.notetypes.get(modelId) + allModelIds?.get(position)?.let { noteTypeId -> + getColUnsafe.notetypes.get(noteTypeId) } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/multimediacard/impl/MultimediaEditableNote.kt b/AnkiDroid/src/main/java/com/ichi2/anki/multimediacard/impl/MultimediaEditableNote.kt index 6d8658c921dd..20fccadcc47c 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/multimediacard/impl/MultimediaEditableNote.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/multimediacard/impl/MultimediaEditableNote.kt @@ -34,7 +34,7 @@ class MultimediaEditableNote : IMultimediaEditableNote { override var isModified = false private set private var fields: ArrayList? = null - var modelId: NoteTypeId = 0 + var noteTypeId: NoteTypeId = 0 /** * Field values in the note editor, before any editing has taken place diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/NoteService.kt b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/NoteService.kt index 9ebd67b25bd7..41f03de28203 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/NoteService.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/servicelayer/NoteService.kt @@ -66,7 +66,7 @@ object NoteService { } note.setField(i, uiTextField) } - note.modelId = model.getLong("id") + note.noteTypeId = model.getLong("id") } catch (e: JSONException) { Timber.w(e, "Error parsing model: %s", model) // Return note with default/empty fields @@ -77,7 +77,7 @@ object NoteService { fun updateMultimediaNoteFromFields( col: Collection, fields: Array, - modelId: NoteTypeId, + noteTypeId: NoteTypeId, mmNote: MultimediaEditableNote, ) { for (i in fields.indices) { @@ -95,7 +95,7 @@ object NoteService { field.setFormattedString(col, value) mmNote.setField(i, field) } - mmNote.modelId = modelId + mmNote.noteTypeId = noteTypeId mmNote.freezeInitialFieldValues() // TODO: set current id of the note as well } @@ -112,7 +112,7 @@ object NoteService { editorNoteDst: Note, ) { if (noteSrc is MultimediaEditableNote) { - if (noteSrc.modelId != editorNoteDst.noteTypeId) { + if (noteSrc.noteTypeId != editorNoteDst.noteTypeId) { throw RuntimeException("Source and Destination Note ID do not match.") } val totalFields: Int = noteSrc.numberOfFields diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Notetypes.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Notetypes.kt index 118de2c42ff2..946b054869c0 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Notetypes.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Notetypes.kt @@ -659,30 +659,30 @@ class Notetypes( * This method will either give you all the card ids for the ordinals sent in related to the model sent in *or* * it will return null if the result of deleting the ordinals is unsafe because it would leave notes with no cards * - * @param modelId long id of the JSON model + * @param noteTypeId long id of the JSON model * @param ords array of ints, each one is the ordinal a the card template in the given model * @return null if deleting ords would orphan notes, long[] of related card ids to delete if it is safe */ @Suppress("ktlint:standard:max-line-length") fun getCardIdsForModel( - modelId: NoteTypeId, + noteTypeId: NoteTypeId, ords: IntArray, ): List? { val cardIdsToDeleteSql = "select c2.id from cards c2, notes n2 where c2.nid=n2.id and n2.mid = ? and c2.ord in ${Utils.ids2str(ords)}" - val cids: List = col.db.queryLongList(cardIdsToDeleteSql, modelId) + val cids: List = col.db.queryLongList(cardIdsToDeleteSql, noteTypeId) // Timber.d("cardIdsToDeleteSql was ' %s' and got %s", cardIdsToDeleteSql, Utils.ids2str(cids)); - Timber.d("getCardIdsForModel found %s cards to delete for model %s and ords %s", cids.size, modelId, Utils.ids2str(ords)) + Timber.d("getCardIdsForModel found %s cards to delete for model %s and ords %s", cids.size, noteTypeId, Utils.ids2str(ords)) // all notes with this template must have at least two cards, or we could end up creating orphaned notes val noteCountPreDeleteSql = "select count(distinct(nid)) from cards where nid in (select id from notes where mid = ?)" - val preDeleteNoteCount: Int = col.db.queryScalar(noteCountPreDeleteSql, modelId) + val preDeleteNoteCount: Int = col.db.queryScalar(noteCountPreDeleteSql, noteTypeId) Timber.d("noteCountPreDeleteSql was '%s'", noteCountPreDeleteSql) Timber.d("preDeleteNoteCount is %s", preDeleteNoteCount) val noteCountPostDeleteSql = "select count(distinct(nid)) from cards where nid in (select id from notes where mid = ?) and ord not in ${Utils.ids2str(ords)}" Timber.d("noteCountPostDeleteSql was '%s'", noteCountPostDeleteSql) - val postDeleteNoteCount: Int = col.db.queryScalar(noteCountPostDeleteSql, modelId) + val postDeleteNoteCount: Int = col.db.queryScalar(noteCountPostDeleteSql, noteTypeId) Timber.d("postDeleteNoteCount would be %s", postDeleteNoteCount) if (preDeleteNoteCount != postDeleteNoteCount) { Timber.d("There will be orphan notes if these cards are deleted.") 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 0ce9670eb14d..0a0fddbcc469 100644 --- a/api/src/main/java/com/ichi2/anki/api/AddContentApi.kt +++ b/api/src/main/java/com/ichi2/anki/api/AddContentApi.kt @@ -154,14 +154,14 @@ public class AddContentApi( * * Example usage: * ``` - * Long modelId = getModelId(); // implementation can be seen in api sample app + * Long noteTypeId = getModelId(); // implementation can be seen in api sample app * Long deckId = getDeckId(); // as above * Set tags = getTags(); // as above * Uri fileUri = ... // this will be returned by a File Picker activity where we select an image file * String addedImageFileName = mApi.addMediaFromUri(fileUri, "My_Image_File", "image"); * * String[] fields = new String[] {"text on front of card", "text on back of card " + addedImageFileName}; - * mApi.addNote(modelId, deckId, fields, tags) + * mApi.addNote(noteTypeId, deckId, fields, tags) * ``` * * @param fileUri Uri for the file to be added, required. @@ -480,13 +480,13 @@ public class AddContentApi( val models: MutableMap = HashMap() allModelsQuery.use { allModelsCursor -> while (allModelsCursor.moveToNext()) { - val modelId = allModelsCursor.getLong(allModelsCursor.getColumnIndex(Model._ID)) + val noteTypeId = allModelsCursor.getLong(allModelsCursor.getColumnIndex(Model._ID)) val name = allModelsCursor.getString(allModelsCursor.getColumnIndex(Model.NAME)) val flds = allModelsCursor.getString(allModelsCursor.getColumnIndex(Model.FIELD_NAMES)) val numFlds: Int = Utils.splitFields(flds).size if (numFlds >= minNumFields) { - models[modelId] = name + models[noteTypeId] = name } } } @@ -626,7 +626,7 @@ public class AddContentApi( /** * Query all notes for a given model * @param modelId the model ID to limit query to - * @return a cursor with all notes matching modelId + * @return a cursor with all notes matching noteTypeId */ fun queryNotes(modelId: Long): Cursor? From 7631a1da696d8dfb577178b10e6905b58f420f71 Mon Sep 17 00:00:00 2001 From: Arthur Milchior Date: Sun, 16 Mar 2025 15:42:39 +0100 Subject: [PATCH 126/200] NF: Rename model to note type in unit tests --- .../java/com/ichi2/anki/DeckPickerTest.kt | 2 +- .../java/com/ichi2/anki/PagesTest.kt | 4 ++-- .../com/ichi2/anki/ReviewerFragmentTest.kt | 4 ++-- .../java/com/ichi2/anki/ReviewerTest.kt | 4 ++-- ...est.kt => NoteTypeEditorContextMenuTest.kt} | 10 +++++----- .../ichi2/anki/tests/ContentProviderTest.kt | 2 +- .../com/ichi2/anki/tests/InstrumentedTest.kt | 12 ++++++------ .../ichi2/anki/tests/libanki/NotetypeTest.kt | 10 +++++----- .../java/com/ichi2/anki/ModelFieldEditor.kt | 18 +++++++++--------- ...extMenu.kt => NoteTypeEditorContextMenu.kt} | 10 +++++----- 10 files changed, 38 insertions(+), 38 deletions(-) rename AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/{ModelEditorContextMenuTest.kt => NoteTypeEditorContextMenuTest.kt} (87%) rename AnkiDroid/src/main/java/com/ichi2/anki/dialogs/{ModelEditorContextMenu.kt => NoteTypeEditorContextMenu.kt} (85%) diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/DeckPickerTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/DeckPickerTest.kt index 0ce9bdbc0f6a..1c274932ee4c 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/DeckPickerTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/DeckPickerTest.kt @@ -49,7 +49,7 @@ class DeckPickerTest : InstrumentedTest() { @Before fun before() { - addNoteUsingBasicModel() + addNoteUsingBasicNoteType() disableIntroductionSlide() discardPreliminaryViews() } diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/PagesTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/PagesTest.kt index 755d96c36352..c33c5611f3be 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/PagesTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/PagesTest.kt @@ -86,13 +86,13 @@ class PagesTest : InstrumentedTest() { fun PagesTest.getStatistics(context: Context): Intent = Statistics.getIntent(context) fun PagesTest.getCardInfo(context: Context): Intent = - addNoteUsingBasicModel().firstCard(col).let { card -> + addNoteUsingBasicNoteType().firstCard(col).let { card -> this.card = card CardInfoDestination(card.id).toIntent(context) } fun PagesTest.getCongratsPage(context: Context): Intent = - addNoteUsingBasicModel().firstCard(col).let { card -> + addNoteUsingBasicNoteType().firstCard(col).let { card -> this.card = card CardInfoDestination(card.id).toIntent(context) } diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerFragmentTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerFragmentTest.kt index 20fc46f998c8..56ec6373566a 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerFragmentTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerFragmentTest.kt @@ -69,7 +69,7 @@ class ReviewerFragmentTest : InstrumentedTest() { states.good.normal.review.scheduledDays = 123; customData.good.c += 1; """ - val note = addNoteUsingBasicModel("foo", "bar") + val note = addNoteUsingBasicNoteType("foo", "bar") val card = note.firstCard(col) val deck = col.decks.get(note.notetype.did)!! card.moveToReviewQueue() @@ -107,7 +107,7 @@ class ReviewerFragmentTest : InstrumentedTest() { setNewReviewer() // Issue 15035 - runtime errors weren't handled col.cardStateCustomizer = "states.this_is_not_defined.normal.review = 12;" - addNoteUsingBasicModel() + addNoteUsingBasicNoteType() closeGetStartedScreenIfExists() closeBackupCollectionDialogIfExists() diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerTest.kt index 1bdd2dc5ed62..8461c64e5d66 100755 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/ReviewerTest.kt @@ -88,7 +88,7 @@ class ReviewerTest : InstrumentedTest() { states.good.normal.review.scheduledDays = 123; customData.good.c += 1; """ - val note = addNoteUsingBasicModel("foo", "bar") + val note = addNoteUsingBasicNoteType("foo", "bar") val card = note.firstCard(col) val deck = col.decks.get(note.notetype.did)!! card.moveToReviewQueue() @@ -136,7 +136,7 @@ class ReviewerTest : InstrumentedTest() { fun testCustomSchedulerWithRuntimeError() { // Issue 15035 - runtime errors weren't handled col.cardStateCustomizer = "states.this_is_not_defined.normal.review = 12;" - addNoteUsingBasicModel() + addNoteUsingBasicNoteType() closeGetStartedScreenIfExists() closeBackupCollectionDialogIfExists() diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/ModelEditorContextMenuTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/NoteTypeEditorContextMenuTest.kt similarity index 87% rename from AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/ModelEditorContextMenuTest.kt rename to AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/NoteTypeEditorContextMenuTest.kt index f6149ad3a911..ec1d11419ae2 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/ModelEditorContextMenuTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/dialogs/NoteTypeEditorContextMenuTest.kt @@ -23,25 +23,25 @@ import androidx.test.espresso.matcher.ViewMatchers.isDisplayed import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.ext.junit.runners.AndroidJUnit4 import com.ichi2.anki.R -import com.ichi2.anki.dialogs.ModelEditorContextMenu.ModelEditorContextMenuAction +import com.ichi2.anki.dialogs.NoteTypeEditorContextMenu.NoteTypeEditorContextMenuAction import com.ichi2.anki.tests.InstrumentedTest import org.junit.Ignore import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) -class ModelEditorContextMenuTest : InstrumentedTest() { +class NoteTypeEditorContextMenuTest : InstrumentedTest() { private val testDialogTitle = "test editor title" @Test @Ignore("flaky") fun showsAllOptions() { launchFragment( - fragmentArgs = bundleOf(ModelEditorContextMenu.KEY_LABEL to testDialogTitle), + fragmentArgs = bundleOf(NoteTypeEditorContextMenu.KEY_LABEL to testDialogTitle), themeResId = R.style.Theme_Light, - ) { ModelEditorContextMenu() } + ) { NoteTypeEditorContextMenu() } onView(withText(testDialogTitle)).check(matches(isDisplayed())) - ModelEditorContextMenuAction.entries.forEach { + NoteTypeEditorContextMenuAction.entries.forEach { onView(withText(it.actionTextId)).check(matches(isDisplayed())) } } diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/ContentProviderTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/ContentProviderTest.kt index 2b4b1349d0f8..c76c3423fbaa 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/ContentProviderTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/ContentProviderTest.kt @@ -1308,7 +1308,7 @@ class ContentProviderTest : InstrumentedTest() { val invalid3 = "[anki:play:a:text]" // string instead of text val back = "$invalid1$invalid2$invalid3" - val note = addNoteUsingBasicModel("Hello$sound", back) + val note = addNoteUsingBasicNoteType("Hello$sound", back) val ord = 0 val noteUri = diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/InstrumentedTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/InstrumentedTest.kt index 4af9273f3404..8977d15d463a 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/InstrumentedTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/InstrumentedTest.kt @@ -158,22 +158,22 @@ abstract class InstrumentedTest { } @DuplicatedCode("This is copied from RobolectricTest. This will be refactored into a shared library later") - internal fun addNoteUsingBasicModel( + internal fun addNoteUsingBasicNoteType( front: String = "Front", back: String = "Back", - ): Note = addNoteUsingModelName("Basic", front, back) + ): Note = addNoteUsingNoteTypeName("Basic", front, back) @DuplicatedCode("This is copied from RobolectricTest. This will be refactored into a shared library later") - private fun addNoteUsingModelName( + private fun addNoteUsingNoteTypeName( name: String, vararg fields: String, ): Note { - val model = + val noteType = col.notetypes.byName(name) - ?: throw IllegalArgumentException("Could not find model '$name'") + ?: throw IllegalArgumentException("Could not find note type '$name'") // PERF: if we modify newNote(), we can return the card and return a Pair here. // Saves a database trip afterwards. - val n = col.newNote(model) + val n = col.newNote(noteType) for ((i, field) in fields.withIndex()) { n.setField(i, field) } diff --git a/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/libanki/NotetypeTest.kt b/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/libanki/NotetypeTest.kt index 60b51a628153..498f9b2036e5 100644 --- a/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/libanki/NotetypeTest.kt +++ b/AnkiDroid/src/androidTest/java/com/ichi2/anki/tests/libanki/NotetypeTest.kt @@ -41,8 +41,8 @@ class NotetypeTest : InstrumentedTest() { "This test is flaky on API29, ignoring", Build.VERSION.SDK_INT != Build.VERSION_CODES.Q, ) - val models = testCol.notetypes - val model = models.all()[0] + val noteTypes = testCol.notetypes + val noteType = noteTypes.all()[0] val testString = "test" val size = testString.length * 1024 * 1024 val buf = StringBuilder((size * 1.01).toInt()) @@ -50,12 +50,12 @@ class NotetypeTest : InstrumentedTest() { for (i in 0 until 1024 * 1024) { buf.append(testString) } - model.put(testString, buf.toString()) + noteType.put(testString, buf.toString()) // Buf should be more than 4MB, so at least two chunks from database. // Reload models testCol.load() - val newModel = models.all()[0] - assertEquals(newModel, model) + val newNoteType = noteTypes.all()[0] + assertEquals(newNoteType, noteType) } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt index 32c52cfab191..d492789a27b3 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ModelFieldEditor.kt @@ -34,8 +34,8 @@ import com.ichi2.anki.CollectionManager.withCol import com.ichi2.anki.dialogs.ConfirmationDialog import com.ichi2.anki.dialogs.LocaleSelectionDialog import com.ichi2.anki.dialogs.LocaleSelectionDialog.LocaleSelectionDialogHandler -import com.ichi2.anki.dialogs.ModelEditorContextMenu.Companion.newInstance -import com.ichi2.anki.dialogs.ModelEditorContextMenu.ModelEditorContextMenuAction +import com.ichi2.anki.dialogs.NoteTypeEditorContextMenu.Companion.newInstance +import com.ichi2.anki.dialogs.NoteTypeEditorContextMenu.NoteTypeEditorContextMenuAction import com.ichi2.anki.servicelayer.LanguageHintService.setLanguageHintForField import com.ichi2.anki.snackbar.showSnackbar import com.ichi2.anki.utils.ext.dismissAllDialogFragments @@ -501,14 +501,14 @@ class ModelFieldEditor : finish() } - fun handleAction(contextMenuAction: ModelEditorContextMenuAction) { + fun handleAction(contextMenuAction: NoteTypeEditorContextMenuAction) { when (contextMenuAction) { - ModelEditorContextMenuAction.Sort -> sortByField() - ModelEditorContextMenuAction.Reposition -> repositionFieldDialog() - ModelEditorContextMenuAction.Delete -> deleteFieldDialog() - ModelEditorContextMenuAction.Rename -> renameFieldDialog() - ModelEditorContextMenuAction.ToggleSticky -> toggleStickyField() - ModelEditorContextMenuAction.AddLanguageHint -> localeHintDialog() + NoteTypeEditorContextMenuAction.Sort -> sortByField() + NoteTypeEditorContextMenuAction.Reposition -> repositionFieldDialog() + NoteTypeEditorContextMenuAction.Delete -> deleteFieldDialog() + NoteTypeEditorContextMenuAction.Rename -> renameFieldDialog() + NoteTypeEditorContextMenuAction.ToggleSticky -> toggleStickyField() + NoteTypeEditorContextMenuAction.AddLanguageHint -> localeHintDialog() } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ModelEditorContextMenu.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/NoteTypeEditorContextMenu.kt similarity index 85% rename from AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ModelEditorContextMenu.kt rename to AnkiDroid/src/main/java/com/ichi2/anki/dialogs/NoteTypeEditorContextMenu.kt index a386cd380679..d776bb30f034 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ModelEditorContextMenu.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/NoteTypeEditorContextMenu.kt @@ -18,11 +18,11 @@ import timber.log.Timber /** * Note: the class is declared as open only to support testing. */ -open class ModelEditorContextMenu : AnalyticsDialogFragment() { +open class NoteTypeEditorContextMenu : AnalyticsDialogFragment() { @SuppressLint("CheckResult") override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { super.onCreate(savedInstanceState) - val availableItems = ModelEditorContextMenuAction.entries.sortedBy { it.order } + val availableItems = NoteTypeEditorContextMenuAction.entries.sortedBy { it.order } return AlertDialog.Builder(requireActivity()).create { setTitle(requireArguments().getString(KEY_LABEL)) @@ -33,7 +33,7 @@ open class ModelEditorContextMenu : AnalyticsDialogFragment() { } } - enum class ModelEditorContextMenuAction( + enum class NoteTypeEditorContextMenuAction( val order: Int, @StringRes val actionTextId: Int, ) { @@ -49,8 +49,8 @@ open class ModelEditorContextMenu : AnalyticsDialogFragment() { @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) const val KEY_LABEL = "key_label" - fun newInstance(label: String): ModelEditorContextMenu = - ModelEditorContextMenu().apply { + fun newInstance(label: String): NoteTypeEditorContextMenu = + NoteTypeEditorContextMenu().apply { arguments = bundleOf(KEY_LABEL to label) } } From b95dbf3843cec98391eb38272a7badbc3fdadd63 Mon Sep 17 00:00:00 2001 From: rahul31124 Date: Fri, 14 Mar 2025 22:41:12 +0530 Subject: [PATCH 127/200] Move file deletion to background thread using coroutines and added a TODO comment Added Comments Added TODO comments and Used AnkiDroidApp.applicationScope --- .../main/java/com/ichi2/anki/IntentHandler.kt | 56 +++++++++++-------- 1 file changed, 34 insertions(+), 22 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt index 70ce3e6fac71..74a32e2998de 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt @@ -45,6 +45,8 @@ import com.ichi2.utils.Permissions import com.ichi2.utils.Permissions.hasLegacyStorageAccessPermission import com.ichi2.utils.copyToClipboard import com.ichi2.utils.trimToLength +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import timber.log.Timber import java.io.File import kotlin.math.max @@ -214,21 +216,28 @@ class IntentHandler : AbstractIntentHandler() { } private fun deleteImportedDeck(path: String?) { - try { - val file = File(path!!) - val fileUri = - applicationContext?.let { - FileProvider.getUriForFile( - it, - it.applicationContext?.packageName + ".apkgfileprovider", - File(it.getExternalFilesDir(FileUtil.getDownloadDirectory()), file.name), - ) - } - // TODO move the file deletion on a background thread - contentResolver.delete(fileUri!!, null, null) - Timber.i("onCreate() import successful and downloaded file deleted") - } catch (e: Exception) { - Timber.w(e, "onCreate() import successful and cannot delete file") + // TODO improve the handling of the imported temporary files + // Launching this scope without tying it to a lifecycle since , + // IntentHandler finishes quickly, but deletion may still be in progress + AnkiDroidApp.applicationScope.launch(Dispatchers.IO) { + try { + val file = File(path!!) + val fileUri = + applicationContext?.let { + FileProvider.getUriForFile( + it, + it.applicationContext?.packageName + ".apkgfileprovider", + File( + it.getExternalFilesDir(FileUtil.getDownloadDirectory()), + file.name, + ), + ) + } + contentResolver.delete(fileUri!!, null, null) + Timber.i("onCreate() import successful and downloaded file deleted") + } catch (e: Exception) { + Timber.w(e, "onCreate() import successful and cannot delete file") + } } } @@ -255,13 +264,16 @@ class IntentHandler : AbstractIntentHandler() { Timber.i("onCreate: downloaded a shared deck but uri was null when trying to delete its file") return } - - try { - // TODO move the file deletion on a background thread - contentResolver.delete(sharedDeckUri, null, null) - Timber.i("onCreate: downloaded shared deck deleted") - } catch (e: Exception) { - Timber.w(e, "onCreate: failed to delete downloaded shared deck") + // TODO improve the handling of the imported temporary files + // Launching this scope without tying it to a lifecycle since , + // IntentHandler finishes quickly, but deletion may still be in progress + AnkiDroidApp.applicationScope.launch(Dispatchers.IO) { + try { + contentResolver.delete(sharedDeckUri, null, null) + Timber.i("onCreate: downloaded shared deck deleted") + } catch (e: Exception) { + Timber.w(e, "onCreate: failed to delete downloaded shared deck") + } } } From 7dff87a048355f48457f3cabd7e82c90782d7fd5 Mon Sep 17 00:00:00 2001 From: Brayan Oliveira <69634269+brayandso@users.noreply.github.com> Date: Sun, 2 Mar 2025 08:48:54 -0300 Subject: [PATCH 128/200] refactor(libanki): remove com.ichi2.anki.Flag dependency --- .../java/com/ichi2/anki/AnkiDroidJsAPI.kt | 2 +- .../src/main/java/com/ichi2/anki/Reviewer.kt | 10 +++--- .../anki/browser/CardBrowserViewModel.kt | 3 +- .../anki/previewer/PreviewerViewModel.kt | 6 ++-- .../ui/windows/reviewer/ReviewerViewModel.kt | 4 ++- .../java/com/ichi2/anki/utils/ext/Card.kt | 9 ++--- .../com/ichi2/anki/utils/ext/Collection.kt | 28 +++++++++++++++ .../src/main/java/com/ichi2/libanki/Card.kt | 8 ++--- .../main/java/com/ichi2/libanki/Collection.kt | 21 ++--------- .../AbstractFlashcardViewerCommandTest.kt | 7 ++-- .../java/com/ichi2/anki/AnkiDroidJsAPITest.kt | 2 +- .../java/com/ichi2/anki/CardBrowserTest.kt | 2 +- .../java/com/ichi2/anki/utils/ext/CardExt.kt | 28 +++++++++++++++ .../test/java/com/ichi2/libanki/FlagTest.kt | 35 ++++++++++--------- 14 files changed, 103 insertions(+), 62 deletions(-) rename AnkiDroid/src/{test => main}/java/com/ichi2/anki/utils/ext/Card.kt (86%) create mode 100644 AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Collection.kt create mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/CardExt.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt index 8a8fe531da01..a188ec9968d6 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt @@ -270,7 +270,7 @@ open class AnkiDroidJsAPI( convertToByteArray(apiContract, true) } "cardMark" -> convertToByteArray(apiContract, currentCard.note(getColUnsafe).hasTag(getColUnsafe, "marked")) - "cardFlag" -> convertToByteArray(apiContract, currentCard.userFlag().code) + "cardFlag" -> convertToByteArray(apiContract, currentCard.userFlag()) "cardReps" -> convertToByteArray(apiContract, currentCard.reps) "cardInterval" -> convertToByteArray(apiContract, currentCard.ivl) "cardFactor" -> convertToByteArray(apiContract, currentCard.factor) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt b/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt index e802da862551..5aa140d77cfd 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/Reviewer.kt @@ -94,6 +94,8 @@ import com.ichi2.anki.servicelayer.NoteService.toggleMark import com.ichi2.anki.snackbar.showSnackbar import com.ichi2.anki.ui.internationalization.toSentenceCase import com.ichi2.anki.ui.windows.reviewer.ReviewerFragment +import com.ichi2.anki.utils.ext.flag +import com.ichi2.anki.utils.ext.setUserFlagForCards import com.ichi2.anki.utils.ext.showDialogFragment import com.ichi2.anki.utils.navBarNeedsScrim import com.ichi2.anki.utils.remainingTime @@ -256,7 +258,7 @@ open class Reviewer : protected val flagToDisplay: Flag get() { return FlagToDisplay( - currentCard!!.userFlag(), + currentCard!!.flag, actionButtons.findMenuItem(ActionButtons.RES_FLAG)?.isActionButton ?: true, prefFullscreenReview, ).get() @@ -307,7 +309,7 @@ open class Reviewer : return } launchCatchingTask { - card.setUserFlag(flag) + card.setUserFlag(flag.code) undoableOp(this@Reviewer) { setUserFlagForCards(listOf(card.id), flag) } @@ -736,7 +738,7 @@ open class Reviewer : val flagIcon = menu.findItem(R.id.action_flag) if (flagIcon != null) { if (currentCard != null) { - val flag = currentCard!!.userFlag() + val flag = currentCard!!.flag flagIcon.setIcon(flag.drawableRes) if (flag == Flag.NONE && actionButtons.status.flagsIsOverflown()) { val flagColor = ThemeUtils.getThemeAttrColor(this, android.R.attr.colorControlNormal) @@ -1326,7 +1328,7 @@ open class Reviewer : } private fun toggleFlag(flag: Flag) { - if (currentCard!!.userFlag() == flag) { + if (currentCard!!.flag == flag) { Timber.i("Toggle flag: unsetting flag") onFlag(currentCard, Flag.NONE) } else { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt index a37c4bb68221..19f626226101 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/browser/CardBrowserViewModel.kt @@ -50,6 +50,7 @@ import com.ichi2.anki.model.SortType import com.ichi2.anki.pages.CardInfoDestination import com.ichi2.anki.preferences.SharedPreferencesProvider import com.ichi2.anki.utils.ext.normalizeForSearch +import com.ichi2.anki.utils.ext.setUserFlagForCards import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.Card import com.ichi2.libanki.CardId @@ -931,7 +932,7 @@ class CardBrowserViewModel( suspend fun updateSelectedCardsFlag(flag: Flag): List { val idsToChange = queryAllSelectedCardIds() - withCol { setUserFlag(flag, cids = idsToChange) } + undoableOp { setUserFlagForCards(cids = idsToChange, flag = flag) } return idsToChange } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerViewModel.kt index 294412f6458c..881f1cd4f96f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/previewer/PreviewerViewModel.kt @@ -33,6 +33,8 @@ import com.ichi2.anki.pages.AnkiServer import com.ichi2.anki.reviewer.CardSide import com.ichi2.anki.servicelayer.MARKED_TAG import com.ichi2.anki.servicelayer.NoteService +import com.ichi2.anki.utils.ext.flag +import com.ichi2.anki.utils.ext.setUserFlagForCards import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.Card import com.ichi2.libanki.undoableOp @@ -126,7 +128,7 @@ class PreviewerViewModel( launchCatchingIO { val card = currentCard.await() undoableOp { - setUserFlagForCards(listOf(card.id), flag) + setUserFlagForCards(cids = listOf(card.id), flag = flag) } this.flag.emit(flag) } @@ -213,7 +215,7 @@ class PreviewerViewModel( } private suspend fun updateFlagIcon() { - flag.emit(currentCard.await().userFlag()) + flag.emit(currentCard.await().flag) } private suspend fun updateMarkIcon() { diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt index 7b9637a0a39c..bbb19058ea6a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/ui/windows/reviewer/ReviewerViewModel.kt @@ -44,6 +44,8 @@ import com.ichi2.anki.servicelayer.NoteService import com.ichi2.anki.servicelayer.isBuryNoteAvailable import com.ichi2.anki.servicelayer.isSuspendNoteAvailable import com.ichi2.anki.ui.windows.reviewer.autoadvance.AutoAdvance +import com.ichi2.anki.utils.ext.flag +import com.ichi2.anki.utils.ext.setUserFlagForCards import com.ichi2.libanki.ChangeManager import com.ichi2.libanki.redo import com.ichi2.libanki.sched.Counts @@ -445,7 +447,7 @@ class ReviewerViewModel( showQuestion() loadAndPlaySounds(CardSide.QUESTION) updateMarkedStatus() - flagFlow.emit(card.userFlag()) + flagFlow.emit(card.flag) canBuryNoteFlow.emit(isBuryNoteAvailable(card)) canSuspendNoteFlow.emit(isSuspendNoteAvailable(card)) countsFlow.emit(state.counts to state.countsIndex) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Card.kt similarity index 86% rename from AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt rename to AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Card.kt index 4c479179c3c7..1fd9852fea4a 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/Card.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Card.kt @@ -15,12 +15,7 @@ */ package com.ichi2.anki.utils.ext +import com.ichi2.anki.Flag import com.ichi2.libanki.Card -/** - * Set flags to [flag]. - * Should only be used for testing. - */ -fun Card.setFlag(flag: Int) { - flags = flag -} +val Card.flag: Flag get() = Flag.fromCode(userFlag()) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Collection.kt b/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Collection.kt new file mode 100644 index 000000000000..45589c89c696 --- /dev/null +++ b/AnkiDroid/src/main/java/com/ichi2/anki/utils/ext/Collection.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.utils.ext + +import androidx.annotation.CheckResult +import anki.collection.OpChangesWithCount +import com.ichi2.anki.Flag +import com.ichi2.libanki.Collection + +/** Change the flag color of the specified cards. */ +@CheckResult +fun Collection.setUserFlagForCards( + cids: Iterable, + flag: Flag, +): OpChangesWithCount = setUserFlagForCards(cids, flag.code) diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt index 7df9a3499bb5..20ee0a2cb122 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Card.kt @@ -19,7 +19,6 @@ package com.ichi2.libanki import androidx.annotation.VisibleForTesting import anki.cards.FsrsMemoryState -import com.ichi2.anki.Flag import com.ichi2.anki.utils.ext.ifZero import com.ichi2.annotations.NeedsTest import com.ichi2.libanki.TemplateManager.TemplateRenderContext.TemplateRenderOutput @@ -325,9 +324,8 @@ open class Card : Cloneable { } // upstream's function returns an int between 0 and 7 (included). - // We return an enum entry for the sake of improving the typing. @LibAnkiAlias("user_flag") - fun userFlag() = Flag.fromCode(flags and 0b111) + fun userFlag() = flags and 0b111 /** * Set the first three bits of [flags] to [flag]. Don't change the other ones. @@ -336,8 +334,8 @@ open class Card : Cloneable { // We take a flag for the sake of typing clarity. @RustCleanup("deprecated in Anki: use col.set_user_flag_for_cards() instead") @LibAnkiAlias("set_user_flag") - fun setUserFlag(flag: Flag) { - flags = setFlagInInt(flags, flag.code) + fun setUserFlag(flag: Int) { + flags = setFlagInInt(flags, flag) } companion object { diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt index 5ec1219e3a36..4ebee4853098 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Collection.kt @@ -40,7 +40,6 @@ import anki.search.BrowserRow import anki.search.SearchNode import anki.sync.SyncAuth import anki.sync.SyncStatusResponse -import com.ichi2.anki.Flag import com.ichi2.libanki.Utils.ids2str import com.ichi2.libanki.backend.model.toBackendNote import com.ichi2.libanki.backend.model.toProtoBuf @@ -562,22 +561,6 @@ class Collection( return resp.changes } - /** - * Card Flags ***************************************************************************************************** - */ - fun setUserFlag( - flag: Flag, - cids: List, - ) { - db.execute( - "update cards set flags = (flags & ~?) | ?, usn=?, mod=? where id in ${ids2str(cids)}", - 7, - flag.code, - usn(), - TimeManager.time.intTime(), - ) - } - lateinit var notetypes: Notetypes protected set @@ -609,8 +592,8 @@ class Collection( @CheckResult fun setUserFlagForCards( cids: Iterable, - flag: Flag, - ): OpChangesWithCount = backend.setFlag(cardIds = cids, flag = flag.code) + flag: Int, + ): OpChangesWithCount = backend.setFlag(cardIds = cids, flag = flag) fun getEmptyCards(): EmptyCardsReport = backend.getEmptyCards() diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/AbstractFlashcardViewerCommandTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/AbstractFlashcardViewerCommandTest.kt index 689f14770f11..1192e8b6a2a2 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/AbstractFlashcardViewerCommandTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/AbstractFlashcardViewerCommandTest.kt @@ -26,6 +26,7 @@ import com.ichi2.anki.cardviewer.ViewerCommand.TOGGLE_FLAG_RED import com.ichi2.anki.cardviewer.ViewerCommand.TOGGLE_FLAG_TURQUOISE import com.ichi2.anki.cardviewer.ViewerCommand.UNSET_FLAG import com.ichi2.anki.cardviewer.ViewerRefresh +import com.ichi2.anki.utils.ext.flag import com.ichi2.libanki.Card import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.Matchers.equalTo @@ -216,8 +217,8 @@ class AbstractFlashcardViewerCommandTest : RobolectricTest() { @Suppress("SameParameterValue") flag: Flag, ): Card { val c = mock(Card::class.java) - val flags = arrayOf(flag) - whenever(c.userFlag()).then { flags[0] } + val flags = arrayOf(flag.code) + whenever(c.flag).then { flags[0] } doAnswer { invocation: InvocationOnMock -> flags[0] = invocation.getArgument(0) }.whenever(c).setUserFlag(anyOrNull()) @@ -246,7 +247,7 @@ class AbstractFlashcardViewerCommandTest : RobolectricTest() { flag: Flag, ) { lastFlag = flag - currentCard!!.setUserFlag(flag) + currentCard!!.setUserFlag(flag.code) } } } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt index 437342db8d5c..6b77a29b500b 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/AnkiDroidJsAPITest.kt @@ -21,7 +21,7 @@ package com.ichi2.anki import androidx.test.ext.junit.runners.AndroidJUnit4 import com.ichi2.anki.AnkiDroidJsAPI.Companion.SUCCESS_KEY import com.ichi2.anki.AnkiDroidJsAPI.Companion.VALUE_KEY -import com.ichi2.anki.utils.ext.setFlag +import com.ichi2.anki.utils.ext.CardExt.setFlag import com.ichi2.libanki.CardType import com.ichi2.libanki.utils.TimeManager import com.ichi2.utils.BASIC_MODEL_NAME diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt index 9b8c4f998ff8..20a36b919090 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt @@ -1669,7 +1669,7 @@ fun TestClass.flagCardForNote( flag: Flag, ) { n.firstCard().update { - setUserFlag(flag) + setUserFlag(flag.code) } } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/CardExt.kt b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/CardExt.kt new file mode 100644 index 000000000000..06ce4d03dfc6 --- /dev/null +++ b/AnkiDroid/src/test/java/com/ichi2/anki/utils/ext/CardExt.kt @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Brayan Oliveira + * + * 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.utils.ext + +import com.ichi2.libanki.Card + +/** + * Set flags to [flag]. + * Should only be used for testing. + */ +object CardExt { + fun Card.setFlag(flag: Int) { + flags = flag + } +} diff --git a/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt b/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt index cfd9a36677bc..43747c20ff44 100644 --- a/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/libanki/FlagTest.kt @@ -15,20 +15,21 @@ */ package com.ichi2.libanki +import android.annotation.SuppressLint import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.ichi2.anki.Flag -import com.ichi2.anki.utils.ext.setFlag +import com.ichi2.anki.utils.ext.CardExt.setFlag import com.ichi2.testutils.JvmTest import com.ichi2.testutils.ext.addNote -import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith +import kotlin.test.assertEquals @RunWith(AndroidJUnit4::class) class FlagTest : JvmTest() { /***************** ** Flags * *****************/ + @SuppressLint("CheckResult") @Test fun test_flags() { val n = col.newNote() @@ -41,36 +42,36 @@ class FlagTest : JvmTest() { val origBits = 0b101 shl 3 c.update { setFlag(origBits) } // no flags to start with - assertEquals(Flag.NONE, c.userFlag()) + assertEquals(0, c.userFlag()) assertEquals(1, col.findCards("flag:0").size) assertEquals(0, col.findCards("flag:1").size) // set flag 2 - col.setUserFlag(Flag.ORANGE, listOf(c.id)) + col.setUserFlagForCards(listOf(c.id), 2) c.load() - assertEquals(Flag.ORANGE, c.userFlag()) + assertEquals(2, c.userFlag()) // assertEquals(origBits, c.flags & origBits);TODO: create direct access to real flag value assertEquals(0, col.findCards("flag:0").size) assertEquals(1, col.findCards("flag:2").size) assertEquals(0, col.findCards("flag:3").size) // change to 3 - col.setUserFlag(Flag.GREEN, listOf(c.id)) + col.setUserFlagForCards(listOf(c.id), 3) c.load() - assertEquals(Flag.GREEN, c.userFlag()) + assertEquals(3, c.userFlag()) // unset - col.setUserFlag(Flag.NONE, listOf(c.id)) + col.setUserFlagForCards(listOf(c.id), 0) c.load() - assertEquals(Flag.NONE, c.userFlag()) + assertEquals(0, c.userFlag()) // should work with Cards method as well - c.setUserFlag(Flag.ORANGE) - assertEquals(Flag.ORANGE, c.userFlag()) - c.setUserFlag(Flag.GREEN) - assertEquals(Flag.GREEN, c.userFlag()) - c.setUserFlag(Flag.NONE) - assertEquals(Flag.NONE, c.userFlag()) + c.setUserFlag(2) + assertEquals(2, c.userFlag()) + c.setUserFlag(3) + assertEquals(3, c.userFlag()) + c.setUserFlag(0) + assertEquals(0, c.userFlag()) // test new flags - col.setUserFlag(Flag.PURPLE, listOf(c.id)) + col.setUserFlagForCards(listOf(c.id), 7) assertEquals(1, col.findCards("flag:7").size) } } From 1f58b7789fbbde6c7b0bd2c0348900d390bd1115 Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Tue, 18 Mar 2025 18:06:56 +0000 Subject: [PATCH 129/200] Updated strings from Crowdin --- .../src/main/res/values-be/03-dialogs.xml | 8 ++++---- .../src/main/res/values-ca/03-dialogs.xml | 4 ++-- .../src/main/res/values-ca/10-preferences.xml | 2 +- .../src/main/res/values-de/02-strings.xml | 2 +- .../src/main/res/values-fa/02-strings.xml | 20 +++++++++---------- .../src/main/res/values-fa/09-backup.xml | 2 +- AnkiDroid/src/main/res/values-gu/01-core.xml | 2 +- .../src/main/res/values-hi/10-preferences.xml | 6 +++--- .../src/main/res/values-hu/03-dialogs.xml | 2 +- .../src/main/res/values-ka/02-strings.xml | 2 +- .../src/main/res/values-ko/03-dialogs.xml | 2 +- .../src/main/res/values-ko/10-preferences.xml | 2 +- AnkiDroid/src/main/res/values-mr/01-core.xml | 2 +- .../src/main/res/values-nl/02-strings.xml | 2 +- .../src/main/res/values-nl/03-dialogs.xml | 4 ++-- .../src/main/res/values-or/03-dialogs.xml | 2 +- .../src/main/res/values-pl/03-dialogs.xml | 2 +- .../src/main/res/values-pt-rBR/01-core.xml | 2 +- .../src/main/res/values-pt-rBR/03-dialogs.xml | 2 +- AnkiDroid/src/main/res/values-ru/01-core.xml | 2 +- .../src/main/res/values-ru/02-strings.xml | 4 ++-- .../src/main/res/values-ru/03-dialogs.xml | 2 +- .../src/main/res/values-ru/10-preferences.xml | 2 +- .../src/main/res/values-sat/02-strings.xml | 12 +++++------ .../src/main/res/values-sat/03-dialogs.xml | 4 ++-- .../main/res/values-sat/10-preferences.xml | 6 +++--- .../src/main/res/values-sc/02-strings.xml | 2 +- .../src/main/res/values-sc/03-dialogs.xml | 4 ++-- .../src/main/res/values-ug/10-preferences.xml | 2 +- .../src/main/res/values-vi/02-strings.xml | 2 +- .../src/main/res/values-vi/03-dialogs.xml | 2 +- .../src/main/res/values-zh-rCN/02-strings.xml | 2 +- 32 files changed, 58 insertions(+), 58 deletions(-) diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml index 4166443e7a9b..36f9edf446d3 100644 --- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml @@ -72,8 +72,8 @@ Вы сапраўды хочаце аднавіць базу даных?\n\nПерад спробай па яе аднаўленні, будзе створана копія ў падпапцы \'%s\'. Катэгорыя “default” нічога не змяшчае Для таго, каб дадаць карткі ў AnkiDroid, выдаліце ўсе катэгорыі Notepad або дадайце катэгорыю з назвай \"default\" - Павялічыць/паменшыць (“-3”) абмежаванні новых картак на сёння - Павялічыць/паменшыць (“-3”) абмежаванні паўтарэння новых картак на сёння + Павялічыць/паменшыць (“-3”) абмежаванні новых картак на сёння + Павялічыць/паменшыць (“-3”) абмежаванні паўтарэння новых картак на сёння Паўтарыць забытыя карткі за апошнія некалькі дзён: Вывучыць на некалькі дзён наперад: Прагледзець новыя карткі, якія дадзены за апошнія некалькі дзён: @@ -133,7 +133,7 @@ Адхілены доступ да запісу гуку Праграма AnkiDroid абноўленая - Праграма AnkiDroid абноўленая. Дадзенае абнаўленне змяшчае выпраўленні магчымых праблем з базай даных і мы раім вам запусціць яе праверку. + Праграма AnkiDroid абноўленая. Дадзенае абнаўленне змяшчае выпраўленні магчымых праблем з базай даных і мы раім вам запусціць яе праверку. Усё роўна працягнуць Праверка базы даных патрабуе вялікай колькасці часовага сховішча.\n\nВельмі пажадана мець прынамсі %s свабоднага месца на прыладзе для таго, каб паспяхова выканаць гэту аперацыю. \n\nУ цяперашні час у вас %s вольнага месца. @@ -224,7 +224,7 @@ Due to Android privacy changes, your data and automated backups will be inaccessible if the app is uninstalled Калода ўжо існуе Калода не можа быць пустой - Калі ў вас ёсць праблемы з парадкам калод (напрыклад, ‘10’ калода стаіць перад ‘2’), замяніце ‘2’ на ‘02’ + Калі ў вас ёсць праблемы з парадкам калод (напрыклад, ‘10’ калода стаіць перад ‘2’), замяніце ‘2’ на ‘02’ Задаць інтэрвал на тое ж самае значэнне diff --git a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml index 0043277a3fec..e8ee99ae2888 100644 --- a/AnkiDroid/src/main/res/values-ca/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ca/03-dialogs.xml @@ -76,7 +76,7 @@ No queda espai al disc El disc està gairebé ple Sense espai - AnkiDroid necessita %s d\'espai lliure per continuar. Allibereu una mica d\'espai si us plau + AnkiDroid necessita %s d\'espai lliure per continuar. Allibereu una mica d\'espai si us plau Restaurar la còpia de seguretat? La seva col·lecció serà replaçada per una còpia anterior. Tots els canvis fets després de desar es perdran. Trieu-ne un altre @@ -148,7 +148,7 @@ Error esborrant imatge Error al aplicar la imatge de fons %s La imatge de fons del selector de paquets és massa gran - Mida màxima de la imatge: %d MB + Mida màxima de la imatge: %d MB Image dimensions are too large (%1$d × %2$d) diff --git a/AnkiDroid/src/main/res/values-ca/10-preferences.xml b/AnkiDroid/src/main/res/values-ca/10-preferences.xml index 4d9738623789..b7aff2d6dcc7 100644 --- a/AnkiDroid/src/main/res/values-ca/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ca/10-preferences.xml @@ -158,7 +158,7 @@ Desactiveu totes les animacions i utilitzeu un mètode més segur per dibuixar cartes. Els dispositius de tinta electrònica poden requerir-ho. Desactiva mode d\'edició d\'un sol camp - Permet el menú \'Supressió Parcial\' quan som en mode apaisat + Permet el menú \'Supressió Parcial\' quan som en mode apaisat Alinear al centre Centra verticalment el contingut de cartes Interval de doble tacte (milisegons) diff --git a/AnkiDroid/src/main/res/values-de/02-strings.xml b/AnkiDroid/src/main/res/values-de/02-strings.xml index 4b68753a14b5..dd1f105713f1 100644 --- a/AnkiDroid/src/main/res/values-de/02-strings.xml +++ b/AnkiDroid/src/main/res/values-de/02-strings.xml @@ -249,7 +249,7 @@ %s %% Stapel herunterladen - Open in Browser + Im Browser öffnen Erneut versuchen Herunterladen abbrechen Herunterladen abbrechen? diff --git a/AnkiDroid/src/main/res/values-fa/02-strings.xml b/AnkiDroid/src/main/res/values-fa/02-strings.xml index d250c38827ad..688d579fa4c9 100644 --- a/AnkiDroid/src/main/res/values-fa/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fa/02-strings.xml @@ -187,7 +187,7 @@ پس زمینه انتخاب تصویر - Remove background + حذف نسخه های پشتیبان حذف پس‌زمینه؟ بازنشانی پیش‌فرض @@ -233,9 +233,9 @@ عکس زیادی بزرگ است، لطفا عکس را دستی وارد کنید فایل ویدیو زیادی بزرگ است، لطفا ویدیو را دستی وارد کنید فایل صدا زیادی بزرگ است، لطفا صدا را دستی وارد کنید - Android backup in progress. Please try again + پشتیبان گیری اندروید درحال انجام شدن هست. لطفا دوباره تلاش کنید شما به iManager نیاز دارید تا به AnkiDroid اجازه اضافه کردن میانبر بدهید - صفحه اصلی شما به AnkiDroid اجازه میانبور اضافه کردن نمیدهد + صفحه اصلی شما به AnkiDroid اجازه میانبور اضافه کردن نمیدهد خطا در افزودن میانبُر: %s جملات را با حروف بزرگ بنویس پیمایش نوار ابزار @@ -249,7 +249,7 @@ %s%% دانلود دسته - Open in Browser + باز کردن در مرورگر دوباره تلاش کنید لغو دانلود لغو دانلود؟ @@ -306,14 +306,14 @@ تنظیمات مرورگر مورد ضبط شده ذخیره شد در حال حذف یادداشت های انتخاب شده - Tap a voice to listen - Voice should be installed before use - Use anyway + برای شنیدن رو صدا کلیک کنید + صدا باید قبل از استفاده نصب شود + به هر حال استفاده کن خطای متن به گفتار (%s) - Internet - Install - Failed to open text to speech settings + اینترنت + نصب شود + باز کردن تنظیمات متن به گفتار ناموفق بود لطفا وارد حساب کاربری خود شوید که دسته های بیشتری را دانلود کنید توضیحات کپی کردن ناموفق بود diff --git a/AnkiDroid/src/main/res/values-fa/09-backup.xml b/AnkiDroid/src/main/res/values-fa/09-backup.xml index 220183c780d4..a48a0b9b3b20 100644 --- a/AnkiDroid/src/main/res/values-fa/09-backup.xml +++ b/AnkiDroid/src/main/res/values-fa/09-backup.xml @@ -60,7 +60,7 @@ در حال تعمیر پایگاه داده… فایل پشتیبان انتخاب شده معتبر نبود نسخه پشتیبان را جهت بازیابی انتخاب کنید - هیچ نسخه پشتیبانی برای این مجموعه در این دستگاه وجود ندارد.اگر در رایانه خود فایل پشتیبان دارید، آن را به صورت دستی در پوشه آنکی دروید کپی کنید + هیچ نسخه پشتیبانی برای این مجموعه در این دستگاه وجود ندارد.اگر در رایانه خود فایل پشتیبان دارید، آن را به صورت دستی در پوشه آنکی دروید کپی کنید مجموعه باز نشد مجموعه شما خراب شده است.\n\n برای بازیابی از نسخه پشتیبان، روی \"گزینه ها\" ضربه بزنید، یا اگر این کار نمی کند، دستورالعمل‌های زیر را برای تعمیر دستی پایگاه داده ببینید:\n%1$s موقع دستیابی به مجموعه فلش کارتها خطایی رخ داد. این ممکن است به خاطر یک نقص بی ضرر به وجود آمده باشد یا یک مشکلي داشته باشد.\n\n لطفا بررسی پایگاه داده را اجرا کنید یا با استفاده از دکمه گزینه ها از فایل های پشتیبان برای بازیابی کمک بگیرید. اگر این پیام مستمرا نمایش داده شد لطفا گزارش اشکال را ارسال کنید\n%1$s diff --git a/AnkiDroid/src/main/res/values-gu/01-core.xml b/AnkiDroid/src/main/res/values-gu/01-core.xml index 8f955c44578e..dd9a8257c4b9 100644 --- a/AnkiDroid/src/main/res/values-gu/01-core.xml +++ b/AnkiDroid/src/main/res/values-gu/01-core.xml @@ -96,7 +96,7 @@ કાર્ડ કાઢો નોંધ કાઢો કાર્ડ સસ્પેન્ડ કરો - નોંધ સસ્પેન્ડ કરો + નોંધ સસ્પેન્ડ કરો કાઢો સસ્પેન્ડ નોંધ કાયમ માટે કાઢી નાખો diff --git a/AnkiDroid/src/main/res/values-hi/10-preferences.xml b/AnkiDroid/src/main/res/values-hi/10-preferences.xml index 761161ea5a36..dbbd7206bca6 100644 --- a/AnkiDroid/src/main/res/values-hi/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-hi/10-preferences.xml @@ -100,7 +100,7 @@ Show keyboard shortcuts फुल स्क्रीन नेविगेशन दराज स्क्रीन पर कहीं से भी स्वाइप किए जाने पर नेविगेशन दराज खोलें - कोई नहीं + कोई नहीं ऊपर की ओर स्वाइप निचे की ओर स्वाइप बाएं स्वाइप करें @@ -130,7 +130,7 @@ लॉगिन नहीं हैं स्वचालित सिंक्रनाइज़ेशन यदि अंतिम सिंक्रनाइज़ेशन 10 मिनट पहले से अधिक था, तो अनुप्रयोग प्रारंभ/निकास पर स्वचालित रूप से सिंक्रनाइज़ करें । - हमेशा + हमेशा केवल बिना जांचे गए कनेक्शन पर कभीं नहीं सिंक्रनाइज़ेशन स्थिति को दिखाएं @@ -139,7 +139,7 @@ यदि अक्षम है, तो मीटर वाले कनेक्शन पर सिंक करने का प्रयास करने पर आपको चेतावनी दी जाएगी फ्रीक्वेंसी समय सीमा - थीम + थीम दिवस थीम रात विषय भाषा diff --git a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml index 0ef081125c30..7bcbed5274d3 100644 --- a/AnkiDroid/src/main/res/values-hu/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-hu/03-dialogs.xml @@ -148,7 +148,7 @@ Hiba a kép törlése közben Hiba a %s háttérkép feltevése közben A Pakli Választó háttérkép túl nagy méretű - A maximum képméret %d MB + A maximum képméret %d MB Image dimensions are too large (%1$d × %2$d) diff --git a/AnkiDroid/src/main/res/values-ka/02-strings.xml b/AnkiDroid/src/main/res/values-ka/02-strings.xml index 296af6708cd5..b352b12049ac 100644 --- a/AnkiDroid/src/main/res/values-ka/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ka/02-strings.xml @@ -205,7 +205,7 @@ ხედი (შეცდომის კოდი: %d) - დაკოპირდა გაცვლის ბუფერზე + დაკოპირდა გაცვლის ბუფერზე შეცდომა გამართვის ინფორმაციის გაცვლის ბუფერზე დაკოპირებისას ბარათის შიგთავსის შეცდომა: „%s“ ვერ ჩაიტვირთა diff --git a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml index d4099b47b2fe..4a608249315d 100644 --- a/AnkiDroid/src/main/res/values-ko/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ko/03-dialogs.xml @@ -230,7 +230,7 @@ Cloze 타입 노트 필요 Cloze 타입 노트 없음. 노트 에디터를 열거나 Cloze 타입 노트를 추가한 후 다시 시도하세요. - 열기 + 열기 Cloze 수 바꾸기 Cloze 수: 에디터 모드 바꾸기 diff --git a/AnkiDroid/src/main/res/values-ko/10-preferences.xml b/AnkiDroid/src/main/res/values-ko/10-preferences.xml index 00c07d5067fc..0b16f1dacf3b 100644 --- a/AnkiDroid/src/main/res/values-ko/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ko/10-preferences.xml @@ -137,7 +137,7 @@ 과금 연결에서 동기화 허용 비활성화하면 과금 인터넷에서 동기화를 시도할 때 경고가 표시됩니다. 빈도 - 보관기간 + 보관기간 테마 주간 테마 야간 테마 diff --git a/AnkiDroid/src/main/res/values-mr/01-core.xml b/AnkiDroid/src/main/res/values-mr/01-core.xml index b122001dc9ba..a622e481b42f 100644 --- a/AnkiDroid/src/main/res/values-mr/01-core.xml +++ b/AnkiDroid/src/main/res/values-mr/01-core.xml @@ -98,7 +98,7 @@ निलंबन कार्ड निलंबित नोट दफन - निलंबित करा + निलंबित करा टीप हटवा झेंडा ध्वजांचे नाव बदला diff --git a/AnkiDroid/src/main/res/values-nl/02-strings.xml b/AnkiDroid/src/main/res/values-nl/02-strings.xml index 36224ef3463b..40740f02073d 100644 --- a/AnkiDroid/src/main/res/values-nl/02-strings.xml +++ b/AnkiDroid/src/main/res/values-nl/02-strings.xml @@ -275,7 +275,7 @@ Zoekopdracht heeft geen resultaten opgeleverd %s is geen geldig JavaScript-addon-pakket - Kon de map %s niet creëeren + Kon de map %s niet creëeren Schadelijk archief. Bevat item buiten de doelmap: %s Schadelijk archief. Grootte overschrijdt %1$s of bevat meer dan %2$d bestanden Bestand extract overschrijdt opslagruimte diff --git a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml index 422af28848e6..023491bc4142 100644 --- a/AnkiDroid/src/main/res/values-nl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-nl/03-dialogs.xml @@ -180,8 +180,8 @@ Facebook Twitter Privacy - Ankidroid Privacybeleid - AnkiWeb Privacybeleid + Ankidroid Privacybeleid + AnkiWeb Privacybeleid AnkiWeb Voorwaarden Stuur probleemoplossingsrapport Rapport is al ingediend diff --git a/AnkiDroid/src/main/res/values-or/03-dialogs.xml b/AnkiDroid/src/main/res/values-or/03-dialogs.xml index f2d91aaa43ba..4261f80e4296 100644 --- a/AnkiDroid/src/main/res/values-or/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-or/03-dialogs.xml @@ -96,7 +96,7 @@ ନବଲିଖନ କରନ୍ତୁ ସଜାଡନ୍ତୁ ପ୍ରତିସ୍ଥାପନ - ନିର୍ଦ୍ଦିଷ୍ଟ ପଥ ଏକ ବୈଧ ନିର୍ଦେଶିକା ନୁହେଁ + ନିର୍ଦ୍ଦିଷ୍ଟ ପଥ ଏକ ବୈଧ ନିର୍ଦେଶିକା ନୁହେଁ The provided text does not resolve to a valid PEM-encoded X509 certificate Error parsing certificate Certificate updated diff --git a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml index eb514411715f..5a7d5c288d2c 100644 --- a/AnkiDroid/src/main/res/values-pl/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pl/03-dialogs.xml @@ -154,7 +154,7 @@ Błąd podczas usuwania obrazu Nie udało się ustawić obrazu w tle%s Tło ekranu wyboru talii zbyt duże - Maksymalny dozwolony rozmiar obrazu: %d MB + Maksymalny dozwolony rozmiar obrazu: %d MB Rozmiary obrazu są zbyt duże (%1$d × %2$d) diff --git a/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml b/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml index 3e14a7429cac..2e87028cd98f 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/01-core.xml @@ -149,7 +149,7 @@ Estilo Aparência do navegador de cartões Substituição de baralho - Inserir campo + Inserir campo Selecionar campo Ao menos um tipo de cartão é necessário. 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 c19cd630f9e3..c53d89ba13a0 100644 --- a/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-pt-rBR/03-dialogs.xml @@ -158,7 +158,7 @@ Muitos lembretes programados. Alguns não aparecerão Definir Idioma - Alguns teclados multilíngues, como GBoard suportam alterar o idioma ao editar o texto\n\nPor favor, solicite o recurso \"setImeHintLocales\" do seu fabricante de teclado se o seu teclado não alterar o idioma. + Alguns teclados multilíngues, como GBoard suportam alterar o idioma ao editar o texto\n\nPor favor, solicite o recurso \"setImeHintLocales\" do seu fabricante de teclado se o seu teclado não alterar o idioma. Usando o AnkiDroid Manual do AnkiDroid diff --git a/AnkiDroid/src/main/res/values-ru/01-core.xml b/AnkiDroid/src/main/res/values-ru/01-core.xml index 3fc81d2661d0..fcb90ea7f09e 100644 --- a/AnkiDroid/src/main/res/values-ru/01-core.xml +++ b/AnkiDroid/src/main/res/values-ru/01-core.xml @@ -202,7 +202,7 @@ Создать новую коллекцию Новая коллекция будет удалена с вашего телефона, если вы удалите AnkiDroid - AnkiDroid требует дополнительных разрешений для работы + AnkiDroid требует дополнительных разрешений для работы Доступ к хранилищу Сохраняет вашу коллекцию в безопасном месте, чтобы она не исчезла при удалении приложения Доступ ко всем файлам diff --git a/AnkiDroid/src/main/res/values-ru/02-strings.xml b/AnkiDroid/src/main/res/values-ru/02-strings.xml index 407becb0ed5a..dc0afc2cc443 100644 --- a/AnkiDroid/src/main/res/values-ru/02-strings.xml +++ b/AnkiDroid/src/main/res/values-ru/02-strings.xml @@ -52,7 +52,7 @@ Тип: Метки: %1$s Карточки: %1$s -  Править скрытие + Править скрытие Название метки Добавить/отфильтровать метки Добавить метку @@ -314,7 +314,7 @@ Карточки — записи Показывать в списке только первые 3 строки Параметры списка карточек - Запись сохранена + Запись сохранена Выбранные записи удаляются Tap a voice to listen Voice should be installed before use diff --git a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml index 73e021187d09..3465ca9cb204 100644 --- a/AnkiDroid/src/main/res/values-ru/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-ru/03-dialogs.xml @@ -251,7 +251,7 @@ До Нужен тип записи с пропусками - Записей с пропусками не найдено, откройте редактор записей или попробуйте снова после добавления карточки с пропусками. + Записей с пропусками не найдено, откройте редактор записей или попробуйте снова после добавления карточки с пропусками. Открыть Количество пропусков Количество пропусков: diff --git a/AnkiDroid/src/main/res/values-ru/10-preferences.xml b/AnkiDroid/src/main/res/values-ru/10-preferences.xml index 40b4e05cbf79..083bf30fc881 100644 --- a/AnkiDroid/src/main/res/values-ru/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ru/10-preferences.xml @@ -118,7 +118,7 @@ Касание в центре экрана Касание внизу в левом углу Касание внизу в правом углу - Потрясти устройство + Потрясти устройство Пункт «%s» в меню Добавляет пункт «%s» в контекстное меню системы Двойная прокрутка diff --git a/AnkiDroid/src/main/res/values-sat/02-strings.xml b/AnkiDroid/src/main/res/values-sat/02-strings.xml index bd311f5ef7aa..c279b10c0fa5 100644 --- a/AnkiDroid/src/main/res/values-sat/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sat/02-strings.xml @@ -45,11 +45,11 @@ --> - ᱰᱨᱚᱣᱟᱹᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ + ᱰᱨᱚᱣᱟᱹᱨ ᱠᱷᱩᱞᱟᱹᱭ ᱢᱮ ᱰᱨᱚᱣᱟᱹᱨ ᱵᱚᱸᱫᱚᱭ ᱢᱮ - ᱠᱟᱰ ᱰᱮᱠᱺ - ᱰᱮᱠᱺ - ᱯᱨᱚᱠᱟᱨᱺ + ᱠᱟᱰ ᱰᱮᱠᱺ + ᱰᱮᱠᱺ + ᱯᱨᱚᱠᱟᱨᱺ ᱴᱮᱜᱥᱺ%1$s ᱠᱟᱰᱺ%1$s ᱚᱠᱥᱩᱞᱤᱥᱚᱱ ᱥᱟᱯᱲᱟᱣ ᱢᱮ @@ -64,7 +64,7 @@ ᱯᱩᱸᱰ ᱵᱚᱰ ᱥᱟᱱᱪᱟᱣ ᱢᱮ ᱥᱴᱟᱭᱞᱩᱥ ᱚᱞᱚᱜ ᱮᱱᱮᱡ ᱢᱮ ᱥᱴᱟᱭᱞᱩᱥ ᱚᱞᱚᱜ ᱵᱚᱫᱚᱞ ᱢᱮ - ᱥᱤᱠᱮᱴ ᱞᱟᱜᱩᱭ ᱢᱮ + ᱥᱤᱠᱮᱴ ᱞᱟᱜᱩᱭ ᱢᱮ ᱥᱤᱠᱮᱴ ᱵᱚᱱᱫ ᱢᱮ ᱥᱤᱠᱮᱴ ᱫᱮᱠᱷᱟᱣ ᱢᱮ ᱥᱤᱠᱮᱴ ᱩᱠᱩᱭ ᱢᱮ @@ -73,7 +73,7 @@ ᱠᱟᱰ ᱫᱚ leech ᱟᱨ ᱵᱚᱸᱫ ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ ᱠᱟᱰ ᱫᱚ leech ᱛᱮ ᱢᱟᱨᱠ ᱮᱱᱟ ᱵᱟᱝᱵᱟᱰᱟᱭᱟᱜ ᱵᱷᱩᱞ - ᱱᱚᱶᱟ ᱫᱚ WebView ᱨᱮ ᱤᱱᱴᱚᱨᱱᱟᱞ ᱵᱷᱩᱞ ᱠᱷᱟᱛᱤᱨ ᱛᱮ + ᱱᱚᱶᱟ ᱫᱚ WebView ᱨᱮ ᱤᱱᱴᱚᱨᱱᱟᱞ ᱵᱷᱩᱞ ᱠᱷᱟᱛᱤᱨ ᱛᱮ Out of Memory ᱥᱤᱥᱴᱚᱢ ᱫᱚ Webview ᱵᱚᱸᱫ ᱠᱮᱜᱼᱟᱭ ᱾ ᱱᱚᱶᱟ ᱫᱚ ᱡᱟᱹᱥᱛᱤ ᱢᱟᱨᱟᱝ ᱯᱷᱚᱱᱴᱥ ᱟᱨ ᱢᱤᱰᱭᱟ ᱠᱷᱟᱹᱛᱤᱨ ᱟᱣᱩᱴ ᱚᱯᱷ ᱢᱮᱢᱚᱨᱤ ᱫᱮᱠᱷᱟᱣ ᱮᱫ ᱟᱭ ᱾ WebView ᱨᱮᱱᱰᱚᱨᱚᱨ ᱠᱨᱟᱥ ᱮᱱᱟ ᱾ ᱠᱟᱨᱚᱬ:%s diff --git a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml index 9e405972f8f0..e4f0dbc558f6 100644 --- a/AnkiDroid/src/main/res/values-sat/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sat/03-dialogs.xml @@ -194,7 +194,7 @@ ᱟᱢᱟᱜ ᱤᱱᱴᱟᱨᱱᱮᱴ ᱯᱨᱚᱵᱷᱟᱭᱰᱟᱨ ᱰᱮᱴᱟ ᱵᱮᱵᱷᱟᱨ ᱞᱟᱹᱜᱤᱫ ᱴᱟᱠᱟ ᱦᱟᱛᱟᱣᱟ ᱱᱚᱣᱟ ᱰᱮᱠᱨᱮ ᱛᱮᱦᱮᱧ ᱧᱮᱞ ᱞᱟᱹᱜᱤᱫ ᱱᱟᱣᱟ ᱠᱟᱰ ᱨᱮᱭᱟᱜ ᱮᱞ ᱱᱚᱣᱟ ᱰᱮᱠ ᱨᱮ ᱛᱮᱦᱮᱧ ᱞᱟᱹᱜᱤᱫ ᱢᱮᱱᱟᱜ ᱱᱟᱣᱟ ᱮᱞ - ᱱᱚᱣᱟ ᱰᱮᱠ ᱨᱮᱭᱟᱜ ᱥᱮᱪᱮᱫ ᱠᱟᱰ ᱮᱞ + ᱱᱚᱣᱟ ᱰᱮᱠ ᱨᱮᱭᱟᱜ ᱥᱮᱪᱮᱫ ᱠᱟᱰ ᱮᱞ @@ -233,7 +233,7 @@ ᱠᱷᱚᱱ - ᱛᱮ + ᱛᱮ ᱠᱞᱳᱡ ᱴᱟᱭᱤᱯ ᱱᱳᱴ ᱞᱟᱹᱠᱛᱤ ᱠᱟᱱᱟ Cloze ᱞᱮᱠᱟᱱ ᱱᱳᱴ ᱵᱟᱝ ᱧᱟᱢ ᱞᱮᱱᱟ, ᱱᱳᱴ ᱮᱰᱤᱴᱚᱨ ᱮᱛᱦᱚᱵ ᱢᱮ ᱟᱨ ᱵᱟᱝ Cloze ᱞᱮᱠᱟᱱ ᱱᱳᱴ ᱥᱮᱞᱮᱫ ᱠᱟᱛᱮ ᱟᱨᱦᱚᱸ ᱯᱨᱚᱵᱷᱟᱣ ᱢᱮ ᱾ diff --git a/AnkiDroid/src/main/res/values-sat/10-preferences.xml b/AnkiDroid/src/main/res/values-sat/10-preferences.xml index 6dcd46751e9d..4fe179f6b92d 100644 --- a/AnkiDroid/src/main/res/values-sat/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-sat/10-preferences.xml @@ -148,14 +148,14 @@ ᱚᱠᱟ ᱡᱷᱟᱚᱜ ᱤᱰᱞᱟᱹᱭ ᱛᱤᱥᱦᱚᱸ ᱵᱟᱝ ᱤᱛᱞᱟᱹᱭ ᱢᱟᱲᱟᱝᱟ ᱠᱷᱚᱵᱚᱨ ᱥᱟᱨᱮᱡ ᱢᱮᱱᱟᱜᱼᱟ - %d ᱠᱦᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱠᱟᱰᱥ ᱥᱟᱨᱮᱡ + %d ᱠᱦᱚᱱ ᱡᱟᱹᱥᱛᱤ ᱠᱟᱰᱥ ᱥᱟᱨᱮᱡ ᱛᱷᱟᱨᱼᱛᱷᱟᱨᱟᱣ ᱫᱷᱩᱯᱼᱫᱷᱟᱯ ᱟᱨᱥᱟᱞ ᱟᱲᱟᱝ ᱵᱟᱪᱷᱟᱣ - ᱠᱟᱰ ᱦᱟᱰᱣᱮᱨ ᱥᱤᱡᱚᱱᱤᱭᱟᱹ ᱴᱷᱟᱠᱮᱫ ᱮᱢᱮ + ᱠᱟᱰ ᱦᱟᱰᱣᱮᱨ ᱥᱤᱡᱚᱱᱤᱭᱟᱹ ᱴᱷᱟᱠᱮᱫ ᱮᱢᱮ ᱦᱟᱰᱣᱮᱨ ᱵᱮᱱᱟᱣ ᱩᱥᱟᱹᱨᱟ ᱜᱮᱭᱟ ᱢᱮᱱᱠᱟᱷᱟᱱ ᱵᱤᱥᱮᱥ ᱞᱮᱠᱟᱛᱮ Android 8/8.1. ᱮᱴᱠᱮᱴᱚᱬᱮ ᱦᱩᱭᱫᱟᱲᱮᱟᱫ-ᱟ।ᱡᱩᱫᱤ ᱟᱢ ᱤᱸᱴᱚᱨᱯᱷᱮᱥ ᱠᱟᱰ ᱨᱤᱵᱷᱭᱩ ᱟᱜ ᱵᱟᱢ ᱧᱮᱞᱧᱟᱢᱮᱫ-ᱟ, ᱮᱱᱠᱷᱟᱱ ᱥᱮᱴᱤᱝ ᱨᱮ ᱪᱮᱥᱴᱟᱭᱢᱮ ᱡᱟᱹᱯᱛᱤ ᱚᱵᱚᱥᱛᱷᱟ ᱩᱫᱩᱜᱽ ᱢᱚᱰ - ᱡᱷᱚᱛᱚ ᱮᱱᱤᱢᱮᱥᱚᱱ ᱵᱚᱱᱫᱽ ᱠᱟᱛᱮ ᱟᱨ ᱴᱷᱤᱠ ᱛᱚᱨᱤᱠᱟ ᱛᱮ ᱠᱟᱰ ᱤᱫᱤ ᱢᱮ ᱾ ᱤᱼᱠᱟᱲᱤ ᱰᱤᱵᱷᱟᱤᱥ ᱫᱚᱨᱠᱟᱨ ᱯᱟᱲᱟᱣ ᱜᱮᱭᱟ ᱾ + ᱡᱷᱚᱛᱚ ᱮᱱᱤᱢᱮᱥᱚᱱ ᱵᱚᱱᱫᱽ ᱠᱟᱛᱮ ᱟᱨ ᱴᱷᱤᱠ ᱛᱚᱨᱤᱠᱟ ᱛᱮ ᱠᱟᱰ ᱤᱫᱤ ᱢᱮ ᱾ ᱤᱼᱠᱟᱲᱤ ᱰᱤᱵᱷᱟᱤᱥ ᱫᱚᱨᱠᱟᱨ ᱯᱟᱲᱟᱣ ᱜᱮᱭᱟ ᱾ ᱢᱤᱫᱴᱟᱹᱝ ᱡᱟᱭᱜᱟ ᱥᱟᱯᱰᱟᱣ ᱢᱚᱰ ᱵᱸᱫᱚ \'ᱠᱞᱚᱡ ᱢᱮᱴᱟᱣ\' ᱠᱚᱱᱴᱮᱠᱥᱴ ᱢᱮᱱᱩ ᱚᱛᱱᱚᱜ ᱧᱮᱸᱞ ᱢᱚᱰ ᱨᱮ ᱵᱟᱛᱟᱣ ᱢᱮ ᱾. diff --git a/AnkiDroid/src/main/res/values-sc/02-strings.xml b/AnkiDroid/src/main/res/values-sc/02-strings.xml index c360e9e1200a..9fba136f1daf 100644 --- a/AnkiDroid/src/main/res/values-sc/02-strings.xml +++ b/AnkiDroid/src/main/res/values-sc/02-strings.xml @@ -280,7 +280,7 @@ %s no est unu pachete de estensione JavaScript vàlidu No at fatu a creare sa cartella %s Archìviu malu. Cuntenet un\'intrada a foras de sa cartella de obietivu: %s - Archìviu malu. Sa mannària bàrigat sos %1$s o cuntenet prus de %2$d documentos + Archìviu malu. Sa mannària bàrigat sos %1$s o cuntenet prus de %2$d documentos S\'estratzione de su documentu bàrigat sa capatzidade de archiviatzione Ismànnia s\'eticheta \'%s\' diff --git a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml index 8b00e12f9b6a..70692ae903dc 100644 --- a/AnkiDroid/src/main/res/values-sc/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-sc/03-dialogs.xml @@ -205,7 +205,7 @@ In %d segundu diat pòdere incumintzare una sincronizatzione automàtica In %d segundos diat pòdere incumintzare una sincronizatzione automàtica - Su frunidore de ìnternet tuo ti diat pòdere fàghere pagare dinare pro s\'impreu de datos + Su frunidore de ìnternet tuo ti diat pòdere fàghere pagare dinare pro s\'impreu de datos Nùmeru de cartas noas de pompiare oe in custu matzu. Nùmeru de cartas chi iscadint oe in custu matzu. Nùmeru de cartas de imparare in custu matzu. @@ -222,7 +222,7 @@ Faghe una còpia de seguresa de sa colletzione tua No as fatu una còpia de seguresa de sa colletzione tua dae unu pagu de tempus. Lu dias dèpere fàghere como pro prevènnere pèrdidas de datos Faghe una còpia - Disabìlita su promemòria + Disabìlita su promemòria Prus a tardu Non lu torres a mustrare Avisu de pèrdida de datos diff --git a/AnkiDroid/src/main/res/values-ug/10-preferences.xml b/AnkiDroid/src/main/res/values-ug/10-preferences.xml index b75ba655ca97..3d20edd3019a 100644 --- a/AnkiDroid/src/main/res/values-ug/10-preferences.xml +++ b/AnkiDroid/src/main/res/values-ug/10-preferences.xml @@ -161,7 +161,7 @@ توغرىسىغا ھالەتتە مەزمۇن تىزىملىكىدە «بوش ئورۇن تولدۇرۇش» قا يول قويىدۇ. ئۇتتۇرىغا توغرىلا - كارتا مەزمۇنىنى بويىغا ئوتتۇرىغا توغرىلايدۇ + كارتا مەزمۇنىنى بويىغا ئوتتۇرىغا توغرىلايدۇ ۋاقىت ئارىلىقى قوش چېكىلىدۇ (مىللىسېكۇنت) ئەگەر بۇ ۋاقىت ئۆتۈپ كەتمىگەن بولسا، جاۋاب توپچىنىڭ ئىككىنچى قېتىم چېكىلىشى نەزەردىن ساقىت قىلىنىدۇ. بۇ تاسادىپىي قوش چېكىشنىڭ ئالدىنى ئالىدۇ «جاۋابنى كۆرسەت» نىڭ ئۇزۇن بېسىش ۋاقتى diff --git a/AnkiDroid/src/main/res/values-vi/02-strings.xml b/AnkiDroid/src/main/res/values-vi/02-strings.xml index ad37c9459025..47bbfbee8676 100644 --- a/AnkiDroid/src/main/res/values-vi/02-strings.xml +++ b/AnkiDroid/src/main/res/values-vi/02-strings.xml @@ -75,7 +75,7 @@ Lỗi không xác định Lỗi nội bộ trong webview Không đủ bộ nhớ - WebView đã bị ngắt bởi hệ thống. Việc này thường xảy ra khi ứng dụng hết bộ nhớ vì font chữ hoặc file media quá lớn. + WebView đã bị ngắt bởi hệ thống. Việc này thường xảy ra khi ứng dụng hết bộ nhớ vì font chữ hoặc file media quá lớn. Trình kết xuất WebView bị lỗi. Nguyên nhân: %s Lỗi nghiêm trọng: Trình kết xuất WebView bị lỗi. Nguyên nhân: %s Hệ thống hiển thị WebView không thành công diff --git a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml index d559fa3ae4e5..6e5540395715 100644 --- a/AnkiDroid/src/main/res/values-vi/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-vi/03-dialogs.xml @@ -77,7 +77,7 @@ AnkiDroid needs %s free storage space to continue. Please clear some space Khôi phục sao lưu? Bộ sưu tập sẽ được thay bằng bản sao cũ hơn. Bất kỳ tiến trình nào chưa lưu sẽ bị mất. - Chọn cái khác + Chọn cái khác Huỷ OK Xác nhận 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 6ba0ee5eb9a6..ffa1022b79ef 100644 --- a/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml +++ b/AnkiDroid/src/main/res/values-zh-rCN/02-strings.xml @@ -245,7 +245,7 @@ %s%% 下载牌组 - Open in Browser + 在浏览器中打开 再试一次 取消下载 是否取消下载? From ea9c06931a96cdcc75ae7eec3c3b5c0bc82d000f Mon Sep 17 00:00:00 2001 From: AnkiDroid Translations Date: Tue, 18 Mar 2025 18:59:31 +0000 Subject: [PATCH 130/200] Updated strings from Crowdin --- AnkiDroid/src/main/res/values-be/03-dialogs.xml | 2 +- AnkiDroid/src/main/res/values-fil/02-strings.xml | 2 +- AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml | 2 +- AnkiDroid/src/main/res/values-ko/01-core.xml | 4 ++-- AnkiDroid/src/main/res/values-or/07-cardbrowser.xml | 4 ++-- AnkiDroid/src/main/res/values-sat/18-standard-models.xml | 2 +- AnkiDroid/src/main/res/values-uk/01-core.xml | 2 +- AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml | 2 +- AnkiDroid/src/main/res/values-uk/18-standard-models.xml | 2 +- AnkiDroid/src/main/res/values-vi/01-core.xml | 2 +- AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml | 2 +- 11 files changed, 13 insertions(+), 13 deletions(-) diff --git a/AnkiDroid/src/main/res/values-be/03-dialogs.xml b/AnkiDroid/src/main/res/values-be/03-dialogs.xml index 36f9edf446d3..e9afdc145435 100644 --- a/AnkiDroid/src/main/res/values-be/03-dialogs.xml +++ b/AnkiDroid/src/main/res/values-be/03-dialogs.xml @@ -228,7 +228,7 @@ Задаць інтэрвал на тое ж самае значэнне - Паказваць картку за + Паказваць картку за Паказваць карткі за Паказваць карткі за Паказваць карткі за diff --git a/AnkiDroid/src/main/res/values-fil/02-strings.xml b/AnkiDroid/src/main/res/values-fil/02-strings.xml index b58e879fb203..a8d479266693 100644 --- a/AnkiDroid/src/main/res/values-fil/02-strings.xml +++ b/AnkiDroid/src/main/res/values-fil/02-strings.xml @@ -111,7 +111,7 @@ - %1$d minuto + %1$d minuto %1$d minuto AnkiDroid kard diff --git a/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml index cea4904136ee..9bfdb8cba2b9 100644 --- a/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-hy/07-cardbrowser.xml @@ -46,7 +46,7 @@ - %d քարտ է ցուցադրված + %d քարտ է ցուցադրված %d քարտ է ցուցադրված diff --git a/AnkiDroid/src/main/res/values-ko/01-core.xml b/AnkiDroid/src/main/res/values-ko/01-core.xml index e4cc16bfb286..68d4877c4ebb 100644 --- a/AnkiDroid/src/main/res/values-ko/01-core.xml +++ b/AnkiDroid/src/main/res/values-ko/01-core.xml @@ -115,11 +115,11 @@ 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에 \'저장소\'권한이 필요합니다. - 필터링된 덱을 재구성하는 중… + 필터링된 덱을 재구성하는 중… 재생성 비우기 하위 뭉치 만들기 - 필터링된 덱을 비우는 중… + 필터링된 덱을 비우는 중… 맞춤 학습 세션 기존의 맞춤 학습 덱의 이름을 먼저 변경하세요. 덱 검색하기 diff --git a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml index d3531829f192..89b20ea00e87 100644 --- a/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-or/07-cardbrowser.xml @@ -83,9 +83,9 @@ ସୃଷ୍ଟି ସମୟ ଅନୁସାରେ ନୋଟ୍ ସଂଶୋଧନ ସମୟ ଅନୁସାରେ ପତ୍ର ସଂଶୋଧନ ସମୟ ଅନୁସାରେ - ଦେୟ ସମୟ ଅନୁସାରେ + ଦେୟ ସମୟ ଅନୁସାରେ ଅନ୍ତରାଳ ଅନୁସାରେ - ସହଜତା ଅନୁସାରେ + ସହଜତା ଅନୁସାରେ ସମୀକ୍ଷା ଅନୁସାରେ ଲାପ୍ସ ଅନୁସାରେ diff --git a/AnkiDroid/src/main/res/values-sat/18-standard-models.xml b/AnkiDroid/src/main/res/values-sat/18-standard-models.xml index 316c2ec94d10..9b57a2e625fb 100644 --- a/AnkiDroid/src/main/res/values-sat/18-standard-models.xml +++ b/AnkiDroid/src/main/res/values-sat/18-standard-models.xml @@ -27,5 +27,5 @@ ᱥᱟᱢᱟᱝ - ᱛᱟᱭᱚᱢ + ᱛᱟᱭᱚᱢ diff --git a/AnkiDroid/src/main/res/values-uk/01-core.xml b/AnkiDroid/src/main/res/values-uk/01-core.xml index 575f7bd2d3df..e6615e6d3b07 100644 --- a/AnkiDroid/src/main/res/values-uk/01-core.xml +++ b/AnkiDroid/src/main/res/values-uk/01-core.xml @@ -66,7 +66,7 @@ Залишилася %1$d година %2$d Залишилося %1$d годин %2$d Залишилося %1$d годин %2$d - Залишилося %1$d годин %2$d + Залишилося %1$d годин %2$d Залишився %1$d день %2$d година diff --git a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml index ad94a230f350..3d02b709462b 100644 --- a/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-uk/07-cardbrowser.xml @@ -85,7 +85,7 @@ Теги Без сортування (швидше) - За полем сортування + За полем сортування За часом створення За часом зміни запису За часом зміни картки diff --git a/AnkiDroid/src/main/res/values-uk/18-standard-models.xml b/AnkiDroid/src/main/res/values-uk/18-standard-models.xml index 1e2b6cd66cc2..7640de8217b7 100644 --- a/AnkiDroid/src/main/res/values-uk/18-standard-models.xml +++ b/AnkiDroid/src/main/res/values-uk/18-standard-models.xml @@ -26,6 +26,6 @@ - Лицьовий бік + Лицьовий бік Зворотній бік diff --git a/AnkiDroid/src/main/res/values-vi/01-core.xml b/AnkiDroid/src/main/res/values-vi/01-core.xml index 7b42969917b3..4806571985a6 100644 --- a/AnkiDroid/src/main/res/values-vi/01-core.xml +++ b/AnkiDroid/src/main/res/values-vi/01-core.xml @@ -63,7 +63,7 @@ Còn %1$d giờ %2$d - Còn %1$d ngày %2$d giờ + Còn %1$d ngày %2$d giờ Bộ sưu tập đang trống Hãy thêm thẻ\nbằng biểu tượng + diff --git a/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml b/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml index c502940cbd00..914faf89d663 100644 --- a/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml +++ b/AnkiDroid/src/main/res/values-vi/07-cardbrowser.xml @@ -80,7 +80,7 @@ Bằng thời gian tạo ra Theo thời gian sửa đổi ghi chú Theo thời gian sửa đổi thẻ - Bởi thời gian hết hạn + Bởi thời gian hết hạn Bởi khoảng thời gian Bởi dễ dàng Bởi ôn tập From c2faf97fc1c6aa16a5b90dd0675890f76a6b080c Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Fri, 21 Mar 2025 10:27:25 -0500 Subject: [PATCH 131/200] fix(deps): use SearchPreference-2.7.0 as jitpack error workaround unsure what is going on with this dependency, but 2.7.1 (theoretically the current version) is no longer being served by jitpack Per the maintainer, 2.7.0 was the same code as 2.7.1 so this should work fine See https://github.com/ByteHamster/SearchPreference/issues/41 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f594258de7e2..f4cfa30cb9c1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -100,7 +100,7 @@ okhttp = "4.12.0" protobufKotlinLite = "4.29.3" # ../AnkiDroid/robolectricDownload.gradle may need changes - read instructions in that file robolectric = "4.14.1" -searchpreference = "2.7.1" +searchpreference = "2.7.0" seismic = "1.0.3" sharedPreferencesMock = "1.2.4" slackKeeper = "0.16.1" From d78b0d58ef8b8b39f210ee9ab925050f345ccc40 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Fri, 21 Mar 2025 10:53:26 -0500 Subject: [PATCH 132/200] test: ignore failing flagsAreShownInBigDecksTest test locally it was blocking local testing even, not just CI --- AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt index 20a36b919090..d203473e0068 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/CardBrowserTest.kt @@ -403,6 +403,7 @@ class CardBrowserTest : RobolectricTest() { } @Test + @Ignore("Fails locally as well on macOS, not just CI. Blocks testing.") @Flaky(os = OS.ALL, message = "Fails mostly on Mac and occasionally Windows") fun flagsAreShownInBigDecksTest() = runTest { From 3ceda1bba964025b30e2a3105d6bbf69ff2c5485 Mon Sep 17 00:00:00 2001 From: lukstbit <52494258+lukstbit@users.noreply.github.com> Date: Fri, 21 Mar 2025 14:55:15 +0200 Subject: [PATCH 133/200] Remove unused code from BackupManager The delete code was only used in tests. --- .../main/java/com/ichi2/anki/BackupManager.kt | 354 ------------------ .../com/ichi2/anki/BackupManagerSimpleTest.kt | 189 ---------- .../java/com/ichi2/anki/BackupManagerTest.kt | 131 ------- 3 files changed, 674 deletions(-) delete mode 100644 AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerTest.kt diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/BackupManager.kt b/AnkiDroid/src/main/java/com/ichi2/anki/BackupManager.kt index 012efbdfa6ff..7f3e5a0eb916 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/BackupManager.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/BackupManager.kt @@ -16,211 +16,24 @@ package com.ichi2.anki -import android.content.SharedPreferences import android.text.format.DateFormat -import androidx.annotation.VisibleForTesting -import androidx.core.content.edit -import anki.config.Preferences.BackupLimits -import anki.config.PreferencesKt.backupLimits -import anki.config.copy -import com.ichi2.anki.preferences.sharedPrefs -import com.ichi2.compat.CompatHelper import com.ichi2.libanki.Collection import com.ichi2.libanki.Utils import com.ichi2.libanki.utils.Time import com.ichi2.libanki.utils.Time.Companion.utcOffset import com.ichi2.libanki.utils.TimeManager import com.ichi2.utils.FileUtil.getFreeDiskSpace -import okio.use import timber.log.Timber -import java.io.BufferedOutputStream import java.io.File -import java.io.FileOutputStream import java.io.IOException import java.text.ParseException import java.text.SimpleDateFormat -import java.time.LocalDate -import java.time.temporal.ChronoUnit -import java.util.Calendar import java.util.Date import java.util.Locale -import java.util.UnknownFormatConversionException -import java.util.zip.ZipEntry -import java.util.zip.ZipOutputStream open class BackupManager { - /** - * Attempts to create a backup in a background thread. Returns `true` if the process is started. - * - * Returns false: - * * If backups are disabled - * * If the frequency between backups set by the user in preferences wasn't respected(see preferences key "minutes_between_automatic_backups") - * * If the filename creation failed - * * If the backup already exists - * * If the user has insufficient space - * * If the collection is too small to be valid - * - * @param colPath The path of the collection file - * - * @return Whether a thread was started to create a backup - */ - @Suppress("PMD.NPathComplexity") - fun performBackupInBackground( - colPath: String, - time: Time, - ): Boolean { - val prefs = AnkiDroidApp.instance.baseContext.sharedPrefs() - if (hasDisabledBackups(prefs)) { - Timber.w("backups are disabled") - return false - } - val colFile = File(colPath) - val colBackups = getBackups(colFile) - if (isBackupUnnecessary(colFile, colBackups)) { - Timber.d("performBackup: No backup necessary due to no collection changes") - return false - } - // the frequency(in minutes) allowed for backups(default is 30 minutes) - val frequency = prefs.getInt("minutes_between_automatic_backups", 30) - // Abort backup if one was already made less than the allowed frequency - val lastBackupDate = getLastBackupDate(colBackups) - if (lastBackupDate != null && lastBackupDate.time + frequency * 60_000L > time.intTimeMS()) { - Timber.d( - "performBackup: No backup created. Last backup younger than the frequency " + - "allowed from preferences (currently set to $frequency minutes)", - ) - return false - } - val backupFilename = getNameForNewBackup(time) ?: return false - - // Abort backup if destination already exists (extremely unlikely) - val backupFile = getBackupFile(colFile, backupFilename) - if (backupFile.exists()) { - Timber.d("performBackup: No new backup created. File already exists") - return false - } - - // Abort backup if not enough free space - if (!hasFreeDiscSpace(colFile)) { - Timber.e("performBackup: Not enough space on sd card to backup.") - prefs.edit { putBoolean("noSpaceLeft", true) } - return false - } - - // Don't bother trying to do backup if the collection is too small to be valid - if (collectionIsTooSmallToBeValid(colFile)) { - Timber.d("performBackup: No backup created as the collection is too small to be valid") - return false - } - - // TODO: Probably not a good idea to do the backup while the collection is open - if (CollectionManager.isOpenUnsafe()) { - Timber.w("Collection is already open during backup... we probably shouldn't be doing this") - } - - // Backup collection as Anki package in new thread - performBackupInNewThread(colFile, backupFile) - return true - } - - fun isBackupUnnecessary( - colFile: File, - colBackups: Array, - ): Boolean { - val len = colBackups.size - - // If have no backups, then a backup is necessary - return if (len <= 0) { - false - } else { - colBackups[len - 1].lastModified() == colFile.lastModified() - } - - // no collection changes means we don't need a backup - } - - /** - * @return last date in parsable file names or null if all names can't be parsed - * Expects a sorted array of backups, as returned by getBackups() - */ - fun getLastBackupDate(files: Array): Date? = - files.lastOrNull()?.let { - getBackupDate(it.name) - } - - fun getBackupFile( - colFile: File, - backupFilename: String, - ): File = File(getBackupDirectory(colFile.parentFile!!), backupFilename) - - fun performBackupInNewThread( - colFile: File, - backupFile: File, - ) { - Timber.i("Launching new thread to backup %s to %s", colFile.absolutePath, backupFile.path) - val thread: Thread = - object : Thread() { - override fun run() { - performBackup(colFile, backupFile) - } - } - thread.start() - } - - private fun performBackup( - colFile: File, - backupFile: File, - ): Boolean { - val colPath = colFile.absolutePath - // Save collection file as zip archive - return try { - ZipOutputStream(BufferedOutputStream(FileOutputStream(backupFile))).use { zos -> - val ze = ZipEntry(CollectionHelper.COLLECTION_FILENAME) - zos.putNextEntry(ze) - CompatHelper.compat.copyFile(colPath, zos) - } - // Delete old backup files if needed - val prefs = AnkiDroidApp.instance.baseContext.sharedPrefs() - val backupLimits = - backupLimits { - daily = prefs.getInt("daily_backups_to_keep", 8) - weekly = prefs.getInt("weekly_backups_to_keep", 8) - monthly = prefs.getInt("monthly_backups_to_keep", 8) - } - deleteColBackups(colPath, backupLimits) - // set timestamp of file in order to avoid creating a new backup unless its changed - if (!backupFile.setLastModified(colFile.lastModified())) { - Timber.w( - "performBackupInBackground() setLastModified() failed on file %s", - backupFile.name, - ) - return false - } - Timber.i("Backup created successfully") - true - } catch (e: IOException) { - Timber.w(e) - false - } - } - - fun collectionIsTooSmallToBeValid(colFile: File): Boolean = - ( - colFile.length() - < MIN_BACKUP_COL_SIZE - ) - - fun hasFreeDiscSpace(colFile: File): Boolean = getFreeDiscSpace(colFile) >= getRequiredFreeSpace(colFile) - - @VisibleForTesting - fun hasDisabledBackups(prefs: SharedPreferences): Boolean = prefs.getInt("backupMax", 8) == 0 - companion object { - /** - * Number of MB of - */ private const val MIN_FREE_SPACE = 10 - private const val MIN_BACKUP_COL_SIZE = 10000 // threshold in bytes to backup a col file private const val BACKUP_SUFFIX = "backup" const val BROKEN_COLLECTIONS_SUFFIX = "broken" private val backupNameRegex: Regex by lazy { @@ -248,15 +61,6 @@ open class BackupManager { return directory } - /** - * @param colFile The current collection file to backup - * @return the amount of free space required for a backup. - */ - fun getRequiredFreeSpace(colFile: File): Long { - // We add a minimum amount of free space to ensure against - return colFile.length() + MIN_FREE_SPACE * 1024 * 1024 - } - fun enoughDiscSpace(path: String?): Boolean = getFreeDiscSpace(path) >= MIN_FREE_SPACE * 1024 * 1024 /** @@ -379,23 +183,6 @@ open class BackupManager { */ fun getBackupDate(fileName: String): Date? = getBackupTimeString(fileName)?.let { parseBackupTimeString(it) } - /** - * @return filename with pattern collection-yyyy-MM-dd-HH-mm based on given time parameter - */ - fun getNameForNewBackup(time: Time): String? { - /** Changes in the file name pattern should be updated as well in - * [getBackupTimeString] and [com.ichi2.anki.dialogs.DatabaseErrorDialog.onCreateDialog] */ - val cal: Calendar = time.gregorianCalendar() - val backupFilename: String = - try { - String.format(Utils.ENGLISH_LOCALE, "collection-%s.colpkg", legacyDateFormat.format(cal.time)) - } catch (e: UnknownFormatConversionException) { - Timber.w(e, "performBackup: error on creating backup filename") - return null - } - return backupFilename - } - /** * @return Array of files with names which matches the backup name pattern, * in order of creation. @@ -413,52 +200,6 @@ open class BackupManager { return backups.toTypedArray() } - /** - * Returns the most recent backup, or null if no backups exist matching [the backup name pattern][backupNameRegex] - * - * @return the most recent backup, or null if no backups exist - */ - fun getLatestBackup(colFile: File): File? = getBackups(colFile).lastOrNull() - - /** - * Deletes the first files until only the given number of files remain - * - * @param colPath Path of collection file whose backups should be deleted - * @param backupLimits the user's choice on how many backup files to keep - * @param today, the day in which the user exists, only use in tests or if you want to alter - * the time continuum - */ - fun deleteColBackups( - colPath: String, - backupLimits: BackupLimits, - today: LocalDate = LocalDate.now(), - ): Boolean = deleteColBackups(getBackups(File(colPath)), backupLimits, today) - - private fun deleteColBackups( - backups: Array, - backupLimits: BackupLimits, - today: LocalDate, - ): Boolean { - val unpackedBackups = - backups.map { - // based on the format used, 0 is for "collection|backup" prefix and 1,2,3 are for - // year(4 digits), month(with 0 prefix, 1 is January) and day(with 0 prefix, starting from 1) - val nameSplits = it.nameWithoutExtension.split("-") - UnpackedBackup( - file = it, - date = LocalDate.of(nameSplits[1].toInt(), nameSplits[2].toInt(), nameSplits[3].toInt()), - ) - } - BackupFilter(today, backupLimits).getObsoleteBackups(unpackedBackups).forEach { backup -> - if (!backup.file.delete()) { - Timber.e("deleteColBackups() failed to delete %s", backup.file.absolutePath) - } else { - Timber.i("deleteColBackups: backup file %s deleted.", backup.file.absolutePath) - } - } - return true - } - /** * Delete backups as specified by [backupsToDelete], * throwing [IllegalArgumentException] if any of the files passed aren't actually backups. @@ -489,9 +230,6 @@ open class BackupManager { } return dir.delete() } - - @VisibleForTesting(otherwise = VisibleForTesting.NONE) - fun createInstance(): BackupManager = BackupManager() } } @@ -511,95 +249,3 @@ class LocalizedUnambiguousBackupTimeFormatter { return formatter.format(backupDate) } } - -private data class UnpackedBackup( - val file: File, - val date: LocalDate, -) : Comparable { - override fun compareTo(other: UnpackedBackup): Int = date.compareTo(other.date) - - private val epoch = LocalDate.ofEpochDay(0) - - fun day(): Long = ChronoUnit.DAYS.between(epoch, date) - - fun week(): Long = ChronoUnit.WEEKS.between(epoch, date) - - fun month(): Long = ChronoUnit.MONTHS.between(epoch, date) -} - -enum class BackupStage { - Daily, - Weekly, - Monthly, -} - -// see https://github.com/ankitects/anki/blob/f3bb845961973bcfab34acfdc4d314294285ee74/rslib/src/collection/backup.rs#L186 -private class BackupFilter( - private val today: LocalDate, - private var limits: BackupLimits, -) { - private val epoch = LocalDate.ofEpochDay(0) - private var lastKeptDay: Long = ChronoUnit.DAYS.between(epoch, today) - private var lastKeptWeek: Long = ChronoUnit.WEEKS.between(epoch, today) - private var lastKeptMonth: Long = ChronoUnit.MONTHS.between(epoch, today) - private val obsolete = mutableListOf() - - fun getObsoleteBackups(backups: List): List { - for (backup in backups.sortedDescending()) { - if (isRecent(backup)) { - markFresh(null, backup) - } else if (remaining(BackupStage.Daily)) { - markFreshOrObsolete(BackupStage.Daily, backup) - } else if (remaining(BackupStage.Weekly)) { - markFreshOrObsolete(BackupStage.Weekly, backup) - } else if (remaining(BackupStage.Monthly)) { - markFreshOrObsolete(BackupStage.Monthly, backup) - } else { - obsolete.add(backup) - } - } - return obsolete - } - - private fun isRecent(backup: UnpackedBackup): Boolean = backup.date == today - - fun remaining(stage: BackupStage): Boolean = - when (stage) { - BackupStage.Daily -> limits.daily > 0 - BackupStage.Weekly -> limits.weekly > 0 - BackupStage.Monthly -> limits.monthly > 0 - } - - fun markFreshOrObsolete( - stage: BackupStage, - backup: UnpackedBackup, - ) { - val keep = - when (stage) { - BackupStage.Daily -> backup.day() < lastKeptDay - BackupStage.Weekly -> backup.week() < lastKeptWeek - BackupStage.Monthly -> backup.month() < lastKeptMonth - } - if (keep) { - markFresh(stage, backup) - } else { - obsolete.add(backup) - } - } - - // Adjusts limits as per the stage of the kept backup, and last kept times. - fun markFresh( - stage: BackupStage?, - backup: UnpackedBackup, - ) { - lastKeptDay = backup.day() - lastKeptWeek = backup.week() - lastKeptMonth = backup.month() - when (stage) { - BackupStage.Daily -> limits = limits.copy { daily -= 1 } - BackupStage.Weekly -> limits = limits.copy { weekly -= 1 } - BackupStage.Monthly -> limits = limits.copy { monthly -= 1 } - else -> {} // ignore, null will be received for a fresh backup - } - } -} diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerSimpleTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerSimpleTest.kt index d4b72fb2a0c9..2e0e0e797fc0 100644 --- a/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerSimpleTest.kt +++ b/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerSimpleTest.kt @@ -16,27 +16,16 @@ package com.ichi2.anki -import anki.config.Preferences.BackupLimits -import anki.config.PreferencesKt.backupLimits -import com.ichi2.anki.BackupManager.Companion.getLatestBackup -import com.ichi2.testutils.MockTime -import org.hamcrest.CoreMatchers.equalTo -import org.hamcrest.CoreMatchers.not -import org.hamcrest.CoreMatchers.nullValue import org.hamcrest.MatcherAssert.assertThat import org.hamcrest.collection.ArrayMatching.arrayContainingInAnyOrder -import org.hamcrest.io.FileMatchers.anExistingFile import org.junit.Rule import org.junit.Test import org.junit.rules.TemporaryFolder import java.io.File -import java.time.LocalDate import kotlin.test.assertEquals import kotlin.test.assertNotNull import kotlin.test.assertNull import kotlin.test.junit5.JUnit5Asserter.assertEquals -import kotlin.test.junit5.JUnit5Asserter.assertNotNull -import kotlin.test.junit5.JUnit5Asserter.assertNull /** * Test for [BackupManager] without [RobolectricTest]. For performance @@ -66,44 +55,6 @@ class BackupManagerSimpleTest { assertNull(BackupManager.getBackupDate("foo")) } - @Test - fun getNameForNewBackupTest() { - // Using a timestamp number directly as MockTime parameter may - // have different results on other computers and GitHub CI - val date = BackupManager.parseBackupTimeString("1970-01-02-00-46") - assertNotNull(date) - val timestamp = date.time - val backupName = BackupManager.getNameForNewBackup(MockTime(timestamp)) - - assertEquals("Backup name doesn't match naming pattern", "collection-1970-01-02-00-46.colpkg", backupName) - } - - @Test - fun nameOfNewBackupsCanBeParsed() { - val backupName = BackupManager.getNameForNewBackup(MockTime(100000000)) - assertNotNull(backupName) - - val ts = BackupManager.getBackupDate(backupName) - assertNotNull("New backup name couldn't be parsed by getBackupTimeStrings()", ts) - } - - @Test - fun getLastBackupDateTest() { - val bm = BackupManager.createInstance() - val backups = - arrayOf( - File("collection-2000-12-31-23-04.colpkg"), - File("collection-2010-01-02-03-04.colpkg"), - File("collection-1999-12-31-23-59.colpkg"), - ).sortedBy { it.name }.toTypedArray() - val expected = BackupManager.parseBackupTimeString("2010-01-02-03-04") - - assertNull(bm.getLastBackupDate(arrayOf())) - assertNotNull(bm.getLastBackupDate(backups)) - assertEquals(expected, bm.getLastBackupDate(backups)) - assertNull("getLastBackupDate() should return null when all files aren't parsable", bm.getLastBackupDate(arrayOf())) - } - @Test fun getBackupsTest() { // getBackups() doesn't require a proper collection file @@ -125,144 +76,4 @@ class BackupManagerSimpleTest { assertEquals("Only the valid backup names should have been kept", 3, backups.size) assertThat(backups, arrayContainingInAnyOrder(f1, f3, f4)) } - - private fun File.newBackupFile(name: String): File = File(this, name).also { it.createNewFile() } - - private fun newBackupLimits( - daily: Int, - weekly: Int, - monthly: Int, - ): BackupLimits = - backupLimits { - this.daily = daily - this.weekly = weekly - this.monthly = monthly - } - - @Test - fun keepsAllBackupsForToday() { - val colFile = tempDirectory.newFile() - val backupDir = BackupManager.getBackupDirectory(tempDirectory.root) - val today = LocalDate.of(2022, 10, 17) - val f1 = backupDir.newBackupFile("collection-2022-10-17-23-04.colpkg") - val f2 = backupDir.newBackupFile("collection-2022-10-17-13-54.colpkg") - val f3 = backupDir.newBackupFile("collection-2022-10-17-13-04.colpkg") - val f4 = backupDir.newBackupFile("collection-2022-10-17-10-09.colpkg") - val f5 = backupDir.newBackupFile("collection-2022-10-16-23-04.colpkg") - val f6 = backupDir.newBackupFile("collection-2022-10-15-23-04.colpkg") - val f7 = backupDir.newBackupFile("collection-2022-10-01-23-04.colpkg") - val f8 = backupDir.newBackupFile("collection-2022-09-22-23-04.colpkg") - val f9 = backupDir.newBackupFile("collection-2022-08-11-23-04.colpkg") - - BackupManager.deleteColBackups(colFile.path, newBackupLimits(1, 1, 1), today) - - assertThat("Current day backup should have been kept", f1, anExistingFile()) // current day backup - assertThat("Current day backup should have been kept", f2, anExistingFile()) // current day backup - assertThat("Current day backup should have been kept", f3, anExistingFile()) // current day backup - assertThat("Current day backup should have been kept", f4, anExistingFile()) // current day backup - assertThat("Newer daily backup should have been kept", f5, anExistingFile()) // daily backup - assertThat("Obsolete weekly backup should have been removed", f6, not(anExistingFile())) // obsolete week backup - assertThat("Newer weekly backup should have been kept", f7, anExistingFile()) // weekly backup - assertThat("Newer monthly backup should have been kept", f8, anExistingFile()) // monthly backup - assertThat("Obsolete monthly backup should have been removed", f9, not(anExistingFile())) // obsolete limits were reached - } - - @Test - fun handlesDailyLimitsCorrectly() { - val colFile = tempDirectory.newFile() - val backupDir = BackupManager.getBackupDirectory(tempDirectory.root) - val f1 = backupDir.newBackupFile("collection-2022-09-25-23-04.colpkg") - val f2 = backupDir.newBackupFile("collection-2022-09-24-23-04.colpkg") - val f3 = backupDir.newBackupFile("collection-2022-09-18-23-04.colpkg") - val f4 = backupDir.newBackupFile("collection-2022-09-09-23-04.colpkg") - val f5 = backupDir.newBackupFile("collection-2022-08-22-23-04.colpkg") - val f6 = backupDir.newBackupFile("collection-2022-07-11-23-04.colpkg") - val f7 = backupDir.newBackupFile("collection-2022-06-10-23-04.colpkg") - - BackupManager.deleteColBackups(colFile.path, newBackupLimits(2, 2, 2)) - - assertThat("Newer daily backup should have been kept", f1, anExistingFile()) // daily backup - assertThat("Newer daily backup should have been kept", f2, anExistingFile()) // daily backup - assertThat("Newer weekly backup should have been kept", f3, anExistingFile()) // weekly backup - assertThat("Newer weekly backups should have been kept", f4, anExistingFile()) // weekly backup - assertThat("Newer monthly backup should have been kept", f5, anExistingFile()) // monthly backup - assertThat("Newer monthly backup should have been kept", f6, anExistingFile()) // monthly backup - assertThat("Obsolete backup should have been removed", f7, not(anExistingFile())) // obsolete, limits were reached - } - - @Test - fun handlesWeeklyLimitsCorrectly() { - val colFile = tempDirectory.newFile() - val backupDir = BackupManager.getBackupDirectory(tempDirectory.root) - val f1 = backupDir.newBackupFile("collection-2022-10-25-23-04.colpkg") - val f2 = backupDir.newBackupFile("collection-2022-09-19-23-04.colpkg") - val f3 = backupDir.newBackupFile("collection-2022-09-18-23-04.colpkg") - val f4 = backupDir.newBackupFile("collection-2022-09-04-23-04.colpkg") - val f5 = backupDir.newBackupFile("collection-2022-09-03-23-04.colpkg") - val f6 = backupDir.newBackupFile("collection-2022-08-20-23-04.colpkg") - val f7 = backupDir.newBackupFile("collection-2022-06-15-23-04.colpkg") - val f8 = backupDir.newBackupFile("collection-2022-06-14-23-04.colpkg") - - BackupManager.deleteColBackups(colFile.path, newBackupLimits(1, 3, 1)) - - assertThat("Newer daily backup should have been kept", f1, anExistingFile()) // daily backup - assertThat("Newer weekly backup should have been kept", f2, anExistingFile()) // weekly backup - assertThat("Obsolete backup should have been removed", f3, not(anExistingFile())) // obsolete, same week backup - assertThat("Newer weekly backup should have been kept", f4, anExistingFile()) // weekly backup - assertThat("Obsolete backup should have been removed", f5, not(anExistingFile())) // obsolete, same week backup - assertThat("Newer weekly backup should have been kept", f6, anExistingFile()) // weekly backup - assertThat("Newer monthly backup should have been kept", f7, anExistingFile()) // monthly backup - assertThat("Obsolete backup should have been removed", f8, not(anExistingFile())) // obsolete, limits were reached - } - - @Test - fun handlesMonthlyLimitsCorrectly() { - val colFile = tempDirectory.newFile() - val backupDir = BackupManager.getBackupDirectory(tempDirectory.root) - val f1 = backupDir.newBackupFile("collection-2022-10-05-23-04.colpkg") - val f2 = backupDir.newBackupFile("collection-2022-09-20-23-04.colpkg") - val f3 = backupDir.newBackupFile("collection-2022-08-17-23-04.colpkg") - val f4 = backupDir.newBackupFile("collection-2022-08-04-23-04.colpkg") - val f5 = backupDir.newBackupFile("collection-2022-07-16-23-04.colpkg") - val f6 = backupDir.newBackupFile("collection-2022-07-14-23-04.colpkg") - val f7 = backupDir.newBackupFile("collection-2022-06-15-23-04.colpkg") - val f8 = backupDir.newBackupFile("collection-2022-06-14-23-04.colpkg") - - BackupManager.deleteColBackups(colFile.path, newBackupLimits(1, 1, 3)) - - assertThat("Newer daily backup should have been kept", f1, anExistingFile()) // daily backup - assertThat("Newer weekly backup should have been kept", f2, anExistingFile()) // weekly backup - assertThat("Newer monthly backup should have been kept", f3, anExistingFile()) // monthly backup - assertThat("Obsolete backup should have been removed", f4, not(anExistingFile())) // obsolete, same month - assertThat("Newer monthly backup should have been kept", f5, anExistingFile()) // monthly backup - assertThat("Obsolete backup should have been removed", f6, not(anExistingFile())) // obsolete, same month - assertThat("Newer monthly backup should have been kept", f7, anExistingFile()) // monthly backup - assertThat("Obsolete backup should have been removed", f8, not(anExistingFile())) // obsolete, limits were reached - } - - @Test - fun latest_backup_returns_null_on_no_backups() { - val colFile = tempDirectory.newFile() - assertThat(getLatestBackup(colFile), nullValue()) - } - - @Test - fun latest_backup_returns_null_on_invalid() { - val colFile = tempDirectory.newFile() - val backupDir = BackupManager.getBackupDirectory(tempDirectory.root) - File(backupDir, "blah.colpkg").createNewFile() - assertThat(getLatestBackup(colFile), nullValue()) - } - - @Test - fun latest_backup_returns_latest() { - val colFile = tempDirectory.newFile() - val backupDir = BackupManager.getBackupDirectory(tempDirectory.root) - File(backupDir, "collection-1990-08-31-45-04.colpkg").createNewFile() - File(backupDir, "collection-2010-12-06-13-04.colpkg").createNewFile() - File(backupDir, "blah.colpkg").createNewFile() - val latestBackup = getLatestBackup(colFile) - assertNotNull(latestBackup) - assertThat(latestBackup.name, equalTo("collection-2010-12-06-13-04.colpkg")) - } } diff --git a/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerTest.kt b/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerTest.kt deleted file mode 100644 index df41e2219749..000000000000 --- a/AnkiDroid/src/test/java/com/ichi2/anki/BackupManagerTest.kt +++ /dev/null @@ -1,131 +0,0 @@ -/* - * Copyright (c) 2021 David Allison - * - * 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 - -import androidx.test.ext.junit.runners.AndroidJUnit4 -import com.ichi2.libanki.utils.Time -import com.ichi2.testutils.MockTime -import com.ichi2.utils.StrictMock.Companion.strictMock -import org.hamcrest.CoreMatchers.equalTo -import org.hamcrest.MatcherAssert.assertThat -import org.junit.Test -import org.junit.runner.RunWith -import org.mockito.Mockito.anyString -import org.mockito.Mockito.doNothing -import org.mockito.Mockito.doReturn -import org.mockito.Mockito.spy -import org.mockito.Mockito.times -import org.mockito.Mockito.verify -import org.mockito.Mockito.verifyNoMoreInteractions -import org.mockito.kotlin.any -import org.mockito.kotlin.whenever -import java.io.File - -@RunWith(AndroidJUnit4::class) -open class BackupManagerTest { - @Test - fun failsIfNoBackupsAllowed() { - // arrange - val bm = passingBackupManagerSpy - doReturn(true).whenever(bm).hasDisabledBackups(any()) - - // act - val performBackupResult = performBackup(bm) - - // assert - assertThat("should fail if backups are disabled", performBackupResult, equalTo(false)) - verify(bm, times(1)).performBackupInBackground(anyString(), any()) - verify(bm, times(1)).hasDisabledBackups(any()) - verifyNoMoreInteractions(bm) - } - - /** Meta test: ensuring passingBackupManagerSpy passes */ - @Test - fun testPassingSpy() { - val bm = passingBackupManagerSpy - - val result = performBackup(bm) - - verify(bm, times(1)).performBackupInNewThread(any(), any()) - assertThat("PerformBackup should pass", result, equalTo(true)) - } - - @Test - fun noBackupPerformedIfNoBackupNecessary() { - val bm = passingBackupManagerSpy - - doReturn(true).whenever(bm).isBackupUnnecessary(any(), any()) - - val result = performBackup(bm) - - assertThat("should fail if backups not necessary", result, equalTo(false)) - - verify(bm, times(1)).isBackupUnnecessary(any(), any()) - } - - @Test - fun noBackupPerformedIfBackupAlreadyExists() { - val file = strictMock(File::class.java) - doReturn(true).whenever(file).exists() - - val bm = getPassingBackupManagerSpy(file) - - val result = performBackup(bm) - - assertThat("should fail if backups exists", result, equalTo(false)) - } - - @Test - fun noBackupPerformedIfCollectionTooSmall() { - val bm = passingBackupManagerSpy - - doReturn(true).whenever(bm).collectionIsTooSmallToBeValid(any()) - - val result = performBackup(bm) - - assertThat("should fail if collection too small", result, equalTo(false)) - } - - private fun performBackup( - bm: BackupManager, - time: Time = MockTime(100000000), - ): Boolean = bm.performBackupInBackground("/AnkiDroid/", time) - - /** Returns a spy of BackupManager which would pass */ - private val passingBackupManagerSpy: BackupManager - get() = getPassingBackupManagerSpy(null) - - /** Returns a spy of BackupManager which would pass */ - private fun getPassingBackupManagerSpy(backupFileMock: File?): BackupManager { - val spy = spy(BackupManager.createInstance()) - doReturn(true).whenever(spy).hasFreeDiscSpace(any()) - doReturn(false).whenever(spy).collectionIsTooSmallToBeValid(any()) - doNothing().whenever(spy).performBackupInNewThread(any(), any()) - doReturn(null).whenever(spy).getLastBackupDate(any()) - - val f = backupFileMock ?: this.backupFileMock - doReturn(f).whenever(spy).getBackupFile(any(), any()) - return spy - } - - // strict mock - private val backupFileMock: File - get() { - val f = strictMock(File::class.java) - doReturn(false).whenever(f).exists() - return f - } -} From ae33bd1d95f55747e14e51c6f6360d9743d83683 Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Thu, 20 Mar 2025 15:49:05 +0000 Subject: [PATCH 134/200] fix: Kotlin 2.1.20 Upgrade Errors 'when' is exhaustive so 'else' is redundant here. The resulting type of this 'javaClass' call is 'Class' and not 'Class'. Use '::class.java' to access type 'Class'. See PR 18140 --- AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt | 1 - AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt | 2 +- .../src/main/java/com/ichi2/anki/dialogs/ExportReadyDialog.kt | 2 +- .../src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt | 2 +- .../src/main/java/com/ichi2/anki/dialogs/SyncErrorDialog.kt | 2 +- AnkiDroid/src/main/java/com/ichi2/libanki/Sound.kt | 1 - 6 files changed, 4 insertions(+), 6 deletions(-) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt index 2c5b23793909..1de4fe77ce7c 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt @@ -854,7 +854,6 @@ open class DeckPicker : } is DiskFull -> displayNoStorageError() is DBError -> displayDatabaseFailure(CustomExceptionData.fromException(failure.exception)) - else -> displayDatabaseFailure() } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt index 74a32e2998de..3feecbb02081 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/IntentHandler.kt @@ -409,7 +409,7 @@ class IntentHandler : AbstractIntentHandler() { showError( activity, activity.getString(R.string.something_wrong), - ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker.javaClass.simpleName), + ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker::class.java.simpleName), true, ) return diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ExportReadyDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ExportReadyDialog.kt index 106096c1b903..8af9e54ce516 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ExportReadyDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/ExportReadyDialog.kt @@ -79,7 +79,7 @@ class ExportReadyDialog( showError( activity, activity.getString(R.string.something_wrong), - ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker.javaClass.simpleName), + ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker::class.java.simpleName), true, ) return diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt index b3635a1b33e4..99d3e736244e 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/MediaCheckDialog.kt @@ -284,7 +284,7 @@ class MediaCheckDialog : AsyncDialogFragment() { showError( activity, activity.getString(R.string.something_wrong), - ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker.javaClass.simpleName), + ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker::class.java.simpleName), true, ) return diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/SyncErrorDialog.kt b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/SyncErrorDialog.kt index aa0d3bf3aa20..baf02d0220b6 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/SyncErrorDialog.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/dialogs/SyncErrorDialog.kt @@ -321,7 +321,7 @@ class SyncErrorDialog : AsyncDialogFragment() { showError( activity, activity.getString(R.string.something_wrong), - ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker.javaClass.simpleName), + ClassCastException(activity.javaClass.simpleName + " is not " + DeckPicker::class.java.simpleName), true, ) return diff --git a/AnkiDroid/src/main/java/com/ichi2/libanki/Sound.kt b/AnkiDroid/src/main/java/com/ichi2/libanki/Sound.kt index 3d82c3709f74..25857da89be9 100644 --- a/AnkiDroid/src/main/java/com/ichi2/libanki/Sound.kt +++ b/AnkiDroid/src/main/java/com/ichi2/libanki/Sound.kt @@ -167,7 +167,6 @@ object Sound { SoundOrVideoTag.Type.VIDEO -> asVideo(tag) } } - else -> throw IllegalStateException("unrecognised tag") } } From b465542a84ede6f2069fe430a2a45adefe9bfab2 Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Tue, 18 Mar 2025 18:51:02 +0000 Subject: [PATCH 135/200] fix(lint): link to standard-models example: https://crowdin.com/editor/ankidroid/8232/en-sat#q=back_field_name --- lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt b/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt index c4002e93100b..616c1191f144 100644 --- a/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt +++ b/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt @@ -47,7 +47,7 @@ value class CrowdinFileIdentifier( "11-arrays" to 8174, "16-multimedia-editor" to 8229, "17-model-manager" to 8230, - "19-standard-models" to 8232, + "18-standard-models" to 8232, "20-search-preference" to 8236, ).mapValues { CrowdinFileIdentifier(it.value.toLong()) } From e4bd5775582d9af2bb9c9553036429f8ad37a5e4 Mon Sep 17 00:00:00 2001 From: David Allison <62114487+david-allison@users.noreply.github.com> Date: Tue, 18 Mar 2025 18:53:37 +0000 Subject: [PATCH 136/200] fix(lint): link for `` and `` Somewhat confusing for string-array, but better than no link example: https://crowdin.com/editor/ankidroid/8170/en-uk#q=card_browser_order_labels --- .../main/java/com/ichi2/anki/lint/utils/Crowdin.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt b/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt index 616c1191f144..f9fae29cfb10 100644 --- a/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt +++ b/lint-rules/src/main/java/com/ichi2/anki/lint/utils/Crowdin.kt @@ -116,7 +116,17 @@ data class CrowdinContext( val languageTag: CrowdinLanguageTag, val fileIdentifier: CrowdinFileIdentifier, ) { - private fun getStringName(element: Element): String? = if (element.hasAttribute("name")) element.getAttribute("name") else null + private fun getStringName(element: Element?): String? { + if (element == null) return null + return when (element.tagName) { + // or + "item" -> { + val parentElement = element.parentNode as? Element? ?: return null + getStringName(parentElement) + } + else -> if (element.hasAttribute("name")) element.getAttribute("name") else null + } + } fun getEditUrl(element: Element): String? { val stringName = getStringName(element) ?: return null From 124484bf2ed7ece242bb6337011a3a4121fbb6c7 Mon Sep 17 00:00:00 2001 From: Mike Hardy Date: Fri, 21 Mar 2025 19:57:40 -0500 Subject: [PATCH 137/200] Dependency Updates 20250321 --- .github/workflows/publish.yml | 2 +- .../com/ichi2/anki/AbstractFlashcardViewer.kt | 14 +- .../main/java/com/ichi2/anki/AnkiActivity.kt | 3 +- .../main/java/com/ichi2/anki/AnkiDroidApp.kt | 4 +- .../java/com/ichi2/anki/AnkiDroidJsAPI.kt | 4 +- .../java/com/ichi2/anki/CardTemplateEditor.kt | 5 +- .../ichi2/anki/CustomActionModeCallback.kt | 5 +- .../main/java/com/ichi2/anki/DeckPicker.kt | 12 +- .../java/com/ichi2/anki/DrawingActivity.kt | 3 +- .../src/main/java/com/ichi2/anki/Info.kt | 4 +- .../src/main/java/com/ichi2/anki/MetaDB.kt | 7 +- .../src/main/java/com/ichi2/anki/MyAccount.kt | 10 +- .../ichi2/anki/NavigationDrawerActivity.kt | 6 +- .../main/java/com/ichi2/anki/NoteEditor.kt | 3 +- .../com/ichi2/anki/NotificationChannels.kt | 4 +- .../src/main/java/com/ichi2/anki/ReadText.kt | 3 +- .../src/main/java/com/ichi2/anki/Reviewer.kt | 3 +- .../ichi2/anki/SharedDecksDownloadFragment.kt | 6 +- .../main/java/com/ichi2/anki/Whiteboard.kt | 3 +- .../anki/browser/BrowserMultiColumnAdapter.kt | 4 +- .../cardviewer/OnRenderProcessGoneDelegate.kt | 3 +- .../ichi2/anki/cardviewer/SoundTagPlayer.kt | 5 +- .../com/ichi2/anki/cardviewer/VideoPlayer.kt | 4 +- .../ichi2/anki/dialogs/DatabaseErrorDialog.kt | 8 +- .../com/ichi2/anki/dialogs/SyncErrorDialog.kt | 4 +- .../anki/dialogs/TtsPlaybackErrorDialog.kt | 4 +- .../dialogs/help/HelpItemActionsDispatcher.kt | 6 +- .../com/ichi2/anki/dialogs/tags/TagsDialog.kt | 3 +- .../anki/multimedia/MultimediaFragment.kt | 3 +- .../ichi2/anki/multimedia/MultimediaUtils.kt | 3 +- .../anki/multimedia/audio/AudioWaveform.kt | 12 +- .../java/com/ichi2/anki/noteeditor/Toolbar.kt | 10 +- .../java/com/ichi2/anki/pages/PageFragment.kt | 4 +- .../anki/previewer/CardViewerFragment.kt | 4 +- .../anki/provider/CardContentProvider.kt | 3 +- .../com/ichi2/anki/reviewer/AnswerTimer.kt | 3 +- .../com/ichi2/anki/reviewer/CardMarker.kt | 3 +- .../com/ichi2/anki/reviewer/EaseButton.kt | 3 +- .../anki/scheduling/ForgetCardsDialog.kt | 4 +- .../java/com/ichi2/anki/utils/AndroidUtils.kt | 3 +- .../com/ichi2/anki/widgets/DeckAdapter.kt | 13 +- .../ichi2/anki/workarounds/DialogTitleView.kt | 24 +- .../java/com/ichi2/compat/CompatHelper.kt | 2 + .../main/java/com/ichi2/compat/CompatV26.kt | 4 +- .../main/java/com/ichi2/compat/CompatV29.kt | 4 +- .../main/java/com/ichi2/compat/CompatV31.kt | 4 +- .../main/java/com/ichi2/compat/CompatV33.kt | 4 +- .../main/java/com/ichi2/compat/CompatV34.kt | 4 +- .../compat/customtabs/CustomTabsHelper.kt | 4 +- .../src/main/java/com/ichi2/libanki/Sound.kt | 4 +- .../src/main/java/com/ichi2/themes/Themes.kt | 19 +- .../main/java/com/ichi2/utils/AdaptionUtil.kt | 4 +- .../com/ichi2/utils/ContentResolverUtil.kt | 3 +- .../main/java/com/ichi2/utils/HtmlUtils.kt | 4 +- .../java/com/ichi2/anki/DeckPickerTest.kt | 8 +- .../java/com/ichi2/anki/IntentHandlerTest.kt | 12 +- .../test/java/com/ichi2/anki/ReviewerTest.kt | 5 +- .../anki/cardviewer/MediaErrorHandlerTest.kt | 3 +- .../ichi2/anki/dialogs/tags/TagsDialogTest.kt | 1 - .../com/ichi2/compat/CompatDeleteFileTest.kt | 2 + .../test/java/com/ichi2/compat/Test21And26.kt | 1 + .../customtabs/CustomTabActivityHelperTest.kt | 4 +- .../ichi2/utils/ContentResolverUtilTest.kt | 3 +- .../java/com/ichi2/utils/ImportUtilsTest.kt | 3 +- build.gradle.kts | 3 +- gradle/libs.versions.toml | 28 +- gradle/wrapper/gradle-wrapper.jar | Bin 43583 -> 43705 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 2 +- tools/localization/package.json | 26 +- tools/localization/yarn.lock | 322 +++++++++--------- 71 files changed, 385 insertions(+), 334 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 52abb17a06e9..58f4a4ae09bc 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -56,7 +56,7 @@ jobs: git remote set-url origin git@github.com:$GITHUB_REPOSITORY shell: bash - - uses: webfactory/ssh-agent@v0.9.0 + - uses: webfactory/ssh-agent@v0.9.1 with: ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt index 496c7ab6da67..c866a2c02b3d 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AbstractFlashcardViewer.kt @@ -22,7 +22,6 @@ package com.ichi2.anki import android.annotation.SuppressLint -import android.annotation.TargetApi import android.content.ActivityNotFoundException import android.content.ClipboardManager import android.content.Context @@ -70,11 +69,14 @@ import androidx.activity.result.ActivityResultCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.annotation.CheckResult import androidx.annotation.IdRes +import androidx.annotation.RequiresApi import androidx.annotation.VisibleForTesting import androidx.appcompat.app.AlertDialog +import androidx.core.net.toUri import androidx.core.view.WindowInsetsCompat import androidx.core.view.WindowInsetsControllerCompat import androidx.core.view.children +import androidx.core.view.isVisible import androidx.lifecycle.Lifecycle.State.RESUMED import anki.collection.OpChanges import com.drakeet.drawer.FullDraggableContainer @@ -1301,7 +1303,7 @@ abstract class AbstractFlashcardViewer : } override fun automaticShowAnswer() { - if (flipCardLayout!!.isEnabled && flipCardLayout!!.visibility == View.VISIBLE) { + if (flipCardLayout!!.isEnabled && flipCardLayout!!.isVisible) { flipCardLayout!!.performClick() } } @@ -2521,7 +2523,7 @@ abstract class AbstractFlashcardViewer : intent = Intent( Intent.ACTION_VIEW, - Uri.parse("market://details?id=$packageName"), + "market://details?id=$packageName".toUri(), ) if (packageManager.resolveActivityCompat( intent, @@ -2541,7 +2543,7 @@ abstract class AbstractFlashcardViewer : } if (intent == null) { Timber.d("Opening external link \"%s\" with an Intent", url) - intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) + intent = Intent(Intent.ACTION_VIEW, url.toUri()) } else { Timber.d("Opening resolved external link \"%s\" with an Intent: %s", url, intent) } @@ -2592,7 +2594,7 @@ abstract class AbstractFlashcardViewer : } } - @TargetApi(Build.VERSION_CODES.O) + @RequiresApi(Build.VERSION_CODES.O) override fun onRenderProcessGone( view: WebView, detail: RenderProcessGoneDetail, @@ -2627,7 +2629,7 @@ abstract class AbstractFlashcardViewer : internal fun displayCouldNotFindMediaSnackbar(filename: String?) { showSnackbar(getString(R.string.card_viewer_could_not_find_image, filename)) { - setAction(R.string.help) { openUrl(Uri.parse(getString(R.string.link_faq_missing_media))) } + setAction(R.string.help) { openUrl(getString(R.string.link_faq_missing_media).toUri()) } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt index 11d5d47cab9b..d76681163591 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiActivity.kt @@ -41,6 +41,7 @@ import androidx.browser.customtabs.CustomTabsIntent.COLOR_SCHEME_SYSTEM import androidx.core.app.NotificationCompat import androidx.core.app.PendingIntentCompat import androidx.core.content.ContextCompat +import androidx.core.net.toUri import androidx.fragment.app.Fragment import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope @@ -458,7 +459,7 @@ open class AnkiActivity : } fun openUrl(urlString: String) { - openUrl(Uri.parse(urlString)) + openUrl(urlString.toUri()) } fun openUrl( diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidApp.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidApp.kt index 197a81cb3cbf..c6c56b890515 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidApp.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidApp.kt @@ -23,7 +23,6 @@ import android.content.Context import android.content.Intent import android.content.SharedPreferences import android.content.res.Resources -import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Environment @@ -31,6 +30,7 @@ import android.system.Os import android.webkit.CookieManager import androidx.annotation.VisibleForTesting import androidx.core.content.edit +import androidx.core.net.toUri import androidx.fragment.app.FragmentActivity import androidx.lifecycle.MutableLiveData import androidx.work.Configuration @@ -434,7 +434,7 @@ open class AnkiDroidApp : fun getMarketIntent(context: Context): Intent { val uri = context.getString(if (CompatHelper.isKindle) R.string.link_market_kindle else R.string.link_market) - val parsed = Uri.parse(uri) + val parsed = uri.toUri() return Intent(Intent.ACTION_VIEW, parsed) } // TODO actually this can be done by translating "link_help" string for each language when the App is diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt index a188ec9968d6..16a4c4ab201f 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/AnkiDroidJsAPI.kt @@ -21,7 +21,7 @@ package com.ichi2.anki import android.content.Context import android.content.Intent -import android.net.Uri +import androidx.core.net.toUri import androidx.lifecycle.lifecycleScope import com.github.zafarkhaja.semver.Version import com.google.android.material.snackbar.Snackbar @@ -148,7 +148,7 @@ open class AnkiDroidJsAPI( activity.showSnackbar(snackbarMsg, Snackbar.LENGTH_INDEFINITE) { setMaxLines(3) setAction(R.string.reviewer_invalid_api_version_visit_documentation) { - activity.openUrl(Uri.parse("https://github.com/ankidroid/Anki-Android/wiki")) + activity.openUrl("https://github.com/ankidroid/Anki-Android/wiki".toUri()) } } } diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt index 5d65dff94f9e..02eafe096537 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CardTemplateEditor.kt @@ -44,6 +44,7 @@ import androidx.core.view.MenuHost import androidx.core.view.MenuProvider import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.core.view.size import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentContainerView @@ -616,14 +617,14 @@ open class CardTemplateEditor : if (menu.findItem(insertFieldId) != null) { return false } - val initialSize = menu.size() + val initialSize = menu.size if (currentEditorViewId != R.id.styling_edit) { // 10644: Do not pass in a R.string as the final parameter as MIUI on Android 12 crashes. menu.add(Menu.FIRST, insertFieldId, 0, getString(R.string.card_template_editor_insert_field)) } - return initialSize != menu.size() + return initialSize != menu.size } override fun onActionItemClicked( diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/CustomActionModeCallback.kt b/AnkiDroid/src/main/java/com/ichi2/anki/CustomActionModeCallback.kt index 49fba5c93cfd..6c1199abb57a 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/CustomActionModeCallback.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/CustomActionModeCallback.kt @@ -21,6 +21,7 @@ import android.view.ActionMode import android.view.Menu import android.view.MenuItem import android.view.View +import androidx.core.view.size /** * Custom ActionMode.Callback implementation for adding and handling cloze deletion action @@ -57,7 +58,7 @@ class CustomActionModeCallback( item.isVisible = false } - val initialSize = menu.size() + val initialSize = menu.size if (isClozeType) { menu.add( Menu.NONE, @@ -66,7 +67,7 @@ class CustomActionModeCallback( clozeMenuTitle, ) } - return initialSize != menu.size() + return initialSize != menu.size } override fun onActionItemClicked( diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt index 1de4fe77ce7c..fa5d32e124ad 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DeckPicker.kt @@ -25,6 +25,7 @@ package com.ichi2.anki +import android.annotation.SuppressLint import android.app.Activity import android.content.Context import android.content.Intent @@ -32,7 +33,6 @@ import android.content.SharedPreferences import android.database.SQLException import android.graphics.PixelFormat import android.graphics.drawable.Drawable -import android.net.Uri import android.os.Build import android.os.Bundle import android.os.Message @@ -66,6 +66,7 @@ import androidx.core.content.edit import androidx.core.content.pm.ShortcutInfoCompat import androidx.core.content.pm.ShortcutManagerCompat import androidx.core.graphics.drawable.IconCompat +import androidx.core.net.toUri import androidx.core.os.bundleOf import androidx.core.util.component1 import androidx.core.util.component2 @@ -524,7 +525,7 @@ open class DeckPicker : // check, if tablet layout studyoptionsFrame = findViewById(R.id.studyoptions_fragment) // set protected variable from NavigationDrawerActivity - fragmented = studyoptionsFrame != null && studyoptionsFrame!!.visibility == View.VISIBLE + fragmented = studyoptionsFrame != null && studyoptionsFrame!!.isVisible // Open StudyOptionsFragment if in fragmented mode if (fragmented && !startupError) { @@ -1772,6 +1773,7 @@ open class DeckPicker : showDialogFragment(DeckPickerAnalyticsOptInDialog.newInstance()) } + @SuppressLint("UseKtx") // keep SharedPreferences.edit() instead of edit {} fot tests fun getPreviousVersion( preferences: SharedPreferences, current: Long, @@ -2123,7 +2125,7 @@ open class DeckPicker : negativeButton(R.string.dialog_cancel) if (AdaptionUtil.hasWebBrowser(this@DeckPicker)) { neutralButton(text = TR.schedulingUpdateMoreInfoButton()) { - this@DeckPicker.openUrl(Uri.parse("https://faqs.ankiweb.net/the-anki-2.1-scheduler.html#updating")) + this@DeckPicker.openUrl("https://faqs.ankiweb.net/the-anki-2.1-scheduler.html#updating".toUri()) } } } @@ -2301,8 +2303,8 @@ open class DeckPicker : 8f, resources.displayMetrics, ) - val decksListShown = deckPickerContent.visibility == View.VISIBLE - val placeholderShown = noDecksPlaceholder.visibility == View.VISIBLE + val decksListShown = deckPickerContent.isVisible + val placeholderShown = noDecksPlaceholder.isVisible if (isEmpty) { if (decksListShown) { fadeOut(deckPickerContent, shortAnimDuration, translation) diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/DrawingActivity.kt b/AnkiDroid/src/main/java/com/ichi2/anki/DrawingActivity.kt index df5ecc8d3271..453d43d8be79 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/DrawingActivity.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/DrawingActivity.kt @@ -25,6 +25,7 @@ import android.view.View import android.widget.LinearLayout import androidx.core.content.ContextCompat import androidx.core.view.MenuItemCompat +import androidx.core.view.isGone import com.ichi2.libanki.utils.TimeManager import com.ichi2.themes.Themes import com.ichi2.utils.iconAlpha @@ -83,7 +84,7 @@ class DrawingActivity : AnkiActivity() { } R.id.action_whiteboard_edit -> { Timber.i("Drawing:: Pen Color button pressed") - if (colorPalette.visibility == View.GONE) { + if (colorPalette.isGone) { colorPalette.visibility = View.VISIBLE } else { colorPalette.visibility = View.GONE diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/Info.kt b/AnkiDroid/src/main/java/com/ichi2/anki/Info.kt index 7c3e00814c25..cc96445dd897 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/Info.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/Info.kt @@ -19,7 +19,6 @@ package com.ichi2.anki import android.annotation.SuppressLint -import android.net.Uri import android.os.Bundle import android.view.View import android.webkit.WebChromeClient @@ -27,6 +26,7 @@ import android.webkit.WebResourceRequest import android.webkit.WebView import android.webkit.WebViewClient import androidx.activity.OnBackPressedCallback +import androidx.core.net.toUri import com.google.android.material.button.MaterialButton import com.ichi2.anki.preferences.sharedPrefs import com.ichi2.anki.snackbar.BaseSnackbarBuilderProvider @@ -72,7 +72,7 @@ class Info : enableToolbar(mainView) findViewById( R.id.info_donate, - ).setOnClickListener { openUrl(Uri.parse(getString(R.string.link_opencollective_donate))) } + ).setOnClickListener { openUrl(getString(R.string.link_opencollective_donate).toUri()) } title = "$appName v$pkgVersionName" webView = findViewById(R.id.info) webView.webChromeClient = diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/MetaDB.kt b/AnkiDroid/src/main/java/com/ichi2/anki/MetaDB.kt index fa8138d5b26a..e60a0cb981c7 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/MetaDB.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/MetaDB.kt @@ -6,6 +6,7 @@ import android.database.Cursor import android.database.sqlite.SQLiteDatabase import android.database.sqlite.SQLiteException import androidx.annotation.WorkerThread +import androidx.core.database.sqlite.transaction import com.ichi2.anki.model.WhiteboardPenColor import com.ichi2.anki.model.WhiteboardPenColor.Companion.default import com.ichi2.anki.reviewer.CardSide @@ -666,17 +667,13 @@ object MetaDB { openDBIfClosed(context) try { val metaDb = mMetaDb!! - metaDb.beginTransaction() - try { + metaDb.transaction { // First clear all the existing content. metaDb.execSQL("DELETE FROM smallWidgetStatus") metaDb.execSQL( "INSERT INTO smallWidgetStatus(due, eta) VALUES (?, ?)", arrayOf(status.due, status.eta), ) - metaDb.setTransactionSuccessful() - } finally { - metaDb.endTransaction() } } catch (e: IllegalStateException) { Timber.e(e, "MetaDB.storeSmallWidgetStatus: failed") diff --git a/AnkiDroid/src/main/java/com/ichi2/anki/MyAccount.kt b/AnkiDroid/src/main/java/com/ichi2/anki/MyAccount.kt index d3d3fcf34a54..ec902be5d98c 100644 --- a/AnkiDroid/src/main/java/com/ichi2/anki/MyAccount.kt +++ b/AnkiDroid/src/main/java/com/ichi2/anki/MyAccount.kt @@ -16,7 +16,6 @@ package com.ichi2.anki import android.content.Context import android.content.pm.PackageManager import android.content.res.Configuration -import android.net.Uri import android.os.Build import android.os.Bundle import android.text.Editable @@ -32,6 +31,7 @@ import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.widget.Toolbar import androidx.core.content.ContextCompat +import androidx.core.net.toUri import androidx.core.view.isVisible import com.google.android.material.textfield.TextInputEditText import com.google.android.material.textfield.TextInputLayout @@ -111,7 +111,7 @@ open class MyAccount : AnkiActivity() { finish() return } - mayOpenUrl(Uri.parse(resources.getString(R.string.register_url))) + mayOpenUrl(resources.getString(R.string.register_url).toUri()) initAllContentViews() if (isLoggedIn()) { switchToState(STATE_LOGGED_IN) @@ -182,7 +182,7 @@ open class MyAccount : AnkiActivity() { } private fun resetPassword() { - super.openUrl(Uri.parse(resources.getString(R.string.resetpw_url))) + super.openUrl(resources.getString(R.string.resetpw_url).toUri()) } private fun initAllContentViews() { @@ -266,12 +266,12 @@ open class MyAccount : AnkiActivity() { val resetPWButton = loginToMyAccountView.findViewById