mirror of
https://github.com/Kunzisoft/KeePassDX.git
synced 2025-12-04 15:49:33 +01:00
Compare commits
69 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
28ccaffcf5 | ||
|
|
78739558d6 | ||
|
|
cd195d30de | ||
|
|
03bf752284 | ||
|
|
238fab3e1d | ||
|
|
fcd9af8f84 | ||
|
|
b44491ebbe | ||
|
|
1f8018fd5b | ||
|
|
1d67656fa0 | ||
|
|
64b8023d1a | ||
|
|
cc1697e7ec | ||
|
|
28943e77e8 | ||
|
|
575109da9f | ||
|
|
a99667d471 | ||
|
|
6a7420bd3a | ||
|
|
e8dbe05615 | ||
|
|
6b6566cd29 | ||
|
|
0001d31c2c | ||
|
|
974686e698 | ||
|
|
7b7063b9be | ||
|
|
55061a9469 | ||
|
|
c433fb643c | ||
|
|
02306385b6 | ||
|
|
432ac1bcec | ||
|
|
d9480e0c9a | ||
|
|
815fb911d6 | ||
|
|
68cbdae8e0 | ||
|
|
2d8f8aeef3 | ||
|
|
479bc7be71 | ||
|
|
cbc6df2e62 | ||
|
|
d16b4cfadb | ||
|
|
a97bad1f86 | ||
|
|
7198ffff43 | ||
|
|
e173159d13 | ||
|
|
1b54b79e88 | ||
|
|
bb3436615e | ||
|
|
809db61c35 | ||
|
|
88e53fcba8 | ||
|
|
fe68b7e294 | ||
|
|
b7b76d6da7 | ||
|
|
e2eae43fc9 | ||
|
|
f41ecec09c | ||
|
|
15ad4d11ef | ||
|
|
0cf9d98f14 | ||
|
|
612e642523 | ||
|
|
0ff77eb157 | ||
|
|
2b8935a5d7 | ||
|
|
afdc5c8460 | ||
|
|
91ba2dff2d | ||
|
|
2d26079c49 | ||
|
|
f13d99e0d1 | ||
|
|
798c95d8a8 | ||
|
|
ef77c2acfb | ||
|
|
11a98267a2 | ||
|
|
b2aa1155d0 | ||
|
|
d3182b8d2a | ||
|
|
f52d139acc | ||
|
|
87e9a38548 | ||
|
|
faa70c57b3 | ||
|
|
5172c07c18 | ||
|
|
a80fa03db4 | ||
|
|
d73e02948e | ||
|
|
283657e1b7 | ||
|
|
d3c4a3a17e | ||
|
|
9184bc40e5 | ||
|
|
84bd98ebf4 | ||
|
|
4ef2cbcaeb | ||
|
|
35f8b45bf4 | ||
|
|
5d6aac2d1b |
15
CHANGELOG
15
CHANGELOG
@@ -1,3 +1,18 @@
|
||||
KeePassDX(4.0.4)
|
||||
* Fix form filled recognition #1572 #1677
|
||||
* Fix device unlock #1682
|
||||
* Fix password color #1490
|
||||
|
||||
KeePassDX(4.0.3)
|
||||
* Fix "Save as" in Read Only mode #1666
|
||||
* Fix username autofill #1665 #530 #1572 #1426 #1523 #1556 #1653 #1658 #1508 #1667
|
||||
* Fix regex OTP recognition #1596
|
||||
* Change password color dynamically #1490
|
||||
* Small fixes #1641 #1656 #1649 #1400 #1674
|
||||
|
||||
KeePassDX(4.0.2)
|
||||
* Fix Autofill with API 33
|
||||
|
||||
KeePassDX(4.0.1)
|
||||
* Fix back lock #1635 #1629 #1634
|
||||
* Fix lock button in settings #1630
|
||||
|
||||
@@ -48,11 +48,11 @@ Optional visual styles are accessible after a contribution (and a congratulatory
|
||||
|
||||
## Download
|
||||
|
||||
*[F-Droid](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/) is the recommended way of installing, a libre software project that verifies that all the libraries and app code is libre software.*
|
||||
*[F-Droid](https://f-droid.org/packages/com.kunzisoft.keepass.libre/) is the recommended way of installing, a libre software project that verifies that all the libraries and app code is libre software.*
|
||||
|
||||
[<img src="https://f-droid.org/badge/get-it-on.png"
|
||||
alt="Get it on F-Droid"
|
||||
height="80">](https://f-droid.org/en/packages/com.kunzisoft.keepass.libre/)
|
||||
height="80">](https://f-droid.org/packages/com.kunzisoft.keepass.libre/)
|
||||
[<img src="https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png"
|
||||
alt="Get it on Google Play"
|
||||
height="80">](https://play.google.com/store/apps/details?id=com.kunzisoft.keepass.free)
|
||||
|
||||
@@ -12,8 +12,8 @@ android {
|
||||
applicationId "com.kunzisoft.keepass"
|
||||
minSdkVersion 15
|
||||
targetSdkVersion 33
|
||||
versionCode = 124
|
||||
versionName = "4.0.1"
|
||||
versionCode = 127
|
||||
versionName = "4.0.4"
|
||||
multiDexEnabled true
|
||||
|
||||
testApplicationId = "com.kunzisoft.keepass.tests"
|
||||
|
||||
@@ -25,6 +25,7 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.activity.result.ActivityResultLauncher
|
||||
import androidx.annotation.RequiresApi
|
||||
@@ -44,6 +45,7 @@ import com.kunzisoft.keepass.settings.PreferencesUtil
|
||||
import com.kunzisoft.keepass.utils.getParcelableCompat
|
||||
import com.kunzisoft.keepass.utils.getParcelableExtraCompat
|
||||
import com.kunzisoft.keepass.utils.WebDomain
|
||||
import java.lang.RuntimeException
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.O)
|
||||
class AutofillLauncherActivity : DatabaseModeActivity() {
|
||||
@@ -216,6 +218,8 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
|
||||
|
||||
companion object {
|
||||
|
||||
private val TAG = AutofillLauncherActivity::class.java.name
|
||||
|
||||
private const val KEY_SELECTION_BUNDLE = "KEY_SELECTION_BUNDLE"
|
||||
private const val KEY_SEARCH_INFO = "KEY_SEARCH_INFO"
|
||||
private const val KEY_INLINE_SUGGESTION = "KEY_INLINE_SUGGESTION"
|
||||
@@ -224,37 +228,51 @@ class AutofillLauncherActivity : DatabaseModeActivity() {
|
||||
|
||||
fun getPendingIntentForSelection(context: Context,
|
||||
searchInfo: SearchInfo? = null,
|
||||
compatInlineSuggestionsRequest: CompatInlineSuggestionsRequest? = null): PendingIntent {
|
||||
return PendingIntent.getActivity(context, 0,
|
||||
// Doesn't work with direct extra Parcelable (don't know why?)
|
||||
// Wrap into a bundle to bypass the problem
|
||||
Intent(context, AutofillLauncherActivity::class.java).apply {
|
||||
putExtra(KEY_SELECTION_BUNDLE, Bundle().apply {
|
||||
putParcelable(KEY_SEARCH_INFO, searchInfo)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
putParcelable(KEY_INLINE_SUGGESTION, compatInlineSuggestionsRequest)
|
||||
}
|
||||
})
|
||||
},
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_CANCEL_CURRENT
|
||||
} else {
|
||||
PendingIntent.FLAG_CANCEL_CURRENT
|
||||
})
|
||||
compatInlineSuggestionsRequest: CompatInlineSuggestionsRequest? = null): PendingIntent? {
|
||||
try {
|
||||
return PendingIntent.getActivity(
|
||||
context, 0,
|
||||
// Doesn't work with direct extra Parcelable (don't know why?)
|
||||
// Wrap into a bundle to bypass the problem
|
||||
Intent(context, AutofillLauncherActivity::class.java).apply {
|
||||
putExtra(KEY_SELECTION_BUNDLE, Bundle().apply {
|
||||
putParcelable(KEY_SEARCH_INFO, searchInfo)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
putParcelable(KEY_INLINE_SUGGESTION, compatInlineSuggestionsRequest)
|
||||
}
|
||||
})
|
||||
},
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_CANCEL_CURRENT
|
||||
} else {
|
||||
PendingIntent.FLAG_CANCEL_CURRENT
|
||||
}
|
||||
)
|
||||
} catch (e: RuntimeException) {
|
||||
Log.e(TAG, "Unable to create pending intent for selection", e)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
fun getPendingIntentForRegistration(context: Context,
|
||||
registerInfo: RegisterInfo): PendingIntent {
|
||||
return PendingIntent.getActivity(context, 0,
|
||||
Intent(context, AutofillLauncherActivity::class.java).apply {
|
||||
EntrySelectionHelper.addSpecialModeInIntent(this, SpecialMode.REGISTRATION)
|
||||
putExtra(KEY_REGISTER_INFO, registerInfo)
|
||||
},
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_CANCEL_CURRENT
|
||||
} else {
|
||||
PendingIntent.FLAG_CANCEL_CURRENT
|
||||
})
|
||||
registerInfo: RegisterInfo): PendingIntent? {
|
||||
try {
|
||||
return PendingIntent.getActivity(
|
||||
context, 0,
|
||||
Intent(context, AutofillLauncherActivity::class.java).apply {
|
||||
EntrySelectionHelper.addSpecialModeInIntent(this, SpecialMode.REGISTRATION)
|
||||
putExtra(KEY_REGISTER_INFO, registerInfo)
|
||||
},
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_CANCEL_CURRENT
|
||||
} else {
|
||||
PendingIntent.FLAG_CANCEL_CURRENT
|
||||
}
|
||||
)
|
||||
} catch (e: RuntimeException) {
|
||||
Log.e(TAG, "Unable to create pending intent for registration", e)
|
||||
return null
|
||||
}
|
||||
}
|
||||
|
||||
fun launchForRegistration(context: Context,
|
||||
|
||||
@@ -165,18 +165,6 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
startActivity(Intent(this, AppearanceSettingsActivity::class.java))
|
||||
}
|
||||
|
||||
// Init Biometric elements
|
||||
advancedUnlockFragment = supportFragmentManager
|
||||
.findFragmentByTag(UNLOCK_FRAGMENT_TAG) as? AdvancedUnlockFragment?
|
||||
if (advancedUnlockFragment == null) {
|
||||
advancedUnlockFragment = AdvancedUnlockFragment()
|
||||
supportFragmentManager.commit {
|
||||
replace(R.id.fragment_advanced_unlock_container_view,
|
||||
advancedUnlockFragment!!,
|
||||
UNLOCK_FRAGMENT_TAG)
|
||||
}
|
||||
}
|
||||
|
||||
// Listen password checkbox to init advanced unlock and confirmation button
|
||||
mainCredentialView?.onPasswordChecked =
|
||||
CompoundButton.OnCheckedChangeListener { _, _ ->
|
||||
@@ -245,6 +233,23 @@ class MainCredentialActivity : DatabaseModeActivity(), AdvancedUnlockFragment.Bu
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
|
||||
// Init Biometric elements only if allowed
|
||||
if (PreferencesUtil.isAdvancedUnlockEnable(this)) {
|
||||
advancedUnlockFragment = supportFragmentManager
|
||||
.findFragmentByTag(UNLOCK_FRAGMENT_TAG) as? AdvancedUnlockFragment?
|
||||
if (advancedUnlockFragment == null) {
|
||||
advancedUnlockFragment = AdvancedUnlockFragment().also {
|
||||
supportFragmentManager.commit {
|
||||
replace(
|
||||
R.id.fragment_advanced_unlock_container_view,
|
||||
it,
|
||||
UNLOCK_FRAGMENT_TAG
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mRememberKeyFile = PreferencesUtil.rememberKeyFileLocations(this@MainCredentialActivity)
|
||||
mRememberHardwareKey = PreferencesUtil.rememberHardwareKey(this@MainCredentialActivity)
|
||||
|
||||
|
||||
@@ -452,46 +452,52 @@ object AutofillHelper {
|
||||
manualSelection = true
|
||||
}
|
||||
val manualSelectionView = RemoteViews(context.packageName, R.layout.item_autofill_select_entry)
|
||||
val pendingIntent = AutofillLauncherActivity.getPendingIntentForSelection(context,
|
||||
searchInfo, compatInlineSuggestionsRequest)
|
||||
AutofillLauncherActivity.getPendingIntentForSelection(context,
|
||||
searchInfo, compatInlineSuggestionsRequest)?.let { pendingIntent ->
|
||||
|
||||
var inlinePresentation: InlinePresentation? = null
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
compatInlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
|
||||
val inlinePresentationSpec = inlineSuggestionsRequest.inlinePresentationSpecs[0]
|
||||
inlinePresentation = buildInlinePresentationForManualSelection(context, inlinePresentationSpec, pendingIntent)
|
||||
var inlinePresentation: InlinePresentation? = null
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
compatInlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
|
||||
val inlinePresentationSpec =
|
||||
inlineSuggestionsRequest.inlinePresentationSpecs[0]
|
||||
inlinePresentation = buildInlinePresentationForManualSelection(
|
||||
context,
|
||||
inlinePresentationSpec,
|
||||
pendingIntent
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val datasetBuilder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
Dataset.Builder(Presentations.Builder()
|
||||
.apply {
|
||||
val datasetBuilder = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
Dataset.Builder(Presentations.Builder()
|
||||
.apply {
|
||||
inlinePresentation?.let {
|
||||
setInlinePresentation(it)
|
||||
}
|
||||
}
|
||||
.setDialogPresentation(manualSelectionView)
|
||||
.setMenuPresentation(manualSelectionView)
|
||||
.build())
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
Dataset.Builder(manualSelectionView).apply {
|
||||
inlinePresentation?.let {
|
||||
setInlinePresentation(it)
|
||||
}
|
||||
}
|
||||
.setDialogPresentation(manualSelectionView)
|
||||
.setMenuPresentation(manualSelectionView)
|
||||
.build())
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
Dataset.Builder(manualSelectionView).apply {
|
||||
inlinePresentation?.let {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
setInlinePresentation(it)
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
|
||||
setInlinePresentation(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
parseResult.allAutofillIds().let { autofillIds ->
|
||||
autofillIds.forEach { id ->
|
||||
datasetBuilder.addValueToDatasetBuilder(id, null)
|
||||
datasetBuilder.setAuthentication(pendingIntent.intentSender)
|
||||
parseResult.allAutofillIds().let { autofillIds ->
|
||||
autofillIds.forEach { id ->
|
||||
datasetBuilder.addValueToDatasetBuilder(id, null)
|
||||
datasetBuilder.setAuthentication(pendingIntent.intentSender)
|
||||
}
|
||||
val dataset = datasetBuilder.build()
|
||||
Log.d(TAG, "Autofill Dataset for manual selection $dataset created")
|
||||
responseBuilder.addDataset(dataset)
|
||||
}
|
||||
val dataset = datasetBuilder.build()
|
||||
Log.d(TAG, "Autofill Dataset for manual selection $dataset created")
|
||||
responseBuilder.addDataset(dataset)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -162,146 +162,184 @@ class KeeAutofillService : AutofillService() {
|
||||
if (autofillIds.isNotEmpty()) {
|
||||
// If the entire Autofill Response is authenticated, AuthActivity is used
|
||||
// to generate Response.
|
||||
val intentSender = AutofillLauncherActivity.getPendingIntentForSelection(this,
|
||||
searchInfo, inlineSuggestionsRequest).intentSender
|
||||
val responseBuilder = FillResponse.Builder()
|
||||
val remoteViewsUnlock: RemoteViews = if (database == null) {
|
||||
if (!parseResult.webDomain.isNullOrEmpty()) {
|
||||
RemoteViews(
|
||||
packageName,
|
||||
R.layout.item_autofill_unlock_web_domain
|
||||
).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_web_domain_text,
|
||||
parseResult.webDomain
|
||||
)
|
||||
}
|
||||
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
||||
RemoteViews(packageName, R.layout.item_autofill_unlock_app_id).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_app_id_text,
|
||||
parseResult.applicationId
|
||||
)
|
||||
AutofillLauncherActivity.getPendingIntentForSelection(this,
|
||||
searchInfo, inlineSuggestionsRequest)?.intentSender?.let { intentSender ->
|
||||
val responseBuilder = FillResponse.Builder()
|
||||
val remoteViewsUnlock: RemoteViews = if (database == null) {
|
||||
if (!parseResult.webDomain.isNullOrEmpty()) {
|
||||
RemoteViews(
|
||||
packageName,
|
||||
R.layout.item_autofill_unlock_web_domain
|
||||
).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_web_domain_text,
|
||||
parseResult.webDomain
|
||||
)
|
||||
}
|
||||
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
||||
RemoteViews(packageName, R.layout.item_autofill_unlock_app_id).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_app_id_text,
|
||||
parseResult.applicationId
|
||||
)
|
||||
}
|
||||
} else {
|
||||
RemoteViews(packageName, R.layout.item_autofill_unlock)
|
||||
}
|
||||
} else {
|
||||
RemoteViews(packageName, R.layout.item_autofill_unlock)
|
||||
}
|
||||
} else {
|
||||
if (!parseResult.webDomain.isNullOrEmpty()) {
|
||||
RemoteViews(
|
||||
packageName,
|
||||
R.layout.item_autofill_select_entry_web_domain
|
||||
).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_web_domain_text,
|
||||
parseResult.webDomain
|
||||
)
|
||||
if (!parseResult.webDomain.isNullOrEmpty()) {
|
||||
RemoteViews(
|
||||
packageName,
|
||||
R.layout.item_autofill_select_entry_web_domain
|
||||
).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_web_domain_text,
|
||||
parseResult.webDomain
|
||||
)
|
||||
}
|
||||
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
||||
RemoteViews(
|
||||
packageName,
|
||||
R.layout.item_autofill_select_entry_app_id
|
||||
).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_app_id_text,
|
||||
parseResult.applicationId
|
||||
)
|
||||
}
|
||||
} else {
|
||||
RemoteViews(packageName, R.layout.item_autofill_select_entry)
|
||||
}
|
||||
} else if (!parseResult.applicationId.isNullOrEmpty()) {
|
||||
RemoteViews(packageName, R.layout.item_autofill_select_entry_app_id).apply {
|
||||
setTextViewText(
|
||||
R.id.autofill_app_id_text,
|
||||
parseResult.applicationId
|
||||
)
|
||||
}
|
||||
} else {
|
||||
RemoteViews(packageName, R.layout.item_autofill_select_entry)
|
||||
}
|
||||
}
|
||||
|
||||
// Tell the autofill framework the interest to save credentials
|
||||
if (askToSaveData) {
|
||||
var types: Int = SaveInfo.SAVE_DATA_TYPE_GENERIC
|
||||
val requiredIds = ArrayList<AutofillId>()
|
||||
val optionalIds = ArrayList<AutofillId>()
|
||||
// Tell the autofill framework the interest to save credentials
|
||||
if (askToSaveData) {
|
||||
var types: Int = SaveInfo.SAVE_DATA_TYPE_GENERIC
|
||||
val requiredIds = ArrayList<AutofillId>()
|
||||
val optionalIds = ArrayList<AutofillId>()
|
||||
|
||||
// Only if at least a password
|
||||
parseResult.passwordId?.let { passwordInfo ->
|
||||
parseResult.usernameId?.let { usernameInfo ->
|
||||
types = types or SaveInfo.SAVE_DATA_TYPE_USERNAME
|
||||
requiredIds.add(usernameInfo)
|
||||
// Only if at least a password
|
||||
parseResult.passwordId?.let { passwordInfo ->
|
||||
parseResult.usernameId?.let { usernameInfo ->
|
||||
types = types or SaveInfo.SAVE_DATA_TYPE_USERNAME
|
||||
requiredIds.add(usernameInfo)
|
||||
}
|
||||
types = types or SaveInfo.SAVE_DATA_TYPE_PASSWORD
|
||||
requiredIds.add(passwordInfo)
|
||||
}
|
||||
types = types or SaveInfo.SAVE_DATA_TYPE_PASSWORD
|
||||
requiredIds.add(passwordInfo)
|
||||
}
|
||||
// or a credit card form
|
||||
if (requiredIds.isEmpty()) {
|
||||
parseResult.creditCardNumberId?.let { numberId ->
|
||||
types = types or SaveInfo.SAVE_DATA_TYPE_CREDIT_CARD
|
||||
requiredIds.add(numberId)
|
||||
Log.d(TAG, "Asking to save credit card number")
|
||||
// or a credit card form
|
||||
if (requiredIds.isEmpty()) {
|
||||
parseResult.creditCardNumberId?.let { numberId ->
|
||||
types = types or SaveInfo.SAVE_DATA_TYPE_CREDIT_CARD
|
||||
requiredIds.add(numberId)
|
||||
Log.d(TAG, "Asking to save credit card number")
|
||||
}
|
||||
parseResult.creditCardExpirationDateId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.creditCardExpirationYearId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.creditCardExpirationMonthId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.creditCardHolderId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.cardVerificationValueId?.let { id -> optionalIds.add(id) }
|
||||
}
|
||||
parseResult.creditCardExpirationDateId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.creditCardExpirationYearId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.creditCardExpirationMonthId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.creditCardHolderId?.let { id -> optionalIds.add(id) }
|
||||
parseResult.cardVerificationValueId?.let { id -> optionalIds.add(id) }
|
||||
}
|
||||
if (requiredIds.isNotEmpty()) {
|
||||
val builder = SaveInfo.Builder(types, requiredIds.toTypedArray())
|
||||
if (optionalIds.isNotEmpty()) {
|
||||
builder.setOptionalIds(optionalIds.toTypedArray())
|
||||
if (requiredIds.isNotEmpty()) {
|
||||
val builder = SaveInfo.Builder(types, requiredIds.toTypedArray())
|
||||
if (optionalIds.isNotEmpty()) {
|
||||
builder.setOptionalIds(optionalIds.toTypedArray())
|
||||
}
|
||||
responseBuilder.setSaveInfo(builder.build())
|
||||
}
|
||||
responseBuilder.setSaveInfo(builder.build())
|
||||
}
|
||||
}
|
||||
|
||||
// Build inline presentation
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
|
||||
&& autofillInlineSuggestionsEnabled) {
|
||||
var inlinePresentation: InlinePresentation? = null
|
||||
inlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
|
||||
val inlinePresentationSpecs = inlineSuggestionsRequest.inlinePresentationSpecs
|
||||
if (inlineSuggestionsRequest.maxSuggestionCount > 0
|
||||
&& inlinePresentationSpecs.size > 0) {
|
||||
val inlinePresentationSpec = inlinePresentationSpecs[0]
|
||||
// Build inline presentation
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
|
||||
&& autofillInlineSuggestionsEnabled
|
||||
) {
|
||||
var inlinePresentation: InlinePresentation? = null
|
||||
inlineSuggestionsRequest?.inlineSuggestionsRequest?.let { inlineSuggestionsRequest ->
|
||||
val inlinePresentationSpecs =
|
||||
inlineSuggestionsRequest.inlinePresentationSpecs
|
||||
if (inlineSuggestionsRequest.maxSuggestionCount > 0
|
||||
&& inlinePresentationSpecs.size > 0
|
||||
) {
|
||||
val inlinePresentationSpec = inlinePresentationSpecs[0]
|
||||
|
||||
// Make sure that the IME spec claims support for v1 UI template.
|
||||
val imeStyle = inlinePresentationSpec.style
|
||||
if (UiVersions.getVersions(imeStyle).contains(UiVersions.INLINE_UI_VERSION_1)) {
|
||||
// Build the content for IME UI
|
||||
inlinePresentation = InlinePresentation(
|
||||
// Make sure that the IME spec claims support for v1 UI template.
|
||||
val imeStyle = inlinePresentationSpec.style
|
||||
if (UiVersions.getVersions(imeStyle)
|
||||
.contains(UiVersions.INLINE_UI_VERSION_1)
|
||||
) {
|
||||
// Build the content for IME UI
|
||||
inlinePresentation = InlinePresentation(
|
||||
InlineSuggestionUi.newContentBuilder(
|
||||
PendingIntent.getActivity(this,
|
||||
0,
|
||||
Intent(this, AutofillSettingsActivity::class.java),
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PendingIntent.FLAG_IMMUTABLE
|
||||
} else {
|
||||
0
|
||||
})
|
||||
PendingIntent.getActivity(
|
||||
this,
|
||||
0,
|
||||
Intent(this, AutofillSettingsActivity::class.java),
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
PendingIntent.FLAG_IMMUTABLE
|
||||
} else {
|
||||
0
|
||||
}
|
||||
)
|
||||
).apply {
|
||||
setContentDescription(getString(R.string.autofill_sign_in_prompt))
|
||||
setTitle(getString(R.string.autofill_sign_in_prompt))
|
||||
setStartIcon(Icon.createWithResource(this@KeeAutofillService, R.mipmap.ic_launcher_round).apply {
|
||||
setTintBlendMode(BlendMode.DST)
|
||||
})
|
||||
}.build().slice, inlinePresentationSpec, false)
|
||||
setStartIcon(
|
||||
Icon.createWithResource(
|
||||
this@KeeAutofillService,
|
||||
R.mipmap.ic_launcher_round
|
||||
).apply {
|
||||
setTintBlendMode(BlendMode.DST)
|
||||
})
|
||||
}.build().slice, inlinePresentationSpec, false
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Build response
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
// Build response
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||
try {
|
||||
// Buggy method on some API 33 devices
|
||||
responseBuilder.setAuthentication(
|
||||
autofillIds,
|
||||
intentSender,
|
||||
Presentations.Builder().apply {
|
||||
inlinePresentation?.let {
|
||||
setInlinePresentation(it)
|
||||
}
|
||||
setDialogPresentation(remoteViewsUnlock)
|
||||
}.build()
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Unable to use the new setAuthentication method.", e)
|
||||
@Suppress("DEPRECATION")
|
||||
responseBuilder.setAuthentication(
|
||||
autofillIds,
|
||||
intentSender,
|
||||
remoteViewsUnlock,
|
||||
inlinePresentation
|
||||
)
|
||||
}
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
responseBuilder.setAuthentication(
|
||||
autofillIds,
|
||||
intentSender,
|
||||
remoteViewsUnlock,
|
||||
inlinePresentation
|
||||
)
|
||||
}
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
responseBuilder.setAuthentication(
|
||||
autofillIds,
|
||||
intentSender,
|
||||
Presentations.Builder().apply {
|
||||
inlinePresentation?.let {
|
||||
setInlinePresentation(it)
|
||||
}
|
||||
}.setDialogPresentation(remoteViewsUnlock).build()
|
||||
remoteViewsUnlock
|
||||
)
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
responseBuilder.setAuthentication(autofillIds, intentSender, remoteViewsUnlock, inlinePresentation)
|
||||
}
|
||||
} else {
|
||||
@Suppress("DEPRECATION")
|
||||
responseBuilder.setAuthentication(autofillIds, intentSender, remoteViewsUnlock)
|
||||
success = true
|
||||
callback.onSuccess(responseBuilder.build())
|
||||
}
|
||||
success = true
|
||||
callback.onSuccess(responseBuilder.build())
|
||||
}
|
||||
}
|
||||
if (!success)
|
||||
|
||||
@@ -105,7 +105,7 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
if (node.autofillId != null) {
|
||||
// Parse methods
|
||||
val hints = node.autofillHints
|
||||
if (hints != null && hints.isNotEmpty()) {
|
||||
if (!hints.isNullOrEmpty()) {
|
||||
if (parseNodeByAutofillHint(node))
|
||||
returnValue = true
|
||||
} else if (parseNodeByHtmlAttributes(node))
|
||||
@@ -131,13 +131,21 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
val autofillId = node.autofillId
|
||||
node.autofillHints?.forEach {
|
||||
when {
|
||||
it.contains(View.AUTOFILL_HINT_USERNAME, true) -> {
|
||||
result?.usernameId = autofillId
|
||||
result?.usernameValue = node.autofillValue
|
||||
Log.d(TAG, "Autofill username hint")
|
||||
}
|
||||
it.contains(View.AUTOFILL_HINT_USERNAME, true)
|
||||
|| it.contains(View.AUTOFILL_HINT_EMAIL_ADDRESS, true)
|
||||
|| it.contains("email", true)
|
||||
|| it.contains(View.AUTOFILL_HINT_PHONE, true) -> {
|
||||
result?.usernameId = autofillId
|
||||
result?.usernameValue = node.autofillValue
|
||||
Log.d(TAG, "Autofill username hint")
|
||||
// Priority to username or add if null
|
||||
if (result?.passwordId == null) {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
Log.d(TAG, "Autofill email hint")
|
||||
}
|
||||
}
|
||||
it.contains(View.AUTOFILL_HINT_PASSWORD, true) -> {
|
||||
result?.passwordId = autofillId
|
||||
@@ -279,14 +287,19 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
"type" -> {
|
||||
when (pairAttribute.second.lowercase(Locale.ENGLISH)) {
|
||||
"tel", "email" -> {
|
||||
result?.usernameId = autofillId
|
||||
result?.usernameValue = node.autofillValue
|
||||
Log.d(TAG, "Autofill username web type: ${node.htmlInfo?.tag} ${node.htmlInfo?.attributes}")
|
||||
if (result?.passwordId == null) {
|
||||
result?.usernameId = autofillId
|
||||
result?.usernameValue = node.autofillValue
|
||||
Log.d(TAG, "Autofill username web type: ${node.htmlInfo?.tag} ${node.htmlInfo?.attributes}")
|
||||
}
|
||||
}
|
||||
"text" -> {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
Log.d(TAG, "Autofill username candidate web type: ${node.htmlInfo?.tag} ${node.htmlInfo?.attributes}")
|
||||
// Assume username is before password
|
||||
if (result?.passwordId == null) {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
Log.d(TAG, "Autofill username candidate web type: ${node.htmlInfo?.tag} ${node.htmlInfo?.attributes}")
|
||||
}
|
||||
}
|
||||
"password" -> {
|
||||
result?.passwordId = autofillId
|
||||
@@ -324,22 +337,28 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
inputIsVariationType(inputType,
|
||||
InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS,
|
||||
InputType.TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS) -> {
|
||||
result?.usernameId = autofillId
|
||||
result?.usernameValue = node.autofillValue
|
||||
Log.d(TAG, "Autofill username android text type: ${showHexInputType(inputType)}")
|
||||
if (result?.passwordId == null) {
|
||||
result?.usernameId = autofillId
|
||||
result?.usernameValue = node.autofillValue
|
||||
Log.d(TAG, "Autofill username android text type: ${showHexInputType(inputType)}")
|
||||
}
|
||||
}
|
||||
inputIsVariationType(inputType,
|
||||
InputType.TYPE_TEXT_VARIATION_NORMAL,
|
||||
InputType.TYPE_TEXT_VARIATION_PERSON_NAME,
|
||||
InputType.TYPE_TEXT_VARIATION_WEB_EDIT_TEXT) -> {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
// Assume the username field is before the password field
|
||||
if (result?.passwordId == null) {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
}
|
||||
Log.d(TAG, "Autofill username candidate android text type: ${showHexInputType(inputType)}")
|
||||
}
|
||||
inputIsVariationType(inputType,
|
||||
InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD) -> {
|
||||
// Some forms used visible password as username
|
||||
if (usernameIdCandidate == null && usernameValueCandidate == null) {
|
||||
if (result?.passwordId == null &&
|
||||
usernameIdCandidate == null && usernameValueCandidate == null) {
|
||||
usernameIdCandidate = autofillId
|
||||
usernameValueCandidate = node.autofillValue
|
||||
Log.d(TAG, "Autofill visible password android text type (as username): ${showHexInputType(inputType)}")
|
||||
@@ -422,58 +441,22 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
var creditCardExpirationDayOptions: Array<CharSequence>? = null
|
||||
|
||||
var usernameId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var passwordId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var creditCardHolderId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var creditCardNumberId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var creditCardExpirationDateId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var creditCardExpirationYearId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var creditCardExpirationMonthId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var creditCardExpirationDayId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
var cardVerificationValueId: AutofillId? = null
|
||||
set(value) {
|
||||
if (field == null)
|
||||
field = value
|
||||
}
|
||||
|
||||
fun allAutofillIds(): Array<AutofillId> {
|
||||
val all = ArrayList<AutofillId>()
|
||||
@@ -500,13 +483,13 @@ class StructureParser(private val structure: AssistStructure) {
|
||||
|
||||
var usernameValue: AutofillValue? = null
|
||||
set(value) {
|
||||
if (allowSaveValues && field == null)
|
||||
if (allowSaveValues)
|
||||
field = value
|
||||
}
|
||||
|
||||
var passwordValue: AutofillValue? = null
|
||||
set(value) {
|
||||
if (allowSaveValues && field == null)
|
||||
if (allowSaveValues)
|
||||
field = value
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,8 @@ open class SaveDatabaseRunnable(
|
||||
|
||||
override fun onActionRun() {
|
||||
database.checkVersion()
|
||||
if (saveDatabase && result.isSuccess) {
|
||||
// Save database in all cases if it's a copy
|
||||
if ((databaseCopyUri != null || saveDatabase) && result.isSuccess) {
|
||||
try {
|
||||
val contentResolver = context.contentResolver
|
||||
// Build temp database file to avoid file corruption if error
|
||||
|
||||
@@ -22,10 +22,12 @@ package com.kunzisoft.keepass.view
|
||||
import android.content.Context
|
||||
import android.text.Editable
|
||||
import android.text.InputType
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableString
|
||||
import android.text.TextWatcher
|
||||
import android.util.AttributeSet
|
||||
import android.view.LayoutInflater
|
||||
import android.widget.EditText
|
||||
import android.widget.FrameLayout
|
||||
import android.widget.TextView
|
||||
import com.google.android.material.progressindicator.LinearProgressIndicator
|
||||
@@ -43,7 +45,8 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
private var mPasswordEntropyCalculator: PasswordEntropy? = null
|
||||
|
||||
private val passwordInputLayout: TextInputLayout
|
||||
private val passwordText: TextView
|
||||
private val passwordText: EditText
|
||||
private var textModified = false
|
||||
private val passwordStrengthProgress: LinearProgressIndicator
|
||||
private val passwordEntropy: TextView
|
||||
|
||||
@@ -51,27 +54,8 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
private var mMaxLines: Int = 3
|
||||
private var mShowPassword: Boolean = false
|
||||
|
||||
private var mPasswordTextWatcher: MutableList<TextWatcher> = mutableListOf()
|
||||
private val passwordTextWatcher = object : TextWatcher {
|
||||
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
|
||||
mPasswordTextWatcher.forEach {
|
||||
it.beforeTextChanged(charSequence, i, i1, i2)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
|
||||
mPasswordTextWatcher.forEach {
|
||||
it.onTextChanged(charSequence, i, i1, i2)
|
||||
}
|
||||
}
|
||||
|
||||
override fun afterTextChanged(editable: Editable) {
|
||||
mPasswordTextWatcher.forEach {
|
||||
it.afterTextChanged(editable)
|
||||
}
|
||||
getEntropyStrength(editable.toString())
|
||||
}
|
||||
}
|
||||
private var mPasswordTextWatchers: MutableList<TextWatcher> = mutableListOf()
|
||||
private var mPasswordTextWatcher: TextWatcher? = null
|
||||
|
||||
init {
|
||||
context.theme.obtainStyledAttributes(
|
||||
@@ -101,7 +85,6 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
passwordText?.maxLines = mMaxLines
|
||||
passwordText?.applyFontVisibility()
|
||||
passwordText.addTextChangedListener(passwordTextWatcher)
|
||||
passwordStrengthProgress = findViewById(R.id.password_strength_progress)
|
||||
passwordStrengthProgress?.apply {
|
||||
setIndicatorColor(PasswordEntropy.Strength.RISKY.color)
|
||||
@@ -115,6 +98,37 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
getEntropyStrength(firstPassword)
|
||||
}
|
||||
}
|
||||
|
||||
mPasswordTextWatcher = object : TextWatcher {
|
||||
override fun beforeTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
|
||||
mPasswordTextWatchers.forEach {
|
||||
it.beforeTextChanged(charSequence, i, i1, i2)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onTextChanged(charSequence: CharSequence, i: Int, i1: Int, i2: Int) {
|
||||
mPasswordTextWatchers.forEach {
|
||||
it.onTextChanged(charSequence, i, i1, i2)
|
||||
}
|
||||
}
|
||||
|
||||
override fun afterTextChanged(editable: Editable) {
|
||||
if (textModified) {
|
||||
textModified = false
|
||||
} else {
|
||||
textModified = true
|
||||
val selectionStart = passwordText.selectionStart
|
||||
val selectionEnd = passwordText.selectionEnd
|
||||
passwordString = editable.toString()
|
||||
passwordText.setSelection(selectionStart, selectionEnd)
|
||||
}
|
||||
mPasswordTextWatchers.forEach {
|
||||
it.afterTextChanged(editable)
|
||||
}
|
||||
getEntropyStrength(editable.toString())
|
||||
}
|
||||
}
|
||||
passwordText?.addTextChangedListener(mPasswordTextWatcher)
|
||||
}
|
||||
|
||||
private fun getEntropyStrength(passwordText: String) {
|
||||
@@ -134,11 +148,18 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
}
|
||||
|
||||
fun addTextChangedListener(textWatcher: TextWatcher) {
|
||||
mPasswordTextWatcher.add(textWatcher)
|
||||
mPasswordTextWatchers.add(textWatcher)
|
||||
}
|
||||
|
||||
fun removeTextChangedListener(textWatcher: TextWatcher) {
|
||||
mPasswordTextWatcher.remove(textWatcher)
|
||||
mPasswordTextWatchers.remove(textWatcher)
|
||||
}
|
||||
|
||||
private fun spannableValue(value: String): Spannable {
|
||||
return if (PreferencesUtil.colorizePassword(context))
|
||||
PasswordGenerator.getColorizedPassword(value)
|
||||
else
|
||||
SpannableString(value)
|
||||
}
|
||||
|
||||
var passwordString: String
|
||||
@@ -146,11 +167,6 @@ class PassKeyView @JvmOverloads constructor(context: Context,
|
||||
return passwordText.text.toString()
|
||||
}
|
||||
set(value) {
|
||||
val spannableString =
|
||||
if (PreferencesUtil.colorizePassword(context))
|
||||
PasswordGenerator.getColorizedPassword(value)
|
||||
else
|
||||
SpannableString(value)
|
||||
passwordText.text = spannableString
|
||||
passwordText.setText(spannableValue(value))
|
||||
}
|
||||
}
|
||||
@@ -4,6 +4,7 @@ import android.content.Context
|
||||
import android.os.Build
|
||||
import android.text.InputFilter
|
||||
import android.text.InputType
|
||||
import android.text.Spannable
|
||||
import android.text.SpannableString
|
||||
import android.util.AttributeSet
|
||||
import android.util.TypedValue
|
||||
@@ -17,6 +18,7 @@ import androidx.appcompat.widget.AppCompatImageButton
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.view.ViewCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.core.widget.doAfterTextChanged
|
||||
import com.google.android.material.textfield.TextInputEditText
|
||||
import com.google.android.material.textfield.TextInputLayout
|
||||
import com.kunzisoft.keepass.R
|
||||
@@ -34,6 +36,9 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
private var valueViewId = ViewCompat.generateViewId()
|
||||
private var actionImageButtonId = ViewCompat.generateViewId()
|
||||
|
||||
private var textModified = false
|
||||
private var isColorizedPasswordActivated = PreferencesUtil.colorizePassword(context)
|
||||
|
||||
private val labelView = TextInputLayout(context).apply {
|
||||
layoutParams = LayoutParams(
|
||||
LayoutParams.MATCH_PARENT,
|
||||
@@ -78,6 +83,20 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
init {
|
||||
// Manually write view to avoid view id bugs
|
||||
buildViews()
|
||||
// To change the password color dynamically
|
||||
valueView.doAfterTextChanged { editable ->
|
||||
editable?.let { text ->
|
||||
if (textModified) {
|
||||
textModified = false
|
||||
} else {
|
||||
textModified = true
|
||||
val selectionStart = valueView.selectionStart
|
||||
val selectionEnd = valueView.selectionEnd
|
||||
value = spannableValue(text.toString()).toString()
|
||||
valueView.setSelection(selectionStart, selectionEnd)
|
||||
}
|
||||
}
|
||||
}
|
||||
labelView.addView(valueView)
|
||||
addView(labelView)
|
||||
addView(actionImageButton)
|
||||
@@ -110,6 +129,15 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
return actionImageButton
|
||||
}
|
||||
|
||||
private fun spannableValue(value: String?): Spannable? {
|
||||
if (value == null)
|
||||
return null
|
||||
return if (isColorizedPasswordActivated && TemplateField.isStandardPasswordName(context, label))
|
||||
PasswordGenerator.getColorizedPassword(value)
|
||||
else
|
||||
SpannableString(value)
|
||||
}
|
||||
|
||||
override var label: String
|
||||
get() {
|
||||
return labelView.hint?.toString() ?: ""
|
||||
@@ -128,13 +156,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
return valueView.text?.toString() ?: ""
|
||||
}
|
||||
set(value) {
|
||||
val spannableString =
|
||||
if (PreferencesUtil.colorizePassword(context)
|
||||
&& TemplateField.isStandardPasswordName(context, label))
|
||||
PasswordGenerator.getColorizedPassword(value)
|
||||
else
|
||||
SpannableString(value)
|
||||
valueView.setText(spannableString)
|
||||
valueView.setText(spannableValue(value))
|
||||
}
|
||||
|
||||
override var default: String = ""
|
||||
@@ -145,6 +167,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
valueView.filters += InputFilter.LengthFilter(MAX_CHARS_LIMIT)
|
||||
}
|
||||
else -> {
|
||||
@Suppress("KotlinConstantConditions")
|
||||
val chars = if (numberChars > MAX_CHARS_LIMIT) MAX_CHARS_LIMIT else numberChars
|
||||
valueView.filters += InputFilter.LengthFilter(chars)
|
||||
}
|
||||
@@ -164,6 +187,7 @@ class TextEditFieldView @JvmOverloads constructor(context: Context,
|
||||
valueView.maxLines = MAX_LINES_LIMIT
|
||||
}
|
||||
else -> {
|
||||
@Suppress("KotlinConstantConditions")
|
||||
val lines = if (numberLines > MAX_LINES_LIMIT) MAX_LINES_LIMIT else numberLines
|
||||
valueView.inputType = valueView.inputType or
|
||||
InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.kunzisoft.keepass.viewmodels
|
||||
import android.app.Application
|
||||
import android.net.Uri
|
||||
import androidx.lifecycle.AndroidViewModel
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import com.kunzisoft.keepass.app.App
|
||||
import com.kunzisoft.keepass.app.database.FileDatabaseHistoryAction
|
||||
@@ -19,9 +20,8 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
|
||||
mFileDatabaseHistoryAction = FileDatabaseHistoryAction.getInstance(application.applicationContext)
|
||||
}
|
||||
|
||||
val isDefaultDatabase: MutableLiveData<Boolean> by lazy {
|
||||
MutableLiveData<Boolean>()
|
||||
}
|
||||
private val mIsDefaultDatabase = MutableLiveData<Boolean>()
|
||||
val isDefaultDatabase: LiveData<Boolean> = mIsDefaultDatabase
|
||||
|
||||
fun checkIfIsDefaultDatabase(databaseUri: Uri) {
|
||||
IOActionTask(
|
||||
@@ -30,7 +30,7 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
|
||||
?.parseUri() == databaseUri)
|
||||
},
|
||||
{
|
||||
isDefaultDatabase.value = it
|
||||
mIsDefaultDatabase.value = it
|
||||
}
|
||||
).execute()
|
||||
}
|
||||
@@ -46,13 +46,12 @@ class DatabaseFileViewModel(application: Application) : AndroidViewModel(applica
|
||||
).execute()
|
||||
}
|
||||
|
||||
val databaseFileLoaded: MutableLiveData<DatabaseFile> by lazy {
|
||||
MutableLiveData<DatabaseFile>()
|
||||
}
|
||||
private val mDatabaseFileLoaded = MutableLiveData<DatabaseFile>()
|
||||
val databaseFileLoaded: LiveData<DatabaseFile> = mDatabaseFileLoaded
|
||||
|
||||
fun loadDatabaseFile(databaseUri: Uri) {
|
||||
mFileDatabaseHistoryAction?.getDatabaseFile(databaseUri) { databaseFileRetrieved ->
|
||||
databaseFileLoaded.value = databaseFileRetrieved
|
||||
mDatabaseFileLoaded.value = databaseFileRetrieved
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -207,6 +207,8 @@
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@+id/ignore_chars_filter_layout"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:layout_marginRight="8dp"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content">
|
||||
<com.google.android.material.textfield.TextInputEditText
|
||||
|
||||
@@ -446,8 +446,8 @@
|
||||
<string name="back_to_previous_keyboard">عُد للوحة المفاتيح السابقة</string>
|
||||
<string name="select_entry">اختر مدخلًا</string>
|
||||
<string name="autofill_close_database_title">أغلق قاعدة البيانات</string>
|
||||
<string name="success_import_app_properties">أّستوردت خصائص التطبيق</string>
|
||||
<string name="success_export_app_properties">صُدرت خصائص التطبيق</string>
|
||||
<string name="success_import_app_properties">أّستوردت إعدادات التطبيق</string>
|
||||
<string name="success_export_app_properties">صُدرت إعدادات التطبيق</string>
|
||||
<string name="warning_database_revoked">أُجهض الوصول إلى الملف بواسطة مدير الملفات ، أغلق قاعدة البيانات ثم أعد فتحها.</string>
|
||||
<string name="properties">الخصائص</string>
|
||||
<string name="token">الرمز</string>
|
||||
@@ -460,11 +460,11 @@
|
||||
<string name="menu_external_icon">أيقونة خارجية</string>
|
||||
<string name="registration_mode">وضع التسجيل</string>
|
||||
<string name="import_app_properties_title">استورد خصائص التطبيق</string>
|
||||
<string name="import_app_properties_summary">اختر ملفًا لاستيراد خصائص التطبيق</string>
|
||||
<string name="export_app_properties_title">صدّر خصائص التطبيق</string>
|
||||
<string name="export_app_properties_summary">أنشئ ملفًا لتصدير خصائص التطبيق</string>
|
||||
<string name="error_import_app_properties">خطأ أثناء استيراد خصائص التطبيق</string>
|
||||
<string name="error_export_app_properties">خطأ أثناء تصدير خصائص التطبيق</string>
|
||||
<string name="import_app_properties_summary">اختر ملفًا لاستيراد إعدادات التطبيق</string>
|
||||
<string name="export_app_properties_title">صدّر إعدادات التطبيق</string>
|
||||
<string name="export_app_properties_summary">أنشئ ملفًا لتصدير إعدادات التطبيق</string>
|
||||
<string name="error_import_app_properties">خطأ أثناء استيراد إعدادات التطبيق</string>
|
||||
<string name="error_export_app_properties">خطأ أثناء تصدير إعدادات التطبيق</string>
|
||||
<string name="warning_database_info_changed">غُيِّرت معلومات قاعدة البيانات من خارج هذا التطبيق.</string>
|
||||
<string name="warning_database_info_changed_options">ادمج البيانات أو استبدل التعديلات الخارجية بحفظ قاعدة البيانات أو أعد تحميلها لجلب آخر التغييرات.</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">اكتب كلمة السر، وأنقر هذا الزر.</string>
|
||||
|
||||
@@ -19,4 +19,70 @@
|
||||
<string name="info">Информация</string>
|
||||
<string name="clipboard_cleared">Клипбордът е изчистен</string>
|
||||
<string name="content_description_add_group">Нова група</string>
|
||||
<string name="clipboard_timeout_summary">Продължителност на съхранение в клипборда (ако се поддържа от вашето устройство)</string>
|
||||
<string name="clipboard_error">Някои устройства не позволяват на приложенията да използват клипборда.</string>
|
||||
<string name="entry_title">Заглавие</string>
|
||||
<string name="about_description">Android версия на мениджъра на пароли KeePass</string>
|
||||
<string name="save">Запази</string>
|
||||
<string name="entry_confpassword">Потвърди парола</string>
|
||||
<string name="key_derivation_function">Функция за генериране на ключа</string>
|
||||
<string name="content_description_open_file">Отвори файл</string>
|
||||
<string name="entry_cancel">Отказ</string>
|
||||
<string name="custom_data">Персонализирани данни</string>
|
||||
<string name="tags">Тагове</string>
|
||||
<string name="clipboard_explanation_summary">Копирайте полетата за въвеждане, като използвате клипборда на вашето устройство</string>
|
||||
<string name="otp_type">Тип OTP</string>
|
||||
<string name="entry_url">Линк</string>
|
||||
<string name="contribution">Участие</string>
|
||||
<string name="entry_UUID">UUID</string>
|
||||
<string name="entry_history">История</string>
|
||||
<string name="copy_field">Копие на %1$s</string>
|
||||
<string name="clipboard_error_title">Грешка в клипборда</string>
|
||||
<string name="file_manager_install_description">За създаване, отваряне и запазване на файлове на базата данни е необходим файлов мениджър, който приема действието ACTION_CREATE_DOCUMENT и ACTION_OPEN_DOCUMENT.</string>
|
||||
<string name="content_description_add_entry">Добави запис</string>
|
||||
<string name="clipboard_timeout">Време за изчакване на клипборда</string>
|
||||
<string name="expired">Изтекъл</string>
|
||||
<string name="entry_password">Парола</string>
|
||||
<string name="retrieving_db_key">Ключът на базата данни се извлича…</string>
|
||||
<string name="entry_accessed">Достъп</string>
|
||||
<string name="entry_created">Създаден</string>
|
||||
<string name="entry_user_name">Потребителско име</string>
|
||||
<string name="content_description_background">Фон</string>
|
||||
<string name="clipboard_error_clear">Не може да се изчисти клипборда</string>
|
||||
<string name="entry_expires">Изтича</string>
|
||||
<string name="entry_attachments">Прикачени файлове</string>
|
||||
<string name="otp_period">Период (секунди)</string>
|
||||
<string name="app_timeout_summary">Период на бездействие, след който базата се заключва</string>
|
||||
<string name="otp_digits">Цифри</string>
|
||||
<string name="extended_ASCII">Разширен ASCII</string>
|
||||
<string name="entry_otp">OTP</string>
|
||||
<string name="entry_notes">Бележки</string>
|
||||
<string name="otp_counter">Брояч</string>
|
||||
<string name="allow">Позволи</string>
|
||||
<string name="allow_copy_password_warning">Внимание: Клипбордът се споделя от всички приложения. Ако се копират чувствителни данни, друг софтуер може да ги възстанови.</string>
|
||||
<string name="entry_modified">Променен</string>
|
||||
<string name="select_to_copy">Изберете, за да копирате %1$s в клипборда</string>
|
||||
<string name="otp_secret">Таен ключ</string>
|
||||
<string name="homepage">Уебсайт</string>
|
||||
<string name="loading_database">Базата данни се зарежда…</string>
|
||||
<string name="password">Парола</string>
|
||||
<string name="remember_hardware_key_title">Запомни хардуерните ключове</string>
|
||||
<string name="decrypting_db">Съдържанието на базата данни се декриптира…</string>
|
||||
<string name="unlock">Отключи</string>
|
||||
<string name="unavailable_feature_hardware">Не може да се намери съответният хардуер.</string>
|
||||
<string name="hardware_key">Хардуерен ключ</string>
|
||||
<string name="hide_password_summary">Маскира паролите (***) по подразбиране</string>
|
||||
<string name="select_database_file">Отвори съществуваща база данни</string>
|
||||
<string name="content_description_hardware_key_checkbox">Хардуерен ключ отметка</string>
|
||||
<string name="hide_password_title">Скриване на пароли</string>
|
||||
<string name="hint_pass">Парола</string>
|
||||
<string name="education_select_database_title">Отвори съществуваща база данни</string>
|
||||
<string name="content_description_keyfile_checkbox">Файл с ключ отметка</string>
|
||||
<string name="error_hardware_key_unsupported">Хардуерният ключ не се поддържа.</string>
|
||||
<string name="remember_hardware_key_summary">Пази запис на използваните хардуерни ключове</string>
|
||||
<string name="error_nokeyfile">Избери файл с ключ.</string>
|
||||
<string name="entry_keyfile">Файл с ключ</string>
|
||||
<string name="error_no_hardware_key">Избери хардуерен ключ.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Ще трябва да запомните основните си идентификационни данни на базата данни, дори като използвате разпознаване на отключването на устройството.</string>
|
||||
<string name="create_keepass_file">Създай нова база данни</string>
|
||||
</resources>
|
||||
@@ -30,17 +30,18 @@
|
||||
<string name="application">Aplicació</string>
|
||||
<string name="menu_app_settings">Configuració de l\'aplicació</string>
|
||||
<string name="brackets">Parèntesis</string>
|
||||
<string name="file_manager_install_description">Un gestor de fitxers que accepta les intencions ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT, que us calen per a crear, obrir i desar fitxers de base de dades.</string>
|
||||
<string name="clipboard_cleared">Porta-retalls netejat.</string>
|
||||
<string name="file_manager_install_description">Es requereix un gestor d\'arxius que accepti les intencions ACTION_CREATE_DOCUMENT i ACTION_OPEN_DOCUMENT per a crear, obrir i desar fitxers de base de dades.</string>
|
||||
<string name="clipboard_cleared">Porta-retalls netejat</string>
|
||||
<string name="clipboard_timeout">Temps d\'espera del porta-retalls</string>
|
||||
<string name="clipboard_timeout_summary">Temps abans de netejar el porta-retalls (si el teu dispositiu ho suporta)</string>
|
||||
<string name="select_to_copy">Selecciona per copiar %1$s al porta-retalls</string>
|
||||
<string name="retrieving_db_key">Es recupera la clau de base de dades…</string>
|
||||
<string name="database">Base de dades</string>
|
||||
<string name="decrypting_db">Es desxifra el contingut de la base de dades…</string>
|
||||
<string name="decrypting_db">Desxifrant la base de dades…</string>
|
||||
<string name="default_checkbox">Utilitza com a base de dades per defecte</string>
|
||||
<string name="digits">Dígits</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft ve sense cap mena de garantia. Això és programari lliure, i pots redistribuir-lo sota els termes de la llicència GPL versió 3 o posterior.</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft és <strong> programari lliure </strong> i <strong>sense anuncis</strong>.
|
||||
\nEs proporciona tal com està, sota una llicència <strong>GPLv3</strong>, sense cap garantia.</string>
|
||||
<string name="select_database_file">Obri una base de dades existent</string>
|
||||
<string name="entry_accessed">Accedida</string>
|
||||
<string name="entry_cancel">Cancel·la</string>
|
||||
@@ -139,10 +140,10 @@
|
||||
<string name="database_default_username_title">Nom d\'usuari per defecte</string>
|
||||
<string name="database_description_title">Descripció de la base de dades</string>
|
||||
<string name="database_name_title">Nom de la base de dades</string>
|
||||
<string name="clear_clipboard_notification_title">Neteja en tancar</string>
|
||||
<string name="clear_clipboard_notification_title">Neteja al tancar</string>
|
||||
<string name="disable">Desactiva</string>
|
||||
<string name="enable">Activa</string>
|
||||
<string name="settings_database_force_changing_master_key_summary">Obliga a canviar la contrasenya mestra (dies)</string>
|
||||
<string name="settings_database_force_changing_master_key_summary">Força a canviar la clau mestra (dies)</string>
|
||||
<string name="settings_database_force_changing_master_key_title">Força la renovació</string>
|
||||
<string name="max_history_size_title">Mida màxima</string>
|
||||
<string name="max_history_items_title">Nombre màxim</string>
|
||||
@@ -197,9 +198,9 @@
|
||||
<string name="hide_broken_locations_summary">Amaga els enllaços trencats en la llista de bases de dades recents</string>
|
||||
<string name="show_recent_files_summary">Mostra la ubicació de les bases de dades recents</string>
|
||||
<string name="show_recent_files_title">Mostra els fitxers recents</string>
|
||||
<string name="remember_keyfile_locations_title">Desa la ubicació dels fitxers de claus</string>
|
||||
<string name="remember_keyfile_locations_title">Recorda la ubicació dels fitxers de claus</string>
|
||||
<string name="remember_database_locations_summary">Recorda la ubicació de les bases de dades</string>
|
||||
<string name="remember_database_locations_title">Desa la ubicació de les bases de dades</string>
|
||||
<string name="remember_database_locations_title">Recorda l\'ubicació de les bases de dades</string>
|
||||
<string name="selection_mode">Mode de selecció</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Voleu resoldre el problema creant nous UUIDs per als duplicats per a continuar\?</string>
|
||||
<string name="contains_duplicate_uuid">La base de dades conté UUIDs duplicats.</string>
|
||||
@@ -221,7 +222,7 @@
|
||||
<string name="menu_copy">Copiar</string>
|
||||
<string name="menu_master_key_settings">Paràmetres de la contrasenya mestra</string>
|
||||
<string name="menu_security_settings">Paràmetres de seguretat</string>
|
||||
<string name="menu_advanced_unlock_settings">Desblocatge avançat</string>
|
||||
<string name="menu_advanced_unlock_settings">Desblocatge de dispositiu</string>
|
||||
<string name="menu_form_filling_settings">Emplenat de formularis</string>
|
||||
<string name="copy_field">Còpia de %1$s</string>
|
||||
<string name="creating_database">Es crea la base de dades…</string>
|
||||
@@ -244,7 +245,7 @@
|
||||
<string name="error_copy_entry_here">No és possible copiar cap entrada aquí.</string>
|
||||
<string name="error_move_entry_here">No és possible moure cap entrada aquí.</string>
|
||||
<string name="error_label_exists">Aquesta etiqueta ja existeix.</string>
|
||||
<string name="error_load_database">No s’ha pogut carregar la vostra base de dades.</string>
|
||||
<string name="error_load_database">No s’ha pogut carregar la base de dades.</string>
|
||||
<string name="entry_otp">OTP</string>
|
||||
<string name="otp_algorithm">Algorisme</string>
|
||||
<string name="otp_digits">Dígits</string>
|
||||
@@ -304,8 +305,8 @@
|
||||
<string name="html_text_dev_feature_contibute">En <strong>col·laborar-hi</strong>,</string>
|
||||
<string name="content_description_keyfile_checkbox">Casella del fitxer de la clau</string>
|
||||
<string name="content_description_password_checkbox">Casella de la contrasenya</string>
|
||||
<string name="content_description_otp_information">Informació de la contrasenya d’un sol ús</string>
|
||||
<string name="content_description_credentials_information">Informació de les dades d’accés</string>
|
||||
<string name="content_description_otp_information">Informació de contrasenya d\'únic ús</string>
|
||||
<string name="content_description_credentials_information">Informació de credencials</string>
|
||||
<string name="content_description_add_item">Afegeix un element</string>
|
||||
<string name="education_lock_title">Bloca la base de dades</string>
|
||||
<string name="html_text_feature_generosity">Aquest <strong>estil visual</strong> és disponible gràcies a la vostra generositat.</string>
|
||||
@@ -326,4 +327,122 @@
|
||||
<string name="icon_pack_choose_summary">El paquet d’icones que s’utilitza a l’aplicació</string>
|
||||
<string name="icon_pack_choose_title">Paquet d’icones</string>
|
||||
<string name="icon_section_custom">Personalitzat</string>
|
||||
<string name="template_group_name">Plantilles</string>
|
||||
<string name="error_unable_merge_database_kdb">No es pot fusionar d\'una base de dades V1.</string>
|
||||
<string name="auto_type">Auto-Escriptura</string>
|
||||
<string name="import_app_properties_title">Importar configuració de l\'aplicació</string>
|
||||
<string name="card_verification_value">CVV</string>
|
||||
<string name="inherited">Heretar</string>
|
||||
<string name="remember_hardware_key_title">Recorda les claus físiques</string>
|
||||
<string name="consider_chars_filter">Considera caràcters</string>
|
||||
<string name="exclude_ambiguous_chars">Exclou caràcters ambigus</string>
|
||||
<string name="unlock">Desbloqueja</string>
|
||||
<string name="bank">Banc</string>
|
||||
<string name="compression_none">Cap</string>
|
||||
<string name="info">Info</string>
|
||||
<string name="content_description_entry_background_color">Color de fons d\'entrada</string>
|
||||
<string name="error_empty_key">La clau no pot ser buida.</string>
|
||||
<string name="custom_data">Dades personalitzades</string>
|
||||
<string name="tags">Etiquetes</string>
|
||||
<string name="place_of_issue">Lloc d\'expedició</string>
|
||||
<string name="style_brightness_summary">Escull tema clar o fosc</string>
|
||||
<string name="hardware_key">Clau física</string>
|
||||
<string name="registration_mode">Mode de registre</string>
|
||||
<string name="ignore_chars_filter">Ignora caràcters</string>
|
||||
<string name="ask">Pregunta</string>
|
||||
<string name="searchable">Cercable</string>
|
||||
<string name="html_text_dev_feature_thanks">Moltes gràcies per la teva contribució.</string>
|
||||
<string name="menu_form_filling_settings_summary">Teclat, autoemplena, porta-retalls</string>
|
||||
<string name="export_app_properties_title">Exporta la configuració de l\'aplicació</string>
|
||||
<string name="email">Email</string>
|
||||
<string name="content_description_nav_header">Títol de navegació</string>
|
||||
<string name="navigation_drawer_close">Tancar calaix de navegació</string>
|
||||
<string name="properties">Propietats</string>
|
||||
<string name="clear_clipboard_notification_summary">Bloca la base de dades quan la duració del porta-retalls caduca o la notificació es tanca un cop s\'ha començat a utilitzar</string>
|
||||
<string name="html_about_privacy"><strong>No s\'agafa cap dada d\'usuari</strong>, aquesta aplicació no connecta a cap servidor, només treballa localment i respecta la privacitat dels usuaris en la seva totalitat.</string>
|
||||
<string name="notification">Notificació</string>
|
||||
<string name="content_description_entry_foreground_color">Color de primer pla d\'entrada</string>
|
||||
<string name="advanced_unlock">Desbloqueja dispositiu</string>
|
||||
<string name="template">Plantilla</string>
|
||||
<string name="title_case">Primera Majúscula</string>
|
||||
<string name="navigation_drawer_open">Obrir calaix de navegació</string>
|
||||
<string name="max_history_size_summary">Limita la mida de l\'historial per entrada</string>
|
||||
<string name="success_export_app_properties">Configuració de l\'aplicació exportada</string>
|
||||
<string name="error_export_app_properties">Error a l\'exportar la configuració de l\'aplicació</string>
|
||||
<string name="type">Tipus</string>
|
||||
<string name="content_description_hardware_key_checkbox">Casella de clau física</string>
|
||||
<string name="settings_database_recommend_changing_master_key_title">Recomanar renovació</string>
|
||||
<string name="name">Nom</string>
|
||||
<string name="lower_case">minúscula</string>
|
||||
<string name="import_app_properties_summary">Selecciona un fitxer per importar la configuració de l\'aplicació</string>
|
||||
<string name="monospace_font_fields_enable_summary">Canvia la font usada en els camps per una millor visibilitat dels caràcters</string>
|
||||
<string name="html_text_dev_feature_work_hard">Estem treballant de valent per implementar aquesta característica ràpidament.</string>
|
||||
<string name="autofill_close_database_summary">Tanca la base de dades després d\'auto-completar</string>
|
||||
<string name="screenshot_mode_banner_text">Mode captura de pantalla</string>
|
||||
<string name="application_appearance">Interfície</string>
|
||||
<string name="error_import_app_properties">Error a l\'importar la configuració de l\'aplicació</string>
|
||||
<string name="case_sensitive">Sensible a majúscules i minúscules</string>
|
||||
<string name="error_location_unknown">Localització de la base de dades desconeguda, l\'acció no es pot fer.</string>
|
||||
<string name="membership">Pertinença</string>
|
||||
<string name="content_description_passphrase_word_count">Nombre de paraules de la contrasenya</string>
|
||||
<string name="data">Dada</string>
|
||||
<string name="version">Versió</string>
|
||||
<string name="regex">Expressió regular</string>
|
||||
<string name="number">Número</string>
|
||||
<string name="other">Altre</string>
|
||||
<string name="account">Compte</string>
|
||||
<string name="allow_copy_password_title">Confia en el porta-retalls</string>
|
||||
<string name="holder">Titular</string>
|
||||
<string name="expired">Expirat</string>
|
||||
<string name="date_of_issue">Data d\'expedició</string>
|
||||
<string name="cryptocurrency">Cartera de cryptomoneda</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_title">Força renovació el pròxim cop</string>
|
||||
<string name="waiting_challenge_request">Esperant la sol·licitud de desafiament…</string>
|
||||
<string name="search_filters">Filtres de cerca</string>
|
||||
<string name="current_group">Grup actual</string>
|
||||
<string name="allow_no_password_title">No permetis clau mestra</string>
|
||||
<string name="public_key">Clau pública</string>
|
||||
<string name="content_description_repeat_toggle_password_visibility">Repetir canvi de visibilitat de contrasenya</string>
|
||||
<string name="auto_type_sequence">Seqüència d\'Auto-Escriptura</string>
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="word_separator">Separador</string>
|
||||
<string name="compression_gzip">Gzip</string>
|
||||
<string name="waiting_challenge_response">Esperant la resposta de desafiament…</string>
|
||||
<string name="bank_name">Nom del banc</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="set_autofill_service_title">Estableix el servei d\'emplenament automàtic predeterminat</string>
|
||||
<string name="compression">Compressió</string>
|
||||
<string name="id_card">Targeta d\'identificació</string>
|
||||
<string name="error_hardware_key_unsupported">Clau física no suportada.</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometria, credencial de dispositiu</string>
|
||||
<string name="standard">Estàndard</string>
|
||||
<string name="error_XML_malformed">XML mal format.</string>
|
||||
<string name="remember_hardware_key_summary">Recorda les claus físiques que s\'han usat</string>
|
||||
<string name="token">Token</string>
|
||||
<string name="debit_credit_card">Targeta de Dèbit / Crèdit</string>
|
||||
<string name="description_app_properties">Propietats de KeePassDX per administrar la configuració de l\'aplicació</string>
|
||||
<string name="menu_save_copy_to">Desar còpia a …</string>
|
||||
<string name="ssid">SSID</string>
|
||||
<string name="allow_copy_password_warning">Alerta: El porta-retalls és compartit per totes les aplicacions. Si es copien dades sensibles, altres programes poden veure-ho.</string>
|
||||
<string name="private_key">Clau privada</string>
|
||||
<string name="export_app_properties_summary">Crea un fitxer per exportar la configuració de l\'aplicació</string>
|
||||
<string name="permission">Permís</string>
|
||||
<string name="menu_reload_database">Recarregar dada</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="menu_merge_from">Fusionar desde …</string>
|
||||
<string name="content_description_database_color">Color de la base de dades</string>
|
||||
<string name="character_count">Comptador de caràcters: %1$d</string>
|
||||
<string name="email_address">Adreça electrònica</string>
|
||||
<string name="merge_success">Fusió completada satisfactòriament</string>
|
||||
<string name="seed">Llavor</string>
|
||||
<string name="settings_database_recommend_changing_master_key_summary">Recomanar canviar la clau mestra (dies)</string>
|
||||
<string name="autofill_close_database_title">Tanca la base de dades</string>
|
||||
<string name="bank_identifier_code">SWIFT / BIC</string>
|
||||
<string name="upper_case">MAJÚSCULA</string>
|
||||
<string name="monospace_font_fields_enable_title">Tipografia de camp</string>
|
||||
<string name="corrupted_file">Fitxer corrupte.</string>
|
||||
<string name="error_no_hardware_key">Selecciona clau física.</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Requereix canviar la clau mestra el pròxim cop (un cop)</string>
|
||||
<string name="allow_copy_password_summary">Permet copiar la clau i els camps protegits d\'una entrada al porta-retalls</string>
|
||||
<string name="success_import_app_properties">Configuració de l\'aplicació importada</string>
|
||||
</resources>
|
||||
@@ -60,7 +60,7 @@
|
||||
<string name="error_arc4">Arcfour proudová šifra není podporována.</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_invalid_db">Databázi se nepodařilo načíst.</string>
|
||||
<string name="error_invalid_db">Databázi se nepodařilo přečíst.</string>
|
||||
<string name="error_invalid_path">Ujistěte se, že je popis umístění správný.</string>
|
||||
<string name="error_no_name">Zadejte název.</string>
|
||||
<string name="error_nokeyfile">Vyberte soubor s klíčem.</string>
|
||||
@@ -539,15 +539,15 @@
|
||||
<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 heslu</string>
|
||||
<string name="properties">Vlastnosti</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="error_import_app_properties">Během importu vlastností aplikace došlo k chybě</string>
|
||||
<string name="success_import_app_properties">Vlastnosti aplikace byly importovány</string>
|
||||
<string name="error_export_app_properties">Během exportu nastavení aplikace došlo k chybě</string>
|
||||
<string name="success_export_app_properties">Nastavení aplikace byla exportována</string>
|
||||
<string name="error_import_app_properties">Během importu nastavení aplikace došlo k chybě</string>
|
||||
<string name="success_import_app_properties">Nastavení aplikace byla importována</string>
|
||||
<string name="description_app_properties">Vlastnosti KeePassDX pro správu aplikačních nastavení</string>
|
||||
<string name="export_app_properties_summary">Pro export vlastností aplikace založte soubor</string>
|
||||
<string name="export_app_properties_title">Exportovat vlastnosti aplikace</string>
|
||||
<string name="import_app_properties_summary">Pro import vlastostí aplikace zvolte soubor</string>
|
||||
<string name="import_app_properties_title">Importovat vlastnosti aplikace</string>
|
||||
<string name="export_app_properties_summary">Vytvořte soubor pro export nastavení aplikace</string>
|
||||
<string name="export_app_properties_title">Exportovat nastavení aplikace</string>
|
||||
<string name="import_app_properties_summary">Vyberte soubor pro import nastavení aplikace</string>
|
||||
<string name="import_app_properties_title">Importovat nastavení aplikace</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_duplicate_file">Datový soubor již existuje.</string>
|
||||
|
||||
@@ -200,9 +200,9 @@
|
||||
<string name="other">Άλλα</string>
|
||||
<string name="keyboard">Πληκτρολόγιο</string>
|
||||
<string name="magic_keyboard_title">Magikeyboard</string>
|
||||
<string name="reset_education_screens_title">Επαναφορά εκπαιδευτικών συμβουλών</string>
|
||||
<string name="reset_education_screens_title">Επαναφορά εκπαιδευτικών υποδείξεων</string>
|
||||
<string name="reset_education_screens_summary">Εμφάνιση όλων των εκπαιδευτικών πληροφοριών ξανά</string>
|
||||
<string name="reset_education_screens_text">Επαναφορά εκπαιδευτικών συμβουλών</string>
|
||||
<string name="reset_education_screens_text">Επαναφορά εκπαιδευτικών υποδείξεων</string>
|
||||
<string name="education_create_database_title">Δημιουργήστε το αρχείο της βάσης δεδομένων σας</string>
|
||||
<string name="education_create_database_summary">Δημιουργήστε το πρώτο αρχείο διαχείρισης κωδικού πρόσβασης.</string>
|
||||
<string name="education_select_database_title">Ανοίξτε μια υπάρχουσα βάση δεδομένων</string>
|
||||
@@ -326,7 +326,7 @@
|
||||
<string name="content_description_keyboard_close_fields">Κλείσιμο πεδίων</string>
|
||||
<string name="error_create_database_file">Δεν είναι δυνατή η δημιουργία βάσης δεδομένων με αυτόν τον κωδικό πρόσβασης και το αρχείο κλειδί.</string>
|
||||
<string name="menu_advanced_unlock_settings">Ξεκλείδωμα συσκευής</string>
|
||||
<string name="unavailable">Αυτή η βάση δεδομένων δεν έχει αποθηκευμένα διαπιστευτήρια ακόμα.</string>
|
||||
<string name="unavailable">Μη διαθέσιμο</string>
|
||||
<string name="menu_appearance_settings">Εμφάνιση</string>
|
||||
<string name="biometric">Βιομετρία</string>
|
||||
<string name="advanced_unlock">Ξεκλείδωμα συσκευής</string>
|
||||
@@ -540,15 +540,15 @@
|
||||
<string name="error_remove_file">Παρουσιάστηκε σφάλμα κατά την κατάργηση των δεδομένων αρχείου.</string>
|
||||
<string name="error_duplicate_file">Τα δεδομένα αρχείου υπάρχουν ήδη.</string>
|
||||
<string name="properties">Ιδιότητες</string>
|
||||
<string name="error_export_app_properties">Σφάλμα κατά την εξαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="success_export_app_properties">Έγινε εξαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="error_import_app_properties">Σφάλμα κατά την εισαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="success_import_app_properties">Έγινε εισαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="error_export_app_properties">Σφάλμα κατά την εξαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="success_export_app_properties">Έγινε εξαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="error_import_app_properties">Σφάλμα κατά την εισαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="success_import_app_properties">Έγινε εισαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="description_app_properties">Ιδιότητες KeePassDX για διαχείριση ρυθμίσεων εφαρμογής</string>
|
||||
<string name="export_app_properties_summary">Δημιουργήστε ένα αρχείο για εξαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="export_app_properties_title">Εξαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="import_app_properties_summary">Επιλέξτε ένα αρχείο για εισαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="import_app_properties_title">Εισαγωγή ιδιοτήτων εφαρμογής</string>
|
||||
<string name="export_app_properties_summary">Δημιουργήστε ένα αρχείο για εξαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="export_app_properties_title">Εξαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="import_app_properties_summary">Επιλέξτε ένα αρχείο για εισαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="import_app_properties_title">Εισαγωγή ρυθμίσεων εφαρμογής</string>
|
||||
<string name="error_start_database_action">Παρουσιάστηκε σφάλμα κατά την εκτέλεση μιας ενέργειας στη βάση δεδομένων.</string>
|
||||
<string name="error_move_group_here">Δεν μπορείτε να μετακινήσετε μια ομάδα εδώ.</string>
|
||||
<string name="error_word_reserved">Αυτή η λέξη είναι δεσμευμένη και δεν μπορεί να χρησιμοποιηθεί.</string>
|
||||
|
||||
@@ -145,4 +145,12 @@
|
||||
<string name="homepage">Hejmpaĝo</string>
|
||||
<string name="contribution">Kontribuo</string>
|
||||
<string name="contact">Kontakto</string>
|
||||
<string name="clipboard_error">Iu aparatoj ne permesas al apoj uzi tondujon.</string>
|
||||
<string name="about_description">Varianto de pasvort-manipulilo KeePass por Android</string>
|
||||
<string name="key_derivation_function">Funkcio por derivado de ŝlosilo</string>
|
||||
<string name="info">Informo</string>
|
||||
<string name="feedback">Erar-raportoj kaj sugestoj</string>
|
||||
<string name="file_manager_install_description">Por krei, malfermi kaj konservi datumbazaj dosieroj necesiĝas dosier-manipulilo, kiu akceptas intenco-agojn ACTION_CREATE_DOCUMENT kaj ACTION_OPEN_DOCUMENT.</string>
|
||||
<string name="app_timeout_summary">Periodo de malaktiveco antaŭ ŝlosado de datumbazo</string>
|
||||
<string name="extended_ASCII">Etendita ASCII</string>
|
||||
</resources>
|
||||
@@ -43,7 +43,7 @@
|
||||
<string name="digits">Dígitos</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft es de <strong>código abierto</strong> y <strong>sin publicidad</strong>.
|
||||
\nSe proporciona tal cual, bajo licencia <strong>GPLv3</strong>, sin ninguna garantía.</string>
|
||||
<string name="select_database_file">Abrir la cámara acorazada existente</string>
|
||||
<string name="select_database_file">Abrir la caja fuerte existente</string>
|
||||
<string name="entry_accessed">Accedido</string>
|
||||
<string name="entry_cancel">Cancelar</string>
|
||||
<string name="entry_notes">Notas</string>
|
||||
@@ -197,7 +197,7 @@
|
||||
<string name="file_name">Nombre del archivo</string>
|
||||
<string name="path">Ruta</string>
|
||||
<string name="assign_master_key">Asignar una clave maestra</string>
|
||||
<string name="create_keepass_file">Crear una nueva cámara acorazada</string>
|
||||
<string name="create_keepass_file">Crear una nueva caja fuerte</string>
|
||||
<string name="recycle_bin_title">Uso de la papelera de reciclaje</string>
|
||||
<string name="recycle_bin_summary">Mueve los grupos y las entradas al grupo \"Papelera de reciclaje\" antes de eliminarlos</string>
|
||||
<string name="monospace_font_fields_enable_title">Tipografía del campo</string>
|
||||
@@ -461,7 +461,7 @@
|
||||
<string name="advanced_unlock_invalid_key">No se puede leer la clave de desbloqueo del dispositivo. Por favor, bórrala y repite el procedimiento de reconocimiento del desbloqueo.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Extraer la credencial de la base de datos con los datos de desbloqueo del dispositivo</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Reconocimiento de desbloqueo de los dispositivos</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Aún debes recordar la credencial principal de tu cámara acorazada si usas el reconocimiento para el desbloqueo del dispositivo.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Aún debes recordar la credencial principal de tu caja fuerte si usas el reconocimiento para el desbloqueo del dispositivo.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Enlace para el desbloqueo del dispositivo</string>
|
||||
<string name="keystore_not_accessible">El almacén de claves no está debidamente inicializado.</string>
|
||||
<string name="biometric_security_update_required">Se requiere una actualización de la seguridad biométrica.</string>
|
||||
@@ -541,14 +541,14 @@
|
||||
<string name="style_brightness_summary">Seleccionar temas oscuros o claros</string>
|
||||
<string name="style_brightness_title">Brillo del tema</string>
|
||||
<string name="properties">Propiedades</string>
|
||||
<string name="error_import_app_properties">Error al importar las propiedades de la aplicación</string>
|
||||
<string name="error_export_app_properties">Error al exportar las propiedades de la aplicación</string>
|
||||
<string name="success_export_app_properties">Propiedades de la aplicación exportadas</string>
|
||||
<string name="success_import_app_properties">Propiedades de la aplicación importadas</string>
|
||||
<string name="export_app_properties_summary">Cree un archivo para exportar las propiedades de la aplicación</string>
|
||||
<string name="export_app_properties_title">Exportar propiedades de la aplicación</string>
|
||||
<string name="import_app_properties_summary">Seleccione un archivo para importar las propiedades de la aplicación</string>
|
||||
<string name="import_app_properties_title">Importar propiedades de la aplicación</string>
|
||||
<string name="error_import_app_properties">Error al importar la configuración de la aplicación</string>
|
||||
<string name="error_export_app_properties">Error al exportar la configuración de la aplicación</string>
|
||||
<string name="success_export_app_properties">Exportada la configuración de la aplicación</string>
|
||||
<string name="success_import_app_properties">Importada la configuración de la aplicación</string>
|
||||
<string name="export_app_properties_summary">Crear un archivo para exportar la configuración de la aplicación</string>
|
||||
<string name="export_app_properties_title">Exportar la configuración de la aplicación</string>
|
||||
<string name="import_app_properties_summary">Selecciona un archivo para importar la configuración de la aplicación</string>
|
||||
<string name="import_app_properties_title">Importar la configuración de la aplicación</string>
|
||||
<string name="error_start_database_action">Se ha producido un error al realizar una acción en la base de datos.</string>
|
||||
<string name="error_remove_file">Se ha producido un error al eliminar los datos del archivo.</string>
|
||||
<string name="error_file_to_big">El archivo que está intentando cargar es demasiado grande.</string>
|
||||
|
||||
@@ -306,4 +306,5 @@
|
||||
<string name="error_move_entry_here">Et voi siirtää tietuetta tänne.</string>
|
||||
<string name="error_autofill_enable_service">Automaattista täyttöä ei voitu ottaa käyttöön.</string>
|
||||
<string name="content_description_node_children">Solmun lapset</string>
|
||||
<string name="info">Tietoja</string>
|
||||
</resources>
|
||||
@@ -556,15 +556,15 @@
|
||||
<string name="error_file_to_big">Le fichier que vous essayez de téléverser est trop volumineux.</string>
|
||||
<string name="content_description_otp_information">Information sur le mot de passe à usage unique</string>
|
||||
<string name="properties">Propriétés</string>
|
||||
<string name="error_export_app_properties">Erreur lors de l\'exportation des propriétés de l\'application</string>
|
||||
<string name="success_export_app_properties">Propriétés de l\'application exportées</string>
|
||||
<string name="error_import_app_properties">Erreur lors de l\'importation des propriétés de l\'application</string>
|
||||
<string name="success_import_app_properties">Propriétés de l\'application importées</string>
|
||||
<string name="error_export_app_properties">Erreur lors de l\'exportation des paramètres de l\'application</string>
|
||||
<string name="success_export_app_properties">Paramètres exportés de l\'application</string>
|
||||
<string name="error_import_app_properties">Erreur lors de l\'importation des paramètres de l\'application</string>
|
||||
<string name="success_import_app_properties">Paramètres importés de l\'application</string>
|
||||
<string name="description_app_properties">Propriétés KeePassDX pour gérer les paramètres de l\'application</string>
|
||||
<string name="export_app_properties_summary">Créer un fichier pour exporter les propriétés de l\'application</string>
|
||||
<string name="export_app_properties_title">Exporter les propriétés de l\'application</string>
|
||||
<string name="import_app_properties_summary">Sélectionner un fichier pour importer les propriétés de l\'application</string>
|
||||
<string name="import_app_properties_title">Importer les propriétés de l\'application</string>
|
||||
<string name="export_app_properties_summary">Créer un fichier pour exporter les paramètres de l\'application</string>
|
||||
<string name="export_app_properties_title">Exporter les paramètres de l\'application</string>
|
||||
<string name="import_app_properties_summary">Sélectionner un fichier pour importer les paramètres de l\'application</string>
|
||||
<string name="import_app_properties_title">Importer les paramètres de l\'application</string>
|
||||
<string name="error_start_database_action">Une erreur s\'est produite lors de l\'exécution d\'une action sur la base de données.</string>
|
||||
<string name="error_move_group_here">Vous ne pouvez pas déplacer un groupe ici.</string>
|
||||
<string name="error_word_reserved">Ce mot est réservé et ne peut pas être utilisé.</string>
|
||||
@@ -688,7 +688,7 @@
|
||||
<string name="master_key_settings_summary">Changement, renouvellement</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biométrie, identifiant de l\'appareil</string>
|
||||
<string name="unlock_and_link_biometric">Liaison avec déverouillage de l\'appareil</string>
|
||||
<string name="unlock">Déverouiller</string>
|
||||
<string name="unlock">Déverrouiller</string>
|
||||
<string name="configure">Configurer</string>
|
||||
<string name="menu_database_settings_summary">Métadonnées, corbeille, gabarits, historique</string>
|
||||
<string name="menu_security_settings_summary">Chiffrement, fonction de dérivation de clé</string>
|
||||
|
||||
@@ -535,15 +535,15 @@
|
||||
<string name="error_remove_file">Tijekom uklanjanja podataka datoteke došlo je do greške.</string>
|
||||
<string name="error_duplicate_file">Podaci datoteke već postoje.</string>
|
||||
<string name="properties">Svojstva</string>
|
||||
<string name="error_export_app_properties">Greška tijekom izvoza svojstava aplikacije</string>
|
||||
<string name="success_export_app_properties">Svojstva aplikacije su izvezena</string>
|
||||
<string name="error_import_app_properties">Greška tijekom uvoza svojstava aplikacije</string>
|
||||
<string name="success_import_app_properties">Svojstva aplikacije su uvezena</string>
|
||||
<string name="error_export_app_properties">Greška tijekom izvoza postavki aplikacije</string>
|
||||
<string name="success_export_app_properties">Postavke aplikacije su izvezene</string>
|
||||
<string name="error_import_app_properties">Greška tijekom uvoza postavki aplikacije</string>
|
||||
<string name="success_import_app_properties">Postavke aplikacije su uvezene</string>
|
||||
<string name="description_app_properties">KeePassDX svojstva za upravljanje postavkama aplikacije</string>
|
||||
<string name="export_app_properties_summary">Stvori datoteku za izvoz svojstva aplikacije</string>
|
||||
<string name="export_app_properties_title">Izvezi svojstva aplikacije</string>
|
||||
<string name="import_app_properties_summary">Odaberi datoteku za uvoz svojstva aplikacije</string>
|
||||
<string name="import_app_properties_title">Uvezi svojstva aplikacije</string>
|
||||
<string name="export_app_properties_summary">Stvori datoteku za izvoz postavki aplikacije</string>
|
||||
<string name="export_app_properties_title">Izvezi postavke aplikacije</string>
|
||||
<string name="import_app_properties_summary">Odaberi datoteku za uvoz postavki aplikacije</string>
|
||||
<string name="import_app_properties_title">Uvezi postavke aplikacije</string>
|
||||
<string name="error_start_database_action">Došlo je do greške tijekom izvođenja radnje u bazi podataka.</string>
|
||||
<string name="error_move_group_here">Grupa se ne može ovdje premjestiti.</string>
|
||||
<string name="error_word_reserved">Ova je riječ rezervirana i ne može se koristiti.</string>
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
<string name="digits">Számok</string>
|
||||
<string name="html_about_licence">KeePassDX © %1$d Kunzisoft. A program <strong>nyílt forráskódú</strong> és <strong>reklámmentes</strong>.
|
||||
\nA program jelen állapotában kerül közreadásra, <strong>GPLv3</strong> licenc alatt, bármilyen garancia nélkül.</string>
|
||||
<string name="select_database_file">Létező adatbázis megnyitása</string>
|
||||
<string name="select_database_file">Létező széf megnyitása</string>
|
||||
<string name="entry_accessed">Utolsó hozzáférés</string>
|
||||
<string name="entry_cancel">Mégse</string>
|
||||
<string name="entry_notes">Megjegyzések</string>
|
||||
@@ -55,7 +55,7 @@
|
||||
<string name="entry_modified">Módosítva</string>
|
||||
<string name="entry_password">Jelszó</string>
|
||||
<string name="save">Mentés</string>
|
||||
<string name="entry_title">Név</string>
|
||||
<string name="entry_title">Titulus</string>
|
||||
<string name="entry_url">URL</string>
|
||||
<string name="entry_user_name">Felhasználónév</string>
|
||||
<string name="error_arc4">Az Arcfour adatfolyam-titkosítás nem támogatott.</string>
|
||||
@@ -132,7 +132,7 @@
|
||||
<string name="warning_password_encoding">Kerülje a Latin-1 karakterkészlettől eltérő jelszókaraktereket az adatbázis-fájlban (a nem felismert karakterek mert ugyanarra a betűre lesznek alakítva).</string>
|
||||
<string name="version_label">Verzió: %1$s</string>
|
||||
<string name="encrypted_value_stored">Titkosított jelszó tárolva</string>
|
||||
<string name="unavailable">Az adatbázisnak még nincs jelszava.</string>
|
||||
<string name="unavailable">Nem érhető el</string>
|
||||
<string name="education_unlock_summary">Adja meg a jelszót és/vagy a kulcsfájlt, hogy kinyithassa az adatbázist.
|
||||
\n
|
||||
\nKészítsen biztonsági mentést az adatbázisról minden egyes módosítás után.</string>
|
||||
@@ -147,7 +147,7 @@
|
||||
<string name="extended_ASCII">Bővített ASCII</string>
|
||||
<string name="allow">Engedélyezés</string>
|
||||
<string name="entry_not_found">A bejegyzésadatok nem találhatóak.</string>
|
||||
<string name="error_load_database">Az adatbázis betöltése meghiúsult.</string>
|
||||
<string name="error_load_database">Nem sikerült az adatbázis betöltése.</string>
|
||||
<string name="error_load_database_KDF_memory">A kulcs nem tölthető be. Próbálja meg csökkenteni a KDF „Memóriahasználatot”.</string>
|
||||
<string name="error_autofill_enable_service">Az automatikus kitöltési szolgáltatás nem engedélyezhető.</string>
|
||||
<string name="list_entries_show_username_title">Felhasználónevek megjelenítése</string>
|
||||
@@ -160,8 +160,8 @@
|
||||
<string name="menu_cancel">Mégse</string>
|
||||
<string name="menu_file_selection_read_only">Írásvédett</string>
|
||||
<string name="menu_open_file_read_and_write">Módosítható</string>
|
||||
<string name="create_keepass_file">Új adatbázis létrehozása</string>
|
||||
<string name="encryption_explanation">Az összes adathoz használt adatbázis-titkosítási algoritmus.</string>
|
||||
<string name="create_keepass_file">Új széf létrehozása</string>
|
||||
<string name="encryption_explanation">Az összes adathoz használt adatbázis-titkosítási algoritmus</string>
|
||||
<string name="kdf_explanation">A kulcs előállításához a titkosítási algoritmushoz, a mesterkulcs átalakításra került egy véletlenszerűen sózott kulcselőállítási függvénnyel.</string>
|
||||
<string name="memory_usage">Memóriahasználat</string>
|
||||
<string name="memory_usage_explanation">A kulcselőállítási függvényhez használt memóriamennyiség.</string>
|
||||
@@ -198,11 +198,11 @@
|
||||
<string name="lock">Zárolás</string>
|
||||
<string name="lock_database_screen_off_title">Képernyőzár</string>
|
||||
<string name="lock_database_screen_off_summary">Az adatbázis zárolása néhány másodperc után, ha a képernyő kikapcsol</string>
|
||||
<string name="advanced_unlock">Speciális feloldás</string>
|
||||
<string name="advanced_unlock">Eszközfeloldás</string>
|
||||
<string name="biometric_unlock_enable_title">Ujjlenyomat-alapú feloldás</string>
|
||||
<string name="biometric_unlock_enable_summary">Lehetővé teszi, hogy leolvassa az ujjlenyomatát az adatbázis megnyitásához</string>
|
||||
<string name="biometric_delete_all_key_title">Titkosítási kulcsok törlése</string>
|
||||
<string name="biometric_delete_all_key_summary">Az összes, a speciális feloldásfelisméreshez tartozó titkosítási kulcs törlése</string>
|
||||
<string name="biometric_delete_all_key_summary">Az összes, az eszközfeloldás-felismeréshez tartozó titkosítási kulcs törlése</string>
|
||||
<string name="unavailable_feature_text">A funkciót nem sikerült elindítani.</string>
|
||||
<string name="unavailable_feature_version">Az eszköz Android %1$s rendszert futtat, de %2$s vagy újabb szükséges.</string>
|
||||
<string name="unavailable_feature_hardware">Nem található a megfelelő hardver.</string>
|
||||
@@ -296,7 +296,7 @@
|
||||
<string name="html_text_dev_feature_work_hard">Keményen dolgozunk, hogy gyorsan kiadjuk ezt a funkciót.</string>
|
||||
<string name="html_text_dev_feature_upgrade">Ne felejtse naprakészen tartani az alkalmazást az új verziók telepítésével.</string>
|
||||
<string name="download">Letöltés</string>
|
||||
<string name="contribute">Támogatás</string>
|
||||
<string name="contribute">Közreműködés</string>
|
||||
<string name="style_choose_title">Alkalmazástéma</string>
|
||||
<string name="style_choose_summary">Az alkalmazásban használt téma</string>
|
||||
<string name="icon_pack_choose_title">Ikoncsomag</string>
|
||||
@@ -382,7 +382,7 @@
|
||||
<string name="max_history_items_title">Maximális szám</string>
|
||||
<string name="database_data_compression_summary">Az adattömörítés csökkenti az adatbázis méretét</string>
|
||||
<string name="database_data_compression_title">Adattömörítés</string>
|
||||
<string name="advanced_unlock_explanation_summary">Speciális feloldás használat az adatbázis könnyebb megnyitásához</string>
|
||||
<string name="advanced_unlock_explanation_summary">Eszközfeloldás használata az adatbázis könnyebb megnyitásához</string>
|
||||
<string name="clipboard_explanation_summary">A bejegyzésmezők másolása az eszköz vágólapjának használatával</string>
|
||||
<string name="database_opened">Adatbázis megnyitva</string>
|
||||
<string name="contains_duplicate_uuid_procedure">Megoldja a problémát azzal, hogy új UUID-t állít elő az ismétlődések számára\?</string>
|
||||
@@ -409,16 +409,16 @@
|
||||
<string name="entry_history">Előzmények</string>
|
||||
<string name="disable">Letiltás</string>
|
||||
<string name="enable">Engedélyezés</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Automatikusan kéri a speciális feloldást, ha az adatbázis úgy van beállítva, hogy használja</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Az eszközfeloldás automatikus kérése, ha az adatbázis úgy van beállítva, hogy használja</string>
|
||||
<string name="biometric_auto_open_prompt_title">Automatikus megnyitási képernyő</string>
|
||||
<string name="biometric">Ujjlenyomat</string>
|
||||
<string name="menu_advanced_unlock_settings">Speciális feloldás</string>
|
||||
<string name="menu_advanced_unlock_settings">Eszközfeloldás</string>
|
||||
<string name="content_description_keyboard_close_fields">Mezők bezárása</string>
|
||||
<string name="content_description_update_from_list">Frissítés</string>
|
||||
<string name="list_groups_show_number_entries_summary">A csoportban szereplő bejegyzések számának megjelenítése</string>
|
||||
<string name="list_groups_show_number_entries_title">Bejegyzések számának megjelenítése</string>
|
||||
<string name="error_copy_entry_here">Bejegyzés nem másolható ide.</string>
|
||||
<string name="error_move_entry_here">Bejegyzés nem helyezhető át ide.</string>
|
||||
<string name="error_copy_entry_here">Nem másolhat ide bejegyzést.</string>
|
||||
<string name="error_move_entry_here">Nem helyezhet át ide bejegyzéseket.</string>
|
||||
<string name="entry_UUID">UUID</string>
|
||||
<string name="content_description_remove_field">Mező eltávolítása</string>
|
||||
<string name="content_description_password_length">Jelszó hossza</string>
|
||||
@@ -462,12 +462,12 @@
|
||||
<string name="error_string_type">A szöveg nem egyezik a kért elemmel.</string>
|
||||
<string name="content_description_credentials_information">Hitelesítő adatok információi</string>
|
||||
<string name="content_description_add_item">Elem hozzáadása</string>
|
||||
<string name="export_app_properties_summary">Fájl létrehozása az alkalmazástulajdonságok exportálásához</string>
|
||||
<string name="export_app_properties_title">Alkalmazástulajdonságok exportálása</string>
|
||||
<string name="import_app_properties_summary">Válasszon fájlt az alkalmazástulajdonságok importálásához</string>
|
||||
<string name="import_app_properties_title">Alkalmazástulajdonságok importálása</string>
|
||||
<string name="export_app_properties_summary">Fájl létrehozása az alkalmazásbeállítások exportálásához</string>
|
||||
<string name="export_app_properties_title">Alkalmazásbeállítások exportálása</string>
|
||||
<string name="import_app_properties_summary">Válasszon fájlt az alkalmazásbeállítások importálásához</string>
|
||||
<string name="import_app_properties_title">Alkalmazásbeállítások importálása</string>
|
||||
<string name="menu_external_icon">Külső ikon</string>
|
||||
<string name="menu_keystore_remove_key">Speciális feloldási kulcs törlése</string>
|
||||
<string name="menu_keystore_remove_key">Eszközfeloldási kulcs törlése</string>
|
||||
<string name="menu_reload_database">Adatok újratöltése</string>
|
||||
<string name="error_start_database_action">Hiba történt az adatbázison végzett művelet során.</string>
|
||||
<string name="error_remove_file">Hiba történt a fájladatok eltávolítása során.</string>
|
||||
@@ -511,46 +511,46 @@
|
||||
<string name="content_description_otp_information">Egyszer használatos jelszó információ</string>
|
||||
<string name="content_description_entry_background_color">Bejegyzés háttérszíne</string>
|
||||
<string name="content_description_entry_foreground_color">Bejegyzés előtérszíne</string>
|
||||
<string name="success_import_app_properties">Alkalmazástulajdonságok importálva</string>
|
||||
<string name="error_export_app_properties">Hiba történt az alkalmazástulajdonságok exportálása során</string>
|
||||
<string name="success_import_app_properties">Alkalmazásbeállítások importálva</string>
|
||||
<string name="error_export_app_properties">Hiba történt az alkalmazásbeállítások exportálása során</string>
|
||||
<string name="warning_database_info_changed">Az adatbázisfájlban lévő információkat az alkalmazáson kívülről megváltoztatták.</string>
|
||||
<string name="description_app_properties">KeePassDX tulajdonságok az alkalmazásbeállítások kezeléséhez</string>
|
||||
<string name="success_export_app_properties">Alkalmazástulajdonságok exportálva</string>
|
||||
<string name="success_export_app_properties">Alkalmazásbeállítások exportálva</string>
|
||||
<string name="content_description_database_color">Adatbázis színe</string>
|
||||
<string name="error_import_app_properties">Hiba történt az alkalmazástulajdonságok importálása során</string>
|
||||
<string name="error_import_app_properties">Hiba történt az alkalmazásbeállítások importálása során</string>
|
||||
<string name="hint_icon_name">Ikon neve</string>
|
||||
<string name="autofill_select_entry">Válasszon bejegyzést…</string>
|
||||
<string name="warning_database_info_changed_options">Adatok egyesítése, majd a külső módosítások felülírása az adatbázis mentésével, vagy az adatbázis újratöltése a legfrissebb változtatásokkal.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Speciális feloldásfelismerés</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Figyelmeztetés: Továbbra is meg kell jegyeznie a mesterjelszót, ha a speciális feloldásfelismerést használja.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Adatbázis hitelesítő adatainak kinyerése a speciális adatfeloldással</string>
|
||||
<string name="advanced_unlock_invalid_key">A speciális feloldási kulcs nem olvasható. Törölje, és ismételje meg a feloldásfelismerési folyamatot.</string>
|
||||
<string name="advanced_unlock_not_recognized">A speciális feloldási ujjlenyomat nem ismerhető fel</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">A speciális feloldási képernyő előkészítése sikertelen.</string>
|
||||
<string name="warning_database_info_changed_options">Adatok egyesítése, majd a külső módosítások felülírása az adatbázis mentésével, vagy újratöltés a legfrissebb változtatásokkal.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Hivatkozás az eszköz feloldásához</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Továbbra is meg kell jegyeznie a széf fő jelszavát, ha az eszköz feloldásfelismerését használja.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Adatbázis hitelesítő adatainak kinyerése az eszköz adatfeloldásával</string>
|
||||
<string name="advanced_unlock_invalid_key">Az eszközfeloldási kulcs nem olvasható. Törölje, és ismételje meg a feloldásfelismerési folyamatot.</string>
|
||||
<string name="advanced_unlock_not_recognized">Az eszközfeloldási ujjlenyomat nem ismerhető fel</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Az eszközfeloldási képernyő előkészítése sikertelen.</string>
|
||||
<string name="properties">Tulajdonságok</string>
|
||||
<string name="device_credential">Eszköz hitelesítő adatai</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Ne tároljon semmilyen titkosított tartalmat a speciális feloldás használatához</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Speciális feloldás lejárati ideje</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Ne tároljon semmilyen titkosított tartalmat az eszközfeloldás használatához</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Eszközfeloldás lejárati ideje</string>
|
||||
<string name="warning_database_revoked">A fájl elérését visszavonta a fájlkezelő, zárja be az adatbázist és nyissa meg újra a helyéről.</string>
|
||||
<string name="warning_exact_alarm">Nem engedélyezte az alkalmazásnak, hogy pontos riasztást használjon. Ezért az időzítőt használó funkciók nem a pontos időt fogják használni.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Adatbázis megnyitása a speciális feloldásfelismeréssel</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Eszköz feloldásfelismerése</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Írja be a jelszót, majd kattintson erre a gombra.</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Ideiglenes speciális feloldás</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Ideiglenes eszközfeloldás</string>
|
||||
<string name="permission">Engedély</string>
|
||||
<string name="advanced_unlock_scanning_error">Speciális feloldási hiba: %1$s</string>
|
||||
<string name="advanced_unlock_scanning_error">Eszközfeloldási hiba: %1$s</string>
|
||||
<string name="content">Tartalom</string>
|
||||
<string name="advanced_unlock_tap_delete">Koppintson a speciális feloldási kulcsok törléséhez</string>
|
||||
<string name="advanced_unlock_tap_delete">Koppintson az eszközfeloldási kulcsok törléséhez</string>
|
||||
<string name="device_credential_unlock_enable_title">Eszköz hitelesítő adataival történő feloldás</string>
|
||||
<string name="device_credential_unlock_enable_summary">Lehetővé teszi, hogy az eszköz hitelesítő adataival nyissa meg az adatbázist</string>
|
||||
<string name="autofill_application_id_blocklist_title">Letiltott alkalmazások</string>
|
||||
<string name="menu_merge_database">Adatok egyesítése</string>
|
||||
<string name="autofill_close_database_title">Adatbázis bezárása</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">A speciális feloldás használata ideje, mielőtt a tartalma törölve lesz</string>
|
||||
<string name="advanced_unlock_timeout">Speciális feloldás időtúllépése</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">Az eszközfeloldás használata ideje, mielőtt a tartalma törölve lesz</string>
|
||||
<string name="advanced_unlock_timeout">Eszközfeloldás időtúllépése</string>
|
||||
<string name="templates_group_enable_title">Sablonok használata</string>
|
||||
<string name="templates_group_enable_summary">Dinamikus sablonok használata a bejegyzés mezőinek kitöltéséhez</string>
|
||||
<string name="templates_group_uuid_title">Sabloncsoport</string>
|
||||
<string name="keyboard_previous_fill_in_title">Automatikus kulcsművelet</string>
|
||||
<string name="keyboard_previous_fill_in_title">Visszaváltás</string>
|
||||
<string name="keyboard_previous_fill_in_summary">Automatikus visszaváltás az előző billentyűzetre az „Automatikus kulcsművelet” végrehajtása után</string>
|
||||
<string name="keyboard_previous_lock_title">Adatbázis zárolása</string>
|
||||
<string name="keyboard_previous_lock_summary">Automatikus visszaváltás az előző billentyűzetre az adatbázis zárolása után</string>
|
||||
@@ -563,8 +563,8 @@
|
||||
<string name="autofill_manual_selection_title">Kézi kiválasztás</string>
|
||||
<string name="autofill_manual_selection_summary">Lehetőség megjelenítése, hogy a felhasználó válasszon adatbázis-bejegyzést</string>
|
||||
<string name="autofill_save_search_info_title">Keresési információk mentése</string>
|
||||
<string name="autofill_save_search_info_summary">A keresési információk mentésének kísérlete kézi bejegyzéskiválasztásnál</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Az adatok mentésének kérése az űrlapok ellenőrzésekor</string>
|
||||
<string name="autofill_save_search_info_summary">A könnyebb jövőbeli használat érdekében próbálja menteni a keresési információkat a kézi bejegyzéskiválasztásnál</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Az adatok mentésének kérése az űrlapok kitöltésének befejezésekor</string>
|
||||
<string name="autofill_web_domain_blocklist_summary">Tiltólista, amely megakadályozza a webes domainek automatikus kitöltését</string>
|
||||
<string name="autofill_block">Automatikus kitöltés letiltása</string>
|
||||
<string name="autofill_block_restart">Indítsa újra az űrlapot tartalmazó alkalmazást a tiltás aktiválásához.</string>
|
||||
@@ -580,8 +580,8 @@
|
||||
<string name="style_brightness_title">Téma fényereje</string>
|
||||
<string name="show_uuid_summary">Megjeleníti a bejegyzéshez vagy csoporthoz tartozó UUID-t</string>
|
||||
<string name="show_otp_token_title">OTP token megjelenítése</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Törli az összes, a speciális feloldásfelisméreshez tartozó titkosítási kulcsot\?</string>
|
||||
<string name="keyboard_save_search_info_summary">Egy URL KeePassDX-be történő megosztásakor, ha kiválaszt egy bejegyzést, akkor megpróbálja megjegyezni a bejegyzés a további használathoz</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Törli az összes, az eszközfeloldás-felismeréshez tartozó titkosítási kulcsot\?</string>
|
||||
<string name="keyboard_save_search_info_summary">A könnyebb jövőbeli használat érdekében próbálja menteni a megosztott információkat a kézi bejegyzéskiválasztásnál</string>
|
||||
<string name="custom_fields">Egyéni mezők</string>
|
||||
<string name="back_to_previous_keyboard">Vissza az előző billentyűzethez</string>
|
||||
<string name="upload_attachment">%1$s feltöltése</string>
|
||||
@@ -591,11 +591,101 @@
|
||||
<string name="autofill_application_id_blocklist_summary">Tiltólista, amely megakadályozza az alkalmazások automatikus kitöltését</string>
|
||||
<string name="autofill_web_domain_blocklist_title">Letiltott webes domainek</string>
|
||||
<string name="autofill_ask_to_save_data_title">Adatok mentésének kérése</string>
|
||||
<string name="education_advanced_unlock_title">Speciális adatbázis-feloldás</string>
|
||||
<string name="education_advanced_unlock_title">Eszközadatbázis feloldása</string>
|
||||
<string name="education_advanced_unlock_summary">A jelszó összekötése a leolvasott biometrikus adatokkal vagy eszköz-hitelesítőadatokkal, hogy gyorsan feloldhassa az adatbázist.</string>
|
||||
<string name="show_otp_token_summary">Megjeleníti az OTP tokeneket a bejegyzések között</string>
|
||||
<string name="education_add_attachment_title">Melléklet hozzáadása</string>
|
||||
<string name="keyboard_previous_database_credentials_summary">Automatikus visszaváltás az előző billentyűzetre az adatbázis-hitelesítőadatok képernyőn</string>
|
||||
<string name="warning_database_info_reloaded">Az adatbázis újratöltése törli a helyileg módosított adatokat.</string>
|
||||
<string name="templates">Sablonok</string>
|
||||
<string name="error_no_response_from_challenge">Nem kérhető le a válasz a kihívásból.</string>
|
||||
<string name="error_unable_merge_database_kdb">Nem lehet egyesíteni az adatbázis V1-es változatából.</string>
|
||||
<string name="entropy">Entrópia: %1$s bit</string>
|
||||
<string name="keyboard_previous_search_title">Keresési képernyő</string>
|
||||
<string name="error_move_group_here">Nem helyezhet át ide csoportot.</string>
|
||||
<string name="auto_type">Automatikus bevitel</string>
|
||||
<string name="warning_keyfile_integrity">A fájl ujjlenyomata nem garantált, mert az Android menet közben is módosíthatja az adatokat. A helyes integritás-ellenőrzéshez módosítsa a fájlt .bin kiterjesztésűre.</string>
|
||||
<string name="error_challenge_already_requested">A kihívás már kérve volt</string>
|
||||
<string name="inherited">Öröklés</string>
|
||||
<string name="remember_hardware_key_title">Hardverkulcs megjegyzése</string>
|
||||
<string name="consider_chars_filter">Karakterek figyelembe vétele</string>
|
||||
<string name="entropy_high">Entrópia: magas</string>
|
||||
<string name="error_cancel_by_user">A felhasználó által megszakítva.</string>
|
||||
<string name="exclude_ambiguous_chars">Összekeverhető karakterek kihagyása</string>
|
||||
<string name="unlock">Feloldás</string>
|
||||
<string name="master_key_settings_summary">Módosítás, megújítás</string>
|
||||
<string name="info">Információ</string>
|
||||
<string name="error_empty_key">A kulcs nem lehet üres.</string>
|
||||
<string name="custom_data">Egyéni adatok</string>
|
||||
<string name="tags">Címkék</string>
|
||||
<string name="hardware_key">Hardverkulcs</string>
|
||||
<string name="keyboard_previous_search_summary">Automatikus visszaváltás az előző billentyűzetre a keresési képernyőn</string>
|
||||
<string name="education_validate_entry_title">Bejegyzés ellenőrzése</string>
|
||||
<string name="ignore_chars_filter">Karakterek mellőzése</string>
|
||||
<string name="ask">Kérdés</string>
|
||||
<string name="searchable">Kereshető</string>
|
||||
<string name="menu_form_filling_settings_summary">Billentyűzet, automatikus kitöltés, vágólap</string>
|
||||
<string name="configure">Beállítás</string>
|
||||
<string name="content_description_nav_header">Navigációs fejléc</string>
|
||||
<string name="navigation_drawer_close">A navigációs tálca bezárása</string>
|
||||
<string name="html_about_privacy"><strong>Nincsenek felhasználói adatok lekérve</strong>, az alkalmazás nem kapcsolódik semmilyen külső kiszolgálóhoz, csak helyben működik, és teljes mértékben tiszteletben tartja a felhasználók adatvédelmét.</string>
|
||||
<string name="enable_keep_screen_on_summary">Képernyő bekapcsolva tartása egy bejegyzés megtekintésekor vagy szerkesztésekor</string>
|
||||
<string name="title_case">Nagy Kezdőbetűs</string>
|
||||
<string name="navigation_drawer_open">A navigációs tálca kinyitása</string>
|
||||
<string name="content_description_hardware_key_checkbox">Hardverkulcs jelölőnégyzete</string>
|
||||
<string name="at_least_one_char">Legalább egy karakter mindegyikből</string>
|
||||
<string name="lower_case">kisbetűk</string>
|
||||
<string name="screenshot_mode_banner_text">Képernyőképmodul</string>
|
||||
<string name="case_sensitive">Kis- és nagybetű eltérő</string>
|
||||
<string name="error_location_unknown">Az adatbázis helye ismeretlen, az adatbázis-művelet nem hajtható végre.</string>
|
||||
<string name="content_description_passphrase_word_count">A jelmondat szószáma</string>
|
||||
<string name="regex">Reguláris kifejezés</string>
|
||||
<string name="show_entry_colors_title">Bejegyzésszínek</string>
|
||||
<string name="passphrase">Jelmondat</string>
|
||||
<string name="menu_appearance_settings_summary">Témák, színek, attribútumok</string>
|
||||
<string name="expired">Lejárt</string>
|
||||
<string name="error_response_already_provided">A válasz már megérkezett.</string>
|
||||
<string name="colorize_password_summary">A jelszó karaktereinek színezése típus szerint</string>
|
||||
<string name="waiting_challenge_request">Várakozás a kihívási kérésre…</string>
|
||||
<string name="search_filters">Keresési szűrők</string>
|
||||
<string name="current_group">Jelenlegi csoport</string>
|
||||
<string name="auto_type_sequence">Automatikus bevitelsorozat</string>
|
||||
<string name="word_separator">Elválasztó</string>
|
||||
<string name="enable_screenshot_mode_summary">Engedélyezés a harmadik féltől származó alkalmazásoknak, hogy képernyőképet vagy felvételt készítsenek az alkalmazásról</string>
|
||||
<string name="menu_security_settings_summary">Titkosítás, kulcselőállító függvény</string>
|
||||
<string name="waiting_challenge_response">Várakozás a kihívás válaszára…</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="error_hardware_key_unsupported">A hardverkulcs nem támogatott.</string>
|
||||
<string name="colorize_password_title">Jelszavak színezése</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biometrikus adatok, eszköz-hitelesítőadatok</string>
|
||||
<string name="error_XML_malformed">Hibásan formázott XML.</string>
|
||||
<string name="remember_hardware_key_summary">Követi a használt hardverkulcsokat</string>
|
||||
<string name="warning_database_already_opened">Egy adatbázis már nyitva van, előbb zárja be, hogy újat nyisson meg</string>
|
||||
<string name="education_validate_entry_summary">Ne felejtse el ellenőrizni a bejegyzést és menteni az adatbázist.
|
||||
\n
|
||||
\nHa az automatikus zárolás aktiválva van, és elfelejti, hogy módosítást végzett, akkor az adatvesztést kockáztatja.</string>
|
||||
<string name="warning_database_notification_permission">Az értesítési engedély lehetővé teszi az adatbázis állapotának megjelenítését, és az egyszerű ikonnal történő zárolást.
|
||||
\n
|
||||
\nHa nem aktiválja az engedélyt, akkor a háttérben nyitott adatbázis nem lesz látható, ha egy másik alkalmazás van előtérben.</string>
|
||||
<string name="advanced_unlock_keystore_warning">A funkció eltárolja a titkosított hitelesítőadatokat az eszköz biztonságos kulcstárában.
|
||||
\n
|
||||
\nAz operációs rendszer natív API megvalósításától függően lehet, hogy nem lesz teljes értékű.
|
||||
\nEllenőrizze a kulcstár kompatibilitását és biztonságát az eszköz gyártójánál és a használt ROM készítőjénél.</string>
|
||||
<string name="show_entry_colors_summary">Megjeleníti egy bejegyzés előtér- és háttérszínét</string>
|
||||
<string name="unlock_and_link_biometric">Eszközfeloldási hivatkozás</string>
|
||||
<string name="warning_copy_permission">Az értesítési engedély szükséges a vágólap-értesítési funkció használatához.</string>
|
||||
<string name="menu_save_copy_to">Másolat mentése ide…</string>
|
||||
<string name="enable_screenshot_mode_title">Képernyőkép mód</string>
|
||||
<string name="error_driver_required">A(z) %1$s illesztőprogramja szükséges.</string>
|
||||
<string name="menu_merge_from">Egyesítés innen…</string>
|
||||
<string name="entropy_calculate">Entrópia: kiszámítás…</string>
|
||||
<string name="character_count">Karakterszám: %1$d</string>
|
||||
<string name="menu_database_settings_summary">Metaadatok, kuka, sablonok, előzmények</string>
|
||||
<string name="merge_success">Az egyesítés sikeresen elkészült</string>
|
||||
<string name="upper_case">NAGYBETŰK</string>
|
||||
<string name="enable_keep_screen_on_title">Képernyő bekapcsolva tartása</string>
|
||||
<string name="corrupted_file">Sérült fájl.</string>
|
||||
<string name="menu_app_settings_summary">Keresés, zárolás, előzmények, tulajdonságok</string>
|
||||
<string name="later">Később</string>
|
||||
<string name="error_no_hardware_key">Válasszon hardverkulcsot.</string>
|
||||
</resources>
|
||||
@@ -400,15 +400,15 @@
|
||||
<string name="warning_database_link_revoked">Akses ke berkas dicabut oleh pengelola berkas</string>
|
||||
<string name="warning_database_read_only">Berikan akses tulis berkas untuk menyimpan perubahan basis data</string>
|
||||
<string name="properties">Setelan</string>
|
||||
<string name="error_export_app_properties">Galat ketika mengekspor setelan aplikasi</string>
|
||||
<string name="success_export_app_properties">Setelan aplikasi diekspor</string>
|
||||
<string name="error_import_app_properties">Galat ketika mengimpor setelan aplikasi</string>
|
||||
<string name="success_import_app_properties">Setelan aplikasi diimpor</string>
|
||||
<string name="error_export_app_properties">Galat ketika mengekspor pengaturan aplikasi</string>
|
||||
<string name="success_export_app_properties">Pengaturan aplikasi diekspor</string>
|
||||
<string name="error_import_app_properties">Galat ketika mengimpor pengaturan aplikasi</string>
|
||||
<string name="success_import_app_properties">Pengaturan aplikasi diimpor</string>
|
||||
<string name="description_app_properties">Setelan KeePassDX untuk mengelola pengaturan aplikasi</string>
|
||||
<string name="export_app_properties_summary">Buat sebuah berkas untuk mengekspor setelan aplikasi</string>
|
||||
<string name="export_app_properties_title">Ekspor setelan aplikasi</string>
|
||||
<string name="import_app_properties_summary">Pilih sebuah berkas untuk mengimpor setelan aplikasi</string>
|
||||
<string name="import_app_properties_title">Impor setelan aplikasi</string>
|
||||
<string name="export_app_properties_summary">Buat sebuah berkas untuk mengekspor pengaturan aplikasi</string>
|
||||
<string name="export_app_properties_title">Ekspor pengaturan aplikasi</string>
|
||||
<string name="import_app_properties_summary">Pilih sebuah berkas untuk mengimpor pengaturan aplikasi</string>
|
||||
<string name="import_app_properties_title">Impor pengaturan aplikasi</string>
|
||||
<string name="error_start_database_action">Timbul galat ketika melaksanakan sebuah aksi di basis data.</string>
|
||||
<string name="error_move_group_here">Anda tidak dapat memindahkan sebuah grup ke sini.</string>
|
||||
<string name="device_credential_unlock_enable_title">Membuka kredensial perangkat</string>
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
<string name="autofill">Autocompletamento</string>
|
||||
<string name="autofill_service_name">Autocompletamento di KeePassDX</string>
|
||||
<string name="autofill_sign_in_prompt">Accedi con KeePassDX</string>
|
||||
<string name="set_autofill_service_title">Imposta servizio predefinito di autocompletamento</string>
|
||||
<string name="set_autofill_service_title">Servizio predefinito di autocompletamento</string>
|
||||
<string name="autofill_explanation_summary">Attiva l\'autocompletamento per riempire velocemente i campi in altre app</string>
|
||||
<string name="password_size_title">Dimensione password generata</string>
|
||||
<string name="password_size_summary">Imposta la dimensione predefinita delle password generate</string>
|
||||
@@ -220,7 +220,7 @@
|
||||
<string name="keyboard">Tastiera</string>
|
||||
<string name="magic_keyboard_title">Magitastiera</string>
|
||||
<string name="magic_keyboard_explanation_summary">Attiva una tastiera personale che inserisce le tue password e i campi di identità</string>
|
||||
<string name="allow_no_password_title">Non consentire nessuna chiave principale</string>
|
||||
<string name="allow_no_password_title">Non consentire chiavi principali</string>
|
||||
<string name="allow_no_password_summary">Permetti di toccare il pulsante \"Apri\" se non sono selezionate credenziali</string>
|
||||
<string name="enable_read_only_title">Protetto da scrittura</string>
|
||||
<string name="enable_read_only_summary">Apri il database in sola lettura in modo predefinito</string>
|
||||
@@ -277,8 +277,8 @@
|
||||
<string name="contribute">Contribuisci</string>
|
||||
<string name="style_choose_title">Tema dell\'app</string>
|
||||
<string name="style_choose_summary">Tema usato nell\'app</string>
|
||||
<string name="icon_pack_choose_title">Pacchetto icone</string>
|
||||
<string name="icon_pack_choose_summary">Pacchetto icone usato nell\'app</string>
|
||||
<string name="icon_pack_choose_title">Pacchetto di icone</string>
|
||||
<string name="icon_pack_choose_summary">Pacchetto di icone usato nell\'app</string>
|
||||
<string name="edit_entry">Modifica elemento</string>
|
||||
<string name="error_load_database">Caricamento del database fallito.</string>
|
||||
<string name="error_load_database_KDF_memory">Caricamento della chiave fallito. Prova a diminuire l\'«Utilizzo memoria» del KDF.</string>
|
||||
@@ -378,7 +378,7 @@
|
||||
<string name="contribution">Contributi</string>
|
||||
<string name="warning_database_read_only">Concedi il permesso di scrittura per salvare i cambiamenti del database</string>
|
||||
<string name="hide_broken_locations_summary">Nascondi collegamenti corrotti nella lista dei database recenti</string>
|
||||
<string name="hide_broken_locations_title">Nascondi i collegamenti dei database corrotti</string>
|
||||
<string name="hide_broken_locations_title">Nascondi link a database corrotti</string>
|
||||
<string name="show_recent_files_summary">Mostra le posizioni dei database recenti</string>
|
||||
<string name="show_recent_files_title">Mostra file recenti</string>
|
||||
<string name="remember_keyfile_locations_title">Ricorda posizione file chiave</string>
|
||||
@@ -430,8 +430,8 @@
|
||||
<string name="settings_database_force_changing_master_key_next_time_summary">Richiedi il cambio della chiave principale la prossima volta (una volta)</string>
|
||||
<string name="settings_database_force_changing_master_key_next_time_title">Forza il rinnovo la prossima volta</string>
|
||||
<string name="settings_database_force_changing_master_key_summary">Richiedi la modifica della chiave principale (giorni)</string>
|
||||
<string name="lock_database_show_button_summary">Mostra il bottone di blocco nell\'interfaccia utente</string>
|
||||
<string name="lock_database_show_button_title">Mostra il bottone di blocco</string>
|
||||
<string name="lock_database_show_button_summary">Mostra il pulsante di blocco nell\'interfaccia utente</string>
|
||||
<string name="lock_database_show_button_title">Mostra il pulsante di blocco</string>
|
||||
<string name="autofill_preference_title">Impostazioni dell\'autocompletamento</string>
|
||||
<string name="warning_database_link_revoked">Accesso al file revocato dal file manager</string>
|
||||
<string name="remember_keyfile_locations_summary">Ricorda la posizione dei file chiave</string>
|
||||
@@ -504,7 +504,7 @@
|
||||
<string name="temp_advanced_unlock_timeout_title">Scadenza dello sblocco con dispositivo</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Sblocco con dispositivo temporaneo</string>
|
||||
<string name="device_credential_unlock_enable_summary">Permette di usare le credenziali del dispositivo per sbloccare il database</string>
|
||||
<string name="device_credential_unlock_enable_title">Sblocco con le credenziali del dispositivo</string>
|
||||
<string name="device_credential_unlock_enable_title">Sblocco con credenziali del dispositivo</string>
|
||||
<string name="advanced_unlock_tap_delete">Tocca per eliminare le chiavi di sblocco con dispositivo</string>
|
||||
<string name="content">Contenuto</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Impossibile inizializzare la richiesta di sblocco con dispositivo.</string>
|
||||
@@ -544,15 +544,15 @@
|
||||
<string name="error_file_to_big">Il file che stai cercando di caricare è troppo grande.</string>
|
||||
<string name="error_start_database_action">Si è verificato un errore durante l\'esecuzione di una azione sul database.</string>
|
||||
<string name="properties">Proprietà</string>
|
||||
<string name="error_export_app_properties">Errore durante l\'esportazione delle proprietà dell\'app</string>
|
||||
<string name="success_export_app_properties">Proprietà dell\'app esportate</string>
|
||||
<string name="error_import_app_properties">Errore durante l\'importazione delle proprietà dell\'app</string>
|
||||
<string name="success_import_app_properties">Proprietà dell\'app importate</string>
|
||||
<string name="error_export_app_properties">Errore durante l\'esportazione delle impostazioni dell\'app</string>
|
||||
<string name="success_export_app_properties">Impostazioni dell\'app esportate</string>
|
||||
<string name="error_import_app_properties">Errore durante l\'importazione delle impostazioni dell\'app</string>
|
||||
<string name="success_import_app_properties">Impostazioni dell\'app importate</string>
|
||||
<string name="description_app_properties">Proprietà di KeePassDX per gestire le impostazioni dell\'app</string>
|
||||
<string name="export_app_properties_summary">Crea un file in cui esportare le proprietà dell\'app</string>
|
||||
<string name="export_app_properties_title">Esporta le proprietà dell\'app</string>
|
||||
<string name="import_app_properties_summary">Seleziona un file da cui importare le proprietà dell\'app</string>
|
||||
<string name="import_app_properties_title">Importa le proprietà dell\'app</string>
|
||||
<string name="export_app_properties_summary">Crea un file in cui esportare le impostazioni dell\'app</string>
|
||||
<string name="export_app_properties_title">Esporta le impostazioni dell\'app</string>
|
||||
<string name="import_app_properties_summary">Seleziona un file da cui importare le impostazioni dell\'app</string>
|
||||
<string name="import_app_properties_title">Importa le impostazioni dell\'app</string>
|
||||
<string name="error_word_reserved">Questa parola è riservata e non può essere usata.</string>
|
||||
<string name="error_move_group_here">Non puoi spostare un gruppo qui.</string>
|
||||
<string name="templates">Modelli</string>
|
||||
|
||||
2
app/src/main/res/values-kk/strings.xml
Normal file
2
app/src/main/res/values-kk/strings.xml
Normal file
@@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
@@ -542,14 +542,14 @@
|
||||
<string name="error_file_to_big">Het te uploaden bestand is te groot.</string>
|
||||
<string name="content_description_otp_information">Eenmalig wachtwoord-informatie</string>
|
||||
<string name="properties">Eigenschappen</string>
|
||||
<string name="error_export_app_properties">Fout bij het exporteren van App-instellingen</string>
|
||||
<string name="error_export_app_properties">Fout bij het exporteren van app-instellingen</string>
|
||||
<string name="success_export_app_properties">App-instellingen geëxporteerd</string>
|
||||
<string name="error_import_app_properties">Fout bij het importeren van App-instellingen</string>
|
||||
<string name="error_import_app_properties">Fout bij het importeren van app-instellingen</string>
|
||||
<string name="success_import_app_properties">App-instellingen geïmporteerd</string>
|
||||
<string name="description_app_properties">KeePassDX-eigenschappen om app-instellingen te beheren</string>
|
||||
<string name="export_app_properties_summary">Bestand voor export van App-instellingen aanmaken</string>
|
||||
<string name="export_app_properties_summary">Bestand voor export van app-instellingen aanmaken</string>
|
||||
<string name="export_app_properties_title">App-instellingen exporteren</string>
|
||||
<string name="import_app_properties_summary">Selecteer een bestand om app-eigenschappen te importeren</string>
|
||||
<string name="import_app_properties_summary">Selecteer een bestand om app-instellingen te importeren</string>
|
||||
<string name="import_app_properties_title">App-instellingen importeren</string>
|
||||
<string name="error_start_database_action">Er is een fout opgetreden bij het uitvoeren van een actie op de database.</string>
|
||||
<string name="error_move_group_here">Je kunt hier geen groep verplaatsen.</string>
|
||||
|
||||
@@ -540,15 +540,15 @@
|
||||
<string name="error_remove_file">Wystąpił błąd podczas usuwania danych z pliku.</string>
|
||||
<string name="error_duplicate_file">Dane pliku już istnieją.</string>
|
||||
<string name="properties">Właściwości</string>
|
||||
<string name="error_export_app_properties">Błąd podczas eksportowania właściwości aplikacji</string>
|
||||
<string name="success_export_app_properties">Eksportowano właściwości aplikacji</string>
|
||||
<string name="error_import_app_properties">Błąd podczas importowania właściwości aplikacji</string>
|
||||
<string name="success_import_app_properties">Importowano właściwości aplikacji</string>
|
||||
<string name="error_export_app_properties">Błąd podczas eksportowania ustawień aplikacji</string>
|
||||
<string name="success_export_app_properties">Eksportowano ustawienia aplikacji</string>
|
||||
<string name="error_import_app_properties">Błąd podczas importowania ustawień aplikacji</string>
|
||||
<string name="success_import_app_properties">Importowano ustawienia aplikacji</string>
|
||||
<string name="description_app_properties">Właściwości KeePassDX do zarządzania ustawieniami aplikacji</string>
|
||||
<string name="export_app_properties_summary">Utwórz plik, aby eksportować właściwości aplikacji</string>
|
||||
<string name="export_app_properties_title">Eksportuj właściwości aplikacji</string>
|
||||
<string name="import_app_properties_summary">Wybierz plik, aby importować właściwości aplikacji</string>
|
||||
<string name="import_app_properties_title">Importuj właściwości aplikacji</string>
|
||||
<string name="export_app_properties_summary">Utwórz plik, aby eksportować ustawienia aplikacji</string>
|
||||
<string name="export_app_properties_title">Eksportuj ustawienia aplikacji</string>
|
||||
<string name="import_app_properties_summary">Wybierz plik, aby importować ustawienia aplikacji</string>
|
||||
<string name="import_app_properties_title">Importuj ustawienia aplikacji</string>
|
||||
<string name="error_start_database_action">Wystąpił błąd podczas wykonywania akcji w bazie danych.</string>
|
||||
<string name="error_move_group_here">Nie możesz tutaj przenieść grupy.</string>
|
||||
<string name="error_word_reserved">To słowo jest zastrzeżone i nie może być używane.</string>
|
||||
|
||||
@@ -525,15 +525,15 @@
|
||||
<string name="warning_database_info_changed_options">Mescle os dados, substitua as modificações externas salvando o banco de dados ou recarregue-o com as alterações mais recentes.</string>
|
||||
<string name="warning_database_info_changed">As informações contidas em seu arquivo de banco de dados foram modificadas fora do aplicativo.</string>
|
||||
<string name="warning_empty_recycle_bin">Deletar permanentemente todos os nós da lixeira\?</string>
|
||||
<string name="error_export_app_properties">Erro durante a exportação de propriedades do aplicativo</string>
|
||||
<string name="success_export_app_properties">Propriedades do aplicativo exportadas</string>
|
||||
<string name="error_import_app_properties">Erro durante a importação de propriedades do aplicativo</string>
|
||||
<string name="success_import_app_properties">Propriedades de aplicativos importadas</string>
|
||||
<string name="error_export_app_properties">Houve um erro durante a exportação das configurações do aplicativo</string>
|
||||
<string name="success_export_app_properties">As configurações do aplicativo foram exportadas</string>
|
||||
<string name="error_import_app_properties">Houve um erro durante a importação das configurações do aplicativo</string>
|
||||
<string name="success_import_app_properties">As configurações do aplicativo foram importadas</string>
|
||||
<string name="description_app_properties">Propriedades KeePassDX para gerenciar configurações de aplicativos</string>
|
||||
<string name="export_app_properties_summary">Crie um arquivo para exportar as propriedades do aplicativo</string>
|
||||
<string name="export_app_properties_title">Exportar propriedades do aplicativo</string>
|
||||
<string name="import_app_properties_summary">Selecione um arquivo para importar as propriedades do aplicativo</string>
|
||||
<string name="import_app_properties_title">Importar propriedades do aplicativo</string>
|
||||
<string name="export_app_properties_summary">Crie um arquivo para exportar as configurações do aplicativo</string>
|
||||
<string name="export_app_properties_title">Exportar as configurações do aplicativo</string>
|
||||
<string name="import_app_properties_summary">Selecione um arquivo para importar as configurações do aplicativo</string>
|
||||
<string name="import_app_properties_title">Importar as configurações do aplicativo</string>
|
||||
<string name="registration_mode">Modo registro</string>
|
||||
<string name="save_mode">Modo salvar</string>
|
||||
<string name="search_mode">Modo busca</string>
|
||||
@@ -664,7 +664,7 @@
|
||||
<string name="enable_screenshot_mode_summary">Permitir que aplicativos de terceiros gravem ou façam capturas de tela do aplicativo</string>
|
||||
<string name="screenshot_mode_banner_text">Modo de captura de tela</string>
|
||||
<string name="corrupted_file">Arquivo corrompido.</string>
|
||||
<string name="auto_type">Preenchimento automático</string>
|
||||
<string name="auto_type">Digitação automática</string>
|
||||
<string name="content_description_hardware_key_checkbox">Caixa de verificação da chave física</string>
|
||||
<string name="merge_success">Merge concluído com sucesso</string>
|
||||
<string name="info">Info</string>
|
||||
|
||||
@@ -531,15 +531,15 @@
|
||||
<string name="notification">Notificação</string>
|
||||
<string name="autofill_select_entry">Selecionar entrada…</string>
|
||||
<string name="properties">Propriedades</string>
|
||||
<string name="error_export_app_properties">Erro ao exportar as propriedades da aplicação</string>
|
||||
<string name="success_export_app_properties">Propriedades da aplicação exportadas</string>
|
||||
<string name="error_import_app_properties">Erro ao importar as propriedades da aplicação</string>
|
||||
<string name="success_import_app_properties">Propriedades da aplicação importadas</string>
|
||||
<string name="error_export_app_properties">Erro durante a exportação das definições da aplicação</string>
|
||||
<string name="success_export_app_properties">Definições da aplicação exportadas</string>
|
||||
<string name="error_import_app_properties">Erro durante a importação das definições da aplicação</string>
|
||||
<string name="success_import_app_properties">Definições da aplicação importadas</string>
|
||||
<string name="description_app_properties">Propriedades do KeePassDX para gerir as configurações da aplicação</string>
|
||||
<string name="export_app_properties_summary">Criar um ficheiro para exportar as propriedades da aplicação</string>
|
||||
<string name="export_app_properties_title">Exportar as propriedades da aplicação</string>
|
||||
<string name="import_app_properties_summary">Selecione um ficheiro para importar as propriedades da aplicação</string>
|
||||
<string name="import_app_properties_title">Importar propriedades da aplicação</string>
|
||||
<string name="export_app_properties_summary">Criar um ficheiro para exportar as definições da aplicação</string>
|
||||
<string name="export_app_properties_title">Exportar definições da aplicação</string>
|
||||
<string name="import_app_properties_summary">Selecionar um ficheiro para importar as definições da aplicação</string>
|
||||
<string name="import_app_properties_title">Importar definições da aplicação</string>
|
||||
<string name="menu_external_icon">Ícone externo</string>
|
||||
<string name="error_start_database_action">Ocorreu um erro ao tentar executar uma ação na base de dados.</string>
|
||||
<string name="error_remove_file">Ocorreu um erro ao tentar remover o ficheiro de dados.</string>
|
||||
|
||||
@@ -468,8 +468,8 @@
|
||||
<string name="error_database_uri_null">Não foi possível recuperar o URI da base de dados.</string>
|
||||
<string name="error_field_name_already_exists">O nome do campo já existe.</string>
|
||||
<string name="error_registration_read_only">Não é permitido guardar um novo item numa base de dados só de leitura</string>
|
||||
<string name="export_app_properties_title">Exportar as propriedades da aplicação</string>
|
||||
<string name="import_app_properties_summary">Selecione um ficheiro para importar as propriedades da aplicação</string>
|
||||
<string name="export_app_properties_title">Exportar definições da aplicação</string>
|
||||
<string name="import_app_properties_summary">Selecionar um ficheiro para importar as definições da aplicação</string>
|
||||
<string name="unit_gibibyte">GiB</string>
|
||||
<string name="unit_mebibyte">MiB</string>
|
||||
<string name="unit_kibibyte">KiB</string>
|
||||
@@ -526,13 +526,13 @@
|
||||
<string name="autofill_select_entry">Selecionar entrada…</string>
|
||||
<string name="properties">Propriedades</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Digite a palavra-passe e depois clique neste botão.</string>
|
||||
<string name="error_export_app_properties">Erro ao exportar as propriedades da aplicação</string>
|
||||
<string name="success_export_app_properties">Propriedades da aplicação exportadas</string>
|
||||
<string name="error_export_app_properties">Erro durante a exportação das definições da aplicação</string>
|
||||
<string name="success_export_app_properties">Definições da aplicação exportadas</string>
|
||||
<string name="error_import_app_properties">Erro ao importar as propriedades da aplicação</string>
|
||||
<string name="success_import_app_properties">Propriedades da aplicação importadas</string>
|
||||
<string name="success_import_app_properties">Definições da aplicação importadas</string>
|
||||
<string name="description_app_properties">Propriedades do KeePassDX para gerir as configurações da aplicação</string>
|
||||
<string name="export_app_properties_summary">Criar um ficheiro para exportar as propriedades da aplicação</string>
|
||||
<string name="import_app_properties_title">Importar propriedades da aplicação</string>
|
||||
<string name="export_app_properties_summary">Criar um ficheiro para exportar as definições da aplicação</string>
|
||||
<string name="import_app_properties_title">Importar definições da aplicação</string>
|
||||
<string name="menu_external_icon">Ícone externo</string>
|
||||
<string name="error_start_database_action">Ocorreu um erro ao tentar executar uma ação na base de dados.</string>
|
||||
<string name="error_remove_file">Ocorreu um erro ao tentar remover o ficheiro de dados.</string>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<string name="add_entry">Ny post</string>
|
||||
<string name="add_group">Ny grupp</string>
|
||||
<string name="encryption_algorithm">Krypterings algoritm</string>
|
||||
<string name="app_timeout">Tidsgräns för app</string>
|
||||
<string name="app_timeout">Tidsgräns</string>
|
||||
<string name="app_timeout_summary">Inaktivitet innan databasen låses</string>
|
||||
<string name="application">App</string>
|
||||
<string name="menu_app_settings">App-inställningar</string>
|
||||
@@ -470,4 +470,9 @@
|
||||
<string name="error_no_hardware_key">Välj hårdvarunyckel.</string>
|
||||
<string name="content_description_add_item">Lägg till ny</string>
|
||||
<string name="content_description_credentials_information">Inloggningsuppgifter</string>
|
||||
<string name="info">Information</string>
|
||||
<string name="type">Typ</string>
|
||||
<string name="content_description_passphrase_word_count">Antal ord i Lösenordsfras</string>
|
||||
<string name="public_key">Offentlig nyckel</string>
|
||||
<string name="private_key">Privat nyckel</string>
|
||||
</resources>
|
||||
@@ -35,7 +35,7 @@
|
||||
<string name="hide_password_title">ซ่อนรหัสผ่าน</string>
|
||||
<string name="hint_conf_pass">ยืนยันรหัสผ่าน</string>
|
||||
<string name="contact">ติดต่อ</string>
|
||||
<string name="select_database_file">เปิดไฟล์ฐานข้อมูลที่มีอยู่แล้ว</string>
|
||||
<string name="select_database_file">เปิดคลังรหัสผ่านที่มีอยู่แล้ว</string>
|
||||
<string name="warning_database_link_revoked">การเข้าถึงไฟล์ถูกเพิกถอนโดยตัวจัดการไฟล์</string>
|
||||
<string name="warning_database_revoked">การเข้าถึงไฟล์ถูกเพิกถอนโดยตัวจัดการไฟล์ ปิดฐานข้อมูลและเปิดใหม่จากตำแหน่งดังกล่าวอีกครั้ง</string>
|
||||
<string name="education_select_database_title">เปิดฐานข้อมูลที่มีอยู่แล้ว</string>
|
||||
@@ -67,7 +67,7 @@
|
||||
<string name="content_description_file_information">ข้อมูลไฟล์</string>
|
||||
<string name="content_description_credentials_information">ข้อมูลประจำตัว</string>
|
||||
<string name="content_description_otp_information">ข้อมูลรหัสแบบใช้ครั้งเดียว</string>
|
||||
<string name="content_description_password_checkbox">ช่องทำเครื่องหมายรหัสผ่าน</string>
|
||||
<string name="content_description_password_checkbox">“ช่องทำเครื่องหมายรหัสผ่าน</string>
|
||||
<string name="content_description_hardware_key_checkbox">ช่องทำเครื่องหมายกุญแจฮาร์ดแวร์</string>
|
||||
<string name="content_description_entry_icon">ไอคอนรายการ</string>
|
||||
<string name="content_description_database_color">สีของฐานข้อมูล</string>
|
||||
@@ -82,18 +82,18 @@
|
||||
<string name="entry_add_field">เพื่มข่อง</string>
|
||||
<string name="entry_add_attachment">เพิ่มไฟล์แนบ</string>
|
||||
<string name="content_description_remove_field">ลบช่อง</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_keyboard_close_fields">ปิดช่อง</string>
|
||||
<string name="retrieving_db_key">กําลังเรียกกุญแจของฐานข้อมูล…</string>
|
||||
<string name="error_no_hardware_key">เลือกกุญเจฮาร์ดแวร์</string>
|
||||
<string name="error_hardware_key_unsupported">ไม่รองรับกุญแจฮาร์ดแวร์</string>
|
||||
<string name="create_keepass_file">สร้างฐานข้อมูลใหม่</string>
|
||||
<string name="create_keepass_file">สร้างคลังรหัสผ่านใหม่</string>
|
||||
<string name="configure_biometric">ไม่ได้กำหนดข้อมูลการยืนยันตัวตนหรือไบโอเมตริก</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">คุณยังต้องจำข้อมูลรหัสผ่านหลักไว้อยู่ถ้าใช้การปลดล็อกขั้นสูง</string>
|
||||
<string name="hardware_key">กุญแจฮาร์ดแวร์</string>
|
||||
<string name="loading_database">กำลังโหลดฐานข้อมูล…</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">เปิดฐานข้อมูลด้วยการปลดล็อกขั้นสูง</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">เปิดฐานข้อมูลด้วยการปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="waiting_challenge_response">กำลังรอการตอบกลับจากกุญแจฮาร์ดแวร์</string>
|
||||
<string name="html_about_licence">แอป KeePassDX © %1$d Kunzisoft เป็นแอป <strong>โอเพนซอร์ซ</strong> และ <strong>ไม่มีโฆษณา</strong>.
|
||||
\nIt is provided as is, under <strong>GPLv3</strong> license, without any warranty.</string>
|
||||
@@ -166,7 +166,7 @@
|
||||
<string name="lock_database_back_root_title">กด \"กลับ\" เพื่อล็อก</string>
|
||||
<string name="lock_database_show_button_summary">แสดงปุ่มล็อกในส่วนติดต่อของผู้ใช้</string>
|
||||
<string name="content">เนื้อหา</string>
|
||||
<string name="advanced_unlock">การปลดล็อกขั้นสูง</string>
|
||||
<string name="advanced_unlock">การปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="device_credential_unlock_enable_summary">ให้คุณใช้ข้อมูลประจำตัวของอุปกรณ์เพื่อปลดล็อกฐานข้อมูล</string>
|
||||
<string name="monospace_font_fields_enable_title">แบบอักษรในช่องเขตข้อมูล</string>
|
||||
<string name="recycle_bin">ถึงขยะ</string>
|
||||
@@ -200,7 +200,7 @@
|
||||
<string name="education_field_copy_summary">เขตข้อมูลที่คัดลอกแล้วสามารถวางได้ที่ใหนก็ได้
|
||||
\n
|
||||
\nใช้การวิธีการกรอกข้อมูลตามต้องการ</string>
|
||||
<string name="education_lock_title">Lock the database</string>
|
||||
<string name="education_lock_title">ล็อกฐานข้อมูล</string>
|
||||
<string name="education_lock_summary">ล็อกฐานข้อมูลอย่างรวดเร็ว คุณสามารถตั้งค่าการล็อกมันหลังจากผ่านไปสักพัก และเมื่อปิดหน้าจอ</string>
|
||||
<string name="education_sort_title">จัดเรียงรายการ</string>
|
||||
<string name="education_sort_summary">เลือกรายการและกลุ่มที่จะถูกจัดเรียง</string>
|
||||
@@ -222,19 +222,19 @@
|
||||
<string name="unit_kibibyte">กิบิไบต์</string>
|
||||
<string name="unit_mebibyte">เมบิไบต์</string>
|
||||
<string name="unit_gibibyte">กิบิไบต์</string>
|
||||
<string name="entropy">Entropy: %1$s บิต</string>
|
||||
<string name="entropy_high">Entropy: สูง</string>
|
||||
<string name="entropy_calculate">Entropy: คำนวน…</string>
|
||||
<string name="entropy">เอ็นโทรปี: %1$s บิต</string>
|
||||
<string name="entropy_high">เอ็นโทรปี: สูง</string>
|
||||
<string name="entropy_calculate">เอ็นโทรปี: คำนวน…</string>
|
||||
<string name="at_least_one_char">อย่างน้อยหนึ่งอักขระจากแต่ละตัว</string>
|
||||
<string name="exclude_ambiguous_chars">ยกเว้นอักขระที่คลุมเครือ</string>
|
||||
<string name="consider_chars_filter">พิจารณาตัวอักษร</string>
|
||||
<string name="consider_chars_filter">เลือกใช้ตัวอักษร</string>
|
||||
<string name="word_separator">ตัวคั่น</string>
|
||||
<string name="ignore_chars_filter">ละเว้นอักขระ</string>
|
||||
<string name="lower_case">ตัวพิมพ์เล็ก</string>
|
||||
<string name="character_count">จำนวนตัวอักษร: %1$d</string>
|
||||
<string name="screenshot_mode_banner_text">Screenshot mode</string>
|
||||
<string name="screenshot_mode_banner_text">โหมดถ่ายภาพหน้าจอ</string>
|
||||
<string name="style_brightness_title">ความสว่างของธีม</string>
|
||||
<string name="icon_section_standard">Standard</string>
|
||||
<string name="icon_section_standard">มาตรฐาน</string>
|
||||
<string name="icon_section_custom">กำหนดเอง</string>
|
||||
<string name="hide_expired_entries_title">ซ่อนรายการที่หมดอายุแล้ว</string>
|
||||
<string name="hide_expired_entries_summary">รายการที่หมดอายุแล้วจะไม่แสดง</string>
|
||||
@@ -270,10 +270,10 @@
|
||||
<string name="list_size_title">ขนาดของรายการ</string>
|
||||
<string name="creating_database">กําลังสร้างฐานข้อมูล…</string>
|
||||
<string name="menu_hide_password">ซ่อนรหัสผ่าน</string>
|
||||
<string name="menu_keystore_remove_key">ลบกุญแจปลดล็อกขั้นสูง</string>
|
||||
<string name="menu_keystore_remove_key">ลบกุญแจปลดล็อกของอุปกรณ์</string>
|
||||
<string name="about">เกี่ยวกับ</string>
|
||||
<string name="menu_move">ย้าย</string>
|
||||
<string name="menu_advanced_unlock_settings">การปลดล็อกขั้นสูง</string>
|
||||
<string name="menu_advanced_unlock_settings">การปลดล็อกของอุปกรณ์</string>
|
||||
<string name="menu_lock">ล็อกฐานข้อมูล</string>
|
||||
<string name="menu_search">ค้นหา</string>
|
||||
<string name="menu_delete">ลบ</string>
|
||||
@@ -341,7 +341,7 @@
|
||||
<string name="file_not_found_content">ไม่พบไฟล์ ลองเปิดอีกครั้งจากตัวจัดการไฟล์ของคุณ</string>
|
||||
<string name="hide_broken_locations_title">ซ่อนลิงก์ฐานข้อมูลที่เสียหาย</string>
|
||||
<string name="memory_usage_explanation">จำนวนหน่วยความจำที่จะใช้โดยฟังก์ชันการสืบทอดคีย์</string>
|
||||
<string name="error_import_app_properties">เกิดข้อผิดพลาดระหว่างการนำเข้าคุณสมบัติของแอป</string>
|
||||
<string name="error_import_app_properties">เกิดข้อผิดพลาดระหว่างการนำเข้าการตั้งค่าของแอป</string>
|
||||
<string name="corrupted_file">ไฟล์ชำรุด</string>
|
||||
<string name="save_mode">โหมดบันทึก</string>
|
||||
<string name="selection_mode">โหมดการเลือก</string>
|
||||
@@ -364,18 +364,18 @@
|
||||
<string name="credential_before_click_advanced_unlock_button">กรอกรหัสผ่าน จากนั้นกดที่ปุ่มนี้</string>
|
||||
<string name="lock">ล็อก</string>
|
||||
<string name="warning_sure_add_file">เพิ่มไฟล์ต่อไปหรือไม่\?</string>
|
||||
<string name="import_app_properties_title">นําเข้าคุณสมบัติของแอป</string>
|
||||
<string name="import_app_properties_title">นําเข้าการตั้งค่าของแอป</string>
|
||||
<string name="autofill_select_entry">เลือกรายการ</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">เรื่มต้นการปลดล็อกขั้นสูงไม่ได้</string>
|
||||
<string name="export_app_properties_title">ส่งออกคุณสมบัติของแอป</string>
|
||||
<string name="export_app_properties_summary">สร้างไฟล์เพื่อส่งออกคุณสมบัติของแอป</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">เรื่มต้นการปลดล็อกด้วยอุปกรณ์ไม่ได้</string>
|
||||
<string name="export_app_properties_title">ส่งออกการตั้งค่าของแอป</string>
|
||||
<string name="export_app_properties_summary">สร้างไฟล์เพื่อส่งออกการตั้งค่าของแอป</string>
|
||||
<string name="lock_database_show_button_title">แสดงปุ่มล็อก</string>
|
||||
<string name="success_export_app_properties">ส่งออกคุณสมบัติของแอปแล้ว</string>
|
||||
<string name="autofill_preference_title">การตั้งค่าการกรอกข้อมูลอัตโนมัติ</string>
|
||||
<string name="password_size_title">ขนาดรหัสผ่านที่สร้าง</string>
|
||||
<string name="list_password_generator_options_title">อักขระรหัสผ่าน</string>
|
||||
<string name="clipboard_notifications_title">การแจ้งเตือนคลิปบอร์ด</string>
|
||||
<string name="temp_advanced_unlock_enable_title">การปลดล็อกขั้นสูงชั่วคราว</string>
|
||||
<string name="temp_advanced_unlock_enable_title">การปลดล็อกด้วยอุปกรณ์ชั่วคราว</string>
|
||||
<string name="keyboard_label">เมจิคีย์บอร์ด (KeePassDX)</string>
|
||||
<string name="keyboard_setting_label">การตั้งค่า เมจิคีย์บอร์ด</string>
|
||||
<string name="keyboard_entry_category">รายการ</string>
|
||||
@@ -410,7 +410,7 @@
|
||||
<string name="keyboard_key_vibrate_title">การสั่นที่ปุ่มกด</string>
|
||||
<string name="keyboard_key_sound_title">การได้ยินเสียงที่ปุ่มกด</string>
|
||||
<string name="keyboard_previous_search_title">หน้าจอค้นหา</string>
|
||||
<string name="keyboard_previous_fill_in_title">การกระทำปุ่มอัตโนมัติ</string>
|
||||
<string name="keyboard_previous_fill_in_title">ปุ่มกลับ</string>
|
||||
<string name="keyboard_previous_lock_summary">สลับไปยังแป้นพิมพ์ก่อนหน้านี้โดยอัตโนมัติหลังจากล็อกฐานข้อมูล</string>
|
||||
<string name="keyboard_previous_lock_title">ล็อกฐานข้อมูล</string>
|
||||
<string name="autofill_inline_suggestions_title">การแนะนำแบบอินไลน์</string>
|
||||
@@ -469,7 +469,7 @@
|
||||
<string name="personal_identification_number">PIN</string>
|
||||
<string name="unsupported_db_version">รุ่นของฐานข้อมูล Keepass ไม่รองรับ</string>
|
||||
<string name="warning_exact_alarm">You have not allowed the app to use an exact alarm. As a result, the features requiring a timer will not be done with an exact time.</string>
|
||||
<string name="upper_case">UPPER CASE</string>
|
||||
<string name="upper_case">ตัวพิมพ์ใหญ่</string>
|
||||
<string name="title_case">Title Case</string>
|
||||
<string name="show_entry_colors_summary">แสดงสีพื้นหน้าและสีพื้นหลังสําหรับรายการ</string>
|
||||
<string name="file_manager_install_description">ต้องการตัวจัดการไฟล์ที่ยอมรับ Intent Action ACTION_CREATE_DOCUMENT ACTION_OPEN_DOCUMENT เพื่อจะสร้าง, เปิด, และบันทึกไฟล์ฐานข้อมูล</string>
|
||||
@@ -488,7 +488,7 @@
|
||||
<string name="otp_secret">กุญแจลับของ OTP</string>
|
||||
<string name="otp_counter">ตัวนับ</string>
|
||||
<string name="international_bank_account_number">IBAN</string>
|
||||
<string name="membership">การเป็นสมาชิก</string>
|
||||
<string name="membership">ความเป็นสมาชิก</string>
|
||||
<string name="standard">มาตรฐาน</string>
|
||||
<string name="version">รุ่น</string>
|
||||
<string name="error_word_reserved">คำนี้เป็นคำที่ถูกสงวนไว้และไม่สามารถใช้ได้</string>
|
||||
@@ -504,7 +504,7 @@
|
||||
<string name="error_otp_period">ระยะเวลาต้องอยู่ระหว่าง %1$d และ %2$d วินาที</string>
|
||||
<string name="sort_title">หัวข้อ</string>
|
||||
<string name="warning_empty_keyfile">ไม่แนะนำให้เพิ่มไฟล์ keyfile เปล่าๆ</string>
|
||||
<string name="html_about_contribution">เพื่อที่จะ <strong>คงความเป็นอิสระ</strong>, <strong>แก้ไขบั้ก</strong>, <strong>เพื่มฟีเจอร์</strong> และ <strong>ทำให้พัฒนาอยู่เสมอ</strong>, เรารอคุณมา<strong>ร่วมแก้ไข</strong>อยู่</string>
|
||||
<string name="html_about_contribution">เพื่อที่จะ <strong>คงความเป็นอิสระ</strong>, <strong>แก้ไขบั้ก</strong>, <strong>เพื่มฟีเจอร์</strong> และ <strong>ทำให้ยังพัฒนาอยู่เสมอ</strong>, เรารอคุณมา<strong>ร่วมแก้ไข</strong>อยู่</string>
|
||||
<string name="field_value">ค่าเขตข้อมูล</string>
|
||||
<string name="warning_database_info_changed">ข้อมูลที่อยู่ในไฟล์ฐานข้อมูลของคุณถูกแก้ไขจากภายนอกแอป</string>
|
||||
<string name="description_app_properties">คุณสมบัติของ KeePassDX เพื่อจัดการการตั้งค่าแอป</string>
|
||||
@@ -518,21 +518,21 @@
|
||||
<string name="permission">สิทธิอนุญาต</string>
|
||||
<string name="warning_database_info_changed_options">รวมข้อมูลหรือเขียนทับการแก้ไขจากภายนอก โดยบันทึกฐานข้อมูล หรือโหลดซ้ำเพื่อใช้การเปลี่ยนแปลงล่าสุด</string>
|
||||
<string name="warning_keyfile_integrity">ค่าแฮชของไฟล์จะไม่แน่นอนเนี่องจาก Android สามารถเปลี่ยนแปลงข้อมูลในขณะที่ใช้อยู่ได้ เปลี่ยนส่วนขยายไฟล์เป็น .bin เพื่อคงความสมบูรณ์ไว้</string>
|
||||
<string name="biometric_security_update_required">จำเป็นต้องอัปเดทการรักษาความปลอดภัยของไบโอเมตริก</string>
|
||||
<string name="biometric_security_update_required">จำเป็นต้องอัปเดตการรักษาความปลอดภัยของไบโอเมตริก</string>
|
||||
<string name="keystore_not_accessible">Keystore เรื่มทำงานได้ไม่ถูกต้อง</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">เชื่อมโยงการปลดล็อกขั้นสูง</string>
|
||||
<string name="encrypted_value_stored">เก็บค่ารหัสผ่านที่เข้ารหัสไว้</string>
|
||||
<string name="advanced_unlock_invalid_key">อ่านกุญแจการปลดล็อกขั้นสูงไม่ได้ โปรดลบข้อมูลออกและเพื่มข้อมูลการปลดล็อกขั้นสูงอีกครั้ง</string>
|
||||
<string name="advanced_unlock_invalid_key">อ่านกุญแจการปลดล็อกของอุปกรณ์ไม่ได้ โปรดลบข้อมูลออกและเพื่มข้อมูลการปลดล็อกด้วยอุปกรณ์อีกครั้ง</string>
|
||||
<string name="advanced_unlock_not_recognized">ไม่รู้จักลายนิ้วมือ</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">แยกข้อมูลประจำตัวออกด้วยข้อมูลการปลดล็อกขั้นสูง</string>
|
||||
<string name="advanced_unlock_scanning_error">การปลดล็อกขั้นสูงผิดพลาด: %1$s</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">แยกข้อมูลประจำตัวออกด้วยข้อมูลการปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="advanced_unlock_scanning_error">การปลดล็อกด้วยอุปกรณ์ผิดพลาด: %1$s</string>
|
||||
<string name="properties">คุณสมบัติ</string>
|
||||
<string name="unavailable">ฐานข้อมูลนี้ยังไม่มีข้อมูลการเข้าสูระบบเลย</string>
|
||||
<string name="database_history">ประวัติ</string>
|
||||
<string name="import_app_properties_summary">เลือกไฟล์ที่จะนําเข้าคุณสมบัติของแอป</string>
|
||||
<string name="success_import_app_properties">นำเข้าคุณสมบัติแอปแล้ว</string>
|
||||
<string name="import_app_properties_summary">เลือกไฟล์ที่จะนําเข้าการตั้งค่าของแอป</string>
|
||||
<string name="success_import_app_properties">นำเข้าการตั้งค่าแอปแล้ว</string>
|
||||
<string name="set_autofill_service_title">ตั่งค่าเป็นบริการกรอกข้อมูลอัตโนมัติเรื่มต้น</string>
|
||||
<string name="error_export_app_properties">เกิดข้อผิดพลาดระหว่างการส่งออกคุณสมบัติของแอป</string>
|
||||
<string name="error_export_app_properties">เกิดข้อผิดพลาดระหว่างการส่งออกการตั้งค่าของแอป</string>
|
||||
<string name="menu_appearance_settings">ลักษณะ</string>
|
||||
<string name="biometric">ไบโอเมตริก</string>
|
||||
<string name="device_credential">ข้อมูลยืนยันตัวตนของอุปกรณ์</string>
|
||||
@@ -545,19 +545,19 @@
|
||||
<string name="unavailable_feature_version">อุปกรณ์นี้เป็น Android %1$s, แต่ต้องการ %2$s ขึ้นไป</string>
|
||||
<string name="lock_database_screen_off_summary">ล็อกฐานข้อมูลหลังจากปิดหน้าจอในไม่กี่วินาที</string>
|
||||
<string name="lock_database_back_root_summary">ล็อกฐานข้อมูลเมื่อผู้ใช้กดปุ่มกลับบนหน้ารายการราก</string>
|
||||
<string name="advanced_unlock_tap_delete">แตะเพื่อลบกุญแจการปลดล็อกขั้นสูง</string>
|
||||
<string name="advanced_unlock_explanation_summary">ใช้การปลดล็อกขั้นสูงเพื่อปลดล็อกฐานข้อมูลได้ง่ายขึ้น</string>
|
||||
<string name="advanced_unlock_tap_delete">แตะเพื่อลบกุญแจการปลดล็อกด้วนอุปกรณ์</string>
|
||||
<string name="advanced_unlock_explanation_summary">ใช้การปลดล็อกด้วยอุปกรณ์เพื่อปลดล็อกฐานข้อมูลได้ง่ายขึ้น</string>
|
||||
<string name="biometric_unlock_enable_title">การปลดล็อกด้วยไบโอเมตริก</string>
|
||||
<string name="biometric_auto_open_prompt_title">เปิดหน้ายืนยันอัตโนมัติ</string>
|
||||
<string name="biometric_auto_open_prompt_summary">เปิดการร้องขอการปลดล็อกขั้นสูงหากได้ตั้งค่าฐานข้อมูลไว้แล้ว</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">ไม่เก็บเนื้อหาเข้ารหัสใดๆเพื่อใช้กับการปลดล็อกขั้นสูง</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">ระยะหมดอายุของการปลดล็อกขั้นสูง</string>
|
||||
<string name="advanced_unlock_timeout">ระยะหมดเวลาของการปลดล็อกขั้นสูง</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดล็อกขั้นสูง\?</string>
|
||||
<string name="biometric_auto_open_prompt_summary">เปิดการร้องขอการปลดล็อกด้วยอุปกรณ์หากได้ตั้งค่าฐานข้อมูลไว้แล้ว</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">ไม่เก็บเนื้อหาเข้ารหัสใดๆเพื่อใช้กับการปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">ระยะหมดอายุของการปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="advanced_unlock_timeout">ระยะหมดเวลาของการปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดล็อกด้วยอุปกรณ์\?</string>
|
||||
<string name="unavailable_feature_hardware">ไม่พบอุปกรณ์ที่เกี่ยวข้อง</string>
|
||||
<string name="biometric_unlock_enable_summary">ให้คุณใช้ไบโอเมตริกเพื่อปลดล็อกฐานข้อมูล</string>
|
||||
<string name="device_credential_unlock_enable_title">การปลดล็อกด้วยข้อมูลประจำตัว</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">ระยะเวลาของการใช้การปลดล็อกขั้นสูงก่อนที่จะลบข้อมูลดังกล่าวออก</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">ระยะเวลาของการใช้การปลดล็อกด้วยอุปกรณ์ก่อนที่จะลบข้อมูลดังกล่าวออก</string>
|
||||
<string name="biometric_delete_all_key_title">ลบกุญแจเข้ารหัส</string>
|
||||
<string name="database_data_compression_title">การบีบอัดข้อมูล</string>
|
||||
<string name="advanced_unlock_keystore_warning">ฟีเจอร์นี่จะเก็บข้อมูลประจำตัวที่เข้ารหัสไว้ที่ KeyStore ที่ปลอดภัยในอุปกรณ์ของคุณ
|
||||
@@ -584,7 +584,7 @@
|
||||
<string name="monospace_font_fields_enable_summary">เปลี่ยนแบบอักษรที่ใช้ในช่องเขตข้อมูลเพื่อให้มองเห็นตัวอักษรง่ายขึ้น</string>
|
||||
<string name="allow_copy_password_title">ไว้ใจคลิปบอร์ด</string>
|
||||
<string name="clear_clipboard_notification_summary">ล็อกฐานข้อมูลเมื่อระยะเวลาในคลิปบอร์ดสิ้นสุดหรือปิดหลังจากคุณเรื่มใช้มันแล้ว</string>
|
||||
<string name="database_name_title">ชื่อฐานข้อมุ,</string>
|
||||
<string name="database_name_title">ชื่อฐานข้อมูล</string>
|
||||
<string name="magic_keyboard_explanation_summary">เปิดใช้งานแป้นพิมพ์แบบพิเศษที่จะสำรวจช่องกรอกรหัสผ่านและข้อมูลอื่นๆ</string>
|
||||
<string name="allow_copy_password_summary">อนุญาตให้คัดลอกรหัสผ่านและเขตข้อมูลที่ป้องกันไว้เก็บในคลิปบอร์ด</string>
|
||||
<string name="allow_copy_password_warning">คำเตือน:คลิปบอร์ดถูกใช้ร่วมกันในทุกแอป หากข้อมูลละเอียดอ่อนถูกคัดลอกไป ซอฟท์แวร์อื่นอาจกู้มันกลับมาได้</string>
|
||||
@@ -592,7 +592,7 @@
|
||||
<string name="database_custom_color_title">สีของฐานข้อมูลที่กำหนดเอง</string>
|
||||
<string name="database_version_title">เวอร์ชั่นของฐานข้อมูล</string>
|
||||
<string name="application_appearance">อินเตอร์เฟซ</string>
|
||||
<string name="keyboard_selection_entry_summary">เมื่อดูรายการใน KeePassDX, Magikeyboard จะใช้รายการนั้นด้วย</string>
|
||||
<string name="keyboard_selection_entry_summary">เมื่อดูรายการใน KeePassDX, เมจิคีย์บอร์ด จะใช้รายการนั้นด้วย</string>
|
||||
<string name="keyboard_save_search_info_summary">พยายามบันทึกข้อมูลที่ใช้ร่วมกันเมื่อเลือกกรอกรายการนั้นด้วยตนเองเพื่อใช้งานในอนาคตง่ายขึ้น</string>
|
||||
<string name="keyboard_notification_entry_clear_close_summary">ปิดฐานข้อมูลเมื่อปิดการแจ้งเตือน</string>
|
||||
<string name="text_appearance">ลักษณะตัวหนังสือ</string>
|
||||
@@ -614,7 +614,7 @@
|
||||
<string name="autofill_web_domain_blocklist_title">รายการโดเมนเว็บที่บล็อก</string>
|
||||
<string name="autofill_application_id_blocklist_summary">รายการที่บล็อกเพื่อกันไม่ให้กรอกข้อมูลในแอปอัตโนมัติ</string>
|
||||
<string name="autofill_web_domain_blocklist_summary">รายการที่บล็อกเพื่อกันไม่ให้กรอกข้อมูลในเว็บอัตโนมัติ</string>
|
||||
<string name="biometric_delete_all_key_summary">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดลิอกขั้นสูง</string>
|
||||
<string name="biometric_delete_all_key_summary">ลบกุญแจเข้ารหัสทั้งหมดที่เกี่ยวข้องกับการปลดล็อกด้วยอุปกรณ์</string>
|
||||
<string name="autofill_read_only_save">การบันทึกฐานข้อมูลไม่อนุญาตสำหรับฐานข้อมูลที่อ่านอย่างเดียว</string>
|
||||
<string name="autofill_block_restart">เปิดแอปที่แบบฟอร์มนั้นขั้นมาใหม่เพื่อใช้งานการบล็อก</string>
|
||||
<string name="autofill_inline_suggestions_keyboard">เพื่มการแนะนำการกรอกอัตโนมัติ</string>
|
||||
@@ -625,16 +625,16 @@
|
||||
<string name="reset_education_screens_text">คำแนะนำการใช้งานถูกรีเซ็ทแล้ว</string>
|
||||
<string name="icon_pack_choose_title">ชุดไอคอน</string>
|
||||
<string name="enable_auto_save_database_summary">บันทึกฐานข้อมูลหลังจากการกระทำที่สำคัญ(ในโหมด\"แก้ไขได้\")</string>
|
||||
<string name="enable_keep_screen_on_summary">เปิดหน้าจอไว้ขณะดูรายการ</string>
|
||||
<string name="enable_keep_screen_on_summary">เปิดหน้าจอไว้ขณะดูหรือแก้ไขรายการ</string>
|
||||
<string name="enable_screenshot_mode_summary">อนุญาตแอปอื่นๆบันทึกหรือถ่ายภาพหน้าจอแอปนี้</string>
|
||||
<string name="enable_education_screens_summary">ไฮไลท์องค์ประกอบเพื่อเรียนรู้ว่าแอปใช้ยังไง</string>
|
||||
<string name="enable_education_screens_title">คำแนะนำการใช้งาน</string>
|
||||
<string name="education_advanced_unlock_title">การปลดล็อกฐานข้อมูลขั้นสูง</string>
|
||||
<string name="education_advanced_unlock_title">การปลดล็อกฐานข้อมูลด้วยอุปกรณ์</string>
|
||||
<string name="education_advanced_unlock_summary">เชื่อมโยงรหัสผ่านกับข้อมูลไบโอเมตริกหรือข้อมูลการเข้าสู่ระบบเพื่อปลดล็อกฐานข้อมูลได้เร็วขึ้น</string>
|
||||
<string name="education_entry_edit_title">แก้ไขรายการ</string>
|
||||
<string name="education_entry_edit_summary">แก้ไขรายการด้วยเขตข้อมูลที่กำหนดเอง ข้อมูลสามารถอ้างอิงได้ระหว่างรายการเขตข้อมูลต่างๆ</string>
|
||||
<string name="education_entry_new_field_summary">กำหนดช่องเขตข้อมูลเพื่มเติม, เพื่มค่าหรือจะเพื่มการป้องกันให้มันด้วยก็ได้</string>
|
||||
<string name="education_generate_password_summary">สร้างรหัสผ่านที่แข็งแรงเพื่อใช้กับรายการของคุณ ความง่ายในการระบุขึ้นอยู่กับลักษณะแบบฟอรู์มนั้น และไม่ลืมรหัสผ่านที่ปลอดภัย</string>
|
||||
<string name="education_generate_password_summary">สร้างรหัสผ่านที่แข็งแรงเพื่อใช้กับรายการของคุณ ความง่ายในการระบุขึ้นอยู่กับลักษณะแบบฟอร์มนั้น และจงอย่าลืมรหัสผ่านที่ปลอดภัย</string>
|
||||
<string name="education_add_attachment_summary">อัปโหลดเอกสารแนบไปยังรายการของคุณเพื่อบันทึกข้อมูลภายนอกเพิ่มเติม</string>
|
||||
<string name="education_setup_OTP_summary">ตั่้งค่ารหัสผ่านแบบใช้ครั้งเดียว (HOTP/TOTP) เพิ่อสร้างโทเค็นสำหรับการยืนยันสองขั้นตอน (2FA)</string>
|
||||
<string name="education_field_copy_title">คัดลอกเขตข้อมูล</string>
|
||||
@@ -652,4 +652,15 @@
|
||||
<string name="ask">ถาม</string>
|
||||
<string name="warning_copy_permission">ต้องการสิทธิ์การแจ้งเตือนสำหรับคุณสมบัติการแจ้งเตือนของคลิปบอร์ด</string>
|
||||
<string name="later">ภายหลัง</string>
|
||||
<string name="unlock">ปลดล็อก</string>
|
||||
<string name="master_key_settings_summary">เปลี่ยน, รอบการเปลี่ยน</string>
|
||||
<string name="info">ข้อมูล</string>
|
||||
<string name="education_validate_entry_title">ตรวจสอบรายการ</string>
|
||||
<string name="menu_form_filling_settings_summary">คีย์บอร์ด, การกรอกข้อมูลอัตโนมัติ, คลิปบอร์ด</string>
|
||||
<string name="configure">การกำหนดค่า</string>
|
||||
<string name="menu_appearance_settings_summary">ธีม, สี, คุณสมบัติ</string>
|
||||
<string name="menu_security_settings_summary">การเข้ารหัส, ฟังก์ชั่นการแลกเปลี่ยนกุญแจ</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">ไบโอเมตริก, ข้อมูลประจำตัวของอุปกรณ์</string>
|
||||
<string name="menu_database_settings_summary">เมตาดาต้า, ถังขยะ, แม่แบบ, ประวัติ</string>
|
||||
<string name="menu_app_settings_summary">การค้นหา, การล็อก, ประวัติ, ค่ากำหนด</string>
|
||||
</resources>
|
||||
@@ -128,8 +128,8 @@
|
||||
<string name="never">Asla</string>
|
||||
<string name="no_results">Arama sonucu bulunamadı</string>
|
||||
<string name="no_url_handler">Bu URL\'u açmak için bir web tarayıcısı yükleyin.</string>
|
||||
<string name="select_database_file">Mevcut veri tabanını aç</string>
|
||||
<string name="create_keepass_file">Yeni veri tabanı oluştur</string>
|
||||
<string name="select_database_file">Mevcut kasayı aç</string>
|
||||
<string name="create_keepass_file">Yeni kasa oluştur</string>
|
||||
<string name="progress_create">Yeni veri tabanı oluşturuluyor…</string>
|
||||
<string name="progress_title">Çalışıyor…</string>
|
||||
<string name="protection">Koruma</string>
|
||||
@@ -189,11 +189,11 @@
|
||||
<string name="lock">Kilit</string>
|
||||
<string name="lock_database_screen_off_title">Ekran kilidi</string>
|
||||
<string name="lock_database_screen_off_summary">Ekran kapandığında birkaç saniye sonra veri tabanını kilitle</string>
|
||||
<string name="advanced_unlock">Gelişmiş kilit açma</string>
|
||||
<string name="advanced_unlock">Cihaz kilidini aç</string>
|
||||
<string name="biometric_unlock_enable_title">Biyometrik kilit açma</string>
|
||||
<string name="biometric_unlock_enable_summary">Veri tabanını açmak için biyometriklerinizi taramanızı sağlar</string>
|
||||
<string name="biometric_delete_all_key_title">Şifreleme anahtarlarını silin</string>
|
||||
<string name="biometric_delete_all_key_summary">Gelişmiş kilit açma tanıma ile ilgili tüm şifreleme anahtarlarını silin</string>
|
||||
<string name="biometric_delete_all_key_summary">Cihaz kilit açma tanımayla ilgili tüm şifreleme anahtarlarını silin</string>
|
||||
<string name="unavailable_feature_text">Bu özellik başlatılamadı.</string>
|
||||
<string name="unavailable_feature_version">Aygıtta Android %1$s çalışıyor, ancak %2$s veya sonraki bir sürüm gerekli.</string>
|
||||
<string name="unavailable_feature_hardware">İlgili donanım bulunamadı.</string>
|
||||
@@ -240,9 +240,9 @@
|
||||
<string name="enable_read_only_summary">Veri tabanını öntanımlı olarak salt okunur aç</string>
|
||||
<string name="enable_education_screens_title">Eğitim ipuçları</string>
|
||||
<string name="enable_education_screens_summary">Uygulamanın nasıl çalıştığını öğrenmek için ögeleri vurgulayın</string>
|
||||
<string name="reset_education_screens_title">Eğitim ipuçlarını sıfırla</string>
|
||||
<string name="reset_education_screens_title">Eğitici ipuçlarını sıfırla</string>
|
||||
<string name="reset_education_screens_summary">Tüm eğitim bilgilerini tekrar göster</string>
|
||||
<string name="reset_education_screens_text">Eğitim ipuçlarını sıfırla</string>
|
||||
<string name="reset_education_screens_text">Eğitici ipuçlarını sıfırla</string>
|
||||
<string name="education_create_database_title">Veri tabanı dosyanızı oluşturun</string>
|
||||
<string name="education_create_database_summary">İlk parola yönetim dosyanızı oluşturun.</string>
|
||||
<string name="education_select_database_title">Mevcut bir veri tabanını açın</string>
|
||||
@@ -329,10 +329,10 @@
|
||||
<string name="content_description_update_from_list">Güncelle</string>
|
||||
<string name="content_description_keyboard_close_fields">Alanları kapat</string>
|
||||
<string name="error_create_database_file">Bu parola ve anahtar dosyası ile veri tabanı oluşturulamıyor.</string>
|
||||
<string name="menu_advanced_unlock_settings">Gelişmiş kilit açma</string>
|
||||
<string name="menu_advanced_unlock_settings">Cihaz kilidini aç</string>
|
||||
<string name="biometric">Biyometrik</string>
|
||||
<string name="biometric_auto_open_prompt_title">Otomatik açma istemi</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Vari tabanı onu kullanacak biçimde ayarlandıysa otomatik olarak gelişmiş kilit açma isteğinde bulun</string>
|
||||
<string name="biometric_auto_open_prompt_summary">Veritabanı onu kullanacak şekilde ayarlanmışsa cihazın kilidini otomatik olarak talep et</string>
|
||||
<string name="enable">Etkinleştir</string>
|
||||
<string name="disable">Devre dışı</string>
|
||||
<string name="master_key">Ana anahtar</string>
|
||||
@@ -361,7 +361,7 @@
|
||||
<string name="contains_duplicate_uuid_procedure">Tekrarlananlar için yeni UUID\'ler oluşturarak sorunu çöz ve devam et\?</string>
|
||||
<string name="database_opened">Veri tabanı açıldı</string>
|
||||
<string name="clipboard_explanation_summary">Aygıtınızın panosunu kullanarak girdi alanlarını kopyalayın</string>
|
||||
<string name="advanced_unlock_explanation_summary">Veri tabanını daha kolay açmak için gelişmiş kilit açma özelliğini kullan</string>
|
||||
<string name="advanced_unlock_explanation_summary">Bir veritabanını daha kolay açmak için cihazın kilidini açmayı kullanın</string>
|
||||
<string name="database_data_compression_title">Veri sıkıştırma</string>
|
||||
<string name="database_data_compression_summary">Veri sıkıştırma veri tabanı boyutunu azaltır</string>
|
||||
<string name="max_history_items_title">Azami sayı</string>
|
||||
@@ -439,7 +439,7 @@
|
||||
<string name="error_string_type">Bu metin istenen ögeyle eşleşmiyor.</string>
|
||||
<string name="content_description_add_item">Öge ekle</string>
|
||||
<string name="keyboard_previous_fill_in_summary">\"Otomatik tuş eylemini\" gerçekleştirdikten sonra otomatik olarak önceki klavyeye dön</string>
|
||||
<string name="keyboard_previous_fill_in_title">Otomatik tuş eylemi</string>
|
||||
<string name="keyboard_previous_fill_in_title">Geri dön</string>
|
||||
<string name="keyboard_previous_database_credentials_summary">Veri tabanı kimlik bilgileri ekranında otomatik olarak önceki klavyeye dön</string>
|
||||
<string name="keyboard_previous_database_credentials_title">Veri tabanı kimlik bilgileri ekranı</string>
|
||||
<string name="keyboard_change">Klavye değiştir</string>
|
||||
@@ -464,13 +464,13 @@
|
||||
<string name="autofill_read_only_save">Salt okunur olarak açılan bir veri tabanı için veri kaydına izin verilmiyor.</string>
|
||||
<string name="autofill_ask_to_save_data_summary">Form doldurma işlemi tamamlandığında verileri kaydetmek için sor</string>
|
||||
<string name="autofill_ask_to_save_data_title">Verileri kaydetmek için sor</string>
|
||||
<string name="autofill_save_search_info_summary">İleride daha kolay kullanım için elle girdi seçimi yaparken arama bilgilerini kaydetmeyi dene</string>
|
||||
<string name="autofill_save_search_info_summary">Gelecekteki daha kolay kullanımlar için el ile giriş seçimi yaparken arama bilgilerini kaydetmeyi deneyin</string>
|
||||
<string name="autofill_save_search_info_title">Arama bilgilerini kaydet</string>
|
||||
<string name="autofill_close_database_summary">Otomatik doldurma seçiminden sonra veri tabanını kapat</string>
|
||||
<string name="autofill_close_database_title">Veri tabanını kapat</string>
|
||||
<string name="keyboard_previous_lock_summary">Veri tabanını kilitledikten sonra otomatik olarak önceki klavyeye dön</string>
|
||||
<string name="keyboard_previous_lock_title">Veri tabanını kilitle</string>
|
||||
<string name="keyboard_save_search_info_summary">İleride daha kolay kullanım için elle girdi seçimi yaparken arama bilgilerini kaydetmeyi dene</string>
|
||||
<string name="keyboard_save_search_info_summary">Gelecekteki daha kolay kullanımlar için el ile giriş seçimi yaparken paylaşılan bilgileri kaydetmeyi deneyin</string>
|
||||
<string name="keyboard_save_search_info_title">Paylaşılan bilgileri kaydet</string>
|
||||
<string name="notification">Bildirim</string>
|
||||
<string name="biometric_security_update_required">Biyometrik güvenlik güncellemesi gerekli.</string>
|
||||
@@ -481,34 +481,34 @@
|
||||
<string name="search_mode">Arama modu</string>
|
||||
<string name="error_registration_read_only">Salt okunur bir veri tabanında yeni bir öge kaydetmeye izin verilmiyor</string>
|
||||
<string name="error_field_name_already_exists">Alan adı zaten var.</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Gelişmiş kilit açma tanıma ile ilgili tüm şifreleme anahtarları silinsin mi\?</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Cihaz kilit açma tanımayla ilgili tüm şifreleme anahtarları silinsin mi\?</string>
|
||||
<string name="device_credential_unlock_enable_summary">Veri tabanını açmak için aygıt kimlik bilgilerinizi kullanmanıza olanak tanır</string>
|
||||
<string name="device_credential_unlock_enable_title">Aygıt kimlik bilgisiyle kilit açma</string>
|
||||
<string name="device_credential">Aygıt kimlik bilgileri</string>
|
||||
<string name="credential_before_click_advanced_unlock_button">Parolayı yazın ve ardından bu düğmeye tıklayın.</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Gelişmiş kilit açma istemi başlatılamıyor.</string>
|
||||
<string name="unavailable">Bu veri tabanında henüz saklanmış kimlik bilgisi yok.</string>
|
||||
<string name="advanced_unlock_scanning_error">Gelişmiş kilit açma hatası: %1$s</string>
|
||||
<string name="advanced_unlock_not_recognized">Gelişmiş kilit açma parmak izi tanınamadı</string>
|
||||
<string name="advanced_unlock_invalid_key">Gelişmiş kilit açma anahtarı okunamıyor. Lütfen silin ve kilit açma tanıma işlemini tekrarlayın.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Veri tabanı kimlik bilgilerini gelişmiş kilit açma özelliğiyle çıkarın</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Veri tabanını gelişmiş kilit açma tanıma ile aç</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Gelişmiş kilit açma tanıma kullanırsanız, yine de ana kimlik bilgilerinizi hatırlamanız gerekmektedir.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Gelişmiş kilit açma tanıma</string>
|
||||
<string name="menu_keystore_remove_key">Gelişmiş kilit açma anahtarını sil</string>
|
||||
<string name="advanced_unlock_prompt_not_initialized">Cihaz kilit açma istemi başlatılamıyor.</string>
|
||||
<string name="unavailable">Kullanım dışı</string>
|
||||
<string name="advanced_unlock_scanning_error">Cihaz kilit açma hatası: %1$s</string>
|
||||
<string name="advanced_unlock_not_recognized">Cihaz kilit açma parmak izi tanınamadı</string>
|
||||
<string name="advanced_unlock_invalid_key">Cihazın kilit açma anahtarı okunamıyor. Lütfen silin ve kilit açma tanıma prosedürünü tekrarlayın.</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_message">Cihaz kilit açma verileriyle veritabanı kimlik bilgilerini çıkarın</string>
|
||||
<string name="advanced_unlock_prompt_extract_credential_title">Cihaz kilidini tanıma</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_message">Cihaz kilit açma tanımayı kullanıyorsanız kasa ana kimlik bilgilerinizi yine de hatırlamanız gerekir.</string>
|
||||
<string name="advanced_unlock_prompt_store_credential_title">Cihaz kilidini açma bağlantısı</string>
|
||||
<string name="menu_keystore_remove_key">Cihaz kilit açma anahtarını sil</string>
|
||||
<string name="enter">Enter</string>
|
||||
<string name="backspace">Backspace</string>
|
||||
<string name="select_entry">Girdi seç</string>
|
||||
<string name="back_to_previous_keyboard">Önceki klavyeye geri dön</string>
|
||||
<string name="custom_fields">Özel alanlar</string>
|
||||
<string name="education_advanced_unlock_summary">Veri tabanınızın kilidini hızlı bir şekilde açmak için parolanızı taranmış biyometrik veya aygıt kimlik bilgilerinize bağlayın.</string>
|
||||
<string name="education_advanced_unlock_title">Gelişmiş veri tabanı kilidi açma</string>
|
||||
<string name="advanced_unlock_timeout">Gelişmiş kilit açma zaman aşımı</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">İçeriğini silmeden önce gelişmiş kilit açma kullanımının süresi</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Gelişmiş kilit açma süre sonu</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Gelişmiş kilit açmayı kullanmak için herhangi bir şifrelenmiş içeriği saklama</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Geçici gelişmiş kilit açma</string>
|
||||
<string name="advanced_unlock_tap_delete">Gelişmiş kilit açma anahtarlarını silmek için dokunun</string>
|
||||
<string name="education_advanced_unlock_title">Cihaz veritabanı kilidini açma</string>
|
||||
<string name="advanced_unlock_timeout">Cihaz kilidini açma zaman aşımı</string>
|
||||
<string name="temp_advanced_unlock_timeout_summary">İçeriğini silmeden önce cihazın kilit açma kullanım süresi</string>
|
||||
<string name="temp_advanced_unlock_timeout_title">Cihaz kilidini açma süresi doldu</string>
|
||||
<string name="temp_advanced_unlock_enable_summary">Cihaz kilidini açmak için şifrelenmiş içerik saklamayın</string>
|
||||
<string name="temp_advanced_unlock_enable_title">Geçici kilit açma</string>
|
||||
<string name="advanced_unlock_tap_delete">Cihaz kilit açma anahtarlarını silmek için dokunun</string>
|
||||
<string name="content">İçerik</string>
|
||||
<string name="error_rebuild_list">Liste düzgün şekilde yeniden oluşturulamıyor.</string>
|
||||
<string name="error_database_uri_null">Veri tabanı URI\'si alınamıyor.</string>
|
||||
@@ -535,15 +535,15 @@
|
||||
<string name="error_remove_file">Dosya verilerini kaldırırken bir hata oluştu.</string>
|
||||
<string name="error_duplicate_file">Dosya verileri zaten var.</string>
|
||||
<string name="properties">Özellikler</string>
|
||||
<string name="error_export_app_properties">Uygulama özelliklerini dışa aktarma sırasında hata oluştu</string>
|
||||
<string name="error_import_app_properties">Uygulama özelliklerini içe aktarma sırasında hata oluştu</string>
|
||||
<string name="success_export_app_properties">Uygulama özellikleri dışa aktarıldı</string>
|
||||
<string name="success_import_app_properties">Uygulama özellikleri içe aktarıldı</string>
|
||||
<string name="error_export_app_properties">Uygulama ayarlarının dışa aktarımı sırasında hata</string>
|
||||
<string name="error_import_app_properties">Uygulama ayarlarını içe aktarırken hata oluştu</string>
|
||||
<string name="success_export_app_properties">Uygulama ayarları dışa aktarıldı</string>
|
||||
<string name="success_import_app_properties">Uygulama ayarları içe aktarıldı</string>
|
||||
<string name="description_app_properties">Uygulama ayarlarını yönetmek için KeePassDX özellikleri</string>
|
||||
<string name="export_app_properties_summary">Uygulama özelliklerini dışa aktarmak için bir dosya oluşturun</string>
|
||||
<string name="export_app_properties_title">Uygulama özelliklerini dışa aktar</string>
|
||||
<string name="import_app_properties_summary">Uygulama özelliklerini içe aktarmak için bir dosya seçin</string>
|
||||
<string name="import_app_properties_title">Uygulama özelliklerini içe aktar</string>
|
||||
<string name="export_app_properties_summary">Uygulama ayarlarını dışa aktarmak için bir dosya oluşturun</string>
|
||||
<string name="export_app_properties_title">Uygulama ayarlarını dışa aktar</string>
|
||||
<string name="import_app_properties_summary">Uygulama ayarlarını içe aktarmak için bir dosya seçin</string>
|
||||
<string name="import_app_properties_title">Uygulama ayarlarını içe aktar</string>
|
||||
<string name="error_start_database_action">Veri tabanında bir eylem gerçekleştirilirken bir hata oluştu.</string>
|
||||
<string name="error_move_group_here">Bir grubu buraya taşıyamazsınız.</string>
|
||||
<string name="error_word_reserved">Bu sözcük ayrılmıştır ve kullanılamaz.</string>
|
||||
@@ -600,7 +600,7 @@
|
||||
<string name="enable_keep_screen_on_title">Ekranı açık tut</string>
|
||||
<string name="show_entry_colors_title">Girdi renkleri</string>
|
||||
<string name="show_entry_colors_summary">Bir girdi için ön plan ve arka plan renklerini görüntüler</string>
|
||||
<string name="enable_keep_screen_on_summary">Girdiyi izlerken ekranı açık tutun</string>
|
||||
<string name="enable_keep_screen_on_summary">Bir girişi izlerken veya düzenlerken ekranı açık tutun</string>
|
||||
<string name="content_description_nav_header">Gezinme başlığı</string>
|
||||
<string name="navigation_drawer_open">Gezinme çekmecesi açık</string>
|
||||
<string name="navigation_drawer_close">Gezinme çekmecesi kapalı</string>
|
||||
@@ -662,4 +662,25 @@
|
||||
<string name="enable_screenshot_mode_summary">Üçüncü taraf uygulamaların uygulamanın ekran görüntülerini kaydetmesine veya almasına izin verin</string>
|
||||
<string name="screenshot_mode_banner_text">Ekran görüntüsü modu</string>
|
||||
<string name="merge_success">Birleştirme başarıyla tamamlandı</string>
|
||||
<string name="unlock">Kilidi aç</string>
|
||||
<string name="master_key_settings_summary">Değişim, yenilenme</string>
|
||||
<string name="info">Bilgi</string>
|
||||
<string name="education_validate_entry_title">Girişi doğrula</string>
|
||||
<string name="ask">Sor</string>
|
||||
<string name="menu_form_filling_settings_summary">Klavye, otomatik doldur, pano</string>
|
||||
<string name="configure">Yapılandır</string>
|
||||
<string name="menu_appearance_settings_summary">Temalar, renkler, öznitellikler</string>
|
||||
<string name="menu_security_settings_summary">Şifreleme, anahtar türetme işlevi</string>
|
||||
<string name="menu_advanced_unlock_settings_summary">Biyometri, cihaz kimlik bilgisi</string>
|
||||
<string name="education_validate_entry_summary">Girişinizi doğrulamayı ve veritabanınızı kaydetmeyi unutmayın.
|
||||
\n
|
||||
\nOtomatik kilitleme etkinleştirilirse ve değişiklik yaptığınızı unutursanız verilerinizi kaybetme riskiyle karşı karşıya kalırsınız.</string>
|
||||
<string name="warning_database_notification_permission">Bildirim izni, veritabanının durumunu görüntülemenize ve kolayca erişilebilen bir düğmeyle kilitlemenize olanak tanır.
|
||||
\n
|
||||
\nBu izni aktifleştirmezseniz arka planda açık olan veritabanı, ön planda başka bir uygulama varken görünmeyecektir.</string>
|
||||
<string name="unlock_and_link_biometric">Cihaz kilit açma bağlantısı</string>
|
||||
<string name="warning_copy_permission">Pano bildirim özelliğini kullanmak için bildirim izni gereklidir.</string>
|
||||
<string name="menu_database_settings_summary">Meta veriler, geri dönüşüm kutusu, şablonlar, geçmiş</string>
|
||||
<string name="menu_app_settings_summary">Ara, kilit, geçmiş, özellikler</string>
|
||||
<string name="later">Daha Sonra</string>
|
||||
</resources>
|
||||
@@ -540,15 +540,15 @@
|
||||
<string name="error_remove_file">Сталася помилка під час вилучення даних файлу.</string>
|
||||
<string name="error_duplicate_file">Дані файлу вже існують.</string>
|
||||
<string name="properties">Властивості</string>
|
||||
<string name="error_export_app_properties">Помилка під час експортування властивостей застосунку</string>
|
||||
<string name="success_export_app_properties">Властивості застосунку експортовано</string>
|
||||
<string name="error_import_app_properties">Помилка під час імпортування властивостей застосунку</string>
|
||||
<string name="success_import_app_properties">Властивості застосунку імпортовано</string>
|
||||
<string name="error_export_app_properties">Помилка під час експорту налаштувань застосунку</string>
|
||||
<string name="success_export_app_properties">Налаштування застосунку експортовано</string>
|
||||
<string name="error_import_app_properties">Помилка під час імпорту налаштувань застосунку</string>
|
||||
<string name="success_import_app_properties">Налаштування застосунку імпортовано</string>
|
||||
<string name="description_app_properties">Властивості KeePassDX для керування налаштування застосунку</string>
|
||||
<string name="export_app_properties_summary">Створити файл для експорту властивостей застосунку</string>
|
||||
<string name="export_app_properties_title">Експорт властивостей застосунку</string>
|
||||
<string name="import_app_properties_summary">Виберіть файл для імпорту властивостей застосунку</string>
|
||||
<string name="import_app_properties_title">Імпорт властивостей застосунку</string>
|
||||
<string name="export_app_properties_summary">Створити файл для експорту налаштувань застосунку</string>
|
||||
<string name="export_app_properties_title">Експорт налаштувань застосунку</string>
|
||||
<string name="import_app_properties_summary">Виберіть файл для імпорту налаштувань застосунку</string>
|
||||
<string name="import_app_properties_title">Імпорт налаштувань застосунку</string>
|
||||
<string name="error_start_database_action">Під час виконання дії з базою даних сталася помилка.</string>
|
||||
<string name="error_move_group_here">Ви не можете перемістити групу сюди.</string>
|
||||
<string name="error_word_reserved">Це слово зарезервоване, його не можна використовувати.</string>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="file_manager_install_description">Cần có một trình duyệt tập tin chấp nhận hành động chủ đích ACTION_CREATE_DOCUMENT và ACTION_OPEN_DOCUMENT để tạo, mở, và lưu tệp tin chứa cơ sở dữ liệu.</string>
|
||||
<string name="error_load_database">Không thể tải cơ sở dữ liệu của bạn.</string>
|
||||
<string name="error_load_database">Không thể tải cơ sở dữ liệu.</string>
|
||||
<string name="error_out_of_memory">Không đủ bộ nhớ để tải toàn bộ cơ sở dữ liệu của bạn.</string>
|
||||
<string name="error_nokeyfile">Chọn một tệp chứa khoá.</string>
|
||||
<string name="error_no_name">Nhập tên.</string>
|
||||
@@ -51,17 +51,17 @@
|
||||
<string name="entry_add_field">Thêm trường</string>
|
||||
<string name="content_description_password_length">Độ dài mật khẩu</string>
|
||||
<string name="entry_password_generator">Trình tạo mật khẩu</string>
|
||||
<string name="discard">Xoá</string>
|
||||
<string name="discard">Loại bỏ</string>
|
||||
<string name="discard_changes">Huỷ thay đổi\?</string>
|
||||
<string name="validate">Xác nhận</string>
|
||||
<string name="content_description_entry_icon">Biểu tượng của mục</string>
|
||||
<string name="content_description_keyfile_checkbox">Ô đánh dấu tệp tin chứa khoá</string>
|
||||
<string name="content_description_entry_icon">Biểu tượng của mục nhập</string>
|
||||
<string name="content_description_keyfile_checkbox">Hộp kiểm tệp khóa</string>
|
||||
<string name="content_description_password_checkbox">Ô đánh dấu mật khẩu</string>
|
||||
<string name="content_description_otp_information">Thông tin về mật khẩu dùng một lần</string>
|
||||
<string name="content_description_credentials_information">Thông tin định danh</string>
|
||||
<string name="content_description_file_information">Thông tin tệp tin</string>
|
||||
<string name="content_description_add_group">Thêm nhóm</string>
|
||||
<string name="content_description_add_entry">Thêm mục</string>
|
||||
<string name="content_description_add_entry">Thêm mục nhập</string>
|
||||
<string name="content_description_add_node">Thêm nút</string>
|
||||
<string name="content_description_node_children">Nút con</string>
|
||||
<string name="content_description_open_file">Mở tệp tin</string>
|
||||
@@ -76,14 +76,14 @@
|
||||
<string name="brackets">Dấu ngoặc</string>
|
||||
<string name="application">Ứng dụng</string>
|
||||
<string name="app_timeout_summary">Thời gian không hoạt động trước khi khoá cơ sở dữ liệu</string>
|
||||
<string name="key_derivation_function">Hàm tạo khoá</string>
|
||||
<string name="key_derivation_function">Hàm khóa phái sinh</string>
|
||||
<string name="encryption_algorithm">Thuật toánmã hoá</string>
|
||||
<string name="encryption">Mã hoá</string>
|
||||
<string name="security">Bảo mật</string>
|
||||
<string name="master_key">Khoá chính</string>
|
||||
<string name="master_key">Chìa khoá chính</string>
|
||||
<string name="add_group">Thêm nhóm</string>
|
||||
<string name="edit_entry">Sửa mục</string>
|
||||
<string name="add_entry">Thêm mục</string>
|
||||
<string name="edit_entry">Sửa mục nhập</string>
|
||||
<string name="add_entry">Thêm mục nhập</string>
|
||||
<string name="accept">Đồng ý</string>
|
||||
<string name="about_description">Phiên bản Android của phần mềm quản lý mật khẩu KeePass</string>
|
||||
<string name="homepage">Trang chủ</string>
|
||||
@@ -158,7 +158,7 @@
|
||||
<string name="invalid_algorithm">Sai thuật toán.</string>
|
||||
<string name="invalid_db_sig">Không đọc được định dạng cơ sở dữ liệu.</string>
|
||||
<string name="no_url_handler">Hãy cài đặt trình duyệt web để mở đường dẫn này.</string>
|
||||
<string name="select_database_file">Mở cơ sở dữ liệu có sẵn</string>
|
||||
<string name="select_database_file">Mở két sắt có sẵn</string>
|
||||
<string name="lowercase">Chữ thường</string>
|
||||
<string name="hide_password_title">Ẩn mật khẩu</string>
|
||||
<string name="error_upload_file">Có lỗi xảy ra khi tải dữ liệu từ tệp lên.</string>
|
||||
@@ -172,4 +172,64 @@
|
||||
<string name="menu_open">Mở</string>
|
||||
<string name="menu_open_file_read_and_write">Có thể sửa</string>
|
||||
<string name="hide_password_summary">Mặc định che mật khẩu (***)</string>
|
||||
<string name="auto_type">Tự động gõ</string>
|
||||
<string name="inherited">Kế tục</string>
|
||||
<string name="hide_expired_entries_summary">Các mục đã hết hạn không được hiển thị</string>
|
||||
<string name="consider_chars_filter">Xem xét các ký tự</string>
|
||||
<string name="exclude_ambiguous_chars">Loại trừ các ký tự không rõ ràng</string>
|
||||
<string name="style_choose_title">Chủ đề ứng dụng</string>
|
||||
<string name="unit_gibibyte">GiB</string>
|
||||
<string name="info">Thông tin</string>
|
||||
<string name="content_description_entry_background_color">Màu nền mục nhập</string>
|
||||
<string name="unit_kibibyte">KiB</string>
|
||||
<string name="custom_data">Dữ liệu tùy chỉnh</string>
|
||||
<string name="tags">Thẻ</string>
|
||||
<string name="style_brightness_summary">Chọn chủ đề sáng hoặc tối</string>
|
||||
<string name="hardware_key">Khóa phần cứng</string>
|
||||
<string name="ignore_chars_filter">Bỏ qua các ký tự</string>
|
||||
<string name="searchable">Có thể tìm kiếm</string>
|
||||
<string name="download_complete">Hoàn thành!</string>
|
||||
<string name="html_text_dev_feature_thanks">Cảm ơn rất nhiều vì sự đóng góp của bạn.</string>
|
||||
<string name="style_choose_summary">Chủ đề được sử dụng trong ứng dụng</string>
|
||||
<string name="style_brightness_title">Độ sáng chủ đề</string>
|
||||
<string name="html_about_privacy"><strong>Không có dữ liệu người dùng nào được truy xuất</strong>, ứng dụng này không kết nối với bất kỳ máy chủ nào, chỉ hoạt động cục bộ và hoàn toàn tôn trọng quyền riêng tư của người dùng.</string>
|
||||
<string name="content_description_entry_foreground_color">Màu nền trước mục nhập</string>
|
||||
<string name="content_description_hardware_key_checkbox">Hộp kiểm khóa phần cứng</string>
|
||||
<string name="at_least_one_char">Ít nhất một ký tự từ mỗi ký tự</string>
|
||||
<string name="lower_case">chữ thường</string>
|
||||
<string name="screenshot_mode_banner_text">Chế độ chụp màn hình</string>
|
||||
<string name="case_sensitive">Phân biệt chữ hoa chữ thường</string>
|
||||
<string name="icon_section_custom">Tùy chỉnh</string>
|
||||
<string name="content_description_passphrase_word_count">Số từ cụm mật khẩu</string>
|
||||
<string name="regex">Biểu thức chính quy</string>
|
||||
<string name="show_entry_colors_title">Màu mục nhập</string>
|
||||
<string name="download_canceled">Đã hủy!</string>
|
||||
<string name="icon_section_standard">Tiêu chuẩn</string>
|
||||
<string name="education_entry_edit_title">Chỉnh sửa mục nhập</string>
|
||||
<string name="expired">Hết hạn</string>
|
||||
<string name="waiting_challenge_request">Đang chờ yêu cầu thử thách…</string>
|
||||
<string name="search_filters">Bộ lọc tìm kiếm</string>
|
||||
<string name="education_advanced_unlock_title">Đang mở khóa cơ sở dữ liệu thiết bị</string>
|
||||
<string name="current_group">Nhóm hiện tại</string>
|
||||
<string name="auto_type_sequence">Trình tự nhập tự động</string>
|
||||
<string name="word_separator">Dấu phân cách</string>
|
||||
<string name="waiting_challenge_response">Chờ phản hồi thử thách…</string>
|
||||
<string name="wireless">Wi-Fi</string>
|
||||
<string name="hide_expired_entries_title">Ẩn các mục đã hết hạn</string>
|
||||
<string name="show_entry_colors_summary">Hiển thị màu nền trước và nền sau cho một mục nhập</string>
|
||||
<string name="icon_pack_choose_summary">Gói biểu tượng được sử dụng trong ứng dụng</string>
|
||||
<string name="content_description_database_color">Màu cơ sở dữ liệu</string>
|
||||
<string name="character_count">Số ký tự: %1$d</string>
|
||||
<string name="unit_byte">B</string>
|
||||
<string name="unit_mebibyte">MiB</string>
|
||||
<string name="upper_case">CHỮ HOA</string>
|
||||
<string name="error_no_hardware_key">Chọn một khóa phần cứng.</string>
|
||||
<string name="icon_pack_choose_title">Bộ biểu tượng</string>
|
||||
<string name="keyboard_notification_entry_title">Thông tin thông báo</string>
|
||||
<string name="keyboard_setting_label">Cài đặt Magikeyboard</string>
|
||||
<string name="keyboard_selection_entry_summary">Khi xem một mục trong KeePassDX, hãy điền Magikeyboard với mục đó</string>
|
||||
<string name="download_finalization">Đang hoàn thiện…</string>
|
||||
<string name="keyboard_notification_entry_summary">Hiển thị thông báo khi mục nhập có sẵn</string>
|
||||
<string name="keyboard_entry_category">Mục</string>
|
||||
<string name="keyboard_save_search_info_title">Lưu thông tin được chia sẻ</string>
|
||||
</resources>
|
||||
@@ -540,15 +540,15 @@
|
||||
<string name="error_remove_file">删除文件数据时发生了一个错误。</string>
|
||||
<string name="error_duplicate_file">文件数据已存在。</string>
|
||||
<string name="properties">属性</string>
|
||||
<string name="error_export_app_properties">导出应用配置时出错</string>
|
||||
<string name="success_export_app_properties">已导出应用配置</string>
|
||||
<string name="error_import_app_properties">导入应用配置时出错</string>
|
||||
<string name="success_import_app_properties">已导入应用配置</string>
|
||||
<string name="error_export_app_properties">导出应用设置期间出错</string>
|
||||
<string name="success_export_app_properties">已导出应用设置</string>
|
||||
<string name="error_import_app_properties">导入应用设置期间出错</string>
|
||||
<string name="success_import_app_properties">已导入应用设置</string>
|
||||
<string name="description_app_properties">管理应用设置的 KeePassDX 配置</string>
|
||||
<string name="export_app_properties_summary">创建一个文件以导出应用配置</string>
|
||||
<string name="export_app_properties_title">导出配置</string>
|
||||
<string name="import_app_properties_summary">选择一个文件以导入应用配置</string>
|
||||
<string name="import_app_properties_title">导入配置</string>
|
||||
<string name="export_app_properties_summary">创建文件来导出应用设置</string>
|
||||
<string name="export_app_properties_title">导出应用设置</string>
|
||||
<string name="import_app_properties_summary">选择一个文件来导入应用设置</string>
|
||||
<string name="import_app_properties_title">导入应用设置</string>
|
||||
<string name="error_start_database_action">对数据库执行操作时发生了一个错误。</string>
|
||||
<string name="error_move_group_here">你不能把一个组移动到此处。</string>
|
||||
<string name="error_word_reserved">这个单词是保留的,不能使用。</string>
|
||||
|
||||
@@ -454,7 +454,7 @@
|
||||
<string name="biometric_delete_all_key_title">Delete encryption keys</string>
|
||||
<string name="biometric_delete_all_key_summary">Delete all encryption keys related to device unlock recognition</string>
|
||||
<string name="advanced_unlock_delete_all_key_warning">Delete all encryption keys related to device 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="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.\n\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_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>
|
||||
@@ -730,4 +730,4 @@
|
||||
<string name="show_entry_colors_summary">Displays foreground and background colors for an entry</string>
|
||||
<string name="hide_expired_entries_title">Hide expired entries</string>
|
||||
<string name="hide_expired_entries_summary">Expired entries are not shown</string>
|
||||
</resources>
|
||||
</resources>
|
||||
|
||||
@@ -50,7 +50,7 @@ object OtpEntryFields {
|
||||
private const val COUNTER_URL_PARAM = "counter"
|
||||
|
||||
// OTPauth URI
|
||||
private const val REGEX_OTP_AUTH = "^(?:otpauth://([ht]otp)/)(?:(?:([^:?#]*): *)?([^:?#]*))(?:\\?([^#]+))$"
|
||||
private const val REGEX_OTP_AUTH = "^otpauth://([ht]otp)/?(?:([^:?#]*): *)?([^:?#]*)\\?([^#]+)$"
|
||||
|
||||
// Key-values (maybe from plugin or old KeePassXC)
|
||||
private const val SEED_KEY = "key"
|
||||
@@ -140,7 +140,7 @@ object OtpEntryFields {
|
||||
*/
|
||||
private fun parseOTPUri(getField: (id: String) -> String?, otpElement: OtpElement): Boolean {
|
||||
val otpPlainText = getField(OTP_FIELD)
|
||||
if (otpPlainText != null && otpPlainText.isNotEmpty() && isOTPUri(otpPlainText)) {
|
||||
if (!otpPlainText.isNullOrEmpty() && isOTPUri(otpPlainText)) {
|
||||
val uri = Uri.parse(otpPlainText.removeSpaceChars())
|
||||
|
||||
if (uri.scheme == null || OTP_SCHEME != uri.scheme!!.lowercase(Locale.ENGLISH)) {
|
||||
@@ -171,7 +171,7 @@ object OtpEntryFields {
|
||||
}
|
||||
|
||||
val nameParam = validateAndGetNameInPath(uri.path)
|
||||
if (nameParam != null && nameParam.isNotEmpty()) {
|
||||
if (!nameParam.isNullOrEmpty()) {
|
||||
val userIdArray = nameParam.split(":", "%3A")
|
||||
if (userIdArray.size > 1) {
|
||||
otpElement.issuer = userIdArray[0].removeLineChars()
|
||||
@@ -182,11 +182,11 @@ object OtpEntryFields {
|
||||
}
|
||||
|
||||
val issuerParam = uri.getQueryParameter(ISSUER_URL_PARAM)
|
||||
if (issuerParam != null && issuerParam.isNotEmpty())
|
||||
if (!issuerParam.isNullOrEmpty())
|
||||
otpElement.issuer = issuerParam.removeLineChars()
|
||||
|
||||
val secretParam = uri.getQueryParameter(SECRET_URL_PARAM)
|
||||
if (secretParam != null && secretParam.isNotEmpty()) {
|
||||
if (!secretParam.isNullOrEmpty()) {
|
||||
try {
|
||||
otpElement.setBase32Secret(secretParam)
|
||||
} catch (exception: Exception) {
|
||||
@@ -195,11 +195,11 @@ object OtpEntryFields {
|
||||
}
|
||||
|
||||
val encoderParam = uri.getQueryParameter(ENCODER_URL_PARAM)
|
||||
if (encoderParam != null && encoderParam.isNotEmpty())
|
||||
if (!encoderParam.isNullOrEmpty())
|
||||
otpElement.tokenType = OtpTokenType.getFromString(encoderParam)
|
||||
|
||||
val digitsParam = uri.getQueryParameter(DIGITS_URL_PARAM)
|
||||
if (digitsParam != null && digitsParam.isNotEmpty())
|
||||
if (!digitsParam.isNullOrEmpty())
|
||||
try {
|
||||
otpElement.digits = digitsParam.toIntOrNull() ?: OTP_DEFAULT_DIGITS
|
||||
} catch (exception: Exception) {
|
||||
@@ -208,7 +208,7 @@ object OtpEntryFields {
|
||||
}
|
||||
|
||||
val counterParam = uri.getQueryParameter(COUNTER_URL_PARAM)
|
||||
if (counterParam != null && counterParam.isNotEmpty())
|
||||
if (!counterParam.isNullOrEmpty())
|
||||
try {
|
||||
otpElement.counter = counterParam.toLongOrNull() ?: HOTP_INITIAL_COUNTER
|
||||
} catch (exception: Exception) {
|
||||
@@ -217,7 +217,7 @@ object OtpEntryFields {
|
||||
}
|
||||
|
||||
val stepParam = uri.getQueryParameter(PERIOD_URL_PARAM)
|
||||
if (stepParam != null && stepParam.isNotEmpty())
|
||||
if (!stepParam.isNullOrEmpty())
|
||||
try {
|
||||
otpElement.period = stepParam.toIntOrNull() ?: TOTP_DEFAULT_PERIOD
|
||||
} catch (exception: Exception) {
|
||||
@@ -226,7 +226,7 @@ object OtpEntryFields {
|
||||
}
|
||||
|
||||
val algorithmParam = uri.getQueryParameter(ALGORITHM_URL_PARAM)
|
||||
if (algorithmParam != null && algorithmParam.isNotEmpty()) {
|
||||
if (!algorithmParam.isNullOrEmpty()) {
|
||||
otpElement.algorithm = HashAlgorithm.fromString(algorithmParam)
|
||||
}
|
||||
|
||||
@@ -253,12 +253,12 @@ object OtpEntryFields {
|
||||
}
|
||||
}
|
||||
val issuer =
|
||||
if (title != null && title.isNotEmpty())
|
||||
if (!title.isNullOrEmpty())
|
||||
encodeParameter(title)
|
||||
else
|
||||
encodeParameter(otpElement.issuer)
|
||||
val accountName =
|
||||
if (username != null && username.isNotEmpty())
|
||||
if (!username.isNullOrEmpty())
|
||||
encodeParameter(username)
|
||||
else
|
||||
encodeParameter(otpElement.name)
|
||||
@@ -324,7 +324,7 @@ object OtpEntryFields {
|
||||
|
||||
private fun parseTOTPKeyValues(getField: (id: String) -> String?, otpElement: OtpElement): Boolean {
|
||||
val plainText = getField(OTP_FIELD)
|
||||
if (plainText != null && plainText.isNotEmpty()) {
|
||||
if (!plainText.isNullOrEmpty()) {
|
||||
if (Pattern.matches(validKeyValueRegex, plainText)) {
|
||||
return try {
|
||||
// KeeOtp string format
|
||||
@@ -353,7 +353,7 @@ object OtpEntryFields {
|
||||
val settingsField = getField(TOTP_SETTING_FIELD)
|
||||
if (settingsField != null) {
|
||||
// Regex match, sync with shortNameToEncoder
|
||||
val pattern = Pattern.compile("(\\d+);((?:\\d+)|S)")
|
||||
val pattern = Pattern.compile("(\\d+);(\\d+|S)")
|
||||
val matcher = pattern.matcher(settingsField)
|
||||
if (!matcher.matches()) {
|
||||
// malformed
|
||||
@@ -407,9 +407,9 @@ object OtpEntryFields {
|
||||
}
|
||||
// path is "/name", so remove leading "/", and trailing white spaces
|
||||
val name = path.substring(1).trim { it <= ' ' }
|
||||
return if (name.isEmpty()) {
|
||||
return name.ifEmpty {
|
||||
null
|
||||
} else name
|
||||
}
|
||||
}
|
||||
|
||||
private fun breakDownKeyValuePairs(pairs: String): HashMap<String, String> {
|
||||
|
||||
@@ -18,11 +18,11 @@ platform :android do
|
||||
gradle(task: "test")
|
||||
end
|
||||
|
||||
desc "Build a new Beta version"
|
||||
lane :build_beta do |options|
|
||||
desc "Build a new version"
|
||||
lane :build do |options|
|
||||
gradle(
|
||||
task: "assemble",
|
||||
flavor: "free",
|
||||
flavor: options[:flavor],
|
||||
build_type: "Release",
|
||||
print_command: false,
|
||||
properties: {
|
||||
@@ -33,8 +33,14 @@ platform :android do
|
||||
}
|
||||
)
|
||||
sh("mkdir", "-p", "../releases")
|
||||
@releaseFile = "../releases/KeePassDX-" + android_get_version_name + ".apk"
|
||||
sh("cp", "../app/build/outputs/apk/free/release/app-free-release.apk", @releaseFile)
|
||||
@releaseFile = "../releases/KeePassDX-" + android_get_version_name + "-" + options[:flavor] + ".apk"
|
||||
sh("cp", "../app/build/outputs/apk/" + options[:flavor] + "/release/app-" + options[:flavor] + "-release.apk", @releaseFile)
|
||||
end
|
||||
|
||||
desc "Build each flavor and create release"
|
||||
lane :build_release do |options|
|
||||
build(flavor: "free", storefile: options[:storefile], storepass: options[:storepass], keyalias: options[:keyalias], keypass: options[:keypass])
|
||||
build(flavor: "libre", storefile: options[:storefile], storepass: options[:storepass], keyalias: options[:keyalias], keypass: options[:keypass])
|
||||
sh("./releaseDescGenerator.sh", android_get_version_code, android_get_version_name)
|
||||
end
|
||||
|
||||
|
||||
@@ -23,13 +23,21 @@ For _fastlane_ installation instructions, see [Installing _fastlane_](https://do
|
||||
|
||||
Runs all the tests
|
||||
|
||||
### android build_beta
|
||||
### android build
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane android build_beta
|
||||
[bundle exec] fastlane android build
|
||||
```
|
||||
|
||||
Build a new Beta version
|
||||
Build a new version
|
||||
|
||||
### android build_release
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane android build_release
|
||||
```
|
||||
|
||||
Build each flavor and create release
|
||||
|
||||
### android deploy_beta_free
|
||||
|
||||
|
||||
1
fastlane/metadata/android/en-US/changelogs/125.txt
Normal file
1
fastlane/metadata/android/en-US/changelogs/125.txt
Normal file
@@ -0,0 +1 @@
|
||||
* Fix Autofill with API 33
|
||||
5
fastlane/metadata/android/en-US/changelogs/126.txt
Normal file
5
fastlane/metadata/android/en-US/changelogs/126.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
* Fix "Save as" in Read Only mode #1666
|
||||
* Fix username autofill #1665 #530 #1572 #1426 #1523 #1556 #1653 #1658 #1508 #1667
|
||||
* Fix regex OTP recognition #1596
|
||||
* Change password color dynamically #1490
|
||||
* Small fixes #1641 #1656 #1649 #1400 #1674
|
||||
3
fastlane/metadata/android/en-US/changelogs/127.txt
Normal file
3
fastlane/metadata/android/en-US/changelogs/127.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
* Fix form filled recognition #1572 #1677
|
||||
* Fix device unlock #1682
|
||||
* Fix password color #1490
|
||||
1
fastlane/metadata/android/fr-FR/changelogs/125.txt
Normal file
1
fastlane/metadata/android/fr-FR/changelogs/125.txt
Normal file
@@ -0,0 +1 @@
|
||||
* Correction de l'Autofill avec l'API 33
|
||||
5
fastlane/metadata/android/fr-FR/changelogs/126.txt
Normal file
5
fastlane/metadata/android/fr-FR/changelogs/126.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
* Correction "Sauvegarder comme" en mode lecture seule #1666
|
||||
* Correction du nom d'utilisateur dans la reconnaissance automatique #1665 #530 #1572 #1426 #1523 #1556 #1653 #1658 #1508 #1667
|
||||
* Correction de la regex de reconnaissance OTP #1596
|
||||
* Changement de couleur de mot passe dynamique #1490
|
||||
* Petites corrections #1641 #1656 #1649 #1400 #1674
|
||||
3
fastlane/metadata/android/fr-FR/changelogs/127.txt
Normal file
3
fastlane/metadata/android/fr-FR/changelogs/127.txt
Normal file
@@ -0,0 +1,3 @@
|
||||
* Correction de la reconnaissance de formulaire #1572 #1677
|
||||
* Correction du déblocage de l'appareil #1682
|
||||
* Correction de la couleur de mot de passe #1490
|
||||
@@ -3,12 +3,20 @@
|
||||
# $1 versionCode
|
||||
# $2 version Name
|
||||
CHANGELOGPATH="./metadata/android/en-US/changelogs/$1.txt"
|
||||
PACKAGEPATH="../releases/KeePassDX-$2.apk"
|
||||
RELEASEDESCPATH="../releases/KeePassDX-$2_desc"
|
||||
PACKAGEFREEPATH="../releases/KeePassDX-$2-free.apk"
|
||||
PACKAGELIBREPATH="../releases/KeePassDX-$2-libre.apk"
|
||||
RELEASEDESCPATH="../releases/KeePassDX-$2-desc"
|
||||
|
||||
echo "$(<$CHANGELOGPATH)" $'\n' >> $RELEASEDESCPATH
|
||||
# Checksum
|
||||
echo "MD5 : $(md5sum $PACKAGEPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "SHA1 : $(sha1sum $PACKAGEPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "SHA256 : $(sha256sum $PACKAGEPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "CRC32 : $(crc32 $PACKAGEPATH)" >> $RELEASEDESCPATH
|
||||
# Checksum Free
|
||||
echo "Build Free" >> $RELEASEDESCPATH
|
||||
echo "MD5 : $(md5sum $PACKAGEFREEPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "SHA1 : $(sha1sum $PACKAGEFREEPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "SHA256 : $(sha256sum $PACKAGEFREEPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "CRC32 : $(crc32 $PACKAGEFREEPATH)" >> $RELEASEDESCPATH
|
||||
# Checksum Libre
|
||||
echo $'\n'"Build Libre" >> $RELEASEDESCPATH
|
||||
echo "MD5 : $(md5sum $PACKAGELIBREPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "SHA1 : $(sha1sum $PACKAGELIBREPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "SHA256 : $(sha256sum $PACKAGELIBREPATH | cut -d ' ' -f 1)" >> $RELEASEDESCPATH
|
||||
echo "CRC32 : $(crc32 $PACKAGELIBREPATH)" >> $RELEASEDESCPATH
|
||||
|
||||
Reference in New Issue
Block a user