diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e7868c10b..97ecd5685b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,41 @@ # Changelog +## 2.5.2 (2020-01-04) + +### Added + +- Browser: Show UI warning when entering invalid URLs [#3912] +- Browser: Option to use an entry only for HTTP auth [#3927] + +### Changed + +- Disable the user interface when merging or saving the database [#3991] +- Ability to hide protected attribute after reveal [#3877] +- Remove mention of "snaps" in Windows and macOS [#3879] +- CLI: Merge parameter for source database key file (--key-file-from) [#3961] +- Improve GUI tests reliability on Hi-DPI displays [#4075] +- Disable deprecation warnings to allow building with Qt 5.14+ [#4075] +- OPVault: Use 'otp' attribute for TOTP field imports [#4075] + +### Fixed + +- Fix crashes when saving a database to cloud storage [#3991] +- Fix crash when pressing enter twice while opening database [#3885] +- Fix handling of HTML when displayed in the entry preview panel [#3910] +- Fix start minimized to tray on Linux [#3899] +- Fix Auto Open with key file only databases [#4075] +- Fix escape key closing the standalone password generator [#3892] +- macOS: Fix monospace font usage in password field and notes [#4075] +- macOS: Fix building on macOS 10.9 to 10.11 [#3946] +- Fix TOTP setup dialog not closing on database lock [#4075] +- Browser: Fix condition where additional URLs are ignored [#4033] +- Browser: Fix subdomain matching to return only relevant site entries [#3854] +- Secret Service: Fix multiple crashes and incompatibilities [#3871, #4009, #4074] +- Secret Service: Fix searching of entries [#4008, #4036] +- Secret Service: Fix behavior when exposed group is recycled [#3914] +- CLI: Release the database instance before exiting interactive mode [#3889] +- Fix (most) memory leaks in tests [#3922] + ## 2.5.1 (2019-11-11) ### Added diff --git a/CMakeLists.txt b/CMakeLists.txt index 32f7611ab9..c2f9b5bfe8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ endif (CCACHE_FOUND) # Support Visual Studio Code include(CMakeToolsHelpers OPTIONAL) +include(FeatureSummary) include(CheckCCompilerFlag) include(CheckCXXCompilerFlag) @@ -94,7 +95,7 @@ endif() set(KEEPASSXC_VERSION_MAJOR "2") set(KEEPASSXC_VERSION_MINOR "5") -set(KEEPASSXC_VERSION_PATCH "1") +set(KEEPASSXC_VERSION_PATCH "2") set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}") set(OVERRIDE_VERSION "" CACHE STRING "Override the KeePassXC Version for Snapshot builds") @@ -299,6 +300,9 @@ endif() if(WITH_DEV_BUILD) add_definitions(-DQT_DEPRECATED_WARNINGS -DGCRYPT_NO_DEPRECATED) +else() + add_definitions(-DQT_NO_DEPRECATED_WARNINGS) + add_gcc_compiler_cxxflags("-Wno-deprecated-declarations") endif() if(MINGW) @@ -465,8 +469,6 @@ endif() include_directories(SYSTEM ${GCRYPT_INCLUDE_DIR} ${ZLIB_INCLUDE_DIR}) -include(FeatureSummary) - add_subdirectory(src) add_subdirectory(share) if(WITH_TESTS) diff --git a/COPYING b/COPYING index 9bfd33539a..fe7d02f3eb 100644 --- a/COPYING +++ b/COPYING @@ -248,3 +248,8 @@ Comment: from Freedesktop.org website Files: share/icons/application/32x32/actions/statistics.png Copyright: Icon made by Freepik from https://www.flaticon.com/free-icon/bars-chart_265733 + +Files: share/icons/application/scalable/actions/object-locked.svg + share/icons/application/scalable/actions/object-unlocked.svg +License: LGPL-3 +Comment: from Breeze icon theme (https://github.com/KDE/breeze-icons) diff --git a/INSTALL.md b/INSTALL.md index e82fb53b17..e11344eedb 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -150,9 +150,15 @@ You can create a package to redistribute KeePassXC (zip, deb, rpm, dmg, etc..). Testing ======= -You can perform test on the executable +You can perform tests on the built executables with: ``` -make test +make test ARGS+="--output-on-failure" +``` + +If you are not currently running on an X Server or Wayland, run the tests as follows: +``` +make test ARGS+="-E test\(cli\|gui\) --output-on-failure" +xvfb-run -e errors -a --server-args="-screen 0 1024x768x24" make test ARGS+="-R test\(cli\|gui\) --output-on-failure" ``` Common parameters: diff --git a/share/docs/man/keepassxc-cli.1 b/share/docs/man/keepassxc-cli.1 index bcc97efaea..2be6b198ac 100644 --- a/share/docs/man/keepassxc-cli.1 +++ b/share/docs/man/keepassxc-cli.1 @@ -117,7 +117,7 @@ Displays the program version. .IP "-d, --dry-run " Prints the changes detected by the merge operation without making any changes to the database. -.IP "-f, --key-file-from " +.IP "--key-file-from " Sets the path of the key file for the second database. .IP "--no-password-from" diff --git a/share/icons/application/scalable/actions/object-locked.svg b/share/icons/application/scalable/actions/object-locked.svg new file mode 100644 index 0000000000..090e038c0b --- /dev/null +++ b/share/icons/application/scalable/actions/object-locked.svg @@ -0,0 +1,14 @@ + + + + + + diff --git a/share/icons/application/scalable/actions/object-unlocked.svg b/share/icons/application/scalable/actions/object-unlocked.svg new file mode 100644 index 0000000000..f6c53e5816 --- /dev/null +++ b/share/icons/application/scalable/actions/object-unlocked.svg @@ -0,0 +1,15 @@ + + + + + + diff --git a/share/linux/org.keepassxc.KeePassXC.appdata.xml b/share/linux/org.keepassxc.KeePassXC.appdata.xml index 9d3f76d874..e1fe399364 100644 --- a/share/linux/org.keepassxc.KeePassXC.appdata.xml +++ b/share/linux/org.keepassxc.KeePassXC.appdata.xml @@ -50,6 +50,37 @@ + + +
    +
  • Browser: Show UI warning when entering invalid URLs [#3912]
  • +
  • Browser: Option to use an entry only for HTTP auth [#3927]
  • +
  • Disable the user interface when merging or saving the database [#3991]
  • +
  • Ability to hide protected attribute after reveal [#3877]
  • +
  • Remove mention of "snaps" in Windows and macOS [#3879]
  • +
  • CLI: Merge parameter for source database key file (--key-file-from) [#3961]
  • +
  • Improve GUI tests reliability on Hi-DPI displays [#4075]
  • +
  • Disable deprecation warnings to allow building with Qt 5.14+ [#4075]
  • +
  • OPVault: Use 'otp' attribute for TOTP field imports [#4075]
  • +
  • Fix crashes when saving a database to cloud storage [#3991]
  • +
  • Fix crash when pressing enter twice while opening database [#3885]
  • +
  • Fix handling of HTML when displayed in the entry preview panel [#3910]
  • +
  • Fix start minimized to tray on Linux [#3899]
  • +
  • Fix Auto Open with key file only databases [#4075]
  • +
  • Fix escape key closing the standalone password generator [#3892]
  • +
  • macOS: Fix monospace font usage in password field and notes [#4075]
  • +
  • macOS: Fix building on macOS 10.9 to 10.11 [#3946]
  • +
  • Fix TOTP setup dialog not closing on database lock [#4075]
  • +
  • Browser: Fix condition where additional URLs are ignored [#4033]
  • +
  • Browser: Fix subdomain matching to return only relevant site entries [#3854]
  • +
  • Secret Service: Fix multiple crashes and incompatibilities [#3871, #4009, #4074]
  • +
  • Secret Service: Fix searching of entries [#4008, #4036]
  • +
  • Secret Service: Fix behavior when exposed group is recycled [#3914]
  • +
  • CLI: Release the database instance before exiting interactive mode [#3889]
  • +
  • Fix (most) memory leaks in tests [#3922]
  • +
+
+
    diff --git a/share/translations/keepassx_ar.ts b/share/translations/keepassx_ar.ts index 3fe988b88e..7c1b015feb 100644 --- a/share/translations/keepassx_ar.ts +++ b/share/translations/keepassx_ar.ts @@ -23,7 +23,7 @@ <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> - <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">إستكشاف المساهمين عبر GitHub</a> + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">إستكشاف المساهمات عبر GitHub</a> Debug Info @@ -43,7 +43,7 @@ Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - شكر خاص من فريق KeePassXC يذهب إلى debfx لإنشاء KeePassX الأصلي. + شكر خاص من فريق KeePassXC إلى debfx لإنشاء KeePassX الأصلي. @@ -77,23 +77,23 @@ Icon only - + الأيقونة فقط Text only - + الوصف بالكلمات فقط Text beside icon - + وصف حرفي بجانب الأيقونة Text under icon - + الوصف أسفل الأيقونة Follow style - + تابع النمط Reset Settings? @@ -101,7 +101,7 @@ Are you sure you want to reset all general and security settings to default? - + هل أنت متأكد من رغبتك في إعادة جميع الإعدادات العامة وإعدادات الأمن الى وضعها النمطي الأولي ؟ @@ -116,7 +116,7 @@ Start only a single instance of KeePassXC - شغل تطبيق واحد فقط من KeePassXC + شغل نسخة واحدة فقط من تطبيق KeePassXC Minimize window at application startup @@ -132,7 +132,7 @@ Backup database file before saving - إحتفظ بنسخة من ملف قاعدة البيانات قبل الحفظ + عمل نسخة إحتياطية من ملف قاعدة البيانات قبل الحفظ Automatically save after every change @@ -152,15 +152,15 @@ Entry Management - إدارة الإدخالات + إدارة ادخال البيانات Use group icon on entry creation - استخدم رمز المجموعة عند إنشاء الإدخال + استخدم شعار المجموعة عند إنشاء المدخلات Hide the entry preview panel - + إخفاء إستعراض لوحة المدخلات General @@ -168,15 +168,15 @@ Hide toolbar (icons) - + إخفاء شريط العُدد (الأيقونات) Minimize instead of app exit - + تصغيرالتطبيق بدل الخروج منه Show a system tray icon - اظهر أيقونة البرنامج في صينية النظام + اظهار أيقونة البرنامج في شريط واجهة النظام Dark system tray icon @@ -188,7 +188,7 @@ Auto-Type - الطباعة التلقائية + نمط تلقائي Use entry title to match windows for global Auto-Type @@ -200,7 +200,7 @@ Always ask before performing Auto-Type - اسأل دائما قبل تنفيذ الطباعة التلقائية + السؤأل دائما قبل التغيير للنمط التلقائي Global Auto-Type shortcut @@ -213,7 +213,7 @@ ms Milliseconds - مل.ثانية + جزء الثانية Auto-Type start delay @@ -221,15 +221,15 @@ Movable toolbar - + شريط عُدد قابل للتحريك Remember previously used databases - + تذكُر قاعدة البيانات المستخدمة أخيراً Load previously open databases on startup - + عند بدء التشغيل إعادة فتح قواعد البيانات التي مفتوحة سابقاً Remember database key files and security dongles @@ -237,7 +237,7 @@ Check for updates at application startup once per week - + فحص وجود تحديثات للبرامج عند بدء تشغيل التطبيق مرة واحدة في الأسبوع Include beta releases when checking for updates @@ -249,39 +249,39 @@ Language: - + اللغة (restart program to activate) - + ( للتفعيل يرجى إعادة التشغيل ) Minimize window after unlocking database - + تصغيرنافذة التطبيق بعد فتح قاعدة البيانات Minimize when opening a URL - + تصغير البرنامج عند فتح رابط URL من النت Hide window when copying to clipboard - + إخفاء نافذة البرنامج عند النسخ الى الحافظة Minimize - + تصغير Drop to background - + الإرجاع الى الخلفية Favicon download timeout: - + فوت الوقت لتنزيل أيقونة الشعارالمفضل Website icon download timeout in seconds - + الزمن بالثانية لفوت الإتصال لتنزيل أيقونة الموقع sec @@ -290,38 +290,39 @@ Toolbar button style - + نمط مفاتيح شريط العُدد Use monospaced font for Notes - + إستخدام بنط ذا مسافات أحادية في الملاحظات Language selection - + إختيار اللغة Reset Settings to Default - + إعادة الإعدادات الى وضعها الأولي Global auto-type shortcut - + المختصر الى النمط-التلقائي العمومي Auto-type character typing delay milliseconds - + تأخيرالطباعة لأحرف النمط-التلقائي + بأجزاء الثانية Auto-type start delay milliseconds - + تأخير بدء النمط-التلقائي بأجزاء الثانية ApplicationSettingsWidgetSecurity Timeouts - مهلة نفاد الوقت + نفاذ الوقت Clear clipboard after @@ -334,11 +335,11 @@ Lock databases after inactivity of - أغلق قواعد البيانات بعد حالة عدم النشاط ل + أغلق قواعد البيانات بعد حالة عدم النشاط لـ min - + دقيقة Forget TouchID after inactivity of @@ -354,7 +355,7 @@ Forget TouchID when session is locked or lid is closed - + إنسى هوية البصمة عند قفل حصة التفاعل أو عند إغلاق الشاشة Lock databases after minimizing the window @@ -362,7 +363,7 @@ Re-lock previously locked database after performing Auto-Type - أعد قفل قاعدة البيانات التي تم تأمينها سابقًا بعد تنفيذ الطباعة التلقائية + أعد قفل قاعدة البيانات التي تم تأمينها سابقًا بعدالتغيير للنمط التلقائي Don't require password repeat when it is visible @@ -370,15 +371,15 @@ Don't hide passwords when editing them - + لا تخفي كلمات السر عند تعديلها Don't use placeholder for empty password fields - + لا تستعمل محددات أقواس أو مزدوجات لحقول كلمات السر الفارغة Hide passwords in the entry preview panel - + اخفي كلمات السر في لوحة إستعراض المدخلات Hide entry notes by default @@ -390,28 +391,28 @@ Use DuckDuckGo service to download website icons - + استعمل خدمة DuckDuckGo لتنزيل أيقونات مواقع الإنترنت Clipboard clear seconds - + مسح لوحة الحفظ بالثواني Touch ID inactivity reset - + المهلة الزمنية لعدم التفاعل لنسيان هوية البصمة Database lock timeout seconds - + المهلة الزنسة لقفل قواعد البيانات min Minutes - + دقيقة Clear search query after - + مسح محددات البحث بعد مضي @@ -446,11 +447,12 @@ Permission Required - + إذن السماح مطلوب KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC يطلب إذن السماح بالدخول لإنجاز التغييرات المبدئية وفق النمط-التلقائي . إذا كنت قد أعطيت الإذن بالسماح + فقد يستوجب منك ذلك إعادة تشغيل KeePassXC @@ -491,18 +493,18 @@ AutoTypeMatchView Copy &username - نسخ &اسم المستخدم + نسخ و اسم المستخدم Copy &password - + نسخ و كلمة السر AutoTypePlatformMac Permission Required - + إذن السماح مطلوب KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. @@ -513,11 +515,11 @@ AutoTypeSelectDialog Auto-Type - KeePassXC - الطباعة التلقائية - KeePassXC + النمط التلقائي - KeePassXC Select entry to Auto-Type: - حدد مدخل للطباعة التلقائية: + إختيار مدخلات الى النمط التلقائي: Search... @@ -550,31 +552,32 @@ Please select whether you want to allow access. Allow access - + أسمح بالدخول Deny access - + أمنع الدخول BrowserEntrySaveDialog KeePassXC-Browser Save Entry - + متصفح KeePassXC إحفظ المدخلات Ok - + تمام Cancel - ألغ + ألغاء You have multiple databases open. Please select the correct database for saving credentials. - + لديك العديد من قواعد البيانات مفتوحة +الرجاء إختيار قاعدة البيانات الصحيحة لحفظ المسوغات @@ -597,19 +600,19 @@ Please select the correct database for saving credentials. &Google Chrome - &Google Chrome + &قوقل كروم &Firefox - &Firefox + &فايرفوكس &Chromium - &Chromium + &كروميوم &Vivaldi - &Vivaldi + &فافيلادي Show a &notification when credentials are requested @@ -713,20 +716,20 @@ Please select the correct database for saving credentials. &Tor Browser - + متصفح تور Executable Files - + ملفات برامج All Files - + جميع الملفات Do not ask permission for HTTP &Basic Auth An extra HTTP Basic Auth setting - + لا تطلب الإذن لصفحات النترنت العادية HTTP& و عند الإذن الأساسي Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 @@ -742,7 +745,7 @@ Please select the correct database for saving credentials. &Brave - + متصفح &Brave Returns expired credentials. String [expired] is added to the title. @@ -3477,7 +3480,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Ok - + تمام Already Exists @@ -4477,7 +4480,7 @@ We recommend you use the AppImage available on our downloads page. Copy &password - + نسخ و كلمة السر Perform &Auto-Type diff --git a/share/translations/keepassx_ca.ts b/share/translations/keepassx_ca.ts index 056f4b0b03..beadb94e4c 100644 --- a/share/translations/keepassx_ca.ts +++ b/share/translations/keepassx_ca.ts @@ -116,7 +116,7 @@ Start only a single instance of KeePassXC - Obriu només una sola instància del KeePassXC + Obre només una sola instància del KeePassXC Minimize window at application startup @@ -136,7 +136,7 @@ Automatically save after every change - Deseu després de cada canvi de forma automàtica + Desa després de cada canvi de forma automàtica Automatically save on exit @@ -144,11 +144,11 @@ Don't mark database as modified for non-data changes (e.g., expanding groups) - No marqueu la base de dades com a modificada si no han hagut canvis en les dades (per exemple, a l'expandir grups) + No marquis la base de dades com a modificada si no hi han hagut canvis en les dades (per exemple, a l'expandir grups) Automatically reload the database when modified externally - Torneu a carregar automàticament la base de dades quan siga modificada de forma externa + Torna a carregar automàticament la base de dades quan sigui modificada de forma externa Entry Management @@ -334,7 +334,7 @@ Lock databases after inactivity of - Bloquegeu les bases de dades després d'estar inactives per + Bloqueja les bases de dades després d'estar inactives min @@ -350,7 +350,7 @@ Lock databases when session is locked or lid is closed - Bloquegeu les bases de dades quan sessió siga bloquejada o es tanque la tapa + Bloqueja les bases de dades quan la sessió sigui bloquejada o es tanqui la tapa Forget TouchID when session is locked or lid is closed @@ -358,7 +358,7 @@ Lock databases after minimizing the window - Bloquegeu les bases de dades després minimitzar la finestra + Bloqueja les bases de dades després minimitzar la finestra Re-lock previously locked database after performing Auto-Type @@ -411,7 +411,7 @@ Clear search query after - + Elimina la teva cerca després de @@ -434,15 +434,15 @@ This Auto-Type command contains a very long delay. Do you really want to proceed? - + Aquesta ordre de compleció automàtica conté un retard molt llarg. Esteu segur que voleu continuar? This Auto-Type command contains very slow key presses. Do you really want to proceed? - + Aquesta comanda de compleció automàtica conté pulsacions de tecles molt lentes. Esteu segur que voleu continuar? This Auto-Type command contains arguments which are repeated very often. Do you really want to proceed? - + Aquesta comanda de compleció automàtica conté arguments que es repeteixen molt sovint. Esteu segur que voleu continuar? Permission Required @@ -574,7 +574,8 @@ Seleccioneu si voleu permetre l'accés. You have multiple databases open. Please select the correct database for saving credentials. - + Teniu diverses bases de dades obertes. +Seleccioneu la base de dades correcta per desar les credencials. @@ -675,11 +676,11 @@ Please select the correct database for saving credentials. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - + Actualitza la ruta binària de KeePassXC o keepassxc-proxy automàticament als scripts de missatgeria nativa a l'inici. Update &native messaging manifest files at startup - + Actualitza el fitxers de manifest de la missatgeria &nativa a l'inici Support a proxy application between KeePassXC and browser extension. @@ -738,7 +739,7 @@ Please select the correct database for saving credentials. KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2. %3 - + Perquè funcioni la integració del navegador cal el KeePassXC-Browse.<br>Baixeu-lo de %1 i de %2. %3 &Brave @@ -750,7 +751,7 @@ Please select the correct database for saving credentials. &Allow returning expired credentials. - + &Permet el retorn de credencials caducades. Enable browser integration @@ -758,7 +759,7 @@ Please select the correct database for saving credentials. Browsers installed as snaps are currently not supported. - + Actualment, no s'admeten els navegadors instal·lats com a Snaps. All databases connected to the extension will return matching credentials. @@ -1167,7 +1168,7 @@ Please consider generating a new key file. TouchID for Quick Unlock - TouchID per desbloquejar ràpidament + Usa el TouchID per desbloquejar ràpidament Clear @@ -1179,7 +1180,7 @@ Please consider generating a new key file. Unlock failed and no password given - + El desbloqueig ha fallat i no s'ha donat cap contrasenya Unlocking the database failed and you did not enter a password. @@ -1306,7 +1307,7 @@ This may prevent connection to the browser plugin. Enable Browser Integration to access these settings. - + Permet que la integració del navegador accedeixi a aquesta configuració. Disconnect all browsers @@ -1594,7 +1595,7 @@ If you keep this number, your database may be too easy to crack! History Settings - + Configuració de l'historial Max. history items: @@ -1937,7 +1938,7 @@ This is definitely a bug, please report it to the developers. Export database to HTML file - + Exporta la base de dades a un fitxer HTML HTML file @@ -2034,11 +2035,11 @@ Voleu fusionar els canvis? Do you really want to delete %n entry(s) for good? - + Esteu segur que voleu suprimir% n entrades per al Good?Esteu segur que voleu suprimir %n entrada/es permanentment? Delete entry(s)? - + Voleu suprimir les entrades?Voleu suprimir la/es entrada/es? Move entry(s) to recycle bin? @@ -2102,7 +2103,7 @@ Voleu deshabilitar el desat segur i provar-ho un altre cop? Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - + L'entrada "%1" té %2 referències. Voleu sobreescriure les referències amb valors, ometre aquesta entrada o suprimir igualment?L'entrada "%1" té %2 referència/es. Voleu sobreescriure les referències amb valors, ometre aquesta entrada, o suprimir igualment? Delete group @@ -2126,7 +2127,7 @@ Voleu deshabilitar el desat segur i provar-ho un altre cop? Shared group... - + Grup compartit... Writing the database failed: %1 @@ -2181,7 +2182,7 @@ Voleu deshabilitar el desat segur i provar-ho un altre cop? File too large to be a private key - + Fitxer massa gran per ser una clau privada Failed to open private key @@ -2603,7 +2604,7 @@ Voleu deshabilitar el desat segur i provar-ho un altre cop? Remove key from agent when database is closed/locked - + Elimina la clau de l'agent quan la base de dades està tancada/bloquejada Public key @@ -2611,7 +2612,7 @@ Voleu deshabilitar el desat segur i provar-ho un altre cop? Add key to agent when database is opened/unlocked - + Afegeix la clau a l'agent quan la base de dades s'obri o es desbloquegi Comment @@ -2942,7 +2943,7 @@ Supported extensions are: %1. No icons were loaded - + No s'ha carrega cap icona %n icon(s) already exist in the database @@ -2954,7 +2955,7 @@ Supported extensions are: %1. This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it? - + Aquesta icona s'utilitza en% n entrada (s), i serà substituïda per la icona per defecte. Esteu segur que voleu suprimir-la?Aquesta icona s'usa en %n entrada/es, i serà substituïda per la icona per defecte. Esteu segur que voleu suprimir-la? You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security @@ -2970,7 +2971,7 @@ Supported extensions are: %1. Apply icon &to ... - + Usa la &icona a... Apply to this only @@ -3013,7 +3014,7 @@ Supported extensions are: %1. Plugin Data - + Dades del connector Remove @@ -3065,7 +3066,7 @@ This may cause the affected plugins to malfunction. Entry %1 - Clone - + %1 - Clon @@ -3076,7 +3077,7 @@ This may cause the affected plugins to malfunction. Size - + Mida @@ -3111,12 +3112,13 @@ This may cause the affected plugins to malfunction. Save attachments - + Desa els fitxers adjunts Unable to create directory: %1 - + No s'ha pogut crear el directori: +%1 Are you sure you want to overwrite the existing file "%1" with the attachment? @@ -3124,7 +3126,7 @@ This may cause the affected plugins to malfunction. Confirm overwrite - + Confirma la sobreescriptura Unable to save attachments: @@ -3143,7 +3145,7 @@ This may cause the affected plugins to malfunction. Confirm remove - + Confirma l'eliminació Unable to open file(s): @@ -3254,7 +3256,7 @@ This may cause the affected plugins to malfunction. Yes - + TOTP @@ -3329,12 +3331,12 @@ This may cause the affected plugins to malfunction. [PROTECTED] - + [PROTEGIT] <b>%1</b>: %2 attributes line - + <b>%1</b>: %2 Enabled @@ -3346,7 +3348,7 @@ This may cause the affected plugins to malfunction. Share - + Comparteix Display current TOTP value @@ -3361,7 +3363,7 @@ This may cause the affected plugins to malfunction. EntryView Customize View - + Personalitza la visualització Hide Usernames @@ -3373,19 +3375,19 @@ This may cause the affected plugins to malfunction. Fit to window - + Ajusta a la finestra Fit to contents - + Ajusta al contingut Reset to defaults - + Reinicialitza-la als valors predeterminats Attachments (icon) - + Fitxers adjunts (icona) @@ -3419,14 +3421,14 @@ This may cause the affected plugins to malfunction. [empty] group has no children - + [buit] HostInstaller KeePassXC: Cannot save file! - + KeePassXC: no s'ha pogut desar el fitxer! Cannot save the native messaging script file. @@ -3512,19 +3514,19 @@ You can enable the DuckDuckGo website icon service in the security section of th Header doesn't match hash - + La capçalera no coincideix amb el hash Invalid header id size - + Mida de l'id de capçalera no vàlid Invalid header field length - + Longitud del camp de capçalera no vàlid Invalid header data length - + Longitud de dades de la capçalera no vàlida Invalid credentials were provided, please try again. @@ -3567,15 +3569,15 @@ If this reoccurs, then your database file may be corrupt. Invalid header id size - + Mida de l'id de capçalera no vàlid Invalid header field length - + Longitud del camp de capçalera no vàlid Invalid header data length - + Longitud de dades de la capçalera no vàlida Failed to open buffer for KDF parameters in header @@ -3591,7 +3593,7 @@ If this reoccurs, then your database file may be corrupt. Invalid inner header id size - + Mida de l'identificador intern d'encapçalament no vàlida Invalid inner header field length @@ -3793,7 +3795,7 @@ Es tracta d'una migració unidireccional. No obrir la base de dades importa Invalid EnableAutoType value - Valor d'EnableAutoType invàlid + Valor no vàlid de compleció automàtica Invalid EnableSearching value @@ -4071,7 +4073,7 @@ If this reoccurs, then your database file may be corrupt. Exported to %1 - + Exportat a %1 Synchronized with %1 @@ -4079,11 +4081,11 @@ If this reoccurs, then your database file may be corrupt. Import is disabled in settings - + La importació està inhabilitada a la configuració Export is disabled in settings - + L'exportació està deshabilitada a la configuració Inactive share @@ -4095,7 +4097,7 @@ If this reoccurs, then your database file may be corrupt. Exported to - + Exportat a Synchronized with @@ -4410,7 +4412,7 @@ We recommend you use the AppImage available on our downloads page. &Import - + & Importa Copy att&ribute... @@ -4446,11 +4448,11 @@ We recommend you use the AppImage available on our downloads page. &Edit entry - + &Edita l'entrada View or edit entry - + Mostra o edita l'entrada &New group @@ -4466,7 +4468,7 @@ We recommend you use the AppImage available on our downloads page. &Database settings... - + Configuració de la base de &dades... Copy &password @@ -4474,7 +4476,7 @@ We recommend you use the AppImage available on our downloads page. Perform &Auto-Type - Realitza una compleció &automàtic + Fes una compleció &automàtica Open &URL @@ -4490,11 +4492,11 @@ We recommend you use the AppImage available on our downloads page. CSV file... - + Fitxer CSV... Import a CSV file - + Importa un fitxer CSV Show TOTP... @@ -4524,7 +4526,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens &Export - + &Exporta &Check for Updates... @@ -4552,7 +4554,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens &Export to HTML file... - + &Exporta a un fitxer HTML... 1Password Vault... @@ -4560,7 +4562,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Import a 1Password Vault - + Importa un 1Password Vault &Getting Started @@ -4836,7 +4838,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Passphrase is required to decrypt this key - + Cal la frase de contrasenya per desxifrar aquesta clau Key derivation failed, key file corrupted? @@ -4844,7 +4846,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Decryption failed, wrong passphrase? - + El desxifrat ha fallat, la frase de contrasenya és errònia? Unexpected EOF while reading public key @@ -4982,7 +4984,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Exclude look-alike characters - Excloure caràcters d'aspecte semblant + Exclou caràcters d'aspecte similar Pick characters from every group @@ -4994,7 +4996,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Passphrase - Contrasenya + Frase de contrasenya Wordlist: @@ -5150,11 +5152,11 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Upper-case letters - + Lletra majúscula Lower-case letters - + Lletra minúscula Special characters @@ -5170,7 +5172,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Excluded characters - + Caràcters exclosos Hex Passwords @@ -5198,11 +5200,11 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens lower case - + minúscules UPPER CASE - + MAJÚSCULES Title Case @@ -5376,7 +5378,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Edit an entry. - + Edita una entrada. Title for the entry. @@ -5384,11 +5386,11 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens title - + títol Path of the entry to edit. - + Ruta de l'entrada a editar. Estimate the entropy of a password. @@ -5400,7 +5402,7 @@ Podeu esperar alguns errors i incidències menors. Aquesta versió no està pens Perform advanced analysis on the password. - + Fes una anàlisi avançada de la contrasenya. WARNING: You are using a legacy key file format which may become @@ -5530,16 +5532,17 @@ Available commands: Generate a new random diceware passphrase. - + Genera una frase de contrasenya nova amb llançament de daus. Word count for the diceware passphrase. - + Recompte de paraules per a la frase de contrasenya amb llançament de daus. Wordlist for the diceware generator. [Default: EFF English] - + Llista de paraules per al generador de llançament de daus. +[Per defecte: EFF English] Generate a new random password. @@ -5620,7 +5623,7 @@ Available commands: Successfully edited entry %1. - + L'entrada %1 s'ha editat correctament. Length %1 @@ -5728,35 +5731,35 @@ Available commands: Length of the generated password - + Longitud de la contrasenya generada Use lowercase characters - + Usa caràcters en minúscula Use uppercase characters - + Usa caràcters en majúscules Use special characters - + Usa caràcters especials Use extended ASCII - + Usa l'ASCII ampliat Exclude character set - + Exclou el conjunt de caràcters chars - + caràcters Exclude similar looking characters - + Exclou caràcters d'aspecte similar Include characters from every selected group @@ -5790,7 +5793,7 @@ Available commands: Successfully deleted entry %1. - + L'entrada %1 s'ha suprimit correctament. Show the entry's current TOTP. @@ -5810,7 +5813,7 @@ Available commands: file empty - + fitxer buit %1: (row, col) %2,%3 @@ -5818,15 +5821,15 @@ Available commands: AES: 256-bit - + AES: 256-bit Twofish: 256-bit - + Twofish: 256-bit ChaCha20: 256-bit - + ChaCha20:256-bits Argon2 (KDBX 4 – recommended) @@ -5834,21 +5837,21 @@ Available commands: AES-KDF (KDBX 4) - + AES-KDF (KDBX 4) AES-KDF (KDBX 3.1) - + AES-KDF (KDBX 3,1) Invalid Settings TOTP - + La configuració no és vàlida Invalid Key TOTP - + Clau invàlida Message encryption failed. @@ -5860,7 +5863,7 @@ Available commands: Create a new database. - + Crea una nova base de dades. File %1 already exists. @@ -5892,7 +5895,7 @@ Available commands: Path of the entry to remove. - + Ruta de l'entrada a eliminar. Existing single-instance lock file is invalid. Launching new instance. @@ -6100,7 +6103,7 @@ Nucli: %3 %4 Format to use when exporting. Available choices are xml or csv. Defaults to xml. - + Format a utilitzar en l'exportació. Les opcions disponibles són XML o CSV. Per defect s'usa XML. Exports the content of a database to standard output in the specified format. @@ -6348,31 +6351,31 @@ Nucli: %3 %4 SearchHelpWidget Search Help - + Cerca l'ajuda Search terms are as follows: [modifiers][field:]["]term["] - + Els termes de cerca són així: [Modificadors] [camp:] ["] terme ["] Every search term must match (ie, logical AND) - + Cada terme de cerca ha de coincidir (p.e. I lògica) Modifiers - + Modificadors exclude term from results - + exclou el terme dels resultats match term exactly - + el terme ha de coincidir exactament use regex in term - + usa regex al terme Fields @@ -6380,19 +6383,19 @@ Nucli: %3 %4 Term Wildcards - + Comodins match anything - + concorda amb qualsevol cosa match one - + coincideix amb un logical OR - + operador lògic O Examples @@ -6415,7 +6418,7 @@ Nucli: %3 %4 Search Help - + Cerca l'ajuda Search (%1)... @@ -6530,7 +6533,7 @@ Nucli: %3 %4 Own certificate - + Certificat propi Fingerprint: @@ -6538,11 +6541,11 @@ Nucli: %3 %4 Certificate: - + Certificat: Signer - + Signant Key: @@ -6594,7 +6597,7 @@ Nucli: %3 %4 Certificate - + Certificat Trusted @@ -6627,23 +6630,23 @@ Nucli: %3 %4 Exporting changed certificate - + Exportant el certificat modificat The exported certificate is not the same as the one in use. Do you want to export the current certificate? - + El certificat exportat no és el mateix que el que està en ús. Voleu exportar el certificat actual? Signer: - + Signant: Allow KeeShare imports - + Permet les importacions de KeeShare Allow KeeShare exports - + Permet les exportacions de KeeShare Only show warnings and errors @@ -6741,7 +6744,7 @@ Nucli: %3 %4 Import from container with certificate - + Importa des del contenidor amb certificat Do you want to trust %1 with the fingerprint of %2 from %3? @@ -6820,11 +6823,11 @@ Nucli: %3 %4 Export to %1 failed (%2) - + L'exportació a %1 ha fallat (%2) Export to %1 successful (%2) - + L'exportació a %1 s'ha realitzat amb èxit (%2) Export to %1 @@ -6952,7 +6955,7 @@ Example: JBSWY3DPEHPK3PXP Are you sure you want to delete TOTP settings for this entry? - + Esteu segur que voleu suprimir la configuració TOTP de l'entrada? @@ -7038,7 +7041,7 @@ Example: JBSWY3DPEHPK3PXP Import from 1Password - + Importa des de 1Password Open a recent database diff --git a/share/translations/keepassx_da.ts b/share/translations/keepassx_da.ts index 09a74ecb02..5c46b36a9f 100644 --- a/share/translations/keepassx_da.ts +++ b/share/translations/keepassx_da.ts @@ -3462,7 +3462,7 @@ Det kan få de påvirkede plugins til at svigte. IconDownloaderDialog Download Favicons - + Download faviconer Cancel @@ -4556,27 +4556,27 @@ Forvent nogle fejl og mindre problemer. Denne version er ikke beregnet til produ &Export - + &Eksportér &Check for Updates... - + &Søg efter opdateringer ... Downlo&ad all favicons - + &Download alle faviconer Sort &A-Z - + Sortér &A-Å Sort &Z-A - + Sortér &Å-A &Password Generator - + &Adgangskodegenerator Download favicon @@ -4584,19 +4584,19 @@ Forvent nogle fejl og mindre problemer. Denne version er ikke beregnet til produ &Export to HTML file... - + &Eksportér til HTML-fil ... 1Password Vault... - + 1Password-boks ... Import a 1Password Vault - + Importér en 1Password-boks &Getting Started - + &Kom godt i gang Open Getting Started Guide PDF @@ -4604,7 +4604,7 @@ Forvent nogle fejl og mindre problemer. Denne version er ikke beregnet til produ &Online Help... - + &Onlinehjælp ... Go to online documentation (opens browser) @@ -4612,7 +4612,7 @@ Forvent nogle fejl og mindre problemer. Denne version er ikke beregnet til produ &User Guide - + &Brugerguide Open User Guide PDF @@ -4620,7 +4620,7 @@ Forvent nogle fejl og mindre problemer. Denne version er ikke beregnet til produ &Keyboard Shortcuts - + &Tastaturgenveje @@ -7077,7 +7077,7 @@ Example: JBSWY3DPEHPK3PXP Import from 1Password - + Importér fra 1Password Open a recent database diff --git a/share/translations/keepassx_de.ts b/share/translations/keepassx_de.ts index 264653ce31..29b765a6ba 100644 --- a/share/translations/keepassx_de.ts +++ b/share/translations/keepassx_de.ts @@ -574,8 +574,8 @@ Bitte wählen Sie, ob Sie den Zugriff erlauben möchten. You have multiple databases open. Please select the correct database for saving credentials. - Du hast mehrere Datenbanken geöffnet. -Bitte wähle die richtige Datenbank zum speichern der Anmeldedaten. + Sie haben mehrere Datenbanken geöffnet. +Bitte wählen Sie die richtige Datenbank zum Speichern der Anmeldedaten. @@ -1070,7 +1070,7 @@ Sicherungsdatenbank bei %2 Database file has unmerged changes. - Die Datenbankdatei hat Änderungen die noch nicht gemergt wurden. + Die Datenbankdatei hat Änderungen die noch nicht zusammengeführt wurden. Recycle Bin @@ -1217,7 +1217,7 @@ Um zu verhindern, dass dieser Fehler auftritt, müssen Sie zu "Datenbankein <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - <p>Zusätzlich zu ihrem Masterpasswort können sie eine geheime Datei verwenden um die Sicherheit ihrer Datenbank zu erhöhen. Eine solche Datei kann in den Sicherheitseinstellung ihrer Datenbank generiert werden.</p> <p>Diese Datei ist jedoch <strong>nicht</strong> Ihre *.kdbx Datei!<br> Wenn sie keine Schlüsseldatei haben lassen sie das Feld leer.</p> <p>Klicken sie hier für weitere Informationen...</p> + <p>Zusätzlich zu Ihrem Masterpasswort können Sie eine geheime Datei verwenden, um die Sicherheit Ihrer Datenbank zu erhöhen. Eine solche Datei kann in den Sicherheitseinstellungen Ihrer Datenbank generiert werden.</p> <p>Diese Datei ist jedoch <strong>nicht</strong> Ihre *.kdbx-Datei!<br> Wenn Sie keine Schlüsseldatei haben, lassen Sie das Feld leer.</p> <p>Klicken Sie hier für weitere Informationen...</p> Key file help @@ -1331,7 +1331,7 @@ Das wird die Verbindung zum Browser-Plugin verhindern. Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. - Möchtest du wirklich alle Browserverbindungen entfernen? + Möchten Sie wirklich alle Browserverbindungen entfernen? Das wird die Verbindung zu dem Browser-Plugin verhindern. @@ -3094,7 +3094,7 @@ Dies kann dazu führen, dass die jeweiligen Plugins nicht mehr richtig funktioni Entry %1 - Clone - %1 - Kopie + %1 - Klon @@ -3608,7 +3608,7 @@ Falls dies wiederholt passiert, dann könnte Ihre Datenbank beschädigt sein. Invalid header field length - Ungültiger Header-Feldlänge + Ungültige Header-Feldlänge Invalid header data length @@ -4451,8 +4451,8 @@ Diese Version ist nicht für den Produktiveinsatz gedacht. WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard! We recommend you use the AppImage available on our downloads page. - WARNUNG: Deine Qt Version könnte KeePassXC mit einer Bildschirmtastatur zu abstürzen bringen! -Wir empfehlen dir die Verwendung des auf unserer Downloadseite verfügbaren AppImage. + WARNUNG: Ihre Qt Version könnte KeePassXC mit einer Bildschirmtastatur zu abstürzen bringen! +Wir empfehlen Ihnen die Verwendung des auf unserer Downloadseite verfügbaren AppImage. &Import @@ -4665,7 +4665,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins Reapplying older target entry on top of newer source %1 [%2] - Älterer Ziel-Eintrag wird auf neuere Quellen-Eintrag angewendet %1 [%2] + Älterer Ziel-Eintrag wird auf neueren Quellen-Eintrag angewendet %1 [%2] Reapplying older source entry on top of newer target %1 [%2] @@ -4758,7 +4758,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins A master key known only to you protects your database. - Ein nur dir bekannter Schlüssel schützt die Datenbank. + Ein nur Ihnen bekannter Schlüssel schützt die Datenbank. @@ -5287,7 +5287,7 @@ Da sie Fehler beinhalten könnte, ist diese Version nicht für den Produktiveins Empty - Leer + Leeren Remove diff --git a/share/translations/keepassx_en.ts b/share/translations/keepassx_en.ts index dbcf769026..581eeb27c7 100644 --- a/share/translations/keepassx_en.ts +++ b/share/translations/keepassx_en.ts @@ -2340,6 +2340,14 @@ Disable safe saves and try again? Are you sure you want to remove this URL? + + Reveal + Reveal + + + Hide + + EditEntryWidgetAdvanced @@ -2521,6 +2529,14 @@ Disable safe saves and try again? Edit + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + + + + Use this entry only with HTTP Basic Auth + + EditEntryWidgetHistory @@ -3455,6 +3471,13 @@ This may cause the affected plugins to malfunction. Advanced + + EntryURLModel + + Invalid URL + + + EntryView @@ -3508,6 +3531,40 @@ This may cause the affected plugins to malfunction. + + FdoSecrets::SettingsDatabaseModel + + File Name + + + + Group + Group + + + Manage + + + + Unlock to show + + + + None + + + + + FdoSecrets::SettingsSessionModel + + Application + + + + Manage + + + FdoSecretsPlugin @@ -4699,6 +4756,40 @@ Expect some bugs and minor issues, this version is not meant for production use. + + ManageDatabase + + Database settings + Database settings + + + Edit database settings + + + + Unlock database + + + + Unlock database to show more information + + + + Lock database + + + + + ManageSession + + Disconnect + + + + Disconnect this application + + + Merger @@ -6576,18 +6667,6 @@ Kernel: %3 %4 Exposed database groups: - - File Name - - - - Group - Group - - - Manage - - Authorization @@ -6596,42 +6675,6 @@ Kernel: %3 %4 These applications are currently connected: - - Application - - - - Disconnect - - - - Database settings - Database settings - - - Edit database settings - - - - Unlock database - - - - Unlock database to show more information - - - - Lock database - - - - Unlock to show - - - - None - - SettingsWidgetKeeShare @@ -7077,6 +7120,13 @@ Example: JBSWY3DPEHPK3PXP + + URLEdit + + Invalid URL + + + UpdateCheckDialog diff --git a/share/translations/keepassx_es.ts b/share/translations/keepassx_es.ts index e3de941c22..5ffd9701a6 100644 --- a/share/translations/keepassx_es.ts +++ b/share/translations/keepassx_es.ts @@ -73,7 +73,7 @@ Access error for config file %1 - Error de acceso al fichero de configuración %1 + Error de acceso al archivo de configuración %1 Icon only @@ -124,15 +124,15 @@ File Management - Administración de ficheros + Administración de archivos Safely save database files (may be incompatible with Dropbox, etc) - Guardar los ficheros de BB.DD. con seguridad (puede ser incompatible con Dropbox, etcétera) + Guardar los archivos de base de datos con seguridad (puede ser incompatible con Dropbox, etcétera) Backup database file before saving - Hacer una copia de seguridad de la BB.DD. antes de guardar + Hacer una copia de seguridad de la base de datos antes de guardar Automatically save after every change @@ -144,23 +144,23 @@ Don't mark database as modified for non-data changes (e.g., expanding groups) - No marcar la BB.DD. como modificada cuando los cambios no afecten a los datos (ej. expandir grupos) + No marcar la base de datos como modificada cuando los cambios no afecten a los datos (ej. expandir grupos) Automatically reload the database when modified externally - Recargar automáticamente la BB.DD. cuando sea modificada externamente + Recargar automáticamente la base de datos cuando sea modificada externamente Entry Management - Gestión de apunte + Gestión de la entrada Use group icon on entry creation - Utilizar icono del grupo en la creación de apunte + Utilizar icono del grupo en la creación de entrada Hide the entry preview panel - Ocultar apunte del panel de vista previa + Ocultar entrada del panel de vista previa General @@ -188,15 +188,15 @@ Auto-Type - Autoescritura + Autotecleo Use entry title to match windows for global Auto-Type - Utilizar título del apunte para emparejar ventanas en autoescritura global + Utilizar título de la entrada para emparejar ventanas en autoescritura global Use entry URL to match windows for global Auto-Type - Utilizar URL del apunte para emparejar ventanas en autoescritura global + Utilizar URL de la entrada para emparejar ventanas en autoescritura global Always ask before performing Auto-Type @@ -213,7 +213,7 @@ ms Milliseconds - ms + ms Auto-Type start delay @@ -229,11 +229,11 @@ Load previously open databases on startup - Abrir BB.DD. anterior al inicio + Abrir bases de datos anterior al inicio Remember database key files and security dongles - Recordar los últimos ficheros de llaves y los «dongle» de seguridad + Recordar las últimas cerraduras y los «dongle» de seguridad Check for updates at application startup once per week @@ -257,7 +257,7 @@ Minimize window after unlocking database - Minimizar ventana tras desbloquear BB.DD. + Minimizar ventana tras desbloquear base de datos. Minimize when opening a URL @@ -286,7 +286,7 @@ sec Seconds - seg + seg Toolbar button style @@ -330,11 +330,11 @@ sec Seconds - seg + seg Lock databases after inactivity of - Bloquear BB.DD. tras un periodo de inactividad de + Bloquear bases de datos tras un periodo de inactividad de min @@ -350,7 +350,7 @@ Lock databases when session is locked or lid is closed - Bloquear BB.DD. cuando la sesión está bloqueada o la pantalla esté cerrada + Bloquear bases de datos cuando la sesión está bloqueada o la pantalla esté cerrada Forget TouchID when session is locked or lid is closed @@ -358,11 +358,11 @@ Lock databases after minimizing the window - Bloquear BB.DD. al minimizar la ventana + Bloquear bases de datos al minimizar la ventana Re-lock previously locked database after performing Auto-Type - Volver a bloquear la BB.DD. tras realizar una autoescritura + Rebloquear la base de datos tras realizar un autoescritura Don't require password repeat when it is visible @@ -378,11 +378,11 @@ Hide passwords in the entry preview panel - Ocultar contraseñas en apunte del panel de vista previa + Ocultar contraseñas en la entrada del panel de vista previa Hide entry notes by default - Ocultar notas de apunte por defecto + Ocultar notas de la entrada por defecto Privacy @@ -402,7 +402,7 @@ Database lock timeout seconds - Tiempo de espera de bloqueo de BB.DD. en segundos + Tiempo de espera de bloqueo de base de datos en segundos min @@ -418,31 +418,31 @@ AutoType Couldn't find an entry that matches the window title: - No se puede encontrar un apunte que corresponda al título de la ventana: + No se puede encontrar una entrada que corresponda al título de la ventana: Auto-Type - KeePassXC - Autoescritura - KeePassXC + Auto-teclear - KeePassXC Auto-Type - Autoescritura + Auto-Teclear The Syntax of your Auto-Type statement is incorrect! - ¡La sintaxis de la sentencia de su autoescritura es incorrecta! + ¡La sintaxis de la sentencia de su auto-tecleo es incorrecta! This Auto-Type command contains a very long delay. Do you really want to proceed? - Este mandato de autoescritura contiene un retraso muy largo. ¿Desea continuar? + Este mandato de auto-tecleo contiene un retraso muy largo. ¿Desea continuar? This Auto-Type command contains very slow key presses. Do you really want to proceed? - Este mandato de autoescritura contiene pulsaciones de teclas muy lentas. ¿Desea continuar? + Este mandato de auto-tecleo contiene pulsaciones de teclas muy lentas. ¿Desea continuar? This Auto-Type command contains arguments which are repeated very often. Do you really want to proceed? - Este mandato de autoescritura contiene argumentos que se repiten muy a menudo. ¿Realmente desea continuar? + Este mandato de auto-tecleo contiene argumentos que se repiten muy a menudo. ¿Desea continuar? Permission Required @@ -480,7 +480,7 @@ Username - ID Usuario + Usuario Sequence @@ -491,7 +491,7 @@ AutoTypeMatchView Copy &username - Copiar nombre de &usuario + Copiar &usuario Copy &password @@ -513,15 +513,15 @@ AutoTypeSelectDialog Auto-Type - KeePassXC - Autoescritura - KeePassXC + Auto-Tecleo - KeePassXC Select entry to Auto-Type: - Seleccionar apunte para autoescritura: + Seleccionar apunte para auto-teclear: Search... - Buscar... + Buscar… @@ -575,7 +575,7 @@ Seleccione si desea autorizar su acceso. You have multiple databases open. Please select the correct database for saving credentials. Tiene múltiples bases de datos abiertas. -Por favor, seleccione la BB.DD. correcta para guardar las credenciales. +Por favor, seleccione la base de datos correcta para guardar las credenciales. @@ -619,19 +619,19 @@ Por favor, seleccione la BB.DD. correcta para guardar las credenciales. Re&quest to unlock the database if it is locked - Solicitar el desblo&queo de la BB.DD. si se encuentra bloqueada + Solicitar el desblo&queo de la base de datos si se encuentra bloqueada Only entries with the same scheme (http://, https://, ...) are returned. - Sólo se muestran las apuntes con el mismo esquema (http://, https://,...) + Sólo se muestran las entradas con el mismo esquema (http://, https://,...) &Match URL scheme (e.g., https://...) - &Coinciden con el esquema de URL (ej. https://...) + &Coinciden con el esquema de URL (p.e. https://...) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Sólo devolver los resultados similares para una URL específica en vez de todas las apuntes para todo el dominio. + Sólo devolver los resultados similares para una URL específica en vez de todas las entradas para todo el dominio. &Return only best-matching credentials @@ -640,12 +640,12 @@ Por favor, seleccione la BB.DD. correcta para guardar las credenciales. Sort &matching credentials by title Credentials mean login data requested via browser extension - Ordenar las credenciales por &título + Ordenar credenciales por &título Sort matching credentials by &username Credentials mean login data requested via browser extension - Ordenar las credenciales por &usuario + Ordenar credenciales por &usuario Advanced @@ -680,7 +680,7 @@ Por favor, seleccione la BB.DD. correcta para guardar las credenciales. Update &native messaging manifest files at startup - Actualizar ficheros manifiesto de mensajería &nativa al iniciar + Actualizar archivo manifiesto de mensajería &nativa al iniciar Support a proxy application between KeePassXC and browser extension. @@ -702,7 +702,7 @@ Por favor, seleccione la BB.DD. correcta para guardar las credenciales. Browse... Button for opening file dialog - Explorar... + Explorar… <b>Warning:</b> The following options can be dangerous! @@ -718,11 +718,11 @@ Por favor, seleccione la BB.DD. correcta para guardar las credenciales. Executable Files - Ficheros ejecutables + Archivos ejecutables All Files - Todos los ficheros + Todos los archivos Do not ask permission for HTTP &Basic Auth @@ -779,7 +779,7 @@ Por favor, seleccione la BB.DD. correcta para guardar las credenciales. Browser for custom proxy file - Explorar para fichero personalizado proxy + Explorar para archivo personalizado proxy <b>Warning</b>, the keepassxc-proxy application was not found!<br />Please check the KeePassXC installation directory or confirm the custom path in advanced options.<br />Browser integration WILL NOT WORK without the proxy application.<br />Expected Path: %1 @@ -808,7 +808,7 @@ Do you want to overwrite it? KeePassXC: Update Entry - KeePassXC: actualizar apunte + KeePassXC: actualizar entrada Do you want to update the information in %1 - %2? @@ -838,11 +838,11 @@ Movió %2 claves a datos personalizados. KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: ¡no se encontró apunte con los atributos KeePassHTTP! + KeePassXC: ¡no se encontró una entrada con los atributos KeePassHTTP! The active database does not contain an entry with KeePassHTTP attributes. - La BB.DD. activa no contiene un apunte con atributos de KeePassHTTP. + La base de datos activa no contiene una entrada con atributos de KeePassHTTP. KeePassXC: Legacy browser integration settings detected @@ -864,9 +864,9 @@ Do you want to create this group? Your KeePassXC-Browser settings need to be moved into the database settings. This is necessary to maintain your current browser connections. Would you like to migrate your existing settings now? - Sus configuraciones de KeePassXC-Browser necesitan moverse a las configuraciones de BB.DD. + Sus configuraciones de KeePassXC-Browser necesitan moverse a las configuraciones de base de datos. Es necesario para mantener sus conexiones presentes del explorador. -¿Le gustaría migrar sus configuraciones existentes ahora? +¿Desea migrar sus configuraciones existentes ahora? Don't show this warning again @@ -893,11 +893,11 @@ portatil-chrome. Append ' - Clone' to title - Agregar «- Clon» al título + Añadir «- Clon» al título Replace username and password with references - Reemplace usuario y contraseña con referencias + Reemplazar usuario y contraseña con referencias Copy history @@ -912,7 +912,7 @@ portatil-chrome. filename - nombre del fichero + nombre del archivo size, rows, columns @@ -956,11 +956,11 @@ portatil-chrome. Not present in CSV file - No presente en el fichero CSV + No presente en el archivo CSV Imported from CSV file - Importado de un fichero CSV + Importado de un archivo CSV Original data: @@ -980,7 +980,7 @@ portatil-chrome. Error(s) detected in CSV file! - ¡Error(es) detectado(s) en el fichero CSV! + ¡Error(es) detectado(s) en el archivo CSV! [%n more message(s) skipped] @@ -1038,19 +1038,19 @@ portatil-chrome. File %1 does not exist. - El fichero %1 no existe. + El archivo %1 no existe. Unable to open file %1. - Incapaz de abrir el fichero %1. + Incapaz de abrir el archivo %1. Error while reading the database: %1 - Error al leer la BB.DD.: %1 + Error al leer la base de datos: %1 File cannot be written as it is opened in read-only mode. - El fichero no se puede escribir, ya que se ha abierto en modo de solo lectura. + El archivo no se puede escribir, ya que se ha abierto en modo de solo lectura. Key not transformed. This is a bug, please report it to the developers! @@ -1060,19 +1060,19 @@ portatil-chrome. %1 Backup database located at %2 %1 -Copiar de seguridad de BB.DD. ubicada en %2 +Copiar de seguridad de base de datos ubicada en %2 Could not save, database does not point to a valid file. - No se puede guardar, la BB.DD. no apunta a un fichero válido. + No se puede guardar, la base de datos no apunta a un archivo válido. Could not save, database file is read-only. - No se puede guardar, el fichero de BB.DD. es de solo lectura. + No se puede guardar, el archivo de base de datos es de solo lectura. Database file has unmerged changes. - La BB.DD. tiene cambios no combinados. + La base de datos tiene cambios no combinados. Recycle Bin @@ -1083,14 +1083,14 @@ Copiar de seguridad de BB.DD. ubicada en %2 DatabaseOpenDialog Unlock Database - KeePassXC - Desbloquear BB.DD. - KeePassXC + Desbloquear base de datos - KeePassXC DatabaseOpenWidget Key File: - Fichero llave: + Archivo clave: Refresh @@ -1098,17 +1098,17 @@ Copiar de seguridad de BB.DD. ubicada en %2 Legacy key file format - Formato de fichero llave heredado + Formato de archivo clave heredado You are using a legacy key file format which may become unsupported in the future. Please consider generating a new key file. - Está utilizando un formato de fichero llave heredado que puede convertirse + Está utilizando un formato de archivo clave heredado que puede convertirse en no soportado en el futuro. -Considere generar un nuevo fichero llave. +Considere generar un nuevo archivo llave. Don't show this warning again @@ -1116,19 +1116,19 @@ Considere generar un nuevo fichero llave. All files - Todos los ficheros + Todos los archivos Key files - Ficheros llave + Archivos clave Select key file - Seleccionar fichero llave + Seleccionar archivo clave Failed to open key file: %1 - Fallo al abrir fichero de clave: %1 + Fallo al abrir archivo clave: %1 Select slot... @@ -1136,7 +1136,7 @@ Considere generar un nuevo fichero llave. Unlock KeePassXC Database - Desbloquear BB.DD. KeePassXC + Desbloquear base de datos KeePassXC Enter Password: @@ -1152,7 +1152,7 @@ Considere generar un nuevo fichero llave. Key file selection - Selección de fichero de llave + Selección de archivo clave Hardware key slot selection @@ -1160,7 +1160,7 @@ Considere generar un nuevo fichero llave. Browse for key file - Explorar para un fichero de claves + Explorar para un archivo clave Browse... @@ -1188,7 +1188,7 @@ Considere generar un nuevo fichero llave. Clear Key File - Vaciar fichero de clave + Limpiar archivo clave Unlock failed and no password given @@ -1199,10 +1199,10 @@ Considere generar un nuevo fichero llave. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Desbloquear la BB.DD. ha fallado y no introdujo una contraseña. + Desbloquear la base de datos ha fallado y no introdujo una contraseña. ¿Desea reintentar con una contraseña vacía? -Para prevenir que aparezca este error, debe ir a «Configuración de BB.DD. / Seguridad» y reiniciar su contraseña. +Para prevenir que aparezca este error, debe ir a «Configuración de base de datos / Seguridad» y reiniciar su contraseña. Retry with empty password @@ -1210,7 +1210,7 @@ Para prevenir que aparezca este error, debe ir a «Configuración de BB.DD. / Se Enter Additional Credentials (if any): - Introducir credenciales adicionales (si alguna): + Introducir credenciales adicionales (si hay alguna): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> @@ -1220,11 +1220,11 @@ Para prevenir que aparezca este error, debe ir a «Configuración de BB.DD. / Se <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - <p>Adicionalmente a su contraseña maestra, puede usar un archivo secreto para mejorar la seguridad de su base de datos. Dicho archivo puede ser generado en la configuración de seguridad de su base de datos.</p><p>Este no es su archivo de base de datos *.kdbx. <br>Si no tiene un fichero de claves, deje el campo vacío.</p><p>Clic para más información...</p> + <p>Adicionalmente a su contraseña maestra, puede usar un archivo secreto para mejorar la seguridad de su base de datos. Dicho archivo puede ser generado en la configuración de seguridad de su base de datos.</p><p>Este no es su archivo de base de datos *.kdbx. <br>Si no tiene un archivo clave, deje el campo vacío.</p><p>Clic para más información...</p> Key file help - Ayuda de fichero de claves + Ayuda de archivo clave ? @@ -1232,17 +1232,17 @@ Para prevenir que aparezca este error, debe ir a «Configuración de BB.DD. / Se Select key file... - Seleccionar fichero de claves... + Seleccionar archivo clave... Cannot use database file as key file - No se puede usar una base de datos como fichero de claves + No se puede usar una base de datos como archivo clave You cannot use your database file as a key file. If you do not have a key file, please leave the field empty. - No puede usar una base de datos como fichero de claves. -Si no tiene un fichero de claves, deje el campo vacío. + No puede usar una base de datos como archivo clave. +Si no tiene un archivo clave, deje el campo vacío. @@ -1291,7 +1291,7 @@ Si no tiene un fichero de claves, deje el campo vacío. Forg&et all site-specific settings on entries - Olvid&ar todas las configuraciones específicas del sitio en las apuntes + Olvid&ar todas las configuraciones específicas del sitio en las entradas Move KeePassHTTP attributes to KeePassXC-Browser &custom data @@ -1303,17 +1303,17 @@ Si no tiene un fichero de claves, deje el campo vacío. Remove - Borrar + Eliminar Delete the selected key? - ¿Borrar la clave seleccionada? + ¿Eliminar la clave seleccionada? Do you really want to delete the selected key? This may prevent connection to the browser plugin. - ¿Realmente quieres borrar la clave seleccionada? -Esto puede imsolicitar la conexión con el complemento del explorador. + ¿Desea eliminar la clave seleccionada? +Esto puede impedir la conexión con el complemento del explorador. Key @@ -1329,13 +1329,13 @@ Esto puede imsolicitar la conexión con el complemento del explorador. Disconnect all browsers - Desconectar todos los exploradores + Desconectar todos los navegadores Do you really want to disconnect all browsers? This may prevent connection to the browser plugin. ¿Desea desconectar todos los exploradores? -Esto puede imsolicitar la conexión con el complemento del explorador. +Esto puede impedir la conexión con el complemento del explorador. KeePassXC: No keys found @@ -1347,7 +1347,7 @@ Esto puede imsolicitar la conexión con el complemento del explorador. KeePassXC: Removed keys from database - KeePassXC: las claves se eliminaron de la BB.DD. + KeePassXC: las claves se eliminaron de la base de datos Successfully removed %n encryption key(s) from KeePassXC settings. @@ -1355,13 +1355,13 @@ Esto puede imsolicitar la conexión con el complemento del explorador. Forget all site-specific settings on entries - Olvidar todas las configuraciones específicas del sitio en las apuntes + Olvidar todas las configuraciones específicas del sitio en las entradas Do you really want forget all site-specific settings on every entry? Permissions to access entries will be revoked. - ¿Desea olvidar todas las configuraciones específicas del sitio en cada apunte? -Los permisos para acceder a las apuntes serán revocados. + ¿Desea olvidar todas las configuraciones específicas del sitio en cada entrada? +Los permisos para acceder a las entradas serán revocados. Removing stored permissions… @@ -1377,15 +1377,15 @@ Los permisos para acceder a las apuntes serán revocados. Successfully removed permissions from %n entry(s). - Eliminados con éxito permisos de %n apunte.Eliminados con éxito permisos de %n apuntes. + Eliminados con éxito permisos de %n entrada.Eliminados con éxito permisos de %n entradas. KeePassXC: No entry with permissions found! - KeePassXC: ¡no se encontró ningun apunte con permisos! + KeePassXC: ¡no se encontró ninguna entrada con permisos! The active database does not contain an entry with permissions. - La BB.DD. activa no contiene un apunte con permisos. + La base de datos activa no contiene una entrada con permisos. Move KeePassHTTP attributes to custom data @@ -1394,7 +1394,7 @@ Los permisos para acceder a las apuntes serán revocados. Do you really want to move all legacy browser integration data to the latest standard? This is necessary to maintain compatibility with the browser plugin. - ¿Realmente desea mover todos los datos de integración del explorador heredado al último estándar? + ¿Desea mover todos los datos de integración del explorador heredado al último estándar? Esto es necesario para mantener la compatibilidad con el complemento del explorador. @@ -1403,7 +1403,7 @@ Esto es necesario para mantener la compatibilidad con el complemento del explora Remove selected key - Retirar clave seleccionada + Eliminar clave seleccionada @@ -1462,15 +1462,15 @@ Esto es necesario para mantener la compatibilidad con el complemento del explora Higher values offer more protection, but opening the database will take longer. - Los valores más altos ofrecen más protección, pero la apertura de la BB.DD. llevará más tiempo. + Los valores más altos ofrecen más protección, pero la apertura de la base de datos llevará más tiempo. Database format: - Formato de BB.DD.: + Formato de base de datos: This is only important if you need to use your database with other programs. - Esto solo es importante si necesita usar su BB.DD. con otros programas. + Esto solo es importante si necesita usar su base de datos con otros programas. KDBX 4.0 (recommended) @@ -1496,7 +1496,7 @@ Esto es necesario para mantener la compatibilidad con el complemento del explora If you keep this number, your database may take hours or days (or even longer) to open! Está utilizando una gran cantidad de rondas de transformación de clave con Argon2. -Si conserva este número, ¡su BB.DD. puede tardar horas o días (o incluso más) en abrirse! +Si conserva este número, ¡su base de datos puede tardar horas o días (o incluso más) en abrirse! Understood, keep number @@ -1517,7 +1517,7 @@ Si conserva este número, ¡su BB.DD. puede tardar horas o días (o incluso más If you keep this number, your database may be too easy to crack! Está utilizando una cantidad muy baja de rondas de transformación de llave con AES-KDF. -Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar! +Si conserva este número, ¡su base de datos puede ser muy fácil de descifrar! KDF unchanged @@ -1557,7 +1557,7 @@ Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar! Database format - Formato de BB.DD. + Formato de base de datos Encryption algorithm @@ -1584,15 +1584,15 @@ Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar!DatabaseSettingsWidgetFdoSecrets Exposed Entries - Exponer apuntes + Exponer entradas Don't e&xpose this database - No e&xponer esta BB.DD. + No e&xponer esta base de datos Expose entries &under this group: - Exponer apuntes &bajo este grupo: + Exponer entradas &bajo este grupo: Enable fd.o Secret Service to access these settings. @@ -1603,19 +1603,19 @@ Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar!DatabaseSettingsWidgetGeneral Database Meta Data - Metadatos de la BB.DD. + Metadatos de la base de datos Database name: - Nombre de la BB.DD.: + Nombre de la base de datos: Database description: - Descripción de la BB.DD.: + Descripción de la base de datos: Default username: - ID Usuario por defecto: + Usuario por defecto: History Settings @@ -1639,7 +1639,7 @@ Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar! Additional Database Settings - Configuraciones adicionales de la BB.DD. + Configuraciones adicionales de la base de datos Enable &compression (recommended) @@ -1647,11 +1647,11 @@ Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar! Database name field - Campo nombre de BB.DD. + Campo nombre de base de datos Database description field - Campo descripción de BB.DD. + Campo descripción de base de datos Default username field @@ -1659,15 +1659,15 @@ Si conserva este número, ¡su BB.DD. puede ser muy fácil de descifrar! Maximum number of history items per entry - Número máximo de elementos de historial por apunte + Número máximo de elementos de historial por entrada Maximum size of history per entry - Tamaño máximo de historial por apunte + Tamaño máximo de historial por entrada Delete Recycle Bin - Borrar papelera de reciclaje + Eliminar papelera de reciclaje Do you want to delete the current recycle bin and all its contents? @@ -1716,7 +1716,7 @@ Esta acción no es reversible. DatabaseSettingsWidgetMasterKey Add additional protection... - Agregar protección adicional... + Añadir protección adicional... No encryption key added @@ -1724,7 +1724,7 @@ Esta acción no es reversible. You must add at least one encryption key to secure your database! - ¡Debe agregar al menos una clave de cifrado para proteger su BB.DD.! + ¡Debe añadir al menos una clave de cifrado para proteger su base de datos! No password set @@ -1734,7 +1734,7 @@ Esta acción no es reversible. WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - ¡ADVERTENCIA! No ha establecido una contraseña. Se desaconseja el uso de una BB.DD. sin contraseña. + ¡ADVERTENCIA! No ha establecido una contraseña. Se desaconseja el uso de una base de datos sin contraseña. ¿Desea continuar sin contraseña? @@ -1755,7 +1755,7 @@ Are you sure you want to continue without a password? DatabaseSettingsWidgetMetaDataSimple Database Name: - Nombre de la BB.DD.: + Nombre de la base de datos: Description: @@ -1763,11 +1763,11 @@ Are you sure you want to continue without a password? Database name field - Campo nombre de BB.DD. + Campo nombre de base de datos Database description field - Campo descripción de BB.DD. + Campo descripción de base de datos @@ -1790,7 +1790,7 @@ Are you sure you want to continue without a password? Database name - Nombre de la BB.DD. + Nombre de la base de datos Description @@ -1818,7 +1818,7 @@ Are you sure you want to continue without a password? The database was modified, but the changes have not yet been saved to disk. - La BB.DD. fue modificada pero los cambios no han sido guardados a disco todavía. + La base de datos fue modificada pero los cambios no han sido guardados a disco todavía. Number of groups @@ -1826,15 +1826,15 @@ Are you sure you want to continue without a password? Number of entries - Número de apuntes + Número de entradas Number of expired entries - Número de apuntes expirados + Número de entradas expiradas The database contains entries that have expired. - La BB.DD. contiene apuntes que han expirado. + La base de datos contiene entradas que han expirado. Unique passwords @@ -1893,62 +1893,62 @@ Are you sure you want to continue without a password? DatabaseTabWidget KeePass 2 Database - BB.DD. de KeePass 2 + Base de datos de KeePass 2 All files - Todos los ficheros + Todos los archivos Open database - Abrir BB.DD. + Abrir base de datos CSV file - Fichero CSV + Archivo CSV Merge database - Combinar BB.DD. + Combinar base de datos Open KeePass 1 database - Abrir BB.DD. KeePass 1 + Abrir base de datos KeePass 1 KeePass 1 database - BB.DD. KeePass 1 + Base de datos KeePass 1 Export database to CSV file - Exportar BB.DD. a un fichero CSV + Exportar base de datos a un archivo CSV Writing the CSV file failed. - La escritura del fichero CSV falló. + La escritura del archivo CSV falló. Database creation error - Error en creación de la BB.DD. + Error en creación de la base de datos. The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. - La BB.DD. creada no tiene clave o KDF, negándose a guardarla. + La base de datos creada no tiene clave o KDF, negándose a guardarla. Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores. Select CSV file - Seleccionar fichero CSV + Seleccionar archivo CSV New Database - Nueva BB.DD. + Nueva base de datos %1 [New Database] Database tab name modifier - %1 [Nueva BB.DD.] + %1 [Nueva base de datos] %1 [Locked] @@ -1966,15 +1966,15 @@ Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores.< Export database to HTML file - Exportar BB.DD. a fichero HTML + Exportar base de datos a archivo HTML HTML file - Fichero HTML + Archivo HTML Writing the HTML file failed. - Fallo escribiendo a fichero HTML. + Fallo escribiendo a archivo HTML. Export Confirmation @@ -1982,7 +1982,7 @@ Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores.< You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - Está a punto de exportar su BB.DD. a un fichero sin cifrar. Esto dejará sus contraseñas e información sensible vulnerable. ¿Desea continuar? + Está a punto de exportar su base de datos a un archivo sin cifrar. Esto dejará sus contraseñas e información sensible vulnerable. ¿Desea continuar? @@ -1993,19 +1993,19 @@ Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores.< Do you really want to delete the entry "%1" for good? - ¿Realmente quiere eliminar el apunte «%1» de forma definitiva? + ¿Desea eliminar la entrada «%1» de forma definitiva? Do you really want to move entry "%1" to the recycle bin? - ¿Realmente quiere mover el apunte «%1» a la papelera de reciclaje? + ¿Desea mover la entrada «%1» a la papelera de reciclaje? Do you really want to move %n entry(s) to the recycle bin? - ¿Desea mover %n apunte a la papelera de reciclaje?¿Desea mover %n apuntes a la papelera de reciclaje? + ¿Desea mover %n entrada a la papelera de reciclaje?¿Desea mover %n entradas a la papelera de reciclaje? Execute command? - ¿Ejecutar mandato? + ¿Ejecutar comando? Do you really want to execute the following command?<br><br>%1<br> @@ -2021,11 +2021,11 @@ Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores.< No current database. - No hay una BB.DD. actualmente. + No hay una base de datos actualmente. No source database, nothing to do. - No hay una BB.DD. de origen, nada para hacer. + No hay una base de datos de origen, nada para hacer. Search Results (%1) @@ -2037,11 +2037,11 @@ Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores.< File has changed - El fichero ha cambiado + El archivo ha cambiado The database file has changed. Do you want to load the changes? - El fichero de la BB.DD. ha cambiado. ¿Desea cargar los cambios? + El archivo de la base de datos ha cambiado. ¿Desea cargar los cambios? Merge Request @@ -2050,7 +2050,7 @@ Esto es definitivamente un defecto, por favor infórmelo a los desarrolladores.< The database file has changed and you have unsaved changes. Do you want to merge your changes? - El fichero de la BB.DD. ha cambiado y usted tiene modificaciones sin guardar. ¿Desea combinar sus modificaciones? + El archivo de la base de datos ha cambiado y usted tiene modificaciones sin guardar. ¿Desea combinar sus modificaciones? Empty recycle bin? @@ -2062,23 +2062,23 @@ Do you want to merge your changes? Do you really want to delete %n entry(s) for good? - ¿Desea eliminar %n apunte para siempre?¿Desea eliminar %n apuntes para siempre? + ¿Desea eliminar %n entrada para siempre?¿Desea eliminar %n entradas para siempre? Delete entry(s)? - ¿Borrar apunte?¿Borrar apuntes? + ¿Eliminar entrada?¿Eliminar entradas? Move entry(s) to recycle bin? - ¿Mover apunte a la papelera de reciclaje?¿Mover apuntes a la papelera de reciclaje? + ¿Mover entrada a la papelera de reciclaje?¿Mover entradas a la papelera de reciclaje? Lock Database? - ¿Bloquear la BB.DD.? + ¿Bloquear la base de datos? You are editing an entry. Discard changes and lock anyway? - Estás editando un apunte. ¿Descartar los cambios y bloquear de todos modos? + Estás editando una entrada. ¿Descartar los cambios y bloquear de todos modos? "%1" was modified. @@ -2089,7 +2089,7 @@ Save changes? Database was modified. Save changes? - Se modificó la BB.DD. + Se modificó la base de datos. ¿Guardar cambios? @@ -2099,7 +2099,7 @@ Save changes? Could not open the new database file while attempting to autoreload. Error: %1 - No se pudo abrir el nuevo fichero de BB.DD. al intentar cargar automáticamente. + No se pudo abrir el nuevo archivo de base de datos al intentar cargar automáticamente. Error: %1 @@ -2109,7 +2109,7 @@ Error: %1 KeePassXC has failed to save the database multiple times. This is likely caused by file sync services holding a lock on the save file. Disable safe saves and try again? - KeePassXC no ha podido guardar la BB.DD. varias veces. Esto es probablemente causado por los servicios de sincronización de ficheros manteniendo un bloqueo en el fichero. + KeePassXC no ha podido guardar la base de datos varias veces. Esto es probablemente causado por los servicios de sincronización de archivos manteniendo un bloqueo en el archivo. ¿Desactivar el guardado seguro y volver a intentarlo? @@ -2118,23 +2118,23 @@ Disable safe saves and try again? Save database as - Guardar BB.DD. como + Guardar base de datos como KeePass 2 Database - BB.DD. de KeePass 2 + Base de datos de KeePass 2 Replace references to entry? - ¿Reemplazar las referencias a el apunte? + ¿Reemplazar las referencias a la entrada? Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - El apunte "%1" tiene %2 referencia. ¿Desea sobrescribir la referencia con el valor, saltarse esta apunte o borrarla de todos modos?El apunte «%1» tiene %2 referencias. ¿Desea sobrescribir las referencias con los valores, omitir esta apunte o eliminarla de todos modos? + La entrada «%1» tiene %2 referencia. ¿Desea sobrescribir la referencia con el valor, omitir esta entrada o eliminarla de todos modos?La entrada «%1» tiene %2 referencias. ¿Desea sobrescribir las referencias con los valores, omitir esta entrada o eliminarla de todos modos? Delete group - Borrar grupo + Eliminar grupo Move group to recycle bin? @@ -2146,11 +2146,11 @@ Disable safe saves and try again? Successfully merged the database files. - Combinados correctamente los ficheros de BB.DD. + Combinados correctamente los archivos de base de datos Database was not modified by merge operation. - La BB.DD. no fue modificada por la operación de combinar. + La base de datos no fue modificada por la operación de combinar. Shared group... @@ -2158,11 +2158,11 @@ Disable safe saves and try again? Writing the database failed: %1 - Fallo al escribir la BB.DD.: %1 + Fallo al escribir la base de datos: %1 This database is opened in read-only mode. Autosave is disabled. - Esta BB.DD. está abierta en modo solo lectura. El autoguardado está deshabilitado. + Esta base de datos está abierta en modo solo lectura. El autoguardado está deshabilitado. @@ -2209,7 +2209,7 @@ Disable safe saves and try again? File too large to be a private key - Fichero demasiado grande para ser una llave privada + Archivo demasiado grande para ser una llave privada Failed to open private key @@ -2217,15 +2217,15 @@ Disable safe saves and try again? Entry history - Historial de apuntes + Historial de entradas Add entry - Agregar apunte + Añadir entrada Edit entry - Editar apunte + Editar entrada Different passwords supplied. @@ -2257,7 +2257,7 @@ Disable safe saves and try again? Do you want to apply the generated password to this entry? - ¿Desea aplicar la contraseña generada en esta apunte? + ¿Desea aplicar la contraseña generada en esta entrada? Entry updated successfully. @@ -2265,7 +2265,7 @@ Disable safe saves and try again? Entry has unsaved changes - El apunte tiene cambios sin guardar + La entrada tiene cambios sin guardar New attribute %1 @@ -2304,11 +2304,11 @@ Disable safe saves and try again? Add - Agregar + Añadir Remove - Retirar + Eliminar Edit Name @@ -2344,11 +2344,11 @@ Disable safe saves and try again? Add a new attribute - Agregar nuevo atributo + Añadir nuevo atributo Remove selected attribute - Retirar atributo seleccionado + Eliminar atributo seleccionado Edit attribute name @@ -2375,7 +2375,7 @@ Disable safe saves and try again? EditEntryWidgetAutoType Enable Auto-Type for this entry - Activar autoescritura para esta apunte + Activar autoescritura para esta entrada Inherit default Auto-Type sequence from the &group @@ -2419,11 +2419,11 @@ Disable safe saves and try again? Add new window association - Agregar nueva asociación de ventana + Añadir nueva asociación de ventana Remove selected window association - Retirar asociación de ventana + Eliminar asociación de ventana You can use an asterisk (*) to match everything @@ -2446,7 +2446,7 @@ Disable safe saves and try again? EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - Esta configuración afecta al comportamiento de esta apunte con la extensión del explorador. + Esta configuración afecta al comportamiento de esta entrada con la extensión del explorador. General @@ -2454,11 +2454,11 @@ Disable safe saves and try again? Skip Auto-Submit for this entry - Descartar autoenvío para esta apunte + Descartar autoenvío para esta entrada Hide this entry from the browser extension - Ocultar esta apunte de la extensión del explorador + Ocultar esta entrada de la extensión del explorador Additional URL's @@ -2466,11 +2466,11 @@ Disable safe saves and try again? Add - Agregar + Añadir Remove - Retirar + Eliminar Edit @@ -2489,31 +2489,31 @@ Disable safe saves and try again? Delete - Borrar + Eliminar Delete all - Borrar todo + Eliminar todo Entry history selection - Selección de apunte de historial + Selección de entrada de historial Show entry at selected history state - Mostrar apunte en historial seleccionado + Mostrar entrada en historial seleccionado Restore entry to selected history state - Restaurar apunte al estado historial seleccionado + Restaurar entrada al estado historial seleccionado Delete selected history state - Borrar el historial seleccionado + Eliminar el historial seleccionado Delete all history - Borrar todo el historial + Eliminar todo el historial @@ -2548,7 +2548,7 @@ Disable safe saves and try again? Username: - ID Usuario: + Usuario: Expires @@ -2568,7 +2568,7 @@ Disable safe saves and try again? Toggle password generator - Intercambiar generador de contraseña + Intercambiar generador de contraseñas Password field @@ -2631,7 +2631,7 @@ Disable safe saves and try again? Remove key from agent when database is closed/locked - Retirar llave del agente cuando la BB.DD. está cerrada/bloqueada + Eliminar llave del agente cuando la base de datos está cerrada/bloqueada Public key @@ -2639,7 +2639,7 @@ Disable safe saves and try again? Add key to agent when database is opened/unlocked - Agregar llave al agente cuando la BB.DD. se abre/desbloquea + Añadir llave al agente cuando la base de datos se abre/desbloquea Comment @@ -2663,7 +2663,7 @@ Disable safe saves and try again? External file - Fichero externo + Archivo externo Browse... @@ -2676,11 +2676,11 @@ Disable safe saves and try again? Add to agent - Agregar a agente + Añadir a agente Remove from agent - Retirar del agente + Eliminar del agente Require user confirmation when this key is used @@ -2688,19 +2688,19 @@ Disable safe saves and try again? Remove key from agent after specified seconds - Retirar clave del agente tras los segundos especificados + Eliminar clave del agente tras los segundos especificados Browser for key file - Explorar para fichero de claves + Explorar para archivo clave External key file - Fichero de claves externa + Archivo clave externa Select attachment file - Seleccionar fichero adjunto + Seleccionar archivo adjunto @@ -2719,7 +2719,7 @@ Disable safe saves and try again? Add group - Agregar grupo + Añadir grupo Edit group @@ -2739,7 +2739,7 @@ Disable safe saves and try again? Entry has unsaved changes - El apunte tiene cambios sin guardar + La entrada tiene cambios sin guardar @@ -2786,7 +2786,7 @@ Disable safe saves and try again? Select import/export file - Seleccione el fichero de importación/exportación + Seleccione el archivo de importación/exportación Clear @@ -2812,15 +2812,15 @@ Las extensiones soportadas son: %1. %1 is already being exported by this database. - %1 ya está siendo exportada por esta BB.DD. + %1 ya está siendo exportada por esta base de datos. %1 is already being imported by this database. - %1 ya está siendo exportada por esta BB.DD. + %1 ya está siendo importada por esta base de datos. %1 is being imported and exported by different groups in this database. - %1 ya está siendo importada y exportada por diferentes grupos en esta BB.DD. + %1 ya está siendo importada y exportada por diferentes grupos en esta base de datos. KeeShare is currently disabled. You can enable import/export in the application settings. @@ -2829,11 +2829,11 @@ Las extensiones soportadas son: %1. Database export is currently disabled by application settings. - La exportación de la BB.DD. actualmente está deshabilitada en la configuración de aplicación. + La exportación de la base de datos actualmente está deshabilitada en la configuración de aplicación. Database import is currently disabled by application settings. - La importación de BB.DD. actualmente está deshabilitada por la configuración de aplicación + La importación de base de datos actualmente está deshabilitada por la configuración de aplicación Sharing mode field @@ -2841,11 +2841,11 @@ Las extensiones soportadas son: %1. Path to share file field - Ruta para campo de fichero compartir + Ruta para campo de archivo compartir Browser for share file - Explorar para un fichero compartir + Explorar para un archivo compartir Password field @@ -2935,11 +2935,11 @@ Las extensiones soportadas son: %1. Add custom icon - Agregar icono personalizado + Añadir icono personalizado Delete custom icon - Borrar icono personalizado + Eliminar icono personalizado Download favicon @@ -2955,7 +2955,7 @@ Las extensiones soportadas son: %1. All files - Todos los ficheros + Todos los archivos Confirm Delete @@ -2967,7 +2967,7 @@ Las extensiones soportadas son: %1. Successfully loaded %1 of %n icon(s) - Cargado(s) %1 de %n ícono correctamenteCargado(s) %1 de %n iconos correctamente + Cargado %1 de %n icono correctamenteCargados %1 de %n iconos correctamente No icons were loaded @@ -2975,7 +2975,7 @@ Las extensiones soportadas son: %1. %n icon(s) already exist in the database - %n ícono ya existe en la BB.DD.%n íconos ya existen en la BB.DD. + %n icono ya existe en la base de datos%n iconos ya existen en la base de datos The following icon(s) failed: @@ -2983,7 +2983,7 @@ Las extensiones soportadas son: %1. This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it? - Este icono se utiliza en %n apunte, y será remplazado por el icono por defecto. ¿Desea eliminarlo?Este icono se utiliza en %n apuntes, y será remplazado por el icono por defecto. ¿Desea eliminarlo? + Este icono se utiliza en %n entrada, y será remplazado por el icono por defecto. ¿Desea eliminarlo?Este icono se utiliza en %n entradas, y será remplazado por el icono por defecto. ¿Desea eliminarlo? You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security @@ -2995,7 +2995,7 @@ Las extensiones soportadas son: %1. Apply selected icon to subgroups and entries - Aplicar icono seleccionado a subgrupos y apuntes + Aplicar icono seleccionado a subgrupos y entradas Apply icon &to ... @@ -3011,7 +3011,7 @@ Las extensiones soportadas son: %1. Also apply to child entries - Aplicar también a los subapuntes + Aplicar también a las subentradas Also apply to all children @@ -3046,16 +3046,16 @@ Las extensiones soportadas son: %1. Remove - Quitar + Eliminar Delete plugin data? - ¿Borrar los datos del complemento? + ¿Eliminar los datos del complemento? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - ¿Realmente desea eliminar los datos del complemento seleccionado? + ¿Desea eliminar los datos del complemento seleccionado? Esto puede causar un mal funcionamiento de los complementos afectados. @@ -3088,7 +3088,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Remove selected plugin data - Quitar complemento de datos seleccionado + Eliminar complemento de datos seleccionado @@ -3117,11 +3117,11 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Add - Agregar + Añadir Remove - Retirar + Eliminar Open @@ -3133,7 +3133,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Select files - Seleccionar ficheros + Seleccionar archivos Are you sure you want to remove %n attachment(s)? @@ -3151,7 +3151,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Are you sure you want to overwrite the existing file "%1" with the attachment? - ¿Desea sobrescribir el fichero existente «%1» con el fichero adjunto? + ¿Desea sobrescribir el archivo existente «%1» con el archivo adjunto? Confirm overwrite @@ -3183,7 +3183,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados.Unable to open file(s): %1 Incapaz de abrir el fichero: -%1Incapaz de abrir los ficheros: +%1Incapaz de abrir los archivos: %1 @@ -3192,7 +3192,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Add new attachment - Agregar nuevo adjunto + Añadir nuevo adjunto Remove selected attachment @@ -3226,7 +3226,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Username - ID Usuario + Usuario URL @@ -3250,7 +3250,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Username - ID Usuario + Usuario URL @@ -3290,7 +3290,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Yes - Si + TOTP @@ -3309,7 +3309,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Username - ID Usuario + Usuario Password @@ -3337,7 +3337,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Autotype - Autoescritura + Autotecleo Window @@ -3401,7 +3401,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. Hide Usernames - Ocultar nombres de usuario + Ocultar usuario Hide Passwords @@ -3428,7 +3428,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados.FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - Entrada «%1» de la BB.DD. «%2» fue usada por %3 + Entrada «%1» de la base de datos «%2» fue usada por %3 @@ -3440,7 +3440,7 @@ Esto puede causar un mal funcionamiento de los complementos afectados. %n Entry(s) was used by %1 %1 is the name of an application - %n apunte fue usada por %1%n apuntes fueron usadas por %1 + %n entrada fue usada por %1%n apunte(s) fueron usado(s) por %1 @@ -3462,11 +3462,11 @@ Esto puede causar un mal funcionamiento de los complementos afectados.HostInstaller KeePassXC: Cannot save file! - KeePassXC: ¡no se puede guardar el fichero! + KeePassXC: ¡no se puede guardar el archivo! Cannot save the native messaging script file. - No se puede guardar el fichero de script de mensajería nativo. + No se puede guardar el archivo de script de mensajería nativo. @@ -3499,7 +3499,7 @@ Puede habilitar el servicio de iconos del sitio web DuckDuckGo en la sección se Please wait, processing entry list... - Espere, procesando listado de apuntes... + Espere, procesando listado del apunte… Downloading... @@ -3545,7 +3545,7 @@ Puede habilitar el servicio de iconos del sitio web DuckDuckGo en la sección se missing database headers - faltan las cabeceras de la BB.DD. + faltan las cabeceras de la base de datos Header doesn't match hash @@ -3567,7 +3567,7 @@ Puede habilitar el servicio de iconos del sitio web DuckDuckGo en la sección se Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Se han proporcionado credenciales inválidas, inténtelo de nuevo. -Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. +Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto. @@ -3585,7 +3585,7 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto.Kdbx4Reader missing database headers - faltan las cabeceras de la BB.DD. + faltan las cabeceras de la base de datos Unable to calculate master key @@ -3625,7 +3625,7 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. Legacy header fields found in KDBX4 file. - Los campos heredados de la cabecera se encuentran en el fichero KDBX4. + Los campos heredados de la cabecera se encuentran en el archivo KDBX4. Invalid inner header id size @@ -3647,63 +3647,63 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. Invalid variant map entry name length Translation: variant map = data structure for storing meta data - Longitud del nombre del apunte del mapa de variante inválida + Longitud del nombre de la entrada del mapa de variante inválida Invalid variant map entry name data Translation: variant map = data structure for storing meta data - Datos del nombre del apunte de mapa de variante inválida + Datos del nombre de la entrada de mapa de variante inválida Invalid variant map entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte del mapa de variante inválida + Longitud del valor de la entrada del mapa de variante inválida Invalid variant map entry value data Translation comment: variant map = data structure for storing meta data - Datos del valor del apunte de mapa de variante inválida + Datos del valor de la entrada de mapa de variante inválida Invalid variant map Bool entry value length Translation: variant map = data structure for storing meta data - Longitud del valor del apunte del mapa booleano de variante inválida + Longitud del valor de la entrada del mapa booleano de variante inválida Invalid variant map Int32 entry value length Translation: variant map = data structure for storing meta data - Largo inválido en valor de apunte Int32 de mapeo de variante + Largo inválido en valor de la entrada Int32 de mapeo de variante Invalid variant map UInt32 entry value length Translation: variant map = data structure for storing meta data - Largo inválido en valor de apunte UInt32 de mapeo de variante + Largo inválido en valor de entrada UInt32 de mapeo de variante Invalid variant map Int64 entry value length Translation: variant map = data structure for storing meta data - Largo inválido en valor de apunte Int64 de mapeo de variante + Largo inválido en valor de entrada Int64 de mapeo de variante Invalid variant map UInt64 entry value length Translation: variant map = data structure for storing meta data - Largo inválido en valor de apunte UInt64 de mapeo de variante + Largo inválido en valor de entrada UInt64 de mapeo de variante Invalid variant map entry type Translation: variant map = data structure for storing meta data - Tipo de apunte inválida de mapeo devariante + Tipo de entrada inválida de mapeo devariante Invalid variant map field type size Translation: variant map = data structure for storing meta data - Mapei de variante inválido en campo de tipo tamaño + Mapa de variante inválido en campo de tipo tamaño Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Se han proporcionado credenciales inválidas, inténtelo de nuevo. -Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. +Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto. (HMAC mismatch) @@ -3771,21 +3771,21 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. Not a KeePass database. - No es una BB.DD. KeePass. + No es una base de datos KeePass. The selected file is an old KeePass 1 database (.kdb). You can import it by clicking on Database > 'Import KeePass 1 database...'. This is a one-way migration. You won't be able to open the imported database with the old KeePassX 0.4 version. - El fichero seleccionado es una vieja BB.DD. de KeePass 1 (.kdb). + El fichero seleccionado es una vieja base de datos de KeePass 1 (.kdb). -Puede importarla haciendo clic en BB.DD. > 'Importar BB.DD. KeePass 1...'. -Esta migración es en único sentido. No podrá abrir la BB.DD. importada con la vieja versión 0.4 de KeePassX. +Puede importarla haciendo clic en base de datos > «Importar base de datos KeePass 1...». +Esta migración es en único sentido. No podrá abrir la base de datos importada con la vieja versión 0.4 de KeePassX. Unsupported KeePass 2 database version. - Versión de la BB.DD. de KeePass 2 no mantenida. + Versión de la base de datos de KeePass 2 no soportada. Invalid cipher uuid length: %1 (length=%2) @@ -3797,7 +3797,7 @@ Esta migración es en único sentido. No podrá abrir la BB.DD. importada con la Failed to read database file. - Error al leer el fichero de BB.DD. + Error al leer el archivo de base de datos. @@ -3852,19 +3852,19 @@ Esta migración es en único sentido. No podrá abrir la BB.DD. importada con la Null entry uuid - Uuid de apunte nulo + Uuid de entrada nulo Invalid entry icon number - Número de ícono de apunte inválido + Número de ícono de entrada inválido History element in history entry - Elemento del historial en el apunte del historial + Elemento del historial en la entrada del historial No entry uuid found - No uuid de apunte encontrado + No uuid de entrada encontrado History element with different uuid @@ -3876,7 +3876,7 @@ Esta migración es en único sentido. No podrá abrir la BB.DD. importada con la Entry string key or value missing - Falta clave de apunte de texto o valor + Falta clave de la entrada de texto o valor Duplicate attachment found @@ -3884,7 +3884,7 @@ Esta migración es en único sentido. No podrá abrir la BB.DD. importada con la Entry binary key or value missing - Falta clave de apunte binaria o valor + Falta clave de entrada binaria o valor Auto-type association window or sequence missing @@ -3932,22 +3932,22 @@ Línea %2, columna %3 KeePass1OpenWidget Unable to open the database. - No se pudo abrir la BB.DD. + No se pudo abrir la base de datos. Import KeePass1 Database - Importar BB.DD. KeePass1 + Importar base de datos KeePass1 KeePass1Reader Unable to read keyfile. - Incapaz de leer el fichero + Incapaz de leer el archivo Not a KeePass database. - No es una BB.DD. KeePass. + No es una base de datos KeePass. Unsupported encryption algorithm. @@ -3955,7 +3955,7 @@ Línea %2, columna %3 Unsupported KeePass database version. - Versión de la BB.DD. KeePass no mantenida. + Versión de la base de datos KeePass no mantenida. Unable to read encryption IV @@ -3968,7 +3968,7 @@ Línea %2, columna %3 Invalid number of entries - Número de apuntes no válido + Número de entradas no válido Invalid content hash size @@ -4052,39 +4052,39 @@ Línea %2, columna %3 Invalid entry field size - Tamaño del apunte para el campo inválido + Tamaño de la entrada para el campo inválido Read entry field data doesn't match size - Datos de campo de apunte no coinciden en tamaño + Datos de campo de entrada no coinciden en tamaño Invalid entry uuid field size - Tamaño del apunte para el campo uuid inválido + Tamaño de la entrada para el campo uuid inválido Invalid entry group id field size - Tamaño del apunte para el campo identificador de grupo inválido + Tamaño de la entrada para el campo identificador de grupo inválido Invalid entry icon field size - Tamaño del apunte para el campo icono inválido + Tamaño de la entrada para el campo icono inválido Invalid entry creation time field size - Tamaño del apunte para el campo tiempo de creación inválido + Tamaño de la entrada para el campo tiempo de creación inválido Invalid entry modification time field size - Tamaño del apunte para el campo tiempo de modificación inválido + Tamaño de la entrada para el campo tiempo de modificación inválido Invalid entry expiry time field size - Tamaño del apunte para el campo tiempo de expiración inválido + Tamaño de la entrada para el campo tiempo de expiración inválido Invalid entry field type - Tipo del apunte para el campo inválido + Tipo de la entrada para el campo inválido unable to seek to content position @@ -4094,7 +4094,7 @@ Línea %2, columna %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. Se han proporcionado credenciales inválidas, inténtelo de nuevo. -Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. +Si ocurre nuevamente entonces su archivo de base de datos puede estar corrupto. @@ -4165,7 +4165,7 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. Add %1 Add a key component - Agregar %1 + Añadir %1 Change %1 @@ -4175,7 +4175,7 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. Remove %1 Remove a key component - Retirar %1 + Eliminar %1 %1 set, click to change or remove @@ -4191,63 +4191,63 @@ Si ocurre nuevamente entonces su fichero de BB.DD. puede estar corrupto. Key File - Fichero de claves + Archivo clave <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out!</p> - <p>Puede agregar un fichero de claves que contiene bytes aleatorios para seguridad adicional.</p><p>¡Debes mantenerlo en secreto y nunca perderlo o te bloquearán!</p> + <p>Puede añadir un archivo clave que contiene bytes aleatorios para seguridad adicional.</p><p>¡Debes mantenerlo en secreto y nunca perderlo o te bloquearán!</p> Legacy key file format - Formato de fichero llave heredado + Formato de archivo clave heredado You are using a legacy key file format which may become unsupported in the future. Please go to the master key settings and generate a new key file. - Está utilizando un formato de fichero de claves heredado que puede convertirse + Está utilizando un formato de archivo clave heredado que puede convertirse sin soporte en el futuro. -Vaya a la configuración de la clave maestra y genere un nuevo fichero de claves. +Vaya a la configuración de la clave maestra y genere un nuevo archivo clave. Error loading the key file '%1' Message: %2 - Error al cargar el fichero de claves «%1» + Error al cargar el archivo clave «%1» Mensaje: %2 Key files - Ficheros llave + Archivos clave All files - Todos los ficheros + Todos los archivos Create Key File... - Crear un fichero llave... + Crear un archivo clave... Error creating key file - Error al crear el fichero de claves + Error al crear el archivo clave Unable to create key file: %1 - No se puede crear el fichero de claves: %1 + No se puede crear el archivo clave: %1 Select a key file - Seleccione un fichero llave + Seleccione un archivo clave Key file selection - Selección de fichero de llave + Selección de archivo clave Browse for key file - Explorar para un fichero de claves + Explorar para un archivo clave Browse... @@ -4255,29 +4255,29 @@ Mensaje: %2 Generate a new key file - Generar un nuevo fichero de claves + Generar un nuevo archivo clave Note: Do not use a file that may change as that will prevent you from unlocking your database! - Nota: no use un fichero que pueda cambiar dado que lo imsolicitará desbloquear la BB.DD. + Nota: no use un archivo que pueda cambiar dado que impedirá desbloquear la base de datos. Invalid Key File - Fichero de claves inválido + Archivo clave inválido You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - No puede usar la BB.DD. actual como su propio fichero de claves. Seleccione un fichero diferente o genere un nuevo fichero de claves. + No puede usar la base de datos actual como su propio archivo clave. Seleccione un archivo diferente o genere un nuevo archivo clave. Suspicious Key File - Fichero de claves sospechoso + Archivo clave sospechoso The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - El fichero de claves seleccionado parece una BB.DD. de contraseñas. Un fichero de claves debe ser un fichero estático que nunca cambie o perderá el acceso a su BB.DD. para siempre. -¿Desea continuar con este fichero? + El archivo clave seleccionado parece una base de datos de contraseñas. Un archivo clave debe ser un fichero estático que nunca cambie o perderá el acceso a su base de datos para siempre. +¿Desea continuar con este archivo? @@ -4296,7 +4296,7 @@ Are you sure you want to continue with this file? E&ntries - Apu&ntes + E&ntradas &Groups @@ -4316,19 +4316,19 @@ Are you sure you want to continue with this file? &Open database... - &Abrir BB.DD... + &Abrir base de datos... &Save database - &Guardar BB.DD. + &Guardar base de datos &Close database - &Cerrar BB.DD. + &Cerrar base de datos &Delete entry - &Borrar apunte + &Eliminar entrada &Edit group @@ -4336,23 +4336,23 @@ Are you sure you want to continue with this file? &Delete group - &Borrar grupo + &Eliminar grupo Sa&ve database as... - &Guardar BB.DD. como... + &Guardar base de datos como... Database settings - Configuración de la BB.DD. + Configuración de la base de datos. &Clone entry - &Clonar apunte + &Clonar entrada Copy &username - Copiar nombre de &usuario + Copiar &usuario Copy username to clipboard @@ -4396,7 +4396,7 @@ Are you sure you want to continue with this file? &Export to CSV file... - &Exportar a un fichero CSV... + &Exportar a un archivo CSV... Set up TOTP... @@ -4416,7 +4416,7 @@ Are you sure you want to continue with this file? Access error for config file %1 - Error de acceso al fichero de configuración %1 + Error de acceso al archivo de configuración %1 Settings @@ -4470,35 +4470,35 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg &New database... - &Nueva BB.DD... + &Nueva base de datos... Create a new database - Crear una nueva BB.DD. + Crear una base de datos nueva &Merge from database... - &Combinar desde la BB.DD... + &Combinar desde la base de datos... Merge from another KDBX database - Combinar desde otra BB.DD. KDBX + Combinar desde otra base de datos KDBX &New entry - &Nueva apunte + &Nueva entrada Add a new entry - Agregar una nueva apunte + Añadir una nueva entrada &Edit entry - &Editar apunte + &Editar entrada View or edit entry - Ver o editar apunte + Ver o editar entrada &New group @@ -4506,7 +4506,7 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg Add a new group - Agregar un nuevo grupo + Añadir un nuevo grupo Change master &key... @@ -4530,19 +4530,19 @@ Le recomendamos que utilice la AppImage disponible en nuestra página de descarg KeePass 1 database... - BB.DD. KeePass 1... + Base de datos KeePass 1... Import a KeePass 1 database - Importar una BB.DD. KeePass 1 + Importar una base de datos KeePass 1 CSV file... - Fichero CSV... + Archivo CSV... Import a CSV file - Importar un fichero CSV + Importar un archivo CSV Show TOTP... @@ -4592,7 +4592,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa &Password Generator - &Generador de contraseña + &Generador de contraseñas Download favicon @@ -4600,7 +4600,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa &Export to HTML file... - &Exportar a fichero HTML... + &Exportar a archivo HTML... 1Password Vault... @@ -4655,7 +4655,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa older entry merged from database "%1" - el apunte más antigua se fusionó a la BB.DD. "%1" + la entrada más antigua se combinó a la base de datos «%1» Adding backup for older target %1 [%2] @@ -4667,11 +4667,11 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Reapplying older target entry on top of newer source %1 [%2] - Volver a aplicar un apunte de destino más antigua sobre la tipografía más nueva %1 [%2] + Volver a aplicar una entrada de destino más antigua sobre la tipografía más nueva %1 [%2] Reapplying older source entry on top of newer target %1 [%2] - Volver a aplicar un apunte de origen anterior sobre el objetivo más nuevo %1 [%2] + Volver a aplicar una entrada de origen anterior sobre el objetivo más nuevo %1 [%2] Synchronizing from newer source %1 [%2] @@ -4683,15 +4683,15 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Deleting child %1 [%2] - Borrando descendiente %1[%2] + Eliminando descendiente %1 [%2] Deleting orphan %1 [%2] - Borrando huérfano %1 [%2] + Eliminando huérfano %1 [%2] Changed deleted objects - Cambiados objetos borrados + Cambiados objetos eliminados Adding missing icon %1 @@ -4710,7 +4710,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa NewDatabaseWizard Create a new KeePassXC database... - Crear una nueva BB.DD. KeePassXC ... + Crear una base de datos nueva KeePassXC... Root @@ -4730,7 +4730,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Aquí puede ajustar la configuración de cifrado de la BB.DD. No se preocupe, puede cambiarlo más adelante en la configuración de la BB.DD. + Aquí puede ajustar la configuración de cifrado de la base de datos. No se preocupe, puede cambiarlo más adelante en la configuración de la base de datos. Advanced Settings @@ -4745,33 +4745,33 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa NewDatabaseWizardPageEncryption Encryption Settings - Configuraciones de Cifrado + Configuraciones de cifrado Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - Aquí puede ajustar la configuración de cifrado de la BB.DD. No se preocupe, puede cambiarla más adelante en la configuración de la BB.DD. + Aquí puede ajustar la configuración de cifrado de la base de datos. No se preocupe, puede cambiarla más adelante en la configuración de la base de datos. NewDatabaseWizardPageMasterKey Database Master Key - Clave maestra de la BB.DD. + Clave maestra de la base de datos A master key known only to you protects your database. - Una clave maestra, conocida únicamente por usted, protege su BB.DD. + Una clave maestra, conocida únicamente por usted, protege su base de datos. NewDatabaseWizardPageMetaData General Database Information - Información general de la BB.DD. + Información general de la base de datos Please fill in the display name and an optional description for your new database: - Rellene el nombre y añada una descripción opcional para su nueva BB.DD.: + Rellene el nombre y añada una descripción opcional para su nueva base de datos: @@ -4810,7 +4810,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Read Database did not produce an instance %1 - Leer la BB.DD. no produce una instancia + Leer la base de datos no produce una instancia %1 @@ -4845,7 +4845,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa OpenSSHKey Invalid key file, expecting an OpenSSH key - Fichero llave no válido, esperando una llave de OpenSSH + Archivo clave no válido, esperando una llave de OpenSSH PEM boundary mismatch @@ -4857,11 +4857,11 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Key file way too small. - Fichero llave demasiado pequeño. + Archivo clave demasiado pequeño. Key file magic header id invalid - Id de encabezado mágico del fichero llave inválido + Id de encabezado mágico del archivo clave inválido Found zero keys @@ -4873,7 +4873,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Corrupted key file, reading private key failed - Fichero de claves corrupto, no se pudo leer la clave privada + Archivo clave corrupto, no se pudo leer la clave privada No private key payload to decrypt @@ -4889,7 +4889,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Key derivation failed, key file corrupted? - La derivación de la clave falló, ¿fichero de claves dañado? + La derivación de la clave falló, ¿archivo clave dañado? Decryption failed, wrong passphrase? @@ -4897,7 +4897,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Unexpected EOF while reading public key - FDF inesperado al leer la clave pública + Final de fichero inesperado al leer la clave pública Unexpected EOF while reading private key @@ -4967,7 +4967,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - <p>La contraseña es el método principal para asegurar su BB.DD.</p><p>Las contraseñas buenas son largas y únicas. KeePassXC puede generar una para usted.</p> + <p>La contraseña es el método principal para asegurar su base de datos.</p><p>Las contraseñas buenas son largas y únicas. KeePassXC puede generar una para usted.</p> Passwords do not match. @@ -5043,7 +5043,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Passphrase - Frase Contraseña + Frase de contraseña Wordlist: @@ -5175,7 +5175,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Add non-hex letters to "do not include" list - Agregar letras no-hexadecimales al listado de «no incluir» + Añadir letras no-hexadecimales al listado de «no incluir» Hex @@ -5187,7 +5187,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Word Co&unt: - C&uenta de palabras: + &Número de palabras: Regenerate @@ -5281,7 +5281,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Delete - Borrar + Eliminar Move @@ -5293,11 +5293,11 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Remove - Retirar + Eliminar Skip - Descartar + Omitir Disable @@ -5316,11 +5316,11 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa QObject Database not opened - BB.DD. no abierta + Base de datos no abierta Database hash not available - Hash de la BB.DD. no disponible + Hash de la base de datos no disponible Client public key not received @@ -5364,15 +5364,15 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Add a new entry to a database. - Agregar una nueva apunte a una BB.DD. + Añadir una nueva entrada a una base de datos. Path of the database. - Ruta a la BB.DD. + Ruta a la base de datos Key file of the database. - Fichero de llave de la BB.DD. + Archivo clave de la base de datos. path @@ -5380,7 +5380,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Username for the entry. - ID Usuario para el apunte. + Usuario para la entrada. username @@ -5388,7 +5388,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa URL for the entry. - URL del apunte. + URL de la entrada. URL @@ -5396,11 +5396,11 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Prompt for the entry's password. - Solicitar contraseña del apunte. + Solicitar contraseña de la entrada. Generate a password for the entry. - Generar una contraseña para el apunte. + Generar una contraseña para la entrada. length @@ -5408,16 +5408,16 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Path of the entry to add. - Ruta del apunte para agregar. + Ruta de la entrada para añadir. Copy an entry's password to the clipboard. - Copiar la contraseña de un apunte en el portapapeles. + Copiar la contraseña de una entrada en el portapapeles. Path of the entry to clip. clip = copy to clipboard - Ruta del apunte para copiar. + Ruta de la entrada para copiar. Timeout in seconds before clearing the clipboard. @@ -5425,11 +5425,11 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Edit an entry. - Editar un apunte + Editar una entrada Title for the entry. - Título para el apunte + Título para la entrada title @@ -5437,7 +5437,7 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa Path of the entry to edit. - Ruta del apunte para editar. + Ruta de la entrada para editar. Estimate the entropy of a password. @@ -5456,10 +5456,10 @@ Espere algunos defectos y problemas menores, esta versión no está destinada pa unsupported in the future. Please consider generating a new key file. - ADVERTENCIA: Está usando un fichero de claves con un formato antiguo que puede ser + ADVERTENCIA: Está usando un archivo clave con un formato antiguo que puede ser incompatible en el futuro. -Por favor, considere generar un nuevo fichero. +Por favor, considere generar un nuevo archivo. @@ -5477,7 +5477,7 @@ Comandos disponibles: List database entries. - Alistar las apuntes de la BB.DD. + Listar las entrada de la base de datos. Path of the group to list. Default is / @@ -5485,7 +5485,7 @@ Comandos disponibles: Find entries quickly. - Encontrar las apuntes rápidamente. + Encontrar las entradas rápidamente. Search term. @@ -5497,19 +5497,19 @@ Comandos disponibles: Path of the database to merge from. - Ruta de la BB.DD. de inicio de la combinación. + Ruta de la base de datos de inicio de la combinación. Use the same credentials for both database files. - Utilizar las mismas credenciales para ambos ficheros de BB.DD. + Utilizar las mismas credenciales para ambos archivos de base de datos. Key file of the database to merge from. - Fichero llave de la BB.DD. desde la cual desea combinar. + Archivo clave de la base de datos desde la cual desea combinar. Show an entry's information. - Muestra información de un apunte. + Muestra información de una entrada. Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. @@ -5521,7 +5521,7 @@ Comandos disponibles: Name of the entry to show. - Nombre del apunte para mostrar. + Nombre de la entrada para mostrar. NULL device @@ -5549,7 +5549,7 @@ Comandos disponibles: Username - ID Usuario + Usuario Password @@ -5603,19 +5603,19 @@ Comandos disponibles: Could not create entry with path %1. - No pudo crearse el apunte con ruta %1. + No pudo crearse la entrada con ruta %1. Enter password for new entry: - Introduzca la contraseña para la nueva apunte: + Introduzca la contraseña para la nueva entrada: Writing the database failed %1. - Falló escritura de la BB.DD. %1. + Falló escritura de la base de datos %1. Successfully added entry %1. - El apunte se agregó correctamente %1. + La entrada %1 se añadió correctamente. Copy the current TOTP to the clipboard. @@ -5627,19 +5627,19 @@ Comandos disponibles: Entry %1 not found. - No se encontró el apunte %1. + No se encontró la entrada %1. Entry with path %1 has no TOTP set up. - El apunte con ruta %1 no tiene un TOTP configurado. + La entrada con ruta %1 no tiene un TOTP configurado. Entry's current TOTP copied to the clipboard! - ¡El TOTP del apunte actual se ha copiado al portapapeles! + ¡El TOTP de la entrada actual se ha copiado al portapapeles! Entry's password copied to the clipboard! - ¡La contraseña del apunte actual se ha copiado al portapapeles! + ¡La contraseña de la entrada actual se ha copiado al portapapeles! Clearing the clipboard in %1 second(s)... @@ -5660,19 +5660,19 @@ Comandos disponibles: Could not find entry with path %1. - No se pudo encontrar el apunte con la ruta %1. + No se pudo encontrar la entrada con la ruta %1. Not changing any field for entry %1. - No cambiar cualquier campo de apunte de 1%. + No cambiar cualquier campo de la entrada de 1%. Enter new password for entry: - Introduzca una nueva contraseña para el apunte: + Introduzca una nueva contraseña para la entrada: Writing the database failed: %1 - Fallo al escribir la BB.DD.: %1 + Fallo al escribir la base de datos: %1 Successfully edited entry %1. @@ -5780,7 +5780,7 @@ Comandos disponibles: Failed to load key file %1: %2 - Error al cargar el fichero de claves %1: %2 + Error al cargar el archivo clave %1: %2 Length of the generated password @@ -5820,7 +5820,7 @@ Comandos disponibles: Recursively list the elements of the group. - Alistar recursivamente los elementos del grupo. + Listar recursivamente los elementos del grupo. Cannot find group %1. @@ -5829,16 +5829,16 @@ Comandos disponibles: Error reading merge file: %1 - Error al leer el fichero a combinar: + Error al leer el archivo a combinar: %1 Unable to save database to file : %1 - No se puede guardar la BB.DD. en el fichero: %1 + No se puede guardar la base de datos en el archivo: %1 Unable to save database to file: %1 - No se puede guardar la BB.DD. en el fichero: %1 + No se puede guardar la base de datos en el archivo: %1 Successfully recycled entry %1. @@ -5846,11 +5846,11 @@ Comandos disponibles: Successfully deleted entry %1. - Se eliminó correctamente el apunte %1. + Se eliminó correctamente la entrada %1. Show the entry's current TOTP. - Muestra el apunte actual del TOTP. + Muestra la entrada actual del TOTP. ERROR: unknown attribute %1. @@ -5866,7 +5866,7 @@ Comandos disponibles: file empty - fichero vacío + archivo vacío %1: (row, col) %2,%3 @@ -5916,47 +5916,47 @@ Comandos disponibles: Create a new database. - Crear una nueva BB.DD. + Crear una base de datos nueva. File %1 already exists. - El fichero %1 ya existe. + El archivo %1 ya existe. Loading the key file failed - La carga del fichero de claves falló + La carga del archivo clave falló No key is set. Aborting database creation. - No se establece ninguna clave. Anulando la creación de BB.DD. + No se establece ninguna clave. Anulando la creación de base de datos. Failed to save the database: %1. - Error al guardar la BB.DD.: %1. + Error al guardar la base de datos: %1. Successfully created new database. - Creación correcta de nueva BB.DD. + Creación correcta de nueva base de datos. Creating KeyFile %1 failed: %2 - Error al crear el fichero de clave %1: %2 + Error al crear el archivo clave %1: %2 Loading KeyFile %1 failed: %2 - Error al cargar el fichero de claves %1: %2 + Error al cargar el archivo clave %1: %2 Path of the entry to remove. - Ruta del apunte a quitar. + Ruta de la entrada a eliminar. Existing single-instance lock file is invalid. Launching new instance. - El fichero de bloqueo de instancia única existente no es válido. Lanzando nueva instancia. + El archivo de bloqueo de instancia única existente no es válido. Lanzando nueva instancia. The lock file could not be created. Single-instance mode disabled. - El fichero de bloqueo no pudo ser creado. Modo de instancia única deshabilitado. + El archivo de bloqueo no pudo ser creado. Modo de instancia única deshabilitado. KeePassXC - cross-platform password manager @@ -5964,19 +5964,19 @@ Comandos disponibles: filenames of the password databases to open (*.kdbx) - nombre de fichero de la BB.DD. de contraseñas a abrir (*.kdbx) + nombre de archivo de la base de datos de contraseñas a abrir (*.kdbx) path to a custom config file - ruta a un fichero de configuración personalizado + ruta a un archivo de configuración personalizado key file of the database - fichero llave de la BB.DD. + archivo clave de la base de datos read password of the database from stdin - leer contraseña de la BB.DD. desdel apunte estándar + leer contraseña de la base de datos desde la entrada estándar Parent window handle @@ -5996,7 +5996,7 @@ Comandos disponibles: Database password: - Contraseña de la BB.DD.: + Contraseña de la base de datos: Cannot create new group @@ -6004,7 +6004,7 @@ Comandos disponibles: Deactivate password key for the database. - Desactivar contraseña para la BB.DD. + Desactivar contraseña para la base de datos. Displays debugging information. @@ -6012,7 +6012,7 @@ Comandos disponibles: Deactivate password key for the database to merge from. - Desactivar contraseña para la BB.DD. desde la que combinar. + Desactivar contraseña para la base de datos desde la que combinar. Version %1 @@ -6088,11 +6088,11 @@ Núcleo: %3 %4 Adds a new group to a database. - Añade un nuevo grupo a la BB.DD. + Añade un nuevo grupo a la base de datos. Path of the group to add. - Ruta del grupo a agregar. + Ruta del grupo a añadir. Group %1 already exists! @@ -6108,7 +6108,7 @@ Núcleo: %3 %4 Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - Comprueba si algunas contraseñas han sido filtradas públicamente. FILENAME debe ser la ruta de un fichero conteniendo «hashes» SHA-1 de las contraseñas filtradas en formato HIBP, como está disponible en https://haveibeenpwned.com/Passwords. + Comprueba si algunas contraseñas han sido filtradas públicamente. FILENAME debe ser la ruta de un archivo conteniendo «hashes» SHA-1 de las contraseñas filtradas en formato HIBP, como está disponible en https://haveibeenpwned.com/Passwords. FILENAME @@ -6116,19 +6116,19 @@ Núcleo: %3 %4 Analyze passwords for weaknesses and problems. - Analizar contraseñas débiles y problemas. + Analizar debilidades y problemas en las contraseñas. Failed to open HIBP file %1: %2 - Fallo al abrir fichero HIBP %1: %2 + Fallo al abrir archivo HIBP %1: %2 Evaluating database entries against HIBP file, this will take a while... - Evaluando las apuntes de la BB.DD. contra el fichero HIBP, esto tomará un rato... + Evaluando las entrada de la base de datos contra el archivo HIBP, esto tomará un rato... Close the currently opened database. - Cerrar la BB.DD. abierta actual. + Cerrar la base de datos abierta actual. Display this help. @@ -6136,7 +6136,7 @@ Núcleo: %3 %4 Yubikey slot used to encrypt the database. - La ranura de YubiKey usada para cifrar la BB.DD. + La ranura de YubiKey usada para cifrar la base de datos. slot @@ -6160,11 +6160,11 @@ Núcleo: %3 %4 Exports the content of a database to standard output in the specified format. - Exporta el contenido de la BB.DD. en la salida estándar en el formato especificado. + Exporta el contenido de la base de datos en la salida estándar en el formato especificado. Unable to export database to XML: %1 - No se puede exportar BB.DD. a XML: %1 + No se puede exportar base de datos a XML: %1 Unsupported format %1 @@ -6188,23 +6188,23 @@ Núcleo: %3 %4 Import the contents of an XML database. - Importar los contenidos de la BB.DD. XML. + Importar los contenidos de la base de datos XML. Path of the XML database export. - Ruta de la exportación de la BB.DD. XML. + Ruta de la exportación de la base de datos XML. Path of the new database. - Ruta de la nueva BB.DD. + Ruta de la nueva base de datos. Unable to import XML database export %1 - No se puede importar la BB.DD. XML de la exportación %1 + No se puede importar la base de datos XML de la exportación %1 Successfully imported database. - BB.DD. importada correctamente. + Base de datos importada correctamente. Unknown command %1 @@ -6220,7 +6220,7 @@ Núcleo: %3 %4 Yubikey slot for the second database. - Ranura YubiKey para la segunda BB.DD. + Ranura YubiKey para la segunda base de datos. Successfully merged %1 into %2. @@ -6228,15 +6228,15 @@ Núcleo: %3 %4 Database was not modified by merge operation. - La BB.DD. no fue modificada por la operación de unión + La base de datos no fue modificada por la operación de combinar Moves an entry to a new group. - Mueve un apunte a un nuevo grupo. + Mueve una entrada a un nuevo grupo. Path of the entry to move. - Ruta del apunte a mover. + Ruta de la entrada a mover. Path of the destination group. @@ -6248,7 +6248,7 @@ Núcleo: %3 %4 Entry is already in group %1. - El apunte ya está en el grupo %1. + La entrada ya está en el grupo %1. Successfully moved entry %1 to group %2. @@ -6256,7 +6256,7 @@ Núcleo: %3 %4 Open a database. - Abrir BB.DD. + Abrir base de datos Path of the group to remove. @@ -6264,7 +6264,7 @@ Núcleo: %3 %4 Cannot remove root group from database. - No se puede eliminar grupo raíz de la BB.DD. + No se puede eliminar grupo raíz de la base de datos. Successfully recycled group %1. @@ -6276,15 +6276,15 @@ Núcleo: %3 %4 Failed to open database file %1: not found - Fallo al abrir fichero de BB.DD. %1: no encontrado + Fallo al abrir archivo de base de datos %1: no encontrado Failed to open database file %1: not a plain file - Fallo al abrir fichero de BB.DD. %1: fichero de texto no plano + Fallo al abrir archivo de base de datos %1: archivo de texto no plano Failed to open database file %1: not readable - Fallo al abrir fichero de BB.DD. %1: no leíble + Fallo al abrir archivo de base de datos %1: no leíble Enter password to unlock %1: @@ -6300,11 +6300,11 @@ Núcleo: %3 %4 Enter password to encrypt database (optional): - Introduzca la contraseña para cifrar la BB.DD. (opcional): + Introduzca la contraseña para cifrar la base de datos (opcional): HIBP file, line %1: parse error - Fichero HIBP, línea %1: error de analizado + Archivo HIBP, línea %1: error de analizado Secret Service Integration @@ -6312,7 +6312,7 @@ Núcleo: %3 %4 User name - ID Usuario + Usuario %1[%2] Challenge Response - Slot %3 - %4 @@ -6377,7 +6377,7 @@ Núcleo: %3 %4 No agent running, cannot add identity. - Ningún agente en ejecución, no se puede agregar identidad. + Ningún agente en ejecución, no se puede añadir identidad. No agent running, cannot remove identity. @@ -6503,19 +6503,19 @@ Núcleo: %3 %4 <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> - <html><head/><body><p>Si la papelera de reciclaje está habilitada para la BB.DD., las apuntes serán movidas a la papelera directamente. Sino serán eliminadas sin confirmación.</p><p>Aún así se le solicitará si algun apunte es referenciada por otras.</p></body></html> + <html><head/><body><p>Si la papelera de reciclaje está habilitada para la base de datos, las entradas serán movidas a la papelera directamente. Sino serán eliminadas sin confirmación.</p><p>Aún así se le solicitará si alguna entrada es referenciada por otras.</p></body></html> Don't confirm when entries are deleted by clients. - No confirmar cuando las apuntes son eliminadas por los clientes. + No confirmar cuando las entrada son eliminadas por los clientes. Exposed database groups: - Exponer grupos de BB.DD.: + Exponer grupos de base de datos: File Name - Nombre de fichero + Nombre de archivo Group @@ -6543,15 +6543,15 @@ Núcleo: %3 %4 Database settings - Configuración de la BB.DD. + Configuración de la base de datos Edit database settings - Editar configuración de BB.DD. + Editar configuración de base de datos Unlock database - Desbloquear BB.DD. + Desbloquear base de datos Unlock database to show more information @@ -6559,7 +6559,7 @@ Núcleo: %3 %4 Lock database - Bloquear BB.DD. + Bloquear base de datos Unlock to show @@ -6634,7 +6634,7 @@ Núcleo: %3 %4 Remove - Retirar + Eliminar Path @@ -6671,11 +6671,11 @@ Núcleo: %3 %4 KeeShare key file - Fichero de clave de KeeShare + Archivo clave de KeeShare All files - Todos los ficheros + Todos los archivo Select path @@ -6750,7 +6750,7 @@ Núcleo: %3 %4 ShareExport Overwriting signed share container is not supported - export prevented - No se soporta sobrescribir contenedor compartido - exportación prevenido + No se soporta la sobrescritura de contenedor compartido sin firmar - exportación prevenida Could not write export container (%1) @@ -6758,19 +6758,19 @@ Núcleo: %3 %4 Could not embed signature: Could not open file to write (%1) - No se puede incrustar la firma: no se puede abrir el fichero para escribir (%1) + No se puede incrustar la firma: no se puede abrir el archivo para escribir (%1) Could not embed signature: Could not write file (%1) - No se puede incrustar la firma: no se puede escribir el fichero (%1) + No se puede incrustar la firma: no se puede escribir el archivo (%1) Could not embed database: Could not open file to write (%1) - No se puede incrustar la BB.DD.: no se puede abrir el fichero para escribir (%1) + No se puede incrustar la base de datos: no se puede abrir el archivo para escribir (%1) Could not embed database: Could not write file (%1) - No se puede incrustar la BB.DD.: no se puede escribir el fichero (%1) + No se puede incrustar la base de datos.: no se puede escribir el archivo (%1) Overwriting unsigned share container is not supported - export prevented @@ -6793,7 +6793,7 @@ Núcleo: %3 %4 We cannot verify the source of the shared container because it is not signed. Do you really want to import from %1? - No podemos verificar la tipografía del contenedor compartido porque no está firmado. ¿Realmente desea importar desde %1? + No podemos verificar la tipografía del contenedor compartido porque no está firmado. ¿Desea importar desde %1? Import from container with certificate @@ -6825,7 +6825,7 @@ Núcleo: %3 %4 File is not readable - El fichero no es legible + El archivo no es legible Invalid sharing container @@ -6853,7 +6853,7 @@ Núcleo: %3 %4 File does not exist - El fichero no existe + El archivo no existe Unknown share container type @@ -6963,7 +6963,7 @@ Núcleo: %3 %4 sec Seconds - segundos + seg Code size: @@ -7009,7 +7009,7 @@ Ejemplo: JBSWY3DPEHPK3PXP Are you sure you want to delete TOTP settings for this entry? - ¿Desea eliminar la configuración TOTP para esta apunte? + ¿Desea eliminar la configuración TOTP para esta entrada? @@ -7067,15 +7067,15 @@ Ejemplo: JBSWY3DPEHPK3PXP WelcomeWidget Start storing your passwords securely in a KeePassXC database - Empiece a guardar sus contraseñas con seguridad en una BB.DD. de KeePassXC + Empiece a guardar sus contraseñas con seguridad en una base de datos de KeePassXC Create new database - Crear una nueva BB.DD. + Crear una base de datos nueva Open existing database - Abrir una BB.DD. existente + Abrir una base de datos existente Import from KeePass 1 @@ -7095,11 +7095,11 @@ Ejemplo: JBSWY3DPEHPK3PXP Import from 1Password - Importar desde 1Password + Importar de 1Password Open a recent database - Abrir BB.DD. reciente + Abrir base de datos reciente diff --git a/share/translations/keepassx_et.ts b/share/translations/keepassx_et.ts index 3e4841d803..fc4db78c5b 100644 --- a/share/translations/keepassx_et.ts +++ b/share/translations/keepassx_et.ts @@ -15,7 +15,7 @@ KeePassXC is distributed under the terms of the GNU General Public License (GPL) version 2 or (at your option) version 3. - + KeePassXC-d levitatakse vastavalt GNU Üldise Avaliku Litsentsi (GPL) versioonis 2 või (sinu valikul) versioonis 3 toodud tingimustele. Contributors @@ -23,7 +23,7 @@ <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> - + <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">Vaata kaasautoreid GitHubis</a> Debug Info @@ -31,7 +31,7 @@ Include the following information whenever you report a bug: - + Vigadest teatamisel tuleks alati lisada järgnev teave: Copy to clipboard @@ -43,7 +43,7 @@ Special thanks from the KeePassXC team go to debfx for creating the original KeePassX. - + KeePassXC meeskonna eriline tänu kuulub debfx-ile algse KeePassX-i loomise eest. @@ -334,7 +334,7 @@ Lock databases after inactivity of - + Andmebaasid lukustatakse, kui neid pole kasutatud kauem kui min @@ -374,11 +374,11 @@ Don't use placeholder for empty password fields - + Tühje paroole ei varjata täppidega Hide passwords in the entry preview panel - Paroolid peidetakse kirjete eelvaatepaneelil + Kirjete eelvaatepaneelil varjatakse paroolid täppidega Hide entry notes by default @@ -422,7 +422,7 @@ Auto-Type - KeePassXC - Automaatsisestus - KeePassXC + Automaatsisestus – KeePassXC Auto-Type @@ -430,19 +430,19 @@ The Syntax of your Auto-Type statement is incorrect! - + Määratud automaatsisestuse süntaks on vigane. This Auto-Type command contains a very long delay. Do you really want to proceed? - + See automaatsisestus sisaldab väga pikka viivitust. Kas oled kindel, et soovid jätkata? This Auto-Type command contains very slow key presses. Do you really want to proceed? - + See automaatsisestus sisaldab väga aeglasi klahvivajutusi. Kas oled kindel, et soovid jätkata? This Auto-Type command contains arguments which are repeated very often. Do you really want to proceed? - + See automaatsisestus sisaldab väga sageli korduvaid argumente. Kas oled kindel, et soovid jätkata? Permission Required @@ -513,7 +513,7 @@ AutoTypeSelectDialog Auto-Type - KeePassXC - Automaatsisestus - KeePassXC + Automaatsisestus – KeePassXC Select entry to Auto-Type: @@ -528,39 +528,40 @@ BrowserAccessControlDialog KeePassXC-Browser Confirm Access - + KeePassXC-Browseri ligipääsukinnitus Remember this decision - + Otsus jäetakse meelde Allow - + Luba Deny - + Keela %1 has requested access to passwords for the following item(s). Please select whether you want to allow access. - + %1 soovib ligipääsu alltoodud kirje(te) paroolile. +Kas lubada ligipääs? Allow access - + Luba ligipääs Deny access - + Keela ligipääs BrowserEntrySaveDialog KeePassXC-Browser Save Entry - + KeePassXC-Browseri kirje salvestamine Ok @@ -573,18 +574,19 @@ Please select whether you want to allow access. You have multiple databases open. Please select the correct database for saving credentials. - + Sul on avatud mitu andmebaasi. +Vali, millisesse neist tunnused salvestada tuleks. BrowserOptionDialog Dialog - + Dialoog This is required for accessing your databases with KeePassXC-Browser - + See on vajalik andmebaasidele KeePassXC-Browseri abil ligipääsemiseks. General @@ -613,7 +615,7 @@ Please select the correct database for saving credentials. Show a &notification when credentials are requested Credentials mean login data requested via browser extension - + Tunnuste taotlemisel kuvatakse märguanne Re&quest to unlock the database if it is locked @@ -621,11 +623,11 @@ Please select the correct database for saving credentials. Only entries with the same scheme (http://, https://, ...) are returned. - + Kui see ruut on märgitud, tagastatakse ainult kirjed, mille URL-il on sama skeem (http, https vms) nagu aktiivsel veebilehel. &Match URL scheme (e.g., https://...) - + Nõutakse &URL-i skeemi vastavust (nt https://... vs. http://...) Only returns the best matches for a specific URL instead of all entries for the whole domain. @@ -652,21 +654,21 @@ Please select the correct database for saving credentials. Never &ask before accessing credentials Credentials mean login data requested via browser extension - + Tunnuste &kasutamisel ei küsita kinnitust Never ask before &updating credentials Credentials mean login data requested via browser extension - + Tunnuste &uuendamisel ei küsita kinnitust Searc&h in all opened databases for matching credentials Credentials mean login data requested via browser extension - + Tunnuseid otsitakse kõigist avatud andme&baasidest Automatically creating or updating string fields is not supported. - + Stringiväljade automaatne loomine või uuendamine pole toetatud. &Return advanced string fields which start with "KPH: " @@ -682,20 +684,20 @@ Please select the correct database for saving credentials. Support a proxy application between KeePassXC and browser extension. - + Märkimisel lubatakse KeePassXC ja brauserilaienduse vahelise puhverrakenduse tugi. Use a &proxy application between KeePassXC and browser extension - + KeePassXC ja brauserilaienduse vahel kasutatakse &puhverrakendust Use a custom proxy location if you installed a proxy manually. - + Kui paigaldasid puhverrakenduse käsitsi, saab siin määrata selle asukoha. Use a &custom proxy location Meant is the proxy for KeePassXC-Browser - + Kasutatakse kohandatud puhver&rakenduse asukohta: Browse... @@ -725,7 +727,7 @@ Please select the correct database for saving credentials. Do not ask permission for HTTP &Basic Auth An extra HTTP Basic Auth setting - + &HTTP lihtautentimiseks luba ei küsita Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 @@ -733,7 +735,7 @@ Please select the correct database for saving credentials. Please see special instructions for browser extension use below - + Vaata allpool brauserilaienduse kasutamise erijuhiseid. KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2. %3 @@ -745,11 +747,11 @@ Please select the correct database for saving credentials. Returns expired credentials. String [expired] is added to the title. - + Märkimisel tagastatakse ka aegunud tunnused. Nende pealkirja ette lisatakse [aegunud]. &Allow returning expired credentials. - + Lubatakse &aegunud tunnuste tagastamine Enable browser integration @@ -757,23 +759,23 @@ Please select the correct database for saving credentials. Browsers installed as snaps are currently not supported. - + <i>Snap</i>'ina paigaldatud brausereid praegu ei toetata. All databases connected to the extension will return matching credentials. - + Märkimisel tagastatakse sobivad tunnused kõigist laiendusega ühendatud andmebaasidest. Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + Märkimisel ei näidata hüpikakent, mis pakub KeePassHTTP pärandseadistuse migreerimist. &Do not prompt for KeePassHTTP settings migration. - + &Ei pakuta KeePassHTTP seadistuse ülekolimist Custom proxy location field - + Kohandatud puhverrakenduse asukoha väli Browser for custom proxy file @@ -788,15 +790,15 @@ Please select the correct database for saving credentials. BrowserService KeePassXC: New key association request - + Uus ühendumistaotlus – KeePassXC Save and allow access - + Salvesta ja luba ligipääs KeePassXC: Overwrite existing key? - + Kirje ülekirjutamise kinnitus – KeePassXC A shared encryption key with the name "%1" already exists. @@ -805,7 +807,7 @@ Do you want to overwrite it? KeePassXC: Update Entry - + Kirje uuendamine – KeePassXC Do you want to update the information in %1 - %2? @@ -846,7 +848,7 @@ Moved %2 keys to custom data. KeePassXC: Create a new group - + Uue grupi loomine – KeePassXC A request for creating a new group "%1" has been received. @@ -870,7 +872,11 @@ Would you like to migrate your existing settings now? Give the connection a unique name or ID, for example: chrome-laptop. - + Saadi taotlus ühenduda järgmise andmebaasiga: +%1 + +Määra palun sellele ühendusele ainukordne nimi või ID, näiteks: +chrome-laptop. @@ -896,43 +902,43 @@ chrome-laptop. CsvImportWidget Import CSV fields - + CSV väljade importimine filename - + failinimi size, rows, columns - + maht, ridade arv, veergude arv Encoding - + Kodeerimine Codec - Koodek + Kodeering: Text is qualified by - + Teksti eraldaja: Fields are separated by - + Väljade eraldaja: Comments start with - + Kommentaaride tähis: First record has field names - + Esimesel real on väljade nimed Consider '\' an escape character - + Längkriipsu "\" tuleb käsitleda paomärgina Preview @@ -940,19 +946,19 @@ chrome-laptop. Column layout - + Veergude paigutus Not present in CSV file - + ei esine CSV-failis Imported from CSV file - + Imporditud CSV-failist Original data: - + Algsed andmed: Error @@ -960,19 +966,19 @@ chrome-laptop. Empty fieldname %1 - + tühi välja nimi %1 column %1 - + %1. veerg Error(s) detected in CSV file! - + CSV-failis leiti vigu: [%n more message(s) skipped] - + [ja veel %n teade, mis jäeti vahele][ja veel %n teadet, mis jäeti vahele] CSV import: writer has errors: @@ -985,35 +991,35 @@ chrome-laptop. Field separation - + Väljade eraldaja Number of header lines to discard - + Eiratavate päiseridade arv: CSV import preview - + CSV importimise eelvaade CsvParserModel %n column(s) - + %n veerg%n veergu %1, %2, %3 file info: bytes, rows, columns - + %1, %2, %3 %n byte(s) - + %n bait%n baiti %n row(s) - + %n rida%n rida @@ -1029,7 +1035,7 @@ chrome-laptop. Unable to open file %1. - + Faili "%1" avamine pole võimalik. Error while reading the database: %1 @@ -1069,7 +1075,7 @@ Backup database located at %2 DatabaseOpenDialog Unlock Database - KeePassXC - Andmebaasi luku avamine - KeePassXC + Andmebaasi luku avamine – KeePassXC @@ -1135,15 +1141,15 @@ Please consider generating a new key file. Key file selection - + Võtmefaili valimine Hardware key slot selection - + Riistvaralise võtme pesa valimine Browse for key file - + Vali võtmefail Browse... @@ -1151,7 +1157,7 @@ Please consider generating a new key file. Refresh hardware tokens - + Värskenda riistvaraliste võtmete loendit Hardware Key: @@ -1182,7 +1188,10 @@ Please consider generating a new key file. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - + Andmebaasi luku avamine ebaõnnestus ja parooli ei sisestatud. +Kas soovid "tühja" parooliga uuesti proovida? + +Selle veateate ilmumise vältimiseks peaksid avama andmebaasi seadetes turvalisuse jaotise ja parooli uuesti määrama. Retry with empty password @@ -1190,12 +1199,13 @@ To prevent this error from appearing, you must go to "Database Settings / S Enter Additional Credentials (if any): - + Lisatunnused (kui vaja): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> <p>Click for more information...</p> - + <p>Kasutada saab riistvaralist võtit nagu <strong>YubiKey</strong> või <strong>OnlyKey</strong>, millel on HMAC-SHA1 jaoks seadistatud pesa.</p> +<p>Lisateabe saamiseks klõpsa.</p> <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> @@ -1203,24 +1213,25 @@ To prevent this error from appearing, you must go to "Database Settings / S Key file help - + Abi võtmefailide kohta ? - + ? Select key file... - + Vali võtmefail... Cannot use database file as key file - + Andmebaasifail ei sobi võtmefailiks You cannot use your database file as a key file. If you do not have a key file, please leave the field empty. - + Andmebaasifaili ennast ei saa võtmefailina kasutada. +Kui andmebaasi avamiseks pole võtmefaili vaja, jäta see väli tühjaks. @@ -1379,30 +1390,30 @@ This is necessary to maintain compatibility with the browser plugin. Remove selected key - + Eemalda valitud võti DatabaseSettingsWidgetEncryption Encryption Algorithm: - + Krüptimisalgoritm: AES: 256 Bit (default) - + AES: 256-bitine (vaikimisi) Twofish: 256 Bit - + Twofish: 256-bitine Key Derivation Function: - + Võtmetuletusfunktsioon: Transform rounds: - + Teisendusraundide arv: Benchmark 1-second delay @@ -1414,7 +1425,7 @@ This is necessary to maintain compatibility with the browser plugin. Parallelism: - + Rööpsus: Decryption Time: @@ -1446,11 +1457,11 @@ This is necessary to maintain compatibility with the browser plugin. This is only important if you need to use your database with other programs. - + See on oluline vaid juhul, kui andmebaasi on vaja kasutada ka teiste programmidega. KDBX 4.0 (recommended) - KDBX 4.0 (soovitatav) + KDBX 4.0 (soovituslik) KDBX 3.1 @@ -1464,17 +1475,19 @@ This is necessary to maintain compatibility with the browser plugin. Number of rounds too high Key transformation rounds - + Liiga suur raundide arv You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours or days (or even longer) to open! - + Määrasid väga suure Argon2 võtmeteisendusraundide arvu. + +Kui jätad selle väiksemaks muutmata, võib andmebaasi avamine võtta tunde või päevi – või veelgi kauem! Understood, keep number - + Jäta ikkagi muutmata Cancel @@ -1483,13 +1496,15 @@ If you keep this number, your database may take hours or days (or even longer) t Number of rounds too low Key transformation rounds - + Liiga väike raundide arv You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database may be too easy to crack! - + Määrasid väga väikse AES-KDF-i võtmeteisendusraundide arvu. + +Kui jätad selle suuremaks muutmata, võib andmebaasi olla lihtne lahti murda! KDF unchanged @@ -1537,11 +1552,11 @@ If you keep this number, your database may be too easy to crack! Key derivation function - + Võtmetuletusfunktsioon Transform rounds - + Teisendusraundide arv Memory usage @@ -1549,7 +1564,7 @@ If you keep this number, your database may be too easy to crack! Parallelism - + Rööpsus @@ -1692,15 +1707,15 @@ Seda toimingut ei saa tagasi võtta. No encryption key added - + Ühtki krüptimisvõtit pole lisatud You must add at least one encryption key to secure your database! - + Andmebaasi kaitsmiseks tuleb lisada vähemalt üks krüptimisvõti. No password set - + Parooli pole määratud WARNING! You have not set a password. Using a database without a password is strongly discouraged! @@ -1710,7 +1725,7 @@ Are you sure you want to continue without a password? Unknown error - + Tundmatu viga Failed to change master key @@ -1718,7 +1733,7 @@ Are you sure you want to continue without a password? Continue without password - + Jätka ilma paroolita @@ -1748,7 +1763,7 @@ Are you sure you want to continue without a password? Hover over lines with error icons for further information. - + Veaikooniga ridade kohta täpsema teabe saamiseks hoia hiirekursorit vastaval real. Name @@ -1788,7 +1803,7 @@ Are you sure you want to continue without a password? The database was modified, but the changes have not yet been saved to disk. - + Andmebaasi on muudetud, kuid muudatused pole veel kettale salvestatud. Number of groups @@ -1804,7 +1819,7 @@ Are you sure you want to continue without a password? The database contains entries that have expired. - + Andmebaas sisaldab aegunud kirjeid. Unique passwords @@ -1816,15 +1831,15 @@ Are you sure you want to continue without a password? More than 10% of passwords are reused. Use unique passwords when possible. - + Rohkem kui 10% paroolidest on kasutatud korduvalt. Kui vähegi võimalik, kasuta ainukordseid paroole. Maximum password reuse - + Sagedasima parooli kasutuskordade arv Some passwords are used more than three times. Use unique passwords when possible. - + Mõnda parooli on kasutatud enam kui kolm korda. Kui vähegi võimalik, kasuta ainukordseid paroole. Number of short passwords @@ -1832,7 +1847,7 @@ Are you sure you want to continue without a password? Recommended minimum password length is at least 8 characters. - + Paroolide soovituslik pikkus on vähemalt 8 märki. Number of weak passwords @@ -1840,7 +1855,7 @@ Are you sure you want to continue without a password? Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - + Soovitatav on kasutada pikki juhuslikest märkidest koosnevaid paroole, mille tugevushinnang on "hea" või "suurepärane". Average password length @@ -1852,11 +1867,11 @@ Are you sure you want to continue without a password? Average password length is less than ten characters. Longer passwords provide more security. - + Paroolide keskmine pikkus on alla kümne märgi. Pikemad paroolid on turvalisemad. Please wait, database statistics are being calculated... - + Palun oota, andmebaasi statistikat arvutatakse... @@ -1931,7 +1946,7 @@ This is definitely a bug, please report it to the developers. Failed to open %1. It either does not exist or is not accessible. - + Andmebaasi "%1" avamine ebaõnnestus. Faili pole kas enam olemas või puudub sellele juurdepääsuõigus. Export database to HTML file @@ -1951,7 +1966,7 @@ This is definitely a bug, please report it to the developers. You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - + Asusid andmebaasi eksportima krüptimata failivormingusse. See jätab su paroolid jm tundliku teabe kaitseta! Kas oled kindel, et soovid jätkata? @@ -2047,21 +2062,23 @@ Do you want to merge your changes? You are editing an entry. Discard changes and lock anyway? - + Kirje muutmine on pooleli. Kas unustada muudatused ja andmebaas ikkagi lukustada? "%1" was modified. Save changes? - + Andmebaasi "%1" on muudetud. +Kas salvestada muudatused? Database was modified. Save changes? - + Andmebaasi on muudetud. +Kas salvestada muudatused? Save changes? - + Muudatuste salvestamine Could not open the new database file while attempting to autoreload. @@ -2170,7 +2187,7 @@ Disable safe saves and try again? Select private key - + Privaatvõtme valimine File too large to be a private key @@ -2182,11 +2199,11 @@ Disable safe saves and try again? Entry history - + Kirje ajalugu Add entry - + Kirje lisamine Edit entry @@ -2198,7 +2215,7 @@ Disable safe saves and try again? New attribute - + Uus atribuut Are you sure you want to remove this attribute? @@ -2234,7 +2251,7 @@ Disable safe saves and try again? New attribute %1 - + Uus atribuut %1 [PROTECTED] Press reveal to view or edit @@ -2254,7 +2271,7 @@ Disable safe saves and try again? <empty URL> - + <tühi URL> Are you sure you want to remove this URL? @@ -2372,7 +2389,7 @@ Disable safe saves and try again? Custom Auto-Type sequence - + Omamääratud automaatsisestuse jada Open Auto-Type help webpage @@ -2380,38 +2397,38 @@ Disable safe saves and try again? Existing window associations - + Juba määratud aknaseosed Add new window association - + Lisa uus aknaseos Remove selected window association - + Eemalda valitud aknaseos You can use an asterisk (*) to match everything - + Suvalise märgijada vastavuse määramiseks saab kasutada tärni (*) Set the window association title - + Määra seostatava akna tiitel You can use an asterisk to match everything - + Suvalise märgijada vastavuse määramiseks saab kasutada tärni Custom Auto-Type sequence for this window - + Omamääratud automaatsisestuse jada selle akna jaoks EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - + Need seaded mõjutavad kirje käitumist brauserilaiendusega. General @@ -2423,11 +2440,11 @@ Disable safe saves and try again? Hide this entry from the browser extension - + See kirje peidetakse brauserilaienduse eest Additional URL's - + Lisa-URL-id Add @@ -2439,7 +2456,7 @@ Disable safe saves and try again? Edit - + Muuda @@ -2462,23 +2479,23 @@ Disable safe saves and try again? Entry history selection - + Kirje ajaloolise seisu valimine Show entry at selected history state - + Näita valitud ajaloolist seisu Restore entry to selected history state - + Taasta valitud ajalooline seis Delete selected history state - + Kustuta valitud ajalooline seis Delete all history - + Kustuta kogu selle kirje ajalugu @@ -2584,7 +2601,7 @@ Disable safe saves and try again? Remove key from agent after - + Võti eemaldatakse agendilt pärast seconds @@ -2596,7 +2613,7 @@ Disable safe saves and try again? Remove key from agent when database is closed/locked - + Võti eemaldatakse agendilt andmebaasi sulgemisel/lukustamisel Public key @@ -2604,7 +2621,7 @@ Disable safe saves and try again? Add key to agent when database is opened/unlocked - + Võti lisatakse agendile andmebaasi avamisel / lukust lahti tegemisel Comment @@ -2649,7 +2666,7 @@ Disable safe saves and try again? Require user confirmation when this key is used - + Võtme kasutamisel küsitakse kasutajalt kinnitust Remove key from agent after specified seconds @@ -3104,7 +3121,7 @@ This may cause the affected plugins to malfunction. Save attachments - + Kaasatud failide salvestamine Unable to create directory: @@ -3122,17 +3139,20 @@ This may cause the affected plugins to malfunction. Unable to save attachments: %1 - + Kaasatud failide salvestamine pole võimalik: +%1 Unable to open attachment: %1 - + Kaasatud faili avamine pole võimalik: +%1 Unable to open attachments: %1 - + Kaasatud failide avamine pole võimalik: +%1 Confirm remove @@ -3358,11 +3378,11 @@ This may cause the affected plugins to malfunction. Hide Usernames - Kasutajanimed peidetud + Kasutajanimede varjamine Hide Passwords - Paroolid peidetud + Paroolide varjamine Fit to window @@ -3430,7 +3450,7 @@ This may cause the affected plugins to malfunction. IconDownloaderDialog Download Favicons - + Saidiikoonide allalaadimine Cancel @@ -3455,11 +3475,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list... - + Palun oota, kirjete nimekirja töödeldakse... Downloading... - + Allalaadimine... Ok @@ -3467,15 +3487,15 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - + On juba olemas Download Failed - + Allalaadimine ebaõnnestus Downloading favicons (%1/%2)... - + Saidiikoonide allalaadimine (%1/%2)... @@ -3486,38 +3506,38 @@ You can enable the DuckDuckGo website icon service in the security section of th Close message - + Sulge teade Kdbx3Reader Unable to calculate master key - + ülemvõtme arvutamine pole võimalik. Unable to issue challenge-response. - + pretensiooni ja vastuse väljastamine pole võimalik. missing database headers - + andmebaasipäised on puudu. Header doesn't match hash - + päis ei vasta räsile. Invalid header id size - + sobimatu päise-ID suurus Invalid header field length - + sobimatu päisevälja suurus Invalid header data length - + sobimatu päiseandmete pikkus Invalid credentials were provided, please try again. @@ -3530,46 +3550,46 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. Kdbx3Writer Unable to issue challenge-response. - + pretensiooni ja vastuse väljastamine pole võimalik. Unable to calculate master key - + ülemvõtme arvutamine pole võimalik. Kdbx4Reader missing database headers - + andmebaasipäised on puudu. Unable to calculate master key - + ülemvõtme arvutamine pole võimalik. Invalid header checksum size - + sobimatu päise kontrollsumma suurus Header SHA256 mismatch - + päise SHA256 mittevastavus Unknown cipher - + tundmatu šiffer Invalid header id size - + sobimatu päise-ID suurus Invalid header field length - + sobimatu päisevälja suurus Invalid header data length - + sobimatu päiseandmete pikkus Failed to open buffer for KDF parameters in header @@ -3581,15 +3601,15 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. Legacy header fields found in KDBX4 file. - + KDBX4-failist leiti iganenud päisevälju. Invalid inner header id size - + sobimatu sisemine päise-ID suurus Invalid inner header field length - + sobimatu sisemine päisevälja suurus Invalid inner header binary size @@ -3679,7 +3699,7 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. Unable to calculate master key - + ülemvõtme arvutamine pole võimalik. Failed to serialize KDF parameters variant map @@ -3691,7 +3711,7 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. KdbxReader Unsupported cipher - + toetamata šiffer Invalid compression flags length @@ -3699,7 +3719,7 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. Unsupported compression algorithm - + toetamata pakkimisalgoritm Invalid master seed size @@ -3727,7 +3747,7 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. Not a KeePass database. - + tegemist pole KeePassi andmebaasiga. The selected file is an old KeePass 1 database (.kdb). @@ -3738,7 +3758,7 @@ This is a one-way migration. You won't be able to open the imported databas Unsupported KeePass 2 database version. - + toetamata KeePass 2 andmebaasiversioon Invalid cipher uuid length: %1 (length=%2) @@ -3761,7 +3781,7 @@ This is a one-way migration. You won't be able to open the imported databas No root group - + juurgrupp puudub Missing icon uuid or data @@ -3845,15 +3865,15 @@ This is a one-way migration. You won't be able to open the imported databas Invalid bool value - + sobimatu tõeväärtus Invalid date time value - + sobimatu ajaväärtus Invalid color value - + sobimatu värviväärtus Invalid color rgb part @@ -3861,11 +3881,11 @@ This is a one-way migration. You won't be able to open the imported databas Invalid number value - + sobimatu arvväärtus Invalid uuid value - + sobimatu UUID-väärtus Unable to decompress binary @@ -3876,7 +3896,9 @@ This is a one-way migration. You won't be able to open the imported databas XML error: %1 Line %2, column %3 - + XML-i viga: +%1 +Rida %2, veerg %3 @@ -3898,15 +3920,15 @@ Line %2, column %3 Not a KeePass database. - + tegemist pole KeePassi andmebaasiga. Unsupported encryption algorithm. - + toetamata krüptimisalgoritm Unsupported KeePass database version. - + toetamata KeePassi andmebaasiversioon Unable to read encryption IV @@ -3915,11 +3937,11 @@ Line %2, column %3 Invalid number of groups - + sobimatu gruppide arv Invalid number of entries - + sobimatu kirjete arv Invalid content hash size @@ -3943,7 +3965,7 @@ Line %2, column %3 Unable to calculate master key - + ülemvõtme arvutamine pole võimalik. Key transformation failed @@ -4146,7 +4168,7 @@ Kui probleem püsib, võib andmebaasifail olla rikutud. <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out!</p> - + <p>Lisaturvalisuse saavutamiseks võid määrata juhuslikke baite sisaldava võtmefaili.</p><p>Hoia seda salajas ja ära seda ära kaota, sest muidu ei saa andmebaasi lukku enam avada!</p> Legacy key file format @@ -4162,7 +4184,8 @@ Please go to the master key settings and generate a new key file. Error loading the key file '%1' Message: %2 - + Viga võtmefaili "%1" laadimisel. +Teade: %2 Key files @@ -4174,27 +4197,27 @@ Message: %2 Create Key File... - + Võtmefaili loomine Error creating key file - + Viga võtmefaili loomisel Unable to create key file: %1 - + Võtmefaili pole võimalk luua: %1 Select a key file - + Võtmefaili valimine Key file selection - + Võtmefaili valimine Browse for key file - + Vali võtmefail Browse... @@ -4202,28 +4225,29 @@ Message: %2 Generate a new key file - + Genereeri uus võtmefail Note: Do not use a file that may change as that will prevent you from unlocking your database! - + NB: ära kasuta faili, mis võib muutuda, kuna sel juhul pole enam võimalik andmebaasi lukku avada! Invalid Key File - + Sobimatu võtmefail You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + Andmebaasi ennast ei saa võtmefailina kasutada. Palun vali mõni muu fail või genereeri uus võtmefail. Suspicious Key File - + Kahtlane võtmefail The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - + Valitud võtmefail näeb välja nagu parooliandmebaasifail. Võtmefail ei tohi kunagi muutuda, sest muidu kaotad igaveseks oma andmebaasile ligipääsu. +Kas oled kindel, et soovid selle failiga jätkata? @@ -4672,7 +4696,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - + Siin saab määrata andmebaasi krüptimisseaded. Hiljem saab neid muuta andmebaasi seadetes. Advanced Settings @@ -4691,7 +4715,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. - + Siin saab määrata andmebaasi krüptimisseaded. Hiljem saab neid muuta andmebaasi seadetes. @@ -4702,7 +4726,7 @@ Expect some bugs and minor issues, this version is not meant for production use. A master key known only to you protects your database. - + Kaitse andmebaasi ülemvõtmega, mida ainult sina tead. @@ -4908,7 +4932,7 @@ Expect some bugs and minor issues, this version is not meant for production use. <p>A password is the primary method for securing your database.</p><p>Good passwords are long and unique. KeePassXC can generate one for you.</p> - + <p>Parool on esmane meetod andmebaasi turvamiseks.</p><p>Hea parool on pikk ja ainukordne. Soovi korral võib lasta KeePassXC-l parooli genereerida.</p> Passwords do not match. @@ -4948,11 +4972,11 @@ Expect some bugs and minor issues, this version is not meant for production use. strength Password strength - + tugevus entropy - + entroopia Password @@ -5092,7 +5116,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Logograms - + Logogrammid #$%&&@^`~ @@ -5108,7 +5132,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Character set to exclude from generated password - + Märgid, mida genereeritavas paroolis esineda ei tohi Do not include: @@ -5136,7 +5160,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Generated password - + Genereeritud parool Upper-case letters @@ -5168,7 +5192,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Password length - + Parooli pikkus Word Case: @@ -5301,7 +5325,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Unknown error - + Tundmatu viga Add a new entry to a database. @@ -5471,11 +5495,11 @@ Võimalikud käsud: malformed string - + vigane string missing closing quote - + puuduv lõpujutumärk Group @@ -5810,27 +5834,27 @@ Võimalikud käsud: AES: 256-bit - + AES: 256-bitine Twofish: 256-bit - + Twofish: 256-bitine ChaCha20: 256-bit - + ChaCha20: 256-bitine Argon2 (KDBX 4 – recommended) - + Argon2 (KDBX 4 – soovituslik) AES-KDF (KDBX 4) - + AES-KDF (KDBX 4) AES-KDF (KDBX 3.1) - + AES-KDF (KDBX 3.1) Invalid Settings @@ -5896,7 +5920,7 @@ Võimalikud käsud: KeePassXC - cross-platform password manager - KeePassXC - mitmeplatvormne paroolihaldur + KeePassXC – mitmeplatvormne paroolihaldur filenames of the password databases to open (*.kdbx) @@ -5928,7 +5952,7 @@ Võimalikud käsud: KeePassXC - Error - Viga - KeePassXC + Viga – KeePassXC Database password: @@ -6348,23 +6372,23 @@ Kernel: %3 %4 Every search term must match (ie, logical AND) - + Tagastatakse kirjed, mis vastavad kõigile otsingusõnadele (s.t tegu on loogilise JA-tehtega) Modifiers - + Modifikaatorid exclude term from results - + välja arvatud otsingusõna match term exactly - + otsingusõna täpne sobivus use regex in term - + otsingusõna on regulaaravaldis Fields @@ -6376,11 +6400,11 @@ Kernel: %3 %4 match anything - + suvaline märgijada match one - + suvaline üks märk logical OR @@ -6395,7 +6419,7 @@ Kernel: %3 %4 SearchWidget Search - Otsimine + Otsinguseaded Clear @@ -6435,19 +6459,19 @@ Kernel: %3 %4 Show notification when credentials are requested - + Tunnuste taotlemisel kuvatakse märguanne <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> - + <html><head/><body><p>Kui andmebaasi prügikast on sisse lülitatud, teisaldatakse kirjed sinna, muul juhul kustutatakse kohe lõplikult.</p><p>Kui kustutatavale kirjele viitab mõni teine kirje, küsitakse siiski kinnitust ka siis, kui see märkeruut on märgitud.</p></body></html> Don't confirm when entries are deleted by clients. - + Klientidel lubatakse kirjeid kinnituseta kustutada Exposed database groups: - Nähtavaks tehtud andmebaasigrupid: + Nähtavaks tehtud grupid andmebaasides: File Name @@ -6483,7 +6507,7 @@ Kernel: %3 %4 Edit database settings - + Muuda andmebaasi seadeid Unlock database @@ -6491,7 +6515,7 @@ Kernel: %3 %4 Unlock database to show more information - + Lisateabe nägemiseks ava andmebaasi lukk Lock database @@ -6499,7 +6523,7 @@ Kernel: %3 %4 Unlock to show - + Nägemiseks ava lukk None @@ -7002,39 +7026,39 @@ Example: JBSWY3DPEHPK3PXP WelcomeWidget Start storing your passwords securely in a KeePassXC database - + Hakka oma paroole turvaliselt KeePassXC andmebaasis hoidma Create new database - + Loo uus andmebaas Open existing database - + Ava olemasolev andmebaas Import from KeePass 1 - + Impordi KeePass 1-st Import from CSV - + Impordi CSV-failist Recent databases - + Viimatised andmebaasid Welcome to KeePassXC %1 - + Tere tulemast KeePassXC %1 kasutama! Import from 1Password - + Impordi 1Passwordist Open a recent database - + Ava hiljutine andmebaas @@ -7049,23 +7073,23 @@ Example: JBSWY3DPEHPK3PXP <p>If you own a <a href="https://www.yubico.com/">YubiKey</a>, you can use it for additional security.</p><p>The YubiKey requires one of its slots to be programmed as <a href="https://www.yubico.com/products/services-software/personalization-tools/challenge-response/">HMAC-SHA1 Challenge-Response</a>.</p> - + <p>Kui sul on <a href="https://www.yubico.com/">YubiKey</a>, võid lisaturvalisuse nimel seda kasutada.</p><p>Ühe YubiKey pesa peab programmeerima <a href="https://www.yubico.com/products/services-software/personalization-tools/challenge-response/">HMAC-SHA1 pretensiooni ja vastusena</a>.</p> No YubiKey detected, please ensure it's plugged in. - + YubiKey'd ei tuvastatud. Vaata, et see oleks ühendatud. No YubiKey inserted. - + YubiKey'd pole sisestatud. Refresh hardware tokens - + Värskenda riistvaraliste võtmete loendit Hardware key slot selection - + Riistvaralise võtme pesa valimine \ No newline at end of file diff --git a/share/translations/keepassx_ja.ts b/share/translations/keepassx_ja.ts index 7158f0e657..0737f1c5da 100644 --- a/share/translations/keepassx_ja.ts +++ b/share/translations/keepassx_ja.ts @@ -6199,7 +6199,7 @@ CPU アーキテクチャー: %2 Unable to import XML database export %1 - + XMLデータベース %1 をインポートできません Successfully imported database. diff --git a/share/translations/keepassx_ko.ts b/share/translations/keepassx_ko.ts index 5b925ec3e0..29a0c725fa 100644 --- a/share/translations/keepassx_ko.ts +++ b/share/translations/keepassx_ko.ts @@ -450,7 +450,7 @@ KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + 항목별 자동 입력을 사용하려면 KeePassXC에 접근성 권한을 허용해야 합니다. 권한을 이미 허용했다면 KeePassXC를 다시 시작해 보십시오. @@ -506,7 +506,7 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + 항목별 자동 입력을 사용하려면 KeePassXC에 접근성 및 화면 녹화 권한을 허용해야 합니다. 화면 녹화 권한은 창 제목과 항목을 찾기 위해서 필요합니다. 권한을 이미 허용했다면 KeePassXC를 다시 시작해 보십시오. @@ -878,7 +878,11 @@ Would you like to migrate your existing settings now? Give the connection a unique name or ID, for example: chrome-laptop. - + 다음 데이터베이스 연결 요청을 받았습니다: +%1 + +데이터베이스 연결을 식별할 수 있는 이름이나 ID를 입력하십시오. 예: +chrome-laptop. @@ -1211,11 +1215,12 @@ To prevent this error from appearing, you must go to "Database Settings / S <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> <p>Click for more information...</p> - + <p><strong>YubiKey</strong>나 <strong>OnlyKey</strong>와 같은 하드웨어 키의 슬롯을 HMAC-SHA1로 설정 시 사용할 수 있습니다.</p> +<p>더 많은 정보를 보려면 누르십시오...</p> <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - + <p>데이터베이스 보안 향상을 위하여 마스터 암호 외에도 비밀 파일을 사용할 수 있습니다. 데이터베이스 보안 설정에서 비밀 파일을 생성할 수 있습니다.</p><p>이 파일은 *.kdbx 데이터베이스 파일이 <strong>아닙니다!</strong><br>만약 키 파일이 없다면 이 필드를 비워 두십시오.</p><p>더 많은 정보를 보려면 누르십시오...</p> Key file help @@ -1881,7 +1886,7 @@ Are you sure you want to continue without a password? Please wait, database statistics are being calculated... - + 데이터베이스 통계를 계산하는 동안 잠시 기다려 주십시오... @@ -6322,7 +6327,7 @@ CPU 아키텍처: %2 Show the protected attributes in clear text. - + 보호된 속성을 평문으로 표시합니다. diff --git a/share/translations/keepassx_nb.ts b/share/translations/keepassx_nb.ts index 43123408a3..0af6622cb9 100644 --- a/share/translations/keepassx_nb.ts +++ b/share/translations/keepassx_nb.ts @@ -35,7 +35,7 @@ Copy to clipboard - Kopier til utklippstavla + Kopier til utklippstavle Project Maintainers: @@ -97,11 +97,11 @@ Reset Settings? - + Tilbakestill innstillinger? Are you sure you want to reset all general and security settings to default? - + Er du sikker på at du vil tilbakestille alle generelle og sikkerhetsinnstillinger til standard? @@ -249,7 +249,7 @@ Language: - + Språk: (restart program to activate) @@ -269,7 +269,7 @@ Minimize - + Minimer Drop to background @@ -298,7 +298,7 @@ Language selection - + Valg av språk Reset Settings to Default @@ -411,7 +411,7 @@ Clear search query after - + Tøm søket etter @@ -446,7 +446,7 @@ Permission Required - + Tillatelse kreves KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. @@ -502,7 +502,7 @@ AutoTypePlatformMac Permission Required - + Tillatelse kreves KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. @@ -550,7 +550,7 @@ Velg om du vil gi tilgang eller ikke. Allow access - + Gi tilgang Deny access @@ -743,7 +743,7 @@ Vennligst velg riktig database for å lagre legitimasjon. &Brave - + &Brave Returns expired credentials. String [expired] is added to the title. @@ -1124,15 +1124,15 @@ Vurder å opprette en ny nøkkelfil. Unlock KeePassXC Database - + Låse opp KeePassXC Database Enter Password: - + Oppgi passord: Password field - + Passord felt Toggle password visibility @@ -1191,7 +1191,7 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password - + Prøv igjen med tomt passord Enter Additional Credentials (if any): @@ -1726,7 +1726,7 @@ Er du sikker på at du vil fortsette uten passord? Continue without password - + Fortsett uten passord @@ -2550,7 +2550,7 @@ Deaktivere sikker lagring og prøve igjen? Password field - + Passord felt Toggle password visibility @@ -2826,7 +2826,7 @@ Supported extensions are: %1. Password field - + Passord felt Toggle password visibility @@ -4555,7 +4555,7 @@ Expect some bugs and minor issues, this version is not meant for production use. &Password Generator - + &Passord generator Download favicon @@ -4906,7 +4906,7 @@ Expect some bugs and minor issues, this version is not meant for production use. PasswordEdit Passwords do not match - + Passordene er ikke like Passwords match so far @@ -4941,7 +4941,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Password field - + Passord felt Toggle password visibility @@ -6248,7 +6248,7 @@ Kjerne: %3 %4 Enter password to unlock %1: - + Skriv inn passord for å låse opp %1: Invalid YubiKey slot %1 diff --git a/share/translations/keepassx_pt_BR.ts b/share/translations/keepassx_pt_BR.ts index 4e5b1349e1..0c53862fa1 100644 --- a/share/translations/keepassx_pt_BR.ts +++ b/share/translations/keepassx_pt_BR.ts @@ -77,7 +77,7 @@ Icon only - Só Ícones + Só ícones Text only @@ -124,11 +124,11 @@ File Management - Gerenciamento de Arquivo + Gerenciamento de arquivo Safely save database files (may be incompatible with Dropbox, etc) - Salvar seguramente os arquivos de banco de dados (pode ser incompatível com o Dropbox, etc) + Salvar os arquivos de banco de dados com segurança (pode ser incompatível com o Dropbox, etc) Backup database file before saving @@ -156,7 +156,7 @@ Use group icon on entry creation - Usar ícone de grupo na criação da entrada + Usar ícone do grupo na criação da entrada Hide the entry preview panel @@ -176,19 +176,19 @@ Show a system tray icon - Mostrar um ícone da bandeja do sistema + Mostrar um ícone de bandeja do sistema Dark system tray icon - Ícone de bandeja do sistema escuro + Ícone de bandeja para sistema em modo escuro (dark mode) Hide window to system tray when minimized - Ocultar janela na bandeja de sistema quando minimizada + Ocultar janela para bandeja de sistema quando minimizada Auto-Type - Autodigitação + Auto-Digitar Use entry title to match windows for global Auto-Type @@ -204,7 +204,7 @@ Global Auto-Type shortcut - Atalho para Auto-Digitação Global + Atalho para Auto-Digitar global Auto-Type typing delay @@ -221,7 +221,7 @@ Movable toolbar - Barra de Ferramentas Móvel + Barra de ferramentas móvel Remember previously used databases @@ -233,15 +233,15 @@ Remember database key files and security dongles - Lembre-se do arquivo-chave e dongles de segurança do banco de dados + Lembrar do arquivo-chave e dongles de segurança do banco de dados Check for updates at application startup once per week - Verificar atualizações na inicialização do aplicativo uma vez por semana + Verificar por atualizações na inicialização do aplicativo uma vez por semana Include beta releases when checking for updates - Incluem versões betas durante a verificação de atualizações + Incluir versões betas durante a verificação de atualizações Button style: @@ -253,11 +253,11 @@ (restart program to activate) - (reiniciar programa ao ativar) + (reiniciar programa para ativar) Minimize window after unlocking database - Minimizar a janela após desbloquear banco de dados + Minimizar a janela após destrancar banco de dados Minimize when opening a URL @@ -273,7 +273,7 @@ Drop to background - Soltar no fundo + Enviar para trás Favicon download timeout: @@ -281,7 +281,7 @@ Website icon download timeout in seconds - Esgotamento do download de ícone do website em segundos + Esgotamento de tempo do download de ícone do website em segundos sec @@ -302,11 +302,11 @@ Reset Settings to Default - Restaurar Configurações para o Padrão + Restaurar configurações para o padrão Global auto-type shortcut - Atalho global para Auto-Digitar + Atalho para Auto-Digitar global Auto-type character typing delay milliseconds @@ -334,7 +334,7 @@ Lock databases after inactivity of - Travar bancos de dados após inatividade de + Trancar bancos de dados após inatividade de min @@ -350,19 +350,19 @@ Lock databases when session is locked or lid is closed - Bloqueio de bancos de dados quando a sessão estiver bloqueada ou a tampa está fechada + Trancar banco de dados quando a sessão for bloqueada ou a tela for fechada Forget TouchID when session is locked or lid is closed - Esqueça o TouchID quando a sessão está bloqueada ou a tampa está fechada + Esquecer TouchID quando a sessão for bloqueada ou a tela for fechada Lock databases after minimizing the window - Bloquear bancos de dados após minimizar a janela + Trancar bancos de dados após minimizar a janela Re-lock previously locked database after performing Auto-Type - Bloquear novamente o banco de dados anteriormente bloqueado depois de executar o Auto-Digitar + Trancar novamente o banco de dados anteriormente trancado depois de executar o Auto-Digitar Don't require password repeat when it is visible @@ -370,15 +370,15 @@ Don't hide passwords when editing them - Não ocultar senhas quando estiver editando elas + Não ocultar senhas enquanto as estiver editando Don't use placeholder for empty password fields - Não use espaço reservado para campos de senha vazios + Não use preenchimento para campos de senha vazios Hide passwords in the entry preview panel - Ocultar senhas no painel da prévia de entrada + Ocultar senhas no painel de prévia de entrada Hide entry notes by default @@ -398,11 +398,11 @@ Touch ID inactivity reset - Reiniciar a initividade do Touch ID + Redefinição de inatividade do Touch ID Database lock timeout seconds - Tempo limite em segundos de bloqueio do banco de dados + Tempo limite em segundos para trancar o banco de dados min @@ -422,27 +422,27 @@ Auto-Type - KeePassXC - Autodigitação - KeePassXC + Auto-Digitar - KeePassXC Auto-Type - Autodigitação + Auto-Digitar The Syntax of your Auto-Type statement is incorrect! - A sintaxe da sua sequência de autodigitação está incorreta! + A sintaxe da sua sequência do Auto-Digitar está incorreta! This Auto-Type command contains a very long delay. Do you really want to proceed? - Este comando de autodigitação contém um tempo de espera muito longo. Você tem certeza de que deseja continuar? + Este comando de Auto-Digitar contém um tempo de espera muito longo. Você tem certeza de que deseja continuar? This Auto-Type command contains very slow key presses. Do you really want to proceed? - Este comando de autodigitação contém pressionamentos de teclas muito lentos. Você tem certeza de que deseja continuar? + Este comando de Auto-Digitar contém pressionamentos de teclas muito lentas. Você tem certeza de que deseja continuar? This Auto-Type command contains arguments which are repeated very often. Do you really want to proceed? - Este comando de autodigitação contém parâmetros que são repetidos muitas vezes. Você tem certeza de que deseja continuar? + Este comando de Auto-Digitar contém parâmetros que são repetidos muitas vezes. Você tem certeza de que deseja continuar? Permission Required @@ -450,7 +450,7 @@ KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - KeePassXC requer a permissão de Acessibilidade para realizar Auto-Digitar no nível das entradas. Se você já garantiu as permissões, você deve reiniciar o KeePassXC. + KeePassXC requer a permissão de Acessibilidade para realizar Auto-Digitar no nível de entrada. Se você já garantiu as permissões, você deve reiniciar o KeePassXC. @@ -491,7 +491,7 @@ AutoTypeMatchView Copy &username - Copiar nome de &usuário + Copiar n&ome de usuário Copy &password @@ -506,18 +506,18 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - KeePassXC requer as permissões de Acessibilidade e de Gravação de Tela para realizar o Auto-Digitar global. Gravação de Tela é necessário para para usar o título da janela e encontrar as entradas. Se você já garantiu as permissões, você deve reiniciar o KeePassXC. + KeePassXC requer as permissões de Acessibilidade e de Gravação de Tela para realizar o Auto-Digitar global. Gravação de Tela é necessário para usar o título da janela e encontrar as entradas. Se você já garantiu as permissões, você deve reiniciar o KeePassXC. AutoTypeSelectDialog Auto-Type - KeePassXC - Autodigitação - KeePassXC + Auto-Digitar - KeePassXC Select entry to Auto-Type: - Escolha uma entrada para digitar automaticamente: + Escolha uma entrada para Auto-Digitar: Search... @@ -528,7 +528,7 @@ BrowserAccessControlDialog KeePassXC-Browser Confirm Access - KeePassXC-Browser Confirmar Acesso + Confirmar acesso do KeePassXC-Browser Remember this decision @@ -561,7 +561,7 @@ Selecione se deseja permitir o acesso. BrowserEntrySaveDialog KeePassXC-Browser Save Entry - KeePassXC-Browser Salvar Entrada + Salvar entrada do KeePassXC-Browser Ok @@ -602,7 +602,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. &Firefox - &Firefox + F&irefox &Chromium @@ -619,7 +619,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Re&quest to unlock the database if it is locked - Pe&dir para desbloquear a base de dados se estiver bloqueada + Pe&dir para destrancar o banco de dados se estiver trancado Only entries with the same scheme (http://, https://, ...) are returned. @@ -627,11 +627,11 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. &Match URL scheme (e.g., https://...) - &Corresponder ao esquema de URL (por exemplo, https://...) + C&orresponder ao esquema de URL (por exemplo, https://...) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Retorna apenas os melhores encontrados para um URL específico em vez de todas entradas para o domínio todo. + Retorna apenas as melhores correspondências para um URL específico em vez de todas entradas para todo o domínio. &Return only best-matching credentials @@ -640,12 +640,12 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Sort &matching credentials by title Credentials mean login data requested via browser extension - Ordenar credenciais &correspondentes por título + Ordenar credenciais correspondentes por &título Sort matching credentials by &username Credentials mean login data requested via browser extension - Ordenar credenciais correspondentes por &nome de usuário + Ordenar credenciais correspondentes por nome de &usuário Advanced @@ -654,7 +654,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Never &ask before accessing credentials Credentials mean login data requested via browser extension - Nunca peça confirmação antes de &acessar as credenciais + Nunca peça confirmação antes de acessar as c&redenciais Never ask before &updating credentials @@ -676,11 +676,11 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup. - Atualiza o KeePassXC ou keepassxc-proxy caminho binário automaticamente para o envio de mensagens de scripts nativo na inicialização. + Atualiza os caminhos dos binários do KeePassXC ou keepassxc-proxy automaticamente para o envio de mensagens de scripts nativo na inicialização. Update &native messaging manifest files at startup - Atualizar arquivos de manifesto de mensagens &nativas na inicialização + A&tualizar arquivos de manifesto de mensagens nativas na inicialização Support a proxy application between KeePassXC and browser extension. @@ -688,21 +688,21 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Use a &proxy application between KeePassXC and browser extension - Uso um aplicativo &proxy entre KeePassXC e uma extensão do navegador + Usar um aplicativo &proxy entre KeePassXC e uma extensão do navegador Use a custom proxy location if you installed a proxy manually. - Use um local de proxy personalizado se você instalou um proxy manualmente. + Usar um local de proxy personalizado se você instalou um proxy manualmente. Use a &custom proxy location Meant is the proxy for KeePassXC-Browser - Use um endereço de proxy &customizado + Usar um endereço de proxy &customizado Browse... Button for opening file dialog - Navegar... + Procurar... <b>Warning:</b> The following options can be dangerous! @@ -714,7 +714,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. &Tor Browser - &Navegador Tor + &Tor Browser Executable Files @@ -727,7 +727,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Do not ask permission for HTTP &Basic Auth An extra HTTP Basic Auth setting - Não pedir permissão para HTTP &Basic Auth + Não pedir permissão para &HTTP Basic Auth Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 @@ -743,7 +743,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. &Brave - &Bravo + &Brave Returns expired credentials. String [expired] is added to the title. @@ -771,7 +771,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. &Do not prompt for KeePassHTTP settings migration. - &Não alertar sobre a migração das configurações do KeePassHTTP. + Não alertar sobre a migração das configurações do &KeePassHTTP. Custom proxy location field @@ -779,7 +779,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais. Browser for custom proxy file - Navegar por arquivo proxy personalizado + Procurar por arquivo proxy personalizado <b>Warning</b>, the keepassxc-proxy application was not found!<br />Please check the KeePassXC installation directory or confirm the custom path in advanced options.<br />Browser integration WILL NOT WORK without the proxy application.<br />Expected Path: %1 @@ -804,7 +804,7 @@ Por favor, selecione o banco de dados correto para salvar as credenciais.A shared encryption key with the name "%1" already exists. Do you want to overwrite it? Uma chave de criptografia compartilhada com o nome "%1" já existe. -Você deseja sobrescrever-la? +Você deseja substituí-la? KeePassXC: Update Entry @@ -824,7 +824,7 @@ Você deseja sobrescrever-la? KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Convertido KeePassHTTP atributos + KeePassXC: Atributos do KeePassHTTP convertidos Successfully converted attributes from %1 entry(s). @@ -878,7 +878,7 @@ Gostaria de migrar suas configurações existentes agora? Give the connection a unique name or ID, for example: chrome-laptop. - Você receber um pedido de associação para o seguinte banco de dados: + Você recebeu um pedido de associação para o seguinte banco de dados: %1 Dê à conexão um nome único ou um ID, por exemplo: @@ -893,7 +893,7 @@ chrome-laptop Append ' - Clone' to title - Anexar '-Clonar' ao título + Anexar '-Clone' ao título Replace username and password with references @@ -948,7 +948,7 @@ chrome-laptop Preview - Visualização + Pré-visualização Column layout @@ -989,7 +989,7 @@ chrome-laptop CSV import: writer has errors: %1 - Importação de CSV: o gravador tem erros: + Importação de CSV: erros durante a escrita: %1 @@ -1054,7 +1054,7 @@ chrome-laptop Key not transformed. This is a bug, please report it to the developers! - Chave não transformada. Este é um bug, por favor denuncie para os desenvolvedores! + Chave não transformada. Este é um bug, por favor reporte para os desenvolvedores! %1 @@ -1083,7 +1083,7 @@ Backup do banco de dados alocado em %2 DatabaseOpenDialog Unlock Database - KeePassXC - Desbloquear Banco de Dados - KeePassXC + Destrancar banco de dados - KeePassXC @@ -1098,16 +1098,16 @@ Backup do banco de dados alocado em %2 Legacy key file format - Formato de chave antigo + Formato de arquivo-chave antigo You are using a legacy key file format which may become unsupported in the future. Please consider generating a new key file. - Você está usando um formato de arquivo de chave legado que pode tornar-se sem suporte no futuro. + Você está usando um formato de arquivo-chave antigo que pode perder o suporte no futuro. -Por favor, considere-se gerar um novo arquivo de chave. +Por favor, considere gerar um novo arquivo-chave. Don't show this warning again @@ -1135,11 +1135,11 @@ Por favor, considere-se gerar um novo arquivo de chave. Unlock KeePassXC Database - Desbloquear Banco de Dados do KeePassXC + Destrancar banco de dados do KeePassXC Enter Password: - Digitar Senha: + Digite a senha: Password field @@ -1151,7 +1151,7 @@ Por favor, considere-se gerar um novo arquivo de chave. Key file selection - Seleção do arquivo de chave + Seleção do arquivo-chave Hardware key slot selection @@ -1159,11 +1159,11 @@ Por favor, considere-se gerar um novo arquivo de chave. Browse for key file - Navegar por arquivo chave + Procurar por arquivo-chave Browse... - Navegar... + Procurar... Refresh hardware tokens @@ -1179,7 +1179,7 @@ Por favor, considere-se gerar um novo arquivo de chave. TouchID for Quick Unlock - TouchID para desbloqueio rápido + TouchID para destrancar rapidamente Clear @@ -1187,29 +1187,29 @@ Por favor, considere-se gerar um novo arquivo de chave. Clear Key File - Limpar arquivo de chave + Limpar arquivo-chave Unlock failed and no password given - Desbloqueio falhou e nenhuma senha foi digitada + Destrancar falhou e nenhuma senha foi digitada Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - Desbloqueio do banco de dados falhou e você não digitou uma senha. + Falha ao destrancar banco de dados e você não digitou uma senha. Você quer tentar com uma senha "vazia"? Para impedir que esses erros apareçam, você deve ir em "Configurações do banco de dados / Segurança" e resetar sua senha. Retry with empty password - Retentar com senha vazia + Tentar novamente com senha vazia Enter Additional Credentials (if any): - Entre com as Credenciais Adicionais (se tiver alguma): + Entre com as credenciais adicionais (se tiver alguma): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> @@ -1219,11 +1219,11 @@ Para impedir que esses erros apareçam, você deve ir em "Configurações d <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - <p>Em adição à sua senha mestra, você pode usar um arquivo secreto para aumentar a segurança de seu banco de dados. Este arquivo pode ser gerado em suas configurações de segurança do banco de dados.</p><p>Este <strong>não</strong> é seu arquivo de banco de dados *.kdbx!<br>Se você não tem um arquivo chave, deixe o campo em branco.</p><p>Clique para maiores informações...</p> + <p>Em adição à sua senha mestra, você pode usar um arquivo secreto para aumentar a segurança de seu banco de dados. Este arquivo pode ser gerado em suas configurações de segurança do banco de dados.</p><p>Este <strong>não</strong> é seu arquivo de banco de dados *.kdbx!<br>Se você não tem um arquivo-chave, deixe o campo em branco.</p><p>Clique para maiores informações...</p> Key file help - Ajuda do Arquivo Chave + Ajuda do arquivo-chave ? @@ -1231,17 +1231,17 @@ Para impedir que esses erros apareçam, você deve ir em "Configurações d Select key file... - Selecione um arquivo chave... + Selecione um arquivo-chave... Cannot use database file as key file - Não use arquivos de banco de dados (*.kdbx) como arquivo chave + Não use arquivos de banco de dados (*.kdbx) como arquivo-chave You cannot use your database file as a key file. If you do not have a key file, please leave the field empty. - Você não pode usar seu arquivo de banco de dados como arquivo chave. -Se você não tem um arquivo chave, por favor deixe o campo vazio. + Você não pode usar seu arquivo de banco de dados como arquivo-chave. +Se você não tem um arquivo-chave, por favor deixe o campo vazio. @@ -1255,7 +1255,7 @@ Se você não tem um arquivo chave, por favor deixe o campo vazio. DatabaseSettingsDialog Advanced Settings - Definições avançadas + Configurações avançadas General @@ -1271,11 +1271,11 @@ Se você não tem um arquivo chave, por favor deixe o campo vazio. Encryption Settings - Definições de cifra + Configurações de criptografia Browser Integration - Integração com o Navegador + Integração com o navegador @@ -1294,7 +1294,7 @@ Se você não tem um arquivo chave, por favor deixe o campo vazio. Move KeePassHTTP attributes to KeePassXC-Browser &custom data - Mover os atributos do KeePassHTTP para o KeePassXC-Browser &dados personalizados + Mover os atributos do KeePassHTTP para os &dados personalizados do KeePassXC-Browser Stored keys @@ -1384,7 +1384,7 @@ Permissões para acessar entradas serão revogadas. The active database does not contain an entry with permissions. - A base de dados ativa não contém uma entrada com permissões. + O banco de dados ativo não contém uma entrada com permissões. Move KeePassHTTP attributes to custom data @@ -1409,7 +1409,7 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador.DatabaseSettingsWidgetEncryption Encryption Algorithm: - Algoritmo de Encriptação: + Algoritmo de criptografia: AES: 256 Bit (default) @@ -1421,7 +1421,7 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador. Key Derivation Function: - Função de Derivação de Chave: + Função de derivação da chave: Transform rounds: @@ -1433,7 +1433,7 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador. Memory Usage: - Uso de Memória: + Uso de memória: Parallelism: @@ -1441,7 +1441,7 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador. Decryption Time: - Hora da descriptografia: + Tempo de descriptografia: ?? s @@ -1487,13 +1487,13 @@ Isso é necessário para manter a compatibilidade com o plugin do navegador. Number of rounds too high Key transformation rounds - Número de voltas muito alto + Número de rodadas muito alto You are using a very high number of key transform rounds with Argon2. If you keep this number, your database may take hours or days (or even longer) to open! - Você está usando um número muito elevado de transformação chave rodadas com Argon2. + Você está usando um número muito elevado de rodadas de transformação de chave com Argon2. Se você mantiver este número, seu banco de dados pode levar horas ou dias (ou até mais) para abrir! @@ -1514,7 +1514,7 @@ Se você mantiver este número, seu banco de dados pode levar horas ou dias (ou You are using a very low number of key transform rounds with AES-KDF. If you keep this number, your database may be too easy to crack! - Você está usando um número muito baixo de transformação chave rodadas com KDF-AES. + Você está usando um número muito baixo de rodadas de transformação de chave com KDF-AES. Se você manter este número, seu banco de dados pode ser facilmente crackeado! @@ -1560,11 +1560,11 @@ Se você manter este número, seu banco de dados pode ser facilmente crackeado!< Encryption algorithm - Algorítimo da criptografia + Algorítimo de criptografia Key derivation function - Função de derivação de chave + Função de derivação da chave Transform rounds @@ -1572,7 +1572,7 @@ Se você manter este número, seu banco de dados pode ser facilmente crackeado!< Memory usage - Uso da memória + Uso de memória Parallelism @@ -1719,7 +1719,7 @@ Esta ação não é reversível. No encryption key added - Chave de cifra não adicionada + Chave de criptografia não adicionada You must add at least one encryption key to secure your database! @@ -1908,7 +1908,7 @@ Tem certeza de que deseja continuar sem uma senha? Merge database - Juntar banco de dados + Mesclar banco de dados Open KeePass 1 database @@ -1934,7 +1934,7 @@ Tem certeza de que deseja continuar sem uma senha? The created database has no key or KDF, refusing to save it. This is definitely a bug, please report it to the developers. O banco de dados criado não possui chave ou KDF, recusando-se a salvá-lo. -Este é definitivamente um bug, por favor denuncie para os desenvolvedores. +Este é definitivamente um bug, por favor reporte para os desenvolvedores. Select CSV file @@ -1952,7 +1952,7 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores. %1 [Locked] Database tab name modifier - %1 [Bloqueada] + %1 [Trancado] %1 [Read-only] @@ -1965,7 +1965,7 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores. Export database to HTML file - Exportar banco de dados como arquivo HTML + Exportar banco de dados como arquivo &HTML HTML file @@ -1996,7 +1996,7 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores. Do you really want to move entry "%1" to the recycle bin? - Pretende realmente mover a entrada "%1" para a lixeira? + Você realmente quer mover a entrada "%1" para a lixeira? Do you really want to move %n entry(s) to the recycle bin? @@ -2020,11 +2020,11 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores. No current database. - Nenhuma base de dados atual. + Nenhum banco de dados atual. No source database, nothing to do. - Nenhuma base de dados de origem, nada a fazer. + Nenhum banco de dados de origem, nada a fazer. Search Results (%1) @@ -2040,17 +2040,17 @@ Este é definitivamente um bug, por favor denuncie para os desenvolvedores. The database file has changed. Do you want to load the changes? - A base de dados foi alterada. Deseja carregar as alterações? + O banco de dados foi alterado. Deseja carregar as alterações? Merge Request - Juntar Pedido + Mesclar Pedido The database file has changed and you have unsaved changes. Do you want to merge your changes? O arquivo de banco de dados foi alterado e você tem alterações não salvas. -Você deseja combinar suas alterações? +Você deseja mesclar suas alterações? Empty recycle bin? @@ -2062,7 +2062,7 @@ Você deseja combinar suas alterações? Do you really want to delete %n entry(s) for good? - Você realmente quer apagar %n entrada(s) para o bem?Você realmente quer apagar %n entrada(s) para o bem? + Você realmente quer apagar %n entrada(s) para o bem?Você realmente quer apagar %n entrada(s) permanentemente? Delete entry(s)? @@ -2074,11 +2074,11 @@ Você deseja combinar suas alterações? Lock Database? - Travar banco de dados? + Trancar banco de dados? You are editing an entry. Discard changes and lock anyway? - Você está editando uma entrada. Descartar as mudanças e travar de qualquer maneira? + Você está editando uma entrada. Descartar as mudanças e trancar assim mesmo? "%1" was modified. @@ -2146,11 +2146,11 @@ Deseja desabilitar salvamento seguro e tentar novamente? Successfully merged the database files. - Fundiu com sucesso os arquivos do banco de dados. + Arquivos do banco de dados foram mesclados com sucesso. Database was not modified by merge operation. - Banco de dados não foi modificado pela operação de mesclagem. + O banco de dados não foi modificado pela operação de mesclagem. Shared group... @@ -2181,7 +2181,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Auto-Type - Autodigitação + Auto-Digitar Properties @@ -2285,7 +2285,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Browser Integration - Integração com o Navegador + Integração com o navegador <empty URL> @@ -2312,7 +2312,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Edit Name - Editar Nome + Editar nome Protect @@ -2375,15 +2375,15 @@ Deseja desabilitar salvamento seguro e tentar novamente? EditEntryWidgetAutoType Enable Auto-Type for this entry - Habilitar Auto-Digitação para esta entrada + Habilitar Auto-Digitar para esta entrada Inherit default Auto-Type sequence from the &group - Herdar sequência pré-definida de Auto-Digitação do &grupo + Herdar sequência pré-definida de Auto-Digitar do &grupo &Use custom Auto-Type sequence: - &Usar sequência de Auto-Digitação personalizada: + &Usar sequência de Auto-Digitar personalizada: Window Associations @@ -2399,7 +2399,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Window title: - Título da Janela: + Título da janela: Use a specific sequence for this association: @@ -2411,7 +2411,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Open Auto-Type help webpage - Abrir a página de ajuda da auto-digitar + Abrir a página de ajuda do Auto-Digitar Existing window associations @@ -2439,7 +2439,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Custom Auto-Type sequence for this window - Sequência de auto-digitar personalizada para esta janela + Sequência de Auto-Digitar personalizada para esta janela @@ -2548,7 +2548,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Username: - Nome de Usuário: + Nome de usuário: Expires @@ -2627,11 +2627,11 @@ Deseja desabilitar salvamento seguro e tentar novamente? Fingerprint - Fingerprint + Impressão digital Remove key from agent when database is closed/locked - Remover chave do agente ao fechar/bloquear o banco de dados + Remover chave do agente ao fechar/trancar o banco de dados Public key @@ -2639,7 +2639,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Add key to agent when database is opened/unlocked - Adicionar chave ao agente quando abrir/desbloquear o banco de dados + Adicionar chave ao agente quando abrir/destrancar o banco de dados Comment @@ -2668,7 +2668,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Browse... Button for opening file dialog - Navegar... + Procurar... Attachment @@ -2692,11 +2692,11 @@ Deseja desabilitar salvamento seguro e tentar novamente? Browser for key file - Navegar por arquivo chave + Procurar por arquivo-chave External key file - Arquivo chave externo + Arquivo-chave externo Select attachment file @@ -2807,7 +2807,7 @@ Deseja desabilitar salvamento seguro e tentar novamente? Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - Sua versão do KeePassXC não suporta esse tipo de recipiente. + Sua versão do KeePassXC não suporta compartilhamento desse tipo de recipiente. Extensões suportadas são: %1 @@ -2829,11 +2829,11 @@ Extensões suportadas são: %1 Database export is currently disabled by application settings. - Exportação de banco de dados está atualmente desativado por configurações do aplicativo. + Exportação de banco de dados está atualmente desativado nas configurações do aplicativo. Database import is currently disabled by application settings. - Importação de banco de dados está atualmente desativado por configurações do aplicativo. + Importação de banco de dados está atualmente desativado nas configurações do aplicativo. Sharing mode field @@ -2845,7 +2845,7 @@ Extensões suportadas são: %1 Browser for share file - Navegar por arquivo compartilhado + Procurar por arquivo compartilhado Password field @@ -2884,7 +2884,7 @@ Extensões suportadas são: %1 Auto-Type - Autodigitação + Auto-Digitar &Use default Auto-Type sequence of parent group @@ -2955,7 +2955,7 @@ Extensões suportadas são: %1 All files - Todos arquivos + Todos os arquivos Confirm Delete @@ -3337,7 +3337,7 @@ Isto pode causar mal funcionamento dos plugins afetados. Autotype - Auto-Digitação + Auto-Digitar Window @@ -3405,7 +3405,7 @@ Isto pode causar mal funcionamento dos plugins afetados. Hide Passwords - Ocultar Senhas + Ocultar senhas Fit to window @@ -3435,7 +3435,7 @@ Isto pode causar mal funcionamento dos plugins afetados. FdoSecrets::Service Failed to register DBus service at %1: another secret service is running. - Falha ao registrar serviço DBus em %1: outro serviço secreto está aberto. + Falha ao registrar serviço DBus em %1: outro Secret Service está aberto. %n Entry(s) was used by %1 @@ -3447,7 +3447,7 @@ Isto pode causar mal funcionamento dos plugins afetados. FdoSecretsPlugin Fdo Secret Service: %1 - Serviço Secreto Fdo: %1 + Fdo Secret Service: %1 @@ -3511,11 +3511,11 @@ Você pode habilitar o serviço de ícones do DuckDuckGo na seção de seguranç Already Exists - Já Existe + Já existe Download Failed - Falha no Download + Falha no download Downloading favicons (%1/%2)... @@ -3714,12 +3714,12 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido.Kdbx4Writer Invalid symmetric cipher algorithm. - Algoritmo de cifra simétrica inválido. + Algoritmo de criptografia simétrica inválido. Invalid symmetric cipher IV size. IV = Initialization Vector for symmetric cipher - Tamanho de cifra simétrica IV inválida. + Tamanho de criptografia simétrica IV inválida. Unable to calculate master key @@ -3735,7 +3735,7 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido.KdbxReader Unsupported cipher - Cifra não suportada + Criptografia não suportada Invalid compression flags length @@ -3767,7 +3767,7 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido. Invalid inner random stream cipher - Cifra de fluxo aleatório interno inválido + Criptografia de fluxo aleatório interno inválido Not a KeePass database. @@ -3778,10 +3778,10 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido. - O arquivo selecionado é um velho banco de dados do KeePass 1 (.kdb) + O arquivo selecionado é um banco de dados antigo do KeePass 1 (.kdb) -Você pode importá-lo clicando em Banco de Dados > "Importar banco de dados do KeePss 1..." -Isto é uma migração de caminho único. Você não poderá abrir o banco de dados importado com a velha versão KeePassX 0.4. +Você pode importá-lo clicando em Banco de Dados > "Importar banco de dados do KeePass 1..." +Isto é uma migração de caminho único. Você não poderá abrir o banco de dados importado com a versão antiga do KeePassX 0.4. Unsupported KeePass 2 database version. @@ -3789,7 +3789,7 @@ Isto é uma migração de caminho único. Você não poderá abrir o banco de da Invalid cipher uuid length: %1 (length=%2) - Tamanho de cifra uuid inválida: %1 (tamanho=%2) + Tamanho de criptografia uuid inválida: %1 (tamanho=%2) Unable to parse UUID: %1 @@ -3828,7 +3828,7 @@ Isto é uma migração de caminho único. Você não poderá abrir o banco de da Invalid group icon number - Número do grupo de ícone inválido + Número inválido de ícones de grupo Invalid EnableAutoType value @@ -3856,7 +3856,7 @@ Isto é uma migração de caminho único. Você não poderá abrir o banco de da Invalid entry icon number - Item inválido número de ícone + Entrada de número de ícone inválida History element in history entry @@ -3868,15 +3868,15 @@ Isto é uma migração de caminho único. Você não poderá abrir o banco de da History element with different uuid - Elemento de história com diferente uuid + Elemento de histórico com uuid diferente Duplicate custom attribute found - Atributo customizado duplicado encontrado + Atributo personalizado duplicado encontrado Entry string key or value missing - Chave de cadeia de caracteres de entrada ou valor ausente + Entrada de chave ou valor ausente Duplicate attachment found @@ -3980,7 +3980,7 @@ Linha %2, coluna %3 Invalid number of transform rounds - Número inválido de ciclos de transformção + Número inválido de rodadas de transformação Unable to construct group tree @@ -4000,91 +4000,91 @@ Linha %2, coluna %3 Invalid group field type number - Grupo inválido número do tipo de campo + Tipo de número do campo de grupo inválido Invalid group field size - Tamanho do campo Grupo inválido + Tamanho do campo de grupo inválido Read group field data doesn't match size - Leitura de grupo dados do campo não correspondem em tamanho + Leitura dos dados do campo de grupo não corresponde com o tamanho Incorrect group id field size - Tamanho de campo de id de grupo incorreto + Tamanho de campo do id do grupo incorreto Incorrect group creation time field size - Grupo incorreto tamanho do campo de hora de criação + Tamanho do campo de criação de tempo do grupo incorreto Incorrect group modification time field size - Grupo incorreto tamanho do campo de hora de modificação + Tamanho do campo de modificação do tempo do grupo incorreto Incorrect group access time field size - Grupo incorreto tamanho do campo de hora de acesso + Tamanho do campo de acesso do tempo do grupo incorreto Incorrect group expiry time field size - Grupo incorreto tamanho do campo de hora de expiração + Tamanho do campo de expiração do tempo do grupo incorreto Incorrect group icon field size - Grupo incorreto tamanho do campo de ícone + Tamanho do campo de ícone do grupo incorreto Incorrect group level field size - Grupo incorreto tamanho do campo de nível + Tamanho do campo de nível do grupo incorreto Invalid group field type - Grupo incorreto tipo de campo + Tipo de campo de grupo inválido Missing group id or level - Grupo ausente id ou nível + Id ou nível do grupo ausente Missing entry field type number - Item ausente número do tipo de campo + Entrada de campo para tipo de número ausente Invalid entry field size - Item inválido tamanho do campo + Tamanho de entrada de campo inválido Read entry field data doesn't match size - Leitura do dados de campo de entrada não correspondem com o tamanho + Leitura do campo de entrada de dados não corresponde ao tamanho Invalid entry uuid field size - Entrada inválida tamanho do campo uuid + Tamanho de campo de entrada uuid inválida Invalid entry group id field size - Item inválido tamanho do campo de id de grupo + Tamanho de entrada do campo de id do grupo inválido Invalid entry icon field size - Item inválido tamanho de campo de ícone + Tamanho de entrada do campo de ícone inválido Invalid entry creation time field size - Item inválido tamanho do campo de hora de criação + Tamanho de entrada do campo de criação do tempo inválido Invalid entry modification time field size - Item inválido Tamanho do campo de hora de modificação + Tamanho de entrada do campo de modificação do tempo inválido Invalid entry expiry time field size - Tamanho de campo de tempo de expiração entrada inválida + Tamanho de entrada do campo de expiração do tempo inválido Invalid entry field type - Tipo de campo de entrada inválido + Tipo de entrada de campo inválido unable to seek to content position @@ -4191,30 +4191,30 @@ Se este erro ocorrer novamente, seu banco de dados pode estar corrompido. Key File - Arquivo Chave + Arquivo-chave <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out!</p> - <p>Você pode adicionar um arquivo de chave contendo bytes aleatórios para segurança adicional.</p><p>Você deve mantê-lo em segredo e nunca perdê-lo ou você será bloqueado!</p> + <p>Você pode adicionar um arquivo-chave contendo bytes aleatórios para segurança adicional.</p><p>Você deve mantê-lo em segredo e nunca perdê-lo ou você será bloqueado!</p> Legacy key file format - Formato de chave antigo + Formato de arquivo-chave antigo You are using a legacy key file format which may become unsupported in the future. Please go to the master key settings and generate a new key file. - Você está usando um formato de arquivo de chave antigo que pode ficar + Você está usando um formato de arquivo-chave antigo que pode ficar sem suporte no futuro. -Por favor, vá para as configurações da chave mestra e gere um novo arquivo de chave. +Por favor, vá para as configurações da senha mestre e gere um novo arquivo-chave. Error loading the key file '%1' Message: %2 - Erro ao carregar o arquivo de chave '%1' + Erro ao carregar o arquivo-chave '%1' Mensagem: %2 @@ -4227,15 +4227,15 @@ Mensagem: %2 Create Key File... - Criar Arquivo-Chave... + Criar arquivo-chave... Error creating key file - Erro ao criar o arquivo de chave + Erro ao criar o arquivo-chave Unable to create key file: %1 - Não foi possível criar arquivo de chave: %1 + Não foi possível criar arquivo-chave: %1 Select a key file @@ -4243,40 +4243,40 @@ Mensagem: %2 Key file selection - Seleção do arquivo de chave + Seleção do arquivo-chave Browse for key file - Navegar por arquivo chave + Procurar por arquivo-chave Browse... - Navegar... + Procurar... Generate a new key file - Gerar um novo arquivo chave + Gerar um novo arquivo-chave Note: Do not use a file that may change as that will prevent you from unlocking your database! - Nota: Não use um arquivo que possa ser modificado, pois isso irá impedir que você desbloqueie seu banco de dados! + Nota: Não use um arquivo que possa ser modificado, pois isso irá impedir que você destranque seu banco de dados! Invalid Key File - Arquivo chave inválido + Arquivo-chave inválido You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - Você não pode usar o banco de dados atual como seu próprio arquivo chave. Por favor, escolha um arquivo diferente ou faça um novo arquivo chave. + Você não pode usar o banco de dados atual como seu próprio arquivo-chave. Por favor, escolha um arquivo diferente ou gere um novo arquivo-chave. Suspicious Key File - Arquivo chave suspeito + Arquivo-chave suspeito The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - O arquivo chave escolhido parece com um arquivo de banco de dados. Um arquivo chave deve ser um arquivo estático que nunca sofrerá mudanças, pois senão você perderá acesso ao seu banco de dados para sempre. + O arquivo-chave escolhido parece com um arquivo de banco de dados. Um arquivo-chave deve ser um arquivo estático que nunca sofrerá mudanças, pois senão você perderá acesso ao seu banco de dados para sempre. Tem certeza que deseja continuar com este arquivo? @@ -4320,11 +4320,11 @@ Tem certeza que deseja continuar com este arquivo? &Save database - &Salvar base de dados + &Salvar banco de dados &Close database - &Fechar base de dados + &Fechar banco de dados &Delete entry @@ -4336,7 +4336,7 @@ Tem certeza que deseja continuar com este arquivo? &Delete group - &Apagar grupo + A&pagar grupo Sa&ve database as... @@ -4352,7 +4352,7 @@ Tem certeza que deseja continuar com este arquivo? Copy &username - Copiar nome de &usuário + Copiar n&ome de usuário Copy username to clipboard @@ -4368,7 +4368,7 @@ Tem certeza que deseja continuar com este arquivo? &Lock databases - &Trancar base de dados + &Trancar banco de dados &Title @@ -4502,7 +4502,7 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. &New group - &Novo Grupo + &Novo grupo Add a new group @@ -4510,7 +4510,7 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Change master &key... - Mudar &chave mestra + M&udar chave mestra &Database settings... @@ -4522,7 +4522,7 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Perform &Auto-Type - Executar &Auto Digitação + Executar Auto-&Digitar Open &URL @@ -4550,7 +4550,7 @@ Recomendamos que você use o AppImage disponível em nossa página de downloads. Show TOTP QR Code... - Exibir Código QR do TOTP... + Exibir QR Code do TOTP... NOTE: You are using a pre-release version of KeePassXC! @@ -4576,11 +4576,11 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç &Check for Updates... - &Verificar Atualizações... + &Verificar por atualizações... Downlo&ad all favicons - Downlo&ad todos os favicons + &Baixar todos os favicons Sort &A-Z @@ -4620,7 +4620,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç &Online Help... - &Ajuda Online... + Ajuda &Online... Go to online documentation (opens browser) @@ -4726,7 +4726,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç En&cryption Settings - Definições de &cifra + Configurações de &criptografia Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. @@ -4734,18 +4734,18 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Advanced Settings - Definições avançadas + Configurações avançadas Simple Settings - Definições básicas + Configurações básicas NewDatabaseWizardPageEncryption Encryption Settings - Definições de cifra + Configurações de criptografia Here you can adjust the database encryption settings. Don't worry, you can change them later in the database settings. @@ -4786,7 +4786,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Unable to init cipher for opdata01: %1 - Não foi possível iniciar cifra para opdata01: %1 + Não foi possível iniciar criptografia para opdata01: %1 Unable to read all HMAC signature bytes @@ -4838,14 +4838,14 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Unable to derive master key: %1 - Não foi possível derivar senha-mestra: %1 + Não foi possível derivar senha mestre: %1 OpenSSHKey Invalid key file, expecting an OpenSSH key - Arquivo chave inválido, é esperado uma chave OpenSSH + Arquivo-chave inválido. É esperado uma chave OpenSSH PEM boundary mismatch @@ -4857,11 +4857,11 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Key file way too small. - O modo do arquivo chave é muito pequeno. + O arquivo-chave é muito pequeno. Key file magic header id invalid - O id do cabeçalho mágico do arquivo chave é invalido + O id do cabeçalho mágico do arquivo-chave é invalido Found zero keys @@ -4873,7 +4873,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Corrupted key file, reading private key failed - Arquivo chave corrompido, leitura da chave privada falhou + Arquivo-chave corrompido. Leitura da chave privada falhou No private key payload to decrypt @@ -4885,15 +4885,15 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Passphrase is required to decrypt this key - Senha é necessária para decriptar esta chave + Frase secreta é necessária para descriptografar esta chave Key derivation failed, key file corrupted? - A derivação da chave falhou, o arquivo chave esta corrompido? + A derivação da chave falhou. O arquivo-chave esta corrompido? Decryption failed, wrong passphrase? - Decriptação falhou, senha errada? + Descriptografia falhou, frase secreta errada? Unexpected EOF while reading public key @@ -4925,11 +4925,11 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Unknown cipher: %1 - Cifra desconhecida: %1 + Criptografia desconhecida: %1 Cipher IV is too short for MD5 kdf - Cifra de IV é muito curta para MD5 kdf + Criptografia de IV é muito curta para MD5 kdf Unknown KDF: %1 @@ -4955,7 +4955,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç PasswordEditWidget Enter password: - Insira senha: + Digite a senha: Confirm password: @@ -5043,7 +5043,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Passphrase - Senha + Frase secreta Wordlist: @@ -5191,7 +5191,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Regenerate - Regenerar + Gerar novamente Generated password @@ -5235,7 +5235,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Regenerate password - Regerar senha + Gerar senha novamente Copy password @@ -5289,7 +5289,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Empty - Vazio + Esvaziar Remove @@ -5305,7 +5305,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç Merge - Fundir + Mesclar Continue @@ -5336,7 +5336,7 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç KeePassXC association failed, try again - KeePassXC associação falhou, tente novamente + Associação KeePassXC falhou, tente novamente Encryption key is not recognized @@ -5456,9 +5456,9 @@ Espere alguns bugs e problemas menores, esta versão não é para uso em produç unsupported in the future. Please consider generating a new key file. - Aviso: Você está usando um formato de arquivo de chave legado que pode tornar-se sem suporte no futuro. + Aviso: Você está usando um formato de arquivo-chave antigo que pode perder o suporte no futuro. -Por favor, considere gerar um novo arquivo de chave. +Por favor, considere gerar um novo arquivo-chave. @@ -5492,11 +5492,11 @@ Comandos disponíveis: Merge two databases. - Juntar dois bancos de dados. + Mesclar dois bancos de dados. Path of the database to merge from. - Caminho do banco de dados para combinar como base. + Caminho do banco de dados para mesclar como base. Use the same credentials for both database files. @@ -5504,7 +5504,7 @@ Comandos disponíveis: Key file of the database to merge from. - Arquivo de chave do banco de dados para combinar como base. + Arquivo-chave do banco de dados para mesclar como base. Show an entry's information. @@ -5584,11 +5584,11 @@ Comandos disponíveis: Generate a new random diceware passphrase. - Gere uma senha aleatória diceware novamente. + Gere uma frase secreta diceware aleatória novamente. Word count for the diceware passphrase. - Contagem de palavra para a frase-chave diceware. + Contagem de palavra para a frase secreta diceware. Wordlist for the diceware generator. @@ -5626,7 +5626,7 @@ Comandos disponíveis: Entry %1 not found. - Entrada%1 não encontrada. + Entrada %1 não encontrada. Entry with path %1 has no TOTP set up. @@ -5650,7 +5650,7 @@ Comandos disponíveis: Silence password prompt and other secondary outputs. - Pergunta por senha em silêncio e outras saídas secundárias. + Perguntar por senha em silêncio e outras saídas secundárias. count @@ -5779,7 +5779,7 @@ Comandos disponíveis: Failed to load key file %1: %2 - Falha ao carregar o arquivo de chave %1: %2 + Falha ao carregar o arquivo-chave %1: %2 Length of the generated password @@ -5828,7 +5828,7 @@ Comandos disponíveis: Error reading merge file: %1 - Erro ao ler arquivo para fundir: + Erro ao ler arquivo de mesclagem: %1 @@ -5849,7 +5849,7 @@ Comandos disponíveis: Show the entry's current TOTP. - Mostrar o TOTP atual da entrada. + Mostrar o TOTP da entrada atual. ERROR: unknown attribute %1. @@ -5923,7 +5923,7 @@ Comandos disponíveis: Loading the key file failed - O carregamento do arquivo de chave falhou + O carregamento do arquivo-chave falhou No key is set. Aborting database creation. @@ -5939,11 +5939,11 @@ Comandos disponíveis: Creating KeyFile %1 failed: %2 - Criação de Arquivo-Chave %1 falhou: %2 + Criação de arquivo-chave %1 falhou: %2 Loading KeyFile %1 failed: %2 - Carregamento de Arquivo-Chave %1 falhou: %2 + Carregamento de arquivo-chave %1 falhou: %2 Path of the entry to remove. @@ -6011,7 +6011,7 @@ Comandos disponíveis: Deactivate password key for the database to merge from. - Desativar chave de senha para o banco de dados a qual será fundido. + Desativar chave de senha para o banco de dados a qual será mesclado. Version %1 @@ -6047,7 +6047,7 @@ Kernel: %3 %4 Auto-Type - Autodigitação + Auto-Digitar KeeShare (signed and unsigned sharing) @@ -6059,7 +6059,7 @@ Kernel: %3 %4 KeeShare (only unsigned sharing) - KeeShare (apenas compartilhamento não assinado) + KeeShare (somente compartilhamento não assinado) YubiKey @@ -6215,7 +6215,7 @@ Kernel: %3 %4 Only print the changes detected by the merge operation. - Somente exibir mudanças detectadas pela operação de fusão. + Somente exibir mudanças detectadas pela operação de mesclagem. Yubikey slot for the second database. @@ -6223,7 +6223,7 @@ Kernel: %3 %4 Successfully merged %1 into %2. - Sucesso ao fundir %1 com %2. + Sucesso ao mesclar %1 com %2. Database was not modified by merge operation. @@ -6287,7 +6287,7 @@ Kernel: %3 %4 Enter password to unlock %1: - Digite a senha para desbloquear %1: + Digite a senha para destrancar %1: Invalid YubiKey slot %1 @@ -6295,7 +6295,7 @@ Kernel: %3 %4 Please touch the button on your YubiKey to unlock %1 - Por favor toque no botão no seu YubiKey para desbloquear %1 + Por favor toque no botão no seu YubiKey para destrancar %1 Enter password to encrypt database (optional): @@ -6307,7 +6307,7 @@ Kernel: %3 %4 Secret Service Integration - Serviço de Integração Secreta + Integração com Secret Service User name @@ -6554,7 +6554,7 @@ Kernel: %3 %4 Unlock database to show more information - Desbloquear banco de dados para mostrar mais informações + Destranque o banco de dados para mostrar mais informações Lock database @@ -6562,7 +6562,7 @@ Kernel: %3 %4 Unlock to show - Desbloquear para mostrar + Destrancar para mostrar None @@ -6645,7 +6645,7 @@ Kernel: %3 %4 Fingerprint - Fingerprint + Impressão digital Certificate @@ -6670,7 +6670,7 @@ Kernel: %3 %4 KeeShare key file - Arquivo chave KeeShare + Arquivo-chave KeeShare All files @@ -6773,11 +6773,11 @@ Kernel: %3 %4 Overwriting unsigned share container is not supported - export prevented - A substituição de contêiner de compartilhamento não assinado não é suportada - exportação impedida + A substituição de recipiente de compartilhamento não assinado não é suportada - exportação impedida Could not write export container - Não foi possível escrever o contêiner de exportação + Não foi possível escrever o recipiente de exportação Unexpected export error occurred @@ -6788,15 +6788,15 @@ Kernel: %3 %4 ShareImport Import from container without signature - Importar do contêiner sem assinatura + Importar do recipiente sem assinatura We cannot verify the source of the shared container because it is not signed. Do you really want to import from %1? - Não podemos verificar a origem do contêiner compartilhado porque ele não está assinado. Você realmente quer importar de %1? + Não podemos verificar a origem do recipiente compartilhado porque ele não está assinado. Você realmente quer importar de %1? Import from container with certificate - Importar do contêiner com certificado + Importar do recipiente com certificado Do you want to trust %1 with the fingerprint of %2 from %3? @@ -6828,7 +6828,7 @@ Kernel: %3 %4 Invalid sharing container - Contêiner de compartilhamento inválido + Recipiente de compartilhamento inválido Untrusted import prevented @@ -6898,7 +6898,7 @@ Kernel: %3 %4 TotpDialog Timed Password - Senha Temporária + Senha temporária 000000 @@ -6926,7 +6926,7 @@ Kernel: %3 %4 There was an error creating the QR code. - Ocorreu um erro ao criar o código QR. + Ocorreu um erro ao criar o QR Code. Closing in %1 seconds. diff --git a/share/translations/keepassx_pt_PT.ts b/share/translations/keepassx_pt_PT.ts index b6d339905a..1bdb9f80cd 100644 --- a/share/translations/keepassx_pt_PT.ts +++ b/share/translations/keepassx_pt_PT.ts @@ -747,11 +747,11 @@ Selecione a base de dados correta para guardar as credenciais. Returns expired credentials. String [expired] is added to the title. - Devolve as credenciais expiradas. Adiciona [expirada] ao título. + Devolve as credenciais caducadas. Adiciona [caducada] ao título. &Allow returning expired credentials. - Permitir devolução de credencias expir&adas + Permitir devolução de credencias caduc&adas Enable browser integration @@ -1830,11 +1830,11 @@ Tem a certeza de que deseja continuar? Number of expired entries - Número de entradas expiradas + Número de entradas caducadas The database contains entries that have expired. - A base de dados contém entradas expiradas. + A base de dados contém entradas caducadas. Unique passwords @@ -2553,7 +2553,7 @@ Desativar salvaguardas e tentar novamente? Expires - Expira + Caduca Url field @@ -2585,15 +2585,15 @@ Desativar salvaguardas e tentar novamente? Expiration field - Campo Expira + Campo Caduca Expiration Presets - Predefinições de expiração + Predefinições de caducidade Expiration presets - Predefinições de expiração + Predefinições de caducidade Notes field @@ -2609,7 +2609,7 @@ Desativar salvaguardas e tentar novamente? Toggle expiration - Alternar expiração + Alternar caducidade @@ -2813,11 +2813,11 @@ As extensões suportadas são: %1. %1 is already being exported by this database. - %1 já está a ser exportada para esta base de dados. + %1 já está a ser exportado para esta base de dados. %1 is already being imported by this database. - %1 já está a ser importada para esta base de dados. + %1 já está a ser importado para esta base de dados. %1 is being imported and exported by different groups in this database. @@ -2877,7 +2877,7 @@ As extensões suportadas são: %1. Expires - Expira + Caduca Search @@ -2905,7 +2905,7 @@ As extensões suportadas são: %1. Toggle expiration - Alternar expiração + Alternar caducidade Auto-Type toggle for this and sub groups @@ -2913,7 +2913,7 @@ As extensões suportadas são: %1. Expiration field - Campo Expira + Campo Caduca Search toggle for this and sub groups @@ -3271,7 +3271,7 @@ Esta ação pode implicar um funcionamento errático. Expires - Expira + Caduca Created @@ -3318,7 +3318,7 @@ Esta ação pode implicar um funcionamento errático. Expiration - Expira + Caducidade URL @@ -4029,7 +4029,7 @@ Linha %2, coluna %3 Incorrect group expiry time field size - Tamanho de campo de tempo de expiração de grupo incorreto + Tamanho inválido para o campo de caducidade do grupo Incorrect group icon field size @@ -4081,7 +4081,7 @@ Linha %2, coluna %3 Invalid entry expiry time field size - Tamanho da entrada para o campo tempo de expiração inválido + Tamanho inválido para o campo de caducidade da entrada Invalid entry field type @@ -4181,7 +4181,7 @@ Caso isto volte a acontecer, pode ser que a base de dados esteja danificada. %1 set, click to change or remove Change or remove a key component - %1 definido, clique para alterar ou remover + %1 definida, clique para alterar ou remover @@ -6912,7 +6912,7 @@ Kernel: %3 %4 Expires in <b>%n</b> second(s) - Expira em <b>%n</b> segundoExpira dentro de <b>%n</b> segundos + Caduca dentro de <b>%n</b> segundoCaduca dentro de <b>%n</b> segundos diff --git a/share/translations/keepassx_ro.ts b/share/translations/keepassx_ro.ts index bd4f02fbd4..469e4ddd19 100644 --- a/share/translations/keepassx_ro.ts +++ b/share/translations/keepassx_ro.ts @@ -97,11 +97,11 @@ Reset Settings? - + Resetare Setări? Are you sure you want to reset all general and security settings to default? - + Sigur resetați în mod implicit toate setările generale și de securitate ? @@ -225,63 +225,63 @@ Remember previously used databases - + Retine bazele de date utilizate anterior Load previously open databases on startup - + la pornirea incărcarea bazelor de date deschise anterior Remember database key files and security dongles - + Retine fișierele cheie de baze de date și Dongles de securitate Check for updates at application startup once per week - + Căutați actualizări la pornirea aplicației o dată pe săptămână Include beta releases when checking for updates - + Includere versiuni beta la verificarea actualizărilor Button style: - + Stilul butonului: Language: - + Limba: (restart program to activate) - + (reporniți programul pentru a activa) Minimize window after unlocking database - + Minimizare fereastră după deblocarea bazei de date Minimize when opening a URL - + Minimizare la deschiderea unui URL Hide window when copying to clipboard - + Ascundere fereastră la copierea în Clipboard Minimize - + Minimizare Drop to background - + Picătură în fundal Favicon download timeout: - + Favicon download timeout: Website icon download timeout in seconds - + Site-ul descărca pictograma timeout în câteva secunde sec @@ -290,31 +290,31 @@ Toolbar button style - + Stil buton bară de instrumente Use monospaced font for Notes - + Utilizați fontul monospațiat pentru notițe Language selection - + Selectarea limbii Reset Settings to Default - + Resetare setări la implicit Global auto-type shortcut - + Comandă rapidă de tip auto global Auto-type character typing delay milliseconds - + Tipul de auto-tastare întârziere milisecunde Auto-type start delay milliseconds - + Auto-tip de pornire întârziere milisecunde @@ -390,19 +390,19 @@ Use DuckDuckGo service to download website icons - + Utilizați serviciul DuckDuckGo pentru a descărca pictogramele site-ului Clipboard clear seconds - + Stergere clipboard secunde Touch ID inactivity reset - + Resetare inactivitate ID Touch Database lock timeout seconds - + Baza de date blocare timeout secunde min @@ -411,7 +411,7 @@ Clear search query after - + Stergerea interogarea de căutare după @@ -446,11 +446,11 @@ Permission Required - + Permisiune necesară KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC necesită permisiunea de accesibilitate pentru a efectua intrare nivel auto-Type. Dacă ați acordat deja permisiunea, poate fi nevoie să reporniți KeePassXC. @@ -502,11 +502,11 @@ AutoTypePlatformMac Permission Required - + Permisiune necesară KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC necesită permisiunea Accesorizării și Recorderului ecranului pentru a efectua tipul automat global. Înregistrarea ecranului este necesară pentru a utiliza titlul ferestrei pentru a găsi intrări. Dacă ați acordat deja permisiunea, poate fi necesar să reporniți KeePassXC. @@ -550,11 +550,11 @@ Vă rugăm să selectați dacă doriți să permiteți accesul. Allow access - + Permite accesul Deny access - + Refuzare acces @@ -743,47 +743,47 @@ Selectați baza de date corectă pentru salvarea acreditărilor. &Brave - + &Brave Returns expired credentials. String [expired] is added to the title. - + Returnează acreditările expirate. String [expirat] se adaugă la titlu. &Allow returning expired credentials. - + Permite returnarea acreditărilor expirate. Enable browser integration - + Activați integrarea browserului Browsers installed as snaps are currently not supported. - + Browserele instalate ca snaps nu sunt acceptate momentan. All databases connected to the extension will return matching credentials. - + Toate bazele de date conectate la extensie vor returna acreditările corespondente. Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + Nu afișați popup-ul sugerând migrarea setărilor KeePassHTTP moștenite. &Do not prompt for KeePassHTTP settings migration. - + Nu solicitați migrarea setărilor KeePassHTTP. Custom proxy location field - + Câmp de locație proxy particularizat Browser for custom proxy file - + Browser pentru fișier proxy personalizat <b>Warning</b>, the keepassxc-proxy application was not found!<br />Please check the KeePassXC installation directory or confirm the custom path in advanced options.<br />Browser integration WILL NOT WORK without the proxy application.<br />Expected Path: %1 - + <b>Avertisment</b>, aplicația keepassxc-proxy nu a fost găsită! <br />Vă rugăm să verificați directorul de instalare KeePassXC sau să confirmați calea personalizată în opțiuni avansate. <br />Integrarea browser-ului NU va funcționa fără aplicația proxy. <br />Calea așteptată: %1 @@ -877,7 +877,11 @@ Migrați acum setările existente? Give the connection a unique name or ID, for example: chrome-laptop. - + Ați primit o solicitare de asociere pentru următoarea bază de date: +%1 + +Dați conexiunii un nume sau un ID unic, de exemplu: +chrome-laptop. @@ -989,19 +993,19 @@ chrome-laptop. Text qualification - + Calificarea textului Field separation - + Separarea câmpului Number of header lines to discard - + Numărul de linii de antet de aruncat CSV import preview - + Previzualizare import CSV @@ -1054,19 +1058,20 @@ chrome-laptop. %1 Backup database located at %2 - + %1 +Baza de date de rezervă localizată la %2 Could not save, database does not point to a valid file. - + Nu s-a putut salva, baza de date nu indică un fișier valid. Could not save, database file is read-only. - + Nu s-a putut salva, fișierul bazei de date este numai în citire. Database file has unmerged changes. - + Fișierul bazei de date are modificări nemergite. Recycle Bin @@ -1122,39 +1127,39 @@ Vă rugăm să luați în considerare generarea unui nou fișier cheie. Failed to open key file: %1 - + Nu a putut fi deschis fișierul cheii: %1 Select slot... - + Selectați slotul ... Unlock KeePassXC Database - + Deblocați baza de date KeePassXC Enter Password: - + Introdu parola: Password field - + Câmp parola Toggle password visibility - + Comutați vizibilitatea parolelor Key file selection - + Selectarea fișierelor cheie Hardware key slot selection - + Selectarea sloturilor pentru cheie hardware Browse for key file - + Căutați fișierul cheie Browse... @@ -1162,19 +1167,19 @@ Vă rugăm să luați în considerare generarea unui nou fișier cheie. Refresh hardware tokens - + Actualizați jetoane hardware Hardware Key: - + Cheie hardware: Hardware key help - + Ajutor cheie hardware TouchID for Quick Unlock - + TouchID pentru deblocare rapidă Clear @@ -1182,56 +1187,61 @@ Vă rugăm să luați în considerare generarea unui nou fișier cheie. Clear Key File - + Ștergeți fișierul cheie Unlock failed and no password given - + Deblocarea a eșuat și nu a fost dată nicio parolă Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - + Deblocarea bazei de date a eșuat și nu ați introdus o parolă. +Vrei să încerci din nou cu o parolă „goală”? + +Pentru a preveni apariția acestei erori, trebuie să accesați „Setări baza de date / securitate” și să vă resetați parola. Retry with empty password - + Încercați din nou cu parola goală Enter Additional Credentials (if any): - + Introduceți acreditări suplimentare (dacă există): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> <p>Click for more information...</p> - + <p>Puteți utiliza o cheie de securitate hardware, cum ar fi <strong>YubiKey</strong> sau <strong>OnlyKey</strong>, cu sloturi configurate pentru HMAC-SHA1.</p> +<p>Faceți clic pentru mai multe informații ...</p> <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - + <p>În plus față de parola principală, puteți utiliza un fișier secret pentru a îmbunătăți securitatea bazei de date. Un astfel de fișier poate fi generat în setările de securitate ale bazei de date</p>. <p>Acesta <strong>nu</strong> este fișierul dvs. de bază de date * .kdbx!<br> Dacă nu aveți un fișier cheie, lăsați câmpul gol.</p> <p>Faceți clic pentru mai multe informații ...</p> Key file help - + Ajutor de fișiere cheie ? - + ? Select key file... - + Selectați fișierul cheie ... Cannot use database file as key file - + Nu se poate utiliza fișierul bazei de date ca fișier cheie You cannot use your database file as a key file. If you do not have a key file, please leave the field empty. - + Nu puteți utiliza fișierul dvs. de bază de date ca fișier cheie. +Dacă nu aveți un fișier cheie, lăsați câmpul gol. @@ -1388,11 +1398,11 @@ Acest lucru este necesar pentru a menține compatibilitatea cu plugin-ul browser Stored browser keys - + Tastele browserului stocate Remove selected key - + Ștergeți tasta selectată @@ -1538,54 +1548,54 @@ Dacă păstrați acest număr, baza de date poate fi prea ușor de spart! Change existing decryption time - + Modificați timpul de decriptare existent Decryption time in seconds - + Timpul de decriptare în secunde Database format - + Formatul bazei de date Encryption algorithm - + Algoritmul de criptare Key derivation function - + Funcția cheie de derivare Transform rounds - + Rundele de transformare Memory usage - + Folosirea memoriei Parallelism - + Paralelism DatabaseSettingsWidgetFdoSecrets Exposed Entries - + Intrări expuse Don't e&xpose this database - + Nu e&xpuneti această bază de date Expose entries &under this group: - + Expuneti intrări și sub acest grup: Enable fd.o Secret Service to access these settings. - + Activează fd.o Secret Service pentru a accesa aceste setări. @@ -1636,36 +1646,37 @@ Dacă păstrați acest număr, baza de date poate fi prea ușor de spart! Database name field - + Câmpul numelui bazei de date Database description field - + Câmpul descrierii bazei de date Default username field - + Câmpul utilizatorului implicit Maximum number of history items per entry - + Numărul maxim de articole istorice pe intrare Maximum size of history per entry - + Mărimea maximă a istoricului pe intrare Delete Recycle Bin - + Ștergeți coșul de reciclare Do you want to delete the current recycle bin and all its contents? This action is not reversible. - + Doriți să ștergeți coșul de reciclare curent și tot conținutul acesteia? +Această acțiune nu este reversibilă. (old) - + (vechi) @@ -1736,7 +1747,7 @@ Sigur continuați fără parolă? Continue without password - + Continuați fără parolă @@ -1751,22 +1762,22 @@ Sigur continuați fără parolă? Database name field - + Câmpul numelui bazei de date Database description field - + Câmpul descrierii bazei de date DatabaseSettingsWidgetStatistics Statistics - + Statistici Hover over lines with error icons for further information. - + Treceți peste linii cu pictograme de eroare pentru informații suplimentare. Name @@ -1778,103 +1789,103 @@ Sigur continuați fără parolă? Database name - + Numele bazei de date Description - + Descriere Location - + Locație Last saved - + Ultima salvare Unsaved changes - + Modificări salvate yes - + da no - + Nu The database was modified, but the changes have not yet been saved to disk. - + Baza de date a fost modificată, dar modificările nu au fost încă salvate pe disc. Number of groups - + Număr de grupuri Number of entries - + Numărul de intrări Number of expired entries - + Numărul de intrări expirate The database contains entries that have expired. - + Baza de date conține intrări care au expirat. Unique passwords - + Parole unice Non-unique passwords - + Parole non-unice More than 10% of passwords are reused. Use unique passwords when possible. - + Mai mult de 10% din parolele sunt reutilizate. Utilizați parole unice atunci când este posibil. Maximum password reuse - + Reutilizarea maximă a parolei Some passwords are used more than three times. Use unique passwords when possible. - + Unele parole sunt folosite de mai mult de trei ori. Utilizați parole unice atunci când este posibil. Number of short passwords - + Număr de parole scurte Recommended minimum password length is at least 8 characters. - + Lungimea minimă recomandată a parolei este de cel puțin 8 caractere. Number of weak passwords - + Număr de parole slabe Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - + Recomandă folosirea parolelor lungi, aleatorii, cu o notă de „bun” sau „excelent”. Average password length - + Lungimea medie a parolei %1 characters - + %1 caractere Average password length is less than ten characters. Longer passwords provide more security. - + Lungimea medie a parolei este mai mică de zece caractere. Parolele mai lungi oferă mai multă securitate. Please wait, database statistics are being calculated... - + Vă rugăm să așteptați, se calculează statisticile bazei de date ... @@ -1950,27 +1961,27 @@ Acest lucru este cu siguranta un bug, vă rugăm să raporteze la dezvoltatori.< Failed to open %1. It either does not exist or is not accessible. - + Nu a reușit să deschidă %1. Fie nu există, fie nu este accesibil. Export database to HTML file - + Exportați baza de date în fișier HTML HTML file - + Fișier HTML Writing the HTML file failed. - + Scrierea fișierului HTML a eșuat. Export Confirmation - + Confirmare la export You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - + Ești pe cale să exporti baza de date într-un fișier necriptat. Acest lucru va lăsa parolele și informațiile dvs. sensibile vulnerabile! Esti sigur ca vrei sa continui? @@ -2151,7 +2162,7 @@ Dezactivați salvarea sigură și încercați din nou? This database is opened in read-only mode. Autosave is disabled. - + Această bază de date este deschisă în modul numai de citire. Autosave este dezactivat. @@ -2278,11 +2289,11 @@ Dezactivați salvarea sigură și încercați din nou? <empty URL> - + <empty URL> Are you sure you want to remove this URL? - + Sigur doriți să eliminați această adresă URL? @@ -2325,39 +2336,39 @@ Dezactivați salvarea sigură și încercați din nou? Attribute selection - + Selectarea atributelor Attribute value - + Valoarea atributului Add a new attribute - + Adăugați un atribut nou Remove selected attribute - + Ștergeți atributul selectat Edit attribute name - + Editați numele atributului Toggle attribute protection - + Comutați protecția atributelor Show a protected attribute - + Afișați un atribut protejat Foreground color selection - + Selectarea culorilor prim-plan Background color selection - + Selectarea culorii de fundal @@ -2396,46 +2407,46 @@ Dezactivați salvarea sigură și încercați din nou? Custom Auto-Type sequence - + Secvență personalizată Auto-Type Open Auto-Type help webpage - + Deschideți pagina web de ajutor Auto-Type Existing window associations - + Asocieri de ferestre existente Add new window association - + Adăugați asociere fereastră nouă Remove selected window association - + Eliminați asocierea ferestrei selectată You can use an asterisk (*) to match everything - + Puteți utiliza un asterisc (*) pentru a se potrivi cu totul Set the window association title - + Setați titlul asocierii ferestrei You can use an asterisk to match everything - + Puteți utiliza un asterisc pentru a se potrivi cu totul Custom Auto-Type sequence for this window - + Secvență personalizată de tip automat pentru această fereastră EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - + Aceste setări afectează comportamentul intrării cu extensia browserului. General @@ -2443,15 +2454,15 @@ Dezactivați salvarea sigură și încercați din nou? Skip Auto-Submit for this entry - + Sariți la Trimitere automată pentru această intrare Hide this entry from the browser extension - + Ascundeți această intrare din extensia browserului Additional URL's - + Adresa URL suplimentară Add @@ -2463,7 +2474,7 @@ Dezactivați salvarea sigură și încercați din nou? Edit - + Editați @@ -2486,23 +2497,23 @@ Dezactivați salvarea sigură și încercați din nou? Entry history selection - + Selectarea istoricului de intrare Show entry at selected history state - + Afișare intrare la starea istoricului selectat Restore entry to selected history state - + Restaurați intrarea la starea istoricului selectat Delete selected history state - + Ștergeți starea istoricului selectat Delete all history - + Ștergeți tot istoricul @@ -2545,59 +2556,59 @@ Dezactivați salvarea sigură și încercați din nou? Url field - + Câmp url Download favicon for URL - + Descărcați favicon pentru URL Repeat password field - + Repetați câmpul de parolă Toggle password generator - + Comutați generatorul de parolă Password field - + Câmp parola Toggle password visibility - + Comutați vizibilitatea parolelor Toggle notes visible - + Notele de comutare sunt vizibile Expiration field - + Câmp de expirare Expiration Presets - + Presetări expirare Expiration presets - + Presetări expirare Notes field - + Câmpul de note Title field - + Câmpul titlu Username field - + Câmpul utilizatorului Toggle expiration - + Combate expirarea @@ -2677,19 +2688,19 @@ Dezactivați salvarea sigură și încercați din nou? Remove key from agent after specified seconds - + Scoateți cheia din agent după câteva secunde specificate Browser for key file - + Browser pentru fișierul cheie External key file - + Fișier cheie externă Select attachment file - + Selectați fișierul de atașament @@ -2791,65 +2802,66 @@ Dezactivați salvarea sigură și încercați din nou? Synchronize - + Sincronizeaza Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + Versiunea dvs. KeePassXC nu acceptă distribuirea acestui tip de container. +Extensiile acceptate sunt: %1. %1 is already being exported by this database. - + %1 este deja exportat de această bază de date. %1 is already being imported by this database. - + %1 este deja importat de această bază de date. %1 is being imported and exported by different groups in this database. - + %1 este importat și exportat de diferite grupuri din această bază de date. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + În prezent, KeeShare este dezactivat. Puteți activa importul / exportul în setările aplicației. Database export is currently disabled by application settings. - + Exportul bazei de date este dezactivat în prezent de setările aplicației. Database import is currently disabled by application settings. - + Importul bazei de date este dezactivat în prezent de setările aplicației. Sharing mode field - + Câmpul modului de partajare Path to share file field - + Calea de partajare a câmpului de fișiere Browser for share file - + Browser pentru partajarea fișierului Password field - + Câmp parola Toggle password visibility - + Comutați vizibilitatea parolelor Toggle password generator - + Comutați generatorul de parolă Clear fields - + Câmpuri clare @@ -2884,31 +2896,31 @@ Supported extensions are: %1. Name field - + Câmpul de nume Notes field - + Câmpul de note Toggle expiration - + Combate expirarea Auto-Type toggle for this and sub groups - + Comută automat pentru această opțiune și subgrupuri Expiration field - + Câmp de expirare Search toggle for this and sub groups - + Căutați pentru aceasta și subgrupuri Default auto-type sequence field - + Câmpul de secvență implicit de tip automat @@ -2975,39 +2987,39 @@ Supported extensions are: %1. You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - + Puteți activa serviciul de pictogramă a site-ului web DuckDuckGo în Instrumente -> Setări -> Securitate Download favicon for URL - + Descărcați favicon pentru URL Apply selected icon to subgroups and entries - + Aplicați pictograma selectată pe subgrupuri și intrări Apply icon &to ... - + Aplicați pictograma & în ... Apply to this only - + Aplicați numai la acest aspect Also apply to child groups - + De asemenea, aplicați pentru grupuri de copii Also apply to child entries - + De asemenea, aplicați pentru înregistrările copilului Also apply to all children - + De asemenea, aplicați tuturor copiilor Existing icon selected. - + Pictograma existentă selectată. @@ -3056,27 +3068,27 @@ Acest lucru poate provoca moduluri afectate la defecțiune. Datetime created - + Datetime creat Datetime modified - + Datetime modificat Datetime accessed - + Data datei accesată Unique ID - + ID unic Plugin data - + Date despre pluginuri Remove selected plugin data - + Eliminați datele pluginului selectate @@ -3181,19 +3193,19 @@ Acest lucru poate provoca moduluri afectate la defecțiune. Add new attachment - + Adăugați un nou atașament Remove selected attachment - + Eliminați atașamentul selectat Open selected attachment - + Deschideți atașamentul selectat Save selected attachment to disk - + Salvați atașamentul selectat pe disc @@ -3375,7 +3387,7 @@ Acest lucru poate provoca moduluri afectate la defecțiune. Display current TOTP value - + Afișează valoarea curentă TOTP Advanced @@ -3417,26 +3429,26 @@ Acest lucru poate provoca moduluri afectate la defecțiune. FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - + Intrarea „%1” din baza de date „%2” a fost utilizată de %3 FdoSecrets::Service Failed to register DBus service at %1: another secret service is running. - + Nu a reușit să înregistrați serviciul DBus la %1: este executat un alt serviciu secret. %n Entry(s) was used by %1 %1 is the name of an application - + % n Intrărea a fost utilizata de %1%n Intrările au fost utilizate de %1%n Intrările au fost utilizate de %1 FdoSecretsPlugin Fdo Secret Service: %1 - + Serviciu secret Fdo: %1 @@ -3462,7 +3474,7 @@ Acest lucru poate provoca moduluri afectate la defecțiune. IconDownloaderDialog Download Favicons - + Descarcă Favicons Cancel @@ -3471,7 +3483,8 @@ Acest lucru poate provoca moduluri afectate la defecțiune. Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + Aveți probleme la descărcarea pictogramelor? +Puteți activa serviciul pictogramelor site-ului web DuckDuckGo în secțiunea de securitate a setărilor aplicației. Close @@ -3487,11 +3500,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list... - + Vă rugăm să așteptați, prelucrarea listei de intrare ... Downloading... - + Descărcarea... Ok @@ -3499,15 +3512,15 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - + Deja exista Download Failed - + Descarcare esuata Downloading favicons (%1/%2)... - + Descărcarea de preferințe (%1/%2) ... @@ -3554,7 +3567,8 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Au fost furnizate datele de acreditare nevalide, încercați din nou. +Dacă reîncepe, atunci fișierul dvs. de bază de date poate fi corupt. @@ -3689,11 +3703,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Au fost furnizate datele de acreditare nevalide, încercați din nou. +Dacă reîncepe, atunci fișierul dvs. de bază de date poate fi corupt. (HMAC mismatch) - + (Nepotrivire HMAC) @@ -3922,7 +3937,7 @@ Linia %2, coloana %3 Import KeePass1 Database - + Importați baza de date KeePass1 @@ -4079,18 +4094,19 @@ Linia %2, coloana %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Au fost furnizate datele de acreditare nevalide, încercați din nou. +Dacă reîncepe, atunci fișierul dvs. de bază de date poate fi corupt. KeeShare Invalid sharing reference - + Referință de partajare nevalidă Inactive share %1 - + Ponderea inactivă %1 Imported from %1 @@ -4098,35 +4114,35 @@ If this reoccurs, then your database file may be corrupt. Exported to %1 - + Exportat la %1 Synchronized with %1 - + Sincronizat cu %1 Import is disabled in settings - + Importul este dezactivat în setări Export is disabled in settings - + Exportul este dezactivat în setări Inactive share - + Ponderea inactivă Imported from - + Importat din Exported to - + Exportat în Synchronized with - + Sincronizat cu @@ -4228,11 +4244,11 @@ Mesaj: %2 Key file selection - + Selectarea fișierelor cheie Browse for key file - + Căutați fișierul cheie Browse... @@ -4240,28 +4256,29 @@ Mesaj: %2 Generate a new key file - + Generați un nou fișier cheie Note: Do not use a file that may change as that will prevent you from unlocking your database! - + Notă: Nu folosiți un fișier care s-ar putea schimba, deoarece acest lucru vă va împiedica să deblocați baza de date! Invalid Key File - + Fișier cheie nevalid You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + Nu puteți utiliza baza de date curentă ca propriul fișier cheie. Vă rugăm să alegeți un alt fișier sau să generați un nou fișier cheie. Suspicious Key File - + Fișier cu cheie suspectă The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - + Fișierul cheie ales arată ca un fișier de bază de date cu parolă. Un fișier cheie trebuie să fie un fișier static care nu se schimbă niciodată sau veți pierde accesul la baza de date pentru totdeauna. +Sigur doriți să continuați cu acest fișier? @@ -4556,27 +4573,27 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin &Export - + &Export &Check for Updates... - + Verifică pentru a&ctualizări... Downlo&ad all favicons - + Descarc&a toate favicons Sort &A-Z - + Sortare &A-Z Sort &Z-A - + Sortare &Z-A &Password Generator - + Generator de &parolă Download favicon @@ -4584,43 +4601,43 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin &Export to HTML file... - + &Export în fișier HTML ... 1Password Vault... - + 1Password Vault... Import a 1Password Vault - + Import 1Password Vault &Getting Started - + Noțiuni de bază Open Getting Started Guide PDF - + Deschideți Ghidul de pornire PDF &Online Help... - + Ajutor &online... Go to online documentation (opens browser) - + Accesați documentația online (deschide browserul) &User Guide - + Manualul &utilizatorului Open User Guide PDF - + Deschideți Ghidul utilizatorului PDF &Keyboard Shortcuts - + comenzi rapide de la tastatură @@ -4683,11 +4700,11 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin Removed custom data %1 [%2] - + Șters date personalizate %1 [%2] Adding custom data %1 [%2] - + Adăugarea de date personalizate %1 [%2] @@ -4762,31 +4779,31 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin OpData01 Invalid OpData01, does not contain header - + OpData01 nevalid, nu conține antet Unable to read all IV bytes, wanted 16 but got %1 - + Nu a putut citi toate octeții IV, a dorit 16, dar a primit %1 Unable to init cipher for opdata01: %1 - + Imposibil de inițiat cifrarea pentru opdata01: %1 Unable to read all HMAC signature bytes - + Imposibil de citit toți octeții de semnătură HMAC Malformed OpData01 due to a failed HMAC - + OpData01 defectuos din cauza unei HMAC eșuate Unable to process clearText in place - + Imposibil de procesat clearText în loc Expected %1 bytes of clear-text, found %2 - + Se așteaptă %1 octeți de text clar, %2 găsit @@ -4794,34 +4811,35 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin Read Database did not produce an instance %1 - + Citirea bazei de date nu a produs o instanță +%1 OpVaultReader Directory .opvault must exist - + Directory .opvault trebuie să existe Directory .opvault must be readable - + Directory .opvault trebuie să fie lizibil Directory .opvault/default must exist - + Directory .opvault / default trebuie să existe Directory .opvault/default must be readable - + Directorul .opvault / default trebuie să fie lizibil Unable to decode masterKey: %1 - + Imposibil de decodat masterKey: %1 Unable to derive master key: %1 - + Nu se poate derula cheia principală: %1 @@ -4927,11 +4945,11 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin PasswordEdit Passwords do not match - + parolele nu se potrivesc Passwords match so far - + Parolele se potrivesc până acum @@ -4962,19 +4980,19 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin Password field - + Câmp parola Toggle password visibility - + Comutați vizibilitatea parolelor Repeat password field - + Repetați câmpul de parolă Toggle password generator - + Comutați generatorul de parolă @@ -5178,71 +5196,71 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin Generated password - + Parol generat Upper-case letters - + Litere mari Lower-case letters - + Litere mici Special characters - + Personaje speciale Math Symbols - + Simboluri matematice Dashes and Slashes - + Dashes și Slashes Excluded characters - + Personaje excluse Hex Passwords - + Parole hex Password length - + Lungimea parolei Word Case: - + Registrul cuvântelor Regenerate password - + Regenerați parola Copy password - + Copiază parola Accept password - + Acceptați parola lower case - + minuscule UPPER CASE - + MAJUSCULE Title Case - + registrul antetului Toggle password visibility - + Comutați vizibilitatea parolelor @@ -5253,7 +5271,7 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin Statistics - + Statistici @@ -5292,7 +5310,7 @@ Asteptati-va unele bug-uri și probleme minore, această versiune nu este destin Continue - + Continua @@ -5987,23 +6005,23 @@ Comenzi disponibile: Deactivate password key for the database. - + Dezactivați cheia parolă pentru baza de date. Displays debugging information. - + Afișează informații de depanare. Deactivate password key for the database to merge from. - + Dezactivați cheia parolă pentru care se bazează baza de date. Version %1 - + Versiunea %1 Build Type: %1 - + Tip de construcție: %1 Revision: %1 @@ -6015,11 +6033,11 @@ Comenzi disponibile: Debugging mode is disabled. - + Modul de depanare este dezactivat. Debugging mode is enabled. - + Modul de depanare este activat. Operating system: %1 @@ -6035,27 +6053,27 @@ Nucleu (Kernel): %3 %4 KeeShare (signed and unsigned sharing) - + KeeShare (partajare semnată și nesemnată) KeeShare (only signed sharing) - + KeeShare (doar partajare semnată) KeeShare (only unsigned sharing) - + KeeShare (doar partajare nesemnată) YubiKey - + YubiKey TouchID - + TouchID None - + Nici unul Enabled extensions: @@ -6063,151 +6081,151 @@ Nucleu (Kernel): %3 %4 Cryptographic libraries: - + Biblioteci criptografice: Cannot generate a password and prompt at the same time! - + Nu se poate genera o parolă și o solicitare în același timp! Adds a new group to a database. - + Adaugă un grup nou la o bază de date. Path of the group to add. - + Calea grupului de adăugat. Group %1 already exists! - + Grupul %1 există deja! Group %1 not found. - + Grupul %1 nu a fost găsit. Successfully added group %1. - + A adăugat cu succes grupul %1. Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - + Verificați dacă au fost scurse parole în mod public. FILENAME trebuie să fie calea unui fișier care să enumeze hash-urile SHA-1 ale parolelor scurse în format HIBP, așa cum este disponibil pe https://haveibeenpwned.com/Passwords. FILENAME - + NUME DE FIȘIER Analyze passwords for weaknesses and problems. - + Analizați parolele pentru deficiențe și probleme. Failed to open HIBP file %1: %2 - + Nu a putut fi deschis fișierul HIBP %1: %2 Evaluating database entries against HIBP file, this will take a while... - + Evaluarea intrărilor din baza de date cu fișierul HIBP, va dura puțin ... Close the currently opened database. - + Închideți baza de date deschisă în prezent. Display this help. - + Afișați acest ajutor. Yubikey slot used to encrypt the database. - + Slot Yubikey utilizat pentru criptarea bazei de date. slot - + slot Invalid word count %1 - + Număr de cuvinte nevalide %1 The word list is too small (< 1000 items) - + Lista de cuvinte este prea mică (<1000 de articole) Exit interactive mode. - + Ieșiți din modul interactiv. Format to use when exporting. Available choices are xml or csv. Defaults to xml. - + Formatul de utilizat la export. Opțiunile disponibile sunt xml sau csv. Valori implicite la xml. Exports the content of a database to standard output in the specified format. - + Exportă conținutul unei baze de date până la ieșirea standard în formatul specificat. Unable to export database to XML: %1 - + Imposibil de exportat baza de date în XML: %1 Unsupported format %1 - + Formatul neacceptat %1 Use numbers - + Folosiți numere Invalid password length %1 - + Lungime parolă nevalidă %1 Display command help. - + Afișați ajutorul comenzii. Available commands: - + Comenzi disponibile: Import the contents of an XML database. - + Importați conținutul unei baze de date XML. Path of the XML database export. - + Calea de export a bazei de date XML. Path of the new database. - + Calea noii baze de date. Unable to import XML database export %1 - + Imposibil de importat baza de date XML export %1 Successfully imported database. - + Baza de date importată cu succes. Unknown command %1 - + Comanda necunoscută %1 Flattens the output to single lines. - + Aplica ieșirea pe linii unice. Only print the changes detected by the merge operation. - + Tipăriți numai modificările detectate de operația de îmbinare. Yubikey slot for the second database. - + Slot Yubikey pentru a doua bază de date. Successfully merged %1 into %2. - + Fuzionarea cu succes %1 în %2. Database was not modified by merge operation. @@ -6215,103 +6233,103 @@ Nucleu (Kernel): %3 %4 Moves an entry to a new group. - + Mută ​​o intrare într-un grup nou. Path of the entry to move. - + Calea de intrare pentru a vă deplasa. Path of the destination group. - + Calea grupului de destinație. Could not find group with path %1. - + Nu s-a putut găsi grupul cu calea% 1. Entry is already in group %1. - + Intrarea este deja în grupul %1. Successfully moved entry %1 to group %2. - + Mutați cu succes intrarea %1 în grupul %2. Open a database. - + Deschideți o bază de date. Path of the group to remove. - + Calea grupului de eliminat. Cannot remove root group from database. - + Nu se poate elimina grupul rădăcină din baza de date. Successfully recycled group %1. - + Grup reciclat cu succes %1. Successfully deleted group %1. - + Grupul %1 a fost șters cu succes. Failed to open database file %1: not found - + Nu a putut fi deschis fișierul bazei de date %1: nu a fost găsit Failed to open database file %1: not a plain file - + Nu a putut deschide fișierul bazei de date %1: nu un fișier simplu Failed to open database file %1: not readable - + Nu a putut deschide fișierul bazei de date %1: nu poate fi citit Enter password to unlock %1: - + Introduceți parola pentru a debloca %1: Invalid YubiKey slot %1 - + Slot YubiKey %1 nevalid Please touch the button on your YubiKey to unlock %1 - + Vă rugăm să atingeți butonul de pe YubiKey pentru a debloca %1 Enter password to encrypt database (optional): - + Introduceți parola pentru criptarea bazei de date (opțional): HIBP file, line %1: parse error - + Fișier HIBP, linia %1: eroare de analiză Secret Service Integration - + Integrarea serviciilor secrete User name - + Nume utilizator %1[%2] Challenge Response - Slot %3 - %4 - + %1[%2] Răspuns la provocare - slot %3 - %4 Password for '%1' has been leaked %2 time(s)! - + Parola pentru „%1” a fost scursă de 2% ori!Parola pentru „%1” a fost scursă de 2% ori!Parola pentru „%1” a fost scursă de 2% ori! Invalid password generator after applying all options - + Generator de parole nevalide după aplicarea tuturor opțiunilor Show the protected attributes in clear text. - + Afișează atributele protejate într-un text clar. @@ -6470,11 +6488,11 @@ Nucleu (Kernel): %3 %4 SettingsWidgetFdoSecrets Options - + Opțiuni Enable KeepassXC Freedesktop.org Secret Service integration - + Activați integrarea KeepassXC Freedesktop.org Serviciu secret General @@ -6482,23 +6500,23 @@ Nucleu (Kernel): %3 %4 Show notification when credentials are requested - + Afișați notificarea atunci când sunt solicitate acreditările <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> - + <html><head/><body><p>În cazul în care coșul de reciclare este activat pentru baza de date, intrările vor fi mutate direct la coșul de gunoi. În caz contrar, acestea vor fi șterse fără confirmare.</p><p> Vi se va solicita totuși dacă orice alte înregistrări sunt trimise de către alții.</p></body></html> Don't confirm when entries are deleted by clients. - + Nu confirmați când înregistrările sunt șterse de către clienți. Exposed database groups: - + Grupuri de baze de date expuse: File Name - + Nume de fișier Group @@ -6506,23 +6524,23 @@ Nucleu (Kernel): %3 %4 Manage - + Administra Authorization - + Autorizare These applications are currently connected: - + Aceste aplicații sunt conectate în prezent: Application - + Aplicaţie Disconnect - + Deconecta Database settings @@ -6530,7 +6548,7 @@ Nucleu (Kernel): %3 %4 Edit database settings - + Editați setările bazei de date Unlock database @@ -6538,7 +6556,7 @@ Nucleu (Kernel): %3 %4 Unlock database to show more information - + Deblocați baza de date pentru a afișa mai multe informații Lock database @@ -6546,11 +6564,11 @@ Nucleu (Kernel): %3 %4 Unlock to show - + Deblocați să afișați None - + Nici unul @@ -6678,15 +6696,15 @@ Nucleu (Kernel): %3 %4 Allow KeeShare imports - + Permite importurile KeeShare Allow KeeShare exports - + Permite exporturile KeeShare Only show warnings and errors - + Afișați doar avertismente și erori Key @@ -6694,39 +6712,39 @@ Nucleu (Kernel): %3 %4 Signer name field - + Câmpul nume semnatar Generate new certificate - + Generați un nou certificat Import existing certificate - + Importați certificatul existent Export own certificate - + Export certificat propriu Known shares - + Acțiuni cunoscute Trust selected certificate - + Certificat selectat de încredere Ask whether to trust the selected certificate every time - + Întrebați dacă aveți încredere în certificatul selectat de fiecare dată Untrust selected certificate - + Certificat selectat neîncredere Remove selected certificate - + Ștergeți certificatul selectat @@ -6954,15 +6972,15 @@ Nucleu (Kernel): %3 %4 Secret Key: - + Cheie secreta: Secret key must be in Base32 format - + Cheia secretă trebuie să fie în format Base32 Secret key field - + Câmpul cu cheie secretă Algorithm: @@ -6970,28 +6988,29 @@ Nucleu (Kernel): %3 %4 Time step field - + Câmp pas cu timp digits - + cifre Invalid TOTP Secret - + Secret TOTP nevalid You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - + Ați introdus o cheie secretă nevalidă. Cheia trebuie să fie în format Base32. +Exemplu: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - + Confirmați Eliminarea setărilor TOTP Are you sure you want to delete TOTP settings for this entry? - + Sigur doriți să ștergeți setările TOTP pentru această intrare? @@ -7077,11 +7096,11 @@ Example: JBSWY3DPEHPK3PXP Import from 1Password - + Importă de la 1Password Open a recent database - + Deschideți o bază de date recentă @@ -7108,11 +7127,11 @@ Example: JBSWY3DPEHPK3PXP Refresh hardware tokens - + Actualizați jetoane hardware Hardware key slot selection - + Selectarea sloturilor pentru cheie hardware \ No newline at end of file diff --git a/share/translations/keepassx_ru.ts b/share/translations/keepassx_ru.ts index 2cbec38f8a..7fb0495bd4 100644 --- a/share/translations/keepassx_ru.ts +++ b/share/translations/keepassx_ru.ts @@ -101,7 +101,7 @@ Are you sure you want to reset all general and security settings to default? - Вы уверены, что вы хотите сбросить по умолчанию все общие настройки и настройки безопасности? + Действительно сбросить все общие параметры и параметры безопасности к значениям, заданным по умолчанию? @@ -325,7 +325,7 @@ Clear clipboard after - Задержка очистки поискового запроса: + Задержка очистки буфера обмена: sec @@ -382,7 +382,7 @@ Hide entry notes by default - Скрывать заметки по умолчанию + Не показывать текст заметкок Privacy @@ -521,7 +521,7 @@ Search... - Поиск... + Поиск… @@ -640,12 +640,12 @@ Please select the correct database for saving credentials. Sort &matching credentials by title Credentials mean login data requested via browser extension - Сортировать &подходящие учётные данные по названию + Сортировать возвращаемые данные по &названию Sort matching credentials by &username Credentials mean login data requested via browser extension - Сортировать по &имени пользователя + Сортировать возвращаемые данные по &имени пользователя Advanced @@ -654,17 +654,17 @@ Please select the correct database for saving credentials. Never &ask before accessing credentials Credentials mean login data requested via browser extension - Никогда не &спрашивать перед доступом к учётным данным + Не подтверждать &доступ к записям Never ask before &updating credentials Credentials mean login data requested via browser extension - Никогда не спрашивать перед &обновлением учётных данных + Не подтверждать &обновление записей Searc&h in all opened databases for matching credentials Credentials mean login data requested via browser extension - &Поиск во всех открытых базах для сопоставления учётных данных + Искать во &всех открытых базах Automatically creating or updating string fields is not supported. @@ -688,7 +688,7 @@ Please select the correct database for saving credentials. Use a &proxy application between KeePassXC and browser extension - Использование &прокси-приложения между KeePassXC и расширением браузера + Использовать &прокси-приложение между KeePassXC и расширением браузера Use a custom proxy location if you installed a proxy manually. @@ -697,12 +697,12 @@ Please select the correct database for saving credentials. Use a &custom proxy location Meant is the proxy for KeePassXC-Browser - Использовать &пользовательское местоположение прокси + Задать &своё расположение прокси Browse... Button for opening file dialog - Обзор... + Обзор… <b>Warning:</b> The following options can be dangerous! @@ -739,7 +739,7 @@ Please select the correct database for saving credentials. KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2. %3 - Для интеграции с браузерами требуется KeePassXC-Browser. <br />Скачайте его для %1 и %2. %3 + Для интеграции требуется установить расширение для браузера «KeePassXC-Browser». <br />Установите его для %1 и %2. %3 &Brave @@ -751,7 +751,7 @@ Please select the correct database for saving credentials. &Allow returning expired credentials. - Разрешить возвращать &истёкшие записи + Возвращать &истёкшие записи Enable browser integration @@ -763,7 +763,7 @@ Please select the correct database for saving credentials. All databases connected to the extension will return matching credentials. - + Получать результаты поиска из всех подключённых баз данных Don't display the popup suggesting migration of legacy KeePassHTTP settings. @@ -1129,11 +1129,11 @@ Please consider generating a new key file. Select slot... - Выбрать слот... + Выберите слот… Unlock KeePassXC Database - Разблокировать базу данных KeePassXC + Открытие базы данных KeePassXC Enter Password: @@ -1157,7 +1157,7 @@ Please consider generating a new key file. Browse for key file - Открытие диалога выбора файла-ключа + Открыть диалога выбора файла-ключа Browse... @@ -1308,7 +1308,7 @@ If you do not have a key file, please leave the field empty. Do you really want to delete the selected key? This may prevent connection to the browser plugin. - Вы действительно хотите удалить выбранный ключ? + Действительно удалить выбранный ключ? Это может воспрепятствовать соединению с подключаемым модулем браузера. @@ -1580,19 +1580,19 @@ If you keep this number, your database may be too easy to crack! DatabaseSettingsWidgetFdoSecrets Exposed Entries - + Доступ к записям Don't e&xpose this database - + Не &публиковать эту базу данных Expose entries &under this group: - + &Предоставить доступ к записям выбранной группы: Enable fd.o Secret Service to access these settings. - + Для доступа к этим параметрам включите службу Secret Service. @@ -1774,7 +1774,7 @@ Are you sure you want to continue without a password? Hover over lines with error icons for further information. - + Для получения дополнительной информации наведите курсор мыши на строки, содержащие значок ошибки. Name @@ -1958,7 +1958,7 @@ This is definitely a bug, please report it to the developers. Failed to open %1. It either does not exist or is not accessible. - + Не удалось открыть «%1», файл не существует или недоступен. Export database to HTML file @@ -2222,7 +2222,7 @@ Disable safe saves and try again? Edit entry - Редактировать запись + Редактирование записи Different passwords supplied. @@ -2262,7 +2262,7 @@ Disable safe saves and try again? Entry has unsaved changes - В записи есть несохранённые изменения + Запись содержит несохранённые изменения. New attribute %1 @@ -2278,7 +2278,7 @@ Disable safe saves and try again? Confirm Removal - Подтвердите удаление + Подтверждение удаления Browser Integration @@ -2408,7 +2408,7 @@ Disable safe saves and try again? Open Auto-Type help webpage - + Открыть страницу справки по авто-вводу Existing window associations @@ -2685,7 +2685,7 @@ Disable safe saves and try again? Remove key from agent after specified seconds - + Убрать ключ из агента по истечению заданного интервала времени Browser for key file @@ -2763,7 +2763,7 @@ Disable safe saves and try again? Inactive - Неактивные + Не участвует в обмене KeeShare unsigned container @@ -2791,32 +2791,32 @@ Disable safe saves and try again? Import - Импортировать + Импортируется Export - Экспортировать + Экспортируется Synchronize - Синхронизировать + Синхронизируется Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + Установленная версия KeePassXC не поддерживает совместное использование контейнера такого типа. Список поддерживаемых расширений: %1. %1 is already being exported by this database. - + %1 уже экспортируется этой базой данных. %1 is already being imported by this database. - + %1 уже импортируется этой базой данных. %1 is being imported and exported by different groups in this database. - + %1 уже экспортируется и импортируется различными группами этой базы данных. KeeShare is currently disabled. You can enable import/export in the application settings. @@ -2833,15 +2833,15 @@ Supported extensions are: %1. Sharing mode field - + Поле состояния общего доступа Path to share file field - + Поле пути к общему файлу Browser for share file - + Запуск диалога открытия общего файла Password field @@ -3038,7 +3038,7 @@ Supported extensions are: %1. Plugin Data - Данные подключаемых модулей + Данные подключаемого модуля браузера Remove @@ -3046,13 +3046,13 @@ Supported extensions are: %1. Delete plugin data? - Удалить данные подключаемых модулей? + Удалить данные подключаемого модуля браузера? Do you really want to delete the selected plugin data? This may cause the affected plugins to malfunction. - Действительно удалить выбранные данные подключаемых модулей? -Это действие может привести к неработоспособности подключаемых модулей. + Действительно удалить выбранные данные подключаемого модуля? +Это действие может привести к неработоспособности подключаемых модулей в браузерах. Key @@ -3064,15 +3064,15 @@ This may cause the affected plugins to malfunction. Datetime created - + Дата и время создания Datetime modified - + Дата и время изменения Datetime accessed - + Дата и время последнего использования Unique ID @@ -3080,11 +3080,11 @@ This may cause the affected plugins to malfunction. Plugin data - + Данные подключаемого модуля Remove selected plugin data - + Удаление выбранных данных подключаемого модуля браузера @@ -3133,7 +3133,7 @@ This may cause the affected plugins to malfunction. Are you sure you want to remove %n attachment(s)? - Вы уверены, что вы хотите удалить %n вложение?Вы уверены, что вы хотите удалить %n вложения?Вы уверены, что вы хотите удалить %n вложений?Вы действительно хотите удалить вложения (%n шт.)? + Действительно удалить это вложение?Действительно удалить %n вложения?Действительно удалить %n вложений?Действительно удалить %n вложения? Save attachments @@ -3172,7 +3172,7 @@ This may cause the affected plugins to malfunction. Confirm remove - Подтвердите удаление + Подтверждение удаления Unable to open file(s): @@ -3189,19 +3189,19 @@ This may cause the affected plugins to malfunction. Add new attachment - + Добавить вложение Remove selected attachment - + Удалить выбранное вложение Open selected attachment - + Открыть выбранное вложение Save selected attachment to disk - + Сохранить выбранное вложение на диск @@ -3379,7 +3379,7 @@ This may cause the affected plugins to malfunction. Share - Предоставить общий доступ + Общий файл Display current TOTP value @@ -3444,7 +3444,7 @@ This may cause the affected plugins to malfunction. FdoSecretsPlugin Fdo Secret Service: %1 - + FDO Secret Service: %1 @@ -3470,7 +3470,7 @@ This may cause the affected plugins to malfunction. IconDownloaderDialog Download Favicons - Загрузить значки + Получение значков сайтов Cancel @@ -3563,7 +3563,8 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Вероятно, для входа были указанные неверные данные. +Попробуйте ввести данные ещё раз, если ошибка повториться, возможно, файл базы данных повреждён. @@ -3698,11 +3699,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Вероятно, для входа были указанные неверные данные. +Попробуйте ввести данные ещё раз, если ошибка повториться, возможно, файл базы данных повреждён. (HMAC mismatch) - + (несоответствие HMAC) @@ -3931,7 +3933,7 @@ Line %2, column %3 Import KeePass1 Database - + Импортировать базу данных в формате KeePass1 @@ -4088,18 +4090,19 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Вероятно, для входа были указанные неверные данные. +Попробуйте ввести данные ещё раз, если ошибка повториться, возможно, файл базы данных повреждён. KeeShare Invalid sharing reference - + Неверная ссылка общего доступа Inactive share %1 - + Неактивная общая база %1 Imported from %1 @@ -4107,35 +4110,35 @@ If this reoccurs, then your database file may be corrupt. Exported to %1 - + Выполнен экспорт в «%1» Synchronized with %1 - + Синхронизировано с «%1» Import is disabled in settings - + Возможность импортировать отключена в параметрах программы Export is disabled in settings - + Возможность экспорировать отключена в параметрах программы Inactive share - + Неактивная общая база Imported from - + Импортировано из Exported to - + Экспортировано в Synchronized with - + Синхронизировано с @@ -4240,7 +4243,7 @@ Message: %2 Browse for key file - Открытие диалога выбора ключевого файла + Открыть диалога выбора файла-ключа Browse... @@ -4248,11 +4251,11 @@ Message: %2 Generate a new key file - + Создать новый файл ключа Note: Do not use a file that may change as that will prevent you from unlocking your database! - + Внимание: изменение файла приведёт к невозможности разблокировать базу данных! Invalid Key File @@ -4260,7 +4263,7 @@ Message: %2 You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + Файл базы данных не может быть использован в качестве файла-ключа. Выберите другой файл или создайте файл-ключ. Suspicious Key File @@ -4269,7 +4272,8 @@ Message: %2 The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - + Выбранный файл-ключ, вероятно, является файлом базы данных паролей. Файл-ключ должен являться неизменяемым файлом, в противном случае доступ к базе данных будет безвозвратно утерян. +Продолжить использовать выбранный файл? @@ -4564,7 +4568,7 @@ Expect some bugs and minor issues, this version is not meant for production use. &Export - &Экспорт + &Экспорт &Check for Updates... @@ -4576,15 +4580,15 @@ Expect some bugs and minor issues, this version is not meant for production use. Sort &A-Z - Сортировать &A-Z + Сортировать &А-Я Sort &Z-A - Сортировать &Z-A + Сортировать &Я-А &Password Generator - &Генератор Паролей + &Генератор паролей Download favicon @@ -4620,11 +4624,11 @@ Expect some bugs and minor issues, this version is not meant for production use. &User Guide - &Руководство Пользователя + &Руководство пользователя Open User Guide PDF - Открыть инструкцию пользователя в формате PDF + Открыть руководство пользователя в формате PDF &Keyboard Shortcuts @@ -4691,11 +4695,11 @@ Expect some bugs and minor issues, this version is not meant for production use. Removed custom data %1 [%2] - + Пользовательские данные %1 [%2] удалены Adding custom data %1 [%2] - + Добавление пользовательских данные %1 [%2] @@ -4770,31 +4774,31 @@ Expect some bugs and minor issues, this version is not meant for production use. OpData01 Invalid OpData01, does not contain header - + Данные OpData01 не содержат заголовка Unable to read all IV bytes, wanted 16 but got %1 - + Невозможно считать все данные вектора инициализации: ожидалось 16 байт, но получено %1 байт Unable to init cipher for opdata01: %1 - + Невозможно инициализировать шифрование для данных opdata01: %1 Unable to read all HMAC signature bytes - + Не удалось полностью считать данные подписи HMAC Malformed OpData01 due to a failed HMAC - + Повреждённые данные OpData01 по причине неверного HMAC Unable to process clearText in place - + Невозможно обработать простой текст Expected %1 bytes of clear-text, found %2 - + Ожидалось %1 байт простого текста, найдено %2 @@ -4802,26 +4806,27 @@ Expect some bugs and minor issues, this version is not meant for production use. Read Database did not produce an instance %1 - + Невозможно создать базу данных из прочитанного файла +%1 OpVaultReader Directory .opvault must exist - + Не найден каталог «.opvault» Directory .opvault must be readable - + Каталог «.opvault» не доступен для чтения Directory .opvault/default must exist - + Не найден каталог «.opvault/default» Directory .opvault/default must be readable - + Каталог «.opvault/default» не доступен для чтения Unable to decode masterKey: %1 @@ -4829,7 +4834,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Unable to derive master key: %1 - + Не удалось извлечь мастер-ключ: %1 @@ -4939,7 +4944,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Passwords match so far - + Количество совпавших паролей @@ -5026,7 +5031,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Pick characters from every group - Подобрать символы из каждой группы + Использовать символы из каждой группы &Length: @@ -5363,7 +5368,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Key file of the database. - Ключевой файл базы данных. + Файл-ключ базы данных. path @@ -5403,7 +5408,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Copy an entry's password to the clipboard. - Скопировать пароль в буфер обмена. + Скопировать пароль записи в буфер обмена. Path of the entry to clip. @@ -5971,7 +5976,7 @@ Available commands: Parent window handle - Дескриптор родительского окна + Дескриптор родительского окна. Another instance of KeePassXC is already running. @@ -6099,27 +6104,27 @@ Kernel: %3 %4 Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - + Проверка паролей на компрометацию. Параметр ИМЯ_ФАЙЛА должен быть путём к файлу данных списка SHA-1 хэшей паролей в формате HIBP, полученным, например, с сайта https://haveibeenpwned.com/Passwords. FILENAME - + ИМЯ_ФАЙЛА Analyze passwords for weaknesses and problems. - + Проверка надёжности и других характеристик паролей. Failed to open HIBP file %1: %2 - + Не удалось открыть файл в формате HIBP %1: %2 Evaluating database entries against HIBP file, this will take a while... - + Производится проверка записей базы данных относительно файла в формате HIBP… Close the currently opened database. - + Закрыть текущую базу данных. Display this help. @@ -6127,7 +6132,7 @@ Kernel: %3 %4 Yubikey slot used to encrypt the database. - + Слот устройства Yubikey, использованный для шифрования базы данных. slot @@ -6135,7 +6140,7 @@ Kernel: %3 %4 Invalid word count %1 - + Количество неверных слов: %1 The word list is too small (< 1000 items) @@ -6147,15 +6152,15 @@ Kernel: %3 %4 Format to use when exporting. Available choices are xml or csv. Defaults to xml. - + Выбор формата файла для экспорта. Возможные варианты: XML (по умолчанию) или CSV. Exports the content of a database to standard output in the specified format. - + Экспорт базы данных в заданном формате на устройство стандартного вывода. Unable to export database to XML: %1 - + Ошибка экспортирования базы данных в формат XML: %1 Unsupported format %1 @@ -6179,11 +6184,11 @@ Kernel: %3 %4 Import the contents of an XML database. - + Импортировать базу данных в формате XML. Path of the XML database export. - + Путь для экспорта базы данных в формат XML Path of the new database. @@ -6191,7 +6196,7 @@ Kernel: %3 %4 Unable to import XML database export %1 - + Ошибка импорта базы данных %1 из формата XML Successfully imported database. @@ -6207,7 +6212,7 @@ Kernel: %3 %4 Only print the changes detected by the merge operation. - + Не выполнять объединение, а только сообщать о найденных изменениях Yubikey slot for the second database. @@ -6215,7 +6220,7 @@ Kernel: %3 %4 Successfully merged %1 into %2. - + %1 успешно объединён с %2. Database was not modified by merge operation. @@ -6287,15 +6292,15 @@ Kernel: %3 %4 Please touch the button on your YubiKey to unlock %1 - + Для разблокирования %1 нажмите кнопку на устройстве YubiKey Enter password to encrypt database (optional): - + Введите пароль для шифрования базы данных (необязательно): HIBP file, line %1: parse error - + Ошибка разбора строки %1 файла в формате HIBP Secret Service Integration @@ -6307,15 +6312,15 @@ Kernel: %3 %4 %1[%2] Challenge Response - Slot %3 - %4 - + %1 [%2] Вызов-ответ — слот %3 - %4 Password for '%1' has been leaked %2 time(s)! - + Пароль к «%1» был замечен в утечках %2 раз.Пароль к «%1» был замечен в утечках %2 раза.Пароль к «%1» был замечен в утечках %2 раз.Пароль к «%1» был замечен в утечках %2 раза. Invalid password generator after applying all options - + Невозможно создать пароль с заданными параметрами Show the protected attributes in clear text. @@ -6482,7 +6487,7 @@ Kernel: %3 %4 Enable KeepassXC Freedesktop.org Secret Service integration - + Включить интеграцию KeepassXC со службой Freedesktop.org Secret Service General @@ -6490,23 +6495,23 @@ Kernel: %3 %4 Show notification when credentials are requested - + Выводить уведомления при запросе записей <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> - + <html><head/><body><p>Если в параметрах базы данных разрешено использование корзины, то при удалении записи будут перемещены в неё. В противном случае, будет выполнено необратимое удаление без подтверждения.</p><p>В случае, если на удаляемые записи имеются ссылки, потребуется подтверждение удаления.</p></body></html> Don't confirm when entries are deleted by clients. - + Не подтверждать удаление записей приложениями-клиентами Exposed database groups: - + Доступные группы из базы данных: File Name - + Имя файла Group @@ -6514,7 +6519,7 @@ Kernel: %3 %4 Manage - + Управление Authorization @@ -6522,15 +6527,15 @@ Kernel: %3 %4 These applications are currently connected: - + Подключены следующие приложения: Application - + Приложение Disconnect - + Отключить Database settings @@ -6538,7 +6543,7 @@ Kernel: %3 %4 Edit database settings - + Редактирование параметров базы данных Unlock database @@ -6662,7 +6667,7 @@ Kernel: %3 %4 KeeShare key file - Ключевой файл KeeShare + Файл ключа KeeShare All files @@ -6962,7 +6967,7 @@ Kernel: %3 %4 Secret Key: - Секретный ключ + Секретный ключ: Secret key must be in Base32 format diff --git a/share/translations/keepassx_sk.ts b/share/translations/keepassx_sk.ts index ef4289e868..cf01642d57 100644 --- a/share/translations/keepassx_sk.ts +++ b/share/translations/keepassx_sk.ts @@ -743,7 +743,7 @@ Prosím, vyberte správnu databázu na uloženie prihlasovacích údajov. &Brave - + &Odvážny Returns expired credentials. String [expired] is added to the title. @@ -767,11 +767,11 @@ Prosím, vyberte správnu databázu na uloženie prihlasovacích údajov. Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + Nezobrazovať okno s návrhom na migráciu starých nastavení KeePassHTTP. &Do not prompt for KeePassHTTP settings migration. - + &Nepýtať sa na migráciu nastavení KeePassHTTP. Custom proxy location field @@ -878,7 +878,11 @@ Chcete teraz migrovať svoje nastavenia? Give the connection a unique name or ID, for example: chrome-laptop. - + Obdržali ste požiadavku na priradenie nasledujúcej databázy. +%1 + +Zadajte mu jedinečný názov alebo identifikátor, napríklad: +chrome-laptop. @@ -2286,7 +2290,7 @@ Vypnúť bezpečné ukladanie a skúsiť znova? <empty URL> - + <prázdna URL> Are you sure you want to remove this URL? @@ -2451,15 +2455,15 @@ Vypnúť bezpečné ukladanie a skúsiť znova? Skip Auto-Submit for this entry - + Zapnúť Automatické vypĺňanie pre túto položku Hide this entry from the browser extension - + Skryť túto položku v rozšírení prehliadača Additional URL's - + Ďalšie URL Add @@ -2494,19 +2498,19 @@ Vypnúť bezpečné ukladanie a skúsiť znova? Entry history selection - + Výber histórie položky Show entry at selected history state - + Zobraziť stav položky v okamžiku zvolenej histórie Restore entry to selected history state - + Obnoviť stav položky do okamžiku zvolenej histórie Delete selected history state - + Vymazať zvolený stav histórie Delete all history @@ -2557,7 +2561,7 @@ Vypnúť bezpečné ukladanie a skúsiť znova? Download favicon for URL - + Stiahnuť ikonu URL Repeat password field @@ -2597,11 +2601,11 @@ Vypnúť bezpečné ukladanie a skúsiť znova? Title field - + Pole nadpisu Username field - + Pole použ. mena Toggle expiration @@ -2685,19 +2689,19 @@ Vypnúť bezpečné ukladanie a skúsiť znova? Remove key from agent after specified seconds - + Odstrániť kľúč z agenta po zadanom počte sekúnd Browser for key file - + Vybrať súbor kľúča External key file - + Súbor externého kľúča Select attachment file - + Zvoľte súbor prílohy @@ -2799,20 +2803,21 @@ Vypnúť bezpečné ukladanie a skúsiť znova? Synchronize - + Synchronizovať Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + Táto verzia KeePassXC nepodporuje zdieľanie tohoto typu kontajnera. +Podporované rozšírenia sú: %1. %1 is already being exported by this database. - + %1 už bolo exportované touto databázou. %1 is already being imported by this database. - + %1 už bolo importované touto databázou. %1 is being imported and exported by different groups in this database. @@ -2821,27 +2826,27 @@ Supported extensions are: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + KeeShare je momentálne vypnuté. Import/export môžete zapnúť v nastaveniach aplikácie. Database export is currently disabled by application settings. - + Export databázy je momentálne vypnutý v nastaveniach aplikácie. Database import is currently disabled by application settings. - + Import databázy je momentálne vypnutý v nastaveniach aplikácie. Sharing mode field - + Pole režimu zdieľania Path to share file field - + Pole cesty zdieľania súboru Browser for share file - + Vybrať zdieľaný súbor Password field @@ -2912,7 +2917,7 @@ Supported extensions are: %1. Search toggle for this and sub groups - + Prepnúť hľadanie tejto a podriadených skupín Default auto-type sequence field @@ -2979,43 +2984,43 @@ Supported extensions are: %1. This icon is used by %n entry(s), and will be replaced by the default icon. Are you sure you want to delete it? - + Táto ikona je použitá v %n položke a bude nahradená predvolenou ikonou. Naozaj ju chcete odstrániť?Táto ikona je použitá v %n položkách a bude nahradená predvolenou ikonou. Naozaj ju chcete odstrániť?Táto ikona je použitá v %n položkách a bude nahradená predvolenou ikonou. Naozaj ju chcete odstrániť?Táto ikona je použitá v %n položkách a bude nahradená predvolenou ikonou. Naozaj ju chcete odstrániť? You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - + Môžete zapnúť webovú službu ikon DuckDuckGo v Nástroje -> Nastavenie -> Bezpečnosť Download favicon for URL - + Stiahnuť ikonu URL Apply selected icon to subgroups and entries - + Použiť zvolenú ikonu na podskupiny a položky Apply icon &to ... - + Použiť ikonu &na … Apply to this only - + Použiť len na túto Also apply to child groups - + Použiť aj na podriadené skupiny Also apply to child entries - + Použiť aj na podriadené položky Also apply to all children - + Použiť na všetkých potomkov Existing icon selected. - + Zvolená existujúca ikona. @@ -3178,7 +3183,11 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov. Unable to open file(s): %1 - + Nemožno otvoriť súbor: +%1Nemožno otvoriť súbory: +%1Nemožno otvoriť súbory: +%1Nemožno otvoriť súbory: +%1 Attachments @@ -3186,19 +3195,19 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov. Add new attachment - + Pridať novú prílohu Remove selected attachment - + Odstrániť zvolenú prílohu Open selected attachment - + Otvoriť zvolenú prílohu Save selected attachment to disk - + Uložiť zvolenú prílohu na disk @@ -3380,7 +3389,7 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov. Display current TOTP value - + Zobraziť aktuálnu hodnotu TOTP Advanced @@ -3429,7 +3438,7 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov.FdoSecrets::Service Failed to register DBus service at %1: another secret service is running. - + Zlyhala registrácia služby DBus na %1: je spustená iná služba. %n Entry(s) was used by %1 @@ -3467,7 +3476,7 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov.IconDownloaderDialog Download Favicons - + Stiahnuť ikony Cancel @@ -3476,7 +3485,8 @@ Môže to spôsobiť nefunkčnosť dotknutých zásuvných modulov. Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + Máte problémy so sťahovaním ikon? +V bezpečnostnej sekcii nastavení aplikácie môžete zapnúť webovú službu ikon. Close @@ -3492,11 +3502,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list... - + Prosím, počkajte, spracovanie zoznamu položiek… Downloading... - + Sťahovanie… Ok @@ -3512,7 +3522,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Downloading favicons (%1/%2)... - + Sťahovanie ikon (%1/%2)… @@ -3559,7 +3569,8 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Boli zadané neplatné prihlasovacie údaje, prosím skúste znova. +Ak sa to opakuje, potom môže byť súbor databázy poškodený. @@ -3694,11 +3705,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Boli zadané neplatné prihlasovacie údaje, prosím skúste znova. +Ak sa to opakuje, potom môže byť súbor databázy poškodený. (HMAC mismatch) - + (nezhoda HMAC) @@ -4084,7 +4096,8 @@ Riadok %2, stĺpec %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Boli zadané neplatné prihlasovacie údaje, prosím skúste znova. +Ak sa to opakuje, potom môže byť súbor databázy poškodený. @@ -4613,7 +4626,7 @@ Očakávajte chyby a menšie problémy, táto verzia nie je určená na produkč Go to online documentation (opens browser) - + Prejsť na dokumentáciu on-line (otvorí prehliadač) &User Guide @@ -4771,7 +4784,7 @@ Očakávajte chyby a menšie problémy, táto verzia nie je určená na produkč Unable to read all IV bytes, wanted 16 but got %1 - + Nemožno čítať všetky bajty IV, potrebných 16, ale získaných %1 Unable to init cipher for opdata01: %1 @@ -4779,7 +4792,7 @@ Očakávajte chyby a menšie problémy, táto verzia nie je určená na produkč Unable to read all HMAC signature bytes - + Nemožno čítať všetky bajty podpisu HMAC Malformed OpData01 due to a failed HMAC @@ -4806,27 +4819,27 @@ Očakávajte chyby a menšie problémy, táto verzia nie je určená na produkč OpVaultReader Directory .opvault must exist - + Adresár .opvault musí existovať Directory .opvault must be readable - + Adresár .opvault musí byť čitateľný Directory .opvault/default must exist - + Adresár .opvault/default musí existovať Directory .opvault/default must be readable - + Adresár .opvault/default musí byť čitateľný Unable to decode masterKey: %1 - + Nemožno dekódovať hlavný kľúč: %1 Unable to derive master key: %1 - + Nemožno odvodiť hlavný kľúč: %1 @@ -4932,11 +4945,11 @@ Očakávajte chyby a menšie problémy, táto verzia nie je určená na produkč PasswordEdit Passwords do not match - + Heslá sa nezhodujú. Passwords match so far - + Heslá sa zhodujú až potiaľ @@ -6072,7 +6085,7 @@ Jadro: %3 %4 Cannot generate a password and prompt at the same time! - + Nemožno naraz generovať aj zadať heslo! Adds a new group to a database. @@ -6096,11 +6109,11 @@ Jadro: %3 %4 Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - + Skontrolovať, či nejaké heslo neuniklo na verejnosť. MENOSÚBORU musí byť cesta k súboru so zoznamom odtlačkov SHA-1 uniknutých hesiel vo formáte HIBP, ako je dostupný z https://haveibeenpwned.com/Passwords. FILENAME - + MENOSÚBORU Analyze passwords for weaknesses and problems. @@ -6108,7 +6121,7 @@ Jadro: %3 %4 Failed to open HIBP file %1: %2 - + Zlyhalo otvorenie súboru HIBP %1: %2 Evaluating database entries against HIBP file, this will take a while... @@ -6120,7 +6133,7 @@ Jadro: %3 %4 Display this help. - + Zobrazí tohoto pomocníka. Yubikey slot used to encrypt the database. @@ -6128,11 +6141,11 @@ Jadro: %3 %4 slot - + slot Invalid word count %1 - + Neplatný počet slov %1 The word list is too small (< 1000 items) @@ -6140,7 +6153,7 @@ Jadro: %3 %4 Exit interactive mode. - + Ukončiť interaktívny režim. Format to use when exporting. Available choices are xml or csv. Defaults to xml. @@ -6152,27 +6165,27 @@ Jadro: %3 %4 Unable to export database to XML: %1 - + Nemožno exportovať databázu do XML: %1 Unsupported format %1 - + Nepodporovaný formát: %1 Use numbers - + Použiť čísla Invalid password length %1 - + Neplatná dĺžka hesla %1 Display command help. - + Zobrazí pomocníka príkazu. Available commands: - + Dostupné príkazy: Import the contents of an XML database. @@ -6188,15 +6201,15 @@ Jadro: %3 %4 Unable to import XML database export %1 - + Nemožno importovať databázu z exportu XML %1 Successfully imported database. - + Úspešne importovaná databáza. Unknown command %1 - + Neznáma príkaz %1 Flattens the output to single lines. @@ -6212,7 +6225,7 @@ Jadro: %3 %4 Successfully merged %1 into %2. - + Úspešne zlúčené %1 do %2. Database was not modified by merge operation. @@ -6220,7 +6233,7 @@ Jadro: %3 %4 Moves an entry to a new group. - + Presunie položku do novej skupiny. Path of the entry to move. @@ -6228,7 +6241,7 @@ Jadro: %3 %4 Path of the destination group. - + Cesta cieľovej skupiny. Could not find group with path %1. @@ -6527,7 +6540,7 @@ Jadro: %3 %4 Disconnect - + Odpojiť Database settings @@ -6535,7 +6548,7 @@ Jadro: %3 %4 Edit database settings - + Upraviť nastavenia databázy Unlock database @@ -6543,7 +6556,7 @@ Jadro: %3 %4 Unlock database to show more information - + Odomknúť databázu na zobrazenie ďalších informácií Lock database @@ -6551,7 +6564,7 @@ Jadro: %3 %4 Unlock to show - + Odomknúť na zobrazenie None @@ -6683,15 +6696,15 @@ Jadro: %3 %4 Allow KeeShare imports - + Povoliť importy KeeShare Allow KeeShare exports - + Povoliť exporty KeeShare Only show warnings and errors - + Zobraziť len upozornenia a chyby Key @@ -6703,35 +6716,35 @@ Jadro: %3 %4 Generate new certificate - + Generovať nový certifikát Import existing certificate - + Importovať existujúci certifikát Export own certificate - + Exportuje vlastný certifikát Known shares - + Známe zdieľania Trust selected certificate - + Dôverovať zvolenému certifikátu Ask whether to trust the selected certificate every time - + Vždy sa spýtať, či dôverovať zvolenému certifikátu Untrust selected certificate - + Zrušiť dôveru zvoleného certifikátu Remove selected certificate - + Odstrániť zvolený certifikát @@ -6900,7 +6913,7 @@ Prepis podpísaných zdieľaných kontajnerov nie je podporovaný - export sa ne Expires in <b>%n</b> second(s) - + Platnosť vyprší za % n sekunduPlatnosť vyprší za % n sekundyPlatnosť vyprší za % n sekúndPlatnosť vyprší za <b>% n</b> sekúnd @@ -6960,19 +6973,19 @@ Prepis podpísaných zdieľaných kontajnerov nie je podporovaný - export sa ne Secret Key: - + Tajný kľúč: Secret key must be in Base32 format - + Tajný kľúč musí byť vo formáte Base32 Secret key field - + Pole tajného kľúča Algorithm: - + Algoritmus: Time step field @@ -6980,24 +6993,25 @@ Prepis podpísaných zdieľaných kontajnerov nie je podporovaný - export sa ne digits - + číslice Invalid TOTP Secret - + Neplatné tajomstvo TOTP You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - + Zadali ste neplatný tajný kľúč. Kľúč musí byť vo formáte Base32. +Napríklad: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - + Potvrďte odstránenie nastavení TOTP Are you sure you want to delete TOTP settings for this entry? - + Naozaj chcete odstrániť nastavenia TOTP tejto položky? @@ -7087,7 +7101,7 @@ Example: JBSWY3DPEHPK3PXP Open a recent database - + Otvoriť nedávnu databázu diff --git a/share/translations/keepassx_sv.ts b/share/translations/keepassx_sv.ts index ccde447a7e..f49d239a7c 100644 --- a/share/translations/keepassx_sv.ts +++ b/share/translations/keepassx_sv.ts @@ -19,7 +19,7 @@ Contributors - Bidragsgivare + Medverkande <a href="https://github.com/keepassxreboot/keepassxc/graphs/contributors">See Contributions on GitHub</a> @@ -93,15 +93,15 @@ Follow style - Följstil + Följ stil Reset Settings? - Återställa inställningarna? + Vill du återställa inställningarna? Are you sure you want to reset all general and security settings to default? - Är du säker på att du vill återställa alla allmäna inställningar och säkerhetsinställningar till standardvärden? + Vill du verkligen återställa alla allmäna och säkerhetsinställningar till standardinställning? @@ -225,63 +225,63 @@ Remember previously used databases - Kom ihåg tidigare använda databaser + Kom ihåg tidigare databaser Load previously open databases on startup - Ladda tidigare använda databaser vid start + Läs in tidigare öppna databaser vid programstart Remember database key files and security dongles - Kom ihåg databasers nyckelfiler och säkerhetsdonglar + Kom ihåg databasnyckelfiler och säkerhetsenheter Check for updates at application startup once per week - + Sök efter uppdateringar vid programstart, en gång per vecka Include beta releases when checking for updates - + Inkludera betaversioner vid sökning efter uppdateringar Button style: - + Knappstil: Language: - + Språk: (restart program to activate) - + (starta om programmet för att aktivera) Minimize window after unlocking database - + Minimera fönstret efter upplåsning av databas Minimize when opening a URL - + Minimera vid öppning av URL Hide window when copying to clipboard - + Dölj fönstret vid kopiering till urklipp Minimize - + Mimimera Drop to background - + Flytta till bakgrunden Favicon download timeout: - + Tidsgräns för nerladdning av favicon: Website icon download timeout in seconds - + Tidsgräns för nerladdning av webbsideikon, i sekunder. sec @@ -290,31 +290,31 @@ Toolbar button style - + Knappstil för verktygsfält Use monospaced font for Notes - + Använda teckensnitt med fast teckenbredd för anteckningar Language selection - + Språkval Reset Settings to Default - + Återställ inställningarna till standardinställning Global auto-type shortcut - + Övergripande autoskrivgenväg Auto-type character typing delay milliseconds - + Fördröjning vid utomatisk skrivning, i millisekunder. Auto-type start delay milliseconds - + Autoskrivfördröjning i millisekunder @@ -390,19 +390,19 @@ Use DuckDuckGo service to download website icons - + Använd DuckDuckGo för att ladda ner webbplatsikoner Clipboard clear seconds - + Tidsgräns för urklippsrensing i sekunder Touch ID inactivity reset - + Återställning av Touch-ID vid inaktivitet Database lock timeout seconds - + Tidsgräns för databaslås i sekunder min @@ -411,7 +411,7 @@ Clear search query after - + Radera söksträng efter @@ -446,11 +446,11 @@ Permission Required - + Tillstånd krävs KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC kräver åtkomsttillstånd för att utföra automatisk skrivning på postnivå. Om du redan har beviljat tillstånd, kanske du behöver styarta om KeePassXC. @@ -502,11 +502,11 @@ AutoTypePlatformMac Permission Required - + Tillstånd krävs KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC kräver åtkomst- och inspelningstillstånd för att utföra automatisk skrivning på övergripande nivå. Skärminspelning krävs för att använda fönstertiteln till att identifiera poster. Om du redan har beviljat tillstånd, kanske du behöver styarta om KeePassXC. @@ -517,7 +517,7 @@ Select entry to Auto-Type: - Välj post att autoskriva: + Välj post att skriva automatiskt: Search... @@ -546,15 +546,15 @@ %1 has requested access to passwords for the following item(s). Please select whether you want to allow access. %1 har begärt åtkomst till lösenorden för följande objekt. -Välj om du vill tillåta åtkomst. +Välj om du vill tillåta eller neka åtkomst. Allow access - + Tillåt åtkomst Deny access - + Neka åtkomst @@ -635,7 +635,7 @@ Välj rätt databas för att spara inloggningsuppgifterna. &Return only best-matching credentials - &Returnera bara de bäst lämpade inloggningsuppgifterna + &Returnera bara de bäst lämpade autentiseringsuppgifterna Sort &matching credentials by title @@ -743,47 +743,47 @@ Välj rätt databas för att spara inloggningsuppgifterna. &Brave - + &Brave Returns expired credentials. String [expired] is added to the title. - + Returnerar förfallna autentiseringsuppgifter [Förfallen] läggs till i titeln. &Allow returning expired credentials. - + &Tillåt förfallna autentiseringsuppgifter. Enable browser integration - + Aktivera webbläsarintegration Browsers installed as snaps are currently not supported. - + Webbläsare installerade via Snap, stöds för närvarande inte. All databases connected to the extension will return matching credentials. - + Alla databaser anslutna till tillägget, kommer att returnera matchande autentiseringsuppgifter. Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + Visa inte popup-fönstret som föreslår migrering av äldre KeePassHTTP-inställningar. &Do not prompt for KeePassHTTP settings migration. - + &Fråga inte efter inställningar för KeePassHTTP-migrering. Custom proxy location field - + Fält för anpassad proxyplats Browser for custom proxy file - + Webbläsare för anpassad proxyfil <b>Warning</b>, the keepassxc-proxy application was not found!<br />Please check the KeePassXC installation directory or confirm the custom path in advanced options.<br />Browser integration WILL NOT WORK without the proxy application.<br />Expected Path: %1 - + <b>Varning!</b> Program för keepassxc-proxy kunde inte hittas!<br />Kontrollera KeePassXCs installationsmapp eller bekräfta den anpassade sökvägen i avancerade alternativ.<br />Webbläsarintegration FUNGERAR INTE utan proxy-programmet.<br />Förväntad sökväg: %1 @@ -846,7 +846,7 @@ Flyttade %2 nycklar till anpassad data. KeePassXC: Legacy browser integration settings detected - KeePassXC: Inställningar för webbläsarintegrering har identifierats + KeePassXC: Föråldrade inställningar för webbläsarintegrering har identifierats KeePassXC: Create a new group @@ -878,7 +878,11 @@ Vill du migrera dina befintliga inställningar nu? Give the connection a unique name or ID, for example: chrome-laptop. - + Du har fått en associationsbegäran för följande databas: +%1 + +Ge anslutningen ett unikt namn eller ID, som t.ex.: +chrome-laptop. @@ -990,19 +994,19 @@ chrome-laptop. Text qualification - + Textkvalificering Field separation - + Fältseparation Number of header lines to discard - + Antal rubrikrader att kassera CSV import preview - + Förhandsgranskning av CSV-import @@ -1055,19 +1059,20 @@ chrome-laptop. %1 Backup database located at %2 - + %1 +Säkerhetskopierad databas hittad i %2 Could not save, database does not point to a valid file. - + Kunde inte spara. Databasen pekar inte mot en giltig fil. Could not save, database file is read-only. - + Kunde inte spara. Databasfilen är skrivskyddad. Database file has unmerged changes. - + Databasfilen har ändringar som inte har infogats. Recycle Bin @@ -1123,39 +1128,39 @@ komma att tas bort för i framtiden. Failed to open key file: %1 - + Kunde inte öppna nyckelfil: %1 Select slot... - + Välj plats... Unlock KeePassXC Database - + Lås upp KeePassXC-databas Enter Password: - + Ange lösenord: Password field - + Lösenordsfält Toggle password visibility - + Visa/Dölj lösenord Key file selection - + Val av nyckelfil Hardware key slot selection - + Val av plats för hårdvarunyckel Browse for key file - + Bläddra efter nyckelfil Browse... @@ -1163,19 +1168,19 @@ komma att tas bort för i framtiden. Refresh hardware tokens - + Uppdatera hårdvarutokens Hardware Key: - + Hårdvarynyckel: Hardware key help - + Hjälp med hårdvarynyckel TouchID for Quick Unlock - + TouchID för snabb upplåsning Clear @@ -1183,56 +1188,61 @@ komma att tas bort för i framtiden. Clear Key File - + Töm nyckelfilen Unlock failed and no password given - + Upplåsning misslyckades och lösenord saknas Unlocking the database failed and you did not enter a password. Do you want to retry with an "empty" password instead? To prevent this error from appearing, you must go to "Database Settings / Security" and reset your password. - + Kunde inte låsa upp databasen och du angav inget lösenord. +Vill du försöka igen, med ett "tomt" lösenord istället? + +För att förhindra att detta fel uppstår igen, måste du gå till "Databasinställningar/Säkerhet" och återställa dittlösenord. Retry with empty password - + Försök med tomt lösenord Enter Additional Credentials (if any): - + Ange fler autentiseringsuppgifter (om det finns några): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> <p>Click for more information...</p> - + <p>Du kan använda en hårdvarynyckel såsom <strong>YubiKey</strong> eller <strong>OnlyKey</strong> med anslutningsplatser konfigurerade för HMAC-SHA1.</p> +<p>Klicka för mer information...</p> <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - + <p>Som tillägg till ditt huvudlösenord, kan du använda en hemlig fil för att förbättra säkerheten i din databas. En sådan fil kan genereras i databasens säkerhetsinställningar.</p><p>Detta är <strong>inte</strong> din *.kdbx-databasfil!<br>Om du inte har någon nyckelfil, lämnar du fältet tomt.</p><p>Klicka för mer information...</p> Key file help - + Nyckelfilshjälp ? - + ? Select key file... - + Välj nyckelfil... Cannot use database file as key file - + Kan inte använda en databasfil som nyckelfil You cannot use your database file as a key file. If you do not have a key file, please leave the field empty. - + Du kan inte använda din databasfil som nyckelfil. +Om du inte har någon nyckelfil, lämnar du fältet tomt. @@ -1389,11 +1399,11 @@ Detta är nödvändigt för att få kompatibilitet med webbläsartillägget. Stored browser keys - + Lagrade webbläsarnycklar Remove selected key - + Ta bort markerad nyckel @@ -1404,11 +1414,11 @@ Detta är nödvändigt för att få kompatibilitet med webbläsartillägget. AES: 256 Bit (default) - AES: 256 Bit (standard) + AES: 256 bitar (standard) Twofish: 256 Bit - Twofish: 256 Bit + Twofish: 256 bitar Key Derivation Function: @@ -1539,61 +1549,61 @@ Om du behåller detta antal, kan din databas bli för lätt att hacka! Change existing decryption time - + Ändra befintlig avkrypteringstid Decryption time in seconds - + Avkrypteringstid i sekunder Database format - + Databasformat Encryption algorithm - + Krypteringsalgoritm Key derivation function - + Nyckelhärledningsfunktion Transform rounds - + Transformeringsrundor Memory usage - + Minnesanvändning Parallelism - + Parallellitet DatabaseSettingsWidgetFdoSecrets Exposed Entries - + Exponerade poster Don't e&xpose this database - + &Visa inte denna databas Expose entries &under this group: - + Visa poster &under denna grupp: Enable fd.o Secret Service to access these settings. - + Aktivera fd.o Secret Service, för åtkomst till dessa inställningar. DatabaseSettingsWidgetGeneral Database Meta Data - Databasmetadata + Databasens metadata Database name: @@ -1637,36 +1647,37 @@ Om du behåller detta antal, kan din databas bli för lätt att hacka! Database name field - + Databasens namn Database description field - + Databasens beskrivning Default username field - + Standard användarnamn Maximum number of history items per entry - + Max antal historikobjekt per post Maximum size of history per entry - + Max historikstorlek per post Delete Recycle Bin - + Ta bort papperskorgen Do you want to delete the current recycle bin and all its contents? This action is not reversible. - + Vill du ta bort papperskorgen med allt innehåll? +Denna åtgärd kan inte ångras. (old) - + (gammal) @@ -1677,7 +1688,7 @@ This action is not reversible. Breadcrumb - Brödsmulor + Synlig sökväg Type @@ -1723,7 +1734,7 @@ This action is not reversible. WARNING! You have not set a password. Using a database without a password is strongly discouraged! Are you sure you want to continue without a password? - VARNING! Du har inte angivit något lösenord. Du avråds bestämt att använda en databas utan lösenord! + VARNING! Du har inte angivit något lösenord. Du avråds bestämt från att använda en databas utan lösenord! Vill du verkligen fortsätta utan lösenord? @@ -1737,7 +1748,7 @@ Vill du verkligen fortsätta utan lösenord? Continue without password - + Fortsätt utan lösenord @@ -1752,22 +1763,22 @@ Vill du verkligen fortsätta utan lösenord? Database name field - + Databasnamn Database description field - + Databasbeskrivning DatabaseSettingsWidgetStatistics Statistics - + Statistik Hover over lines with error icons for further information. - + Håll muspekaren över rader med felikoner för mer information. Name @@ -1779,103 +1790,103 @@ Vill du verkligen fortsätta utan lösenord? Database name - + Databasnamn Description - + Beskrivning Location - + Plats Last saved - + Senast sparad Unsaved changes - + Osparade ändringar yes - + Ja no - + Nej The database was modified, but the changes have not yet been saved to disk. - + Databasen har ändrats, men ändringarna har ännu inte sparats till disk. Number of groups - + Antal grupper Number of entries - + Antal poster Number of expired entries - + Antal förfallna poster The database contains entries that have expired. - + Databasen innehåller poster som har förfallit. Unique passwords - + Unika lösenord Non-unique passwords - + Icke unika lösenord More than 10% of passwords are reused. Use unique passwords when possible. - + Mer än 10% av lösenorden är återanvända. Försök använda unika lösenord om möjligt. Maximum password reuse - + Max antal återanvända lösenord Some passwords are used more than three times. Use unique passwords when possible. - + Vissa lösenord är använda mer än tre gånger. Använd unika lösenord om möjligt. Number of short passwords - + Antal korta lösenord Recommended minimum password length is at least 8 characters. - + Rekommenderad minimilängd på lösenord är minst 8 tecken. Number of weak passwords - + Antal svaga lösenord Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - + Långa slumpartade lösenord med betyget "Bra" eller "Utmärkt" rekommenderas. Average password length - + Genomsnittlig lösenordslängd %1 characters - + %1 tecken Average password length is less than ten characters. Longer passwords provide more security. - + Genomsnittlig lösenordslängd är mindre än 10 tecken. Längre lösenord är säkrare. Please wait, database statistics are being calculated... - + Vänta, databasstatistiken håller på att beräknas... @@ -1951,27 +1962,27 @@ Detta är definitivt ett programfel, rapportera det till utvecklarna. Failed to open %1. It either does not exist or is not accessible. - + Kunde öppna %1. Antingen finns den inte eller också är den inte åtkomstbar. Export database to HTML file - + Exportera databas till HTML-fil HTML file - + HTML-fil Writing the HTML file failed. - + Kunde inte skriva HTML-filen. Export Confirmation - + Exportbekräftelse You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - + Du är på väg att exportera din databas till en okrypterad fil. Detta kommer att lämna dina lösenord annan känslig information i ett sårbart skick (klartext). Vill du verkligen fortsätta? @@ -2120,7 +2131,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? - Posten "%1" har %2 referens. Vill du skriva över referensen med värden, hoppa över den här posten eller ta bort ändå?Posten "%1" har %2 referenser. Vill du skriva över referenserna med värden, hoppa över den här posten eller ta bort ändå? + Posten "%1" har %2 referens. Vill du skriva över referensen med nya värden, hoppa över den här posten eller ta bort ändå?Posten "%1" har %2 referenser. Vill du skriva över referenserna med nya värden, hoppa över den här posten eller ta bort ändå? Delete group @@ -2148,11 +2159,11 @@ Vill du inaktivera "Spara säkert" och försöka igen? Writing the database failed: %1 - Kunde inte skriva databas: %1 + Kunde inte skriva databasen: %1 This database is opened in read-only mode. Autosave is disabled. - + Databasen är öppnad i skrivskyddat läge. Autospar är inaktiverat. @@ -2207,7 +2218,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Entry history - Posthistork + Posthistorik Add entry @@ -2279,11 +2290,11 @@ Vill du inaktivera "Spara säkert" och försöka igen? <empty URL> - + <tom URL> Are you sure you want to remove this URL? - + Vill du verkligen ta bort denna URL? @@ -2326,39 +2337,39 @@ Vill du inaktivera "Spara säkert" och försöka igen? Attribute selection - + Attributval Attribute value - + Attributvärde Add a new attribute - + Lägg till nytt attribut Remove selected attribute - + Ta bort markerade attribut Edit attribute name - + Redigera attributnamn Toggle attribute protection - + Attributskydd av/på Show a protected attribute - + Visa ett skyddat attribut Foreground color selection - + Val av förgrundsfärg Background color selection - + Val av bakgrundsfärg @@ -2369,7 +2380,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Inherit default Auto-Type sequence from the &group - Ärv standard autoskrivsekvens från &gruppen + Hämta autoskrivsekvensstandard från &gruppen &Use custom Auto-Type sequence: @@ -2397,46 +2408,46 @@ Vill du inaktivera "Spara säkert" och försöka igen? Custom Auto-Type sequence - + Anpassad autoskrivsekvens Open Auto-Type help webpage - + Öppna autoskrivhjälpens hemsida Existing window associations - + Befintliga fönsterassociationer Add new window association - + Lägg till ny fönsterassociation Remove selected window association - + Ta bort markerad fönsterassociation You can use an asterisk (*) to match everything - + Du kan använda en asterisk (*) för att matcha allt (jokertecken) Set the window association title - + Ange fönsterassociationstitel You can use an asterisk to match everything - + Du kan använda en asterisk som jokertecken Custom Auto-Type sequence for this window - + Anpassad autoskrivsekvens för detta fönster EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - + Dessa inställningar påverkar posternas beteende i webbläsartillägget. General @@ -2444,15 +2455,15 @@ Vill du inaktivera "Spara säkert" och försöka igen? Skip Auto-Submit for this entry - + Undanta autoskriv för den här posten Hide this entry from the browser extension - + Dölj den här posten från webbläsartillägget Additional URL's - + Ytterligare URL:er Add @@ -2464,7 +2475,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Edit - Ändra + Redigera @@ -2487,23 +2498,23 @@ Vill du inaktivera "Spara säkert" och försöka igen? Entry history selection - + Posthistorik Show entry at selected history state - + Visa posten i markerad historikstatus Restore entry to selected history state - + Återställ posten till markerad historikstatus Delete selected history state - + Ta bort markerad historikstatus Delete all history - + Ta bort all historik @@ -2546,59 +2557,59 @@ Vill du inaktivera "Spara säkert" och försöka igen? Url field - + URL Download favicon for URL - + Ladda ner favicon för URL:en Repeat password field - + Upprepa lösenordet Toggle password generator - + Lösenordgenerator på/av Password field - + Lösenord Toggle password visibility - + Visa/Dölj lösenordet Toggle notes visible - + Visa/Dölj anteckningar Expiration field - + Förfaller Expiration Presets - + Förinställningar för förfallodag Expiration presets - + Förinställningar för förfallodag Notes field - + Anteckningar Title field - + Titel Username field - + Användarnamn Toggle expiration - + Förfallodag av/på @@ -2621,7 +2632,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Remove key from agent when database is closed/locked - Ta bort nyckeln från agenten när databasen är stängd/låst + Ta bort nyckeln från bakgrundstjänsten när databasen stängs/låses Public key @@ -2629,7 +2640,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Add key to agent when database is opened/unlocked - Lägg till nyckeln till agenten när databasen är öppen/upplåst + Lägg till nyckeln till bakgrundstjänsten när databasen öppnas/låses upp Comment @@ -2637,7 +2648,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Decrypt - Dekryptera + Avkryptera n/a @@ -2666,11 +2677,11 @@ Vill du inaktivera "Spara säkert" och försöka igen? Add to agent - Lägg till i agenten + Lägg till i bakgrundstjänsten Remove from agent - Ta bort från agenten + Ta bort från bakgrundstjänsten Require user confirmation when this key is used @@ -2678,19 +2689,19 @@ Vill du inaktivera "Spara säkert" och försöka igen? Remove key from agent after specified seconds - + Ta bort nyckeln från bakgrundstjänsten efter specificerat antal sekunder Browser for key file - + Bläddra efter nyckelfil External key file - + Extern nyckelfil Select attachment file - + Välj bilagefil @@ -2776,7 +2787,7 @@ Vill du inaktivera "Spara säkert" och försöka igen? Select import/export file - Välj fil för import/export + Välj import-/exportfil Clear @@ -2792,65 +2803,66 @@ Vill du inaktivera "Spara säkert" och försöka igen? Synchronize - + Synkronisera Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + Din PassXC-version stöder inte delning av den här behållartypen. +Filtyper som stöds är: %1. %1 is already being exported by this database. - + %1 exporteras redan av den här databasen. %1 is already being imported by this database. - + %1 importeras redan av den här databasen. %1 is being imported and exported by different groups in this database. - + %1 importeras och exporteras av olika grupper i den här databasen. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + KeeShare är inaktiverat. Du kan aktivera import/export i programinställningarna. Database export is currently disabled by application settings. - + Databasexport är inaktiverat av programinställningarna. Database import is currently disabled by application settings. - + Databasimport är inaktiverat av programinställningarna. Sharing mode field - + Delningsläge Path to share file field - + Sökväg till delningsfil Browser for share file - + Bläddra efter delningsfil Password field - + Lösenord Toggle password visibility - + Visa/Dölj lösenordet Toggle password generator - + Öppna/Stäng lösenordsgeneratorn Clear fields - + Rensa @@ -2881,35 +2893,35 @@ Supported extensions are: %1. Set default Auto-Type se&quence - Anv&änd standard autoskrivsekvens + Anv&ge standard autoskrivsekvens Name field - + Namn Notes field - + Anteckningar Toggle expiration - + Förfallodag på/av Auto-Type toggle for this and sub groups - + Autoskriv på/av för denna grupp och undergrupper Expiration field - + Förfallodag Search toggle for this and sub groups - + Sökning på/av för denna grupp och undergrupper Default auto-type sequence field - + Standard autoskrivsekvens @@ -2976,39 +2988,39 @@ Supported extensions are: %1. You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - + Du kan aktivera ikontjänsten från DuckDuckGo under Verktyg -> Inställningar -> Säkerhet Download favicon for URL - + Ladda ner favicon för URL:en Apply selected icon to subgroups and entries - + Använd markerad ikon till undergrupper och poster Apply icon &to ... - + Använd ikon &till... Apply to this only - + Använd endast till denna Also apply to child groups - + Använd även till undergrupper Also apply to child entries - + Använd även till underposter Also apply to all children - + Använd även till alla undergrupper/-poster Existing icon selected. - + Befintlig ikon vald. @@ -3057,27 +3069,27 @@ Det kan medföra att de berörda tilläggen inte fungerar. Datetime created - + Skapad datum/tid Datetime modified - + Ändrad datum/tid Datetime accessed - + Använd datum/tid Unique ID - + Unikt ID Plugin data - + Tilläggsdata Remove selected plugin data - + Ta bort markerad tilläggsdata @@ -3180,19 +3192,19 @@ Det kan medföra att de berörda tilläggen inte fungerar. Add new attachment - + Lägg tillny bilaga Remove selected attachment - + Ta bort markerad bilaga Open selected attachment - + Öppna markerad bilaga Save selected attachment to disk - + Spara markerad bilaga på disk @@ -3374,7 +3386,7 @@ Det kan medföra att de berörda tilläggen inte fungerar. Display current TOTP value - + Visa aktuellt TOTP-värde Advanced @@ -3401,7 +3413,7 @@ Det kan medföra att de berörda tilläggen inte fungerar. Fit to contents - Anpassa för innehåll + Anpassa till innehåll Reset to defaults @@ -3416,26 +3428,26 @@ Det kan medföra att de berörda tilläggen inte fungerar. FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - + Posten "%1" från databas "%2" har använts av %3 FdoSecrets::Service Failed to register DBus service at %1: another secret service is running. - + Kunde inte registrera DBus-tjänsten vid %1. En annan "Secret Service" körs redan. %n Entry(s) was used by %1 %1 is the name of an application - + %n post användes av %1%n poster användes av %1 FdoSecretsPlugin Fdo Secret Service: %1 - + Fd.o Secret Service: %1 @@ -3450,7 +3462,7 @@ Det kan medföra att de berörda tilläggen inte fungerar. HostInstaller KeePassXC: Cannot save file! - KeePassXC: Kan inte spara fil! + KeePassXC: Kan inte spara filen! Cannot save the native messaging script file. @@ -3461,7 +3473,7 @@ Det kan medföra att de berörda tilläggen inte fungerar. IconDownloaderDialog Download Favicons - + Ladda ner faviconer Cancel @@ -3470,7 +3482,8 @@ Det kan medföra att de berörda tilläggen inte fungerar. Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + Har du problem att ladda ner ikoner? +Du kan aktivera ikontjänsten från DuckDuckGo, i säkerhetssektionen av programinställningarna. Close @@ -3486,11 +3499,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list... - + Vänta, postlistan bearbetas... Downloading... - + Laddar ner... Ok @@ -3498,15 +3511,15 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - + Finns redan Download Failed - + Nerladdning misslyckades Downloading favicons (%1/%2)... - + Laddar ner faviconer (%1/%2)... @@ -3517,7 +3530,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Close message - Stäng meddelande + Stäng meddelandet @@ -3553,7 +3566,8 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Ogiltiga autentiseringsuppgifter angavs. Försök igen. +Om detta upprepas, kan din databasfil vara skadad. @@ -3688,11 +3702,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Ogiltiga autentiseringsuppgifter angavs. Försök igen. +Om detta upprepas, kan din databasfil vara skadad. (HMAC mismatch) - + (HMAC matchningsfel) @@ -3720,7 +3735,7 @@ If this reoccurs, then your database file may be corrupt. KdbxReader Unsupported cipher - Chiffer som inte stöds + Chiffret stöds inte Invalid compression flags length @@ -3774,11 +3789,11 @@ Detta är en envägsmigrering. Du kommer inte att kunna öppna den importerade d Invalid cipher uuid length: %1 (length=%2) - + Ogiltig uuid-längd för chiffer: %1 (längd=%2) Unable to parse UUID: %1 - + Kan inte tolka UUID: %1 Failed to read database file. @@ -3845,7 +3860,7 @@ Detta är en envägsmigrering. Du kommer inte att kunna öppna den importerade d History element in history entry - + Historikelement i historikpost No entry uuid found @@ -3902,7 +3917,7 @@ Detta är en envägsmigrering. Du kommer inte att kunna öppna den importerade d Unable to decompress binary Translator meant is a binary data inside an entry - + Kunde inte dekomprimera binären. XML error: @@ -3915,11 +3930,11 @@ Line %2, column %3 KeePass1OpenWidget Unable to open the database. - Kunde inte öppna databas. + Kan inte öppna databasen. Import KeePass1 Database - + Importera KeePass1-databas @@ -4076,54 +4091,55 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Ogiltiga autentiseringsuppgifter angavs. Försök igen. +Om detta upprepas, kan din databasfil vara skadad. KeeShare Invalid sharing reference - + Ogiltig delningsreferens Inactive share %1 - + Inaktiv delning %1 Imported from %1 - Importerad ifrån %1 + Importerat från %1 Exported to %1 - + Exporterat till %1 Synchronized with %1 - + Synkroniserat med %1 Import is disabled in settings - + Import är inaktiverat i inställningarna Export is disabled in settings - + Export är inaktiverat i inställningarna Inactive share - + Inaktiv delning Imported from - + Importerat från Exported to - + Exporterat till Synchronized with - + Synkroniserat med @@ -4224,11 +4240,11 @@ Meddelande: %2 Key file selection - + Nyckelfiler Browse for key file - + Bläddra efter nyckelfil Browse... @@ -4236,28 +4252,29 @@ Meddelande: %2 Generate a new key file - + Generera en ny nyckelfil Note: Do not use a file that may change as that will prevent you from unlocking your database! - + OBS! Använd inte en fil som kanske kommer att modifieras, eftersom det kommer att förhindra upplåsning av databasen! Invalid Key File - + Ogiltig nyckelfil You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + Du kan inte använda den aktuella databasen som sin egen nyckelfil. Välj en annan fil eller generera en ny nyckelfil. Suspicious Key File - + Misstänkt nyckelfil The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - + Den valda filen ser ut som en lösenordsdatabas. En nyckelfil måste vara en statisk fil som aldrig ändras, annars förlorar du åtkomst till databasen för alltid. +Vill du verkligen fortsätta med den här filen? @@ -4535,8 +4552,8 @@ Vi rekommenderar att du använder tillgänglig AppImage, från vår nerladdnings NOTE: You are using a pre-release version of KeePassXC! Expect some bugs and minor issues, this version is not meant for production use. - NOTIS: Du använder en förhandsversion av KeePassXC! -Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för daglig användning. + OBS! Du använder en förhandsversion av KeePassXC! +Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dagligt bruk. Check for updates on startup? @@ -4552,27 +4569,27 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag &Export - + &Exportera &Check for Updates... - + &Sök efter uppdateringar... Downlo&ad all favicons - + Ladda ner alla &faviconer Sort &A-Z - + Sortera &A-Z Sort &Z-A - + Sortera &Z-A &Password Generator - + &Lösenordsgenerator Download favicon @@ -4580,43 +4597,43 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag &Export to HTML file... - + &Exportera till HTML-fil... 1Password Vault... - + 1Password-valv... Import a 1Password Vault - + Importera ett 1Password-valv &Getting Started - + &Kom igång Open Getting Started Guide PDF - + Öppna kom-igång-manualen som PDF &Online Help... - + &Online-hjälp... Go to online documentation (opens browser) - + Gå till online-dokumentationen (öppnas i webbläsaren) &User Guide - + &Användarmanual Open User Guide PDF - + Öppna användarmanualen som PDF &Keyboard Shortcuts - + &Tangentbordsgenvägar @@ -4679,11 +4696,11 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Removed custom data %1 [%2] - + Tog bort anpassad data %1 [%2] Adding custom data %1 [%2] - + Lägger till anpassad data %1 [%2] @@ -4751,38 +4768,38 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Please fill in the display name and an optional description for your new database: - Fyll i visningsnamnet och en frivillig beskrivning för din nya databas. + Fyll i visningsnamnet och en frivillig beskrivning för din nya databas: OpData01 Invalid OpData01, does not contain header - + Ogiltig OpData01, innehåller inget huvud Unable to read all IV bytes, wanted 16 but got %1 - + Kan inte läsa alla IV-byte, förväntade 16 men fick %1 Unable to init cipher for opdata01: %1 - + Kan inte initiera chiffer för opdata01: %1 Unable to read all HMAC signature bytes - + Kan inte läsa alla byte i HMAC signatur Malformed OpData01 due to a failed HMAC - + Felaktigt formaterad OpData01 på grund av en misslyckad HMAC Unable to process clearText in place - + Kan inte att bearbeta klartext på plats Expected %1 bytes of clear-text, found %2 - + Förväntade %1 byte klartext, hittade %2 @@ -4790,34 +4807,35 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Read Database did not produce an instance %1 - + Läsning av databas producerade inte någon instans +%1 OpVaultReader Directory .opvault must exist - + Mappen .opvault måste finnas Directory .opvault must be readable - + Mappen .opvault måste vara läsbar Directory .opvault/default must exist - + Mappen .opvault/default måste finnas Directory .opvault/default must be readable - + Mappen .opvault/default måste vara läsbar Unable to decode masterKey: %1 - + Kan inte avkoda huvudnyckel: %1 Unable to derive master key: %1 - + Kan inte härleda huvudnyckel: %1 @@ -4923,11 +4941,11 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag PasswordEdit Passwords do not match - + Lösenorden stämmer inte överens Passwords match so far - + Lösenorden stämmer så långt @@ -4958,19 +4976,19 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Password field - + Lösenord Toggle password visibility - + Visa/Dölj lösenordet Repeat password field - + Upprepa lösenordet Toggle password generator - + Lösenordsgenerator på/av @@ -5046,7 +5064,7 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Entropy: %1 bit - Entropi: %1 bit + Entropi: %1 bitar Password Quality: %1 @@ -5170,75 +5188,75 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Regenerate - Återgenerera + Generera om Generated password - + Genererat lösenord Upper-case letters - + VERSALER Lower-case letters - + gemener Special characters - + Specialtecken Math Symbols - + Mattematiksymboler Dashes and Slashes - + Streck och snedstreck Excluded characters - + Undantagna tecken Hex Passwords - + Hexadecimala lösenord Password length - + Lösenordslängd Word Case: - + Skiftläge: Regenerate password - + Generera om lösenordet Copy password - Kopiera lösenord + Kopiera lösenordet Accept password - + Acceptera lösenordet lower case - + gemener UPPER CASE - + VERSALER Title Case - + Titelns skiftläge Toggle password visibility - + Visa/Dölj lösenordet @@ -5249,7 +5267,7 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Statistics - + Statistik @@ -5288,7 +5306,7 @@ Vissa fel och mindre problem kan uppstå. Denna version är inte ämnad för dag Continue - + Fortsätt @@ -5500,7 +5518,7 @@ Tillgängliga kommandon: Name of the entry to show. - Namn på posten som skall visas. + Visningsnamn för posten. NULL device @@ -5983,15 +6001,15 @@ Tillgängliga kommandon: Deactivate password key for the database. - + Inaktivera lösenordsnyckeln för databasen. Displays debugging information. - + Visa felsökningsinformation. Deactivate password key for the database to merge from. - + Avaktivera lösenordsnyckel för databas som infogas ifrån. Version %1 @@ -5999,23 +6017,23 @@ Tillgängliga kommandon: Build Type: %1 - Build Type: %1 + Kompileringstyp: %1 Revision: %1 - Ändring: %1 + Revision: %1 Distribution: %1 - Utdelning: %1 + Distribution: %1 Debugging mode is disabled. - + Felsökningsläget är inaktiverat. Debugging mode is enabled. - + Felsökningsläget är aktiverat. Operating system: %1 @@ -6059,151 +6077,151 @@ Kärna: %3 %4 Cryptographic libraries: - + Kryptografiska bibliotek: Cannot generate a password and prompt at the same time! - + Kan inte generera lösenord och fråga på samma gång! Adds a new group to a database. - + Lägger till en ny grupp i en databas. Path of the group to add. - + Sökväg till gruppen som läggs till. Group %1 already exists! - + Gruppen %1 finns redan! Group %1 not found. - + Gruppen %1 hittades inte. Successfully added group %1. - + Lade till gruppen %1. Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - + Kontrollera om om några lösenord har läckt ut offentligt. FILNAMN måste vara sökvägen till en SHA-1-hashad fillista med läckta lösenord i HIBP-format, såsom tillgänglig från https://haveibeenpwned.com/Passwords. FILENAME - + FILNAMN Analyze passwords for weaknesses and problems. - + Analysera lösenord efter svagheter och problem. Failed to open HIBP file %1: %2 - + Kunde inte öppna HIBP-filen %1: %2 Evaluating database entries against HIBP file, this will take a while... - + Utvärderar databasposter mot HIBP-fil. Detta kommer att ta en stund... Close the currently opened database. - + Stäng den öppna databasen. Display this help. - + Visa den här hjälpen. Yubikey slot used to encrypt the database. - + Yubikey-plats som används för att kryptera databasen. slot - + anslutningsplats Invalid word count %1 - + Ogiltigt antal ord %1 The word list is too small (< 1000 items) - + Ordlistan är för liten (<1000 objekt) Exit interactive mode. - + Avsluta interaktivt läge. Format to use when exporting. Available choices are xml or csv. Defaults to xml. - + Format att använda för export. Tillgängliga alternativ är XML eller CSV. Standard är XML. Exports the content of a database to standard output in the specified format. - + Exporterar innehållet i en databas till standardutdata i angivet format. Unable to export database to XML: %1 - + Kan inte exportera databas till XML: %1 Unsupported format %1 - + Formatet stöd inte, %1 Use numbers - + Använd siffror Invalid password length %1 - + Ogiltig lösenordslängd %1 Display command help. - + Visa kommandohjälp. Available commands: - + Tillgängliga kommandon: Import the contents of an XML database. - + Importera innehållet från en XML-databas. Path of the XML database export. - + Målsökväg för XML-databasexport. Path of the new database. - + Sökväg till den nya databasen. Unable to import XML database export %1 - + Kan inte importera XML-databasexport %1 Successfully imported database. - + Databas importera. Unknown command %1 - + Okänt kommando %1 Flattens the output to single lines. - + Slätar ut utdata till enkelrader. Only print the changes detected by the merge operation. - + Skriv bara ut de ändringar som upptäckts av sammanfogningsoperationen. Yubikey slot for the second database. - + Yubikey-plats för den andra databasen. Successfully merged %1 into %2. - + Infogade %1 i %2. Database was not modified by merge operation. @@ -6211,103 +6229,103 @@ Kärna: %3 %4 Moves an entry to a new group. - + Flyttar en post till ny grupp. Path of the entry to move. - + Sökväg till posten som skall flyttas. Path of the destination group. - + Sökväg till målgruppen. Could not find group with path %1. - + Kunde inte hitta någon grupp med sökväg %1. Entry is already in group %1. - + Posten finns redan i gruppen %1. Successfully moved entry %1 to group %2. - + Flyttade posten %1 till gruppen %2. Open a database. - + Öppna en databas. Path of the group to remove. - + Sökväg till gruppen som skall tas bort. Cannot remove root group from database. - + Kan inte ta bort root-gruppen från databasen. Successfully recycled group %1. - + Gruppen %1 har återvunnits. Successfully deleted group %1. - + Gruppen %1 har tagits bort. Failed to open database file %1: not found - + Kunde inte öppna databasfilen %1: Hittades inte Failed to open database file %1: not a plain file - + Kunde inte öppna databasfilen %1: Ingen vanlig fil Failed to open database file %1: not readable - + Kunde inte öppna databasfilen %1: Inte läsbar Enter password to unlock %1: - + Ange lösenord för att låsa upp %1: Invalid YubiKey slot %1 - + Ogiltig YubiKey-plats %1 Please touch the button on your YubiKey to unlock %1 - + Rör vid knappen på din YubiKey för att låsa upp %1 Enter password to encrypt database (optional): - + Ange lösenord för att avkryptera databasen (valfritt): HIBP file, line %1: parse error - + HIBP-fil, rad %1: tolkningsfel Secret Service Integration - + Secret Service-integration User name - + Användarnamn %1[%2] Challenge Response - Slot %3 - %4 - + %1[%2] Challenge Response - Plats %3 - %4 Password for '%1' has been leaked %2 time(s)! - + Lösenordet för "%1" har läckts ut %2 gång!Lösenordet för "%1" har läckts ut %2 gånger! Invalid password generator after applying all options - + Ogiltig lösenordsgenerator efter tillämpning av alla alternativ Show the protected attributes in clear text. - + Visa de skyddade attributen i klartext. @@ -6348,7 +6366,7 @@ Kärna: %3 %4 SSHAgent Agent connection failed. - Tjänstanslutning misslyckades. + Anslutning till tjänsten misslyckades. Agent protocol error. @@ -6466,11 +6484,11 @@ Kärna: %3 %4 SettingsWidgetFdoSecrets Options - + Alternativ Enable KeepassXC Freedesktop.org Secret Service integration - + Aktivera KeePassXC Secret Service-integration från Freedesktop.org General @@ -6478,23 +6496,23 @@ Kärna: %3 %4 Show notification when credentials are requested - + Visa avisering när autentiseringsuppgifter begärs <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> - + <html><head/><body><p>Om papperskorgen är aktiverad för databasen, kommer posterna att flyttas direkt till papperskorgen. Annars kommer de att tas bort utan bekräftelse.</p><p>Du kommer fortfarande att tillfrågas om några poster refereras av andra.</p></body></html> Don't confirm when entries are deleted by clients. - + Be inte om bekräftelse när poster tas bort av klienter. Exposed database groups: - + Exponerade databasgrupper: File Name - + Filnamn Group @@ -6502,23 +6520,23 @@ Kärna: %3 %4 Manage - + Hantera Authorization - + Auktorisation These applications are currently connected: - + Dessa program är för närvarande anslutna: Application - + Program Disconnect - + Kopla ifrån Database settings @@ -6526,15 +6544,15 @@ Kärna: %3 %4 Edit database settings - + Avsluta databasinställningar Unlock database - Lås upp databas + Lås upp databasen Unlock database to show more information - + Lås upp databasen för att visa mer information Lock database @@ -6542,7 +6560,7 @@ Kärna: %3 %4 Unlock to show - + Lås upp för att visa None @@ -6674,15 +6692,15 @@ Kärna: %3 %4 Allow KeeShare imports - + Tillåt KeeShare-import Allow KeeShare exports - + Tillåt KeeShare-export Only show warnings and errors - + Visa bara varningar och fel Key @@ -6690,39 +6708,39 @@ Kärna: %3 %4 Signer name field - + Undertecknarens namn Generate new certificate - + Generera nytt certifikat Import existing certificate - + Importera befintligt certifikat Export own certificate - + Exportera eget certifikat Known shares - + Kända delningar Trust selected certificate - + Lita på markerat certifikat Ask whether to trust the selected certificate every time - + Fråga om markerat certifikat alltid skall betraktas som pålitligt varje gång Untrust selected certificate - + Lita inte på markerat certifikat Remove selected certificate - + Ta bort markerat certifikat @@ -6906,7 +6924,7 @@ Kärna: %3 %4 There was an error creating the QR code. - Det uppstod ett fel vid skapandet av QR-koden. + Det uppstod ett fel när QR-koden skapades. Closing in %1 seconds. @@ -6950,44 +6968,45 @@ Kärna: %3 %4 Secret Key: - + Hemlig nyckel: Secret key must be in Base32 format - + En hemlig nyckel måste vara i Base32-format Secret key field - + Hemlig nyckel Algorithm: - Algoritm + Algoritm: Time step field - + Tidssteg digits - + siffror Invalid TOTP Secret - + Ogiltig TOTP-hemlighet You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - + Du har angivit en ogiltig hemlig nyckel. Nyckeln måste vara i Base32-format. +Exempel: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - + Bekräfta borttagning av TOTP-inställningar Are you sure you want to delete TOTP settings for this entry? - + Vill du verkligen ta bort TOTP-inställningarna för den här posten? @@ -7073,11 +7092,11 @@ Example: JBSWY3DPEHPK3PXP Import from 1Password - + Importera från 1Password Open a recent database - + Öppna en tidigare databas @@ -7104,11 +7123,11 @@ Example: JBSWY3DPEHPK3PXP Refresh hardware tokens - + Uppdatera hårdvaru-tokens Hardware key slot selection - + Hårdvarunyckelplats \ No newline at end of file diff --git a/share/translations/keepassx_tr.ts b/share/translations/keepassx_tr.ts index a8d0c79be6..9567ea4e93 100644 --- a/share/translations/keepassx_tr.ts +++ b/share/translations/keepassx_tr.ts @@ -54,7 +54,7 @@ Use OpenSSH for Windows instead of Pageant - Pageant yerine Windows için OpenSSH kullan + Windows için Pageant yerine OpenSSH kullan @@ -172,7 +172,7 @@ Minimize instead of app exit - Çıkmak yerine simge durumunda küçült + Uygulamadan çıkmak yerine simge durumuna küçült Show a system tray icon @@ -188,27 +188,27 @@ Auto-Type - Oto-Yazım + Otomatik Yazım Use entry title to match windows for global Auto-Type - Genel Oto-Yazım için pencereleri karşılaştırmada girdi başlığını kullan + Genel Otomatik Yazım için pencereleri karşılaştırmada girdi başlığını kullan Use entry URL to match windows for global Auto-Type - Genel Oto-Yazım için pencereleri karşılaştırmada girdi URL'sini kullan + Genel Otomatik Yazım için pencereleri karşılaştırmada girdi URL'sini kullan Always ask before performing Auto-Type - Oto-Yazım gerçekleştirmeden önce her zaman sor + Otomatik Yazım gerçekleştirmeden önce her zaman sor Global Auto-Type shortcut - Genel Oto-Yazım kısayolu + Genel Otomatik Yazım kısayolu Auto-Type typing delay - Oto-Yazım yazma gecikmesi + Otomatik Yazım yazma gecikmesi ms @@ -217,7 +217,7 @@ Auto-Type start delay - Oto-Yazım başlangıç gecikmesi + Otomatik Yazım başlangıç gecikmesi Movable toolbar @@ -237,11 +237,11 @@ Check for updates at application startup once per week - + Uygulama başlangıcında güncellemeleri haftada bir kontrol et Include beta releases when checking for updates - + Güncellemeleri kontrol ederken beta sürümleri dahil et Button style: @@ -253,19 +253,19 @@ (restart program to activate) - + (etkinleştirmek için programı yeniden başlat) Minimize window after unlocking database - + Veritabanı kilidini açınca pencereyi simge durumuna küçült Minimize when opening a URL - + URL açarken simge durumuna küçült Hide window when copying to clipboard - + Panoya kopyalarken pencereyi gizle Minimize @@ -273,15 +273,15 @@ Drop to background - + Arkaplana bırak Favicon download timeout: - + Site simgesi indirme zaman aşımı: Website icon download timeout in seconds - + Web sitesi simge indirme zaman aşımı süresi sec @@ -290,31 +290,31 @@ Toolbar button style - + Araç çubuğu düğme tipi Use monospaced font for Notes - + Notlar için eş aralıklı yazı tipi kullan Language selection - + Dil seçimi Reset Settings to Default - + Ayarları Varsayılana Sıfırla Global auto-type shortcut - + Genel otomatik yazım kısayolu Auto-type character typing delay milliseconds - + Otomatik yazım karakter yazma gecikmesi milisaniye Auto-type start delay milliseconds - + Otomatik yazım başlangıç gecikmesi milisaniye @@ -362,7 +362,7 @@ Re-lock previously locked database after performing Auto-Type - Oto-Yazım gerçekleştirdikten sonra önceden kilitli veritabanını yeniden kilitle + Otomatik Yazım gerçekleştirdikten sonra önceden kilitli veritabanını yeniden kilitle Don't require password repeat when it is visible @@ -390,11 +390,11 @@ Use DuckDuckGo service to download website icons - + Web sitesi simgelerini indirmek için DuckDuckGo kullan Clipboard clear seconds - + Pano temizleme süresi Touch ID inactivity reset @@ -402,7 +402,7 @@ Database lock timeout seconds - + Veritabanı kilidi zaman aşımı süresi min @@ -411,7 +411,7 @@ Clear search query after - + Sonrasında arama sorgusunu temizle @@ -422,27 +422,27 @@ Auto-Type - KeePassXC - Oto-Yazım - KeePassXC + Otomatik Yazım - KeePassXC Auto-Type - Oto-Yazım + Otomatik Yazım The Syntax of your Auto-Type statement is incorrect! - Oto-Yazım ifadenizin sözdizimi yanlış! + Otomatik Yazım ifadenizin söz dizimi yanlış! This Auto-Type command contains a very long delay. Do you really want to proceed? - Bu Oto-Yazım komutu çok uzun bir gecikme içeriyor. Gerçekten devam etmek istiyor musun? + Bu Otomatik Yazım komutu çok uzun bir gecikme içeriyor. Gerçekten devam etmek istiyor musun? This Auto-Type command contains very slow key presses. Do you really want to proceed? - Bu Oto-Yazım komutu çok yavaş tuşa basar. Gerçekten devam etmek istiyor musun? + Bu Otomatik Yazım komutu çok yavaş tuşa basar. Gerçekten devam etmek istiyor musun? This Auto-Type command contains arguments which are repeated very often. Do you really want to proceed? - Bu Oto-Yazım komutu çok sık tekrarlanan argümanlar içerir. Gerçekten devam etmek istiyor musun? + Bu Otomatik Yazım komutu çok sık tekrarlanan argümanlar içerir. Gerçekten devam etmek istiyor musun? Permission Required @@ -450,7 +450,7 @@ KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC, giriş seviyesi Otomatik Yazım gerçekleştirmek için Erişilebilirlik iznine ihtiyaç duyar. Zaten izin verdiyseniz, KeePassXC'yi yeniden başlatmanız gerekebilir. @@ -506,18 +506,18 @@ KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC, genel Otomatik Yazım gerçekleştirmek için Erişilebilirlik ve Ekran Kaydedici iznine ihtiyaç duyar. Ekran Kaydı, girişleri bulmak için pencere başlığını kullanmak için gereklidir. Zaten izin verdiyseniz, KeePassXC'yi yeniden başlatmanız gerekebilir. AutoTypeSelectDialog Auto-Type - KeePassXC - Oto-Yazım - KeePassXC + Otomatik Yazım - KeePassXC Select entry to Auto-Type: - Oto-Yazım için girdi seçin: + Otomatik Yazım için girdi seç: Search... @@ -532,7 +532,7 @@ Remember this decision - Bu kararı hatırla + Bu kararı anımsa Allow @@ -545,8 +545,8 @@ %1 has requested access to passwords for the following item(s). Please select whether you want to allow access. - %1, şu öge(ler) için parolalara erişim izni istedi. -Lütfen erişime izin vermek isteyip istemediğinizi belirtin. + %1, aşağıdaki ögeler için parola erişimi istiyor. +Lütfen erişime izin vermek isteyip istemediğinizi seçin. Allow access @@ -619,7 +619,7 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç. Re&quest to unlock the database if it is locked - Eğer kilitliyse veritabanının kilidini açma is&teği + Eğer kilitliyse veritabanının kilidini açma &isteği Only entries with the same scheme (http://, https://, ...) are returned. @@ -627,15 +627,15 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç. &Match URL scheme (e.g., https://...) - &Eşleşme URL şeması (ör., https://...) + URL şemasını &eşleştir (ör., https://...) Only returns the best matches for a specific URL instead of all entries for the whole domain. - Yalnızca tüm alan adı için tüm girdiler yerine belirli bir URL için en iyi eşleşenleri döndürür. + Tüm alan adı için tüm girdiler yerine yalnızca belirli bir URL için en iyi eşleşenleri döndürür. &Return only best-matching credentials - &Yalnızca en iyi eşleşen kimlik bilgilerini döndür + Yalnızca en iyi eşleşen girdileri &döndür Sort &matching credentials by title @@ -680,24 +680,24 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç. Update &native messaging manifest files at startup - Başlangıçta yerel mesajlaşma &manifesto dosyalarını güncelle + Başlangıçta &yerel mesajlaşma bildirim dosyalarını güncelle Support a proxy application between KeePassXC and browser extension. - KeePassXC ve tarayıcı uzantısı arasında bir proxy uygulamasını desteklesin. + KeePassXC ve tarayıcı eklentisi arasında vekil sunucu uygulaması desteklensin. Use a &proxy application between KeePassXC and browser extension - KeePassXC ve tarayıcı uzantısı arasında bir &amp;proxy uygulaması kullan + KeePassXC ve tarayıcı eklentisi arasında bir &vekil sunucu uygulaması kullan Use a custom proxy location if you installed a proxy manually. - Eğer el ile bir proxy yüklediyseniz, özel bir proxy konumu kullanın. + Elle vekil sunucu kurulduysa, özel vekil sunucu konumu kullan. Use a &custom proxy location Meant is the proxy for KeePassXC-Browser - Ö&zel bir proxy konumu kullan + &Özel vekil sunucu konumu kullan Browse... @@ -710,7 +710,7 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç. Select custom proxy location - Özel proxy konumunu seçin + Özel vekil sunucu konumunu seç &Tor Browser @@ -739,43 +739,43 @@ Lütfen kimlik bilgilerini kaydetmek için doğru veritabanını seç. KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2. %3 - Tarayıcı bütünleşmesinin çalışması için KeePassXC-Tarayıcı gereklidir. <br />%1 ve %2 için indirin. %3 + Tarayıcı bütünleşmesinin çalışması için KeePassXC-Tarayıcı gereklidir. <br /> İndir %1 ve %2. %3 &Brave - + &Brave Returns expired credentials. String [expired] is added to the title. - + Süresi dolmuş kimlik bilgilerini döndürür. Dize [süresi doldu] başlığa eklendi. &Allow returning expired credentials. - + &Süresi dolmuş kimlik bilgilerine izin ver. Enable browser integration - + Tarayıcı bütünleşmesini etkinleştir Browsers installed as snaps are currently not supported. - + Ek olarak yüklenen tarayıcılar şu anda desteklenmemektedir. All databases connected to the extension will return matching credentials. - + Eklentiye bağlı tüm veritabanları eşleşen kimlik bilgilerini döndürür. Don't display the popup suggesting migration of legacy KeePassHTTP settings. - + Eski KeePassHTTP ayarlarının taşınmasını öneren açılır pencereyi görüntülemeyin. &Do not prompt for KeePassHTTP settings migration. - + KeePassHTTP ayarlarının taşınmasını &istemeyin. Custom proxy location field - + Özel vekil sunucu konum alanı Browser for custom proxy file @@ -808,7 +808,7 @@ Do you want to overwrite it? KeePassXC: Update Entry - KeePassXC: Giriş Güncelleme + KeePassXC: Girdiyi Güncelle Do you want to update the information in %1 - %2? @@ -838,15 +838,15 @@ Moved %2 keys to custom data. KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: KeePassHTTP özelliklerine sahip bir giriş bulunamadı! + KeePassXC: KeePassHTTP özelliklerine sahip bir girdi bulunamadı! The active database does not contain an entry with KeePassHTTP attributes. - Aktif veritabanı KeePassHTTP özelliklerine sahip bir giriş içermiyor. + Aktif veritabanı KeePassHTTP özelliklerine sahip bir girdi içermiyor. KeePassXC: Legacy browser integration settings detected - KeePassXC: Eski tarayıcı tümleştirme ayarları algılandı + KeePassXC: Eski tarayıcı bütünleştirme ayarları tespit edildi KeePassXC: Create a new group @@ -916,11 +916,11 @@ chrome-laptop. Encoding - Kodlama + Kodlayıcı Codec - Kodlayıcı + Kod çözücü Text is qualified by @@ -960,7 +960,7 @@ chrome-laptop. Original data: - Orijinal veri: + Özgün veri: Error @@ -968,7 +968,7 @@ chrome-laptop. Empty fieldname %1 - Boş alan adı %1 + Alan adı boş %1 column %1 @@ -976,7 +976,7 @@ chrome-laptop. Error(s) detected in CSV file! - CSV dosyasında hata(lar) saptandı ! + CSV dosyasında hatalar belirlendi! [%n more message(s) skipped] @@ -998,11 +998,11 @@ chrome-laptop. Number of header lines to discard - + Atılacak başlık satırı sayısı CSV import preview - + CSV içe aktarma önizlemesi @@ -1059,15 +1059,15 @@ Backup database located at %2 Could not save, database does not point to a valid file. - + Kaydedilemedi, veritabanı geçerli bir dosyayı göstermiyor. Could not save, database file is read-only. - + Kaydedilemedi, veritabanı dosyası salt okunur. Database file has unmerged changes. - + Veritabanı dosyasında birleştirilmemiş değişiklikler var. Recycle Bin @@ -1123,39 +1123,39 @@ Lütfen yeni bir anahtar dosyası oluşturmayı düşünün. Failed to open key file: %1 - + Anahtar dosyası açılamadı: %1 Select slot... - + Alan seç... Unlock KeePassXC Database - + KeePassXC Veritabanı Kilidini Aç Enter Password: - + Parolayı Gir: Password field - + Parola alanı Toggle password visibility - + Parola görünürlüğünü değiştir Key file selection - + Anahtar dosya seçimi Hardware key slot selection - + Donanım anahtarı yuvası seçimi Browse for key file - + Anahtar dosyasına göz at Browse... @@ -1163,7 +1163,7 @@ Lütfen yeni bir anahtar dosyası oluşturmayı düşünün. Refresh hardware tokens - + Donanım belirteçlerini yenile Hardware Key: @@ -1175,7 +1175,7 @@ Lütfen yeni bir anahtar dosyası oluşturmayı düşünün. TouchID for Quick Unlock - + Hızlı Kilit Açma için TouchID Clear @@ -1183,11 +1183,11 @@ Lütfen yeni bir anahtar dosyası oluşturmayı düşünün. Clear Key File - + Anahtar Dosyasını Temizle Unlock failed and no password given - + Kilit açma başarısız oldu ve parola verilmedi Unlocking the database failed and you did not enter a password. @@ -1198,11 +1198,11 @@ To prevent this error from appearing, you must go to "Database Settings / S Retry with empty password - + Boş parola ile tekrar deneyin Enter Additional Credentials (if any): - + Ek Kimlik Bilgileri Gir (varsa): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> @@ -1315,7 +1315,7 @@ Bu işlem, tarayıcı eklentisine bağlantıyı engelleyebilir. Enable Browser Integration to access these settings. - Bu ayarlara erişmek için Tarayıcı Tümleşmesini etkinleştirin. + Bu ayarlara erişmek için Tarayıcı Bütünleşmesini etkinleştir. Disconnect all browsers @@ -1367,7 +1367,7 @@ Girdilere erişim izinleri iptal edilecek. Successfully removed permissions from %n entry(s). - %n girişindeki izinler başarıyla kaldırıldı.%n girdiden izinler başarıyla kaldırıldı. + %n girdideki izinler başarıyla kaldırıldı.%n girdideki izinler başarıyla kaldırıldı. KeePassXC: No entry with permissions found! @@ -1586,7 +1586,7 @@ Eğer bu sayı ile devam ederseniz, veritabanınız çok kolay çözülerek kır Enable fd.o Secret Service to access these settings. - + Bu ayarlara erişmek için fd.o Gizli Servisi etkinleştir. @@ -1649,7 +1649,7 @@ Eğer bu sayı ile devam ederseniz, veritabanınız çok kolay çözülerek kır Maximum number of history items per entry - + Girdi başına azami geçmiş ögesi sayısı Maximum size of history per entry @@ -1779,23 +1779,23 @@ Parola olmadan devam etmek istediğinize emin misiniz? Database name - + Veritabanı adı Description - + Açıklama Location - + Konum Last saved - + Son kaydedilen Unsaved changes - + Kaydedilmemiş değişiklikler yes @@ -1863,11 +1863,11 @@ Parola olmadan devam etmek istediğinize emin misiniz? Average password length - + Ortalama parola uzunluğu %1 characters - + %1 karakter Average password length is less than ten characters. Longer passwords provide more security. @@ -1955,11 +1955,11 @@ Bu kesinlikle bir hatadır, lütfen geliştiricilere bildirin. Export database to HTML file - + Veritabanını HTML dosyasına aktar HTML file - + HTML dosyası Writing the HTML file failed. @@ -2116,7 +2116,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Replace references to entry? - Giriş referansları değiştirilsin mi? + Girdi referansları değiştirilsin mi? Entry "%1" has %2 reference(s). Do you want to overwrite references with values, skip this entry, or delete anyway? @@ -2152,14 +2152,14 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? This database is opened in read-only mode. Autosave is disabled. - + Bu veritabanı salt okunur kipte açılır. Otomatik kaydetme devre dışı. EditEntryWidget Entry - Giriş + Girdi Advanced @@ -2171,7 +2171,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Auto-Type - Oto-Yazım + Otomatik Yazım Properties @@ -2207,15 +2207,15 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Entry history - Giriş geçmişi + Girdi geçmişi Add entry - Giriş ekle + Girdi ekle Edit entry - Girişi düzenle + Girdiyi düzenle Different passwords supplied. @@ -2247,7 +2247,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Do you want to apply the generated password to this entry? - Oluşturulan parolayı bu girişe uygulamak istiyor musunuz? + Oluşturulan parolayı bu girdiye uygulamak istiyor musunuz? Entry updated successfully. @@ -2255,7 +2255,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Entry has unsaved changes - Giriş kaydedilmemiş değişikliklere sahip + Girdi kaydedilmemiş değişikliklere sahip New attribute %1 @@ -2279,7 +2279,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? <empty URL> - + <empty URL> Are you sure you want to remove this URL? @@ -2314,7 +2314,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Attachments - Dosya ekleri + Ekler Foreground Color: @@ -2326,19 +2326,19 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Attribute selection - + Öznitelik seçimi Attribute value - + Öznitelik değeri Add a new attribute - + Yeni öznitelik ekle Remove selected attribute - + Seçili özniteliği kaldır Edit attribute name @@ -2354,26 +2354,26 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Foreground color selection - + Ön plan renk seçimi Background color selection - + Arka plan rengi seçimi EditEntryWidgetAutoType Enable Auto-Type for this entry - Bu giriş için Oto-Yazımı etkinleştir + Bu girdi için Otomatik Yazımı etkinleştir Inherit default Auto-Type sequence from the &group - &Kümeden öntanımlı Oto-Yazım sırasını devral + &Kümeden öntanımlı Otomatik Yazım sırasını devral &Use custom Auto-Type sequence: - Özel Oto-Yazım sırası k&ullan: + Özel Otomatik Yazım sırası &kullan: Window Associations @@ -2393,31 +2393,31 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Use a specific sequence for this association: - Bu ilişki için belirli bir sıra kullan: + Bu ilişkilendirme için belirli bir sıra kullan: Custom Auto-Type sequence - + Özel Otomatik Yazım sırası Open Auto-Type help webpage - + Otomatik Yazım yardım sayfasını aç Existing window associations - + Mevcut pencere ilişkilendirmeleri Add new window association - + Yeni pencere ilişkilendirmesi ekle Remove selected window association - + Seçili pencere ilişkilendirmesini kaldır You can use an asterisk (*) to match everything - + Her şeyi eşleştirmek için yıldız işareti (*) kullanabilirsiniz Set the window association title @@ -2436,7 +2436,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi?EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - + Bu ayarlar, girdinin tarayıcı eklentisiyle davranışını etkiler. General @@ -2464,7 +2464,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Edit - + Düzenle @@ -2487,7 +2487,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Entry history selection - + Girdi geçmişi seçimi Show entry at selected history state @@ -2499,11 +2499,11 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Delete selected history state - + Seçili geçmiş durumunu sil Delete all history - + Tüm geçmişi sil @@ -2518,7 +2518,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Repeat: - Yinele: + Tekrarla: Title: @@ -2542,31 +2542,31 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Expires - Geçersiz + Süre bitimi Url field - + URL alanı Download favicon for URL - + URL üstünden simge indir Repeat password field - + Parola tekrarlama alanı Toggle password generator - + Parola oluşturucu göster ve gizle Password field - + Parola alanı Toggle password visibility - + Parola görünürlüğünü değiştir Toggle notes visible @@ -2574,7 +2574,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Expiration field - + Son kullanma alanı Expiration Presets @@ -2586,7 +2586,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Notes field - + Notlar alanı Title field @@ -2686,7 +2686,7 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? External key file - + Harici anahtar dosyası Select attachment file @@ -2760,11 +2760,11 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? KeeShare unsigned container - KeeShare imzalanmamış kapsayıcı + KeeShare imzalanmamış konteyner KeeShare signed container - KeeShare imzalanmış kapsayıcı + KeeShare imzalanmış konteyner Select import source @@ -2792,12 +2792,13 @@ Güvenli kaydetme devre dışı bırakılsın ve tekrar denensin mi? Synchronize - + Eşitle Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + KeePassXC sürümü bu konteyner türünün paylaşılmasını desteklemiyor. +Desteklenen eklentiler: %1. %1 is already being exported by this database. @@ -2814,15 +2815,15 @@ Supported extensions are: %1. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + KeeShare şu anda devre dışı, içe/dışa aktarmayı uygulama ayarlarından etkinleştirebilirsiniz. Database export is currently disabled by application settings. - + Veritabanı dışa aktarma uygulama ayarları tarafından devre dışı bırakıldı. Database import is currently disabled by application settings. - + Veritabanı içe aktarma uygulama ayarları tarafından devre dışı bırakıldı. Sharing mode field @@ -2838,19 +2839,19 @@ Supported extensions are: %1. Password field - + Parola alanı Toggle password visibility - + Parola görünürlüğünü değiştir Toggle password generator - + Parola oluşturucu göster ve gizle Clear fields - + Alanları temizle @@ -2865,7 +2866,7 @@ Supported extensions are: %1. Expires - Geçersiz + Süre bitimi Search @@ -2873,23 +2874,23 @@ Supported extensions are: %1. Auto-Type - Oto-Yazım + Otomatik Yazım &Use default Auto-Type sequence of parent group - Üst kümenin öntanımlı Oto-Yazım dizilişini k&ullan + Üst kümenin öntanımlı Otomatik Yazım dizilişini &kullan Set default Auto-Type se&quence - Öntanımlı Oto-Yazım &dizilişi belirle + Öntanımlı Otomatik Yazım &dizilişi belirle Name field - + İsim alanı Notes field - + Notlar alanı Toggle expiration @@ -2897,11 +2898,11 @@ Supported extensions are: %1. Auto-Type toggle for this and sub groups - + Bu ve alt gruplar için Otomatik Yazım geçişi Expiration field - + Son kullanma alanı Search toggle for this and sub groups @@ -2976,15 +2977,15 @@ Supported extensions are: %1. You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - + DuckDuckGo web sitesi simge hizmetini Araçlar -> Ayarlar -> Güvenlik altından etkinleştirebilirsiniz Download favicon for URL - + URL üstünden simge indir Apply selected icon to subgroups and entries - + Seçili simgeyi alt gruplara ve girdilere uygula Apply icon &to ... @@ -2992,7 +2993,7 @@ Supported extensions are: %1. Apply to this only - + Sadece buna uygula Also apply to child groups @@ -3073,11 +3074,11 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Plugin data - + Eklenti verisi Remove selected plugin data - + Seçili eklenti verilerini kaldır @@ -3177,23 +3178,23 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Attachments - Dosya ekleri + Ekler Add new attachment - + Yeni ek ekle Remove selected attachment - + Seçili eki kaldır Open selected attachment - + Seçili eki aç Save selected attachment to disk - + Seçili eki diske kaydet @@ -3259,7 +3260,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Expires - Geçersiz + Süre bitimi Created @@ -3275,7 +3276,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Attachments - Dosya ekleri + Ekler Yes @@ -3306,7 +3307,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Expiration - Geçerlilik + Süre bitimi URL @@ -3318,7 +3319,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Attachments - Dosya ekleri + Ekler Notes @@ -3326,7 +3327,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Autotype - Oto-yazım + Otomatik yazım Window @@ -3424,7 +3425,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. FdoSecrets::Service Failed to register DBus service at %1: another secret service is running. - + %1'de DBus hizmeti kaydedilemedi: başka bir gizli servis çalışıyor. %n Entry(s) was used by %1 @@ -3436,7 +3437,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. FdoSecretsPlugin Fdo Secret Service: %1 - + Fdo Gizli Servis: %1 @@ -3462,7 +3463,7 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. IconDownloaderDialog Download Favicons - + Simge İndir Cancel @@ -3471,7 +3472,8 @@ Bu etkilenen eklentilerin bozulmasına neden olabilir. Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + Simgeleri indirmede sorun mu yaşıyorsunuz? +DuckDuckGo web sitesi simge servisini uygulama ayarlarının güvenlik bölümünden etkinleştirin. Close @@ -3487,11 +3489,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list... - + Lütfen bekleyin, girdi listesi işleniyor... Downloading... - + İndiriliyor... Ok @@ -3499,15 +3501,15 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - + Zaten Var Download Failed - + İndirme Başarısız Downloading favicons (%1/%2)... - + Simgeler indiriliyor (%1/%2)... @@ -3529,7 +3531,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Unable to issue challenge-response. - challenge-response açılamıyor. + Karşılama yanıtı açılamıyor. missing database headers @@ -3818,7 +3820,7 @@ Bu tek yönlü bir yer değiştirmedir. İçe aktarılan veritabanını eski Kee Invalid EnableAutoType value - Geçersiz Oto-Yazım Etkinleştirme değeri + Geçersiz Otomatik Yazım Etkinleştirme değeri Invalid EnableSearching value @@ -3862,7 +3864,7 @@ Bu tek yönlü bir yer değiştirmedir. İçe aktarılan veritabanını eski Kee Entry string key or value missing - Giriş dizesi anahtarı veya değeri eksik + Girdi dizesi anahtarı veya değeri eksik Duplicate attachment found @@ -3874,7 +3876,7 @@ Bu tek yönlü bir yer değiştirmedir. İçe aktarılan veritabanını eski Kee Auto-type association window or sequence missing - Oto-Yazım ilişkilendirme penceresi veya sırası eksik + Otomatik Yazım ilişkilendirme penceresi veya sırası eksik Invalid bool value @@ -4042,15 +4044,15 @@ Satır %2, sütun %3 Read entry field data doesn't match size - Giriş alan verisi okuma boyutuyla eşleşmiyor + Girdi alan verisi okuma boyutuyla eşleşmiyor Invalid entry uuid field size - Geçersiz giriş UUID alan boyutu + Geçersiz girdi UUID alan boyutu Invalid entry group id field size - Geçersiz küme kimliği alan boyutu girişi + Geçersiz girdi kümesi kimliği alan boyutu Invalid entry icon field size @@ -4090,7 +4092,7 @@ If this reoccurs, then your database file may be corrupt. Inactive share %1 - + Etkin olmayan paylaşım %1 Imported from %1 @@ -4114,7 +4116,7 @@ If this reoccurs, then your database file may be corrupt. Inactive share - + Etkin olmayan paylaşım Imported from @@ -4208,7 +4210,7 @@ Message: %2 All files - Bütün dosyalar + Tüm dosyalar Create Key File... @@ -4228,11 +4230,11 @@ Message: %2 Key file selection - + Anahtar dosya seçimi Browse for key file - + Anahtar dosyasına göz at Browse... @@ -4240,7 +4242,7 @@ Message: %2 Generate a new key file - + Yeni anahtar dosyası oluştur Note: Do not use a file that may change as that will prevent you from unlocking your database! @@ -4248,7 +4250,7 @@ Message: %2 Invalid Key File - + Geçersiz Anahtar Dosyası You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. @@ -4280,7 +4282,7 @@ Are you sure you want to continue with this file? E&ntries - G&irdiler + &Girdiler &Groups @@ -4300,11 +4302,11 @@ Are you sure you want to continue with this file? &Open database... - Veri&tabanı aç... + Veritabanı &aç... &Save database - Veritabanını k&aydet + Veritabanını &kaydet &Close database @@ -4352,7 +4354,7 @@ Are you sure you want to continue with this file? &Lock databases - Veritabanlarını kilit&le + Veritabanlarını &kilitle &Title @@ -4428,11 +4430,11 @@ Bu sürüm, üretim kullanımı için uygun değildir. &Donate - Bağış + &Bağış Report a &bug - Hata raporla + Bir &hata raporla WARNING: Your Qt version may cause KeePassXC to crash with an On-Screen Keyboard! @@ -4462,7 +4464,7 @@ Keepassxc indirme sayfasında mevcut Appımage kullanmanızı öneririz. &Merge from database... - Veritabanından &birleştir ... + Veritabanı üstünden &birleştir... Merge from another KDBX database @@ -4506,7 +4508,7 @@ Keepassxc indirme sayfasında mevcut Appımage kullanmanızı öneririz. Perform &Auto-Type - &Oto-Yazım gerçekleştir + &Otomatik Yazım gerçekleştir Open &URL @@ -4556,27 +4558,27 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ &Export - + Dışa &aktar &Check for Updates... - + &Güncellemeleri kontrol et... Downlo&ad all favicons - + &Tüm simgeleri indir Sort &A-Z - + Sırala &A-Z Sort &Z-A - + Sırala &Z-A &Password Generator - + &Parola Oluşturucu Download favicon @@ -4584,7 +4586,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ &Export to HTML file... - + HTML dosyasına &aktar... 1Password Vault... @@ -4596,7 +4598,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ &Getting Started - + &Başlangıç Open Getting Started Guide PDF @@ -4604,7 +4606,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ &Online Help... - + &Çevrimiçi Yardım... Go to online documentation (opens browser) @@ -4612,7 +4614,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ &User Guide - + &Kullanıcı Rehberi Open User Guide PDF @@ -4620,7 +4622,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ &Keyboard Shortcuts - + &Klavye Kısayolları @@ -4927,11 +4929,11 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ PasswordEdit Passwords do not match - + Parolalar eşleşmiyor Passwords match so far - + Parolalar şu ana kadar eşleşiyor @@ -4962,19 +4964,19 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Password field - + Parola alanı Toggle password visibility - + Parola görünürlüğünü değiştir Repeat password field - + Parola tekrarlama alanı Toggle password generator - + Parola oluşturucu göster ve gizle @@ -5006,7 +5008,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Numbers - Rakamlar + Sayılar Extended ASCII @@ -5054,7 +5056,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Password Quality: %1 - Parola Niteliği: %1 + Parola Kalitesi: %1 Poor @@ -5178,71 +5180,71 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Generated password - + Oluşturulan parola Upper-case letters - + Büyük harfler Lower-case letters - + Küçük harfler Special characters - + Özel karakterler Math Symbols - + Matematiksel Semboller Dashes and Slashes - + Tire ve Eğik çizgiler Excluded characters - + Hariç tutulan karakterler Hex Passwords - + Onaltılı Parolalar Password length - + Parola uzunluğu Word Case: - + Kelime Örneği: Regenerate password - + Yeniden parola oluştur Copy password - + Parolayı kopyala Accept password - + Parolayı kabul et lower case - + küçük harf UPPER CASE - + Büyük Harf Title Case - + Başlık Örneği Toggle password visibility - + Parola görünürlüğünü değiştir @@ -5292,7 +5294,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Continue - + Devam @@ -5303,7 +5305,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Database hash not available - Veritabanı karma erişilemez + Veritabanı sağlaması mevcut değil Client public key not received @@ -5408,7 +5410,7 @@ Bazı hatalar ve küçük sorunlar olabilir, bu sürüm şu an dağıtımda değ Edit an entry. - Girdi düzenle. + Bir girdi düzenle. Title for the entry. @@ -5508,15 +5510,15 @@ Kullanılabilir komutlar: NULL device - Geçersiz aygıt + Geçersiz cihaz error reading from device - aygıttan okuma hatası + cihazdan okuma hatası malformed string - hatalı biçimlendirilmiş dizi + kusurlu dizge missing closing quote @@ -5544,7 +5546,7 @@ Kullanılabilir komutlar: Last Modified - Son değişiklik + Son Değişiklik Created @@ -5594,7 +5596,7 @@ Kullanılabilir komutlar: Writing the database failed %1. - Veritabanı yazma %1 başarısız oldu. + Veritabanına yazma başarısız: %1 Successfully added entry %1. @@ -5829,11 +5831,11 @@ Kullanılabilir komutlar: Successfully deleted entry %1. - %1 girişi başarıyla silindi. + %1 girdisi başarıyla silindi. Show the entry's current TOTP. - Girişin mevcut TOTP'sini göster. + Girdilerin mevcut TOTP'sini göster. ERROR: unknown attribute %1. @@ -5987,7 +5989,7 @@ Kullanılabilir komutlar: Deactivate password key for the database. - + Veritabanı için parola anahtarını devre dışı bırak. Displays debugging information. @@ -6015,7 +6017,7 @@ Kullanılabilir komutlar: Debugging mode is disabled. - + Hata ayıklama kipi devre dışı. Debugging mode is enabled. @@ -6031,7 +6033,7 @@ MİB mimarisi: %2 Auto-Type - Oto-Yazım + Otomatik Yazım KeeShare (signed and unsigned sharing) @@ -6071,7 +6073,7 @@ MİB mimarisi: %2 Adds a new group to a database. - + Veritabanına yeni bir küme ekler. Path of the group to add. @@ -6095,7 +6097,7 @@ MİB mimarisi: %2 FILENAME - + DOSYAADI Analyze passwords for weaknesses and problems. @@ -6143,15 +6145,15 @@ MİB mimarisi: %2 Exports the content of a database to standard output in the specified format. - + Bir veritabanının içeriğini belirtilen biçimde standart çıktıya aktarır. Unable to export database to XML: %1 - + Veritabanı XML'ye dışa aktarılamıyor: %1 Unsupported format %1 - + Desteklenmeyen biçim %1 Use numbers @@ -6167,7 +6169,7 @@ MİB mimarisi: %2 Available commands: - + Kullanılabilir komutlar: Import the contents of an XML database. @@ -6179,7 +6181,7 @@ MİB mimarisi: %2 Path of the new database. - + Yeni veritabanının yolu. Unable to import XML database export %1 @@ -6191,7 +6193,7 @@ MİB mimarisi: %2 Unknown command %1 - + Bilinmeyen komut %1 Flattens the output to single lines. @@ -6199,7 +6201,7 @@ MİB mimarisi: %2 Only print the changes detected by the merge operation. - + Yalnızca birleştirme işlemi tarafından algılanan değişiklikleri yazdır. Yubikey slot for the second database. @@ -6239,7 +6241,7 @@ MİB mimarisi: %2 Open a database. - + Bir veritabanı aç. Path of the group to remove. @@ -6259,7 +6261,7 @@ MİB mimarisi: %2 Failed to open database file %1: not found - + Veritabanı dosyası açılamadı %1: bulunamadı Failed to open database file %1: not a plain file @@ -6291,11 +6293,11 @@ MİB mimarisi: %2 Secret Service Integration - + Gizli Servis Bütünleşmesi User name - + Kullanıcı adı %1[%2] Challenge Response - Slot %3 - %4 @@ -6470,11 +6472,11 @@ MİB mimarisi: %2 SettingsWidgetFdoSecrets Options - + Seçenekler Enable KeepassXC Freedesktop.org Secret Service integration - + KeepassXC Freedesktop.org Gizli Servis bütünleşmesini etkinleştir General @@ -6482,7 +6484,7 @@ MİB mimarisi: %2 Show notification when credentials are requested - + Kimlik bilgileri istendiğinde bir bildirim göster <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> @@ -6490,7 +6492,7 @@ MİB mimarisi: %2 Don't confirm when entries are deleted by clients. - + Girdiler istemciler tarafından silindiğinde onaylamayın. Exposed database groups: @@ -6498,7 +6500,7 @@ MİB mimarisi: %2 File Name - + Dosya Adı Group @@ -6506,19 +6508,19 @@ MİB mimarisi: %2 Manage - + Yönetim Authorization - + Yetki These applications are currently connected: - + Bu uygulamalar şu anda bağlı: Application - + Uygulama Disconnect @@ -6569,7 +6571,7 @@ MİB mimarisi: %2 Own certificate - Kendi sertifikası + Öz sertifika Fingerprint: @@ -6658,7 +6660,7 @@ MİB mimarisi: %2 All files - Bütün dosyalar + Tüm dosyalar Select path @@ -6678,15 +6680,15 @@ MİB mimarisi: %2 Allow KeeShare imports - + KeeShare içe aktarımlara izin ver Allow KeeShare exports - + KeeShare dışa aktarımlara izin ver Only show warnings and errors - + Yalnızca uyarıları ve hataları göster Key @@ -6694,7 +6696,7 @@ MİB mimarisi: %2 Signer name field - + İmzalayan adı alanı Generate new certificate @@ -6726,18 +6728,18 @@ MİB mimarisi: %2 Remove selected certificate - + Seçilen sertifikayı kaldır ShareExport Overwriting signed share container is not supported - export prevented - İmzalanmış paylaşım kapsayıcısının üzerine yazma desteklenmiyor -dışa aktarma engellendi + İmzalı paylaşım konteynerin üzerine yazma desteklenmiyor -dışa aktarma engellendi Could not write export container (%1) - Dışa aktarma kapsayıcısı (%1) yazılamadı + Dışa aktarım konteynere yazılamadı (%1) Could not embed signature: Could not open file to write (%1) @@ -6757,11 +6759,11 @@ MİB mimarisi: %2 Overwriting unsigned share container is not supported - export prevented - İmzalanmamış paylaşım kapsayıcısının üzerine yazma desteklenmiyor -dışa aktarma engellendi + İmzasız paylaşım konteynerin üzerine yazma desteklenmiyor -dışa aktarma engellendi Could not write export container - Dışa aktarma kapsayıcısı yazılamadı + Dışa aktarım konteynere yazılamadı Unexpected export error occurred @@ -6772,15 +6774,15 @@ MİB mimarisi: %2 ShareImport Import from container without signature - İmzayı kapsayıcıdan içeri aktar + İmzayı konteynerden içeri aktar We cannot verify the source of the shared container because it is not signed. Do you really want to import from %1? - İmzalı olmadığından paylaşılan kapsayıcının kaynağını doğrulayamazsınız. %1 ögesinden gerçekten almak istiyor musunuz? + İmzalı olmadığından paylaşılan konteynerin kaynağını doğrulayamazsınız. %1 ögesinden içeri aktarmak istiyor musunuz? Import from container with certificate - Sertifikayı kapsayıcıdan içe aktar + Sertifikayı konteynerden içe aktar Do you want to trust %1 with the fingerprint of %2 from %3? @@ -6804,7 +6806,7 @@ MİB mimarisi: %2 Signed share container are not supported - import prevented - İmzalı paylaşım kapsayıcısı desteklenmiyor -içeri alma engellendi + İmzalı paylaşım konteyneri desteklenmiyor -içeri alma engellendi File is not readable @@ -6812,7 +6814,7 @@ MİB mimarisi: %2 Invalid sharing container - Geçersiz kapsayıcı paylaşımı + Geçersiz konteyner paylaşımı Untrusted import prevented @@ -6820,7 +6822,7 @@ MİB mimarisi: %2 Successful signed import - İmzalı içe aktarma başarılır + İmzalı içe aktarma başarılı Unexpected error @@ -6828,7 +6830,7 @@ MİB mimarisi: %2 Unsigned share container are not supported - import prevented - İmzalanmamış paylaşım kapsayıcısı desteklenmiyor -içeri alma engellendi + İmzalanmamış paylaşım konteyneri desteklenmiyor -içeri alma engellendi Successful unsigned import @@ -6840,7 +6842,7 @@ MİB mimarisi: %2 Unknown share container type - Bilinmeyen kapsayıcı paylaşım türü + Bilinmeyen konteyner paylaşım türü @@ -6882,7 +6884,7 @@ MİB mimarisi: %2 TotpDialog Timed Password - Süreli Parola + Zamanlı Parola 000000 @@ -6954,15 +6956,15 @@ MİB mimarisi: %2 Secret Key: - + Gizli Anahtar: Secret key must be in Base32 format - + Gizli anahtar Base32 biçiminde olmalıdır Secret key field - + Gizli anahtar alanı Algorithm: @@ -7034,7 +7036,7 @@ Example: JBSWY3DPEHPK3PXP Download it at keepassxc.org - Keepassxc.org adresinden indirin + Keepassxc.org adresinden indir You're up-to-date! @@ -7081,7 +7083,7 @@ Example: JBSWY3DPEHPK3PXP Open a recent database - + Son kullanılan veritabanını aç @@ -7100,7 +7102,7 @@ Example: JBSWY3DPEHPK3PXP No YubiKey detected, please ensure it's plugged in. - Hiçbir YubiKey algılanmadı, lütfen fişe takılı olduğundan emin olun. + YubiKey algılanmadı, lütfen takılı olduğundan emin olun. No YubiKey inserted. @@ -7108,11 +7110,11 @@ Example: JBSWY3DPEHPK3PXP Refresh hardware tokens - + Donanım belirteçlerini yenile Hardware key slot selection - + Donanım anahtarı yuvası seçimi \ No newline at end of file diff --git a/share/translations/keepassx_uk.ts b/share/translations/keepassx_uk.ts index 76e540eee3..680514f10c 100644 --- a/share/translations/keepassx_uk.ts +++ b/share/translations/keepassx_uk.ts @@ -233,7 +233,7 @@ Remember database key files and security dongles - Пам'ятати файли ключів та апаратні ключі для сховища + Пам'ятати файлові ключі та апаратні ключі для сховища Check for updates at application startup once per week @@ -398,11 +398,11 @@ Touch ID inactivity reset - + Скидання TouchID після бездіяльності Database lock timeout seconds - + Блокування сховища за часом в секундах min @@ -446,11 +446,11 @@ Permission Required - + Необхідний дозвіл KeePassXC requires the Accessibility permission in order to perform entry level Auto-Type. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC потребує дозволу на доступність для виконання автозаповнення на рівні записів. Якщо Ви вже надали цей дозвіл, можливо Вам необхідно перезапустити KeePassXC. @@ -502,11 +502,11 @@ AutoTypePlatformMac Permission Required - + Необхідний дозвіл KeePassXC requires the Accessibility and Screen Recorder permission in order to perform global Auto-Type. Screen Recording is necessary to use the window title to find entries. If you already granted permission, you may have to restart KeePassXC. - + KeePassXC потребує дозволу на доступність і запис екрану для виконання глобального автозаповнення. Запис екрану необхідний, щоб виявити зоголовок вікна для пошуку записів. Якщо Ви вже надали цей дозвіл, можливо Вам необхідно перезапустити KeePassXC. @@ -528,7 +528,7 @@ BrowserAccessControlDialog KeePassXC-Browser Confirm Access - Підтвердження доступу для KeePassXC-Переглядача + Підтвердження доступу для KeePassXC-Browser Remember this decision @@ -586,7 +586,7 @@ Please select the correct database for saving credentials. This is required for accessing your databases with KeePassXC-Browser - Це необхідно для надання KeePassXC-Переглядачу доступу до Ваших сховищ + Це необхідно для надання KeePassXC-Browser доступу до Ваших сховищ General @@ -731,11 +731,11 @@ Please select the correct database for saving credentials. Due to Snap sandboxing, you must run a script to enable browser integration.<br />You can obtain this script from %1 - Через заходи безпеки у Snap Вам необхідно виконати сценарій для сполучення з переглядачем. <br />Ви можете знайти файл сценарію у %1 + Через заходи безпеки у Snap Вам необхідно виконати сценарій для сполучення з переглядачем. <br />Ви можете знайти файл сценарію в %1 Please see special instructions for browser extension use below - Нижче Ви можете знайти інструкції для використання додатку для браузера + Нижче Ви можете знайти довідку з використання розширення переглядача KeePassXC-Browser is needed for the browser integration to work. <br />Download it for %1 and %2. %3 @@ -820,16 +820,16 @@ Do you want to overwrite it? Converting attributes to custom data… - Перетворення атрибутів користувацьких даних… + Перетворення ознак на користувацькі дані… KeePassXC: Converted KeePassHTTP attributes - KeePassXC: Атрибути KeePassHTTP перетворено + KeePassXC: властивості KeePassHTTP перетворено Successfully converted attributes from %1 entry(s). Moved %2 keys to custom data. - Атрибути %1 запису(-ів) успішно перетворені. + Ознаки %1 запису(-ів) успішно перетворені. %2 ключів переміщено до користувацьких даних. @@ -838,11 +838,11 @@ Moved %2 keys to custom data. KeePassXC: No entry with KeePassHTTP attributes found! - KeePassXC: Записів з атрибутами KeePassHTTP не знайдено! + KeePassXC: Записів з властивостями KeePassHTTP не знайдено! The active database does not contain an entry with KeePassHTTP attributes. - Поточне сховище не містить запису з атрибутами KeePassHTTP. + Поточне сховище не містить запису з властивостями KeePassHTTP. KeePassXC: Legacy browser integration settings detected @@ -864,7 +864,7 @@ Do you want to create this group? Your KeePassXC-Browser settings need to be moved into the database settings. This is necessary to maintain your current browser connections. Would you like to migrate your existing settings now? - Ваші параметри KeePassXC-Переглядача мають бути переміщени до параметрів сховища. + Параметри Вашого KeePassXC-Browser мають бути переміщеними до параметрів сховища. Це необхідно для підтримання сполучень з Вашим поточним переглядачем. Бажаєте перемістити параметри зараз? @@ -878,7 +878,11 @@ Would you like to migrate your existing settings now? Give the connection a unique name or ID, for example: chrome-laptop. - + Ви одержали запит на сполучення з таким сховищем: +%1 + +Надайте сполученню унікальне ім'я або ідентифікатор, наприклад: +chrome-на-ноутбуці. @@ -1086,7 +1090,7 @@ Backup database located at %2 DatabaseOpenWidget Key File: - Файл-ключ: + Файловий ключ: Refresh @@ -1094,17 +1098,17 @@ Backup database located at %2 Legacy key file format - Застарілий формат файла-ключа + Застарілий формат файлового ключа You are using a legacy key file format which may become unsupported in the future. Please consider generating a new key file. - Ви використовуєте застарілий формат файла-ключа, підтримку якого + Ви використовуєте застарілий формат файлового ключа, підтримку якого може бути скасовано у майбутньому. -Бажано створити новий файл-ключ. +Бажано створити новий файловий ключ. Don't show this warning again @@ -1116,15 +1120,15 @@ Please consider generating a new key file. Key files - Файли-ключі + Файлові ключі Select key file - Оберіть файл-ключ + Оберіть файловий ключ Failed to open key file: %1 - Відкриття файла ключа зазнало невдачі: %1 + Відкриття файлового ключа зазнало невдачі: %1 Select slot... @@ -1148,7 +1152,7 @@ Please consider generating a new key file. Key file selection - Вибір файла ключа + Вибір файлового ключа Hardware key slot selection @@ -1156,7 +1160,7 @@ Please consider generating a new key file. Browse for key file - Вибрати файл ключа + Вибрати файловий ключ Browse... @@ -1184,7 +1188,7 @@ Please consider generating a new key file. Clear Key File - Очистити файл ключа + Очистити файловий ключ Unlock failed and no password given @@ -1206,37 +1210,39 @@ To prevent this error from appearing, you must go to "Database Settings / S Enter Additional Credentials (if any): - + Введіть додаткові реєстраційні дані (якщо є): <p>You can use a hardware security key such as a <strong>YubiKey</strong> or <strong>OnlyKey</strong> with slots configured for HMAC-SHA1.</p> <p>Click for more information...</p> - + <p>Ви можете використовувати апаратний ключ захисту на кшталт <strong>YubiKey</strong> чи <strong>OnlyKey</strong> з гніздами налаштованими під HMAC-SHA1.</p> +<p>Натисніть тут для додаткової інформації...</p> <p>In addition to your master password, you can use a secret file to enhance the security of your database. Such a file can be generated in your database's security settings.</p><p>This is <strong>not</strong> your *.kdbx database file!<br>If you do not have a key file, leave the field empty.</p><p>Click for more information...</p> - + <p>На додаток до Вашого головного пароля Ви можете використовувати таємний файл для посилення захисту Вашого сховища. Такий файл можна створити у розділі налаштування безпеки Вашого сховища.</p><p>Цей файл <strong>відрізняється</strong> від Вашого файла сховища *.kdbx!<br>Якщо у Вас немає файлового ключа, залиште це поле порожнім.</p><p>Натисніть тут для додаткової інформації...</p> Key file help - + Довідка щодо файлового ключа ? - + ? Select key file... - + Вибрати файловий ключ... Cannot use database file as key file - + Неможливо використати файл сховища як файловий ключ You cannot use your database file as a key file. If you do not have a key file, please leave the field empty. - + Ви не можете використовувати файл сховища як файловий ключ. +Якщо у Вас немає файлового ключа, залиште, будь ласка, це поле порожнім. @@ -1289,7 +1295,7 @@ If you do not have a key file, please leave the field empty. Move KeePassHTTP attributes to KeePassXC-Browser &custom data - Перемістити атрибути KeePassHTTP до &користувацьких даних у KeePassXC-переглядачі + Перемістити властивості KeePassHTTP до &користувацьких даних у KeePassXC-Browser Stored keys @@ -1383,7 +1389,7 @@ Permissions to access entries will be revoked. Move KeePassHTTP attributes to custom data - Перемістити атрибути KeePassHTTP до користувацьких даних + Перемістити властивості KeePassHTTP до користувацьких даних Do you really want to move all legacy browser integration data to the latest standard? @@ -1578,19 +1584,19 @@ If you keep this number, your database may be too easy to crack! DatabaseSettingsWidgetFdoSecrets Exposed Entries - + Виставлені записи Don't e&xpose this database - + Не виставляти це сховище Expose entries &under this group: - + Виставити записи &з такої групи: Enable fd.o Secret Service to access these settings. - + Увімкніть fd.o Таємної служби для доступу до цих параметрів. @@ -1653,7 +1659,7 @@ If you keep this number, your database may be too easy to crack! Maximum number of history items per entry - + Найбільша кількість заміток журналу для запису Maximum size of history per entry @@ -1666,11 +1672,12 @@ If you keep this number, your database may be too easy to crack! Do you want to delete the current recycle bin and all its contents? This action is not reversible. - + Ви дійсно хочете видалити смітник і весь його вміст? +Відновлення буде неможливим. (old) - + (старий) @@ -1771,7 +1778,7 @@ Are you sure you want to continue without a password? Hover over lines with error icons for further information. - + Наведіть мишкою на рядки зі значком помилки для додаткової інформації. Name @@ -1791,7 +1798,7 @@ Are you sure you want to continue without a password? Location - + Розташування Last saved @@ -1799,7 +1806,7 @@ Are you sure you want to continue without a password? Unsaved changes - + Незбережені зміни yes @@ -1811,7 +1818,7 @@ Are you sure you want to continue without a password? The database was modified, but the changes have not yet been saved to disk. - + Сховище було змінено, але поточні зміни ще не було записано на диск. Number of groups @@ -1827,59 +1834,59 @@ Are you sure you want to continue without a password? The database contains entries that have expired. - + Сховище містить знечинені записи. Unique passwords - + Унікальні паролі Non-unique passwords - + Повторювані паролі More than 10% of passwords are reused. Use unique passwords when possible. - + Понад 10% паролів повторюються. Використовуйте унікальні паролі завжди, коли це можливо. Maximum password reuse - + Найбільша кількість повторень паролю Some passwords are used more than three times. Use unique passwords when possible. - + Деякі паролі використано понад три рази. Використовуйте унікальні паролі завжди, коли це можливо. Number of short passwords - + Кількість коротких паролів Recommended minimum password length is at least 8 characters. - + Рекомендована найменша довжина пароля — 8 символів. Number of weak passwords - + Кількість слабких паролів Recommend using long, randomized passwords with a rating of 'good' or 'excellent'. - + Рекомендовано використовувати довгі, випадкові паролі з оцінкою «добре» або «відмінно». Average password length - + Середня довжина пароля %1 characters - + %1 символів Average password length is less than ten characters. Longer passwords provide more security. - + Середня довжина пароля менша 10 символів. Довші паролі покращують безпеку. Please wait, database statistics are being calculated... - + Зачекайте, будь ласка, триває обчислення статистики сховища... @@ -1955,27 +1962,27 @@ This is definitely a bug, please report it to the developers. Failed to open %1. It either does not exist or is not accessible. - + Не вдалося відкрити %1. Він або не існує, або не є доступним. Export database to HTML file - + Експортувати сховище в HTML HTML file - + Файл HTML Writing the HTML file failed. - + Не вдалося записати файл HTML. Export Confirmation - + Схвалення експорту You are about to export your database to an unencrypted file. This will leave your passwords and sensitive information vulnerable! Are you sure you want to continue? - + Ви збираєтесь експортувати Ваше сховище в незашифрований файл. Це зробить Ваші паролі і вразливі дані незахищеними! Ви дійсно бажаєте продовжити? @@ -2156,7 +2163,7 @@ Disable safe saves and try again? This database is opened in read-only mode. Autosave is disabled. - + Сховище відкрито у режимі читання. Автоматичне збереження вимкнено. @@ -2227,11 +2234,11 @@ Disable safe saves and try again? New attribute - Новий атрибут + Нова ознака Are you sure you want to remove this attribute? - Ви дійсно бажаєте видалити цей атрибут? + Ви дійсно бажаєте видалити цю ознаку? Tomorrow @@ -2263,7 +2270,7 @@ Disable safe saves and try again? New attribute %1 - Новий атрибут %1 + Нова ознака %1 [PROTECTED] Press reveal to view or edit @@ -2283,18 +2290,18 @@ Disable safe saves and try again? <empty URL> - + <порожній URL> Are you sure you want to remove this URL? - + Ви дійсно бажаєте видалити цей URL? EditEntryWidgetAdvanced Additional attributes - Додаткові атрибути + Додаткові ознаки Add @@ -2330,39 +2337,39 @@ Disable safe saves and try again? Attribute selection - + Вибір ознаки Attribute value - + Значення ознаки Add a new attribute - + Додати нову ознаку Remove selected attribute - + Видалити вибрану ознаку Edit attribute name - + Змінити назву ознаки Toggle attribute protection - + Перемкнути захист ознаки Show a protected attribute - + Показати захищену ознаку Foreground color selection - + Вибір кольору переднього плану Background color selection - + Вибір кольору тла @@ -2401,46 +2408,46 @@ Disable safe saves and try again? Custom Auto-Type sequence - + Власна послідовність автозаповнення Open Auto-Type help webpage - + Відкрити сторінку довідки щодо автозаповнення Existing window associations - + Наявні прив'язки вікон Add new window association - + Додати нову прив'язку вікна Remove selected window association - + Видалити вибрану прив'язку вікна You can use an asterisk (*) to match everything - + Ви можете використовувати зірочку (*) для довільних збігів Set the window association title - + Встановити заголовок для прив'язки вікна You can use an asterisk to match everything - + Ви можете використовувати зірочку для довільних збігів Custom Auto-Type sequence for this window - + Власна послідовність автозаповнення для цього вікна EditEntryWidgetBrowser These settings affect to the entry's behaviour with the browser extension. - + Ці параметри впливають на поведінку запису в розширенні переглядача. General @@ -2448,15 +2455,15 @@ Disable safe saves and try again? Skip Auto-Submit for this entry - + Пропускати автоматичне надсилання для цього запису Hide this entry from the browser extension - + Сховати цей запис від розширення переглядача Additional URL's - + Додаткові URL Add @@ -2491,23 +2498,23 @@ Disable safe saves and try again? Entry history selection - + Вибір журналу запису Show entry at selected history state - + Показати вибраний хронологічний стан запису Restore entry to selected history state - + Відновити запис з вибраного хронологічного стану Delete selected history state - + Видалити вибраний хронологічний стан Delete all history - + Видалити весь журнал @@ -2550,19 +2557,19 @@ Disable safe saves and try again? Url field - + Поле URL Download favicon for URL - + Завантажити фавікон для URL Repeat password field - + Поле повторення пароля Toggle password generator - + Перемкнути генератор паролів Password field @@ -2574,35 +2581,35 @@ Disable safe saves and try again? Toggle notes visible - + Перемкнути видимість нотаток Expiration field - + Поле знечинення Expiration Presets - + Типове налаштування знечинення Expiration presets - + Типове налаштування знечинення Notes field - + Поле нотаток Title field - + Поле заголовка Username field - + Поле імені користувача Toggle expiration - + Перемкнути знечинення @@ -2682,19 +2689,19 @@ Disable safe saves and try again? Remove key from agent after specified seconds - + Видалити ключ з агенту після вказаної кількості секунд Browser for key file - + Переглядач файлових ключів External key file - + Зовнішній файловий ключ Select attachment file - + Вибрати файл вкладення @@ -2796,49 +2803,50 @@ Disable safe saves and try again? Synchronize - + Узгодити Your KeePassXC version does not support sharing this container type. Supported extensions are: %1. - + Ваша версія KeePassXC не підтримує спільне використання цього типу оболонки. +Підтримані розширення: %1. %1 is already being exported by this database. - + Сховище вже експортує %1. %1 is already being imported by this database. - + Сховище вже імпортує %1. %1 is being imported and exported by different groups in this database. - + У цьому сховищі %1 експортують і імпортують різні групи. KeeShare is currently disabled. You can enable import/export in the application settings. KeeShare is a proper noun - + KeeShare наразі вимкнено. Ви можете ввімкнути імпорт та експорт у налаштуванні застосунку. Database export is currently disabled by application settings. - + Експорт сховища наразі вимкнено в налаштуванні застосунку. Database import is currently disabled by application settings. - + Імпорт сховища наразі вимкнено в налаштуванні застосунку. Sharing mode field - + Поле режиму спільного використання Path to share file field - + Поле шляху до спільного файлу Browser for share file - + Вибрати файл для спільного використання Password field @@ -2850,11 +2858,11 @@ Supported extensions are: %1. Toggle password generator - + Перемкнути генератор паролів Clear fields - + Очистити поля @@ -2889,31 +2897,31 @@ Supported extensions are: %1. Name field - + Поле назви Notes field - + Поле нотаток Toggle expiration - + Перемкнути знечинення Auto-Type toggle for this and sub groups - + Перемикання автозаповнення для цієї групи і всіх дочерніх груп Expiration field - + Поле знечинення Search toggle for this and sub groups - + Перемикання пошуку для цієї групи і всіх дочерніх груп Default auto-type sequence field - + Поле типової послідовності автозаповнення @@ -2980,39 +2988,39 @@ Supported extensions are: %1. You can enable the DuckDuckGo website icon service under Tools -> Settings -> Security - + Ви можете ввімкнути службу значків DuckDuckGo в меню Інструменти -> Налаштування -> Безпека Download favicon for URL - + Завантажити фавікон для URL Apply selected icon to subgroups and entries - + Застосувати вибраній значок для дочерніх груп і записів Apply icon &to ... - + Застосувати значок до... Apply to this only - + Застосувати тільки для цього Also apply to child groups - + Також застосувати до дочерніх груп Also apply to child entries - + Також застосувати до дочерніх записів Also apply to all children - + Також застосувати до всіх дочерніх елементів Existing icon selected. - + Вибрано наявний значок. @@ -3061,27 +3069,27 @@ This may cause the affected plugins to malfunction. Datetime created - + Дата й час створення Datetime modified - + Дата й час зміни Datetime accessed - + Дата й час доступу Unique ID - + Унікальний ідентифікатор Plugin data - + Дані модуля Remove selected plugin data - + Видалити дані вибраного модуля @@ -3183,23 +3191,23 @@ This may cause the affected plugins to malfunction. Attachments - Вкладення + Додатки Add new attachment - + Долучити новий додаток Remove selected attachment - + Видалити вибраний додаток Open selected attachment - + Відкрити вибраний додаток Save selected attachment to disk - + Зберегти вибраний додаток на диск @@ -3320,11 +3328,11 @@ This may cause the affected plugins to malfunction. Attributes - Атрибути + Ознаки Attachments - Вкладення + Долучення Notes @@ -3381,7 +3389,7 @@ This may cause the affected plugins to malfunction. Display current TOTP value - + Показати значення поточного ТОП Advanced @@ -3423,26 +3431,26 @@ This may cause the affected plugins to malfunction. FdoSecrets::Item Entry "%1" from database "%2" was used by %3 - + Програма %3 використала запис "%1" зі сховища "%2" FdoSecrets::Service Failed to register DBus service at %1: another secret service is running. - + Не вдалося зареєструвати службу DBus в %1: інша таємна служба вже працює. %n Entry(s) was used by %1 %1 is the name of an application - + %1 використовує %n запис%1 використовує %n записи%1 використовує %n записів%1 використовує %n записів FdoSecretsPlugin Fdo Secret Service: %1 - + Таємна служба Fdo: %1 @@ -3468,7 +3476,7 @@ This may cause the affected plugins to malfunction. IconDownloaderDialog Download Favicons - + Завантажити фавікони Cancel @@ -3477,7 +3485,8 @@ This may cause the affected plugins to malfunction. Having trouble downloading icons? You can enable the DuckDuckGo website icon service in the security section of the application settings. - + Маєте проблеми з завантаженням значків? +Ви можете ввімкнути службу значків DuckDuckGo в налаштуванні застосунку в розділі безпеки. Close @@ -3493,11 +3502,11 @@ You can enable the DuckDuckGo website icon service in the security section of th Please wait, processing entry list... - + Зачекайте, будь ласка, триває оброблення списку записів... Downloading... - + Завантаження... Ok @@ -3505,15 +3514,15 @@ You can enable the DuckDuckGo website icon service in the security section of th Already Exists - + Вже існує Download Failed - + Завантаження зазнало невдачі Downloading favicons (%1/%2)... - + Завантаження фавіконів (%1/%2)... @@ -3560,7 +3569,7 @@ You can enable the DuckDuckGo website icon service in the security section of th Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Надано хибні реєстраційні дані. Спробуйте, будь ласка, ще раз. Якщо це повторюватиметься, файл Вашого сховища може бути пошкодженим. @@ -3695,11 +3704,12 @@ If this reoccurs, then your database file may be corrupt. Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Надано хибні реєстраційні дані. Спробуйте, будь ласка, ще раз. +Якщо це повторюватиметься, файл Вашого сховища може бути пошкодженим. (HMAC mismatch) - + (неузгідність HMAC) @@ -3864,7 +3874,7 @@ This is a one-way migration. You won't be able to open the imported databas Duplicate custom attribute found - Знайдено дублікат Вашого власного атрибута + Знайдено дублікат Вашої власної ознаки Entry string key or value missing @@ -3928,7 +3938,7 @@ Line %2, column %3 Import KeePass1 Database - + Імпортувати сховище KeePass1 @@ -4085,18 +4095,19 @@ Line %2, column %3 Invalid credentials were provided, please try again. If this reoccurs, then your database file may be corrupt. - + Надано хибні реєстраційні дані. Спробуйте, будь ласка, ще раз. +Якщо це повторюватиметься, файл Вашого сховища може бути пошкодженим. KeeShare Invalid sharing reference - + Хибне спільне посилання Inactive share %1 - + Бездіяльне спільне використання %1 Imported from %1 @@ -4104,35 +4115,35 @@ If this reoccurs, then your database file may be corrupt. Exported to %1 - + Експортовано в %1 Synchronized with %1 - + Узгоджено з %1 Import is disabled in settings - + Імпорт вимкнено у параметрах Export is disabled in settings - + Експорт вимкнено у параметрах Inactive share - + Бездіяльне спільне використання Imported from - + Імпортовано з Exported to - + Експортовано в Synchronized with - + Узгоджено з @@ -4182,35 +4193,35 @@ If this reoccurs, then your database file may be corrupt. Key File - Файл-ключ + Файловий ключ <p>You can add a key file containing random bytes for additional security.</p><p>You must keep it secret and never lose it or you will be locked out!</p> - <p>Ви можете додати файл-ключ, що містить випадкові байти для покращення безпеки.</p><p>Ви мусите зберігати його таємно і не губити, інакше Ви не зможете відкрити сховище.</p> + <p>Ви можете додати файловий ключ, що містить випадкові байти для покращення безпеки.</p><p>Ви мусите зберігати його таємно і не губити, інакше Ви не зможете відкрити сховище.</p> Legacy key file format - Застарілий формат файла-ключа + Застарілий формат файлового ключа You are using a legacy key file format which may become unsupported in the future. Please go to the master key settings and generate a new key file. - Ви використовуєте застарілий формат файла-ключа, підтримку якого + Ви використовуєте застарілий формат файлового ключа, підтримання якого може бути скасовано у майбутньому. -Будь ласка, перейдіть до налаштування головного ключа і створіть новий файл-ключ. +Будь ласка, перейдіть до налаштування головного ключа і створіть новий файловий ключ. Error loading the key file '%1' Message: %2 - Помилка завантаження файла-ключа '%1' + Помилка завантаження файлового ключа '%1' Повідомлення: %2 Key files - Файли-ключі + Файлові ключі All files @@ -4218,27 +4229,27 @@ Message: %2 Create Key File... - Створити файл-ключ... + Створити файловий ключ... Error creating key file - Помилка створення файла-ключа + Помилка створення файлового ключа Unable to create key file: %1 - Неможливо створити файл-ключ: %1 + Неможливо створити файловий ключ: %1 Select a key file - Обрати файл-ключ + Обрати файловий ключ Key file selection - Вибір файла ключа + Вибір файлового ключа Browse for key file - Вибрати файл ключа + Вибір файлового ключа Browse... @@ -4246,28 +4257,29 @@ Message: %2 Generate a new key file - + Створити новий файловий ключ Note: Do not use a file that may change as that will prevent you from unlocking your database! - + Увага: не використовуйте файл, що може змінитися у майбутньому, інакше Ви не зможете розблокувати Ваше сховище! Invalid Key File - + Хибний файловий ключ You cannot use the current database as its own keyfile. Please choose a different file or generate a new key file. - + Ви не можете використати поточне сховище як файловий ключ. Будь ласка, виберіть інший файл або створіть новий файловий ключ. Suspicious Key File - + Підозрілий файловий ключ The chosen key file looks like a password database file. A key file must be a static file that never changes or you will lose access to your database forever. Are you sure you want to continue with this file? - + Вибраний фаловий ключ схожий на файл сховища паролів. Файловий ключ мусить бути незмінним файлом, який ніколи не змінюють, інакше Ви назавжди втратите доступ до Вашого сховища. +Ви певні, що хочете продовжити з цим файлом? @@ -4278,7 +4290,7 @@ Are you sure you want to continue with this file? &Recent databases - &Останні сховища + &Недавні сховища &Help @@ -4451,7 +4463,7 @@ We recommend you use the AppImage available on our downloads page. Copy att&ribute... - Скопіювати атрибут... + Скопіювати ознаку... TOTP... @@ -4561,27 +4573,27 @@ Expect some bugs and minor issues, this version is not meant for production use. &Export - + &Експорт &Check for Updates... - + &Перевірити наявність оновлень... Downlo&ad all favicons - + Завантажити всі &фавікони Sort &A-Z - + Впорядкувати &А-Я Sort &Z-A - + Впорядкувати &Я-А &Password Generator - + Генератор паролів Download favicon @@ -4589,43 +4601,43 @@ Expect some bugs and minor issues, this version is not meant for production use. &Export to HTML file... - + Експортувати у файл HTML... 1Password Vault... - + Сховище 1Password... Import a 1Password Vault - + Імпортувати сховище 1Password &Getting Started - + &Вступ Open Getting Started Guide PDF - + Відкрити PDF вступного довідника &Online Help... - + &Довідка в мережі... Go to online documentation (opens browser) - + Перейти до документації в мережі (запускає переглядач) &User Guide - + Довідник &користувача Open User Guide PDF - + Відкрити PDF довідника користувача &Keyboard Shortcuts - + &Сполучення клавіш @@ -4688,11 +4700,11 @@ Expect some bugs and minor issues, this version is not meant for production use. Removed custom data %1 [%2] - + Видалено користувацькі дані %1 [%2] Adding custom data %1 [%2] - + Додавання користувацьких даних %1 [%2] @@ -4767,31 +4779,31 @@ Expect some bugs and minor issues, this version is not meant for production use. OpData01 Invalid OpData01, does not contain header - + Хибні OpData01, заголовок відсутній Unable to read all IV bytes, wanted 16 but got %1 - + Неможливо прочитати всі IV байти, потрібно 16 але одержано %1 Unable to init cipher for opdata01: %1 - + Неможливо започаткувати шифр для opdata01: %1 Unable to read all HMAC signature bytes - + Неможливо прочитати всі байти підпису HMAC Malformed OpData01 due to a failed HMAC - + OpData01 спотворені через схиблений HMAC Unable to process clearText in place - + Неможливо обробити відкритий текст на місці Expected %1 bytes of clear-text, found %2 - + Очікувалось %1 байтів відкритого текстку, знайдено %2 @@ -4799,41 +4811,42 @@ Expect some bugs and minor issues, this version is not meant for production use. Read Database did not produce an instance %1 - + Зчитування сховища не створило примірник +%1 OpVaultReader Directory .opvault must exist - + Тека .opvault мусить існувати Directory .opvault must be readable - + Тека .opvault мусить бути прочитною Directory .opvault/default must exist - + Тека .opvault/default мусить існувати Directory .opvault/default must be readable - + Тека .opvault/default мусить бути прочитною Unable to decode masterKey: %1 - + Неможливо розшифрувати головний ключ: %1 Unable to derive master key: %1 - + Неможливо вивести головний ключ: %1 OpenSSHKey Invalid key file, expecting an OpenSSH key - Хибний файл ключа. Ключ має бути у форматі OpenSSH + Хибний файловий ключ. Ключ має бути у форматі OpenSSH PEM boundary mismatch @@ -4845,11 +4858,11 @@ Expect some bugs and minor issues, this version is not meant for production use. Key file way too small. - Файл ключа занадто маленький. + Файловий ключ занадто короткий. Key file magic header id invalid - Хибний логічний код файлу ключа + Хибний логічний код файлового ключа Found zero keys @@ -4861,7 +4874,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Corrupted key file, reading private key failed - Файл ключа пошкоджений, зчитування таємного ключа зазнало невдачі + Файловий ключ пошкоджений, зчитування таємного ключа зазнало невдачі No private key payload to decrypt @@ -4932,11 +4945,11 @@ Expect some bugs and minor issues, this version is not meant for production use. PasswordEdit Passwords do not match - + Паролі не співпадають Passwords match so far - + Паролі поки що співпадають @@ -4975,11 +4988,11 @@ Expect some bugs and minor issues, this version is not meant for production use. Repeat password field - + Поле повторення пароля Toggle password generator - + Перемкнути генератор паролів @@ -5183,47 +5196,47 @@ Expect some bugs and minor issues, this version is not meant for production use. Generated password - + Створений пароль Upper-case letters - + Великі літери Lower-case letters - + Маленькі літери Special characters - + Спеціальні символи Math Symbols - + Математичні символи Dashes and Slashes - + Риски Excluded characters - + Виключені символи Hex Passwords - + Шістнадцяткові паролі Password length - + Довжина пароля Word Case: - + Регістр слів: Regenerate password - + Створити пароль знову Copy password @@ -5231,19 +5244,19 @@ Expect some bugs and minor issues, this version is not meant for production use. Accept password - + Прийняти пароль lower case - + нижній регістр UPPER CASE - + ВЕРХНІЙ РЕГІСТР Title Case - + З заголовної літери Toggle password visibility @@ -5297,7 +5310,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Continue - + Продовжити @@ -5360,7 +5373,7 @@ Expect some bugs and minor issues, this version is not meant for production use. Key file of the database. - Файл ключа для сховища. + Файловий ключ для сховища. path @@ -5444,10 +5457,10 @@ Expect some bugs and minor issues, this version is not meant for production use. unsupported in the future. Please consider generating a new key file. - Попередження: Ви використовуєте застарілий формат ключа, підтримка якого + Попередження: Ви використовуєте застарілий формат файлового ключа, підтримка якого може незабаром закінчитись. - Бажано створити новий файл-ключ. +Бажано створити новий файловий ключ. @@ -5493,7 +5506,7 @@ Available commands: Key file of the database to merge from. - Файл ключа для сховища, яке підлягає об'єднанню. + Файловий ключ для сховища, яке підлягає об'єднанню. Show an entry's information. @@ -5501,11 +5514,11 @@ Available commands: Names of the attributes to show. This option can be specified more than once, with each attribute shown one-per-line in the given order. If no attributes are specified, a summary of the default attributes is given. - Назви атрибутів для показу. Цей параметр можна вказати кілька разів, тим часом у кожному рядку може бути тільки один примірник у заданому порядку. Якщо атрибути не вказані, буде показано типові атрибути. + Назви ознак для показу. Цей параметр можна вказати кілька разів, тим часом у кожному рядку може бути тільки один примірник у заданому порядку. Якщо ознаки не вказані, буде показано типові ознаки. attribute - атрибут + ознака Name of the entry to show. @@ -5768,7 +5781,7 @@ Available commands: Failed to load key file %1: %2 - Завантаження файла ключа зазнало невдачі %1: %2 + Завантаження файлового ключа зазнало невдачі %1: %2 Length of the generated password @@ -5842,7 +5855,7 @@ Available commands: ERROR: unknown attribute %1. - ПОМИЛКА: невідомий атрибут %1. + ПОМИЛКА: невідома ознака %1. No program defined for clipboard manipulation @@ -5912,7 +5925,7 @@ Available commands: Loading the key file failed - Завантаження ключа зазнало невдачі + Завантаження файлового ключа зазнало невдачі No key is set. Aborting database creation. @@ -5960,7 +5973,7 @@ Available commands: key file of the database - файл-ключ сховища + файловий ключ сховища read password of the database from stdin @@ -5992,15 +6005,15 @@ Available commands: Deactivate password key for the database. - + Вимкнути парольний ключ для сховища. Displays debugging information. - + Показаує інформацію щодо зневадження. Deactivate password key for the database to merge from. - + Вимкнути парольний ключ для сховища, яке підлягає об'єднанню. Version %1 @@ -6020,11 +6033,11 @@ Available commands: Debugging mode is disabled. - + Режим зневадження вимкнено. Debugging mode is enabled. - + Режим зневадження ввімкнено. Operating system: %1 @@ -6068,151 +6081,151 @@ Kernel: %3 %4 Cryptographic libraries: - + Шифрувальні бібліотеки: Cannot generate a password and prompt at the same time! - + Неможливо створити пароль і запросити його водночасно! Adds a new group to a database. - + Додає нову групу для сховища. Path of the group to add. - + Шлях до групи, яку треба додати. Group %1 already exists! - + Група %1 вже існує! Group %1 not found. - + Групу %1 не знайдено. Successfully added group %1. - + Успішно додано групу %1. Check if any passwords have been publicly leaked. FILENAME must be the path of a file listing SHA-1 hashes of leaked passwords in HIBP format, as available from https://haveibeenpwned.com/Passwords. - + Перевіряє, чи стали якісь паролі відомими. ІМ'Я ФАЙЛУ має бути шляхом до файлу, який містить контрольні суми SHA-1 відомих паролів у форматі HIBP. Такий файл можна завантажити, наприклад, з https://haveibeenpwned.com/Passwords . FILENAME - + ІМʼЯ ФАЙЛУ Analyze passwords for weaknesses and problems. - + Проаналізувати паролі на слабкість та інші проблеми. Failed to open HIBP file %1: %2 - + Не вдалося відкрити файл HIBP %1: %2 Evaluating database entries against HIBP file, this will take a while... - + Звіряння записів сховища з файлом HIBP, це може тривате досить довго... Close the currently opened database. - + Закрити наразі відкрите сховище. Display this help. - + Показати цю довідку. Yubikey slot used to encrypt the database. - + Гніздо Yubikey для шифрування сховища. slot - + гніздо Invalid word count %1 - + Хибна кількість слів %1 The word list is too small (< 1000 items) - + Список слів надто малий (< 1000 одиниць) Exit interactive mode. - + Вийти з діалогового режиму. Format to use when exporting. Available choices are xml or csv. Defaults to xml. - + Формат для експорту. Можливі формати: xml або csv. Типовий формат — xml. Exports the content of a database to standard output in the specified format. - + Надсилає вміст сховища до стандартного виходу в зазначеному форматі. Unable to export database to XML: %1 - + Неможливо експортувати сховище в XML: %1 Unsupported format %1 - + Непідтримуваний формат %1 Use numbers - + Використовувати цифри Invalid password length %1 - + Хибна довжина пароля %1 Display command help. - + Показати довідку щодо команд. Available commands: - + Доступні команди: Import the contents of an XML database. - + Імпортувати вміст сховища XML. Path of the XML database export. - + Шлях для експорту сховища XML. Path of the new database. - + Шлях до нового сховища. Unable to import XML database export %1 - + Неможливо імпортувати експортоване сховище XML %1 Successfully imported database. - + Сховище вдало імпортоване. Unknown command %1 - + Невідома команда %1 Flattens the output to single lines. - + Сплощує вивід до єдиного рядка. Only print the changes detected by the merge operation. - + Друкує лише зміни, знайдені під час об'єднання. Yubikey slot for the second database. - + Гніздо Yubikey для другого сховища. Successfully merged %1 into %2. - + %1 успішно об́'єднано з %2. Database was not modified by merge operation. @@ -6220,103 +6233,103 @@ Kernel: %3 %4 Moves an entry to a new group. - + Переміщує запис до нової групи. Path of the entry to move. - + Шлях до запису, що підлягає переміщенню. Path of the destination group. - + Шлях до групи призначення. Could not find group with path %1. - + Неможливо знайти групу за шляхом %1. Entry is already in group %1. - + Запис вже в групі %1. Successfully moved entry %1 to group %2. - + Запис %1 успішно переміщено до групи %2. Open a database. - + Відкрити сховище. Path of the group to remove. - + Шлях до групи, що підлягає видаленню. Cannot remove root group from database. - + Неможливо видалити кореневу групу зі сховища. Successfully recycled group %1. - + Успішно перероблено групу %1. Successfully deleted group %1. - + Групу %1 успішно вилучено. Failed to open database file %1: not found - + Не вдалося відкрити файл сховища %1: файл не знайдено Failed to open database file %1: not a plain file - + Не вдалося відкрити файл сховища %1: не звичайний файл Failed to open database file %1: not readable - + Не вдалося відкрити файл сховища %1: недоступний для читання Enter password to unlock %1: - + Введіть пароль для розблокування %1: Invalid YubiKey slot %1 - + Хибне гніздо YubiKey %1 Please touch the button on your YubiKey to unlock %1 - + Натисніть, будь ласка, кнопку YubiKey для розблокування %1 Enter password to encrypt database (optional): - + Введіть пароль для шифрування сховища (необов'язково): HIBP file, line %1: parse error - + Файл HIBP, рядок %1: помилка синтаксичного аналізу Secret Service Integration - + Сполучення з Таємною службою User name - + Ім’я користувача %1[%2] Challenge Response - Slot %3 - %4 - + %1[%2] виклик відповідь — гніздо %3 — %4 Password for '%1' has been leaked %2 time(s)! - + Пароль для «%1» став відомим у %2 випадку!Пароль для «%1» став відомим у %2 випадках!Пароль для «%1» став відомим у %2 випадках!Пароль для «%1» став відомим у %2 випадках! Invalid password generator after applying all options - + Після застосування всіх параметрів генератор паролів став непридатним Show the protected attributes in clear text. - + Показувати захищені ознаки незахищеним текстом. @@ -6475,11 +6488,11 @@ Kernel: %3 %4 SettingsWidgetFdoSecrets Options - + Параметри Enable KeepassXC Freedesktop.org Secret Service integration - + Увімкнути сполучення KeePassXC з Таємною службою Freedesktop.org General @@ -6487,23 +6500,23 @@ Kernel: %3 %4 Show notification when credentials are requested - + Показувати повідомлення, коли надходить запит на реєстраційні дані <html><head/><body><p>If recycle bin is enabled for the database, entries will be moved to recycle bin directly. Otherwise, they will be deleted without confirmation.</p><p>You will still be prompted if any entries are referenced by others.</p></body></html> - + <html><head/><body><p>Якщо смітник увімкнено для сховища, записи будуть переміщені у смітник, а не видалені. Інакше їх буде видалено без додаткового схвалення.</p><p>Ви одержуватими повідомлення тільки якщо існують посилання на записи, що Ви видаляєте.</p></body></html> Don't confirm when entries are deleted by clients. - + Не запитувати схвалення, коли інші клієнти видаляють записи. Exposed database groups: - + Виставлені групи сховища: File Name - + Ім'я файлу Group @@ -6511,23 +6524,23 @@ Kernel: %3 %4 Manage - + Керувати Authorization - + Дозвіл These applications are currently connected: - + Такі застосунки зараз сполучені: Application - + Застосунок Disconnect - + Від'єднати Database settings @@ -6535,7 +6548,7 @@ Kernel: %3 %4 Edit database settings - + Змінити налаштування сховища Unlock database @@ -6543,7 +6556,7 @@ Kernel: %3 %4 Unlock database to show more information - + Розблокуйте сховище, щоб показати додаткову інформацію Lock database @@ -6551,7 +6564,7 @@ Kernel: %3 %4 Unlock to show - + Розблокуйте для показу None @@ -6659,7 +6672,7 @@ Kernel: %3 %4 KeeShare key file - Файл ключа KeeShare + Файловий ключ KeeShare All files @@ -6683,15 +6696,15 @@ Kernel: %3 %4 Allow KeeShare imports - + Дозволити імпорт KeeShare Allow KeeShare exports - + Дозволити експорт KeeShare Only show warnings and errors - + Показувати лише попередження і помилки Key @@ -6699,39 +6712,39 @@ Kernel: %3 %4 Signer name field - + Поле імені підписувача Generate new certificate - + Створити новий сертифікат Import existing certificate - + Імпортувати наявний сертифікат Export own certificate - + Експортувати власний сертифікат Known shares - + Відоме спільне використання Trust selected certificate - + Довіряти вибраним сертифікатам Ask whether to trust the selected certificate every time - + Запитувати кожного разу, чи довіряти вибраному сертифікатові Untrust selected certificate - + Скасувати довіру вибраним сертифікатам Remove selected certificate - + Видалити вибраний сертифікат @@ -6959,15 +6972,15 @@ Kernel: %3 %4 Secret Key: - + Таємний ключ: Secret key must be in Base32 format - + Таємний ключ мусить бути в форматі Base32 Secret key field - + Поле таємного ключа Algorithm: @@ -6975,28 +6988,28 @@ Kernel: %3 %4 Time step field - + Поле кроку часу digits - + цифр Invalid TOTP Secret - + Хибний таємний ТОП You have entered an invalid secret key. The key must be in Base32 format. Example: JBSWY3DPEHPK3PXP - + Ви ввели хибний таємний ключ. Ключ мусить бути в форматі Base32. Наприклад: JBSWY3DPEHPK3PXP Confirm Remove TOTP Settings - + Схвалити видалення параметрів ТОП Are you sure you want to delete TOTP settings for this entry? - + Ви дійсно хочете видалити налаштування ТОП для цього запису? @@ -7082,11 +7095,11 @@ Example: JBSWY3DPEHPK3PXP Import from 1Password - + Імпортувати з 1Password Open a recent database - + Відкрити недавнє сховище diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index f438f689be..2c22418f2c 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,5 +1,5 @@ name: keepassxc -version: 2.5.1 +version: 2.5.2 grade: stable summary: Community-driven port of the Windows application “KeePass Password Safe” description: | diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 0e3bca7af8..af9b9bb586 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -121,6 +121,7 @@ set(keepassx_SOURCES gui/TotpDialog.cpp gui/TotpExportSettingsDialog.cpp gui/DatabaseOpenDialog.cpp + gui/URLEdit.cpp gui/WelcomeWidget.cpp gui/csvImport/CsvImportWidget.cpp gui/csvImport/CsvImportWizard.cpp diff --git a/src/browser/BrowserAction.cpp b/src/browser/BrowserAction.cpp index 20b2fc975f..fec5b985a8 100644 --- a/src/browser/BrowserAction.cpp +++ b/src/browser/BrowserAction.cpp @@ -42,7 +42,7 @@ QJsonObject BrowserAction::readResponse(const QJsonObject& json) bool triggerUnlock = false; const QString trigger = json.value("triggerUnlock").toString(); - if (!trigger.isEmpty() && trigger.compare("true", Qt::CaseSensitive) == 0) { + if (!trigger.isEmpty() && trigger.compare(TRUE_STR, Qt::CaseSensitive) == 0) { triggerUnlock = true; } @@ -268,7 +268,7 @@ QJsonObject BrowserAction::handleGetLogins(const QJsonObject& json, const QStrin const QString id = decrypted.value("id").toString(); const QString submit = decrypted.value("submitUrl").toString(); const QString auth = decrypted.value("httpAuth").toString(); - const bool httpAuth = auth.compare("true", Qt::CaseSensitive) == 0 ? true : false; + const bool httpAuth = auth.compare(TRUE_STR, Qt::CaseSensitive) == 0 ? true : false; const QJsonArray users = m_browserService.findMatchingEntries(id, url, submit, "", keyList, httpAuth); if (users.isEmpty()) { @@ -469,7 +469,7 @@ QJsonObject BrowserAction::buildMessage(const QString& nonce) const { QJsonObject message; message["version"] = KEEPASSXC_VERSION; - message["success"] = "true"; + message["success"] = TRUE_STR; message["nonce"] = nonce; return message; } diff --git a/src/browser/BrowserOptionDialog.cpp b/src/browser/BrowserOptionDialog.cpp index a5bb921da5..1af989e00d 100644 --- a/src/browser/BrowserOptionDialog.cpp +++ b/src/browser/BrowserOptionDialog.cpp @@ -68,6 +68,10 @@ BrowserOptionDialog::BrowserOptionDialog(QWidget* parent) connect(m_ui->useCustomProxy, SIGNAL(toggled(bool)), m_ui->customProxyLocationBrowseButton, SLOT(setEnabled(bool))); connect(m_ui->customProxyLocationBrowseButton, SIGNAL(clicked()), this, SLOT(showProxyLocationFileDialog())); +#ifndef Q_OS_LINUX + m_ui->snapWarningLabel->setVisible(false); +#endif + #ifdef Q_OS_WIN // Brave uses Chrome's registry settings m_ui->braveSupport->setHidden(true); @@ -124,6 +128,9 @@ void BrowserOptionDialog::loadSettings() m_ui->vivaldiSupport->setChecked(settings->vivaldiSupport()); m_ui->torBrowserSupport->setChecked(settings->torBrowserSupport()); #endif +#ifndef Q_OS_LINUX + m_ui->snapWarningLabel->setVisible(false); +#endif #if defined(KEEPASSXC_DIST_APPIMAGE) m_ui->supportBrowserProxy->setChecked(true); diff --git a/src/browser/BrowserOptionDialog.ui b/src/browser/BrowserOptionDialog.ui index 638c400aa3..84fc5bdbf6 100755 --- a/src/browser/BrowserOptionDialog.ui +++ b/src/browser/BrowserOptionDialog.ui @@ -60,7 +60,7 @@ - + Browsers installed as snaps are currently not supported. diff --git a/src/browser/BrowserService.cpp b/src/browser/BrowserService.cpp index 392d28c438..63860b58da 100644 --- a/src/browser/BrowserService.cpp +++ b/src/browser/BrowserService.cpp @@ -54,6 +54,7 @@ static const QString KEEPASSHTTP_GROUP_NAME = QStringLiteral("KeePassHttp Passwo // Extra entry related options saved in custom data const QString BrowserService::OPTION_SKIP_AUTO_SUBMIT = QStringLiteral("BrowserSkipAutoSubmit"); const QString BrowserService::OPTION_HIDE_ENTRY = QStringLiteral("BrowserHideEntry"); +const QString BrowserService::OPTION_ONLY_HTTP_AUTH = QStringLiteral("BrowserOnlyHttpAuth"); // Multiple URL's const QString BrowserService::ADDITIONAL_URL = QStringLiteral("KP2A_URL"); @@ -380,9 +381,14 @@ QJsonArray BrowserService::findMatchingEntries(const QString& id, // Check entries for authorization QList pwEntriesToConfirm; QList pwEntries; - for (auto* entry : searchEntries(url, keyList)) { + for (auto* entry : searchEntries(url, submitUrl, keyList)) { if (entry->customData()->contains(BrowserService::OPTION_HIDE_ENTRY) - && entry->customData()->value(BrowserService::OPTION_HIDE_ENTRY) == "true") { + && entry->customData()->value(BrowserService::OPTION_HIDE_ENTRY) == TRUE_STR) { + continue; + } + + if (!httpAuth && entry->customData()->contains(BrowserService::OPTION_ONLY_HTTP_AUTH) + && entry->customData()->value(BrowserService::OPTION_ONLY_HTTP_AUTH) == TRUE_STR) { continue; } @@ -583,7 +589,7 @@ BrowserService::ReturnValue BrowserService::updateEntry(const QString& id, } QList -BrowserService::searchEntries(const QSharedPointer& db, const QString& hostname, const QString& url) +BrowserService::searchEntries(const QSharedPointer& db, const QString& url, const QString& submitUrl) { QList entries; auto* rootGroup = db->rootGroup(); @@ -601,20 +607,15 @@ BrowserService::searchEntries(const QSharedPointer& db, const QString& continue; } - auto domain = baseDomain(hostname); - // Search for additional URL's starting with KP2A_URL - if (entry->attributes()->keys().contains(ADDITIONAL_URL)) { - for (const auto& key : entry->attributes()->keys()) { - if (key.startsWith(ADDITIONAL_URL) - && handleURL(entry->attributes()->value(key), domain, url)) { - entries.append(entry); - continue; - } + for (const auto& key : entry->attributes()->keys()) { + if (key.startsWith(ADDITIONAL_URL) && handleURL(entry->attributes()->value(key), url, submitUrl)) { + entries.append(entry); + continue; } } - if (!handleURL(entry->url(), domain, url)) { + if (!handleURL(entry->url(), url, submitUrl)) { continue; } @@ -625,7 +626,7 @@ BrowserService::searchEntries(const QSharedPointer& db, const QString& return entries; } -QList BrowserService::searchEntries(const QString& url, const StringPairList& keyList) +QList BrowserService::searchEntries(const QString& url, const QString& submitUrl, const StringPairList& keyList) { // Check if database is connected with KeePassXC-Browser auto databaseConnected = [&](const QSharedPointer& db) { @@ -662,7 +663,7 @@ QList BrowserService::searchEntries(const QString& url, const StringPair QList entries; do { for (const auto& db : databases) { - entries << searchEntries(db, hostname, url); + entries << searchEntries(db, url, submitUrl); } } while (entries.isEmpty() && removeFirstDomain(hostname)); @@ -855,7 +856,7 @@ QJsonObject BrowserService::prepareEntry(const Entry* entry) } if (entry->isExpired()) { - res["expired"] = "true"; + res["expired"] = TRUE_STR; } if (entry->customData()->contains(BrowserService::OPTION_SKIP_AUTO_SUBMIT)) { @@ -1000,7 +1001,7 @@ bool BrowserService::removeFirstDomain(QString& hostname) return false; } -bool BrowserService::handleURL(const QString& entryUrl, const QString& hostname, const QString& url) +bool BrowserService::handleURL(const QString& entryUrl, const QString& url, const QString& submitUrl) { if (entryUrl.isEmpty()) { return false; @@ -1017,31 +1018,36 @@ bool BrowserService::handleURL(const QString& entryUrl, const QString& hostname, } } + // Make a direct compare if a local file is used + if (url.contains("file://")) { + return entryUrl == submitUrl; + } + // URL host validation fails - if (browserSettings()->matchUrlScheme() && entryQUrl.host().isEmpty()) { + if (entryQUrl.host().isEmpty()) { return false; } // Match port, if used - QUrl qUrl(url); - if (entryQUrl.port() > 0 && entryQUrl.port() != qUrl.port()) { + QUrl siteQUrl(url); + if (entryQUrl.port() > 0 && entryQUrl.port() != siteQUrl.port()) { return false; } // Match scheme - if (browserSettings()->matchUrlScheme() && !entryQUrl.scheme().isEmpty() && entryQUrl.scheme().compare(qUrl.scheme()) != 0) { + if (browserSettings()->matchUrlScheme() && !entryQUrl.scheme().isEmpty() + && entryQUrl.scheme().compare(siteQUrl.scheme()) != 0) { return false; } // Check for illegal characters QRegularExpression re("[<>\\^`{|}]"); - auto match = re.match(entryUrl); - if (match.hasMatch()) { + if (re.match(entryUrl).hasMatch()) { return false; } // Filter to match hostname in URL field - if (entryQUrl.host().endsWith(hostname)) { + if (siteQUrl.host().endsWith(entryQUrl.host())) { return true; } diff --git a/src/browser/BrowserService.h b/src/browser/BrowserService.h index cb20ecbfb7..495c9ac258 100644 --- a/src/browser/BrowserService.h +++ b/src/browser/BrowserService.h @@ -63,8 +63,8 @@ class BrowserService : public QObject const QString& group, const QString& groupUuid, const QSharedPointer& selectedDb = {}); - QList searchEntries(const QSharedPointer& db, const QString& hostname, const QString& url); - QList searchEntries(const QString& url, const StringPairList& keyList); + QList searchEntries(const QSharedPointer& db, const QString& url, const QString& submitUrl); + QList searchEntries(const QString& url, const QString& submitUrl, const StringPairList& keyList); void convertAttributesToCustomData(const QSharedPointer& currentDb = {}); public: @@ -74,6 +74,7 @@ class BrowserService : public QObject static const QString LEGACY_ASSOCIATE_KEY_PREFIX; static const QString OPTION_SKIP_AUTO_SUBMIT; static const QString OPTION_HIDE_ENTRY; + static const QString OPTION_ONLY_HTTP_AUTH; static const QString ADDITIONAL_URL; public slots: @@ -130,7 +131,7 @@ public slots: sortPriority(const Entry* entry, const QString& host, const QString& submitUrl, const QString& baseSubmitUrl) const; bool schemeFound(const QString& url); bool removeFirstDomain(QString& hostname); - bool handleURL(const QString& entryUrl, const QString& hostname, const QString& url); + bool handleURL(const QString& entryUrl, const QString& url, const QString& submitUrl); QString baseDomain(const QString& hostname) const; QSharedPointer getDatabase(); QSharedPointer selectedDatabase(); diff --git a/src/cli/Analyze.cpp b/src/cli/Analyze.cpp index 3e6edcebfb..6095e988b3 100644 --- a/src/cli/Analyze.cpp +++ b/src/cli/Analyze.cpp @@ -55,7 +55,7 @@ int Analyze::executeWithDatabase(QSharedPointer database, QSharedPoint return EXIT_FAILURE; } - outputTextStream << QObject::tr("Evaluating database entries against HIBP file, this will take a while..."); + outputTextStream << QObject::tr("Evaluating database entries against HIBP file, this will take a while...") << endl; QList> findings; QString error; diff --git a/src/cli/Merge.cpp b/src/cli/Merge.cpp index f02794a4bb..5855eff469 100644 --- a/src/cli/Merge.cpp +++ b/src/cli/Merge.cpp @@ -30,8 +30,7 @@ const QCommandLineOption Merge::SameCredentialsOption = QObject::tr("Use the same credentials for both database files.")); const QCommandLineOption Merge::KeyFileFromOption = - QCommandLineOption(QStringList() << "k" - << "key-file-from", + QCommandLineOption(QStringList() << "key-file-from", QObject::tr("Key file of the database to merge from."), QObject::tr("path")); diff --git a/src/cli/keepassxc-cli.cpp b/src/cli/keepassxc-cli.cpp index e16be9b296..179b79a435 100644 --- a/src/cli/keepassxc-cli.cpp +++ b/src/cli/keepassxc-cli.cpp @@ -149,7 +149,7 @@ void enterInteractiveMode(const QStringList& arguments) prompt += "> "; command = reader->readLine(prompt); if (reader->isFinished()) { - return; + break; } QStringList args = Utils::splitCommandString(command); @@ -162,13 +162,17 @@ void enterInteractiveMode(const QStringList& arguments) errorTextStream << QObject::tr("Unknown command %1").arg(args[0]) << "\n"; continue; } else if (cmd->name == "quit" || cmd->name == "exit") { - return; + break; } cmd->currentDatabase = currentDatabase; cmd->execute(args); currentDatabase = cmd->currentDatabase; } + + if (currentDatabase) { + currentDatabase->releaseData(); + } } int main(int argc, char** argv) diff --git a/src/core/Bootstrap.cpp b/src/core/Bootstrap.cpp index 204942f4de..46aff92d58 100644 --- a/src/core/Bootstrap.cpp +++ b/src/core/Bootstrap.cpp @@ -106,7 +106,11 @@ namespace Bootstrap { // start minimized if configured if (config()->get("GUI/MinimizeOnStartup").toBool()) { +#ifdef Q_OS_WIN mainWindow.showMinimized(); +#else + mainWindow.hideWindow(); +#endif } else { mainWindow.bringToFront(); } diff --git a/src/core/Database.cpp b/src/core/Database.cpp index 4cccd6d534..066abc4e31 100644 --- a/src/core/Database.cpp +++ b/src/core/Database.cpp @@ -42,7 +42,6 @@ Database::Database() : m_metadata(new Metadata(this)) , m_data() , m_rootGroup(nullptr) - , m_timer(new QTimer(this)) , m_fileWatcher(new FileWatcher(this)) , m_emitModified(false) , m_uuid(QUuid::createUuid()) @@ -50,12 +49,12 @@ Database::Database() setRootGroup(new Group()); rootGroup()->setUuid(QUuid::createUuid()); rootGroup()->setName(tr("Root", "Root group name")); - m_timer->setSingleShot(true); + m_modifiedTimer.setSingleShot(true); s_uuidMap.insert(m_uuid, this); connect(m_metadata, SIGNAL(metadataModified()), SLOT(markAsModified())); - connect(m_timer, SIGNAL(timeout()), SIGNAL(databaseModified())); + connect(&m_modifiedTimer, SIGNAL(timeout()), SIGNAL(databaseModified())); connect(this, SIGNAL(databaseOpened()), SLOT(updateCommonUsernames())); connect(this, SIGNAL(databaseSaved()), SLOT(updateCommonUsernames())); connect(m_fileWatcher, SIGNAL(fileChanged()), SIGNAL(databaseFileChanged())); @@ -229,6 +228,7 @@ bool Database::saveAs(const QString& filePath, QString* error, bool atomic, bool auto& canonicalFilePath = QFileInfo::exists(filePath) ? QFileInfo(filePath).canonicalFilePath() : filePath; bool ok = performSave(canonicalFilePath, error, atomic, backup); if (ok) { + markAsClean(); setFilePath(filePath); m_fileWatcher->start(canonicalFilePath, 30, 1); } else { @@ -343,7 +343,6 @@ bool Database::writeDatabase(QIODevice* device, QString* error) return false; } - markAsClean(); return true; } @@ -832,7 +831,7 @@ void Database::emptyRecycleBin() void Database::setEmitModified(bool value) { if (m_emitModified && !value) { - m_timer->stop(); + m_modifiedTimer.stop(); } m_emitModified = value; @@ -846,8 +845,9 @@ bool Database::isModified() const void Database::markAsModified() { m_modified = true; - if (m_emitModified) { - startModifiedTimer(); + if (m_emitModified && !m_modifiedTimer.isActive()) { + // Small time delay prevents numerous consecutive saves due to repeated signals + m_modifiedTimer.start(150); } } @@ -855,6 +855,7 @@ void Database::markAsClean() { bool emitSignal = m_modified; m_modified = false; + m_modifiedTimer.stop(); if (emitSignal) { emit databaseSaved(); } @@ -869,18 +870,6 @@ Database* Database::databaseByUuid(const QUuid& uuid) return s_uuidMap.value(uuid, nullptr); } -void Database::startModifiedTimer() -{ - if (!m_emitModified) { - return; - } - - if (m_timer->isActive()) { - m_timer->stop(); - } - m_timer->start(150); -} - QSharedPointer Database::key() const { return m_data.key; diff --git a/src/core/Database.h b/src/core/Database.h index 9c99299459..d3d88e7d2e 100644 --- a/src/core/Database.h +++ b/src/core/Database.h @@ -21,23 +21,22 @@ #include #include -#include #include #include +#include #include "config-keepassx.h" #include "crypto/kdf/AesKdf.h" #include "crypto/kdf/Kdf.h" #include "format/KeePass2.h" -#include "keys/PasswordKey.h" #include "keys/CompositeKey.h" +#include "keys/PasswordKey.h" class Entry; enum class EntryReferenceType; class FileWatcher; class Group; class Metadata; -class QTimer; class QIODevice; struct DeletedObject @@ -155,9 +154,6 @@ public slots: void databaseDiscarded(); void databaseFileChanged(); -private slots: - void startModifiedTimer(); - private: struct DatabaseData { @@ -211,7 +207,7 @@ private slots: DatabaseData m_data; QPointer m_rootGroup; QList m_deletedObjects; - QPointer m_timer; + QTimer m_modifiedTimer; QPointer m_fileWatcher; bool m_initialized = false; bool m_modified = false; diff --git a/src/core/FileWatcher.cpp b/src/core/FileWatcher.cpp index 0d1def31ae..fb8e951280 100644 --- a/src/core/FileWatcher.cpp +++ b/src/core/FileWatcher.cpp @@ -35,11 +35,10 @@ namespace FileWatcher::FileWatcher(QObject* parent) : QObject(parent) - , m_ignoreFileChange(false) { - connect(&m_fileWatcher, SIGNAL(fileChanged(QString)), SLOT(onWatchedFileChanged())); + connect(&m_fileWatcher, SIGNAL(fileChanged(QString)), SLOT(checkFileChanged())); + connect(&m_fileChecksumTimer, SIGNAL(timeout()), SLOT(checkFileChanged())); connect(&m_fileChangeDelayTimer, SIGNAL(timeout()), SIGNAL(fileChanged())); - connect(&m_fileChecksumTimer, SIGNAL(timeout()), SLOT(checkFileChecksum())); m_fileChangeDelayTimer.setSingleShot(true); m_fileIgnoreDelayTimer.setSingleShot(true); } @@ -101,17 +100,6 @@ void FileWatcher::resume() } } -void FileWatcher::onWatchedFileChanged() -{ - // Don't notify if we are ignoring events or already started a notification chain - if (shouldIgnoreChanges()) { - return; - } - - m_fileChecksum = calculateChecksum(); - m_fileChangeDelayTimer.start(0); -} - bool FileWatcher::shouldIgnoreChanges() { return m_filePath.isEmpty() || m_ignoreFileChange || m_fileIgnoreDelayTimer.isActive() @@ -123,15 +111,23 @@ bool FileWatcher::hasSameFileChecksum() return calculateChecksum() == m_fileChecksum; } -void FileWatcher::checkFileChecksum() +void FileWatcher::checkFileChanged() { if (shouldIgnoreChanges()) { return; } - if (!hasSameFileChecksum()) { - onWatchedFileChanged(); + // Prevent reentrance + m_ignoreFileChange = true; + + // Only trigger the change notice if there is a checksum mismatch + auto checksum = calculateChecksum(); + if (checksum != m_fileChecksum) { + m_fileChecksum = checksum; + m_fileChangeDelayTimer.start(0); } + + m_ignoreFileChange = false; } QByteArray FileWatcher::calculateChecksum() diff --git a/src/core/FileWatcher.h b/src/core/FileWatcher.h index fea05fc84b..9b55badc16 100644 --- a/src/core/FileWatcher.h +++ b/src/core/FileWatcher.h @@ -43,8 +43,7 @@ public slots: void resume(); private slots: - void onWatchedFileChanged(); - void checkFileChecksum(); + void checkFileChanged(); private: QByteArray calculateChecksum(); @@ -56,8 +55,8 @@ private slots: QTimer m_fileChangeDelayTimer; QTimer m_fileIgnoreDelayTimer; QTimer m_fileChecksumTimer; - int m_fileChecksumSizeBytes; - bool m_ignoreFileChange; + int m_fileChecksumSizeBytes = -1; + bool m_ignoreFileChange = false; }; class BulkFileWatcher : public QObject diff --git a/src/core/Global.h b/src/core/Global.h index 9ebe787902..0821687e36 100644 --- a/src/core/Global.h +++ b/src/core/Global.h @@ -20,6 +20,7 @@ #ifndef KEEPASSX_GLOBAL_H #define KEEPASSX_GLOBAL_H +#include #include #if defined(Q_OS_WIN) @@ -42,6 +43,9 @@ #define FILE_CASE_SENSITIVE Qt::CaseSensitive #endif +static const auto TRUE_STR = QStringLiteral("true"); +static const auto FALSE_STR = QStringLiteral("false"); + template struct AddConst { typedef const T Type; diff --git a/src/core/Tools.cpp b/src/core/Tools.cpp index 2dbf0093d6..7cfc8a55f3 100644 --- a/src/core/Tools.cpp +++ b/src/core/Tools.cpp @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -259,6 +260,33 @@ namespace Tools } } + bool checkUrlValid(const QString& urlField) + { + if (urlField.isEmpty()) { + return true; + } + + QUrl url; + if (urlField.contains("://")) { + url = urlField; + } else { + url = QUrl::fromUserInput(urlField); + } + + if (url.scheme() != "file" && url.host().isEmpty()) { + return false; + } + + // Check for illegal characters. Adds also the wildcard * to the list + QRegularExpression re("[<>\\^`{|}\\*]"); + auto match = re.match(urlField); + if (match.hasMatch()) { + return false; + } + + return true; + } + // Escape common regex symbols except for *, ?, and | auto regexEscape = QRegularExpression(R"re(([-[\]{}()+.,\\\/^$#]))re"); diff --git a/src/core/Tools.h b/src/core/Tools.h index 1fa5e6a9ad..455b879c25 100644 --- a/src/core/Tools.h +++ b/src/core/Tools.h @@ -41,6 +41,7 @@ namespace Tools bool isBase64(const QByteArray& ba); void sleep(int ms); void wait(int ms); + bool checkUrlValid(const QString& urlField); QString uuidToHex(const QUuid& uuid); QUuid hexToUuid(const QString& uuid); QRegularExpression convertToRegex(const QString& string, diff --git a/src/fdosecrets/CMakeLists.txt b/src/fdosecrets/CMakeLists.txt index 9d3fcb6a92..a9750bc2d2 100644 --- a/src/fdosecrets/CMakeLists.txt +++ b/src/fdosecrets/CMakeLists.txt @@ -4,6 +4,7 @@ if(WITH_XC_FDOSECRETS) add_library(fdosecrets STATIC # app settings page FdoSecretsPlugin.cpp + widgets/SettingsModels.cpp widgets/SettingsWidgetFdoSecrets.cpp # per database settings page diff --git a/src/fdosecrets/FdoSecretsPlugin.cpp b/src/fdosecrets/FdoSecretsPlugin.cpp index 668b5fb046..646f853018 100644 --- a/src/fdosecrets/FdoSecretsPlugin.cpp +++ b/src/fdosecrets/FdoSecretsPlugin.cpp @@ -60,11 +60,15 @@ void FdoSecretsPlugin::updateServiceState() }); if (!m_secretService->initialize()) { m_secretService.reset(); + FdoSecrets::settings()->setEnabled(false); + return; } + emit secretServiceStarted(); } } else { if (m_secretService) { m_secretService.reset(); + emit secretServiceStopped(); } } } @@ -74,6 +78,11 @@ Service* FdoSecretsPlugin::serviceInstance() const return m_secretService.data(); } +DatabaseTabWidget* FdoSecretsPlugin::dbTabs() const +{ + return m_dbTabs; +} + void FdoSecretsPlugin::emitRequestSwitchToDatabases() { emit requestSwitchToDatabases(); diff --git a/src/fdosecrets/FdoSecretsPlugin.h b/src/fdosecrets/FdoSecretsPlugin.h index 2a57ea0db3..828c0bd764 100644 --- a/src/fdosecrets/FdoSecretsPlugin.h +++ b/src/fdosecrets/FdoSecretsPlugin.h @@ -59,6 +59,11 @@ class FdoSecretsPlugin : public QObject, public ISettingsPage */ FdoSecrets::Service* serviceInstance() const; + /** + * @return The db tabs widget, containing opened databases. Can be nullptr. + */ + DatabaseTabWidget* dbTabs() const; + public slots: void emitRequestSwitchToDatabases(); void emitRequestShowNotification(const QString& msg, const QString& title = {}); @@ -67,6 +72,8 @@ public slots: void error(const QString& msg); void requestSwitchToDatabases(); void requestShowNotification(const QString& msg, const QString& title, int msTimeoutHint); + void secretServiceStarted(); + void secretServiceStopped(); private: QPointer m_dbTabs; diff --git a/src/fdosecrets/objects/Collection.cpp b/src/fdosecrets/objects/Collection.cpp index c826c1db06..c2fb29a08a 100644 --- a/src/fdosecrets/objects/Collection.cpp +++ b/src/fdosecrets/objects/Collection.cpp @@ -21,6 +21,7 @@ #include "fdosecrets/objects/Item.h" #include "fdosecrets/objects/Prompt.h" #include "fdosecrets/objects/Service.h" +#include "fdosecrets/objects/Session.h" #include "core/Config.h" #include "core/Database.h" @@ -29,6 +30,7 @@ #include "gui/DatabaseWidget.h" #include +#include namespace FdoSecrets { @@ -47,6 +49,14 @@ namespace FdoSecrets connect(backend, &DatabaseWidget::databaseUnlocked, this, &Collection::onDatabaseLockChanged); connect(backend, &DatabaseWidget::databaseLocked, this, &Collection::onDatabaseLockChanged); + // get notified whenever unlock db dialog finishes + connect(parent, &Service::doneUnlockDatabaseInDialog, this, [this](bool accepted, DatabaseWidget* dbWidget) { + if (!dbWidget || dbWidget != m_backend) { + return; + } + emit doneUnlockCollection(accepted); + }); + reloadBackend(); } @@ -241,6 +251,11 @@ namespace FdoSecrets terms << attributeToTerm(it.key(), it.value()); } + // empty terms causes EntrySearcher returns everything + if (terms.isEmpty()) { + return QList{}; + } + QList items; const auto foundEntries = EntrySearcher().search(terms, m_exposedGroup); items.reserve(foundEntries.size()); @@ -267,7 +282,7 @@ namespace FdoSecrets const auto useWildcards = false; const auto exactMatch = true; const auto caseSensitive = true; - term.regex = Tools::convertToRegex(value, useWildcards, exactMatch, caseSensitive); + term.regex = Tools::convertToRegex(QRegularExpression::escape(value), useWildcards, exactMatch, caseSensitive); return term; } @@ -284,8 +299,13 @@ namespace FdoSecrets return ret; } + if (!pathToObject(secret.session)) { + return DBusReturn<>::Error(QStringLiteral(DBUS_ERROR_SECRET_NO_SESSION)); + } + prompt = nullptr; + bool newlyCreated = true; Item* item = nullptr; QString itemPath; StringStringMap attributes; @@ -303,6 +323,7 @@ namespace FdoSecrets } if (!existings.value().isEmpty() && replace) { item = existings.value().front(); + newlyCreated = false; } } @@ -328,15 +349,25 @@ namespace FdoSecrets // when creation finishes in backend, we will already have item item = m_entryToItem.value(entry, nullptr); - Q_ASSERT(item); + + if (!item) { + // may happen if entry somehow ends up in recycle bin + return DBusReturn<>::Error(QStringLiteral(DBUS_ERROR_SECRET_NO_SUCH_OBJECT)); + } } ret = item->setProperties(properties); if (ret.isError()) { + if (newlyCreated) { + item->doDelete(); + } return ret; } ret = item->setSecret(secret); if (ret.isError()) { + if (newlyCreated) { + item->doDelete(); + } return ret; } @@ -439,7 +470,7 @@ namespace FdoSecrets auto newUuid = FdoSecrets::settings()->exposedGroup(m_backend->database()); auto newGroup = m_backend->database()->rootGroup()->findGroupByUuid(newUuid); - if (!newGroup) { + if (!newGroup || inRecycleBin(newGroup)) { // no exposed group, delete self doDelete(); return; @@ -451,14 +482,20 @@ namespace FdoSecrets m_exposedGroup = newGroup; // Attach signal to update exposed group settings if the group was removed. - // The lifetime of the connection is bound to the database object, because - // in Database::~Database, groups are also deleted, but we don't want to - // trigger this. - // This rely on the fact that QObject disconnects signals BEFORE deleting - // children. + // + // When the group object is normally deleted due to ~Database, the databaseReplaced + // signal should be first emitted, and we will clean up connection in reloadDatabase, + // so this handler won't be triggered. QPointer db = m_backend->database().data(); - connect(m_exposedGroup.data(), &Group::groupAboutToRemove, db, [db](Group* toBeRemoved) { - if (!db) { + connect(m_exposedGroup.data(), &Group::groupAboutToRemove, this, [this](Group* toBeRemoved) { + if (backendLocked()) { + return; + } + auto db = m_backend->database(); + if (toBeRemoved->database() != db) { + // should not happen, but anyway. + // somehow our current database has been changed, and the old group is being deleted + // possibly logic changes in replaceDatabase. return; } auto uuid = FdoSecrets::settings()->exposedGroup(db); @@ -468,10 +505,17 @@ namespace FdoSecrets FdoSecrets::settings()->setExposedGroup(db, {}); } }); + // Another possibility is the group being moved to recycle bin. + connect(m_exposedGroup.data(), &Group::groupModified, this, [this]() { + if (inRecycleBin(m_exposedGroup->parentGroup())) { + // reset the exposed group to none + FdoSecrets::settings()->setExposedGroup(m_backend->database().data(), {}); + } + }); // Monitor exposed group settings connect(m_backend->database()->metadata()->customData(), &CustomData::customDataModified, this, [this]() { - if (!m_exposedGroup || !m_backend) { + if (!m_exposedGroup || backendLocked()) { return; } if (m_exposedGroup->uuid() == FdoSecrets::settings()->exposedGroup(m_backend->database())) { @@ -590,9 +634,13 @@ namespace FdoSecrets void Collection::cleanupConnections() { + m_backend->database()->metadata()->customData()->disconnect(this); if (m_exposedGroup) { - m_exposedGroup->disconnect(this); + for (const auto group : m_exposedGroup->groupsRecursive(true)) { + group->disconnect(this); + } } + m_items.clear(); } @@ -646,17 +694,21 @@ namespace FdoSecrets { Q_ASSERT(m_backend); - if (!m_backend->database()->metadata()->recycleBin()) { + if (!group) { + // the root group's parent is nullptr, we treat it as not in recycle bin. return false; } - while (group) { - if (group->uuid() == m_backend->database()->metadata()->recycleBin()->uuid()) { - return true; - } - group = group->parentGroup(); + if (!m_backend->database()->metadata()) { + return false; } - return false; + + auto recycleBin = m_backend->database()->metadata()->recycleBin(); + if (!recycleBin) { + return false; + } + + return group->uuid() == recycleBin->uuid() || group->isRecycled(); } bool Collection::inRecycleBin(Entry* entry) const diff --git a/src/fdosecrets/objects/Collection.h b/src/fdosecrets/objects/Collection.h index de9db3a494..0be8b42394 100644 --- a/src/fdosecrets/objects/Collection.h +++ b/src/fdosecrets/objects/Collection.h @@ -71,9 +71,16 @@ namespace FdoSecrets void aliasAdded(const QString& alias); void aliasRemoved(const QString& alias); + void doneUnlockCollection(bool accepted); + public: DBusReturn setProperties(const QVariantMap& properties); + bool isValid() const + { + return backend(); + } + DBusReturn removeAlias(QString alias); DBusReturn addAlias(QString alias); const QSet aliases() const; @@ -106,6 +113,7 @@ namespace FdoSecrets private slots: void onDatabaseLockChanged(); void onDatabaseExposedGroupChanged(); + // force reload info from backend, potentially delete self void reloadBackend(); private: diff --git a/src/fdosecrets/objects/DBusReturn.h b/src/fdosecrets/objects/DBusReturn.h index 6c94eab183..889b8e11c7 100644 --- a/src/fdosecrets/objects/DBusReturn.h +++ b/src/fdosecrets/objects/DBusReturn.h @@ -158,6 +158,12 @@ namespace FdoSecrets return std::move(m_value); } + /** + * Get value or handle the error by the passed in dbus object + * @tparam P + * @param p + * @return + */ template T valueOrHandle(P* p) const& { if (isError()) { @@ -169,6 +175,12 @@ namespace FdoSecrets return m_value; } + /** + * Get value or handle the error by the passed in dbus object + * @tparam P + * @param p + * @return + */ template T&& valueOrHandle(P* p) && { if (isError()) { diff --git a/src/fdosecrets/objects/Prompt.cpp b/src/fdosecrets/objects/Prompt.cpp index 14bc66b687..6a2458a4f7 100644 --- a/src/fdosecrets/objects/Prompt.cpp +++ b/src/fdosecrets/objects/Prompt.cpp @@ -93,9 +93,9 @@ namespace FdoSecrets MessageBox::OverrideParent override(findWindow(windowId)); // only need to delete in backend, collection will react itself. - service()->doCloseDatabase(m_collection->backend()); + auto accepted = service()->doCloseDatabase(m_collection->backend()); - emit completed(false, {}); + emit completed(!accepted, {}); return {}; } @@ -189,19 +189,44 @@ namespace FdoSecrets MessageBox::OverrideParent override(findWindow(windowId)); - QList unlocked; for (const auto& c : asConst(m_collections)) { if (c) { + connect(c, &Collection::doneUnlockCollection, this, &UnlockCollectionsPrompt::collectionUnlockFinished); c->doUnlock(); - unlocked << c->objectPath(); } } - emit completed(false, QVariant::fromValue(unlocked)); - return {}; } + void UnlockCollectionsPrompt::collectionUnlockFinished(bool accepted) + { + auto coll = qobject_cast(sender()); + if (!coll) { + return; + } + + if (!m_collections.contains(coll)) { + // should not happen + coll->disconnect(this); + return; + } + + // one shot + coll->disconnect(this); + + if (accepted) { + m_unlocked << coll->objectPath(); + } else { + m_numRejected += 1; + } + + // if we've get all + if (m_numRejected + m_unlocked.size() == m_collections.size()) { + emit completed(m_unlocked.isEmpty(), QVariant::fromValue(m_unlocked)); + } + } + DeleteItemPrompt::DeleteItemPrompt(Service* parent, Item* item) : PromptBase(parent) , m_item(item) diff --git a/src/fdosecrets/objects/Prompt.h b/src/fdosecrets/objects/Prompt.h index 2d13084f6e..fee1cb9fbb 100644 --- a/src/fdosecrets/objects/Prompt.h +++ b/src/fdosecrets/objects/Prompt.h @@ -98,8 +98,13 @@ namespace FdoSecrets DBusReturn prompt(const QString& windowId) override; + private slots: + void collectionUnlockFinished(bool accepted); + private: QList> m_collections; + QList m_unlocked; + int m_numRejected = 0; }; class Item; diff --git a/src/fdosecrets/objects/Service.cpp b/src/fdosecrets/objects/Service.cpp index 6bca1f12c6..5408f4cb29 100644 --- a/src/fdosecrets/objects/Service.cpp +++ b/src/fdosecrets/objects/Service.cpp @@ -47,7 +47,8 @@ namespace FdoSecrets , m_insdieEnsureDefaultAlias(false) , m_serviceWatcher(nullptr) { - registerWithPath(QStringLiteral(DBUS_PATH_SECRETS), new ServiceAdaptor(this)); + connect( + m_databases, &DatabaseTabWidget::databaseUnlockDialogFinished, this, &Service::doneUnlockDatabaseInDialog); } Service::~Service() @@ -64,6 +65,8 @@ namespace FdoSecrets return false; } + registerWithPath(QStringLiteral(DBUS_PATH_SECRETS), new ServiceAdaptor(this)); + // Connect to service unregistered signal m_serviceWatcher.reset(new QDBusServiceWatcher()); connect(m_serviceWatcher.data(), @@ -93,7 +96,24 @@ namespace FdoSecrets void Service::onDatabaseTabOpened(DatabaseWidget* dbWidget, bool emitSignal) { + // The Collection will monitor the database's exposed group. + // When the Collection finds that no exposed group, it will delete itself. + // Thus the service also needs to monitor it and recreate the collection if the user changes + // from no exposed to exposed something. + if (!dbWidget->isLocked()) { + monitorDatabaseExposedGroup(dbWidget); + } + connect(dbWidget, &DatabaseWidget::databaseUnlocked, this, [this, dbWidget]() { + monitorDatabaseExposedGroup(dbWidget); + }); + auto coll = new Collection(this, dbWidget); + // Creation may fail if the database is not exposed. + // This is okay, because we monitor the expose settings above + if (!coll->isValid()) { + coll->deleteLater(); + return; + } m_collections << coll; m_dbToCollection[dbWidget] = coll; @@ -127,15 +147,6 @@ namespace FdoSecrets emit collectionDeleted(coll); }); - // a special case: the database changed from no expose to expose something. - // in this case, there is no collection out there monitoring it, so create a new collection - if (!dbWidget->isLocked()) { - monitorDatabaseExposedGroup(dbWidget); - } - connect(dbWidget, &DatabaseWidget::databaseUnlocked, this, [this, dbWidget]() { - monitorDatabaseExposedGroup(dbWidget); - }); - if (emitSignal) { emit collectionCreated(coll); } @@ -438,9 +449,9 @@ namespace FdoSecrets return m_sessions; } - void Service::doCloseDatabase(DatabaseWidget* dbWidget) + bool Service::doCloseDatabase(DatabaseWidget* dbWidget) { - m_databases->closeDatabaseTab(dbWidget); + return m_databases->closeDatabaseTab(dbWidget); } Collection* Service::doNewDatabase() @@ -463,11 +474,10 @@ namespace FdoSecrets void Service::doSwitchToChangeDatabaseSettings(DatabaseWidget* dbWidget) { - // switch selected to current - // unlock if needed if (dbWidget->isLocked()) { - m_databases->unlockDatabaseInDialog(dbWidget, DatabaseOpenDialog::Intent::None); + return; } + // switch selected to current m_databases->setCurrentWidget(dbWidget); m_databases->changeDatabaseSettings(); diff --git a/src/fdosecrets/objects/Service.h b/src/fdosecrets/objects/Service.h index bfa8ea843a..5de48da1cd 100644 --- a/src/fdosecrets/objects/Service.h +++ b/src/fdosecrets/objects/Service.h @@ -88,6 +88,13 @@ namespace FdoSecrets */ void error(const QString& msg); + /** + * Finish signal for async action doUnlockDatabaseInDialog + * @param accepted If false, the action is canceled by the user + * @param dbWidget The unlocked the dbWidget if succeed + */ + void doneUnlockDatabaseInDialog(bool accepted, DatabaseWidget* dbWidget); + public: /** * List of sessions @@ -101,9 +108,14 @@ namespace FdoSecrets } public slots: - void doCloseDatabase(DatabaseWidget* dbWidget); + bool doCloseDatabase(DatabaseWidget* dbWidget); Collection* doNewDatabase(); void doSwitchToChangeDatabaseSettings(DatabaseWidget* dbWidget); + + /** + * Async, connect to signal doneUnlockDatabaseInDialog for finish notification + * @param dbWidget + */ void doUnlockDatabaseInDialog(DatabaseWidget* dbWidget); private slots: diff --git a/src/fdosecrets/widgets/DatabaseSettingsWidgetFdoSecrets.cpp b/src/fdosecrets/widgets/DatabaseSettingsWidgetFdoSecrets.cpp index fadd015422..16a780de7e 100644 --- a/src/fdosecrets/widgets/DatabaseSettingsWidgetFdoSecrets.cpp +++ b/src/fdosecrets/widgets/DatabaseSettingsWidgetFdoSecrets.cpp @@ -85,7 +85,7 @@ class DatabaseSettingsWidgetFdoSecrets::GroupModelNoRecycle : public QSortFilter // can not call mapFromSource, which internally calls filterAcceptsRow auto group = groupFromSourceIndex(source_idx); - return group->uuid() != recycleBin->uuid(); + return group && !group->isRecycled() && group->uuid() != recycleBin->uuid(); } }; @@ -118,8 +118,13 @@ void DatabaseSettingsWidgetFdoSecrets::loadSettings(QSharedPointer db) m_model.reset(new GroupModelNoRecycle(m_db.data())); m_ui->selectGroup->setModel(m_model.data()); + Group* recycleBin = nullptr; + if (m_db->metadata() && m_db->metadata()->recycleBin()) { + recycleBin = m_db->metadata()->recycleBin(); + } + auto group = m_db->rootGroup()->findGroupByUuid(FdoSecrets::settings()->exposedGroup(m_db)); - if (!group) { + if (!group || group->isRecycled() || (recycleBin && group->uuid() == recycleBin->uuid())) { m_ui->radioDonotExpose->setChecked(true); } else { auto idx = m_model->indexFromGroup(group); diff --git a/src/fdosecrets/widgets/SettingsModels.cpp b/src/fdosecrets/widgets/SettingsModels.cpp new file mode 100644 index 0000000000..edcb275c8b --- /dev/null +++ b/src/fdosecrets/widgets/SettingsModels.cpp @@ -0,0 +1,396 @@ +/* + * Copyright (C) 2019 Aetf + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "SettingsModels.h" + +#include "fdosecrets/FdoSecretsPlugin.h" +#include "fdosecrets/FdoSecretsSettings.h" +#include "fdosecrets/objects/Service.h" +#include "fdosecrets/objects/Session.h" + +#include "core/Database.h" +#include "core/DatabaseIcons.h" +#include "core/FilePath.h" +#include "gui/DatabaseTabWidget.h" +#include "gui/DatabaseWidget.h" + +#include + +namespace FdoSecrets +{ + + SettingsDatabaseModel::SettingsDatabaseModel(DatabaseTabWidget* dbTabs, QObject* parent) + : QAbstractTableModel(parent) + , m_dbTabs(nullptr) + { + setTabWidget(dbTabs); + } + + void SettingsDatabaseModel::setTabWidget(DatabaseTabWidget* dbTabs) + { + auto old = m_dbTabs; + m_dbTabs = dbTabs; + if (old != m_dbTabs) { + populateModel(); + } + } + + int SettingsDatabaseModel::rowCount(const QModelIndex& parent) const + { + if (parent.isValid()) { + return 0; + } + return m_dbs.size(); + } + + int SettingsDatabaseModel::columnCount(const QModelIndex& parent) const + { + if (parent.isValid()) { + return 0; + } + return 3; + } + + QVariant SettingsDatabaseModel::headerData(int section, Qt::Orientation orientation, int role) const + { + if (orientation != Qt::Horizontal) { + return {}; + } + + if (role != Qt::DisplayRole) { + return {}; + } + + switch (section) { + case 0: + return tr("File Name"); + case 1: + return tr("Group"); + case 2: + return tr("Manage"); + default: + return {}; + } + } + + QVariant SettingsDatabaseModel::data(const QModelIndex& index, int role) const + { + if (!index.isValid()) { + return {}; + } + const auto& dbWidget = m_dbs[index.row()]; + if (!dbWidget) { + return {}; + } + + switch (index.column()) { + case 0: + return dataForName(dbWidget, role); + case 1: + return dataForExposedGroup(dbWidget, role); + case 2: + return dataForManage(dbWidget, role); + default: + return {}; + } + } + + QVariant SettingsDatabaseModel::dataForName(DatabaseWidget* db, int role) const + { + switch (role) { + case Qt::DisplayRole: { + QFileInfo fi(db->database()->filePath()); + return fi.fileName(); + } + case Qt::ToolTipRole: + return db->database()->filePath(); + default: + return {}; + } + } + + QVariant SettingsDatabaseModel::dataForExposedGroup(DatabaseWidget* dbWidget, int role) + { + if (dbWidget->isLocked()) { + switch (role) { + case Qt::DisplayRole: + return tr("Unlock to show"); + case Qt::DecorationRole: + return filePath()->icon(QStringLiteral("apps"), QStringLiteral("object-locked"), true); + case Qt::FontRole: { + QFont font; + font.setItalic(true); + return font; + } + default: + return {}; + } + } + auto db = dbWidget->database(); + auto group = db->rootGroup()->findGroupByUuid(FdoSecrets::settings()->exposedGroup(db)); + if (group) { + switch (role) { + case Qt::DisplayRole: + return group->name(); + case Qt::DecorationRole: + return group->isExpired() ? databaseIcons()->iconPixmap(DatabaseIcons::ExpiredIconIndex) + : group->iconScaledPixmap(); + case Qt::FontRole: + if (group->isExpired()) { + QFont font; + font.setStrikeOut(true); + return font; + } else { + return {}; + } + default: + return {}; + } + } else { + switch (role) { + case Qt::DisplayRole: + return tr("None"); + case Qt::DecorationRole: + return filePath()->icon(QStringLiteral("apps"), QStringLiteral("paint-none"), true); + default: + return {}; + } + } + } + + QVariant SettingsDatabaseModel::dataForManage(DatabaseWidget* db, int role) const + { + switch (role) { + case Qt::EditRole: + return QVariant::fromValue(db); + default: + return {}; + } + } + + void SettingsDatabaseModel::populateModel() + { + beginResetModel(); + + m_dbs.clear(); + + if (m_dbTabs) { + // Add existing database tabs + for (int idx = 0; idx != m_dbTabs->count(); ++idx) { + auto dbWidget = m_dbTabs->databaseWidgetFromIndex(idx); + databaseAdded(dbWidget, false); + } + // connect signals + connect(m_dbTabs, &DatabaseTabWidget::databaseOpened, this, [this](DatabaseWidget* db) { + databaseAdded(db, true); + }); + connect(m_dbTabs, &DatabaseTabWidget::databaseClosed, this, &SettingsDatabaseModel::databaseRemoved); + } + + endResetModel(); + } + + void SettingsDatabaseModel::databaseAdded(DatabaseWidget* db, bool emitSignals) + { + int row = m_dbs.size(); + if (emitSignals) { + beginInsertRows({}, row, row); + } + + m_dbs.append(db); + connect(db, &DatabaseWidget::databaseLocked, this, [row, this]() { + emit dataChanged(index(row, 1), index(row, 2)); + }); + connect(db, &DatabaseWidget::databaseUnlocked, this, [row, this]() { + emit dataChanged(index(row, 1), index(row, 2)); + }); + connect(db, &DatabaseWidget::databaseModified, this, [row, this]() { + emit dataChanged(index(row, 0), index(row, 2)); + }); + connect(db, &DatabaseWidget::databaseFilePathChanged, this, [row, this]() { + emit dataChanged(index(row, 0), index(row, 2)); + }); + + if (emitSignals) { + endInsertRows(); + } + } + + void SettingsDatabaseModel::databaseRemoved(const QString& filePath) + { + for (int i = 0; i != m_dbs.size(); i++) { + if (m_dbs[i] && m_dbs[i]->database()->filePath() == filePath) { + beginRemoveRows({}, i, i); + + m_dbs[i]->disconnect(this); + m_dbs.removeAt(i); + + endRemoveRows(); + break; + } + } + } + + SettingsSessionModel::SettingsSessionModel(FdoSecretsPlugin* plugin, QObject* parent) + : QAbstractTableModel(parent) + , m_service(nullptr) + { + setService(plugin->serviceInstance()); + connect(plugin, &FdoSecretsPlugin::secretServiceStarted, this, [plugin, this]() { + setService(plugin->serviceInstance()); + }); + connect(plugin, &FdoSecretsPlugin::secretServiceStopped, this, [this]() { setService(nullptr); }); + } + + void SettingsSessionModel::setService(Service* service) + { + auto old = m_service; + m_service = service; + if (old != m_service) { + populateModel(); + } + } + + int SettingsSessionModel::rowCount(const QModelIndex& parent) const + { + if (parent.isValid()) { + return 0; + } + return m_sessions.size(); + } + + int SettingsSessionModel::columnCount(const QModelIndex& parent) const + { + if (parent.isValid()) { + return 0; + } + return 2; + } + + QVariant SettingsSessionModel::headerData(int section, Qt::Orientation orientation, int role) const + { + if (orientation != Qt::Horizontal) { + return {}; + } + + if (role != Qt::DisplayRole) { + return {}; + } + + switch (section) { + case 0: + return tr("Application"); + case 1: + return tr("Manage"); + default: + return {}; + } + } + + QVariant SettingsSessionModel::data(const QModelIndex& index, int role) const + { + if (!index.isValid()) { + return {}; + } + const auto& sess = m_sessions[index.row()]; + if (!sess) { + return {}; + } + + switch (index.column()) { + case 0: + return dataForApplication(sess, role); + case 1: + return dataForManage(sess, role); + default: + return {}; + } + } + + QVariant SettingsSessionModel::dataForApplication(Session* sess, int role) const + { + switch (role) { + case Qt::DisplayRole: + return sess->peer(); + default: + return {}; + } + } + + QVariant SettingsSessionModel::dataForManage(Session* sess, int role) const + { + switch (role) { + case Qt::EditRole: { + auto v = QVariant::fromValue(sess); + qDebug() << v << v.type() << v.userType(); + return v; + } + default: + return {}; + } + } + + void SettingsSessionModel::populateModel() + { + beginResetModel(); + + m_sessions.clear(); + + if (m_service) { + // Add existing database tabs + for (const auto& sess : m_service->sessions()) { + sessionAdded(sess, false); + } + + // connect signals + connect(m_service, &Service::sessionOpened, this, [this](Session* sess) { sessionAdded(sess, true); }); + connect(m_service, &Service::sessionClosed, this, &SettingsSessionModel::sessionRemoved); + } + + endResetModel(); + } + + void SettingsSessionModel::sessionAdded(Session* sess, bool emitSignals) + { + int row = m_sessions.size(); + if (emitSignals) { + beginInsertRows({}, row, row); + } + + m_sessions.append(sess); + + if (emitSignals) { + endInsertRows(); + } + } + + void SettingsSessionModel::sessionRemoved(Session* sess) + { + for (int i = 0; i != m_sessions.size(); i++) { + if (m_sessions[i] == sess) { + beginRemoveRows({}, i, i); + + m_sessions[i]->disconnect(this); + m_sessions.removeAt(i); + + endRemoveRows(); + break; + } + } + } + +} // namespace FdoSecrets diff --git a/src/fdosecrets/widgets/SettingsModels.h b/src/fdosecrets/widgets/SettingsModels.h new file mode 100644 index 0000000000..b07bb16374 --- /dev/null +++ b/src/fdosecrets/widgets/SettingsModels.h @@ -0,0 +1,96 @@ +/* + * Copyright (C) 2019 Aetf + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSXC_FDOSECRETS_SETTINGSMODELS_H +#define KEEPASSXC_FDOSECRETS_SETTINGSMODELS_H + +#include +#include + +class DatabaseTabWidget; +class DatabaseWidget; +class FdoSecretsPlugin; + +namespace FdoSecrets +{ + class SettingsDatabaseModel : public QAbstractTableModel + { + Q_OBJECT + public: + explicit SettingsDatabaseModel(DatabaseTabWidget* dbTabs, QObject* parent = nullptr); + + void setTabWidget(DatabaseTabWidget* dbTabs); + + int rowCount(const QModelIndex& parent) const override; + int columnCount(const QModelIndex& parent) const override; + QVariant data(const QModelIndex& index, int role) const override; + QVariant headerData(int section, Qt::Orientation orientation, int role) const override; + + private: + QVariant dataForName(DatabaseWidget* db, int role) const; + static QVariant dataForExposedGroup(DatabaseWidget* db, int role); + QVariant dataForManage(DatabaseWidget* db, int role) const; + + private slots: + void populateModel(); + void databaseAdded(DatabaseWidget* db, bool emitSignals); + void databaseRemoved(const QString& filePath); + + private: + // source + QPointer m_dbTabs; + + // internal store + QList> m_dbs; + }; + + class Service; + class Session; + + class SettingsSessionModel : public QAbstractTableModel + { + Q_OBJECT + public: + explicit SettingsSessionModel(FdoSecretsPlugin* plugin, QObject* parent = nullptr); + + int rowCount(const QModelIndex& parent) const override; + int columnCount(const QModelIndex& parent) const override; + QVariant data(const QModelIndex& index, int role) const override; + QVariant headerData(int section, Qt::Orientation orientation, int role) const override; + + private: + void setService(Service* service); + + QVariant dataForApplication(Session* sess, int role) const; + QVariant dataForManage(Session* sess, int role) const; + + private slots: + void populateModel(); + void sessionAdded(Session* sess, bool emitSignals); + void sessionRemoved(Session* sess); + + private: + // source + QPointer m_service; + + // internal copy, so we can emit with changed index + QList m_sessions; + }; + +} // namespace FdoSecrets + +#endif // KEEPASSXC_FDOSECRETS_SETTINGSMODELS_H diff --git a/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.cpp b/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.cpp index 920b603d99..59399cdec0 100644 --- a/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.cpp +++ b/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.cpp @@ -20,241 +20,273 @@ #include "fdosecrets/FdoSecretsPlugin.h" #include "fdosecrets/FdoSecretsSettings.h" -#include "fdosecrets/objects/Collection.h" -#include "fdosecrets/objects/Prompt.h" #include "fdosecrets/objects/Session.h" +#include "fdosecrets/widgets/SettingsModels.h" -#include "core/DatabaseIcons.h" #include "core/FilePath.h" #include "gui/DatabaseWidget.h" #include -#include -#include #include -#include -#include +#include +#include #include #include -using FdoSecrets::Collection; -using FdoSecrets::Service; using FdoSecrets::Session; +using FdoSecrets::SettingsDatabaseModel; +using FdoSecrets::SettingsSessionModel; -SettingsWidgetFdoSecrets::SettingsWidgetFdoSecrets(FdoSecretsPlugin* plugin, QWidget* parent) - : QWidget(parent) - , m_ui(new Ui::SettingsWidgetFdoSecrets()) - , m_plugin(plugin) +namespace { - m_ui->setupUi(this); + class ManageDatabase : public QToolBar + { + Q_OBJECT + + Q_PROPERTY(DatabaseWidget* dbWidget READ dbWidget WRITE setDbWidget USER true) + + public: + explicit ManageDatabase(FdoSecretsPlugin* plugin, QWidget* parent = nullptr) + : QToolBar(parent) + , m_plugin(plugin) + { + setFloatable(false); + setMovable(false); + + // use a dummy widget to center the buttons + auto spacer = new QWidget(this); + spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + spacer->setVisible(true); + addWidget(spacer); + + // db settings + m_dbSettingsAct = new QAction(tr("Database settings"), this); + m_dbSettingsAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("document-edit"))); + m_dbSettingsAct->setToolTip(tr("Edit database settings")); + m_dbSettingsAct->setEnabled(false); + connect(m_dbSettingsAct, &QAction::triggered, this, [this]() { + if (!m_dbWidget) { + return; + } + auto db = m_dbWidget; + m_plugin->serviceInstance()->doSwitchToChangeDatabaseSettings(m_dbWidget); + }); + addAction(m_dbSettingsAct); + + // unlock/lock + m_lockAct = new QAction(tr("Unlock database"), this); + m_lockAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("object-locked"), false)); + m_lockAct->setToolTip(tr("Unlock database to show more information")); + connect(m_lockAct, &QAction::triggered, this, [this]() { + if (!m_dbWidget) { + return; + } + if (m_dbWidget->isLocked()) { + m_plugin->serviceInstance()->doUnlockDatabaseInDialog(m_dbWidget); + } else { + m_dbWidget->lock(); + } + }); + + addAction(m_lockAct); + + // use a dummy widget to center the buttons + spacer = new QWidget(this); + spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + spacer->setVisible(true); + addWidget(spacer); + } - auto sessHeader = m_ui->tableSessions->horizontalHeader(); - sessHeader->setSelectionMode(QAbstractItemView::NoSelection); - sessHeader->setSectionsClickable(false); - sessHeader->setSectionResizeMode(0, QHeaderView::Stretch); // application - sessHeader->setSectionResizeMode(1, QHeaderView::ResizeToContents); // disconnect button + DatabaseWidget* dbWidget() const + { + return m_dbWidget; + } - auto dbHeader = m_ui->tableDatabases->horizontalHeader(); - dbHeader->setSelectionMode(QAbstractItemView::NoSelection); - dbHeader->setSectionsClickable(false); - dbHeader->setSectionResizeMode(0, QHeaderView::Stretch); // file name - dbHeader->setSectionResizeMode(1, QHeaderView::Stretch); // group - dbHeader->setSectionResizeMode(2, QHeaderView::ResizeToContents); // manage button + void setDbWidget(DatabaseWidget* dbWidget) + { + if (m_dbWidget == dbWidget) { + return; + } - m_ui->tabWidget->setEnabled(m_ui->enableFdoSecretService->isChecked()); - connect(m_ui->enableFdoSecretService, &QCheckBox::toggled, m_ui->tabWidget, &QTabWidget::setEnabled); -} + if (m_dbWidget) { + disconnect(); + } -SettingsWidgetFdoSecrets::~SettingsWidgetFdoSecrets() = default; + m_dbWidget = dbWidget; -void SettingsWidgetFdoSecrets::populateSessions(bool enabled) -{ - m_ui->tableSessions->setRowCount(0); + reconnect(); + } - auto service = m_plugin->serviceInstance(); - if (!service || !enabled) { - return; - } + private: + void disconnect() + { + if (!m_dbWidget) { + return; + } + m_dbWidget->disconnect(this); + } - for (const auto& sess : service->sessions()) { - addSessionRow(sess); - } -} + void reconnect() + { + if (!m_dbWidget) { + return; + } + connect(m_dbWidget, &DatabaseWidget::databaseLocked, this, [this]() { + m_lockAct->setText(tr("Unlock database")); + m_lockAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("object-locked"), false)); + m_lockAct->setToolTip(tr("Unlock database to show more information")); + m_dbSettingsAct->setEnabled(false); + }); + connect(m_dbWidget, &DatabaseWidget::databaseUnlocked, this, [this]() { + m_lockAct->setText(tr("Lock database")); + m_lockAct->setIcon( + filePath()->icon(QStringLiteral("actions"), QStringLiteral("object-unlocked"), false)); + m_lockAct->setToolTip(tr("Lock database")); + m_dbSettingsAct->setEnabled(true); + }); + } -void SettingsWidgetFdoSecrets::addSessionRow(Session* sess) -{ - auto row = m_ui->tableSessions->rowCount(); - m_ui->tableSessions->insertRow(row); + private: + FdoSecretsPlugin* m_plugin = nullptr; + QPointer m_dbWidget = nullptr; + QAction* m_dbSettingsAct = nullptr; + QAction* m_lockAct = nullptr; + }; + + class ManageSession : public QToolBar + { + Q_OBJECT + + Q_PROPERTY(Session* session READ session WRITE setSession USER true) + + public: + explicit ManageSession(FdoSecretsPlugin*, QWidget* parent = nullptr) + : QToolBar(parent) + { + setFloatable(false); + setMovable(false); + + // use a dummy widget to center the buttons + auto spacer = new QWidget(this); + spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + spacer->setVisible(true); + addWidget(spacer); + + m_disconnectAct = new QAction(tr("Disconnect"), this); + m_disconnectAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("dialog-close"))); + m_disconnectAct->setToolTip(tr("Disconnect this application")); + connect(m_disconnectAct, &QAction::triggered, this, [this]() { + if (m_session) { + m_session->close(); + } + }); + addAction(m_disconnectAct); + + // use a dummy widget to center the buttons + spacer = new QWidget(this); + spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + spacer->setVisible(true); + addWidget(spacer); + } - // column 0: application name - auto item = new QTableWidgetItem(sess->peer()); - item->setData(Qt::UserRole, QVariant::fromValue(sess)); - m_ui->tableSessions->setItem(row, 0, item); + Session* session() + { + return m_session; + } - // column 1: disconnect button - auto btn = new QPushButton(tr("Disconnect")); - connect(btn, &QPushButton::clicked, sess, &Session::close); - m_ui->tableSessions->setCellWidget(row, 1, btn); + void setSession(Session* sess) + { + m_session = sess; + } - // column 2: hidden uuid - m_ui->tableSessions->setItem(row, 2, new QTableWidgetItem(sess->id())); -} + private: + Session* m_session = nullptr; + QAction* m_disconnectAct = nullptr; + }; + + template class Creator : public QItemEditorCreatorBase + { + public: + inline explicit Creator(FdoSecretsPlugin* plugin) + : QItemEditorCreatorBase() + , m_plugin(plugin) + , m_propertyName(T::staticMetaObject.userProperty().name()) + { + } -void SettingsWidgetFdoSecrets::removeSessionRow(Session* sess) -{ - int row = 0; - while (row != m_ui->tableSessions->rowCount()) { - auto item = m_ui->tableSessions->item(row, 0); - const auto itemSess = item->data(Qt::UserRole).value(); - if (itemSess == sess) { - break; + inline QWidget* createWidget(QWidget* parent) const override + { + return new T(m_plugin, parent); } - ++row; - } - if (row == m_ui->tableSessions->rowCount()) { - qWarning() << "Unknown Fdo Secret Service session" << sess->id() << "while removing collection from table"; - return; - } - - m_ui->tableSessions->removeRow(row); -} -void SettingsWidgetFdoSecrets::populateDatabases(bool enabled) -{ - m_ui->tableDatabases->setRowCount(0); - - auto service = m_plugin->serviceInstance(); - if (!service || !enabled) { - return; - } - - auto ret = service->collections(); - if (ret.isError()) { - return; - } - for (const auto& coll : ret.value()) { - addDatabaseRow(coll); - } -} + inline QByteArray valuePropertyName() const override + { + return m_propertyName; + } -void SettingsWidgetFdoSecrets::addDatabaseRow(Collection* coll) -{ - auto row = m_ui->tableDatabases->rowCount(); - m_ui->tableDatabases->insertRow(row); - - // column 0: File name - QFileInfo fi(coll->backend()->database()->filePath()); - auto item = new QTableWidgetItem(fi.fileName()); - item->setData(Qt::UserRole, QVariant::fromValue(coll)); - m_ui->tableDatabases->setItem(row, 0, item); - - // column 2: manage button: hboxlayout: unlock/lock settings - // create this first so we have a widget to bind connection to, - // which can then be auto deleted when the row is deleted. - auto widget = createManageButtons(coll); - m_ui->tableDatabases->setCellWidget(row, 2, widget); - - // column 1: Group name - auto itemGroupName = new QTableWidgetItem(); - updateExposedGroupItem(itemGroupName, coll); - - connect(coll, &Collection::collectionLockChanged, widget, [this, itemGroupName, coll](bool) { - updateExposedGroupItem(itemGroupName, coll); - }); - - m_ui->tableDatabases->setItem(row, 1, itemGroupName); -} + private: + FdoSecretsPlugin* m_plugin; + QByteArray m_propertyName; + }; +} // namespace -QWidget* SettingsWidgetFdoSecrets::createManageButtons(Collection* coll) +SettingsWidgetFdoSecrets::SettingsWidgetFdoSecrets(FdoSecretsPlugin* plugin, QWidget* parent) + : QWidget(parent) + , m_ui(new Ui::SettingsWidgetFdoSecrets()) + , m_factory(new QItemEditorFactory) + , m_plugin(plugin) { - auto toolbar = new QToolBar; - toolbar->setFloatable(false); - toolbar->setMovable(false); - - // db settings - auto dbSettingsAct = new QAction(tr("Database settings"), toolbar); - dbSettingsAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("document-edit"))); - dbSettingsAct->setToolTip(tr("Edit database settings")); - dbSettingsAct->setEnabled(!coll->locked().value()); - connect(dbSettingsAct, &QAction::triggered, this, [this, coll]() { - auto db = coll->backend(); - m_plugin->serviceInstance()->doSwitchToChangeDatabaseSettings(db); - }); - toolbar->addAction(dbSettingsAct); - - // unlock/lock - auto lockAct = new QAction(tr("Unlock database"), toolbar); - lockAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("object-locked"), true)); - lockAct->setToolTip(tr("Unlock database to show more information")); - connect(coll, &Collection::collectionLockChanged, lockAct, [lockAct, dbSettingsAct](bool locked) { - if (locked) { - lockAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("object-locked"), true)); - lockAct->setToolTip(tr("Unlock database to show more information")); - } else { - lockAct->setIcon(filePath()->icon(QStringLiteral("actions"), QStringLiteral("object-unlocked"), true)); - lockAct->setToolTip(tr("Lock database")); - } - dbSettingsAct->setEnabled(!locked); - }); - connect(lockAct, &QAction::triggered, this, [coll]() { - if (coll->locked().value()) { - coll->doUnlock(); - } else { - coll->doLock(); - } - }); - toolbar->addAction(lockAct); + m_ui->setupUi(this); - return toolbar; -} + auto sessModel = new SettingsSessionModel(plugin, this); + m_ui->tableSessions->setModel(sessModel); + setupView(m_ui->tableSessions, 1, qMetaTypeId(), new Creator(m_plugin)); + + // config header after setting model, otherwise the header doesn't have enough sections + auto sessViewHeader = m_ui->tableSessions->horizontalHeader(); + sessViewHeader->setSelectionMode(QAbstractItemView::NoSelection); + sessViewHeader->setSectionsClickable(false); + sessViewHeader->setSectionResizeMode(0, QHeaderView::Stretch); // application + sessViewHeader->setSectionResizeMode(1, QHeaderView::ResizeToContents); // disconnect button + + auto dbModel = new SettingsDatabaseModel(plugin->dbTabs(), this); + m_ui->tableDatabases->setModel(dbModel); + setupView(m_ui->tableDatabases, 2, qMetaTypeId(), new Creator(m_plugin)); + + // config header after setting model, otherwise the header doesn't have enough sections + auto dbViewHeader = m_ui->tableDatabases->horizontalHeader(); + dbViewHeader->setSelectionMode(QAbstractItemView::NoSelection); + dbViewHeader->setSectionsClickable(false); + dbViewHeader->setSectionResizeMode(0, QHeaderView::Stretch); // file name + dbViewHeader->setSectionResizeMode(1, QHeaderView::Stretch); // group + dbViewHeader->setSectionResizeMode(2, QHeaderView::ResizeToContents); // manage button -void SettingsWidgetFdoSecrets::updateExposedGroupItem(QTableWidgetItem* item, Collection* coll) -{ - if (coll->locked().value()) { - item->setText(tr("Unlock to show")); - item->setIcon(filePath()->icon(QStringLiteral("apps"), QStringLiteral("object-locked"), true)); - QFont font; - font.setItalic(true); - item->setFont(font); - return; - } - - auto db = coll->backend()->database(); - auto group = db->rootGroup()->findGroupByUuid(FdoSecrets::settings()->exposedGroup(db)); - if (group) { - item->setText(group->name()); - item->setIcon(group->isExpired() ? databaseIcons()->iconPixmap(DatabaseIcons::ExpiredIconIndex) - : group->iconScaledPixmap()); - if (group->isExpired()) { - QFont font; - font.setStrikeOut(true); - item->setFont(font); - } - } else { - item->setText(tr("None")); - item->setIcon(filePath()->icon(QStringLiteral("apps"), QStringLiteral("paint-none"), true)); - } + m_ui->tabWidget->setEnabled(m_ui->enableFdoSecretService->isChecked()); + connect(m_ui->enableFdoSecretService, &QCheckBox::toggled, m_ui->tabWidget, &QTabWidget::setEnabled); } -void SettingsWidgetFdoSecrets::removeDatabaseRow(Collection* coll) +void SettingsWidgetFdoSecrets::setupView(QAbstractItemView* view, + int manageColumn, + int editorTypeId, + QItemEditorCreatorBase* creator) { - int row = 0; - while (row != m_ui->tableDatabases->rowCount()) { - auto item = m_ui->tableDatabases->item(row, 0); - const auto itemColl = item->data(Qt::UserRole).value(); - if (itemColl == coll) { - break; - } - ++row; - } - if (row == m_ui->tableDatabases->rowCount()) { - qWarning() << "Unknown Fdo Secret Service collection" << coll->name() << "while removing collection from table"; - return; - } - - m_ui->tableDatabases->removeRow(row); + auto manageButtonDelegate = new QStyledItemDelegate(this); + m_factory->registerEditor(editorTypeId, creator); + manageButtonDelegate->setItemEditorFactory(m_factory.data()); + view->setItemDelegateForColumn(manageColumn, manageButtonDelegate); + connect(view->model(), + &QAbstractItemModel::rowsInserted, + this, + [view, manageColumn](const QModelIndex&, int first, int last) { + for (int i = first; i <= last; ++i) { + auto idx = view->model()->index(i, manageColumn); + view->openPersistentEditor(idx); + } + }); } +SettingsWidgetFdoSecrets::~SettingsWidgetFdoSecrets() = default; + void SettingsWidgetFdoSecrets::loadSettings() { m_ui->enableFdoSecretService->setChecked(FdoSecrets::settings()->isEnabled()); @@ -269,52 +301,4 @@ void SettingsWidgetFdoSecrets::saveSettings() FdoSecrets::settings()->setNoConfirmDeleteItem(m_ui->noConfirmDeleteItem->isChecked()); } -void SettingsWidgetFdoSecrets::showEvent(QShowEvent* event) -{ - QWidget::showEvent(event); - - QMetaObject::invokeMethod(this, "updateTables", Qt::QueuedConnection, Q_ARG(bool, true)); -} - -void SettingsWidgetFdoSecrets::hideEvent(QHideEvent* event) -{ - QWidget::hideEvent(event); - - QMetaObject::invokeMethod(this, "updateTables", Qt::QueuedConnection, Q_ARG(bool, false)); -} - -void SettingsWidgetFdoSecrets::updateTables(bool enabled) -{ - if (enabled) { - // update the table - populateDatabases(m_ui->enableFdoSecretService->isChecked()); - populateSessions(m_ui->enableFdoSecretService->isChecked()); - - // re-layout the widget to adjust the table cell size - adjustSize(); - - connect(m_ui->enableFdoSecretService, &QCheckBox::toggled, this, &SettingsWidgetFdoSecrets::populateSessions); - connect(m_ui->enableFdoSecretService, &QCheckBox::toggled, this, &SettingsWidgetFdoSecrets::populateDatabases); - - auto service = m_plugin->serviceInstance(); - if (service) { - connect(service, &Service::sessionOpened, this, &SettingsWidgetFdoSecrets::addSessionRow); - connect(service, &Service::sessionClosed, this, &SettingsWidgetFdoSecrets::removeSessionRow); - connect(service, &Service::collectionCreated, this, &SettingsWidgetFdoSecrets::addDatabaseRow); - connect(service, &Service::collectionDeleted, this, &SettingsWidgetFdoSecrets::removeDatabaseRow); - } - } else { - disconnect( - m_ui->enableFdoSecretService, &QCheckBox::toggled, this, &SettingsWidgetFdoSecrets::populateSessions); - disconnect( - m_ui->enableFdoSecretService, &QCheckBox::toggled, this, &SettingsWidgetFdoSecrets::populateDatabases); - - auto service = m_plugin->serviceInstance(); - if (service) { - disconnect(service, &Service::sessionOpened, this, &SettingsWidgetFdoSecrets::addSessionRow); - disconnect(service, &Service::sessionClosed, this, &SettingsWidgetFdoSecrets::removeSessionRow); - disconnect(service, &Service::collectionCreated, this, &SettingsWidgetFdoSecrets::addDatabaseRow); - disconnect(service, &Service::collectionDeleted, this, &SettingsWidgetFdoSecrets::removeDatabaseRow); - } - } -} +#include "SettingsWidgetFdoSecrets.moc" diff --git a/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.h b/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.h index eac1f1e3c8..2bf58f826e 100644 --- a/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.h +++ b/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.h @@ -21,7 +21,9 @@ #include #include -class QTableWidgetItem; +class QAbstractItemView; +class QItemEditorCreatorBase; +class QItemEditorFactory; namespace FdoSecrets { @@ -48,28 +50,12 @@ public slots: void loadSettings(); void saveSettings(); -private slots: - void populateSessions(bool enabled); - void populateDatabases(bool enabled); - void addSessionRow(FdoSecrets::Session* sess); - void removeSessionRow(FdoSecrets::Session* sess); - void addDatabaseRow(FdoSecrets::Collection* coll); - void removeDatabaseRow(FdoSecrets::Collection* coll); - - void updateTables(bool enabled); - -protected: - void showEvent(QShowEvent* event) override; - - void hideEvent(QHideEvent* event) override; - private: - QWidget* createManageButtons(FdoSecrets::Collection* coll); - - void updateExposedGroupItem(QTableWidgetItem* item, FdoSecrets::Collection* coll); + void setupView(QAbstractItemView* view, int manageColumn, int editorTypeId, QItemEditorCreatorBase* creator); private: QScopedPointer m_ui; + QScopedPointer m_factory; FdoSecretsPlugin* m_plugin; }; diff --git a/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.ui b/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.ui index b77e086c9a..660181f5d1 100644 --- a/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.ui +++ b/src/fdosecrets/widgets/SettingsWidgetFdoSecrets.ui @@ -75,7 +75,7 @@ - + Qt::NoFocus @@ -91,21 +91,6 @@ false - - - File Name - - - - - Group - - - - - Manage - - @@ -123,7 +108,7 @@ - + Qt::NoFocus @@ -139,16 +124,6 @@ false - - - Application - - - - - Manage - - diff --git a/src/format/OpVaultReaderSections.cpp b/src/format/OpVaultReaderSections.cpp index 68ad478d3c..4dcf80e480 100644 --- a/src/format/OpVaultReaderSections.cpp +++ b/src/format/OpVaultReaderSections.cpp @@ -83,7 +83,7 @@ void OpVaultReader::fillFromSectionField(Entry* entry, const QString& sectionNam } attrValue = query.toString(QUrl::FullyEncoded); } - entry->attributes()->set(Totp::ATTRIBUTE_SETTINGS, attrValue, true); + entry->setTotp(Totp::parseSettings(attrValue)); } else if (attrName.startsWith("expir", Qt::CaseInsensitive)) { QDateTime expiry; if (kind == "date") { diff --git a/src/gui/DatabaseOpenDialog.cpp b/src/gui/DatabaseOpenDialog.cpp index e7f138f153..620d3652b7 100644 --- a/src/gui/DatabaseOpenDialog.cpp +++ b/src/gui/DatabaseOpenDialog.cpp @@ -51,7 +51,7 @@ void DatabaseOpenDialog::setTargetDatabaseWidget(DatabaseWidget* dbWidget) disconnect(this, nullptr, m_dbWidget, nullptr); } m_dbWidget = dbWidget; - connect(this, SIGNAL(dialogFinished(bool)), dbWidget, SLOT(unlockDatabase(bool))); + connect(this, &DatabaseOpenDialog::dialogFinished, dbWidget, &DatabaseWidget::unlockDatabase); } void DatabaseOpenDialog::setIntent(DatabaseOpenDialog::Intent intent) @@ -90,6 +90,6 @@ void DatabaseOpenDialog::complete(bool accepted) } else { reject(); } - emit dialogFinished(accepted); + emit dialogFinished(accepted, m_dbWidget); clearForms(); } diff --git a/src/gui/DatabaseOpenDialog.h b/src/gui/DatabaseOpenDialog.h index f2860fccb6..30ac4c762e 100644 --- a/src/gui/DatabaseOpenDialog.h +++ b/src/gui/DatabaseOpenDialog.h @@ -50,7 +50,7 @@ class DatabaseOpenDialog : public QDialog void clearForms(); signals: - void dialogFinished(bool); + void dialogFinished(bool accepted, DatabaseWidget* dbWidget); public slots: void complete(bool accepted); diff --git a/src/gui/DatabaseOpenWidget.cpp b/src/gui/DatabaseOpenWidget.cpp index a409aadc36..c610a773d9 100644 --- a/src/gui/DatabaseOpenWidget.cpp +++ b/src/gui/DatabaseOpenWidget.cpp @@ -204,9 +204,14 @@ void DatabaseOpenWidget::openDatabase() m_db.reset(new Database()); QString error; + QApplication::setOverrideCursor(QCursor(Qt::WaitCursor)); + m_ui->passwordFormFrame->setEnabled(false); + QCoreApplication::processEvents(); bool ok = m_db->open(m_filename, masterKey, &error, false); QApplication::restoreOverrideCursor(); + m_ui->passwordFormFrame->setEnabled(true); + if (!ok) { if (m_ui->editPassword->text().isEmpty() && !m_retryUnlockWithEmptyPassword) { QScopedPointer msgBox(new QMessageBox(this)); @@ -370,9 +375,11 @@ void DatabaseOpenWidget::browseKeyFile() QString filename = fileDialog()->getOpenFileName(this, tr("Select key file"), QString(), filters); if (QFileInfo(filename).canonicalFilePath() == QFileInfo(m_filename).canonicalFilePath()) { - MessageBox::warning(this, tr("Cannot use database file as key file"), - tr("You cannot use your database file as a key file.\nIf you do not have a key file, please leave the field empty."), - MessageBox::Button::Ok); + MessageBox::warning(this, + tr("Cannot use database file as key file"), + tr("You cannot use your database file as a key file.\nIf you do not have a key file, " + "please leave the field empty."), + MessageBox::Button::Ok); filename = ""; } diff --git a/src/gui/DatabaseOpenWidget.ui b/src/gui/DatabaseOpenWidget.ui index 14a1337c6e..60b2feadc2 100644 --- a/src/gui/DatabaseOpenWidget.ui +++ b/src/gui/DatabaseOpenWidget.ui @@ -132,7 +132,7 @@ 15 - + 400 diff --git a/src/gui/DatabaseTabWidget.cpp b/src/gui/DatabaseTabWidget.cpp index 9cbfa8fd7b..c37e6c5ea6 100644 --- a/src/gui/DatabaseTabWidget.cpp +++ b/src/gui/DatabaseTabWidget.cpp @@ -63,6 +63,8 @@ DatabaseTabWidget::DatabaseTabWidget(QWidget* parent) connect(autoType(), SIGNAL(globalAutoTypeTriggered()), SLOT(performGlobalAutoType())); connect(autoType(), SIGNAL(autotypePerformed()), SLOT(relockPendingDatabase())); connect(autoType(), SIGNAL(autotypeRejected()), SLOT(relockPendingDatabase())); + connect(m_databaseOpenDialog.data(), &DatabaseOpenDialog::dialogFinished, + this, &DatabaseTabWidget::databaseUnlockDialogFinished); // clang-format on #ifdef Q_OS_MACOS @@ -166,7 +168,8 @@ void DatabaseTabWidget::addDatabaseTab(const QString& filePath, for (int i = 0, c = count(); i < c; ++i) { auto* dbWidget = databaseWidgetFromIndex(i); Q_ASSERT(dbWidget); - if (dbWidget && dbWidget->database()->canonicalFilePath().compare(canonicalFilePath, FILE_CASE_SENSITIVE) == 0) { + if (dbWidget + && dbWidget->database()->canonicalFilePath().compare(canonicalFilePath, FILE_CASE_SENSITIVE) == 0) { dbWidget->performUnlockDatabase(password, keyfile); if (!inBackground) { // switch to existing tab if file is already open diff --git a/src/gui/DatabaseTabWidget.h b/src/gui/DatabaseTabWidget.h index 87e9bbf77a..5c55bc63c7 100644 --- a/src/gui/DatabaseTabWidget.h +++ b/src/gui/DatabaseTabWidget.h @@ -90,6 +90,7 @@ public slots: void tabNameChanged(); void messageGlobal(const QString&, MessageWidget::MessageType type); void messageDismissGlobal(); + void databaseUnlockDialogFinished(bool accepted, DatabaseWidget* dbWidget); private slots: void toggleTabbar(); diff --git a/src/gui/DatabaseWidget.cpp b/src/gui/DatabaseWidget.cpp index 29942571c9..e7b6179fbc 100644 --- a/src/gui/DatabaseWidget.cpp +++ b/src/gui/DatabaseWidget.cpp @@ -275,6 +275,11 @@ bool DatabaseWidget::isEntryEditActive() const return currentWidget() == m_editEntryWidget; } +bool DatabaseWidget::isGroupEditActive() const +{ + return currentWidget() == m_editGroupWidget; +} + bool DatabaseWidget::isEditWidgetModified() const { if (currentWidget() == m_editEntryWidget) { @@ -387,6 +392,8 @@ void DatabaseWidget::createEntry() void DatabaseWidget::replaceDatabase(QSharedPointer db) { + Q_ASSERT(!isEntryEditActive() && !isGroupEditActive()); + // Save off new parent UUID which will be valid when creating a new entry QUuid newParentUuid; if (m_newParent) { @@ -1370,7 +1377,7 @@ bool DatabaseWidget::lock() if (m_db->isModified()) { bool saved = false; // Attempt to save on exit, but don't block locking if it fails - if (config()->get("AutoSaveOnExit").toBool()) { + if (config()->get("AutoSaveOnExit").toBool() || config()->get("AutoSaveAfterEveryChange").toBool()) { saved = save(); } @@ -1421,7 +1428,8 @@ bool DatabaseWidget::lock() void DatabaseWidget::reloadDatabaseFile() { - if (!m_db || isLocked()) { + // Ignore reload if we are locked or currently editing an entry or group + if (!m_db || isLocked() || isEntryEditActive() || isGroupEditActive()) { return; } @@ -1441,6 +1449,11 @@ void DatabaseWidget::reloadDatabaseFile() } } + // Lock out interactions + m_entryView->setDisabled(true); + m_groupView->setDisabled(true); + QApplication::processEvents(); + QString error; auto db = QSharedPointer::create(m_db->filePath()); if (db->open(database()->key(), &error)) { @@ -1480,6 +1493,10 @@ void DatabaseWidget::reloadDatabaseFile() // Mark db as modified since existing data may differ from file or file was deleted m_db->markAsModified(); } + + // Return control + m_entryView->setDisabled(false); + m_groupView->setDisabled(false); } int DatabaseWidget::numberOfSelectedEntries() const @@ -1620,11 +1637,20 @@ bool DatabaseWidget::save() m_blockAutoSave = true; ++m_saveAttempts; - // TODO: Make this async, but lock out the database widget to prevent re-entrance + // TODO: Make this async + // Lock out interactions + m_entryView->setDisabled(true); + m_groupView->setDisabled(true); + QApplication::processEvents(); + bool useAtomicSaves = config()->get("UseAtomicSaves", true).toBool(); QString errorMessage; bool ok = m_db->save(&errorMessage, useAtomicSaves, config()->get("BackupBeforeSave").toBool()); + // Return control + m_entryView->setDisabled(false); + m_groupView->setDisabled(false); + if (ok) { m_saveAttempts = 0; m_blockAutoSave = false; @@ -1744,7 +1770,7 @@ void DatabaseWidget::processAutoOpen() } for (const auto* entry : autoopenGroup->entries()) { - if (entry->url().isEmpty() || entry->password().isEmpty()) { + if (entry->url().isEmpty() || (entry->password().isEmpty() && entry->username().isEmpty())) { continue; } QFileInfo filepath; diff --git a/src/gui/DatabaseWidget.h b/src/gui/DatabaseWidget.h index 6f40c65c58..9f0c5c9765 100644 --- a/src/gui/DatabaseWidget.h +++ b/src/gui/DatabaseWidget.h @@ -81,6 +81,7 @@ class DatabaseWidget : public QStackedWidget bool isLocked() const; bool isSearchActive() const; bool isEntryEditActive() const; + bool isGroupEditActive() const; QString getCurrentSearch(); void refreshSearch(); diff --git a/src/gui/Font.cpp b/src/gui/Font.cpp index f53daed938..021380c298 100644 --- a/src/gui/Font.cpp +++ b/src/gui/Font.cpp @@ -36,6 +36,11 @@ QFont Font::fixedFont() fixedFont = consolasFont; } #endif +#ifdef Q_OS_MACOS + // Qt doesn't choose a monospace font correctly on macOS + const QFont defaultFont; + fixedFont = QFontDatabase().font("Menlo", defaultFont.styleName(), defaultFont.pointSize()); +#endif return fixedFont; } diff --git a/src/gui/MainWindow.cpp b/src/gui/MainWindow.cpp index 0d53d88a85..6452c051bb 100644 --- a/src/gui/MainWindow.cpp +++ b/src/gui/MainWindow.cpp @@ -885,8 +885,8 @@ void MainWindow::switchToPasswordGen(bool enabled) if (enabled) { m_ui->passwordGeneratorWidget->loadSettings(); m_ui->passwordGeneratorWidget->regeneratePassword(); - m_ui->passwordGeneratorWidget->setStandaloneMode(true); m_ui->stackedWidget->setCurrentIndex(PasswordGeneratorScreen); + m_ui->passwordGeneratorWidget->setStandaloneMode(true); } else { m_ui->passwordGeneratorWidget->saveSettings(); switchToDatabases(); diff --git a/src/gui/SearchWidget.cpp b/src/gui/SearchWidget.cpp index 5102d196fe..822d40ba15 100644 --- a/src/gui/SearchWidget.cpp +++ b/src/gui/SearchWidget.cpp @@ -60,7 +60,7 @@ SearchWidget::SearchWidget(QWidget* parent) .arg(QKeySequence(QKeySequence::Find).toString(QKeySequence::NativeText))); m_ui->searchEdit->installEventFilter(this); - m_searchMenu = new QMenu(); + m_searchMenu = new QMenu(this); m_actionCaseSensitive = m_searchMenu->addAction(tr("Case sensitive"), this, SLOT(updateCaseSensitive())); m_actionCaseSensitive->setObjectName("actionSearchCaseSensitive"); m_actionCaseSensitive->setCheckable(true); diff --git a/src/gui/TotpDialog.cpp b/src/gui/TotpDialog.cpp index 3f438e9ae3..639eb0ebde 100644 --- a/src/gui/TotpDialog.cpp +++ b/src/gui/TotpDialog.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 Weslly Honorato <weslly@protonmail.com> + * Copyright (C) 2017 Weslly Honorato * Copyright (C) 2017 KeePassXC Team * * This program is free software: you can redistribute it and/or modify @@ -42,7 +42,7 @@ TotpDialog::TotpDialog(QWidget* parent, Entry* entry) resetCounter(); updateProgressBar(); - connect(parent, SIGNAL(lockedDatabase()), SLOT(close())); + connect(parent, SIGNAL(databaseLocked()), SLOT(close())); connect(&m_totpUpdateTimer, SIGNAL(timeout()), this, SLOT(updateProgressBar())); connect(&m_totpUpdateTimer, SIGNAL(timeout()), this, SLOT(updateSeconds())); m_totpUpdateTimer.start(m_step * 10); diff --git a/src/gui/URLEdit.cpp b/src/gui/URLEdit.cpp new file mode 100644 index 0000000000..4dc2a55c27 --- /dev/null +++ b/src/gui/URLEdit.cpp @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2014 Felix Geyer + * Copyright (C) 2019 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "URLEdit.h" + +#include + +#include "core/Config.h" +#include "core/FilePath.h" +#include "core/Tools.h" +#include "gui/Font.h" + +const QColor URLEdit::ErrorColor = QColor(255, 125, 125); + +URLEdit::URLEdit(QWidget* parent) + : QLineEdit(parent) +{ + const QIcon errorIcon = filePath()->icon("status", "dialog-error"); + m_errorAction = addAction(errorIcon, QLineEdit::TrailingPosition); + m_errorAction->setVisible(false); + m_errorAction->setToolTip(tr("Invalid URL")); + + updateStylesheet(); +} + +void URLEdit::enableVerifyMode() +{ + updateStylesheet(); + + connect(this, SIGNAL(textChanged(QString)), SLOT(updateStylesheet())); +} + +void URLEdit::updateStylesheet() +{ + const QString stylesheetTemplate("QLineEdit { background: %1; }"); + + if (!Tools::checkUrlValid(text())) { + setStyleSheet(stylesheetTemplate.arg(ErrorColor.name())); + m_errorAction->setVisible(true); + } else { + m_errorAction->setVisible(false); + setStyleSheet(""); + } +} diff --git a/src/gui/URLEdit.h b/src/gui/URLEdit.h new file mode 100644 index 0000000000..11b743b41e --- /dev/null +++ b/src/gui/URLEdit.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2014 Felix Geyer + * Copyright (C) 2019 KeePassXC Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 or (at your option) + * version 3 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef KEEPASSX_URLEDIT_H +#define KEEPASSX_URLEDIT_H + +#include +#include +#include + +class URLEdit : public QLineEdit +{ + Q_OBJECT + +public: + static const QColor ErrorColor; + + explicit URLEdit(QWidget* parent = nullptr); + void enableVerifyMode(); + +private slots: + void updateStylesheet(); + +private: + QPointer m_errorAction; +}; + +#endif // KEEPASSX_URLEDIT_H diff --git a/src/gui/dbsettings/DatabaseSettingsWidget.cpp b/src/gui/dbsettings/DatabaseSettingsWidget.cpp index 224c4e5655..c7f7f400df 100644 --- a/src/gui/dbsettings/DatabaseSettingsWidget.cpp +++ b/src/gui/dbsettings/DatabaseSettingsWidget.cpp @@ -48,4 +48,3 @@ const QSharedPointer DatabaseSettingsWidget::getDatabase() const { return m_db; } - diff --git a/src/gui/entry/EditEntryWidget.cpp b/src/gui/entry/EditEntryWidget.cpp index 3fa75e3b8e..02b9f3a59c 100644 --- a/src/gui/entry/EditEntryWidget.cpp +++ b/src/gui/entry/EditEntryWidget.cpp @@ -167,6 +167,7 @@ void EditEntryWidget::setupMain() #ifdef WITH_XC_NETWORKING connect(m_mainUi->fetchFaviconButton, SIGNAL(clicked()), m_iconsWidget, SLOT(downloadFavicon())); connect(m_mainUi->urlEdit, SIGNAL(textChanged(QString)), m_iconsWidget, SLOT(setUrl(QString))); + m_mainUi->urlEdit->enableVerifyMode(); #endif connect(m_mainUi->expireCheck, SIGNAL(toggled(bool)), m_mainUi->expireDatePicker, SLOT(setEnabled(bool))); connect(m_mainUi->notesEnabled, SIGNAL(toggled(bool)), this, SLOT(toggleHideNotes(bool))); @@ -201,7 +202,7 @@ void EditEntryWidget::setupAdvanced() connect(m_advancedUi->editAttributeButton, SIGNAL(clicked()), SLOT(editCurrentAttribute())); connect(m_advancedUi->removeAttributeButton, SIGNAL(clicked()), SLOT(removeCurrentAttribute())); connect(m_advancedUi->protectAttributeButton, SIGNAL(toggled(bool)), SLOT(protectCurrentAttribute(bool))); - connect(m_advancedUi->revealAttributeButton, SIGNAL(clicked(bool)), SLOT(revealCurrentAttribute())); + connect(m_advancedUi->revealAttributeButton, SIGNAL(clicked(bool)), SLOT(toggleCurrentAttributeVisibility())); connect(m_advancedUi->attributesView->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)), SLOT(updateCurrentAttribute())); @@ -271,9 +272,14 @@ void EditEntryWidget::setupBrowser() m_additionalURLsDataModel->setEntryAttributes(m_entryAttributes); m_browserUi->additionalURLsView->setModel(m_additionalURLsDataModel); + // Use a custom item delegate to align the icon to the right side + auto iconDelegate = new URLModelIconDelegate(m_browserUi->additionalURLsView); + m_browserUi->additionalURLsView->setItemDelegate(iconDelegate); + // clang-format off connect(m_browserUi->skipAutoSubmitCheckbox, SIGNAL(toggled(bool)), SLOT(updateBrowserModified())); connect(m_browserUi->hideEntryCheckbox, SIGNAL(toggled(bool)), SLOT(updateBrowserModified())); + connect(m_browserUi->onlyHttpAuthCheckbox, SIGNAL(toggled(bool)), SLOT(updateBrowserModified())); connect(m_browserUi->addURLButton, SIGNAL(clicked()), SLOT(insertURL())); connect(m_browserUi->removeURLButton, SIGNAL(clicked()), SLOT(removeCurrentURL())); connect(m_browserUi->editURLButton, SIGNAL(clicked()), SLOT(editCurrentURL())); @@ -300,8 +306,10 @@ void EditEntryWidget::updateBrowser() auto skip = m_browserUi->skipAutoSubmitCheckbox->isChecked(); auto hide = m_browserUi->hideEntryCheckbox->isChecked(); - m_customData->set(BrowserService::OPTION_SKIP_AUTO_SUBMIT, (skip ? QString("true") : QString("false"))); - m_customData->set(BrowserService::OPTION_HIDE_ENTRY, (hide ? QString("true") : QString("false"))); + auto onlyHttpAuth = m_browserUi->onlyHttpAuthCheckbox->isChecked(); + m_customData->set(BrowserService::OPTION_SKIP_AUTO_SUBMIT, (skip ? TRUE_STR : FALSE_STR)); + m_customData->set(BrowserService::OPTION_HIDE_ENTRY, (hide ? TRUE_STR : FALSE_STR)); + m_customData->set(BrowserService::OPTION_ONLY_HTTP_AUTH, (onlyHttpAuth ? TRUE_STR : FALSE_STR)); } void EditEntryWidget::insertURL() @@ -465,6 +473,7 @@ void EditEntryWidget::setupEntryUpdate() if (config()->get("Browser/Enabled", false).toBool()) { connect(m_browserUi->skipAutoSubmitCheckbox, SIGNAL(toggled(bool)), SLOT(setModified())); connect(m_browserUi->hideEntryCheckbox, SIGNAL(toggled(bool)), SLOT(setModified())); + connect(m_browserUi->onlyHttpAuthCheckbox, SIGNAL(toggled(bool)), SLOT(setModified())); connect(m_browserUi->addURLButton, SIGNAL(toggled(bool)), SLOT(setModified())); connect(m_browserUi->removeURLButton, SIGNAL(toggled(bool)), SLOT(setModified())); connect(m_browserUi->editURLButton, SIGNAL(toggled(bool)), SLOT(setModified())); @@ -959,18 +968,25 @@ void EditEntryWidget::setForms(Entry* entry, bool restore) #ifdef WITH_XC_BROWSER if (m_customData->contains(BrowserService::OPTION_SKIP_AUTO_SUBMIT)) { // clang-format off - m_browserUi->skipAutoSubmitCheckbox->setChecked(m_customData->value(BrowserService::OPTION_SKIP_AUTO_SUBMIT) == "true"); + m_browserUi->skipAutoSubmitCheckbox->setChecked(m_customData->value(BrowserService::OPTION_SKIP_AUTO_SUBMIT) == TRUE_STR); // clang-format on } else { m_browserUi->skipAutoSubmitCheckbox->setChecked(false); } if (m_customData->contains(BrowserService::OPTION_HIDE_ENTRY)) { - m_browserUi->hideEntryCheckbox->setChecked(m_customData->value(BrowserService::OPTION_HIDE_ENTRY) == "true"); + m_browserUi->hideEntryCheckbox->setChecked(m_customData->value(BrowserService::OPTION_HIDE_ENTRY) == TRUE_STR); } else { m_browserUi->hideEntryCheckbox->setChecked(false); } + if (m_customData->contains(BrowserService::OPTION_ONLY_HTTP_AUTH)) { + m_browserUi->onlyHttpAuthCheckbox->setChecked(m_customData->value(BrowserService::OPTION_ONLY_HTTP_AUTH) + == TRUE_STR); + } else { + m_browserUi->onlyHttpAuthCheckbox->setChecked(false); + } + m_browserUi->addURLButton->setEnabled(!m_history); m_browserUi->removeURLButton->setEnabled(false); m_browserUi->editURLButton->setEnabled(false); @@ -1297,6 +1313,7 @@ void EditEntryWidget::displayAttribute(QModelIndex index, bool showProtected) // Block signals to prevent modified being set m_advancedUi->protectAttributeButton->blockSignals(true); m_advancedUi->attributesEdit->blockSignals(true); + m_advancedUi->revealAttributeButton->setText(tr("Reveal")); if (index.isValid()) { QString key = m_attributesModel->keyByIndex(index); @@ -1348,7 +1365,7 @@ void EditEntryWidget::protectCurrentAttribute(bool state) } } -void EditEntryWidget::revealCurrentAttribute() +void EditEntryWidget::toggleCurrentAttributeVisibility() { if (!m_advancedUi->attributesEdit->isEnabled()) { QModelIndex index = m_advancedUi->attributesView->currentIndex(); @@ -1359,6 +1376,10 @@ void EditEntryWidget::revealCurrentAttribute() m_advancedUi->attributesEdit->setEnabled(true); m_advancedUi->attributesEdit->blockSignals(oldBlockSignals); } + m_advancedUi->revealAttributeButton->setText(tr("Hide")); + } else { + protectCurrentAttribute(true); + m_advancedUi->revealAttributeButton->setText(tr("Reveal")); } } diff --git a/src/gui/entry/EditEntryWidget.h b/src/gui/entry/EditEntryWidget.h index 39b5fc5d96..300220cd0b 100644 --- a/src/gui/entry/EditEntryWidget.h +++ b/src/gui/entry/EditEntryWidget.h @@ -93,7 +93,7 @@ private slots: void removeCurrentAttribute(); void updateCurrentAttribute(); void protectCurrentAttribute(bool state); - void revealCurrentAttribute(); + void toggleCurrentAttributeVisibility(); void updateAutoTypeEnabled(); void openAutotypeHelp(); void insertAutoTypeAssoc(); diff --git a/src/gui/entry/EditEntryWidgetBrowser.ui b/src/gui/entry/EditEntryWidgetBrowser.ui index 4d0d29cf72..9d1e0f5117 100644 --- a/src/gui/entry/EditEntryWidgetBrowser.ui +++ b/src/gui/entry/EditEntryWidgetBrowser.ui @@ -50,6 +50,16 @@ + + + + Only send this setting to the browser for HTTP Auth dialogs. If enabled, normal login forms will not show this entry for selection. + + + Use this entry only with HTTP Basic Auth + + + @@ -130,6 +140,7 @@ skipAutoSubmitCheckbox hideEntryCheckbox + onlyHttpAuthCheckbox additionalURLsView addURLButton removeURLButton diff --git a/src/gui/entry/EditEntryWidgetMain.ui b/src/gui/entry/EditEntryWidgetMain.ui index 255cd0ab2f..54140fcd9f 100644 --- a/src/gui/entry/EditEntryWidgetMain.ui +++ b/src/gui/entry/EditEntryWidgetMain.ui @@ -30,7 +30,7 @@ - + Url field @@ -256,6 +256,12 @@
    gui/PasswordEdit.h
    1 + + URLEdit + QLineEdit +
    gui/URLEdit.h
    + 1 +
    titleEdit diff --git a/src/gui/entry/EntryURLModel.cpp b/src/gui/entry/EntryURLModel.cpp index 3667c78f0c..3e6fb839c9 100644 --- a/src/gui/entry/EntryURLModel.cpp +++ b/src/gui/entry/EntryURLModel.cpp @@ -19,6 +19,7 @@ #include "EntryURLModel.h" #include "core/Entry.h" +#include "core/FilePath.h" #include "core/Tools.h" #include @@ -26,6 +27,7 @@ EntryURLModel::EntryURLModel(QObject* parent) : QStandardItemModel(parent) , m_entryAttributes(nullptr) + , m_errorIcon(filePath()->icon("status", "dialog-error")) { } @@ -53,6 +55,33 @@ void EntryURLModel::setEntryAttributes(EntryAttributes* entryAttributes) endResetModel(); } +QVariant EntryURLModel::data(const QModelIndex& index, int role) const +{ + if (!index.isValid()) { + return {}; + } + + const auto key = keyByIndex(index); + if (key.isEmpty()) { + return {}; + } + + const auto value = m_entryAttributes->value(key); + const auto urlValid = Tools::checkUrlValid(value); + + if (role == Qt::BackgroundRole && !urlValid) { + return QColor(255, 125, 125); + } else if (role == Qt::DecorationRole && !urlValid) { + return m_errorIcon; + } else if (role == Qt::DisplayRole || role == Qt::EditRole) { + return value; + } else if (role == Qt::ToolTipRole && !urlValid) { + return tr("Invalid URL"); + } + + return {}; +} + bool EntryURLModel::setData(const QModelIndex& index, const QVariant& value, int role) { if (!index.isValid() || role != Qt::EditRole || value.type() != QVariant::String || value.toString().isEmpty()) { diff --git a/src/gui/entry/EntryURLModel.h b/src/gui/entry/EntryURLModel.h index 09344d92af..f9ffa48288 100644 --- a/src/gui/entry/EntryURLModel.h +++ b/src/gui/entry/EntryURLModel.h @@ -20,9 +20,23 @@ #define KEEPASSXC_ENTRYURLMODEL_H #include +#include class EntryAttributes; +class URLModelIconDelegate : public QStyledItemDelegate +{ +public: + using QStyledItemDelegate::QStyledItemDelegate; + +protected: + void initStyleOption(QStyleOptionViewItem* option, const QModelIndex& index) const override + { + QStyledItemDelegate::initStyleOption(option, index); + option->decorationPosition = QStyleOptionViewItem::Right; + } +}; + class EntryURLModel : public QStandardItemModel { Q_OBJECT @@ -32,6 +46,7 @@ class EntryURLModel : public QStandardItemModel void setEntryAttributes(EntryAttributes* entryAttributes); void insertRow(const QString& key, const QString& value); bool setData(const QModelIndex& index, const QVariant& value, int role = Qt::EditRole) override; + QVariant data(const QModelIndex& index, int role) const override; QModelIndex indexByKey(const QString& key) const; QString keyByIndex(const QModelIndex& index) const; @@ -41,6 +56,7 @@ private slots: private: QList> m_urls; EntryAttributes* m_entryAttributes; + QIcon m_errorIcon; }; #endif // KEEPASSXC_ENTRYURLMODEL_H diff --git a/src/gui/macutils/AppKitImpl.mm b/src/gui/macutils/AppKitImpl.mm index 44137ee7f8..4a93f963a9 100644 --- a/src/gui/macutils/AppKitImpl.mm +++ b/src/gui/macutils/AppKitImpl.mm @@ -20,11 +20,6 @@ #import #import -#import - -#if __MAC_OS_X_VERSION_MAX_ALLOWED < 101200 -static const NSEventMask NSEventMaskKeyDown = NSKeyDownMask; -#endif @implementation AppKitImpl diff --git a/src/gui/masterkey/KeyFileEditWidget.h b/src/gui/masterkey/KeyFileEditWidget.h index 7d5868e88a..dd414e133f 100644 --- a/src/gui/masterkey/KeyFileEditWidget.h +++ b/src/gui/masterkey/KeyFileEditWidget.h @@ -32,7 +32,6 @@ class KeyFileEditWidget : public KeyComponentWidget { Q_OBJECT - public: explicit KeyFileEditWidget(DatabaseSettingsWidget* parent); Q_DISABLE_COPY(KeyFileEditWidget); diff --git a/src/gui/masterkey/PasswordEditWidget.cpp b/src/gui/masterkey/PasswordEditWidget.cpp index b27248d34b..9353cbe7a2 100644 --- a/src/gui/masterkey/PasswordEditWidget.cpp +++ b/src/gui/masterkey/PasswordEditWidget.cpp @@ -95,8 +95,6 @@ void PasswordEditWidget::initComponentEditWidget(QWidget* widget) void PasswordEditWidget::hideEvent(QHideEvent* event) { - Q_ASSERT(m_compUi->enterPasswordEdit); - if (!isVisible() && m_compUi->enterPasswordEdit) { m_compUi->enterPasswordEdit->setText(""); m_compUi->repeatPasswordEdit->setText(""); diff --git a/src/gui/widgets/ElidedLabel.cpp b/src/gui/widgets/ElidedLabel.cpp index bc27717640..749f075c8d 100644 --- a/src/gui/widgets/ElidedLabel.cpp +++ b/src/gui/widgets/ElidedLabel.cpp @@ -105,8 +105,10 @@ void ElidedLabel::updateElidedText() const QFontMetrics metrix(font()); displayText = metrix.elidedText(m_rawText, m_elideMode, width() - 2); } - setText(m_url.isEmpty() ? displayText : htmlLinkTemplate.arg(m_url, displayText)); - setOpenExternalLinks(!m_url.isEmpty()); + + bool hasUrl = !m_url.isEmpty(); + setText(hasUrl ? htmlLinkTemplate.arg(m_url.toHtmlEscaped(), displayText) : displayText); + setOpenExternalLinks(!hasUrl); } void ElidedLabel::resizeEvent(QResizeEvent* event) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 9aac1b7d8e..1c0e5f7ed6 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -164,7 +164,7 @@ endif() if(WITH_XC_CRYPTO_SSH) add_unit_test(NAME testopensshkey SOURCES TestOpenSSHKey.cpp - LIBS ${TEST_LIBRARIES}) + LIBS ${TEST_LIBRARIES}) endif() add_unit_test(NAME testentry SOURCES TestEntry.cpp @@ -192,7 +192,7 @@ add_unit_test(NAME testcsvparser SOURCES TestCsvParser.cpp LIBS ${TEST_LIBRARIES}) add_unit_test(NAME testrandomgenerator SOURCES TestRandomGenerator.cpp - LIBS testsupport ${TEST_LIBRARIES}) + LIBS testsupport ${TEST_LIBRARIES}) add_unit_test(NAME testentrysearcher SOURCES TestEntrySearcher.cpp LIBS ${TEST_LIBRARIES}) @@ -206,7 +206,7 @@ add_unit_test(NAME testykchallengeresponsekey if(WITH_XC_KEESHARE) add_unit_test(NAME testsharing SOURCES TestSharing.cpp - LIBS testsupport ${TEST_LIBRARIES}) + LIBS testsupport ${TEST_LIBRARIES}) endif() add_unit_test(NAME testdatabase SOURCES TestDatabase.cpp diff --git a/tests/TestBrowser.cpp b/tests/TestBrowser.cpp index bb3318d07a..8da2a28964 100644 --- a/tests/TestBrowser.cpp +++ b/tests/TestBrowser.cpp @@ -18,6 +18,7 @@ #include "TestBrowser.h" #include "TestGlobal.h" #include "browser/BrowserSettings.h" +#include "core/Tools.h" #include "crypto/Crypto.h" #include "sodium/crypto_box.h" #include @@ -56,7 +57,7 @@ void TestBrowser::testChangePublicKeys() auto response = m_browserAction->handleAction(json); QCOMPARE(response["action"].toString(), QString("change-public-keys")); QCOMPARE(response["publicKey"].toString() == PUBLICKEY, false); - QCOMPARE(response["success"].toString(), QString("true")); + QCOMPARE(response["success"].toString(), TRUE_STR); } void TestBrowser::testEncryptMessage() @@ -179,29 +180,22 @@ void TestBrowser::testSearchEntries() auto db = QSharedPointer::create(); auto* root = db->rootGroup(); - QList urls; - urls.push_back("https://github.com/login_page"); - urls.push_back("https://github.com/login"); - urls.push_back("https://github.com/"); - urls.push_back("github.com/login"); - urls.push_back("http://github.com"); - urls.push_back("http://github.com/login"); - urls.push_back("github.com"); - urls.push_back("github.com/login"); - urls.push_back("https://github"); // Invalid URL - urls.push_back("github.com"); + QStringList urls = {"https://github.com/login_page", + "https://github.com/login", + "https://github.com/", + "github.com/login", + "http://github.com", + "http://github.com/login", + "github.com", + "github.com/login", + "https://github", // Invalid URL + "github.com"}; - for (int i = 0; i < urls.length(); ++i) { - auto entry = new Entry(); - entry->setGroup(root); - entry->beginUpdate(); - entry->setUrl(urls[i]); - entry->setUsername(QString("User %1").arg(i)); - entry->endUpdate(); - } + createEntries(urls, root); browserSettings()->setMatchUrlScheme(false); - auto result = m_browserService->searchEntries(db, "github.com", "https://github.com"); // db, hostname, url + auto result = + m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); // db, url, submitUrl QCOMPARE(result.length(), 9); QCOMPARE(result[0]->url(), QString("https://github.com/login_page")); @@ -213,7 +207,7 @@ void TestBrowser::testSearchEntries() // With matching there should be only 3 results + 4 without a scheme browserSettings()->setMatchUrlScheme(true); - result = m_browserService->searchEntries(db, "github.com", "https://github.com"); // db, hostname, url + result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); QCOMPARE(result.length(), 7); QCOMPARE(result[0]->url(), QString("https://github.com/login_page")); QCOMPARE(result[1]->url(), QString("https://github.com/login")); @@ -226,22 +220,13 @@ void TestBrowser::testSearchEntriesWithPort() auto db = QSharedPointer::create(); auto* root = db->rootGroup(); - QList urls; - urls.push_back("http://127.0.0.1:443"); - urls.push_back("http://127.0.0.1:80"); + QStringList urls = {"http://127.0.0.1:443", "http://127.0.0.1:80"}; - for (int i = 0; i < urls.length(); ++i) { - auto entry = new Entry(); - entry->setGroup(root); - entry->beginUpdate(); - entry->setUrl(urls[i]); - entry->setUsername(QString("User %1").arg(i)); - entry->endUpdate(); - } + createEntries(urls, root); - auto result = m_browserService->searchEntries(db, "127.0.0.1", "http://127.0.0.1:443"); // db, hostname, url + auto result = m_browserService->searchEntries(db, "http://127.0.0.1:443", "http://127.0.0.1"); QCOMPARE(result.length(), 1); - QCOMPARE(result[0]->url(), urls[0]); + QCOMPARE(result[0]->url(), QString("http://127.0.0.1:443")); } void TestBrowser::testSearchEntriesWithAdditionalURLs() @@ -249,70 +234,55 @@ void TestBrowser::testSearchEntriesWithAdditionalURLs() auto db = QSharedPointer::create(); auto* root = db->rootGroup(); - QList entries; - QList urls; - urls.push_back("https://github.com/"); - urls.push_back("https://www.example.com"); - urls.push_back("http://domain.com"); + QStringList urls = {"https://github.com/", "https://www.example.com", "http://domain.com"}; - for (int i = 0; i < urls.length(); ++i) { - auto entry = new Entry(); - entry->setGroup(root); - entry->beginUpdate(); - entry->setUrl(urls[i]); - entry->setUsername(QString("User %1").arg(i)); - entry->endUpdate(); - entries.push_back(entry); - } + auto entries = createEntries(urls, root); // Add an additional URL to the first entry entries.first()->attributes()->set(BrowserService::ADDITIONAL_URL, "https://keepassxc.org"); - auto result = m_browserService->searchEntries(db, "github.com", "https://github.com"); // db, hostname, url + auto result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); QCOMPARE(result.length(), 1); - QCOMPARE(result[0]->url(), urls[0]); + QCOMPARE(result[0]->url(), QString("https://github.com/")); // Search the additional URL. It should return the same entry - auto additionalResult = m_browserService->searchEntries(db, "keepassxc.org", "https://keepassxc.org"); + auto additionalResult = m_browserService->searchEntries(db, "https://keepassxc.org", "https://keepassxc.org"); QCOMPARE(additionalResult.length(), 1); - QCOMPARE(additionalResult[0]->url(), urls[0]); + QCOMPARE(additionalResult[0]->url(), QString("https://github.com/")); } void TestBrowser::testInvalidEntries() { auto db = QSharedPointer::create(); auto* root = db->rootGroup(); + const QString url("https://github.com"); + const QString submitUrl("https://github.com/session"); - QList urls; - urls.push_back("https://github.com/login"); - urls.push_back("https:///github.com/"); // Extra '/' - urls.push_back("http://github.com/**//*"); - urls.push_back("http://*.github.com/login"); - urls.push_back("//github.com"); // fromUserInput() corrects this one. - urls.push_back("github.com/{}<>"); + QStringList urls = { + "https://github.com/login", + "https:///github.com/", // Extra '/' + "http://github.com/**//*", + "http://*.github.com/login", + "//github.com", // fromUserInput() corrects this one. + "github.com/{}<>", + "http:/example.com", + }; - for (int i = 0; i < urls.length(); ++i) { - auto entry = new Entry(); - entry->setGroup(root); - entry->beginUpdate(); - entry->setUrl(urls[i]); - entry->setUsername(QString("User %1").arg(i)); - entry->endUpdate(); - } + createEntries(urls, root); browserSettings()->setMatchUrlScheme(true); - auto result = m_browserService->searchEntries(db, "github.com", "https://github.com"); // db, hostname, url + auto result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); QCOMPARE(result.length(), 2); QCOMPARE(result[0]->url(), QString("https://github.com/login")); QCOMPARE(result[1]->url(), QString("//github.com")); // Test the URL's directly - QCOMPARE(m_browserService->handleURL(urls[0], "github.com", "https://github.com"), true); - QCOMPARE(m_browserService->handleURL(urls[1], "github.com", "https://github.com"), false); - QCOMPARE(m_browserService->handleURL(urls[2], "github.com", "https://github.com"), false); - QCOMPARE(m_browserService->handleURL(urls[3], "github.com", "https://github.com"), false); - QCOMPARE(m_browserService->handleURL(urls[4], "github.com", "https://github.com"), true); - QCOMPARE(m_browserService->handleURL(urls[5], "github.com", "https://github.com"), false); + QCOMPARE(m_browserService->handleURL(urls[0], url, submitUrl), true); + QCOMPARE(m_browserService->handleURL(urls[1], url, submitUrl), false); + QCOMPARE(m_browserService->handleURL(urls[2], url, submitUrl), false); + QCOMPARE(m_browserService->handleURL(urls[3], url, submitUrl), false); + QCOMPARE(m_browserService->handleURL(urls[4], url, submitUrl), true); + QCOMPARE(m_browserService->handleURL(urls[5], url, submitUrl), false); } void TestBrowser::testSubdomainsAndPaths() @@ -320,44 +290,74 @@ void TestBrowser::testSubdomainsAndPaths() auto db = QSharedPointer::create(); auto* root = db->rootGroup(); - QList urls; - urls.push_back("https://www.github.com/login/page.xml"); - urls.push_back("https://login.github.com/"); - urls.push_back("https://github.com"); - urls.push_back("http://www.github.com"); - urls.push_back("http://login.github.com/pathtonowhere"); - urls.push_back(".github.com"); // Invalid URL - urls.push_back("www.github.com/"); - urls.push_back("https://github"); // Invalid URL + QStringList urls = { + "https://www.github.com/login/page.xml", + "https://login.github.com/", + "https://github.com", + "http://www.github.com", + "http://login.github.com/pathtonowhere", + ".github.com", // Invalid URL + "www.github.com/", + "https://github" // Invalid URL + }; - for (int i = 0; i < urls.length(); ++i) { - auto entry = new Entry(); - entry->setGroup(root); - entry->beginUpdate(); - entry->setUrl(urls[i]); - entry->setUsername(QString("User %1").arg(i)); - entry->endUpdate(); - } + createEntries(urls, root); browserSettings()->setMatchUrlScheme(false); - auto result = m_browserService->searchEntries(db, "github.com", "https://github.com"); // db, hostname, url + auto result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); + QCOMPARE(result.length(), 1); + QCOMPARE(result[0]->url(), QString("https://github.com")); - QCOMPARE(result.length(), 6); - QCOMPARE(result[0]->url(), urls[0]); - QCOMPARE(result[1]->url(), urls[1]); - QCOMPARE(result[2]->url(), urls[2]); - QCOMPARE(result[3]->url(), urls[3]); - QCOMPARE(result[4]->url(), urls[4]); - QCOMPARE(result[5]->url(), urls[6]); + // With www subdomain + result = m_browserService->searchEntries(db, "https://www.github.com", "https://www.github.com/session"); + QCOMPARE(result.length(), 4); + QCOMPARE(result[0]->url(), QString("https://www.github.com/login/page.xml")); + QCOMPARE(result[1]->url(), QString("https://github.com")); // Accepts any subdomain + QCOMPARE(result[2]->url(), QString("http://www.github.com")); + QCOMPARE(result[3]->url(), QString("www.github.com/")); - // With matching there should be only 3 results + // With scheme matching there should be only 1 result browserSettings()->setMatchUrlScheme(true); - result = m_browserService->searchEntries(db, "github.com", "https://github.com"); // db, hostname, url + result = m_browserService->searchEntries(db, "https://github.com", "https://github.com/session"); + QCOMPARE(result.length(), 1); + QCOMPARE(result[0]->url(), QString("https://github.com")); + + // Test site with subdomain in the site URL + QStringList entryURLs = { + "https://accounts.example.com", + "https://accounts.example.com/path", + "https://subdomain.example.com/", + "https://another.accounts.example.com/", + "https://another.subdomain.example.com/", + "https://example.com/", + "https://example" // Invalid URL + }; + + createEntries(entryURLs, root); + + result = m_browserService->searchEntries(db, "https://accounts.example.com", "https://accounts.example.com"); + QCOMPARE(result.length(), 3); + QCOMPARE(result[0]->url(), QString("https://accounts.example.com")); + QCOMPARE(result[1]->url(), QString("https://accounts.example.com/path")); + QCOMPARE(result[2]->url(), QString("https://example.com/")); // Accepts any subdomain + + result = m_browserService->searchEntries( + db, "https://another.accounts.example.com", "https://another.accounts.example.com"); QCOMPARE(result.length(), 4); - QCOMPARE(result[0]->url(), urls[0]); - QCOMPARE(result[1]->url(), urls[1]); - QCOMPARE(result[2]->url(), urls[2]); - QCOMPARE(result[3]->url(), urls[6]); + QCOMPARE(result[0]->url(), + QString("https://accounts.example.com")); // Accepts any subdomain under accounts.example.com + QCOMPARE(result[1]->url(), QString("https://accounts.example.com/path")); + QCOMPARE(result[2]->url(), QString("https://another.accounts.example.com/")); + QCOMPARE(result[3]->url(), QString("https://example.com/")); // Accepts one or more subdomains + + // Test local files. It should be a direct match. + QStringList localFiles = {"file:///Users/testUser/tests/test.html"}; + + createEntries(localFiles, root); + + // With local files, url is always set to the file scheme + ://. Submit URL holds the actual URL. + result = m_browserService->searchEntries(db, "file://", "file:///Users/testUser/tests/test.html"); + QCOMPARE(result.length(), 1); } void TestBrowser::testSortEntries() @@ -365,28 +365,18 @@ void TestBrowser::testSortEntries() auto db = QSharedPointer::create(); auto* root = db->rootGroup(); - QList urls; - urls.push_back("https://github.com/login_page"); - urls.push_back("https://github.com/login"); - urls.push_back("https://github.com/"); - urls.push_back("github.com/login"); - urls.push_back("http://github.com"); - urls.push_back("http://github.com/login"); - urls.push_back("github.com"); - urls.push_back("github.com/login"); - urls.push_back("https://github"); // Invalid URL - urls.push_back("github.com"); + QStringList urls = {"https://github.com/login_page", + "https://github.com/login", + "https://github.com/", + "github.com/login", + "http://github.com", + "http://github.com/login", + "github.com", + "github.com/login", + "https://github", // Invalid URL + "github.com"}; - QList entries; - for (int i = 0; i < urls.length(); ++i) { - auto entry = new Entry(); - entry->setGroup(root); - entry->beginUpdate(); - entry->setUrl(urls[i]); - entry->setUsername(QString("User %1").arg(i)); - entry->endUpdate(); - entries.push_back(entry); - } + auto entries = createEntries(urls, root); browserSettings()->setBestMatchOnly(false); auto result = @@ -400,7 +390,6 @@ void TestBrowser::testSortEntries() QCOMPARE(result[2]->url(), QString("https://github.com/login")); QCOMPARE(result[3]->username(), QString("User 3")); QCOMPARE(result[3]->url(), QString("github.com/login")); - } void TestBrowser::testGetDatabaseGroups() @@ -458,3 +447,38 @@ void TestBrowser::testGetDatabaseGroups() auto lastChild = lastChildren.at(0); QCOMPARE(lastChild.toObject()["name"].toString(), QString("group2_1_1")); } + +QList TestBrowser::createEntries(QStringList& urls, Group* root) const +{ + QList entries; + for (int i = 0; i < urls.length(); ++i) { + auto entry = new Entry(); + entry->setGroup(root); + entry->beginUpdate(); + entry->setUrl(urls[i]); + entry->setUsername(QString("User %1").arg(i)); + entry->endUpdate(); + entries.push_back(entry); + } + + return entries; +} +void TestBrowser::testValidURLs() +{ + QHash urls; + urls["https://github.com/login"] = true; + urls["https:///github.com/"] = false; + urls["http://github.com/**//*"] = false; + urls["http://*.github.com/login"] = false; + urls["//github.com"] = true; + urls["github.com/{}<>"] = false; + urls["http:/example.com"] = false; + urls["cmd://C:/Toolchains/msys2/usr/bin/mintty \"ssh jon@192.168.0.1:22\""] = true; + urls["file:///Users/testUser/Code/test.html"] = true; + + QHashIterator i(urls); + while (i.hasNext()) { + i.next(); + QCOMPARE(Tools::checkUrlValid(i.key()), i.value()); + } +} diff --git a/tests/TestBrowser.h b/tests/TestBrowser.h index 981c1642d1..69ba693095 100644 --- a/tests/TestBrowser.h +++ b/tests/TestBrowser.h @@ -47,8 +47,11 @@ private slots: void testSubdomainsAndPaths(); void testSortEntries(); void testGetDatabaseGroups(); + void testValidURLs(); private: + QList createEntries(QStringList& urls, Group* root) const; + QScopedPointer m_browserAction; QScopedPointer m_browserService; }; diff --git a/tests/TestCli.cpp b/tests/TestCli.cpp index 8a9ab50cea..076f7f74ed 100644 --- a/tests/TestCli.cpp +++ b/tests/TestCli.cpp @@ -23,13 +23,13 @@ #include "core/Global.h" #include "core/Tools.h" #include "crypto/Crypto.h" -#include "keys/drivers/YubiKey.h" #include "format/Kdbx3Reader.h" #include "format/Kdbx3Writer.h" #include "format/Kdbx4Reader.h" #include "format/Kdbx4Writer.h" #include "format/KdbxXmlReader.h" #include "format/KeePass2.h" +#include "keys/drivers/YubiKey.h" #include "cli/Add.h" #include "cli/AddGroup.h" @@ -1422,6 +1422,107 @@ void TestCli::testMerge() QCOMPARE(m_stdoutFile->readAll(), QByteArray("")); } +void TestCli::testMergeWithKeys() +{ + Create createCmd; + QVERIFY(!createCmd.name.isEmpty()); + QVERIFY(createCmd.getDescriptionLine().contains(createCmd.name)); + + Merge mergeCmd; + QVERIFY(!mergeCmd.name.isEmpty()); + QVERIFY(mergeCmd.getDescriptionLine().contains(mergeCmd.name)); + + Kdbx4Writer writer; + Kdbx4Reader reader; + + QScopedPointer testDir(new QTemporaryDir()); + + QString sourceDatabaseFilename = testDir->path() + "/testSourceDatabase.kdbx"; + QString sourceKeyfilePath = testDir->path() + "/testSourceKeyfile.txt"; + + QString targetDatabaseFilename = testDir->path() + "/testTargetDatabase.kdbx"; + QString targetKeyfilePath = testDir->path() + "/testTargetKeyfile.txt"; + + qint64 pos = m_stdoutFile->pos(); + + Utils::Test::setNextPassword("a"); + createCmd.execute({"create", sourceDatabaseFilename, "-k", sourceKeyfilePath}); + + Utils::Test::setNextPassword("b"); + createCmd.execute({"create", targetDatabaseFilename, "-k", targetKeyfilePath}); + + Utils::Test::setNextPassword("a"); + auto sourceDatabase = QSharedPointer( + Utils::unlockDatabase(sourceDatabaseFilename, true, sourceKeyfilePath, "", Utils::STDOUT)); + QVERIFY(sourceDatabase); + + Utils::Test::setNextPassword("b"); + auto targetDatabase = QSharedPointer( + Utils::unlockDatabase(targetDatabaseFilename, true, targetKeyfilePath, "", Utils::STDOUT)); + QVERIFY(targetDatabase); + + auto* rootGroup = new Group(); + rootGroup->setName("root"); + rootGroup->setUuid(QUuid::createUuid()); + auto* group = new Group(); + group->setUuid(QUuid::createUuid()); + group->setParent(rootGroup); + group->setName("Internet"); + + auto* entry = new Entry(); + entry->setUuid(QUuid::createUuid()); + entry->setTitle("Some Website"); + entry->setPassword("secretsecretsecret"); + group->addEntry(entry); + + sourceDatabase->setRootGroup(rootGroup); + + auto* otherRootGroup = new Group(); + otherRootGroup->setName("root"); + otherRootGroup->setUuid(QUuid::createUuid()); + auto* otherGroup = new Group(); + otherGroup->setUuid(QUuid::createUuid()); + otherGroup->setParent(otherRootGroup); + otherGroup->setName("Internet"); + + auto* otherEntry = new Entry(); + otherEntry->setUuid(QUuid::createUuid()); + otherEntry->setTitle("Some Website 2"); + otherEntry->setPassword("secretsecretsecret 2"); + otherGroup->addEntry(otherEntry); + + targetDatabase->setRootGroup(otherRootGroup); + + QFile sourceDatabaseFile(sourceDatabaseFilename); + sourceDatabaseFile.open(QIODevice::WriteOnly); + QVERIFY(writer.writeDatabase(&sourceDatabaseFile, sourceDatabase.data())); + sourceDatabaseFile.flush(); + sourceDatabaseFile.close(); + + QFile targetDatabaseFile(targetDatabaseFilename); + targetDatabaseFile.open(QIODevice::WriteOnly); + QVERIFY(writer.writeDatabase(&targetDatabaseFile, targetDatabase.data())); + targetDatabaseFile.flush(); + targetDatabaseFile.close(); + + pos = m_stdoutFile->pos(); + Utils::Test::setNextPassword("b"); + Utils::Test::setNextPassword("a"); + mergeCmd.execute({"merge", + "-k", + targetKeyfilePath, + "--key-file-from", + sourceKeyfilePath, + targetDatabaseFile.fileName(), + sourceDatabaseFile.fileName()}); + + m_stdoutFile->seek(pos); + QList lines = m_stdoutFile->readAll().split('\n'); + QVERIFY(lines.contains(QString("Successfully merged %1 into %2.") + .arg(sourceDatabaseFile.fileName(), targetDatabaseFile.fileName()) + .toUtf8())); +} + void TestCli::testMove() { Move moveCmd; diff --git a/tests/TestCli.h b/tests/TestCli.h index bd0f9fc3fe..4947ee472b 100644 --- a/tests/TestCli.h +++ b/tests/TestCli.h @@ -66,6 +66,7 @@ private slots: void testList(); void testLocate(); void testMerge(); + void testMergeWithKeys(); void testMove(); void testOpen(); void testRemove(); diff --git a/tests/TestFdoSecrets.cpp b/tests/TestFdoSecrets.cpp index 6994f60abf..299c3f7bfc 100644 --- a/tests/TestFdoSecrets.cpp +++ b/tests/TestFdoSecrets.cpp @@ -21,9 +21,9 @@ #include "core/EntrySearcher.h" #include "fdosecrets/GcryptMPI.h" -#include "fdosecrets/objects/SessionCipher.h" #include "fdosecrets/objects/Collection.h" #include "fdosecrets/objects/Item.h" +#include "fdosecrets/objects/SessionCipher.h" #include "crypto/Crypto.h" @@ -96,8 +96,8 @@ void TestFdoSecrets::testDhIetf1024Sha256Aes128CbcPkcs7() void TestFdoSecrets::testCrazyAttributeKey() { - using FdoSecrets::Item; using FdoSecrets::Collection; + using FdoSecrets::Item; const QScopedPointer root(new Group()); const QScopedPointer e1(new Entry()); @@ -112,3 +112,35 @@ void TestFdoSecrets::testCrazyAttributeKey() const auto res = EntrySearcher().search({term}, root.data()); QCOMPARE(res.count(), 1); } + +void TestFdoSecrets::testSpecialCharsInAttributeValue() +{ + using FdoSecrets::Collection; + using FdoSecrets::Item; + + const QScopedPointer root(new Group()); + QScopedPointer e1(new Entry()); + e1->setGroup(root.data()); + + e1->setTitle("titleA"); + e1->attributes()->set("testAttribute", "OAuth::[test.name@gmail.com]"); + + QScopedPointer e2(new Entry()); + e2->setGroup(root.data()); + e2->setTitle("titleB"); + e2->attributes()->set("testAttribute", "Abc:*+.-"); + + // search for custom entries via programatic API + { + const auto term = Collection::attributeToTerm("testAttribute", "OAuth::[test.name@gmail.com]"); + const auto res = EntrySearcher().search({term}, root.data()); + QCOMPARE(res.count(), 1); + QCOMPARE(res[0]->title(), QStringLiteral("titleA")); + } + { + const auto term = Collection::attributeToTerm("testAttribute", "Abc:*+.-"); + const auto res = EntrySearcher().search({term}, root.data()); + QCOMPARE(res.count(), 1); + QCOMPARE(res[0]->title(), QStringLiteral("titleB")); + } +} diff --git a/tests/TestFdoSecrets.h b/tests/TestFdoSecrets.h index e108a81b9e..1cecbbeacb 100644 --- a/tests/TestFdoSecrets.h +++ b/tests/TestFdoSecrets.h @@ -31,6 +31,7 @@ private slots: void testGcryptMPI(); void testDhIetf1024Sha256Aes128CbcPkcs7(); void testCrazyAttributeKey(); + void testSpecialCharsInAttributeValue(); }; #endif // KEEPASSXC_TESTFDOSECRETS_H diff --git a/tests/TestGroup.cpp b/tests/TestGroup.cpp index 9fc39dc64e..47a917e436 100644 --- a/tests/TestGroup.cpp +++ b/tests/TestGroup.cpp @@ -20,6 +20,7 @@ #include "TestGlobal.h" #include "mock/MockClock.h" +#include #include #include "core/Metadata.h" @@ -798,16 +799,16 @@ void TestGroup::testAddEntryWithPath() void TestGroup::testIsRecycled() { - Database* db = new Database(); - db->metadata()->setRecycleBinEnabled(true); + Database db; + db.metadata()->setRecycleBinEnabled(true); Group* group1 = new Group(); group1->setName("group1"); - group1->setParent(db->rootGroup()); + group1->setParent(db.rootGroup()); Group* group2 = new Group(); group2->setName("group2"); - group2->setParent(db->rootGroup()); + group2->setParent(db.rootGroup()); Group* group3 = new Group(); group3->setName("group3"); @@ -815,16 +816,16 @@ void TestGroup::testIsRecycled() Group* group4 = new Group(); group4->setName("group4"); - group4->setParent(db->rootGroup()); + group4->setParent(db.rootGroup()); - db->recycleGroup(group2); + db.recycleGroup(group2); QVERIFY(!group1->isRecycled()); QVERIFY(group2->isRecycled()); QVERIFY(group3->isRecycled()); QVERIFY(!group4->isRecycled()); - db->recycleGroup(group4); + db.recycleGroup(group4); QVERIFY(group4->isRecycled()); } @@ -1052,12 +1053,12 @@ void TestGroup::testChildrenSort() void TestGroup::testHierarchy() { - Group* group1 = new Group(); - group1->setName("group1"); + Group group1; + group1.setName("group1"); Group* group2 = new Group(); group2->setName("group2"); - group2->setParent(group1); + group2->setParent(&group1); Group* group3 = new Group(); group3->setName("group3"); @@ -1085,11 +1086,11 @@ void TestGroup::testHierarchy() void TestGroup::testApplyGroupIconRecursively() { // Create a database with two nested groups with one entry each - Database* database = new Database(); + Database database; Group* subgroup = new Group(); subgroup->setName("Subgroup"); - subgroup->setParent(database->rootGroup()); + subgroup->setParent(database.rootGroup()); QVERIFY(subgroup); Group* subsubgroup = new Group(); @@ -1108,10 +1109,10 @@ void TestGroup::testApplyGroupIconRecursively() // Set an icon per number to the root group and apply recursively // -> all groups and entries have the same icon const int rootIconNumber = 42; - database->rootGroup()->setIcon(rootIconNumber); - QVERIFY(database->rootGroup()->iconNumber() == rootIconNumber); - database->rootGroup()->applyGroupIconToChildGroups(); - database->rootGroup()->applyGroupIconToChildEntries(); + database.rootGroup()->setIcon(rootIconNumber); + QVERIFY(database.rootGroup()->iconNumber() == rootIconNumber); + database.rootGroup()->applyGroupIconToChildGroups(); + database.rootGroup()->applyGroupIconToChildEntries(); QVERIFY(subgroup->iconNumber() == rootIconNumber); QVERIFY(subgroupEntry->iconNumber() == rootIconNumber); QVERIFY(subsubgroup->iconNumber() == rootIconNumber); @@ -1124,7 +1125,7 @@ void TestGroup::testApplyGroupIconRecursively() QVERIFY(subsubgroup->iconNumber() == subsubgroupIconNumber); subsubgroup->applyGroupIconToChildGroups(); subsubgroup->applyGroupIconToChildEntries(); - QVERIFY(database->rootGroup()->iconNumber() == rootIconNumber); + QVERIFY(database.rootGroup()->iconNumber() == rootIconNumber); QVERIFY(subgroup->iconNumber() == rootIconNumber); QVERIFY(subgroupEntry->iconNumber() == rootIconNumber); QVERIFY(subsubgroup->iconNumber() == subsubgroupIconNumber); @@ -1135,11 +1136,11 @@ void TestGroup::testApplyGroupIconRecursively() const QUuid subgroupIconUuid = QUuid::createUuid(); QImage subgroupIcon(16, 16, QImage::Format_RGB32); subgroupIcon.setPixel(0, 0, qRgb(255, 0, 0)); - database->metadata()->addCustomIcon(subgroupIconUuid, subgroupIcon); + database.metadata()->addCustomIcon(subgroupIconUuid, subgroupIcon); subgroup->setIcon(subgroupIconUuid); subgroup->applyGroupIconToChildGroups(); subgroup->applyGroupIconToChildEntries(); - QVERIFY(database->rootGroup()->iconNumber() == rootIconNumber); + QVERIFY(database.rootGroup()->iconNumber() == rootIconNumber); QCOMPARE(subgroup->iconUuid(), subgroupIconUuid); QCOMPARE(subgroup->icon(), subgroupIcon); QCOMPARE(subgroupEntry->iconUuid(), subgroupIconUuid); @@ -1150,10 +1151,10 @@ void TestGroup::testApplyGroupIconRecursively() QCOMPARE(subsubgroupEntry->icon(), subgroupIcon); // Reset all icons to root icon - database->rootGroup()->setIcon(rootIconNumber); - QVERIFY(database->rootGroup()->iconNumber() == rootIconNumber); - database->rootGroup()->applyGroupIconToChildGroups(); - database->rootGroup()->applyGroupIconToChildEntries(); + database.rootGroup()->setIcon(rootIconNumber); + QVERIFY(database.rootGroup()->iconNumber() == rootIconNumber); + database.rootGroup()->applyGroupIconToChildGroups(); + database.rootGroup()->applyGroupIconToChildEntries(); QVERIFY(subgroup->iconNumber() == rootIconNumber); QVERIFY(subgroupEntry->iconNumber() == rootIconNumber); QVERIFY(subsubgroup->iconNumber() == rootIconNumber); @@ -1161,10 +1162,10 @@ void TestGroup::testApplyGroupIconRecursively() // Apply only for child groups const int iconForGroups = 10; - database->rootGroup()->setIcon(iconForGroups); - QVERIFY(database->rootGroup()->iconNumber() == iconForGroups); - database->rootGroup()->applyGroupIconToChildGroups(); - QVERIFY(database->rootGroup()->iconNumber() == iconForGroups); + database.rootGroup()->setIcon(iconForGroups); + QVERIFY(database.rootGroup()->iconNumber() == iconForGroups); + database.rootGroup()->applyGroupIconToChildGroups(); + QVERIFY(database.rootGroup()->iconNumber() == iconForGroups); QVERIFY(subgroup->iconNumber() == iconForGroups); QVERIFY(subgroupEntry->iconNumber() == rootIconNumber); QVERIFY(subsubgroup->iconNumber() == iconForGroups); @@ -1172,10 +1173,10 @@ void TestGroup::testApplyGroupIconRecursively() // Apply only for child entries const int iconForEntries = 20; - database->rootGroup()->setIcon(iconForEntries); - QVERIFY(database->rootGroup()->iconNumber() == iconForEntries); - database->rootGroup()->applyGroupIconToChildEntries(); - QVERIFY(database->rootGroup()->iconNumber() == iconForEntries); + database.rootGroup()->setIcon(iconForEntries); + QVERIFY(database.rootGroup()->iconNumber() == iconForEntries); + database.rootGroup()->applyGroupIconToChildEntries(); + QVERIFY(database.rootGroup()->iconNumber() == iconForEntries); QVERIFY(subgroup->iconNumber() == iconForGroups); QVERIFY(subgroupEntry->iconNumber() == iconForEntries); QVERIFY(subsubgroup->iconNumber() == iconForGroups); @@ -1184,15 +1185,15 @@ void TestGroup::testApplyGroupIconRecursively() void TestGroup::testUsernamesRecursive() { - Database* database = new Database(); + Database database; // Create a subgroup Group* subgroup = new Group(); subgroup->setName("Subgroup"); - subgroup->setParent(database->rootGroup()); + subgroup->setParent(database.rootGroup()); // Generate entries in the root group and the subgroup - Entry* rootGroupEntry = database->rootGroup()->addEntryWithPath("Root group entry"); + Entry* rootGroupEntry = database.rootGroup()->addEntryWithPath("Root group entry"); rootGroupEntry->setUsername("Name1"); Entry* subgroupEntry = subgroup->addEntryWithPath("Subgroup entry"); @@ -1201,7 +1202,7 @@ void TestGroup::testUsernamesRecursive() Entry* subgroupEntryReusingUsername = subgroup->addEntryWithPath("Another subgroup entry"); subgroupEntryReusingUsername->setUsername("Name2"); - QList usernames = database->rootGroup()->usernamesRecursive(); + QList usernames = database.rootGroup()->usernamesRecursive(); QCOMPARE(usernames.size(), 2); QVERIFY(usernames.contains("Name1")); QVERIFY(usernames.contains("Name2")); diff --git a/tests/TestOpVaultReader.cpp b/tests/TestOpVaultReader.cpp index af332fd322..15f30f2c96 100644 --- a/tests/TestOpVaultReader.cpp +++ b/tests/TestOpVaultReader.cpp @@ -49,24 +49,24 @@ QPair* split1PTextExportKV(QByteArray& line) return new QPair(k, v); } -QJsonArray* read1PasswordTextExport(QFile& f) +QSharedPointer read1PasswordTextExport(QFile& f) { - auto result = new QJsonArray; - auto current = new QJsonObject; - if (!f.open(QIODevice::ReadOnly)) { qCritical("Unable to open your text export file for reading"); - return nullptr; + return {}; } + auto result = QSharedPointer::create(); + QJsonObject current; + while (!f.atEnd()) { auto line = f.readLine(1024); if (line.size() == 1 and line[0] == '\n') { - if (!current->isEmpty()) { - result->append(*current); + if (!current.isEmpty()) { + result->append(current); } - current = new QJsonObject; + current = QJsonObject(); continue; } const auto kv = split1PTextExportKV(line); @@ -95,14 +95,14 @@ QJsonArray* read1PasswordTextExport(QFile& f) } } auto v = lines.join(""); - (*current)[k] = v; + current[k] = v; } else { - (*current)[k] = kv->second; + current[k] = kv->second; } delete kv; } - if (!current->isEmpty()) { - result->append(*current); + if (!current.isEmpty()) { + result->append(current); } f.close(); @@ -120,10 +120,9 @@ void TestOpVaultReader::initTestCase() m_password = "freddy"; QFile testData(m_opVaultTextExportPath); - QJsonArray* data = read1PasswordTextExport(testData); + auto data = read1PasswordTextExport(testData); QVERIFY(data); QCOMPARE(data->size(), 27); - delete data; m_categoryMap.insert("001", "Login"); m_categoryMap.insert("002", "Credit Card"); @@ -149,9 +148,9 @@ void TestOpVaultReader::testReadIntoDatabase() { QDir opVaultDir(m_opVaultPath); - auto reader = new OpVaultReader(); - auto db = reader->readDatabase(opVaultDir, m_password); - QVERIFY2(!reader->hasError(), qPrintable(reader->errorString())); + OpVaultReader reader; + QScopedPointer db(reader.readDatabase(opVaultDir, m_password)); + QVERIFY2(!reader.hasError(), qPrintable(reader.errorString())); QVERIFY(db); QVERIFY(!db->children().isEmpty()); @@ -179,7 +178,6 @@ void TestOpVaultReader::testReadIntoDatabase() QUuid u = Tools::hexToUuid(value["uuid"].toString()); objectsByUuid[u] = value; } - delete testData; QCOMPARE(objectsByUuid.size(), 27); for (QUuid u : objectsByUuid.keys()) { @@ -240,11 +238,11 @@ void TestOpVaultReader::testKeyDerivation() void TestOpVaultReader::testBandEntry1() { - auto reader = new OpVaultReader(); + OpVaultReader reader; QByteArray json(R"({"hello": "world"})"); QJsonDocument doc = QJsonDocument::fromJson(json); QJsonObject data; QByteArray entryKey; QByteArray entryHmacKey; - QVERIFY(!reader->decryptBandEntry(doc.object(), data, entryKey, entryHmacKey)); + QVERIFY(!reader.decryptBandEntry(doc.object(), data, entryKey, entryHmacKey)); } diff --git a/tests/gui/TestGui.cpp b/tests/gui/TestGui.cpp index 2a0bef4831..48b5c73515 100644 --- a/tests/gui/TestGui.cpp +++ b/tests/gui/TestGui.cpp @@ -79,6 +79,10 @@ static QString dbFileName = QStringLiteral(KEEPASSX_TEST_DATA_DIR).append("/NewD void TestGui::initTestCase() { + Application::setApplicationName("KeePassXC"); + Application::setApplicationVersion(KEEPASSXC_VERSION); + QApplication::setQuitOnLastWindowClosed(false); + QVERIFY(Crypto::init()); Config::createTempFileInstance(); // Disable autosave so we can test the modified file indicator @@ -91,11 +95,12 @@ void TestGui::initTestCase() // Disable the update check first time alert config()->set("UpdateCheckMessageShown", true); - m_mainWindow.reset(new MainWindow()); - Bootstrap::restoreMainWindowState(*m_mainWindow); Bootstrap::bootstrapApplication(); + + m_mainWindow.reset(new MainWindow()); m_tabWidget = m_mainWindow->findChild("tabWidget"); m_mainWindow->show(); + m_mainWindow->resize(1024, 768); } // Every test starts with opening the temp database @@ -176,7 +181,7 @@ void TestGui::testSettingsDefaultTabOrder() void TestGui::testCreateDatabase() { - QTimer::singleShot(0, this, SLOT(createDatabaseCallback())); + QTimer::singleShot(50, this, SLOT(createDatabaseCallback())); triggerAction("actionDatabaseNew"); // there is a new empty db @@ -1435,8 +1440,9 @@ int TestGui::addCannedEntries() void TestGui::checkDatabase(QString dbFileName) { - if (dbFileName.isEmpty()) + if (dbFileName.isEmpty()) { dbFileName = m_dbFilePath; + } auto key = QSharedPointer::create(); key->addKey(QSharedPointer::create("a")); diff --git a/tests/util/TemporaryFile.cpp b/tests/util/TemporaryFile.cpp index 19622faedf..3b1e3a589c 100644 --- a/tests/util/TemporaryFile.cpp +++ b/tests/util/TemporaryFile.cpp @@ -71,7 +71,7 @@ bool TemporaryFile::copyFromFile(const QString& otherFileName) } QByteArray data; - while(!(data = otherFile.read(1024)).isEmpty()) { + while (!(data = otherFile.read(1024)).isEmpty()) { write(data); }