Release 2.3.1

- Fix unnecessary automatic upgrade to KDBX 4.0 and prevent challenge-response key being stripped [#1568]
- Abort saving and show an error message when challenge-response fails [#1659]
- Support inner stream protection on all string attributes [#1646]
- Fix favicon downloads not finishing on some websites [#1657]
- Fix freeze due to invalid STDIN data [#1628]
- Correct issue with encrypted RSA SSH keys [#1587]
- Fix crash on macOS due to QTBUG-54832 [#1607]
- Show error message if ssh-agent communication fails [#1614]
- Fix --pw-stdin and filename parameters being ignored [#1608]
- Fix Auto-Type syntax check not allowing spaces and special characters [#1626]
- Fix reference placeholders in combination with Auto-Type [#1649]
- Fix qtbase translations not being loaded [#1611]
- Fix startup crash on Windows due to missing SVG libraries [#1662]
- Correct database tab order regression [#1610]
- Fix GCC 8 compilation error [#1612]
- Fix copying of advanced attributes on KDE [#1640]
- Fix member initialization of CategoryListWidgetDelegate [#1613]
- Fix inconsistent toolbar icon sizes and provide higher-quality icons [#1616]
- Improve preview panel geometry [#1609]
This commit is contained in:
Janek Bevendorff 2018-03-06 22:54:58 +01:00
commit 2fcaeeaec8
No known key found for this signature in database
GPG Key ID: 2FDEB0D40BCA5E11
132 changed files with 7063 additions and 2380 deletions

View File

@ -1,3 +1,26 @@
2.3.1 (2018-03-06)
=========================
- Fix unnecessary automatic upgrade to KDBX 4.0 and prevent challenge-response key being stripped [#1568]
- Abort saving and show an error message when challenge-response fails [#1659]
- Support inner stream protection on all string attributes [#1646]
- Fix favicon downloads not finishing on some websites [#1657]
- Fix freeze due to invalid STDIN data [#1628]
- Correct issue with encrypted RSA SSH keys [#1587]
- Fix crash on macOS due to QTBUG-54832 [#1607]
- Show error message if ssh-agent communication fails [#1614]
- Fix --pw-stdin and filename parameters being ignored [#1608]
- Fix Auto-Type syntax check not allowing spaces and special characters [#1626]
- Fix reference placeholders in combination with Auto-Type [#1649]
- Fix qtbase translations not being loaded [#1611]
- Fix startup crash on Windows due to missing SVG libraries [#1662]
- Correct database tab order regression [#1610]
- Fix GCC 8 compilation error [#1612]
- Fix copying of advanced attributes on KDE [#1640]
- Fix member initialization of CategoryListWidgetDelegate [#1613]
- Fix inconsistent toolbar icon sizes and provide higher-quality icons [#1616]
- Improve preview panel geometry [#1609]
2.3.0 (2018-02-27)
=========================

View File

@ -70,7 +70,7 @@ set(CMAKE_AUTOUIC ON)
set(KEEPASSXC_VERSION_MAJOR "2")
set(KEEPASSXC_VERSION_MINOR "3")
set(KEEPASSXC_VERSION_PATCH "0")
set(KEEPASSXC_VERSION_PATCH "1")
set(KEEPASSXC_VERSION "${KEEPASSXC_VERSION_MAJOR}.${KEEPASSXC_VERSION_MINOR}.${KEEPASSXC_VERSION_PATCH}")
set(KEEPASSXC_BUILD_TYPE "Snapshot" CACHE STRING "Set KeePassXC build type to distinguish between stable releases and snapshots")
@ -80,7 +80,9 @@ set_property(CACHE KEEPASSXC_BUILD_TYPE PROPERTY STRINGS Snapshot Release PreRel
execute_process(COMMAND git tag --points-at HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG)
if(NOT GIT_TAG AND EXISTS ${CMAKE_SOURCE_DIR}/.version)
if(GIT_TAG)
set(OVERRIDE_VERSION ${GIT_TAG})
elseif(EXISTS ${CMAKE_SOURCE_DIR}/.version)
file(READ ${CMAKE_SOURCE_DIR}/.version OVERRIDE_VERSION)
endif()
@ -155,11 +157,15 @@ if(WITH_APP_BUNDLE)
endif()
add_gcc_compiler_flags("-fno-common")
add_gcc_compiler_flags("-Wall -Werror -Wextra -Wundef -Wpointer-arith -Wno-long-long")
add_gcc_compiler_flags("-Wall -Wextra -Wundef -Wpointer-arith -Wno-long-long")
add_gcc_compiler_flags("-Wformat=2 -Wmissing-format-attribute")
add_gcc_compiler_flags("-fvisibility=hidden")
add_gcc_compiler_cxxflags("-fvisibility-inlines-hidden")
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
add_gcc_compiler_flags("-Werror")
endif()
if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.8.999) OR CMAKE_COMPILER_IS_CLANGXX)
add_gcc_compiler_flags("-fstack-protector-strong")
else()

View File

@ -21,7 +21,9 @@ if (MINGW)
message(STATUS "Patching libargon2...\n")
execute_process(COMMAND objcopy
--redefine-sym argon2_hash=libargon2_argon2_hash
--redefine-sym _argon2_hash=_libargon2_argon2_hash
--redefine-sym argon2_error_message=libargon2_argon2_error_message
--redefine-sym _argon2_error_message=_libargon2_argon2_error_message
${ARGON2_SYS_LIBRARIES} ${CMAKE_BINARY_DIR}/libargon2_patched.a
WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
find_library(ARGON2_LIBRARIES libargon2_patched.a PATHS ${CMAKE_BINARY_DIR} NO_DEFAULT_PATH)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 957 B

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 352 B

After

Width:  |  Height:  |  Size: 478 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 670 B

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 900 B

After

Width:  |  Height:  |  Size: 821 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 787 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 421 B

After

Width:  |  Height:  |  Size: 574 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 966 B

After

Width:  |  Height:  |  Size: 994 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 559 B

After

Width:  |  Height:  |  Size: 1022 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -1,65 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
viewBox="0 0 16 16"
version="1.1"
id="svg6"
sodipodi:docname="tab-close.svg"
inkscape:version="0.92.1 r">
<metadata
id="metadata10">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="791"
inkscape:window-height="480"
id="namedview8"
showgrid="false"
inkscape:zoom="14.75"
inkscape:cx="8"
inkscape:cy="8"
inkscape:window-x="1301"
inkscape:window-y="443"
inkscape:window-maximized="0"
inkscape:current-layer="svg6" />
<defs
id="defs3051">
<style
type="text/css"
id="current-color-scheme">
.ColorScheme-Text {
color:#f2f2f2;
}
.ColorScheme-NegativeText {
color:#da4453;
}
</style>
</defs>
<path
style="fill:#ffffff;fill-opacity:1;stroke:none"
class="ColorScheme-NegativeText"
d="M 8,2 A 6,6 0 0 0 2,8 6,6 0 0 0 8,14 6,6 0 0 0 14,8 6,6 0 0 0 8,2 Z M 5.70703,5 8,7.29297 10.29297,5 11,5.70703 8.70703,8 11,10.29297 10.29297,11 8,8.70703 5.70703,11 5,10.29297 7.29297,8 5,5.70703 5.70703,5 Z"
id="path4" />
</svg>

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -50,6 +50,31 @@
</screenshots>
<releases>
<release version="2.3.1" date="2018-03-06">
<description>
<ul>
<li>Fix unnecessary automatic upgrade to KDBX 4.0 and prevent challenge-response key being stripped [#1568]</li>
<li>Abort saving and show an error message when challenge-response fails [#1659]</li>
<li>Support inner stream protection on all string attributes [#1646]</li>
<li>Fix favicon downloads not finishing on some websites [#1657]</li>
<li>Fix freeze due to invalid STDIN data [#1628]</li>
<li>Correct issue with encrypted RSA SSH keys [#1587]</li>
<li>Fix crash on macOS due to QTBUG-54832 [#1607]</li>
<li>Show error message if ssh-agent communication fails [#1614]</li>
<li>Fix --pw-stdin and filename parameters being ignored [#1608]</li>
<li>Fix Auto-Type syntax check not allowing spaces and special characters [#1626]</li>
<li>Fix reference placeholders in combination with Auto-Type [#1649]</li>
<li>Fix qtbase translations not being loaded [#1611]</li>
<li>Fix startup crash on Windows due to missing SVG libraries [#1662]</li>
<li>Correct database tab order regression [#1610]</li>
<li>Fix GCC 8 compilation error [#1612]</li>
<li>Fix copying of advanced attributes on KDE [#1640]</li>
<li>Fix member initialization of CategoryListWidgetDelegate [#1613]</li>
<li>Fix inconsistent toolbar icon sizes and provide higher-quality icons [#1616]</li>
<li>Improve preview panel geometry [#1609]</li>
</ul>
</description>
</release>
<release version="2.3.0" date="2018-02-27">
<description>
<ul>

View File

@ -272,7 +272,7 @@ Please select whether you want to allow access.</source>
</message>
<message>
<source>Only returns the best matches for a specific URL instead of all entries for the whole domain.</source>
<translation type="unfinished"/>
<translation>لا تعرض سوى أفضل التطابقات للرابط المحدد بدلًا من جميع الإدخالات للنطاق بأكمله.</translation>
</message>
<message>
<source>&amp;Return only best-matching credentials</source>
@ -321,11 +321,11 @@ Please select whether you want to allow access.</source>
</message>
<message>
<source>Automatically creating or updating string fields is not supported.</source>
<translation type="unfinished"/>
<translation>إنشاء او تحديث حقول التسلسل تلقائيًا غير مدعوم.</translation>
</message>
<message>
<source>&amp;Return advanced string fields which start with &quot;KPH: &quot;</source>
<translation type="unfinished"/>
<translation>&amp;جلب حقول التسلسل المتقدمة التي تبدأ ب &quot;KPH: &quot;</translation>
</message>
<message>
<source>Updates KeePassXC or keepassxc-proxy binary path automatically to native messaging scripts on startup.</source>
@ -468,7 +468,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>The active database does not contain an entry with permissions.</source>
<translation type="unfinished"/>
<translation>لا تحتوي قاعدة البيانات النشطة على إدخال مع صلاحيات.</translation>
</message>
</context>
<context>
@ -1425,11 +1425,11 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>Inherit default Auto-Type sequence from the &amp;group</source>
<translation type="unfinished"/>
<translation>ورث تسلسل الطباعة التلقائية الإفتراضي من &amp;المجموعة</translation>
</message>
<message>
<source>&amp;Use custom Auto-Type sequence:</source>
<translation type="unfinished"/>
<translation>&amp;إستخدام تسلسل طباعة تلقائية مخصص:</translation>
</message>
<message>
<source>Window Associations</source>
@ -1645,11 +1645,11 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>&amp;Use default Auto-Type sequence of parent group</source>
<translation type="unfinished"/>
<translation>&amp;إستخدام تسلسل الطباعة التلقائية الإفتراضي للمجموعة الرئيسية</translation>
</message>
<message>
<source>Set default Auto-Type se&amp;quence</source>
<translation type="unfinished"/>
<translation>تعيين تسلسل الطباعة التلقائية الإفتراضي</translation>
</message>
</context>
<context>
@ -2026,7 +2026,7 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message>
<source>Exclude look-alike characters</source>
<translation type="unfinished"/>
<translation>استبعاد الرموز التي تبدو على حد سواء</translation>
</message>
<message>
<source>Ensure that the password contains characters from every group</source>
@ -2034,7 +2034,7 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message>
<source>Extended ASCII</source>
<translation type="unfinished"/>
<translation>تمديد ASCII</translation>
</message>
</context>
<context>
@ -2368,7 +2368,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Auto-type association window or sequence missing</source>
<translation type="unfinished"/>
<translation>نافذة الطباعة التلقائية المرتبطة او تسلسل الإرتباط مفقود</translation>
</message>
<message>
<source>Invalid bool value</source>
@ -2456,7 +2456,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Unable to construct group tree</source>
<translation type="unfinished"/>
<translation>تعذر إنشاء شجرة المجموعة</translation>
</message>
<message>
<source>Root</source>
@ -2472,15 +2472,15 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Key transformation failed</source>
<translation type="unfinished"/>
<translation>فشل تحول المفتاح</translation>
</message>
<message>
<source>Invalid group field type number</source>
<translation type="unfinished"/>
<translation>حقل رقم نوع المجموعة غير صحيح</translation>
</message>
<message>
<source>Invalid group field size</source>
<translation type="unfinished"/>
<translation>حقل حجم المجموعة غير صحيح</translation>
</message>
<message>
<source>Read group field data doesn&apos;t match size</source>
@ -2488,43 +2488,43 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Incorrect group id field size</source>
<translation type="unfinished"/>
<translation>حجم حقل معرف المجموعة غير صحيح</translation>
</message>
<message>
<source>Incorrect group creation time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت إنشاء المجموعة غير صحيح</translation>
</message>
<message>
<source>Incorrect group modification time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت تعديل المجموعة غير صحيح</translation>
</message>
<message>
<source>Incorrect group access time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت الوصول للمجموعة غير صحيح</translation>
</message>
<message>
<source>Incorrect group expiry time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت انتهاء صلاحية المجموعة غير صحيح</translation>
</message>
<message>
<source>Incorrect group icon field size</source>
<translation type="unfinished"/>
<translation>حجم حقل رمز المجموعة غير صحيح</translation>
</message>
<message>
<source>Incorrect group level field size</source>
<translation type="unfinished"/>
<translation>حجم حقل مستوى المجموعة غير صحيح</translation>
</message>
<message>
<source>Invalid group field type</source>
<translation type="unfinished"/>
<translation>نوع حقل المجموعة غير صحيح</translation>
</message>
<message>
<source>Missing group id or level</source>
<translation type="unfinished"/>
<translation>معرف المجموعة أو المستوى مفقود</translation>
</message>
<message>
<source>Missing entry field type number</source>
<translation type="unfinished"/>
<translation>رقم نوع حقل إلمُدخل مفقود</translation>
</message>
<message>
<source>Invalid entry field size</source>
@ -2532,54 +2532,81 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Read entry field data doesn&apos;t match size</source>
<translation type="unfinished"/>
<translation>قراءة بيانات الحقل الإدخال لا تتطابق مع الحجم</translation>
</message>
<message>
<source>Invalid entry uuid field size</source>
<translation type="unfinished"/>
<translation>حجم حقل المُدخل uuid غير صحيح</translation>
</message>
<message>
<source>Invalid entry group id field size</source>
<translation type="unfinished"/>
<translation>إدخال حجم حقل معرف مجموعة غير صحيح</translation>
</message>
<message>
<source>Invalid entry icon field size</source>
<translation type="unfinished"/>
<translation>حجم حقل رمز الإدخال غير صحيح</translation>
</message>
<message>
<source>Invalid entry creation time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت إنشاء الإدخال غير صحيح</translation>
</message>
<message>
<source>Invalid entry modification time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت تعديل الإدخال غير صحيح</translation>
</message>
<message>
<source>Invalid entry expiry time field size</source>
<translation type="unfinished"/>
<translation>حجم حقل وقت انتهاء صلاحية الإدخال غير صحيح</translation>
</message>
<message>
<source>Invalid entry field type</source>
<translation>نوع حقل الإدخال غير صحيح</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 مستحسن)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
<source>Existing single-instance lock file is invalid. Launching new instance.</source>
<translation type="unfinished"/>
<translation>ملف القفل الحالي المثيل غير صحيح. سيُطلق مثيل جديد.</translation>
</message>
<message>
<source>The lock file could not be created. Single-instance mode disabled.</source>
<translation type="unfinished"/>
<translation>تعذر إنشاء ملف القفل. تم تعطيل وضع المثيل الأحادي.</translation>
</message>
<message>
<source>Another instance of KeePassXC is already running.</source>
<translation type="unfinished"/>
<translation>نسخة أخرى من KeePassXC قيد التشغيل.</translation>
</message>
<message>
<source>Fatal error while testing the cryptographic functions.</source>
<translation type="unfinished"/>
<translation>خطأ فادح أثناء اختبار وظائف التشفير.</translation>
</message>
<message>
<source>KeePassXC - Error</source>
@ -2614,7 +2641,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>Time-based one-time password</source>
<translation type="unfinished"/>
<translation>كلمة مرور لمرة واحدة تعتمد على الوقت</translation>
</message>
<message>
<source>&amp;Groups</source>
@ -2726,7 +2753,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>&amp;Perform Auto-Type</source>
<translation type="unfinished"/>
<translation>&amp;تنفيذ الضغط التلقائي</translation>
</message>
<message>
<source>&amp;Open URL</source>
@ -2859,7 +2886,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>PEM boundary mismatch</source>
<translation type="unfinished"/>
<translation>عدم تطابق حدود PEM</translation>
</message>
<message>
<source>Base64 decoding failed</source>
@ -2867,15 +2894,15 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Key file way too small.</source>
<translation type="unfinished"/>
<translation>طريق ملف المفتاح صغير جدًا.</translation>
</message>
<message>
<source>Key file magic header id invalid</source>
<translation type="unfinished"/>
<translation>معرف رأس magic لملف المفتاح غير صحيح</translation>
</message>
<message>
<source>Found zero keys</source>
<translation type="unfinished"/>
<translation>لم يُعثر على أية مفاتيح</translation>
</message>
<message>
<source>Failed to read public key.</source>
@ -2887,11 +2914,11 @@ This version is not meant for production use.</source>
</message>
<message>
<source>No private key payload to decrypt</source>
<translation type="unfinished"/>
<translation>لا يوجد حمولة المفتاح الخاص لفك التشفير</translation>
</message>
<message>
<source>Trying to run KDF without cipher</source>
<translation type="unfinished"/>
<translation>محاولة تشغيل KDF بدون تشفير</translation>
</message>
<message>
<source>Passphrase is required to decrypt this key</source>
@ -2907,11 +2934,11 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Unexpected EOF while reading public key</source>
<translation type="unfinished"/>
<translation>نهاية الملف غير معروفة عند قراءة المفتاح العام</translation>
</message>
<message>
<source>Unexpected EOF while reading private key</source>
<translation type="unfinished"/>
<translation>نهاية الملف غير معروفة عند قراءة المفتاح الخاص</translation>
</message>
<message>
<source>Can&apos;t write public key as it is empty</source>
@ -2919,7 +2946,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Unexpected EOF when writing public key</source>
<translation type="unfinished"/>
<translation>نهاية الملف غير معروفة عند كتابة المفتاح العام</translation>
</message>
<message>
<source>Can&apos;t write private key as it is empty</source>
@ -2927,7 +2954,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Unexpected EOF when writing private key</source>
<translation type="unfinished"/>
<translation>نهاية الملف غير معروفة عند قراءة المفتاح الخاص</translation>
</message>
<message>
<source>Unsupported key type: %1</source>
@ -2939,7 +2966,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Cipher IV is too short for MD5 kdf</source>
<translation type="unfinished"/>
<translation>التشفير الرابع قصير جدًا ل MD5 kdf </translation>
</message>
<message>
<source>Unknown KDF: %1</source>
@ -2958,7 +2985,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>This is required for accessing your databases from ChromeIPass or PassIFox</source>
<translation type="unfinished"/>
<translation>هذا مطلوب للوصول إلى قواعد البيانات الخاصة بك من ChromeIPass أو PassIFox</translation>
</message>
<message>
<source>Enable KeePassHTTP server</source>
@ -2975,11 +3002,11 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Only returns the best matches for a specific URL instead of all entries for the whole domain.</source>
<translation type="unfinished"/>
<translation>لا تعرض سوى أفضل التطابقات للرابط المحدد بدلًا من جميع الإدخالات للنطاق بأكمله.</translation>
</message>
<message>
<source>&amp;Return only best matching entries</source>
<translation type="unfinished"/>
<translation>&amp;عرض أفضل إدخالات مطابقة فقط</translation>
</message>
<message>
<source>Re&amp;quest to unlock the database if it is locked</source>
@ -2987,11 +3014,11 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Only entries with the same scheme (http://, https://, ftp://, ...) are returned.</source>
<translation type="unfinished"/>
<translation>يُسترجع الإدخالات مع نفس المخطط (http://, https://, ftp://, ...) فقط.</translation>
</message>
<message>
<source>&amp;Match URL schemes</source>
<translation type="unfinished"/>
<translation>&amp;مطابقة مخططات الروابط</translation>
</message>
<message>
<source>Sort matching entries by &amp;username</source>
@ -3035,11 +3062,11 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Automatically creating or updating string fields is not supported.</source>
<translation type="unfinished"/>
<translation>إنشاء او تحديث حقول التسلسل تلقائيًا غير مدعوم.</translation>
</message>
<message>
<source>&amp;Return advanced string fields which start with &quot;KPH: &quot;</source>
<translation type="unfinished"/>
<translation>&amp;جلب حقول التسلسل المتقدمة التي تبدأ ب &quot;KPH: &quot;</translation>
</message>
<message>
<source>HTTP Port:</source>
@ -3063,12 +3090,13 @@ This version is not meant for production use.</source>
</message>
<message>
<source>Cannot bind to privileged ports</source>
<translation type="unfinished"/>
<translation>لا يمكن ربط المنافذ المميزة</translation>
</message>
<message>
<source>Cannot bind to privileged ports below 1024!
Using default port 19455.</source>
<translation type="unfinished"/>
<translation>لا يمكن ربط المنافذ المميزة أقل من 1024!
استخدم المنفذ الإفتراضي 19455.</translation>
</message>
</context>
<context>
@ -3088,7 +3116,7 @@ Using default port 19455.</source>
</message>
<message>
<source>entropy</source>
<translation type="unfinished"/>
<translation>غير قادر</translation>
</message>
<message>
<source>Password</source>
@ -3116,15 +3144,15 @@ Using default port 19455.</source>
</message>
<message>
<source>Extended ASCII</source>
<translation type="unfinished"/>
<translation>تمديد ASCII</translation>
</message>
<message>
<source>Exclude look-alike characters</source>
<translation type="unfinished"/>
<translation>استبعاد الرموز التي تبدو على حد سواء</translation>
</message>
<message>
<source>Pick characters from every group</source>
<translation type="unfinished"/>
<translation>إختيار أحرف من كل مجموعة</translation>
</message>
<message>
<source>&amp;Length:</source>
@ -3168,7 +3196,7 @@ Using default port 19455.</source>
</message>
<message>
<source>Entropy: %1 bit</source>
<translation type="unfinished"/>
<translation>Entropy: %1 bit</translation>
</message>
<message>
<source>Password Quality: %1</source>
@ -3203,7 +3231,7 @@ Using default port 19455.</source>
</message>
<message>
<source>Database hash not available</source>
<translation type="unfinished"/>
<translation>لا يتوفر هاش قاعدة البيانات</translation>
</message>
<message>
<source>Client public key not received</source>
@ -3311,20 +3339,20 @@ Using default port 19455.</source>
</message>
<message>
<source>Path of the entry to add.</source>
<translation type="unfinished"/>
<translation>مسار المُدخل للإضافة.</translation>
</message>
<message>
<source>Copy an entry&apos;s password to the clipboard.</source>
<translation type="unfinished"/>
<translation>نسخ كلمة المرور الإدخال إلى الحافظة.</translation>
</message>
<message>
<source>Path of the entry to clip.</source>
<comment>clip = copy to clipboard</comment>
<translation type="unfinished"/>
<translation>مسار المُدخل للقص.</translation>
</message>
<message>
<source>Timeout in seconds before clearing the clipboard.</source>
<translation type="unfinished"/>
<translation>مهلة بالثوان قبل مسح الحافظة.</translation>
</message>
<message>
<source>Edit an entry.</source>
@ -3344,19 +3372,19 @@ Using default port 19455.</source>
</message>
<message>
<source>Estimate the entropy of a password.</source>
<translation type="unfinished"/>
<translation>تقدير الإنتروبيا لكلمة مرور.</translation>
</message>
<message>
<source>Password for which to estimate the entropy.</source>
<translation type="unfinished"/>
<translation>كلمة السر التي لتقدير الانتروبيا.</translation>
</message>
<message>
<source>Perform advanced analysis on the password.</source>
<translation type="unfinished"/>
<translation>إجراء تحليل متقدم على كلمة المرور.</translation>
</message>
<message>
<source>Extract and print the content of a database.</source>
<translation type="unfinished"/>
<translation>استخراج وطباعة محتوى قاعدة البيانات.</translation>
</message>
<message>
<source>Path of the database to extract.</source>
@ -3400,7 +3428,7 @@ Available commands:
</message>
<message>
<source>Path of the group to list. Default is /</source>
<translation type="unfinished"/>
<translation>مسار المجموعة للجدولة. الإفتراضي هو /</translation>
</message>
<message>
<source>Find entries quickly.</source>
@ -3424,7 +3452,7 @@ Available commands:
</message>
<message>
<source>Use the same credentials for both database files.</source>
<translation type="unfinished"/>
<translation>استخدام نفس بيانات الاعتماد لكل من ملفات قاعدة البيانات.</translation>
</message>
<message>
<source>Key file of the database to merge from.</source>
@ -3468,30 +3496,6 @@ Available commands:
<source>missing closing quote</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Group</source>
<translation>المجموعة</translation>
@ -3587,14 +3591,14 @@ Available commands:
</message>
<message>
<source>Use extended ASCII in the generated password.</source>
<translation type="unfinished"/>
<translation>إستخدام ASCII الموسع في كلمة المرور التي المُنشئة.</translation>
</message>
</context>
<context>
<name>QtIOCompressor</name>
<message>
<source>Internal zlib error when compressing: </source>
<translation type="unfinished"/>
<translation>خطأ zlib داخلي عند الضغط:</translation>
</message>
<message>
<source>Error writing to underlying device: </source>
@ -3602,11 +3606,11 @@ Available commands:
</message>
<message>
<source>Error opening underlying device: </source>
<translation type="unfinished"/>
<translation>حدث خطأ أثناء فتح الجهاز الأساسي:</translation>
</message>
<message>
<source>Error reading data from underlying device: </source>
<translation type="unfinished"/>
<translation>حدث خطأ أثناء قراءة البيانات من الجهاز الأساسي:</translation>
</message>
<message>
<source>Internal zlib error when decompressing: </source>
@ -3617,7 +3621,7 @@ Available commands:
<name>QtIOCompressor::open</name>
<message>
<source>The gzip format not supported in this version of zlib.</source>
<translation type="unfinished"/>
<translation>تنسيق gzip غير مدعوم في ه</translation>
</message>
<message>
<source>Internal zlib error: </source>
@ -3640,7 +3644,7 @@ Available commands:
</message>
<message>
<source>Case Sensitive</source>
<translation type="unfinished"/>
<translation>حالة الحساسية</translation>
</message>
<message>
<source>Limit search to selected group</source>
@ -3666,7 +3670,8 @@ give it a unique name to identify and accept it.</source>
<message>
<source>A shared encryption-key with the name &quot;%1&quot; already exists.
Do you want to overwrite it?</source>
<translation type="unfinished"/>
<translation>مفتاح التشفير المشترك مع إسم &quot;%1&quot; موجود بالفعل.
هل تريد الكتابة عليه؟</translation>
</message>
<message>
<source>KeePassXC: Update Entry</source>
@ -3708,7 +3713,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>The active database does not contain an entry of KeePassHttp Settings.</source>
<translation type="unfinished"/>
<translation>لا تحتوي قاعدة البيانات النشطة على إدخال لإعدادات KeePassHttp.</translation>
</message>
<message>
<source>Removing stored permissions...</source>
@ -3732,7 +3737,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>The active database does not contain an entry with permissions.</source>
<translation type="unfinished"/>
<translation>لا تحتوي قاعدة البيانات النشطة على إدخال مع صلاحيات.</translation>
</message>
</context>
<context>
@ -3762,7 +3767,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Start only a single instance of KeePassXC</source>
<translation type="unfinished"/>
<translation>شغل تطبيق واحد فقط من KeePassXC</translation>
</message>
<message>
<source>Remember last databases</source>
@ -3770,7 +3775,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Remember last key files and security dongles</source>
<translation type="unfinished"/>
<translation>تذكر الملفات الرئيسية الأخيرة و قواعد الأمن</translation>
</message>
<message>
<source>Load previous databases on startup</source>
@ -3786,7 +3791,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Automatically reload the database when modified externally</source>
<translation type="unfinished"/>
<translation>إعادة تحميل قاعدة البيانات تلقائيا عند تعديلها خارجيًا</translation>
</message>
<message>
<source>Minimize when copying to clipboard</source>
@ -3798,11 +3803,11 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Use group icon on entry creation</source>
<translation type="unfinished"/>
<translation>استخدم رمز المجموعة عند إنشاء الإدخال</translation>
</message>
<message>
<source>Don&apos;t mark database as modified for non-data changes (e.g., expanding groups)</source>
<translation type="unfinished"/>
<translation>عدم وضع علامة على قاعدة البيانات المعدلة للتغييرات غير المتعلقة بالبيانات (مثال، توسيع المجموعات)</translation>
</message>
<message>
<source>Hide the Details view</source>
@ -3814,11 +3819,11 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Hide window to system tray when minimized</source>
<translation type="unfinished"/>
<translation>إخفاء النافذة إلى شريط المهام عند تصغيرها</translation>
</message>
<message>
<source>Hide window to system tray instead of app exit</source>
<translation type="unfinished"/>
<translation>إخفاء النافذة إلى شريط المهام بدلًا من إغلاق التطبيق</translation>
</message>
<message>
<source>Dark system tray icon</source>
@ -3834,19 +3839,19 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Use entry title to match windows for global Auto-Type</source>
<translation type="unfinished"/>
<translation>استخدم عنوان الإدخال لمطابقة النوافذ للطباعة التلقائية بشكل عام</translation>
</message>
<message>
<source>Use entry URL to match windows for global Auto-Type</source>
<translation type="unfinished"/>
<translation>استخدم رابط الإدخال لمطابقة النوافذ للطباعة التلقائية بشكل عام</translation>
</message>
<message>
<source>Always ask before performing Auto-Type</source>
<translation type="unfinished"/>
<translation>اسأل دائما قبل تنفيذ الطباعة التلقائية</translation>
</message>
<message>
<source>Global Auto-Type shortcut</source>
<translation type="unfinished"/>
<translation>المفتاح العام للطباعة التلقائية</translation>
</message>
<message>
<source>Auto-Type delay</source>
@ -3939,7 +3944,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Re-lock previously locked database after performing Auto-Type</source>
<translation type="unfinished"/>
<translation>أعد قفل قاعدة البيانات التي تم تأمينها سابقًا بعد تنفيذ الطباعة التلقائية</translation>
</message>
</context>
<context>
@ -3954,11 +3959,11 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Default RFC 6238 token settings</source>
<translation type="unfinished"/>
<translation>الإعدادات الإفتراضية لرمز RFC 6238</translation>
</message>
<message>
<source>Steam token settings</source>
<translation type="unfinished"/>
<translation>اعدادات رمز Steam</translation>
</message>
<message>
<source>Use custom settings</source>
@ -3970,7 +3975,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Time step:</source>
<translation type="unfinished"/>
<translation>الخطوة الزمنية:</translation>
</message>
<message>
<source>8 digits</source>
@ -4087,7 +4092,7 @@ Please unlock the selected database or choose another one which is unlocked.</so
</message>
<message>
<source>Parent window handle</source>
<translation type="unfinished"/>
<translation>زر النافذة الأم</translation>
</message>
</context>
</TS>

View File

@ -802,7 +802,7 @@ You can now save it.</source>
</message>
<message>
<source>Encryption</source>
<translation>Encriptatge</translation>
<translation>Xifratge</translation>
</message>
<message>
<source>Number of rounds too high</source>
@ -857,7 +857,7 @@ If you keep this number, your database may be too easy to crack!</source>
<name>DatabaseSettingsWidgetEncryption</name>
<message>
<source>Encryption Algorithm:</source>
<translation>Algorisme de dencriptatge:</translation>
<translation>Algorisme de xifratge:</translation>
</message>
<message>
<source>AES: 256 Bit (default)</source>
@ -1297,7 +1297,7 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>(encrypted)</source>
<translation>(encriptat)</translation>
<translation>(xifrat)</translation>
</message>
<message>
<source>Select private key</source>
@ -1544,7 +1544,7 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>Decrypt</source>
<translation type="unfinished"/>
<translation>Desxifrar</translation>
</message>
<message>
<source>n/a</source>
@ -2419,7 +2419,7 @@ Es tracta d&apos;una migració unidireccional. No obrir la base de dades importa
</message>
<message>
<source>Unsupported encryption algorithm.</source>
<translation>Algoritme d&apos;encriptació no admès.</translation>
<translation>Algoritme de xifratge no admès.</translation>
</message>
<message>
<source>Unsupported KeePass database version.</source>
@ -2559,6 +2559,33 @@ Es tracta d&apos;una migració unidireccional. No obrir la base de dades importa
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -2999,7 +3026,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>R&amp;emove all shared encryption keys from active database</source>
<translation>Suprimeix totes les claus d&apos;encriptació compartides de la base de dades activa</translation>
<translation>Suprimeix totes les claus de xifratge compartides de la base de dades activa</translation>
</message>
<message>
<source>Re&amp;move all stored permissions from entries in active database</source>
@ -3459,30 +3486,6 @@ Available commands:
<source>missing closing quote</source>
<translation>falta la cometa de tancament</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Group</source>
<translation>Grup</translation>
@ -3694,7 +3697,7 @@ Per favor, desbloqueu la base de dades seleccionada o escolliu-ne una altra.</t
</message>
<message>
<source>No shared encryption-keys found in KeePassHttp Settings.</source>
<translation>No s&apos;han trobat claus d&apos;encriptació compartides en la configuració de KeePassHttp.</translation>
<translation>No s&apos;han trobat claus de xifratge compartides en la configuració de KeePassHttp.</translation>
</message>
<message>
<source>KeePassXC: Settings not available!</source>

View File

@ -2581,6 +2581,33 @@ Jedná se o jednosměrný převod. Databázi, vzniklou z importu, nepůjde otev
<translation>Neplatný typ kolonky položky</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 doporučeno)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3488,30 +3515,6 @@ Příkazy k dispozici:
<source>missing closing quote</source>
<translation>chybějící uzavírací uvozovka</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 doporučeno)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Skupina</translation>

File diff suppressed because it is too large Load Diff

View File

@ -2578,6 +2578,33 @@ Dieser Vorgang ist nur in eine Richtung möglich. Die importierte Datenbank kann
<translation>Ungültiger Eintrags-Feldtyp</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 empfohlen)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3484,30 +3511,6 @@ Verfügbare Kommandos:
<source>missing closing quote</source>
<translation>Schließendes Anführungszeichen fehlt</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 empfohlen)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Gruppe</translation>

View File

@ -2553,6 +2553,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3452,30 +3479,6 @@ Available commands:
<source>missing closing quote</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Group</source>
<translation>Όμαδα</translation>

View File

@ -2361,10 +2361,6 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<source>History element with different uuid</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Unable to decrypt entry string</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Duplicate custom attribute found</source>
<translation type="unfinished"></translation>
@ -2578,6 +2574,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3476,30 +3499,6 @@ Available commands:
<source>missing closing quote</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Group</source>
<translation type="unfinished"></translation>
@ -3632,6 +3631,33 @@ Available commands:
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SSHAgent</name>
<message>
<source>Agent connection failed.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Agent protocol error.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No agent running, cannot add identity.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Agent refused this identity.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>No agent running, cannot remove identity.</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Agent does not have this identity.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SearchWidget</name>
<message>

View File

@ -227,7 +227,7 @@ Please select whether you want to allow access.</translation>
</message>
<message>
<source>Enable KeepassXC browser integration</source>
<translation>Enable KeepassXC browser integration</translation>
<translation>Enable KeePassXC browser integration</translation>
</message>
<message>
<source>General</source>
@ -2583,6 +2583,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation>Invalid entry field type</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 recommended)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3491,30 +3518,6 @@ Available commands:
<source>missing closing quote</source>
<translation>missing closing quote</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 recommended)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Group</translation>

View File

@ -375,7 +375,7 @@ Por favor seleccione si desea autorizar su acceso.</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation type="unfinished"/>
<translation>Lo sentimos, pero KeePassXC-Browser no está soportado en las versiones Snap por el momento.</translation>
</message>
</context>
<context>
@ -1764,11 +1764,11 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message>
<source>Key</source>
<translation type="unfinished"/>
<translation>Clave</translation>
</message>
<message>
<source>Value</source>
<translation type="unfinished"/>
<translation>Valor</translation>
</message>
</context>
<context>
@ -1818,7 +1818,7 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n attachment(s)?</source>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
<translation><numerusform>¿Está seguro que desea eliminar %n adjunto(s)?</numerusform><numerusform>¿Está seguro que desea eliminar %n adjunto(s)?</numerusform></translation>
</message>
<message>
<source>Confirm Remove</source>
@ -1930,11 +1930,11 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message>
<source>Created</source>
<translation type="unfinished"/>
<translation>Creado</translation>
</message>
<message>
<source>Modified</source>
<translation type="unfinished"/>
<translation>Modificado</translation>
</message>
<message>
<source>Accessed</source>
@ -1949,31 +1949,31 @@ This may cause the affected plugins to malfunction.</source>
<name>EntryView</name>
<message>
<source>Customize View</source>
<translation type="unfinished"/>
<translation>Personalizar Vista</translation>
</message>
<message>
<source>Hide Usernames</source>
<translation type="unfinished"/>
<translation>Ocultar nombres de usuario</translation>
</message>
<message>
<source>Hide Passwords</source>
<translation type="unfinished"/>
<translation>Ocultar Contraseñas</translation>
</message>
<message>
<source>Fit to window</source>
<translation type="unfinished"/>
<translation>Ajustar a la ventana</translation>
</message>
<message>
<source>Fit to contents</source>
<translation type="unfinished"/>
<translation>Ajustar al contenido</translation>
</message>
<message>
<source>Reset to defaults</source>
<translation type="unfinished"/>
<translation>Restaurar ajustes por defecto</translation>
</message>
<message>
<source>Attachments (icon)</source>
<translation type="unfinished"/>
<translation>Adjuntos (icono)</translation>
</message>
</context>
<context>
@ -2578,6 +2578,33 @@ Esta migración es en único sentido. No podrá abrir la base de datos importada
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3478,30 +3505,6 @@ Available commands:
<source>missing closing quote</source>
<translation>comilla de cierre faltante</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Group</source>
<translation>Grupo</translation>
@ -3528,7 +3531,7 @@ Available commands:
</message>
<message>
<source>Created</source>
<translation type="unfinished"/>
<translation>Creado</translation>
</message>
<message>
<source>Legacy Browser Integration</source>

View File

@ -45,7 +45,7 @@
</message>
<message>
<source>Revision: %1</source>
<translation>Berrikuspena: %1</translation>
<translation>Berrikuspena: </translation>
</message>
<message>
<source>Distribution: %1</source>
@ -370,6 +370,10 @@ Please select whether you want to allow access.</source>
<source>Select custom proxy location</source>
<translation type="unfinished"/>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>BrowserService</name>
@ -676,15 +680,15 @@ Please consider generating a new key file.</source>
<name>CsvParserModel</name>
<message numerus="yes">
<source>%n byte(s), </source>
<translation><numerusform>byte %n</numerusform><numerusform>%n byte</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<source>%n row(s), </source>
<translation><numerusform>lerro %n</numerusform><numerusform>%n lerro</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<source>%n column(s)</source>
<translation><numerusform>zutabe %n</numerusform><numerusform>%n zutabe</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
</context>
<context>
@ -1093,7 +1097,7 @@ Disable safe saves and try again?</source>
</message>
<message numerus="yes">
<source>Do you really want to move %n entry(s) to the recycle bin?</source>
<translation><numerusform>Ziur zaude sarrera %n zakarrontzira mugitu nahi duzula?</numerusform><numerusform>Ziur zaude %n sarrera zakarrontzira mugitu nahi dituzula?</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Execute command?</source>
@ -1164,10 +1168,6 @@ Do you want to merge your changes?</source>
<source>Are you sure you want to permanently delete everything from your recycle bin?</source>
<translation type="unfinished"/>
</message>
<message>
<source>Entry updated successfully.</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>DetailsWidget</name>
@ -1344,11 +1344,11 @@ Do you want to merge your changes?</source>
</message>
<message numerus="yes">
<source>%n week(s)</source>
<translation><numerusform>aste %n</numerusform><numerusform>%n aste</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message numerus="yes">
<source>%n month(s)</source>
<translation><numerusform>hilabete %n</numerusform><numerusform>%n hilabete</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>1 year</source>
@ -1434,7 +1434,7 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>Window title:</source>
<translation>Leihoaren izenburua:</translation>
<translation>Leihoaren titulua:</translation>
</message>
<message>
<source>Use a specific sequence for this association:</source>
@ -1791,7 +1791,7 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message numerus="yes">
<source>Are you sure you want to remove %n attachment(s)?</source>
<translation><numerusform>Ziur zaude eranskin %n kendu nahi duzula?</numerusform><numerusform>Ziur zaude %n eranskin kendu nahi dituzula?</numerusform></translation>
<translation type="unfinished"><numerusform></numerusform><numerusform></numerusform></translation>
</message>
<message>
<source>Confirm Remove</source>
@ -1943,6 +1943,10 @@ This may cause the affected plugins to malfunction.</source>
<source>Reset to defaults</source>
<translation type="unfinished"/>
</message>
<message>
<source>Attachments (icon)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Group</name>
@ -2543,6 +2547,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 gomendatua)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3441,30 +3472,6 @@ Available commands:
<source>missing closing quote</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 gomendatua)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Taldea</translation>

View File

@ -2581,6 +2581,33 @@ Tämä muunnos toimii yhdensuuntaisesti. Et välttämättä saa enää tietokant
<translation>Virheellinen tietueen kentän tyyppi</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 suositeltu)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3489,30 +3516,6 @@ Käytettävissä olevat komennot:
<source>missing closing quote</source>
<translation>lainausmerkki puuttuu lopusta</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 suositeltu)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Ryhmä</translation>

File diff suppressed because it is too large Load Diff

View File

@ -2579,6 +2579,33 @@ Ez egyirányú migráció. Nem lehet majd megnyitni az importált adatbázist a
<translation>Érvénytelen bejegyzésmező-típus</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bites</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bites</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bites</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 ajánlott)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -2912,7 +2939,7 @@ Ez a verzió nem felhasználóknak készült.</translation>
</message>
<message>
<source>Passphrase is required to decrypt this key</source>
<translation>Jelszó szükséges a kulcsfájl visszafejtéséhez</translation>
<translation>Jelmondat szükséges a kulcsfájl visszafejtéséhez</translation>
</message>
<message>
<source>Key derivation failed, key file corrupted?</source>
@ -2920,7 +2947,7 @@ Ez a verzió nem felhasználóknak készült.</translation>
</message>
<message>
<source>Decryption failed, wrong passphrase?</source>
<translation>Visszafejtés sikertelen, rossz a jelszó?</translation>
<translation>Visszafejtés sikertelen, rossz a jelmondat?</translation>
</message>
<message>
<source>Unexpected EOF while reading public key</source>
@ -3150,7 +3177,7 @@ Az alapértelmezett 19455 port lesz használva.</translation>
</message>
<message>
<source>Passphrase</source>
<translation>Jelszó</translation>
<translation>Jelmondat</translation>
</message>
<message>
<source>Wordlist:</source>
@ -3485,30 +3512,6 @@ Elérhető parancsok:
<source>missing closing quote</source>
<translation>hiányzó lezáró idézőjel</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bites</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bites</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bites</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 ajánlott)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Csoport</translation>
@ -3563,11 +3566,11 @@ Elérhető parancsok:
</message>
<message>
<source>Generate a new random diceware passphrase.</source>
<translation>Véletlenszerű új diceware jelszó előállítása.</translation>
<translation>Véletlenszerű új diceware jelmondat előállítása.</translation>
</message>
<message>
<source>Word count for the diceware passphrase.</source>
<translation>Szavak számra a diceware jelszó számára.</translation>
<translation>Szavak számra a diceware jelmondat számára.</translation>
</message>
<message>
<source>count</source>

View File

@ -2577,6 +2577,33 @@ Ini adalah migrasi satu arah. Anda tidak akan bisa membuka basis data yang diimp
<translation>Tipe ruas entri tidak valid</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 direkomendasikan)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3485,30 +3512,6 @@ Perintah yang tersedia:
<source>missing closing quote</source>
<translation>kehilangan tanda kutip tutup</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 direkomendasikan)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Grup</translation>

View File

@ -2582,6 +2582,33 @@ Si tratta di una migrazione unidirezionale. Non sarà possibile aprire il databa
<translation>Tipo di dato non valido </translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 raccomandato)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3490,30 +3517,6 @@ Comandi disponibili:
<source>missing closing quote</source>
<translation>virgoletta di chiusura mancante</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 raccomandato)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Gruppo</translation>
@ -3984,7 +3987,7 @@ Sblocca il database selezionato o scegline un altro che sia sbloccato.</translat
</message>
<message>
<source>Steam token settings</source>
<translation>Impostazioni del token di vapore</translation>
<translation>Impostazioni del token di Steam</translation>
</message>
<message>
<source>Use custom settings</source>

View File

@ -2583,6 +2583,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation></translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 </translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 </translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 </translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 )</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -2822,7 +2849,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>&lt;p&gt;It looks like you are using KeePassHTTP for browser integration. This feature has been deprecated and will be removed in the future.&lt;br&gt;Please switch to KeePassXC-Browser instead! For help with migration, visit our &lt;a class=&quot;link&quot; href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt; (warning %1 of 3).&lt;/p&gt;</source>
<translation>&lt;p&gt; KeePassHTTP 使&lt;br&gt; KeePassXC-Browser 使 &lt;a class=&quot;link&quot; href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt; を参照してください (%1 / 3 回目の警告)。&lt;/p&gt;</translation>
<translation>&lt;p&gt; KeePassHTTP 使&lt;br&gt; KeePassXC-Browser 使 &lt;a class=&quot;link&quot; href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;移行ガイド&lt;/a&gt; を参照してください (%1 / 3 回目の警告)。&lt;/p&gt;</translation>
</message>
<message>
<source>read-only</source>
@ -3081,7 +3108,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>&lt;p&gt;KeePassHTTP has been deprecated and will be removed in the future.&lt;br&gt;Please switch to KeePassXC-Browser instead! For help with migration, visit our &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;KeePassHTTP &lt;br&gt; KeePassXC-Browser 使 &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt; を参照してください。&lt;/p&gt;</translation>
<translation>&lt;p&gt;KeePassHTTP &lt;br&gt; KeePassXC-Browser 使 &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;移行ガイド&lt;/a&gt; を参照してください。&lt;/p&gt;</translation>
</message>
<message>
<source>Cannot bind to privileged ports</source>
@ -3491,30 +3518,6 @@ Available commands:
<source>missing closing quote</source>
<translation></translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 </translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 </translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 </translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 )</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation></translation>

View File

@ -2579,6 +2579,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation> </translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256비트</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256비트</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256비트</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF(KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF(KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2(KDBX 4 )</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3487,30 +3514,6 @@ Available commands:
<source>missing closing quote</source>
<translation> </translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256비트</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256비트</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256비트</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2(KDBX 4 )</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF(KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF(KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation></translation>

View File

@ -2568,6 +2568,33 @@ Tai yra vienakryptis perkėlimas. Jūs negalėsite atverti importuotos duomenų
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bitų</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bitų</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bitų</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 rekomenduojama)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3471,30 +3498,6 @@ Prieinamos komandos:
<source>missing closing quote</source>
<translation>trūksta užveriamosios kabutės</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bitų</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bitų</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bitų</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 rekomenduojama)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Grupė</translation>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2583,6 +2583,33 @@ Jest to migracja w jedną stronę. Nie będzie można otworzyć importowanej baz
<translation>Nieprawidłowy typ pola wpisu</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bitowy</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bitowy</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bitowy</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 zalecany)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3491,30 +3518,6 @@ Dostępne polecenia:
<source>missing closing quote</source>
<translation>brak cytatu zamknięcia</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bitowy</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bitowy</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bitowy</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 zalecany)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Grupa</translation>

View File

@ -2580,6 +2580,33 @@ Isto é uma migração de caminho único. Você não poderá abrir o banco de da
<translation>Tipo de campo de entrada inválido</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bits</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bits</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bits</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 recomendado)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3487,30 +3514,6 @@ Comandos disponíveis:
<source>missing closing quote</source>
<translation>cotação de fechamento ausente</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 bits</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 bits</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 bits</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 recomendado)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Grupo</translation>

View File

@ -317,7 +317,7 @@ Selecione se deseja permitir o acesso.</translation>
<message>
<source>Searc&amp;h in all opened databases for matching credentials</source>
<extracomment>Credentials mean login data requested via browser extension</extracomment>
<translation>Procurar em todas as base de dados abertas por credenciais semel&amp;hantes</translation>
<translation>Pesquisar por credenciais semel&amp;hantes em todas as base de dados abertas</translation>
</message>
<message>
<source>Automatically creating or updating string fields is not supported.</source>
@ -1087,7 +1087,7 @@ Desativar salvaguardas e tentar novamente?</translation>
<name>DatabaseWidget</name>
<message>
<source>Searching...</source>
<translation>A procurar...</translation>
<translation>Pesquisar...</translation>
</message>
<message>
<source>Change master key</source>
@ -1232,7 +1232,7 @@ Deseja juntar as suas alterações?</translation>
</message>
<message>
<source>Searching</source>
<translation>A procurar</translation>
<translation>Pesquisa</translation>
</message>
<message>
<source>Attributes</source>
@ -1653,7 +1653,7 @@ Deseja juntar as suas alterações?</translation>
</message>
<message>
<source>Search</source>
<translation>Procurar</translation>
<translation>Pesquisa</translation>
</message>
<message>
<source>Auto-Type</source>
@ -2583,6 +2583,33 @@ Esta é uma migração unidirecional. Não será possível abrir a base de dados
<translation>Tipo inválido para o campo da entrada</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 recomendado)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3053,7 +3080,7 @@ Esta versão não deve ser utilizada para uma utilização regular.</translation
</message>
<message>
<source>Searc&amp;h in all opened databases for matching entries</source>
<translation>Procurar em todas as base de dados abertas por entradas semel&amp;hantes</translation>
<translation>Pesquisar por entradas semel&amp;hantes em todas as base de dados abertas</translation>
</message>
<message>
<source>Automatically creating or updating string fields is not supported.</source>
@ -3491,30 +3518,6 @@ Comandos disponíveis:
<source>missing closing quote</source>
<translation>carácter de fecho em falta</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 recomendado)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Grupo</translation>

View File

@ -2547,6 +2547,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3449,30 +3476,6 @@ Comenzi disponibile:
<source>missing closing quote</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Group</source>
<translation>Grup</translation>

View File

@ -2580,6 +2580,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation>Недопустимый тип поля записи</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-бит</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-бит</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-бит</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 рекомендуемый)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -2819,7 +2846,7 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
</message>
<message>
<source>&lt;p&gt;It looks like you are using KeePassHTTP for browser integration. This feature has been deprecated and will be removed in the future.&lt;br&gt;Please switch to KeePassXC-Browser instead! For help with migration, visit our &lt;a class=&quot;link&quot; href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt; (warning %1 of 3).&lt;/p&gt;</source>
<translation>&lt;p&gt;Похоже вы используете KeePassHTTP для интеграции с браузером. Эта функция является устаревшей и будет удалена в будущем.&lt;br&gt;Пожалуйста перейдите на KeePassXC-Browser! Чтобы получить помощь прочтите наше &lt;a class=&quot;link&quot; href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;руководство по миграции&lt;/a&gt; (предупреждение %1 of 3).&lt;/p&gt;</translation>
<translation>&lt;p&gt;Похоже вы используете KeePassHTTP для интеграции с браузером. Эта функция является устаревшей и будет удалена в будущем.&lt;br&gt;Пожалуйста, перейдите на KeePassXC-Browser! Чтобы получить помощь прочтите наше &lt;a class=&quot;link&quot; href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;руководство по миграции&lt;/a&gt; (предупреждение %1 of 3).&lt;/p&gt;</translation>
</message>
<message>
<source>read-only</source>
@ -3078,7 +3105,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>&lt;p&gt;KeePassHTTP has been deprecated and will be removed in the future.&lt;br&gt;Please switch to KeePassXC-Browser instead! For help with migration, visit our &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;</source>
<translation>&lt;p&gt;KeePassHTTP устарел и будет удален в будущем.&lt;br&gt;Поажлуйста перейдите на KeePassXC-Browser! Чтобы получить помощь прочтите наше &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;руководство по миграции&lt;/a&gt;.&lt;/p&gt;</translation>
<translation>&lt;p&gt;KeePassHTTP устарел и будет удален в будущем.&lt;br&gt;Пожалуйста, перейдите на KeePassXC-Browser! Чтобы получить помощь прочтите наше &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;руководство по миграции&lt;/a&gt;.&lt;/p&gt;</translation>
</message>
<message>
<source>Cannot bind to privileged ports</source>
@ -3488,30 +3515,6 @@ Available commands:
<source>missing closing quote</source>
<translation>Отсутствует закрывающая цитата</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-бит</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-бит</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-бит</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 рекомендуемый)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Группа</translation>

View File

@ -2557,6 +2557,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3459,30 +3486,6 @@ Available commands:
<source>missing closing quote</source>
<translation>недостаје завршни наводник</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation type="unfinished"/>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation type="unfinished"/>
</message>
<message>
<source>Group</source>
<translation>Група</translation>

View File

@ -358,7 +358,7 @@ Vill du tillåta det?</translation>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; The following options can be dangerous!</source>
<translation type="unfinished"/>
<translation>&lt;b&gt;Varning:&lt;/b&gt; Följande parametrar kan vara farliga!</translation>
</message>
<message>
<source>Executable Files (*.exe);;All Files (*.*)</source>
@ -370,7 +370,7 @@ Vill du tillåta det?</translation>
</message>
<message>
<source>Select custom proxy location</source>
<translation type="unfinished"/>
<translation>Välj en proxy</translation>
</message>
<message>
<source>We&apos;re sorry, but KeePassXC-Browser is not supported for Snap releases at the moment.</source>
@ -2555,6 +2555,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bitar</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bitar</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bitar</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 rekommenderad)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3047,7 +3074,7 @@ This version is not meant for production use.</source>
</message>
<message>
<source>&lt;b&gt;Warning:&lt;/b&gt; The following options can be dangerous!</source>
<translation type="unfinished"/>
<translation>&lt;b&gt;Varning:&lt;/b&gt; Följande parametrar kan vara farliga!</translation>
</message>
<message>
<source>&lt;p&gt;KeePassHTTP has been deprecated and will be removed in the future.&lt;br&gt;Please switch to KeePassXC-Browser instead! For help with migration, visit our &lt;a href=&quot;https://keepassxc.org/docs/keepassxc-browser-migration&quot;&gt;migration guide&lt;/a&gt;.&lt;/p&gt;</source>
@ -3457,30 +3484,6 @@ Tillgängliga kommandon:
<source>missing closing quote</source>
<translation>saknar avslutande citattecken</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bitar</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bitar</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bitar</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 rekommenderad)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Grupp</translation>

View File

@ -2555,6 +2555,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 </translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 </translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 </translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 )</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3454,30 +3481,6 @@ Available commands:
<source>missing closing quote</source>
<translation></translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 </translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 </translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 </translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 )</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation></translation>

View File

@ -78,7 +78,8 @@ MİB mimarisi: %2
<message>
<source>Build Type: %1
</source>
<translation type="unfinished"/>
<translation>İnşa Türü: %1
</translation>
</message>
</context>
<context>
@ -882,7 +883,7 @@ If you keep this number, your database may be too easy to crack!</source>
</message>
<message>
<source>Memory Usage:</source>
<translation type="unfinished"/>
<translation>Bellek Kullanımı:</translation>
</message>
<message>
<source>Parallelism:</source>
@ -909,7 +910,7 @@ If you keep this number, your database may be too easy to crack!</source>
</message>
<message>
<source>History Settings</source>
<translation type="unfinished"/>
<translation>Geçmiş Ayarları</translation>
</message>
<message>
<source>Max. history items:</source>
@ -1219,7 +1220,7 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>Attributes</source>
<translation type="unfinished"/>
<translation>Öznitelikler</translation>
</message>
<message>
<source>Attachments</source>
@ -1247,11 +1248,11 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>Never</source>
<translation type="unfinished"/>
<translation>Asla</translation>
</message>
<message>
<source>[PROTECTED]</source>
<translation type="unfinished"/>
<translation>[KORUMALI]</translation>
</message>
<message>
<source>Disabled</source>
@ -1298,7 +1299,7 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>(encrypted)</source>
<translation type="unfinished"/>
<translation>(şifrelenmiş)</translation>
</message>
<message>
<source>Select private key</source>
@ -1342,7 +1343,7 @@ Do you want to merge your changes?</source>
</message>
<message>
<source>[PROTECTED]</source>
<translation type="unfinished"/>
<translation>[KORUMALI]</translation>
</message>
<message>
<source>Press reveal to view or edit</source>
@ -1896,7 +1897,7 @@ This may cause the affected plugins to malfunction.</source>
</message>
<message>
<source>Never</source>
<translation type="unfinished"/>
<translation>Asla</translation>
</message>
<message>
<source>Password</source>
@ -2560,6 +2561,33 @@ Bu tek yönlü bir yer değiştirmedir. İçe aktarılan veri tabanını eski Ke
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 önerilen)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3460,30 +3488,6 @@ Available commands:
<source>missing closing quote</source>
<translation type="unfinished"/>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-bit</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-bit</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-bit</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 önerilen)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Küme</translation>

View File

@ -2581,6 +2581,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation>Хибний тип поля запису</translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-біт</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-біт</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-біт</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 рекомендовано)</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3489,30 +3516,6 @@ Available commands:
<source>missing closing quote</source>
<translation>бракує закривальних лапок</translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256-біт</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256-біт</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256-біт</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 рекомендовано)</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation>Група</translation>

View File

@ -2559,6 +2559,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation type="unfinished"/>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES256</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish256</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20256</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDFKDBX 4</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDFKDBX 3.1</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 KDBX 4</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3459,30 +3486,6 @@ Available commands:
<source>missing closing quote</source>
<translation></translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES256</translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish256</translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20256</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 KDBX 4</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDFKDBX 4</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDFKDBX 3.1</translation>
</message>
<message>
<source>Group</source>
<translation></translation>

View File

@ -2577,6 +2577,33 @@ This is a one-way migration. You won&apos;t be able to open the imported databas
<translation></translation>
</message>
</context>
<context>
<name>KeePass2</name>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 </translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 </translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 </translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 )</translation>
</message>
</context>
<context>
<name>Main</name>
<message>
@ -3484,30 +3511,6 @@ Available commands:
<source>missing closing quote</source>
<translation></translation>
</message>
<message>
<source>AES: 256-bit</source>
<translation>AES: 256 </translation>
</message>
<message>
<source>Twofish: 256-bit</source>
<translation>Twofish: 256 </translation>
</message>
<message>
<source>ChaCha20: 256-bit</source>
<translation>ChaCha20: 256 </translation>
</message>
<message>
<source>Argon2 (KDBX 4 recommended)</source>
<translation>Argon2 (KDBX 4 )</translation>
</message>
<message>
<source>AES-KDF (KDBX 4)</source>
<translation>AES-KDF (KDBX 4)</translation>
</message>
<message>
<source>AES-KDF (KDBX 3.1)</source>
<translation>AES-KDF (KDBX 3.1)</translation>
</message>
<message>
<source>Group</source>
<translation></translation>

View File

@ -1,5 +1,5 @@
name: keepassxc
version: 2.3.0
version: 2.3.1
grade: stable
summary: Community-driven port of the Windows application “KeePass Password Safe”
description: |
@ -28,6 +28,7 @@ parts:
- -DCMAKE_BUILD_TYPE=Release
- -DCMAKE_INSTALL_PREFIX=/usr
- -DKEEPASSXC_DIST_TYPE=Snap
- -DKEEPASSXC_BUILD_TYPE=Release
- -DWITH_TESTS=OFF
- -DWITH_XC_ALL=ON
build-packages:

View File

@ -152,6 +152,7 @@ set(keepassx_SOURCES
gui/group/EditGroupWidget.cpp
gui/group/GroupModel.cpp
gui/group/GroupView.cpp
keys/ChallengeResponseKey.h
keys/CompositeKey.cpp
keys/drivers/YubiKey.h
keys/FileKey.cpp
@ -175,7 +176,7 @@ if(APPLE)
core/MacPasteboard.cpp
)
endif()
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR ${CMAKE_SYSTEM_NAME} STREQUAL "OpenBSD")
if(UNIX AND NOT APPLE)
set(keepassx_SOURCES ${keepassx_SOURCES}
core/ScreenLockListenerDBus.h
core/ScreenLockListenerDBus.cpp
@ -401,7 +402,6 @@ if(MINGW)
${PLUGINS_DIR}/imageformats/qicns$<$<CONFIG:Debug>:d>.dll
${PLUGINS_DIR}/imageformats/qico$<$<CONFIG:Debug>:d>.dll
${PLUGINS_DIR}/imageformats/qjpeg$<$<CONFIG:Debug>:d>.dll
${PLUGINS_DIR}/imageformats/qsvg$<$<CONFIG:Debug>:d>.dll
${PLUGINS_DIR}/imageformats/qwebp$<$<CONFIG:Debug>:d>.dll
DESTINATION "imageformats")

View File

@ -659,6 +659,7 @@ bool AutoType::checkSyntax(const QString& string)
QString delay = "DELAY=\\d+";
QString beep = "BEEP\\s\\d+\\s\\d+";
QString vkey = "VKEY(?:-[EN]X)?\\s\\w+";
QString customAttributes = "S:(?:[^\\{\\}])+";
// these chars aren't in parentheses
QString shortcutKeys = "[\\^\\%~\\+@]";
@ -666,7 +667,7 @@ bool AutoType::checkSyntax(const QString& string)
QString fixedStrings = "[^\\^\\%~\\+@\\{\\}]*";
QRegularExpression autoTypeSyntax("^(?:" + shortcutKeys + "|" + fixedStrings + "|\\{(?:" + normalCommands + "|" + specialLiterals +
"|" + functionKeys + "|" + numpad + "|" + delay + "|" + beep + "|" + vkey + ")\\})*$",
"|" + functionKeys + "|" + numpad + "|" + delay + "|" + beep + "|" + vkey + ")\\}|\\{" + customAttributes + "\\})*$",
QRegularExpression::CaseInsensitiveOption);
QRegularExpressionMatch match = autoTypeSyntax.match(string);
return match.hasMatch();

View File

@ -107,18 +107,26 @@ void NativeMessagingHost::readLength()
void NativeMessagingHost::readStdIn(const quint32 length)
{
if (length > 0) {
QByteArray arr;
arr.reserve(length);
if (length <= 0) {
return;
}
for (quint32 i = 0; i < length; ++i) {
arr.append(getchar());
}
QByteArray arr;
arr.reserve(length);
if (arr.length() > 0) {
QMutexLocker locker(&m_mutex);
sendReply(m_browserClients.readResponse(arr));
QMutexLocker locker(&m_mutex);
for (quint32 i = 0; i < length; ++i) {
int c = std::getchar();
if (c == EOF) {
// message ended prematurely, ignore it and return
return;
}
arr.append(static_cast<char>(c));
}
if (arr.length() > 0) {
sendReply(m_browserClients.readResponse(arr));
}
}

View File

@ -320,7 +320,12 @@ bool Database::verifyKey(const CompositeKey& key) const
return (m_data.key.rawKey() == key.rawKey());
}
QVariantMap Database::publicCustomData() const
QVariantMap& Database::publicCustomData()
{
return m_data.publicCustomData;
}
const QVariantMap& Database::publicCustomData() const
{
return m_data.publicCustomData;
}

View File

@ -105,7 +105,8 @@ public:
bool updateTransformSalt = false);
bool hasKey() const;
bool verifyKey(const CompositeKey& key) const;
QVariantMap publicCustomData() const;
QVariantMap& publicCustomData();
const QVariantMap& publicCustomData() const;
void setPublicCustomData(const QVariantMap& customData);
void recycleEntry(Entry* entry);
void recycleGroup(Group* group);

View File

@ -796,32 +796,32 @@ QString Entry::resolvePlaceholderRecursive(const QString& placeholder, int maxDe
switch (typeOfPlaceholder) {
case PlaceholderType::NotPlaceholder:
case PlaceholderType::Unknown:
return placeholder;
return resolveMultiplePlaceholdersRecursive(placeholder, maxDepth - 1);
case PlaceholderType::Title:
if (placeholderType(title()) == PlaceholderType::Title) {
return title();
}
return resolvePlaceholderRecursive(title(), maxDepth - 1);
return resolveMultiplePlaceholdersRecursive(title(), maxDepth - 1);
case PlaceholderType::UserName:
if (placeholderType(username()) == PlaceholderType::UserName) {
return username();
}
return resolvePlaceholderRecursive(username(), maxDepth - 1);
return resolveMultiplePlaceholdersRecursive(username(), maxDepth - 1);
case PlaceholderType::Password:
if (placeholderType(password()) == PlaceholderType::Password) {
return password();
}
return resolvePlaceholderRecursive(password(), maxDepth - 1);
return resolveMultiplePlaceholdersRecursive(password(), maxDepth - 1);
case PlaceholderType::Notes:
if (placeholderType(notes()) == PlaceholderType::Notes) {
return notes();
}
return resolvePlaceholderRecursive(notes(), maxDepth - 1);
return resolveMultiplePlaceholdersRecursive(notes(), maxDepth - 1);
case PlaceholderType::Url:
if (placeholderType(url()) == PlaceholderType::Url) {
return url();
}
return resolvePlaceholderRecursive(url(), maxDepth - 1);
return resolveMultiplePlaceholdersRecursive(url(), maxDepth - 1);
case PlaceholderType::UrlWithoutScheme:
case PlaceholderType::UrlScheme:
case PlaceholderType::UrlHost:

View File

@ -20,8 +20,9 @@
#include <QMacPasteboardMime>
#include <QTextCodec>
#include <QObject>
class MacPasteboard : public QMacPasteboardMime
class MacPasteboard : public QObject, public QMacPasteboardMime
{
public:
explicit MacPasteboard() : QMacPasteboardMime(MIME_ALL) {}

View File

@ -53,6 +53,9 @@ void Translator::installTranslators()
bool translationsLoaded = false;
for (const QString& path : paths) {
translationsLoaded |= installTranslator(language, path) || installTranslator("en_US", path);
if (!installQtTranslator(language, path)) {
installQtTranslator("en", path);
}
}
if (!translationsLoaded) {
// couldn't load configured language or fallback

View File

@ -188,6 +188,12 @@ QString KdbxXmlReader::errorString() const
return QString();
}
bool KdbxXmlReader::isTrueValue(const QStringRef& value)
{
return value.compare(QLatin1String("true"), Qt::CaseInsensitive) == 0
|| value == "1";
}
void KdbxXmlReader::raiseError(const QString& errorMessage)
{
m_error = true;
@ -378,15 +384,9 @@ void KdbxXmlReader::parseBinaries()
}
QXmlStreamAttributes attr = m_xml.attributes();
QString id = attr.value("ID").toString();
QByteArray data;
if (attr.value("Compressed").compare(QLatin1String("True"), Qt::CaseInsensitive) == 0) {
data = readCompressedBinary();
} else {
data = readBinary();
}
QByteArray data = isTrueValue(attr.value("Compressed"))
? readCompressedBinary() : readBinary();
if (m_binaryPool.contains(id)) {
qWarning("KdbxXmlReader::parseBinaries: overwriting binary item \"%s\"",
@ -812,28 +812,9 @@ void KdbxXmlReader::parseEntryString(Entry* entry)
if (m_xml.name() == "Value") {
QXmlStreamAttributes attr = m_xml.attributes();
value = readString();
bool isProtected = attr.value("Protected") == "True";
bool protectInMemory = attr.value("ProtectInMemory") == "True";
if (isProtected && !value.isEmpty()) {
if (m_randomStream) {
QByteArray ciphertext = QByteArray::fromBase64(value.toLatin1());
bool ok;
QByteArray plaintext = m_randomStream->process(ciphertext, &ok);
if (!ok) {
value.clear();
raiseError(m_randomStream->errorString());
} else {
value = QString::fromUtf8(plaintext);
}
} else {
raiseError(tr("Unable to decrypt entry string"));
continue;
}
}
bool isProtected;
bool protectInMemory;
value = readString(isProtected, protectInMemory);
protect = isProtected || protectInMemory;
valueSet = true;
continue;
@ -881,14 +862,6 @@ QPair<QString, QString> KdbxXmlReader::parseEntryBinary(Entry* entry)
} else {
// format compatibility
value = readBinary();
bool isProtected = attr.hasAttribute("Protected")
&& (attr.value("Protected") == "True");
if (isProtected && !value.isEmpty()) {
if (!m_randomStream->processInPlace(value)) {
raiseError(m_randomStream->errorString());
}
}
}
valueSet = true;
@ -1003,17 +976,43 @@ TimeInfo KdbxXmlReader::parseTimes()
QString KdbxXmlReader::readString()
{
return m_xml.readElementText();
bool isProtected;
bool protectInMemory;
return readString(isProtected, protectInMemory);
}
QString KdbxXmlReader::readString(bool& isProtected, bool& protectInMemory)
{
QXmlStreamAttributes attr = m_xml.attributes();
isProtected = isTrueValue(attr.value("Protected"));
protectInMemory = isTrueValue(attr.value("ProtectInMemory"));
QString value = m_xml.readElementText();
if (isProtected && !value.isEmpty()) {
QByteArray ciphertext = QByteArray::fromBase64(value.toLatin1());
bool ok;
QByteArray plaintext = m_randomStream->process(ciphertext, &ok);
if (!ok) {
value.clear();
raiseError(m_randomStream->errorString());
return value;
}
value = QString::fromUtf8(plaintext);
}
return value;
}
bool KdbxXmlReader::readBool()
{
QString str = readString();
if (str.compare("True", Qt::CaseInsensitive) == 0) {
if (str.compare("true", Qt::CaseInsensitive) == 0) {
return true;
}
if (str.compare("False", Qt::CaseInsensitive) == 0) {
if (str.compare("false", Qt::CaseInsensitive) == 0) {
return false;
}
if (str.length() == 0) {
@ -1112,7 +1111,24 @@ Uuid KdbxXmlReader::readUuid()
QByteArray KdbxXmlReader::readBinary()
{
return QByteArray::fromBase64(readString().toLatin1());
QXmlStreamAttributes attr = m_xml.attributes();
bool isProtected = isTrueValue(attr.value("Protected"));
QString value = m_xml.readElementText();
QByteArray data = QByteArray::fromBase64(value.toLatin1());
if (isProtected && !data.isEmpty()) {
bool ok;
QByteArray plaintext = m_randomStream->process(data, &ok);
if (!ok) {
data.clear();
raiseError(m_randomStream->errorString());
return data;
}
data = plaintext;
}
return data;
}
QByteArray KdbxXmlReader::readCompressedBinary()

View File

@ -81,6 +81,7 @@ protected:
virtual TimeInfo parseTimes();
virtual QString readString();
virtual QString readString(bool& isProtected, bool& protectInMemory);
virtual bool readBool();
virtual QDateTime readDateTime();
virtual QColor readColor();
@ -94,6 +95,7 @@ protected:
virtual Group* getGroup(const Uuid& uuid);
virtual Entry* getEntry(const Uuid& uuid);
virtual bool isTrueValue(const QStringRef& value);
virtual void raiseError(const QString& errorMessage);
const quint32 m_kdbxVersion;

View File

@ -129,9 +129,7 @@ void KdbxXmlWriter::writeMetadata()
if (m_kdbxVersion < KeePass2::FILE_VERSION_4) {
writeBinaries();
}
if (m_kdbxVersion >= KeePass2::FILE_VERSION_4) {
writeCustomData(m_meta->customData());
}
writeCustomData(m_meta->customData());
m_xml.writeEndElement();
}

View File

@ -45,15 +45,15 @@ const QString KeePass2::KDFPARAM_ARGON2_SECRET("K");
const QString KeePass2::KDFPARAM_ARGON2_ASSOCDATA("A");
const QList<QPair<Uuid, QString>> KeePass2::CIPHERS{
qMakePair(KeePass2::CIPHER_AES, QObject::tr("AES: 256-bit")),
qMakePair(KeePass2::CIPHER_TWOFISH, QObject::tr("Twofish: 256-bit")),
qMakePair(KeePass2::CIPHER_CHACHA20, QObject::tr("ChaCha20: 256-bit"))
qMakePair(KeePass2::CIPHER_AES, QString(QT_TRANSLATE_NOOP("KeePass2", "AES: 256-bit"))),
qMakePair(KeePass2::CIPHER_TWOFISH, QString(QT_TRANSLATE_NOOP("KeePass2", "Twofish: 256-bit"))),
qMakePair(KeePass2::CIPHER_CHACHA20, QString(QT_TRANSLATE_NOOP("KeePass2", "ChaCha20: 256-bit")))
};
const QList<QPair<Uuid, QString>> KeePass2::KDFS{
qMakePair(KeePass2::KDF_ARGON2, QObject::tr("Argon2 (KDBX 4 recommended)")),
qMakePair(KeePass2::KDF_AES_KDBX4, QObject::tr("AES-KDF (KDBX 4)")),
qMakePair(KeePass2::KDF_AES_KDBX3, QObject::tr("AES-KDF (KDBX 3.1)"))
qMakePair(KeePass2::KDF_ARGON2, QString(QT_TRANSLATE_NOOP("KeePass2", "Argon2 (KDBX 4 recommended)"))),
qMakePair(KeePass2::KDF_AES_KDBX4, QString(QT_TRANSLATE_NOOP("KeePass2", "AES-KDF (KDBX 4)"))),
qMakePair(KeePass2::KDF_AES_KDBX3, QString(QT_TRANSLATE_NOOP("KeePass2", "AES-KDF (KDBX 3.1)")))
};
QByteArray KeePass2::hmacKey(QByteArray masterSeed, QByteArray transformedMasterKey) {

View File

@ -43,6 +43,36 @@ bool KeePass2Writer::writeDatabase(const QString& filename, Database* db)
return writeDatabase(&file, db);
}
/**
* @return true if the database should upgrade to KDBX4.
*/
bool KeePass2Writer::implicitUpgradeNeeded(Database const* db) const
{
if (!db->publicCustomData().isEmpty()) {
return true;
}
for (const auto& group: db->rootGroup()->groupsRecursive(true)) {
if (group->customData() && !group->customData()->isEmpty()) {
return true;
}
for (const auto& entry: group->entries()) {
if (entry->customData() && !entry->customData()->isEmpty()) {
return true;
}
for (const auto& historyItem: entry->historyItems()) {
if (historyItem->customData() && !historyItem->customData()->isEmpty()) {
return true;
}
}
}
}
return false;
}
/**
* Write a database to a device in KDBX format.
*
@ -55,19 +85,15 @@ bool KeePass2Writer::writeDatabase(QIODevice* device, Database* db) {
m_error = false;
m_errorStr.clear();
// determine KDBX3 vs KDBX4
bool hasCustomData = !db->publicCustomData().isEmpty() || (db->metadata()->customData() && !db->metadata()->customData()->isEmpty());
if (!hasCustomData) {
for (const auto& entry: db->rootGroup()->entriesRecursive(true)) {
if ((entry->customData() && !entry->customData()->isEmpty()) ||
(entry->group() && entry->group()->customData() && !entry->group()->customData()->isEmpty())) {
hasCustomData = true;
break;
}
}
bool upgradeNeeded = implicitUpgradeNeeded(db);
if (upgradeNeeded) {
// We MUST re-transform the key, because challenge-response hashing has changed in KDBX 4.
// If we forget to re-transform, the database will be saved WITHOUT a challenge-response key component!
db->changeKdf(KeePass2::uuidToKdf(KeePass2::KDF_AES_KDBX4));
}
if (db->kdf()->uuid() == KeePass2::KDF_AES_KDBX3 && !hasCustomData) {
if (db->kdf()->uuid() == KeePass2::KDF_AES_KDBX3) {
Q_ASSERT(!upgradeNeeded);
m_version = KeePass2::FILE_VERSION_3_1;
m_writer.reset(new Kdbx3Writer());
} else {

Some files were not shown because too many files have changed in this diff Show More