mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Compare commits
40 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1d71de7031 | ||
|
|
e3e10e7dfa | ||
|
|
cbf900004d | ||
|
|
51b36dc460 | ||
|
|
9f8016afe2 | ||
|
|
d5a36db50a | ||
|
|
ecd458d8d0 | ||
|
|
9088297c41 | ||
|
|
5282deb088 | ||
|
|
75d661f12b | ||
|
|
83bc769d9e | ||
|
|
8324acadc8 | ||
|
|
6e42db41be | ||
|
|
3917bfc9e6 | ||
|
|
d11febb1ce | ||
|
|
360eb6f9cc | ||
|
|
e4ac5d01d0 | ||
|
|
6a51fc0668 | ||
|
|
ba03f07fbe | ||
|
|
7bf7d63f64 | ||
|
|
d3efaabc24 | ||
|
|
b4283ed98b | ||
|
|
de407e4cf9 | ||
|
|
60ed3a9836 | ||
|
|
699ccf13f0 | ||
|
|
ae88aa4e42 | ||
|
|
bcce13b12f | ||
|
|
d7d68ccdeb | ||
|
|
5cf6362db4 | ||
|
|
4efcc48160 | ||
|
|
383274ce0f | ||
|
|
c9dec3a2f7 | ||
|
|
2d4bf2903b | ||
|
|
2b88cfbda0 | ||
|
|
eb6ab7a156 | ||
|
|
688cbe50f2 | ||
|
|
e0577d1628 | ||
|
|
0f8dd17fde | ||
|
|
4bc8a08606 | ||
|
|
cf34433186 |
@@ -1,3 +1,11 @@
|
|||||||
|
KeePassDX(3.3.3)
|
||||||
|
* Fix shared otpauth link if database not open #1274
|
||||||
|
* Ellipsize attachment name #1253
|
||||||
|
* Add a warning to inform about KeyStore usage #1269
|
||||||
|
* Fingerprint unlock no more by default #1273
|
||||||
|
* Tabs to show main and advanced content separately
|
||||||
|
* Fix URL color
|
||||||
|
|
||||||
KeePassDX(3.3.2)
|
KeePassDX(3.3.2)
|
||||||
* Merge KeePassDX & KeePassDX Pro #1257
|
* Merge KeePassDX & KeePassDX Pro #1257
|
||||||
* Create new Contributor Pro app
|
* Create new Contributor Pro app
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ android {
|
|||||||
applicationId "com.kunzisoft.keepass"
|
applicationId "com.kunzisoft.keepass"
|
||||||
minSdkVersion 15
|
minSdkVersion 15
|
||||||
targetSdkVersion 31
|
targetSdkVersion 31
|
||||||
versionCode = 104
|
versionCode = 105
|
||||||
versionName = "3.3.2"
|
versionName = "3.3.3"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
|
|
||||||
testApplicationId = "com.kunzisoft.keepass.tests"
|
testApplicationId = "com.kunzisoft.keepass.tests"
|
||||||
|
|||||||
19
app/src/free/res/drawable/ic_app_white_24dp.xml
Normal file
19
app/src/free/res/drawable/ic_app_white_24dp.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="84"
|
||||||
|
android:viewportHeight="84">
|
||||||
|
<group
|
||||||
|
android:translateX="-12"
|
||||||
|
android:translateY="-12">
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffa726"
|
||||||
|
android:strokeWidth="1.99999297"
|
||||||
|
android:pathData="M36,36 L36,40.2422 L67.7578,72 L72,72 L72,67.7578 L40.2422,36 Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffffff"
|
||||||
|
android:strokeWidth="1.99999297"
|
||||||
|
android:pathData="M63.9961,34.0059 C61.5643,34.096,59.2564,35.102,57.5352,36.8223 C53.7682,40.589,53.7682,46.6982,57.5352,50.4649 C61.3017,54.232,67.4073,54.232,71.1739,50.4649 C74.9409,46.6982,74.9409,40.589,71.1739,36.8223 C69.2766,34.9258,66.6768,33.9054,63.9962,34.0059 Z M68.1992,40.6954 C69.8278,40.6958,71.148,42.016,71.1484,43.6446 C71.148,45.2732,69.8278,46.5934,68.1992,46.5938 C66.5706,46.5934,65.2504,45.2732,65.25,43.6446 C65.2504,42.016,66.5706,40.6958,68.1992,40.6954 Z M48.3438,55.4141 L36,67.7578 L36,72 L40.2422,72 L44.7578,67.4844 L44.7578,67.5 L49,67.5 L49,63.2578 L48.9844,63.2578 L49,63.2422 L49,63.2578 L53.2578,63.2578 L53.2578,60.3281 Z" />
|
||||||
|
</group>
|
||||||
|
</vector>
|
||||||
19
app/src/libre/res/drawable/ic_app_white_24dp.xml
Normal file
19
app/src/libre/res/drawable/ic_app_white_24dp.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:width="24dp"
|
||||||
|
android:height="24dp"
|
||||||
|
android:viewportWidth="84"
|
||||||
|
android:viewportHeight="84">
|
||||||
|
<group
|
||||||
|
android:translateX="-12"
|
||||||
|
android:translateY="-12">
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffa726"
|
||||||
|
android:strokeWidth="1.99999297"
|
||||||
|
android:pathData="M36,36 L36,40.2422 L67.7578,72 L72,72 L72,67.7578 L40.2422,36 Z" />
|
||||||
|
<path
|
||||||
|
android:fillColor="#ffffff"
|
||||||
|
android:strokeWidth="1.99999297"
|
||||||
|
android:pathData="M64.501,35.0576 C63.7095,35.0576,62.918,35.3613,62.3115,35.9678 L55.0127,43.2666 C53.7998,44.4795,53.7998,46.4306,55.0127,47.6436 L62.3115,54.9424 C63.5244,56.1553,65.4775,56.1553,66.6904,54.9424 L73.9873,47.6436 C75.2002,46.4307,75.2002,44.4796,73.9873,43.2666 L66.6904,35.9678 C66.0839,35.3613,65.2924,35.0576,64.5009,35.0576 Z M67.6729,42.6006 C69.3298,42.6006,70.6729,43.9437,70.6729,45.6006 C70.6729,47.2575,69.3298,48.6006,67.6729,48.6006 C66.016,48.6006,64.6729,47.2575,64.6729,45.6006 C64.6729,43.9437,66.016,42.6006,67.6729,42.6006 Z M48.3438,55.4141 L36,67.7578 L36,72 L40.2422,72 L44.7578,67.4844 L44.7578,67.5 L49,67.5 L49,63.2578 L48.9844,63.2578 L49,63.2422 L49,63.2578 L53.2578,63.2578 L53.2578,60.3281 Z" />
|
||||||
|
</group>
|
||||||
|
</vector>
|
||||||
@@ -44,6 +44,7 @@ import androidx.core.graphics.ColorUtils
|
|||||||
import com.google.android.material.appbar.AppBarLayout
|
import com.google.android.material.appbar.AppBarLayout
|
||||||
import com.google.android.material.appbar.CollapsingToolbarLayout
|
import com.google.android.material.appbar.CollapsingToolbarLayout
|
||||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||||
|
import com.google.android.material.tabs.TabLayout
|
||||||
import com.kunzisoft.keepass.R
|
import com.kunzisoft.keepass.R
|
||||||
import com.kunzisoft.keepass.activities.fragments.EntryFragment
|
import com.kunzisoft.keepass.activities.fragments.EntryFragment
|
||||||
import com.kunzisoft.keepass.activities.helpers.ExternalFileHelper
|
import com.kunzisoft.keepass.activities.helpers.ExternalFileHelper
|
||||||
@@ -83,6 +84,7 @@ class EntryActivity : DatabaseLockActivity() {
|
|||||||
private var titleIconView: ImageView? = null
|
private var titleIconView: ImageView? = null
|
||||||
private var historyView: View? = null
|
private var historyView: View? = null
|
||||||
private var tagsListView: RecyclerView? = null
|
private var tagsListView: RecyclerView? = null
|
||||||
|
private var entryContentTab: TabLayout? = null
|
||||||
private var tagsAdapter: TagsAdapter? = null
|
private var tagsAdapter: TagsAdapter? = null
|
||||||
private var entryProgress: LinearProgressIndicator? = null
|
private var entryProgress: LinearProgressIndicator? = null
|
||||||
private var lockView: View? = null
|
private var lockView: View? = null
|
||||||
@@ -133,6 +135,7 @@ class EntryActivity : DatabaseLockActivity() {
|
|||||||
titleIconView = findViewById(R.id.entry_icon)
|
titleIconView = findViewById(R.id.entry_icon)
|
||||||
historyView = findViewById(R.id.history_container)
|
historyView = findViewById(R.id.history_container)
|
||||||
tagsListView = findViewById(R.id.entry_tags_list_view)
|
tagsListView = findViewById(R.id.entry_tags_list_view)
|
||||||
|
entryContentTab = findViewById(R.id.entry_content_tab)
|
||||||
entryProgress = findViewById(R.id.entry_progress)
|
entryProgress = findViewById(R.id.entry_progress)
|
||||||
lockView = findViewById(R.id.lock_button)
|
lockView = findViewById(R.id.lock_button)
|
||||||
loadingView = findViewById(R.id.loading)
|
loadingView = findViewById(R.id.loading)
|
||||||
@@ -162,6 +165,19 @@ class EntryActivity : DatabaseLockActivity() {
|
|||||||
adapter = tagsAdapter
|
adapter = tagsAdapter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Init content tab
|
||||||
|
entryContentTab?.addOnTabSelectedListener(object : TabLayout.OnTabSelectedListener {
|
||||||
|
override fun onTabSelected(tab: TabLayout.Tab?) {
|
||||||
|
mEntryViewModel.selectSection(EntryViewModel.EntrySection.
|
||||||
|
getEntrySectionByPosition(tab?.position ?: 0)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onTabUnselected(tab: TabLayout.Tab?) {}
|
||||||
|
|
||||||
|
override fun onTabReselected(tab: TabLayout.Tab?) {}
|
||||||
|
})
|
||||||
|
|
||||||
// Get Entry from UUID
|
// Get Entry from UUID
|
||||||
try {
|
try {
|
||||||
intent.getParcelableExtra<NodeId<UUID>?>(KEY_ENTRY)?.let { mainEntryId ->
|
intent.getParcelableExtra<NodeId<UUID>?>(KEY_ENTRY)?.let { mainEntryId ->
|
||||||
@@ -193,6 +209,10 @@ class EntryActivity : DatabaseLockActivity() {
|
|||||||
lockAndExit()
|
lockAndExit()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mEntryViewModel.sectionSelected.observe(this) { entrySection ->
|
||||||
|
entryContentTab?.getTabAt(entrySection.position)?.select()
|
||||||
|
}
|
||||||
|
|
||||||
mEntryViewModel.entryInfoHistory.observe(this) { entryInfoHistory ->
|
mEntryViewModel.entryInfoHistory.observe(this) { entryInfoHistory ->
|
||||||
if (entryInfoHistory != null) {
|
if (entryInfoHistory != null) {
|
||||||
this.mMainEntryId = entryInfoHistory.mainEntryId
|
this.mMainEntryId = entryInfoHistory.mainEntryId
|
||||||
|
|||||||
@@ -165,15 +165,8 @@ class EntrySelectionLauncherActivity : DatabaseModeActivity() {
|
|||||||
{
|
{
|
||||||
// If database not open
|
// If database not open
|
||||||
if (searchInfo.otpString != null) {
|
if (searchInfo.otpString != null) {
|
||||||
if (!readOnly) {
|
FileDatabaseSelectActivity.launchForSaveResult(this,
|
||||||
FileDatabaseSelectActivity.launchForSaveResult(this,
|
searchInfo)
|
||||||
searchInfo)
|
|
||||||
} else {
|
|
||||||
Toast.makeText(applicationContext,
|
|
||||||
R.string.autofill_read_only_save,
|
|
||||||
Toast.LENGTH_LONG)
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
} else if (searchShareForMagikeyboard) {
|
} else if (searchShareForMagikeyboard) {
|
||||||
FileDatabaseSelectActivity.launchForKeyboardSelectionResult(this,
|
FileDatabaseSelectActivity.launchForKeyboardSelectionResult(this,
|
||||||
searchInfo)
|
searchInfo)
|
||||||
|
|||||||
@@ -34,11 +34,13 @@ import android.view.ViewGroup
|
|||||||
import android.widget.Button
|
import android.widget.Button
|
||||||
import android.widget.CompoundButton
|
import android.widget.CompoundButton
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
|
import android.widget.Toast
|
||||||
import androidx.activity.result.ActivityResultLauncher
|
import androidx.activity.result.ActivityResultLauncher
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.widget.Toolbar
|
import androidx.appcompat.widget.Toolbar
|
||||||
|
import androidx.biometric.BiometricManager
|
||||||
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
||||||
import androidx.fragment.app.commit
|
import androidx.fragment.app.commit
|
||||||
import com.google.android.material.snackbar.Snackbar
|
import com.google.android.material.snackbar.Snackbar
|
||||||
@@ -52,6 +54,7 @@ import com.kunzisoft.keepass.activities.legacy.DatabaseModeActivity
|
|||||||
import com.kunzisoft.keepass.autofill.AutofillComponent
|
import com.kunzisoft.keepass.autofill.AutofillComponent
|
||||||
import com.kunzisoft.keepass.autofill.AutofillHelper
|
import com.kunzisoft.keepass.autofill.AutofillHelper
|
||||||
import com.kunzisoft.keepass.biometric.AdvancedUnlockFragment
|
import com.kunzisoft.keepass.biometric.AdvancedUnlockFragment
|
||||||
|
import com.kunzisoft.keepass.biometric.AdvancedUnlockManager
|
||||||
import com.kunzisoft.keepass.database.element.Database
|
import com.kunzisoft.keepass.database.element.Database
|
||||||
import com.kunzisoft.keepass.database.exception.DuplicateUuidDatabaseException
|
import com.kunzisoft.keepass.database.exception.DuplicateUuidDatabaseException
|
||||||
import com.kunzisoft.keepass.database.exception.FileNotFoundDatabaseException
|
import com.kunzisoft.keepass.database.exception.FileNotFoundDatabaseException
|
||||||
@@ -63,6 +66,7 @@ import com.kunzisoft.keepass.services.DatabaseTaskNotificationService.Companion.
|
|||||||
import com.kunzisoft.keepass.services.DatabaseTaskNotificationService.Companion.MAIN_CREDENTIAL_KEY
|
import com.kunzisoft.keepass.services.DatabaseTaskNotificationService.Companion.MAIN_CREDENTIAL_KEY
|
||||||
import com.kunzisoft.keepass.services.DatabaseTaskNotificationService.Companion.READ_ONLY_KEY
|
import com.kunzisoft.keepass.services.DatabaseTaskNotificationService.Companion.READ_ONLY_KEY
|
||||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||||
|
import com.kunzisoft.keepass.settings.SettingsAdvancedUnlockActivity
|
||||||
import com.kunzisoft.keepass.tasks.ActionRunnable
|
import com.kunzisoft.keepass.tasks.ActionRunnable
|
||||||
import com.kunzisoft.keepass.utils.BACK_PREVIOUS_KEYBOARD_ACTION
|
import com.kunzisoft.keepass.utils.BACK_PREVIOUS_KEYBOARD_ACTION
|
||||||
import com.kunzisoft.keepass.utils.MenuUtil
|
import com.kunzisoft.keepass.utils.MenuUtil
|
||||||
@@ -79,6 +83,7 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
|||||||
// Views
|
// Views
|
||||||
private var toolbar: Toolbar? = null
|
private var toolbar: Toolbar? = null
|
||||||
private var filenameView: TextView? = null
|
private var filenameView: TextView? = null
|
||||||
|
private var advancedUnlockButton: View? = null
|
||||||
private var mainCredentialView: MainCredentialView? = null
|
private var mainCredentialView: MainCredentialView? = null
|
||||||
private var confirmButtonView: Button? = null
|
private var confirmButtonView: Button? = null
|
||||||
private var infoContainerView: ViewGroup? = null
|
private var infoContainerView: ViewGroup? = null
|
||||||
@@ -116,6 +121,7 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
|||||||
supportActionBar?.setDisplayShowHomeEnabled(true)
|
supportActionBar?.setDisplayShowHomeEnabled(true)
|
||||||
|
|
||||||
filenameView = findViewById(R.id.filename)
|
filenameView = findViewById(R.id.filename)
|
||||||
|
advancedUnlockButton = findViewById(R.id.activity_password_advanced_unlock_button)
|
||||||
mainCredentialView = findViewById(R.id.activity_password_credentials)
|
mainCredentialView = findViewById(R.id.activity_password_credentials)
|
||||||
confirmButtonView = findViewById(R.id.activity_password_open_button)
|
confirmButtonView = findViewById(R.id.activity_password_open_button)
|
||||||
infoContainerView = findViewById(R.id.activity_password_info_container)
|
infoContainerView = findViewById(R.id.activity_password_info_container)
|
||||||
@@ -143,6 +149,11 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
|||||||
getUriFromIntent(intent)
|
getUriFromIntent(intent)
|
||||||
|
|
||||||
// Init Biometric elements
|
// Init Biometric elements
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
advancedUnlockButton?.setOnClickListener {
|
||||||
|
startActivity(Intent(this, SettingsAdvancedUnlockActivity::class.java))
|
||||||
|
}
|
||||||
|
}
|
||||||
advancedUnlockFragment = supportFragmentManager
|
advancedUnlockFragment = supportFragmentManager
|
||||||
.findFragmentByTag(UNLOCK_FRAGMENT_TAG) as? AdvancedUnlockFragment?
|
.findFragmentByTag(UNLOCK_FRAGMENT_TAG) as? AdvancedUnlockFragment?
|
||||||
if (advancedUnlockFragment == null) {
|
if (advancedUnlockFragment == null) {
|
||||||
@@ -227,6 +238,15 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
|||||||
override fun onDatabaseRetrieved(database: Database?) {
|
override fun onDatabaseRetrieved(database: Database?) {
|
||||||
super.onDatabaseRetrieved(database)
|
super.onDatabaseRetrieved(database)
|
||||||
if (database != null) {
|
if (database != null) {
|
||||||
|
// Trying to load another database
|
||||||
|
if (mDatabaseFileUri != null
|
||||||
|
&& database.fileUri != null
|
||||||
|
&& mDatabaseFileUri != database.fileUri) {
|
||||||
|
Toast.makeText(this,
|
||||||
|
R.string.warning_database_already_opened,
|
||||||
|
Toast.LENGTH_LONG
|
||||||
|
).show()
|
||||||
|
}
|
||||||
launchGroupActivityIfLoaded(database)
|
launchGroupActivityIfLoaded(database)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -588,15 +608,24 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
|||||||
{
|
{
|
||||||
performedNextEducation(menu)
|
performedNextEducation(menu)
|
||||||
})
|
})
|
||||||
|
try {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||||
|
&& !readOnlyEducationPerformed) {
|
||||||
|
val biometricCanAuthenticate = AdvancedUnlockManager.canAuthenticate(this)
|
||||||
|
val biometricPerformed =
|
||||||
|
(biometricCanAuthenticate == BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED
|
||||||
|
|| biometricCanAuthenticate == BiometricManager.BIOMETRIC_SUCCESS)
|
||||||
|
&& advancedUnlockButton != null
|
||||||
|
&& mPasswordActivityEducation.checkAndPerformedBiometricEducation(
|
||||||
|
advancedUnlockButton!!,
|
||||||
|
{
|
||||||
|
startActivity(Intent(this, SettingsAdvancedUnlockActivity::class.java))
|
||||||
|
},
|
||||||
|
{
|
||||||
|
|
||||||
advancedUnlockFragment?.performEducation(mPasswordActivityEducation,
|
})
|
||||||
readOnlyEducationPerformed,
|
}
|
||||||
{
|
} catch (ignored: Exception) {}
|
||||||
performedNextEducation(menu)
|
|
||||||
},
|
|
||||||
{
|
|
||||||
performedNextEducation(menu)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ import com.kunzisoft.keepass.R
|
|||||||
import com.kunzisoft.keepass.adapters.EntryAttachmentsItemsAdapter
|
import com.kunzisoft.keepass.adapters.EntryAttachmentsItemsAdapter
|
||||||
import com.kunzisoft.keepass.database.element.Attachment
|
import com.kunzisoft.keepass.database.element.Attachment
|
||||||
import com.kunzisoft.keepass.database.element.Database
|
import com.kunzisoft.keepass.database.element.Database
|
||||||
import com.kunzisoft.keepass.database.element.DateInstant
|
|
||||||
import com.kunzisoft.keepass.database.element.template.TemplateField
|
import com.kunzisoft.keepass.database.element.template.TemplateField
|
||||||
import com.kunzisoft.keepass.model.EntryAttachmentState
|
import com.kunzisoft.keepass.model.EntryAttachmentState
|
||||||
import com.kunzisoft.keepass.model.EntryInfo
|
import com.kunzisoft.keepass.model.EntryInfo
|
||||||
@@ -25,6 +24,7 @@ import com.kunzisoft.keepass.settings.PreferencesUtil
|
|||||||
import com.kunzisoft.keepass.timeout.ClipboardHelper
|
import com.kunzisoft.keepass.timeout.ClipboardHelper
|
||||||
import com.kunzisoft.keepass.utils.UuidUtil
|
import com.kunzisoft.keepass.utils.UuidUtil
|
||||||
import com.kunzisoft.keepass.view.TemplateView
|
import com.kunzisoft.keepass.view.TemplateView
|
||||||
|
import com.kunzisoft.keepass.view.hideByFading
|
||||||
import com.kunzisoft.keepass.view.showByFading
|
import com.kunzisoft.keepass.view.showByFading
|
||||||
import com.kunzisoft.keepass.viewmodels.EntryViewModel
|
import com.kunzisoft.keepass.viewmodels.EntryViewModel
|
||||||
import java.util.*
|
import java.util.*
|
||||||
@@ -32,6 +32,9 @@ import java.util.*
|
|||||||
class EntryFragment: DatabaseFragment() {
|
class EntryFragment: DatabaseFragment() {
|
||||||
|
|
||||||
private lateinit var rootView: View
|
private lateinit var rootView: View
|
||||||
|
private lateinit var mainSection: View
|
||||||
|
private lateinit var advancedSection: View
|
||||||
|
|
||||||
private lateinit var templateView: TemplateView
|
private lateinit var templateView: TemplateView
|
||||||
|
|
||||||
private lateinit var creationDateView: TextView
|
private lateinit var creationDateView: TextView
|
||||||
@@ -72,6 +75,10 @@ class EntryFragment: DatabaseFragment() {
|
|||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
view.isVisible = false
|
view.isVisible = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mainSection = view.findViewById(R.id.entry_section_main)
|
||||||
|
advancedSection = view.findViewById(R.id.entry_section_advanced)
|
||||||
|
|
||||||
templateView = view.findViewById(R.id.entry_template)
|
templateView = view.findViewById(R.id.entry_template)
|
||||||
loadTemplateSettings()
|
loadTemplateSettings()
|
||||||
|
|
||||||
@@ -111,6 +118,19 @@ class EntryFragment: DatabaseFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mEntryViewModel.sectionSelected.observe(viewLifecycleOwner) { entrySection ->
|
||||||
|
when (entrySection ?: EntryViewModel.EntrySection.MAIN) {
|
||||||
|
EntryViewModel.EntrySection.MAIN -> {
|
||||||
|
mainSection.showByFading()
|
||||||
|
advancedSection.hideByFading()
|
||||||
|
}
|
||||||
|
EntryViewModel.EntrySection.ADVANCED -> {
|
||||||
|
mainSection.hideByFading()
|
||||||
|
advancedSection.showByFading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDatabaseRetrieved(database: Database?) {
|
override fun onDatabaseRetrieved(database: Database?) {
|
||||||
|
|||||||
@@ -45,6 +45,8 @@ import com.kunzisoft.keepass.model.CipherEncryptDatabase
|
|||||||
import com.kunzisoft.keepass.model.CredentialStorage
|
import com.kunzisoft.keepass.model.CredentialStorage
|
||||||
import com.kunzisoft.keepass.settings.PreferencesUtil
|
import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||||
import com.kunzisoft.keepass.view.AdvancedUnlockInfoView
|
import com.kunzisoft.keepass.view.AdvancedUnlockInfoView
|
||||||
|
import com.kunzisoft.keepass.view.hideByFading
|
||||||
|
import com.kunzisoft.keepass.view.showByFading
|
||||||
import com.kunzisoft.keepass.viewmodels.AdvancedUnlockViewModel
|
import com.kunzisoft.keepass.viewmodels.AdvancedUnlockViewModel
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@@ -579,10 +581,13 @@ class AdvancedUnlockFragment: StylishFragment(), AdvancedUnlockManager.AdvancedU
|
|||||||
|
|
||||||
private fun showViews(show: Boolean) {
|
private fun showViews(show: Boolean) {
|
||||||
lifecycleScope.launch(Dispatchers.Main) {
|
lifecycleScope.launch(Dispatchers.Main) {
|
||||||
mAdvancedUnlockInfoView?.visibility = if (show)
|
if (show) {
|
||||||
View.VISIBLE
|
if (mAdvancedUnlockInfoView?.visibility != View.VISIBLE)
|
||||||
|
mAdvancedUnlockInfoView?.showByFading()
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
View.GONE
|
if (mAdvancedUnlockInfoView?.visibility == View.VISIBLE)
|
||||||
|
mAdvancedUnlockInfoView?.hideByFading()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -608,26 +613,6 @@ class AdvancedUnlockFragment: StylishFragment(), AdvancedUnlockManager.AdvancedU
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun performEducation(passwordActivityEducation: PasswordActivityEducation,
|
|
||||||
readOnlyEducationPerformed: Boolean,
|
|
||||||
onEducationViewClick: ((TapTargetView?) -> Unit)? = null,
|
|
||||||
onOuterViewClick: ((TapTargetView?) -> Unit)? = null) {
|
|
||||||
try {
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
|
||||||
&& !readOnlyEducationPerformed) {
|
|
||||||
val biometricCanAuthenticate = AdvancedUnlockManager.canAuthenticate(requireContext())
|
|
||||||
PreferencesUtil.isAdvancedUnlockEnable(requireContext())
|
|
||||||
&& (biometricCanAuthenticate == BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED
|
|
||||||
|| biometricCanAuthenticate == BiometricManager.BIOMETRIC_SUCCESS)
|
|
||||||
&& mAdvancedUnlockInfoView != null && mAdvancedUnlockInfoView?.visibility == View.VISIBLE
|
|
||||||
&& mAdvancedUnlockInfoView?.unlockIconImageView != null
|
|
||||||
&& passwordActivityEducation.checkAndPerformedBiometricEducation(mAdvancedUnlockInfoView!!.unlockIconImageView!!,
|
|
||||||
onEducationViewClick,
|
|
||||||
onOuterViewClick)
|
|
||||||
}
|
|
||||||
} catch (ignored: Exception) {}
|
|
||||||
}
|
|
||||||
|
|
||||||
enum class Mode {
|
enum class Mode {
|
||||||
BIOMETRIC_UNAVAILABLE,
|
BIOMETRIC_UNAVAILABLE,
|
||||||
BIOMETRIC_SECURITY_UPDATE_REQUIRED,
|
BIOMETRIC_SECURITY_UPDATE_REQUIRED,
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun getSecretKey(): SecretKey? {
|
@Synchronized private fun getSecretKey(): SecretKey? {
|
||||||
if (!isKeyManagerInitialized) {
|
if (!isKeyManagerInitialized) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@@ -141,8 +141,8 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
KeyGenParameterSpec.Builder(
|
KeyGenParameterSpec.Builder(
|
||||||
ADVANCED_UNLOCK_KEYSTORE_KEY,
|
ADVANCED_UNLOCK_KEYSTORE_KEY,
|
||||||
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT)
|
KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT)
|
||||||
.setBlockModes(KeyProperties.BLOCK_MODE_CBC)
|
.setBlockModes(ADVANCED_UNLOCK_BLOCKS_MODES)
|
||||||
.setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_PKCS7)
|
.setEncryptionPaddings(ADVANCED_UNLOCK_ENCRYPTION_PADDING)
|
||||||
.apply {
|
.apply {
|
||||||
// Require the user to authenticate with a fingerprint to authorize every use
|
// Require the user to authenticate with a fingerprint to authorize every use
|
||||||
// of the key, don't use it for device credential because it's the user authentication
|
// of the key, don't use it for device credential because it's the user authentication
|
||||||
@@ -173,11 +173,11 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun initEncryptData(actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit,) {
|
@Synchronized fun initEncryptData(actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit,) {
|
||||||
initEncryptData(actionIfCypherInit, true)
|
initEncryptData(actionIfCypherInit, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initEncryptData(actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit,
|
@Synchronized private fun initEncryptData(actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit,
|
||||||
firstLaunch: Boolean) {
|
firstLaunch: Boolean) {
|
||||||
if (!isKeyManagerInitialized) {
|
if (!isKeyManagerInitialized) {
|
||||||
return
|
return
|
||||||
@@ -213,7 +213,7 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun encryptData(value: ByteArray) {
|
@Synchronized fun encryptData(value: ByteArray) {
|
||||||
if (!isKeyManagerInitialized) {
|
if (!isKeyManagerInitialized) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -229,12 +229,12 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun initDecryptData(ivSpecValue: ByteArray,
|
@Synchronized fun initDecryptData(ivSpecValue: ByteArray,
|
||||||
actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit) {
|
actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit) {
|
||||||
initDecryptData(ivSpecValue, actionIfCypherInit, true)
|
initDecryptData(ivSpecValue, actionIfCypherInit, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initDecryptData(ivSpecValue: ByteArray,
|
@Synchronized private fun initDecryptData(ivSpecValue: ByteArray,
|
||||||
actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit,
|
actionIfCypherInit: (cryptoPrompt: AdvancedUnlockCryptoPrompt) -> Unit,
|
||||||
firstLaunch: Boolean = true) {
|
firstLaunch: Boolean = true) {
|
||||||
if (!isKeyManagerInitialized) {
|
if (!isKeyManagerInitialized) {
|
||||||
@@ -278,7 +278,7 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun decryptData(encryptedValue: ByteArray) {
|
@Synchronized fun decryptData(encryptedValue: ByteArray) {
|
||||||
if (!isKeyManagerInitialized) {
|
if (!isKeyManagerInitialized) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -296,7 +296,7 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteKeystoreKey() {
|
@Synchronized fun deleteKeystoreKey() {
|
||||||
try {
|
try {
|
||||||
keyStore?.load(null)
|
keyStore?.load(null)
|
||||||
keyStore?.deleteEntry(ADVANCED_UNLOCK_KEYSTORE_KEY)
|
keyStore?.deleteEntry(ADVANCED_UNLOCK_KEYSTORE_KEY)
|
||||||
@@ -306,7 +306,7 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun openAdvancedUnlockPrompt(cryptoPrompt: AdvancedUnlockCryptoPrompt,
|
@Synchronized fun openAdvancedUnlockPrompt(cryptoPrompt: AdvancedUnlockCryptoPrompt,
|
||||||
deviceCredentialResultLauncher: ActivityResultLauncher<Intent>
|
deviceCredentialResultLauncher: ActivityResultLauncher<Intent>
|
||||||
) {
|
) {
|
||||||
// Init advanced unlock prompt
|
// Init advanced unlock prompt
|
||||||
@@ -346,7 +346,7 @@ class AdvancedUnlockManager(private var retrieveContext: () -> FragmentActivity)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun closeBiometricPrompt() {
|
@Synchronized fun closeBiometricPrompt() {
|
||||||
biometricPrompt?.cancelAuthentication()
|
biometricPrompt?.cancelAuthentication()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ import com.kunzisoft.keepass.utils.UriUtil
|
|||||||
|
|
||||||
class NestedAppSettingsFragment : NestedSettingsFragment() {
|
class NestedAppSettingsFragment : NestedSettingsFragment() {
|
||||||
|
|
||||||
private var deleteKeysAlertDialog: AlertDialog? = null
|
private var warningAlertDialog: AlertDialog? = null
|
||||||
|
|
||||||
override fun onCreateScreenPreference(screen: Screen, savedInstanceState: Bundle?, rootKey: String?) {
|
override fun onCreateScreenPreference(screen: Screen, savedInstanceState: Bundle?, rootKey: String?) {
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
val deviceCredentialChecked = deviceCredentialUnlockEnablePreference?.isChecked ?: false
|
val deviceCredentialChecked = deviceCredentialUnlockEnablePreference?.isChecked ?: false
|
||||||
if (!biometricChecked) {
|
if (!biometricChecked) {
|
||||||
biometricUnlockEnablePreference.isChecked = true
|
biometricUnlockEnablePreference.isChecked = true
|
||||||
deleteKeysMessage(activity) {
|
warningMessage(activity, keystoreWarning = false, deleteKeys = true) {
|
||||||
biometricUnlockEnablePreference.isChecked = false
|
biometricUnlockEnablePreference.isChecked = false
|
||||||
autoOpenPromptPreference?.isEnabled = deviceCredentialChecked
|
autoOpenPromptPreference?.isEnabled = deviceCredentialChecked
|
||||||
tempAdvancedUnlockPreference?.isEnabled = deviceCredentialChecked
|
tempAdvancedUnlockPreference?.isEnabled = deviceCredentialChecked
|
||||||
@@ -270,13 +270,17 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
} else {
|
} else {
|
||||||
if (deviceCredentialChecked) {
|
if (deviceCredentialChecked) {
|
||||||
biometricUnlockEnablePreference.isChecked = false
|
biometricUnlockEnablePreference.isChecked = false
|
||||||
deleteKeysMessage(activity) {
|
warningMessage(activity, keystoreWarning = true, deleteKeys = true) {
|
||||||
biometricUnlockEnablePreference.isChecked = true
|
biometricUnlockEnablePreference.isChecked = true
|
||||||
deviceCredentialUnlockEnablePreference?.isChecked = false
|
deviceCredentialUnlockEnablePreference?.isChecked = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
autoOpenPromptPreference?.isEnabled = true
|
biometricUnlockEnablePreference.isChecked = false
|
||||||
tempAdvancedUnlockPreference?.isEnabled = true
|
warningMessage(activity, keystoreWarning = true, deleteKeys = false) {
|
||||||
|
biometricUnlockEnablePreference.isChecked = true
|
||||||
|
autoOpenPromptPreference?.isEnabled = true
|
||||||
|
tempAdvancedUnlockPreference?.isEnabled = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
@@ -305,7 +309,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
val biometricChecked = biometricUnlockEnablePreference?.isChecked ?: false
|
val biometricChecked = biometricUnlockEnablePreference?.isChecked ?: false
|
||||||
if (!deviceCredentialChecked) {
|
if (!deviceCredentialChecked) {
|
||||||
deviceCredentialUnlockEnablePreference.isChecked = true
|
deviceCredentialUnlockEnablePreference.isChecked = true
|
||||||
deleteKeysMessage(activity) {
|
warningMessage(activity, keystoreWarning = false, deleteKeys = true) {
|
||||||
deviceCredentialUnlockEnablePreference.isChecked = false
|
deviceCredentialUnlockEnablePreference.isChecked = false
|
||||||
autoOpenPromptPreference?.isEnabled = biometricChecked
|
autoOpenPromptPreference?.isEnabled = biometricChecked
|
||||||
tempAdvancedUnlockPreference?.isEnabled = biometricChecked
|
tempAdvancedUnlockPreference?.isEnabled = biometricChecked
|
||||||
@@ -313,13 +317,17 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
} else {
|
} else {
|
||||||
if (biometricChecked) {
|
if (biometricChecked) {
|
||||||
deviceCredentialUnlockEnablePreference.isChecked = false
|
deviceCredentialUnlockEnablePreference.isChecked = false
|
||||||
deleteKeysMessage(activity) {
|
warningMessage(activity, keystoreWarning = true, deleteKeys = true) {
|
||||||
deviceCredentialUnlockEnablePreference.isChecked = true
|
deviceCredentialUnlockEnablePreference.isChecked = true
|
||||||
biometricUnlockEnablePreference?.isChecked = false
|
biometricUnlockEnablePreference?.isChecked = false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
autoOpenPromptPreference?.isEnabled = true
|
deviceCredentialUnlockEnablePreference.isChecked = false
|
||||||
tempAdvancedUnlockPreference?.isEnabled = true
|
warningMessage(activity, keystoreWarning = true, deleteKeys = false) {
|
||||||
|
deviceCredentialUnlockEnablePreference.isChecked = true
|
||||||
|
autoOpenPromptPreference?.isEnabled = true
|
||||||
|
tempAdvancedUnlockPreference?.isEnabled = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
@@ -334,7 +342,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
|
|
||||||
tempAdvancedUnlockPreference?.setOnPreferenceClickListener {
|
tempAdvancedUnlockPreference?.setOnPreferenceClickListener {
|
||||||
tempAdvancedUnlockPreference.isChecked = !tempAdvancedUnlockPreference.isChecked
|
tempAdvancedUnlockPreference.isChecked = !tempAdvancedUnlockPreference.isChecked
|
||||||
deleteKeysMessage(activity) {
|
warningMessage(activity, keystoreWarning = false, deleteKeys = true) {
|
||||||
tempAdvancedUnlockPreference.isChecked = !tempAdvancedUnlockPreference.isChecked
|
tempAdvancedUnlockPreference.isChecked = !tempAdvancedUnlockPreference.isChecked
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
@@ -343,7 +351,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
val deleteKeysFingerprints: Preference? = findPreference(getString(R.string.biometric_delete_all_key_key))
|
val deleteKeysFingerprints: Preference? = findPreference(getString(R.string.biometric_delete_all_key_key))
|
||||||
if (biometricUnlockSupported || deviceCredentialUnlockSupported) {
|
if (biometricUnlockSupported || deviceCredentialUnlockSupported) {
|
||||||
deleteKeysFingerprints?.setOnPreferenceClickListener {
|
deleteKeysFingerprints?.setOnPreferenceClickListener {
|
||||||
deleteKeysMessage(activity)
|
warningMessage(activity, keystoreWarning = false, deleteKeys = true)
|
||||||
false
|
false
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -357,22 +365,36 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun deleteKeysMessage(activity: FragmentActivity, validate: (()->Unit)? = null) {
|
private fun warningMessage(activity: FragmentActivity,
|
||||||
deleteKeysAlertDialog = AlertDialog.Builder(activity)
|
keystoreWarning: Boolean,
|
||||||
.setMessage(resources.getString(R.string.advanced_unlock_delete_all_key_warning))
|
deleteKeys: Boolean,
|
||||||
.setIcon(android.R.drawable.ic_dialog_alert)
|
validate: (()->Unit)? = null) {
|
||||||
.setPositiveButton(resources.getString(android.R.string.ok)
|
var message = ""
|
||||||
) { _, _ ->
|
if (keystoreWarning) {
|
||||||
validate?.invoke()
|
message += resources.getString(R.string.advanced_unlock_prompt_store_credential_message)
|
||||||
deleteKeysAlertDialog?.setOnDismissListener(null)
|
message += "\n\n" + resources.getString(R.string.advanced_unlock_keystore_warning)
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
}
|
||||||
AdvancedUnlockManager.deleteAllEntryKeysInKeystoreForBiometric(activity)
|
if (keystoreWarning && deleteKeys) {
|
||||||
}
|
message += "\n\n"
|
||||||
|
}
|
||||||
|
if (deleteKeys) {
|
||||||
|
message += resources.getString(R.string.advanced_unlock_delete_all_key_warning)
|
||||||
|
}
|
||||||
|
warningAlertDialog = AlertDialog.Builder(activity)
|
||||||
|
.setMessage(message)
|
||||||
|
.setIcon(android.R.drawable.ic_dialog_alert)
|
||||||
|
.setPositiveButton(resources.getString(android.R.string.ok)
|
||||||
|
) { _, _ ->
|
||||||
|
validate?.invoke()
|
||||||
|
warningAlertDialog?.setOnDismissListener(null)
|
||||||
|
if (deleteKeys && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
AdvancedUnlockManager.deleteAllEntryKeysInKeystoreForBiometric(activity)
|
||||||
}
|
}
|
||||||
.setNegativeButton(resources.getString(android.R.string.cancel)
|
}
|
||||||
) { _, _ ->}
|
.setNegativeButton(resources.getString(android.R.string.cancel)
|
||||||
.create()
|
) { _, _ ->}
|
||||||
deleteKeysAlertDialog?.show()
|
.create()
|
||||||
|
warningAlertDialog?.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun onCreateAppearancePreferences(rootKey: String?) {
|
private fun onCreateAppearancePreferences(rootKey: String?) {
|
||||||
@@ -509,7 +531,7 @@ class NestedAppSettingsFragment : NestedSettingsFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
deleteKeysAlertDialog?.dismiss()
|
warningAlertDialog?.dismiss()
|
||||||
super.onPause()
|
super.onPause()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -225,10 +225,14 @@ open class SettingsActivity
|
|||||||
commit()
|
commit()
|
||||||
}
|
}
|
||||||
|
|
||||||
toolbar?.title = NestedSettingsFragment.retrieveTitle(resources, key)
|
setTitle(key)
|
||||||
hideOrShowLockButton(key)
|
hideOrShowLockButton(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected fun setTitle(key: NestedSettingsFragment.Screen) {
|
||||||
|
toolbar?.title = NestedSettingsFragment.retrieveTitle(resources, key)
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* To keep the current screen when activity is reloaded
|
* To keep the current screen when activity is reloaded
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ class SettingsAdvancedUnlockActivity : SettingsActivity() {
|
|||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
mTimeoutEnable = false
|
mTimeoutEnable = false
|
||||||
|
setTitle(NestedSettingsFragment.Screen.ADVANCED_UNLOCK)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun retrieveMainFragment(): Fragment {
|
override fun retrieveMainFragment(): Fragment {
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ class AdvancedUnlockInfoView @JvmOverloads constructor(context: Context,
|
|||||||
private var unlockAnimatedVector: FingerPrintAnimatedVector? = null
|
private var unlockAnimatedVector: FingerPrintAnimatedVector? = null
|
||||||
private var unlockTitleTextView: TextView? = null
|
private var unlockTitleTextView: TextView? = null
|
||||||
private var unlockMessageTextView: TextView? = null
|
private var unlockMessageTextView: TextView? = null
|
||||||
var unlockIconImageView: ImageView? = null
|
private var unlockIconImageView: ImageView? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ class EntryViewModel: ViewModel() {
|
|||||||
val onAttachmentAction : LiveData<EntryAttachmentState?> get() = _onAttachmentAction
|
val onAttachmentAction : LiveData<EntryAttachmentState?> get() = _onAttachmentAction
|
||||||
private val _onAttachmentAction = MutableLiveData<EntryAttachmentState?>()
|
private val _onAttachmentAction = MutableLiveData<EntryAttachmentState?>()
|
||||||
|
|
||||||
|
val sectionSelected : LiveData<EntrySection> get() = _sectionSelected
|
||||||
|
private val _sectionSelected = MutableLiveData<EntrySection>()
|
||||||
|
|
||||||
val historySelected : LiveData<EntryHistory> get() = _historySelected
|
val historySelected : LiveData<EntryHistory> get() = _historySelected
|
||||||
private val _historySelected = SingleLiveEvent<EntryHistory>()
|
private val _historySelected = SingleLiveEvent<EntryHistory>()
|
||||||
|
|
||||||
@@ -124,6 +127,10 @@ class EntryViewModel: ViewModel() {
|
|||||||
_historySelected.value = EntryHistory(NodeIdUUID(item.id), null, item, position)
|
_historySelected.value = EntryHistory(NodeIdUUID(item.id), null, item, position)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun selectSection(section: EntrySection) {
|
||||||
|
_sectionSelected.value = section
|
||||||
|
}
|
||||||
|
|
||||||
data class EntryInfoHistory(var mainEntryId: NodeId<UUID>,
|
data class EntryInfoHistory(var mainEntryId: NodeId<UUID>,
|
||||||
var historyPosition: Int,
|
var historyPosition: Int,
|
||||||
val template: Template,
|
val template: Template,
|
||||||
@@ -135,6 +142,16 @@ class EntryViewModel: ViewModel() {
|
|||||||
var entryInfo: EntryInfo,
|
var entryInfo: EntryInfo,
|
||||||
var historyPosition: Int = -1)
|
var historyPosition: Int = -1)
|
||||||
|
|
||||||
|
enum class EntrySection(var position: Int) {
|
||||||
|
MAIN(0), ADVANCED(1);
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
fun getEntrySectionByPosition(position: Int): EntrySection {
|
||||||
|
return if (position == 1) ADVANCED else MAIN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private val TAG = EntryViewModel::class.java.name
|
private val TAG = EntryViewModel::class.java.name
|
||||||
}
|
}
|
||||||
|
|||||||
12
app/src/main/res/drawable-v21/background_image.xml
Normal file
12
app/src/main/res/drawable-v21/background_image.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:color="@color/white"
|
||||||
|
tools:targetApi="lollipop">
|
||||||
|
<item>
|
||||||
|
<shape
|
||||||
|
android:shape="oval">
|
||||||
|
<solid android:color="?attr/colorPrimary"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</ripple>
|
||||||
@@ -1,12 +1,15 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
<item android:state_pressed="true">
|
||||||
android:color="@color/white"
|
<shape
|
||||||
tools:targetApi="lollipop">
|
android:shape="oval">
|
||||||
<item>
|
<solid android:color="@color/green_lighter"/>
|
||||||
<shape
|
</shape>
|
||||||
android:shape="oval">
|
</item>
|
||||||
<solid android:color="?attr/colorAccent"/>
|
<item>
|
||||||
</shape>
|
<shape
|
||||||
</item>
|
android:shape="oval">
|
||||||
</ripple>
|
<solid android:color="@color/green_light"/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
<vector android:height="24dp" android:tint="#FFFFFF"
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:viewportHeight="24.0" android:viewportWidth="24.0"
|
android:height="24dp"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp"
|
||||||
<path android:fillColor="#FF000000" android:pathData="M4,8h4L8,4L4,4v4zM10,20h4v-4h-4v4zM4,20h4v-4L4,16v4zM4,14h4v-4L4,10v4zM10,14h4v-4h-4v4zM16,4v4h4L20,4h-4zM10,8h4L14,4h-4v4zM16,14h4v-4h-4v4zM16,20h4v-4h-4v4z"/>
|
android:viewportHeight="24.0"
|
||||||
|
android:viewportWidth="24.0">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="M4,8h4L8,4L4,4v4zM10,20h4v-4h-4v4zM4,20h4v-4L4,16v4zM4,14h4v-4L4,10v4zM10,14h4v-4h-4v4zM16,4v4h4L20,4h-4zM10,8h4L14,4h-4v4zM16,14h4v-4h-4v4zM16,20h4v-4h-4v4z"/>
|
||||||
</vector>
|
</vector>
|
||||||
|
|||||||
12
app/src/main/res/drawable/ic_time_white_24dp.xml
Normal file
12
app/src/main/res/drawable/ic_time_white_24dp.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:height="24dp"
|
||||||
|
android:width="24dp"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM12,20c-4.42,0 -8,-3.58 -8,-8s3.58,-8 8,-8 8,3.58 8,8 -3.58,8 -8,8z"/>
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="M12.5,7H11v6l5.25,3.15 0.75,-1.23 -4.5,-2.67z"/>
|
||||||
|
</vector>
|
||||||
9
app/src/main/res/drawable/ic_view_list_white_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_view_list_white_24dp.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:height="24dp"
|
||||||
|
android:width="24dp"
|
||||||
|
android:viewportHeight="24"
|
||||||
|
android:viewportWidth="24">
|
||||||
|
<path
|
||||||
|
android:fillColor="#FFFFFF"
|
||||||
|
android:pathData="M3,14h4v-4H3V14zM3,19h4v-4H3V19zM3,9h4V5H3V9zM8,14h13v-4H8V14zM8,19h13v-4H8V19zM8,5v4h13V5H8z"/>
|
||||||
|
</vector>
|
||||||
@@ -136,6 +136,29 @@
|
|||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabLayout
|
||||||
|
android:id="@+id/entry_content_tab"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="bottom|center_horizontal"
|
||||||
|
android:background="?attr/cardBackgroundTransparentColor"
|
||||||
|
app:tabIconTint="?android:attr/textColor"
|
||||||
|
app:tabMode="fixed">
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabItem
|
||||||
|
android:id="@+id/entry_content_tab_main"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:icon="@drawable/ic_view_list_white_24dp" />
|
||||||
|
|
||||||
|
<com.google.android.material.tabs.TabItem
|
||||||
|
android:id="@+id/entry_content_tab_advanced"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:icon="@drawable/ic_time_white_24dp" />
|
||||||
|
|
||||||
|
</com.google.android.material.tabs.TabLayout>
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|||||||
@@ -60,13 +60,35 @@
|
|||||||
android:minHeight="144dp"
|
android:minHeight="144dp"
|
||||||
android:layout_marginTop="?attr/actionBarSize"
|
android:layout_marginTop="?attr/actionBarSize"
|
||||||
android:background="?attr/colorPrimary">
|
android:background="?attr/colorPrimary">
|
||||||
<ImageView
|
<LinearLayout
|
||||||
android:layout_width="96dp"
|
android:orientation="vertical"
|
||||||
android:layout_height="96dp"
|
android:layout_width="match_parent"
|
||||||
android:layout_gravity="center"
|
android:layout_height="wrap_content"
|
||||||
android:padding="0dp"
|
android:layout_gravity="center">
|
||||||
android:contentDescription="@string/about"
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:src="@drawable/ic_launcher_foreground"/>
|
android:id="@+id/activity_password_advanced_unlock_button"
|
||||||
|
android:layout_width="48dp"
|
||||||
|
android:layout_height="48dp"
|
||||||
|
android:layout_gravity="center"
|
||||||
|
android:layout_marginTop="12dp"
|
||||||
|
android:contentDescription="@string/about"
|
||||||
|
android:elevation="8dp"
|
||||||
|
android:src="@drawable/ic_app_white_24dp"
|
||||||
|
android:background="@drawable/background_image"
|
||||||
|
android:backgroundTint="@color/green_light"/>
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/activity_password_advanced_unlock_title"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="24dp"
|
||||||
|
android:layout_marginEnd="24dp"
|
||||||
|
android:layout_marginTop="8dp"
|
||||||
|
android:layout_marginBottom="8dp"
|
||||||
|
android:orientation="vertical"
|
||||||
|
android:text="@string/education_unlock_title"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.Secondary.TextOnPrimary"
|
||||||
|
android:gravity="center" />
|
||||||
|
</LinearLayout>
|
||||||
<androidx.fragment.app.FragmentContainerView
|
<androidx.fragment.app.FragmentContainerView
|
||||||
android:id="@+id/fragment_advanced_unlock_container_view"
|
android:id="@+id/fragment_advanced_unlock_container_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|||||||
@@ -17,153 +17,168 @@
|
|||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
||||||
-->
|
-->
|
||||||
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:paddingTop="@dimen/card_view_margin_vertical"
|
android:paddingTop="@dimen/card_view_margin_vertical"
|
||||||
android:paddingBottom="@dimen/card_view_margin_vertical">
|
android:paddingBottom="48dp">
|
||||||
|
|
||||||
<com.kunzisoft.keepass.view.TemplateView
|
<LinearLayout
|
||||||
android:id="@+id/entry_template"
|
android:id="@+id/entry_section_main"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content" />
|
android:layout_height="match_parent"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<com.kunzisoft.keepass.view.TemplateView
|
||||||
android:id="@+id/entry_attachments_container"
|
android:id="@+id/entry_template"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="?attr/cardViewStyle">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_margin="@dimen/card_view_padding"
|
android:layout_height="wrap_content" />
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<!-- Binary files -->
|
<androidx.cardview.widget.CardView
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
android:id="@+id/entry_attachments_container"
|
||||||
android:id="@+id/entry_attachments_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/entry_attachments"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
|
||||||
android:id="@+id/entry_attachments_list"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="?attr/cardViewStyle">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_margin="@dimen/card_view_padding"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<!-- Created -->
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_created_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/entry_created"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_created"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
|
||||||
|
|
||||||
<!-- Modified -->
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_modified_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/entry_modified"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_modified"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
|
||||||
|
|
||||||
<!-- Accessed -->
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:visibility="gone"
|
|
||||||
android:id="@+id/entry_accessed_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/entry_accessed"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
<androidx.fragment.app.FragmentContainerView
|
|
||||||
android:id="@+id/entry_history"
|
|
||||||
android:name="com.kunzisoft.keepass.activities.fragments.EntryHistoryFragment"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content" />
|
|
||||||
|
|
||||||
<!-- TODO Custom data
|
|
||||||
<androidx.cardview.widget.CardView
|
|
||||||
android:id="@+id/entry_custom_data_container"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="?attr/cardViewStyle">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_width="match_parent"
|
style="?attr/cardViewStyle">
|
||||||
android:layout_margin="@dimen/card_view_padding"
|
<LinearLayout
|
||||||
android:orientation="vertical">
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_custom_data_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="@string/custom_data"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_custom_data"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_margin="@dimen/card_view_padding"
|
||||||
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
android:orientation="vertical">
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
-->
|
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<!-- Binary files -->
|
||||||
android:id="@+id/entry_UUID_container"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
style="?attr/cardViewStyle">
|
|
||||||
<LinearLayout
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_margin="@dimen/card_view_padding"
|
|
||||||
android:orientation="vertical">
|
|
||||||
|
|
||||||
<!-- UUID -->
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/entry_UUID_label"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:text="@string/entry_UUID"
|
|
||||||
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
|
||||||
<HorizontalScrollView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/entry_UUID_reference"
|
android:id="@+id/entry_attachments_label"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textIsSelectable="true"
|
android:text="@string/entry_attachments"
|
||||||
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
||||||
</HorizontalScrollView>
|
|
||||||
</LinearLayout>
|
|
||||||
</androidx.cardview.widget.CardView>
|
|
||||||
|
|
||||||
</LinearLayout>
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/entry_attachments_list"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:id="@+id/entry_section_advanced"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:id="@+id/entry_UUID_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="?attr/cardViewStyle">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_margin="@dimen/card_view_padding"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<!-- UUID -->
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_UUID_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/entry_UUID"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
||||||
|
<HorizontalScrollView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_UUID_reference"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textIsSelectable="true"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
||||||
|
</HorizontalScrollView>
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
|
<!-- TODO Custom data
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:id="@+id/entry_custom_data_container"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="?attr/cardViewStyle">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_margin="@dimen/card_view_padding"
|
||||||
|
android:orientation="vertical">
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_custom_data_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/custom_data"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_custom_data"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
-->
|
||||||
|
|
||||||
|
<androidx.cardview.widget.CardView
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="?attr/cardViewStyle">
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_margin="@dimen/card_view_padding"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<!-- Created -->
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_created_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/entry_created"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_created"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
||||||
|
|
||||||
|
<!-- Modified -->
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_modified_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/entry_modified"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/entry_modified"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.TextNode" />
|
||||||
|
|
||||||
|
<!-- Accessed -->
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:visibility="gone"
|
||||||
|
android:id="@+id/entry_accessed_label"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="@string/entry_accessed"
|
||||||
|
style="@style/KeepassDXStyle.TextAppearance.LabelTextStyle" />
|
||||||
|
</LinearLayout>
|
||||||
|
</androidx.cardview.widget.CardView>
|
||||||
|
|
||||||
|
<androidx.fragment.app.FragmentContainerView
|
||||||
|
android:id="@+id/entry_history"
|
||||||
|
android:name="com.kunzisoft.keepass.activities.fragments.EntryHistoryFragment"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
|
</FrameLayout>
|
||||||
|
|||||||
@@ -61,7 +61,9 @@
|
|||||||
android:layout_toLeftOf="@+id/item_attachment_size_container"
|
android:layout_toLeftOf="@+id/item_attachment_size_container"
|
||||||
android:layout_toEndOf="@+id/item_attachment_broken"
|
android:layout_toEndOf="@+id/item_attachment_broken"
|
||||||
android:layout_toRightOf="@+id/item_attachment_broken"
|
android:layout_toRightOf="@+id/item_attachment_broken"
|
||||||
|
android:ellipsize="end"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
|
android:maxLines="2"
|
||||||
tools:text="BinaryFile.attach" />
|
tools:text="BinaryFile.attach" />
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:fabSize="mini"
|
app:fabSize="mini"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_margin="8dp"
|
android:layout_margin="9dp"
|
||||||
android:contentDescription="@string/lock"
|
android:contentDescription="@string/lock"
|
||||||
android:visibility="gone"
|
android:visibility="gone"
|
||||||
android:src="@drawable/ic_lock_white_padding_24dp"
|
android:src="@drawable/ic_lock_white_padding_24dp"
|
||||||
|
|||||||
@@ -20,12 +20,12 @@
|
|||||||
<string name="homepage">الصفحة الرئيسة</string>
|
<string name="homepage">الصفحة الرئيسة</string>
|
||||||
<string name="accept">قبول</string>
|
<string name="accept">قبول</string>
|
||||||
<string name="add_group">إضافة مجموعة</string>
|
<string name="add_group">إضافة مجموعة</string>
|
||||||
<string name="encryption">التشفير</string>
|
<string name="encryption">التعميّة</string>
|
||||||
<string name="encryption_algorithm">خوارزمية التشفير</string>
|
<string name="encryption_algorithm">خوارزمية التعميّة</string>
|
||||||
<string name="application">التطبيق</string>
|
<string name="application">التطبيق</string>
|
||||||
<string name="brackets">الأقواس</string>
|
<string name="brackets">الأقواس</string>
|
||||||
<string name="extended_ASCII">تمديد ASCII</string>
|
<string name="extended_ASCII">تمديد ASCII</string>
|
||||||
<string name="allow">السماح</string>
|
<string name="allow">سماح</string>
|
||||||
<string name="clipboard_cleared">مُسِحت الحافظة</string>
|
<string name="clipboard_cleared">مُسِحت الحافظة</string>
|
||||||
<string name="clipboard_error_title">خطأ في الحافظة</string>
|
<string name="clipboard_error_title">خطأ في الحافظة</string>
|
||||||
<string name="clipboard_error_clear">تعذَّر مسح الحافظة</string>
|
<string name="clipboard_error_clear">تعذَّر مسح الحافظة</string>
|
||||||
@@ -104,14 +104,14 @@
|
|||||||
<string name="education_entry_new_field_title">إضافة حقول مخصصة</string>
|
<string name="education_entry_new_field_title">إضافة حقول مخصصة</string>
|
||||||
<string name="education_field_copy_title">نسخ حقل</string>
|
<string name="education_field_copy_title">نسخ حقل</string>
|
||||||
<string name="education_lock_title">تأمين قاعدة البيانات</string>
|
<string name="education_lock_title">تأمين قاعدة البيانات</string>
|
||||||
<string name="feedback">ردود الفعل</string>
|
<string name="feedback">أرسل انطباعاتك</string>
|
||||||
<string name="about_description">التنفيذ لمُدير كلمات المرور «كي باس» على نظام أندرويد</string>
|
<string name="about_description">التنفيذ لمُدير كلمات المرور «كي باس» على نظام أندرويد</string>
|
||||||
<string name="add_entry">إضافة إدخال</string>
|
<string name="add_entry">أضف مدخل</string>
|
||||||
<string name="edit_entry">تحرير الإدخال</string>
|
<string name="edit_entry">تحرير مدخل</string>
|
||||||
<string name="key_derivation_function">وظيفة اشتقاق المفتاح</string>
|
<string name="key_derivation_function">وظيفة اشتقاق المفتاح</string>
|
||||||
<string name="app_timeout">المهلة</string>
|
<string name="app_timeout">المهلة</string>
|
||||||
<string name="app_timeout_summary">مدة الخمول قبل قفل قاعدة البيانات</string>
|
<string name="app_timeout_summary">مدة الخمول قبل قفل قاعدة البيانات</string>
|
||||||
<string name="file_manager_install_description">المحرر الذي يمتلك صلاحتي ACTION_CREATE_DOCUMENT و ACTION_OPEN_DOCUMENT ضروري لانشاء, وفتح وحفض قواعد البيانات.</string>
|
<string name="file_manager_install_description">مدير الملفات الذي يمكنه القيام بالإجراءين ACTION_CREATE_DOCUMENT و ACTION_OPEN_DOCUMENT ضروري لانشاء, وفتح وحفض قواعد البيانات.</string>
|
||||||
<string name="clipboard_error">بعض الأجهزة لا تسمح للتطبيقات باستعمال الحافظة.</string>
|
<string name="clipboard_error">بعض الأجهزة لا تسمح للتطبيقات باستعمال الحافظة.</string>
|
||||||
<string name="clipboard_timeout">مهلة الحافظة</string>
|
<string name="clipboard_timeout">مهلة الحافظة</string>
|
||||||
<string name="clipboard_timeout_summary">مدة التخزين في الحافظة(إذا كان جهازك يدعمها)</string>
|
<string name="clipboard_timeout_summary">مدة التخزين في الحافظة(إذا كان جهازك يدعمها)</string>
|
||||||
@@ -141,7 +141,7 @@
|
|||||||
<string name="invalid_db_sig">تعذر تمييز نسق قاعدة البيانات.</string>
|
<string name="invalid_db_sig">تعذر تمييز نسق قاعدة البيانات.</string>
|
||||||
<string name="keyfile_is_empty">ملف المفتاح فارغ.</string>
|
<string name="keyfile_is_empty">ملف المفتاح فارغ.</string>
|
||||||
<string name="list_entries_show_username_title">أظهر أسماء المستخدمين</string>
|
<string name="list_entries_show_username_title">أظهر أسماء المستخدمين</string>
|
||||||
<string name="list_entries_show_username_summary">أظهر أسماء المستخدمين في قوائم المدخلات</string>
|
<string name="list_entries_show_username_summary">اعرض اسماء المستخدمين في قوائم المدخلات</string>
|
||||||
<string name="hint_generated_password">كلمة السر الموَلدة</string>
|
<string name="hint_generated_password">كلمة السر الموَلدة</string>
|
||||||
<string name="hint_keyfile">الملف المفتاحي</string>
|
<string name="hint_keyfile">الملف المفتاحي</string>
|
||||||
<string name="hide_password_title">اخفاء كلمات السر</string>
|
<string name="hide_password_title">اخفاء كلمات السر</string>
|
||||||
@@ -215,7 +215,7 @@
|
|||||||
<string name="keyboard_key_sound_title">صوت عند اللمس</string>
|
<string name="keyboard_key_sound_title">صوت عند اللمس</string>
|
||||||
<string name="allow_no_password_title">"إسمح بالفتح دون كلمة سر "</string>
|
<string name="allow_no_password_title">"إسمح بالفتح دون كلمة سر "</string>
|
||||||
<string name="enable_read_only_title">محمي من التعديل</string>
|
<string name="enable_read_only_title">محمي من التعديل</string>
|
||||||
<string name="enable_read_only_summary">افتح قاعدة البيانات للقراءة فقط افتراضيا</string>
|
<string name="enable_read_only_summary">افتح قاعدة البيانات في وضع القراءة افتراضيا</string>
|
||||||
<string name="enable_education_screens_title">شاشات تعليمية</string>
|
<string name="enable_education_screens_title">شاشات تعليمية</string>
|
||||||
<string name="reset_education_screens_summary">أعد عرض كل المعلومات التعليمية</string>
|
<string name="reset_education_screens_summary">أعد عرض كل المعلومات التعليمية</string>
|
||||||
<string name="reset_education_screens_text">إعادة تعيين الشاشات التلميحات</string>
|
<string name="reset_education_screens_text">إعادة تعيين الشاشات التلميحات</string>
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
<string name="reset_education_screens_title">إعادة تعيين الشاشات التعليمية</string>
|
<string name="reset_education_screens_title">إعادة تعيين الشاشات التعليمية</string>
|
||||||
<string name="education_search_title">البحث من خلال الإدخالات</string>
|
<string name="education_search_title">البحث من خلال الإدخالات</string>
|
||||||
<string name="content_description_open_file">افتح الملف</string>
|
<string name="content_description_open_file">افتح الملف</string>
|
||||||
<string name="content_description_add_entry">إضافة إدخال</string>
|
<string name="content_description_add_entry">إضافة مدخلة</string>
|
||||||
<string name="content_description_add_group">إضافة مجموعة</string>
|
<string name="content_description_add_group">إضافة مجموعة</string>
|
||||||
<string name="content_description_file_information">معلومات الملف</string>
|
<string name="content_description_file_information">معلومات الملف</string>
|
||||||
<string name="entry_password_generator">مولد كلمة السر</string>
|
<string name="entry_password_generator">مولد كلمة السر</string>
|
||||||
@@ -254,8 +254,8 @@
|
|||||||
<string name="content_description_password_length">طول كلمة السر</string>
|
<string name="content_description_password_length">طول كلمة السر</string>
|
||||||
<string name="entry_add_field">أضف حقل</string>
|
<string name="entry_add_field">أضف حقل</string>
|
||||||
<string name="content_description_remove_field">أزل حقل</string>
|
<string name="content_description_remove_field">أزل حقل</string>
|
||||||
<string name="error_move_entry_here">لا يمكن نقل إدخال هنا.</string>
|
<string name="error_move_entry_here">يتعذر نقل مدخل إلى هنا.</string>
|
||||||
<string name="error_copy_entry_here">لا يمكن نسخ إدخال هنا.</string>
|
<string name="error_copy_entry_here">يتعذر نسخ مدخال إلى هنا.</string>
|
||||||
<string name="list_groups_show_number_entries_title">عرض عدد المدخلات</string>
|
<string name="list_groups_show_number_entries_title">عرض عدد المدخلات</string>
|
||||||
<string name="list_groups_show_number_entries_summary">عرض عدد المدخلات في المجموعة</string>
|
<string name="list_groups_show_number_entries_summary">عرض عدد المدخلات في المجموعة</string>
|
||||||
<string name="content_description_update_from_list">تحديث</string>
|
<string name="content_description_update_from_list">تحديث</string>
|
||||||
@@ -302,7 +302,7 @@
|
|||||||
<string name="menu_delete_entry_history">احذف السجل</string>
|
<string name="menu_delete_entry_history">احذف السجل</string>
|
||||||
<string name="menu_restore_entry_history">استعادة السجل</string>
|
<string name="menu_restore_entry_history">استعادة السجل</string>
|
||||||
<string name="menu_empty_recycle_bin">أفرغ سلة المحذوفات</string>
|
<string name="menu_empty_recycle_bin">أفرغ سلة المحذوفات</string>
|
||||||
<string name="menu_save_database">اِحفظ قاعدة البيانات</string>
|
<string name="menu_save_database">اِحفظ البيانات</string>
|
||||||
<string name="menu_master_key_settings">إعدادات المفتاح الرئيسي</string>
|
<string name="menu_master_key_settings">إعدادات المفتاح الرئيسي</string>
|
||||||
<string name="menu_security_settings">إعدادات الأمن</string>
|
<string name="menu_security_settings">إعدادات الأمن</string>
|
||||||
<string name="creating_database">ينشئ قاعدة البيانات…</string>
|
<string name="creating_database">ينشئ قاعدة البيانات…</string>
|
||||||
@@ -458,7 +458,7 @@
|
|||||||
<string name="error_rebuild_list">يتعذر إعادة بناء القائمة بشكل صحيح.</string>
|
<string name="error_rebuild_list">يتعذر إعادة بناء القائمة بشكل صحيح.</string>
|
||||||
<string name="menu_keystore_remove_key">احذف رمز فك القفل المتقدم</string>
|
<string name="menu_keystore_remove_key">احذف رمز فك القفل المتقدم</string>
|
||||||
<string name="menu_form_filling_settings">تعبئة الحقول</string>
|
<string name="menu_form_filling_settings">تعبئة الحقول</string>
|
||||||
<string name="menu_reload_database">أعد تحميل قاعدة البيانات</string>
|
<string name="menu_reload_database">أعد تحميل البيانات</string>
|
||||||
<string name="menu_external_icon">أيقونة خارجية</string>
|
<string name="menu_external_icon">أيقونة خارجية</string>
|
||||||
<string name="registration_mode">وضع التسجيل</string>
|
<string name="registration_mode">وضع التسجيل</string>
|
||||||
<string name="import_app_properties_title">استورد خصائص التطبيق</string>
|
<string name="import_app_properties_title">استورد خصائص التطبيق</string>
|
||||||
@@ -468,7 +468,7 @@
|
|||||||
<string name="error_import_app_properties">خطأ أثناء استيراد خصائص التطبيق</string>
|
<string name="error_import_app_properties">خطأ أثناء استيراد خصائص التطبيق</string>
|
||||||
<string name="error_export_app_properties">خطأ أثناء تصدير خصائص التطبيق</string>
|
<string name="error_export_app_properties">خطأ أثناء تصدير خصائص التطبيق</string>
|
||||||
<string name="warning_database_info_changed">غُيِّرت معلومات قاعدة البيانات من خارج هذا التطبيق.</string>
|
<string name="warning_database_info_changed">غُيِّرت معلومات قاعدة البيانات من خارج هذا التطبيق.</string>
|
||||||
<string name="warning_database_info_changed_options">اكتب فوق التعديلات الخارجية عن طريق حفظ قاعدة البيانات أو أعد تحميلها لجلب آخر التغييرات.</string>
|
<string name="warning_database_info_changed_options">ادمج البيانات أو استبدل التعديلات الخارجية بحفظ قاعدة البيانات أو أعد تحميلها لجلب آخر التغييرات.</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="credential_before_click_advanced_unlock_button">اكتب كلمة السر، وأنقر هذا الزر.</string>
|
<string name="credential_before_click_advanced_unlock_button">اكتب كلمة السر، وأنقر هذا الزر.</string>
|
||||||
@@ -486,4 +486,22 @@
|
|||||||
<string name="autofill_save_search_info_title">احفظ معلومات البحث</string>
|
<string name="autofill_save_search_info_title">احفظ معلومات البحث</string>
|
||||||
<string name="autofill_ask_to_save_data_title">اسأل لحفظ البيانات</string>
|
<string name="autofill_ask_to_save_data_title">اسأل لحفظ البيانات</string>
|
||||||
<string name="content_description_database_color">لون قاعدة البيانات</string>
|
<string name="content_description_database_color">لون قاعدة البيانات</string>
|
||||||
|
<string name="menu_merge_from">ادمج من…</string>
|
||||||
|
<string name="show_uuid_summary">يعرض \"المعرف العام\" المرتبط بمُدخل او بمجموعة</string>
|
||||||
|
<string name="expired">انتهت المهلة</string>
|
||||||
|
<string name="tags">الوسوم</string>
|
||||||
|
<string name="menu_merge_database">ادمج البيانات</string>
|
||||||
|
<string name="current_group">المجموعة الحالية</string>
|
||||||
|
<string name="search_filters">مرشحات البحث</string>
|
||||||
|
<string name="warning_file_too_big">يفترض بقاعدة البيانات أن تحوي ملفات صغيرة الحجم ( كمفاتيح PGP).
|
||||||
|
\n
|
||||||
|
\nبرفع هذا الملف قد يزداد حجم قاعدة البيانات ويضعف أداءها.</string>
|
||||||
|
<string name="error_move_group_here">يتعذر نقل المجموعة إلى هنا.</string>
|
||||||
|
<string name="menu_save_copy_to">احفظ نسخة إلى…</string>
|
||||||
|
<string name="searchable">يمكن البحث عنه</string>
|
||||||
|
<string name="custom_data">بيانات مخصصة</string>
|
||||||
|
<string name="case_sensitive">حساسة لحالة الأحرف</string>
|
||||||
|
<string name="regex">تعابير نمطية</string>
|
||||||
|
<string name="enable_keep_screen_on_title">أبق الشاشة شغّالة</string>
|
||||||
|
<string name="enable_education_screens_summary">أبرز العناصر لتعلم طريقة عمل التطبيق</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -29,17 +29,17 @@
|
|||||||
<string name="application">Aplikace</string>
|
<string name="application">Aplikace</string>
|
||||||
<string name="menu_app_settings">Nastavení aplikace</string>
|
<string name="menu_app_settings">Nastavení aplikace</string>
|
||||||
<string name="brackets">Závorky</string>
|
<string name="brackets">Závorky</string>
|
||||||
<string name="file_manager_install_description">K založení, otevření a uložení databázových souborů je potřebný správce souborů, který akceptuje akci intentu ACTION_CREATE_DOCUMENT a ACTION_OPEN_DOCUMENT.</string>
|
<string name="file_manager_install_description">K založení, otevření a uložení databázových souborů je potřebný správce souborů, který přijímá akci záměru ACTION_CREATE_DOCUMENT a ACTION_OPEN_DOCUMENT.</string>
|
||||||
<string name="clipboard_cleared">Schránka vyčištěna</string>
|
<string name="clipboard_cleared">Schránka vyčištěna</string>
|
||||||
<string name="clipboard_error_title">Chyba schránky</string>
|
<string name="clipboard_error_title">Chyba schránky</string>
|
||||||
<string name="clipboard_error">Některá zařízení nedovolují aplikacím používat schránku.</string>
|
<string name="clipboard_error">Některá zařízení nedovolují aplikacím používat schránku.</string>
|
||||||
<string name="clipboard_error_clear">Nelze vyprázdnit schránku</string>
|
<string name="clipboard_error_clear">Nedaří se vyprázdnit schránku</string>
|
||||||
<string name="clipboard_timeout">Časový limit schránky</string>
|
<string name="clipboard_timeout">Časový limit schránky</string>
|
||||||
<string name="clipboard_timeout_summary">Doba uchování ve schránce (je-li podporována zařízením)</string>
|
<string name="clipboard_timeout_summary">Doba uchování ve schránce (pokud je zařízením podporována)</string>
|
||||||
<string name="select_to_copy">Vyberte zkopírovat %1$s do schránky</string>
|
<string name="select_to_copy">Vyberte zkopírovat %1$s do schránky</string>
|
||||||
<string name="retrieving_db_key">Načítám klíč databáze…</string>
|
<string name="retrieving_db_key">Načítání klíč databáze…</string>
|
||||||
<string name="database">Databáze</string>
|
<string name="database">Databáze</string>
|
||||||
<string name="decrypting_db">Dešifrování obsahu databáze…</string>
|
<string name="decrypting_db">Rozšifrovávání obsahu databáze…</string>
|
||||||
<string name="default_checkbox">Použít jako výchozí databázi</string>
|
<string name="default_checkbox">Použít jako výchozí databázi</string>
|
||||||
<string name="digits">Číslice</string>
|
<string name="digits">Číslice</string>
|
||||||
<string name="select_database_file">Otevřít existující databázi</string>
|
<string name="select_database_file">Otevřít existující databázi</string>
|
||||||
@@ -61,15 +61,15 @@
|
|||||||
<string name="error_can_not_handle_uri">KeePassDX nemůže zpracovat toto URI.</string>
|
<string name="error_can_not_handle_uri">KeePassDX nemůže zpracovat toto URI.</string>
|
||||||
<string name="error_file_not_create">Soubor se nepodařilo vytvořit</string>
|
<string name="error_file_not_create">Soubor se nepodařilo vytvořit</string>
|
||||||
<string name="error_invalid_db">Databázi se nepodařilo načíst.</string>
|
<string name="error_invalid_db">Databázi se nepodařilo načíst.</string>
|
||||||
<string name="error_invalid_path">Ujistěte se, že cesta je správná.</string>
|
<string name="error_invalid_path">Ujistěte se, že je popis umístění správný.</string>
|
||||||
<string name="error_no_name">Zadejte jméno.</string>
|
<string name="error_no_name">Zadejte název.</string>
|
||||||
<string name="error_nokeyfile">Vyberte soubor s klíčem.</string>
|
<string name="error_nokeyfile">Vyberte soubor s klíčem.</string>
|
||||||
<string name="error_out_of_memory">Nedostatek paměti k načtení celé databáze.</string>
|
<string name="error_out_of_memory">Nedostatek paměti pro načtení celé databáze.</string>
|
||||||
<string name="error_pass_gen_type">Je třeba zvolit alespoň jeden způsob vytváření hesla.</string>
|
<string name="error_pass_gen_type">Je třeba zvolit alespoň jeden způsob vytváření hesla.</string>
|
||||||
<string name="error_pass_match">Hesla se neshodují.</string>
|
<string name="error_pass_match">Zadání hesla se neshodují.</string>
|
||||||
<string name="error_rounds_too_large">Příliš vysoký „Počet průchodů“. Nastavuji na 2147483648.</string>
|
<string name="error_rounds_too_large">Příliš vysoký „Počet průchodů“. Nastavuje se na 2147483648.</string>
|
||||||
<string name="error_string_key">Je třeba, aby každý řetězec měl název kolonky.</string>
|
<string name="error_string_key">Je třeba, aby každý řetězec měl název kolonky.</string>
|
||||||
<string name="error_wrong_length">Do pole „Délka“ zadejte celé kladné číslo.</string>
|
<string name="error_wrong_length">Do kolonky „Délka“ zadejte celé kladné číslo.</string>
|
||||||
<string name="field_name">Název kolonky</string>
|
<string name="field_name">Název kolonky</string>
|
||||||
<string name="field_value">Hodnota kolonky</string>
|
<string name="field_value">Hodnota kolonky</string>
|
||||||
<string name="file_browser">Správce souborů</string>
|
<string name="file_browser">Správce souborů</string>
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
<string name="error_autofill_enable_service">Službu automatického vyplňování se nepodařilo zapnout.</string>
|
<string name="error_autofill_enable_service">Službu automatického vyplňování se nepodařilo zapnout.</string>
|
||||||
<string name="file_not_found_content">Soubor nenalezen. Zkuste jej otevřít ze správce souborů.</string>
|
<string name="file_not_found_content">Soubor nenalezen. Zkuste jej otevřít ze správce souborů.</string>
|
||||||
<string name="list_entries_show_username_title">Zobrazit uživatelská jména</string>
|
<string name="list_entries_show_username_title">Zobrazit uživatelská jména</string>
|
||||||
<string name="list_entries_show_username_summary">V seznamech záznamů zobrazit uživatelská jména</string>
|
<string name="list_entries_show_username_summary">Zobrazí uživatelská jména v seznamech záznamů</string>
|
||||||
<string name="copy_field">Kopie %1$s</string>
|
<string name="copy_field">Kopie %1$s</string>
|
||||||
<string name="menu_form_filling_settings">Vyplňování formulářů</string>
|
<string name="menu_form_filling_settings">Vyplňování formulářů</string>
|
||||||
<string name="menu_copy">Zkopírovat</string>
|
<string name="menu_copy">Zkopírovat</string>
|
||||||
@@ -223,14 +223,14 @@
|
|||||||
<string name="magic_keyboard_title">Klávesnice Magikeyboard</string>
|
<string name="magic_keyboard_title">Klávesnice Magikeyboard</string>
|
||||||
<string name="magic_keyboard_explanation_summary">Aktivovat vlastní klávesnici, která snadno vyplní hesla a další položky identity</string>
|
<string name="magic_keyboard_explanation_summary">Aktivovat vlastní klávesnici, která snadno vyplní hesla a další položky identity</string>
|
||||||
<string name="allow_no_password_title">Umožnit bez hlavního klíče</string>
|
<string name="allow_no_password_title">Umožnit bez hlavního klíče</string>
|
||||||
<string name="allow_no_password_summary">Povolit klepnutí na \"Otevřít\", i když není vybráno žádné heslo</string>
|
<string name="allow_no_password_summary">Povolit klepnutí na „Otevřít“, i když není vybráno žádné heslo</string>
|
||||||
<string name="enable_read_only_title">Chráněno před zápisem</string>
|
<string name="enable_read_only_title">Chráněno před zápisem</string>
|
||||||
<string name="enable_read_only_summary">Ve výchozím stavu otevřít databázi pouze pro čtení</string>
|
<string name="enable_read_only_summary">Ve výchozím stavu otevřít databázi pouze pro čtení</string>
|
||||||
<string name="enable_education_screens_title">Vzdělávací nápovědy</string>
|
<string name="enable_education_screens_title">Vzdělávací nápovědy</string>
|
||||||
<string name="enable_education_screens_summary">Zvýraznit prvky k pochopení práce s aplikací</string>
|
<string name="enable_education_screens_summary">Zvýraznit prvky k pochopení práce s aplikací</string>
|
||||||
<string name="reset_education_screens_title">Nastavit vzdělávací nápovědy do výchozího stavu</string>
|
<string name="reset_education_screens_title">Nastavit vzdělávací nápovědy do výchozího stavu</string>
|
||||||
<string name="reset_education_screens_summary">Opět zobrazit všechny vzdělávací informace</string>
|
<string name="reset_education_screens_summary">Opět zobrazit všechny vzdělávací informace</string>
|
||||||
<string name="reset_education_screens_text">Nastavit vzdělávací nápovědy do výchozího stavu</string>
|
<string name="reset_education_screens_text">Znovu zobrazit výukové nápovědy</string>
|
||||||
<string name="education_create_database_title">Vytvořit databázový soubor</string>
|
<string name="education_create_database_title">Vytvořit databázový soubor</string>
|
||||||
<string name="education_create_database_summary">Vytvořte svůj první soubor pro správu hesel.</string>
|
<string name="education_create_database_summary">Vytvořte svůj první soubor pro správu hesel.</string>
|
||||||
<string name="education_select_database_title">Otevřít existující databázi</string>
|
<string name="education_select_database_title">Otevřít existující databázi</string>
|
||||||
@@ -244,15 +244,15 @@
|
|||||||
<string name="education_entry_edit_title">Upravit záznam</string>
|
<string name="education_entry_edit_title">Upravit záznam</string>
|
||||||
<string name="education_entry_edit_summary">Přidejte ke svému záznamu vlastní kolonky. Společná data mohou být sdílena mezi různými kolonkami záznamu odkazem.</string>
|
<string name="education_entry_edit_summary">Přidejte ke svému záznamu vlastní kolonky. Společná data mohou být sdílena mezi různými kolonkami záznamu odkazem.</string>
|
||||||
<string name="education_generate_password_title">Vytvořit silné heslo</string>
|
<string name="education_generate_password_title">Vytvořit silné heslo</string>
|
||||||
<string name="education_generate_password_summary">Generujte silné heslo pro svůj záznam, definujte je podle kritérií formuláře, a nezapomeňte na bezpečné heslo.</string>
|
<string name="education_generate_password_summary">Nechte si vytvořit odolné heslo pro svůj záznam, definujte je podle kritérií formuláře, a nezapomeňte na bezpečné heslo.</string>
|
||||||
<string name="education_entry_new_field_title">Přidat vlastní kolonky</string>
|
<string name="education_entry_new_field_title">Přidat vlastní kolonky</string>
|
||||||
<string name="education_entry_new_field_summary">Registrovat další kolonku, zadat hodnotu a volitelně ji ochránit.</string>
|
<string name="education_entry_new_field_summary">Registrovat další kolonku, zadat hodnotu a volitelně ji ochránit.</string>
|
||||||
<string name="education_unlock_title">Odemknout databázi</string>
|
<string name="education_unlock_title">Odemknout databázi</string>
|
||||||
<string name="education_read_only_title">Ochraňte svou databázi před zápisem</string>
|
<string name="education_read_only_title">Ochraňte svou databázi před zápisem</string>
|
||||||
<string name="education_read_only_summary">Změnit režim otevírání pro dané sezení.
|
<string name="education_read_only_summary">Změnit režim otevírání pro dané sezení.
|
||||||
\n
|
\n
|
||||||
\nV režimu \"pouze pro čtení\" zabráníte nechtěným změnám v databázi.
|
\nV režimu „pouze pro čtení“ zabráníte nechtěným změnám v databázi.
|
||||||
\nV režimu \"zápisu\" je možné přidávat, mazat nebo měnit všechny prvky podle libosti.</string>
|
\nV režimu „umožněné změny“ je možné přidávat, mazat nebo měnit všechny prvky podle libosti.</string>
|
||||||
<string name="education_field_copy_title">Zkopírovat kolonku</string>
|
<string name="education_field_copy_title">Zkopírovat kolonku</string>
|
||||||
<string name="education_field_copy_summary">Zkopírované kolonky lze vkládat podle libosti.
|
<string name="education_field_copy_summary">Zkopírované kolonky lze vkládat podle libosti.
|
||||||
\n
|
\n
|
||||||
@@ -262,20 +262,20 @@
|
|||||||
<string name="education_sort_title">Řazení položek</string>
|
<string name="education_sort_title">Řazení položek</string>
|
||||||
<string name="education_sort_summary">Vyberte řazení položek a skupin.</string>
|
<string name="education_sort_summary">Vyberte řazení položek a skupin.</string>
|
||||||
<string name="education_donation_title">Zapojit se</string>
|
<string name="education_donation_title">Zapojit se</string>
|
||||||
<string name="education_donation_summary">Zapojte se a pomozte zvýšit stabilitu, bezpečnost a doplnění dalších funkcí.</string>
|
<string name="education_donation_summary">Zapojte se a pomozte zvýšit stabilitu, zabezpečení a doplnění dalších funkcí.</string>
|
||||||
<string name="html_text_ad_free">Na rozdíl od mnoha aplikací pro správu hesel je tato <strong>bez reklam</strong>, je <strong>svobodný software pod copyleft licencí</strong> a nesbírá žádné osobní údaje na svých serverech bez ohledu na to, jakou verzi používáte.</string>
|
<string name="html_text_ad_free">Na rozdíl od mnoha aplikací pro správu hesel je tato <strong>bez reklam</strong>, je <strong>svobodný software pod copyleft licencí</strong> a nesbírá žádné osobní údaje na svých serverech bez ohledu na to, jakou verzi používáte.</string>
|
||||||
<string name="html_text_buy_pro">Zakoupením varianty \"pro\" získáte přístup k tomuto <strong>vizuálnímu stylu</strong> a hlavně pomůžete <strong>uskutečnění komunitních projektů.</strong></string>
|
<string name="html_text_buy_pro">Zakoupením varianty „pro“ získáte přístup k tomuto <strong>vizuálnímu stylu</strong> a hlavně pomůžete <strong>uskutečnění komunitních projektů.</strong></string>
|
||||||
<string name="html_text_feature_generosity">Tento <strong>vizuální styl</strong> je k dispozici díky vaší štědrosti.</string>
|
<string name="html_text_feature_generosity">Tento <strong>vizuální styl</strong> je k dispozici díky vaší štědrosti.</string>
|
||||||
<string name="html_text_donation">Pro zajištění svobody nás všech a pokračování aktivity počítáme s Vaším <strong>přispěním.</strong></string>
|
<string name="html_text_donation">Pro zajištění svobody nás všech a pokračování aktivity počítáme s Vaším <strong>přispěním.</strong></string>
|
||||||
<string name="html_text_dev_feature">Tato funkce je <strong>ve vývoji</strong> a potřebuje Váš <strong>příspěvek</strong>, aby byla brzy k dispozici.</string>
|
<string name="html_text_dev_feature">Tato funkce je <strong>ve vývoji</strong> a potřebuje Váš <strong>příspěvek</strong>, aby byla brzy k dispozici.</string>
|
||||||
<string name="html_text_dev_feature_buy_pro">Zakoupením <strong>pro</strong> varianty,</string>
|
<string name="html_text_dev_feature_buy_pro">Zakoupením <strong>pro</strong> varianty,</string>
|
||||||
<string name="html_text_dev_feature_contibute"><strong>Zapojením se</strong>,</string>
|
<string name="html_text_dev_feature_contibute"><strong>Podpořením vývoje</strong>,</string>
|
||||||
<string name="html_text_dev_feature_encourage">povzbudíte vývojáře k doplnění <strong>nových funkcí</strong> a <strong>opravám chyb</strong> dle vašich připomínek.</string>
|
<string name="html_text_dev_feature_encourage">povzbudíte vývojáře k doplnění <strong>nových funkcí</strong> a <strong>opravám chyb</strong> dle vašich připomínek.</string>
|
||||||
<string name="html_text_dev_feature_thanks">Mockrát děkujeme za Váš příspěvek.</string>
|
<string name="html_text_dev_feature_thanks">Mnohokrát děkujeme za Váš příspěvek.</string>
|
||||||
<string name="html_text_dev_feature_work_hard">Tvrdě pracujeme na brzkém vydání této funkce.</string>
|
<string name="html_text_dev_feature_work_hard">Tvrdě pracujeme na brzkém vydání této funkce.</string>
|
||||||
<string name="html_text_dev_feature_upgrade">Pamatujte na aktualizaci aplikace instalováním nových verzí.</string>
|
<string name="html_text_dev_feature_upgrade">Pamatujte na aktualizaci aplikace instalováním nových verzí.</string>
|
||||||
<string name="download">Stáhnout</string>
|
<string name="download">Stáhnout</string>
|
||||||
<string name="contribute">Přispět</string>
|
<string name="contribute">Podpořit vývoj</string>
|
||||||
<string name="style_choose_title">Vzhled aplikace</string>
|
<string name="style_choose_title">Vzhled aplikace</string>
|
||||||
<string name="style_choose_summary">Motiv vzhledu aplikace</string>
|
<string name="style_choose_summary">Motiv vzhledu aplikace</string>
|
||||||
<string name="icon_pack_choose_title">Sada ikon</string>
|
<string name="icon_pack_choose_title">Sada ikon</string>
|
||||||
@@ -316,14 +316,14 @@
|
|||||||
<string name="content_description_add_entry">Přidat záznam</string>
|
<string name="content_description_add_entry">Přidat záznam</string>
|
||||||
<string name="content_description_add_group">Přidat skupinu</string>
|
<string name="content_description_add_group">Přidat skupinu</string>
|
||||||
<string name="content_description_file_information">Informace o souboru</string>
|
<string name="content_description_file_information">Informace o souboru</string>
|
||||||
<string name="content_description_password_checkbox">Checkbox hesla</string>
|
<string name="content_description_password_checkbox">Zaškrtávací kolonka hesla</string>
|
||||||
<string name="content_description_keyfile_checkbox">Checkbox souboru s klíčem</string>
|
<string name="content_description_keyfile_checkbox">Zaškrtávací kolonka souboru s klíčem</string>
|
||||||
<string name="content_description_repeat_toggle_password_visibility">Opakovat přepnutí viditelnosti hesla</string>
|
<string name="content_description_repeat_toggle_password_visibility">Opakovat přepnutí viditelnosti hesla</string>
|
||||||
<string name="content_description_entry_icon">Ikona záznamu</string>
|
<string name="content_description_entry_icon">Ikona záznamu</string>
|
||||||
<string name="entry_password_generator">Generátor hesel</string>
|
<string name="entry_password_generator">Generátor hesel</string>
|
||||||
<string name="content_description_password_length">Délka hesla</string>
|
<string name="content_description_password_length">Délka hesla</string>
|
||||||
<string name="entry_add_field">Přidat pole</string>
|
<string name="entry_add_field">Přidat kolonku</string>
|
||||||
<string name="content_description_remove_field">Odebrat pole</string>
|
<string name="content_description_remove_field">Odebrat kolonku</string>
|
||||||
<string name="entry_UUID">UUID</string>
|
<string name="entry_UUID">UUID</string>
|
||||||
<string name="error_move_entry_here">Sem záznam přesunout nelze.</string>
|
<string name="error_move_entry_here">Sem záznam přesunout nelze.</string>
|
||||||
<string name="error_copy_entry_here">Sem záznam zkopírovat nelze.</string>
|
<string name="error_copy_entry_here">Sem záznam zkopírovat nelze.</string>
|
||||||
@@ -331,8 +331,8 @@
|
|||||||
<string name="list_groups_show_number_entries_summary">Zobrazit počet záznamů ve skupině</string>
|
<string name="list_groups_show_number_entries_summary">Zobrazit počet záznamů ve skupině</string>
|
||||||
<string name="content_description_background">Pozadí</string>
|
<string name="content_description_background">Pozadí</string>
|
||||||
<string name="content_description_update_from_list">Aktualizovat</string>
|
<string name="content_description_update_from_list">Aktualizovat</string>
|
||||||
<string name="content_description_keyboard_close_fields">Zavřít pole</string>
|
<string name="content_description_keyboard_close_fields">Zavřít kolonky</string>
|
||||||
<string name="error_create_database_file">Nelze vytvořit databázi s tímto heslem a souborem klíče.</string>
|
<string name="error_create_database_file">Nepodařilo se vytvořit databázi s tímto heslem a souborem klíče.</string>
|
||||||
<string name="menu_advanced_unlock_settings">Rozšířené odemknutí</string>
|
<string name="menu_advanced_unlock_settings">Rozšířené odemknutí</string>
|
||||||
<string name="biometric">Biometrika</string>
|
<string name="biometric">Biometrika</string>
|
||||||
<string name="biometric_auto_open_prompt_title">Automaticky otevřít pobídku</string>
|
<string name="biometric_auto_open_prompt_title">Automaticky otevřít pobídku</string>
|
||||||
@@ -345,15 +345,15 @@
|
|||||||
<string name="entry_setup_otp">Nastavit heslo na jedno použití (OTP)</string>
|
<string name="entry_setup_otp">Nastavit heslo na jedno použití (OTP)</string>
|
||||||
<string name="otp_type">Typ OTP</string>
|
<string name="otp_type">Typ OTP</string>
|
||||||
<string name="otp_secret">Tajnost</string>
|
<string name="otp_secret">Tajnost</string>
|
||||||
<string name="otp_period">Interval (vteřiny)</string>
|
<string name="otp_period">Interval (sekundy)</string>
|
||||||
<string name="otp_counter">Čítač</string>
|
<string name="otp_counter">Čítač</string>
|
||||||
<string name="otp_digits">Číslice</string>
|
<string name="otp_digits">Číslice</string>
|
||||||
<string name="otp_algorithm">Algoritmus</string>
|
<string name="otp_algorithm">Algoritmus</string>
|
||||||
<string name="entry_otp">OTP</string>
|
<string name="entry_otp">OTP</string>
|
||||||
<string name="error_invalid_OTP">Neplatná OTP tajnost.</string>
|
<string name="error_invalid_OTP">Neplatná OTP tajnost.</string>
|
||||||
<string name="error_disallow_no_credentials">Nejméně jeden přihlašovací údaj musí být zadán.</string>
|
<string name="error_disallow_no_credentials">Je třeba aby byl zadán alespoň jeden přihlašovací údaj.</string>
|
||||||
<string name="error_copy_group_here">Sem skupinu kopírovat nelze.</string>
|
<string name="error_copy_group_here">Sem skupinu kopírovat nelze.</string>
|
||||||
<string name="error_otp_secret_key">Tajný klíč musí mít formát Base32.</string>
|
<string name="error_otp_secret_key">Je třeba, aby tajný klíč byl ve formátu Base32.</string>
|
||||||
<string name="error_otp_counter">Čítač musít být mezi %1$d a %2$d.</string>
|
<string name="error_otp_counter">Čítač musít být mezi %1$d a %2$d.</string>
|
||||||
<string name="error_otp_period">Interval musít být mezi %1$d a %2$d vteřinami.</string>
|
<string name="error_otp_period">Interval musít být mezi %1$d a %2$d vteřinami.</string>
|
||||||
<string name="error_otp_digits">Token musí obsahovat mezi %1$d a %2$d číslicemi.</string>
|
<string name="error_otp_digits">Token musí obsahovat mezi %1$d a %2$d číslicemi.</string>
|
||||||
@@ -384,7 +384,7 @@
|
|||||||
<string name="compression_none">Žádná</string>
|
<string name="compression_none">Žádná</string>
|
||||||
<string name="compression_gzip">Gzip</string>
|
<string name="compression_gzip">Gzip</string>
|
||||||
<string name="device_keyboard_setting_title">Nastavení klávesnice zařízení</string>
|
<string name="device_keyboard_setting_title">Nastavení klávesnice zařízení</string>
|
||||||
<string name="error_save_database">Nebylo možno uložit databázi.</string>
|
<string name="error_save_database">Databázi nebylo možné uložit.</string>
|
||||||
<string name="menu_save_database">Uložit databázi</string>
|
<string name="menu_save_database">Uložit databázi</string>
|
||||||
<string name="menu_empty_recycle_bin">Vysypat koš</string>
|
<string name="menu_empty_recycle_bin">Vysypat koš</string>
|
||||||
<string name="command_execution">Provádění příkazu…</string>
|
<string name="command_execution">Provádění příkazu…</string>
|
||||||
@@ -399,14 +399,14 @@
|
|||||||
<string name="keyboard_auto_go_action_title">Akce auto-klávesy</string>
|
<string name="keyboard_auto_go_action_title">Akce auto-klávesy</string>
|
||||||
<string name="keyboard_auto_go_action_summary">Akce klávesy \"Jít\" po stisknutí klávesy \"Kolonka\"</string>
|
<string name="keyboard_auto_go_action_summary">Akce klávesy \"Jít\" po stisknutí klávesy \"Kolonka\"</string>
|
||||||
<string name="download_attachment">Stáhnout %1$s</string>
|
<string name="download_attachment">Stáhnout %1$s</string>
|
||||||
<string name="download_initialization">Zahájení…</string>
|
<string name="download_initialization">Zahajování…</string>
|
||||||
<string name="download_progression">Probíhá: %1$d%%</string>
|
<string name="download_progression">Probíhá: %1$d%%</string>
|
||||||
<string name="download_finalization">Dokončování…</string>
|
<string name="download_finalization">Dokončování…</string>
|
||||||
<string name="download_complete">Kompletní!</string>
|
<string name="download_complete">Dokončeno!</string>
|
||||||
<string name="hide_expired_entries_title">Skrýt propadlé záznamy</string>
|
<string name="hide_expired_entries_title">Skrýt záznamy kterým skončila platnost</string>
|
||||||
<string name="hide_expired_entries_summary">Propadlé záznamy nebudou ukázány</string>
|
<string name="hide_expired_entries_summary">Nejsou zobrazovány záznamy kterým skončila platnost</string>
|
||||||
<string name="contact">Kontakt</string>
|
<string name="contact">Kontakt</string>
|
||||||
<string name="contribution">Příspěvky</string>
|
<string name="contribution">Podpoření vývoje</string>
|
||||||
<string name="feedback">Zpětná vazba</string>
|
<string name="feedback">Zpětná vazba</string>
|
||||||
<string name="auto_focus_search_title">Snadné hledání</string>
|
<string name="auto_focus_search_title">Snadné hledání</string>
|
||||||
<string name="auto_focus_search_summary">Při otevření databáze žádat hledání</string>
|
<string name="auto_focus_search_summary">Při otevření databáze žádat hledání</string>
|
||||||
@@ -424,18 +424,18 @@
|
|||||||
<string name="html_about_contribution">Abychom si <strong>udrželi svoji svobodu</strong>, <strong>mohli opravovat chyby</strong>, <strong>přidávat nové funkce</strong> a <strong>byli pořád aktivní</strong>, počítáme s Vaším <strong>přispěním</strong>.</string>
|
<string name="html_about_contribution">Abychom si <strong>udrželi svoji svobodu</strong>, <strong>mohli opravovat chyby</strong>, <strong>přidávat nové funkce</strong> a <strong>byli pořád aktivní</strong>, počítáme s Vaším <strong>přispěním</strong>.</string>
|
||||||
<string name="error_create_database">Nepodařilo se vytvořit soubor databáze.</string>
|
<string name="error_create_database">Nepodařilo se vytvořit soubor databáze.</string>
|
||||||
<string name="entry_add_attachment">Přidat přílohu</string>
|
<string name="entry_add_attachment">Přidat přílohu</string>
|
||||||
<string name="discard">Zavrhnout</string>
|
<string name="discard">Zahodit</string>
|
||||||
<string name="discard_changes">Zavrhnout změny\?</string>
|
<string name="discard_changes">Zahodit změny\?</string>
|
||||||
<string name="validate">Zkontrolovat</string>
|
<string name="validate">Zkontrolovat</string>
|
||||||
<string name="education_setup_OTP_summary">Nastavit správu One-Time hesla (HOTP / TOTP) pro založení tokenu požadovaného pro dvoufázové ověření (2FA).</string>
|
<string name="education_setup_OTP_summary">Nastavit správu One-Time hesla (HOTP / TOTP) pro založení tokenu požadovaného pro dvoufázové ověření (2FA).</string>
|
||||||
<string name="education_setup_OTP_title">Nastavit OTP</string>
|
<string name="education_setup_OTP_title">Nastavit OTP</string>
|
||||||
<string name="autofill_auto_search_summary">Automaticky navrhnout výsledky hledání z webové domény nebo ID aplikace</string>
|
<string name="autofill_auto_search_summary">Automaticky navrhnout výsledky hledání z webové domény nebo ID aplikace</string>
|
||||||
<string name="autofill_auto_search_title">Samočinné hledání</string>
|
<string name="autofill_auto_search_title">Automatické vyhledávání</string>
|
||||||
<string name="lock_database_show_button_summary">Zobrazí tlačítko zámku v uživatelském rozhraní</string>
|
<string name="lock_database_show_button_summary">Zobrazí tlačítko zámku v uživatelském rozhraní</string>
|
||||||
<string name="lock_database_show_button_title">Zobrazit tlačítko zámku</string>
|
<string name="lock_database_show_button_title">Zobrazit tlačítko zámku</string>
|
||||||
<string name="autofill_preference_title">Nastavení samovyplnění</string>
|
<string name="autofill_preference_title">Nastavení samovyplnění</string>
|
||||||
<string name="warning_database_link_revoked">Přístup k souboru zrušenému správcem souborů</string>
|
<string name="warning_database_link_revoked">Přístup k souboru zrušenému správcem souborů</string>
|
||||||
<string name="error_label_exists">Tento štítek již existuje.</string>
|
<string name="error_label_exists">Tento štítek už existuje.</string>
|
||||||
<string name="keyboard_search_share_summary">Při sdílení URL s KeePassDX filtrovat záznamy podle URL domény</string>
|
<string name="keyboard_search_share_summary">Při sdílení URL s KeePassDX filtrovat záznamy podle URL domény</string>
|
||||||
<string name="keyboard_search_share_title">Prohledat sdílené info</string>
|
<string name="keyboard_search_share_title">Prohledat sdílené info</string>
|
||||||
<string name="autofill_block_restart">Aktivovat zamezení restartováním aplikace obsahující formulář.</string>
|
<string name="autofill_block_restart">Aktivovat zamezení restartováním aplikace obsahující formulář.</string>
|
||||||
@@ -473,7 +473,7 @@
|
|||||||
<string name="show_uuid_summary">Ukáže UUID propojené se záznamem nebo skupinou</string>
|
<string name="show_uuid_summary">Ukáže UUID propojené se záznamem nebo skupinou</string>
|
||||||
<string name="show_uuid_title">Ukázat UUID</string>
|
<string name="show_uuid_title">Ukázat UUID</string>
|
||||||
<string name="autofill_read_only_save">Uložení dat není povoleno, je-li databáze v režimu pouze pro čtení.</string>
|
<string name="autofill_read_only_save">Uložení dat není povoleno, je-li databáze v režimu pouze pro čtení.</string>
|
||||||
<string name="autofill_ask_to_save_data_summary">Zeptat se na uložení dat, jakmile byl formulář přezkoušen</string>
|
<string name="autofill_ask_to_save_data_summary">Po dokončení vyplňování formuláře se zeptat na uložení dat</string>
|
||||||
<string name="autofill_ask_to_save_data_title">Zeptat se před uložením</string>
|
<string name="autofill_ask_to_save_data_title">Zeptat se před uložením</string>
|
||||||
<string name="autofill_save_search_info_summary">Pokuste se uložit údaje hledání, když manuálně vybíráte položku</string>
|
<string name="autofill_save_search_info_summary">Pokuste se uložit údaje hledání, když manuálně vybíráte položku</string>
|
||||||
<string name="autofill_save_search_info_title">Uložit výsledky vyhledávání</string>
|
<string name="autofill_save_search_info_title">Uložit výsledky vyhledávání</string>
|
||||||
@@ -505,7 +505,7 @@
|
|||||||
<string name="advanced_unlock_prompt_not_initialized">Nelze inicializovat pobídku pro rozšířené odemknutí.</string>
|
<string name="advanced_unlock_prompt_not_initialized">Nelze inicializovat pobídku pro rozšířené odemknutí.</string>
|
||||||
<string name="advanced_unlock_scanning_error">Chyba při rozšířeném odemknutí: %1$s</string>
|
<string name="advanced_unlock_scanning_error">Chyba při rozšířeném odemknutí: %1$s</string>
|
||||||
<string name="advanced_unlock_not_recognized">Otisk pro rozšířené odemknutí nebyl rozpoznán</string>
|
<string name="advanced_unlock_not_recognized">Otisk pro rozšířené odemknutí nebyl rozpoznán</string>
|
||||||
<string name="advanced_unlock_invalid_key">Nelze načíst klíč rozšířeného odemknutí. Prosím, smažte jej a opakujte proces rozpoznání odemknutí.</string>
|
<string name="advanced_unlock_invalid_key">Nedaří se načíst klíč rozšířeného odemknutí. Prosím, smažte ho a opakujte proces rozpoznání odemknutí.</string>
|
||||||
<string name="advanced_unlock_prompt_extract_credential_message">Načíst důvěrný údaj pomocí dat rozšířeného odemknutí</string>
|
<string name="advanced_unlock_prompt_extract_credential_message">Načíst důvěrný údaj pomocí dat rozšířeného odemknutí</string>
|
||||||
<string name="advanced_unlock_prompt_extract_credential_title">Otevřít pomocí rozšířeného odemykání</string>
|
<string name="advanced_unlock_prompt_extract_credential_title">Otevřít pomocí rozšířeného odemykání</string>
|
||||||
<string name="advanced_unlock_prompt_store_credential_message">Varování: Pokud použijete rozpoznání rozšířeného odemknutí, musíte si i nadále pamatovat hlavní heslo.</string>
|
<string name="advanced_unlock_prompt_store_credential_message">Varování: Pokud použijete rozpoznání rozšířeného odemknutí, musíte si i nadále pamatovat hlavní heslo.</string>
|
||||||
@@ -528,8 +528,8 @@
|
|||||||
<string name="autofill_inline_suggestions_title">Návrhy inline</string>
|
<string name="autofill_inline_suggestions_title">Návrhy inline</string>
|
||||||
<string name="autofill_inline_suggestions_summary">Pokusí ze zobrazit návrhy samovyplnění přímo z kompatibilní klávesnice</string>
|
<string name="autofill_inline_suggestions_summary">Pokusí ze zobrazit návrhy samovyplnění přímo z kompatibilní klávesnice</string>
|
||||||
<string name="warning_database_revoked">Přístup k souboru odebrán správcem souborů, uzavřete databázi a nově ji otevřete z jejího adresáře.</string>
|
<string name="warning_database_revoked">Přístup k souboru odebrán správcem souborů, uzavřete databázi a nově ji otevřete z jejího adresáře.</string>
|
||||||
<string name="menu_reload_database">Databázi nově načíst</string>
|
<string name="menu_reload_database">Znovu načíst data</string>
|
||||||
<string name="warning_database_info_changed_options">Přepsat externí změny uložením databáze nebo databázi včetně posledních změn nově načíst.</string>
|
<string name="warning_database_info_changed_options">Sloučit data, přepsat externí změny uložením databáze nebo databázi znovu načíst včetně nejnovějších změn.</string>
|
||||||
<string name="warning_database_info_changed">Informace obsažená ve Vašem databázovém souboru by změněna mimo aplikaci.</string>
|
<string name="warning_database_info_changed">Informace obsažená ve Vašem databázovém souboru by změněna mimo aplikaci.</string>
|
||||||
<string name="unit_gibibyte">GiB</string>
|
<string name="unit_gibibyte">GiB</string>
|
||||||
<string name="unit_mebibyte">MiB</string>
|
<string name="unit_mebibyte">MiB</string>
|
||||||
@@ -543,7 +543,7 @@
|
|||||||
<string name="style_brightness_title">Jas motivu</string>
|
<string name="style_brightness_title">Jas motivu</string>
|
||||||
<string name="error_upload_file">Během nahrávání souboru došlo k chybě.</string>
|
<string name="error_upload_file">Během nahrávání souboru došlo k chybě.</string>
|
||||||
<string name="error_file_to_big">Soubor, který se pokoušíte nahrát, je příliš velký.</string>
|
<string name="error_file_to_big">Soubor, který se pokoušíte nahrát, je příliš velký.</string>
|
||||||
<string name="content_description_otp_information">Info o jednorázovém hesle</string>
|
<string name="content_description_otp_information">Info o jednorázovém heslu</string>
|
||||||
<string name="properties">Vlastnosti</string>
|
<string name="properties">Vlastnosti</string>
|
||||||
<string name="error_export_app_properties">Během exportu vlastností aplikace došlo k chybě</string>
|
<string name="error_export_app_properties">Během exportu vlastností aplikace došlo k chybě</string>
|
||||||
<string name="success_export_app_properties">Vlastnosti aplikace byly exportovány</string>
|
<string name="success_export_app_properties">Vlastnosti aplikace byly exportovány</string>
|
||||||
@@ -557,20 +557,20 @@
|
|||||||
<string name="error_start_database_action">Během akce v databázi došlo k chybě.</string>
|
<string name="error_start_database_action">Během akce v databázi došlo k chybě.</string>
|
||||||
<string name="error_remove_file">Při odstraňování dat soboru došlo k chybě.</string>
|
<string name="error_remove_file">Při odstraňování dat soboru došlo k chybě.</string>
|
||||||
<string name="error_duplicate_file">Datový soubor již existuje.</string>
|
<string name="error_duplicate_file">Datový soubor již existuje.</string>
|
||||||
<string name="error_move_group_here">Sem skupinu přesunout nemůžete.</string>
|
<string name="error_move_group_here">Sem skupinu nelze přesunout.</string>
|
||||||
<string name="error_word_reserved">Toto slovo je rezervováno a nelze je použít.</string>
|
<string name="error_word_reserved">Toto slovo je rezervováno a nelze je použít.</string>
|
||||||
<string name="templates">Předlohy</string>
|
<string name="templates">Předlohy</string>
|
||||||
<string name="templates_group_uuid_title">Skupina předloh</string>
|
<string name="templates_group_uuid_title">Skupina předloh</string>
|
||||||
<string name="templates_group_enable_summary">K vyplnění polí záznamu použijte dynamické předlohy</string>
|
<string name="templates_group_enable_summary">K vyplnění polí záznamu použijte dynamické předlohy</string>
|
||||||
<string name="templates_group_enable_title">Využití předloh</string>
|
<string name="templates_group_enable_title">Využití předloh</string>
|
||||||
<string name="version">Verze</string>
|
<string name="version">Verze</string>
|
||||||
<string name="template">Předloha</string>
|
<string name="template">Šablona</string>
|
||||||
<string name="standard">Standard</string>
|
<string name="standard">Standard</string>
|
||||||
<string name="membership">Členství</string>
|
<string name="membership">Členství</string>
|
||||||
<string name="secure_note">Bezpečná poznámka</string>
|
<string name="secure_note">Bezpečná poznámka</string>
|
||||||
<string name="international_bank_account_number">IBAN</string>
|
<string name="international_bank_account_number">IBAN</string>
|
||||||
<string name="bank_identifier_code">SWIFT / BIC</string>
|
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||||
<string name="bank_name">Jméno banky</string>
|
<string name="bank_name">Název banky</string>
|
||||||
<string name="bank">Banka</string>
|
<string name="bank">Banka</string>
|
||||||
<string name="account">Účet</string>
|
<string name="account">Účet</string>
|
||||||
<string name="seed">Seed</string>
|
<string name="seed">Seed</string>
|
||||||
@@ -589,9 +589,9 @@
|
|||||||
<string name="personal_identification_number">PIN</string>
|
<string name="personal_identification_number">PIN</string>
|
||||||
<string name="card_verification_value">CVV</string>
|
<string name="card_verification_value">CVV</string>
|
||||||
<string name="number">Číslo</string>
|
<string name="number">Číslo</string>
|
||||||
<string name="holder">Majitel</string>
|
<string name="holder">Držitel</string>
|
||||||
<string name="debit_credit_card">Debitní / Kreditní karta</string>
|
<string name="debit_credit_card">Debetní / kreditní karta</string>
|
||||||
<string name="template_group_name">Předlohy</string>
|
<string name="template_group_name">Šablony</string>
|
||||||
<string name="show_otp_token_summary">Ukáže OTP tokeny v seznamu záznamů</string>
|
<string name="show_otp_token_summary">Ukáže OTP tokeny v seznamu záznamů</string>
|
||||||
<string name="show_otp_token_title">Ukázat OTP token</string>
|
<string name="show_otp_token_title">Ukázat OTP token</string>
|
||||||
<string name="menu_external_icon">Externí ikona</string>
|
<string name="menu_external_icon">Externí ikona</string>
|
||||||
@@ -601,7 +601,7 @@
|
|||||||
<string name="hint_icon_name">Jméno symbolu</string>
|
<string name="hint_icon_name">Jméno symbolu</string>
|
||||||
<string name="warning_exact_alarm">Nepovolili jste aplikaci použít přesný alarm. Výsledkem je, že funkce požadující časovač nebudou provedeny v přesný okamžik.</string>
|
<string name="warning_exact_alarm">Nepovolili jste aplikaci použít přesný alarm. Výsledkem je, že funkce požadující časovač nebudou provedeny v přesný okamžik.</string>
|
||||||
<string name="permission">Povolení</string>
|
<string name="permission">Povolení</string>
|
||||||
<string name="tags">Tagy</string>
|
<string name="tags">Štítky</string>
|
||||||
<string name="menu_merge_database">Sloučit databázi</string>
|
<string name="menu_merge_database">Sloučit databázi</string>
|
||||||
<string name="warning_database_info_reloaded">Opětovné načtení databáze smaže všechny lokálně změněné data.</string>
|
<string name="warning_database_info_reloaded">Opětovné načtení databáze smaže všechny lokálně změněné data.</string>
|
||||||
<string name="warning_keyfile_integrity">Hash souboru není garantován protože Android umožňuje změnu souboru v běhu. Změňte koncovku souboru na .bin pro opravu integrity.</string>
|
<string name="warning_keyfile_integrity">Hash souboru není garantován protože Android umožňuje změnu souboru v běhu. Změňte koncovku souboru na .bin pro opravu integrity.</string>
|
||||||
@@ -612,7 +612,18 @@
|
|||||||
<string name="case_sensitive">Rozlišování velkých a malých písmen</string>
|
<string name="case_sensitive">Rozlišování velkých a malých písmen</string>
|
||||||
<string name="current_group">Tato skupina</string>
|
<string name="current_group">Tato skupina</string>
|
||||||
<string name="menu_merge_from">Sloučit z …</string>
|
<string name="menu_merge_from">Sloučit z …</string>
|
||||||
<string name="custom_data">Vlastní data</string>
|
<string name="custom_data">Uživatelsky určené údaje</string>
|
||||||
<string name="search_filters">Vyhledat filtry</string>
|
<string name="search_filters">Vyhledat filtry</string>
|
||||||
<string name="menu_save_copy_to">Uložit kopii do …</string>
|
<string name="menu_save_copy_to">Uložit kopii do …</string>
|
||||||
|
<string name="content_description_entry_background_color">Zadejte barvu pozadí</string>
|
||||||
|
<string name="content_description_entry_foreground_color">Zadejte barvu popředí</string>
|
||||||
|
<string name="expired">Platnost skončila</string>
|
||||||
|
<string name="show_entry_colors_summary">Zobrazí barvy popředí a pozadí v záznamu</string>
|
||||||
|
<string name="show_entry_colors_title">Barvy záznamu</string>
|
||||||
|
<string name="regex">Běžný výraz</string>
|
||||||
|
<string name="enable_keep_screen_on_summary">Při zobrazování položky zabránit zhasnutí obrazovky</string>
|
||||||
|
<string name="navigation_drawer_open">Otevření navigačního panelu</string>
|
||||||
|
<string name="navigation_drawer_close">Zavření navigačního panelu</string>
|
||||||
|
<string name="inherited">Převzít</string>
|
||||||
|
<string name="auto_type_sequence">Posloupnost automatického vyplňování</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -638,4 +638,5 @@
|
|||||||
<string name="content_description_nav_header">Navigationskopfzeile</string>
|
<string name="content_description_nav_header">Navigationskopfzeile</string>
|
||||||
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
|
<string name="navigation_drawer_close">Navigationsleiste schließen</string>
|
||||||
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
|
<string name="navigation_drawer_open">Navigationsleiste öffnen</string>
|
||||||
|
<string name="expired">Abgelaufen</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -625,4 +625,5 @@
|
|||||||
<string name="current_group">Τρέχουσα ομάδα</string>
|
<string name="current_group">Τρέχουσα ομάδα</string>
|
||||||
<string name="regex">Κοινή έκφραση</string>
|
<string name="regex">Κοινή έκφραση</string>
|
||||||
<string name="menu_save_copy_to">Αποθήκευση αντιγράφου στο …</string>
|
<string name="menu_save_copy_to">Αποθήκευση αντιγράφου στο …</string>
|
||||||
|
<string name="expired">Ληγμένο</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -627,4 +627,5 @@
|
|||||||
<string name="menu_merge_from">Fusionar desde …</string>
|
<string name="menu_merge_from">Fusionar desde …</string>
|
||||||
<string name="menu_save_copy_to">Guardar una copia en …</string>
|
<string name="menu_save_copy_to">Guardar una copia en …</string>
|
||||||
<string name="inherited">Heredar</string>
|
<string name="inherited">Heredar</string>
|
||||||
|
<string name="expired">Caducada</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -517,7 +517,7 @@
|
|||||||
<string name="advanced_unlock_invalid_key">Impossible de lire la clé de déverrouillage avancé. Veuillez la supprimer et répéter la procédure de reconnaissance de déverrouillage.</string>
|
<string name="advanced_unlock_invalid_key">Impossible de lire la clé de déverrouillage avancé. Veuillez la supprimer et répéter la procédure de reconnaissance de déverrouillage.</string>
|
||||||
<string name="advanced_unlock_prompt_extract_credential_message">Extraire les identifiants de la base de données avec des données de déverrouillage avancées</string>
|
<string name="advanced_unlock_prompt_extract_credential_message">Extraire les identifiants de la base de données avec des données de déverrouillage avancées</string>
|
||||||
<string name="advanced_unlock_prompt_extract_credential_title">Ouvrir la base de données avec la reconnaissance de déverrouillage avancée</string>
|
<string name="advanced_unlock_prompt_extract_credential_title">Ouvrir la base de données avec la reconnaissance de déverrouillage avancée</string>
|
||||||
<string name="advanced_unlock_prompt_store_credential_message">Attention : vous devez toujours vous souvenir de votre mot de passe principal si vous utilisez le déverrouillage avancé.</string>
|
<string name="advanced_unlock_prompt_store_credential_message">Vous devez toujours vous souvenir de votre identifiant principal si vous utilisez le déverrouillage avancé.</string>
|
||||||
<string name="advanced_unlock_prompt_store_credential_title">Reconnaissance de déverrouillage avancée</string>
|
<string name="advanced_unlock_prompt_store_credential_title">Reconnaissance de déverrouillage avancée</string>
|
||||||
<string name="open_advanced_unlock_prompt_store_credential">Ouvrez l\'invite de déverrouillage avancé pour stocker les informations d\'identification</string>
|
<string name="open_advanced_unlock_prompt_store_credential">Ouvrez l\'invite de déverrouillage avancé pour stocker les informations d\'identification</string>
|
||||||
<string name="open_advanced_unlock_prompt_unlock_database">Ouvrez l\'invite de déverrouillage avancé pour déverrouiller la base de données</string>
|
<string name="open_advanced_unlock_prompt_unlock_database">Ouvrez l\'invite de déverrouillage avancé pour déverrouiller la base de données</string>
|
||||||
@@ -636,4 +636,9 @@
|
|||||||
<string name="custom_data">Données personnalisées</string>
|
<string name="custom_data">Données personnalisées</string>
|
||||||
<string name="case_sensitive">Sensible à la casse</string>
|
<string name="case_sensitive">Sensible à la casse</string>
|
||||||
<string name="expired">Expiré</string>
|
<string name="expired">Expiré</string>
|
||||||
|
<string name="warning_database_already_opened">Une base de données est déjà ouverte, fermez-la d\'abord pour ouvrir la nouvelle base</string>
|
||||||
|
<string name="advanced_unlock_keystore_warning">Cette fonction permet de stocker des données d\'identification chiffrées dans le KeyStore sécurisé de votre appareil.
|
||||||
|
\n
|
||||||
|
\nSelon l\'implémentation de l\'API native du système d\'exploitation, il se peut qu\'elle ne soit pas entièrement fonctionnelle.
|
||||||
|
\nVérifiez la compatibilité et la sécurité du KeyStore auprès du fabricant de votre appareil et du créateur de la ROM que vous utilisez.</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -16,37 +16,37 @@
|
|||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
along with KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
||||||
-->
|
--><resources>
|
||||||
<resources>
|
<string name="feedback">प्रतिक्रिया</string>
|
||||||
<string name="feedback">प्प्रतिपुष्टिा</string>
|
|
||||||
<string name="homepage">होमपेज</string>
|
<string name="homepage">होमपेज</string>
|
||||||
<string name="about_description">एंड्रॉयड पर आधारित KeePass पासवर्ड मैनेजर</string>
|
<string name="about_description">एंड्रॉयड पर आधारित KeePass पासवर्ड मैनेजर</string>
|
||||||
<string name="accept">स्वीकार</string>
|
<string name="accept">स्वीकार करें</string>
|
||||||
<string name="add_entry">रिकॉर्ड जोड़ें</string>
|
<string name="add_entry">रिकॉर्ड जोड़ें</string>
|
||||||
<string name="edit_entry">रिकॉर्ड संपादित करें</string>
|
<string name="edit_entry">रिकॉर्ड संपादित करें</string>
|
||||||
<string name="add_group">समूह जोड़ें</string>
|
<string name="add_group">समूह जोड़ें</string>
|
||||||
<string name="encryption">एन्क्रिप्शन</string>
|
<string name="encryption">एन्क्रिप्शन</string>
|
||||||
<string name="encryption_algorithm">एन्क्रिप्शन एल्गोरिथम</string>
|
<string name="encryption_algorithm">एन्क्रिप्शन एल्गोरिथम</string>
|
||||||
<string name="key_derivation_function">कुंजी उत्पत्ति कृत्य</string>
|
<string name="key_derivation_function">कुंजी उत्पत्ति कृत्य</string>
|
||||||
<string name="app_timeout">ऐप का समय समाप्त</string>
|
<string name="app_timeout">समय समाप्त</string>
|
||||||
<string name="app_timeout_summary">ऐप लॉक होने से पहले निष्क्रियता</string>
|
<string name="app_timeout_summary">डाटाबेस के बन्द होने से पहले तक का समय</string>
|
||||||
<string name="application">ऐप</string>
|
<string name="application">ऐप</string>
|
||||||
<string name="brackets">कोष्ठक</string>
|
<string name="brackets">कोष्ठक</string>
|
||||||
<string name="extended_ASCII">विस्तारित ASCII</string>
|
<string name="extended_ASCII">विस्तारित ASCII</string>
|
||||||
<string name="allow">अनुमति दें</string>
|
<string name="allow">अनुमति दें</string>
|
||||||
<string name="clipboard_cleared">क्लिपबोर्ड साफ कर दिया</string>
|
<string name="clipboard_cleared">क्लिपबोर्ड साफ़ किया गया</string>
|
||||||
<string name="clipboard_error_title">क्लिपबोर्ड एरर</string>
|
<string name="clipboard_error_title">क्लिपबोर्ड एरर</string>
|
||||||
<string name="clipboard_error">सैमसंग के कुछ एंड्रॉइड फोन क्लिपबोर्ड का उपयोग नहीं करने देंगे।</string>
|
<string name="clipboard_error">कुछ डिवाइस ऐप्स को क्लिपबोर्ड का प्रयोग करने की अनुमति नहीं देंगे।</string>
|
||||||
<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>
|
||||||
<string name="default_checkbox">डिफ़ॉल्ट डेटाबेस के रूप में उपयोग करें</string>
|
<string name="default_checkbox">डिफ़ॉल्ट डेटाबेस के रूप में उपयोग करें</string>
|
||||||
<string name="digits">अंक</string>
|
<string name="digits">अंक</string>
|
||||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft बिल्कुल कोई वारंटी के साथ आता है । यह लाइब्रे सॉफ्टवेयर है, और जीपीएल संस्करण 3 या बाद की शर्तों के तहत इसे पुनर्वितरित करने के लिए आपका स्वागत है।</string>
|
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft <strong>ओपन सोर्स</strong> है और <strong>बिना किसी विज्ञापन</strong> के उपलब्ध है।
|
||||||
|
\nइसे <strong>GPLv3</strong> लाइसेंस के अन्तर्गत बिना किसी वारन्टि के प्रदान किया गया है।</string>
|
||||||
<string name="entry_accessed">एक्सेस किया गया</string>
|
<string name="entry_accessed">एक्सेस किया गया</string>
|
||||||
<string name="entry_cancel">रद्द करें</string>
|
<string name="entry_cancel">रद्द करें</string>
|
||||||
<string name="entry_notes">टिप्पणियाँ</string>
|
<string name="entry_notes">टिप्पणियाँ</string>
|
||||||
@@ -63,13 +63,13 @@
|
|||||||
<string name="entry_user_name">उपयोगकर्ता का नाम</string>
|
<string name="entry_user_name">उपयोगकर्ता का नाम</string>
|
||||||
<string name="error_can_not_handle_uri">KeePassDX में इस URI को संभाल नहीं सका।</string>
|
<string name="error_can_not_handle_uri">KeePassDX में इस URI को संभाल नहीं सका।</string>
|
||||||
<string name="error_file_not_create">फाइल नहीं बना सका</string>
|
<string name="error_file_not_create">फाइल नहीं बना सका</string>
|
||||||
<string name="error_invalid_db">डाटाबेस नहीं पढ़ सका।</string>
|
<string name="error_invalid_db">डेटाबेस को पढ़ा नहीं जा सका।</string>
|
||||||
<string name="error_invalid_path">सुनिश्चित करें कि रास्ता सही है।</string>
|
<string name="error_invalid_path">सुनिश्चित करें कि रास्ता सही है।</string>
|
||||||
<string name="error_no_name">एक नाम दर्ज करें।</string>
|
<string name="error_no_name">एक नाम दर्ज करें।</string>
|
||||||
<string name="error_nokeyfile">कीफाइल का चयन करें।</string>
|
<string name="error_nokeyfile">कीफ़ाइल का चयन करें।</string>
|
||||||
<string name="error_out_of_memory">आपके पूरे डेटाबेस को लोड करने के लिए कोई मेमोरी नहीं।</string>
|
<string name="error_out_of_memory">आपके पूरे डेटाबेस को लोड करने के लिए मेमोरी नहीं है।</string>
|
||||||
<string name="error_load_database">आपके डेटाबेस को लोड नहीं किया जा सका।</string>
|
<string name="error_load_database">आपके डेटाबेस को लोड नहीं किया जा सका।</string>
|
||||||
<string name="error_load_database_KDF_memory">कुंजी लोड नहीं कर सका। केडीएफ \"मेमोरी उपयोग\" को कम करने का प्रयास करें।</string>
|
<string name="error_load_database_KDF_memory">कुंजी लोड नहीं कर सके। KDF \"मेमोरी उपयोग\" को कम करने का प्रयास करें।</string>
|
||||||
<string name="error_pass_gen_type">कम से कम एक पासवर्ड जनरेशन प्रकार का चयन करना होगा।</string>
|
<string name="error_pass_gen_type">कम से कम एक पासवर्ड जनरेशन प्रकार का चयन करना होगा।</string>
|
||||||
<string name="error_pass_match">पासवर्ड मेल नहीं खाते हैं।</string>
|
<string name="error_pass_match">पासवर्ड मेल नहीं खाते हैं।</string>
|
||||||
<string name="error_rounds_too_large">\"परिवर्तन राउंड\" बहुत अधिक है। 2147483648 पर सेट हो रहा है।</string>
|
<string name="error_rounds_too_large">\"परिवर्तन राउंड\" बहुत अधिक है। 2147483648 पर सेट हो रहा है।</string>
|
||||||
@@ -85,15 +85,15 @@
|
|||||||
<string name="content_description_repeat_toggle_password_visibility">पासवर्ड दृश्यता टॉगल दोहराएं</string>
|
<string name="content_description_repeat_toggle_password_visibility">पासवर्ड दृश्यता टॉगल दोहराएं</string>
|
||||||
<string name="content_description_entry_icon">प्रवेश आइकन</string>
|
<string name="content_description_entry_icon">प्रवेश आइकन</string>
|
||||||
<string name="entry_password_generator">पासवर्ड जनरेटर</string>
|
<string name="entry_password_generator">पासवर्ड जनरेटर</string>
|
||||||
<string name="content_description_password_length">पासवर्ड की लंबाई</string>
|
<string name="content_description_password_length">पासवर्ड की लम्बाई</string>
|
||||||
<string name="entry_add_field">फ़ील्ड जोड़ें</string>
|
<string name="entry_add_field">फ़ील्ड जोड़ें</string>
|
||||||
<string name="content_description_remove_field">फ़ील्ड निकालें</string>
|
<string name="content_description_remove_field">फ़ील्ड हटाये</string>
|
||||||
<string name="entry_UUID">UUID</string>
|
<string name="entry_UUID">UUID</string>
|
||||||
<string name="file_manager_install_description">"डेटाबेस फाइल को बनाने खोलने और सेव करने के लिए आपके फोन में फाइल मैनेजर ऐप होना चाहिए जोकि दिए गए एक्शन को सपोर्ट कर सके ACTION_CREATE_DOCUMENT और ACTION_OPEN_DOCUMENT"</string>
|
<string name="file_manager_install_description">डेटाबेस फाइल को बनाने, खोलने और सेव करने के लिए आपके फोन में फाइल मैनेजर ऐप होना चाहिए जो ACTION_CREATE_DOCUMENT और ACTION_OPEN_DOCUMENT कार्यों को करने मे सक्षम हो।</string>
|
||||||
<string name="content_description_background">पृष्ठभूमि</string>
|
<string name="content_description_background">पृष्ठभूमि</string>
|
||||||
<string name="content_description_update_from_list">अपडेट करें</string>
|
<string name="content_description_update_from_list">अपडेट करें</string>
|
||||||
<string name="content_description_remove_from_list">निकालें</string>
|
<string name="content_description_remove_from_list">हटाएँ</string>
|
||||||
<string name="content_description_keyboard_close_fields">बंद क्षेत्र</string>
|
<string name="content_description_keyboard_close_fields">फ़ील्ड बंद करें</string>
|
||||||
<string name="master_key">मास्टर कुंजी</string>
|
<string name="master_key">मास्टर कुंजी</string>
|
||||||
<string name="security">सुरक्षा</string>
|
<string name="security">सुरक्षा</string>
|
||||||
<string name="entry_history">इतिहास</string>
|
<string name="entry_history">इतिहास</string>
|
||||||
@@ -105,6 +105,65 @@
|
|||||||
<string name="otp_digits">अंक</string>
|
<string name="otp_digits">अंक</string>
|
||||||
<string name="otp_algorithm">एल्गोरिथ्म</string>
|
<string name="otp_algorithm">एल्गोरिथ्म</string>
|
||||||
<string name="entry_otp">ओटीप</string>
|
<string name="entry_otp">ओटीप</string>
|
||||||
<string name="error_invalid_OTP">अमान्य ओटीपी गुप्त।</string>
|
<string name="error_invalid_OTP">अमान्य ओटीपी रहस्य।</string>
|
||||||
<string name="error_disallow_no_credentials">कम से कम एक क्रेडेंशियल सेट किया जाना चाहिए।</string>
|
<string name="error_disallow_no_credentials">कम से कम एक क्रेडेंशियल सेट किया जाना चाहिए।</string>
|
||||||
</resources>
|
<string name="email">ईमेल</string>
|
||||||
|
<string name="email_address">ईमेल पता</string>
|
||||||
|
<string name="ssid">SSID</string>
|
||||||
|
<string name="error_otp_digits">टोकन में %1$d से %2$d अंक होने चाहिए।</string>
|
||||||
|
<string name="style_choose_summary">ऐप में इस्तेमाल की गई थीम</string>
|
||||||
|
<string name="style_brightness_summary">हल्की या गहरी थीम चुनें</string>
|
||||||
|
<string name="error_move_group_here">आप यहा किसी समूह को स्थानांतरित नहीं कर सकते है।</string>
|
||||||
|
<string name="content_description_database_color">डाटाबेस का रंग</string>
|
||||||
|
<string name="error_otp_secret_key">गुप्त कुंजी Base32 स्वरूप में होनी आवश्यक है।</string>
|
||||||
|
<string name="wireless">वाई-फाई</string>
|
||||||
|
<string name="hide_expired_entries_title">समाप्त हो चुकी प्रविष्टियो को छुपाएं</string>
|
||||||
|
<string name="icon_pack_choose_title">आइकन पैक</string>
|
||||||
|
<string name="contribution">योगदान</string>
|
||||||
|
<string name="error_copy_entry_here">आप यहां प्रविष्टि की प्रतिलिपि नहीं बना सकते।</string>
|
||||||
|
<string name="error_copy_group_here">आप यहाँ समूह की प्रतिलिपि नहीं कर सकते हैं।</string>
|
||||||
|
<string name="error_create_database_file">इस पासवर्ड और कीफ़ाइल के साथ डेटाबेस बनाने में असमर्थ।</string>
|
||||||
|
<string name="template_group_name">प्रारूप</string>
|
||||||
|
<string name="discard_changes">परिवर्तनों को निरस्त करें\?</string>
|
||||||
|
<string name="content_description_otp_information">वन-टाइम पासवर्ड की जानकारी</string>
|
||||||
|
<string name="personal_identification_number">PIN</string>
|
||||||
|
<string name="name">नाम</string>
|
||||||
|
<string name="error_word_reserved">यह शब्द आरक्षित है और इसका उपयोग नहीं किया जा सकता है।</string>
|
||||||
|
<string name="allow_copy_password_summary">प्रविष्टि पासवर्ड और संरक्षित फ़ील्ड को क्लिपबोर्ड पर कॉपी करने की अनुमति दें</string>
|
||||||
|
<string name="card_verification_value">CVV</string>
|
||||||
|
<string name="error_create_database">डेटाबेस फ़ाइल बनाने में असमर्थ।</string>
|
||||||
|
<string name="error_otp_period">अवधि %1$d और %2$d सेकैंड के बीच होनी चाहिए।</string>
|
||||||
|
<string name="public_key">सार्वजनिक कुंजी</string>
|
||||||
|
<string name="current_group">वर्तमान समूह</string>
|
||||||
|
<string name="error_move_entry_here">आप यहा किसी प्रविष्टि को स्थानांतरित नहीं कर सकते है।</string>
|
||||||
|
<string name="error_save_database">डेटाबेस को सेव नहीं किया जा सका।</string>
|
||||||
|
<string name="error_otp_counter">काउंटर %1$d और %2$d के बीच में होना चाहिए।</string>
|
||||||
|
<string name="unit_gibibyte">GiB</string>
|
||||||
|
<string name="hide_expired_entries_summary">समाप्त हो चुकी प्रविष्टियों को नहीं दिखाया गया है</string>
|
||||||
|
<string name="unit_kibibyte">KiB</string>
|
||||||
|
<string name="unit_mebibyte">MiB</string>
|
||||||
|
<string name="style_choose_title">ऐप थीम</string>
|
||||||
|
<string name="icon_pack_choose_summary">ऐप में इस्तेमाल किया गया आइकन पैक</string>
|
||||||
|
<string name="content_description_credentials_information">क्रेडेंशियल्स कि जानकारी</string>
|
||||||
|
<string name="contact">संपर्क करें</string>
|
||||||
|
<string name="validate">सत्यापित करें</string>
|
||||||
|
<string name="discard">निरस्त करें</string>
|
||||||
|
<string name="entry_add_attachment">अटेचमेंट लगाये</string>
|
||||||
|
<string name="debit_credit_card">डेबिट / क्रेडिट कार्ड</string>
|
||||||
|
<string name="holder">धारक</string>
|
||||||
|
<string name="bank">बैंक</string>
|
||||||
|
<string name="bank_name">बैंक का नाम</string>
|
||||||
|
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||||
|
<string name="international_bank_account_number">IBAN</string>
|
||||||
|
<string name="about">के बारे मे</string>
|
||||||
|
<string name="download_canceled">रद्द!</string>
|
||||||
|
<string name="unit_byte">B</string>
|
||||||
|
<string name="show_entry_colors_title">प्रविष्टि के रंग</string>
|
||||||
|
<string name="error_rebuild_list">सूची का ठीक से पुनर्निर्माण करने में असमर्थ।</string>
|
||||||
|
<string name="error_file_to_big">आप जिस फ़ाइल को अपलोड करने का प्रयास कर रहे हैं वह बहुत बड़ी है।</string>
|
||||||
|
<string name="error_remove_file">फ़ाइल डेटा को हटाते समय त्रुटि हुई।</string>
|
||||||
|
<string name="error_field_name_already_exists">फ़ील्ड का नाम पहले से मौजूद है।</string>
|
||||||
|
<string name="error_database_uri_null">डेटाबेस URI को पुनःप्राप्त नहीं किया जा सका।</string>
|
||||||
|
<string name="error_upload_file">फ़ाइल डेटा को अपलोड करते समय एक त्रुटि हुई।</string>
|
||||||
|
<string name="error_duplicate_file">फ़ाइल डेटा पहले से उपलब्ध है।</string>
|
||||||
|
</resources>
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
<string name="error_pass_gen_type">Je moet minimaal één soort wachtwoordgenerering kiezen.</string>
|
<string name="error_pass_gen_type">Je moet minimaal één soort wachtwoordgenerering kiezen.</string>
|
||||||
<string name="error_pass_match">De wachtwoorden komen niet overeen.</string>
|
<string name="error_pass_match">De wachtwoorden komen niet overeen.</string>
|
||||||
<string name="error_rounds_too_large">\"Cycli-waarde\" te groot. Deze wordt ingesteld op 2147483648.</string>
|
<string name="error_rounds_too_large">\"Cycli-waarde\" te groot. Deze wordt ingesteld op 2147483648.</string>
|
||||||
<string name="error_wrong_length">Voer een positief geheel getal in in het veld \"Lengte\".</string>
|
<string name="error_wrong_length">Voer in het veld \"Lengte\" een positief geheel getal in.</string>
|
||||||
<string name="file_browser">Bestandsbeheer</string>
|
<string name="file_browser">Bestandsbeheer</string>
|
||||||
<string name="generate_password">Wachtwoord genereren</string>
|
<string name="generate_password">Wachtwoord genereren</string>
|
||||||
<string name="hint_conf_pass">Wachtwoord bevestigen</string>
|
<string name="hint_conf_pass">Wachtwoord bevestigen</string>
|
||||||
@@ -184,8 +184,8 @@
|
|||||||
<string name="database_history">Geschiedenis</string>
|
<string name="database_history">Geschiedenis</string>
|
||||||
<string name="menu_appearance_settings">Uiterlijk</string>
|
<string name="menu_appearance_settings">Uiterlijk</string>
|
||||||
<string name="general">Algemeen</string>
|
<string name="general">Algemeen</string>
|
||||||
<string name="autofill">Auto-aanvullen</string>
|
<string name="autofill">Automatisch aanvullen</string>
|
||||||
<string name="autofill_service_name">KeePassDX auto-aanvullendienst</string>
|
<string name="autofill_service_name">KeePassDX dienst automatisch aanvullen</string>
|
||||||
<string name="autofill_sign_in_prompt">Inloggen met KeePassDX</string>
|
<string name="autofill_sign_in_prompt">Inloggen met KeePassDX</string>
|
||||||
<string name="set_autofill_service_title">Dienst automatisch aanvullen</string>
|
<string name="set_autofill_service_title">Dienst automatisch aanvullen</string>
|
||||||
<string name="autofill_explanation_summary">Schakel de dienst in om formulieren in andere apps in te vullen</string>
|
<string name="autofill_explanation_summary">Schakel de dienst in om formulieren in andere apps in te vullen</string>
|
||||||
@@ -440,7 +440,7 @@
|
|||||||
<string name="autofill_block_restart">Start de app met het formulier opnieuw op om de blokkering te activeren.</string>
|
<string name="autofill_block_restart">Start de app met het formulier opnieuw op om de blokkering te activeren.</string>
|
||||||
<string name="autofill_block">Blokkering van automatisch invullen</string>
|
<string name="autofill_block">Blokkering van automatisch invullen</string>
|
||||||
<string name="autofill_web_domain_blocklist_summary">Lijst die het automatisch invullen bij webdomeinen voorkomt</string>
|
<string name="autofill_web_domain_blocklist_summary">Lijst die het automatisch invullen bij webdomeinen voorkomt</string>
|
||||||
<string name="autofill_web_domain_blocklist_title">Webdomein blokkeringslijst</string>
|
<string name="autofill_web_domain_blocklist_title">Webdomein-blokkeringslijst</string>
|
||||||
<string name="autofill_application_id_blocklist_summary">Lijst die het automatisch invullen bij apps voorkomt</string>
|
<string name="autofill_application_id_blocklist_summary">Lijst die het automatisch invullen bij apps voorkomt</string>
|
||||||
<string name="autofill_application_id_blocklist_title">Applicatieblokkering</string>
|
<string name="autofill_application_id_blocklist_title">Applicatieblokkering</string>
|
||||||
<string name="filter">Filteren</string>
|
<string name="filter">Filteren</string>
|
||||||
@@ -474,7 +474,7 @@
|
|||||||
<string name="show_uuid_summary">Toont de UUID die is gekoppeld aan een item of een groep</string>
|
<string name="show_uuid_summary">Toont de UUID die is gekoppeld aan een item of een groep</string>
|
||||||
<string name="show_uuid_title">UUID tonen</string>
|
<string name="show_uuid_title">UUID tonen</string>
|
||||||
<string name="autofill_read_only_save">Het opslaan van gegevens is niet toegestaan voor een database die is geopend als alleen-lezen.</string>
|
<string name="autofill_read_only_save">Het opslaan van gegevens is niet toegestaan voor een database die is geopend als alleen-lezen.</string>
|
||||||
<string name="autofill_ask_to_save_data_summary">Vraag om gegevens op te slaan wanneer een formulier is gevalideerd</string>
|
<string name="autofill_ask_to_save_data_summary">Vraag om gegevens op te slaan wanneer het invullen van een formulier is voltooid</string>
|
||||||
<string name="autofill_ask_to_save_data_title">Vragen om gegevens op te slaan</string>
|
<string name="autofill_ask_to_save_data_title">Vragen om gegevens op te slaan</string>
|
||||||
<string name="autofill_save_search_info_summary">Probeer zoekinformatie op te slaan bij het maken van een handmatige selectie</string>
|
<string name="autofill_save_search_info_summary">Probeer zoekinformatie op te slaan bij het maken van een handmatige selectie</string>
|
||||||
<string name="autofill_save_search_info_title">Zoekinformatie opslaan</string>
|
<string name="autofill_save_search_info_title">Zoekinformatie opslaan</string>
|
||||||
@@ -614,4 +614,17 @@
|
|||||||
<string name="show_entry_colors_title">Itemkleuren</string>
|
<string name="show_entry_colors_title">Itemkleuren</string>
|
||||||
<string name="show_entry_colors_summary">Toont voorgrond- en achtergrondkleuren in een item</string>
|
<string name="show_entry_colors_summary">Toont voorgrond- en achtergrondkleuren in een item</string>
|
||||||
<string name="wireless">Wi-Fi</string>
|
<string name="wireless">Wi-Fi</string>
|
||||||
|
<string name="auto_type_sequence">Auto-Type tekenreeks</string>
|
||||||
|
<string name="expired">Verlopen</string>
|
||||||
|
<string name="menu_save_copy_to">Kopie opslaan naar…</string>
|
||||||
|
<string name="searchable">Doorzoekbaar</string>
|
||||||
|
<string name="inherited">Overerving</string>
|
||||||
|
<string name="custom_data">Aangepaste gegevens</string>
|
||||||
|
<string name="case_sensitive">Hoofdlettergevoelig</string>
|
||||||
|
<string name="regex">Reguliere expressie</string>
|
||||||
|
<string name="search_filters">Zoekfilters</string>
|
||||||
|
<string name="current_group">Huidige groep</string>
|
||||||
|
<string name="menu_merge_from">Samenvoegen van…</string>
|
||||||
|
<string name="navigation_drawer_open">Navigatiepaneel openen</string>
|
||||||
|
<string name="navigation_drawer_close">Navigatiepaneel sluiten</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
--><resources>
|
--><resources>
|
||||||
<string name="feedback">Informacje zwrotne</string>
|
<string name="feedback">Informacje zwrotne</string>
|
||||||
<string name="homepage">Strona główna</string>
|
<string name="homepage">Strona główna</string>
|
||||||
<string name="about_description">Implementacja Android dla menedżera haseł KeePass</string>
|
<string name="about_description">Implementacja menedżera haseł KeePass w systemie Android</string>
|
||||||
<string name="accept">Akceptuj</string>
|
<string name="accept">Akceptuj</string>
|
||||||
<string name="add_entry">Dodaj wpis</string>
|
<string name="add_entry">Dodaj wpis</string>
|
||||||
<string name="add_group">Dodaj grupę</string>
|
<string name="add_group">Dodaj grupę</string>
|
||||||
@@ -83,7 +83,7 @@
|
|||||||
<string name="lowercase">Małe litery</string>
|
<string name="lowercase">Małe litery</string>
|
||||||
<string name="hide_password_title">Ukryj hasła</string>
|
<string name="hide_password_title">Ukryj hasła</string>
|
||||||
<string name="hide_password_summary">Maskuj hasła (***) domyślnie</string>
|
<string name="hide_password_summary">Maskuj hasła (***) domyślnie</string>
|
||||||
<string name="about">O programie</string>
|
<string name="about">Informacje</string>
|
||||||
<string name="menu_change_key_settings">Zmień klucz główny</string>
|
<string name="menu_change_key_settings">Zmień klucz główny</string>
|
||||||
<string name="settings">Ustawienia</string>
|
<string name="settings">Ustawienia</string>
|
||||||
<string name="menu_database_settings">Ustawienia bazy danych</string>
|
<string name="menu_database_settings">Ustawienia bazy danych</string>
|
||||||
@@ -114,7 +114,7 @@
|
|||||||
<string name="underline">Podkreślenie</string>
|
<string name="underline">Podkreślenie</string>
|
||||||
<string name="unsupported_db_version">Nieobsługiwana wersja bazy danych.</string>
|
<string name="unsupported_db_version">Nieobsługiwana wersja bazy danych.</string>
|
||||||
<string name="uppercase">Wielkie litery</string>
|
<string name="uppercase">Wielkie litery</string>
|
||||||
<string name="education_unlock_summary">prowadź hasło i/lub plik klucza, aby odblokować bazę danych.
|
<string name="education_unlock_summary">Wprowadź hasło i/lub plik klucza, aby odblokować bazę danych.
|
||||||
\n
|
\n
|
||||||
\nUtwórz kopię zapasową pliku bazy danych w bezpiecznym miejscu po każdej zmianie.</string>
|
\nUtwórz kopię zapasową pliku bazy danych w bezpiecznym miejscu po każdej zmianie.</string>
|
||||||
<string-array name="list_size_options">
|
<string-array name="list_size_options">
|
||||||
@@ -163,8 +163,8 @@
|
|||||||
<string name="parallelism_explanation">Stopień równoległości (tj. liczba wątków) wykorzystywany przez funkcję wyprowadzania klucza.</string>
|
<string name="parallelism_explanation">Stopień równoległości (tj. liczba wątków) wykorzystywany przez funkcję wyprowadzania klucza.</string>
|
||||||
<string name="sort_menu">Sortuj</string>
|
<string name="sort_menu">Sortuj</string>
|
||||||
<string name="sort_ascending">Od najniższej ↓</string>
|
<string name="sort_ascending">Od najniższej ↓</string>
|
||||||
<string name="sort_username">Nazwa Użytkownika</string>
|
<string name="sort_username">Nazwa użytkownika</string>
|
||||||
<string name="sort_creation_time">Utwórz</string>
|
<string name="sort_creation_time">Utworzenie</string>
|
||||||
<string name="sort_last_modify_time">Modyfikacja</string>
|
<string name="sort_last_modify_time">Modyfikacja</string>
|
||||||
<string name="sort_last_access_time">Dostęp</string>
|
<string name="sort_last_access_time">Dostęp</string>
|
||||||
<string name="warning">Ostrzeżenie</string>
|
<string name="warning">Ostrzeżenie</string>
|
||||||
@@ -196,8 +196,8 @@
|
|||||||
<string name="lock">Blokada</string>
|
<string name="lock">Blokada</string>
|
||||||
<string name="lock_database_screen_off_title">Blokada ekranu</string>
|
<string name="lock_database_screen_off_title">Blokada ekranu</string>
|
||||||
<string name="lock_database_screen_off_summary">Zablokuj bazę danych po kilku sekundach od wyłączenia ekranu</string>
|
<string name="lock_database_screen_off_summary">Zablokuj bazę danych po kilku sekundach od wyłączenia ekranu</string>
|
||||||
<string name="advanced_unlock">Odcisk palca</string>
|
<string name="advanced_unlock">Zaawansowane odblokowywanie</string>
|
||||||
<string name="biometric_unlock_enable_title">Skanowanie odcisków palców</string>
|
<string name="biometric_unlock_enable_title">Odblokowywanie biometryczne</string>
|
||||||
<string name="biometric_unlock_enable_summary">Umożliwia zeskanowanie danych biometrycznych w celu otwarcia bazy danych</string>
|
<string name="biometric_unlock_enable_summary">Umożliwia zeskanowanie danych biometrycznych w celu otwarcia bazy danych</string>
|
||||||
<string name="biometric_delete_all_key_title">Usuń klucze szyfrowania</string>
|
<string name="biometric_delete_all_key_title">Usuń klucze szyfrowania</string>
|
||||||
<string name="biometric_delete_all_key_summary">Usuń wszystkie klucze szyfrujące związane z zaawansowanym rozpoznawaniem odblokowania</string>
|
<string name="biometric_delete_all_key_summary">Usuń wszystkie klucze szyfrujące związane z zaawansowanym rozpoznawaniem odblokowania</string>
|
||||||
@@ -260,20 +260,20 @@
|
|||||||
\n
|
\n
|
||||||
\nUżyj preferowanej metody wypełniania formularzy.</string>
|
\nUżyj preferowanej metody wypełniania formularzy.</string>
|
||||||
<string name="education_lock_title">Zablokuj bazę danych</string>
|
<string name="education_lock_title">Zablokuj bazę danych</string>
|
||||||
<string name="education_lock_summary">Szybko zablokuj bazę danych, możesz skonfigurować aplikację, by po chwili ją zablokować, i gdy ekran się wyłączy.</string>
|
<string name="education_lock_summary">Szybko zablokuj bazę danych, możesz skonfigurować aplikację tak, aby blokowała ją po pewnym czasie i po wyłączeniu ekranu.</string>
|
||||||
<string name="education_sort_title">Sortowanie elementów</string>
|
<string name="education_sort_title">Sortowanie elementów</string>
|
||||||
<string name="education_sort_summary">Wybierz sposób sortowania wpisów i grup.</string>
|
<string name="education_sort_summary">Wybierz sposób sortowania wpisów i grup.</string>
|
||||||
<string name="education_donation_title">Weź udział</string>
|
<string name="education_donation_title">Weź udział</string>
|
||||||
<string name="education_donation_summary">Pomóż zwiększyć stabilność, bezpieczeństwo i dodawanie kolejnych funkcji.</string>
|
<string name="education_donation_summary">Pomóż zwiększyć stabilność, bezpieczeństwo i dodawanie kolejnych funkcji.</string>
|
||||||
<string name="html_text_ad_free">W przeciwieństwie do wielu aplikacji do zarządzania hasłami, ta jest wolna od <strong>reklam</strong>, <strong>jest wolnym oprogramowaniem copyleftted</strong> i nie zbiera danych osobowych na swoich serwerach, bez względu na to, jakiej wersji używasz.</string>
|
<string name="html_text_ad_free">W przeciwieństwie do wielu aplikacji do zarządzania hasłami, ta jest wolna od <strong>reklam</strong>, <strong>jest wolnym oprogramowaniem objętym klauzulą copyleft</strong> i nie zbiera danych osobowych na swoich serwerach, bez względu na to, jakiej wersji używasz.</string>
|
||||||
<string name="html_text_buy_pro">Kupując wersję pro, będziesz mieć dostęp do <strong>stylu wizualnego</strong> a szczególnie pomożesz <strong> zrealizować projekty społecznościowe.</strong></string>
|
<string name="html_text_buy_pro">Kupując wersję pro, będziesz mieć dostęp do <strong>stylu wizualnego</strong> a szczególnie pomożesz <strong> zrealizować projekty społecznościowe.</strong></string>
|
||||||
<string name="html_text_feature_generosity">Ten <strong>styl wizualny</strong> jest dostępny dzięki Twojej hojności.</string>
|
<string name="html_text_feature_generosity">Ten <strong>styl wizualny</strong> jest dostępny dzięki Twojej hojności.</string>
|
||||||
<string name="html_text_donation">Aby zachować naszą wolność i być zawsze aktywnym, liczymy na Twój <strong>wkład.</strong></string>
|
<string name="html_text_donation">Aby zachować naszą wolność i być zawsze aktywnym, liczymy na Twój <strong>wkład.</strong></string>
|
||||||
<string name="html_text_dev_feature">Ta funkcja jest <strong>rozwojowa</strong> i wymaga twojego <strong>wkładu</strong> aby być wkrótce dostępną.</string>
|
<string name="html_text_dev_feature">Ta funkcja jest <strong>rozwojowa</strong> i wymaga Twojego <strong>wkładu</strong>, aby być wkrótce dostępną.</string>
|
||||||
<string name="html_text_dev_feature_buy_pro">Kupując wersję <strong>pro</strong> wersja,</string>
|
<string name="html_text_dev_feature_buy_pro">Kupując wersję <strong>pro</strong>,</string>
|
||||||
<string name="html_text_dev_feature_contibute">Przez <strong>przyczynianie się</strong>,</string>
|
<string name="html_text_dev_feature_contibute">Przez <strong>przyczynianie się</strong>,</string>
|
||||||
<string name="html_text_dev_feature_encourage">zachęcasz programistów do tworzenia <strong>nowych funkcji</strong> i <strong>naprawy błędów</strong> zgodnie z Twoimi uwagami.</string>
|
<string name="html_text_dev_feature_encourage">zachęcasz programistów do tworzenia <strong>nowych funkcji</strong> i <strong>naprawy błędów</strong> zgodnie z Twoimi uwagami.</string>
|
||||||
<string name="html_text_dev_feature_thanks">Wielkie dzięki za twój wkład.</string>
|
<string name="html_text_dev_feature_thanks">Wielkie dzięki za Twój wkład.</string>
|
||||||
<string name="html_text_dev_feature_work_hard">Ciężko pracujemy, aby szybko udostępnić tę funkcję.</string>
|
<string name="html_text_dev_feature_work_hard">Ciężko pracujemy, aby szybko udostępnić tę funkcję.</string>
|
||||||
<string name="html_text_dev_feature_upgrade">Pamiętaj, aby aktualizować swoją aplikację, instalując nowe wersje.</string>
|
<string name="html_text_dev_feature_upgrade">Pamiętaj, aby aktualizować swoją aplikację, instalując nowe wersje.</string>
|
||||||
<string name="download">Pobieranie</string>
|
<string name="download">Pobieranie</string>
|
||||||
@@ -367,7 +367,7 @@
|
|||||||
<string name="database_default_username_title">Domyślna nazwa użytkownika</string>
|
<string name="database_default_username_title">Domyślna nazwa użytkownika</string>
|
||||||
<string name="database_custom_color_title">Niestandardowy kolor bazy danych</string>
|
<string name="database_custom_color_title">Niestandardowy kolor bazy danych</string>
|
||||||
<string name="compression">Kompresja</string>
|
<string name="compression">Kompresja</string>
|
||||||
<string name="compression_none">Żaden</string>
|
<string name="compression_none">Żadna</string>
|
||||||
<string name="compression_gzip">Gzip</string>
|
<string name="compression_gzip">Gzip</string>
|
||||||
<string name="device_keyboard_setting_title">Ustawienia klawiatury urządzenia</string>
|
<string name="device_keyboard_setting_title">Ustawienia klawiatury urządzenia</string>
|
||||||
<string name="error_invalid_OTP">Nieprawidłowy klucz tajny OTP.</string>
|
<string name="error_invalid_OTP">Nieprawidłowy klucz tajny OTP.</string>
|
||||||
@@ -377,7 +377,7 @@
|
|||||||
<string name="error_otp_period">Okres musi wynosić od %1$d do %2$d sekund.</string>
|
<string name="error_otp_period">Okres musi wynosić od %1$d do %2$d sekund.</string>
|
||||||
<string name="error_otp_digits">Token musi zawierać cyfry od %1$d do %2$d.</string>
|
<string name="error_otp_digits">Token musi zawierać cyfry od %1$d do %2$d.</string>
|
||||||
<string name="invalid_db_same_uuid">%1$s o tym samym identyfikatorze UUID %2$s już istnieje.</string>
|
<string name="invalid_db_same_uuid">%1$s o tym samym identyfikatorze UUID %2$s już istnieje.</string>
|
||||||
<string name="contains_duplicate_uuid_procedure">Rozwiązać problem poprzez stworzenie nowych identyfikatory UUID duplikatów, aby kontynuować\?</string>
|
<string name="contains_duplicate_uuid_procedure">Rozwiązać problem, generując nowe identyfikatory UUID dla duplikatów, aby kontynuować\?</string>
|
||||||
<string name="clipboard_explanation_summary">Skopiuj pola wprowadzania danych za pomocą schowka urządzenia</string>
|
<string name="clipboard_explanation_summary">Skopiuj pola wprowadzania danych za pomocą schowka urządzenia</string>
|
||||||
<string name="advanced_unlock_explanation_summary">Użyj zaawansowanego odblokowywania w celu łatwiejszego otwierania bazy danych</string>
|
<string name="advanced_unlock_explanation_summary">Użyj zaawansowanego odblokowywania w celu łatwiejszego otwierania bazy danych</string>
|
||||||
<string name="database_data_compression_summary">Kompresja danych zmniejsza rozmiar bazy danych</string>
|
<string name="database_data_compression_summary">Kompresja danych zmniejsza rozmiar bazy danych</string>
|
||||||
@@ -408,7 +408,7 @@
|
|||||||
<string name="hide_expired_entries_title">Ukryj wygasłe wpisy</string>
|
<string name="hide_expired_entries_title">Ukryj wygasłe wpisy</string>
|
||||||
<string name="hide_expired_entries_summary">Wygasłe wpisy nie są wyświetlane</string>
|
<string name="hide_expired_entries_summary">Wygasłe wpisy nie są wyświetlane</string>
|
||||||
<string name="contact">Kontakt</string>
|
<string name="contact">Kontakt</string>
|
||||||
<string name="html_about_contribution">Aby <strong>zachować naszą wolność</strong>, <strong>sprawdzać błędy</strong>, <strong>dodać funkcje</strong> i <strong>by być zawsze aktywnym</strong>, liczymy na twój <strong>wkład</strong>.</string>
|
<string name="html_about_contribution">Aby <strong>zachować naszą wolność</strong>, <strong>sprawdzać błędy</strong>, <strong>dodawać funkcje</strong> i <strong> być zawsze aktywnym</strong>, liczymy na Twój <strong>wkład</strong>.</string>
|
||||||
<string name="auto_focus_search_title">Szybkie wyszukiwanie</string>
|
<string name="auto_focus_search_title">Szybkie wyszukiwanie</string>
|
||||||
<string name="auto_focus_search_summary">Wyszukiwanie po otwarciu bazy danych</string>
|
<string name="auto_focus_search_summary">Wyszukiwanie po otwarciu bazy danych</string>
|
||||||
<string name="remember_database_locations_title">Zapamiętaj lokalizacje baz danych</string>
|
<string name="remember_database_locations_title">Zapamiętaj lokalizacje baz danych</string>
|
||||||
@@ -445,7 +445,7 @@
|
|||||||
<string name="subdomain_search_summary">Wyszukiwanie domen internetowych z ograniczeniami związanymi z subdomenami</string>
|
<string name="subdomain_search_summary">Wyszukiwanie domen internetowych z ograniczeniami związanymi z subdomenami</string>
|
||||||
<string name="error_string_type">Ten tekst nie pasuje do żądanej pozycji.</string>
|
<string name="error_string_type">Ten tekst nie pasuje do żądanej pozycji.</string>
|
||||||
<string name="content_description_add_item">Dodaj pozycję</string>
|
<string name="content_description_add_item">Dodaj pozycję</string>
|
||||||
<string name="autofill_web_domain_blocklist_summary">Lista zablokowanych, która uniemożliwia automatyczne wypełnianie aplikacji</string>
|
<string name="autofill_web_domain_blocklist_summary">Lista zablokowanych, która uniemożliwia automatyczne wypełnianie domen internetowych</string>
|
||||||
<string name="autofill_web_domain_blocklist_title">Lista zablokowanych domen internetowych</string>
|
<string name="autofill_web_domain_blocklist_title">Lista zablokowanych domen internetowych</string>
|
||||||
<string name="autofill_application_id_blocklist_title">Lista zablokowanych aplikacji</string>
|
<string name="autofill_application_id_blocklist_title">Lista zablokowanych aplikacji</string>
|
||||||
<string name="keyboard_previous_fill_in_summary">Automatycznie przełącz się z powrotem na poprzednią klawiaturę po wykonaniu automatycznej akcji klawiszy</string>
|
<string name="keyboard_previous_fill_in_summary">Automatycznie przełącz się z powrotem na poprzednią klawiaturę po wykonaniu automatycznej akcji klawiszy</string>
|
||||||
@@ -496,9 +496,9 @@
|
|||||||
<string name="select_entry">Wybierz pozycję</string>
|
<string name="select_entry">Wybierz pozycję</string>
|
||||||
<string name="back_to_previous_keyboard">Wróć do poprzedniej klawiatury</string>
|
<string name="back_to_previous_keyboard">Wróć do poprzedniej klawiatury</string>
|
||||||
<string name="custom_fields">Pola niestandardowe</string>
|
<string name="custom_fields">Pola niestandardowe</string>
|
||||||
<string name="advanced_unlock_delete_all_key_warning">Czy usunąć wszystkie klucze szyfrowania związane z zaawansowanym rozpoznawaniem odblokowania\?</string>
|
<string name="advanced_unlock_delete_all_key_warning">Czy usunąć wszystkie klucze szyfrowania związane z zaawansowanym rozpoznawaniem odblokowywania\?</string>
|
||||||
<string name="device_credential_unlock_enable_summary">Umożliwia otwieranie bazy danych za pomocą poświadczeń urządzenia</string>
|
<string name="device_credential_unlock_enable_summary">Umożliwia otwieranie bazy danych za pomocą poświadczeń urządzenia</string>
|
||||||
<string name="device_credential_unlock_enable_title">Odblokowanie uwierzytelniające urządzenia</string>
|
<string name="device_credential_unlock_enable_title">Odblokowywanie uwierzytelniające urządzenia</string>
|
||||||
<string name="device_credential">Uwierzytelnienie urządzenia</string>
|
<string name="device_credential">Uwierzytelnienie urządzenia</string>
|
||||||
<string name="credential_before_click_advanced_unlock_button">Wpisz hasło, a następnie kliknij ten przycisk.</string>
|
<string name="credential_before_click_advanced_unlock_button">Wpisz hasło, a następnie kliknij ten przycisk.</string>
|
||||||
<string name="advanced_unlock_not_recognized">Nie można rozpoznać zaawansowanego wydruku odblokowującego</string>
|
<string name="advanced_unlock_not_recognized">Nie można rozpoznać zaawansowanego wydruku odblokowującego</string>
|
||||||
@@ -511,7 +511,7 @@
|
|||||||
<string name="education_advanced_unlock_title">Zaawansowane odblokowywanie bazy danych</string>
|
<string name="education_advanced_unlock_title">Zaawansowane odblokowywanie bazy danych</string>
|
||||||
<string name="advanced_unlock_timeout">Limit czasu zaawansowanego odblokowywania</string>
|
<string name="advanced_unlock_timeout">Limit czasu zaawansowanego odblokowywania</string>
|
||||||
<string name="temp_advanced_unlock_timeout_summary">Czas trwania zaawansowanego odblokowywania przed usunięciem jego zawartości</string>
|
<string name="temp_advanced_unlock_timeout_summary">Czas trwania zaawansowanego odblokowywania przed usunięciem jego zawartości</string>
|
||||||
<string name="temp_advanced_unlock_timeout_title">Wygaśnięcie zaawansowanego odblokowania</string>
|
<string name="temp_advanced_unlock_timeout_title">Wygaśnięcie zaawansowanego odblokowywania</string>
|
||||||
<string name="temp_advanced_unlock_enable_summary">Nie przechowuj żadnych zaszyfrowanych treści, aby korzystać z zaawansowanego odblokowywania</string>
|
<string name="temp_advanced_unlock_enable_summary">Nie przechowuj żadnych zaszyfrowanych treści, aby korzystać z zaawansowanego odblokowywania</string>
|
||||||
<string name="advanced_unlock_tap_delete">Naciśnij, aby usunąć zaawansowane klucze odblokowujące</string>
|
<string name="advanced_unlock_tap_delete">Naciśnij, aby usunąć zaawansowane klucze odblokowujące</string>
|
||||||
<string name="content">Zawartość</string>
|
<string name="content">Zawartość</string>
|
||||||
@@ -524,7 +524,7 @@
|
|||||||
<string name="autofill_inline_suggestions_summary">Spróbuj wyświetlić sugestie autouzupełniania bezpośrednio z kompatybilnej klawiatury</string>
|
<string name="autofill_inline_suggestions_summary">Spróbuj wyświetlić sugestie autouzupełniania bezpośrednio z kompatybilnej klawiatury</string>
|
||||||
<string name="temp_advanced_unlock_enable_title">Zaawansowane odblokowywanie tymczasowe</string>
|
<string name="temp_advanced_unlock_enable_title">Zaawansowane odblokowywanie tymczasowe</string>
|
||||||
<string name="advanced_unlock_prompt_not_initialized">Nie można zainicjować monitu odblokowania zaawansowanego.</string>
|
<string name="advanced_unlock_prompt_not_initialized">Nie można zainicjować monitu odblokowania zaawansowanego.</string>
|
||||||
<string name="open_advanced_unlock_prompt_store_credential">Otwórz monit odblokowania zaawansowanego, aby odblokować bazę danych</string>
|
<string name="open_advanced_unlock_prompt_store_credential">Otwórz monit odblokowania zaawansowanego, aby przechowywać poświadczenia</string>
|
||||||
<string name="open_advanced_unlock_prompt_unlock_database">Otwórz monit odblokowania zaawansowanego, aby odblokować bazę danych</string>
|
<string name="open_advanced_unlock_prompt_unlock_database">Otwórz monit odblokowania zaawansowanego, aby odblokować bazę danych</string>
|
||||||
<string name="warning_database_revoked">Dostęp do pliku odwołany przez menedżera plików, zamknij bazę danych i otwórz ją ponownie z jej lokalizacji.</string>
|
<string name="warning_database_revoked">Dostęp do pliku odwołany przez menedżera plików, zamknij bazę danych i otwórz ją ponownie z jej lokalizacji.</string>
|
||||||
<string name="warning_database_info_changed_options">Scal dane, zastąp modyfikacje zewnętrzne poprzez zapisanie bazy danych lub ponownie załaduj ją z najnowszymi zmianam.</string>
|
<string name="warning_database_info_changed_options">Scal dane, zastąp modyfikacje zewnętrzne poprzez zapisanie bazy danych lub ponownie załaduj ją z najnowszymi zmianam.</string>
|
||||||
|
|||||||
@@ -284,7 +284,7 @@
|
|||||||
<string name="list_entries_show_username_title">Mostrar nomes de usuário</string>
|
<string name="list_entries_show_username_title">Mostrar nomes de usuário</string>
|
||||||
<string name="list_entries_show_username_summary">Exibe nomes de usuário em listas de entrada</string>
|
<string name="list_entries_show_username_summary">Exibe nomes de usuário em listas de entrada</string>
|
||||||
<string name="clipboard">Área de transferência</string>
|
<string name="clipboard">Área de transferência</string>
|
||||||
<string name="build_label">Build %1$s</string>
|
<string name="build_label">Compilação %1$s</string>
|
||||||
<string name="keyboard_name">Magikeyboard</string>
|
<string name="keyboard_name">Magikeyboard</string>
|
||||||
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
|
<string name="keyboard_label">Magikeyboard (KeePassDX)</string>
|
||||||
<string name="keyboard_setting_label">Configurações do Magikeyboard</string>
|
<string name="keyboard_setting_label">Configurações do Magikeyboard</string>
|
||||||
@@ -561,7 +561,7 @@
|
|||||||
<string name="education_advanced_unlock_title">Desbloqueio avançado de banco de dados</string>
|
<string name="education_advanced_unlock_title">Desbloqueio avançado de banco de dados</string>
|
||||||
<string name="autofill_inline_suggestions_keyboard">Sugestões de preenchimento automático adicionadas.</string>
|
<string name="autofill_inline_suggestions_keyboard">Sugestões de preenchimento automático adicionadas.</string>
|
||||||
<string name="autofill_read_only_save">A salvação de dados não é permitida para um banco de dados aberto apenas como leitura.</string>
|
<string name="autofill_read_only_save">A salvação de dados não é permitida para um banco de dados aberto apenas como leitura.</string>
|
||||||
<string name="autofill_ask_to_save_data_summary">Pedir para salvar dados quando um formulário for validado</string>
|
<string name="autofill_ask_to_save_data_summary">Pedir para salvar dados ao terminar de preencher um formulário</string>
|
||||||
<string name="autofill_ask_to_save_data_title">Perguntar para salvar dados</string>
|
<string name="autofill_ask_to_save_data_title">Perguntar para salvar dados</string>
|
||||||
<string name="autofill_save_search_info_summary">Tente salvar informações de pesquisa ao fazer uma seleção manual de entrada</string>
|
<string name="autofill_save_search_info_summary">Tente salvar informações de pesquisa ao fazer uma seleção manual de entrada</string>
|
||||||
<string name="autofill_save_search_info_title">Salvar informações de busca</string>
|
<string name="autofill_save_search_info_title">Salvar informações de busca</string>
|
||||||
@@ -609,7 +609,7 @@
|
|||||||
<string name="enable_keep_screen_on_summary">Mantenha a tela ligada enquanto estiver vendo a entrada</string>
|
<string name="enable_keep_screen_on_summary">Mantenha a tela ligada enquanto estiver vendo a entrada</string>
|
||||||
<string name="show_entry_colors_title">Cores de entrada</string>
|
<string name="show_entry_colors_title">Cores de entrada</string>
|
||||||
<string name="show_entry_colors_summary">Exibe as cores de primeiro plano e de fundo em uma entrada</string>
|
<string name="show_entry_colors_summary">Exibe as cores de primeiro plano e de fundo em uma entrada</string>
|
||||||
<string name="error_move_group_here">Você não pode mover um grupo aqui.</string>
|
<string name="error_move_group_here">Você não pode mover um grupo pra cá.</string>
|
||||||
<string name="wireless">Wi-Fi</string>
|
<string name="wireless">Wi-Fi</string>
|
||||||
<string name="warning_keyfile_integrity">O hash do arquivo não é garantido porque o Android pode alterar seus dados em tempo real. Altere a extensão do arquivo para .bin para obter a integridade correta.</string>
|
<string name="warning_keyfile_integrity">O hash do arquivo não é garantido porque o Android pode alterar seus dados em tempo real. Altere a extensão do arquivo para .bin para obter a integridade correta.</string>
|
||||||
<string name="content_description_nav_header">Cabeçalho de navegação</string>
|
<string name="content_description_nav_header">Cabeçalho de navegação</string>
|
||||||
@@ -620,4 +620,10 @@
|
|||||||
<string name="menu_merge_from">Mesclar de…</string>
|
<string name="menu_merge_from">Mesclar de…</string>
|
||||||
<string name="menu_save_copy_to">Salvar uma cópia em…</string>
|
<string name="menu_save_copy_to">Salvar uma cópia em…</string>
|
||||||
<string name="navigation_drawer_close">Gaveta de navegação fechada</string>
|
<string name="navigation_drawer_close">Gaveta de navegação fechada</string>
|
||||||
|
<string name="expired">Expirou</string>
|
||||||
|
<string name="regex">Expressão regular</string>
|
||||||
|
<string name="auto_type_sequence">Sequência de preenchimento automático</string>
|
||||||
|
<string name="search_filters">Filtros de pesquisa</string>
|
||||||
|
<string name="case_sensitive">Sensível a maiúsculas e minúsculas</string>
|
||||||
|
<string name="current_group">Grupo atual</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -603,4 +603,5 @@
|
|||||||
<string name="navigation_drawer_close">Gaveta de navegação fechada</string>
|
<string name="navigation_drawer_close">Gaveta de navegação fechada</string>
|
||||||
<string name="inherited">Herdar</string>
|
<string name="inherited">Herdar</string>
|
||||||
<string name="menu_merge_from">Unir de…</string>
|
<string name="menu_merge_from">Unir de…</string>
|
||||||
|
<string name="expired">Expirou</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!--
|
|
||||||
Copyright 2017 Jeremy Jamet / Kunzisoft.
|
|
||||||
|
|
||||||
This file is part of KeePassDX.
|
|
||||||
|
|
||||||
KeePassDX 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.
|
|
||||||
|
|
||||||
KeePassDX 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 KeePassDX. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
-->
|
|
||||||
<resources>
|
|
||||||
<bool name="biometric_unlock_enable_default" translatable="true">true</bool>
|
|
||||||
<bool name="device_credential_unlock_enable_default" translatable="true">true</bool>
|
|
||||||
</resources>
|
|
||||||
@@ -331,6 +331,7 @@
|
|||||||
<string name="warning_password_encoding">Avoid password characters outside of text encoding format in database file (unrecognized chars are converted to the same letter).</string>
|
<string name="warning_password_encoding">Avoid password characters outside of text encoding format in database file (unrecognized chars are converted to the same letter).</string>
|
||||||
<string name="warning_database_read_only">Grant file write access to save database changes</string>
|
<string name="warning_database_read_only">Grant file write access to save database changes</string>
|
||||||
<string name="warning_database_link_revoked">Access to the file revoked by the file manager</string>
|
<string name="warning_database_link_revoked">Access to the file revoked by the file manager</string>
|
||||||
|
<string name="warning_database_already_opened">A database is already open, close it first to open the new one</string>
|
||||||
<string name="warning_empty_password">Continue without password unlocking protection?</string>
|
<string name="warning_empty_password">Continue without password unlocking protection?</string>
|
||||||
<string name="warning_no_encryption_key">Continue without encryption key?</string>
|
<string name="warning_no_encryption_key">Continue without encryption key?</string>
|
||||||
<string name="warning_permanently_delete_nodes">Permanently delete selected nodes?</string>
|
<string name="warning_permanently_delete_nodes">Permanently delete selected nodes?</string>
|
||||||
@@ -357,7 +358,7 @@
|
|||||||
<string name="open_advanced_unlock_prompt_unlock_database">Open the advanced unlock prompt to unlock the database</string>
|
<string name="open_advanced_unlock_prompt_unlock_database">Open the advanced unlock prompt to unlock the database</string>
|
||||||
<string name="open_advanced_unlock_prompt_store_credential">Open the advanced unlock prompt to store credentials</string>
|
<string name="open_advanced_unlock_prompt_store_credential">Open the advanced unlock prompt to store credentials</string>
|
||||||
<string name="advanced_unlock_prompt_store_credential_title">Advanced unlock recognition</string>
|
<string name="advanced_unlock_prompt_store_credential_title">Advanced unlock recognition</string>
|
||||||
<string name="advanced_unlock_prompt_store_credential_message">Warning: You still need to remember your master password if you use advanced unlock recognition.</string>
|
<string name="advanced_unlock_prompt_store_credential_message">You still need to remember your main credential if you use advanced unlock recognition.</string>
|
||||||
<string name="advanced_unlock_prompt_extract_credential_title">Open database with advanced unlock recognition</string>
|
<string name="advanced_unlock_prompt_extract_credential_title">Open database with advanced unlock recognition</string>
|
||||||
<string name="advanced_unlock_prompt_extract_credential_message">Extract database credential with advanced unlock data</string>
|
<string name="advanced_unlock_prompt_extract_credential_message">Extract database credential with advanced unlock data</string>
|
||||||
<string name="encrypted_value_stored">Encrypted password stored</string>
|
<string name="encrypted_value_stored">Encrypted password stored</string>
|
||||||
@@ -415,6 +416,7 @@
|
|||||||
<string name="biometric_delete_all_key_title">Delete encryption keys</string>
|
<string name="biometric_delete_all_key_title">Delete encryption keys</string>
|
||||||
<string name="biometric_delete_all_key_summary">Delete all encryption keys related to advanced unlock recognition</string>
|
<string name="biometric_delete_all_key_summary">Delete all encryption keys related to advanced unlock recognition</string>
|
||||||
<string name="advanced_unlock_delete_all_key_warning">Delete all encryption keys related to advanced unlock recognition?</string>
|
<string name="advanced_unlock_delete_all_key_warning">Delete all encryption keys related to advanced unlock recognition?</string>
|
||||||
|
<string name="advanced_unlock_keystore_warning">This feature will store encrypted credential data in the secure KeyStore of your device.\n\nDepending on the native API implementation of the operating system, it may not be fully functional.\nCheck the compatibility and security of the KeyStore with the manufacturer of your device and the creator of the ROM you are using.</string>
|
||||||
<string name="unavailable_feature_text">Could not start this feature.</string>
|
<string name="unavailable_feature_text">Could not start this feature.</string>
|
||||||
<string name="unavailable_feature_version">The device is running Android %1$s, but needs %2$s or later.</string>
|
<string name="unavailable_feature_version">The device is running Android %1$s, but needs %2$s or later.</string>
|
||||||
<string name="unavailable_feature_hardware">Could not find the corresponding hardware.</string>
|
<string name="unavailable_feature_hardware">Could not find the corresponding hardware.</string>
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
<item name="educationTextColor">@color/white</item>
|
<item name="educationTextColor">@color/white</item>
|
||||||
|
|
||||||
<item name="android:textColor">@color/text_color_light</item>
|
<item name="android:textColor">@color/text_color_light</item>
|
||||||
|
<item name="android:textColorLink">@color/text_color_light</item>
|
||||||
<item name="android:editTextColor">@color/grey_light</item>
|
<item name="android:editTextColor">@color/grey_light</item>
|
||||||
<item name="textColorInverse">@color/grey_light</item>
|
<item name="textColorInverse">@color/grey_light</item>
|
||||||
<item name="android:textColorPrimaryInverse">@color/grey_light</item>
|
<item name="android:textColorPrimaryInverse">@color/grey_light</item>
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
<item name="educationTextColor">@color/white</item>
|
<item name="educationTextColor">@color/white</item>
|
||||||
|
|
||||||
<item name="android:textColor">@color/text_color_light</item>
|
<item name="android:textColor">@color/text_color_light</item>
|
||||||
|
<item name="android:textColorLink">@color/text_color_light</item>
|
||||||
<item name="android:editTextColor">@color/grey_light</item>
|
<item name="android:editTextColor">@color/grey_light</item>
|
||||||
<item name="textColorInverse">@color/grey_light</item>
|
<item name="textColorInverse">@color/grey_light</item>
|
||||||
<item name="android:textColorPrimaryInverse">@color/grey_light</item>
|
<item name="android:textColorPrimaryInverse">@color/grey_light</item>
|
||||||
|
|||||||
@@ -46,6 +46,7 @@
|
|||||||
<item name="educationTextColor">@color/white</item>
|
<item name="educationTextColor">@color/white</item>
|
||||||
|
|
||||||
<item name="android:textColor">@color/text_color_light</item>
|
<item name="android:textColor">@color/text_color_light</item>
|
||||||
|
<item name="android:textColorLink">@color/text_color_light</item>
|
||||||
<item name="android:editTextColor">@color/grey_light</item>
|
<item name="android:editTextColor">@color/grey_light</item>
|
||||||
<item name="textColorInverse">@color/grey_light</item>
|
<item name="textColorInverse">@color/grey_light</item>
|
||||||
<item name="android:textColorPrimaryInverse">@color/grey_light</item>
|
<item name="android:textColorPrimaryInverse">@color/grey_light</item>
|
||||||
|
|||||||
@@ -57,6 +57,7 @@
|
|||||||
<item name="cardBackgroundTransparentColor">#DDFFFFFF</item>
|
<item name="cardBackgroundTransparentColor">#DDFFFFFF</item>
|
||||||
|
|
||||||
<item name="android:textColor">@color/text_color_light</item>
|
<item name="android:textColor">@color/text_color_light</item>
|
||||||
|
<item name="android:textColorLink">@color/text_color_light</item>
|
||||||
<item name="android:editTextColor">@color/grey_light</item>
|
<item name="android:editTextColor">@color/grey_light</item>
|
||||||
<item name="textColorInverse">@color/white</item>
|
<item name="textColorInverse">@color/white</item>
|
||||||
<item name="android:textColorPrimary">@color/green_light</item>
|
<item name="android:textColorPrimary">@color/green_light</item>
|
||||||
@@ -127,6 +128,7 @@
|
|||||||
<item name="cardBackgroundTransparentColor">@color/grey_dark_transparent</item>
|
<item name="cardBackgroundTransparentColor">@color/grey_dark_transparent</item>
|
||||||
|
|
||||||
<item name="android:textColor">@color/text_color_night</item>
|
<item name="android:textColor">@color/text_color_night</item>
|
||||||
|
<item name="android:textColorLink">@color/text_color_night</item>
|
||||||
<item name="android:editTextColor">@color/white</item>
|
<item name="android:editTextColor">@color/white</item>
|
||||||
<item name="textColorInverse">@color/white</item>
|
<item name="textColorInverse">@color/white</item>
|
||||||
<item name="android:textColorPrimary">@color/green_light</item>
|
<item name="android:textColorPrimary">@color/green_light</item>
|
||||||
|
|||||||
Binary file not shown.
6
fastlane/metadata/android/en-US/changelogs/105.txt
Normal file
6
fastlane/metadata/android/en-US/changelogs/105.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
* Fix shared otpauth link if database not open #1274
|
||||||
|
* Ellipsize attachment name #1253
|
||||||
|
* Add a warning to inform about KeyStore usage #1269
|
||||||
|
* Fingerprint unlock no more by default #1273
|
||||||
|
* Tabs to show main and advanced content separately
|
||||||
|
* Fix URL color
|
||||||
6
fastlane/metadata/android/fr-FR/changelogs/105.txt
Normal file
6
fastlane/metadata/android/fr-FR/changelogs/105.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
* Correction du partage d'un lien otpauth si la base de données n'est pas ouverte #1274
|
||||||
|
* Ellipsize le nom d'attachment #1253
|
||||||
|
* Ajouter un avertissement pour informer de l'utilisation de KeyStore #1269
|
||||||
|
* Déblocage par empreinte n'est plus par défaut #1273
|
||||||
|
* Onglets pour afficher séparément le contenu principal et le contenu avancé
|
||||||
|
* Correction de couleur d'URL
|
||||||
Reference in New Issue
Block a user