Merge branch 'feature/Templates' into feature/Templates_ViewModel

This commit is contained in:
J-Jamet
2021-06-14 10:41:48 +02:00
19 changed files with 92 additions and 60 deletions

View File

@@ -1,3 +1,8 @@
KeePassDX(2.10.3)
* Improve Magikeyboard options description #1022 #1023 (Thx @djibux)
* Fix database opened without notification (database is now closed when screen is killed in background #1025)
* Fix biometric prompt #1018
KeePassDX(2.10.2) KeePassDX(2.10.2)
* Fix search fields references #987 * Fix search fields references #987
* Fix Auto-Types with same key #997 * Fix Auto-Types with same key #997

View File

@@ -11,8 +11,8 @@ android {
applicationId "com.kunzisoft.keepass" applicationId "com.kunzisoft.keepass"
minSdkVersion 15 minSdkVersion 15
targetSdkVersion 30 targetSdkVersion 30
versionCode = 80 versionCode = 81
versionName = "2.10.2" versionName = "2.10.3"
multiDexEnabled true multiDexEnabled true
testApplicationId = "com.kunzisoft.keepass.tests" testApplicationId = "com.kunzisoft.keepass.tests"

View File

@@ -470,6 +470,11 @@ open class PasswordActivity : SpecialModeActivity(), AdvancedUnlockFragment.Buil
override fun onPause() { override fun onPause() {
mProgressDatabaseTaskProvider?.unregisterProgressTask() mProgressDatabaseTaskProvider?.unregisterProgressTask()
// To prevent biometric prompt to appearing outside of the app
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
advancedUnlockFragment?.disconnect(hideViews = false, closePrompt = true)
}
// Reinit locking activity UI variable // Reinit locking activity UI variable
LockingActivity.LOCKING_ACTIVITY_UI_VISIBLE_DURING_LOCK = null LockingActivity.LOCKING_ACTIVITY_UI_VISIBLE_DURING_LOCK = null
mAllowAutoOpenBiometricPrompt = true mAllowAutoOpenBiometricPrompt = true
@@ -716,7 +721,7 @@ open class PasswordActivity : SpecialModeActivity(), AdvancedUnlockFragment.Buil
when (resultCode) { when (resultCode) {
LockingActivity.RESULT_EXIT_LOCK -> { LockingActivity.RESULT_EXIT_LOCK -> {
clearCredentialsViews() clearCredentialsViews()
mDatabase?.clearAndClose(UriUtil.getBinaryDir(this)) mDatabase?.clearAndClose(this)
} }
Activity.RESULT_CANCELED -> { Activity.RESULT_CANCELED -> {
clearCredentialsViews() clearCredentialsViews()

View File

@@ -22,7 +22,6 @@ package com.kunzisoft.keepass.app
import androidx.multidex.MultiDexApplication import androidx.multidex.MultiDexApplication
import com.kunzisoft.keepass.activities.stylish.Stylish import com.kunzisoft.keepass.activities.stylish.Stylish
import com.kunzisoft.keepass.database.element.Database import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.utils.UriUtil
class App : MultiDexApplication() { class App : MultiDexApplication() {
@@ -34,7 +33,7 @@ class App : MultiDexApplication() {
} }
override fun onTerminate() { override fun onTerminate() {
Database.getInstance().clearAndClose(UriUtil.getBinaryDir(this)) Database.getInstance().clearAndClose(this)
super.onTerminate() super.onTerminate()
} }
} }

View File

@@ -26,7 +26,6 @@ import com.kunzisoft.keepass.app.database.FileDatabaseHistoryAction
import com.kunzisoft.keepass.database.element.Database import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.model.MainCredential import com.kunzisoft.keepass.model.MainCredential
import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.utils.UriUtil
class CreateDatabaseRunnable(context: Context, class CreateDatabaseRunnable(context: Context,
private val mDatabase: Database, private val mDatabase: Database,
@@ -44,7 +43,7 @@ class CreateDatabaseRunnable(context: Context,
createData(mDatabaseUri, databaseName, rootName) createData(mDatabaseUri, databaseName, rootName)
} }
} catch (e: Exception) { } catch (e: Exception) {
mDatabase.clearAndClose(UriUtil.getBinaryDir(context)) mDatabase.clearAndClose(context)
setError(e) setError(e)
} }

View File

@@ -25,8 +25,8 @@ import com.kunzisoft.keepass.app.database.CipherDatabaseAction
import com.kunzisoft.keepass.app.database.CipherDatabaseEntity import com.kunzisoft.keepass.app.database.CipherDatabaseEntity
import com.kunzisoft.keepass.app.database.FileDatabaseHistoryAction import com.kunzisoft.keepass.app.database.FileDatabaseHistoryAction
import com.kunzisoft.keepass.database.element.Database import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.binary.LoadedKey
import com.kunzisoft.keepass.database.element.binary.BinaryData import com.kunzisoft.keepass.database.element.binary.BinaryData
import com.kunzisoft.keepass.database.element.binary.LoadedKey
import com.kunzisoft.keepass.database.exception.LoadDatabaseException import com.kunzisoft.keepass.database.exception.LoadDatabaseException
import com.kunzisoft.keepass.model.MainCredential import com.kunzisoft.keepass.model.MainCredential
import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.settings.PreferencesUtil
@@ -47,7 +47,7 @@ class LoadDatabaseRunnable(private val context: Context,
override fun onStartRun() { override fun onStartRun() {
// Clear before we load // Clear before we load
mDatabase.clearAndClose(UriUtil.getBinaryDir(context)) mDatabase.clearAndClose(context)
} }
override fun onActionRun() { override fun onActionRun() {
@@ -85,7 +85,7 @@ class LoadDatabaseRunnable(private val context: Context,
// Register the current time to init the lock timer // Register the current time to init the lock timer
PreferencesUtil.saveCurrentTime(context) PreferencesUtil.saveCurrentTime(context)
} else { } else {
mDatabase.clearAndClose(UriUtil.getBinaryDir(context)) mDatabase.clearAndClose(context)
} }
} }

View File

@@ -23,6 +23,7 @@ import android.content.*
import android.content.Context.BIND_ABOVE_CLIENT import android.content.Context.BIND_ABOVE_CLIENT
import android.content.Context.BIND_NOT_FOREGROUND import android.content.Context.BIND_NOT_FOREGROUND
import android.net.Uri import android.net.Uri
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.IBinder import android.os.IBinder
import android.util.Log import android.util.Log
@@ -255,7 +256,6 @@ class ProgressDatabaseTaskProvider(private val activity: FragmentActivity) {
private fun start(bundle: Bundle? = null, actionTask: String) { private fun start(bundle: Bundle? = null, actionTask: String) {
try { try {
activity.stopService(intentDatabaseTask)
if (bundle != null) if (bundle != null)
intentDatabaseTask.putExtras(bundle) intentDatabaseTask.putExtras(bundle)
intentDatabaseTask.action = actionTask intentDatabaseTask.action = actionTask

View File

@@ -21,8 +21,8 @@ package com.kunzisoft.keepass.database.action
import android.content.Context import android.content.Context
import com.kunzisoft.keepass.database.element.Database import com.kunzisoft.keepass.database.element.Database
import com.kunzisoft.keepass.database.element.binary.LoadedKey
import com.kunzisoft.keepass.database.element.binary.BinaryData import com.kunzisoft.keepass.database.element.binary.BinaryData
import com.kunzisoft.keepass.database.element.binary.LoadedKey
import com.kunzisoft.keepass.database.exception.LoadDatabaseException import com.kunzisoft.keepass.database.exception.LoadDatabaseException
import com.kunzisoft.keepass.settings.PreferencesUtil import com.kunzisoft.keepass.settings.PreferencesUtil
import com.kunzisoft.keepass.tasks.ActionRunnable import com.kunzisoft.keepass.tasks.ActionRunnable
@@ -62,7 +62,7 @@ class ReloadDatabaseRunnable(private val context: Context,
PreferencesUtil.saveCurrentTime(context) PreferencesUtil.saveCurrentTime(context)
} else { } else {
tempCipherKey = null tempCipherKey = null
mDatabase.clearAndClose(UriUtil.getBinaryDir(context)) mDatabase.clearAndClose(context)
} }
} }

View File

@@ -20,6 +20,7 @@
package com.kunzisoft.keepass.database.element package com.kunzisoft.keepass.database.element
import android.content.ContentResolver import android.content.ContentResolver
import android.content.Context
import android.content.res.Resources import android.content.res.Resources
import android.net.Uri import android.net.Uri
import android.util.Log import android.util.Log
@@ -735,8 +736,8 @@ class Database {
} }
} }
fun clearAndClose(filesDirectory: File? = null) { fun clearAndClose(context: Context? = null) {
clear(filesDirectory) clear(context?.let { UriUtil.getBinaryDir(context) })
this.mDatabaseKDB = null this.mDatabaseKDB = null
this.mDatabaseKDBX = null this.mDatabaseKDBX = null
this.fileUri = null this.fileUri = null

View File

@@ -44,10 +44,7 @@ import com.kunzisoft.keepass.model.SnapFileDatabaseInfo
import com.kunzisoft.keepass.tasks.ActionRunnable import com.kunzisoft.keepass.tasks.ActionRunnable
import com.kunzisoft.keepass.tasks.ProgressTaskUpdater import com.kunzisoft.keepass.tasks.ProgressTaskUpdater
import com.kunzisoft.keepass.timeout.TimeoutHelper import com.kunzisoft.keepass.timeout.TimeoutHelper
import com.kunzisoft.keepass.utils.DATABASE_START_TASK_ACTION import com.kunzisoft.keepass.utils.*
import com.kunzisoft.keepass.utils.DATABASE_STOP_TASK_ACTION
import com.kunzisoft.keepass.utils.LOCK_ACTION
import com.kunzisoft.keepass.utils.closeDatabase
import com.kunzisoft.keepass.viewmodels.FileDatabaseInfo import com.kunzisoft.keepass.viewmodels.FileDatabaseInfo
import kotlinx.coroutines.* import kotlinx.coroutines.*
import java.util.* import java.util.*
@@ -840,6 +837,12 @@ open class DatabaseTaskNotificationService : LockNotificationService(), Progress
} }
} }
override fun onDestroy() {
super.onDestroy()
if (mDatabase.loaded)
actionOnLock()
}
companion object { companion object {
private val TAG = DatabaseTaskNotificationService::class.java.name private val TAG = DatabaseTaskNotificationService::class.java.name

View File

@@ -138,5 +138,5 @@ fun Context.closeDatabase() {
cancelAll() cancelAll()
} }
// Clear data // Clear data
Database.getInstance().clearAndClose(UriUtil.getBinaryDir(this)) Database.getInstance().clearAndClose(this)
} }

View File

@@ -283,7 +283,7 @@
<string name="enable_read_only_title">Schreibgeschützt</string> <string name="enable_read_only_title">Schreibgeschützt</string>
<string name="education_read_only_title">Schreibschutz der Datenbank aktivieren</string> <string name="education_read_only_title">Schreibschutz der Datenbank aktivieren</string>
<string name="enable_read_only_summary">Datenbank standardmäßig schreibgeschützt öffnen</string> <string name="enable_read_only_summary">Datenbank standardmäßig schreibgeschützt öffnen</string>
<string name="education_read_only_summary">Den Öffnungsmodus für die Sitzung ändern. <string name="education_read_only_summary">Den Modus bei Eröffnung der Sitzung ändern.
\n \n
\n„Schreibgeschützt“ verhindert unbeabsichtigte Änderungen an der Datenbank. \n„Schreibgeschützt“ verhindert unbeabsichtigte Änderungen an der Datenbank.
\nMit „Änderbar“ können Sie alle Elemente nach Belieben hinzufügen, löschen oder ändern.</string> \nMit „Änderbar“ können Sie alle Elemente nach Belieben hinzufügen, löschen oder ändern.</string>

View File

@@ -73,9 +73,9 @@
<string name="error_out_of_memory">Mémoire insuffisante pour charger lintégralité de votre base de données.</string> <string name="error_out_of_memory">Mémoire insuffisante pour charger lintégralité de votre base de données.</string>
<string name="error_pass_gen_type">Au moins un type de génération de mots de passe doit être sélectionné.</string> <string name="error_pass_gen_type">Au moins un type de génération de mots de passe doit être sélectionné.</string>
<string name="error_pass_match">Les mots de passe ne correspondent pas.</string> <string name="error_pass_match">Les mots de passe ne correspondent pas.</string>
<string name="error_rounds_too_large">« Tours de transformation » trop grand. Définition à 2147483648.</string> <string name="error_rounds_too_large">\"Tours de transformation\" trop grand. Définition à 2147483648.</string>
<string name="error_string_key">Chaque chaîne doit avoir un nom de champ.</string> <string name="error_string_key">Chaque chaîne doit avoir un nom de champ.</string>
<string name="error_wrong_length">Veuillez saisir un entier positif dans le champ « Longueur ».</string> <string name="error_wrong_length">Veuillez saisir un entier positif dans le champ \"Longueur\".</string>
<string name="error_autofill_enable_service">Impossible dactiver le service de remplissage automatique.</string> <string name="error_autofill_enable_service">Impossible dactiver le service de remplissage automatique.</string>
<string name="field_name">Nom du champ</string> <string name="field_name">Nom du champ</string>
<string name="field_value">Valeur du champ</string> <string name="field_value">Valeur du champ</string>
@@ -120,7 +120,7 @@
<string name="no_url_handler">Installer un navigateur Web pour ouvrir cette URL.</string> <string name="no_url_handler">Installer un navigateur Web pour ouvrir cette URL.</string>
<string name="select_database_file">Ouvrir une base de données existante</string> <string name="select_database_file">Ouvrir une base de données existante</string>
<string name="omit_backup_search_title">Ne pas rechercher dans les entrées sauvegardées</string> <string name="omit_backup_search_title">Ne pas rechercher dans les entrées sauvegardées</string>
<string name="omit_backup_search_summary">Omet les groupes « Sauvegarde » et « Corbeille » des résultats de recherche</string> <string name="omit_backup_search_summary">Omet les groupes \"Sauvegarde\" et \"Corbeille\" des résultats de recherche</string>
<string name="progress_create">Création dune nouvelle base de données…</string> <string name="progress_create">Création dune nouvelle base de données…</string>
<string name="progress_title">Traitement en cours…</string> <string name="progress_title">Traitement en cours…</string>
<string name="protection">Protection</string> <string name="protection">Protection</string>
@@ -157,8 +157,8 @@
<string name="uppercase">Majuscules</string> <string name="uppercase">Majuscules</string>
<string name="warning">Alerte</string> <string name="warning">Alerte</string>
<string name="warning_password_encoding">Éviter les caractères en dehors du format de codage de caractères du fichier de base de données (les caractères non reconnus sont convertis en une même lettre).</string> <string name="warning_password_encoding">Éviter les caractères en dehors du format de codage de caractères du fichier de base de données (les caractères non reconnus sont convertis en une même lettre).</string>
<string name="warning_empty_password">Continuer sans protection de déverrouillage par mot de passe\?</string> <string name="warning_empty_password">Continuer sans protection de déverrouillage par mot de passe \?</string>
<string name="warning_no_encryption_key">Continuer sans clé de chiffrement\?</string> <string name="warning_no_encryption_key">Continuer sans clé de chiffrement \?</string>
<string name="version_label">Version %1$s</string> <string name="version_label">Version %1$s</string>
<string name="configure_biometric">Aucune information didentification biométrique ou de périphérique nest enregistrée.</string> <string name="configure_biometric">Aucune information didentification biométrique ou de périphérique nest enregistrée.</string>
<string name="encrypted_value_stored">Mot de passe chiffré stocké</string> <string name="encrypted_value_stored">Mot de passe chiffré stocké</string>
@@ -195,7 +195,7 @@
<string name="assign_master_key">Affecter une clé principale</string> <string name="assign_master_key">Affecter une clé principale</string>
<string name="create_keepass_file">Créer une nouvelle base de données</string> <string name="create_keepass_file">Créer une nouvelle base de données</string>
<string name="recycle_bin_title">Utilisation de la corbeille</string> <string name="recycle_bin_title">Utilisation de la corbeille</string>
<string name="recycle_bin_summary">Déplace les groupes et les entrées dans le groupe « Corbeille » avant leur suppression</string> <string name="recycle_bin_summary">Déplace les groupes et les entrées dans le groupe \"Corbeille\" avant leur suppression</string>
<string name="monospace_font_fields_enable_title">Fonte de caractères des champs</string> <string name="monospace_font_fields_enable_title">Fonte de caractères des champs</string>
<string name="monospace_font_fields_enable_summary">Change la fonte utilisée dans les champs pour une meilleure visibilité des caractères</string> <string name="monospace_font_fields_enable_summary">Change la fonte utilisée dans les champs pour une meilleure visibilité des caractères</string>
<string name="allow_copy_password_title">Faire confiance au presse-papier</string> <string name="allow_copy_password_title">Faire confiance au presse-papier</string>
@@ -280,7 +280,7 @@
<string name="menu_paste">Coller</string> <string name="menu_paste">Coller</string>
<string name="menu_cancel">Annuler</string> <string name="menu_cancel">Annuler</string>
<string name="allow_no_password_title">Autoriser labsence de clé principale</string> <string name="allow_no_password_title">Autoriser labsence de clé principale</string>
<string name="allow_no_password_summary">Autorise lappui du bouton « Ouvrir » si aucun identifiant nest sélectionné</string> <string name="allow_no_password_summary">Autorise lappui du bouton \"Ouvrir\" si aucun identifiant nest sélectionné</string>
<string name="menu_file_selection_read_only">Protéger en écriture</string> <string name="menu_file_selection_read_only">Protéger en écriture</string>
<string name="menu_open_file_read_and_write">Modifiable</string> <string name="menu_open_file_read_and_write">Modifiable</string>
<string name="enable_read_only_title">Protégé en écriture</string> <string name="enable_read_only_title">Protégé en écriture</string>
@@ -288,8 +288,8 @@
<string name="education_read_only_title">Protégez en écriture votre base de données</string> <string name="education_read_only_title">Protégez en écriture votre base de données</string>
<string name="education_read_only_summary">Changez le mode douverture pour la session. <string name="education_read_only_summary">Changez le mode douverture pour la session.
\n \n
\n« Protégé en écriture » empêche les modifications involontaires de la base de données. \n\"Protégé en écriture\" empêche les modifications involontaires de la base de données.
\n« Modifiable » vous permet dajouter, de supprimer ou de modifier tous les éléments comme vous le souhaitez.</string> \n\"Modifiable\" vous permet dajouter, de supprimer ou de modifier tous les éléments comme vous le souhaitez.</string>
<string name="edit_entry">Modifier lentrée</string> <string name="edit_entry">Modifier lentrée</string>
<string name="error_load_database">Impossible de charger votre base de données.</string> <string name="error_load_database">Impossible de charger votre base de données.</string>
<string name="error_load_database_KDF_memory">Impossible de charger la clé. Veuillez essayer de diminuer lutilisation mémoire de la fonction de dérivation de clé.</string> <string name="error_load_database_KDF_memory">Impossible de charger la clé. Veuillez essayer de diminuer lutilisation mémoire de la fonction de dérivation de clé.</string>
@@ -301,7 +301,7 @@
<string name="keyboard_setting_label">Paramètres Magiclavier</string> <string name="keyboard_setting_label">Paramètres Magiclavier</string>
<string name="keyboard_entry_category">Entrée</string> <string name="keyboard_entry_category">Entrée</string>
<string name="keyboard_entry_timeout_title">Délai dexpiration</string> <string name="keyboard_entry_timeout_title">Délai dexpiration</string>
<string name="keyboard_entry_timeout_summary">Délai dexpiration pour effacer lentrée au clavier</string> <string name="keyboard_entry_timeout_summary">Délai dexpiration pour effacer lentrée disponible dans le clavier</string>
<string name="keyboard_notification_entry_title">Informations de notification</string> <string name="keyboard_notification_entry_title">Informations de notification</string>
<string name="keyboard_notification_entry_summary">Affiche une notification lorsquune entrée est disponible</string> <string name="keyboard_notification_entry_summary">Affiche une notification lorsquune entrée est disponible</string>
<string name="keyboard_notification_entry_content_title_text">Entrée</string> <string name="keyboard_notification_entry_content_title_text">Entrée</string>
@@ -312,22 +312,22 @@
<string name="keyboard_appearance_category">Apparence</string> <string name="keyboard_appearance_category">Apparence</string>
<string name="keyboard_theme_title">Thème du clavier</string> <string name="keyboard_theme_title">Thème du clavier</string>
<string name="keyboard_keys_category">Touches</string> <string name="keyboard_keys_category">Touches</string>
<string name="keyboard_key_vibrate_title">Touches vibrantes</string> <string name="keyboard_key_vibrate_title">Vibration des touches</string>
<string name="keyboard_key_sound_title">Appui clavier audible</string> <string name="keyboard_key_sound_title">Son de pression des touches</string>
<string name="keyboard_change">Changement de clavier</string> <string name="keyboard_change">Changement de clavier</string>
<string name="keyboard_previous_database_credentials_title">Écran des identifications de la base de données</string> <string name="keyboard_previous_database_credentials_title">Écran d\'authentification de la base de données</string>
<string name="keyboard_previous_database_credentials_summary">Revenir automatiquement au clavier précédent sur lécran des identifications de la base de données</string> <string name="keyboard_previous_database_credentials_summary">Revenir automatiquement au clavier précédent sur lécran d\'authentification de la base de données</string>
<string name="keyboard_previous_fill_in_title">Action de touche automatique</string> <string name="keyboard_previous_fill_in_title">Action de touche automatique</string>
<string name="keyboard_previous_fill_in_summary">Revenir automatiquement au clavier précédent après avoir exécuté « Action de touche automatique »</string> <string name="keyboard_previous_fill_in_summary">Revenir automatiquement au clavier précédent après avoir exécuté \"Action de touche automatique\"</string>
<string name="selection_mode">Mode sélection</string> <string name="selection_mode">Mode sélection</string>
<string name="do_not_kill_app">Veuillez ne pas tuer lapplication…</string> <string name="do_not_kill_app">Veuillez ne pas tuer lapplication…</string>
<string name="lock_database_back_root_title">Appuyer sur « Retour » pour verrouiller</string> <string name="lock_database_back_root_title">Appuyer sur \"Retour\" pour verrouiller</string>
<string name="lock_database_back_root_summary">Verrouille la base de données lorsque lutilisateur clique sur le bouton retour de lécran racine</string> <string name="lock_database_back_root_summary">Verrouille la base de données lorsque lutilisateur clique sur le bouton retour de lécran racine</string>
<string name="clear_clipboard_notification_title">Suppression à la fermeture</string> <string name="clear_clipboard_notification_title">Suppression à la fermeture</string>
<string name="clear_clipboard_notification_summary">Verrouille la base de données lorsque la durée du presse-papier expire ou que la notification est fermée après avoir commencé à lutiliser</string> <string name="clear_clipboard_notification_summary">Verrouille la base de données lorsque la durée du presse-papier expire ou que la notification est fermée après avoir commencé à lutiliser</string>
<string name="recycle_bin">Corbeille</string> <string name="recycle_bin">Corbeille</string>
<string name="keyboard_selection_entry_title">Sélection de lentrée</string> <string name="keyboard_selection_entry_title">Sélection de lentrée</string>
<string name="keyboard_selection_entry_summary">Affiche les champs de saisie dans le Magiclavier lors de laffichage dune entrée</string> <string name="keyboard_selection_entry_summary">Lors de la sélection d\'une entrée dans KeePassDX, rendre cette entrée disponible dans le Magiclavier</string>
<string name="delete_entered_password_title">Supprimer le mot de passe</string> <string name="delete_entered_password_title">Supprimer le mot de passe</string>
<string name="delete_entered_password_summary">Supprime le mot de passe saisi après une tentative de connexion à une base de données</string> <string name="delete_entered_password_summary">Supprime le mot de passe saisi après une tentative de connexion à une base de données</string>
<string name="content_description_open_file">Ouvrir le fichier</string> <string name="content_description_open_file">Ouvrir le fichier</string>
@@ -386,7 +386,7 @@
<string name="menu_security_settings">Paramètres de sécurité</string> <string name="menu_security_settings">Paramètres de sécurité</string>
<string name="menu_master_key_settings">Paramètres de la clé maîtresse</string> <string name="menu_master_key_settings">Paramètres de la clé maîtresse</string>
<string name="contains_duplicate_uuid">La base de données contient des doublons dUUID.</string> <string name="contains_duplicate_uuid">La base de données contient des doublons dUUID.</string>
<string name="contains_duplicate_uuid_procedure">Résoudre le problème en générant de nouveaux UUID pour les doublons et continuer\?</string> <string name="contains_duplicate_uuid_procedure">Résoudre le problème en générant de nouveaux UUID pour les doublons et continuer \?</string>
<string name="database_opened">Base de données ouverte</string> <string name="database_opened">Base de données ouverte</string>
<string name="clipboard_explanation_summary">Copier les champs dune entrée à laide du presse-papier de votre appareil</string> <string name="clipboard_explanation_summary">Copier les champs dune entrée à laide du presse-papier de votre appareil</string>
<string name="advanced_unlock_explanation_summary">Utiliser le déverrouillage avancé pour ouvrir plus facilement une base de données</string> <string name="advanced_unlock_explanation_summary">Utiliser le déverrouillage avancé pour ouvrir plus facilement une base de données</string>
@@ -412,21 +412,21 @@
<string name="menu_save_database">Enregistrer la base de données</string> <string name="menu_save_database">Enregistrer la base de données</string>
<string name="menu_empty_recycle_bin">Vider la corbeille</string> <string name="menu_empty_recycle_bin">Vider la corbeille</string>
<string name="command_execution">Exécution de la commande…</string> <string name="command_execution">Exécution de la commande…</string>
<string name="warning_permanently_delete_nodes">Supprimer définitivement les nœuds sélectionnés\?</string> <string name="warning_permanently_delete_nodes">Supprimer définitivement les nœuds sélectionnés \?</string>
<string name="keystore_not_accessible">Le magasin de clés nest pas correctement initialisé.</string> <string name="keystore_not_accessible">Le magasin de clés nest pas correctement initialisé.</string>
<string name="recycle_bin_group_title">Groupe de la corbeille</string> <string name="recycle_bin_group_title">Groupe de la corbeille</string>
<string name="enable_auto_save_database_title">Enregistrement automatique de la base de données</string> <string name="enable_auto_save_database_title">Enregistrement automatique de la base de données</string>
<string name="enable_auto_save_database_summary">Enregistre la base de données après chaque action importante (en mode « Modifiable »)</string> <string name="enable_auto_save_database_summary">Enregistre la base de données après chaque action importante (en mode \"Modifiable\")</string>
<string name="entry_attachments">Attachements</string> <string name="entry_attachments">Attachements</string>
<string name="menu_restore_entry_history">Restaurer lhistorique</string> <string name="menu_restore_entry_history">Restaurer lhistorique</string>
<string name="menu_delete_entry_history">Effacer lhistorique</string> <string name="menu_delete_entry_history">Effacer lhistorique</string>
<string name="keyboard_auto_go_action_title">Action de touche automatique</string> <string name="keyboard_auto_go_action_title">Action de touche automatique</string>
<string name="keyboard_auto_go_action_summary">Action de la touche « Go » après avoir appuyé sur une touche « Champ »</string> <string name="keyboard_auto_go_action_summary">Effectuer l\'action de la touche \"Go\" automatiquement après avoir appuyé sur une touche \"Champ\" du clavier</string>
<string name="download_attachment">Téléchargement %1$s</string> <string name="download_attachment">Téléchargement %1$s</string>
<string name="download_initialization">Initialisation…</string> <string name="download_initialization">Initialisation…</string>
<string name="download_progression">En cours : %1$d%%</string> <string name="download_progression">En cours : %1$d%%</string>
<string name="download_finalization">Finalisation…</string> <string name="download_finalization">Finalisation…</string>
<string name="download_complete">Terminé!</string> <string name="download_complete">Terminé !</string>
<string name="hide_expired_entries_title">Masquer les entrées expirées</string> <string name="hide_expired_entries_title">Masquer les entrées expirées</string>
<string name="hide_expired_entries_summary">Les entrées expirées ne sont pas affichées</string> <string name="hide_expired_entries_summary">Les entrées expirées ne sont pas affichées</string>
<string name="contact">Contact</string> <string name="contact">Contact</string>
@@ -448,7 +448,7 @@
<string name="error_create_database">Impossible de créer le fichier de base de données.</string> <string name="error_create_database">Impossible de créer le fichier de base de données.</string>
<string name="entry_add_attachment">Ajouter une pièce jointe</string> <string name="entry_add_attachment">Ajouter une pièce jointe</string>
<string name="discard">Abandonner</string> <string name="discard">Abandonner</string>
<string name="discard_changes">Abandonner les modifications\?</string> <string name="discard_changes">Abandonner les modifications \?</string>
<string name="validate">Valider</string> <string name="validate">Valider</string>
<string name="autofill_auto_search_summary">Suggérer automatiquement des résultats de recherche à partir du domaine Web ou de lidentifiant de lapplication</string> <string name="autofill_auto_search_summary">Suggérer automatiquement des résultats de recherche à partir du domaine Web ou de lidentifiant de lapplication</string>
<string name="autofill_auto_search_title">Recherche automatique</string> <string name="autofill_auto_search_title">Recherche automatique</string>
@@ -463,7 +463,7 @@
<string name="autofill_web_domain_blocklist_title">Liste de blocage de domaine Web</string> <string name="autofill_web_domain_blocklist_title">Liste de blocage de domaine Web</string>
<string name="autofill_application_id_blocklist_summary">Liste de blocage qui empêche le remplissage automatique des applications</string> <string name="autofill_application_id_blocklist_summary">Liste de blocage qui empêche le remplissage automatique des applications</string>
<string name="autofill_application_id_blocklist_title">Liste de blocage dapplication</string> <string name="autofill_application_id_blocklist_title">Liste de blocage dapplication</string>
<string name="keyboard_search_share_summary">Recherche automatiquement les informations partagées pour remplir le clavier</string> <string name="keyboard_search_share_summary">Lorsqu\'une adresse web est partagée avec KeePassDX, filtrer automatiquement les entrées contenant le domaine</string>
<string name="keyboard_search_share_title">Rechercher les informations partagées</string> <string name="keyboard_search_share_title">Rechercher les informations partagées</string>
<string name="filter">Filtre</string> <string name="filter">Filtre</string>
<string name="subdomain_search_summary">Recherche des domaines Web avec des contraintes de sous-domaines</string> <string name="subdomain_search_summary">Recherche des domaines Web avec des contraintes de sous-domaines</string>
@@ -473,7 +473,7 @@
<string name="upload_attachment">Téléverser %1$s</string> <string name="upload_attachment">Téléverser %1$s</string>
<string name="education_add_attachment_summary">Téléverse une pièce-jointe à votre entrée pour enregistrer dimportantes données externes.</string> <string name="education_add_attachment_summary">Téléverse une pièce-jointe à votre entrée pour enregistrer dimportantes données externes.</string>
<string name="education_add_attachment_title">Ajouter une pièce-jointe</string> <string name="education_add_attachment_title">Ajouter une pièce-jointe</string>
<string name="warning_sure_add_file">Ajouter quand même le fichier\?</string> <string name="warning_sure_add_file">Ajouter quand même le fichier \?</string>
<string name="warning_replace_file">Téléverser ce fichier va remplacer celui en place.</string> <string name="warning_replace_file">Téléverser ce fichier va remplacer celui en place.</string>
<string name="warning_file_too_big">Une base de données KeePass est seulement censée contenir de petits fichiers utilitaires (tels que les fichiers clé PGP). <string name="warning_file_too_big">Une base de données KeePass est seulement censée contenir de petits fichiers utilitaires (tels que les fichiers clé PGP).
\n \n
@@ -497,7 +497,7 @@
<string name="autofill_close_database_title">Fermer la base de données</string> <string name="autofill_close_database_title">Fermer la base de données</string>
<string name="keyboard_previous_lock_summary">Revient automatiquement au clavier précédent après le verrouillage de la base de données</string> <string name="keyboard_previous_lock_summary">Revient automatiquement au clavier précédent après le verrouillage de la base de données</string>
<string name="keyboard_previous_lock_title">Verrouiller la base de données</string> <string name="keyboard_previous_lock_title">Verrouiller la base de données</string>
<string name="keyboard_save_search_info_summary">Essayer denregistrer les informations partagées lors de la sélection manuelle dune entrée</string> <string name="keyboard_save_search_info_summary">Essayer denregistrer l\'association entre une adresse web partagée à KeePassDX et l\'entrée sélectionnée manuellement</string>
<string name="keyboard_save_search_info_title">Enregistrer les infos partagées</string> <string name="keyboard_save_search_info_title">Enregistrer les infos partagées</string>
<string name="notification">Notification</string> <string name="notification">Notification</string>
<string name="biometric_security_update_required">Mise à jour de sécurité biométrique requise.</string> <string name="biometric_security_update_required">Mise à jour de sécurité biométrique requise.</string>
@@ -540,7 +540,7 @@
<string name="error_rebuild_list">Impossible de reconstruire correctement la liste.</string> <string name="error_rebuild_list">Impossible de reconstruire correctement la liste.</string>
<string name="error_database_uri_null">L\'URI de la base de données ne peut pas être récupéré.</string> <string name="error_database_uri_null">L\'URI de la base de données ne peut pas être récupéré.</string>
<string name="autofill_inline_suggestions_keyboard">Suggestions de remplissage automatique ajoutées.</string> <string name="autofill_inline_suggestions_keyboard">Suggestions de remplissage automatique ajoutées.</string>
<string name="autofill_inline_suggestions_summary">Tente d\'afficher des suggestions de remplissage automatique directement à partir d\'un clavier compatible</string> <string name="autofill_inline_suggestions_summary">Tente d\'afficher des suggestions de remplissage automatique dans la barre de suggestions des claviers compatibles</string>
<string name="autofill_inline_suggestions_title">Suggestions en ligne</string> <string name="autofill_inline_suggestions_title">Suggestions en ligne</string>
<string name="warning_database_info_changed_options">Écraser les modifications externes en sauvegardant la base de données ou recharger-la avec les dernières modifications.</string> <string name="warning_database_info_changed_options">Écraser les modifications externes en sauvegardant la base de données ou recharger-la avec les dernières modifications.</string>
<string name="warning_database_revoked">Accès au dossier révoqué par le gestionnaire de fichiers, fermer la base de données et la rouvrir à partir de son emplacement.</string> <string name="warning_database_revoked">Accès au dossier révoqué par le gestionnaire de fichiers, fermer la base de données et la rouvrir à partir de son emplacement.</string>
@@ -551,7 +551,7 @@
<string name="unit_kibibyte">Kibioctets</string> <string name="unit_kibibyte">Kibioctets</string>
<string name="unit_byte">Octets</string> <string name="unit_byte">Octets</string>
<string name="error_otp_type">Le type OTP existant n\'est pas reconnu par ce formulaire, sa validation peut ne plus générer correctement le jeton.</string> <string name="error_otp_type">Le type OTP existant n\'est pas reconnu par ce formulaire, sa validation peut ne plus générer correctement le jeton.</string>
<string name="download_canceled">Annulé!</string> <string name="download_canceled">Annulé !</string>
<string name="icon_section_custom">Customisé</string> <string name="icon_section_custom">Customisé</string>
<string name="icon_section_standard">Standard</string> <string name="icon_section_standard">Standard</string>
<string name="style_brightness_summary">Sélectionnez des thèmes clairs ou foncés</string> <string name="style_brightness_summary">Sélectionnez des thèmes clairs ou foncés</string>

View File

@@ -384,4 +384,18 @@
<string name="error_upload_file">Timbul galat saat mengunggah data berkas.</string> <string name="error_upload_file">Timbul galat saat mengunggah data berkas.</string>
<string name="error_file_to_big">File yang Anda unggah terlalu besar.</string> <string name="error_file_to_big">File yang Anda unggah terlalu besar.</string>
<string name="content_description_otp_information">Info sandi satu kali</string> <string name="content_description_otp_information">Info sandi satu kali</string>
<string name="education_select_database_title">Buka basisdata yang sudah ada</string>
<string name="enable_auto_save_database_title">Simpan otomatis basisdata</string>
<string name="education_new_node_title">Tambah item ke basisdata anda</string>
<string name="education_entry_edit_title">Sunting entri</string>
<string name="education_create_database_title">Buat berkas basisdata anda</string>
<string name="delete_entered_password_title">Hapus kata sandi</string>
<string name="education_sort_title">Pengurutan item</string>
<string name="html_text_dev_feature_thanks">Terima kasih banyak atas kontribusinya.</string>
<string name="html_text_dev_feature_contibute">Dengan <strong>berkontribusi</strong>,</string>
<string name="education_lock_title">Kunci basisdata</string>
<string name="education_unlock_title">Buka basisdata anda</string>
<string name="education_field_copy_title">Salin bidang</string>
<string name="education_setup_OTP_title">Atur OTP</string>
<string name="education_donation_title">Partisipasi</string>
</resources> </resources>

View File

@@ -36,7 +36,7 @@
<string name="clipboard_error_clear">Не удалось очистить буфер обмена</string> <string name="clipboard_error_clear">Не удалось очистить буфер обмена</string>
<string name="clipboard_timeout">Задержка очистки буфера обмена</string> <string name="clipboard_timeout">Задержка очистки буфера обмена</string>
<string name="clipboard_timeout_summary">Продолжительность хранения в буфере обмена (если поддерживается устройством)</string> <string name="clipboard_timeout_summary">Продолжительность хранения в буфере обмена (если поддерживается устройством)</string>
<string name="select_to_copy">Выберите %1$s для копирования в буфер обмена</string> <string name="select_to_copy">Нажатие скопирует «%1$s» в буфер</string>
<string name="retrieving_db_key">Получение ключа базы…</string> <string name="retrieving_db_key">Получение ключа базы…</string>
<string name="database">База</string> <string name="database">База</string>
<string name="decrypting_db">Расшифровка базы…</string> <string name="decrypting_db">Расшифровка базы…</string>
@@ -58,7 +58,7 @@
<string name="save">Сохранить</string> <string name="save">Сохранить</string>
<string name="entry_title">Название</string> <string name="entry_title">Название</string>
<string name="entry_url">Ссылка</string> <string name="entry_url">Ссылка</string>
<string name="entry_user_name">Имя пользователя</string> <string name="entry_user_name">Пользователь</string>
<string name="error_arc4">Потоковый шифр Arcfour не поддерживается.</string> <string name="error_arc4">Потоковый шифр Arcfour не поддерживается.</string>
<string name="error_can_not_handle_uri">Невозможно обработать указанный URI в KeePassDX.</string> <string name="error_can_not_handle_uri">Невозможно обработать указанный URI в KeePassDX.</string>
<string name="error_file_not_create">Невозможно создать файл</string> <string name="error_file_not_create">Невозможно создать файл</string>

View File

@@ -100,7 +100,7 @@
<string name="minus">减号</string> <string name="minus">减号</string>
<string name="never">从不</string> <string name="never">从不</string>
<string name="no_results">没有搜索结果</string> <string name="no_results">没有搜索结果</string>
<string name="no_url_handler">需要安装网络浏览器才能打开这个URL</string> <string name="no_url_handler">需要安装网络浏览器才能打开这个网址</string>
<string name="progress_create">正在新建数据库…</string> <string name="progress_create">正在新建数据库…</string>
<string name="progress_title">正在处理…</string> <string name="progress_title">正在处理…</string>
<string name="content_description_remove_from_list">移除</string> <string name="content_description_remove_from_list">移除</string>
@@ -317,7 +317,7 @@
<string name="keyboard_selection_entry_title">条目选择</string> <string name="keyboard_selection_entry_title">条目选择</string>
<string name="keyboard_selection_entry_summary">在查看条目时,在专用键盘中显示输入字段</string> <string name="keyboard_selection_entry_summary">在查看条目时,在专用键盘中显示输入字段</string>
<string name="delete_entered_password_title">删除密码</string> <string name="delete_entered_password_title">删除密码</string>
<string name="delete_entered_password_summary">在连接数据库尝试后删除输入的密码</string> <string name="delete_entered_password_summary">尝试连接数据库后删除输入的密码</string>
<string name="content_description_open_file">打开文件</string> <string name="content_description_open_file">打开文件</string>
<string name="content_description_node_children">子节点</string> <string name="content_description_node_children">子节点</string>
<string name="content_description_add_node">增加节点</string> <string name="content_description_add_node">增加节点</string>
@@ -432,7 +432,7 @@
<string name="entry_add_attachment">添加附件</string> <string name="entry_add_attachment">添加附件</string>
<string name="discard_changes">放弃更改?</string> <string name="discard_changes">放弃更改?</string>
<string name="validate">验证</string> <string name="validate">验证</string>
<string name="autofill_auto_search_summary">自动推荐从网站域名或应用程序搜索结果</string> <string name="autofill_auto_search_summary">自动建议匹配的网址域名或应用程序 ID 的搜索结果</string>
<string name="autofill_auto_search_title">自动搜索</string> <string name="autofill_auto_search_title">自动搜索</string>
<string name="lock_database_show_button_summary">在用户界面中显示锁定数据库按钮</string> <string name="lock_database_show_button_summary">在用户界面中显示锁定数据库按钮</string>
<string name="lock_database_show_button_title">显示锁定数据库按钮</string> <string name="lock_database_show_button_title">显示锁定数据库按钮</string>
@@ -444,11 +444,11 @@
<string name="autofill_block_restart">重新启动包含该表单的应用程序以激活拦截。</string> <string name="autofill_block_restart">重新启动包含该表单的应用程序以激活拦截。</string>
<string name="autofill_block">阻止自动填充</string> <string name="autofill_block">阻止自动填充</string>
<string name="autofill_web_domain_blocklist_summary">禁止在下列域名中自动填充凭证</string> <string name="autofill_web_domain_blocklist_summary">禁止在下列域名中自动填充凭证</string>
<string name="autofill_web_domain_blocklist_title">Web 域名黑名单</string> <string name="autofill_web_domain_blocklist_title">网址域名黑名单</string>
<string name="autofill_application_id_blocklist_summary">禁止应用程序自动填充的黑名单</string> <string name="autofill_application_id_blocklist_summary">禁止应用程序自动填充的黑名单</string>
<string name="autofill_application_id_blocklist_title">应用拦截列表</string> <string name="autofill_application_id_blocklist_title">应用拦截列表</string>
<string name="filter">过滤器</string> <string name="filter">过滤器</string>
<string name="subdomain_search_summary">搜索带有子域约束的web域</string> <string name="subdomain_search_summary">搜索带有子域约束的网址域名</string>
<string name="subdomain_search_title">子域搜索</string> <string name="subdomain_search_title">子域搜索</string>
<string name="error_string_type">文本和请求的条目不匹配.</string> <string name="error_string_type">文本和请求的条目不匹配.</string>
<string name="content_description_add_item">添加条目</string> <string name="content_description_add_item">添加条目</string>
@@ -509,7 +509,7 @@
<string name="advanced_unlock_prompt_store_credential_message">警告:即使您使用高级解锁识别,您仍然需要记住您的主密码。</string> <string name="advanced_unlock_prompt_store_credential_message">警告:即使您使用高级解锁识别,您仍然需要记住您的主密码。</string>
<string name="advanced_unlock_prompt_store_credential_title">高级解锁识别</string> <string name="advanced_unlock_prompt_store_credential_title">高级解锁识别</string>
<string name="open_advanced_unlock_prompt_store_credential">点击以打开高级解锁提示来存储凭证</string> <string name="open_advanced_unlock_prompt_store_credential">点击以打开高级解锁提示来存储凭证</string>
<string name="open_advanced_unlock_prompt_unlock_database">点击以使用生物识别解锁</string> <string name="open_advanced_unlock_prompt_unlock_database">点击以使用高级识别解锁</string>
<string name="menu_keystore_remove_key">删除高级解锁密钥</string> <string name="menu_keystore_remove_key">删除高级解锁密钥</string>
<string name="enter">输入</string> <string name="enter">输入</string>
<string name="backspace">退格键</string> <string name="backspace">退格键</string>

View File

@@ -433,13 +433,13 @@
<string name="keyboard_setting_label">Magikeyboard settings</string> <string name="keyboard_setting_label">Magikeyboard settings</string>
<string name="keyboard_entry_category">Entry</string> <string name="keyboard_entry_category">Entry</string>
<string name="keyboard_selection_entry_title">Entry selection</string> <string name="keyboard_selection_entry_title">Entry selection</string>
<string name="keyboard_selection_entry_summary">Show input fields in Magikeyboard when viewing an entry</string> <string name="keyboard_selection_entry_summary">When viewing an entry in KeePassDX, populate Magikeyboard with that entry</string>
<string name="keyboard_notification_entry_title">Notification info</string> <string name="keyboard_notification_entry_title">Notification info</string>
<string name="keyboard_notification_entry_summary">Show a notification when an entry is available</string> <string name="keyboard_notification_entry_summary">Show a notification when an entry is available</string>
<string name="keyboard_search_share_title">Search shared info</string> <string name="keyboard_search_share_title">Search shared info</string>
<string name="keyboard_search_share_summary">Automatically search for shared information to populate the keyboard</string> <string name="keyboard_search_share_summary">When sharing a URL to KeePassDX, filter the entries using that URL domain</string>
<string name="keyboard_save_search_info_title">Save shared info</string> <string name="keyboard_save_search_info_title">Save shared info</string>
<string name="keyboard_save_search_info_summary">Try to save shared information when making a manual entry selection</string> <string name="keyboard_save_search_info_summary">After sharing a URL to KeePassDX, when an entry is selected, try to remember that entry for further uses</string>
<string name="keyboard_notification_entry_clear_close_title">Clear at closing</string> <string name="keyboard_notification_entry_clear_close_title">Clear at closing</string>
<string name="keyboard_notification_entry_clear_close_summary">Close the database when closing the notification</string> <string name="keyboard_notification_entry_clear_close_summary">Close the database when closing the notification</string>
<string name="keyboard_entry_timeout_title">Timeout</string> <string name="keyboard_entry_timeout_title">Timeout</string>

View File

@@ -0,0 +1,3 @@
* Improve Magikeyboard options description #1022 #1023 (Thx @djibux)
* Fix database opened without notification (database is now closed when screen is killed in background #1025)
* Fix biometric prompt #1018

View File

@@ -0,0 +1,3 @@
* Amélioration de la description des options de Magikeyboard #1022 #1023 (Thx @djibux)
* Correction de l'ouverture de la base de données sans notification (la base est maintenant fermée lorsque l'écran est tuée en arrière-plan #1025)
* Correction de l'invite biométrique #1018